@extenshi/cli 0.6.0 → 0.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGN,KAAK,WAAW,EAWhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AA0C7D,UAAU,YAAY;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB;AAmDD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAsDrE;AA4vBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAwGxF"}
1
+ {"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGN,KAAK,WAAW,EAWhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAgE7D,UAAU,YAAY;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB;AAmDD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAsDrE;AAsyBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAyGxF"}
@@ -54,6 +54,26 @@ function jsonForScript(value) {
54
54
  .replace(/\u2028/g, '\\u2028')
55
55
  .replace(/\u2029/g, '\\u2029');
56
56
  }
57
+ // ── Outbound-link UTM tagging ────────────────────────────────────────────────
58
+ // Every clickable extenshi.io link in this report carries UTM params so the
59
+ // catalog analytics (PostHog) attribute web traffic back to the CLI scan report
60
+ // and to the specific link clicked. `utm_source` marks the CLI, `utm_medium`
61
+ // the report type, `utm_campaign` the placement. Query params are inserted
62
+ // BEFORE any `#fragment` so deep links (…/developers#tools) still resolve.
63
+ // Intentionally duplicated in icon-preview.ts (which must stay dependency-free
64
+ // for its byte-identical dojo copy) — keep both local, don't extract a shared util.
65
+ const UTM_SOURCE = 'extenshi-cli';
66
+ const UTM_MEDIUM = 'scan-report'; // PostHog utm_medium dimension for this report type
67
+ function withUtm(url, campaign) {
68
+ const hash = url.indexOf('#');
69
+ const base = hash >= 0 ? url.slice(0, hash) : url;
70
+ const frag = hash >= 0 ? url.slice(hash) : '';
71
+ const sep = base.includes('?') ? '&' : '?';
72
+ // Encode every component uniformly so a future non-alphanumeric value can't
73
+ // silently produce a broken query string.
74
+ const q = (k, v) => `utm_${k}=${encodeURIComponent(v)}`;
75
+ return `${base}${sep}${q('source', UTM_SOURCE)}&${q('medium', UTM_MEDIUM)}&${q('campaign', campaign)}${frag}`;
76
+ }
57
77
  /** Hard cap on locations rendered per group — a noisy rule can fire thousands of times. */
58
78
  const MAX_LOCATIONS_PER_GROUP = 200;
59
79
  /** Drop a trailing `:line` / `:line:col` from a location, leaving the file path. */
@@ -164,6 +184,8 @@ const LOGO_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400"
164
184
  '<g transform="translate(200, 200) scale(1.1) translate(-219, -169)">' +
165
185
  '<path fill="currentColor" fill-rule="evenodd" d="M 43 29.961 C 43 32.246, 47.125 48.247, 49.888 56.680 C 55.762 74.610, 62.198 83.944, 72.096 88.890 C 78.191 91.936, 78.614 92, 92.660 92 L 107 92 106.994 96.250 C 106.991 98.588, 106.697 104.233, 106.342 108.795 L 105.697 117.091 92.098 116.996 C 84.619 116.943, 77.938 116.923, 77.250 116.950 C 76.300 116.988, 76 121.193, 76 134.500 L 76 152 90.487 152 L 104.974 152 104.449 159.250 C 104.161 163.237, 103.503 174.150, 102.987 183.500 C 102.472 192.850, 101.387 211.300, 100.578 224.500 C 98.475 258.794, 96.671 304.700, 97.356 306.487 C 97.875 307.839, 111.424 307.980, 219.220 307.754 L 340.500 307.500 340.255 287.609 C 340.096 274.661, 339.617 267.243, 338.883 266.359 C 338.004 265.299, 333.491 265, 318.397 265 L 299.038 265 298.411 267.500 C 298.066 268.875, 298.066 271.125, 298.411 272.500 L 299.038 275 222.519 275 L 146 275 146 213.500 L 146 152 218.300 152 C 273.200 152, 290.889 152.289, 291.800 153.200 C 293.565 154.965, 293.269 163.776, 291.257 169.391 C 289.026 175.614, 283.255 182.192, 277.770 184.762 C 265.607 190.461, 266.274 190.383, 224.500 190.961 L 185.500 191.500 185.229 211.226 L 184.958 230.951 187.533 231.598 C 191.687 232.640, 262.673 231.320, 272.308 230.021 C 306.918 225.355, 331.983 202.503, 332.006 175.593 C 332.009 171.692, 332.300 164.799, 332.652 160.277 L 333.292 152.053 347.396 151.777 L 361.500 151.500 361.500 134.500 L 361.500 117.500 347.219 117.222 L 332.939 116.945 333.219 104.722 L 333.500 92.500 347.500 91.947 C 357.308 91.560, 362.626 90.900, 365.261 89.744 C 371.234 87.122, 379.834 78.279, 383.489 71 C 388.795 60.434, 397.405 31.072, 395.699 29.365 C 395.464 29.130, 391.723 30.083, 387.386 31.483 C 379.737 33.952, 356.811 38.101, 340.500 39.969 C 320.691 42.238, 283.099 43.185, 214.975 43.131 C 145.730 43.077, 109.789 42.106, 94.500 39.878 C 90.650 39.316, 84.575 38.430, 81 37.907 C 65.459 35.634, 56.790 33.817, 50.373 31.490 C 42.436 28.611, 43 28.728, 43 29.961 M 146.673 92.660 C 146.303 93.030, 146 98.658, 146 105.167 L 146 117 219.531 117 L 293.062 117 292.781 104.750 L 292.500 92.500 219.923 92.244 C 180.006 92.102, 147.043 92.290, 146.673 92.660"/>' +
166
186
  '</g></svg>';
