@ponchia/ui 0.4.1 → 0.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 (153) hide show
  1. package/CHANGELOG.md +552 -8
  2. package/MIGRATIONS.json +106 -0
  3. package/README.md +34 -8
  4. package/annotations/index.d.ts +402 -0
  5. package/annotations/index.d.ts.map +1 -0
  6. package/annotations/index.js +792 -0
  7. package/behaviors/carousel.js +198 -0
  8. package/behaviors/combobox.js +226 -0
  9. package/behaviors/command.js +190 -0
  10. package/behaviors/connectors.js +95 -0
  11. package/behaviors/crosshair.js +57 -0
  12. package/behaviors/dialog.js +74 -0
  13. package/behaviors/disclosure.js +26 -0
  14. package/behaviors/dismissible.js +25 -0
  15. package/behaviors/forms.js +186 -0
  16. package/behaviors/glyph.js +108 -0
  17. package/behaviors/index.d.ts +79 -0
  18. package/behaviors/index.js +18 -1409
  19. package/behaviors/internal.js +97 -0
  20. package/behaviors/legend.js +67 -0
  21. package/behaviors/menu.js +47 -0
  22. package/behaviors/popover.js +179 -0
  23. package/behaviors/spotlight.js +52 -0
  24. package/behaviors/table.js +136 -0
  25. package/behaviors/tabs.js +103 -0
  26. package/behaviors/theme.js +84 -0
  27. package/behaviors/toast.js +164 -0
  28. package/classes/classes.json +1857 -0
  29. package/classes/index.d.ts +306 -13
  30. package/classes/index.js +339 -12
  31. package/classes/vscode.css-custom-data.json +12 -0
  32. package/connectors/index.d.ts +191 -0
  33. package/connectors/index.d.ts.map +1 -0
  34. package/connectors/index.js +275 -0
  35. package/css/analytical.css +21 -0
  36. package/css/annotations.css +292 -0
  37. package/css/app.css +43 -13
  38. package/css/base.css +15 -10
  39. package/css/command.css +97 -0
  40. package/css/connectors.css +110 -0
  41. package/css/content.css +7 -1
  42. package/css/crosshair.css +100 -0
  43. package/css/dataviz.css +5 -1
  44. package/css/disclosure.css +38 -6
  45. package/css/dots.css +57 -0
  46. package/css/feedback.css +111 -2
  47. package/css/fonts.css +11 -7
  48. package/css/forms.css +42 -1
  49. package/css/generated.css +117 -0
  50. package/css/legend.css +272 -0
  51. package/css/marks.css +174 -0
  52. package/css/motion.css +24 -44
  53. package/css/navigation.css +7 -0
  54. package/css/overlay.css +31 -1
  55. package/css/primitives.css +109 -5
  56. package/css/report.css +39 -81
  57. package/css/selection.css +46 -0
  58. package/css/site.css +16 -2
  59. package/css/sources.css +221 -0
  60. package/css/spotlight.css +104 -0
  61. package/css/state.css +121 -0
  62. package/css/tokens.css +60 -37
  63. package/css/workbench.css +83 -0
  64. package/dist/bronto.css +1 -1
  65. package/dist/css/analytical.css +1 -0
  66. package/dist/css/annotations.css +1 -0
  67. package/dist/css/app.css +1 -1
  68. package/dist/css/base.css +1 -1
  69. package/dist/css/command.css +1 -0
  70. package/dist/css/connectors.css +1 -0
  71. package/dist/css/content.css +1 -1
  72. package/dist/css/crosshair.css +1 -0
  73. package/dist/css/disclosure.css +1 -1
  74. package/dist/css/dots.css +1 -1
  75. package/dist/css/feedback.css +1 -1
  76. package/dist/css/fonts.css +1 -1
  77. package/dist/css/forms.css +1 -1
  78. package/dist/css/generated.css +1 -0
  79. package/dist/css/legend.css +1 -0
  80. package/dist/css/marks.css +1 -0
  81. package/dist/css/motion.css +1 -1
  82. package/dist/css/navigation.css +1 -1
  83. package/dist/css/overlay.css +1 -1
  84. package/dist/css/primitives.css +1 -1
  85. package/dist/css/report.css +1 -1
  86. package/dist/css/selection.css +1 -0
  87. package/dist/css/site.css +1 -1
  88. package/dist/css/sources.css +1 -0
  89. package/dist/css/spotlight.css +1 -0
  90. package/dist/css/state.css +1 -0
  91. package/dist/css/tokens.css +1 -1
  92. package/dist/css/workbench.css +1 -0
  93. package/docs/adr/0003-theme-model.md +7 -4
  94. package/docs/annotations.md +425 -0
  95. package/docs/architecture.md +246 -0
  96. package/docs/command.md +95 -0
  97. package/docs/connectors.md +91 -0
  98. package/docs/contrast.md +116 -92
  99. package/docs/crosshair.md +63 -0
  100. package/docs/d2.md +195 -0
  101. package/docs/generated.md +91 -0
  102. package/docs/legends.md +184 -0
  103. package/docs/marks.md +93 -0
  104. package/docs/mermaid.md +152 -0
  105. package/docs/reference.md +385 -23
  106. package/docs/reporting.md +436 -63
  107. package/docs/selection.md +40 -0
  108. package/docs/sources.md +137 -0
  109. package/docs/spotlight.md +78 -0
  110. package/docs/stability.md +24 -2
  111. package/docs/state.md +85 -0
  112. package/docs/usage.md +123 -4
  113. package/docs/vega.md +225 -0
  114. package/docs/workbench.md +78 -0
  115. package/fonts/doto-400.woff2 +0 -0
  116. package/fonts/doto-500.woff2 +0 -0
  117. package/fonts/doto-600.woff2 +0 -0
  118. package/fonts/doto-700.woff2 +0 -0
  119. package/fonts/doto-800.woff2 +0 -0
  120. package/fonts/doto-900.woff2 +0 -0
  121. package/glyphs/glyphs.js +6 -4
  122. package/llms.txt +362 -14
  123. package/package.json +115 -12
  124. package/qwik/index.d.ts +42 -54
  125. package/qwik/index.d.ts.map +1 -0
  126. package/qwik/index.js +75 -3
  127. package/react/index.d.ts +39 -56
  128. package/react/index.d.ts.map +1 -0
  129. package/react/index.js +67 -3
  130. package/solid/index.d.ts +64 -56
  131. package/solid/index.d.ts.map +1 -0
  132. package/solid/index.js +70 -3
  133. package/tokens/d2.d.ts +38 -0
  134. package/tokens/d2.js +71 -0
  135. package/tokens/d2.json +43 -0
  136. package/tokens/index.d.ts +5 -5
  137. package/tokens/index.js +23 -5
  138. package/tokens/index.json +9 -0
  139. package/tokens/mermaid.d.ts +23 -0
  140. package/tokens/mermaid.js +181 -0
  141. package/tokens/mermaid.json +163 -0
  142. package/tokens/resolved.json +45 -1
  143. package/tokens/skins.js +3 -2
  144. package/tokens/tokens.dtcg.json +26 -0
  145. package/tokens/vega.d.ts +34 -0
  146. package/tokens/vega.js +155 -0
  147. package/tokens/vega.json +179 -0
  148. package/fonts/doto-400.ttf +0 -0
  149. package/fonts/doto-500.ttf +0 -0
  150. package/fonts/doto-600.ttf +0 -0
  151. package/fonts/doto-700.ttf +0 -0
  152. package/fonts/doto-800.ttf +0 -0
  153. package/fonts/doto-900.ttf +0 -0
