@bitcobblers/wod-wiki-ui 0.50.2189 → 0.50.2191

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/index.d.cts CHANGED
@@ -1,8 +1,8 @@
1
- import { Q as QueryExecutor } from './index--_wwHFvD.cjs';
2
- export { B as ButtonAction, C as CursorFocusState, a as CustomCompletionSource, D as DefaultFrontmatterWidget, E as EditorDialect, b as EditorPresetOptions, c as EditorSection, d as EditorSectionSubtype, e as EditorSectionType, f as EmbedType, F as FrontmatterCatalogEntry, g as FrontmatterRefDiagnostic, h as FrontmatterReferenceProvider, i as FrontmatterReferenceRef, j as FrontmatterReferenceResolution, k as FrontmatterSuggestionCatalog, G as GeometryListener, N as NavigationHook, l as NestedCompletionOptions, O as OverlayAction, m as QueryBlockPreviewOptions, R as RuntimePanelEntry, S as SectionIdentity, n as SectionRect, o as SectionState, W as WidgetConfig, p as WidgetProps, q as WidgetRegistry, r as activeCursorSection, s as addRuntimePanel, t as autocompleteTooltipTheme, u as configureOverlayActions, v as cursorFocusExtension, w as customCompletionSources, x as dispatchAddRuntimePanel, y as dispatchExpandRuntimePanel, z as dispatchGutterHighlights, A as dispatchRemoveRuntimePanel, H as editingWidgetsField, I as editorPreset, J as editorTheme, K as embedPreviewDecorations, L as expandRuntimePanel, M as fenceCompletion, P as findQueryBlockSection, T as findWorkoutErrors, U as forceSectionParse, V as frontmatterDetailed, X as frontmatterPreview, Y as frontmatterPreviewField, Z as frontmatterReferenceIndex, _ as frontmatterSource, $ as frontmatterSuggestions, a0 as frontmatterVisibility, a1 as getCursorFocusState, a2 as getOverlayActions, a3 as gutterHighlightsField, a4 as gutterUnified, a5 as handleFenceAutoWrap, a6 as inlineButtonDecoration, a7 as lineIdsExtension, a8 as linkOpen, a9 as linkPreview, aa as markdownSyntaxHiding, ab as markdownTablePreview, ac as navigationFacet, ad as nestedCompletion, ae as nestedCompletionOptions, af as previewDecorations, ag as queryBlockPreview, ah as referenceIndexReload, ai as registeredSectionWidgets, aj as removeRuntimePanel, ak as resolveCodeLanguage, al as runtimePanelField, am as saveBlockQuerySource, an as sectionAtPos, ao as sectionField, ap as sectionGeometry, aq as sectionIdentity, ar as sectionIdentityHistory, as as sectionMove, at as sectionRestore, au as sectionSaved, av as sessionQueryInsert, aw as sessionQueryWql, ax as setFrontmatterDetailed, ay as setFrontmatterSource, az as setGutterHighlights, aA as smartIncrement, aB as toggleWidgetEdit, aC as urlAtPos, aD as widgetBlockPreview, aE as wodAutoWrap, aF as wodAutocompletion, aG as wodCompletionSource, aH as wodEditorKeymap, aI as wodLinter, aJ as wodOverlayPanel, aK as workoutLintSource, aL as wrapInTimeFence } from './index--_wwHFvD.cjs';
1
+ import { Q as QueryExecutor } from './index-CoaeAnTJ.cjs';
2
+ export { B as ButtonAction, C as CursorFocusState, a as CustomCompletionSource, D as DefaultFrontmatterWidget, E as EditorDialect, b as EditorPresetOptions, c as EditorSection, d as EditorSectionSubtype, e as EditorSectionType, f as EmbedType, F as FrontmatterCatalogEntry, g as FrontmatterRefDiagnostic, h as FrontmatterReferenceProvider, i as FrontmatterReferenceRef, j as FrontmatterReferenceResolution, k as FrontmatterSuggestionCatalog, G as GeometryListener, N as NavigationHook, l as NestedCompletionOptions, O as OverlayAction, m as QueryBlockPreviewOptions, R as RuntimePanelEntry, S as SectionIdentity, n as SectionRect, o as SectionState, W as WidgetConfig, p as WidgetProps, q as WidgetRegistry, r as activeCursorSection, s as addRuntimePanel, t as autocompleteTooltipTheme, u as configureOverlayActions, v as cursorFocusExtension, w as customCompletionSources, x as dispatchAddRuntimePanel, y as dispatchExpandRuntimePanel, z as dispatchGutterHighlights, A as dispatchRemoveRuntimePanel, H as editingWidgetsField, I as editorPreset, J as editorTheme, K as embedPreviewDecorations, L as expandRuntimePanel, M as fenceCompletion, P as findQueryBlockSection, T as findWorkoutErrors, U as forceSectionParse, V as frontmatterDetailed, X as frontmatterPreview, Y as frontmatterPreviewField, Z as frontmatterReferenceIndex, _ as frontmatterSource, $ as frontmatterSuggestions, a0 as frontmatterVisibility, a1 as getCursorFocusState, a2 as getOverlayActions, a3 as gutterHighlightsField, a4 as gutterUnified, a5 as handleFenceAutoWrap, a6 as inlineButtonDecoration, a7 as lineIdsExtension, a8 as linkOpen, a9 as linkPreview, aa as markdownSyntaxHiding, ab as markdownTablePreview, ac as navigationFacet, ad as nestedCompletion, ae as nestedCompletionOptions, af as previewDecorations, ag as queryBlockPreview, ah as referenceIndexReload, ai as registeredSectionWidgets, aj as removeRuntimePanel, ak as resolveCodeLanguage, al as runtimePanelField, am as saveBlockQuerySource, an as sectionAtPos, ao as sectionField, ap as sectionGeometry, aq as sectionIdentity, ar as sectionIdentityHistory, as as sectionMove, at as sectionRestore, au as sectionSaved, av as sessionQueryInsert, aw as sessionQueryWql, ax as setFrontmatterDetailed, ay as setFrontmatterSource, az as setGutterHighlights, aA as smartIncrement, aB as toggleWidgetEdit, aC as urlAtPos, aD as widgetBlockPreview, aE as wodAutoWrap, aF as wodAutocompletion, aG as wodCompletionSource, aH as wodEditorKeymap, aI as wodLinter, aJ as wodOverlayPanel, aK as workoutLintSource, aL as wrapInTimeFence } from './index-CoaeAnTJ.cjs';
3
3
  import * as react from 'react';
4
4
  import react__default, { ReactNode, ComponentType } from 'react';
5
- import { QueryResult, DashboardToken, DashboardDocument, DashboardWidget, Series, RowsQueryResult, RowsRun, AnyParsedQuery, FindQueryResult, ParsedAggregateQuery, ParsedFindQuery, ParsedPipelineQuery } from '@bitcobblers/wod-wiki-wql';
5
+ import { QueryResult, RowsRun, NoteContainer, TabularResult, PipelineSink, QueryDocumentRunnerHost, Series, AnyParsedQuery, DocumentOutput, DashboardToken, DashboardDocument, DashboardWidget, RowsQueryResult, FindQueryResult, ParsedAggregateQuery, ParsedFindQuery, ParsedPipelineQuery } from '@bitcobblers/wod-wiki-wql';
6
6
  export { CONTENT_GROUPING_DIMENSIONS, FindOptions, FindQueryResult, ParsedAggregateQuery, ParsedFindQuery, ParsedPipelineQuery, ParsedRowsQuery, PipelineResult, QueryOptions, QueryResult, RowsQueryResult, RowsRun } from '@bitcobblers/wod-wiki-wql';
