nimbus-docs 0.1.7 → 0.1.8

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.
package/dist/react.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import * as react from "react";
1
2
  import { ReactNode, RefObject } from "react";
2
3
  import { ClassValue } from "clsx";
3
4
 
@@ -51,7 +52,7 @@ interface DiagramProps {
51
52
  label?: string;
52
53
  className?: string;
53
54
  }
54
- declare function DiagramRoot(props: DiagramProps): any;
55
+ declare function DiagramRoot(props: DiagramProps): react.JSX.Element;
55
56
  declare const Diagram: typeof DiagramRoot;
56
57
  //#endregion
57
58
  //#region src/react/registry.d.ts
@@ -67,7 +68,10 @@ declare const Diagram: typeof DiagramRoot;
67
68
  */
68
69
  interface RegistryEntry {
69
70
  id: string;
70
- toggle: () => void;
71
+ /** Set the user-paused flag directly (idempotent). */
72
+ setPaused: (paused: boolean) => void;
73
+ /** Read the current user-paused flag at call time. */
74
+ userPaused: () => boolean;
71
75
  }
72
76
  declare class DiagramRegistry {
73
77
  private entries;
@@ -75,6 +79,11 @@ declare class DiagramRegistry {
75
79
  /** Bumped on every membership change — useSyncExternalStore snapshot key. */
76
80
  private version;
77
81
  register(entry: RegistryEntry): () => void;
82
+ /**
83
+ * Pause everything when at least one diagram is unpaused; resume
84
+ * everything otherwise. A naive per-entry toggle would *invert* mixed
85
+ * states — resuming the diagrams a reader had deliberately paused.
86
+ */
78
87
  toggleAll(): void;
79
88
  count: () => number;
80
89
  getVersion: () => number;
@@ -90,7 +99,7 @@ interface UsePhaseStepBase {
90
99
  /** Milliseconds to hold this step before advancing. */
91
100
  hold: number;
92
101
  }
93
- interface UsePhaseStep<C extends Record<string, unknown> = Record<string, never>> extends UsePhaseStepBase {
102
+ interface UsePhaseStep<C extends Record<string, unknown> = Record<string, never>, D = unknown> extends UsePhaseStepBase {
94
103
  /**
95
104
  * Predicate gate. When false, this step is skipped for the current cycle.
96
105
  * Receives `{ cycle, current, ...context }` where `current` is the id of
@@ -101,26 +110,45 @@ interface UsePhaseStep<C extends Record<string, unknown> = Record<string, never>
101
110
  cycle: number;
102
111
  current: string;
103
112
  } & C) => boolean;
113
+ /**
114
+ * Arbitrary payload surfaced as `data` while this step holds — e.g.
115
+ * which node/edge lights up. Replaces per-card `ACTIVE_MAP` lookup
116
+ * tables; `data` is `null` when idle or when an autoplaying walker is
117
+ * frozen by reduced motion.
118
+ */
119
+ data?: D;
104
120
  }
105
- interface UsePhaseOptions<C extends Record<string, unknown> = Record<string, never>> {
106
- steps: UsePhaseStep<C>[];
121
+ interface UsePhaseOptions<C extends Record<string, unknown> = Record<string, never>, D = unknown> {
122
+ steps: UsePhaseStep<C, D>[];
107
123
  /** Values made available to each step's `when` predicate. */
108
124
  context?: C;
109
125
  /** When true (default), the sequence restarts after the last step. */
110
126
  loop?: boolean;
127
+ /**
128
+ * When true (default) the walker runs as soon as the diagram plays.
129
+ * When false it starts idle (`current === ""`) and runs once per
130
+ * `start()` call — the shape for click-triggered one-shot sequences.
131
+ */
132
+ autoplay?: boolean;
111
133
  }
112
- interface UsePhaseReturn {
113
- /** Id of the currently-active step. Empty string if `steps` is empty. */
134
+ interface UsePhaseReturn<D = unknown> {
135
+ /** Id of the currently-active step. Empty string when idle or `steps` is empty. */
114
136
  current: string;
115
137
  /** Index into the *filtered* sequence for the current cycle. */
116
138
  index: number;
117
- /** How many times the sequence has fully completed. Starts at 0. */
139
+ /** Completed passes through the sequence. Starts at 0. */
118
140
  cycle: number;
141
+ /** The active step's `data` payload. `null` when idle or motion-frozen. */
142
+ data: D | null;
143
+ /** True while the walker is active. Always true when `autoplay`. */
144
+ running: boolean;
145
+ /** Begin a run from the first step. No-op while already running. */
146
+ start: () => void;
119
147
  /** Advance one step (or wrap to next cycle if at the end). */
120
148
  advance: () => void;
121
- /** Jump to a named step in the current cycle's sequence. */
149
+ /** Jump to a named step in the current cycle's sequence. Wakes an idle walker. */
122
150
  goto: (id: string) => void;
123
- /** Reset cycle and index to 0. */
151
+ /** Reset cycle and index to 0 (and return to idle when `autoplay: false`). */
124
152
  reset: () => void;
125
153
  }
126
154
  /**
@@ -129,15 +157,28 @@ interface UsePhaseReturn {
129
157
  * automatically when any gate fails.
130
158
  *
131
159
  * Steps may carry a `when(ctx)` predicate that filters them out for a
132
- * given cycle. Mode toggles, branches, alternating loops anything
133
- * cycle-dependent composes via the predicate plus user-supplied
134
- * `context`.
160
+ * given cycle, and a `data` payload surfaced while the step holds. Mode
161
+ * toggles, branches, alternating loops anything cycle-dependent
162
+ * composes via the predicate plus user-supplied `context`.
163
+ *
164
+ * Two run modes:
165
+ * - `autoplay: true` (default) — ambient looping animation. Freezes under
166
+ * reduced motion (`data` reads `null`).
167
+ * - `autoplay: false` — idle until `start()`. Started runs are
168
+ * user-initiated *function*, not decoration: they keep advancing under
169
+ * reduced motion (gate your CSS transition durations card-side), and a
170
+ * `start()` while the page is paused arms as soon as play resumes.
171
+ *
172
+ * The scheduler depends on the current step's *values* (id, hold), not
173
+ * on `steps` / `context` identity — inline literals are safe and won't
174
+ * re-arm the hold timer under frequent re-renders.
135
175
  */
136
- declare function usePhase<C extends Record<string, unknown> = Record<string, never>>({
176
+ declare function usePhase<C extends Record<string, unknown> = Record<string, never>, D = unknown>({
137
177
  steps,
138
178
  context,
139
- loop
140
- }: UsePhaseOptions<C>): UsePhaseReturn;
179
+ loop,
180
+ autoplay
181
+ }: UsePhaseOptions<C, D>): UsePhaseReturn<D>;
141
182
  //#endregion
142
183
  //#region src/react/hooks/use-measure.d.ts
143
184
  interface UseMeasureOptions {
@@ -153,8 +194,7 @@ interface UseMeasureOptions {
153
194
  /**
154
195
  * DOM rect + optional selector callback. The selector receives the
155
196
  * observed element and its rect, and returns whatever derived geometry
156
- * the author needs (NodeRect, EdgeData, etc.). Subsumes momito's
157
- * `useWeldedMeasure` pattern.
197
+ * the author needs (NodeRect, EdgeData, etc.).
158
198
  *
159
199
  * For multi-element measurements (e.g. measuring a container plus 5
160
200
  * child nodes), pass the container ref and read the other refs from
@@ -193,6 +233,111 @@ interface UseTabIndicatorReturn {
193
233
  */
194
234
  declare function useTabIndicator(containerRef: RefObject<HTMLElement | null>, getTab: (id: string) => HTMLElement | null, activeId: string | null): UseTabIndicatorReturn;
195
235
  //#endregion
236
+ //#region src/react/hooks/use-ref-setters.d.ts
237
+ /**
238
+ * Stable per-id ref callbacks for a refs map — the ergonomic half of the
239
+ * "refs map + setter factory" pattern. Instead of N individual `useRef`s
240
+ * and N inline `ref={(el) => …}` arrows (which churn refs every render),
241
+ * keep one map and hand each element a cached callback:
242
+ *
243
+ * ```tsx
244
+ * const nodeRefs = useRef<Partial<Record<NodeId, HTMLDivElement | null>>>({});
245
+ * const setNode = useRefSetters(nodeRefs);
246
+ *
247
+ * <div ref={setNode("prompt")}>Prompt</div>
248
+ * <div ref={setNode("model")}>Model</div>
249
+ * ```
250
+ *
251
+ * Measurement stays caller-side (read `refs.current` inside a `useMeasure`
252
+ * selector) — this hook owns only the ref plumbing.
253
+ */
254
+ declare function useRefSetters<K extends string, E extends Element = HTMLDivElement>(refs: RefObject<Partial<Record<K, E | null>>>): (id: K) => (el: E | null) => void;
255
+ //#endregion
256
+ //#region src/react/hooks/use-media-query.d.ts
257
+ /**
258
+ * Reactive `window.matchMedia` subscription, SSR-safe.
259
+ *
260
+ * The server snapshot returns `defaultValue` (default `false`), so static
261
+ * builds render the no-match branch and hydrate without mismatch warnings;
262
+ * the first client render corrects it if the query matches.
263
+ *
264
+ * ```ts
265
+ * const isMobile = useMediaQuery("(max-width: 640px)");
266
+ * ```
267
+ */
268
+ declare function useMediaQuery(query: string, defaultValue?: boolean): boolean;
269
+ //#endregion
270
+ //#region src/react/geometry.d.ts
271
+ /**
272
+ * Pure edge-routing math for diagram cards. No React, no DOM — every
273
+ * function maps numbers to numbers (or an SVG path string). Colors,
274
+ * stroke widths, markers, and node outlines stay user-side.
275
+ */
276
+ interface Point {
277
+ x: number;
278
+ y: number;
279
+ }
280
+ type RectSide = "top" | "right" | "bottom" | "left";
281
+ /**
282
+ * Minimal rect shape consumed by `edgePoint`: left/top origin plus size,
283
+ * relative to whatever container the SVG layer is positioned against.
284
+ * Richer rect types (with `r`/`b`/`cx`/`cy`) are structurally compatible.
285
+ */
286
+ interface EdgeRect {
287
+ l: number;
288
+ t: number;
289
+ w: number;
290
+ h: number;
291
+ }
292
+ /** Anchor point on a rect edge. `frac` runs 0→1 from top/left. */
293
+ declare function edgePoint(rect: EdgeRect, side: RectSide, frac?: number): Point;
294
+ /**
295
+ * - `straight` — direct line; axis-aligned lines are shortened by
296
+ * `arrowOffset` at the destination so an arrowhead marker doesn't
297
+ * overlap the target.
298
+ * - `elbow` — one right-angle corner with a quadratic rounding,
299
+ * radius clamped to half of each segment; end shortened by
300
+ * `arrowOffset`.
301
+ * - `vSplit` — vertical S-path through the midpoint Y (drop, run,
302
+ * drop), corners rounded; no arrow offset (designed for marker-less
303
+ * connectors).
304
+ * - `auto` — `straight` when endpoints are axis-aligned within 2px,
305
+ * else `elbow`.
306
+ */
307
+ type EdgeRoute = "straight" | "elbow" | "vSplit" | "auto";
308
+ interface RouteOptions {
309
+ /** End-shortening so arrowheads sit flush. Default 6. */
310
+ arrowOffset?: number;
311
+ /** Corner radius. Defaults: elbow 10, vSplit 6. */
312
+ radius?: number;
313
+ }
314
+ /** Build an SVG path string between two points using the given route. */
315
+ declare function routeEdge(from: Point, to: Point, route?: EdgeRoute, options?: RouteOptions): string;
316
+ /** Anchor: `[nodeId, side]` with an optional frac (default 0.5). */
317
+ type EdgeAnchor<NodeId extends string = string> = readonly [NodeId, RectSide] | readonly [NodeId, RectSide, number];
318
+ interface EdgeSpec<NodeId extends string = string, EdgeId extends string = string> {
319
+ id: EdgeId;
320
+ from: EdgeAnchor<NodeId>;
321
+ to: EdgeAnchor<NodeId>;
322
+ route?: EdgeRoute;
323
+ /** Carried through to the resolved edge for styling decisions. */
324
+ ghost?: boolean;
325
+ }
326
+ interface ResolvedEdge<EdgeId extends string = string> {
327
+ id: EdgeId;
328
+ from: Point;
329
+ to: Point;
330
+ /** Ready-to-render SVG path string. */
331
+ d: string;
332
+ ghost?: boolean;
333
+ }
334
+ /**
335
+ * Resolve declarative edge specs against a map of measured rects.
336
+ * Specs whose endpoints aren't in `rects` yet (unmounted nodes,
337
+ * first-paint gaps) are skipped rather than rendered degenerate.
338
+ */
339
+ declare function resolveEdges<NodeId extends string = string, EdgeId extends string = string>(specs: readonly EdgeSpec<NodeId, EdgeId>[], rects: Partial<Record<NodeId, EdgeRect>>, options?: RouteOptions): ResolvedEdge<EdgeId>[];
340
+ //#endregion
196
341
  //#region src/react/cn.d.ts
197
342
  /**
198
343
  * Compose class names with Tailwind conflict resolution. Vendored into
@@ -201,5 +346,5 @@ declare function useTabIndicator(containerRef: RefObject<HTMLElement | null>, ge
201
346
  */
202
347
  declare function cn(...inputs: ClassValue[]): string;
203
348
  //#endregion
204
- export { type Depth, Diagram, type DiagramContextValue, type DiagramPhase, type DiagramProps, type ReducedMotionMode, type UseMeasureOptions, type UsePhaseOptions, type UsePhaseReturn, type UsePhaseStep, type UseTabIndicatorReturn, cn, diagramRegistry, useDiagram, useDiagramOrDefault, useMeasure, usePhase, useTabIndicator };
349
+ export { type Depth, Diagram, type DiagramContextValue, type DiagramPhase, type DiagramProps, type EdgeAnchor, type EdgeRect, type EdgeRoute, type EdgeSpec, type Point, type RectSide, type ReducedMotionMode, type ResolvedEdge, type RouteOptions, type UseMeasureOptions, type UsePhaseOptions, type UsePhaseReturn, type UsePhaseStep, type UseTabIndicatorReturn, cn, diagramRegistry, edgePoint, resolveEdges, routeEdge, useDiagram, useDiagramOrDefault, useMeasure, useMediaQuery, usePhase, useRefSetters, useTabIndicator };
205
350
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","names":[],"sources":["../src/react/diagram.tsx","../src/react/registry.ts","../src/react/hooks/use-phase.ts","../src/react/hooks/use-measure.ts","../src/react/hooks/use-tab-indicator.ts","../src/react/cn.ts"],"mappings":";;;;KAuBY,KAAA;AAAA,KACA,iBAAA;AAAA,KACA,YAAA;AAAA,UAEK,mBAAA;EAJA;EAMf,EAAA;EANe;EAQf,KAAA,EAAO,YAAA;EAPG;EASV,OAAA;;EAEA,OAAA;EAX2B;EAa3B,UAAA;EAZsB;EActB,aAAA;EAdsB;EAgBtB,KAAA,EAAO,KAAA;EAdQ;EAgBf,KAAA;IAAS,EAAA;EAAA;EAdT;EAgBA,KAAA;EAdO;EAgBP,MAAA;AAAA;AAAA,iBA6Dc,UAAA,CAAA,GAAc,mBAAA;;;;;;iBAwBd,mBAAA,CAAoB,QAAA,WAAmB,mBAAA;AAAA,UAkCtC,YAAA;EACf,QAAA,EAAU,SAAA;EACV,QAAA;EACA,kBAAA;EACA,aAAA,GAAgB,iBAAA;;EAEhB,SAAA;EAhE+C;EAkE/C,aAAA;EA1CiC;EA4CjC,QAAA;EA5CkC;EA8ClC,KAAA;EACA,SAAA;AAAA;AAAA,iBA0FO,WAAA,CAAY,KAAA,EAAO,YAAA;AAAA,cAuMf,OAAA,SAAO,WAAA;;;;;;;AA7bpB;;;;;AACA;UCbU,aAAA;EACR,EAAA;EACA,MAAA;AAAA;AAAA,cAGI,eAAA;EAAA,QACI,OAAA;EAAA,QACA,SAAA;EDOc;EAAA,QCLd,OAAA;EAER,QAAA,CAAS,KAAA,EAAO,aAAA;EAWhB,SAAA,CAAA;EAOA,KAAA;EAEA,UAAA;EAEA,SAAA,GAAa,QAAA;EAAA,QAOL,MAAA;AAAA;AAAA,cAKG,eAAA,EAAe,eAAA;;;UCnDX,gBAAA;;EAEf,EAAA;;EAEA,IAAA;AAAA;AAAA,UAGe,YAAA,WAAuB,MAAA,oBAA0B,MAAA,yBACxD,gBAAA;EFUO;;AACjB;;;;EEJE,IAAA,IAAQ,GAAA;IAAO,KAAA;IAAe,OAAA;EAAA,IAAoB,CAAA;AAAA;AAAA,UAGnC,eAAA,WAA0B,MAAA,oBAA0B,MAAA;EACnE,KAAA,EAAO,YAAA,CAAa,CAAA;EFGc;EEDlC,OAAA,GAAU,CAAA;EFeE;EEbZ,IAAA;AAAA;AAAA,UAGe,cAAA;EFEf;EEAA,OAAA;EFIA;EEFA,KAAA;EFMA;EEJA,KAAA;EFMA;EEJA,OAAA;EFMA;EEJA,IAAA,GAAO,EAAA;EFMD;EEJN,KAAA;AAAA;;;;;AFyFF;;;;;AAkCA;iBE9GgB,QAAA,WAAmB,MAAA,oBAA0B,MAAA,gBAAA,CAAA;EAC3D,KAAA;EACA,OAAA;EACA;AAAA,GACC,eAAA,CAAgB,CAAA,IAAK,cAAA;;;UClDP,iBAAA;;;AHajB;;;;;EGLE,IAAA;AAAA;;;;AHOF;;;;;AAEA;;;;;;iBGQgB,UAAA,WAAqB,WAAA,GAAc,UAAA,MAAgB,eAAA,CAAA,CACjE,GAAA,EAAK,SAAA,CAAU,CAAA,UACf,QAAA,IAAY,EAAA,EAAI,CAAA,EAAG,IAAA,EAAM,eAAA,KAAoB,CAAA,EAC7C,OAAA,GAAS,iBAAA;EACN,IAAA,EAAM,eAAA;EAAwB,QAAA,EAAU,CAAA;AAAA;;;UC7B5B,qBAAA;;EAEf,KAAA;IAAS,GAAA;IAAa,IAAA;IAAc,KAAA;IAAe,MAAA;EAAA;AAAA;;;;;AJarD;;;;;AAEA;;;iBIAgB,eAAA,CACd,YAAA,EAAc,SAAA,CAAU,WAAA,UACxB,MAAA,GAAS,EAAA,aAAe,WAAA,SACxB,QAAA,kBACC,qBAAA;;;;;;AJRH;;iBKfgB,EAAA,CAAA,GAAM,MAAA,EAAQ,UAAA"}
1
+ {"version":3,"file":"react.d.ts","names":[],"sources":["../src/react/diagram.tsx","../src/react/registry.ts","../src/react/hooks/use-phase.ts","../src/react/hooks/use-measure.ts","../src/react/hooks/use-tab-indicator.ts","../src/react/hooks/use-ref-setters.ts","../src/react/hooks/use-media-query.ts","../src/react/geometry.ts","../src/react/cn.ts"],"mappings":"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"}