@sanity/ailf-studio 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -113,8 +113,8 @@ interface SyncStatusBadgeProps {
113
113
  lastSyncedAt: string;
114
114
  /** Optional: show the commit SHA alongside the badge */
115
115
  commitSha?: string;
116
- /** Font size (default: 0 for compact list view) */
117
- fontSize?: 0 | 1;
116
+ /** Font size (default: 1 for compact list view) */
117
+ fontSize?: 1 | 2;
118
118
  }
119
119
  declare function SyncStatusBadge({ lastSyncedAt, commitSha, fontSize, }: SyncStatusBadgeProps): react_jsx_runtime.JSX.Element;
120
120
 
package/dist/index.js CHANGED
@@ -1647,22 +1647,22 @@ var TEMPLATE_HELP = {
1647
1647
  function TypeHelpCard({ help }) {
1648
1648
  return /* @__PURE__ */ jsx2(Card, { padding: 3, radius: 2, tone: "transparent", border: true, children: /* @__PURE__ */ jsxs2(Stack2, { space: 3, children: [
1649
1649
  /* @__PURE__ */ jsxs2(Flex, { align: "flex-start", gap: 2, children: [
1650
- /* @__PURE__ */ jsx2(Box2, { style: { flexShrink: 0, marginTop: 1 }, children: /* @__PURE__ */ jsx2(Text2, { size: 1, muted: true, children: /* @__PURE__ */ jsx2(HelpCircleIcon, {}) }) }),
1651
- /* @__PURE__ */ jsx2(Text2, { size: 1, muted: true, children: help.description })
1650
+ /* @__PURE__ */ jsx2(Box2, { style: { flexShrink: 0, marginTop: 1 }, children: /* @__PURE__ */ jsx2(Text2, { size: 2, muted: true, children: /* @__PURE__ */ jsx2(HelpCircleIcon, {}) }) }),
1651
+ /* @__PURE__ */ jsx2(Text2, { size: 2, muted: true, children: help.description })
1652
1652
  ] }),
1653
1653
  (help.valueHint || help.thresholdHint || help.example) && /* @__PURE__ */ jsxs2(Stack2, { space: 2, paddingLeft: 4, children: [
1654
- help.valueHint && /* @__PURE__ */ jsxs2(Text2, { size: 0, muted: true, children: [
1654
+ help.valueHint && /* @__PURE__ */ jsxs2(Text2, { size: 1, muted: true, children: [
1655
1655
  /* @__PURE__ */ jsx2("strong", { children: "Value:" }),
1656
1656
  " ",
1657
1657
  help.valueHint
1658
1658
  ] }),
1659
- help.thresholdHint && /* @__PURE__ */ jsxs2(Text2, { size: 0, muted: true, children: [
1659
+ help.thresholdHint && /* @__PURE__ */ jsxs2(Text2, { size: 1, muted: true, children: [
1660
1660
  /* @__PURE__ */ jsx2("strong", { children: "Threshold:" }),
1661
1661
  " ",
1662
1662
  help.thresholdHint
1663
1663
  ] }),
1664
1664
  help.example && /* @__PURE__ */ jsxs2(Box2, { marginTop: 1, children: [
1665
- /* @__PURE__ */ jsx2(Text2, { size: 0, muted: true, children: /* @__PURE__ */ jsx2("strong", { children: "Example:" }) }),
1665
+ /* @__PURE__ */ jsx2(Text2, { size: 1, muted: true, children: /* @__PURE__ */ jsx2("strong", { children: "Example:" }) }),
1666
1666
  /* @__PURE__ */ jsx2(
1667
1667
  Box2,
1668
1668
  {
@@ -1687,16 +1687,16 @@ function TypeHelpCard({ help }) {
1687
1687
  function TemplateHelpCard({ help }) {
1688
1688
  return /* @__PURE__ */ jsx2(Card, { padding: 3, radius: 2, tone: "transparent", border: true, children: /* @__PURE__ */ jsxs2(Stack2, { space: 2, children: [
1689
1689
  /* @__PURE__ */ jsxs2(Flex, { align: "flex-start", gap: 2, children: [
1690
- /* @__PURE__ */ jsx2(Box2, { style: { flexShrink: 0, marginTop: 1 }, children: /* @__PURE__ */ jsx2(Text2, { size: 1, muted: true, children: /* @__PURE__ */ jsx2(HelpCircleIcon, {}) }) }),
1691
- /* @__PURE__ */ jsx2(Text2, { size: 1, muted: true, children: help.description })
1690
+ /* @__PURE__ */ jsx2(Box2, { style: { flexShrink: 0, marginTop: 1 }, children: /* @__PURE__ */ jsx2(Text2, { size: 2, muted: true, children: /* @__PURE__ */ jsx2(HelpCircleIcon, {}) }) }),
1691
+ /* @__PURE__ */ jsx2(Text2, { size: 2, muted: true, children: help.description })
1692
1692
  ] }),
1693
1693
  /* @__PURE__ */ jsxs2(Stack2, { space: 1, paddingLeft: 4, children: [
1694
- /* @__PURE__ */ jsxs2(Text2, { size: 0, muted: true, children: [
1694
+ /* @__PURE__ */ jsxs2(Text2, { size: 1, muted: true, children: [
1695
1695
  /* @__PURE__ */ jsx2("strong", { children: "Weight:" }),
1696
1696
  " ",
1697
1697
  help.weight
1698
1698
  ] }),
1699
- /* @__PURE__ */ jsxs2(Text2, { size: 0, muted: true, children: [
1699
+ /* @__PURE__ */ jsxs2(Text2, { size: 1, muted: true, children: [
1700
1700
  /* @__PURE__ */ jsx2("strong", { children: "Scale:" }),
1701
1701
  " ",
1702
1702
  help.scaleHint
@@ -1754,8 +1754,8 @@ var REF_TYPE_HELP = {
1754
1754
  };
1755
1755
  function RefTypeHelpCard({ help }) {
1756
1756
  return /* @__PURE__ */ jsx3(Card2, { padding: 3, radius: 2, tone: "transparent", border: true, children: /* @__PURE__ */ jsxs3(Flex2, { align: "flex-start", gap: 2, children: [
1757
- /* @__PURE__ */ jsx3(Box3, { style: { flexShrink: 0, marginTop: 1 }, children: /* @__PURE__ */ jsx3(Text3, { size: 1, muted: true, children: /* @__PURE__ */ jsx3(HelpCircleIcon2, {}) }) }),
1758
- /* @__PURE__ */ jsx3(Text3, { size: 1, muted: true, children: help.description })
1757
+ /* @__PURE__ */ jsx3(Box3, { style: { flexShrink: 0, marginTop: 1 }, children: /* @__PURE__ */ jsx3(Text3, { size: 2, muted: true, children: /* @__PURE__ */ jsx3(HelpCircleIcon2, {}) }) }),
1758
+ /* @__PURE__ */ jsx3(Text3, { size: 2, muted: true, children: help.description })
1759
1759
  ] }) });
1760
1760
  }
1761
1761
  function CanonicalDocInput(props) {
@@ -1835,10 +1835,10 @@ function CanonicalDocPreview(props) {
1835
1835
  subtitle = "";
1836
1836
  }
1837
1837
  return /* @__PURE__ */ jsxs4(Flex3, { align: "center", gap: 2, padding: 2, children: [
1838
- /* @__PURE__ */ jsx4(Text4, { size: 1, children: icon }),
1838
+ /* @__PURE__ */ jsx4(Text4, { size: 2, children: icon }),
1839
1839
  /* @__PURE__ */ jsxs4(Flex3, { direction: "column", gap: 1, flex: 1, children: [
1840
- /* @__PURE__ */ jsx4(Text4, { size: 1, weight: "semibold", children: resolvedTitle }),
1841
- subtitle && /* @__PURE__ */ jsx4(Text4, { muted: true, size: 0, children: subtitle })
1840
+ /* @__PURE__ */ jsx4(Text4, { size: 2, weight: "semibold", children: resolvedTitle }),
1841
+ subtitle && /* @__PURE__ */ jsx4(Text4, { muted: true, size: 1, children: subtitle })
1842
1842
  ] })
1843
1843
  ] });
1844
1844
  }
@@ -1868,7 +1868,7 @@ function formatAge(ms) {
1868
1868
  function SyncStatusBadge({
1869
1869
  lastSyncedAt,
1870
1870
  commitSha,
1871
- fontSize = 0
1871
+ fontSize = 1
1872
1872
  }) {
1873
1873
  const syncedAt = new Date(lastSyncedAt);
1874
1874
  const ageMs = Date.now() - syncedAt.getTime();
@@ -1879,7 +1879,7 @@ function SyncStatusBadge({
1879
1879
  return /* @__PURE__ */ jsx5(
1880
1880
  Tooltip,
1881
1881
  {
1882
- content: /* @__PURE__ */ jsx5(Box4, { padding: 2, children: /* @__PURE__ */ jsxs5(Text5, { size: 1, children: [
1882
+ content: /* @__PURE__ */ jsx5(Box4, { padding: 2, children: /* @__PURE__ */ jsxs5(Text5, { size: 2, children: [
1883
1883
  "Last synced ",
1884
1884
  ageStr,
1885
1885
  shaStr
@@ -1898,8 +1898,8 @@ function MirrorBanner({ origin }) {
1898
1898
  const repoDisplay = repo ?? "an external repository";
1899
1899
  return /* @__PURE__ */ jsx6(Card3, { padding: 3, radius: 2, tone: "transparent", border: true, children: /* @__PURE__ */ jsxs6(Stack4, { space: 3, children: [
1900
1900
  /* @__PURE__ */ jsxs6(Flex4, { align: "center", gap: 2, children: [
1901
- /* @__PURE__ */ jsx6(Text6, { size: 1, children: /* @__PURE__ */ jsx6(LinkIcon, {}) }),
1902
- /* @__PURE__ */ jsxs6(Text6, { size: 1, children: [
1901
+ /* @__PURE__ */ jsx6(Text6, { size: 2, children: /* @__PURE__ */ jsx6(LinkIcon, {}) }),
1902
+ /* @__PURE__ */ jsxs6(Text6, { size: 2, children: [
1903
1903
  "This task is managed in",
1904
1904
  " ",
1905
1905
  repoUrl ? /* @__PURE__ */ jsx6(
@@ -1921,14 +1921,14 @@ function MirrorBanner({ origin }) {
1921
1921
  {
1922
1922
  lastSyncedAt,
1923
1923
  commitSha,
1924
- fontSize: 0
1924
+ fontSize: 1
1925
1925
  }
1926
1926
  ),
1927
- branch && /* @__PURE__ */ jsxs6(Text6, { size: 0, muted: true, children: [
1927
+ branch && /* @__PURE__ */ jsxs6(Text6, { size: 1, muted: true, children: [
1928
1928
  branch,
1929
1929
  commitSha ? ` @ ${commitSha.slice(0, 7)}` : ""
1930
1930
  ] }),
1931
- path && /* @__PURE__ */ jsx6(Text6, { size: 0, muted: true, children: path })
1931
+ path && /* @__PURE__ */ jsx6(Text6, { size: 1, muted: true, children: path })
1932
1932
  ] })
1933
1933
  ] }) });
1934
1934
  }
@@ -1969,7 +1969,7 @@ import {
1969
1969
  import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1970
1970
  function StateBadge({ state }) {
1971
1971
  const tone = state === "active" ? "positive" : state === "published" ? "primary" : "default";
1972
- return /* @__PURE__ */ jsx8(Badge2, { fontSize: 0, tone, children: state });
1972
+ return /* @__PURE__ */ jsx8(Badge2, { fontSize: 1, tone, children: state });
1973
1973
  }
1974
1974
  function ReleasePicker(props) {
1975
1975
  const { onChange, path, value = "" } = props;
@@ -2044,8 +2044,8 @@ function ReleasePicker(props) {
2044
2044
  const opt = option;
2045
2045
  return /* @__PURE__ */ jsx8(Card4, { as: "button", padding: 3, children: /* @__PURE__ */ jsxs8(Flex5, { align: "center", gap: 2, children: [
2046
2046
  /* @__PURE__ */ jsxs8(Stack6, { flex: 1, space: 1, children: [
2047
- /* @__PURE__ */ jsx8(Text7, { size: 1, weight: "semibold", children: opt.payload.title }),
2048
- opt.payload.title !== opt.value && /* @__PURE__ */ jsx8(Text7, { muted: true, size: 1, children: opt.value })
2047
+ /* @__PURE__ */ jsx8(Text7, { size: 2, weight: "semibold", children: opt.payload.title }),
2048
+ opt.payload.title !== opt.value && /* @__PURE__ */ jsx8(Text7, { muted: true, size: 2, children: opt.value })
2049
2049
  ] }),
2050
2050
  /* @__PURE__ */ jsx8(StateBadge, { state: opt.payload.state })
2051
2051
  ] }) });
@@ -2057,7 +2057,7 @@ function ReleasePicker(props) {
2057
2057
  value
2058
2058
  }
2059
2059
  ),
2060
- value && /* @__PURE__ */ jsxs8(Text7, { muted: true, size: 0, children: [
2060
+ value && /* @__PURE__ */ jsxs8(Text7, { muted: true, size: 1, children: [
2061
2061
  "Release ID: ",
2062
2062
  /* @__PURE__ */ jsx8("code", { children: value })
2063
2063
  ] })
@@ -3175,7 +3175,7 @@ function computeDimensionDeltas(baseline, experiment) {
3175
3175
  import { Card as Card5, Stack as Stack7, Text as Text8 } from "@sanity/ui";
3176
3176
  import { jsx as jsx9 } from "react/jsx-runtime";
3177
3177
  function PageBlurb({ text }) {
3178
- return /* @__PURE__ */ jsx9(Card5, { padding: 3, radius: 2, tone: "transparent", children: /* @__PURE__ */ jsx9(Stack7, { space: 2, children: /* @__PURE__ */ jsx9(Text8, { size: 1, children: text }) }) });
3178
+ return /* @__PURE__ */ jsx9(Card5, { padding: 3, radius: 2, tone: "transparent", children: /* @__PURE__ */ jsx9(Stack7, { space: 2, children: /* @__PURE__ */ jsx9(Text8, { size: 2, children: text }) }) });
3179
3179
  }
3180
3180
 
3181
3181
  // src/components/primitives/ColumnHeader.tsx
@@ -3196,7 +3196,7 @@ function ColumnHeader({
3196
3196
  Text9,
3197
3197
  {
3198
3198
  muted: true,
3199
- size: 1,
3199
+ size: 2,
3200
3200
  style: { letterSpacing: "0.05em", textTransform: "uppercase" },
3201
3201
  weight: "semibold",
3202
3202
  children: label
@@ -3205,9 +3205,9 @@ function ColumnHeader({
3205
3205
  tooltip && /* @__PURE__ */ jsx10(
3206
3206
  Tooltip2,
3207
3207
  {
3208
- content: /* @__PURE__ */ jsx10(Box5, { padding: 2, children: /* @__PURE__ */ jsx10(Text9, { size: 1, children: tooltip }) }),
3208
+ content: /* @__PURE__ */ jsx10(Box5, { padding: 2, children: /* @__PURE__ */ jsx10(Text9, { size: 2, children: tooltip }) }),
3209
3209
  portal: true,
3210
- children: /* @__PURE__ */ jsx10(Text9, { muted: true, size: 0, children: /* @__PURE__ */ jsx10(HelpCircleIcon3, {}) })
3210
+ children: /* @__PURE__ */ jsx10(Text9, { muted: true, size: 1, children: /* @__PURE__ */ jsx10(HelpCircleIcon3, {}) })
3211
3211
  }
3212
3212
  )
3213
3213
  ] });
@@ -3303,14 +3303,14 @@ function ComparisonView() {
3303
3303
  /* @__PURE__ */ jsx12(PageBlurb, { text: "Select two reports to compare." }),
3304
3304
  /* @__PURE__ */ jsxs10(Flex7, { gap: 3, children: [
3305
3305
  /* @__PURE__ */ jsx12(Box7, { flex: 1, children: /* @__PURE__ */ jsxs10(Stack8, { space: 2, children: [
3306
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: "Baseline (before)" }),
3306
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: "Baseline (before)" }),
3307
3307
  /* @__PURE__ */ jsxs10(Select, { onChange: onBaseline, value: baselineId ?? "", children: [
3308
3308
  /* @__PURE__ */ jsx12("option", { value: "", children: "Select baseline\u2026" }),
3309
3309
  baselineOptions.map((r) => /* @__PURE__ */ jsx12("option", { value: r.reportId, children: formatOption(r) }, r.reportId))
3310
3310
  ] })
3311
3311
  ] }) }),
3312
3312
  /* @__PURE__ */ jsx12(Box7, { flex: 1, children: /* @__PURE__ */ jsxs10(Stack8, { space: 2, children: [
3313
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: "Experiment (after)" }),
3313
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: "Experiment (after)" }),
3314
3314
  /* @__PURE__ */ jsxs10(Select, { onChange: onExperiment, value: experimentId ?? "", children: [
3315
3315
  /* @__PURE__ */ jsx12("option", { value: "", children: "Select experiment\u2026" }),
3316
3316
  experimentOptions.map((r) => /* @__PURE__ */ jsx12("option", { value: r.reportId, children: formatOption(r) }, r.reportId))
@@ -3318,7 +3318,7 @@ function ComparisonView() {
3318
3318
  ] }) })
3319
3319
  ] }),
3320
3320
  hasBoth && loading && /* @__PURE__ */ jsx12(LoadingState, { message: "Loading comparison\u2026" }),
3321
- hasBoth && !loading && !hasData && /* @__PURE__ */ jsx12(Card6, { padding: 4, tone: "caution", children: /* @__PURE__ */ jsx12(Text11, { size: 1, children: "Report not found." }) }),
3321
+ hasBoth && !loading && !hasData && /* @__PURE__ */ jsx12(Card6, { padding: 4, tone: "caution", children: /* @__PURE__ */ jsx12(Text11, { size: 2, children: "Report not found." }) }),
3322
3322
  hasBoth && !loading && hasData && /* @__PURE__ */ jsxs10(Fragment3, { children: [
3323
3323
  /* @__PURE__ */ jsx12(
3324
3324
  AreaComparisonTable,
@@ -3337,7 +3337,7 @@ function AreaComparisonTable({
3337
3337
  overallDelta
3338
3338
  }) {
3339
3339
  return /* @__PURE__ */ jsx12(Card6, { overflow: "auto", padding: 3, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs10(Stack8, { space: 3, children: [
3340
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: "Per-area comparison" }),
3340
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: "Per-area comparison" }),
3341
3341
  /* @__PURE__ */ jsxs10(Grid, { columns: 5, gap: 2, children: [
3342
3342
  /* @__PURE__ */ jsx12(ColumnHeader, { label: "Area" }),
3343
3343
  /* @__PURE__ */ jsx12(ColumnHeader, { label: "Baseline", tooltip: GLOSSARY.baseline }),
@@ -3346,10 +3346,10 @@ function AreaComparisonTable({
3346
3346
  /* @__PURE__ */ jsx12(ColumnHeader, { label: "Change", tooltip: GLOSSARY.change })
3347
3347
  ] }),
3348
3348
  areaDeltas.map((row) => /* @__PURE__ */ jsxs10(Grid, { columns: 5, gap: 2, children: [
3349
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: row.area }),
3350
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: row.baseline.toFixed(1) }),
3351
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: row.experiment.toFixed(1) }),
3352
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: formatDelta(row.delta) }),
3349
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: row.area }),
3350
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: row.baseline.toFixed(1) }),
3351
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: row.experiment.toFixed(1) }),
3352
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: formatDelta(row.delta) }),
3353
3353
  /* @__PURE__ */ jsx12(Box7, { children: /* @__PURE__ */ jsx12(Badge3, { tone: changeTone(row.change), children: row.change }) })
3354
3354
  ] }, row.area)),
3355
3355
  overallDelta && /* @__PURE__ */ jsxs10(
@@ -3362,10 +3362,10 @@ function AreaComparisonTable({
3362
3362
  paddingTop: 8
3363
3363
  },
3364
3364
  children: [
3365
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: "Overall" }),
3366
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: overallDelta.baseline.toFixed(1) }),
3367
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: overallDelta.experiment.toFixed(1) }),
3368
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: formatDelta(overallDelta.delta) }),
3365
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: "Overall" }),
3366
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: overallDelta.baseline.toFixed(1) }),
3367
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: overallDelta.experiment.toFixed(1) }),
3368
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: formatDelta(overallDelta.delta) }),
3369
3369
  /* @__PURE__ */ jsx12(Box7, { children: /* @__PURE__ */ jsx12(Badge3, { tone: changeTone(classify(overallDelta.delta)), children: classify(overallDelta.delta) }) })
3370
3370
  ]
3371
3371
  }
@@ -3374,7 +3374,7 @@ function AreaComparisonTable({
3374
3374
  }
3375
3375
  function DimensionDeltasTable({ dimDeltas }) {
3376
3376
  return /* @__PURE__ */ jsx12(Card6, { overflow: "auto", padding: 3, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs10(Stack8, { space: 3, children: [
3377
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: "Dimension deltas" }),
3377
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: "Dimension deltas" }),
3378
3378
  /* @__PURE__ */ jsxs10(Grid, { columns: 4, gap: 2, children: [
3379
3379
  /* @__PURE__ */ jsx12(ColumnHeader, { label: "Area" }),
3380
3380
  /* @__PURE__ */ jsx12(
@@ -3400,10 +3400,10 @@ function DimensionDeltasTable({ dimDeltas }) {
3400
3400
  )
3401
3401
  ] }),
3402
3402
  dimDeltas.map((row) => /* @__PURE__ */ jsxs10(Grid, { columns: 4, gap: 2, children: [
3403
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: row.area }),
3404
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: formatDelta(row.taskDelta) }),
3405
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: formatDelta(row.codeDelta) }),
3406
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: formatDelta(row.docDelta) })
3403
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: row.area }),
3404
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: formatDelta(row.taskDelta) }),
3405
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: formatDelta(row.codeDelta) }),
3406
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: formatDelta(row.docDelta) })
3407
3407
  ] }, row.area))
3408
3408
  ] }) });
3409
3409
  }
@@ -3415,8 +3415,8 @@ function ThreeLayerDeltasTable({
3415
3415
  );
3416
3416
  return /* @__PURE__ */ jsx12(Card6, { overflow: "auto", padding: 3, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs10(Stack8, { space: 3, children: [
3417
3417
  /* @__PURE__ */ jsxs10(Flex7, { align: "center", gap: 2, children: [
3418
- /* @__PURE__ */ jsx12(Text11, { size: 1, weight: "semibold", children: "Three-layer decomposition deltas" }),
3419
- /* @__PURE__ */ jsx12(Badge3, { fontSize: 0, tone: "primary", children: "full mode" })
3418
+ /* @__PURE__ */ jsx12(Text11, { size: 2, weight: "semibold", children: "Three-layer decomposition deltas" }),
3419
+ /* @__PURE__ */ jsx12(Badge3, { fontSize: 1, tone: "primary", children: "full mode" })
3420
3420
  ] }),
3421
3421
  /* @__PURE__ */ jsxs10(Grid, { columns: 7, gap: 2, children: [
3422
3422
  /* @__PURE__ */ jsx12(ColumnHeader, { label: "Area" }),
@@ -3428,22 +3428,22 @@ function ThreeLayerDeltasTable({
3428
3428
  /* @__PURE__ */ jsx12(ColumnHeader, { label: "Eff. (E)", tooltip: GLOSSARY.efficiency })
3429
3429
  ] }),
3430
3430
  filtered.map((row) => /* @__PURE__ */ jsxs10(Grid, { columns: 7, gap: 2, children: [
3431
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: row.area }),
3432
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: row.baseActual != null ? row.baseActual.toFixed(1) : "\u2014" }),
3433
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: row.expActual != null ? row.expActual.toFixed(1) : "\u2014" }),
3434
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: row.actualDelta != null ? formatDelta(row.actualDelta) : "\u2014" }),
3431
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: row.area }),
3432
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: row.baseActual != null ? row.baseActual.toFixed(1) : "\u2014" }),
3433
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: row.expActual != null ? row.expActual.toFixed(1) : "\u2014" }),
3434
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: row.actualDelta != null ? formatDelta(row.actualDelta) : "\u2014" }),
3435
3435
  /* @__PURE__ */ jsx12(
3436
3436
  Text11,
3437
3437
  {
3438
- size: 1,
3438
+ size: 2,
3439
3439
  style: {
3440
3440
  color: row.retGapDelta != null ? row.retGapDelta < -NOISE_THRESHOLD ? "var(--card-badge-positive-dot-color)" : row.retGapDelta > NOISE_THRESHOLD ? "var(--card-badge-critical-dot-color)" : void 0 : void 0
3441
3441
  },
3442
3442
  children: row.retGapDelta != null ? formatDelta(row.retGapDelta) : "\u2014"
3443
3443
  }
3444
3444
  ),
3445
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: formatPercent(row.baseEfficiency) }),
3446
- /* @__PURE__ */ jsx12(Text11, { size: 1, children: formatPercent(row.expEfficiency) })
3445
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: formatPercent(row.baseEfficiency) }),
3446
+ /* @__PURE__ */ jsx12(Text11, { size: 2, children: formatPercent(row.expEfficiency) })
3447
3447
  ] }, `tl-${row.area}`))
3448
3448
  ] }) });
3449
3449
  }
@@ -3551,10 +3551,10 @@ function DocumentFilter({
3551
3551
  const badgeLabel = provenance === "published" ? "Published" : provenance === "release" ? releaseId ?? "Release" : "Draft";
3552
3552
  return /* @__PURE__ */ jsx13(Card7, { as: "button", padding: 3, children: /* @__PURE__ */ jsxs11(Flex8, { align: "center", gap: 2, children: [
3553
3553
  /* @__PURE__ */ jsxs11(Stack9, { flex: 1, space: 1, children: [
3554
- /* @__PURE__ */ jsx13(Text12, { size: 1, weight: "semibold", children: option.payload.title }),
3555
- /* @__PURE__ */ jsx13(Text12, { muted: true, size: 1, children: option.payload.path })
3554
+ /* @__PURE__ */ jsx13(Text12, { size: 2, weight: "semibold", children: option.payload.title }),
3555
+ /* @__PURE__ */ jsx13(Text12, { muted: true, size: 2, children: option.payload.path })
3556
3556
  ] }),
3557
- /* @__PURE__ */ jsx13(Badge4, { fontSize: 0, tone: badgeTone, children: badgeLabel })
3557
+ /* @__PURE__ */ jsx13(Badge4, { fontSize: 1, tone: badgeTone, children: badgeLabel })
3558
3558
  ] }) });
3559
3559
  }, []);
3560
3560
  const renderValue = useCallback7((_value, option) => {
@@ -3656,10 +3656,10 @@ function PerspectiveFilter({ value, onChange }) {
3656
3656
  const opt = option;
3657
3657
  return /* @__PURE__ */ jsx14(Card8, { as: "button", padding: 3, children: /* @__PURE__ */ jsxs12(Flex9, { align: "center", gap: 2, children: [
3658
3658
  /* @__PURE__ */ jsxs12(Stack10, { flex: 1, space: 1, children: [
3659
- /* @__PURE__ */ jsx14(Text13, { size: 1, weight: "semibold", children: opt.payload.title }),
3660
- opt.payload.title !== opt.value && /* @__PURE__ */ jsx14(Text13, { muted: true, size: 1, children: opt.value })
3659
+ /* @__PURE__ */ jsx14(Text13, { size: 2, weight: "semibold", children: opt.payload.title }),
3660
+ opt.payload.title !== opt.value && /* @__PURE__ */ jsx14(Text13, { muted: true, size: 2, children: opt.value })
3661
3661
  ] }),
3662
- opt.payload.hasReport && /* @__PURE__ */ jsx14(Badge5, { fontSize: 0, tone: "positive", children: "Has reports" })
3662
+ opt.payload.hasReport && /* @__PURE__ */ jsx14(Badge5, { fontSize: 1, tone: "positive", children: "Has reports" })
3663
3663
  ] }) });
3664
3664
  },
3665
3665
  renderValue: (v, option) => {
@@ -3681,7 +3681,7 @@ import { useCallback as useCallback8 } from "react";
3681
3681
  // src/components/primitives/DeltaIndicator.tsx
3682
3682
  import { Text as Text14 } from "@sanity/ui";
3683
3683
  import { jsx as jsx15 } from "react/jsx-runtime";
3684
- function DeltaIndicator({ delta, size = 1 }) {
3684
+ function DeltaIndicator({ delta, size = 2 }) {
3685
3685
  return /* @__PURE__ */ jsx15(
3686
3686
  Text14,
3687
3687
  {
@@ -3704,7 +3704,7 @@ function GitOrigin({ git }) {
3704
3704
  Text15,
3705
3705
  {
3706
3706
  muted: true,
3707
- size: 0,
3707
+ size: 1,
3708
3708
  style: { fontFamily: "monospace", whiteSpace: "nowrap" },
3709
3709
  title: `${git.repo} @ ${git.sha.slice(0, 7)} (${git.branch})`,
3710
3710
  children: git.repo
@@ -3718,7 +3718,7 @@ function GitOrigin({ git }) {
3718
3718
  rel: "noopener noreferrer",
3719
3719
  style: { textDecoration: "none" },
3720
3720
  target: "_blank",
3721
- children: /* @__PURE__ */ jsxs13(Badge6, { fontSize: 0, mode: "outline", tone: "primary", children: [
3721
+ children: /* @__PURE__ */ jsxs13(Badge6, { fontSize: 1, mode: "outline", tone: "primary", children: [
3722
3722
  "#",
3723
3723
  git.prNumber
3724
3724
  ] })
@@ -3741,7 +3741,7 @@ var modeTone = {
3741
3741
  };
3742
3742
  function ModeBadge({ mode }) {
3743
3743
  const tone = modeTone[mode] ?? "default";
3744
- return /* @__PURE__ */ jsx17(Badge7, { fontSize: 0, tone, children: mode });
3744
+ return /* @__PURE__ */ jsx17(Badge7, { fontSize: 1, tone, children: mode });
3745
3745
  }
3746
3746
 
3747
3747
  // src/components/report-card/ReportMeta.tsx
@@ -3758,14 +3758,14 @@ function AreaTags({ areas, targetDocuments }) {
3758
3758
  hasAreas && areas.map((area) => /* @__PURE__ */ jsx18(
3759
3759
  Badge8,
3760
3760
  {
3761
- fontSize: 0,
3761
+ fontSize: 1,
3762
3762
  mode: "outline",
3763
3763
  tone: "default",
3764
3764
  children: area
3765
3765
  },
3766
3766
  `area-${area}`
3767
3767
  )),
3768
- hasDocs && targetDocuments.map((doc) => /* @__PURE__ */ jsx18(Badge8, { fontSize: 0, mode: "outline", tone: "primary", children: doc }, `doc-${doc}`))
3768
+ hasDocs && targetDocuments.map((doc) => /* @__PURE__ */ jsx18(Badge8, { fontSize: 1, mode: "outline", tone: "primary", children: doc }, `doc-${doc}`))
3769
3769
  ] });
3770
3770
  }
3771
3771
 
@@ -3822,8 +3822,8 @@ function ReportMeta({ data }) {
3822
3822
  segments.push(formatDuration(data.durationMs));
3823
3823
  }
3824
3824
  return /* @__PURE__ */ jsxs15(Stack11, { flex: 1, space: 1, children: [
3825
- /* @__PURE__ */ jsx19(Text16, { weight: "semibold", children: data.tag ?? formatCardDate(data.completedAt) }),
3826
- segments.length > 0 && /* @__PURE__ */ jsx19(Text16, { muted: true, size: 1, children: segments.join(" \xB7 ") }),
3825
+ /* @__PURE__ */ jsx19(Text16, { size: 3, weight: "semibold", children: data.tag ?? formatCardDate(data.completedAt) }),
3826
+ segments.length > 0 && /* @__PURE__ */ jsx19(Text16, { muted: true, size: 2, children: segments.join(" \xB7 ") }),
3827
3827
  /* @__PURE__ */ jsx19(AreaTags, { areas: data.areas, targetDocuments: data.targetDocuments })
3828
3828
  ] });
3829
3829
  }
@@ -3862,7 +3862,7 @@ function rowBackground(index) {
3862
3862
 
3863
3863
  // src/components/primitives/ScoreBadge.tsx
3864
3864
  import { jsx as jsx20 } from "react/jsx-runtime";
3865
- function ScoreBadge({ score, fontSize = 1 }) {
3865
+ function ScoreBadge({ score, fontSize = 2 }) {
3866
3866
  const rounded = Math.round(score);
3867
3867
  return /* @__PURE__ */ jsx20(
3868
3868
  Badge9,
@@ -3885,7 +3885,7 @@ var sourceTone = {
3885
3885
  };
3886
3886
  function SourceBadge({ source }) {
3887
3887
  const tone = sourceTone[source] ?? "default";
3888
- return /* @__PURE__ */ jsx21(Badge10, { fontSize: 0, mode: "outline", tone, children: source });
3888
+ return /* @__PURE__ */ jsx21(Badge10, { fontSize: 1, mode: "outline", tone, children: source });
3889
3889
  }
3890
3890
 
3891
3891
  // src/components/primitives/StatusBadges.tsx
@@ -3896,11 +3896,11 @@ function StatusBadges({ regressed, improved }) {
3896
3896
  const hasImproved = improved && improved.length > 0;
3897
3897
  if (!hasRegressed && !hasImproved) return null;
3898
3898
  return /* @__PURE__ */ jsxs16(Flex12, { gap: 1, children: [
3899
- hasRegressed && /* @__PURE__ */ jsxs16(Badge11, { fontSize: 0, tone: "critical", children: [
3899
+ hasRegressed && /* @__PURE__ */ jsxs16(Badge11, { fontSize: 1, tone: "critical", children: [
3900
3900
  regressed.length,
3901
3901
  " regressed"
3902
3902
  ] }),
3903
- hasImproved && /* @__PURE__ */ jsxs16(Badge11, { fontSize: 0, tone: "positive", children: [
3903
+ hasImproved && /* @__PURE__ */ jsxs16(Badge11, { fontSize: 1, tone: "positive", children: [
3904
3904
  improved.length,
3905
3905
  " improved"
3906
3906
  ] })
@@ -3936,12 +3936,12 @@ function ReportCard({ data, onSelectReport }) {
3936
3936
  Text17,
3937
3937
  {
3938
3938
  muted: true,
3939
- size: 0,
3939
+ size: 1,
3940
3940
  title: new Date(data.completedAt).toISOString(),
3941
3941
  children: formatRelativeTime(data.completedAt)
3942
3942
  }
3943
3943
  ),
3944
- data.trigger && /* @__PURE__ */ jsx22(Badge12, { fontSize: 0, tone: "default", children: data.trigger })
3944
+ data.trigger && /* @__PURE__ */ jsx22(Badge12, { fontSize: 1, tone: "default", children: data.trigger })
3945
3945
  ] }),
3946
3946
  data.git && /* @__PURE__ */ jsx22(GitOrigin, { git: data.git })
3947
3947
  ] })
@@ -4113,7 +4113,7 @@ function FilterBadge({ token, onRemove }) {
4113
4113
  return /* @__PURE__ */ jsx23(
4114
4114
  Badge13,
4115
4115
  {
4116
- fontSize: 0,
4116
+ fontSize: 1,
4117
4117
  style: {
4118
4118
  cursor: "default",
4119
4119
  flexShrink: 0,
@@ -4121,7 +4121,7 @@ function FilterBadge({ token, onRemove }) {
4121
4121
  },
4122
4122
  tone,
4123
4123
  children: /* @__PURE__ */ jsxs18(Flex14, { align: "center", gap: 1, children: [
4124
- /* @__PURE__ */ jsxs18(Text18, { size: 0, children: [
4124
+ /* @__PURE__ */ jsxs18(Text18, { size: 1, children: [
4125
4125
  token.dimension,
4126
4126
  ":",
4127
4127
  token.label
@@ -4131,7 +4131,7 @@ function FilterBadge({ token, onRemove }) {
4131
4131
  {
4132
4132
  muted: true,
4133
4133
  onClick: handleRemove,
4134
- size: 0,
4134
+ size: 1,
4135
4135
  style: { cursor: "pointer", lineHeight: 1 },
4136
4136
  children: /* @__PURE__ */ jsx23(CloseIcon, {})
4137
4137
  }
@@ -4172,7 +4172,7 @@ function SuggestionList({
4172
4172
  Text19,
4173
4173
  {
4174
4174
  muted: true,
4175
- size: 0,
4175
+ size: 1,
4176
4176
  style: {
4177
4177
  letterSpacing: "0.05em",
4178
4178
  padding: "6px 8px 2px",
@@ -4219,8 +4219,8 @@ function SuggestionItem({
4219
4219
  style: { cursor: "pointer" },
4220
4220
  tone: active ? "primary" : "default",
4221
4221
  children: /* @__PURE__ */ jsxs19(Flex15, { align: "center", gap: 2, children: [
4222
- !isHint && /* @__PURE__ */ jsx24(Badge14, { fontSize: 0, tone, children: suggestion.dimension }),
4223
- /* @__PURE__ */ jsx24(Text19, { size: 1, children: suggestion.label })
4222
+ !isHint && /* @__PURE__ */ jsx24(Badge14, { fontSize: 1, tone, children: suggestion.dimension }),
4223
+ /* @__PURE__ */ jsx24(Text19, { size: 2, children: suggestion.label })
4224
4224
  ] })
4225
4225
  }
4226
4226
  );
@@ -4349,7 +4349,7 @@ function SearchBar({
4349
4349
  radius: 2,
4350
4350
  style: { cursor: "text" },
4351
4351
  children: /* @__PURE__ */ jsxs20(Flex16, { align: "center", gap: 1, wrap: "wrap", children: [
4352
- /* @__PURE__ */ jsx25(Text20, { muted: true, size: 1, style: { flexShrink: 0, padding: "0 4px" }, children: /* @__PURE__ */ jsx25(SearchIcon4, {}) }),
4352
+ /* @__PURE__ */ jsx25(Text20, { muted: true, size: 2, style: { flexShrink: 0, padding: "0 4px" }, children: /* @__PURE__ */ jsx25(SearchIcon4, {}) }),
4353
4353
  tokens.map((token) => /* @__PURE__ */ jsx25(
4354
4354
  FilterBadge,
4355
4355
  {
@@ -4583,7 +4583,7 @@ function LatestReports({
4583
4583
  return /* @__PURE__ */ jsxs21(Stack13, { space: 3, children: [
4584
4584
  /* @__PURE__ */ jsx26(Card12, { padding: 3, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs21(Stack13, { space: 3, children: [
4585
4585
  /* @__PURE__ */ jsxs21(Stack13, { space: 1, children: [
4586
- /* @__PURE__ */ jsx26(Text21, { muted: true, size: 0, children: "Search & filter" }),
4586
+ /* @__PURE__ */ jsx26(Text21, { muted: true, size: 1, children: "Search & filter" }),
4587
4587
  /* @__PURE__ */ jsx26(
4588
4588
  SearchBar,
4589
4589
  {
@@ -4599,7 +4599,7 @@ function LatestReports({
4599
4599
  ] }),
4600
4600
  /* @__PURE__ */ jsxs21(Flex17, { gap: 2, children: [
4601
4601
  /* @__PURE__ */ jsx26(Box8, { flex: 1, children: /* @__PURE__ */ jsxs21(Stack13, { space: 1, children: [
4602
- /* @__PURE__ */ jsx26(Text21, { muted: true, size: 0, children: "Document" }),
4602
+ /* @__PURE__ */ jsx26(Text21, { muted: true, size: 1, children: "Document" }),
4603
4603
  /* @__PURE__ */ jsx26(
4604
4604
  DocumentFilter,
4605
4605
  {
@@ -4610,7 +4610,7 @@ function LatestReports({
4610
4610
  )
4611
4611
  ] }) }),
4612
4612
  /* @__PURE__ */ jsx26(Box8, { flex: 1, children: /* @__PURE__ */ jsxs21(Stack13, { space: 1, children: [
4613
- /* @__PURE__ */ jsx26(Text21, { muted: true, size: 0, children: "Content release" }),
4613
+ /* @__PURE__ */ jsx26(Text21, { muted: true, size: 1, children: "Content release" }),
4614
4614
  /* @__PURE__ */ jsx26(
4615
4615
  PerspectiveFilter,
4616
4616
  {
@@ -4621,22 +4621,22 @@ function LatestReports({
4621
4621
  ] }) })
4622
4622
  ] }),
4623
4623
  (documentSlug.trim() || perspective.trim()) && /* @__PURE__ */ jsxs21(Flex17, { align: "center", gap: 1, children: [
4624
- documentSlug.trim() && /* @__PURE__ */ jsxs21(Badge15, { fontSize: 0, tone: "primary", children: [
4624
+ documentSlug.trim() && /* @__PURE__ */ jsxs21(Badge15, { fontSize: 1, tone: "primary", children: [
4625
4625
  "Document: ",
4626
4626
  documentSlug.trim()
4627
4627
  ] }),
4628
- perspective.trim() && /* @__PURE__ */ jsxs21(Badge15, { fontSize: 0, tone: "primary", children: [
4628
+ perspective.trim() && /* @__PURE__ */ jsxs21(Badge15, { fontSize: 1, tone: "primary", children: [
4629
4629
  "Perspective: ",
4630
4630
  perspective.trim()
4631
4631
  ] })
4632
4632
  ] })
4633
4633
  ] }) }),
4634
4634
  /* @__PURE__ */ jsxs21(Flex17, { align: "center", gap: 2, paddingX: 1, wrap: "wrap", children: [
4635
- /* @__PURE__ */ jsx26(Text21, { muted: true, size: 1, children: filteredReports.length === reports.length ? `${reports.length} reports` : `${filteredReports.length} of ${reports.length} reports` }),
4635
+ /* @__PURE__ */ jsx26(Text21, { muted: true, size: 2, children: filteredReports.length === reports.length ? `${reports.length} reports` : `${filteredReports.length} of ${reports.length} reports` }),
4636
4636
  hasActiveFilters && /* @__PURE__ */ jsx26(
4637
4637
  Button,
4638
4638
  {
4639
- fontSize: 0,
4639
+ fontSize: 1,
4640
4640
  mode: "bleed",
4641
4641
  onClick: handleClearFilters,
4642
4642
  text: "Clear all filters",
@@ -4650,7 +4650,7 @@ function LatestReports({
4650
4650
  button: /* @__PURE__ */ jsx26(
4651
4651
  Button,
4652
4652
  {
4653
- fontSize: 1,
4653
+ fontSize: 2,
4654
4654
  icon: SortIcon,
4655
4655
  mode: "bleed",
4656
4656
  text: `Sort: ${SORT_LABELS[sort.field]}`
@@ -4689,7 +4689,7 @@ function LatestReports({
4689
4689
  /* @__PURE__ */ jsx26(
4690
4690
  Button,
4691
4691
  {
4692
- fontSize: 1,
4692
+ fontSize: 2,
4693
4693
  mode: "bleed",
4694
4694
  onClick: toggleSortDirection,
4695
4695
  text: sort.direction === "asc" ? "\u2191" : "\u2193",
@@ -4699,11 +4699,11 @@ function LatestReports({
4699
4699
  ] })
4700
4700
  ] }),
4701
4701
  filteredReports.length === 0 ? /* @__PURE__ */ jsx26(Card12, { padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs21(Stack13, { space: 3, children: [
4702
- /* @__PURE__ */ jsx26(Text21, { align: "center", muted: true, size: 2, children: "No reports match the current filters." }),
4702
+ /* @__PURE__ */ jsx26(Text21, { align: "center", muted: true, size: 3, children: "No reports match the current filters." }),
4703
4703
  /* @__PURE__ */ jsx26(Flex17, { justify: "center", children: /* @__PURE__ */ jsx26(
4704
4704
  Button,
4705
4705
  {
4706
- fontSize: 1,
4706
+ fontSize: 2,
4707
4707
  mode: "ghost",
4708
4708
  onClick: handleClearFilters,
4709
4709
  text: "Clear all filters"
@@ -4721,7 +4721,7 @@ function LatestReports({
4721
4721
  Button,
4722
4722
  {
4723
4723
  disabled: loadingMore,
4724
- fontSize: 1,
4724
+ fontSize: 2,
4725
4725
  mode: "ghost",
4726
4726
  onClick: handleLoadMore,
4727
4727
  text: loadingMore ? "Loading\u2026" : "Load more reports"
@@ -4810,21 +4810,21 @@ function StatCard({
4810
4810
  tone = "default"
4811
4811
  }) {
4812
4812
  return /* @__PURE__ */ jsx27(Card13, { padding: 3, radius: 2, shadow: 1, tone, children: /* @__PURE__ */ jsxs22(Stack14, { space: 2, children: [
4813
- /* @__PURE__ */ jsxs22(Text22, { muted: true, size: 1, children: [
4813
+ /* @__PURE__ */ jsxs22(Text22, { muted: true, size: 2, children: [
4814
4814
  label,
4815
4815
  tooltip && /* @__PURE__ */ jsxs22(Fragment4, { children: [
4816
4816
  " ",
4817
4817
  /* @__PURE__ */ jsx27(
4818
4818
  Tooltip3,
4819
4819
  {
4820
- content: /* @__PURE__ */ jsx27(Box9, { padding: 2, children: /* @__PURE__ */ jsx27(Text22, { size: 1, children: tooltip }) }),
4820
+ content: /* @__PURE__ */ jsx27(Box9, { padding: 2, children: /* @__PURE__ */ jsx27(Text22, { size: 2, children: tooltip }) }),
4821
4821
  portal: true,
4822
4822
  children: /* @__PURE__ */ jsx27("span", { style: { cursor: "help" }, children: /* @__PURE__ */ jsx27(HelpCircleIcon4, {}) })
4823
4823
  }
4824
4824
  )
4825
4825
  ] })
4826
4826
  ] }),
4827
- /* @__PURE__ */ jsxs22(Text22, { size: 3, weight: "bold", children: [
4827
+ /* @__PURE__ */ jsxs22(Text22, { size: 4, weight: "bold", children: [
4828
4828
  value,
4829
4829
  suffix && /* @__PURE__ */ jsxs22("span", { style: { fontSize: "0.6em", fontWeight: 400 }, children: [
4830
4830
  " ",
@@ -4848,7 +4848,7 @@ function AgentActivitySection({
4848
4848
  function OverviewGrid({ overall }) {
4849
4849
  return /* @__PURE__ */ jsx28(Card14, { padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs23(Stack15, { space: 4, children: [
4850
4850
  /* @__PURE__ */ jsxs23(Flex18, { align: "center", gap: 3, children: [
4851
- /* @__PURE__ */ jsx28(Text23, { size: 2, weight: "semibold", children: "Agent Activity Overview" }),
4851
+ /* @__PURE__ */ jsx28(Text23, { size: 3, weight: "semibold", children: "Agent Activity Overview" }),
4852
4852
  /* @__PURE__ */ jsx28(GlossaryTip, { text: GLOSSARY.agentBehaviorOverview })
4853
4853
  ] }),
4854
4854
  /* @__PURE__ */ jsxs23(Grid2, { columns: [1, 2, 3], gap: 3, children: [
@@ -4907,7 +4907,7 @@ function FeatureActivityCard({
4907
4907
  }) {
4908
4908
  return /* @__PURE__ */ jsx28(Card14, { padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs23(Stack15, { space: 4, children: [
4909
4909
  /* @__PURE__ */ jsxs23(Flex18, { align: "center", gap: 3, wrap: "wrap", children: [
4910
- /* @__PURE__ */ jsx28(Text23, { size: 2, weight: "semibold", children: behavior.feature }),
4910
+ /* @__PURE__ */ jsx28(Text23, { size: 3, weight: "semibold", children: behavior.feature }),
4911
4911
  /* @__PURE__ */ jsxs23(Badge16, { tone: "primary", children: [
4912
4912
  behavior.tasksWithBehaviorData,
4913
4913
  " test",
@@ -4967,14 +4967,14 @@ function SearchQueryList({ queries }) {
4967
4967
  }, [queries, filter]);
4968
4968
  return /* @__PURE__ */ jsxs23(Stack15, { space: 3, children: [
4969
4969
  /* @__PURE__ */ jsxs23(Flex18, { align: "center", gap: 3, wrap: "wrap", children: [
4970
- /* @__PURE__ */ jsx28(Text23, { size: 1, weight: "semibold", children: "Search Queries" }),
4970
+ /* @__PURE__ */ jsx28(Text23, { size: 2, weight: "semibold", children: "Search Queries" }),
4971
4971
  /* @__PURE__ */ jsx28(GlossaryTip, { text: GLOSSARY.searchQueries }),
4972
4972
  /* @__PURE__ */ jsx28(Badge16, { tone: "default", children: queries.length })
4973
4973
  ] }),
4974
4974
  queries.length > 5 && /* @__PURE__ */ jsx28(
4975
4975
  TextInput,
4976
4976
  {
4977
- fontSize: 1,
4977
+ fontSize: 2,
4978
4978
  icon: SearchIcon5,
4979
4979
  onChange: (e) => setFilter(e.target.value),
4980
4980
  placeholder: "Filter queries\u2026",
@@ -4990,12 +4990,12 @@ function SearchQueryList({ queries }) {
4990
4990
  style: { maxHeight: 300 },
4991
4991
  tone: "transparent",
4992
4992
  children: /* @__PURE__ */ jsxs23(Stack15, { space: 2, children: [
4993
- filtered.length === 0 && /* @__PURE__ */ jsx28(Text23, { muted: true, size: 1, children: "No matching queries" }),
4993
+ filtered.length === 0 && /* @__PURE__ */ jsx28(Text23, { muted: true, size: 2, children: "No matching queries" }),
4994
4994
  filtered.map((query, i) => /* @__PURE__ */ jsx28(
4995
4995
  Text23,
4996
4996
  {
4997
4997
  muted: true,
4998
- size: 1,
4998
+ size: 2,
4999
4999
  style: {
5000
5000
  fontFamily: "monospace",
5001
5001
  lineHeight: 1.5,
@@ -5018,7 +5018,7 @@ function BadgeList({
5018
5018
  }) {
5019
5019
  return /* @__PURE__ */ jsxs23(Stack15, { space: 3, children: [
5020
5020
  /* @__PURE__ */ jsxs23(Flex18, { align: "center", gap: 3, wrap: "wrap", children: [
5021
- /* @__PURE__ */ jsx28(Text23, { size: 1, weight: "semibold", children: label }),
5021
+ /* @__PURE__ */ jsx28(Text23, { size: 2, weight: "semibold", children: label }),
5022
5022
  tooltip && /* @__PURE__ */ jsx28(GlossaryTip, { text: tooltip }),
5023
5023
  /* @__PURE__ */ jsx28(Badge16, { tone: "default", children: items.length })
5024
5024
  ] }),
@@ -5031,23 +5031,23 @@ function MiniStat({ label, value }) {
5031
5031
  Text23,
5032
5032
  {
5033
5033
  muted: true,
5034
- size: 0,
5034
+ size: 1,
5035
5035
  style: { letterSpacing: "0.05em", textTransform: "uppercase" },
5036
5036
  weight: "semibold",
5037
5037
  children: label
5038
5038
  }
5039
5039
  ),
5040
- /* @__PURE__ */ jsx28(Text23, { size: 2, weight: "bold", children: value })
5040
+ /* @__PURE__ */ jsx28(Text23, { size: 3, weight: "bold", children: value })
5041
5041
  ] });
5042
5042
  }
5043
5043
  function GlossaryTip({ text }) {
5044
5044
  return /* @__PURE__ */ jsx28(
5045
5045
  Tooltip4,
5046
5046
  {
5047
- content: /* @__PURE__ */ jsx28(Box10, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx28(Text23, { size: 1, children: text }) }),
5047
+ content: /* @__PURE__ */ jsx28(Box10, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx28(Text23, { size: 2, children: text }) }),
5048
5048
  placement: "bottom",
5049
5049
  portal: true,
5050
- children: /* @__PURE__ */ jsx28(Text23, { muted: true, size: 0, children: /* @__PURE__ */ jsx28(HelpCircleIcon5, {}) })
5050
+ children: /* @__PURE__ */ jsx28(Text23, { muted: true, size: 1, children: /* @__PURE__ */ jsx28(HelpCircleIcon5, {}) })
5051
5051
  }
5052
5052
  );
5053
5053
  }
@@ -5059,16 +5059,30 @@ import { Card as Card16, Stack as Stack16, Text as Text25 } from "@sanity/ui";
5059
5059
  // src/components/primitives/ScoreCell.tsx
5060
5060
  import { Card as Card15, Text as Text24 } from "@sanity/ui";
5061
5061
  import { jsx as jsx29 } from "react/jsx-runtime";
5062
- function ScoreCell({ score, size = 1 }) {
5062
+ function ScoreCell({ score, size = 2 }) {
5063
5063
  const rounded = Math.round(score);
5064
- return /* @__PURE__ */ jsx29(Card15, { padding: 1, radius: 2, tone: scoreTone(rounded), children: /* @__PURE__ */ jsx29(Text24, { align: "center", size, weight: "medium", children: rounded }) });
5064
+ return /* @__PURE__ */ jsx29(
5065
+ Card15,
5066
+ {
5067
+ padding: 1,
5068
+ radius: 2,
5069
+ style: {
5070
+ alignItems: "center",
5071
+ display: "flex",
5072
+ flex: 1,
5073
+ justifyContent: "center"
5074
+ },
5075
+ tone: scoreTone(rounded),
5076
+ children: /* @__PURE__ */ jsx29(Text24, { align: "center", size, weight: "medium", children: rounded })
5077
+ }
5078
+ );
5065
5079
  }
5066
5080
 
5067
5081
  // src/components/report-detail/AreaScoreTable.tsx
5068
5082
  import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
5069
5083
  function AreaScoreTable({ scores }) {
5070
5084
  return /* @__PURE__ */ jsx30(Card16, { overflow: "auto", padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs24(Stack16, { space: 4, children: [
5071
- /* @__PURE__ */ jsx30(Text25, { size: 2, weight: "semibold", children: "Per-Area Scores" }),
5085
+ /* @__PURE__ */ jsx30(Text25, { size: 3, weight: "semibold", children: "Per-Area Scores" }),
5072
5086
  /* @__PURE__ */ jsxs24(
5073
5087
  "div",
5074
5088
  {
@@ -5115,13 +5129,53 @@ function AreaScoreTable({ scores }) {
5115
5129
  borderRadius: 4,
5116
5130
  padding: "8px 0 8px 4px"
5117
5131
  },
5118
- children: /* @__PURE__ */ jsx30(Text25, { size: 1, weight: "medium", children: score.feature })
5132
+ children: /* @__PURE__ */ jsx30(Text25, { size: 2, weight: "medium", children: score.feature })
5133
+ }
5134
+ ),
5135
+ /* @__PURE__ */ jsx30(
5136
+ "div",
5137
+ {
5138
+ style: {
5139
+ background: rowBackground(i),
5140
+ display: "flex",
5141
+ padding: "2px 0"
5142
+ },
5143
+ children: /* @__PURE__ */ jsx30(ScoreCell, { score: score.totalScore })
5144
+ }
5145
+ ),
5146
+ /* @__PURE__ */ jsx30(
5147
+ "div",
5148
+ {
5149
+ style: {
5150
+ background: rowBackground(i),
5151
+ display: "flex",
5152
+ padding: "2px 0"
5153
+ },
5154
+ children: /* @__PURE__ */ jsx30(ScoreCell, { score: score.taskCompletion })
5155
+ }
5156
+ ),
5157
+ /* @__PURE__ */ jsx30(
5158
+ "div",
5159
+ {
5160
+ style: {
5161
+ background: rowBackground(i),
5162
+ display: "flex",
5163
+ padding: "2px 0"
5164
+ },
5165
+ children: /* @__PURE__ */ jsx30(ScoreCell, { score: score.codeCorrectness })
5166
+ }
5167
+ ),
5168
+ /* @__PURE__ */ jsx30(
5169
+ "div",
5170
+ {
5171
+ style: {
5172
+ background: rowBackground(i),
5173
+ display: "flex",
5174
+ padding: "2px 0"
5175
+ },
5176
+ children: /* @__PURE__ */ jsx30(ScoreCell, { score: score.docCoverage })
5119
5177
  }
5120
5178
  ),
5121
- /* @__PURE__ */ jsx30("div", { style: { background: rowBackground(i), padding: "6px 0" }, children: /* @__PURE__ */ jsx30(ScoreCell, { score: score.totalScore }) }),
5122
- /* @__PURE__ */ jsx30("div", { style: { background: rowBackground(i), padding: "6px 0" }, children: /* @__PURE__ */ jsx30(ScoreCell, { score: score.taskCompletion }) }),
5123
- /* @__PURE__ */ jsx30("div", { style: { background: rowBackground(i), padding: "6px 0" }, children: /* @__PURE__ */ jsx30(ScoreCell, { score: score.codeCorrectness }) }),
5124
- /* @__PURE__ */ jsx30("div", { style: { background: rowBackground(i), padding: "6px 0" }, children: /* @__PURE__ */ jsx30(ScoreCell, { score: score.docCoverage }) }),
5125
5179
  /* @__PURE__ */ jsx30(
5126
5180
  "div",
5127
5181
  {
@@ -5130,7 +5184,7 @@ function AreaScoreTable({ scores }) {
5130
5184
  background: rowBackground(i),
5131
5185
  display: "flex"
5132
5186
  },
5133
- children: /* @__PURE__ */ jsx30(Text25, { size: 1, children: formatDelta(score.docLift) })
5187
+ children: /* @__PURE__ */ jsx30(Text25, { size: 2, children: formatDelta(score.docLift) })
5134
5188
  }
5135
5189
  ),
5136
5190
  /* @__PURE__ */ jsx30(
@@ -5141,7 +5195,7 @@ function AreaScoreTable({ scores }) {
5141
5195
  background: rowBackground(i),
5142
5196
  display: "flex"
5143
5197
  },
5144
- children: /* @__PURE__ */ jsx30(Text25, { muted: true, size: 1, children: score.testCount })
5198
+ children: /* @__PURE__ */ jsx30(Text25, { muted: true, size: 2, children: score.testCount })
5145
5199
  }
5146
5200
  )
5147
5201
  ] }, score.feature))
@@ -5157,7 +5211,7 @@ import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
5157
5211
  function ComparisonSummary({ comparison }) {
5158
5212
  return /* @__PURE__ */ jsx31(Card17, { padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs25(Stack17, { space: 4, children: [
5159
5213
  /* @__PURE__ */ jsxs25(Flex19, { align: "center", gap: 3, wrap: "wrap", children: [
5160
- /* @__PURE__ */ jsx31(Text26, { size: 2, weight: "semibold", children: "Comparison" }),
5214
+ /* @__PURE__ */ jsx31(Text26, { size: 3, weight: "semibold", children: "Comparison" }),
5161
5215
  /* @__PURE__ */ jsx31(
5162
5216
  DeltaCard,
5163
5217
  {
@@ -5223,7 +5277,7 @@ function DeltaCard({
5223
5277
  return /* @__PURE__ */ jsx31(
5224
5278
  Tooltip5,
5225
5279
  {
5226
- content: /* @__PURE__ */ jsx31(Box11, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx31(Text26, { size: 1, children: tooltip }) }),
5280
+ content: /* @__PURE__ */ jsx31(Box11, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx31(Text26, { size: 2, children: tooltip }) }),
5227
5281
  placement: "bottom",
5228
5282
  portal: true,
5229
5283
  children: /* @__PURE__ */ jsx31(
@@ -5232,7 +5286,7 @@ function DeltaCard({
5232
5286
  padding: 2,
5233
5287
  radius: 2,
5234
5288
  tone: isPositive ? "positive" : isNegative ? "critical" : "default",
5235
- children: /* @__PURE__ */ jsxs25(Text26, { size: 1, weight: "bold", children: [
5289
+ children: /* @__PURE__ */ jsxs25(Text26, { size: 2, weight: "bold", children: [
5236
5290
  formatDelta(delta),
5237
5291
  " ",
5238
5292
  label
@@ -5252,7 +5306,7 @@ function AreaBadgeGroup({
5252
5306
  Text26,
5253
5307
  {
5254
5308
  muted: true,
5255
- size: 0,
5309
+ size: 1,
5256
5310
  style: { letterSpacing: "0.05em", textTransform: "uppercase" },
5257
5311
  weight: "semibold",
5258
5312
  children: label
@@ -5306,17 +5360,17 @@ function JudgmentList({ judgments }) {
5306
5360
  const grouped = groupByArea(judgments);
5307
5361
  return /* @__PURE__ */ jsx33(Card18, { padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs26(Stack18, { space: 4, children: [
5308
5362
  /* @__PURE__ */ jsxs26(Flex20, { align: "center", gap: 3, wrap: "wrap", children: [
5309
- /* @__PURE__ */ jsx33(Text27, { size: 2, weight: "semibold", children: "Low-Scoring Judgments" }),
5363
+ /* @__PURE__ */ jsx33(Text27, { size: 3, weight: "semibold", children: "Low-Scoring Judgments" }),
5310
5364
  /* @__PURE__ */ jsx33(
5311
5365
  Tooltip6,
5312
5366
  {
5313
- content: /* @__PURE__ */ jsx33(Box12, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx33(Text27, { size: 1, children: GLOSSARY.lowScoringJudgments }) }),
5367
+ content: /* @__PURE__ */ jsx33(Box12, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx33(Text27, { size: 2, children: GLOSSARY.lowScoringJudgments }) }),
5314
5368
  placement: "bottom",
5315
5369
  portal: true,
5316
- children: /* @__PURE__ */ jsx33(Text27, { muted: true, size: 0, children: /* @__PURE__ */ jsx33(HelpCircleIcon6, {}) })
5370
+ children: /* @__PURE__ */ jsx33(Text27, { muted: true, size: 1, children: /* @__PURE__ */ jsx33(HelpCircleIcon6, {}) })
5317
5371
  }
5318
5372
  ),
5319
- /* @__PURE__ */ jsx33(Card18, { padding: 2, radius: 2, tone: "critical", children: /* @__PURE__ */ jsxs26(Text27, { size: 1, weight: "bold", children: [
5373
+ /* @__PURE__ */ jsx33(Card18, { padding: 2, radius: 2, tone: "critical", children: /* @__PURE__ */ jsxs26(Text27, { size: 2, weight: "bold", children: [
5320
5374
  judgments.length,
5321
5375
  " judgment",
5322
5376
  judgments.length === 1 ? "" : "s",
@@ -5324,10 +5378,10 @@ function JudgmentList({ judgments }) {
5324
5378
  ] }) })
5325
5379
  ] }),
5326
5380
  grouped.map(([area, areaJudgments]) => /* @__PURE__ */ jsx33(Card18, { padding: 3, radius: 2, tone: "transparent", children: /* @__PURE__ */ jsxs26(Stack18, { space: 3, children: [
5327
- /* @__PURE__ */ jsxs26(Text27, { size: 1, weight: "semibold", children: [
5381
+ /* @__PURE__ */ jsxs26(Text27, { size: 2, weight: "semibold", children: [
5328
5382
  area,
5329
5383
  " ",
5330
- /* @__PURE__ */ jsxs26(Text27, { muted: true, size: 1, weight: "regular", as: "span", children: [
5384
+ /* @__PURE__ */ jsxs26(Text27, { muted: true, size: 2, weight: "regular", as: "span", children: [
5331
5385
  "(",
5332
5386
  areaJudgments.length,
5333
5387
  ")"
@@ -5356,29 +5410,29 @@ function JudgmentCard({ judgment }) {
5356
5410
  Text27,
5357
5411
  {
5358
5412
  align: "center",
5359
- size: 1,
5413
+ size: 2,
5360
5414
  style: { minWidth: 28 },
5361
5415
  weight: "bold",
5362
5416
  children: judgment.score
5363
5417
  }
5364
5418
  ) }),
5365
5419
  /* @__PURE__ */ jsx33(Badge18, { tone: "default", children: dimLabel }),
5366
- /* @__PURE__ */ jsx33(Text27, { size: 1, weight: "medium", children: taskName }),
5367
- /* @__PURE__ */ jsx33(Text27, { muted: true, size: 0, children: judgment.modelId }),
5368
- /* @__PURE__ */ jsx33(Text27, { muted: true, size: 0, style: { marginLeft: "auto" }, children: expanded ? "\u25B2" : "\u25BC" })
5420
+ /* @__PURE__ */ jsx33(Text27, { size: 2, weight: "medium", children: taskName }),
5421
+ /* @__PURE__ */ jsx33(Text27, { muted: true, size: 1, children: judgment.modelId }),
5422
+ /* @__PURE__ */ jsx33(Text27, { muted: true, size: 1, style: { marginLeft: "auto" }, children: expanded ? "\u25B2" : "\u25BC" })
5369
5423
  ] }),
5370
5424
  expanded && /* @__PURE__ */ jsxs26(Stack18, { space: 3, children: [
5371
5425
  /* @__PURE__ */ jsx33(Card18, { padding: 3, radius: 2, tone: "transparent", children: /* @__PURE__ */ jsx33(
5372
5426
  Text27,
5373
5427
  {
5374
5428
  muted: true,
5375
- size: 1,
5429
+ size: 2,
5376
5430
  style: { lineHeight: 1.6, whiteSpace: "pre-wrap" },
5377
5431
  children: /* @__PURE__ */ jsx33(InlineCode, { text: judgment.reason })
5378
5432
  }
5379
5433
  ) }),
5380
5434
  judgment.canonicalDocs && judgment.canonicalDocs.length > 0 && /* @__PURE__ */ jsxs26(Flex20, { align: "center", gap: 2, wrap: "wrap", children: [
5381
- /* @__PURE__ */ jsx33(Text27, { muted: true, size: 0, children: "Docs:" }),
5435
+ /* @__PURE__ */ jsx33(Text27, { muted: true, size: 1, children: "Docs:" }),
5382
5436
  judgment.canonicalDocs.map((doc) => /* @__PURE__ */ jsx33(DocBadge, { doc }, doc.slug))
5383
5437
  ] })
5384
5438
  ] })
@@ -5402,7 +5456,7 @@ function DocBadge({
5402
5456
  return /* @__PURE__ */ jsx33(
5403
5457
  Tooltip6,
5404
5458
  {
5405
- content: /* @__PURE__ */ jsx33(Box12, { padding: 2, children: /* @__PURE__ */ jsx33(Text27, { size: 1, children: tooltipLabel }) }),
5459
+ content: /* @__PURE__ */ jsx33(Box12, { padding: 2, children: /* @__PURE__ */ jsx33(Text27, { size: 2, children: tooltipLabel }) }),
5406
5460
  placement: "bottom",
5407
5461
  portal: true,
5408
5462
  children: isLinked ? /* @__PURE__ */ jsx33(
@@ -5497,7 +5551,7 @@ import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
5497
5551
  var VIEWABLE_PROMPTFOO_MODES = /* @__PURE__ */ new Set(["agentic", "observed"]);
5498
5552
  function ProvenanceCard({ provenance }) {
5499
5553
  return /* @__PURE__ */ jsx35(Card19, { padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs28(Stack19, { space: 4, children: [
5500
- /* @__PURE__ */ jsx35(Text28, { size: 2, weight: "semibold", children: "Provenance" }),
5554
+ /* @__PURE__ */ jsx35(Text28, { size: 3, weight: "semibold", children: "Provenance" }),
5501
5555
  /* @__PURE__ */ jsxs28(Grid5, { columns: [1, 2, 3], gap: 4, children: [
5502
5556
  /* @__PURE__ */ jsx35(Field, { label: "Mode", value: provenance.mode }),
5503
5557
  /* @__PURE__ */ jsx35(Field, { label: "Source", value: provenance.source.name }),
@@ -5539,13 +5593,13 @@ function Field({
5539
5593
  Text28,
5540
5594
  {
5541
5595
  muted: true,
5542
- size: 0,
5596
+ size: 1,
5543
5597
  style: { letterSpacing: "0.05em", textTransform: "uppercase" },
5544
5598
  weight: "semibold",
5545
5599
  children: label
5546
5600
  }
5547
5601
  ),
5548
- /* @__PURE__ */ jsx35(Text28, { size: 1, style: mono ? { fontFamily: "monospace" } : void 0, children: value })
5602
+ /* @__PURE__ */ jsx35(Text28, { size: 2, style: mono ? { fontFamily: "monospace" } : void 0, children: value })
5549
5603
  ] });
5550
5604
  }
5551
5605
  function GitInfo({ git }) {
@@ -5554,14 +5608,14 @@ function GitInfo({ git }) {
5554
5608
  const commitUrl = `${repoUrl}/commit/${git.sha}`;
5555
5609
  const prUrl = git.prNumber ? `${repoUrl}/pull/${git.prNumber}` : null;
5556
5610
  return /* @__PURE__ */ jsx35(Card19, { border: true, padding: 3, radius: 2, tone: "transparent", children: /* @__PURE__ */ jsxs28(Flex21, { align: "center", gap: 3, wrap: "wrap", children: [
5557
- /* @__PURE__ */ jsx35(Text28, { muted: true, size: 1, weight: "semibold", children: "Git" }),
5558
- /* @__PURE__ */ jsxs28(Text28, { size: 1, children: [
5611
+ /* @__PURE__ */ jsx35(Text28, { muted: true, size: 2, weight: "semibold", children: "Git" }),
5612
+ /* @__PURE__ */ jsxs28(Text28, { size: 2, children: [
5559
5613
  /* @__PURE__ */ jsx35("a", { href: repoUrl, rel: "noopener noreferrer", target: "_blank", children: git.repo }),
5560
5614
  " / ",
5561
5615
  /* @__PURE__ */ jsx35("a", { href: branchUrl, rel: "noopener noreferrer", target: "_blank", children: git.branch })
5562
5616
  ] }),
5563
- /* @__PURE__ */ jsx35(Text28, { muted: true, size: 1, style: { fontFamily: "monospace" }, children: /* @__PURE__ */ jsx35("a", { href: commitUrl, rel: "noopener noreferrer", target: "_blank", children: git.sha.slice(0, 12) }) }),
5564
- prUrl && /* @__PURE__ */ jsx35(Text28, { size: 1, children: /* @__PURE__ */ jsxs28("a", { href: prUrl, rel: "noopener noreferrer", target: "_blank", children: [
5617
+ /* @__PURE__ */ jsx35(Text28, { muted: true, size: 2, style: { fontFamily: "monospace" }, children: /* @__PURE__ */ jsx35("a", { href: commitUrl, rel: "noopener noreferrer", target: "_blank", children: git.sha.slice(0, 12) }) }),
5618
+ prUrl && /* @__PURE__ */ jsx35(Text28, { size: 2, children: /* @__PURE__ */ jsxs28("a", { href: prUrl, rel: "noopener noreferrer", target: "_blank", children: [
5565
5619
  "PR #",
5566
5620
  git.prNumber,
5567
5621
  " \u2192"
@@ -5576,14 +5630,14 @@ function PromptfooLinks({
5576
5630
  (e) => VIEWABLE_PROMPTFOO_MODES.has(e.mode)
5577
5631
  );
5578
5632
  if (viewable.length === 0) return null;
5579
- return /* @__PURE__ */ jsx35(Flex21, { gap: 3, wrap: "wrap", children: viewable.map((entry) => /* @__PURE__ */ jsx35(Text28, { size: 1, children: /* @__PURE__ */ jsxs28("a", { href: entry.url, rel: "noopener noreferrer", target: "_blank", children: [
5633
+ return /* @__PURE__ */ jsx35(Flex21, { gap: 3, wrap: "wrap", children: viewable.map((entry) => /* @__PURE__ */ jsx35(Text28, { size: 2, children: /* @__PURE__ */ jsxs28("a", { href: entry.url, rel: "noopener noreferrer", target: "_blank", children: [
5580
5634
  "View in Promptfoo (",
5581
5635
  entry.mode,
5582
5636
  ") \u2192"
5583
5637
  ] }) }, entry.mode)) });
5584
5638
  }
5585
5639
  if (provenance.promptfooUrl && VIEWABLE_PROMPTFOO_MODES.has(provenance.mode)) {
5586
- return /* @__PURE__ */ jsx35(Text28, { size: 1, children: /* @__PURE__ */ jsx35(
5640
+ return /* @__PURE__ */ jsx35(Text28, { size: 2, children: /* @__PURE__ */ jsx35(
5587
5641
  "a",
5588
5642
  {
5589
5643
  href: provenance.promptfooUrl,
@@ -5607,23 +5661,23 @@ function RecommendationsSection({
5607
5661
  if (recommendations.gaps.length === 0) return null;
5608
5662
  return /* @__PURE__ */ jsx36(Card20, { padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs29(Stack20, { space: 4, children: [
5609
5663
  /* @__PURE__ */ jsxs29(Flex22, { align: "center", gap: 3, wrap: "wrap", children: [
5610
- /* @__PURE__ */ jsx36(Text29, { size: 2, weight: "semibold", children: "Recommendations" }),
5664
+ /* @__PURE__ */ jsx36(Text29, { size: 3, weight: "semibold", children: "Recommendations" }),
5611
5665
  /* @__PURE__ */ jsx36(
5612
5666
  Tooltip7,
5613
5667
  {
5614
- content: /* @__PURE__ */ jsx36(Box13, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx36(Text29, { size: 1, children: GLOSSARY.recommendations }) }),
5668
+ content: /* @__PURE__ */ jsx36(Box13, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx36(Text29, { size: 2, children: GLOSSARY.recommendations }) }),
5615
5669
  placement: "bottom",
5616
5670
  portal: true,
5617
- children: /* @__PURE__ */ jsx36(Text29, { muted: true, size: 0, children: /* @__PURE__ */ jsx36(HelpCircleIcon7, {}) })
5671
+ children: /* @__PURE__ */ jsx36(Text29, { muted: true, size: 1, children: /* @__PURE__ */ jsx36(HelpCircleIcon7, {}) })
5618
5672
  }
5619
5673
  ),
5620
5674
  /* @__PURE__ */ jsx36(
5621
5675
  Tooltip7,
5622
5676
  {
5623
- content: /* @__PURE__ */ jsx36(Box13, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx36(Text29, { size: 1, children: GLOSSARY.totalPotentialLift }) }),
5677
+ content: /* @__PURE__ */ jsx36(Box13, { padding: 2, style: { maxWidth: 260 }, children: /* @__PURE__ */ jsx36(Text29, { size: 2, children: GLOSSARY.totalPotentialLift }) }),
5624
5678
  placement: "bottom",
5625
5679
  portal: true,
5626
- children: /* @__PURE__ */ jsx36(Card20, { padding: 2, radius: 2, tone: "positive", children: /* @__PURE__ */ jsxs29(Text29, { size: 1, weight: "bold", children: [
5680
+ children: /* @__PURE__ */ jsx36(Card20, { padding: 2, radius: 2, tone: "positive", children: /* @__PURE__ */ jsxs29(Text29, { size: 2, weight: "bold", children: [
5627
5681
  "+",
5628
5682
  recommendations.totalPotentialLift.toFixed(1),
5629
5683
  " pts potential lift"
@@ -5690,7 +5744,7 @@ function RecommendationRow({
5690
5744
  display: "flex",
5691
5745
  padding: "8px 4px"
5692
5746
  },
5693
- children: /* @__PURE__ */ jsx36(Text29, { muted: true, size: 1, children: index + 1 })
5747
+ children: /* @__PURE__ */ jsx36(Text29, { muted: true, size: 2, children: index + 1 })
5694
5748
  }
5695
5749
  ),
5696
5750
  /* @__PURE__ */ jsx36(
@@ -5702,7 +5756,7 @@ function RecommendationRow({
5702
5756
  display: "flex",
5703
5757
  padding: "8px 0"
5704
5758
  },
5705
- children: /* @__PURE__ */ jsx36(Text29, { size: 1, weight: "medium", children: gap.area })
5759
+ children: /* @__PURE__ */ jsx36(Text29, { size: 2, weight: "medium", children: gap.area })
5706
5760
  }
5707
5761
  ),
5708
5762
  /* @__PURE__ */ jsx36(
@@ -5732,7 +5786,7 @@ function RecommendationRow({
5732
5786
  display: "flex",
5733
5787
  padding: "8px 0"
5734
5788
  },
5735
- children: /* @__PURE__ */ jsx36(Text29, { muted: true, size: 1, children: gap.remediation })
5789
+ children: /* @__PURE__ */ jsx36(Text29, { muted: true, size: 2, children: gap.remediation })
5736
5790
  }
5737
5791
  ),
5738
5792
  /* @__PURE__ */ jsx36(
@@ -5744,7 +5798,7 @@ function RecommendationRow({
5744
5798
  display: "flex",
5745
5799
  padding: "8px 0"
5746
5800
  },
5747
- children: /* @__PURE__ */ jsx36(Card20, { padding: 2, radius: 2, tone: "positive", children: /* @__PURE__ */ jsxs29(Text29, { align: "center", size: 1, weight: "medium", children: [
5801
+ children: /* @__PURE__ */ jsx36(Card20, { padding: 2, radius: 2, tone: "positive", children: /* @__PURE__ */ jsxs29(Text29, { align: "center", size: 2, weight: "medium", children: [
5748
5802
  "+",
5749
5803
  gap.estimatedLift.toFixed(1)
5750
5804
  ] }) })
@@ -5759,7 +5813,7 @@ function RecommendationRow({
5759
5813
  display: "flex",
5760
5814
  padding: "8px 0"
5761
5815
  },
5762
- children: /* @__PURE__ */ jsxs29(Text29, { size: 1, children: [
5816
+ children: /* @__PURE__ */ jsxs29(Text29, { size: 2, children: [
5763
5817
  confIcon,
5764
5818
  " ",
5765
5819
  gap.confidence
@@ -5806,8 +5860,8 @@ function ReportHeader({
5806
5860
  }
5807
5861
  ),
5808
5862
  /* @__PURE__ */ jsxs30(Stack21, { flex: 1, space: 1, children: [
5809
- /* @__PURE__ */ jsx37(Text30, { size: 3, weight: "bold", children: title }),
5810
- hasTag && /* @__PURE__ */ jsx37(Text30, { muted: true, size: 1, children: dateLabel })
5863
+ /* @__PURE__ */ jsx37(Text30, { size: 4, weight: "bold", children: title }),
5864
+ hasTag && /* @__PURE__ */ jsx37(Text30, { muted: true, size: 2, children: dateLabel })
5811
5865
  ] }),
5812
5866
  /* @__PURE__ */ jsxs30(Flex23, { gap: 2, children: [
5813
5867
  /* @__PURE__ */ jsx37(Badge20, { mode: "outline", tone: "default", children: sourceName }),
@@ -5817,7 +5871,7 @@ function ReportHeader({
5817
5871
  /* @__PURE__ */ jsx37(
5818
5872
  Tooltip8,
5819
5873
  {
5820
- content: /* @__PURE__ */ jsx37(Box14, { padding: 2, children: /* @__PURE__ */ jsx37(Text30, { size: 1, children: "Click to copy report ID" }) }),
5874
+ content: /* @__PURE__ */ jsx37(Box14, { padding: 2, children: /* @__PURE__ */ jsx37(Text30, { size: 2, children: "Click to copy report ID" }) }),
5821
5875
  placement: "bottom",
5822
5876
  portal: true,
5823
5877
  children: /* @__PURE__ */ jsx37(
@@ -5834,7 +5888,7 @@ function ReportHeader({
5834
5888
  Text30,
5835
5889
  {
5836
5890
  muted: true,
5837
- size: 0,
5891
+ size: 1,
5838
5892
  style: {
5839
5893
  letterSpacing: "0.05em",
5840
5894
  textTransform: "uppercase"
@@ -5846,7 +5900,7 @@ function ReportHeader({
5846
5900
  /* @__PURE__ */ jsx37(
5847
5901
  Text30,
5848
5902
  {
5849
- size: 1,
5903
+ size: 2,
5850
5904
  style: {
5851
5905
  fontFamily: "monospace",
5852
5906
  userSelect: "all"
@@ -5854,7 +5908,7 @@ function ReportHeader({
5854
5908
  children: reportId
5855
5909
  }
5856
5910
  ),
5857
- /* @__PURE__ */ jsx37(Box14, { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsx37(Text30, { muted: true, size: 1, children: /* @__PURE__ */ jsx37(ClipboardIcon, {}) }) })
5911
+ /* @__PURE__ */ jsx37(Box14, { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsx37(Text30, { muted: true, size: 2, children: /* @__PURE__ */ jsx37(ClipboardIcon, {}) }) })
5858
5912
  ] })
5859
5913
  }
5860
5914
  )
@@ -5873,7 +5927,7 @@ function ThreeLayerTable({ scores }) {
5873
5927
  const hasInverted = filtered.some((s) => s.invertedRetrievalGap);
5874
5928
  return /* @__PURE__ */ jsx38(Card22, { overflow: "auto", padding: 4, radius: 2, shadow: 1, children: /* @__PURE__ */ jsxs31(Stack22, { space: 4, children: [
5875
5929
  /* @__PURE__ */ jsxs31(Flex24, { align: "center", gap: 3, children: [
5876
- /* @__PURE__ */ jsx38(Text31, { size: 2, weight: "semibold", children: "Three-Layer Decomposition" }),
5930
+ /* @__PURE__ */ jsx38(Text31, { size: 3, weight: "semibold", children: "Three-Layer Decomposition" }),
5877
5931
  /* @__PURE__ */ jsx38(Badge21, { tone: "primary", children: "full mode" })
5878
5932
  ] }),
5879
5933
  /* @__PURE__ */ jsxs31(
@@ -5921,12 +5975,42 @@ function ThreeLayerTable({ scores }) {
5921
5975
  borderRadius: 4,
5922
5976
  padding: "8px 0 8px 4px"
5923
5977
  },
5924
- children: /* @__PURE__ */ jsx38(Text31, { size: 1, weight: "medium", children: score.feature })
5978
+ children: /* @__PURE__ */ jsx38(Text31, { size: 2, weight: "medium", children: score.feature })
5979
+ }
5980
+ ),
5981
+ /* @__PURE__ */ jsx38(
5982
+ "div",
5983
+ {
5984
+ style: {
5985
+ background: rowBackground(i),
5986
+ display: "flex",
5987
+ padding: "2px 0"
5988
+ },
5989
+ children: /* @__PURE__ */ jsx38(ScoreCell, { score: score.floorScore ?? 0 })
5990
+ }
5991
+ ),
5992
+ /* @__PURE__ */ jsx38(
5993
+ "div",
5994
+ {
5995
+ style: {
5996
+ background: rowBackground(i),
5997
+ display: "flex",
5998
+ padding: "2px 0"
5999
+ },
6000
+ children: /* @__PURE__ */ jsx38(ScoreCell, { score: score.ceilingScore ?? score.totalScore })
6001
+ }
6002
+ ),
6003
+ /* @__PURE__ */ jsx38(
6004
+ "div",
6005
+ {
6006
+ style: {
6007
+ background: rowBackground(i),
6008
+ display: "flex",
6009
+ padding: "2px 0"
6010
+ },
6011
+ children: /* @__PURE__ */ jsx38(ScoreCell, { score: score.actualScore ?? 0 })
5925
6012
  }
5926
6013
  ),
5927
- /* @__PURE__ */ jsx38("div", { style: { background: rowBackground(i), padding: "6px 0" }, children: /* @__PURE__ */ jsx38(ScoreCell, { score: score.floorScore ?? 0 }) }),
5928
- /* @__PURE__ */ jsx38("div", { style: { background: rowBackground(i), padding: "6px 0" }, children: /* @__PURE__ */ jsx38(ScoreCell, { score: score.ceilingScore ?? score.totalScore }) }),
5929
- /* @__PURE__ */ jsx38("div", { style: { background: rowBackground(i), padding: "6px 0" }, children: /* @__PURE__ */ jsx38(ScoreCell, { score: score.actualScore ?? 0 }) }),
5930
6014
  /* @__PURE__ */ jsx38(
5931
6015
  "div",
5932
6016
  {
@@ -5936,7 +6020,7 @@ function ThreeLayerTable({ scores }) {
5936
6020
  display: "flex",
5937
6021
  padding: "6px 0"
5938
6022
  },
5939
- children: /* @__PURE__ */ jsx38(Text31, { size: 1, children: score.retrievalGap != null ? score.retrievalGap.toFixed(1) : "\u2014" })
6023
+ children: /* @__PURE__ */ jsx38(Text31, { size: 2, children: score.retrievalGap != null ? score.retrievalGap.toFixed(1) : "\u2014" })
5940
6024
  }
5941
6025
  ),
5942
6026
  /* @__PURE__ */ jsx38(
@@ -5948,7 +6032,7 @@ function ThreeLayerTable({ scores }) {
5948
6032
  display: "flex",
5949
6033
  padding: "6px 0"
5950
6034
  },
5951
- children: /* @__PURE__ */ jsxs31(Text31, { size: 1, children: [
6035
+ children: /* @__PURE__ */ jsxs31(Text31, { size: 2, children: [
5952
6036
  formatPercent(score.infrastructureEfficiency),
5953
6037
  score.invertedRetrievalGap && " \u26A0\uFE0F"
5954
6038
  ] })
@@ -5958,7 +6042,7 @@ function ThreeLayerTable({ scores }) {
5958
6042
  ]
5959
6043
  }
5960
6044
  ),
5961
- hasInverted && /* @__PURE__ */ jsx38(Text31, { muted: true, size: 0, children: GLOSSARY.invertedRetGap })
6045
+ hasInverted && /* @__PURE__ */ jsx38(Text31, { muted: true, size: 1, children: GLOSSARY.invertedRetGap })
5962
6046
  ] }) });
5963
6047
  }
5964
6048
 
@@ -6042,7 +6126,7 @@ function ReportDetail({
6042
6126
  text: "Back"
6043
6127
  }
6044
6128
  ),
6045
- /* @__PURE__ */ jsx39(Text32, { align: "center", muted: true, size: 2, children: "Report not found" })
6129
+ /* @__PURE__ */ jsx39(Text32, { align: "center", muted: true, size: 3, children: "Report not found" })
6046
6130
  ] }) });
6047
6131
  }
6048
6132
  const { comparison, provenance } = report;
@@ -6154,9 +6238,9 @@ function getDisabledTabTooltip(tabId, summary) {
6154
6238
  if (!summary) return null;
6155
6239
  switch (tabId) {
6156
6240
  case "diagnostics":
6157
- return /* @__PURE__ */ jsx39(Text32, { muted: true, size: 1, children: "No diagnostic data available. Diagnostics require low-scoring judgments or gap analysis recommendations." });
6241
+ return /* @__PURE__ */ jsx39(Text32, { muted: true, size: 2, children: "No diagnostic data available. Diagnostics require low-scoring judgments or gap analysis recommendations." });
6158
6242
  case "activity":
6159
- return summary.evaluationMode === "baseline" ? /* @__PURE__ */ jsxs32(Text32, { muted: true, size: 1, children: [
6243
+ return summary.evaluationMode === "baseline" ? /* @__PURE__ */ jsxs32(Text32, { muted: true, size: 2, children: [
6160
6244
  "Not available for baseline-only evaluations. Run with",
6161
6245
  " ",
6162
6246
  /* @__PURE__ */ jsx39("code", { style: inlineCodeStyle, children: "--mode full" }),
@@ -6164,7 +6248,7 @@ function getDisabledTabTooltip(tabId, summary) {
6164
6248
  " ",
6165
6249
  /* @__PURE__ */ jsx39("code", { style: inlineCodeStyle, children: "--mode agentic" }),
6166
6250
  " to capture agent browsing behavior."
6167
- ] }) : /* @__PURE__ */ jsx39(Text32, { muted: true, size: 1, children: "No agent activity data was recorded for this evaluation." });
6251
+ ] }) : /* @__PURE__ */ jsx39(Text32, { muted: true, size: 2, children: "No agent activity data was recorded for this evaluation." });
6168
6252
  default:
6169
6253
  return null;
6170
6254
  }
@@ -6288,7 +6372,7 @@ function ScoreTimeline({ mode = null, source = null }) {
6288
6372
  areaNames.map((name) => /* @__PURE__ */ jsx40("option", { value: name, children: name }, name))
6289
6373
  ] })
6290
6374
  ] }),
6291
- /* @__PURE__ */ jsx40(Card23, { padding: 3, radius: 2, shadow: 1, children: loading ? /* @__PURE__ */ jsx40(Flex25, { align: "center", justify: "center", style: { height: 200 }, children: /* @__PURE__ */ jsx40(Text33, { muted: true, size: 1, children: "Loading\u2026" }) }) : chartPoints.length === 0 ? /* @__PURE__ */ jsx40(Flex25, { align: "center", justify: "center", style: { height: 200 }, children: /* @__PURE__ */ jsx40(Text33, { muted: true, size: 1, children: "No reports found for this time range" }) }) : /* @__PURE__ */ jsxs33(
6375
+ /* @__PURE__ */ jsx40(Card23, { padding: 3, radius: 2, shadow: 1, children: loading ? /* @__PURE__ */ jsx40(Flex25, { align: "center", justify: "center", style: { height: 200 }, children: /* @__PURE__ */ jsx40(Text33, { muted: true, size: 2, children: "Loading\u2026" }) }) : chartPoints.length === 0 ? /* @__PURE__ */ jsx40(Flex25, { align: "center", justify: "center", style: { height: 200 }, children: /* @__PURE__ */ jsx40(Text33, { muted: true, size: 2, children: "No reports found for this time range" }) }) : /* @__PURE__ */ jsxs33(
6292
6376
  "svg",
6293
6377
  {
6294
6378
  style: { display: "block", width: "100%" },
@@ -6382,7 +6466,7 @@ function ScoreTimeline({ mode = null, source = null }) {
6382
6466
  ]
6383
6467
  }
6384
6468
  ) }),
6385
- /* @__PURE__ */ jsxs33(Text33, { muted: true, size: 1, children: [
6469
+ /* @__PURE__ */ jsxs33(Text33, { muted: true, size: 2, children: [
6386
6470
  chartPoints.length,
6387
6471
  " data point",
6388
6472
  chartPoints.length !== 1 ? "s" : ""
@@ -6445,14 +6529,14 @@ function Dashboard() {
6445
6529
  return /* @__PURE__ */ jsx41(Container, { width: 2, children: /* @__PURE__ */ jsxs34(Stack25, { padding: 4, space: 4, children: [
6446
6530
  /* @__PURE__ */ jsxs34(Flex26, { align: "center", gap: 3, children: [
6447
6531
  /* @__PURE__ */ jsxs34(Stack25, { flex: 1, space: 1, children: [
6448
- /* @__PURE__ */ jsx41(Text34, { size: 3, weight: "bold", children: "AI Literacy Framework" }),
6449
- /* @__PURE__ */ jsx41(Text34, { muted: true, size: 1, children: "Evaluation reports and score trends" })
6532
+ /* @__PURE__ */ jsx41(Text34, { size: 4, weight: "bold", children: "AI Literacy Framework" }),
6533
+ /* @__PURE__ */ jsx41(Text34, { muted: true, size: 2, children: "Evaluation reports and score trends" })
6450
6534
  ] }),
6451
6535
  !isDetail && /* @__PURE__ */ jsxs34(Flex26, { gap: 2, children: [
6452
6536
  /* @__PURE__ */ jsxs34(
6453
6537
  Select3,
6454
6538
  {
6455
- fontSize: 1,
6539
+ fontSize: 2,
6456
6540
  onChange: (e) => setSource(e.currentTarget.value || null),
6457
6541
  value: source ?? "",
6458
6542
  children: [
@@ -6464,7 +6548,7 @@ function Dashboard() {
6464
6548
  /* @__PURE__ */ jsxs34(
6465
6549
  Select3,
6466
6550
  {
6467
- fontSize: 1,
6551
+ fontSize: 2,
6468
6552
  onChange: (e) => setMode(e.currentTarget.value || null),
6469
6553
  value: mode ?? "",
6470
6554
  children: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/ailf-studio",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "AI Literacy Framework — Sanity Studio dashboard plugin",
5
5
  "type": "module",
6
6
  "license": "MIT",