@@ -34,6 +34,11 @@ export declare const cls: {
34
34
  readonly numPos: 'ui-num--pos';
35
35
  readonly numNeg: 'ui-num--neg';
36
36
  readonly numMuted: 'ui-num--muted';
37
+ readonly delta: 'ui-delta';
38
+ readonly deltaUp: 'ui-delta--up';
39
+ readonly deltaDown: 'ui-delta--down';
40
+ readonly deltaFlat: 'ui-delta--flat';
41
+ readonly deltaInvert: 'ui-delta--invert';
37
42
  readonly badge: 'ui-badge';
38
43
  readonly badgeAccent: 'ui-badge--accent';
39
44
  readonly badgeSuccess: 'ui-badge--success';
@@ -127,6 +132,7 @@ export declare const cls: {
127
132
  readonly meterSuccess: 'ui-meter--success';
128
133
  readonly meterWarning: 'ui-meter--warning';
129
134
  readonly meterDanger: 'ui-meter--danger';
135
+ readonly meterInfo: 'ui-meter--info';
130
136
  readonly steps: 'ui-steps';
131
137
  readonly stepsItem: 'ui-steps__item';
132
138
  readonly stepsItemDone: 'ui-steps__item--done';
@@ -237,7 +243,7 @@ export declare const cls: {
237
243
  readonly reportNumbered: 'ui-report--numbered';
238
244
  readonly reportCover: 'ui-report__cover';
239
245
  readonly reportCoverCompact: 'ui-report__cover--compact';
240
- readonly reportHeader: 'ui-report__header';
246
+ readonly reportHead: 'ui-report__head';
241
247
  readonly reportTitle: 'ui-report__title';
242
248
  readonly reportSubtitle: 'ui-report__subtitle';
243
249
  readonly reportMeta: 'ui-report__meta';
@@ -253,16 +259,183 @@ export declare const cls: {
253
259
  readonly reportSources: 'ui-report__sources';
254
260
  readonly reportAppendix: 'ui-report__appendix';
255
261
  readonly reportFootnotes: 'ui-report__footnotes';
256
- readonly chart: 'ui-chart';
257
- readonly chartLegend: 'ui-chart__legend';
258
- readonly chartSwatch: 'ui-chart__swatch';
259
- readonly chartCaption: 'ui-chart__caption';
260
- readonly chartPlot: 'ui-chart__plot';
261
- readonly chartBar: 'ui-chart__bar';
262
- readonly chartLabel: 'ui-chart__label';
263
- readonly chartTrack: 'ui-chart__track';
264
- readonly chartFill: 'ui-chart__fill';
265
- readonly chartFallback: 'ui-chart__fallback';
262
+ readonly compare: 'ui-compare';
263
+ readonly compare2up: 'ui-compare--2up';
264
+ readonly compareCol: 'ui-compare__col';
265
+ readonly compareHead: 'ui-compare__head';
266
+ readonly legend: 'ui-legend';
267
+ readonly legendVertical: 'ui-legend--vertical';
268
+ readonly legendCompact: 'ui-legend--compact';
269
+ readonly legendGradient: 'ui-legend--gradient';
270
+ readonly legendDiverging: 'ui-legend--diverging';
271
+ readonly legendThreshold: 'ui-legend--threshold';
272
+ readonly legendWithValues: 'ui-legend--with-values';
273
+ readonly legendInteractive: 'ui-legend--interactive';
274
+ readonly legendTitle: 'ui-legend__title';
275
+ readonly legendItem: 'ui-legend__item';
276
+ readonly legendSwatch: 'ui-legend__swatch';
277
+ readonly legendSwatchCircle: 'ui-legend__swatch--circle';
278
+ readonly legendSwatchLine: 'ui-legend__swatch--line';
279
+ readonly legendSwatch1: 'ui-legend__swatch--1';
280
+ readonly legendSwatch2: 'ui-legend__swatch--2';
281
+ readonly legendSwatch3: 'ui-legend__swatch--3';
282
+ readonly legendSwatch4: 'ui-legend__swatch--4';
283
+ readonly legendSwatch5: 'ui-legend__swatch--5';
284
+ readonly legendSwatch6: 'ui-legend__swatch--6';
285
+ readonly legendSwatch7: 'ui-legend__swatch--7';
286
+ readonly legendSwatch8: 'ui-legend__swatch--8';
287
+ readonly legendSymbol: 'ui-legend__symbol';
288
+ readonly legendLabel: 'ui-legend__label';
289
+ readonly legendValue: 'ui-legend__value';
290
+ readonly legendCaption: 'ui-legend__caption';
291
+ readonly legendTrack: 'ui-legend__track';
292
+ readonly legendTicks: 'ui-legend__ticks';
293
+ readonly legendTick: 'ui-legend__tick';
294
+ readonly annotation: 'ui-annotation';
295
+ readonly annotationSubject: 'ui-annotation__subject';
296
+ readonly annotationConnector: 'ui-annotation__connector';
297
+ readonly annotationConnectorEnd: 'ui-annotation__connector-end';
298
+ readonly annotationNote: 'ui-annotation__note';
299
+ readonly annotationNoteLine: 'ui-annotation__note-line';
300
+ readonly annotationTitle: 'ui-annotation__title';
301
+ readonly annotationLabel: 'ui-annotation__label';
302
+ readonly annotationBadge: 'ui-annotation__badge';
303
+ readonly annotationLabelVariant: 'ui-annotation--label';
304
+ readonly annotationCallout: 'ui-annotation--callout';
305
+ readonly annotationElbow: 'ui-annotation--elbow';
306
+ readonly annotationCurve: 'ui-annotation--curve';
307
+ readonly annotationCircle: 'ui-annotation--circle';
308
+ readonly annotationRect: 'ui-annotation--rect';
309
+ readonly annotationThreshold: 'ui-annotation--threshold';
310
+ readonly annotationBadgeVariant: 'ui-annotation--badge';
311
+ readonly annotationBracket: 'ui-annotation--bracket';
312
+ readonly annotationBand: 'ui-annotation--band';
313
+ readonly annotationSlope: 'ui-annotation--slope';
314
+ readonly annotationCompare: 'ui-annotation--compare';
315
+ readonly annotationCluster: 'ui-annotation--cluster';
316
+ readonly annotationAxis: 'ui-annotation--axis';
317
+ readonly annotationTimeline: 'ui-annotation--timeline';
318
+ readonly annotationEvidence: 'ui-annotation--evidence';
319
+ readonly annotationAccent: 'ui-annotation--accent';
320
+ readonly annotationMuted: 'ui-annotation--muted';
321
+ readonly annotationSuccess: 'ui-annotation--success';
322
+ readonly annotationWarning: 'ui-annotation--warning';
323
+ readonly annotationDanger: 'ui-annotation--danger';
324
+ readonly annotationInfo: 'ui-annotation--info';
325
+ readonly annotationDraw: 'ui-annotation--draw';
326
+ readonly annotationPulse: 'ui-annotation--pulse';
327
+ readonly annotationReveal: 'ui-annotation--reveal';
328
+ readonly annotationFocus: 'ui-annotation--focus';
329
+ readonly mark: 'ui-mark';
330
+ readonly markAccent: 'ui-mark--accent';
331
+ readonly markSuccess: 'ui-mark--success';
332
+ readonly markWarning: 'ui-mark--warning';
333
+ readonly markDanger: 'ui-mark--danger';
334
+ readonly markInfo: 'ui-mark--info';
335
+ readonly markMuted: 'ui-mark--muted';
336
+ readonly markUnderline: 'ui-mark--underline';
337
+ readonly markBox: 'ui-mark--box';
338
+ readonly markStrike: 'ui-mark--strike';
339
+ readonly markDraw: 'ui-mark--draw';
340
+ readonly bracketNote: 'ui-bracket-note';
341
+ readonly bracketNoteLabel: 'ui-bracket-note__label';
342
+ readonly bracketNoteAccent: 'ui-bracket-note--accent';
343
+ readonly bracketNoteSuccess: 'ui-bracket-note--success';
344
+ readonly bracketNoteWarning: 'ui-bracket-note--warning';
345
+ readonly bracketNoteDanger: 'ui-bracket-note--danger';
346
+ readonly bracketNoteInfo: 'ui-bracket-note--info';
347
+ readonly connector: 'ui-connector';
348
+ readonly connectorPath: 'ui-connector__path';
349
+ readonly connectorEnd: 'ui-connector__end';
350
+ readonly connectorDashed: 'ui-connector--dashed';
351
+ readonly connectorAccent: 'ui-connector--accent';
352
+ readonly connectorMuted: 'ui-connector--muted';
353
+ readonly connectorSuccess: 'ui-connector--success';
354
+ readonly connectorWarning: 'ui-connector--warning';
355
+ readonly connectorDanger: 'ui-connector--danger';
356
+ readonly connectorInfo: 'ui-connector--info';
357
+ readonly connectorDraw: 'ui-connector--draw';
358
+ readonly spotlight: 'ui-spotlight';
359
+ readonly spotlightHole: 'ui-spotlight__hole';
360
+ readonly spotlightRing: 'ui-spotlight--ring';
361
+ readonly tourNote: 'ui-tour-note';
362
+ readonly tourNoteStep: 'ui-tour-note__step';
363
+ readonly tourNoteTitle: 'ui-tour-note__title';
364
+ readonly tourNoteBody: 'ui-tour-note__body';
365
+ readonly tourNoteActions: 'ui-tour-note__actions';
366
+ readonly crosshair: 'ui-crosshair';
367
+ readonly crosshairMuted: 'ui-crosshair--muted';
368
+ readonly crosshairLine: 'ui-crosshair__line';
369
+ readonly crosshairLineX: 'ui-crosshair__line--x';
370
+ readonly crosshairLineY: 'ui-crosshair__line--y';
371
+ readonly crosshairBadge: 'ui-crosshair__badge';
372
+ readonly readout: 'ui-readout';
373
+ readonly sel: 'ui-sel';
374
+ readonly selOn: 'ui-sel--on';
375
+ readonly selOff: 'ui-sel--off';
376
+ readonly selMaybe: 'ui-sel--maybe';
377
+ readonly citation: 'ui-citation';
378
+ readonly citationChip: 'ui-citation--chip';
379
+ readonly sourceList: 'ui-source-list';
380
+ readonly sourceListItem: 'ui-source-list__item';
381
+ readonly sourceCard: 'ui-source-card';
382
+ readonly sourceCardTitle: 'ui-source-card__title';
383
+ readonly sourceCardOrigin: 'ui-source-card__origin';
384
+ readonly sourceCardTime: 'ui-source-card__time';
385
+ readonly sourceCardExcerpt: 'ui-source-card__excerpt';
386
+ readonly sourceCardActions: 'ui-source-card__actions';
387
+ readonly provenance: 'ui-provenance';
388
+ readonly provenanceItem: 'ui-provenance__item';
389
+ readonly src: 'ui-src';
390
+ readonly srcVerified: 'ui-src--verified';
391
+ readonly srcUnverified: 'ui-src--unverified';
392
+ readonly srcGenerated: 'ui-src--generated';
393
+ readonly srcReviewed: 'ui-src--reviewed';
394
+ readonly srcStale: 'ui-src--stale';
395
+ readonly srcConflict: 'ui-src--conflict';
396
+ readonly state: 'ui-state';
397
+ readonly stateLabel: 'ui-state__label';
398
+ readonly stateDetail: 'ui-state__detail';
399
+ readonly stateBusy: 'ui-state--busy';
400
+ readonly stateSaving: 'ui-state--saving';
401
+ readonly stateSaved: 'ui-state--saved';
402
+ readonly stateQueued: 'ui-state--queued';
403
+ readonly stateOffline: 'ui-state--offline';
404
+ readonly stateStale: 'ui-state--stale';
405
+ readonly stateConflict: 'ui-state--conflict';
406
+ readonly stateError: 'ui-state--error';
407
+ readonly stateLocked: 'ui-state--locked';
408
+ readonly stateReviewed: 'ui-state--reviewed';
409
+ readonly stateNeedsReview: 'ui-state--needs-review';
410
+ readonly syncbar: 'ui-syncbar';
411
+ readonly generated: 'ui-generated';
412
+ readonly generatedLabel: 'ui-generated__label';
413
+ readonly originLabel: 'ui-origin-label';
414
+ readonly originLabelAi: 'ui-origin-label--ai';
415
+ readonly reasoning: 'ui-reasoning';
416
+ readonly reasoningBody: 'ui-reasoning__body';
417
+ readonly toolLog: 'ui-tool-log';
418
+ readonly toolCall: 'ui-tool-call';
419
+ readonly toolCallName: 'ui-tool-call__name';
420
+ readonly toolCallStatus: 'ui-tool-call__status';
421
+ readonly toolCallBody: 'ui-tool-call__body';
422
+ readonly inspector: 'ui-inspector';
423
+ readonly inspectorHead: 'ui-inspector__head';
424
+ readonly inspectorBody: 'ui-inspector__body';
425
+ readonly property: 'ui-property';
426
+ readonly propertyLabel: 'ui-property__label';
427
+ readonly propertyValue: 'ui-property__value';
428
+ readonly selectionbar: 'ui-selectionbar';
429
+ readonly selectionbarCount: 'ui-selectionbar__count';
430
+ readonly selectionbarActions: 'ui-selectionbar__actions';
431
+ readonly command: 'ui-command';
432
+ readonly commandInput: 'ui-command__input';
433
+ readonly commandList: 'ui-command__list';
434
+ readonly commandGroup: 'ui-command__group';
435
+ readonly commandItem: 'ui-command__item';
436
+ readonly commandShortcut: 'ui-command__shortcut';
437
+ readonly commandMeta: 'ui-command__meta';
438
+ readonly commandEmpty: 'ui-command__empty';
266
439
  readonly printOnly: 'ui-print-only';
267
440
  readonly screenOnly: 'ui-screen-only';
268
441
  readonly breakBefore: 'ui-break-before';
@@ -270,6 +443,8 @@ export declare const cls: {
270
443
  readonly keep: 'ui-keep';
271
444
  readonly printExact: 'ui-print-exact';
272
445
  readonly kbd: 'ui-kbd';
446
+ readonly shortcut: 'ui-shortcut';
447
+ readonly shortcutSep: 'ui-shortcut__sep';
273
448
  readonly display: 'ui-display';
274
449
  readonly mono: 'ui-mono';
275
450
  readonly muted: 'ui-muted';
@@ -292,7 +467,6 @@ export declare const cls: {
292
467
  readonly appShellFull: 'ui-app-shell--full';
293
468
  readonly appRail: 'ui-app-rail';
294
469
  readonly appRailBrand: 'ui-app-rail__brand';
295
- readonly appRailToggle: 'ui-app-rail__toggle';
296
470
  readonly appRailFoot: 'ui-app-rail__foot';
297
471
  readonly appRailAccount: 'ui-app-rail__account';
298
472
  readonly appTopbar: 'ui-app-topbar';
@@ -338,6 +512,16 @@ export interface BadgeOpts {
338
512
  export interface NumOpts {
339
513
  tone?: 'pos' | 'neg' | 'muted';
340
514
  }
515
+ export interface DeltaOpts {
516
+ /** Trend direction — sets the arrow glyph and the conventional tone. */
517
+ dir?: 'up' | 'down' | 'flat';
518
+ /** Swap only the tone when `up` is the bad direction (latency, error rate, cost). */
519
+ invert?: boolean;
520
+ }
521
+ export interface CompareOpts {
522
+ /** Pin exactly two equal columns (hard before/after) instead of the auto-fitting set. */
523
+ cols?: 2;
524
+ }
341
525
  export interface ChipOpts {
342
526
  accent?: boolean;
343
527
  }
@@ -381,7 +565,7 @@ export interface ProgressOpts {
381
565
  indeterminate?: boolean;
382
566
  }
383
567
  export interface MeterOpts {
384
- tone?: 'accent' | 'success' | 'warning' | 'danger';
568
+ tone?: 'accent' | 'success' | 'warning' | 'danger' | 'info';
385
569
  }
386
570
  export interface DotspinnerOpts {
387
571
  size?: 'sm' | 'lg';
@@ -414,12 +598,106 @@ export interface InputIconOpts {
414
598
  /** Place the icon at the inline-end instead of the start. */
415
599
  end?: boolean;
416
600
  }
601
+ export interface LegendOpts {
602
+ /** Stack entries vertically instead of the wrapping inline row. */
603
+ orient?: 'vertical';
604
+ /** Continuous colour ramp (`gradient`) or binned `threshold` key. Omit for the categorical default. */
605
+ type?: 'gradient' | 'threshold';
606
+ /** Use the 7-stop diverging ramp instead of the sequential one (gradient type). */
607
+ diverging?: boolean;
608
+ compact?: boolean;
609
+ /** Align a trailing `__value` column across rows. */
610
+ withValues?: boolean;
611
+ /** Entries are `<button aria-pressed>` toggles (pair with behaviors/legend.js). */
612
+ interactive?: boolean;
613
+ }
614
+ export interface LegendItemOpts {
615
+ /** Host-set inactive state. Equivalent to `[aria-pressed="false"]` on an interactive entry. */
616
+ inactive?: boolean;
617
+ }
618
+ export interface LegendSwatchOpts {
619
+ /** Categorical palette series 1–8 — sets the matching `--chart-N` colour. */
620
+ series?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
621
+ shape?: 'circle' | 'line';
622
+ }
623
+ export interface AnnotationOpts {
624
+ variant?: 'label' | 'callout' | 'elbow' | 'curve' | 'circle' | 'rect' | 'threshold' | 'badge' | 'bracket' | 'band' | 'slope' | 'compare' | 'cluster' | 'axis' | 'timeline' | 'evidence';
625
+ tone?: 'accent' | 'muted' | 'success' | 'warning' | 'danger' | 'info';
626
+ motion?: 'draw' | 'pulse' | 'reveal' | 'focus';
627
+ }
628
+ export interface MarkOpts {
629
+ /** How the mark is drawn. Omit for the highlight fill. */
630
+ style?: 'underline' | 'box' | 'strike';
631
+ /** `accent` is the rationed accent; status tones for status-bearing emphasis; `muted` for de-emphasis. */
632
+ tone?: 'accent' | 'success' | 'warning' | 'danger' | 'info' | 'muted';
633
+ /** Draw-on highlight sweep (respects `prefers-reduced-motion`). */
634
+ motion?: 'draw';
635
+ }
636
+ export interface BracketNoteOpts {
637
+ tone?: 'accent' | 'success' | 'warning' | 'danger' | 'info';
638
+ }
639
+ export interface ConnectorOpts {
640
+ tone?: 'accent' | 'muted' | 'success' | 'warning' | 'danger' | 'info';
641
+ dashed?: boolean;
642
+ /** Stroke the line in once (respects `prefers-reduced-motion`). */
643
+ motion?: 'draw';
644
+ }
645
+ export interface SpotlightOpts {
646
+ /** Add a ring around the cutout. */
647
+ ring?: boolean;
648
+ }
649
+ export interface CrosshairOpts {
650
+ /** A subtler, neutral crosshair instead of the accent. */
651
+ muted?: boolean;
652
+ }
653
+ export interface SelOpts {
654
+ /** Selection emphasis: `on` (selected), `off` (excluded), `maybe` (live-brush candidate). */
655
+ state?: 'on' | 'off' | 'maybe';
656
+ }
657
+ /** Trust state for the source/citation/provenance layer. Pair with an author-written label — never colour alone. */
658
+ export type SrcState = 'verified' | 'unverified' | 'generated' | 'reviewed' | 'stale' | 'conflict';
659
+ export interface CitationOpts {
660
+ /** Render as a named-source pill (leading tone dot) instead of an inline `[n]` reference. */
661
+ chip?: boolean;
662
+ state?: SrcState;
663
+ }
664
+ export interface SourceOpts {
665
+ /** Sets the source card's tone border. */
666
+ state?: SrcState;
667
+ }
668
+ export interface ProvenanceOpts {
669
+ /** Sets the provenance item's tone dot. */
670
+ state?: SrcState;
671
+ }
672
+ /** Canonical lifecycle state — sets the tone; pair with the canonical label (see docs/state.md). */
673
+ export type LifecycleState =
674
+ | 'saving'
675
+ | 'saved'
676
+ | 'queued'
677
+ | 'offline'
678
+ | 'stale'
679
+ | 'conflict'
680
+ | 'error'
681
+ | 'locked'
682
+ | 'reviewed'
683
+ | 'needs-review';
684
+ export interface StateOpts {
685
+ state?: LifecycleState;
686
+ /** Pulse the indicator for an in-progress state (saving / syncing / retrying). Reduced-motion-safe. */
687
+ busy?: boolean;
688
+ }
689
+ export interface OriginLabelOpts {
690
+ /** Accent-tint the label for AI/model-generated origin (vs a neutral tag). */
691
+ ai?: boolean;
692
+ }
417
693
 
418
694
  export interface Ui {
419
695
  button(opts?: ButtonOpts): string;
420
696
  card(opts?: CardOpts): string;
421
697
  badge(opts?: BadgeOpts): string;
422
698
  num(opts?: NumOpts): string;
699
+ delta(opts?: DeltaOpts): string;
700
+ compare(opts?: CompareOpts): string;
423
701
  chip(opts?: ChipOpts): string;
424
702
  link(opts?: LinkOpts): string;
425
703
  dot(opts?: DotOpts): string;
@@ -442,6 +720,21 @@ export interface Ui {
442
720
  container(opts?: ContainerOpts): string;
443
721
  tag(opts?: TagOpts): string;
444
722
  inputIcon(opts?: InputIconOpts): string;
723
+ legend(opts?: LegendOpts): string;
724
+ legendItem(opts?: LegendItemOpts): string;
725
+ legendSwatch(opts?: LegendSwatchOpts): string;
726
+ annotation(opts?: AnnotationOpts): string;
727
+ mark(opts?: MarkOpts): string;
728
+ bracketNote(opts?: BracketNoteOpts): string;
729
+ connector(opts?: ConnectorOpts): string;
730
+ spotlight(opts?: SpotlightOpts): string;
731
+ crosshair(opts?: CrosshairOpts): string;
732
+ sel(opts?: SelOpts): string;
733
+ citation(opts?: CitationOpts): string;
734
+ source(opts?: SourceOpts): string;
735
+ provenance(opts?: ProvenanceOpts): string;
736
+ state(opts?: StateOpts): string;
737
+ originLabel(opts?: OriginLabelOpts): string;
445
738
  }
446
739
 
447
740
  export declare const ui: Ui;