@vibes.diy/prompts 14.3.202 → 14.3.204

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.
Files changed (247) hide show
  1. package/llms/access.md +4 -4
  2. package/llms/backend.md +1 -1
  3. package/llms/blockly.md +2 -2
  4. package/llms/bluesky.md +1 -1
  5. package/llms/board-games.md +95 -1
  6. package/llms/calendar.md +1 -1
  7. package/llms/callai.md +4 -4
  8. package/llms/connections.md +1 -1
  9. package/llms/create-vibe.md +3 -3
  10. package/llms/fireproof.md +7 -7
  11. package/llms/github.md +6 -2
  12. package/llms/image-gen.md +2 -2
  13. package/llms/index.d.ts +28 -28
  14. package/llms/index.js +84 -84
  15. package/llms/index.js.map +1 -1
  16. package/llms/maps.js +14 -2
  17. package/llms/maps.js.map +1 -1
  18. package/llms/maps.md +212 -9
  19. package/llms/match-style.md +1 -1
  20. package/llms/motion.md +7 -7
  21. package/llms/p5.md +1 -1
  22. package/llms/physics.md +2 -2
  23. package/llms/reskin.js +8 -1
  24. package/llms/reskin.js.map +1 -1
  25. package/llms/reskin.md +99 -20
  26. package/llms/richtext.md +5 -5
  27. package/llms/spotify.md +1 -1
  28. package/llms/stripe-subscriptions.md +1 -1
  29. package/llms/stripe.md +3 -3
  30. package/llms/strudel.md +3 -3
  31. package/llms/three-js.md +4 -4
  32. package/llms/touch-games.js +1 -1
  33. package/llms/touch-games.js.map +1 -1
  34. package/llms/touch-games.md +3 -3
  35. package/llms/ui-blog.d.ts +2 -0
  36. package/llms/ui-blog.js +7 -0
  37. package/llms/ui-blog.js.map +1 -0
  38. package/llms/{pouf-blog.md → ui-blog.md} +10 -10
  39. package/llms/ui-booking.d.ts +2 -0
  40. package/llms/ui-booking.js +7 -0
  41. package/llms/ui-booking.js.map +1 -0
  42. package/llms/{pouf-booking.md → ui-booking.md} +8 -8
  43. package/llms/ui-calendar.d.ts +2 -0
  44. package/llms/ui-calendar.js +7 -0
  45. package/llms/ui-calendar.js.map +1 -0
  46. package/llms/{pouf-calendar.md → ui-calendar.md} +5 -5
  47. package/llms/ui-chat.d.ts +2 -0
  48. package/llms/ui-chat.js +7 -0
  49. package/llms/ui-chat.js.map +1 -0
  50. package/llms/{pouf-chat.md → ui-chat.md} +4 -4
  51. package/llms/ui-contact.d.ts +2 -0
  52. package/llms/ui-contact.js +7 -0
  53. package/llms/ui-contact.js.map +1 -0
  54. package/llms/{pouf-contact.md → ui-contact.md} +7 -7
  55. package/llms/ui-course.d.ts +2 -0
  56. package/llms/ui-course.js +7 -0
  57. package/llms/ui-course.js.map +1 -0
  58. package/llms/{pouf-course.md → ui-course.md} +9 -9
  59. package/llms/ui-crm.d.ts +2 -0
  60. package/llms/ui-crm.js +7 -0
  61. package/llms/ui-crm.js.map +1 -0
  62. package/llms/{pouf-crm.md → ui-crm.md} +5 -5
  63. package/llms/ui-dashboard.d.ts +2 -0
  64. package/llms/ui-dashboard.js +7 -0
  65. package/llms/ui-dashboard.js.map +1 -0
  66. package/llms/{pouf-dashboard.md → ui-dashboard.md} +7 -7
  67. package/llms/ui-editorial.d.ts +2 -0
  68. package/llms/ui-editorial.js +7 -0
  69. package/llms/ui-editorial.js.map +1 -0
  70. package/llms/{pouf-editorial.md → ui-editorial.md} +5 -5
  71. package/llms/ui-event.d.ts +2 -0
  72. package/llms/ui-event.js +7 -0
  73. package/llms/ui-event.js.map +1 -0
  74. package/llms/{pouf-event.md → ui-event.md} +5 -5
  75. package/llms/ui-feed.d.ts +2 -0
  76. package/llms/ui-feed.js +7 -0
  77. package/llms/ui-feed.js.map +1 -0
  78. package/llms/{pouf-feed.md → ui-feed.md} +5 -5
  79. package/llms/ui-game.d.ts +2 -0
  80. package/llms/ui-game.js +7 -0
  81. package/llms/ui-game.js.map +1 -0
  82. package/llms/{pouf-game.md → ui-game.md} +6 -6
  83. package/llms/ui-inbox.d.ts +2 -0
  84. package/llms/ui-inbox.js +7 -0
  85. package/llms/ui-inbox.js.map +1 -0
  86. package/llms/{pouf-inbox.md → ui-inbox.md} +5 -5
  87. package/llms/ui-inventory.d.ts +2 -0
  88. package/llms/ui-inventory.js +7 -0
  89. package/llms/ui-inventory.js.map +1 -0
  90. package/llms/{pouf-inventory.md → ui-inventory.md} +5 -5
  91. package/llms/ui-kanban.d.ts +2 -0
  92. package/llms/ui-kanban.js +7 -0
  93. package/llms/ui-kanban.js.map +1 -0
  94. package/llms/{pouf-kanban.md → ui-kanban.md} +5 -5
  95. package/llms/ui-landing.d.ts +2 -0
  96. package/llms/ui-landing.js +7 -0
  97. package/llms/ui-landing.js.map +1 -0
  98. package/llms/{pouf-landing.md → ui-landing.md} +6 -6
  99. package/llms/ui-login.d.ts +2 -0
  100. package/llms/ui-login.js +7 -0
  101. package/llms/ui-login.js.map +1 -0
  102. package/llms/{pouf-login.md → ui-login.md} +7 -7
  103. package/llms/ui-music.d.ts +2 -0
  104. package/llms/ui-music.js +7 -0
  105. package/llms/ui-music.js.map +1 -0
  106. package/llms/{pouf-music.md → ui-music.md} +6 -6
  107. package/llms/ui-onboarding.d.ts +2 -0
  108. package/llms/ui-onboarding.js +7 -0
  109. package/llms/ui-onboarding.js.map +1 -0
  110. package/llms/{pouf-onboarding.md → ui-onboarding.md} +5 -5
  111. package/llms/ui-pricing.d.ts +2 -0
  112. package/llms/ui-pricing.js +7 -0
  113. package/llms/ui-pricing.js.map +1 -0
  114. package/llms/{pouf-pricing.md → ui-pricing.md} +5 -5
  115. package/llms/ui-profile.d.ts +2 -0
  116. package/llms/ui-profile.js +7 -0
  117. package/llms/ui-profile.js.map +1 -0
  118. package/llms/{pouf-profile.md → ui-profile.md} +4 -4
  119. package/llms/ui-quiz.d.ts +2 -0
  120. package/llms/ui-quiz.js +7 -0
  121. package/llms/ui-quiz.js.map +1 -0
  122. package/llms/{pouf-quiz.md → ui-quiz.md} +6 -6
  123. package/llms/ui-settings.d.ts +2 -0
  124. package/llms/ui-settings.js +7 -0
  125. package/llms/ui-settings.js.map +1 -0
  126. package/llms/{pouf-settings.md → ui-settings.md} +5 -5
  127. package/llms/ui-storefront.d.ts +2 -0
  128. package/llms/ui-storefront.js +7 -0
  129. package/llms/ui-storefront.js.map +1 -0
  130. package/llms/{pouf-storefront.md → ui-storefront.md} +9 -9
  131. package/llms/ui-support.d.ts +2 -0
  132. package/llms/ui-support.js +7 -0
  133. package/llms/ui-support.js.map +1 -0
  134. package/llms/{pouf-support.md → ui-support.md} +5 -5
  135. package/llms/ui-testimonials.d.ts +2 -0
  136. package/llms/ui-testimonials.js +7 -0
  137. package/llms/ui-testimonials.js.map +1 -0
  138. package/llms/{pouf-testimonials.md → ui-testimonials.md} +6 -6
  139. package/llms/ui-todo.d.ts +2 -0
  140. package/llms/ui-todo.js +7 -0
  141. package/llms/ui-todo.js.map +1 -0
  142. package/llms/{pouf-todo.md → ui-todo.md} +5 -5
  143. package/llms/ui-weather.d.ts +2 -0
  144. package/llms/ui-weather.js +7 -0
  145. package/llms/ui-weather.js.map +1 -0
  146. package/llms/{pouf-weather.md → ui-weather.md} +5 -5
  147. package/llms/use-vibe.md +4 -4
  148. package/llms/use-viewer.md +5 -5
  149. package/llms/voxel.md +1 -1
  150. package/llms/web-audio.md +49 -26
  151. package/llms/worlds.md +3 -3
  152. package/llms/youtube.md +1 -1
  153. package/package.json +5 -5
  154. package/system-prompt-initial-instant.md +3 -3
  155. package/system-prompt.md +3 -3
  156. package/themes/colorsets.js +7 -7
  157. package/themes/colorsets.js.map +1 -1
  158. package/themes/looks/pouf/brief.md +87 -85
  159. package/themes/looks/pouf/catalog.generated.d.ts +1 -1
  160. package/themes/looks/pouf/catalog.generated.js +47 -17
  161. package/themes/looks/pouf/catalog.generated.js.map +1 -1
  162. package/themes/looks/pouf/variety.js +4 -4
  163. package/themes/looks/pouf/variety.js.map +1 -1
  164. package/llms/pouf-blog.d.ts +0 -2
  165. package/llms/pouf-blog.js +0 -6
  166. package/llms/pouf-blog.js.map +0 -1
  167. package/llms/pouf-booking.d.ts +0 -2
  168. package/llms/pouf-booking.js +0 -6
  169. package/llms/pouf-booking.js.map +0 -1
  170. package/llms/pouf-calendar.d.ts +0 -2
  171. package/llms/pouf-calendar.js +0 -6
  172. package/llms/pouf-calendar.js.map +0 -1
  173. package/llms/pouf-chat.d.ts +0 -2
  174. package/llms/pouf-chat.js +0 -6
  175. package/llms/pouf-chat.js.map +0 -1
  176. package/llms/pouf-contact.d.ts +0 -2
  177. package/llms/pouf-contact.js +0 -6
  178. package/llms/pouf-contact.js.map +0 -1
  179. package/llms/pouf-course.d.ts +0 -2
  180. package/llms/pouf-course.js +0 -6
  181. package/llms/pouf-course.js.map +0 -1
  182. package/llms/pouf-crm.d.ts +0 -2
  183. package/llms/pouf-crm.js +0 -6
  184. package/llms/pouf-crm.js.map +0 -1
  185. package/llms/pouf-dashboard.d.ts +0 -2
  186. package/llms/pouf-dashboard.js +0 -6
  187. package/llms/pouf-dashboard.js.map +0 -1
  188. package/llms/pouf-editorial.d.ts +0 -2
  189. package/llms/pouf-editorial.js +0 -6
  190. package/llms/pouf-editorial.js.map +0 -1
  191. package/llms/pouf-event.d.ts +0 -2
  192. package/llms/pouf-event.js +0 -6
  193. package/llms/pouf-event.js.map +0 -1
  194. package/llms/pouf-feed.d.ts +0 -2
  195. package/llms/pouf-feed.js +0 -6
  196. package/llms/pouf-feed.js.map +0 -1
  197. package/llms/pouf-game.d.ts +0 -2
  198. package/llms/pouf-game.js +0 -6
  199. package/llms/pouf-game.js.map +0 -1
  200. package/llms/pouf-inbox.d.ts +0 -2
  201. package/llms/pouf-inbox.js +0 -6
  202. package/llms/pouf-inbox.js.map +0 -1
  203. package/llms/pouf-inventory.d.ts +0 -2
  204. package/llms/pouf-inventory.js +0 -6
  205. package/llms/pouf-inventory.js.map +0 -1
  206. package/llms/pouf-kanban.d.ts +0 -2
  207. package/llms/pouf-kanban.js +0 -6
  208. package/llms/pouf-kanban.js.map +0 -1
  209. package/llms/pouf-landing.d.ts +0 -2
  210. package/llms/pouf-landing.js +0 -6
  211. package/llms/pouf-landing.js.map +0 -1
  212. package/llms/pouf-login.d.ts +0 -2
  213. package/llms/pouf-login.js +0 -6
  214. package/llms/pouf-login.js.map +0 -1
  215. package/llms/pouf-music.d.ts +0 -2
  216. package/llms/pouf-music.js +0 -6
  217. package/llms/pouf-music.js.map +0 -1
  218. package/llms/pouf-onboarding.d.ts +0 -2
  219. package/llms/pouf-onboarding.js +0 -6
  220. package/llms/pouf-onboarding.js.map +0 -1
  221. package/llms/pouf-pricing.d.ts +0 -2
  222. package/llms/pouf-pricing.js +0 -6
  223. package/llms/pouf-pricing.js.map +0 -1
  224. package/llms/pouf-profile.d.ts +0 -2
  225. package/llms/pouf-profile.js +0 -6
  226. package/llms/pouf-profile.js.map +0 -1
  227. package/llms/pouf-quiz.d.ts +0 -2
  228. package/llms/pouf-quiz.js +0 -6
  229. package/llms/pouf-quiz.js.map +0 -1
  230. package/llms/pouf-settings.d.ts +0 -2
  231. package/llms/pouf-settings.js +0 -6
  232. package/llms/pouf-settings.js.map +0 -1
  233. package/llms/pouf-storefront.d.ts +0 -2
  234. package/llms/pouf-storefront.js +0 -6
  235. package/llms/pouf-storefront.js.map +0 -1
  236. package/llms/pouf-support.d.ts +0 -2
  237. package/llms/pouf-support.js +0 -6
  238. package/llms/pouf-support.js.map +0 -1
  239. package/llms/pouf-testimonials.d.ts +0 -2
  240. package/llms/pouf-testimonials.js +0 -6
  241. package/llms/pouf-testimonials.js.map +0 -1
  242. package/llms/pouf-todo.d.ts +0 -2
  243. package/llms/pouf-todo.js +0 -6
  244. package/llms/pouf-todo.js.map +0 -1
  245. package/llms/pouf-weather.d.ts +0 -2
  246. package/llms/pouf-weather.js +0 -6
  247. package/llms/pouf-weather.js.map +0 -1
