tuffgal 0.2.0-alpha.2 → 0.2.0-alpha.4

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 (110) hide show
  1. package/CHANGELOG.md +41 -19
  2. package/README.md +6 -6
  3. package/dist/cli.d.ts +5 -5
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +12 -5
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/init.d.ts +1 -1
  8. package/dist/commands/init.js +6 -6
  9. package/dist/commands/supervise.d.ts +3 -3
  10. package/dist/commands/supervise.js +8 -4
  11. package/dist/commands/supervise.js.map +1 -1
  12. package/dist/config.d.ts +29 -13
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +5 -2
  15. package/dist/config.js.map +1 -1
  16. package/dist/coverage/screens.d.ts +10 -5
  17. package/dist/coverage/screens.d.ts.map +1 -1
  18. package/dist/coverage/screens.js +18 -8
  19. package/dist/coverage/screens.js.map +1 -1
  20. package/dist/reporter/assets/report.css +11 -11
  21. package/dist/reporter/assets/report.js +81 -21
  22. package/dist/reporter/template.js +56 -45
  23. package/dist/reporter/template.js.map +1 -1
  24. package/dist/runner/approve.d.ts +5 -5
  25. package/dist/runner/approve.js +5 -5
  26. package/dist/runner/approveFrom.d.ts +8 -8
  27. package/dist/runner/approveFrom.js +32 -31
  28. package/dist/runner/approveFrom.js.map +1 -1
  29. package/dist/runner/breakpointPasses.d.ts +16 -9
  30. package/dist/runner/breakpointPasses.d.ts.map +1 -1
  31. package/dist/runner/breakpointPasses.js +17 -9
  32. package/dist/runner/breakpointPasses.js.map +1 -1
  33. package/dist/runner/bridges/devServers.d.ts +10 -1
  34. package/dist/runner/bridges/devServers.d.ts.map +1 -1
  35. package/dist/runner/bridges/devServers.js +16 -8
  36. package/dist/runner/bridges/devServers.js.map +1 -1
  37. package/dist/runner/coverage.d.ts +3 -3
  38. package/dist/runner/coverage.js +5 -5
  39. package/dist/runner/coverage.js.map +1 -1
  40. package/dist/runner/exitCode.d.ts +7 -7
  41. package/dist/runner/exitCode.js +7 -7
  42. package/dist/runner/interpolate.js +1 -1
  43. package/dist/runner/interpolate.js.map +1 -1
  44. package/dist/runner/manifest.d.ts +16 -16
  45. package/dist/runner/manifest.js +12 -12
  46. package/dist/runner/mode.d.ts +2 -2
  47. package/dist/runner/mode.js +4 -4
  48. package/dist/runner/orphanScan.d.ts +3 -3
  49. package/dist/runner/orphanScan.js +5 -5
  50. package/dist/runner/orphanScan.js.map +1 -1
  51. package/dist/runner/resolveLocator.d.ts +5 -5
  52. package/dist/runner/resolveLocator.js +6 -6
  53. package/dist/runner/resolveLocator.js.map +1 -1
  54. package/dist/runner/run.d.ts +55 -18
  55. package/dist/runner/run.d.ts.map +1 -1
  56. package/dist/runner/run.js +118 -67
  57. package/dist/runner/run.js.map +1 -1
  58. package/dist/runner/runAction.d.ts +4 -4
  59. package/dist/runner/runAction.d.ts.map +1 -1
  60. package/dist/runner/runAction.js +72 -34
  61. package/dist/runner/runAction.js.map +1 -1
  62. package/dist/runner/runStory.d.ts +29 -18
  63. package/dist/runner/runStory.d.ts.map +1 -1
  64. package/dist/runner/runStory.js +38 -42
  65. package/dist/runner/runStory.js.map +1 -1
  66. package/dist/runner/scheduler.d.ts +11 -0
  67. package/dist/runner/scheduler.d.ts.map +1 -1
  68. package/dist/runner/scheduler.js +1 -1
  69. package/dist/runner/scheduler.js.map +1 -1
  70. package/dist/runner/steps/intercept.d.ts +6 -4
  71. package/dist/runner/steps/intercept.d.ts.map +1 -1
  72. package/dist/runner/steps/intercept.js.map +1 -1
  73. package/dist/runner/steps/navigate.d.ts +5 -2
  74. package/dist/runner/steps/navigate.d.ts.map +1 -1
  75. package/dist/runner/steps/navigate.js +17 -3
  76. package/dist/runner/steps/navigate.js.map +1 -1
  77. package/dist/runner/steps/read.d.ts +1 -1
  78. package/dist/runner/steps/read.js +1 -1
  79. package/dist/runner/steps/scroll.d.ts +1 -1
  80. package/dist/runner/steps/scroll.d.ts.map +1 -1
  81. package/dist/runner/steps/scroll.js +3 -2
  82. package/dist/runner/steps/scroll.js.map +1 -1
  83. package/dist/schema/action.d.ts +2 -2
  84. package/dist/schema/action.d.ts.map +1 -1
  85. package/dist/schema/action.js +58 -13
  86. package/dist/schema/action.js.map +1 -1
  87. package/dist/schema/load.js +1 -1
  88. package/dist/schema/load.js.map +1 -1
  89. package/dist/schema/result.d.ts +22 -22
  90. package/dist/schema/result.d.ts.map +1 -1
  91. package/dist/schema/result.js +1 -1
  92. package/dist/schema/story.d.ts +1 -1
  93. package/dist/schema/story.js +5 -5
  94. package/dist/screenshots/baselineStore.d.ts +44 -21
  95. package/dist/screenshots/baselineStore.d.ts.map +1 -1
  96. package/dist/screenshots/baselineStore.js +59 -28
  97. package/dist/screenshots/baselineStore.js.map +1 -1
  98. package/dist/screenshots/capture.d.ts +35 -4
  99. package/dist/screenshots/capture.d.ts.map +1 -1
  100. package/dist/screenshots/capture.js +61 -9
  101. package/dist/screenshots/capture.js.map +1 -1
  102. package/dist/screenshots/diff.d.ts +57 -8
  103. package/dist/screenshots/diff.d.ts.map +1 -1
  104. package/dist/screenshots/diff.js +78 -28
  105. package/dist/screenshots/diff.js.map +1 -1
  106. package/dist/util.d.ts +23 -2
  107. package/dist/util.d.ts.map +1 -1
  108. package/dist/util.js +42 -2
  109. package/dist/util.js.map +1 -1
  110. package/package.json +4 -8
