@silvery/examples 0.17.4 → 0.17.5

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 (62) hide show
  1. package/dist/_banner-A70_y2Vi.mjs +43 -0
  2. package/dist/{ansi-CCE2pVS0.mjs → ansi-0VXlUmNn.mjs} +7 -7
  3. package/dist/apng-B0gRaDVT.mjs +3 -0
  4. package/dist/{apng-HhhBjRGt.mjs → apng-BTRDTfDW.mjs} +2 -2
  5. package/dist/apps/aichat/index.mjs +69 -70
  6. package/dist/apps/app-todo.mjs +19 -20
  7. package/dist/apps/async-data.mjs +40 -41
  8. package/dist/apps/cli-wizard.mjs +51 -52
  9. package/dist/apps/clipboard.mjs +26 -27
  10. package/dist/apps/components.mjs +189 -190
  11. package/dist/apps/data-explorer.mjs +52 -53
  12. package/dist/apps/dev-tools.mjs +39 -40
  13. package/dist/apps/explorer.mjs +73 -74
  14. package/dist/apps/gallery.mjs +61 -62
  15. package/dist/apps/inline-bench.mjs +1 -1
  16. package/dist/apps/kanban.mjs +22 -23
  17. package/dist/apps/layout-ref.mjs +27 -28
  18. package/dist/apps/outline.mjs +35 -36
  19. package/dist/apps/paste-demo.mjs +33 -34
  20. package/dist/apps/scroll.mjs +11 -12
  21. package/dist/apps/search-filter.mjs +23 -24
  22. package/dist/apps/selection.mjs +30 -31
  23. package/dist/apps/spatial-focus-demo.mjs +32 -33
  24. package/dist/apps/task-list.mjs +25 -26
  25. package/dist/apps/terminal-caps-demo.mjs +30 -31
  26. package/dist/apps/terminal.mjs +157 -158
  27. package/dist/apps/text-selection-demo.mjs +62 -63
  28. package/dist/apps/textarea.mjs +21 -22
  29. package/dist/apps/theme.mjs +142 -143
  30. package/dist/apps/transform.mjs +25 -26
  31. package/dist/apps/virtual-10k.mjs +52 -53
  32. package/dist/{backends-Bahh9mKN.mjs → backends-Dj-11kZF.mjs} +1 -1
  33. package/dist/backends-U3QwStfO.mjs +3 -0
  34. package/dist/components/counter.mjs +6 -7
  35. package/dist/components/hello.mjs +5 -6
  36. package/dist/components/progress-bar.mjs +10 -11
  37. package/dist/components/select-list.mjs +8 -9
  38. package/dist/components/spinner.mjs +10 -11
  39. package/dist/components/text-input.mjs +8 -9
  40. package/dist/components/virtual-list.mjs +7 -8
  41. package/dist/{flexily-zero-adapter-UB-ra8fR.mjs → flexily-zero-adapter-ByVzLTFP.mjs} +1 -1
  42. package/dist/gif-B6NGH5gs.mjs +3 -0
  43. package/dist/{gif-BtnXuxLF.mjs → gif-CfkOF-iG.mjs} +2 -2
  44. package/dist/layout/dashboard.mjs +197 -198
  45. package/dist/layout/live-resize.mjs +44 -45
  46. package/dist/layout/overflow.mjs +16 -17
  47. package/dist/layout/text-layout.mjs +67 -68
  48. package/dist/{plugins-D1KtkT4a.mjs → plugins-CT0DdV_E.mjs} +12 -13
  49. package/dist/{src-BTEVGpd9.mjs → src-jO3Zuzjj.mjs} +3 -3
  50. package/dist/{yoga-adapter-BVtQ5OJR.mjs → yoga-adapter-BSQHuMV9.mjs} +1 -1
  51. package/package.json +4 -2
  52. package/dist/_banner-DLPxCqVy.mjs +0 -44
  53. package/dist/apng-mwUQbTTF.mjs +0 -3
  54. package/dist/backends-CCtCDQ94.mjs +0 -3
  55. package/dist/gif-BZaqPPVX.mjs +0 -3
  56. package/dist/jsx-runtime-dMs_8fNu.mjs +0 -241
  57. /package/dist/{UPNG-Cy7ViL8f.mjs → UPNG-ShUlaTDh.mjs} +0 -0
  58. /package/dist/{__vite-browser-external-2447137e-BML7CYau.mjs → __vite-browser-external-2447137e-Bopa5BFR.mjs} +0 -0
  59. /package/dist/{gifenc-CLRW41dk.mjs → gifenc-BI4ihP_T.mjs} +0 -0
  60. /package/dist/{node-NuJ94BWl.mjs → node-nsrAOjH4.mjs} +0 -0
  61. /package/dist/{resvg-js-C_8Wps1F.mjs → resvg-js-Cnk2o49d.mjs} +0 -0
  62. /package/dist/{src-CzfRafCQ.mjs → src-9ZhfQyzD.mjs} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { d as ansi16LightTheme, f as builtinPalettes, h as deriveTheme, t as init_src, u as ansi16DarkTheme } from "../src-CUUOuRH6.mjs";