package/llms/access.md CHANGED
@@ -839,7 +839,7 @@ App.jsx — `useVibe().can` gates every write surface (posts AND owner-only mana
839
839
  import React from "react";
840
840
  import { useFireproof } from "use-fireproof";
841
841
  import { useViewer, useVibe } from "use-vibes";
842
- import { Button, Field, RowCard, Skeleton, Stack, Text, Textarea } from "@vibes.diy/pouf";
842
+ import { Button, Field, RowCard, Skeleton, Stack, Text, Textarea } from "@vibes.diy/ui";
843
843
 
844
844
  export default function App() {
845
845
  const { viewer, isViewerPending, ViewerTag } = useViewer();
@@ -1674,7 +1674,7 @@ The app before the edit, a note form wrapped in a sign-in wall:
1674
1674
  ```jsx
1675
1675
  import { useState } from "react";
1676
1676
  import { useFireproof } from "use-fireproof";
1677
- import { Field, Input, Stack } from "@vibes.diy/pouf";
1677
+ import { Field, Input, Stack } from "@vibes.diy/ui";
1678
1678
  import { SignInGate } from "./SignInGate.jsx";
1679
1679
 
1680
1680
  export default function App() {
@@ -1694,9 +1694,9 @@ App.jsx — gate the form on `can.create({ type: "entry" }).ok`, which is true e
1694
1694
 
1695
1695
  ```jsx
1696
1696
  <<<<<<< SEARCH
1697
- import { Field, Input, Stack } from "@vibes.diy/pouf";
1697
+ import { Field, Input, Stack } from "@vibes.diy/ui";
1698
1698
  =======
1699
- import { Button, Field, Input, RowCard, Stack, Text } from "@vibes.diy/pouf";
1699
+ import { Button, Field, Input, RowCard, Stack, Text } from "@vibes.diy/ui";
1700
1700
  import { useVibe } from "use-vibes";
1701
1701
  >>>>>>> REPLACE
1702
1702
  ```
package/llms/backend.md CHANGED
@@ -699,7 +699,7 @@ export async function scheduled(event, ctx) {
699
699
  ```jsx
700
700
  import React from "react";
701
701
  import { useFireproof } from "use-fireproof";
702
- import { Badge, Heading, RowCard, Stack, Text } from "@vibes.diy/pouf";
702
+ import { Badge, Heading, RowCard, Stack, Text } from "@vibes.diy/ui";
703
703
 
704
704
  export default function App() {
705
705
  const { useLiveQuery } = useFireproof("nodeReleases");
package/llms/blockly.md CHANGED
@@ -306,8 +306,8 @@ edit the open project, schedules an autosave.
306
306
  import React, { useEffect, useMemo, useRef, useState } from "react";
307
307
  import { useFireproof } from "use-fireproof";
308
308
  import { useVibe, useViewer } from "use-vibes";
309
- import { Badge, Button, Card, Grid, Heading, Row, Segmented, Skeleton, Spacer, Stack, Text } from "@vibes.diy/pouf";
310
- import { Switch } from "@vibes.diy/pouf/interactive";
309
+ import { Badge, Button, Card, Grid, Heading, Row, Segmented, Skeleton, Spacer, Stack, Text } from "@vibes.diy/ui";
310
+ import { Switch } from "@vibes.diy/ui/interactive";
311
311
  import { Blockly, compile, toolbox, STARTER } from "./lib/blocks.js";
312
312
 
313
313
  const EMPTY = { html: "", css: "", js: "", full: "" };
package/llms/bluesky.md CHANGED
@@ -264,7 +264,7 @@ account of the visitor's involved.
264
264
  ### `App.jsx`
265
265
  ```jsx app=bluesky-browser
266
266
  import React, { useState } from "react";
267
- import { Button, Field, Input, Row, RowCard, Stack } from "@vibes.diy/pouf";
267
+ import { Button, Field, Input, Row, RowCard, Stack } from "@vibes.diy/ui";
268
268
 
269
269
  export default function App() {
270
270
  const [handle, setHandle] = useState("bsky.app");
@@ -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 an app built from the UI's components (the default look 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/ui";
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.
@@ -122,7 +216,7 @@ The table is public (anyone with the link watches the board and the race), the h
122
216
  import React, { useState } from "react";
123
217
  import { useFireproof } from "use-fireproof";
124
218
  import { useVibe, useViewer } from "use-vibes";
125
- import { Badge, Button, Card, Field, Heading, Row, Skeleton, Spacer, Stack, Text, Textarea } from "@vibes.diy/pouf";
219
+ import { Badge, Button, Card, Field, Heading, Row, Skeleton, Spacer, Stack, Text, Textarea } from "@vibes.diy/ui";
126
220
 
127
221
  const N = 5;
128
222
  const FREE = 12; // the center square
package/llms/calendar.md CHANGED
@@ -23,7 +23,7 @@ person meant across time zones.
23
23
  ```jsx app=practice-log
24
24
  import React, { useState } from "react";
25
25
  import { useFireproof } from "use-fireproof";
26
- import { Button, Field, Input, Row, Stack, Text } from "@vibes.diy/pouf";
26
+ import { Button, Field, Input, Row, Stack, Text } from "@vibes.diy/ui";
27
27
 
28
28
  const pad = (n) => String(n).padStart(2, "0");
29
29
  const keyOf = (d) => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
package/llms/callai.md CHANGED
@@ -28,7 +28,7 @@ import React, { useState } from "react";
28
28
  import { callAI } from "call-ai";
29
29
  import { useFireproof } from "use-fireproof";
30
30
  import { useVibe } from "use-vibes";
31
- import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text, Textarea } from "@vibes.diy/pouf";
31
+ import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text, Textarea } from "@vibes.diy/ui";
32
32
 
33
33
  const taskSchema = {
34
34
  type: "object",
@@ -235,7 +235,7 @@ import React, { useState } from "react";
235
235
  import { callAI } from "call-ai";
236
236
  import { useFireproof } from "use-fireproof";
237
237
  import { useVibe } from "use-vibes";
238
- import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text } from "@vibes.diy/pouf";
238
+ import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text } from "@vibes.diy/ui";
239
239
 
