@cueplusplus/ui 0.19.0 → 0.20.1

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 (79) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/brand/index.d.ts +3 -1
  3. package/dist/brand/particle-logo.d.ts +50 -0
  4. package/dist/brand/particle-logo.js +445 -0
  5. package/dist/brand/text-scramble.d.ts +42 -0
  6. package/dist/brand/text-scramble.js +160 -0
  7. package/dist/chat/delegation-card.js +2 -1
  8. package/dist/chat/message.js +12 -13
  9. package/dist/color/color-area.js +2 -1
  10. package/dist/forms/_chassis.d.ts +1 -1
  11. package/dist/forms/_chassis.js +2 -2
  12. package/dist/forms/env-var-input.js +2 -1
  13. package/dist/forms/file-upload.js +2 -1
  14. package/dist/index.d.ts +5 -1
  15. package/dist/index.js +5 -1
  16. package/dist/instruments/data-table.js +3 -2
  17. package/dist/instruments/table.js +1 -1
  18. package/dist/layout/index.d.ts +2 -1
  19. package/dist/layout/index.js +2 -1
  20. package/dist/layout/reveal.d.ts +44 -0
  21. package/dist/layout/reveal.js +112 -0
  22. package/dist/lib/cn.js +23 -5
  23. package/dist/lib/particle-field-shaders.js +236 -0
  24. package/dist/lib/particle-field.js +210 -0
  25. package/dist/midi/spectrum-visualizer.js +2 -1
  26. package/dist/primitives/chip.js +4 -3
  27. package/dist/styles.css +12 -0
  28. package/dist/system/_style-field-chassis.js +14 -1
  29. package/dist/system/frame-clock.d.ts +33 -0
  30. package/dist/system/frame-clock.js +56 -0
  31. package/dist/system/index.d.ts +2 -1
  32. package/dist/system/index.js +2 -1
  33. package/dist/system/still.js +14 -1
  34. package/dist/system/theme-registry.d.ts +1 -1
  35. package/dist/system/theme-registry.js +1 -1
  36. package/manifest/components/autocomplete.json +1 -0
  37. package/manifest/components/bento.json +4 -4
  38. package/manifest/components/color-area.json +10 -0
  39. package/manifest/components/color-field.json +3 -0
  40. package/manifest/components/color-picker.json +3 -0
  41. package/manifest/components/combobox.json +1 -0
  42. package/manifest/components/composer.json +3 -0
  43. package/manifest/components/data-table-pagination.json +3 -0
  44. package/manifest/components/data-table-toolbar.json +3 -0
  45. package/manifest/components/date-field.json +3 -0
  46. package/manifest/components/date-picker.json +3 -0
  47. package/manifest/components/date-range-picker.json +3 -0
  48. package/manifest/components/delegation-card.json +6 -0
  49. package/manifest/components/env-var-input.json +3 -0
  50. package/manifest/components/file-upload.json +5 -0
  51. package/manifest/components/font-scope.json +3 -2
  52. package/manifest/components/grid.json +2 -2
  53. package/manifest/components/input-group.json +3 -0
  54. package/manifest/components/input.json +3 -0
  55. package/manifest/components/ledger.json +1 -1
  56. package/manifest/components/markdown-text.json +1 -1
  57. package/manifest/components/message.json +8 -0
  58. package/manifest/components/multi-select.json +1 -0
  59. package/manifest/components/musical-time-input.json +3 -0
  60. package/manifest/components/number-field.json +3 -0
  61. package/manifest/components/otp-field.json +3 -0
  62. package/manifest/components/particle-logo.json +140 -0
  63. package/manifest/components/password-input.json +3 -0
  64. package/manifest/components/preview.json +3 -2
  65. package/manifest/components/reveal.json +108 -0
  66. package/manifest/components/scrub-input.json +3 -0
  67. package/manifest/components/search-input.json +3 -0
  68. package/manifest/components/select.json +3 -0
  69. package/manifest/components/spectrum-visualizer.json +10 -0
  70. package/manifest/components/stack.json +1 -1
  71. package/manifest/components/table.json +1 -1
  72. package/manifest/components/tags-input.json +1 -0
  73. package/manifest/components/text-scramble.json +90 -0
  74. package/manifest/components/textarea.json +3 -0
  75. package/manifest/components/theme-provider.json +3 -2
  76. package/manifest/components/time-field.json +3 -0
  77. package/manifest/manifest.json +118 -42
  78. package/manifest/tokens.json +4 -2
  79. package/package.json +6 -4