2
2
  import { t as _usingCtx } from "../usingCtx-CsEf0xO3.mjs";
3
- import { t as require_jsx_runtime } from "../jsx-runtime-dMs_8fNu.mjs";
4
- import { t as ExampleBanner } from "../_banner-DLPxCqVy.mjs";
3
+ import { t as ExampleBanner } from "../_banner-A70_y2Vi.mjs";
5
4
  import { useState } from "react";
6
5
  import { Badge, Blockquote, Box, Code, Divider, H1, H2, H3, Kbd, Lead, Link, Muted, P, ProgressBar, Small, Spinner, Strong, Text, ThemeProvider, Toggle, createTerm, detectTheme, render, useApp, useInput } from "silvery";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region apps/theme.tsx
8
8
  /**
9
9
  * Theme Explorer Example
@@ -15,7 +15,6 @@ import { Badge, Blockquote, Box, Code, Divider, H1, H2, H3, Kbd, Lead, Link, Mut
15
15
  * semantic tokens, ANSI 16-color table, surfaces, components, and typography.
16
16
  */
17
17
  init_src();
18
- var import_jsx_runtime = require_jsx_runtime();
19
18
  const meta = {
20
19
  name: "Theme Explorer",
21
20
  description: "Browse built-in palettes with live color preview",
@@ -31,27 +30,27 @@ const meta = {
31
30
  let allEntries = [];
32
31
  /** Small color swatch: 2 colored block chars */
33
32
  function Swatch({ color }) {
34
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
33
+ return /* @__PURE__ */ jsx(Text, {
35
34
  color,
36
35
  children: "██"
37
36
  });
38
37
  }
39
38
  /** Mini swatch: 4 colored blocks showing palette character */
40
39
  function MiniSwatch({ palette }) {
41
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Text, { children: [
42
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
40
+ return /* @__PURE__ */ jsxs(Text, { children: [
41
+ /* @__PURE__ */ jsx(Text, {
43
42
  color: palette.red,
44
43
  children: "█"
45
44
  }),
46
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
45
+ /* @__PURE__ */ jsx(Text, {
47
46
  color: palette.green,
48
47
  children: "█"
49
48
  }),
50
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
49
+ /* @__PURE__ */ jsx(Text, {
51
50
  color: palette.blue,
52
51
  children: "█"
53
52
  }),
54
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
53
+ /* @__PURE__ */ jsx(Text, {
55
54
  color: palette.yellow,
56
55
  children: "█"
57
56
  })
@@ -59,20 +58,20 @@ function MiniSwatch({ palette }) {
59
58
  }
60
59
  /** Mini swatch from theme tokens (for detected theme without a palette) */
61
60
  function ThemeMiniSwatch({ theme }) {
62
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Text, { children: [
63
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
61
+ return /* @__PURE__ */ jsxs(Text, { children: [
62
+ /* @__PURE__ */ jsx(Text, {
64
63
  color: theme.error,
65
64
  children: "█"
66
65
  }),
67
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
66
+ /* @__PURE__ */ jsx(Text, {
68
67
  color: theme.success,
69
68
  children: "█"
70
69
  }),
71
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
70
+ /* @__PURE__ */ jsx(Text, {
72
71
  color: theme.info,
73
72
  children: "█"
74
73
  }),
75
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
74
+ /* @__PURE__ */ jsx(Text, {
76
75
  color: theme.primary,
77
76
  children: "█"
78
77
  })
@@ -80,33 +79,33 @@ function ThemeMiniSwatch({ theme }) {
80
79
  }
81
80
  /** Left panel: theme list with color swatches */
82
81
  function ThemeList({ entries, selectedIndex }) {
83
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
82
+ return /* @__PURE__ */ jsxs(Box, {
84
83
  flexDirection: "column",
85
84
  width: 30,
86
85
  borderStyle: "single",
87
86
  overflow: "scroll",
88
87
  scrollTo: selectedIndex,
89
88
  children: [
90
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
89
+ /* @__PURE__ */ jsxs(Box, {
91
90
  paddingX: 1,
92
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
91
+ children: [/* @__PURE__ */ jsx(Text, {
93
92
  bold: true,
94
93
  color: "$primary",
95
94
  children: "Palettes"
96
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Muted, { children: [
95
+ }), /* @__PURE__ */ jsxs(Muted, { children: [
97
96
  " (",
98
97
  entries.length,
99
98
  ")"
100
99
  ] })]
101
100
  }),
102
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Divider, {}),
103
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
101
+ /* @__PURE__ */ jsx(Divider, {}),
102
+ /* @__PURE__ */ jsx(Box, {
104
103
  flexDirection: "column",
105
104
  paddingX: 1,
106
105
  children: entries.map((entry, i) => {
107
106
  const isSelected = i === selectedIndex;
108
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, { children: [
109
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Text, {
107
+ return /* @__PURE__ */ jsxs(Box, { children: [
108
+ /* @__PURE__ */ jsxs(Text, {
110
109
  inverse: isSelected,
111
110
  children: [
112
111
  isSelected ? "▸" : " ",
@@ -114,8 +113,8 @@ function ThemeList({ entries, selectedIndex }) {
114
113
  entry.name.padEnd(18)
115
114
  ]
116
115
  }),
117
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { children: " " }),
118
- entry.palette ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MiniSwatch, { palette: entry.palette }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeMiniSwatch, { theme: entry.theme })
116
+ /* @__PURE__ */ jsx(Text, { children: " " }),
117
+ entry.palette ? /* @__PURE__ */ jsx(MiniSwatch, { palette: entry.palette }) : /* @__PURE__ */ jsx(ThemeMiniSwatch, { theme: entry.theme })
119
118
  ] }, entry.name);
120
119
  })
121
120
  })
@@ -124,9 +123,9 @@ function ThemeList({ entries, selectedIndex }) {
124
123
  }
125
124
  /** Semantic token showcase row */
126
125
  function SemanticTokens() {
127
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
126
+ return /* @__PURE__ */ jsxs(Box, {
128
127
  flexDirection: "column",
129
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(H2, { children: "Semantic Tokens" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
128
+ children: [/* @__PURE__ */ jsx(H2, { children: "Semantic Tokens" }), /* @__PURE__ */ jsx(Box, {
130
129
  flexDirection: "row",
131
130
  flexWrap: "wrap",
132
131
  gap: 1,
@@ -172,7 +171,7 @@ function SemanticTokens() {
172
171
  token: "$link",
173
172
  icon: "🔗"
174
173
  }
175
- ].map((t) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Text, {
174
+ ].map((t) => /* @__PURE__ */ jsxs(Text, {
176
175
  color: t.token,
177
176
  children: [
178
177
  t.icon,
@@ -205,19 +204,19 @@ function AnsiColorTable({ palette }) {
205
204
  palette.brightCyan,
206
205
  palette.brightWhite
207
206
  ];
208
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
207
+ return /* @__PURE__ */ jsxs(Box, {
209
208
  flexDirection: "column",
210
209
  children: [
211
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(H2, { children: "ANSI 16 Colors" }),
212
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
210
+ /* @__PURE__ */ jsx(H2, { children: "ANSI 16 Colors" }),
211
+ /* @__PURE__ */ jsx(Box, {
213
212
  paddingX: 1,
214
213
  gap: 1,
215
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "0-7 " }), normal.map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Swatch, { color: c }, i))] })
214
+ children: /* @__PURE__ */ jsxs(Box, { children: [/* @__PURE__ */ jsx(Muted, { children: "0-7 " }), normal.map((c, i) => /* @__PURE__ */ jsx(Swatch, { color: c }, i))] })
216
215
  }),
217
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
216
+ /* @__PURE__ */ jsx(Box, {
218
217
  paddingX: 1,
219
218
  gap: 1,
220
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "8-15 " }), bright.map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Swatch, { color: c }, i))] })
219
+ children: /* @__PURE__ */ jsxs(Box, { children: [/* @__PURE__ */ jsx(Muted, { children: "8-15 " }), bright.map((c, i) => /* @__PURE__ */ jsx(Swatch, { color: c }, i))] })
221
220
  })
222
221
  ]
223
222
  });
@@ -226,138 +225,138 @@ function AnsiColorTable({ palette }) {
226
225
  function ThemeAnsiColorTable({ palette }) {
227
226
  const normal = palette.slice(0, 8);
228
227
  const bright = palette.slice(8, 16);
229
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
228
+ return /* @__PURE__ */ jsxs(Box, {
230
229
  flexDirection: "column",
231
230
  children: [
232
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(H2, { children: "ANSI 16 Colors" }),
233
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
231
+ /* @__PURE__ */ jsx(H2, { children: "ANSI 16 Colors" }),
232
+ /* @__PURE__ */ jsx(Box, {
234
233
  paddingX: 1,
235
234
  gap: 1,
236
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "0-7 " }), normal.map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Swatch, { color: c }, i))] })
235
+ children: /* @__PURE__ */ jsxs(Box, { children: [/* @__PURE__ */ jsx(Muted, { children: "0-7 " }), normal.map((c, i) => /* @__PURE__ */ jsx(Swatch, { color: c }, i))] })
237
236
  }),
238
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
237
+ /* @__PURE__ */ jsx(Box, {
239
238
  paddingX: 1,
240
239
  gap: 1,
241
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "8-15 " }), bright.map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Swatch, { color: c }, i))] })
240
+ children: /* @__PURE__ */ jsxs(Box, { children: [/* @__PURE__ */ jsx(Muted, { children: "8-15 " }), bright.map((c, i) => /* @__PURE__ */ jsx(Swatch, { color: c }, i))] })
242
241
  })
243
242
  ]
244
243
  });
245
244
  }
246
245
  /** Component showcase — real silvery components using theme tokens */
247
246
  function ComponentShowcase() {
248
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
247
+ return /* @__PURE__ */ jsxs(Box, {
249
248
  flexDirection: "column",
250
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(H2, { children: "Components" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
249
+ children: [/* @__PURE__ */ jsx(H2, { children: "Components" }), /* @__PURE__ */ jsxs(Box, {
251
250
  flexDirection: "column",
252
251
  paddingX: 1,
253
252
  gap: 1,
254
253
  children: [
255
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
254
+ /* @__PURE__ */ jsxs(Box, {
256
255
  gap: 2,
257
256
  children: [
258
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Link, {
257
+ /* @__PURE__ */ jsx(Link, {
259
258
  href: "https://silvery.dev",
260
259
  children: "silvery.dev"
261
260
  }),
262
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Link, {
261
+ /* @__PURE__ */ jsx(Link, {
263
262
  href: "https://example.com",
264
263
  color: "$primary",
265
264
  children: "primary link"
266
265
  }),
267
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Link, {
266
+ /* @__PURE__ */ jsx(Link, {
268
267
  href: "https://example.com",
269
268
  dim: true,
270
269
  children: "dim link"
271
270
  })
272
271
  ]
273
272
  }),
274
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
273
+ /* @__PURE__ */ jsxs(Box, {
275
274
  gap: 1,
276
275
  flexWrap: "wrap",
277
276
  children: [
278
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Badge, {
277
+ /* @__PURE__ */ jsx(Badge, {
279
278
  label: "default",
280
279
  variant: "default"
281
280
  }),
282
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Badge, {
281
+ /* @__PURE__ */ jsx(Badge, {
283
282
  label: "success",
284
283
  variant: "success"
285
284
  }),
286
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Badge, {
285
+ /* @__PURE__ */ jsx(Badge, {
287
286
  label: "error",
288
287
  variant: "error"
289
288
  }),
290
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Badge, {
289
+ /* @__PURE__ */ jsx(Badge, {
291
290
  label: "warning",
292
291
  variant: "warning"
293
292
  }),
294
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Badge, {
293
+ /* @__PURE__ */ jsx(Badge, {
295
294
  label: "primary",
296
295
  variant: "primary"
297
296
  })
298
297
  ]
299
298
  }),
300
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
299
+ /* @__PURE__ */ jsxs(Box, {
301
300
  gap: 2,
302
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
301
+ children: [/* @__PURE__ */ jsxs(Box, {
303
302
  gap: 1,
304
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "Progress:" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
303
+ children: [/* @__PURE__ */ jsx(Muted, { children: "Progress:" }), /* @__PURE__ */ jsx(Box, {
305
304
  width: 16,
306
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProgressBar, { value: .65 })
305
+ children: /* @__PURE__ */ jsx(ProgressBar, { value: .65 })
307
306
  })]
308
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
307
+ }), /* @__PURE__ */ jsxs(Box, {
309
308
  gap: 1,
310
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Spinner, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "Loading..." })]
309
+ children: [/* @__PURE__ */ jsx(Spinner, {}), /* @__PURE__ */ jsx(Muted, { children: "Loading..." })]
311
310
  })]
312
311
  }),
313
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
312
+ /* @__PURE__ */ jsxs(Box, {
314
313
  gap: 2,
315
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
314
+ children: [/* @__PURE__ */ jsx(Box, {
316
315
  gap: 1,
317
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Toggle, {
316
+ children: /* @__PURE__ */ jsx(Toggle, {
318
317
  value: true,
319
318
  onChange: () => {},
320
319
  label: "Enabled"
321
320
  })
322
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
321
+ }), /* @__PURE__ */ jsx(Box, {
323
322
  gap: 1,
324
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Toggle, {
323
+ children: /* @__PURE__ */ jsx(Toggle, {
325
324
  value: false,
326
325
  onChange: () => {},
327
326
  label: "Disabled"
328
327
  })
329
328
  })]
330
329
  }),
331
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
330
+ /* @__PURE__ */ jsxs(Box, {
332
331
  borderStyle: "round",
333
332
  paddingX: 1,
334
333
  flexDirection: "column",
335
334
  children: [
336
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
335
+ /* @__PURE__ */ jsx(Text, {
337
336
  bold: true,
338
337
  color: "$primary",
339
338
  children: "Dialog Title"
340
339
  }),
341
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { children: "Body text with default colors." }),
342
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "Muted secondary info" })
340
+ /* @__PURE__ */ jsx(Text, { children: "Body text with default colors." }),
341
+ /* @__PURE__ */ jsx(Muted, { children: "Muted secondary info" })
343
342
  ]
344
343
  }),
345
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
344
+ /* @__PURE__ */ jsx(Box, {
346
345
  borderStyle: "single",
347
346
  borderColor: "$inputborder",
348
347
  paddingX: 1,
349
348
  width: 30,
350
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
349
+ children: /* @__PURE__ */ jsx(Text, {
351
350
  color: "$disabledfg",
352
351
  children: "Search..."
353
352
  })
354
353
  }),
355
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
354
+ /* @__PURE__ */ jsx(Box, {
356
355
  borderStyle: "single",
357
356
  borderColor: "$focusborder",
358
357
  paddingX: 1,
359
358
  width: 30,
360
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { children: "Focused input" })
359
+ children: /* @__PURE__ */ jsx(Text, { children: "Focused input" })
361
360
  })
362
361
  ]
363
362
  })]
@@ -365,121 +364,121 @@ function ComponentShowcase() {
365
364
  }
366
365
  /** Typography samples */
367
366
  function TypographySamples() {
368
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
367
+ return /* @__PURE__ */ jsxs(Box, {
369
368
  flexDirection: "column",
370
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(H2, { children: "Typography" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
369
+ children: [/* @__PURE__ */ jsx(H2, { children: "Typography" }), /* @__PURE__ */ jsxs(Box, {
371
370
  flexDirection: "column",
372
371
  paddingX: 1,
373
372
  children: [
374
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(H1, { children: "Heading 1" }),
375
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(H2, { children: "Heading 2" }),
376
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(H3, { children: "Heading 3" }),
377
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Strong, { children: "Strong text" }),
378
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Lead, { children: "Lead text (italic)" }),
379
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(P, { children: "Normal paragraph text" }),
380
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "Muted text" }),
381
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Small, { children: "Small text" }),
382
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
373
+ /* @__PURE__ */ jsx(H1, { children: "Heading 1" }),
374
+ /* @__PURE__ */ jsx(H2, { children: "Heading 2" }),
375
+ /* @__PURE__ */ jsx(H3, { children: "Heading 3" }),
376
+ /* @__PURE__ */ jsx(Strong, { children: "Strong text" }),
377
+ /* @__PURE__ */ jsx(Lead, { children: "Lead text (italic)" }),
378
+ /* @__PURE__ */ jsx(P, { children: "Normal paragraph text" }),
379
+ /* @__PURE__ */ jsx(Muted, { children: "Muted text" }),
380
+ /* @__PURE__ */ jsx(Small, { children: "Small text" }),
381
+ /* @__PURE__ */ jsxs(Box, {
383
382
  gap: 1,
384
383
  children: [
385
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Kbd, { children: "Kbd" }),
386
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Kbd, { children: "⌘K" }),
387
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Kbd, { children: "Enter" })
384
+ /* @__PURE__ */ jsx(Kbd, { children: "Kbd" }),
385
+ /* @__PURE__ */ jsx(Kbd, { children: "⌘K" }),
386
+ /* @__PURE__ */ jsx(Kbd, { children: "Enter" })
388
387
  ]
389
388
  }),
390
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Code, { children: "inline code" }),
391
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Blockquote, { children: "Blockquote text" })
389
+ /* @__PURE__ */ jsx(Code, { children: "inline code" }),
390
+ /* @__PURE__ */ jsx(Blockquote, { children: "Blockquote text" })
392
391
  ]
393
392
  })]
394
393
  });
395
394
  }
396
395
  /** Surface pairs showcase */
397
396
  function SurfacePairs() {
398
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
397
+ return /* @__PURE__ */ jsxs(Box, {
399
398
  flexDirection: "column",
400
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(H2, { children: "Surfaces" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
399
+ children: [/* @__PURE__ */ jsx(H2, { children: "Surfaces" }), /* @__PURE__ */ jsxs(Box, {
401
400
  flexDirection: "column",
402
401
  paddingX: 1,
403
402
  gap: 0,
404
403
  children: [
405
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
404
+ /* @__PURE__ */ jsxs(Box, {
406
405
  gap: 1,
407
406
  children: [
408
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
407
+ /* @__PURE__ */ jsx(Box, {
409
408
  backgroundColor: "$surfacebg",
410
409
  paddingX: 1,
411
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
410
+ children: /* @__PURE__ */ jsx(Text, {
412
411
  color: "$surface",
413
412
  children: "surface"
414
413
  })
415
414
  }),
416
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
415
+ /* @__PURE__ */ jsx(Box, {
417
416
  backgroundColor: "$inversebg",
418
417
  paddingX: 1,
419
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
418
+ children: /* @__PURE__ */ jsx(Text, {
420
419
  color: "$inverse",
421
420
  children: "inverse"
422
421
  })
423
422
  }),
424
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
423
+ /* @__PURE__ */ jsx(Box, {
425
424
  backgroundColor: "$mutedbg",
426
425
  paddingX: 1,
427
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { children: "muted bg" })
426
+ children: /* @__PURE__ */ jsx(Text, { children: "muted bg" })
428
427
  })
429
428
  ]
430
429
  }),
431
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
430
+ /* @__PURE__ */ jsxs(Box, {
432
431
  gap: 1,
433
432
  children: [
434
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
433
+ /* @__PURE__ */ jsx(Box, {
435
434
  backgroundColor: "$primary",
436
435
  paddingX: 1,
437
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
436
+ children: /* @__PURE__ */ jsx(Text, {
438
437
  color: "$primaryfg",
439
438
  children: "primary"
440
439
  })
441
440
  }),
442
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
441
+ /* @__PURE__ */ jsx(Box, {
443
442
  backgroundColor: "$error",
444
443
  paddingX: 1,
445
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
444
+ children: /* @__PURE__ */ jsx(Text, {
446
445
  color: "$errorfg",
447
446
  children: "error"
448
447
  })
449
448
  }),
450
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
449
+ /* @__PURE__ */ jsx(Box, {
451
450
  backgroundColor: "$success",
452
451
  paddingX: 1,
453
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
452
+ children: /* @__PURE__ */ jsx(Text, {
454
453
  color: "$successfg",
455
454
  children: "success"
456
455
  })
457
456
  })
458
457
  ]
459
458
  }),
460
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
459
+ /* @__PURE__ */ jsxs(Box, {
461
460
  gap: 1,
462
461
  children: [
463
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
462
+ /* @__PURE__ */ jsx(Box, {
464
463
  backgroundColor: "$selectionbg",
465
464
  paddingX: 1,
466
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
465
+ children: /* @__PURE__ */ jsx(Text, {
467
466
  color: "$selection",
468
467
  children: "selection"
469
468
  })
470
469
  }),
471
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
470
+ /* @__PURE__ */ jsx(Box, {
472
471
  backgroundColor: "$popoverbg",
473
472
  paddingX: 1,
474
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
473
+ children: /* @__PURE__ */ jsx(Text, {
475
474
  color: "$popover",
476
475
  children: "popover"
477
476
  })
478
477
  }),
479
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
478
+ /* @__PURE__ */ jsx(Box, {
480
479
  backgroundColor: "$accent",
481
480
  paddingX: 1,
482
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
481
+ children: /* @__PURE__ */ jsx(Text, {
483
482
  color: "$accentfg",
484
483
  children: "accent"
485
484
  })
@@ -492,42 +491,42 @@ function SurfacePairs() {
492
491
  }
493
492
  /** Contrast adjustments made during derivation */
494
493
  function AdjustmentLog({ adjustments = [] }) {
495
- if (adjustments.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
494
+ if (adjustments.length === 0) return /* @__PURE__ */ jsxs(Box, {
496
495
  flexDirection: "column",
497
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(H2, { children: "Contrast Adjustments" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
496
+ children: [/* @__PURE__ */ jsx(H2, { children: "Contrast Adjustments" }), /* @__PURE__ */ jsx(Box, {
498
497
  paddingX: 1,
499
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
498
+ children: /* @__PURE__ */ jsx(Text, {
500
499
  color: "$success",
501
500
  children: "✓ No adjustments needed — all tokens meet contrast targets"
502
501
  })
503
502
  })]
504
503
  });
505
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
504
+ return /* @__PURE__ */ jsxs(Box, {
506
505
  flexDirection: "column",
507
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(H2, { children: [
506
+ children: [/* @__PURE__ */ jsxs(H2, { children: [
508
507
  "Contrast Adjustments (",
509
508
  adjustments.length,
510
509
  ")"
511
- ] }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Box, {
510
+ ] }), /* @__PURE__ */ jsx(Box, {
512
511
  flexDirection: "column",
513
512
  paddingX: 1,
514
- children: adjustments.map((adj, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
513
+ children: adjustments.map((adj, i) => /* @__PURE__ */ jsxs(Box, {
515
514
  gap: 1,
516
515
  children: [
517
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
516
+ /* @__PURE__ */ jsx(Text, {
518
517
  bold: true,
519
518
  children: adj.token.padEnd(12)
520
519
  }),
521
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
520
+ /* @__PURE__ */ jsx(Text, {
522
521
  color: adj.from,
523
522
  children: "██"
524
523
  }),
525
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: "→" }),
526
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
524
+ /* @__PURE__ */ jsx(Muted, { children: "→" }),
525
+ /* @__PURE__ */ jsx(Text, {
527
526
  color: adj.to,
528
527
  children: "██"
529
528
  }),
530
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Muted, { children: [
529
+ /* @__PURE__ */ jsxs(Muted, { children: [
531
530
  adj.ratioBefore.toFixed(1),
532
531
  "→",
533
532
  adj.ratioAfter.toFixed(1),
@@ -543,31 +542,31 @@ function AdjustmentLog({ adjustments = [] }) {
543
542
  /** Right panel: live preview wrapped in selected ThemeProvider */
544
543
  function ThemePreview({ entry }) {
545
544
  const label = entry.detected ? "(detected)" : entry.palette?.dark === false ? "(light)" : "(dark)";
546
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeProvider, {
545
+ return /* @__PURE__ */ jsx(ThemeProvider, {
547
546
  theme: entry.theme,
548
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
547
+ children: /* @__PURE__ */ jsxs(Box, {
549
548
  theme: entry.theme,
550
549
  flexDirection: "column",
551
550
  flexGrow: 1,
552
551
  borderStyle: "single",
553
552
  overflow: "scroll",
554
553
  children: [
555
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
554
+ /* @__PURE__ */ jsxs(Box, {
556
555
  paddingX: 1,
557
556
  gap: 1,
558
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(H1, { children: entry.name }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Muted, { children: label })]
557
+ children: [/* @__PURE__ */ jsx(H1, { children: entry.name }), /* @__PURE__ */ jsx(Muted, { children: label })]
559
558
  }),
560
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Divider, {}),
561
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
559
+ /* @__PURE__ */ jsx(Divider, {}),
560
+ /* @__PURE__ */ jsxs(Box, {
562
561
  flexDirection: "column",
563
562
  gap: 1,
564
563
  children: [
565
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SemanticTokens, {}),
566
- entry.palette ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AnsiColorTable, { palette: entry.palette }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeAnsiColorTable, { palette: entry.theme.palette }),
567
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SurfacePairs, {}),
568
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ComponentShowcase, {}),
569
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TypographySamples, {}),
570
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AdjustmentLog, { adjustments: entry.adjustments })
564
+ /* @__PURE__ */ jsx(SemanticTokens, {}),
565
+ entry.palette ? /* @__PURE__ */ jsx(AnsiColorTable, { palette: entry.palette }) : /* @__PURE__ */ jsx(ThemeAnsiColorTable, { palette: entry.theme.palette }),
566
+ /* @__PURE__ */ jsx(SurfacePairs, {}),
567
+ /* @__PURE__ */ jsx(ComponentShowcase, {}),
568
+ /* @__PURE__ */ jsx(TypographySamples, {}),
569
+ /* @__PURE__ */ jsx(AdjustmentLog, { adjustments: entry.adjustments })
571
570
  ]
572
571
  })
573
572
  ]
@@ -575,11 +574,11 @@ function ThemePreview({ entry }) {
575
574
  });
576
575
  }
577
576
  function HelpBar() {
578
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Muted, { children: [
577
+ return /* @__PURE__ */ jsxs(Muted, { children: [
579
578
  " ",
580
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Kbd, { children: "j/k" }),
579
+ /* @__PURE__ */ jsx(Kbd, { children: "j/k" }),
581
580
  " navigate ",
582
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Kbd, { children: "Esc/q" }),
581
+ /* @__PURE__ */ jsx(Kbd, { children: "Esc/q" }),
583
582
  " quit"
584
583
  ] });
585
584
  }
@@ -592,20 +591,20 @@ function ThemeExplorer({ entries }) {
592
591
  if (key.upArrow || input === "k") setSelectedIndex((i) => Math.max(i - 1, 0));
593
592
  });
594
593
  const entry = entries[selectedIndex];
595
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
594
+ return /* @__PURE__ */ jsxs(Box, {
596
595
  flexDirection: "column",
597
596
  height: "100%",
598
597
  padding: 1,
599
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Box, {
598
+ children: [/* @__PURE__ */ jsxs(Box, {
600
599
  flexGrow: 1,
601
600
  flexDirection: "row",
602
601
  gap: 1,
603
602
  overflow: "hidden",
604
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeList, {
603
+ children: [/* @__PURE__ */ jsx(ThemeList, {
605
604
  entries,
606
605
  selectedIndex
607
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemePreview, { entry })]
608
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HelpBar, {})]
606
+ }), /* @__PURE__ */ jsx(ThemePreview, { entry })]
607
+ }), /* @__PURE__ */ jsx(HelpBar, {})]
609
608
  });
610
609
  }
611
610
  async function main() {
@@ -644,10 +643,10 @@ async function main() {
644
643
  ...builtinEntries
645
644
  ];
646
645
  const term = _usingCtx$1.u(createTerm());
647
- const { waitUntilExit } = await render(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ExampleBanner, {
646
+ const { waitUntilExit } = await render(/* @__PURE__ */ jsx(ExampleBanner, {
648
647
  meta,
649
648
  controls: "j/k navigate Esc/q quit",
650
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeExplorer, { entries: allEntries })
649
+ children: /* @__PURE__ */ jsx(ThemeExplorer, { entries: allEntries })
651
650
  }), term);
652
651
  await waitUntilExit();
653
652
  } catch (_) {