@@ -10,7 +10,7 @@ const STATUS_LABELS = {
10
10
  * The matcher token for a breakpoint bucket key, shared by the filter pills and
11
11
  * the `[data-breakpoint]` hooks so a token always matches its container. The
12
12
  * empty-string key (the defensive parse-guard bucket where a result carried no
13
- * breakpoint) maps to the reserved `legacy` token — the same string
13
+ * breakpoint) maps to the reserved `legacy` token, the same string
14
14
  * {@link renderDeletedEntry} uses for the pre-breakpoint layout. Every other key
15
15
  * is the real breakpoint name, passed through verbatim.
16
16
  */
@@ -72,12 +72,12 @@ export function renderReport(result, reportDir, interactiveMode = false) {
72
72
  * The status totals double as the report's filter controls: each is a native
73
73
  * `<button aria-pressed>` single-select filter, with the "stories" total acting
74
74
  * as the "show all / clear" control (pressed by default). The expand-all /
75
- * collapse-all pair sits at the right end of the same row — the slot the old
75
+ * collapse-all pair sits at the right end of the same row, the slot the old
76
76
  * coverage stats used to occupy. The `<ul>` stays a plain list (no composite
77
77
  * role): a non-filter total and the bulk-toggle group share it, so a
78
78
  * radiogroup/fieldset could not cleanly scope just the filters.
79
79
  *
80
- * A second, independent filter dimension — the breakpoint filter — renders
80
+ * A second, independent filter dimension (the breakpoint filter) renders
81
81
  * BELOW the totals row inside this same summary region (see
82
82
  * {@link renderBreakpointFilters}), but only when the run spans two or more
83
83
  * distinct breakpoints. The two dimensions are ANDed by report.js.
@@ -87,7 +87,7 @@ function renderSummary(result) {
87
87
  <section class="summary" aria-labelledby="summary-heading">
88
88
  <h2 id="summary-heading">summary</h2>
89
89
  <ul class="summary-list" aria-label="Run totals">
90
- ${summaryFilter('stories', result.totals.stories, 'all', true, ' — show all stories')}
90
+ ${summaryFilter('stories', result.totals.stories, 'all', true, ', show all stories')}
91
91
  ${summaryFilter('passed', result.totals.passed, 'pass', false, ', show only passed stories')}
92
92
  ${summaryFilter('new', result.totals.new, 'new', false, ', show only new stories')}
93
93
  ${summaryFilter('changed', result.totals.changed, 'changed', false, ', show only changed stories')}
@@ -105,19 +105,19 @@ function renderSummary(result) {
105
105
  }
106
106
  /**
107
107
  * The distinct breakpoints a run spanned, in first-seen order across every
108
- * story's flat action array — the SAME order {@link renderStoryActions} buckets
108
+ * story's flat action array, the SAME order {@link renderStoryActions} buckets
109
109
  * a single story's groups in, extended across stories. Each distinct breakpoint
110
110
  * carries the capture dimensions of the FIRST action seen at it (the same source
111
111
  * {@link renderBreakpointGroup} labels a group with), so the filter pill can
112
112
  * echo the size.
113
113
  *
114
- * The bucket KEY is `action.breakpoint ?? ''` — identical to
114
+ * The bucket KEY is `action.breakpoint ?? ''`, identical to
115
115
  * {@link renderStoryActions}, so a filter token always matches a rendered
116
116
  * `[data-breakpoint]` container. The empty-string key is a defensive parse-guard
117
117
  * only (the runner always tags a real breakpoint name); it maps to the reserved
118
118
  * `legacy` token/label. A live `ActionResult` never carries the literal
119
- * `'legacy'` breakpoint — that synthetic name is confined to orphaned-baseline
120
- * (`deleted`) entries — so the empty-string bucket and a real `legacy` bucket
119
+ * `'legacy'` breakpoint. That synthetic name is confined to orphaned-baseline
120
+ * (`deleted`) entries, so the empty-string bucket and a real `legacy` bucket
121
121
  * cannot collide within one run's stories.
122
122
  */
123
123
  function distinctBreakpoints(result) {
@@ -141,7 +141,7 @@ function distinctBreakpoints(result) {
141
141
  /**
142
142
  * The breakpoint filter group: a second single-select filter dimension, sibling
143
143
  * to the status totals inside the summary region. Rendered ONLY when the run
144
- * spans two or more distinct breakpoints — a single-breakpoint run makes the
144
+ * spans two or more distinct breakpoints. A single-breakpoint run makes the
145
145
  * filter a no-op, so the whole group is omitted.
146
146
  *
147
147
  * Each pill is a native `<button aria-pressed>` toggle (like the status filter),
@@ -204,7 +204,7 @@ function breakpointFilter(bp) {
204
204
  * count still reads as the button's description. The accessible name is the
205
205
  * visible label plus a visually-hidden action suffix (e.g. ", show only passed
206
206
  * stories"), composed from contents so the visible text is never dropped (WCAG
207
- * 2.5.3 — never an aria-label). The `data-filter` token ("pass") is kept
207
+ * 2.5.3, never an aria-label). The `data-filter` token ("pass") is kept
208
208
  * distinct from the visible label ("passed") so report.js matches
209
209
  * `story[data-status="pass"]`.
210
210
  */
@@ -218,7 +218,7 @@ function summaryFilter(label, value, filter, pressed, actionSuffix) {
218
218
  }
219
219
  /**
220
220
  * Environment-mismatch banner, rendered first inside `<main>` (above the
221
- * summary) ONLY when `environment.mismatch === true` — i.e. a CI run whose
221
+ * summary) ONLY when `environment.mismatch === true`, i.e. a CI run whose
222
222
  * committed baselines were captured under a different, pixel-affecting
223
223
  * environment, or whose committed manifest could not be read at all.
224
224
  *
@@ -245,7 +245,7 @@ function renderEnvMismatch(result) {
245
245
  environment.mismatchKeys[0] === 'manifest';
246
246
  const body = isManifestSentinel
247
247
  ? `<p>The committed baseline manifest could not be read, so the capture environment can't be verified. Expect a full re-approve.</p>`
248
- : `<p>Expect a full re-approve — baselines were captured under a different environment.</p>
248
+ : `<p>Expect a full re-approve. Baselines were captured under a different environment.</p>
249
249
  <ul aria-label="Changed environment keys">
250
250
  ${environment.mismatchKeys
251
251
  .map((key) => `<li><code>${escapeHtml(key)}</code></li>`)
@@ -259,7 +259,7 @@ function renderEnvMismatch(result) {
259
259
  `;
260
260
  }
261
261
  /**
262
- * Deleted (orphaned committed baselines) section — a peer landmark rendered
262
+ * Deleted (orphaned committed baselines) section, a peer landmark rendered
263
263
  * AFTER the stories section, inside `<main>`, ONLY when `deleted` is non-empty.
264
264
  * Lists each orphaned baseline (action + breakpoint) that `approve --prune`
265
265
  * would remove. A `'legacy'` breakpoint (the pre-breakpoint `<action>/0.png`
@@ -309,9 +309,18 @@ function renderStories(result, reportDir, interactiveMode) {
309
309
  </section>
310
310
  `;
311
311
  }
312
+ /**
313
+ * `id="story-<storyIndex>"` is the deep-link target: report.js reads
314
+ * `location.hash`, scrolls the matching story into view, and expands its
315
+ * screenshots. The index is the story's position in `result.stories` (the same
316
+ * ordinal that keys action ids as `s<storyIndex>-a…`), so the CI comment (which
317
+ * walks the SAME `results.json` stories array) can build `#story-<i>` links
318
+ * without re-deriving a slug. `tabindex="-1"` makes the `<li>` a script focus
319
+ * target so a deep-link lands the reader on the story prose, not mid-list.
320
+ */
312
321
  function renderStory(story, storyIndex, reportDir, interactiveMode) {
313
322
  return `
314
- <li class="story" data-status="${story.status}">
323
+ <li class="story" data-status="${story.status}" id="story-${storyIndex}" tabindex="-1">
315
324
  <div class="story-row">
316
325
  <span class="story-marker" aria-hidden="true">${STATUS_MARKERS[story.status]}</span>
317
326
  <span class="sr-only">${STATUS_LABELS[story.status]}</span>
@@ -330,12 +339,12 @@ function renderStory(story, storyIndex, reportDir, interactiveMode) {
330
339
  *
331
340
  * - Single mode: when the story ran at exactly one breakpoint (the common
332
341
  * default `desktop` project), we render the historical flat
333
- * `<ol class="actions">` with no per-mode caption — no breakpoint chrome
342
+ * `<ol class="actions">` with no per-mode caption, no breakpoint chrome
334
343
  * when there is only one mode to show.
335
344
  * - Multi mode: when the story ran at two or more breakpoints, we render one
336
345
  * labelled group per mode so a reader sees results per mode instead of a
337
346
  * flat interleaved list. An action with `screenshot:false` still appears
338
- * once per breakpoint — it simply renders as a shot-less row in its mode's
347
+ * once per breakpoint. It simply renders as a shot-less row in its mode's
339
348
  * group, no special-casing needed.
340
349
  *
341
350
  * `actionId` is keyed by the action's index in the original flat array
@@ -349,17 +358,19 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
349
358
  const buckets = new Map();
350
359
  story.actions.forEach((action, actionIndex) => {
351
360
  const key = action.breakpoint ?? '';
352
- if (!buckets.has(key)) {
353
- buckets.set(key, []);
361
+ let bucket = buckets.get(key);
362
+ if (bucket === undefined) {
363
+ bucket = [];
364
+ buckets.set(key, bucket);
354
365
  order.push(key);
355
366
  }
356
- buckets.get(key).push({ action, id: `s${storyIndex}-a${actionIndex}` });
367
+ bucket.push({ action, id: `s${storyIndex}-a${actionIndex}` });
357
368
  });
358
369
  // One mode (or untagged) → flat list, no caption. Captions only earn their
359
370
  // chrome when there is more than one mode to tell apart. The flat list still
360
371
  // carries the `data-breakpoint` hook (keyed off the sole bucket) so the
361
372
  // breakpoint filter can hide the whole single-mode story when it does not
362
- // match — no visible chrome is added, only the filter hook.
373
+ // match, no visible chrome is added, only the filter hook.
363
374
  if (order.length <= 1) {
364
375
  const actions = story.actions
365
376
  .map((action, actionIndex) => renderAction(action, `s${storyIndex}-a${actionIndex}`, reportDir, interactiveMode))
@@ -374,14 +385,14 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
374
385
  }
375
386
  /**
376
387
  * One labelled per-breakpoint subsection. The mode label carries the breakpoint
377
- * NAME and its DIMENSIONS — the real capture size recorded on the result, so
388
+ * NAME and its DIMENSIONS, the real capture size recorded on the result, so
378
389
  * per-config and per-story overrides show their actual size. The label is a
379
390
  * non-heading caption: stories live inside an `<ol>` list, not a heading
380
391
  * outline, so injecting an `<h3>` here would orphan it under the story's
381
- * list-item subtree. Instead the action list is a labelled region — its
392
+ * list-item subtree. Instead the action list is a labelled region. Its
382
393
  * `<ol aria-labelledby>` points at the visible caption, so assistive tech
383
394
  * announces e.g. "mobile 375 by 667 pixels actions" without minting a heading
384
- * level. The trailing "actions" is an sr-only token inside the caption —
395
+ * level. The trailing "actions" is an sr-only token inside the caption.
385
396
  * "actions" never appears in the visible label, only in the computed accessible
386
397
  * name, so the region reads as a list of actions rather than a bare dimension
387
398
  * string.
@@ -392,7 +403,7 @@ function renderStoryActions(story, storyIndex, reportDir, interactiveMode) {
392
403
  *
393
404
  * The group `<div>` additionally carries a `data-breakpoint` hook (the bucket
394
405
  * key's matcher token) so the breakpoint filter can hide a whole group whose
395
- * mode is not selected. Purely additive — the caption/label idiom is untouched.
406
+ * mode is not selected. Purely additive. The caption/label idiom is untouched.
396
407
  */
397
408
  function renderBreakpointGroup(key, entries, groupId, reportDir, interactiveMode) {
398
409
  const labelId = `${groupId}-label`;
@@ -459,22 +470,22 @@ ${statusBadge(action.status)}
459
470
  }
460
471
  /**
461
472
  * Supplementary per-action prose, rendered inside `li.action` after the
462
- * row/screenshots/error block. Both are plain `<p role="note">` — NOT headings:
473
+ * row/screenshots/error block. Both are plain `<p role="note">`, NOT headings:
463
474
  * they live in the story `<ol>` subtree, so a heading would orphan under a
464
475
  * list-item (same rationale as {@link renderBreakpointGroup}'s caption). Neither
465
476
  * is a live region (present at load), so an a11y-only `changed` row can carry
466
477
  * BOTH with no double-announce.
467
478
  *
468
- * - candidate note: on `changed`/`new` rows only — supplementary prose flagging
479
+ * - candidate note: on `changed`/`new` rows only, supplementary prose flagging
469
480
  * "this run's actual screenshot is the proposed new baseline". Names the
470
481
  * Actual variant explicitly (the note sits OUTSIDE the <details>, so "this
471
- * render" would point at whichever tab is selected — or nothing when
482
+ * render" would point at whichever tab is selected, or nothing when
472
483
  * collapsed). No aria wiring; it does not duplicate the status badge's
473
484
  * sr-only label.
474
485
  * - a11y-drift note: gated STRICTLY on `a11yChanged === true`, NEVER inferred
475
486
  * from a missing `diffPath` (a size-mismatch `changed` row also lacks a
476
487
  * diffPath yet deliberately omits `a11yChanged`; keying on `!diffPath` would
477
- * misfire on it — the load-bearing discriminator, per the ActionResult
488
+ * misfire on it, the load-bearing discriminator, per the ActionResult
478
489
  * contract). Renders the recorded `a11yBaselinePath` as plain escaped
479
490
  * `<code>` TEXT, not a link (the report is portable / opened over file://),
480
491
  * relativized like the other paths when absolute.
@@ -527,7 +538,7 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
527
538
  // radio-tab output below, byte-identical with the pre-interactiveMode render.
528
539
  //
529
540
  // When the baseline and actual differ in dimensions the diff is uncomputable
530
- // (renderDiffStats' unavailable branch — both paths present, `changed` status,
541
+ // (renderDiffStats' unavailable branch: both paths present, `changed` status,
531
542
  // a recorded failureMessage, no diffRatio). Press-flipping between two
532
543
  // differently-sized captures misaligns everything and reads as "everything
533
544
  // changed", so fall back to the radio-tab render: visible panels, baseline +
@@ -540,7 +551,7 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
540
551
  }
541
552
  // A `new` baseline writes its baseline straight from this run's actual, so the
542
553
  // two paths point at byte-identical PNGs. There is no prior state to compare
543
- // against, so suppress the baseline variant for display — like the diff, it is
554
+ // against, so suppress the baseline variant for display. Like the diff, it is
544
555
  // not a real artifact here. The path stays in the data model for `approve`.
545
556
  const baseline = action.baselinePath && action.status !== 'new'
546
557
  ? toReportRelative(reportDir, action.baselinePath)
@@ -560,15 +571,15 @@ function renderScreenshots(action, actionId, reportDir, interactiveMode) {
560
571
  const diffStats = renderDiffStats(action, diffStatsId);
561
572
  // renderDiffStats emits the `diff-stats--unavailable` note (with this id) when
562
573
  // the diff is uncomputable. The diff radio is disabled in that case, so wire
563
- // its aria-describedby to the note — a keyboard/AT user reaching the disabled
574
+ // its aria-describedby to the note. A keyboard/AT user reaching the disabled
564
575
  // diff option then hears why no diff exists. (The diff PANEL only takes the
565
576
  // association when a real diff image renders, below.)
566
577
  const diffNoteUnavailable = isDiffUnavailable(action);
567
578
  // When only one variant is real (the common case for a `new` baseline, whose
568
579
  // baseline is suppressed and has no diff), a radio group offering a single
569
580
  // choice is noise to AT. Drop the controls and show the image alone; the row's
570
- // status badge already announces "new baseline". Zero variants — a `new` row
571
- // whose actual capture is somehow missing — collapses to nothing.
581
+ // status badge already announces "new baseline". Zero variants (a `new` row
582
+ // whose actual capture is somehow missing) collapses to nothing.
572
583
  const soleVariant = ['baseline', 'actual', 'diff'].filter((name) => available[name] !== undefined);
573
584
  if (soleVariant.length <= 1) {
574
585
  const only = soleVariant[0];
@@ -601,13 +612,13 @@ const SHOT_ALT = {
601
612
  * The pixel-diff overlay only exists when baseline and actual share dimensions.
602
613
  * A mismatch (e.g. a fullPage capture whose document grew taller) throws before
603
614
  * a diff is computed, so `diffRatio` is absent and there is no diff image to
604
- * show — surface the recorded reason here, in the slot the "% differs" stat
615
+ * show. Surface the recorded reason here, in the slot the "% differs" stat
605
616
  * would normally occupy, so a "changed" row never reads as an unexplained no-op.
606
617
  *
607
618
  * The mismatch note folds baseline and actual sizes into ONE sentence and renders
608
619
  * each dimension pair in the file's split idiom (a `breakpoint-dimensions` span
609
620
  * carrying the `×` glyph for sight, plus an `sr-only` "W by H pixels" longhand for
610
- * AT — never a bare `x`). It reads those numbers from the structured
621
+ * AT, never a bare `x`). It reads those numbers from the structured
611
622
  * `action.sizeMismatch` pair, NOT by parsing `failureMessage`. When that pair is
612
623
  * absent (a malformed or older result), it falls back to escaping the recorded
613
624
  * `failureMessage` prose rather than risk a wrong parse.
@@ -620,7 +631,7 @@ function renderDiffStats(action, diffStatsId) {
620
631
  return '';
621
632
  }
622
633
  const label = action.sizeMismatch
623
- ? `No pixel diff — screenshot resized from ${dimensionPair(action.sizeMismatch.baseline)} to ${dimensionPair(action.sizeMismatch.actual)}.`
634
+ ? `No pixel diff. Screenshot resized from ${dimensionPair(action.sizeMismatch.baseline)} to ${dimensionPair(action.sizeMismatch.actual)}.`
624
635
  : `No pixel diff. ${escapeHtml(action.failureMessage)}`;
625
636
  return `<p class="diff-stats diff-stats--unavailable" id="${diffStatsId}"><span class="label">${label}</span></p>`;
626
637
  }
@@ -639,7 +650,7 @@ function dimensionPair(size) {
639
650
  }
640
651
  /**
641
652
  * Interactive screenshot viewer (interactiveMode). One native radio group per
642
- * action is the committed-state source of truth — keyboard, touch, and AT all
653
+ * action is the committed-state source of truth. Keyboard, touch, and AT all
643
654
  * operate the radios (reusing `name="${actionId}-shot"`), and the chips render
644
655
  * permanently visible (the mouse/touch path to every variant, including Diff).
645
656
  * report.js layers a VISUAL-ONLY press-and-hold blink-compare on a SINGLE
@@ -647,20 +658,20 @@ function dimensionPair(size) {
647
658
  * normally, actual when baseline is committed); release/leave/dragstart
648
659
  * reverts. No hover behavior. The gesture rewrites only the img src and the
649
660
  * aria-hidden "Showing:" caption (which names the DISPLAYED variant, preview
650
- * included) — never radio state, the img alt, or any ARIA. The controls +
661
+ * included), never radio state, the img alt, or any ARIA. The controls +
651
662
  * caption live OUTSIDE the clipped `.shot-stage` so
652
663
  * the focus ring is never clipped or painted over screenshot pixels. The diff
653
- * variant — and its radio — is omitted entirely (not disabled) when this action
664
+ * variant, and its radio, is omitted entirely (not disabled) when this action
654
665
  * produced no diff image; the existing diff-stats association then rides on the
655
666
  * diff radio control rather than the image, leaving no dangling describedby.
656
667
  * (Distinct from the dimension-mismatch case, where the diff is uncomputable:
657
668
  * renderScreenshots never reaches this viewer and instead falls back to the
658
- * radio-tab render with a disabled — not omitted — diff radio.)
669
+ * radio-tab render with a disabled (not omitted) diff radio.)
659
670
  */
660
671
  function renderInteractiveScreenshots(action, actionId, reportDir) {
661
672
  // A `new` baseline writes its baseline straight from this run's actual, so the
662
673
  // two paths point at byte-identical PNGs. There is no prior state to compare
663
- // against, so suppress the baseline variant for display — like the diff, it is
674
+ // against, so suppress the baseline variant for display. Like the diff, it is
664
675
  // omitted (no radio, no image). The path stays in the data model for `approve`.
665
676
  const baseline = action.baselinePath && action.status !== 'new'
666
677
  ? toReportRelative(reportDir, action.baselinePath)
@@ -674,14 +685,14 @@ function renderInteractiveScreenshots(action, actionId, reportDir) {
674
685
  // Default committed variant is `actual`; only a baseline-only row (no actual
675
686
  // capture this run) commits to baseline instead. renderScreenshots' guard
676
687
  // guarantees at least one of the two exists, so `committedSrc` is never empty
677
- // at runtime — the `?? ''` only satisfies the optional types.
688
+ // at runtime. The `?? ''` only satisfies the optional types.
678
689
  const committed = actual !== undefined ? 'actual' : 'baseline';
679
690
  const committedSrc = (committed === 'actual' ? actual : baseline) ?? '';
680
691
  // When only one variant is real (the common case for a `new` baseline, whose
681
692
  // baseline is suppressed and has no diff), the press-and-hold flip has nothing
682
- // to toggle to — a lone radio in a group is noise to AT. Render the image alone;
683
- // the row's status badge already announces "new baseline". Zero variants — a
684
- // `new` row whose actual capture is missing — collapses to nothing.
693
+ // to toggle to. A lone radio in a group is noise to AT. Render the image alone;
694
+ // the row's status badge already announces "new baseline". Zero variants (a
695
+ // `new` row whose actual capture is missing) collapses to nothing.
685
696
  const variantCount = [baseline, actual, diff].filter((v) => v !== undefined).length;
686
697
  if (variantCount === 0) {
687
698
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/reporter/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/reporter/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AASrC,MAAM,aAAa,GAAiC;IAClD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,cAAc;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,MAAM,cAAc,GAAiC;IACnD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,GAAG,EAAE,GAAG;CACT,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAiB,EACjB,SAAiB,EACjB,eAAe,GAAG,KAAK;IAEvB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO;;;;;;8BAMqB,SAAS;;;;;;;;0BAQb,MAAM,CAAC,UAAU,KAAK,SAAS;;4CAEb,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;;;;QAIrE,iBAAiB,CAAC,MAAM,CAAC;QACzB,aAAa,CAAC,MAAM,CAAC;QACrB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC;QACjD,aAAa,CAAC,MAAM,CAAC;;;;;CAK5B,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,aAAa,CAAC,MAAiB;IACtC,OAAO;;;;MAIH,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,CAAC;MAClF,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,4BAA4B,CAAC;MAC1F,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,CAAC;MAChF,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,6BAA6B,CAAC;MAChG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAA4B,CAAC;;;;;;;;IAQ9F,uBAAuB,CAAC,MAAM,CAAC;;CAElC,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,mBAAmB,CAC1B,MAAiB;IAEjB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAA4D,EAAE,CAAC;IAC7E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG;gBACH,KAAK,EAAE,MAAM,CAAC,eAAe;gBAC7B,MAAM,EAAE,MAAM,CAAC,gBAAgB;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,uBAAuB,CAAC,MAAiB;IAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,OAAO;;;;;IAKL,KAAK;;CAER,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,EAIzB;IACC,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,QAAQ;QACnB,CAAC,CAAC,6DAA6D;QAC/D,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5B,MAAM,UAAU,GACd,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;QAC/C,CAAC,CAAC,2DAA2D,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,iCAAiC,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,MAAM,gBAAgB;QAC3J,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,2EAA2E,UAAU,CAAC,KAAK,CAAC;kEACnC,IAAI,UAAU,UAAU;YAC9E,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CACpB,KAAa,EACb,KAAa,EACb,MAA4B,EAC5B,OAAgB,EAChB,YAAoB;IAEpB,OAAO;wCAC+B,MAAM;0CACJ,MAAM,KAAK,KAAK,oEAAoE,MAAM,mBAAmB,OAAO,kEAAkE,MAAM,mCAAmC,KAAK,gCAAgC,YAAY;;;CAGzT,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,iBAAiB,CAAC,MAAiB;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,WAAW,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,kBAAkB,GACtB,WAAW,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QACrC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;IAC7C,MAAM,IAAI,GAAG,kBAAkB;QAC7B,CAAC,CAAC,mIAAmI;QACrI,CAAC,CAAC;;QAEE,WAAW,CAAC,YAAY;aACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;aACxD,IAAI,CAAC,UAAU,CAAC;UACf,CAAC;IACT,OAAO;;;IAGL,IAAI;;CAEP,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,MAAiB;IACtC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO;SACzB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACzC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO;;;;;MAKH,KAAK;;;CAGV,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAsB;IAChD,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,QAAQ;QAC3B,CAAC,CAAC,6DAA6D;QAC/D,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACnC,OAAO,aAAa,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,UAAU,OAAO,CAAC;AAC3E,CAAC;AAED,SAAS,aAAa,CACpB,MAAiB,EACjB,SAAiB,EACjB,eAAwB;IAExB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO;SACzB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACpB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,CACtD;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IACpC,2EAA2E;IAC3E,8EAA8E;IAC9E,0EAA0E;IAC1E,6EAA6E;IAC7E,OAAO;;;mGAG0F,KAAK;;;MAGlG,KAAK;;;;CAIV,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAClB,KAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,eAAwB;IAExB,OAAO;iCACwB,KAAK,CAAC,MAAM,eAAe,UAAU;;oDAElB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;4BACpD,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;+BACxB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;mCAClB,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC;;2BAExC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;;IAE9C,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC;;CAEpE,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,kBAAkB,CACzB,KAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,eAAwB;IAExB,6DAA6D;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IACJ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QACpC,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,UAAU,KAAK,WAAW,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,0EAA0E;IAC1E,2DAA2D;IAC3D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO;aAC1B,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAC3B,YAAY,CACV,MAAM,EACN,IAAI,UAAU,KAAK,WAAW,EAAE,EAChC,SAAS,EACT,eAAe,CAChB,CACF;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,6DAA6D,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;MAC7G,OAAO;QACL,CAAC;IACP,CAAC;IAED,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CACvB,qBAAqB,CACnB,GAAG,EACH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,EACjB,IAAI,UAAU,MAAM,UAAU,EAAE,EAChC,SAAS,EACT,eAAe,CAChB,CACF;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,qBAAqB,CAC5B,GAAW,EACX,OAAoD,EACpD,OAAe,EACf,SAAiB,EACjB,eAAwB;IAExB,MAAM,OAAO,GAAG,GAAG,OAAO,QAAQ,CAAC;IACnC,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,uEAAuE;IACvE,8EAA8E;IAC9E,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACpC,MAAM,UAAU,GACd,QAAQ,EAAE,eAAe,KAAK,SAAS;QACvC,QAAQ,CAAC,gBAAgB,KAAK,SAAS;QACrC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE;QACxE,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO;SACpB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CACtB,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CACrD;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO;iDACwC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oCAC7C,OAAO;oCACP,UAAU,CAAC,IAAI,CAAC;MAC9C,eAAe;;;yCAGoB,OAAO;MAC1C,OAAO;;;CAGZ,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CACnB,MAAoB,EACpB,QAAgB,EAChB,SAAiB,EACjB,eAAwB;IAExB,MAAM,WAAW,GAAG,iBAAiB,CACnC,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,CAChB,CAAC;IACF,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,6BAA6B,UAAU,CAAC,MAAM,CAAC,cAAc,IAAI,eAAe,CAAC,QAAQ;QAC3F,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG;EACjB,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;4BACA,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;gCACrB,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;CAChE,CAAC;IAEA,MAAM,GAAG,GAAG,WAAW;QACrB,CAAC,CAAC;;;MAGA,QAAQ;;;IAGV,WAAW;WACJ;QACP,CAAC,CAAC;;IAEF,QAAQ;;CAEX,CAAC;IAEA,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEnD,OAAO;kCACyB,MAAM,CAAC,MAAM;IAC3C,GAAG;IACH,UAAU;IACV,UAAU;IACV,KAAK;;CAER,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,iBAAiB,CAAC,MAAoB,EAAE,SAAiB;IAChE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CACR,sGAAsG,CACvG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACrC,MAAM,WAAW,GACf,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,MAAM,UAAU,GACd,WAAW,KAAK,SAAS;YACvB,CAAC,CAAC,4CAA4C,UAAU,CAAC,WAAW,CAAC,UAAU;YAC/E,CAAC,CAAC,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CACR,yEAAyE,UAAU,MAAM,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,gBAAgB,CACvB,UAA8C;IAE9C,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;SACvC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,OAAO,UAAU,CAAC,GAAG,CAAC,YAAY,UAAU,CAAC,KAAK,CAAC,OAAO,CAC7D;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,iCAAiC,OAAO,OAAO,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,MAAoB;IAC7C,OAAO,CACL,MAAM,CAAC,SAAS,KAAK,SAAS;QAC9B,MAAM,CAAC,MAAM,KAAK,SAAS;QAC3B,CAAC,CAAC,MAAM,CAAC,cAAc,CACxB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAoB,EACpB,QAAgB,EAChB,SAAiB,EACjB,eAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,kEAAkE;IAClE,4EAA4E;IAC5E,8EAA8E;IAC9E,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,uEAAuE;IACvE,2EAA2E;IAC3E,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,gBAAgB,GACpB,MAAM,CAAC,YAAY,KAAK,SAAS;QACjC,MAAM,CAAC,UAAU,KAAK,SAAS;QAC/B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,eAAe,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,OAAO,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC;IACD,+EAA+E;IAC/E,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,QAAQ,GACZ,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK;QAC5C,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU;QAC9B,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ;QAC1B,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,UAAU,GAAG,QAAQ,CAAC;IAC5B,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7C,MAAM,UAAU,GACd,SAAS,CAAC,UAAU,CAAC,KAAK,SAAS;QACjC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAW,CAAC,IAAI,CAC5C,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,CACxC,CAAC;IACR,MAAM,WAAW,GAAG,GAAG,QAAQ,aAAa,CAAC;IAC7C,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtD,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,4EAA4E;IAC5E,iEAAiE;IACjE,MAAM,WAAW,GAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAW,CAAC,MAAM,CAClE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,CACxC,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CACpB,QAAQ,EACR,IAAI,EACJ,SAAS,CAAC,IAAI,CAAC,EACf,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EACtB,IAAI,CACL,CAAC;QACF,OAAO,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO;iDACwC,UAAU;;IAEvD,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,KAAK,SAAS,EAAE,UAAU,KAAK,UAAU,CAAC;IAClF,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,UAAU,KAAK,QAAQ,CAAC;IAC5E,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,UAAU,KAAK,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxI,SAAS;;EAEX,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,KAAK,UAAU,CAAC;EAC/F,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,KAAK,QAAQ,CAAC;EACvF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,KAAK,MAAM,EAAE,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;CAC1I,CAAC;AACF,CAAC;AAED,qFAAqF;AACrF,MAAM,QAAQ,GAGV;IACF,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,sBAAsB;IAC5D,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,kCAAkC;IACtE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,0BAA0B,MAAM,CAAC,MAAM,mCAAmC;CAC7E,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,SAAS,eAAe,CAAC,MAAoB,EAAE,WAAmB;IAChE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,6BAA6B,WAAW,yBAAyB,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC;IAC7Q,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY;QAC/B,CAAC,CAAC,0CAA0C,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG;QAC1I,CAAC,CAAC,kBAAkB,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;IAC1D,OAAO,qDAAqD,WAAW,yBAAyB,KAAK,aAAa,CAAC;AACrH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,IAAuC;IAC5D,OAAO,0DAA0D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,gCAAgC,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,MAAM,gBAAgB,CAAC;AACzK,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,4BAA4B,CACnC,MAAoB,EACpB,QAAgB,EAChB,SAAiB;IAEjB,+EAA+E;IAC/E,6EAA6E;IAC7E,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,QAAQ,GACZ,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK;QAC5C,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU;QAC9B,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ;QAC1B,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC;IAEd,6EAA6E;IAC7E,0EAA0E;IAC1E,8EAA8E;IAC9E,6DAA6D;IAC7D,MAAM,SAAS,GACb,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/C,MAAM,YAAY,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAExE,6EAA6E;IAC7E,+EAA+E;IAC/E,gFAAgF;IAChF,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CACvB,CAAC,MAAM,CAAC;IACT,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;;;;WAIA,UAAU,CAAC,YAAY,CAAC;WACxB,UAAU,CAAC,iBAAiB,MAAM,CAAC,MAAM,EAAE,CAAC;;;;CAItD,CAAC;IACA,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,QAAQ,aAAa,CAAC;IAC7C,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG;QACb,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,KAAK,UAAU,EAAE;gBAC/D,KAAK,EAAE,UAAU;aAClB,CAAC;YACJ,CAAC,CAAC,EAAE;QACN,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,KAAK,QAAQ,EAAE;gBAC3D,KAAK,EAAE,QAAQ;aAChB,CAAC;YACJ,CAAC,CAAC,EAAE;QACN,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;gBACxC,KAAK,EAAE,MAAM;gBACb,aAAa,EAAE,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC;YACJ,CAAC,CAAC,EAAE;KACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IACpE,MAAM,OAAO,GAAG;QACd,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,uBAAuB,UAAU,CAAC,QAAQ,CAAC,GAAG;YAChD,CAAC,CAAC,EAAE;QACN,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACtE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;KACjE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,OAAO;;4BAEmB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IACjD,MAAM;2FACiF,YAAY;IACnG,SAAS;;;;;WAKF,UAAU,CAAC,YAAY,CAAC;WACxB,UAAU,CAAC,iBAAiB,MAAM,CAAC,MAAM,EAAE,CAAC;;MAEjD,OAAO;;;CAGZ,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAChB,QAAgB,EAChB,IAAY,EACZ,QAAiB,EACjB,OAAgB,EAChB,IAAiD;IAEjD,MAAM,OAAO,GAAG,GAAG,QAAQ,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,EAAE,aAAa;QACrC,CAAC,CAAC,sBAAsB,IAAI,CAAC,aAAa,GAAG;QAC7C,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;cACK,OAAO;;;YAGT,QAAQ;UACV,OAAO;aACJ,IAAI;gBACD,IAAI,IAAI,WAAW;MAC7B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;MAC1B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;IAE1B,KAAK;;CAER,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAChB,QAAgB,EAChB,IAAY,EACZ,GAAuB,EACvB,GAAW,EACX,OAAgB,EAChB,aAAsB;IAEtB,OAAO;;;cAGK,QAAQ,IAAI,IAAI;cAChB,IAAI;IACd,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;IAGvB,GAAG;QACD,CAAC,CAAC,aAAa,UAAU,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,GAAG,CAAC,mBAAmB,aAAa,CAAC,CAAC,CAAC,sBAAsB,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK;QAC1I,CAAC,CAAC,8BAA8B,IAAI,iCACxC;;CAED,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB;IACvC,OAAO;oCAC2B,MAAM;0BAChB,aAAa,CAAC,MAAM,CAAC;kDACG,aAAa,CAAC,MAAM,CAAC;;CAEtE,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB,EAAE,QAAgB;IAC3D,OAAO,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,WAAW,GAAG;IAClB,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;CACX,CAAC;AAEF,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,OAAO,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;SACzB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC"}
@@ -23,7 +23,7 @@ export interface ApproveSummary {
23
23
  /**
24
24
  * `approve` is dual-mode. Plain `approve` (this module, {@link approveAll})
25
25
  * refreshes the local per-machine comparison cache (`paths.localCache`) from the
26
- * last run's `<report>/results.json`. Advisory — it never writes committed
26
+ * last run's `<report>/results.json`. Advisory. It never writes committed
27
27
  * baselines. The other half, `approve --from <dir>` (`approveFrom`), promotes a
28
28
  * CI candidate tree into the committed `paths.baselines` set and lives in its
29
29
  * own module (`approveFrom.ts`), since the two commands share no code beyond the
@@ -34,17 +34,17 @@ export interface ApproveSummary {
34
34
  * comparison cache with every `changed` or `new` action's actual screenshot.
35
35
  * The accessibility-tree snapshot (`a11y.yaml`) travels alongside the PNG so
36
36
  * the cached a11y baseline stays in lock-step with the visual one. The optional
37
- * filters — `storyFilter` (one story), `breakpoints` (named modes), and
38
- * `newOnly` (new not changed) — compose as an AND: an action is refreshed only
37
+ * filters, `storyFilter` (one story), `breakpoints` (named modes), and
38
+ * `newOnly` (new not changed), compose as an AND: an action is refreshed only
39
39
  * when it clears every filter that was supplied.
40
40
  *
41
41
  * This command targets `paths.localCache` ONLY. It never writes the committed
42
- * `paths.baselines` set — those are owned by CI and written solely through the
42
+ * `paths.baselines` set. Those are owned by CI and written solely through the
43
43
  * approval flow (`approve --from`, a later wave). Each recorded baseline path is
44
44
  * re-rooted onto `paths.localCache`, keeping its `<action>/<file>` tail, so a
45
45
  * plain `approve` refreshes the cache regardless of which mode produced the run
46
46
  * (the recorded root may be the cache or, for an older CI run's results, the
47
- * committed baselines dir — either way the copy lands in the cache).
47
+ * committed baselines dir, either way the copy lands in the cache).
48
48
  */
49
49
  export declare function approveAll(config: ResolvedConfig, options: ApproveOptions): Promise<ApproveSummary>;
50
50
  //# sourceMappingURL=approve.d.ts.map
@@ -7,7 +7,7 @@ import { storyMatchesFilter } from "./storyFilter.js";
7
7
  /**
8
8
  * `approve` is dual-mode. Plain `approve` (this module, {@link approveAll})
9
9
  * refreshes the local per-machine comparison cache (`paths.localCache`) from the
10
- * last run's `<report>/results.json`. Advisory — it never writes committed
10
+ * last run's `<report>/results.json`. Advisory. It never writes committed
11
11
  * baselines. The other half, `approve --from <dir>` (`approveFrom`), promotes a
12
12
  * CI candidate tree into the committed `paths.baselines` set and lives in its
13
13
  * own module (`approveFrom.ts`), since the two commands share no code beyond the
@@ -18,17 +18,17 @@ import { storyMatchesFilter } from "./storyFilter.js";
18
18
  * comparison cache with every `changed` or `new` action's actual screenshot.
19
19
  * The accessibility-tree snapshot (`a11y.yaml`) travels alongside the PNG so
20
20
  * the cached a11y baseline stays in lock-step with the visual one. The optional
21
- * filters — `storyFilter` (one story), `breakpoints` (named modes), and
22
- * `newOnly` (new not changed) — compose as an AND: an action is refreshed only
21
+ * filters, `storyFilter` (one story), `breakpoints` (named modes), and
22
+ * `newOnly` (new not changed), compose as an AND: an action is refreshed only
23
23
  * when it clears every filter that was supplied.
24
24
  *
25
25
  * This command targets `paths.localCache` ONLY. It never writes the committed
26
- * `paths.baselines` set — those are owned by CI and written solely through the
26
+ * `paths.baselines` set. Those are owned by CI and written solely through the
27
27
  * approval flow (`approve --from`, a later wave). Each recorded baseline path is
28
28
  * re-rooted onto `paths.localCache`, keeping its `<action>/<file>` tail, so a
29
29
  * plain `approve` refreshes the cache regardless of which mode produced the run
30
30
  * (the recorded root may be the cache or, for an older CI run's results, the
31
- * committed baselines dir — either way the copy lands in the cache).
31
+ * committed baselines dir, either way the copy lands in the cache).
32
32
  */
33
33
  export async function approveAll(config, options) {
34
34
  const resultsPath = join(config.paths.report, 'results.json');
@@ -6,7 +6,7 @@ export interface ApproveFromOptions {
6
6
  * When `true`, delete committed baseline entries the candidate run's
7
7
  * `results.json` recorded as orphaned (`results.deleted`). Prune targets are
8
8
  * always recomputed locally under `paths.baselines` from each entry's
9
- * `action`/`breakpoint` — never the artifact's own `baselinePaths[]` strings,
9
+ * `action`/`breakpoint`, never the artifact's own `baselinePaths[]` strings,
10
10
  * which describe another machine's filesystem.
11
11
  */
12
12
  prune?: boolean;
@@ -19,7 +19,7 @@ export interface ApproveFromSummary {
19
19
  }
20
20
  /**
21
21
  * Error thrown when the candidate tree fails a trust-boundary check. Carries no
22
- * extra data — the message is the whole contract. Distinct type so the CLI can
22
+ * extra data. The message is the whole contract. Distinct type so the CLI can
23
23
  * present it plainly; every throw here happens BEFORE any write, so the promise
24
24
  * rejecting guarantees `paths.baselines` was not touched.
25
25
  */
@@ -32,11 +32,11 @@ export declare class ApproveFromError extends Error {
32
32
  * `paths.baselines` set, and writes `<baselines>/manifest.json` from the
33
33
  * candidate run's captured environment.
34
34
  *
35
- * TRUST BOUNDARY. `<dir>` is an untrusted artifact — a human or bot unzipped it
35
+ * TRUST BOUNDARY. `<dir>` is an untrusted artifact. A human or bot unzipped it
36
36
  * from CI. This is the only path that writes committed baselines, so it is
37
37
  * fail-closed and validate-all-then-write:
38
38
  * 1. `results.json` must parse, describe a clean CI run (`mode: 'ci'` with
39
- * `totals.failed === 0` — never promote a local or broken run's partial
39
+ * `totals.failed === 0`, never promote a local or broken run's partial
40
40
  * tree, see {@link assertPromotableRun}), and carry a well-shaped
41
41
  * `environment.actual` block (validated against the manifest shape, not
42
42
  * just present).
@@ -46,13 +46,13 @@ export declare class ApproveFromError extends Error {
46
46
  * entry aborts with {@link ApproveFromError} and zero filesystem changes.
47
47
  *
48
48
  * Every candidate file's bytes are read once during phase 1 and RETAINED for
49
- * phase 2, which writes exactly those bytes — the sources are never re-read, so
49
+ * phase 2, which writes exactly those bytes. The sources are never re-read, so
50
50
  * the committed baseline is provably the payload that passed validation (no
51
51
  * decode-swap / symlink-swap window between the check and the write).
52
52
  *
53
- * PNGs are written through {@link writePng} (decode→recompress→encode), so the
54
- * promoted baseline is losslessly recompressed and provably decodable in one
55
- * step — never a raw `copyFile` of unvalidated artifact bytes.
53
+ * PNGs are written through {@link writeDurablePng} (decode→recompress→encode),
54
+ * so the promoted baseline is losslessly recompressed and provably decodable in
55
+ * one step, never a raw `copyFile` of unvalidated artifact bytes.
56
56
  */
57
57
  export declare function approveFrom(config: ResolvedConfig, options: ApproveFromOptions): Promise<ApproveFromSummary>;
58
58
  //# sourceMappingURL=approveFrom.d.ts.map