@@ -0,0 +1,33 @@
1
+ //#region src/system/frame-clock.d.ts
2
+ interface FrameClockOptions {
3
+ /** Frames per second. Defaults to `30`, cueplusplus.com's `VIDEO_FPS`. */
4
+ fps?: number;
5
+ /** How many frames the loop holds. */
6
+ durationInFrames: number;
7
+ /** Start again at frame 0 after the last. Defaults to `true`; `false` holds the last frame. */
8
+ loop?: boolean;
9
+ /**
10
+ * Whether the clock runs. Defaults to `true`. Pass `false` while the
11
+ * animation is off screen: a paused clock schedules nothing and, resumed,
12
+ * continues from the frame it stopped on.
13
+ */
14
+ playing?: boolean;
15
+ /** The frame shown while held still (a thumbnail, or reduced motion). Defaults to the middle of the loop. */
16
+ stillFrame?: number;
17
+ }
18
+ /**
19
+ * A frame counter for a loop illustration: what Remotion's `useCurrentFrame`
20
+ * gave cueplusplus.com's service animations, without Remotion (spec
21
+ * 2026-10-04-cue-site-verbatim §4.4). Frame maths written against
22
+ * `useCurrentFrame` ports unchanged.
23
+ *
24
+ * Driven by `requestAnimationFrame` against elapsed time, so a slow frame never
25
+ * slows the animation down. It never advances while paused or still, and held
26
+ * still it returns `stillFrame` and schedules nothing.
27
+ *
28
+ * @example
29
+ * const frame = useFrameClock({ durationInFrames: 300, playing: onScreen });
30
+ */
31
+ declare function useFrameClock({ fps, durationInFrames, loop, playing, stillFrame }: FrameClockOptions): number;
32
+ //#endregion
33
+ export { FrameClockOptions, useFrameClock };
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import { usePrefersReducedMotion } from "../instruments/_motion.js";
3
+ import { useStill } from "./still.js";
4
+ import * as React from "react";
5
+ //#region src/system/frame-clock.ts
6
+ /**
7
+ * A frame counter for a loop illustration: what Remotion's `useCurrentFrame`
8
+ * gave cueplusplus.com's service animations, without Remotion (spec
9
+ * 2026-10-04-cue-site-verbatim §4.4). Frame maths written against
10
+ * `useCurrentFrame` ports unchanged.
11
+ *
12
+ * Driven by `requestAnimationFrame` against elapsed time, so a slow frame never
13
+ * slows the animation down. It never advances while paused or still, and held
14
+ * still it returns `stillFrame` and schedules nothing.
15
+ *
16
+ * @example
17
+ * const frame = useFrameClock({ durationInFrames: 300, playing: onScreen });
18
+ */
19
+ function useFrameClock({ fps = 30, durationInFrames, loop = true, playing = true, stillFrame }) {
20
+ const held = useStill();
21
+ const reduced = usePrefersReducedMotion();
22
+ const still = held || reduced;
23
+ const seat = stillFrame ?? Math.floor(durationInFrames / 2);
24
+ const [frame, setFrame] = React.useState(0);
25
+ const elapsed = React.useRef(0);
26
+ React.useEffect(() => {
27
+ if (still || !playing || durationInFrames <= 0) return;
28
+ let last = performance.now();
29
+ let handle = requestAnimationFrame(function step() {
30
+ const now = performance.now();
31
+ elapsed.current += now - last;
32
+ last = now;
33
+ const total = Math.floor(elapsed.current * fps / 1e3);
34
+ setFrame(loop ? total % durationInFrames : Math.min(total, durationInFrames - 1));
35
+ if (!loop && total >= durationInFrames - 1) return;
36
+ handle = requestAnimationFrame(step);
37
+ });
38
+ const onVisibility = () => {
39
+ if (!document.hidden) last = performance.now();
40
+ };
41
+ document.addEventListener("visibilitychange", onVisibility);
42
+ return () => {
43
+ cancelAnimationFrame(handle);
44
+ document.removeEventListener("visibilitychange", onVisibility);
45
+ };
46
+ }, [
47
+ still,
48
+ playing,
49
+ fps,
50
+ durationInFrames,
51
+ loop
52
+ ]);
53
+ return still ? seat : frame;
54
+ }
55
+ //#endregion
56
+ export { useFrameClock };
@@ -8,7 +8,8 @@ import { useDensities, useFonts, useThemes } from "./theme-registry.js";
8
8
  import { ControlSize, useControlHeight, useDensity } from "./use-density.js";
