basalt-ui 2.4.0 → 2.6.0

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 (59) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/MIGRATING.md +51 -12
  3. package/agent/rules/basalt-batteries.md +1 -1
  4. package/agent/rules/basalt-charts.md +1 -1
  5. package/agent/rules/basalt-mantine.md +1 -1
  6. package/agent/rules/basalt-state.md +2 -2
  7. package/agent/skills/basalt-app/SKILL.md +5 -5
  8. package/configs/oxlint-plugin.js +6 -3
  9. package/configs/oxlint-plugin.test.ts +8 -0
  10. package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
  11. package/dist/agent/ai-sdk-transport.js +4 -1
  12. package/dist/agent/index.d.ts +1 -1
  13. package/dist/agent/index.d.ts.map +1 -1
  14. package/dist/agent/run-records.d.ts +12 -3
  15. package/dist/agent/run-records.d.ts.map +1 -1
  16. package/dist/agent/run-records.js +16 -3
  17. package/dist/agent/transport.d.ts +10 -3
  18. package/dist/agent/transport.d.ts.map +1 -1
  19. package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
  20. package/dist/agent/use-agent-thread-runs.js +23 -7
  21. package/dist/charts/DualPanel.d.ts.map +1 -1
  22. package/dist/charts/DualPanel.js +14 -5
  23. package/dist/charts/MirroredBars.d.ts.map +1 -1
  24. package/dist/charts/MirroredBars.js +6 -4
  25. package/dist/charts/compile.d.ts +4 -0
  26. package/dist/charts/compile.d.ts.map +1 -1
  27. package/dist/charts/compile.js +40 -11
  28. package/dist/charts/panel.d.ts +6 -0
  29. package/dist/charts/panel.d.ts.map +1 -1
  30. package/dist/charts/panel.js +10 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/provider/index.d.ts.map +1 -1
  34. package/dist/provider/index.js +8 -2
  35. package/dist/state/fields.d.ts +52 -15
  36. package/dist/state/fields.d.ts.map +1 -1
  37. package/dist/state/fields.js +49 -3
  38. package/dist/state.d.ts +2 -1
  39. package/dist/state.d.ts.map +1 -1
  40. package/dist/state.js +2 -0
  41. package/dist/telemetry.d.ts +58 -4
  42. package/dist/telemetry.d.ts.map +1 -1
  43. package/dist/telemetry.js +13 -5
  44. package/llms.txt +2 -2
  45. package/package.json +1 -1
  46. package/src/agent/ai-sdk-transport.ts +5 -2
  47. package/src/agent/index.ts +1 -1
  48. package/src/agent/run-records.ts +27 -3
  49. package/src/agent/transport.ts +11 -5
  50. package/src/agent/use-agent-thread-runs.ts +35 -8
  51. package/src/charts/DualPanel.tsx +13 -4
  52. package/src/charts/MirroredBars.tsx +5 -3
  53. package/src/charts/compile.ts +59 -12
  54. package/src/charts/panel.tsx +16 -1
  55. package/src/index.ts +1 -1
  56. package/src/provider/index.tsx +8 -2
  57. package/src/state/fields.ts +112 -21
  58. package/src/state.ts +2 -0
  59. package/src/telemetry.ts +70 -7
@@ -8,7 +8,7 @@ import { VX, alpha } from "../tokens/index.js";
8
8
  import { resolveContainerClass } from "../tokens/size-classes.js";
9
9
  import { defaultFormatX, defaultNumberFormat, seriesRow, visibleSeries } from "./compile.js";
10
10
  import { barMark, emphasis } from "./marks.js";
11
- import { PanelRung, paneX, paneY, rowsOf } from "./panel.js";
11
+ import { PanelRung, chartHeightOf, paneX, paneY, rowsOf } from "./panel.js";
12
12
  import { xScaleFor } from "./scales.js";
13
13
  import { rowX } from "./types.js";
