@vibes.diy/prompts 14.3.59 → 14.3.65

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 (160) hide show
  1. package/llms/access.md +4 -0
  2. package/llms/index.d.ts +29 -1
  3. package/llms/index.js +84 -0
  4. package/llms/index.js.map +1 -1
  5. package/llms/pouf-blog.d.ts +2 -0
  6. package/llms/pouf-blog.js +6 -0
  7. package/llms/pouf-blog.js.map +1 -0
  8. package/llms/pouf-blog.md +305 -0
  9. package/llms/pouf-booking.d.ts +2 -0
  10. package/llms/pouf-booking.js +6 -0
  11. package/llms/pouf-booking.js.map +1 -0
  12. package/llms/pouf-booking.md +397 -0
  13. package/llms/pouf-calendar.d.ts +2 -0
  14. package/llms/pouf-calendar.js +6 -0
  15. package/llms/pouf-calendar.js.map +1 -0
  16. package/llms/pouf-calendar.md +352 -0
  17. package/llms/pouf-chat.d.ts +2 -0
  18. package/llms/pouf-chat.js +6 -0
  19. package/llms/pouf-chat.js.map +1 -0
  20. package/llms/pouf-chat.md +220 -0
  21. package/llms/pouf-contact.d.ts +2 -0
  22. package/llms/pouf-contact.js +6 -0
  23. package/llms/pouf-contact.js.map +1 -0
  24. package/llms/pouf-contact.md +231 -0
  25. package/llms/pouf-course.d.ts +2 -0
  26. package/llms/pouf-course.js +6 -0
  27. package/llms/pouf-course.js.map +1 -0
  28. package/llms/pouf-course.md +299 -0
  29. package/llms/pouf-crm.d.ts +2 -0
  30. package/llms/pouf-crm.js +6 -0
  31. package/llms/pouf-crm.js.map +1 -0
  32. package/llms/pouf-crm.md +330 -0
  33. package/llms/pouf-dashboard.d.ts +2 -0
  34. package/llms/pouf-dashboard.js +6 -0
  35. package/llms/pouf-dashboard.js.map +1 -0
  36. package/llms/pouf-dashboard.md +269 -0
  37. package/llms/pouf-editorial.d.ts +2 -0
  38. package/llms/pouf-editorial.js +6 -0
  39. package/llms/pouf-editorial.js.map +1 -0
  40. package/llms/pouf-editorial.md +247 -0
  41. package/llms/pouf-event.d.ts +2 -0
  42. package/llms/pouf-event.js +6 -0
  43. package/llms/pouf-event.js.map +1 -0
  44. package/llms/pouf-event.md +237 -0
  45. package/llms/pouf-feed.d.ts +2 -0
  46. package/llms/pouf-feed.js +6 -0
  47. package/llms/pouf-feed.js.map +1 -0
  48. package/llms/pouf-feed.md +249 -0
  49. package/llms/pouf-game.d.ts +2 -0
  50. package/llms/pouf-game.js +6 -0
  51. package/llms/pouf-game.js.map +1 -0
  52. package/llms/pouf-game.md +273 -0
  53. package/llms/pouf-inbox.d.ts +2 -0
  54. package/llms/pouf-inbox.js +6 -0
  55. package/llms/pouf-inbox.js.map +1 -0
  56. package/llms/pouf-inbox.md +317 -0
  57. package/llms/pouf-inventory.d.ts +2 -0
  58. package/llms/pouf-inventory.js +6 -0
  59. package/llms/pouf-inventory.js.map +1 -0
  60. package/llms/pouf-inventory.md +345 -0
  61. package/llms/pouf-kanban.d.ts +2 -0
  62. package/llms/pouf-kanban.js +6 -0
  63. package/llms/pouf-kanban.js.map +1 -0
  64. package/llms/pouf-kanban.md +235 -0
  65. package/llms/pouf-landing.d.ts +2 -0
  66. package/llms/pouf-landing.js +6 -0
  67. package/llms/pouf-landing.js.map +1 -0
  68. package/llms/pouf-landing.md +222 -0
  69. package/llms/pouf-login.d.ts +2 -0
  70. package/llms/pouf-login.js +6 -0
  71. package/llms/pouf-login.js.map +1 -0
  72. package/llms/pouf-login.md +162 -0
  73. package/llms/pouf-music.d.ts +2 -0
  74. package/llms/pouf-music.js +6 -0
  75. package/llms/pouf-music.js.map +1 -0
  76. package/llms/pouf-music.md +190 -0
  77. package/llms/pouf-onboarding.d.ts +2 -0
  78. package/llms/pouf-onboarding.js +6 -0
  79. package/llms/pouf-onboarding.js.map +1 -0
  80. package/llms/pouf-onboarding.md +227 -0
  81. package/llms/pouf-pricing.d.ts +2 -0
  82. package/llms/pouf-pricing.js +6 -0
  83. package/llms/pouf-pricing.js.map +1 -0
  84. package/llms/pouf-pricing.md +193 -0
  85. package/llms/pouf-profile.d.ts +2 -0
  86. package/llms/pouf-profile.js +6 -0
  87. package/llms/pouf-profile.js.map +1 -0
  88. package/llms/pouf-profile.md +177 -0
  89. package/llms/pouf-quiz.d.ts +2 -0
  90. package/llms/pouf-quiz.js +6 -0
  91. package/llms/pouf-quiz.js.map +1 -0
  92. package/llms/pouf-quiz.md +267 -0
  93. package/llms/pouf-settings.d.ts +2 -0
  94. package/llms/pouf-settings.js +6 -0
  95. package/llms/pouf-settings.js.map +1 -0
  96. package/llms/pouf-settings.md +220 -0
  97. package/llms/pouf-storefront.d.ts +2 -0
  98. package/llms/pouf-storefront.js +6 -0
  99. package/llms/pouf-storefront.js.map +1 -0
  100. package/llms/pouf-storefront.md +293 -0
  101. package/llms/pouf-support.d.ts +2 -0
  102. package/llms/pouf-support.js +6 -0
  103. package/llms/pouf-support.js.map +1 -0
  104. package/llms/pouf-support.md +322 -0
  105. package/llms/pouf-testimonials.d.ts +2 -0
  106. package/llms/pouf-testimonials.js +6 -0
  107. package/llms/pouf-testimonials.js.map +1 -0
  108. package/llms/pouf-testimonials.md +156 -0
  109. package/llms/pouf-todo.d.ts +2 -0
  110. package/llms/pouf-todo.js +6 -0
  111. package/llms/pouf-todo.js.map +1 -0
  112. package/llms/pouf-todo.md +179 -0
  113. package/llms/pouf-weather.d.ts +2 -0
  114. package/llms/pouf-weather.js +6 -0
  115. package/llms/pouf-weather.js.map +1 -0
  116. package/llms/pouf-weather.md +186 -0
  117. package/llms/use-viewer.md +3 -0
  118. package/package.json +5 -4
  119. package/prompts.js +2 -2
  120. package/prompts.js.map +1 -1
  121. package/style-prompts.d.ts +1 -1
  122. package/style-prompts.js +2 -0
  123. package/style-prompts.js.map +1 -1
  124. package/themes/colors/aqua.yaml +79 -0
  125. package/themes/colors/brutalist.yaml +4 -4
  126. package/themes/colors/celery.yaml +79 -0
  127. package/themes/colors/home.yaml +79 -0
  128. package/themes/colors/house.yaml +2 -2
  129. package/themes/colors/lilac.yaml +79 -0
  130. package/themes/colors/mint.yaml +79 -0
  131. package/themes/colors/peach.yaml +79 -0
  132. package/themes/colors/periwinkle.yaml +79 -0
  133. package/themes/colors/rose.yaml +79 -0
  134. package/themes/colorsets-bundle.js +654 -6
  135. package/themes/colorsets-bundle.js.map +1 -1
  136. package/themes/colorsets.d.ts +3 -2
  137. package/themes/colorsets.js +84 -2
  138. package/themes/colorsets.js.map +1 -1
  139. package/themes/index.d.ts +1 -0
  140. package/themes/index.js +1 -0
  141. package/themes/index.js.map +1 -1
  142. package/themes/looks/index.d.ts +3 -1
  143. package/themes/looks/index.js +44 -7
  144. package/themes/looks/index.js.map +1 -1
  145. package/themes/looks/pouf/brief.md +144 -0
  146. package/themes/looks/pouf/catalog.generated.d.ts +16 -0
  147. package/themes/looks/pouf/catalog.generated.js +764 -0
  148. package/themes/looks/pouf/catalog.generated.js.map +1 -0
  149. package/themes/looks/pouf/variety.d.ts +4 -0
  150. package/themes/looks/pouf/variety.js +36 -0
  151. package/themes/looks/pouf/variety.js.map +1 -0
  152. package/themes/palette-gen.d.ts +5 -0
  153. package/themes/palette-gen.js +55 -1
  154. package/themes/palette-gen.js.map +1 -1
  155. package/themes/pouf-rooms.d.ts +47 -0
  156. package/themes/pouf-rooms.js +274 -0
  157. package/themes/pouf-rooms.js.map +1 -0
  158. package/themes/style-presets.d.ts +2 -0
  159. package/themes/style-presets.js +29 -1
  160. package/themes/style-presets.js.map +1 -1