9
9
  import { useTheme } from "./use-theme.js";
10
10
  import { StillProvider, StillProviderProps, useStill } from "./still.js";
11
+ import { FrameClockOptions, useFrameClock } from "./frame-clock.js";
11
12
  import { FontScope, FontScopeProps } from "./font-scope.js";
12
13
  import { DEFAULT_PAINT, DEFAULT_STYLE_SET, PAINTS, Paint, STYLE_SETS, StyleSet } from "@cueplusplus/tokens";
13
14
  import { Density as DensityLevel, DensityEntry, FontEntry, FontName, Mode, ThemeManifest, ThemeName } from "@cueplusplus/theme-base";
14
- export { type ControlSize, CuePortalFrame, type CuePortalFrameProps, DEFAULT_PAINT, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, Density, type DensityEntry, type DensityLevel, type DensityProps, type FontEntry, type FontFamilies, type FontName, FontScope, type FontScopeProps, type Mode, PAINTS, type Paint, type PersistedPreferences, type PrepaintDefaults, type PrepaintOptions, type ResolvedMode, STYLE_SETS, StillProvider, type StillProviderProps, type StyleSet, type ThemeContextValue, type ThemeManifest, type ThemeName, ThemeProvider, type ThemeProviderProps, type ThemeRegistry, type TokenOverrides, isSafeTokenValue, prepaintScript, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useStill, useTheme, useThemes };
15
+ export { type ControlSize, CuePortalFrame, type CuePortalFrameProps, DEFAULT_PAINT, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, Density, type DensityEntry, type DensityLevel, type DensityProps, type FontEntry, type FontFamilies, type FontName, FontScope, type FontScopeProps, type FrameClockOptions, type Mode, PAINTS, type Paint, type PersistedPreferences, type PrepaintDefaults, type PrepaintOptions, type ResolvedMode, STYLE_SETS, StillProvider, type StillProviderProps, type StyleSet, type ThemeContextValue, type ThemeManifest, type ThemeName, ThemeProvider, type ThemeProviderProps, type ThemeRegistry, type TokenOverrides, isSafeTokenValue, prepaintScript, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useFrameClock, useStill, useTheme, useThemes };
@@ -7,6 +7,7 @@ import { ThemeProvider } from "./theme-provider.js";
7
7
  import { CuePortalFrame, useCuePortalProps } from "./portal.js";
8
8
  import { useControlHeight, useDensity } from "./use-density.js";
9
9
  import { useTheme } from "./use-theme.js";
10
+ import { useFrameClock } from "./frame-clock.js";
10
11
  import { FontScope } from "./font-scope.js";
11
12
  import { DEFAULT_PAINT, DEFAULT_STYLE_SET, PAINTS, STYLE_SETS } from "@cueplusplus/tokens";
12
- export { CuePortalFrame, DEFAULT_PAINT, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, Density, FontScope, PAINTS, STYLE_SETS, StillProvider, ThemeProvider, isSafeTokenValue, prepaintScript, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useStill, useTheme, useThemes };
13
+ export { CuePortalFrame, DEFAULT_PAINT, DEFAULT_STORAGE_KEY, DEFAULT_STYLE_SET, Density, FontScope, PAINTS, STYLE_SETS, StillProvider, ThemeProvider, isSafeTokenValue, prepaintScript, useControlHeight, useCuePortalProps, useDensities, useDensity, useFonts, useFrameClock, useStill, useTheme, useThemes };
@@ -43,5 +43,18 @@ function useStill() {
43
43
  const reduced = usePrefersReducedMotion();
44
44
  return still || reduced;
45
45
  }
46
+ /**
47
+ * Whether a {@link StillProvider} above holds this subtree still — the
48
+ * provider's half of {@link useStill}, without the reader's motion preference.
49
+ * For the one component that must tell a held thumbnail from a reader who
50
+ * prefers reduced motion, because the two mean different things to it
51
+ * (`TextScramble`: a thumbnail holds the first phrase, reduced motion still
52
+ * cycles phrases without scrambling them, as cueplusplus.com does).
53
+ *
54
+ * @internal Not part of the public API.
55
+ */
56
+ function useStillHeld() {
57
+ return React.useContext(StillContext);
58
+ }
46
59
  //#endregion
47
- export { StillProvider, useStill };
60
+ export { StillProvider, useStill, useStillHeld };
@@ -41,7 +41,7 @@ declare function useThemes(): readonly ThemeManifest[];
41
41
  */