14
14
  const DEFAULT_UP_FRACTION = 0.35;
@@ -69,8 +69,9 @@ function MirroredBars(props) {
69
69
  const downMax = paneMax(down, downSeries, drawn, downOn);
70
70
  const bandWidth = 2 * model.halfStep * BAND_FILL;
71
71
  const bandScale = () => xScaleFor(drawn.map(x), true).scale;
72
- const pane = (side, cfg, s, on, max) => ({ width: w }) => {
72
+ const pane = (side, cfg, s, on, max) => ({ width: w, height: h }) => {
73
73
  const cls = resolveContainerClass(w);
74
+ const whole = chartHeightOf(h, side === "up" ? upFraction : 1 - upFraction, 0);
74
75
  const domain = side === "up" ? [0, max] : [max, 0];
75
76
  const rows = on ? rowsOf(drawn, x, s) : [];
76
77
  const opacity = (d) => (getBarOpacity?.(d) ?? BAR_OPACITY) * emphasis(highlighted, s);
@@ -137,13 +138,14 @@ function MirroredBars(props) {
137
138
  )
138
139
  ],
139
140
  scales: {
140
- x: side === "down" ? paneX({ scale: bandScale(), model, format, cls }) : { scale: bandScale(), axis: false },
141
+ x: side === "down" ? paneX({ scale: bandScale(), model, format, cls, height: whole }) : { scale: bandScale(), axis: false },
141
142
  y: paneY({
142
143
  scale: scaleLinear().domain(domain),
143
144
  domain,
144
145
  format: cfg.format,
145
146
  ticks: cfg.ticks ?? DEFAULT_PANE_TICKS,
146
- cls
147
+ cls,
148
+ height: whole
147
149
  }),
148
150
  zx: { channel: "x", scale: scaleLinear().domain([0, 1]), axis: false }
149
151
  }
@@ -60,6 +60,8 @@ export declare function yGuide<T>(opts: {
60
60
  cls: ContainerClass;
61
61
  side: 'left' | 'right';
62
62
  grid: boolean;
63
+ /** The whole chart's height: decides inside or gutter labels. */
64
+ height: number;
63
65
  }): Omit<ChartPositionScaleOptions<number>, 'scale'>;
64
66
  /**
65
67
  * Every n-th value, n the smallest stride that leaves at most the class's x tick count (the same
@@ -72,6 +74,8 @@ export declare function xGuide<X extends ChartX>(opts: {
72
74
  xTicks: number | readonly X[] | undefined;
73
75
  format: (v: ChartValue) => string;
74
76
  cls: ContainerClass;
77
+ /** The whole chart's height: decides whether the left margin is locked to zero. */
78
+ height: number;
75
79
  }): Omit<ChartPositionScaleOptions<ChartValue>, 'scale'>;
76
80
  /** Gradient resource id for a series' area fill; the host's `idPrefix` scopes it per chart. */
77
81
  export declare const areaGradientId: (index: number) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/charts/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/charts/compile.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { scaleLinear } from "@tanstack/charts/scales/linear";
6
6
  import { scaleUtc } from "d3-scale";
7
7
  import { tooltip as tooltipHost } from "@tanstack/charts/tooltip";
8
8
  import { portal } from "@tanstack/charts/tooltip/portal";
9
+ import { SHORT_CHART_HEIGHT } from "./box.js";
9
10
  import { fmtCompact } from "../format/number.js";
10
11
  import { VX } from "../tokens/index.js";
11
12
  import { cursorBinding, sourceOnlyFocus } from "./cursor.js";
@@ -21,6 +22,7 @@ const LADDER = {
21
22
  };
22
23
  const INSIDE_LABEL_DX = 4;
23
24
  const INSIDE_LABEL_DY = -6;