240
240
  const offerSchema = {
241
241
  type: "object",
@@ -391,8 +391,8 @@ Inside `backend.js`, `ctx.callAI` takes a string prompt.
391
391
  ```jsx
392
392
  import React, { useEffect, useState } from "react";
393
393
  import { callAI, listModels } from "call-ai";
394
- import { Button, Stack, Text } from "@vibes.diy/pouf";
395
- import { Select } from "@vibes.diy/pouf/interactive";
394
+ import { Button, Stack, Text } from "@vibes.diy/ui";
395
+ import { Select } from "@vibes.diy/ui/interactive";
396
396
 
397
397
  export default function App() {
398
398
  const [models, setModels] = useState([]);
@@ -82,7 +82,7 @@ for the rest.
82
82
  ### `App.jsx`
83
83
  ```jsx app=instagram-connection
84
84
  import { useConnection } from "use-vibes";
85
- import { Button, Text } from "@vibes.diy/pouf";
85
+ import { Button, Text } from "@vibes.diy/ui";
86
86
 
87
87
  function ConnectInstagram() {
88
88
  const { state, consented, available, accountLabel, link, refresh } = useConnection("instagram");
@@ -28,7 +28,7 @@ when they're ready.
28
28
  ```jsx
29
29
  import React from "react";
30
30
  import { createVibe } from "use-vibes";
31
- import { Button } from "@vibes.diy/pouf";
31
+ import { Button } from "@vibes.diy/ui";
32
32
 
33
33
  export default function App() {
34
34
  // `ready` + `spec` come from the interview (see the full example below).
@@ -69,7 +69,7 @@ Let the user edit each slide inline and present full-screen.`;
69
69
  import React from "react";
70
70
  import { callAI } from "call-ai";
71
71
  import { createVibe } from "use-vibes";
72
- import { Button } from "@vibes.diy/pouf";
72
+ import { Button } from "@vibes.diy/ui";
73
73
 
74
74
  export default function App() {
75
75
  const [answers, setAnswers] = React.useState({});
@@ -131,7 +131,7 @@ blocked), offer a fallback link so the hand-off still works:
131
131
 
132
132
  ```jsx
133
133
  import { createVibe, buildCreateVibeUrl } from "use-vibes";
134
- import { Button } from "@vibes.diy/pouf";
134
+ import { Button } from "@vibes.diy/ui";
135
135
 
136
136
  function HandoffButton({ spec }) {
137
137
  const [blocked, setBlocked] = React.useState(false);
package/llms/fireproof.md CHANGED
@@ -94,7 +94,7 @@ import React, { useState } from "react";
94
94
  import { callAI } from "call-ai";
95
95
  import { useFireproof } from "use-fireproof";
96
96
  import { useVibe } from "use-vibes";
97
- import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text, Textarea } from "@vibes.diy/pouf";
97
+ import { Button, Field, Heading, Icon, IconButton, Input, Row, RowCard, Stack, Text, Textarea } from "@vibes.diy/ui";
98
98
 
99
99
  const taskSchema = {
100
100
  type: "object",
@@ -411,7 +411,7 @@ A continuous control (slider, drag, color picker, live-typed text bound to one d
411
411
  import { useFireproof } from "use-fireproof";
412
412
  =======
413
413
  import { useFireproof } from "use-fireproof";
414
- import { Slider } from "@vibes.diy/pouf/interactive";
414
+ import { Slider } from "@vibes.diy/ui/interactive";
415
415
  >>>>>>> REPLACE
416
416
  ```
417
417
 
@@ -463,7 +463,7 @@ A draft reaches only the peers already subscribed to its channel, and a channel'
463
463
  import React, { useEffect, useRef } from "react";
464
464
  import { useFireproof } from "use-fireproof";
465
465
  import { useViewer, useVibe } from "use-vibes";
466
- import { Button } from "@vibes.diy/pouf";
466
+ import { Button } from "@vibes.diy/ui";
467
467
 
468
468
  const SIZE = 32;
469
469
  const CELL = 16;
@@ -809,7 +809,7 @@ Building an image uploader with `_files`:
809
809
  ```jsx
810
810
  import React from "react";
811
811
  import { useFireproof } from "use-fireproof";
812
- import { Button, Card, ErrorNote, Field, Figure, Grid, Heading, Input, Stack, Text } from "@vibes.diy/pouf";
812
+ import { Button, Card, ErrorNote, Field, Figure, Grid, Heading, Input, Stack, Text } from "@vibes.diy/ui";
813
813
 
814
814
  export default function App() {
815
815
  const { useDocument, useLiveQuery } = useFireproof("imageUploads");
@@ -945,8 +945,8 @@ Code listing for a bird sightings log App.jsx. Note the code ordering: hooks, th
945
945
  ```js
946
946
  import React from "react";
947
947
  import { useFireproof } from "use-fireproof";
948
- import { Button, Field, Heading, Input, Row, RowCard, Spacer, Stack, Text } from "@vibes.diy/pouf";
949
- import { Checkbox } from "@vibes.diy/pouf/interactive";
948
+ import { Button, Field, Heading, Input, Row, RowCard, Spacer, Stack, Text } from "@vibes.diy/ui";
949
+ import { Checkbox } from "@vibes.diy/ui/interactive";
950
950
 
951
951
  export default function App() {
952
952
  // 1. Hooks and document shapes
@@ -978,7 +978,7 @@ export default function App() {
978
978
  submitNewSighting();
979
979
  };
980
980
 
981
- // 3. ClassNames — right before JSX, for the plain elements only; the pouf
981
+ // 3. ClassNames — right before JSX, for the plain elements only; the UI
982
982
  // components carry their own surface, ink and shape.
983
983
  const c = {
984
984
  page: "min-h-screen max-w-md mx-auto p-6 bg-background text-foreground font-sans",
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
@@ -433,8 +437,8 @@ export default function (doc, oldDoc, user, ctx) {
433
437
  import React, { useCallback, useEffect, useState } from "react";
434
438
  import { apiFetch, buildGithubInstallUrl, useViewer } from "use-vibes";
435
439
  import { useFireproof } from "use-fireproof";
436
- import { Badge, Button, Field, Heading, Input, RowCard, Skeleton, Stack, Text } from "@vibes.diy/pouf";
437
- import { RadioGroup } from "@vibes.diy/pouf/interactive";
440
+ import { Badge, Button, Field, Heading, Input, RowCard, Skeleton, Stack, Text } from "@vibes.diy/ui";
441
+ import { RadioGroup } from "@vibes.diy/ui/interactive";
438
442
 
439
443
  const TONE = { done: "up", failed: "warn", running: "info", waiting: "info" };
440
444
  const WHO_CHOICES = [
package/llms/image-gen.md CHANGED
@@ -188,7 +188,7 @@ When each item's substance is its words — a generated joke, a short verse, a p
188
188
 
189
189
  ```jsx
190
190
  import { ImgGen, useImgGen } from "use-vibes";
191
- import { Button, RowCard, Text } from "@vibes.diy/pouf";
191
+ import { Button, RowCard, Text } from "@vibes.diy/ui";
192
192
 
193
193
  function PunCard({ pun, database }) {
194
194
  const [wanted, setWanted] = React.useState(false);
@@ -271,7 +271,7 @@ import React, { useEffect, useState } from "react";
271
271
  import { useFireproof } from "use-fireproof";
272
272
  import { ImgGen, useVibe } from "use-vibes";
273
273
  import { listModels } from "call-ai";
274
- import { Button, Card, Field, Grid, Input, Skeleton, Stack, Text } from "@vibes.diy/pouf";
274
+ import { Button, Card, Field, Grid, Input, Skeleton, Stack, Text } from "@vibes.diy/ui";
275
275
 
276
276
  function AuditionComposer({ database, models }) {
277
277
  const { can, me, ready } = useVibe("auditions");
package/llms/index.d.ts CHANGED
@@ -31,34 +31,34 @@ export { motionConfig } from "./motion.js";
31
31
  export { richtextConfig } from "./richtext.js";
32
32
  export { matchStyleConfig } from "./match-style.js";
33
33
  export { reskinConfig } from "./reskin.js";
34
- export { poufTodoConfig } from "./pouf-todo.js";
35
- export { poufFeedConfig } from "./pouf-feed.js";
36
- export { poufChatConfig } from "./pouf-chat.js";
37
- export { poufKanbanConfig } from "./pouf-kanban.js";
38
- export { poufInboxConfig } from "./pouf-inbox.js";
39
- export { poufSupportConfig } from "./pouf-support.js";
40
- export { poufCrmConfig } from "./pouf-crm.js";
41
- export { poufInventoryConfig } from "./pouf-inventory.js";
42
- export { poufEditorialConfig } from "./pouf-editorial.js";
43
- export { poufEventConfig } from "./pouf-event.js";
44
- export { poufCourseConfig } from "./pouf-course.js";
45
- export { poufLoginConfig } from "./pouf-login.js";
46
- export { poufSettingsConfig } from "./pouf-settings.js";
47
- export { poufOnboardingConfig } from "./pouf-onboarding.js";
48
- export { poufContactConfig } from "./pouf-contact.js";
49
- export { poufStorefrontConfig } from "./pouf-storefront.js";
50
- export { poufBookingConfig } from "./pouf-booking.js";
51
- export { poufDashboardConfig } from "./pouf-dashboard.js";
52
- export { poufGameConfig } from "./pouf-game.js";
53
- export { poufPricingConfig } from "./pouf-pricing.js";
54
- export { poufBlogConfig } from "./pouf-blog.js";
55
- export { poufProfileConfig } from "./pouf-profile.js";
56
- export { poufMusicConfig } from "./pouf-music.js";
57
- export { poufWeatherConfig } from "./pouf-weather.js";
58
- export { poufQuizConfig } from "./pouf-quiz.js";
59
- export { poufLandingConfig } from "./pouf-landing.js";
60
- export { poufCalendarConfig } from "./pouf-calendar.js";
61
- export { poufTestimonialsConfig } from "./pouf-testimonials.js";
34
+ export { uiTodoConfig } from "./ui-todo.js";
35
+ export { uiFeedConfig } from "./ui-feed.js";
36
+ export { uiChatConfig } from "./ui-chat.js";
37
+ export { uiKanbanConfig } from "./ui-kanban.js";
38
+ export { uiInboxConfig } from "./ui-inbox.js";
39
+ export { uiSupportConfig } from "./ui-support.js";
40
+ export { uiCrmConfig } from "./ui-crm.js";
41
+ export { uiInventoryConfig } from "./ui-inventory.js";
42
+ export { uiEditorialConfig } from "./ui-editorial.js";
43
+ export { uiEventConfig } from "./ui-event.js";
44
+ export { uiCourseConfig } from "./ui-course.js";
45
+ export { uiLoginConfig } from "./ui-login.js";
46
+ export { uiSettingsConfig } from "./ui-settings.js";
47
+ export { uiOnboardingConfig } from "./ui-onboarding.js";
48
+ export { uiContactConfig } from "./ui-contact.js";
49
+ export { uiStorefrontConfig } from "./ui-storefront.js";
50
+ export { uiBookingConfig } from "./ui-booking.js";
51
+ export { uiDashboardConfig } from "./ui-dashboard.js";
52
+ export { uiGameConfig } from "./ui-game.js";
53
+ export { uiPricingConfig } from "./ui-pricing.js";
54
+ export { uiBlogConfig } from "./ui-blog.js";
55
+ export { uiProfileConfig } from "./ui-profile.js";
56
+ export { uiMusicConfig } from "./ui-music.js";
57
+ export { uiWeatherConfig } from "./ui-weather.js";
58
+ export { uiQuizConfig } from "./ui-quiz.js";
59
+ export { uiLandingConfig } from "./ui-landing.js";
60
+ export { uiCalendarConfig } from "./ui-calendar.js";
61
+ export { uiTestimonialsConfig } from "./ui-testimonials.js";
62
62
  export type { LlmConfig } from "./types.js";
63
63
  export { cueMatches, cueMatchedSkills, type CueCatalogEntry } from "./cues.js";
64
64
  export declare const allConfigs: readonly [LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig, LlmConfig];
package/llms/index.js CHANGED
@@ -31,34 +31,34 @@ import { motionConfig } from "./motion.js";
31
31
  import { richtextConfig } from "./richtext.js";
32
32
  import { matchStyleConfig } from "./match-style.js";
33
33
  import { reskinConfig } from "./reskin.js";
34
- import { poufTodoConfig } from "./pouf-todo.js";
35
- import { poufFeedConfig } from "./pouf-feed.js";
36
- import { poufChatConfig } from "./pouf-chat.js";
37
- import { poufKanbanConfig } from "./pouf-kanban.js";
38
- import { poufInboxConfig } from "./pouf-inbox.js";
39
- import { poufSupportConfig } from "./pouf-support.js";
40
- import { poufCrmConfig } from "./pouf-crm.js";
41
- import { poufInventoryConfig } from "./pouf-inventory.js";
42
- import { poufEditorialConfig } from "./pouf-editorial.js";
43
- import { poufEventConfig } from "./pouf-event.js";
44
- import { poufCourseConfig } from "./pouf-course.js";
45
- import { poufLoginConfig } from "./pouf-login.js";
46
- import { poufSettingsConfig } from "./pouf-settings.js";
47
- import { poufOnboardingConfig } from "./pouf-onboarding.js";
48
- import { poufContactConfig } from "./pouf-contact.js";
49
- import { poufStorefrontConfig } from "./pouf-storefront.js";
50
- import { poufBookingConfig } from "./pouf-booking.js";
51
- import { poufDashboardConfig } from "./pouf-dashboard.js";
52
- import { poufGameConfig } from "./pouf-game.js";
53
- import { poufPricingConfig } from "./pouf-pricing.js";
54
- import { poufBlogConfig } from "./pouf-blog.js";
55
- import { poufProfileConfig } from "./pouf-profile.js";
56
- import { poufMusicConfig } from "./pouf-music.js";
57
- import { poufWeatherConfig } from "./pouf-weather.js";
58
- import { poufQuizConfig } from "./pouf-quiz.js";
59
- import { poufLandingConfig } from "./pouf-landing.js";
60
- import { poufCalendarConfig } from "./pouf-calendar.js";
61
- import { poufTestimonialsConfig } from "./pouf-testimonials.js";
34
+ import { uiTodoConfig } from "./ui-todo.js";
35
+ import { uiFeedConfig } from "./ui-feed.js";
36
+ import { uiChatConfig } from "./ui-chat.js";
37
+ import { uiKanbanConfig } from "./ui-kanban.js";
38
+ import { uiInboxConfig } from "./ui-inbox.js";
39
+ import { uiSupportConfig } from "./ui-support.js";
40
+ import { uiCrmConfig } from "./ui-crm.js";
41
+ import { uiInventoryConfig } from "./ui-inventory.js";
42
+ import { uiEditorialConfig } from "./ui-editorial.js";
43
+ import { uiEventConfig } from "./ui-event.js";
44
+ import { uiCourseConfig } from "./ui-course.js";
45
+ import { uiLoginConfig } from "./ui-login.js";
46
+ import { uiSettingsConfig } from "./ui-settings.js";
47
+ import { uiOnboardingConfig } from "./ui-onboarding.js";
48
+ import { uiContactConfig } from "./ui-contact.js";
49
+ import { uiStorefrontConfig } from "./ui-storefront.js";
50
+ import { uiBookingConfig } from "./ui-booking.js";
51
+ import { uiDashboardConfig } from "./ui-dashboard.js";
52
+ import { uiGameConfig } from "./ui-game.js";
53
+ import { uiPricingConfig } from "./ui-pricing.js";
54
+ import { uiBlogConfig } from "./ui-blog.js";
55
+ import { uiProfileConfig } from "./ui-profile.js";
56
+ import { uiMusicConfig } from "./ui-music.js";
57
+ import { uiWeatherConfig } from "./ui-weather.js";
58
+ import { uiQuizConfig } from "./ui-quiz.js";
59
+ import { uiLandingConfig } from "./ui-landing.js";
60
+ import { uiCalendarConfig } from "./ui-calendar.js";
61
+ import { uiTestimonialsConfig } from "./ui-testimonials.js";
62
62
  export { backendConfig } from "./backend.js";
63
63
  export { calendarConfig } from "./calendar.js";
64
64
  export { boardGamesConfig } from "./board-games.js";
@@ -91,34 +91,34 @@ export { motionConfig } from "./motion.js";
91
91
  export { richtextConfig } from "./richtext.js";
92
92
  export { matchStyleConfig } from "./match-style.js";
93
93
  export { reskinConfig } from "./reskin.js";
94
- export { poufTodoConfig } from "./pouf-todo.js";
95
- export { poufFeedConfig } from "./pouf-feed.js";
96
- export { poufChatConfig } from "./pouf-chat.js";
97
- export { poufKanbanConfig } from "./pouf-kanban.js";
98
- export { poufInboxConfig } from "./pouf-inbox.js";
99
- export { poufSupportConfig } from "./pouf-support.js";
100
- export { poufCrmConfig } from "./pouf-crm.js";
101
- export { poufInventoryConfig } from "./pouf-inventory.js";
102
- export { poufEditorialConfig } from "./pouf-editorial.js";
103
- export { poufEventConfig } from "./pouf-event.js";
104
- export { poufCourseConfig } from "./pouf-course.js";
105
- export { poufLoginConfig } from "./pouf-login.js";
106
- export { poufSettingsConfig } from "./pouf-settings.js";
107
- export { poufOnboardingConfig } from "./pouf-onboarding.js";
108
- export { poufContactConfig } from "./pouf-contact.js";
109
- export { poufStorefrontConfig } from "./pouf-storefront.js";
110
- export { poufBookingConfig } from "./pouf-booking.js";
111
- export { poufDashboardConfig } from "./pouf-dashboard.js";
112
- export { poufGameConfig } from "./pouf-game.js";
113
- export { poufPricingConfig } from "./pouf-pricing.js";
114
- export { poufBlogConfig } from "./pouf-blog.js";
115
- export { poufProfileConfig } from "./pouf-profile.js";
116
- export { poufMusicConfig } from "./pouf-music.js";
117
- export { poufWeatherConfig } from "./pouf-weather.js";
118
- export { poufQuizConfig } from "./pouf-quiz.js";
119
- export { poufLandingConfig } from "./pouf-landing.js";
120
- export { poufCalendarConfig } from "./pouf-calendar.js";
121
- export { poufTestimonialsConfig } from "./pouf-testimonials.js";
94
+ export { uiTodoConfig } from "./ui-todo.js";
95
+ export { uiFeedConfig } from "./ui-feed.js";
96
+ export { uiChatConfig } from "./ui-chat.js";
97
+ export { uiKanbanConfig } from "./ui-kanban.js";
98
+ export { uiInboxConfig } from "./ui-inbox.js";
99
+ export { uiSupportConfig } from "./ui-support.js";
100
+ export { uiCrmConfig } from "./ui-crm.js";
101
+ export { uiInventoryConfig } from "./ui-inventory.js";
102
+ export { uiEditorialConfig } from "./ui-editorial.js";
103
+ export { uiEventConfig } from "./ui-event.js";
104
+ export { uiCourseConfig } from "./ui-course.js";
105
+ export { uiLoginConfig } from "./ui-login.js";
106
+ export { uiSettingsConfig } from "./ui-settings.js";
107
+ export { uiOnboardingConfig } from "./ui-onboarding.js";
108
+ export { uiContactConfig } from "./ui-contact.js";
109
+ export { uiStorefrontConfig } from "./ui-storefront.js";
110
+ export { uiBookingConfig } from "./ui-booking.js";
111
+ export { uiDashboardConfig } from "./ui-dashboard.js";
112
+ export { uiGameConfig } from "./ui-game.js";
113
+ export { uiPricingConfig } from "./ui-pricing.js";
114
+ export { uiBlogConfig } from "./ui-blog.js";
115
+ export { uiProfileConfig } from "./ui-profile.js";
116
+ export { uiMusicConfig } from "./ui-music.js";
117
+ export { uiWeatherConfig } from "./ui-weather.js";
118
+ export { uiQuizConfig } from "./ui-quiz.js";
119
+ export { uiLandingConfig } from "./ui-landing.js";
120
+ export { uiCalendarConfig } from "./ui-calendar.js";
121
+ export { uiTestimonialsConfig } from "./ui-testimonials.js";
122
122
  export { cueMatches, cueMatchedSkills } from "./cues.js";
123
123
  export const allConfigs = [
124
124
  callaiConfig,
@@ -154,34 +154,34 @@ export const allConfigs = [
154
154
  richtextConfig,
155
155
  reskinConfig,
156
156
  matchStyleConfig,
157
- poufTodoConfig,
158
- poufFeedConfig,
159
- poufChatConfig,
160
- poufKanbanConfig,
161
- poufInboxConfig,
162
- poufSupportConfig,
163
- poufCrmConfig,
164
- poufInventoryConfig,
165
- poufEditorialConfig,
166
- poufEventConfig,
167
- poufCourseConfig,
168
- poufLoginConfig,
169
- poufSettingsConfig,
170
- poufOnboardingConfig,
171
- poufContactConfig,
172
- poufStorefrontConfig,
173
- poufBookingConfig,
174
- poufDashboardConfig,
175
- poufGameConfig,
176
- poufPricingConfig,
177
- poufBlogConfig,
178
- poufProfileConfig,
179
- poufMusicConfig,
180
- poufWeatherConfig,
181
- poufQuizConfig,
182
- poufLandingConfig,
183
- poufCalendarConfig,
184
- poufTestimonialsConfig,
157
+ uiTodoConfig,
158
+ uiFeedConfig,
159
+ uiChatConfig,
160
+ uiKanbanConfig,
161
+ uiInboxConfig,
162
+ uiSupportConfig,
163
+ uiCrmConfig,
164
+ uiInventoryConfig,
165
+ uiEditorialConfig,
166
+ uiEventConfig,
167
+ uiCourseConfig,
168
+ uiLoginConfig,
169
+ uiSettingsConfig,
170
+ uiOnboardingConfig,
171
+ uiContactConfig,
172
+ uiStorefrontConfig,
173
+ uiBookingConfig,
174
+ uiDashboardConfig,
175
+ uiGameConfig,
176
+ uiPricingConfig,
177
+ uiBlogConfig,
178
+ uiProfileConfig,
179
+ uiMusicConfig,
180
+ uiWeatherConfig,
181
+ uiQuizConfig,
182
+ uiLandingConfig,
183
+ uiCalendarConfig,
184
+ uiTestimonialsConfig,
185
185
  ];
186
186
  export { mapsConfig } from "./maps.js";
187
187
  export const SKILL_ALIASES = new Map(allConfigs.flatMap((c) => (c.aliases ?? []).map((alias) => [alias, c.name])));