42
42
  declare function useDensities(): readonly DensityEntry[];
43
43
  /**
44
- * The font pairings, by the same rule: the base twelve, then the active theme's.
44
+ * The font pairings, by the same rule: the base fourteen, then the active theme's.
45
45
  *
46
46
  * @throws If called outside a `<ThemeProvider>`.
47
47
  * @example
@@ -68,7 +68,7 @@ function useDensities() {
68
68
  return useRegistry("useDensities", (registry) => registry.densities);
69
69
  }
70
70
  /**
71
- * The font pairings, by the same rule: the base twelve, then the active theme's.
71
+ * The font pairings, by the same rule: the base fourteen, then the active theme's.
72
72
  *
73
73
  * @throws If called outside a `<ThemeProvider>`.
74
74
  * @example
@@ -278,6 +278,7 @@
278
278
  "--cue-style-field-focus-offset",
279
279
  "--cue-style-field-hover-edge",
280
280
  "--cue-style-field-pad",
281
+ "--cue-style-field-radius",
281
282
  "--cue-style-focus-edge",
282
283
  "--cue-style-focus-width",
283
284
  "--cue-style-glyph-ink",
@@ -20,7 +20,7 @@
20
20
  "props": [
21
21
  {
22
22
  "name": "cols",
23
- "type": "4 | 2 | 3",
23
+ "type": "2 | 4 | 3",
24
24
  "required": false,
25
25
  "defaultValue": "3",
26
26
  "description": "How many columns at `lg`. Defaults to `3`. Two from `sm`, one below it.",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  {
39
39
  "name": "rows",
40
- "type": "1 | 4 | 2 | 3",
40
+ "type": "1 | 2 | 4 | 3",
41
41
  "required": false,
42
42
  "defaultValue": null,
43
43
  "description": "How many rows to declare from `sm` up.\n\nOnly worth setting where a tile spans rows: a `rowSpan` over implicit\ntracks sizes itself to the tile's own content, which is not a span.",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  {
67
67
  "name": "gap",
68
- "type": "0 | 1 | 4 | 8 | 2 | 3 | 5 | 6 | 7",
68
+ "type": "0 | 1 | 2 | 4 | 8 | 3 | 5 | 6 | 7",
69
69
  "required": false,
70
70
  "defaultValue": "4",
71
71
  "description": "Which rung of the density space ladder to spend between tiles. Defaults to `4`.",
@@ -109,7 +109,7 @@
109
109
  "props": [
110
110
  {
111
111
  "name": "span",
112
- "type": "1 | 4 | 2 | 3",
112
+ "type": "1 | 2 | 4 | 3",
113
113
  "required": false,
114
114
  "defaultValue": null,
115
115
  "description": "How many columns to cover. Clamped by the container to its own `cols`.",
@@ -30,10 +30,20 @@
30
30
  "tokensUsed": [
31
31
  "--cue-bg",
32
32
  "--cue-border",
33
+ "--cue-border-strong",
34
+ "--cue-danger",
33
35
  "--cue-fg",
34
36
  "--cue-focus",
35
37
  "--cue-focus-ring",
36
38
  "--cue-radius-control",
39
+ "--cue-radius-scale",
40
+ "--cue-space-3",
41
+ "--cue-space-4",
42
+ "--cue-space-5",
43
+ "--cue-style-control-radius",
44
+ "--cue-style-field-hover-edge",
45
+ "--cue-style-field-pad",
46
+ "--cue-style-field-radius",
37
47
  "--cue-style-focus-width"
38
48
  ],
39
49
  "summary": "The two-axis colour field — saturation against brightness by default.",
@@ -76,12 +76,14 @@
76
76
  "--cue-paint-stroke-to",
77
77
  "--cue-paint-stroke-width",
78
78
  "--cue-radius-control",
79
+ "--cue-radius-scale",
79
80
  "--cue-space-1",
80
81
  "--cue-space-3",
81
82
  "--cue-space-4",
82
83
  "--cue-space-5",
83
84
  "--cue-style-body-weight",
84
85
  "--cue-style-check-edge",
86
+ "--cue-style-control-radius",
85
87
  "--cue-style-control-step-size",
86
88
  "--cue-style-disabled-edge",
87
89
  "--cue-style-disabled-fill",
@@ -90,6 +92,7 @@
90
92
  "--cue-style-field-focus-offset",
91
93
  "--cue-style-field-hover-edge",
92
94
  "--cue-style-field-pad",
95
+ "--cue-style-field-radius",
93
96
  "--cue-style-focus-edge",
94
97
  "--cue-style-focus-width",
95
98
  "--cue-style-input-face",
@@ -210,12 +210,14 @@
210
210
  "--cue-paint-stroke-to",
211
211
  "--cue-paint-stroke-width",
212
212
  "--cue-radius-control",
213
+ "--cue-radius-scale",
213
214
  "--cue-space-2",
214
215
  "--cue-space-3",
215
216
  "--cue-space-4",
216
217
  "--cue-space-5",
217
218
  "--cue-style-body-weight",
218
219
  "--cue-style-check-edge",
220
+ "--cue-style-control-radius",
219
221
  "--cue-style-control-step-size",
220
222
  "--cue-style-disabled-edge",
221
223
  "--cue-style-disabled-fill",
@@ -224,6 +226,7 @@
224
226
  "--cue-style-field-focus-offset",
225
227
  "--cue-style-field-hover-edge",
226
228
  "--cue-style-field-pad",
229
+ "--cue-style-field-radius",
227
230
  "--cue-style-focus-edge",
228
231
  "--cue-style-focus-width",
229
232
  "--cue-style-input-face",
@@ -281,6 +281,7 @@
281
281
  "--cue-style-field-focus-offset",
282
282
  "--cue-style-field-hover-edge",
283
283
  "--cue-style-field-pad",
284
+ "--cue-style-field-radius",
284
285
  "--cue-style-focus-edge",
285
286
  "--cue-style-focus-width",
286
287
  "--cue-style-glyph-ink",
@@ -212,12 +212,14 @@
212
212
  "--cue-paint-stroke-to",
213
213
  "--cue-paint-stroke-width",
214
214
  "--cue-radius-control",
215
+ "--cue-radius-scale",
215
216
  "--cue-space-2",
216
217
  "--cue-space-3",
217
218
  "--cue-space-4",
218
219
  "--cue-space-5",
219
220
  "--cue-style-body-weight",
220
221
  "--cue-style-check-edge",
222
+ "--cue-style-control-radius",
221
223
  "--cue-style-control-step-size",
222
224
  "--cue-style-disabled-edge",
223
225
  "--cue-style-disabled-fill",
@@ -226,6 +228,7 @@
226
228
  "--cue-style-field-focus-offset",
227
229
  "--cue-style-field-hover-edge",
228
230
  "--cue-style-field-pad",
231
+ "--cue-style-field-radius",
229
232
  "--cue-style-focus-edge",
230
233
  "--cue-style-focus-width",
231
234
  "--cue-style-input-face",
@@ -63,9 +63,12 @@
63
63
  "--cue-fg",
64
64
  "--cue-fg-subtle",
65
65
  "--cue-font-mono",
66
+ "--cue-pad-row-x",
66
67
  "--cue-space-1",
67
68
  "--cue-space-2",
68
69
  "--cue-space-3",
70
+ "--cue-style-cell-leading",
71
+ "--cue-style-cell-pad",
69
72
  "--cue-text-label"
70
73
  ],
71
74
  "summary": "The pager: four buttons, the position, and the row count.",
@@ -93,9 +93,12 @@
93
93
  "--cue-fg",
94
94
  "--cue-fg-subtle",
95
95
  "--cue-font-mono",
96
+ "--cue-pad-row-x",
96
97
  "--cue-space-1",
97
98
  "--cue-space-2",
98
99
  "--cue-space-3",
100
+ "--cue-style-cell-leading",
101
+ "--cue-style-cell-pad",
99
102
  "--cue-text-label"
100
103
  ],
101
104
  "summary": "The strip above a table: one search box, a match count, your controls.",
@@ -67,12 +67,14 @@
67
67
  "--cue-paint-stroke-to",
68
68
  "--cue-paint-stroke-width",
69
69
  "--cue-radius-control",
70
+ "--cue-radius-scale",
70
71
  "--cue-space-1",
71
72
  "--cue-space-3",
72
73
  "--cue-space-4",
73
74
  "--cue-space-5",
74
75
  "--cue-style-body-weight",
75
76
  "--cue-style-check-edge",
77
+ "--cue-style-control-radius",
76
78
  "--cue-style-control-step-size",
77
79
  "--cue-style-disabled-edge",
78
80
  "--cue-style-disabled-fill",
@@ -81,6 +83,7 @@
81
83
  "--cue-style-field-focus-offset",
82
84
  "--cue-style-field-hover-edge",
83
85
  "--cue-style-field-pad",
86
+ "--cue-style-field-radius",
84
87
  "--cue-style-focus-edge",
85
88
  "--cue-style-focus-width",
86
89
  "--cue-style-input-face",
@@ -230,12 +230,14 @@
230
230
  "--cue-paint-stroke-to",
231
231
  "--cue-paint-stroke-width",
232
232
  "--cue-radius-control",
233
+ "--cue-radius-scale",
233
234
  "--cue-space-2",
234
235
  "--cue-space-3",
235
236
  "--cue-space-4",
236
237
  "--cue-space-5",
237
238
  "--cue-style-body-weight",
238
239
  "--cue-style-check-edge",
240
+ "--cue-style-control-radius",
239
241
  "--cue-style-control-step-size",
240
242
  "--cue-style-disabled-edge",
241
243
  "--cue-style-disabled-fill",
@@ -244,6 +246,7 @@
244
246
  "--cue-style-field-focus-offset",
245
247
  "--cue-style-field-hover-edge",
246
248
  "--cue-style-field-pad",
249
+ "--cue-style-field-radius",
247
250
  "--cue-style-focus-edge",
248
251
  "--cue-style-focus-width",
249
252
  "--cue-style-glyph-ink",
@@ -230,12 +230,14 @@
230
230
  "--cue-paint-stroke-to",
231
231
  "--cue-paint-stroke-width",
232
232
  "--cue-radius-control",
233
+ "--cue-radius-scale",
233
234
  "--cue-space-2",
234
235
  "--cue-space-3",
235
236
  "--cue-space-4",
236
237
  "--cue-space-5",
237
238
  "--cue-style-body-weight",
238
239
  "--cue-style-check-edge",
240
+ "--cue-style-control-radius",
239
241
  "--cue-style-control-step-size",
240
242
  "--cue-style-disabled-edge",
241
243
  "--cue-style-disabled-fill",
@@ -244,6 +246,7 @@
244
246
  "--cue-style-field-focus-offset",
245
247
  "--cue-style-field-hover-edge",
246
248
  "--cue-style-field-pad",
249
+ "--cue-style-field-radius",
247
250
  "--cue-style-focus-edge",
248
251
  "--cue-style-focus-width",
249
252
  "--cue-style-glyph-ink",
@@ -153,6 +153,7 @@
153
153
  "defaultVariants": {},
154
154
  "tokensUsed": [
155
155
  "--cue-border",
156
+ "--cue-border-strong",
156
157
  "--cue-danger",
157
158
  "--cue-fg-muted",
158
159
  "--cue-fg-subtle",
@@ -162,10 +163,15 @@
162
163
  "--cue-icon-sm",
163
164
  "--cue-ok",
164
165
  "--cue-radius-control",
166
+ "--cue-radius-scale",
165
167
  "--cue-space-2",
166
168
  "--cue-space-3",
167
169
  "--cue-space-4",
168
170
  "--cue-space-5",
171
+ "--cue-style-control-radius",
172
+ "--cue-style-field-hover-edge",
173
+ "--cue-style-field-pad",
174
+ "--cue-style-field-radius",
169
175
  "--cue-style-focus-width",
170
176
  "--cue-text-micro",
171
177
  "--cue-text-ui"
@@ -167,12 +167,14 @@
167
167
  "--cue-paint-stroke-to",
168
168
  "--cue-paint-stroke-width",
169
169
  "--cue-radius-control",
170
+ "--cue-radius-scale",
170
171
  "--cue-space-2",
171
172
  "--cue-space-3",
172
173
  "--cue-space-4",
173
174
  "--cue-space-5",
174
175
  "--cue-style-body-weight",
175
176
  "--cue-style-check-edge",
177
+ "--cue-style-control-radius",
176
178
  "--cue-style-control-step-size",
177
179
  "--cue-style-disabled-edge",
178
180
  "--cue-style-disabled-fill",
@@ -181,6 +183,7 @@
181
183
  "--cue-style-field-focus-offset",
182
184
  "--cue-style-field-hover-edge",
183
185
  "--cue-style-field-pad",
186
+ "--cue-style-field-radius",
184
187
  "--cue-style-focus-edge",
185
188
  "--cue-style-focus-width",
186
189
  "--cue-style-input-face",
@@ -167,11 +167,16 @@
167
167
  "--cue-icon-sm",
168
168
  "--cue-ok",
169
169
  "--cue-radius-control",
170
+ "--cue-radius-scale",
170
171
  "--cue-space-1",
171
172
  "--cue-space-2",
172
173
  "--cue-space-3",
173
174
  "--cue-space-4",
174
175
  "--cue-space-5",
176
+ "--cue-style-control-radius",
177
+ "--cue-style-field-hover-edge",
178
+ "--cue-style-field-pad",
179
+ "--cue-style-field-radius",
175
180
  "--cue-style-focus-width",
176
181
  "--cue-sunken",
177
182
  "--cue-surface-2",
@@ -9,7 +9,7 @@
9
9
  "props": [
10
10
  {
11
11
  "name": "font",
12
- "type": "\"source\" | \"system\" | \"geist\" | \"geist-mono\" | \"inter\" | \"plex\" | \"roboto\" | \"apple\" | \"office\" | \"inter-source\" | \"dm\" | \"calsans\" | \"fraunces-mono\"",
12
+ "type": "\"source\" | \"system\" | \"geist\" | \"geist-mono\" | \"inter\" | \"plex\" | \"roboto\" | \"apple\" | \"office\" | \"inter-source\" | \"dm\" | \"calsans\" | \"fraunces-mono\" | \"jetbrains-mono\"",
13
13
  "required": true,
14
14
  "defaultValue": null,
15
15
  "description": "The pairing this subtree is set in.",
@@ -28,7 +28,8 @@
28
28
  "inter-source",
29
29
  "dm",
30
30
  "calsans",
31
- "fraunces-mono"
31
+ "fraunces-mono",
32
+ "jetbrains-mono"
32
33
  ]
33
34
  }
34
35
  },
@@ -9,7 +9,7 @@
9
9
  "props": [
10
10
  {
11
11
  "name": "cols",
12
- "type": "1 | 4 | 2 | 3 | 5 | 6",
12
+ "type": "1 | 2 | 4 | 3 | 5 | 6",
13
13
  "required": false,
14
14
  "defaultValue": "1",
15
15
  "description": "How many equal columns. Defaults to `1`. Ignored when `minItemWidth` is set.",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  {
31
31
  "name": "gap",
32
- "type": "0 | 1 | 4 | 8 | 2 | 3 | 5 | 6 | 7",
32
+ "type": "0 | 1 | 2 | 4 | 8 | 3 | 5 | 6 | 7",
33
33
  "required": false,
34
34
  "defaultValue": "4",
35
35
  "description": "Which rung of the density space ladder to spend between cells. Defaults to `4`.",
@@ -87,12 +87,14 @@
87
87
  "--cue-paint-stroke-to",
88
88
  "--cue-paint-stroke-width",
89
89
  "--cue-radius-control",
90
+ "--cue-radius-scale",
90
91
  "--cue-space-2",
91
92
  "--cue-space-3",
92
93
  "--cue-space-4",
93
94
  "--cue-space-5",
94
95
  "--cue-style-body-weight",
95
96
  "--cue-style-check-edge",
97
+ "--cue-style-control-radius",
96
98
  "--cue-style-control-step-size",
97
99
  "--cue-style-disabled-edge",
98
100
  "--cue-style-disabled-fill",
@@ -101,6 +103,7 @@
101
103
  "--cue-style-field-focus-offset",
102
104
  "--cue-style-field-hover-edge",
103
105
  "--cue-style-field-pad",
106
+ "--cue-style-field-radius",
104
107
  "--cue-style-focus-edge",
105
108
  "--cue-style-focus-width",
106
109
  "--cue-style-glyph-ink",
@@ -84,11 +84,13 @@
84
84
  "--cue-paint-stroke-to",
85
85
  "--cue-paint-stroke-width",
86
86
  "--cue-radius-control",
87
+ "--cue-radius-scale",
87
88
  "--cue-space-3",
88
89
  "--cue-space-4",
89
90
  "--cue-space-5",
90
91
  "--cue-style-body-weight",
91
92
  "--cue-style-check-edge",
93
+ "--cue-style-control-radius",
92
94
  "--cue-style-control-step-size",
93
95
  "--cue-style-disabled-edge",
94
96
  "--cue-style-disabled-fill",
@@ -97,6 +99,7 @@
97
99
  "--cue-style-field-focus-offset",
98
100
  "--cue-style-field-hover-edge",
99
101
  "--cue-style-field-pad",
102
+ "--cue-style-field-radius",
100
103
  "--cue-style-focus-edge",
101
104
  "--cue-style-focus-width",
102
105
  "--cue-style-input-face",
@@ -73,7 +73,7 @@
73
73
  },
74
74
  {
75
75
  "name": "headingLevel",
76
- "type": "4 | 2 | 3",
76
+ "type": "2 | 4 | 3",
77
77
  "required": false,
78
78
  "defaultValue": "2",
79
79
  "description": "Which heading element the tier's name is. Defaults to `2`.\n\nThe outline is the navigation: a screen-reader user moves through a long\nledger by heading, so the levels have to describe the real nesting of the\npage the ledger sits in, not the ledger's own idea of itself.",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  {
48
48
  "name": "headingLevel",
49
- "type": "4 | 2 | 3",
49
+ "type": "2 | 4 | 3",
50
50
  "required": false,
51
51
  "defaultValue": "2",
52
52
  "description": "The heading level `#` renders at; `##` and below follow it, clamped at\n`h6`. Defaults to `2`, because model output is a passage inside a page\nthat already owns its `h1`.",
@@ -108,15 +108,23 @@
108
108
  "--cue-accent",
109
109
  "--cue-accent-fg",
110
110
  "--cue-border",
111
+ "--cue-border-strong",
112
+ "--cue-danger",
111
113
  "--cue-fg",
112
114
  "--cue-fg-subtle",
113
115
  "--cue-font-mono",
114
116
  "--cue-leading-ui",
115
117
  "--cue-radius-control",
116
118
  "--cue-radius-overlay",
119
+ "--cue-radius-scale",
117
120
  "--cue-space-2",
118
121
  "--cue-space-3",
119
122
  "--cue-space-4",
123
+ "--cue-space-5",
124
+ "--cue-style-control-radius",
125
+ "--cue-style-field-hover-edge",
126
+ "--cue-style-field-pad",
127
+ "--cue-style-field-radius",
120
128
  "--cue-style-label-case",
121
129
  "--cue-style-label-face",
122
130
  "--cue-style-label-tracking",
@@ -271,6 +271,7 @@
271
271
  "--cue-style-field-focus-offset",
272
272
  "--cue-style-field-hover-edge",
273
273
  "--cue-style-field-pad",
274
+ "--cue-style-field-radius",
274
275
  "--cue-style-focus-edge",
275
276
  "--cue-style-focus-width",
276
277
  "--cue-style-glyph-ink",
@@ -115,12 +115,14 @@
115
115
  "--cue-paint-stroke-to",
116
116
  "--cue-paint-stroke-width",
117
117
  "--cue-radius-control",
118
+ "--cue-radius-scale",
118
119
  "--cue-space-2",
119
120
  "--cue-space-3",
120
121
  "--cue-space-4",
121
122
  "--cue-space-5",
122
123
  "--cue-style-body-weight",
123
124
  "--cue-style-check-edge",
125
+ "--cue-style-control-radius",
124
126
  "--cue-style-control-step-size",
125
127
  "--cue-style-disabled-edge",
126
128
  "--cue-style-disabled-fill",
@@ -129,6 +131,7 @@
129
131
  "--cue-style-field-focus-offset",
130
132
  "--cue-style-field-hover-edge",
131
133
  "--cue-style-field-pad",
134
+ "--cue-style-field-radius",
132
135
  "--cue-style-focus-edge",
133
136
  "--cue-style-focus-width",
134
137
  "--cue-style-input-face",
@@ -104,12 +104,14 @@
104
104
  "--cue-paint-stroke-to",
105
105
  "--cue-paint-stroke-width",
106
106
  "--cue-radius-control",
107
+ "--cue-radius-scale",
107
108
  "--cue-space-2",
108
109
  "--cue-space-3",
109
110
  "--cue-space-4",
110
111
  "--cue-space-5",
111
112
  "--cue-style-body-weight",
112
113
  "--cue-style-check-edge",
114
+ "--cue-style-control-radius",
113
115
  "--cue-style-control-step-size",
114
116
  "--cue-style-disabled-edge",
115
117
  "--cue-style-disabled-fill",
@@ -118,6 +120,7 @@
118
120
  "--cue-style-field-focus-offset",
119
121
  "--cue-style-field-hover-edge",
120
122
  "--cue-style-field-pad",
123
+ "--cue-style-field-radius",
121
124
  "--cue-style-focus-edge",
122
125
  "--cue-style-focus-width",
123
126
  "--cue-style-glyph-ink",