7
7
  import { IMetric, EventRecord, BlockIndexRow } from '@bitcobblers/wod-wiki-core';
8
8
  export { blockContentId } from '@bitcobblers/wod-wiki-core';
@@ -93,10 +93,59 @@ interface WqlTableProps {
93
93
  }
94
94
  declare function WqlTable({ result, unit: unitProp }: WqlTableProps): react.JSX.Element;
95
95
 
96
+ interface MergedPoint {
97
+ ts: number;
98
+ [label: string]: number | string;
99
+ }
100
+ /**
101
+ * Canonical widget execution output — combines the numeric `QueryResult`
102
+ * shape with content-plane payloads (`notes`, `blocks`, `efforts`, `runs`,
103
+ * `containers`, `table`, `chart`) so every widget renderer and inline query
104
+ * block consumes a single unified result type.
105
+ */
106
+ type WidgetRunResult = QueryResult & {
107
+ notes?: unknown[];
108
+ blocks?: unknown[];
109
+ efforts?: unknown[];
110
+ runs?: RowsRun[];
111
+ containers?: Record<string, NoteContainer>;
112
+ table?: TabularResult;
113
+ chart?: PipelineSink;
114
+ };
115
+ interface ExecutorDocumentHostOptions {
116
+ rangeStart?: number;
117
+ rangeEnd?: number;
118
+ preferredUnit?: string;
119
+ rollupEnsure?: () => Promise<void>;
120
+ }
121
+ /**
122
+ * Executor → SharedQueryDocumentRunner host adapter.
123
+ * Every UI surface (DashboardView, QueryBlockView, useAnalyticsQueries,
124
+ * WidgetComposerDialog) executes WQL through this single host seam.
125
+ */
126
+ declare function createExecutorDocumentHost(executor: QueryExecutor, range?: ExecutorDocumentHostOptions): QueryDocumentRunnerHost;
127
+ /**
128
+ * Adapter — pipeline/document outputs ride the QueryResult shape the widget
129
+ * renderers already consume.
130
+ */
131
+ declare function toChartResult(input: {
132
+ parsed: AnyParsedQuery;
133
+ series?: Series[];
134
+ unit?: string;
135
+ error?: string;
136
+ table?: TabularResult;
137
+ }): QueryResult;
138
+ /** Convert a `DocumentOutput` from `SharedQueryDocumentRunner` into `WidgetRunResult`. */
139
+ declare function outputToRunResult(parsed: AnyParsedQuery, out: DocumentOutput): WidgetRunResult;
140
+ declare function mergeSeries(series: Series[]): MergedPoint[];
141
+ declare function compactNumber(value: number): string;
142
+ declare function formatTimestamp(ts: number): string;
143
+ declare function tooltipTimestamp(ts: number): string;
144
+
96
145
  interface WidgetChartProps {
97
146
  /** Raw widget type from the fence suffix; '' picks the dashboard default (table). */
98
147
  type: string;
99
- result: QueryResult | undefined;
148
+ result: WidgetRunResult | QueryResult | undefined;
100
149
  /** Fallback label for value widgets (widget title or metric). */
101
150
  label?: string;
102
151
  unit?: string;
@@ -104,8 +153,22 @@ interface WidgetChartProps {
104
153
  params?: string[];
105
154
  /** Fence-tag presentation attributes (decision 22) — preferred over legacy positional params. */
106
155
  attributes?: Record<string, string>;
156
+ /** When true, an empty `type` infers the chart shape (value / timeseries / bar) from `result.series`. */
157
+ inferDefaultShape?: boolean;
158
+ /** Optional click handler for opening a note/block from content-plane list results. */
159
+ onOpenNote?: (item: {
160
+ id: string;
161
+ title?: string;
162
+ blockContentId?: string;
163
+ }) => void;
164
+ /** Optional resolver returning the destination href for an item in content-plane list results. */
165
+ noteHref?: (item: {
166
+ id: string;
167
+ title?: string;
168
+ blockContentId?: string;
169
+ }) => string;
107
170
  }
108
- declare function WidgetChart({ type, result, label, unit, params, attributes }: WidgetChartProps): react__default.JSX.Element;
171
+ declare function WidgetChart({ type, result, label, unit, params, attributes, inferDefaultShape, onOpenNote, noteHref, }: WidgetChartProps): react__default.JSX.Element;
109
172
  declare function WidgetProblemBadge({ message }: {
110
173
  message: string;
111
174
  }): react__default.JSX.Element;
@@ -181,6 +244,18 @@ interface DashboardViewProps {
181
244
  rangeStart?: number;
182
245
  rangeEnd?: number;
183
246
  preferredUnit?: string;
247
+ /** Optional click handler for opening a note/block from content-plane widgets. */
248
+ onOpenNote?: (item: {
249
+ id: string;
250
+ title?: string;
251
+ blockContentId?: string;
252
+ }) => void;
253
+ /** Optional resolver returning the destination href for an item in content-plane widgets. */
254
+ noteHref?: (item: {
255
+ id: string;
256
+ title?: string;
257
+ blockContentId?: string;
258
+ }) => string;
184
259
  }
185
260
  /**
186
261
  * DashboardView — the state-free dashboard renderer (#900, format locked in #899).
@@ -191,7 +266,7 @@ interface DashboardViewProps {
191
266
  * surfaces the affordances (edit-mode toolbar, inspect button) and reports
192
267
  * through the injected callbacks — it never owns dialog or write state.
193
268
  */
194
- declare function DashboardView({ document, headings, executor, onEnsureRollupFacts, tokenValues, onTokenChange, editMode, onEditWidget, onInspectWidget, onOpenInExplorer, onDuplicateWidget, onRemoveWidget, onMoveWidget, onResizeWidget, rangeStart, rangeEnd, preferredUnit, }: DashboardViewProps): react.JSX.Element;
269
+ declare function DashboardView({ document, headings, executor, onEnsureRollupFacts, tokenValues, onTokenChange, editMode, onEditWidget, onInspectWidget, onOpenInExplorer, onDuplicateWidget, onRemoveWidget, onMoveWidget, onResizeWidget, rangeStart, rangeEnd, preferredUnit, onOpenNote, noteHref, }: DashboardViewProps): react.JSX.Element;
195
270
 
196
271
  interface WqlEmptyStateProps {
197
272
  result?: QueryResult | undefined;
@@ -268,15 +343,6 @@ declare function useChartShape(result: QueryResult | undefined): ChartShape;
268
343
  /** Series palette for analytics charts — maps onto the metric token set. */
269
344
  declare const SERIES_COLORS: string[];
270
345
 
271
- interface MergedPoint {
272
- ts: number;
273
- [label: string]: number | string;
274
- }
275
- declare function mergeSeries(series: Series[]): MergedPoint[];
276
- declare function compactNumber(value: number): string;
277
- declare function formatTimestamp(ts: number): string;
278
- declare function tooltipTimestamp(ts: number): string;
279
-
280
346
  declare const ANALYTICS_UNIT_STORAGE_KEY = "wod.analytics.unit";
281
347
  declare const DEFAULT_ANALYTICS_UNIT = "kg";
282
348
  type AnalyticsUnit = 'kg' | 'lb';
@@ -380,28 +446,28 @@ interface RowsTableProps {
380
446
  declare function RowsTable({ result, renderRunHeaderExtra, presets, filter, onFilterChange, }: RowsTableProps): react.JSX.Element;
381
447
 
382
448
  interface QueryBlockViewProps {
383
- /** Raw text between the ```query fences — the WQL query string or block source. */
449
+ /** Raw text between the ```query fences — the WQL query string or Query Document body. */
384
450
  query: string;
385
451
  /** Injected QueryExecutor for executing WQL queries (zero singleton coupling). */
386
452
  executor?: QueryExecutor;
387
- /** Optional callback or subscription hook for when a result is saved, replacing hardcoded resultRecorder coupling. */
453
+ /** Optional callback or subscription hook for when a result is saved. */
388
454
  onResultSaved?: (callback: () => void) => (() => void) | void;
389
- /** Present when the query block is editable — opens the WQL composer.
390
- * May return the write's Promise so a rejected save keeps the editor
391
- * open; a plain void write is fire-and-forget. */
455
+ /** Present when the query block is editable — opens the WQL composer. */
392
456
  onSaveQuery?: (nextQuery: string) => void | Promise<void>;
393
457
  /** When multiple queries appear in one block, the index of this query. */
394
458
  queryIndex?: number;
395
459
  /** When true, editing the query is disallowed. */
396
460
  readOnly?: boolean;
397
- /** Fence-suffix widget type override (e.g. `query:chart`, `query:value`). */
461
+ /** Fence-suffix widget type override (e.g. `query:timeseries`, `query:value`). */
398
462
  widgetType?: string;
399
463
  /** Frontmatter/syntax parse error for the enclosing widget block. */
400
464
  widgetError?: string;
401
- /** Token values from the note's frontmatter, for `$token` substitution. */
465
+ /** Token values from the note's frontmatter or entity scope, for `$token` substitution. */
402
466
  tokenValues?: Record<string, string>;
403
467
  /** Fence-tag presentation attributes (decision 22). */
404
468
  attributes?: Record<string, string>;
469
+ /** Optional action for saving this query as a dashboard widget. */
470
+ onAddToDashboard?: () => void;
405
471
  /** Optional RPE capture handler. */
406
472
  onCaptureRpe?: (resultId: string, rpe: number) => Promise<void>;
407
473
  /** Optional click handler for opening a note from :note results. */
@@ -417,7 +483,7 @@ interface QueryBlockViewProps {
417
483
  blockContentId?: string;
418
484
  }) => string;
419
485
  }
420
- declare function QueryBlockView({ query, executor, onResultSaved, onSaveQuery, queryIndex: _queryIndex, readOnly, widgetType, widgetError, tokenValues, attributes, onCaptureRpe, onOpenNote, noteHref, }: QueryBlockViewProps): react.JSX.Element;
486
+ declare function QueryBlockView({ query, executor, onResultSaved, onSaveQuery, queryIndex: _queryIndex, readOnly, widgetType, widgetError, tokenValues, attributes, onAddToDashboard, onCaptureRpe, onOpenNote, noteHref, }: QueryBlockViewProps): react.JSX.Element;
421
487
 
422
488
  declare function readSessionRpe(events: EventRecord[] | undefined): number | undefined;
423
489
  interface RowsResultsChromeProps {
@@ -510,7 +576,7 @@ declare const KIND_OPTIONS: {
510
576
  }[];
511
577
  /** Singular find targets — the colon `<target>` head (C7 closed enum). */
512
578
  declare const TARGET_OPTIONS: {
513
- value: "page" | "note" | "effort" | "segment" | "event" | "session" | "notebook" | "tag" | "equipment" | "block";
579
+ value: "page" | "note" | "block" | "effort" | "segment" | "event" | "session" | "notebook" | "tag" | "equipment";
514
580
  label: string;
515
581
  description: string;
516
582
  }[];
@@ -545,8 +611,8 @@ declare const ROLLUP_OPTIONS: {
545
611
  label: string;
546
612
  }[];
547
613
  declare const GROUPBY_OPTIONS: {
548
- value: "format" | "origin" | "result" | "day" | "page" | "domain" | "round" | "metric" | "note" | "week" | "effort" | "intensity" | "session" | "equipment" | "quality" | "intent" | "discipline" | "block" | "grade" | "grain" | "tags";
549
- label: "format" | "origin" | "result" | "day" | "page" | "domain" | "round" | "metric" | "note" | "week" | "effort" | "intensity" | "session" | "equipment" | "quality" | "intent" | "discipline" | "block" | "grade" | "grain" | "tags";
614
+ value: "format" | "origin" | "result" | "day" | "page" | "domain" | "round" | "metric" | "note" | "block" | "week" | "effort" | "intensity" | "session" | "equipment" | "quality" | "intent" | "discipline" | "grade" | "grain" | "tags";
615
+ label: "format" | "origin" | "result" | "day" | "page" | "domain" | "round" | "metric" | "note" | "block" | "week" | "effort" | "intensity" | "session" | "equipment" | "quality" | "intent" | "discipline" | "grade" | "grain" | "tags";
550
616
  }[];
551
617
  declare const METRIC_OPTIONS: {
552
618
  value: "distance" | "resistance" | "elapsed" | "totalVolume" | "totalDistance" | "tis" | "sessionLoad" | "reps" | "power" | "pace" | "calc.metMinutes" | "calc.acwr" | "calc.monotony" | "calc.strain" | "calc.e1rm" | "calc.ctl" | "calc.atl" | "calc.tsb" | "calc.soreness" | "calc.sleep" | "calc.hrv" | "calc.readiness" | "calc.mvcBw" | "calc.ef" | "calc.adherence" | "calc.pct1rm" | "calc.sends";
@@ -903,13 +969,13 @@ declare function patchBlockQuery(blockContent: string, newQuery: string, queryIn
903
969
  * Auto-generated build version metadata.
904
970
  * Do not edit directly; updated by scripts/stamp-version.ts
905
971
  */
906
- declare const VERSION = "0.50.2189";
907
- declare const GIT_SHA = "5da2c23";
908
- declare const BUILD_TIME = "2026-11-01T16:27:05.203Z";
972
+ declare const VERSION = "0.50.2191";
973
+ declare const GIT_SHA = "95c89db";
974
+ declare const BUILD_TIME = "2026-11-03T03:31:31.921Z";
909
975
  declare const SEMVER: {
910
- readonly version: "0.50.2189";
911
- readonly gitSha: "5da2c23";
912
- readonly buildTime: "2026-11-01T16:27:05.203Z";
976
+ readonly version: "0.50.2191";
977
+ readonly gitSha: "95c89db";
978
+ readonly buildTime: "2026-11-03T03:31:31.921Z";
913
979
  };
914
980
 
915
- export { AGG_OPTIONS, ANALYTICS_UNIT_STORAGE_KEY, type AnalyticsQueriesState, type AnalyticsQueryDef, type AnalyticsRangeWeeks, type AnalyticsUnit, AnalyticsUnitPreference, type AnalyticsUnitPreferenceProps, BUILD_TIME, CANONICAL_BLOCK_TYPES, CLAUSE_META, CODEMIRROR_SINGLETON_DEPS, type CategorizedMetrics, type ChartShape, type ClauseMeta, type ClauseSuggestions, type ClauseType, ComposerRegistry, type CustomSlotDefinition, type CustomSlotEditorProps, DEFAULT_ANALYTICS_UNIT, DEFAULT_DIAGNOSTICS_DEBOUNCE_MS, DEFAULT_OUTPUT_FILTERS, DEFAULT_PRIMARY_FILTER, type DashboardHeadingAnchor, DashboardTokenControls, type DashboardTokenControlsProps, DashboardView, type DashboardViewProps, type DateRange, EditorDialog, type EditorDialogProps, type ExtractedQuery, type FilterTypeaheadCandidate, type FilterTypeaheadMatch, GIT_SHA, GROUPBY_OPTIONS, GoalRings, type GoalRingsProps, KIND_OPTIONS, METRIC_OPTIONS, MULTI_VALUE_TYPES, type MergedPoint, MetricBadge, OUTPUT_TYPE_CLASS, OUTPUT_TYPE_DOT, type OutputFilterInput, OutputFilterPills, type OutputFilterPreset, type OutputStatementRow, OutputStatementsTable, type OutputStatementsTableProps, PLANE_OPTIONS, ProposedMetricBadge, QueryBlockView, type QueryBlockViewProps, type QueryClause, type QueryDraft, QueryExecutor, QueryValue, type QueryValueProps, ROLLUP_OPTIONS, RangeSelector, type RangeSelectorProps, RowsResultsChrome, type RowsResultsChromeProps, RowsTable, type RowsTableProps, SEMVER, SERIES_COLORS, SOURCE_OPTIONS, SUGGESTION_BINDINGS, StackedBar, type StackedBarProps, type StorageLike, type SuggestionBinding, type SuggestionCachePolicy, type SuggestionItem, TARGET_OPTIONS, TIME_OPTIONS, TONE_CLASS, TokenSlotPill, type TokenSlotPillProps, TopList, type TopListProps, UNIT_OPTIONS, VERSION, type VisualViewportRect, WHERE_AGGREGATORS, WHERE_METRICS, WidgetChart, type WidgetChartProps, WidgetEditButton, WidgetFrame, type WidgetFrameProps, WidgetProblemBadge, type WidgetSpanOption, WidgetToolButton, type WqlAggregateSummary, WqlBars, type WqlBarsProps, WqlComposer, type WqlComposerProps, type WqlDiagnostics, WqlDiagnosticsStrip, type WqlDiagnosticsStripProps, WqlEmptyState, type WqlEmptyStateProps, type WqlExecutor, type WqlFindSummary, type WqlPipelineSummary, WqlQueryInspectorModal, type WqlQueryInspectorModalProps, type WqlSegmentEditRequest, type WqlStageCounts, WqlTable, type WqlTableProps, WqlTimeseries, type WqlTimeseriesProps, type WqlValidationState, ZoneDistribution, type ZoneDistributionProps, blockTypesFromBlocks, canonicalSuggestionItems, cn, compactNumber, composerRegistry, dateRangeSlot, editQueryClause, extractBlockQueries, extractMetricsByCategory, formatClockTime, formatMMSS, formatTimestamp, getClauseMeta, getDashboardEffectiveUnit, getEffectiveAnalyticsUnit, getSuggestionBinding, hashCode, invalidateSuggestions, loadSuggestions, matchFilterTypeahead, mergeSeries, mergeSuggestionItems, mergeTagSuggestions, normalizeOutputFilter, notebookSlugsFromBlocks, patchBlockQuery, presentBadges, readSessionRpe, readStoredUnit, resolveQueryDraft, setSuggestionBinding, summarizeAggregate, summarizeFind, summarizePipeline, tagsFromStaticBlocks, tooltipTimestamp, useAnalyticsQueries, useAnalyticsUnitPreference, useChartShape, useComposerSlots, useSuggestions, useVisualViewportRect, useWqlStageCounts, wqlToPills };
981
+ export { AGG_OPTIONS, ANALYTICS_UNIT_STORAGE_KEY, type AnalyticsQueriesState, type AnalyticsQueryDef, type AnalyticsRangeWeeks, type AnalyticsUnit, AnalyticsUnitPreference, type AnalyticsUnitPreferenceProps, BUILD_TIME, CANONICAL_BLOCK_TYPES, CLAUSE_META, CODEMIRROR_SINGLETON_DEPS, type CategorizedMetrics, type ChartShape, type ClauseMeta, type ClauseSuggestions, type ClauseType, ComposerRegistry, type CustomSlotDefinition, type CustomSlotEditorProps, DEFAULT_ANALYTICS_UNIT, DEFAULT_DIAGNOSTICS_DEBOUNCE_MS, DEFAULT_OUTPUT_FILTERS, DEFAULT_PRIMARY_FILTER, type DashboardHeadingAnchor, DashboardTokenControls, type DashboardTokenControlsProps, DashboardView, type DashboardViewProps, type DateRange, EditorDialog, type EditorDialogProps, type ExecutorDocumentHostOptions, type ExtractedQuery, type FilterTypeaheadCandidate, type FilterTypeaheadMatch, GIT_SHA, GROUPBY_OPTIONS, GoalRings, type GoalRingsProps, KIND_OPTIONS, METRIC_OPTIONS, MULTI_VALUE_TYPES, type MergedPoint, MetricBadge, OUTPUT_TYPE_CLASS, OUTPUT_TYPE_DOT, type OutputFilterInput, OutputFilterPills, type OutputFilterPreset, type OutputStatementRow, OutputStatementsTable, type OutputStatementsTableProps, PLANE_OPTIONS, ProposedMetricBadge, QueryBlockView, type QueryBlockViewProps, type QueryClause, type QueryDraft, QueryExecutor, QueryValue, type QueryValueProps, ROLLUP_OPTIONS, RangeSelector, type RangeSelectorProps, RowsResultsChrome, type RowsResultsChromeProps, RowsTable, type RowsTableProps, SEMVER, SERIES_COLORS, SOURCE_OPTIONS, SUGGESTION_BINDINGS, StackedBar, type StackedBarProps, type StorageLike, type SuggestionBinding, type SuggestionCachePolicy, type SuggestionItem, TARGET_OPTIONS, TIME_OPTIONS, TONE_CLASS, TokenSlotPill, type TokenSlotPillProps, TopList, type TopListProps, UNIT_OPTIONS, VERSION, type VisualViewportRect, WHERE_AGGREGATORS, WHERE_METRICS, WidgetChart, type WidgetChartProps, WidgetEditButton, WidgetFrame, type WidgetFrameProps, WidgetProblemBadge, type WidgetRunResult, type WidgetSpanOption, WidgetToolButton, type WqlAggregateSummary, WqlBars, type WqlBarsProps, WqlComposer, type WqlComposerProps, type WqlDiagnostics, WqlDiagnosticsStrip, type WqlDiagnosticsStripProps, WqlEmptyState, type WqlEmptyStateProps, type WqlExecutor, type WqlFindSummary, type WqlPipelineSummary, WqlQueryInspectorModal, type WqlQueryInspectorModalProps, type WqlSegmentEditRequest, type WqlStageCounts, WqlTable, type WqlTableProps, WqlTimeseries, type WqlTimeseriesProps, type WqlValidationState, ZoneDistribution, type ZoneDistributionProps, blockTypesFromBlocks, canonicalSuggestionItems, cn, compactNumber, composerRegistry, createExecutorDocumentHost, dateRangeSlot, editQueryClause, extractBlockQueries, extractMetricsByCategory, formatClockTime, formatMMSS, formatTimestamp, getClauseMeta, getDashboardEffectiveUnit, getEffectiveAnalyticsUnit, getSuggestionBinding, hashCode, invalidateSuggestions, loadSuggestions, matchFilterTypeahead, mergeSeries, mergeSuggestionItems, mergeTagSuggestions, normalizeOutputFilter, notebookSlugsFromBlocks, outputToRunResult, patchBlockQuery, presentBadges, readSessionRpe, readStoredUnit, resolveQueryDraft, setSuggestionBinding, summarizeAggregate, summarizeFind, summarizePipeline, tagsFromStaticBlocks, toChartResult, tooltipTimestamp, useAnalyticsQueries, useAnalyticsUnitPreference, useChartShape, useComposerSlots, useSuggestions, useVisualViewportRect, useWqlStageCounts, wqlToPills };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { Q as QueryExecutor } from './index--_wwHFvD.js';
2
- export { B as ButtonAction, C as CursorFocusState, a as CustomCompletionSource, D as DefaultFrontmatterWidget, E as EditorDialect, b as EditorPresetOptions, c as EditorSection, d as EditorSectionSubtype, e as EditorSectionType, f as EmbedType, F as FrontmatterCatalogEntry, g as FrontmatterRefDiagnostic, h as FrontmatterReferenceProvider, i as FrontmatterReferenceRef, j as FrontmatterReferenceResolution, k as FrontmatterSuggestionCatalog, G as GeometryListener, N as NavigationHook, l as NestedCompletionOptions, O as OverlayAction, m as QueryBlockPreviewOptions, R as RuntimePanelEntry, S as SectionIdentity, n as SectionRect, o as SectionState, W as WidgetConfig, p as WidgetProps, q as WidgetRegistry, r as activeCursorSection, s as addRuntimePanel, t as autocompleteTooltipTheme, u as configureOverlayActions, v as cursorFocusExtension, w as customCompletionSources, x as dispatchAddRuntimePanel, y as dispatchExpandRuntimePanel, z as dispatchGutterHighlights, A as dispatchRemoveRuntimePanel, H as editingWidgetsField, I as editorPreset, J as editorTheme, K as embedPreviewDecorations, L as expandRuntimePanel, M as fenceCompletion, P as findQueryBlockSection, T as findWorkoutErrors, U as forceSectionParse, V as frontmatterDetailed, X as frontmatterPreview, Y as frontmatterPreviewField, Z as frontmatterReferenceIndex, _ as frontmatterSource, $ as frontmatterSuggestions, a0 as frontmatterVisibility, a1 as getCursorFocusState, a2 as getOverlayActions, a3 as gutterHighlightsField, a4 as gutterUnified, a5 as handleFenceAutoWrap, a6 as inlineButtonDecoration, a7 as lineIdsExtension, a8 as linkOpen, a9 as linkPreview, aa as markdownSyntaxHiding, ab as markdownTablePreview, ac as navigationFacet, ad as nestedCompletion, ae as nestedCompletionOptions, af as previewDecorations, ag as queryBlockPreview, ah as referenceIndexReload, ai as registeredSectionWidgets, aj as removeRuntimePanel, ak as resolveCodeLanguage, al as runtimePanelField, am as saveBlockQuerySource, an as sectionAtPos, ao as sectionField, ap as sectionGeometry, aq as sectionIdentity, ar as sectionIdentityHistory, as as sectionMove, at as sectionRestore, au as sectionSaved, av as sessionQueryInsert, aw as sessionQueryWql, ax as setFrontmatterDetailed, ay as setFrontmatterSource, az as setGutterHighlights, aA as smartIncrement, aB as toggleWidgetEdit, aC as urlAtPos, aD as widgetBlockPreview, aE as wodAutoWrap, aF as wodAutocompletion, aG as wodCompletionSource, aH as wodEditorKeymap, aI as wodLinter, aJ as wodOverlayPanel, aK as workoutLintSource, aL as wrapInTimeFence } from './index--_wwHFvD.js';
1
+ import { Q as QueryExecutor } from './index-CoaeAnTJ.js';
2
+ export { B as ButtonAction, C as CursorFocusState, a as CustomCompletionSource, D as DefaultFrontmatterWidget, E as EditorDialect, b as EditorPresetOptions, c as EditorSection, d as EditorSectionSubtype, e as EditorSectionType, f as EmbedType, F as FrontmatterCatalogEntry, g as FrontmatterRefDiagnostic, h as FrontmatterReferenceProvider, i as FrontmatterReferenceRef, j as FrontmatterReferenceResolution, k as FrontmatterSuggestionCatalog, G as GeometryListener, N as NavigationHook, l as NestedCompletionOptions, O as OverlayAction, m as QueryBlockPreviewOptions, R as RuntimePanelEntry, S as SectionIdentity, n as SectionRect, o as SectionState, W as WidgetConfig, p as WidgetProps, q as WidgetRegistry, r as activeCursorSection, s as addRuntimePanel, t as autocompleteTooltipTheme, u as configureOverlayActions, v as cursorFocusExtension, w as customCompletionSources, x as dispatchAddRuntimePanel, y as dispatchExpandRuntimePanel, z as dispatchGutterHighlights, A as dispatchRemoveRuntimePanel, H as editingWidgetsField, I as editorPreset, J as editorTheme, K as embedPreviewDecorations, L as expandRuntimePanel, M as fenceCompletion, P as findQueryBlockSection, T as findWorkoutErrors, U as forceSectionParse, V as frontmatterDetailed, X as frontmatterPreview, Y as frontmatterPreviewField, Z as frontmatterReferenceIndex, _ as frontmatterSource, $ as frontmatterSuggestions, a0 as frontmatterVisibility, a1 as getCursorFocusState, a2 as getOverlayActions, a3 as gutterHighlightsField, a4 as gutterUnified, a5 as handleFenceAutoWrap, a6 as inlineButtonDecoration, a7 as lineIdsExtension, a8 as linkOpen, a9 as linkPreview, aa as markdownSyntaxHiding, ab as markdownTablePreview, ac as navigationFacet, ad as nestedCompletion, ae as nestedCompletionOptions, af as previewDecorations, ag as queryBlockPreview, ah as referenceIndexReload, ai as registeredSectionWidgets, aj as removeRuntimePanel, ak as resolveCodeLanguage, al as runtimePanelField, am as saveBlockQuerySource, an as sectionAtPos, ao as sectionField, ap as sectionGeometry, aq as sectionIdentity, ar as sectionIdentityHistory, as as sectionMove, at as sectionRestore, au as sectionSaved, av as sessionQueryInsert, aw as sessionQueryWql, ax as setFrontmatterDetailed, ay as setFrontmatterSource, az as setGutterHighlights, aA as smartIncrement, aB as toggleWidgetEdit, aC as urlAtPos, aD as widgetBlockPreview, aE as wodAutoWrap, aF as wodAutocompletion, aG as wodCompletionSource, aH as wodEditorKeymap, aI as wodLinter, aJ as wodOverlayPanel, aK as workoutLintSource, aL as wrapInTimeFence } from './index-CoaeAnTJ.js';
3
3
  import * as react from 'react';
4
4
  import react__default, { ReactNode, ComponentType } from 'react';
5
- import { QueryResult, DashboardToken, DashboardDocument, DashboardWidget, Series, RowsQueryResult, RowsRun, AnyParsedQuery, FindQueryResult, ParsedAggregateQuery, ParsedFindQuery, ParsedPipelineQuery } from '@bitcobblers/wod-wiki-wql';
5
+ import { QueryResult, RowsRun, NoteContainer, TabularResult, PipelineSink, QueryDocumentRunnerHost, Series, AnyParsedQuery, DocumentOutput, DashboardToken, DashboardDocument, DashboardWidget, RowsQueryResult, FindQueryResult, ParsedAggregateQuery, ParsedFindQuery, ParsedPipelineQuery } from '@bitcobblers/wod-wiki-wql';
6
6
  export { CONTENT_GROUPING_DIMENSIONS, FindOptions, FindQueryResult, ParsedAggregateQuery, ParsedFindQuery, ParsedPipelineQuery, ParsedRowsQuery, PipelineResult, QueryOptions, QueryResult, RowsQueryResult, RowsRun } from '@bitcobblers/wod-wiki-wql';
7
7
  import { IMetric, EventRecord, BlockIndexRow } from '@bitcobblers/wod-wiki-core';
8
8
  export { blockContentId } from '@bitcobblers/wod-wiki-core';
@@ -93,10 +93,59 @@ interface WqlTableProps {
93
93
  }
94
94
  declare function WqlTable({ result, unit: unitProp }: WqlTableProps): react.JSX.Element;
95
95
 
96
+ interface MergedPoint {
97
+ ts: number;
98
+ [label: string]: number | string;
99
+ }
100
+ /**
101
+ * Canonical widget execution output — combines the numeric `QueryResult`
102
+ * shape with content-plane payloads (`notes`, `blocks`, `efforts`, `runs`,
103
+ * `containers`, `table`, `chart`) so every widget renderer and inline query
104
+ * block consumes a single unified result type.
105
+ */
106
+ type WidgetRunResult = QueryResult & {
107
+ notes?: unknown[];
108
+ blocks?: unknown[];
109
+ efforts?: unknown[];
110
+ runs?: RowsRun[];
111
+ containers?: Record<string, NoteContainer>;
112
+ table?: TabularResult;
113
+ chart?: PipelineSink;
114
+ };
115
+ interface ExecutorDocumentHostOptions {
116
+ rangeStart?: number;
117
+ rangeEnd?: number;
118
+ preferredUnit?: string;
119
+ rollupEnsure?: () => Promise<void>;
120
+ }
121
+ /**
122
+ * Executor → SharedQueryDocumentRunner host adapter.
123
+ * Every UI surface (DashboardView, QueryBlockView, useAnalyticsQueries,
124
+ * WidgetComposerDialog) executes WQL through this single host seam.
125
+ */
126
+ declare function createExecutorDocumentHost(executor: QueryExecutor, range?: ExecutorDocumentHostOptions): QueryDocumentRunnerHost;
127
+ /**
128
+ * Adapter — pipeline/document outputs ride the QueryResult shape the widget
129
+ * renderers already consume.
130
+ */
131
+ declare function toChartResult(input: {
132
+ parsed: AnyParsedQuery;
133
+ series?: Series[];
134
+ unit?: string;
135
+ error?: string;
136
+ table?: TabularResult;
137
+ }): QueryResult;
138
+ /** Convert a `DocumentOutput` from `SharedQueryDocumentRunner` into `WidgetRunResult`. */
139
+ declare function outputToRunResult(parsed: AnyParsedQuery, out: DocumentOutput): WidgetRunResult;
140
+ declare function mergeSeries(series: Series[]): MergedPoint[];
141
+ declare function compactNumber(value: number): string;
142
+ declare function formatTimestamp(ts: number): string;
143
+ declare function tooltipTimestamp(ts: number): string;
144
+
96
145
  interface WidgetChartProps {
97
146
  /** Raw widget type from the fence suffix; '' picks the dashboard default (table). */
98
147
  type: string;
99
- result: QueryResult | undefined;
148
+ result: WidgetRunResult | QueryResult | undefined;
100
149
  /** Fallback label for value widgets (widget title or metric). */
101
150
  label?: string;
102
151
  unit?: string;
@@ -104,8 +153,22 @@ interface WidgetChartProps {
104
153
  params?: string[];
105
154
  /** Fence-tag presentation attributes (decision 22) — preferred over legacy positional params. */
106
155
  attributes?: Record<string, string>;
156
+ /** When true, an empty `type` infers the chart shape (value / timeseries / bar) from `result.series`. */
157
+ inferDefaultShape?: boolean;
158
+ /** Optional click handler for opening a note/block from content-plane list results. */
159
+ onOpenNote?: (item: {
160
+ id: string;
161
+ title?: string;
162
+ blockContentId?: string;
163
+ }) => void;
164
+ /** Optional resolver returning the destination href for an item in content-plane list results. */
165
+ noteHref?: (item: {
166
+ id: string;
167
+ title?: string;
168
+ blockContentId?: string;
169
+ }) => string;
107
170
  }
108
- declare function WidgetChart({ type, result, label, unit, params, attributes }: WidgetChartProps): react__default.JSX.Element;
171
+ declare function WidgetChart({ type, result, label, unit, params, attributes, inferDefaultShape, onOpenNote, noteHref, }: WidgetChartProps): react__default.JSX.Element;
109
172
  declare function WidgetProblemBadge({ message }: {
110
173
  message: string;
111
174
  }): react__default.JSX.Element;
@@ -181,6 +244,18 @@ interface DashboardViewProps {
181
244
  rangeStart?: number;
182
245
  rangeEnd?: number;
183
246
  preferredUnit?: string;
247
+ /** Optional click handler for opening a note/block from content-plane widgets. */
248
+ onOpenNote?: (item: {
249
+ id: string;
250
+ title?: string;
251
+ blockContentId?: string;
252
+ }) => void;
253
+ /** Optional resolver returning the destination href for an item in content-plane widgets. */
254
+ noteHref?: (item: {
255
+ id: string;
256
+ title?: string;
257
+ blockContentId?: string;
258
+ }) => string;
184
259
  }
185
260
  /**
186
261
  * DashboardView — the state-free dashboard renderer (#900, format locked in #899).
@@ -191,7 +266,7 @@ interface DashboardViewProps {
191
266
  * surfaces the affordances (edit-mode toolbar, inspect button) and reports
192
267
  * through the injected callbacks — it never owns dialog or write state.
193
268
  */
194
- declare function DashboardView({ document, headings, executor, onEnsureRollupFacts, tokenValues, onTokenChange, editMode, onEditWidget, onInspectWidget, onOpenInExplorer, onDuplicateWidget, onRemoveWidget, onMoveWidget, onResizeWidget, rangeStart, rangeEnd, preferredUnit, }: DashboardViewProps): react.JSX.Element;
269
+ declare function DashboardView({ document, headings, executor, onEnsureRollupFacts, tokenValues, onTokenChange, editMode, onEditWidget, onInspectWidget, onOpenInExplorer, onDuplicateWidget, onRemoveWidget, onMoveWidget, onResizeWidget, rangeStart, rangeEnd, preferredUnit, onOpenNote, noteHref, }: DashboardViewProps): react.JSX.Element;
195
270
 
196
271
  interface WqlEmptyStateProps {
197
272
  result?: QueryResult | undefined;
@@ -268,15 +343,6 @@ declare function useChartShape(result: QueryResult | undefined): ChartShape;
268
343
  /** Series palette for analytics charts — maps onto the metric token set. */
269
344
  declare const SERIES_COLORS: string[];
270
345
 
271
- interface MergedPoint {
272
- ts: number;
273
- [label: string]: number | string;
274
- }
275
- declare function mergeSeries(series: Series[]): MergedPoint[];
276
- declare function compactNumber(value: number): string;
277
- declare function formatTimestamp(ts: number): string;
278
- declare function tooltipTimestamp(ts: number): string;
279
-
280
346
  declare const ANALYTICS_UNIT_STORAGE_KEY = "wod.analytics.unit";
281
347
  declare const DEFAULT_ANALYTICS_UNIT = "kg";
282
348
  type AnalyticsUnit = 'kg' | 'lb';
@@ -380,28 +446,28 @@ interface RowsTableProps {
380
446
  declare function RowsTable({ result, renderRunHeaderExtra, presets, filter, onFilterChange, }: RowsTableProps): react.JSX.Element;
381
447
 
382
448
  interface QueryBlockViewProps {
383
- /** Raw text between the ```query fences — the WQL query string or block source. */
449
+ /** Raw text between the ```query fences — the WQL query string or Query Document body. */
384
450
  query: string;
385
451
  /** Injected QueryExecutor for executing WQL queries (zero singleton coupling). */
386
452
  executor?: QueryExecutor;
387
- /** Optional callback or subscription hook for when a result is saved, replacing hardcoded resultRecorder coupling. */
453
+ /** Optional callback or subscription hook for when a result is saved. */
388
454
  onResultSaved?: (callback: () => void) => (() => void) | void;
389
- /** Present when the query block is editable — opens the WQL composer.
390
- * May return the write's Promise so a rejected save keeps the editor
391
- * open; a plain void write is fire-and-forget. */
455
+ /** Present when the query block is editable — opens the WQL composer. */
392
456
  onSaveQuery?: (nextQuery: string) => void | Promise<void>;
393
457
  /** When multiple queries appear in one block, the index of this query. */
394
458
  queryIndex?: number;
395
459
  /** When true, editing the query is disallowed. */
396
460
  readOnly?: boolean;
397
- /** Fence-suffix widget type override (e.g. `query:chart`, `query:value`). */
461
+ /** Fence-suffix widget type override (e.g. `query:timeseries`, `query:value`). */
398
462
  widgetType?: string;
399
463
  /** Frontmatter/syntax parse error for the enclosing widget block. */
400
464
  widgetError?: string;
401
- /** Token values from the note's frontmatter, for `$token` substitution. */
465
+ /** Token values from the note's frontmatter or entity scope, for `$token` substitution. */
402
466
  tokenValues?: Record<string, string>;
403
467
  /** Fence-tag presentation attributes (decision 22). */
404
468
  attributes?: Record<string, string>;
469
+ /** Optional action for saving this query as a dashboard widget. */
470
+ onAddToDashboard?: () => void;
405
471
  /** Optional RPE capture handler. */
406
472
  onCaptureRpe?: (resultId: string, rpe: number) => Promise<void>;
407
473
  /** Optional click handler for opening a note from :note results. */
@@ -417,7 +483,7 @@ interface QueryBlockViewProps {
417
483
  blockContentId?: string;
418
484
  }) => string;
419
485
  }
420
- declare function QueryBlockView({ query, executor, onResultSaved, onSaveQuery, queryIndex: _queryIndex, readOnly, widgetType, widgetError, tokenValues, attributes, onCaptureRpe, onOpenNote, noteHref, }: QueryBlockViewProps): react.JSX.Element;
486
+ declare function QueryBlockView({ query, executor, onResultSaved, onSaveQuery, queryIndex: _queryIndex, readOnly, widgetType, widgetError, tokenValues, attributes, onAddToDashboard, onCaptureRpe, onOpenNote, noteHref, }: QueryBlockViewProps): react.JSX.Element;
421
487
 
422
488
  declare function readSessionRpe(events: EventRecord[] | undefined): number | undefined;
423
489
  interface RowsResultsChromeProps {
@@ -510,7 +576,7 @@ declare const KIND_OPTIONS: {
510
576
  }[];
511
577
  /** Singular find targets — the colon `<target>` head (C7 closed enum). */
512
578
  declare const TARGET_OPTIONS: {
513
- value: "page" | "note" | "effort" | "segment" | "event" | "session" | "notebook" | "tag" | "equipment" | "block";
579
+ value: "page" | "note" | "block" | "effort" | "segment" | "event" | "session" | "notebook" | "tag" | "equipment";
514
580
  label: string;
515
581
  description: string;
516
582
  }[];
@@ -545,8 +611,8 @@ declare const ROLLUP_OPTIONS: {
545
611
  label: string;
546
612
  }[];
547
613
  declare const GROUPBY_OPTIONS: {
548
- value: "format" | "origin" | "result" | "day" | "page" | "domain" | "round" | "metric" | "note" | "week" | "effort" | "intensity" | "session" | "equipment" | "quality" | "intent" | "discipline" | "block" | "grade" | "grain" | "tags";
549
- label: "format" | "origin" | "result" | "day" | "page" | "domain" | "round" | "metric" | "note" | "week" | "effort" | "intensity" | "session" | "equipment" | "quality" | "intent" | "discipline" | "block" | "grade" | "grain" | "tags";
614
+ value: "format" | "origin" | "result" | "day" | "page" | "domain" | "round" | "metric" | "note" | "block" | "week" | "effort" | "intensity" | "session" | "equipment" | "quality" | "intent" | "discipline" | "grade" | "grain" | "tags";
615
+ label: "format" | "origin" | "result" | "day" | "page" | "domain" | "round" | "metric" | "note" | "block" | "week" | "effort" | "intensity" | "session" | "equipment" | "quality" | "intent" | "discipline" | "grade" | "grain" | "tags";
550
616
  }[];
551
617
  declare const METRIC_OPTIONS: {
552
618
  value: "distance" | "resistance" | "elapsed" | "totalVolume" | "totalDistance" | "tis" | "sessionLoad" | "reps" | "power" | "pace" | "calc.metMinutes" | "calc.acwr" | "calc.monotony" | "calc.strain" | "calc.e1rm" | "calc.ctl" | "calc.atl" | "calc.tsb" | "calc.soreness" | "calc.sleep" | "calc.hrv" | "calc.readiness" | "calc.mvcBw" | "calc.ef" | "calc.adherence" | "calc.pct1rm" | "calc.sends";
@@ -903,13 +969,13 @@ declare function patchBlockQuery(blockContent: string, newQuery: string, queryIn
903
969
  * Auto-generated build version metadata.
904
970
  * Do not edit directly; updated by scripts/stamp-version.ts
905
971
  */
906
- declare const VERSION = "0.50.2189";
907
- declare const GIT_SHA = "5da2c23";
908
- declare const BUILD_TIME = "2026-11-01T16:27:05.203Z";
972
+ declare const VERSION = "0.50.2191";
973
+ declare const GIT_SHA = "95c89db";
974
+ declare const BUILD_TIME = "2026-11-03T03:31:31.921Z";
909
975
  declare const SEMVER: {
910
- readonly version: "0.50.2189";
911
- readonly gitSha: "5da2c23";
912
- readonly buildTime: "2026-11-01T16:27:05.203Z";
976
+ readonly version: "0.50.2191";
977
+ readonly gitSha: "95c89db";
978
+ readonly buildTime: "2026-11-03T03:31:31.921Z";
913
979
  };
914
980
 
915
- export { AGG_OPTIONS, ANALYTICS_UNIT_STORAGE_KEY, type AnalyticsQueriesState, type AnalyticsQueryDef, type AnalyticsRangeWeeks, type AnalyticsUnit, AnalyticsUnitPreference, type AnalyticsUnitPreferenceProps, BUILD_TIME, CANONICAL_BLOCK_TYPES, CLAUSE_META, CODEMIRROR_SINGLETON_DEPS, type CategorizedMetrics, type ChartShape, type ClauseMeta, type ClauseSuggestions, type ClauseType, ComposerRegistry, type CustomSlotDefinition, type CustomSlotEditorProps, DEFAULT_ANALYTICS_UNIT, DEFAULT_DIAGNOSTICS_DEBOUNCE_MS, DEFAULT_OUTPUT_FILTERS, DEFAULT_PRIMARY_FILTER, type DashboardHeadingAnchor, DashboardTokenControls, type DashboardTokenControlsProps, DashboardView, type DashboardViewProps, type DateRange, EditorDialog, type EditorDialogProps, type ExtractedQuery, type FilterTypeaheadCandidate, type FilterTypeaheadMatch, GIT_SHA, GROUPBY_OPTIONS, GoalRings, type GoalRingsProps, KIND_OPTIONS, METRIC_OPTIONS, MULTI_VALUE_TYPES, type MergedPoint, MetricBadge, OUTPUT_TYPE_CLASS, OUTPUT_TYPE_DOT, type OutputFilterInput, OutputFilterPills, type OutputFilterPreset, type OutputStatementRow, OutputStatementsTable, type OutputStatementsTableProps, PLANE_OPTIONS, ProposedMetricBadge, QueryBlockView, type QueryBlockViewProps, type QueryClause, type QueryDraft, QueryExecutor, QueryValue, type QueryValueProps, ROLLUP_OPTIONS, RangeSelector, type RangeSelectorProps, RowsResultsChrome, type RowsResultsChromeProps, RowsTable, type RowsTableProps, SEMVER, SERIES_COLORS, SOURCE_OPTIONS, SUGGESTION_BINDINGS, StackedBar, type StackedBarProps, type StorageLike, type SuggestionBinding, type SuggestionCachePolicy, type SuggestionItem, TARGET_OPTIONS, TIME_OPTIONS, TONE_CLASS, TokenSlotPill, type TokenSlotPillProps, TopList, type TopListProps, UNIT_OPTIONS, VERSION, type VisualViewportRect, WHERE_AGGREGATORS, WHERE_METRICS, WidgetChart, type WidgetChartProps, WidgetEditButton, WidgetFrame, type WidgetFrameProps, WidgetProblemBadge, type WidgetSpanOption, WidgetToolButton, type WqlAggregateSummary, WqlBars, type WqlBarsProps, WqlComposer, type WqlComposerProps, type WqlDiagnostics, WqlDiagnosticsStrip, type WqlDiagnosticsStripProps, WqlEmptyState, type WqlEmptyStateProps, type WqlExecutor, type WqlFindSummary, type WqlPipelineSummary, WqlQueryInspectorModal, type WqlQueryInspectorModalProps, type WqlSegmentEditRequest, type WqlStageCounts, WqlTable, type WqlTableProps, WqlTimeseries, type WqlTimeseriesProps, type WqlValidationState, ZoneDistribution, type ZoneDistributionProps, blockTypesFromBlocks, canonicalSuggestionItems, cn, compactNumber, composerRegistry, dateRangeSlot, editQueryClause, extractBlockQueries, extractMetricsByCategory, formatClockTime, formatMMSS, formatTimestamp, getClauseMeta, getDashboardEffectiveUnit, getEffectiveAnalyticsUnit, getSuggestionBinding, hashCode, invalidateSuggestions, loadSuggestions, matchFilterTypeahead, mergeSeries, mergeSuggestionItems, mergeTagSuggestions, normalizeOutputFilter, notebookSlugsFromBlocks, patchBlockQuery, presentBadges, readSessionRpe, readStoredUnit, resolveQueryDraft, setSuggestionBinding, summarizeAggregate, summarizeFind, summarizePipeline, tagsFromStaticBlocks, tooltipTimestamp, useAnalyticsQueries, useAnalyticsUnitPreference, useChartShape, useComposerSlots, useSuggestions, useVisualViewportRect, useWqlStageCounts, wqlToPills };
981
+ export { AGG_OPTIONS, ANALYTICS_UNIT_STORAGE_KEY, type AnalyticsQueriesState, type AnalyticsQueryDef, type AnalyticsRangeWeeks, type AnalyticsUnit, AnalyticsUnitPreference, type AnalyticsUnitPreferenceProps, BUILD_TIME, CANONICAL_BLOCK_TYPES, CLAUSE_META, CODEMIRROR_SINGLETON_DEPS, type CategorizedMetrics, type ChartShape, type ClauseMeta, type ClauseSuggestions, type ClauseType, ComposerRegistry, type CustomSlotDefinition, type CustomSlotEditorProps, DEFAULT_ANALYTICS_UNIT, DEFAULT_DIAGNOSTICS_DEBOUNCE_MS, DEFAULT_OUTPUT_FILTERS, DEFAULT_PRIMARY_FILTER, type DashboardHeadingAnchor, DashboardTokenControls, type DashboardTokenControlsProps, DashboardView, type DashboardViewProps, type DateRange, EditorDialog, type EditorDialogProps, type ExecutorDocumentHostOptions, type ExtractedQuery, type FilterTypeaheadCandidate, type FilterTypeaheadMatch, GIT_SHA, GROUPBY_OPTIONS, GoalRings, type GoalRingsProps, KIND_OPTIONS, METRIC_OPTIONS, MULTI_VALUE_TYPES, type MergedPoint, MetricBadge, OUTPUT_TYPE_CLASS, OUTPUT_TYPE_DOT, type OutputFilterInput, OutputFilterPills, type OutputFilterPreset, type OutputStatementRow, OutputStatementsTable, type OutputStatementsTableProps, PLANE_OPTIONS, ProposedMetricBadge, QueryBlockView, type QueryBlockViewProps, type QueryClause, type QueryDraft, QueryExecutor, QueryValue, type QueryValueProps, ROLLUP_OPTIONS, RangeSelector, type RangeSelectorProps, RowsResultsChrome, type RowsResultsChromeProps, RowsTable, type RowsTableProps, SEMVER, SERIES_COLORS, SOURCE_OPTIONS, SUGGESTION_BINDINGS, StackedBar, type StackedBarProps, type StorageLike, type SuggestionBinding, type SuggestionCachePolicy, type SuggestionItem, TARGET_OPTIONS, TIME_OPTIONS, TONE_CLASS, TokenSlotPill, type TokenSlotPillProps, TopList, type TopListProps, UNIT_OPTIONS, VERSION, type VisualViewportRect, WHERE_AGGREGATORS, WHERE_METRICS, WidgetChart, type WidgetChartProps, WidgetEditButton, WidgetFrame, type WidgetFrameProps, WidgetProblemBadge, type WidgetRunResult, type WidgetSpanOption, WidgetToolButton, type WqlAggregateSummary, WqlBars, type WqlBarsProps, WqlComposer, type WqlComposerProps, type WqlDiagnostics, WqlDiagnosticsStrip, type WqlDiagnosticsStripProps, WqlEmptyState, type WqlEmptyStateProps, type WqlExecutor, type WqlFindSummary, type WqlPipelineSummary, WqlQueryInspectorModal, type WqlQueryInspectorModalProps, type WqlSegmentEditRequest, type WqlStageCounts, WqlTable, type WqlTableProps, WqlTimeseries, type WqlTimeseriesProps, type WqlValidationState, ZoneDistribution, type ZoneDistributionProps, blockTypesFromBlocks, canonicalSuggestionItems, cn, compactNumber, composerRegistry, createExecutorDocumentHost, dateRangeSlot, editQueryClause, extractBlockQueries, extractMetricsByCategory, formatClockTime, formatMMSS, formatTimestamp, getClauseMeta, getDashboardEffectiveUnit, getEffectiveAnalyticsUnit, getSuggestionBinding, hashCode, invalidateSuggestions, loadSuggestions, matchFilterTypeahead, mergeSeries, mergeSuggestionItems, mergeTagSuggestions, normalizeOutputFilter, notebookSlugsFromBlocks, outputToRunResult, patchBlockQuery, presentBadges, readSessionRpe, readStoredUnit, resolveQueryDraft, setSuggestionBinding, summarizeAggregate, summarizeFind, summarizePipeline, tagsFromStaticBlocks, toChartResult, tooltipTimestamp, useAnalyticsQueries, useAnalyticsUnitPreference, useChartShape, useComposerSlots, useSuggestions, useVisualViewportRect, useWqlStageCounts, wqlToPills };