@@ -0,0 +1,179 @@
1
+ # Pouf Todo
2
+
3
+ A checklist the person adds to, filters and ticks off: chores, a packing list, today's errands, a reading queue. Reach for it whenever the app's core is a list of short items that are either done or not. The tasks persist, so the list is still there on the next visit and on every device that opens the app.
4
+
5
+ Built from @vibes.diy/pouf components; persisted state lives in Fireproof. Every write surface is gated on `useVibe(dbName).can`.
6
+
7
+ ## The block
8
+
9
+ One view with one job. An `Eyebrow`, the `Heading` and a muted count of what is left open the page; the add form sits on a `Card` whose `Add task` button is the view's one lead; a `Segmented` filter (`tone="info"`) and a quiet `Clear completed` button sit above the list; each task is its own `RowCard` with a `Checkbox` and its text, and an `Empty` stands in whenever the current filter has nothing to show. Clearing is irreversible, so it asks first with a `Confirm` wearing `tone="down"`, and says it is done with a `toast`. Every write waits on its `can` verdict from `useVibe("todos")`, the same database the tasks live in: the add form shows a `Skeleton` inside an `aria-busy` wrapper while the verdict is still resolving and a sentence in the app's own words when adding is not open to this visitor; a `Checkbox` is disabled unless `can.edit(task).ok`; and `Clear completed` clears only the tasks `can.delete` allows.
10
+
11
+ ### `App.jsx`
12
+ ```jsx
13
+ import React, { useState } from "react";
14
+ import { useFireproof } from "use-fireproof";
15
+ import { useVibe } from "use-vibes";
16
+ import {
17
+ Button,
18
+ Card,
19
+ Empty,
20
+ Eyebrow,
21
+ Field,
22
+ Heading,
23
+ Input,
24
+ Row,
25
+ RowCard,
26
+ Segmented,
27
+ Skeleton,
28
+ Stack,
29
+ Text,
30
+ } from "@vibes.diy/pouf";
31
+ import { Checkbox, Confirm, Toaster, toast } from "@vibes.diy/pouf/interactive";
32
+
33
+ const FILTERS = [
34
+ { value: "all", label: "All" },
35
+ { value: "open", label: "Open" },
36
+ { value: "done", label: "Done" },
37
+ ];
38
+
39
+ export default function App() {
40
+ const { database, useLiveQuery } = useFireproof("todos");
41
+ const { docs } = useLiveQuery("type", { key: "task" });
42
+ const { can, me } = useVibe("todos");
43
+ const tasks = [...docs].sort((a, b) => a.createdAt - b.createdAt);
44
+
45
+ const [draft, setDraft] = useState("");
46
+ const [error, setError] = useState(undefined);
47
+ const [filter, setFilter] = useState("all");
48
+
49
+ const open = tasks.filter((t) => !t.done);
50
+ const done = tasks.filter((t) => t.done);
51
+ const shown = filter === "open" ? open : filter === "done" ? done : tasks;
52
+ const clearable = done.filter((t) => can.delete(t).ok);
53
+ // The verdict for the doc addTask writes, carrying the same fields it stamps.
54
+ const canAdd = can.create({ type: "task", authorHandle: me?.userHandle });
55
+
56
+ async function addTask(e) {
57
+ e.preventDefault();
58
+ const text = draft.trim();
59
+ if (text === "") {
60
+ setError("Type a task first.");
61
+ return;
62
+ }
63
+ setError(undefined);
64
+ await database.put({ type: "task", text, done: false, createdAt: Date.now(), authorHandle: me?.userHandle });
65
+ // Cleared only once the write lands, so a local failure keeps the typed words.
66
+ setDraft("");
67
+ }
68
+
69
+ function setDone(task, checked) {
70
+ database.put({ ...task, done: checked === true });
71
+ }
72
+
73
+ async function clearCompleted() {
74
+ const count = clearable.length;
75
+ await Promise.all(clearable.map((t) => database.del(t._id)));
76
+ toast.success(count === 1 ? "Cleared 1 task" : `Cleared ${count} tasks`);
77
+ }
78
+
79
+ return (
80
+ <main className="mx-auto max-w-xl px-4 py-8">
81
+ <Stack gap={5}>
82
+ <Stack gap={1}>
83
+ <Eyebrow>Your list</Eyebrow>
84
+ <Heading level={1}>Today</Heading>
85
+ <Text muted>{open.length === 1 ? "1 task left" : `${open.length} tasks left`}</Text>
86
+ </Stack>
87
+
88
+ {canAdd.pending ? (
89
+ // Skeleton is aria-hidden; the wrapper tells assistive tech the form is still on its way.
90
+ <div aria-busy="true">
91
+ <Skeleton variant="card" />
92
+ </div>
93
+ ) : !canAdd.ok ? (
94
+ <Text muted>You're viewing this list. Adding tasks opens up once you're added to it.</Text>
95
+ ) : (
96
+ <Card>
97
+ <form onSubmit={addTask} noValidate>
98
+ <Stack gap={3}>
99
+ <Field label="New task" error={error}>
100
+ {(id, describedBy) => (
101
+ <Input
102
+ id={id}
103
+ describedBy={describedBy}
104
+ value={draft}
105
+ onChange={(value) => {
106
+ setDraft(value);
107
+ if (error) setError(undefined);
108
+ }}
109
+ placeholder="Water the plants"
110
+ autoComplete="off"
111
+ invalid={error !== undefined}
112
+ />
113
+ )}
114
+ </Field>
115
+ <Row justify="end">
116
+ <Button type="submit">Add task</Button>
117
+ </Row>
118
+ </Stack>
119
+ </form>
120
+ </Card>
121
+ )}
122
+
123
+ <Row justify="between">
124
+ <Segmented label="Show" tone="info" value={filter} onChange={setFilter} options={FILTERS} />
125
+ <Confirm
126
+ title="Clear completed tasks?"
127
+ body="Every ticked task is removed from the list. This can't be undone."
128
+ confirmLabel="Clear them"
129
+ cancelLabel="Keep them"
130
+ tone="down"
131
+ onConfirm={clearCompleted}
132
+ >
133
+ <Button size="sm" variant="quiet" disabled={clearable.length === 0}>
134
+ Clear completed
135
+ </Button>
136
+ </Confirm>
137
+ </Row>
138
+
139
+ {shown.length === 0 ? (
140
+ <Empty icon="ok" title={tasks.length === 0 ? "No tasks yet" : "Nothing here"}>
141
+ {tasks.length === 0 ? "Add the first one above." : "Pick another filter to see the rest."}
142
+ </Empty>
143
+ ) : (
144
+ <Stack gap={2}>
145
+ {shown.map((task) => (
146
+ <RowCard key={task._id}>
147
+ <Row gap={3} wrap={false}>
148
+ <Checkbox
149
+ checked={task.done}
150
+ onChange={(checked) => setDone(task, checked)}
151
+ disabled={!can.edit(task).ok}
152
+ label={task.text}
153
+ hideLabel
154
+ />
155
+ <Text muted={task.done}>{task.text}</Text>
156
+ </Row>
157
+ </RowCard>
158
+ ))}
159
+ </Stack>
160
+ )}
161
+ </Stack>
162
+ <div className="pouf-toasts">
163
+ <Toaster />
164
+ </div>
165
+ </main>
166
+ );
167
+ }
168
+ ```
169
+
170
+ ## Adapting
171
+
172
+ - Rename the record to the app's own noun (`chore`, `item`, `book`) in the `type` key, the heading and the copy; keep one document per task.
173
+ - Add a field such as a due date or a tag as one more `Field` in the form and one more property on the saved document; show it in the row as `Text muted` or a `Badge` with an explicit meaning tone (`warn` for due today, `idle` for someday).
174
+ - Several lists become a `Segmented` or `Tabs` over a `list` property, not a second database.
175
+ - Keep the `Checkbox`'s `hideLabel` beside the row's `Text`: the box keeps its accessible name and the task prints once.
176
+ - Every other button stays `variant="quiet"`; `Add task` is the view's one lead.
177
+ - A new write surface gets its own verdict: `can.create(draft)` with the fields the write stamps, `can.edit(doc)` or `can.delete(doc)` on the document it changes, always on `useVibe` of the database it writes.
178
+
179
+ Adapted from 1st-Pouf (MIT) https://1st-pouf.worksonmy.dev/r/todo.json
@@ -0,0 +1,2 @@
1
+ import type { LlmConfig } from "./types.js";
2
+ export declare const poufWeatherConfig: LlmConfig;
@@ -0,0 +1,6 @@
1
+ export const poufWeatherConfig = {
2
+ name: "pouf-weather",
3
+ label: "Pouf weather block",
4
+ description: "Weather card with city and unit pickers, hourly strip and forecast",
5
+ };
6
+ //# sourceMappingURL=pouf-weather.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pouf-weather.js","sourceRoot":"","sources":["../../jsr/llms/pouf-weather.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,oEAAoE;CAClF,CAAC"}
@@ -0,0 +1,186 @@
1
+ # Pouf Weather
2
+
3
+ A weather card for a few places someone cares about: the cities a remote team works from, the allotment and the cabin, the stops on a trip, the towns a delivery round covers. Reach for it when the app shows conditions and a short forecast and lets the person switch place, units and day. The example runs on a small sample forecast written into the page, labelled as a sample on screen, so it renders the same everywhere with no key and no network call; `## Adapting` shows where real forecasts come from.
4
+
5
+ Built from @vibes.diy/pouf components; persisted state lives in Fireproof.
6
+
7
+ ## The block
8
+
9
+ One view with one job: read the weather for a place. A `Heading` names the place under an `Eyebrow`, with an `idle` `Badge` saying the figures are a sample. Two `Segmented` pickers (`tone="info"`) switch the place and the units (°C with km/h, or °F with mph, so temperature and wind always change together). The chosen day's high is a `Stat` (`info`, its icon from the day's condition), with the condition and the low in muted `Text` and three `Metric`s for that day's humidity, wind and UV. An hourly strip on a tight `Card` shows six times of day, each a muted time, an `Icon` and a numeric `Text`. The five-day forecast is one clickable `RowCard` per day with a decorative `orange` `Blob`; the chosen day is the `selected` row, and that selected row is the view's one lead, so nothing else wears the lead tone. Picking a place swaps every figure and returns to today; picking a day moves the high, the condition, all three readings and the hourly strip to that day. Nothing is written: the place, units and day are page state.
10
+
11
+ ### `App.jsx`
12
+ ```jsx
13
+ import React, { useState } from "react";
14
+ import { Badge, Blob, Card, Eyebrow, Heading, Icon, Metric, Row, RowCard, Segmented, Stack, Stat, Text } from "@vibes.diy/pouf";
15
+
16
+ // A sample forecast, written into the page and labelled as one on screen. Real figures come
17
+ // from the app's backend (see Adapting); the shape below is the shape those documents keep.
18
+ // Every reading is per day, so picking a day moves all of them; wind is stored in km/h.
19
+ const PLACES = [
20
+ {
21
+ id: "lisbon",
22
+ name: "Lisbon",
23
+ days: [
24
+ { hi: 24, lo: 16, icon: "sun", condition: "Sunny", humidity: 41, windKmh: 12, uv: "High" },
25
+ { hi: 21, lo: 15, icon: "cloud", condition: "Cloudy", humidity: 47, windKmh: 16, uv: "High" },
26
+ { hi: 19, lo: 14, icon: "rain", condition: "Showers", humidity: 53, windKmh: 9, uv: "High" },
27
+ { hi: 23, lo: 15, icon: "sun", condition: "Sunny", humidity: 37, windKmh: 18, uv: "High" },
28
+ { hi: 26, lo: 17, icon: "sun", condition: "Hot and sunny", humidity: 33, windKmh: 10, uv: "High" },
29
+ ],
30
+ },
31
+ {
32
+ id: "oslo",
33
+ name: "Oslo",
34
+ days: [
35
+ { hi: 9, lo: 3, icon: "cloud", condition: "Overcast", humidity: 68, windKmh: 18, uv: "Low" },
36
+ { hi: 7, lo: 2, icon: "rain", condition: "Rain", humidity: 74, windKmh: 22, uv: "Low" },
37
+ { hi: 11, lo: 4, icon: "sun", condition: "Clear", humidity: 80, windKmh: 15, uv: "Low" },
38
+ { hi: 8, lo: 1, icon: "wind", condition: "Windy", humidity: 64, windKmh: 24, uv: "Low" },
39
+ { hi: 10, lo: 3, icon: "rain", condition: "Showers", humidity: 60, windKmh: 16, uv: "Low" },
40
+ ],
41
+ },
42
+ {
43
+ id: "dubai",
44
+ name: "Dubai",
45
+ days: [
46
+ { hi: 41, lo: 29, icon: "sun", condition: "Scorching", humidity: 55, windKmh: 9, uv: "Extreme" },
47
+ { hi: 40, lo: 28, icon: "sun", condition: "Sunny", humidity: 61, windKmh: 13, uv: "Extreme" },
48
+ { hi: 39, lo: 27, icon: "sun", condition: "Hazy sun", humidity: 67, windKmh: 6, uv: "Extreme" },
49
+ { hi: 42, lo: 30, icon: "sun", condition: "Scorching", humidity: 51, windKmh: 15, uv: "Extreme" },
50
+ { hi: 38, lo: 27, icon: "cloud", condition: "Dusty", humidity: 47, windKmh: 7, uv: "Extreme" },
51
+ ],
52
+ },
53
+ ];
54
+ // One switch for both systems: °C with km/h, or °F with mph.
55
+ const UNITS = [
56
+ { value: "c", label: "°C, km/h" },
57
+ { value: "f", label: "°F, mph" },
58
+ ];
59
+ const HOUR_LABELS = ["6am", "9am", "Noon", "3pm", "6pm", "9pm"];
60
+ // Where each hour sits between the day's low and high: a plausible curve without per-hour data.
61
+ const HOUR_CURVE = [0.1, 0.5, 0.9, 1, 0.65, 0.25];
62
+
63
+ function hoursFor(day) {
64
+ return HOUR_LABELS.map((label, i) => ({
65
+ label,
66
+ temp: Math.round(day.lo + (day.hi - day.lo) * HOUR_CURVE[i]),
67
+ // The night ends of a sunny day read as cloud rather than sun.
68
+ icon: (i === 0 || i === HOUR_LABELS.length - 1) && day.icon === "sun" ? "cloud" : day.icon,
69
+ }));
70
+ }
71
+
72
+ // Day names count forward from today, so the sample reads as this week's forecast.
73
+ function dayName(offset) {
74
+ if (offset === 0) return "Today";
75
+ const d = new Date();
76
+ d.setDate(d.getDate() + offset);
77
+ return d.toLocaleDateString(undefined, { weekday: "short" });
78
+ }
79
+
80
+ export default function App() {
81
+ const [placeId, setPlaceId] = useState(PLACES[0].id);
82
+ const [unit, setUnit] = useState("c");
83
+ const [dayIndex, setDayIndex] = useState(0);
84
+
85
+ const place = PLACES.find((p) => p.id === placeId);
86
+ const day = place.days[dayIndex];
87
+ const deg = (c) => `${unit === "f" ? Math.round((c * 9) / 5 + 32) : c}°`;
88
+ const speed = (kmh) => (unit === "f" ? `${Math.round(kmh * 0.621)} mph` : `${kmh} km/h`);
89
+
90
+ function pickPlace(next) {
91
+ setPlaceId(next);
92
+ // A new place starts on today, not on whichever day the last place was showing.
93
+ setDayIndex(0);
94
+ }
95
+
96
+ return (
97
+ <main className="mx-auto max-w-xl px-4 py-8">
98
+ <Stack gap={5}>
99
+ <Row justify="between" align="top">
100
+ <Stack gap={1}>
101
+ <Row gap={2} wrap={false}>
102
+ <Icon name="pin" size="sm" />
103
+ <Eyebrow>Weather</Eyebrow>
104
+ </Row>
105
+ <Heading level={1}>{place.name}</Heading>
106
+ </Stack>
107
+ <Badge tone="idle">Sample forecast</Badge>
108
+ </Row>
109
+
110
+ <Row gap={3}>
111
+ <Segmented label="Place" tone="info" value={placeId} onChange={pickPlace} options={PLACES.map((p) => ({ value: p.id, label: p.name }))} />
112
+ <Segmented label="Units" tone="info" value={unit} onChange={setUnit} options={UNITS} />
113
+ </Row>
114
+
115
+ <Card>
116
+ <Stack gap={4}>
117
+ <Stat label={`${dayName(dayIndex)} high`} value={deg(day.hi)} icon={day.icon} tone="info" />
118
+ <Text muted>
119
+ {day.condition}, low {deg(day.lo)}
120
+ </Text>
121
+ <Row gap={5}>
122
+ <Metric label="Humidity" value={`${day.humidity}%`} />
123
+ <Metric label="Wind" value={speed(day.windKmh)} />
124
+ <Metric label="UV index" value={day.uv} num={false} />
125
+ </Row>
126
+ </Stack>
127
+ </Card>
128
+
129
+ <Card variant="tight">
130
+ <Stack gap={3}>
131
+ <Eyebrow>Hourly, {dayName(dayIndex)}</Eyebrow>
132
+ <Row gap={4}>
133
+ {hoursFor(day).map((h) => (
134
+ <Stack key={h.label} gap={2}>
135
+ <Text size="sm" muted>
136
+ {h.label}
137
+ </Text>
138
+ <Icon name={h.icon} />
139
+ <Text num>{deg(h.temp)}</Text>
140
+ </Stack>
141
+ ))}
142
+ </Row>
143
+ </Stack>
144
+ </Card>
145
+
146
+ <Stack gap={3}>
147
+ <Heading level={2}>Five-day forecast</Heading>
148
+ <Stack gap={2}>
149
+ {place.days.map((d, i) => (
150
+ <RowCard key={i} selected={i === dayIndex} onClick={() => setDayIndex(i)}>
151
+ <Row justify="between" wrap={false}>
152
+ <Row gap={3} wrap={false}>
153
+ <Blob icon={d.icon} tone="orange" size="sm" />
154
+ <Stack gap={1}>
155
+ <Text>{dayName(i)}</Text>
156
+ <Text size="sm" muted>
157
+ {d.condition}
158
+ </Text>
159
+ </Stack>
160
+ </Row>
161
+ <Row gap={3} wrap={false}>
162
+ <Text num>{deg(d.hi)}</Text>
163
+ <Text num muted>
164
+ {deg(d.lo)}
165
+ </Text>
166
+ </Row>
167
+ </Row>
168
+ </RowCard>
169
+ ))}
170
+ </Stack>
171
+ </Stack>
172
+ </Stack>
173
+ </main>
174
+ );
175
+ }
176
+ ```
177
+
178
+ ## Adapting
179
+
180
+ - Real forecasts come from the app's backend, never from the page: a `backend.js` `scheduled` handler (the `backend` skill) reads a forecast feed with `ctx.fetch` every 15 minutes or so, writes one `forecast` document per place (the `PLACES` shape above) into the `weather` database, and keeps the last good documents when a refresh fails. The page then reads that same database, `useFireproof("weather")` with `useLiveQuery("type", { key: "forecast" })`, in place of `PLACES`, and drops the `Sample forecast` badge.
181
+ - Never fetch a forecast from render or a React effect, and never put an API key in `App.jsx`. Prefer a keyless public forecast feed: a plain `GET` with no credentials reaches any https host. A keyed call (an `Authorization` header, a key read from the backend's secrets) is admitted only when the forecast host is CORS-open or on the platform's curated list, so check the host before choosing a keyed API.
182
+ - Change the places, not the shape: each one keeps a list of days with `hi` and `lo` in °C, `humidity` in percent, `windKmh`, `uv`, an `icon` from the built-in set (`sun`, `cloud`, `rain`, `wind`) and a `condition` in plain words. Store one unit and convert at render, as `deg` and `speed` do.
183
+ - To remember a person's places or units between visits, keep one small preference document per signed-in person and gate its write on `useVibe(dbName).can`, as the settings block does; a visitor who has not signed in keeps the page defaults.
184
+ - Keep the selected day as the view's one lead. A button added to the card (say, `Add a place`) becomes the lead instead, and the selected row then shows its choice with an `info` `Badge` rather than `selected`.
185
+
186
+ Adapted from 1st-Pouf (MIT) https://1st-pouf.worksonmy.dev/r/weather.json
@@ -312,6 +312,8 @@ Give the tag its profile action and the clickable shape needs no wrapper. The ta
312
312
 
313
313
  **The one in-app reason to render a no-prop `<ViewerTag />` is inline avatar self-edit.** A no-prop tag shows the signed-in viewer a dashed edit ring that lets them change their _own_ avatar in place, and that works for **every** signed-in viewer — the Switch's avatar editing is owner-only. So if your app wants any member (not just the owner) to update their photo without leaving the app, render a guarded `{viewer && <ViewerTag />}` for that — otherwise leave the current-viewer pill to the Switch.
314
314
 
315
+ **Invited people.** An `invite:<id>` subject from `HandleInput` renders as an "Invited · not here yet" pill until that person arrives, and from then on as the handle they joined as — avatar and profile tap included — with no change to the stored subject.
316
+
315
317
  **Undefined safety.** If `userHandle` is present in props but falsy (e.g. a missing field from a loop lookup), `ViewerTag` renders a dim italic placeholder instead of the edit ring. This prevents a broken data source from accidentally granting photo-edit access to an arbitrary pill.
316
318
 
317
319
  **Anonymous & always-safe.** `ViewerTag` never throws regardless of login state. A no-prop `<ViewerTag />` renders a "Sign in" button for anonymous viewers — a fine fallback, but it is an identity chip in whatever spot you put it, not a CTA you can word or time. When the goal is conversion, write the prompt yourself and wire it to `requestLogin()`.
@@ -338,6 +340,7 @@ How it behaves:
338
340
  - **Picking one collapses the input into a ViewerTag** for that handle (avatar + name, resolved automatically), with an × to clear and pick again.
339
341
  - **Raw entry always works.** Pressing Enter commits the sanitized typed text even when nothing matched, so users can reference someone brand-new.
340
342
  - `onChange` fires with the picked handle string (or `null` on clear). **Persist only the handle** on your docs — render it later with `<ViewerTag userHandle={...} />`, exactly like `authorHandle`.
343
+ - **It also takes an email address** for someone not on Vibes yet: after the viewer approves the invite, `onChange` receives an opaque `invite:<id>` subject — store it as the invitee exactly like a handle; the app never holds the address.
341
344
  - Works uncontrolled too (omit `value`) when you only need the `onChange` events.
342
345
  - Theming matches `ViewerTag` — it reads the same canonical CSS variables (`--surface`, `--text-primary`, `--text-secondary`, `--border`, `--accent`).
343
346
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/prompts",
3
- "version": "14.3.59",
3
+ "version": "14.3.65",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "exports": {
@@ -13,6 +13,7 @@
13
13
  "./themes/looks/index.js": "./themes/looks/index.js",
14
14
  "./themes/ornament-pad.js": "./themes/ornament-pad.js",
15
15
  "./themes/palette-gen.js": "./themes/palette-gen.js",
16
+ "./themes/pouf-rooms.js": "./themes/pouf-rooms.js",
16
17
  "./themes/style-presets.js": "./themes/style-presets.js",
17
18
  "./themes/theme-slugs.js": "./themes/theme-slugs.js"
18
19
  },
@@ -37,9 +38,9 @@
37
38
  "license": "Apache-2.0",
38
39
  "dependencies": {
39
40
  "@adviser/cement": "~0.5.34",
40
- "@vibes.diy/call-ai-v2": "14.3.59",
41
- "@vibes.diy/identity": "14.3.59",
42
- "@vibes.diy/use-vibes-types": "14.3.59",
41
+ "@vibes.diy/call-ai-v2": "14.3.65",
42
+ "@vibes.diy/identity": "14.3.65",
43
+ "@vibes.diy/use-vibes-types": "14.3.65",
43
44
  "arktype": "~2.2.6",
44
45
  "json-schema-faker": "~0.6.3"
45
46
  },
package/prompts.js CHANGED
@@ -88,7 +88,7 @@ export async function makeBaseSystemPrompt(model, sessionDoc) {
88
88
  const themeCatalogNames = getThemeCatalogNames();
89
89
  const colorsetCatalogNames = getColorsetCatalogNames();
90
90
  const requestedTheme = typeof sessionDoc?.theme === "string" ? sessionDoc.theme : undefined;
91
- const validatedTheme = requestedTheme && themeCatalogNames.has(requestedTheme) ? requestedTheme : undefined;
91
+ const validatedTheme = requestedTheme && (themeCatalogNames.has(requestedTheme) || hasLookBrief(requestedTheme)) ? requestedTheme : undefined;
92
92
  const requestedColorTheme = typeof sessionDoc?.colorTheme === "string" ? sessionDoc.colorTheme : undefined;
93
93
  const validatedColorTheme = requestedColorTheme && colorsetCatalogNames.has(requestedColorTheme)
94
94
  ? requestedColorTheme
@@ -115,7 +115,7 @@ export async function makeBaseSystemPrompt(model, sessionDoc) {
115
115
  headLook = `\n<look-brief>\n${rBrief.Ok() ?? ""}\n</look-brief>\n`;
116
116
  }
117
117
  }
118
- const lookTokenBlock = headLook.length > 0 ? renderLookTokenDisciplineBlock() : undefined;
118
+ const lookTokenBlock = headLook.length > 0 && validatedTheme !== undefined ? renderLookTokenDisciplineBlock(validatedTheme) : undefined;
119
119
  const genericTokenBlock = "<theme-tokens>\nThe platform injects this app's color + structural tokens at runtime — " +
120
120
  "`--background`, `--surface`, `--primary`, `--secondary`, `--accent`, `--text-primary`, `--text-secondary`, " +
121
121
  "`--border`, `--radius`, `--border-width`, `--font-family`, `--vibes-spacing`, `--vibes-shadow` and their " +
package/prompts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../jsr/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../jsr/prompts.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ export interface StylePrompt {
2
2
  name: string;
3
3
  prompt: string;
4
4
  }
5
- export declare const BRUTALIST_ROOT_CSS = ":root {\n --background: #f5f0e0;\n --surface: #ffffff;\n --primary: #DA291C;\n --secondary: #fedd00;\n --accent: #3b82f6;\n --text-primary: #1a1a2e;\n --text-secondary: #6b6b80;\n --border: #1a1a2e;\n --success: #22c55e;\n --text-disabled: color-mix(in srgb, var(--text-primary) 38%, var(--background));\n --warning: #f59e0b;\n --error: #ef4444;\n --neutral: #6b7280;\n --font-family: 'Space Grotesk', sans-serif;\n --font-family-mono: ui-monospace, 'JetBrains Mono', Menlo, monospace;\n --radius: 4px;\n --radius-sm: 4px;\n --radius-lg: 4px;\n --vibes-spacing: 1rem;\n --vibes-shadow: 4px 4px 0 var(--border);\n --vibes-shadow-sm: 3px 3px 0 var(--border);\n --vibes-shadow-lg: 6px 6px 0 var(--border);\n --letter-spacing: -0.02em;\n --letter-spacing-wide: 0.15em;\n --font-weight: 700;\n --text-transform: uppercase;\n --font-size-base: 1rem;\n --border-width: 1px;\n}\n@media (prefers-color-scheme: dark) {\n :root {\n --background: oklch(0.18 0.02 280);\n --surface: oklch(0.22 0.02 280);\n --primary: #DA291C;\n --secondary: #fedd00;\n --accent: #3b82f6;\n --text-primary: oklch(0.96 0.01 80);\n --text-secondary: oklch(0.66 0.03 280);\n --border: oklch(0.96 0.01 80);\n --success: #22c55e;\n --text-disabled: color-mix(in srgb, var(--text-primary) 38%, var(--background));\n --warning: #f59e0b;\n --error: #ef4444;\n --neutral: #6b7280;\n }\n}";
5
+ export declare const BRUTALIST_ROOT_CSS = ":root {\n --background: #f5f0e0;\n --surface: #ffffff;\n --primary: #DA291C;\n --secondary: #fedd00;\n --accent: #3b82f6;\n --text-primary: #1a1a2e;\n --text-secondary: #6b6b80;\n --border: #1a1a2e;\n --success: #22c55e;\n --info: #3b82f6;\n --text-disabled: color-mix(in srgb, var(--text-primary) 38%, var(--background));\n --warning: #f59e0b;\n --error: #ef4444;\n --neutral: #6b7280;\n --font-family: 'Space Grotesk', sans-serif;\n --font-family-mono: ui-monospace, 'JetBrains Mono', Menlo, monospace;\n --radius: 4px;\n --radius-sm: 4px;\n --radius-lg: 4px;\n --vibes-spacing: 1rem;\n --vibes-shadow: 4px 4px 0 var(--border);\n --vibes-shadow-sm: 3px 3px 0 var(--border);\n --vibes-shadow-lg: 6px 6px 0 var(--border);\n --letter-spacing: -0.02em;\n --letter-spacing-wide: 0.15em;\n --font-weight: 700;\n --text-transform: uppercase;\n --font-size-base: 1rem;\n --border-width: 1px;\n}\n@media (prefers-color-scheme: dark) {\n :root {\n --background: oklch(0.18 0.02 280);\n --surface: oklch(0.22 0.02 280);\n --primary: #DA291C;\n --secondary: #fedd00;\n --accent: #3b82f6;\n --text-primary: oklch(0.96 0.01 80);\n --text-secondary: oklch(0.66 0.03 280);\n --border: oklch(0.96 0.01 80);\n --success: #22c55e;\n --info: #3b82f6;\n --text-disabled: color-mix(in srgb, var(--text-primary) 38%, var(--background));\n --warning: #f59e0b;\n --error: #ef4444;\n --neutral: #6b7280;\n }\n}";
6
6
  export declare const stylePrompts: StylePrompt[];
7
7
  export declare const DEFAULT_STYLE_NAME: "brutalist web";
8
8
  export declare const defaultStylePrompt: string;
package/style-prompts.js CHANGED
@@ -8,6 +8,7 @@ export const BRUTALIST_ROOT_CSS = `:root {
8
8
  --text-secondary: #6b6b80;
9
9
  --border: #1a1a2e;
10
10
  --success: #22c55e;
11
+ --info: #3b82f6;
11
12
  --text-disabled: color-mix(in srgb, var(--text-primary) 38%, var(--background));
12
13
  --warning: #f59e0b;
13
14
  --error: #ef4444;
@@ -39,6 +40,7 @@ export const BRUTALIST_ROOT_CSS = `:root {
39
40
  --text-secondary: oklch(0.66 0.03 280);
40
41
  --border: oklch(0.96 0.01 80);
41
42
  --success: #22c55e;
43
+ --info: #3b82f6;
42
44
  --text-disabled: color-mix(in srgb, var(--text-primary) 38%, var(--background));
43
45
  --warning: #f59e0b;
44
46
  --error: #ef4444;
@@ -1 +1 @@
1
- {"version":3,"file":"style-prompts.js","sourceRoot":"","sources":["../jsr/style-prompts.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8ChC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAkB;IAIzC;QACE,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,yXAAyX;YACzX,04BAA04B;YAC14B,o1BAAo1B;YACp1B,qjCAAqjC;YACrjC,ixBAAixB;YACjxB,0JAA0J;YAC1J,i0BAAi0B;YACj0B,ihEAAihE;YACjhE,mcAAmc;YACnc,yaAAya;YACza,2IAA2I;YAC3I,waAAwa;YACxa,ylCAAylC;YAKzlC;;;EAGJ,kBAAkB;SACX;YACH,oDAAoD;SACrD,CAAC,IAAI,CAAC,MAAM,CAAC;KACf;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EACJ,+8BAA+8B;KACl9B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,uBAAuB;KAChC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,sBAAsB;KAC/B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,mBAAmB;KAC5B;IACD;QACE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,mBAAmB;KAC5B;IACD;QACE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,kBAAkB;KAC3B;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,qBAAqB;KAC9B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,0BAA0B;KACnC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,kBAAkB;KAC3B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EACJ,orCAAorC;KACvrC;CACF,CAAC;AAGF,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAwB,CAAC;AAG3D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;AACnD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;IAC7B,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,IAAI,gCAAgC,CAAC,CAAC;IAC7F,CAAC;IACD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAGD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE;IACtC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,uBAAuB,kBAAkB,iDAAiD,SAAS,gDAAgD,CACpJ,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"style-prompts.js","sourceRoot":"","sources":["../jsr/style-prompts.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDhC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAkB;IAIzC;QACE,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,yXAAyX;YACzX,04BAA04B;YAC14B,o1BAAo1B;YACp1B,qjCAAqjC;YACrjC,ixBAAixB;YACjxB,0JAA0J;YAC1J,i0BAAi0B;YACj0B,ihEAAihE;YACjhE,mcAAmc;YACnc,yaAAya;YACza,2IAA2I;YAC3I,waAAwa;YACxa,ylCAAylC;YAKzlC;;;EAGJ,kBAAkB;SACX;YACH,oDAAoD;SACrD,CAAC,IAAI,CAAC,MAAM,CAAC;KACf;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EACJ,+8BAA+8B;KACl9B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,uBAAuB;KAChC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,sBAAsB;KAC/B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,mBAAmB;KAC5B;IACD;QACE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,mBAAmB;KAC5B;IACD;QACE,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,kBAAkB;KAC3B;IACD;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,qBAAqB;KAC9B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,0BAA0B;KACnC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,kBAAkB;KAC3B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EACJ,orCAAorC;KACvrC;CACF,CAAC;AAGF,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAwB,CAAC;AAG3D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;AACnD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;IAC7B,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,IAAI,gCAAgC,CAAC,CAAC;IAC7F,CAAC;IACD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAGD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE;IACtC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,uBAAuB,kBAAkB,iDAAiD,SAAS,gDAAgD,CACpJ,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,79 @@
1
+ # GENERATED by scripts/generate-pouf-colorsets.ts from the pouf room generator — do not edit by hand.
2
+ name: Aqua
3
+ colors:
4
+ background: "#ebfafb"
5
+ surface: "#ffffff"
6
+ primary: "#8ee6e9"
7
+ secondary: "#d9a8f7"
8
+ accent: "#d9a8f7"
9
+ text-primary: "#092728"
10
+ text-secondary: "#426566"
11
+ text-disabled: "#91a2a3"
12
+ border: "#8ee6e9"
13
+ success: "#a9f4c6"
14
+ warning: "#ffe669"
15
+ error: "#fdb59d"
16
+ neutral: "#e0f3f3"
17
+ info: "#82d9fa"
18
+ colorsDark:
19
+ background: "#081112"
20
+ surface: "#121e1f"
21
+ primary: "#8ee6e9"
22
+ secondary: "#d9a8f7"
23
+ accent: "#d9a8f7"
24
+ text-primary: "#e7f3f3"
25
+ text-secondary: "#9cb7b8"
26
+ text-disabled: "#657576"
27
+ border: "#8ee6e9"
28
+ success: "#a9f4c6"
29
+ warning: "#ffe669"
30
+ error: "#fdb59d"
31
+ neutral: "#182727"
32
+ info: "#82d9fa"
33
+ extras:
34
+ on-primary: "#1a1a1a"
35
+ on-secondary: "#1a1a1a"
36
+ on-accent: "var(--on-primary)"
37
+ on-success: "#1a1a1a"
38
+ on-warning: "#1a1a1a"
39
+ on-error: "#1a1a1a"
40
+ on-info: "#1a1a1a"
41
+ bg: "var(--background)"
42
+ ink: "var(--text-primary)"
43
+ purple: "var(--primary)"
44
+ mint: "var(--success)"
45
+ pink: "var(--error)"
46
+ yellow: "var(--warning)"
47
+ blue: "var(--info)"
48
+ orange: "var(--secondary)"
49
+ up: "var(--mint)"
50
+ down: "var(--pink)"
51
+ warn: "var(--yellow)"
52
+ idle: "var(--purple)"
53
+ extrasDark:
54
+ on-primary: "#1a1a1a"
55
+ on-secondary: "#1a1a1a"
56
+ on-accent: "#1a1a1a"
57
+ on-success: "#1a1a1a"
58
+ on-warning: "#1a1a1a"
59
+ on-error: "#1a1a1a"
60
+ on-info: "#1a1a1a"
61
+ structural:
62
+ font-family: "'Nunito Variable', 'Nunito', 'SF Pro Rounded', 'Helvetica Neue', system-ui, sans-serif"
63
+ font-family-mono: "ui-monospace, 'JetBrains Mono', Menlo, monospace"
64
+ radius: "20px"
65
+ radius-sm: "12px"
66
+ radius-lg: "32px"
67
+ spacing: "1rem"
68
+ shadow: "inset 0 -6px 0 rgba(0,0,0,0.15), inset 0 4px 0 rgba(255,255,255,0.35), 0 8px 16px rgba(58,46,92,0.2)"
69
+ shadow-sm: "inset 0 -3px 0 rgba(0,0,0,0.12), inset 0 2px 0 rgba(255,255,255,0.3), 0 4px 10px rgba(58,46,92,0.16)"
70
+ shadow-lg: "inset 0 -8px 0 rgba(0,0,0,0.16), inset 0 6px 0 rgba(255,255,255,0.4), 0 16px 32px rgba(58,46,92,0.24)"
71
+ letter-spacing: "0"
72
+ letter-spacing-wide: "0.02em"
73
+ font-weight: "700"
74
+ text-transform: "none"
75
+ r-card: "32px"
76
+ r-control: "20px"
77
+ r-blob: "24px"
78
+ lip: "10px"
79
+ lip-row: "6px"