25
+ const labelsInside = (cls, height) => cls === "compact" && height > 0 && height < SHORT_CHART_HEIGHT;
24
26
  function defaultNumberFormat(v) {
25
27
  return fmtCompact(v, { digits: Math.abs(v) >= 1e3 ? 1 : 2 });
26
28
  }
@@ -69,13 +71,23 @@ function seriesRow(s, value, active) {
69
71
  }
70
72
  const REF_KEY_PREFIX = "__ref-";
71
73
  const refLegendKey = (index) => `${REF_KEY_PREFIX}${index}`;
74
+ const SWATCH_SOLID = /* @__PURE__ */ new Map([
75
+ [VX.goodRef, VX.goodSolid],
76
+ [VX.badRef, VX.badSolid],
77
+ [VX.warnRef, VX.warnSolid],
78
+ // The tinted status fills are as translucent, and a consumer may pass either as a line color.
79
+ [VX.good, VX.goodSolid],
80
+ [VX.goodSoft, VX.goodSolid],
81
+ [VX.bad, VX.badSolid],
82
+ [VX.warn, VX.warnSolid]
83
+ ]);
72
84
  function refLegendSeries(refLines) {
73
85
  return (refLines ?? []).flatMap(
74
86
  (r, i) => r.legend === void 0 ? [] : [
75
87
  {
76
88
  key: refLegendKey(i),
77
89
  label: r.legend.label,
78
- color: r.color,
90
+ color: SWATCH_SOLID.get(r.color) ?? r.color,
79
91
  role: "reference",
80
92
  tooltip: false,
81
93
  getValue: () => null,
@@ -91,12 +103,12 @@ function visibleSeries(series, hidden) {
91
103
  );
92
104
  }
93
105
  function yGuide(opts) {
94
- const { cfg, axis, cls, side, grid } = opts;
106
+ const { cfg, axis, cls, side, grid, height } = opts;
95
107
  const ladder = LADDER[cls];
96
108
  const ticks = typeof cfg?.ticks === "object" ? { values: cfg.ticks } : { count: typeof cfg?.ticks === "number" ? cfg.ticks : ladder.yTicks };
97
109
  const gridLine = grid ? { grid: GRID_LINE } : {};
98
110
  if (cls === "micro") return { ...gridLine, axis: false };
99
- const inside = cls === "compact";
111
+ const inside = labelsInside(cls, height);
100
112
  return {
101
113
  ...gridLine,
102
114
  ...side === "right" && { side: "right" },
@@ -129,8 +141,9 @@ function strideTicks(values, cls) {
129
141
  return values.filter((_, i) => i % stride === 0);
130
142
  }
131
143
  function xGuide(opts) {
132
- const { model, xTicks, format, cls } = opts;
144
+ const { model, xTicks, format, cls, height } = opts;
133
145
  const ladder = LADDER[cls];
146
+ const inside = labelsInside(cls, height);
134
147
  const ticks = xTickPolicy(model, xTicks ?? ladder.xTicks);
135
148
  return {
136
149
  axis: {
@@ -140,8 +153,8 @@ function xGuide(opts) {
140
153
  fontSize: ladder.font,
141
154
  opacity: 1,
142
155
  thin: true,
143
- // A locked-zero left margin (compact) must not clip the first label.
144
- ...cls === "compact" && {
156
+ // A locked-zero left margin (inside labels) must not clip the first label.
157
+ ...inside && {
145
158
  anchor: ({ index }) => index === 0 ? "start" : void 0
146
159
  }
147
160
  }
@@ -382,16 +395,23 @@ const refLineMarks = (input, axes) => (input.refLines ?? []).flatMap(
382
395
  )
383
396
  );
384
397
  function buildScales(opts) {
385
- const { input, model, axes, formatX, cls, zoneScale } = opts;
398
+ const { input, model, axes, formatX, cls, height, zoneScale } = opts;
386
399
  const { left, right } = axes;
387
400
  return {
388
401
  x: {
389
402
  scale: model.scale,
390
- ...xGuide({ model, xTicks: input.xTicks, format: formatX, cls })
403
+ ...xGuide({ model, xTicks: input.xTicks, format: formatX, cls, height })
391
404
  },
392
405
  y: {
393
406
  scale: yScaleFor(input.y, left.domain),
394
- ...yGuide({ cfg: input.y, axis: left, cls, side: "left", grid: input.y?.grid ?? true })
407
+ ...yGuide({
408
+ cfg: input.y,
409
+ axis: left,
410
+ cls,
411
+ height,
412
+ side: "left",
413
+ grid: input.y?.grid ?? true
414
+ })
395
415
  },
396
416
  ...right && {
397
417
  y2: {
@@ -401,6 +421,7 @@ function buildScales(opts) {
401
421
  cfg: input.y2,
402
422
  axis: right,
403
423
  cls,
424
+ height,
404
425
  side: "right",
405
426
  grid: input.y2?.grid ?? false
406
427
  })
@@ -520,11 +541,19 @@ function compileCartesian(input) {
520
541
  });
521
542
  return {
522
543
  marks: [...under, ...kindMarks, ...dots, ...over, crosshair({ x: CROSSHAIR, y: false })],
523
- scales: buildScales({ input, model, axes, formatX, cls, zoneScale: under.length > 0 }),
544
+ scales: buildScales({
545
+ input,
546
+ model,
547
+ axes,
548
+ formatX,
549
+ cls,
550
+ height,
551
+ zoneScale: under.length > 0
552
+ }),
524
553
  theme: CHART_THEME,
525
554
  ...gradients.length > 0 && { gradients },
526
555
  clip: true,
527
- ...cls === "compact" && { margin: { left: 0, ...axes.right && { right: 0 } } }
556
+ ...labelsInside(cls, height) && { margin: { left: 0, ...axes.right && { right: 0 } } }
528
557
  };
529
558
  },
530
559
  // Followers paint the crosshair only, unless the chart opts into following tooltips.
@@ -40,6 +40,8 @@ export declare const paneY: (opts: {
40
40
  format: (v: number) => string;
41
41
  ticks: number;
42
42
  cls: ContainerClass;
43
+ /** The whole chart's height ({@link chartHeightOf}). */
44
+ height: number;
43
45
  }) => StoredChartSpec["scales"][string];
44
46
  type ChartScale = NonNullable<StoredChartSpec['scales'][string]>['scale'];
45
47
  /** The shared x axis (drawn on the bottom pane only): the rung's ticks and format. */
@@ -48,7 +50,11 @@ export declare const paneX: <X extends ChartX>(opts: {
48
50
  model: XScaleModel<X>;
49
51
  format: (v: ChartValue) => string;
50
52
  cls: ContainerClass;
53
+ /** The whole chart's height ({@link chartHeightOf}). */
54
+ height: number;
51
55
  }) => StoredChartSpec["scales"][string];
56
+ /** The whole chart's height from one pane's: a pane gets `share` of the height less the gap. */
57
+ export declare const chartHeightOf: (paneHeight: number, share: number, gap: number) => number;
52
58
  /** One row per datum for a series: a `null` or non-finite value is kept as a gap. */
53
59
  export declare function rowsOf<T, X extends ChartX>(data: readonly T[], x: (d: T) => X, s: ChartSeries<T>): PlotRow<T, X>[];
54
60
  export declare function PanelRung<T, X extends ChartX>(props: PanelRungProps<T, X>): ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/charts/panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/charts/panel.tsx"],"names":[],"mappings":"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"}
@@ -16,14 +16,22 @@ const paneY = (opts) => ({
16
16
  cfg: { ticks: opts.ticks },
17
17
  axis: { domain: opts.domain, format: opts.format },
18
18
  cls: opts.cls,
19
+ height: opts.height,
19
20
  side: "left",
20
21
  grid: true
21
22
  })
22
23
  });
23
24
  const paneX = (opts) => ({
24
25
  scale: opts.scale,
25
- ...xGuide({ model: opts.model, xTicks: void 0, format: opts.format, cls: opts.cls })
26
+ ...xGuide({
27
+ model: opts.model,
28
+ xTicks: void 0,
29
+ format: opts.format,
30
+ cls: opts.cls,
31
+ height: opts.height
32
+ })
26
33
  });
34
+ const chartHeightOf = (paneHeight, share, gap) => paneHeight > 0 && share > 0 ? paneHeight / share + gap : 0;
27
35
  function rowsOf(data, x, s) {
28
36
  return data.map((d) => {
29
37
  const v = s.getValue(d);
@@ -117,6 +125,7 @@ function PanelRung(props) {
117
125
  }
118
126
  export {
119
127
  PanelRung,
128
+ chartHeightOf,
120
129
  paneX,
121
130
  paneY,
122
131
  rowsOf
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export { BasaltProvider } from './provider/index.js';
9
9
  export { createBasaltRouter, type BasaltRouter, type BasaltRouterContext, } from './provider/create-router.js';
10
- export type { BasaltEvent } from './telemetry.js';
10
+ export type { BasaltEvent, ChatTurnEnd, ChatTurnTrace, Telemetry, TraceHeaders } from './telemetry.js';
11
11
  export { defineNav, navGroup, navTarget, flattenNav, useBasaltNav, type NavItemId, } from './router-tanstack/index.js';
12
12
  export { scrollParentOf, useCoarsePointer } from './common/index.js';
13
13
  export { createBasaltTheme } from './theme/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EACL,WAAW,EACX,OAAO,EACP,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACnG,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EACL,WAAW,EACX,OAAO,EACP,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AASzD,OAAO,EAAE,SAAS,EAAqE,MAAM,OAAO,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAStD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,qFAAqF;IACrF,MAAM,EAAE,YAAY,CAAA;IACpB,qFAAqF;IACrF,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAA;IACtD;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;IAC/D;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAA;CAChD,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,OAAO,GAAG,oBAAoB,GAAG,sBAAsB,CAAC,CAAA;AAIpG,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;CAC1C,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAwB1D,mGAAmG;AACnG,qBAAa,YAAa,SAAQ,SAAS,CAAC,iBAAiB,EAAE,aAAa,CAAC;gBAC/D,KAAK,EAAE,iBAAiB;IAKpC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;IAIrD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAczD,MAAM,IAAI,SAAS;CAO7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAYD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAmBvC;AAqMD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,aAAoB,EACpB,cAAc,EACd,kBAA2B,EAC3B,KAAK,EACL,aAAyB,EACzB,eAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,+BA6ErB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AASzD,OAAO,EAAE,SAAS,EAAqE,MAAM,OAAO,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAStD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAQxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,qFAAqF;IACrF,MAAM,EAAE,YAAY,CAAA;IACpB,qFAAqF;IACrF,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAA;IACtD;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;IAC/D;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAA;CAChD,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,OAAO,GAAG,oBAAoB,GAAG,sBAAsB,CAAC,CAAA;AAIpG,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;CAC1C,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAwB1D,mGAAmG;AACnG,qBAAa,YAAa,SAAQ,SAAS,CAAC,iBAAiB,EAAE,aAAa,CAAC;gBAC/D,KAAK,EAAE,iBAAiB;IAKpC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;IAIrD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAczD,MAAM,IAAI,SAAS;CAO7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAYD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAmBvC;AAqMD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,aAAoB,EACpB,cAAc,EACd,kBAA2B,EAC3B,KAAK,EACL,aAAyB,EACzB,eAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,+BA6ErB"}
@@ -18,7 +18,13 @@ import { registerColorSchemeSetter } from "../commands/shell-bridge.js";
18
18
  import { useIsomorphicLayoutEffect } from "../common/isomorphic-layout-effect.js";
19
19
  import { PageTitle } from "../shell/page-title.js";
20
20
  import { SizeClassHintContext } from "../shell/use-size-class.js";
21
- import { TelemetryContext, bindRouterTelemetry, createEmitter, errorName, now } from "../telemetry.js";
21
+ import {
22
+ TelemetryContext,
23
+ bindRouterTelemetry,
24
+ createLiveEmitter,
25
+ errorName,
26
+ now
27
+ } from "../telemetry.js";
22
28
  import { useRegistryHotkeys } from "./hotkeys.js";
23
29
  import { buildSpotlightActions } from "./spotlight-actions.js";
24
30
  function DefaultErrorFallback() {
@@ -251,7 +257,7 @@ function BasaltProvider({
251
257
  useEffect(() => {
252
258
  sinkRef.current = telemetry;
253
259
  });
254
- const emit = useMemo(() => createEmitter((event) => sinkRef.current?.(event)), []);
260
+ const emit = useMemo(() => createLiveEmitter(() => sinkRef.current), []);
255
261
  useWindowErrors(emit);
256
262
  useRegistryHotkeys();
257
263
  useEffect(() => registerModalsProvider(), []);
@@ -254,21 +254,14 @@ type NumberHandleExtras<F> = F extends {
254
254
  readonly int?: undefined;
255
255
  readonly step?: undefined;
256
256
  };
257
- /**
258
- * `createLocalStore`'s `use()` read options. `fallback` is a CALL-SITE default for a value that
259
- * arrives as a prop (a leader, a latest date): it applies only while the field is unset (nothing
260
- * stored), is applied in render AFTER the store read, and is never persisted — `clear()` unsets
261
- * back to it. `handle.fallback` and `isDefault` still report the definition's.
262
- *
263
- * An object fallback (range, multi) must be memoised by the caller: the value returned while unset
264
- * IS that object, so a fresh literal per render changes identity every render.
265
- */
266
- export type FieldReadOptions<F extends AnyField> = {
267
- fallback?: FieldValue<F>;
268
- };
269
- /** A `createLocalStore` field: the shared handle, plus `use({ fallback })`. */
257
+ /** A `createLocalStore` field: the shared handle plus `withFallback`. */
270
258
  export type LocalFieldHandle<F extends AnyField> = FieldHandle<F> & {
271
- use(read?: FieldReadOptions<F>): readonly [FieldValue<F>, (next: FieldValue<F>, opts?: FieldSetOptions) => void];
259
+ /**
260
+ * The same field with a call-site unset value (a prop-derived leader), for `use()` and any
261
+ * control as `field=`. Rule: `basalt-state`. Stable per fallback: a primitive is cached for the
262
+ * LAST value only, an object (range, multi) by identity — memoise objects at the caller.
263
+ */
264
+ withFallback(fallback: FieldValue<F>): FieldHandle<F>;
272
265
  };
273
266
  /**
274
267
  * The binding every basalt control takes instead of `value`/`onChange` (C2). One field, both lanes,
@@ -480,7 +473,9 @@ type StoreRecord = Record<string, unknown>;
480
473
  */
481
474
  export type FieldWrite = (next: unknown, opts?: FieldSetOptions) => void;
482
475
  /** One field's `use()`, untyped. @internal — see `FieldCodec`. */
483
- export type FieldUse = (read?: FieldReadOptions<AnyField>) => readonly [unknown, FieldWrite];
476
+ export type FieldUse = (read?: {
477
+ fallback?: unknown;
478
+ }) => readonly [unknown, FieldWrite];
484
479
  /** One named field plus its codec, in declaration order. @internal — see `FieldCodec`. */
485
480
  export type StoreEntry = {
486
481
  readonly name: string;
@@ -581,5 +576,47 @@ export declare function createLocalStore<const S extends Record<string, AnyField
581
576
  fields: S;
582
577
  version?: number;
583
578
  }): LocalStore<S>;
579
+ /**
580
+ * The non-hook surface of a store basalt does not own — what zustand's `store.getState` /
581
+ * `store.setState` / `store.subscribe` already are, and what `useSyncExternalStore` wants.
582
+ */
583
+ export type ExternalStore<T> = {
584
+ get: () => T;
585
+ set: (next: T) => void;
586
+ subscribe: (onChange: () => void) => () => void;
587
+ };
588
+ /**
589
+ * A closed-enum field whose value lives in a store basalt does not own (a zustand slice, a context)
590
+ * — the bridge for a runtime mode that is neither page view state (URL) nor a preference
591
+ * (localStorage), so no `createSearchStore` / `createLocalStore` field may hold it without forking
592
+ * the truth. Returns the SAME `FieldHandle` those stores hand out, so `ViewTabs`, `SelectFilter`
593
+ * and `EnumFilter` bind to it as `field=` with no `value`/`onChange`.
594
+ *
595
+ * There is no lane: the handle reads and writes ONLY through `store`, which is taken at
596
+ * DEFINITION so a write never depends on a render — `clear()` calls `store.set(fallback)` directly
597
+ * (a foreign store has no "unset"), mounted or not, however many controls bind the handle. Labels
598
+ * are declared here like every other field's. The setter ignores `FieldSetOptions`: `patch` merges
599
+ * into a URL navigate and a lane-less write has none, the same contract the local lane documents.
600
+ *
601
+ * @example
602
+ * const timerMode = externalField({
603
+ * values: ['rest', 'interval'],
604
+ * fallback: 'rest',
605
+ * labels: { rest: 'Rest Timer', interval: 'Interval Timer' },
606
+ * store: {
607
+ * get: () => useTimerStore.getState().mode,
608
+ * set: (mode) => useTimerStore.getState().setMode(mode),
609
+ * subscribe: useTimerStore.subscribe,
610
+ * },
611
+ * })
612
+ * // <WidgetHeader actions={<ViewTabs field={timerMode} label="Timer mode" />} />
613
+ */
614
+ export declare function externalField<const T extends string>(o: {
615
+ values: readonly T[];
616
+ fallback: NoInfer<T>;
617
+ /** Option labels, keyed by value; an unlabelled value shows as itself. */
618
+ labels?: Partial<Record<T, string>>;
619
+ store: ExternalStore<T>;
620
+ }): FieldHandle<EnumField<T>>;
584
621
  export {};
585
622
  //# sourceMappingURL=fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/state/fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/state/fields.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { useSyncExternalStore } from "react";
2
2
  import { createPersistedState, readPersistedValue, writePersistedValue } from "./persisted.js";
3
+ function labelledOptions(values, labels) {
4
+ return values.map((value) => ({ value, label: labels?.[value] ?? value }));
5
+ }
3
6
  function rangeField(o, lane) {
4
7
  const { fallback } = o;
5
8
  return {
@@ -282,8 +285,7 @@ function createStoreCore(o) {
282
285
  const fromRecord = (record) => record;
283
286
  const readRecord = () => toRecord(readPersistedValue(o.key, version));
284
287
  const optionsFor = (entry) => {
285
- const map = labels.get(entry.name);
286
- return entry.codec.optionValues.map((value) => ({ value, label: map?.[value] ?? value }));
288
+ return labelledOptions(entry.codec.optionValues, labels.get(entry.name));
287
289
  };
288
290
  const clearField = (name) => {
289
291
  const record = readRecord();
@@ -392,7 +394,33 @@ function createLocalStore(o) {
392
394
  const persisted = entry.codec.lane.persist;
393
395
  const use = persisted ? persistedUse(entry) : core.memoryUse(entry);
394
396
  const clear = persisted ? () => core.clearField(entry.name) : () => core.clearMemory(entry.name);
395
- field2[entry.name] = core.handle(entry, use, clear);
397
+ const bare = core.handle(entry, use, clear);
398
+ const derive = (fallback) => {
399
+ const useDerived = () => use({ fallback });
400
+ return Object.create(bare, {
401
+ use: { value: useDerived, enumerable: true },
402
+ fallback: { get: () => fallback, enumerable: true },
403
+ isDefault: { value: (v) => entry.codec.equals(v, fallback), enumerable: true }
404
+ });
405
+ };
406
+ const byIdentity = /* @__PURE__ */ new WeakMap();
407
+ let last;
408
+ const withFallback = (fallback) => {
409
+ if (typeof fallback === "function") return derive(fallback);
410
+ if (typeof fallback === "object") {
411
+ const cached = byIdentity.get(fallback);
412
+ if (cached !== void 0) return cached;
413
+ const handle = derive(fallback);
414
+ byIdentity.set(fallback, handle);
415
+ return handle;
416
+ }
417
+ if (last !== void 0 && Object.is(last.value, fallback)) return last.handle;
418
+ last = { value: fallback, handle: derive(fallback) };
419
+ return last.handle;
420
+ };
421
+ field2[entry.name] = Object.assign(core.handle(entry, use, clear), {
422
+ withFallback
423
+ });
396
424
  }
397
425
  const store = {
398
426
  field: field2,
@@ -404,9 +432,27 @@ function createLocalStore(o) {
404
432
  };
405
433
  return store;
406
434
  }
435
+ function externalField(o) {
436
+ const { values, fallback, store } = o;
437
+ if (!values.includes(fallback)) {
438
+ throw new Error(
439
+ `basalt-ui: externalField fallback '${fallback}' is not one of its values (${values.join(", ")}).`
440
+ );
441
+ }
442
+ const setter = (next) => store.set(next);
443
+ return {
444
+ kind: "enum",
445
+ fallback,
446
+ options: labelledOptions(values, o.labels),
447
+ use: () => [useSyncExternalStore(store.subscribe, store.get, store.get), setter],
448
+ clear: () => store.set(fallback),
449
+ isDefault: (v) => v === fallback
450
+ };
451
+ }
407
452
  export {
408
453
  createLocalStore,
409
454
  createStoreCore,
455
+ externalField,
410
456
  field,
411
457
  resolveFieldCodec
412
458
  };
package/dist/state.d.ts CHANGED
@@ -5,11 +5,12 @@
5
5
  * - `createPersistedState` — the versioned localStorage primitive every basalt module persists through.
6
6
  * - `field.*`, `FieldHandle`, `EnumField`, `RangeWindow` and `createLocalStore` — the store field
7
7
  * vocabulary and the router-free store.
8
+ * - `externalField` — a `FieldHandle` over a value another store owns (a zustand slice).
8
9
  * - `createSearchStore` — the URL-backed store (the store half of 1.x `./router-tanstack`).
9
10
  *
10
11
  * Internal consumers import the wider field types from `./state/fields`.
11
12
  */
12
13
  export { createPersistedState } from './state/persisted.js';
13
- export { field, createLocalStore, type EnumField, type FieldHandle, type RangeWindow, } from './state/fields.js';
14
+ export { field, externalField, createLocalStore, type EnumField, type FieldHandle, type RangeWindow, } from './state/fields.js';
14
15
  export { createSearchStore } from './router-tanstack/search-store.js';
15
16
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EACL,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
package/dist/state.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createPersistedState } from "./state/persisted.js";
2
2
  import {
3
3
  field,
4
+ externalField,
4
5
  createLocalStore
5
6
  } from "./state/fields.js";
6
7
  import { createSearchStore } from "./router-tanstack/search-store.js";
@@ -8,5 +9,6 @@ export {
8
9
  createLocalStore,
9
10
  createPersistedState,
10
11
  createSearchStore,
12
+ externalField,
11
13
  field
12
14
  };