187
+ /** Rocket mark for the registration CTA badge (same glyph the icon preview uses). */
188
+ const CTA_ICON = '<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2.5c3.4 1.7 5 4.8 5 8.5 0 1.4-.3 2.8-.8 4l-2 3.5H9.8l-2-3.5A9 9 0 0 1 7 11c0-3.7 1.6-6.8 5-8.5z"/><circle cx="12" cy="9.5" r="1.9"/><path d="M8 18l-2 3.5M16 18l2 3.5"/></svg>';
167
189
  /**
168
190
  * Brand palette mirrors catalog-frontend globals.css (the real site tokens):
169
191
  * a warm terracotta accent on a paper background in light mode, a green accent
@@ -403,6 +425,18 @@ html.dark .risk-badge { color: #0b0f0c; }
403
425
  .fb-cancel { background: var(--surface); color: var(--fg); }
404
426
  .fb-submit { background: var(--primary); color: var(--primary-fg); border-color: var(--primary); font-weight: 600; }
405
427
  .fb-submit[disabled] { opacity: 0.6; cursor: progress; }
428
+
429
+ /* Registration CTA — what a free developer account adds on top of this scan. */
430
+ .cta { border-color: color-mix(in oklab, var(--primary) 40%, var(--border)); background: linear-gradient(180deg, color-mix(in oklab, var(--primary) 9%, transparent), transparent 60%), var(--surface); }
431
+ .cta-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
432
+ .cta-badge { flex: none; width: 40px; height: 40px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; color: var(--primary-fg); background: linear-gradient(135deg, var(--primary), color-mix(in oklab, var(--primary) 68%, #000)); box-shadow: 0 4px 12px color-mix(in oklab, var(--primary) 35%, transparent); }
433
+ .cta-head h2 { margin: 0; font-size: 1.15rem; }
434
+ .cta-sub { color: var(--muted-fg); font-size: 0.9rem; margin: 3px 0 0; max-width: 70ch; }
435
+ .cta-list { margin: 0 0 16px; padding: 0; list-style: none; display: grid; gap: 9px; }
436
+ .cta-list li { padding: 11px 13px; border-radius: 10px; background: color-mix(in oklab, var(--primary) 5%, var(--surface-2)); border: 1px solid color-mix(in oklab, var(--primary) 12%, transparent); font-size: 0.9rem; color: var(--muted-fg); }
437
+ .cta-list li strong { color: var(--fg); }
438
+ .cta-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 10px; background: var(--primary); color: var(--primary-fg); font-weight: 600; font-size: 0.92rem; text-decoration: none; }
439
+ .cta-btn:hover { filter: brightness(1.06); }
406
440
  `;
407
441
  /** Client-side behaviour: theme persistence, filtering, expand/collapse. No template literals / no `${` so it survives interpolation verbatim. */
408
442
  const SCRIPT = `
@@ -854,6 +888,29 @@ function renderSafetyScore(risk) {
854
888
  'Claiming and verifying your extension, plus our triage of false positives, can only raise it.</p>' +
855
889
  '</div></div>');
856
890
  }
891
+ /**
892
+ * Registration CTA — what a free Extenshi developer account adds on top of this
893
+ * local, one-shot scan (claim/verify to raise the public safety score, re-scan
894
+ * across releases, and the wider developer toolbox). Links to the developer
895
+ * tools hub with UTM attribution so the click is traceable back to this report.
896
+ */
897
+ function renderCtaSection() {
898
+ const href = withUtm('https://catalog.extenshi.io/developers#tools', 'developer-tools');
899
+ return ('<section class="card cta" id="get-more">' +
900
+ '<div class="cta-head">' +
901
+ `<span class="cta-badge">${CTA_ICON}</span>` +
902
+ '<div>' +
903
+ '<h2>Go further with a free Extenshi account</h2>' +
904
+ '<p class="cta-sub">This scan ran entirely on your machine. Registering as a developer lets you act on what it found and keep the results going across releases.</p>' +
905
+ '</div></div>' +
906
+ '<ul class="cta-list">' +
907
+ '<li><strong>Claim &amp; verify your extension</strong> — dispute false positives and raise the public safety score shown on your catalog page.</li>' +
908
+ '<li><strong>Track findings across releases</strong> — re-scan on every build and follow the risk trend instead of a single snapshot.</li>' +
909
+ '<li><strong>The full developer toolbox</strong> — manifest generator, privacy-policy generator, store-review prediction, and competitive analysis, free to use.</li>' +
910
+ '</ul>' +
911
+ `<a class="cta-btn" href="${href}" target="_blank" rel="noreferrer">Explore developer tools →</a>` +
912
+ '</section>');
913
+ }
857
914
  // ── Document assembly ─────────────────────────────────────────────────────────
858
915
  export function renderHtmlReport(body, meta) {
859
916
  const summary = summarizeReport(body);
@@ -911,7 +968,7 @@ export function renderHtmlReport(body, meta) {
911
968
  const footer = '<section class="card"><p class="disclaimer">' +
912
969
  'This scan is automated. The scanners are heuristics that may miss real issues or over-flag benign ' +
913
970
  'code — a clean result is not a guarantee of safety or store approval. ' +
914
- 'See the <a href="https://catalog.extenshi.io/disclaimers/security-risk" target="_blank" rel="noreferrer">security-risk disclaimer</a>.' +
971
+ `See the <a href="${withUtm('https://catalog.extenshi.io/disclaimers/security-risk', 'security-disclaimer')}" target="_blank" rel="noreferrer">security-risk disclaimer</a>.` +
915
972
  '</p></section>';
916
973
  const head = '<!doctype html><html lang="en"><head><meta charset="utf-8">' +
917
974
  '<meta name="viewport" content="width=device-width, initial-scale=1">' +
@@ -939,6 +996,7 @@ export function renderHtmlReport(body, meta) {
939
996
  (reviewRisk.present ? renderReviewRiskSection(reviewRisk) : '') +
940
997
  renderSecuritySection(groups, feedbackEnabled) +
941
998
  renderCoverageSection(summary) +
999
+ renderCtaSection() +
942
1000
  footer +
943
1001
  '</div></div>';
944
1002
  return `${head}<body>${topbar}${main}${fbModal}${fbBootstrap}<script>${SCRIPT}</script></body></html>\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"html-report.js","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-report.js","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon-preview.d.ts","sourceRoot":"","sources":["../src/icon-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,MAAM,WAAW,gBAAgB;IAChC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,KAAK,EAAE,OAAO,CAAA;IACd,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,WAAW,EAAE,IAAI,CAAA;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB;AAgyBD,eAAO,MAAM,gBAAgB,mRAa3B,CAAA;AAEF,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAoGrE"}
1
+ {"version":3,"file":"icon-preview.d.ts","sourceRoot":"","sources":["../src/icon-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,MAAM,WAAW,gBAAgB;IAChC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,KAAK,EAAE,OAAO,CAAA;IACd,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,WAAW,EAAE,IAAI,CAAA;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB;AAogCD,eAAO,MAAM,gBAAgB,mRAa3B,CAAA;AAEF,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAsKrE"}
@@ -46,6 +46,25 @@ function esc(s) {
46
46
  function jsonForScript(value) {
47
47
  return JSON.stringify(value).replace(/</g, '\\u003c');
48
48
  }
49
+ // ── Outbound-link UTM tagging ────────────────────────────────────────────────
50
+ // The extenshi.io links on the full page carry UTM params so catalog analytics
51
+ // (PostHog) attribute the click back to the CLI icon preview and the specific
52
+ // placement. Query params are inserted BEFORE any `#fragment` so deep links
53
+ // (…/developers#tools) still resolve. Kept dependency-free so this file stays
54
+ // byte-identical to the dojo copy (see the SINGLE SOURCE note above) — this is
55
+ // why the same helper is duplicated in html-report.ts rather than shared.
56
+ const UTM_SOURCE = 'extenshi-cli';
57
+ const UTM_MEDIUM = 'icon-preview'; // PostHog utm_medium dimension for this report type
58
+ function withUtm(url, campaign) {
59
+ const hash = url.indexOf('#');
60
+ const base = hash >= 0 ? url.slice(0, hash) : url;
61
+ const frag = hash >= 0 ? url.slice(hash) : '';
62
+ const sep = base.includes('?') ? '&' : '?';
63
+ // Encode every component uniformly so a future non-alphanumeric value can't
64
+ // silently produce a broken query string.
65
+ const q = (k, v) => `utm_${k}=${encodeURIComponent(v)}`;
66
+ return `${base}${sep}${q('source', UTM_SOURCE)}&${q('medium', UTM_MEDIUM)}&${q('campaign', campaign)}${frag}`;
67
+ }
49
68
  // ── Neutral neighbor icons (inline SVG → data URI) ──────────────────────────
50
69
  // Deliberately gray and generic: they give the user's icon realistic company
51
70
  // in the pinned area without any brand resemblance, and stay visible on both
@@ -58,6 +77,18 @@ const NEIGHBOR_BOLT = svgDataUrl('<svg xmlns="http://www.w3.org/2000/svg" viewBo
58
77
  const PUZZLE_ICON = '<svg viewBox="0 0 20 20" width="16" height="16" fill="currentColor" aria-hidden="true"><path d="M8.5 3.5a1.75 1.75 0 1 1 3.5 0V5h2.25c.69 0 1.25.56 1.25 1.25V8.5h-1a1.75 1.75 0 1 0 0 3.5h1v2.25c0 .69-.56 1.25-1.25 1.25H12v-1a1.75 1.75 0 1 0-3.5 0v1H6.25C5.56 15.5 5 14.94 5 14.25V12H4a1.75 1.75 0 1 1 0-3.5h1V6.25C5 5.56 5.56 5 6.25 5H8.5V3.5z"/></svg>';
59
78
  const PIN_ICON = '<svg viewBox="0 0 16 16" width="13" height="13" fill="currentColor" aria-hidden="true"><path d="M9.5 1.5 14 6l-2.7.7-2 2V13l-1.5 1.5-2-3.5L2.3 7.5 3.8 6h4.3l2-2L9.5 1.5z"/></svg>';
60
79
  const LOCK_ICON = '<svg viewBox="0 0 12 12" width="11" height="11" fill="currentColor" aria-hidden="true"><path d="M3.5 5V3.8a2.5 2.5 0 0 1 5 0V5h.4c.6 0 1.1.5 1.1 1.1v3.8c0 .6-.5 1.1-1.1 1.1H3.1c-.6 0-1.1-.5-1.1-1.1V6.1C2 5.5 2.5 5 3.1 5h.4zm1.2 0h2.6V3.8a1.3 1.3 0 0 0-2.6 0V5z"/></svg>';
80
+ // The Extenshi mark, lifted verbatim from the scan report (catalog-frontend
81
+ // logo). `fill="currentColor"` picks up --primary in either theme.
82
+ const LOGO_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="28" height="28" aria-hidden="true">' +
83
+ '<g transform="translate(200, 200) scale(1.1) translate(-219, -169)">' +
84
+ '<path fill="currentColor" fill-rule="evenodd" d="M 43 29.961 C 43 32.246, 47.125 48.247, 49.888 56.680 C 55.762 74.610, 62.198 83.944, 72.096 88.890 C 78.191 91.936, 78.614 92, 92.660 92 L 107 92 106.994 96.250 C 106.991 98.588, 106.697 104.233, 106.342 108.795 L 105.697 117.091 92.098 116.996 C 84.619 116.943, 77.938 116.923, 77.250 116.950 C 76.300 116.988, 76 121.193, 76 134.500 L 76 152 90.487 152 L 104.974 152 104.449 159.250 C 104.161 163.237, 103.503 174.150, 102.987 183.500 C 102.472 192.850, 101.387 211.300, 100.578 224.500 C 98.475 258.794, 96.671 304.700, 97.356 306.487 C 97.875 307.839, 111.424 307.980, 219.220 307.754 L 340.500 307.500 340.255 287.609 C 340.096 274.661, 339.617 267.243, 338.883 266.359 C 338.004 265.299, 333.491 265, 318.397 265 L 299.038 265 298.411 267.500 C 298.066 268.875, 298.066 271.125, 298.411 272.500 L 299.038 275 222.519 275 L 146 275 146 213.500 L 146 152 218.300 152 C 273.200 152, 290.889 152.289, 291.800 153.200 C 293.565 154.965, 293.269 163.776, 291.257 169.391 C 289.026 175.614, 283.255 182.192, 277.770 184.762 C 265.607 190.461, 266.274 190.383, 224.500 190.961 L 185.500 191.500 185.229 211.226 L 184.958 230.951 187.533 231.598 C 191.687 232.640, 262.673 231.320, 272.308 230.021 C 306.918 225.355, 331.983 202.503, 332.006 175.593 C 332.009 171.692, 332.300 164.799, 332.652 160.277 L 333.292 152.053 347.396 151.777 L 361.500 151.500 361.500 134.500 L 361.500 117.500 347.219 117.222 L 332.939 116.945 333.219 104.722 L 333.500 92.500 347.500 91.947 C 357.308 91.560, 362.626 90.900, 365.261 89.744 C 371.234 87.122, 379.834 78.279, 383.489 71 C 388.795 60.434, 397.405 31.072, 395.699 29.365 C 395.464 29.130, 391.723 30.083, 387.386 31.483 C 379.737 33.952, 356.811 38.101, 340.500 39.969 C 320.691 42.238, 283.099 43.185, 214.975 43.131 C 145.730 43.077, 109.789 42.106, 94.500 39.878 C 90.650 39.316, 84.575 38.430, 81 37.907 C 65.459 35.634, 56.790 33.817, 50.373 31.490 C 42.436 28.611, 43 28.728, 43 29.961 M 146.673 92.660 C 146.303 93.030, 146 98.658, 146 105.167 L 146 117 219.531 117 L 293.062 117 292.781 104.750 L 292.500 92.500 219.923 92.244 C 180.006 92.102, 147.043 92.290, 146.673 92.660"/>' +
85
+ '</g></svg>';
86
+ // ── Next-steps CTA icons ─────────────────────────────────────────────────────
87
+ const SHIP_ICON = '<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2.5c3.4 1.7 5 4.8 5 8.5 0 1.4-.3 2.8-.8 4l-2 3.5H9.8l-2-3.5A9 9 0 0 1 7 11c0-3.7 1.6-6.8 5-8.5z"/><circle cx="12" cy="9.5" r="1.9"/><path d="M8 18l-2 3.5M16 18l2 3.5"/></svg>';
88
+ const RISK_ICON = '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3.5 4.5 6.5v5c0 4.4 3 8 7.5 9.5 4.5-1.5 7.5-5.1 7.5-9.5v-5L12 3.5z"/><path d="M9 11.5l2 2 4-4.5"/></svg>';
89
+ const SCAN_ICON = '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="6.5"/><path d="M20.5 20.5 16 16"/></svg>';
90
+ const BOX_ICON = '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 2.5 20.5 7v10L12 21.5 3.5 17V7L12 2.5z"/><path d="M3.5 7 12 11.5 20.5 7M12 11.5v10"/></svg>';
91
+ const CROP_ICON = '<svg viewBox="0 0 24 24" width="19" height="19" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 2v14a2 2 0 0 0 2 2h14"/><path d="M2 6h14a2 2 0 0 1 2 2v14"/></svg>';
61
92
  // ── Mockup HTML fragments ───────────────────────────────────────────────────
62
93
  /** The pinned-extensions cluster shared by every toolbar mockup. */
63
94
  function pinsHtml(iconUrl, name) {
@@ -142,27 +173,73 @@ function browserMockup(kind, input) {
142
173
  }
143
174
  // ── Page CSS ────────────────────────────────────────────────────────────────
144
175
  const CSS = `
176
+ /* Report palette — the real extenshi.io tokens, shared with the scan report:
177
+ warm terracotta on paper (light), green on near-black (dark). The --t-*
178
+ variables are the SIMULATED browser toolbar colors and are independent of
179
+ the report theme (they're driven by the palette chips). */
145
180
  :root {
181
+ --bg: oklch(0.9711 0.0074 80.7211);
182
+ --surface: oklch(0.99 0.005 80);
183
+ --surface-2: oklch(0.937 0.0142 74.4218);
184
+ --fg: oklch(0.3 0.0358 30.2042);
185
+ --muted-fg: oklch(0.4495 0.0486 39.211);
186
+ --border: oklch(0.8805 0.0208 74.6428);
187
+ --primary: oklch(0.7234 0.1783 41.1468);
188
+ --primary-fg: oklch(1 0 0);
189
+ --shadow: 0 1px 3px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10);
190
+ --font-sans: 'Space Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
191
+ --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
192
+ /* Back-compat aliases so the rest of the sheet keeps its names. */
193
+ --page-bg: var(--bg); --page-text: var(--fg); --card: var(--surface); --card-border: var(--border); --accent: var(--primary);
194
+ /* Simulated browser toolbar (chip-controlled, theme-independent). */
146
195
  --t-toolbar: #ffffff; --t-tabstrip: #dfe1e5; --t-url: #f1f3f4;
147
196
  --t-text: #202124; --t-muted: #5f6368; --t-border: rgba(0,0,0,.12);
148
- --page-bg: #f6f7f9; --page-text: #1c1e21; --card: #ffffff; --card-border: #e4e6ea;
149
- --accent: #5e5ce6;
150
197
  }
151
- @media (prefers-color-scheme: dark) {
152
- :root { --page-bg: #131417; --page-text: #e8eaed; --card: #1c1e22; --card-border: #2a2d33; }
198
+ html.dark {
199
+ --bg: oklch(0.1377 0.0167 150.7681);
200
+ --surface: oklch(0.1961 0.0163 146.9867);
201
+ --surface-2: oklch(0.2335 0.0184 146.9867);
202
+ --fg: oklch(0.9423 0.0097 72.6595);
203
+ --muted-fg: oklch(0.79 0.0174 76.0955);
204
+ --border: oklch(0.2644 0.0159 142.9926);
205
+ --primary: oklch(0.6731 0.1624 144.2083);
206
+ --primary-fg: oklch(0.2157 0.0453 145.7256);
207
+ --shadow: 0 1px 3px hsl(0 0% 0% / 0.4), 0 1px 2px -1px hsl(0 0% 0% / 0.4);
153
208
  }
154
209
  * { box-sizing: border-box; margin: 0; padding: 0; }
155
210
  body {
156
- font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
157
- background: var(--page-bg); color: var(--page-text); padding: 28px 20px 60px;
158
- }
159
- main { max-width: 1080px; margin: 0 auto; display: grid; gap: 22px; }
160
- .page-head .brand { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); font-weight: 600; }
161
- .page-head h1 { font-size: 24px; margin-top: 2px; }
162
- .page-head .meta { color: color-mix(in srgb, var(--page-text) 55%, transparent); font-size: 12.5px; margin-top: 2px; }
163
- section.card { background: var(--card); border: 1px solid var(--card-border); border-radius: 12px; padding: 18px; }
211
+ font-family: var(--font-sans); font-size: 14px; line-height: 1.5;
212
+ font-feature-settings: "ss01", "ss02", "cv11"; -webkit-font-smoothing: antialiased;
213
+ background: var(--bg); color: var(--fg);
214
+ }
215
+ code, .mono { font-family: var(--font-mono); }
216
+ main { max-width: 1080px; margin: 0 auto; display: grid; gap: 22px; padding: 28px 20px 72px; }
217
+
218
+ /* Sticky topbar mirrors the scan report chrome. */
219
+ .topbar {
220
+ position: sticky; top: 0; z-index: 20;
221
+ display: flex; align-items: center; gap: 12px; padding: 14px 24px;
222
+ background: color-mix(in oklab, var(--bg) 85%, transparent);
223
+ backdrop-filter: blur(8px); border-bottom: 1px solid var(--border);
224
+ }
225
+ .topbar .logo { color: var(--primary); display: inline-flex; }
226
+ .topbar .brand { font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; }
227
+ .topbar .sep { color: var(--muted-fg); }
228
+ .topbar .subtitle { color: var(--muted-fg); font-size: 0.9rem; }
229
+ .topbar .spacer { flex: 1; }
230
+ .tg {
231
+ display: inline-flex; align-items: center; gap: 6px;
232
+ border: 1px solid var(--border); background: var(--surface); color: var(--fg);
233
+ border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 0.85rem; cursor: pointer;
234
+ }
235
+ .tg:hover { border-color: var(--primary); }
236
+
237
+ .page-head .brand { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--primary); font-weight: 600; }
238
+ .page-head h1 { font-size: 24px; margin-top: 2px; letter-spacing: -0.01em; }
239
+ .page-head .meta { color: var(--muted-fg); font-size: 12.5px; margin-top: 2px; }
240
+ section.card { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 20px 22px; box-shadow: var(--shadow); }
164
241
  section.card > h2 { font-size: 15px; margin-bottom: 12px; }
165
- h2 .hint { font-weight: 400; font-size: 12.5px; color: color-mix(in srgb, var(--page-text) 55%, transparent); margin-left: 8px; }
242
+ h2 .hint { font-weight: 400; font-size: 12.5px; color: var(--muted-fg); margin-left: 8px; }
166
243
 
167
244
  /* Palette chips */
168
245
  .chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@@ -247,9 +324,9 @@ h2 .hint { font-weight: 400; font-size: 12.5px; color: color-mix(in srgb, var(--
247
324
  .badge.ok { background: color-mix(in srgb, #22c55e 18%, transparent); color: #15803d; }
248
325
  .badge.weak { background: color-mix(in srgb, #f59e0b 20%, transparent); color: #b45309; }
249
326
  .badge.bad { background: color-mix(in srgb, #ef4444 20%, transparent); color: #b91c1c; }
250
- @media (prefers-color-scheme: dark) {
251
- .badge.ok { color: #4ade80; } .badge.weak { color: #fbbf24; } .badge.bad { color: #f87171; }
252
- }
327
+ html.dark .badge.ok { color: #4ade80; }
328
+ html.dark .badge.weak { color: #fbbf24; }
329
+ html.dark .badge.bad { color: #f87171; }
253
330
 
254
331
  /* Size matrix + magnifier */
255
332
  .size-flex { display: flex; flex-wrap: wrap; gap: 26px; align-items: flex-end; }
@@ -262,13 +339,31 @@ h2 .hint { font-weight: 400; font-size: 12.5px; color: color-mix(in srgb, var(--
262
339
  #mag { image-rendering: pixelated; width: 128px; height: 128px; border-radius: 8px; }
263
340
  .mag-box { display: inline-flex; padding: 10px; border-radius: 10px; background: var(--t-toolbar); border: 1px solid var(--t-border); }
264
341
  .mag-note { font-size: 12.5px; color: color-mix(in srgb, var(--page-text) 60%, transparent); max-width: 380px; }
265
- .fill-note { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; margin-top: 14px; color: color-mix(in srgb, var(--page-text) 72%, transparent); }
266
- label.toggle.trim { margin: 10px 0 0; display: flex; }
342
+ .fill-note { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; margin-top: 14px; color: var(--muted-fg); }
343
+ /* Trim callout a highlighted, hard-to-miss action tied to the fill warning. */
344
+ .trim-callout {
345
+ display: flex; align-items: center; gap: 13px; margin-top: 12px; padding: 13px 15px; border-radius: 12px;
346
+ border: 1.5px solid color-mix(in oklab, var(--primary) 55%, var(--border));
347
+ background: color-mix(in oklab, var(--primary) 9%, var(--surface));
348
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--primary) 10%, transparent);
349
+ }
350
+ .trim-ico { flex: none; width: 34px; height: 34px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; color: var(--primary-fg); background: var(--primary); }
351
+ .trim-text { flex: 1; min-width: 0; }
352
+ .trim-text strong { font-size: 13.5px; }
353
+ .trim-text p { font-size: 12.5px; color: var(--muted-fg); margin-top: 1px; }
354
+ /* iOS-style switch so the control reads as an actionable toggle, not a stray checkbox. */
355
+ .switch { flex: none; position: relative; display: inline-flex; cursor: pointer; }
356
+ .switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
357
+ .switch-track { width: 42px; height: 24px; border-radius: 999px; background: color-mix(in oklab, var(--muted-fg) 45%, transparent); transition: background .18s; display: inline-flex; align-items: center; padding: 0 3px; }
358
+ .switch-thumb { width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.35); transition: transform .18s; }
359
+ .switch input:checked + .switch-track { background: var(--primary); }
360
+ .switch input:checked + .switch-track .switch-thumb { transform: translateX(18px); }
361
+ .switch input:focus-visible + .switch-track { outline: 2px solid var(--primary); outline-offset: 2px; }
267
362
  .note-warn {
268
363
  font-size: 12.5px; line-height: 1.45; padding: 9px 12px; border-radius: 8px; margin-bottom: 12px;
269
364
  background: color-mix(in srgb, #f59e0b 14%, transparent); color: #b45309;
270
365
  }
271
- @media (prefers-color-scheme: dark) { .note-warn { color: #fbbf24; } }
366
+ html.dark .note-warn { color: #fbbf24; }
272
367
 
273
368
  /* Export */
274
369
  .export-row { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 13px; }
@@ -279,6 +374,37 @@ button.btn {
279
374
  button.btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
280
375
  button.btn:hover { filter: brightness(1.06); }
281
376
  pre.snippet { background: color-mix(in srgb, var(--page-text) 7%, transparent); border-radius: 8px; padding: 12px; font-size: 12px; overflow-x: auto; }
377
+ .next-steps {
378
+ border-color: color-mix(in srgb, var(--accent) 40%, var(--card-border));
379
+ background:
380
+ linear-gradient(180deg, color-mix(in srgb, var(--accent) 9%, transparent), transparent 60%),
381
+ var(--card);
382
+ }
383
+ .next-head { display: flex; align-items: center; gap: 13px; margin-bottom: 16px; }
384
+ .next-badge {
385
+ flex: none; width: 40px; height: 40px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center;
386
+ color: var(--primary-fg); background: linear-gradient(135deg, var(--primary), color-mix(in oklab, var(--primary) 68%, #000));
387
+ box-shadow: 0 4px 12px color-mix(in oklab, var(--primary) 35%, transparent);
388
+ }
389
+ .next-head h2 { font-size: 16px; margin: 0; }
390
+ .next-sub { font-size: 12.5px; color: color-mix(in srgb, var(--page-text) 62%, transparent); margin-top: 2px; }
391
+ .next-grid { display: grid; gap: 9px; }
392
+ .next-item {
393
+ display: flex; gap: 11px; align-items: flex-start; padding: 11px 13px; border-radius: 10px;
394
+ background: color-mix(in srgb, var(--page-text) 4%, transparent);
395
+ border: 1px solid color-mix(in srgb, var(--accent) 12%, transparent);
396
+ transition: border-color .15s, background .15s;
397
+ }
398
+ .next-item:hover { border-color: color-mix(in srgb, var(--accent) 45%, transparent); background: color-mix(in srgb, var(--accent) 7%, transparent); }
399
+ .next-ico { flex: none; margin-top: 1px; color: var(--accent); display: inline-flex; }
400
+ .next-body { display: grid; gap: 3px; min-width: 0; }
401
+ .next-body code { font-size: 12.5px; background: color-mix(in srgb, var(--page-text) 8%, transparent); border-radius: 5px; padding: 2px 7px; justify-self: start; }
402
+ .next-body a { font-size: 13.5px; font-weight: 600; color: var(--accent); text-decoration: none; }
403
+ .next-body a:hover { text-decoration: underline; }
404
+ .next-body p { font-size: 12.5px; color: color-mix(in srgb, var(--page-text) 68%, transparent); }
405
+ /* Recommended prompt — assembled from the analysis findings. */
406
+ .prompt-issues { margin: 0 0 12px 18px; font-size: 12.5px; color: var(--muted-fg); display: grid; gap: 4px; }
407
+ pre.snippet.wrap { white-space: pre-wrap; word-break: break-word; }
282
408
  .foot { text-align: center; font-size: 12px; color: color-mix(in srgb, var(--page-text) 45%, transparent); }
283
409
  .foot a { color: var(--accent); }
284
410
  .raster-note { font-size: 12.5px; color: #b45309; margin-bottom: 10px; }
@@ -738,8 +864,99 @@ function copySnippet() {
738
864
  }, function () { alert('Clipboard unavailable — copy the snippet below manually.'); });
739
865
  }
740
866
 
867
+ // ---- recommended improvement prompt ----
868
+ // Assembled from the same analysis that drives the badges: per-palette
869
+ // contrast verdicts, the mid-gray heuristic, canvas usage, and the raster
870
+ // source note. The result is a ready-to-paste prompt for whatever draws the
871
+ // icon (a coding agent on the free path, or the hosted dojo generator).
872
+ function collectIconIssues() {
873
+ if (!iconStats) return [];
874
+ var issues = [];
875
+ var bad = [], weak = [];
876
+ THEMES.forEach(function (t) {
877
+ var theme = materialize(t);
878
+ var v = contrastBadge(theme);
879
+ var where = theme.label + ' (' + theme.toolbar + ')';
880
+ if (v.cls === 'bad') bad.push(where);
881
+ else if (v.cls === 'weak') weak.push(where);
882
+ });
883
+ if (bad.length) issues.push({
884
+ label: 'Melts into: ' + bad.join(', '),
885
+ line: 'The icon melts into these toolbar backgrounds: ' + bad.join(', ') + ' — contrast ratio under 1.45:1. Raise contrast against them with a lighter/darker or more saturated fill, or add a contrasting outline or backdrop shape.'
886
+ });
887
+ if (weak.length) issues.push({
888
+ label: 'Low contrast on: ' + weak.join(', '),
889
+ line: 'Contrast is weak on these toolbars: ' + weak.join(', ') + ' — under 2.2:1. Nudge the fill color or add a subtle outline so the silhouette separates from these backgrounds.'
890
+ });
891
+ if (isMidGray()) issues.push({
892
+ label: 'Mid-gray average color',
893
+ line: 'The average color is a low-saturation mid-gray, which reads as "part of the toolbar" on every theme. Use a saturated brand color, or add a clearly darker/lighter outline or backdrop shape.'
894
+ });
895
+ if (iconStats.fill > 0 && iconStats.fill < 0.88) issues.push({
896
+ label: 'Artwork fills only ' + Math.round(iconStats.fill * 100) + '% of the canvas',
897
+ line: 'The artwork fills only ' + Math.round(iconStats.fill * 100) + '% of its canvas — scale it edge-to-edge (leave about 2% breathing room) so the 16 px toolbar render is as large as possible.'
898
+ });
899
+ if (!CFG.isSvg) issues.push({
900
+ label: 'Raster PNG source',
901
+ line: 'The source is a raster PNG. Redraw it as a clean vector SVG (a single <svg' + '> element with a square viewBox, flat shapes) so every size renders crisp.'
902
+ });
903
+ return issues;
904
+ }
905
+
906
+ function buildRecommendedPrompt(issues) {
907
+ var lines = [
908
+ 'Improve the browser-extension icon for "' + CFG.name + '". Keep the current concept and silhouette, but fix every issue below, found by a toolbar-preview check:',
909
+ ''
910
+ ];
911
+ issues.forEach(function (it) { lines.push('- ' + it.line); });
912
+ lines.push('');
913
+ lines.push('Hard requirements: a single <svg' + '> element with a square viewBox, flat shapes, one bold silhouette readable at 16 px, no text, no strokes thinner than 1.5 px at 16 px scale, no embedded raster images, no scripts, no external references.');
914
+ lines.push('After redrawing, re-check with: npx @extenshi/cli icon preview icon.svg --name "' + CFG.name + '"');
915
+ return lines.join('\n');
916
+ }
917
+
918
+ function renderRecommendedPrompt() {
919
+ var card = document.getElementById('prompt-card');
920
+ if (!card) return;
921
+ var issues = collectIconIssues();
922
+ if (!issues.length) return; // nothing to fix — the card stays hidden
923
+ var list = document.getElementById('prompt-issues');
924
+ list.textContent = '';
925
+ issues.forEach(function (it) {
926
+ var li = document.createElement('li');
927
+ li.textContent = it.label;
928
+ list.appendChild(li);
929
+ });
930
+ var text = buildRecommendedPrompt(issues);
931
+ document.getElementById('prompt-text').textContent = text;
932
+ var btn = document.getElementById('prompt-copy-btn');
933
+ btn.addEventListener('click', function () {
934
+ navigator.clipboard.writeText(text).then(function () {
935
+ var prev = btn.textContent;
936
+ btn.textContent = '✓ Copied';
937
+ setTimeout(function () { btn.textContent = prev; }, 1800);
938
+ }, function () { alert('Clipboard unavailable — copy the prompt below manually.'); });
939
+ });
940
+ card.hidden = false;
941
+ }
942
+
943
+ // ---- report light/dark theme (matches the scan report) ----
944
+ function initReportTheme() {
945
+ var root = document.documentElement;
946
+ var btn = document.getElementById('theme-toggle');
947
+ if (!btn) return; // embedded mode has no topbar
948
+ function syncLabel() { btn.textContent = root.classList.contains('dark') ? '☀ Light' : '☾ Dark'; }
949
+ syncLabel();
950
+ btn.addEventListener('click', function () {
951
+ var dark = root.classList.toggle('dark');
952
+ try { localStorage.setItem('extenshi-report-theme', dark ? 'dark' : 'light'); } catch (e) {}
953
+ syncLabel();
954
+ });
955
+ }
956
+
741
957
  // ---- boot ----
742
958
  function boot() {
959
+ initReportTheme();
743
960
  var chips = document.getElementById('theme-chips');
744
961
  THEMES.forEach(function (theme, i) {
745
962
  var chip = document.createElement('button');
@@ -785,6 +1002,7 @@ function boot() {
785
1002
  renderFillNote();
786
1003
  var mg = document.getElementById('midgray-note');
787
1004
  if (mg && isMidGray()) mg.hidden = false;
1005
+ renderRecommendedPrompt();
788
1006
  return computeTrimmedVariant();
789
1007
  }).catch(function (e) {
790
1008
  document.getElementById('contrast-grid').textContent = 'Contrast analysis unavailable: ' + e.message;
@@ -837,6 +1055,19 @@ export function renderIconPreviewHtml(input) {
837
1055
  const rasterNote = input.isSvg
838
1056
  ? ''
839
1057
  : '<p class="raster-note">Source is a raster PNG — exports are resized from it; sizes above its native resolution will look soft. Prefer an SVG source when possible.</p>';
1058
+ // Full page gets the sticky Extenshi topbar with the theme toggle; the dojo
1059
+ // embed drops it (the host page supplies its own chrome and theme control).
1060
+ const topbar = input.embedded
1061
+ ? ''
1062
+ : `<header class="topbar">
1063
+ <span class="logo">${LOGO_SVG}</span>
1064
+ <span class="brand">extenshi</span>
1065
+ <span class="sep">·</span>
1066
+ <span class="subtitle">Icon preview</span>
1067
+ <span class="spacer"></span>
1068
+ <button class="tg" id="theme-toggle" type="button" aria-label="Toggle colour theme"></button>
1069
+ </header>
1070
+ `;
840
1071
  const header = input.embedded
841
1072
  ? ''
842
1073
  : `<header class="page-head">
@@ -861,17 +1092,51 @@ export function renderIconPreviewHtml(input) {
861
1092
  <pre class="snippet"><code>${esc(MANIFEST_SNIPPET)}</code></pre>
862
1093
  </section>
863
1094
 
864
- <p class="foot">Generated locally by <a href="https://extenshi.io">@extenshi/cli</a> — no data left your machine.</p>`;
1095
+ <section class="card next-steps">
1096
+ <div class="next-head">
1097
+ <span class="next-badge">${SHIP_ICON}</span>
1098
+ <div>
1099
+ <h2>Ship the rest with Extenshi</h2>
1100
+ <p class="next-sub">The same free CLI takes you from icon to a clean store submission.</p>
1101
+ </div>
1102
+ </div>
1103
+ <div class="next-grid">
1104
+ <div class="next-item">
1105
+ <span class="next-ico">${RISK_ICON}</span>
1106
+ <div class="next-body">
1107
+ <code>npx @extenshi/cli review-risk dist.zip</code>
1108
+ <p>Predict the Chrome Web Store review outcome before you submit — offline, no account.</p>
1109
+ </div>
1110
+ </div>
1111
+ <div class="next-item">
1112
+ <span class="next-ico">${SCAN_ICON}</span>
1113
+ <div class="next-body">
1114
+ <code>npx @extenshi/cli scan dist.zip</code>
1115
+ <p>Pre-publish security scan of the built artifact, with a free monthly allowance.</p>
1116
+ </div>
1117
+ </div>
1118
+ <div class="next-item">
1119
+ <span class="next-ico">${BOX_ICON}</span>
1120
+ <div class="next-body">
1121
+ <a href="${withUtm('https://catalog.extenshi.io/developers#tools', 'developer-tools')}">The full developer toolbox →</a>
1122
+ <p>Manifest generator, privacy-policy generator, and more — free at extenshi.io.</p>
1123
+ </div>
1124
+ </div>
1125
+ </div>
1126
+ </section>
1127
+
1128
+ <p class="foot">Generated locally by <a href="${withUtm('https://extenshi.io', 'cli-footer')}">@extenshi/cli</a> — no data left your machine.</p>`;
865
1129
  return `<!doctype html>
866
1130
  <html lang="en">
867
1131
  <head>
868
1132
  <meta charset="utf-8">
869
1133
  <meta name="viewport" content="width=device-width, initial-scale=1">
870
1134
  <title>${esc(input.name)} — icon preview · Extenshi</title>
1135
+ <script>(function(){try{var t=localStorage.getItem('extenshi-report-theme');if(!t)t=(window.matchMedia&&window.matchMedia('(prefers-color-scheme: dark)').matches)?'dark':'light';if(t==='dark')document.documentElement.classList.add('dark');}catch(e){}})();</script>
871
1136
  <style>${CSS}</style>
872
1137
  </head>
873
1138
  <body>
874
- <main>
1139
+ ${topbar}<main>
875
1140
  ${header}<section class="card">
876
1141
  <div class="themes-head">
877
1142
  <h2>Palette<span class="hint">how the toolbar around your icon is colored</span></h2>
@@ -900,13 +1165,32 @@ export function renderIconPreviewHtml(input) {
900
1165
  ${sizeCells}
901
1166
  </div>
902
1167
  <p class="fill-note" id="fill-note"></p>
903
- <label class="toggle trim" id="trim-row" hidden><input type="checkbox" id="trim-toggle"> Trim empty margins — rescale the artwork edge-to-edge in every preview and export</label>
1168
+ <div class="trim-callout" id="trim-row" hidden>
1169
+ <span class="trim-ico">${CROP_ICON}</span>
1170
+ <div class="trim-text">
1171
+ <strong>Trim empty margins</strong>
1172
+ <p>Rescale the artwork edge-to-edge — applied to every preview, the size matrix, and all exports.</p>
1173
+ </div>
1174
+ <label class="switch" title="Toggle edge-to-edge trim">
1175
+ <input type="checkbox" id="trim-toggle">
1176
+ <span class="switch-track"><span class="switch-thumb"></span></span>
1177
+ </label>
1178
+ </div>
904
1179
  <div class="mag-wrap">
905
1180
  <span class="mag-box" id="mag-box"><canvas id="mag" width="16" height="16"></canvas></span>
906
1181
  <p class="mag-note">The 16&nbsp;px render at 8× magnification on the selected toolbar color — this is the version most users will actually see. Check that the silhouette stays readable and edges don't dissolve.</p>
907
1182
  </div>
908
1183
  </section>
909
1184
 
1185
+ <section class="card" id="prompt-card" hidden>
1186
+ <h2>Recommended prompt<span class="hint">paste into whatever draws your icon to fix the findings</span></h2>
1187
+ <ul class="prompt-issues" id="prompt-issues"></ul>
1188
+ <div class="export-row">
1189
+ <button class="btn primary" type="button" id="prompt-copy-btn">Copy prompt</button>
1190
+ </div>
1191
+ <pre class="snippet wrap" id="prompt-text"></pre>
1192
+ </section>
1193
+
910
1194
  ${exportSection}
911
1195
  </main>
912
1196
  <script>window.__ICON_PREVIEW__ = ${jsonForScript(config)};</script>
@@ -1 +1 @@
1
- {"version":3,"file":"icon-preview.js","sourceRoot":"","sources":["../src/icon-preview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icon-preview.js","sourceRoot":"","sources":["../src/icon-preview.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@extenshi/cli",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Pre-publish security scanner for browser extensions",
5
5
  "type": "module",
6
6
  "publishConfig": {