@bestagentkits/render 0.1.1-next.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/README.md +189 -34
  3. package/assets/fonts/bricolage-grotesque/OFL.txt +93 -0
  4. package/assets/fonts/fraunces/OFL.txt +93 -0
  5. package/assets/fonts/geist/OFL.txt +93 -0
  6. package/assets/fonts/inter-tight/OFL.txt +93 -0
  7. package/assets/fonts/jetbrains-mono/OFL.txt +93 -0
  8. package/assets/fonts/plus-jakarta-sans/OFL.txt +93 -0
  9. package/dist/cli.d.ts +2 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +51 -10
  12. package/dist/cli.js.map +1 -1
  13. package/dist/mcp-server.d.ts +37 -0
  14. package/dist/mcp-server.d.ts.map +1 -0
  15. package/dist/mcp-server.js +274 -0
  16. package/dist/mcp-server.js.map +1 -0
  17. package/dist/registry/roster.d.ts +1 -1
  18. package/dist/registry/roster.d.ts.map +1 -1
  19. package/dist/registry/roster.js +222 -6
  20. package/dist/registry/roster.js.map +1 -1
  21. package/dist/render/block-helpers.d.ts +52 -0
  22. package/dist/render/block-helpers.d.ts.map +1 -0
  23. package/dist/render/block-helpers.js +113 -0
  24. package/dist/render/block-helpers.js.map +1 -0
  25. package/dist/render/blocks.d.ts +3 -4
  26. package/dist/render/blocks.d.ts.map +1 -1
  27. package/dist/render/blocks.js +126 -121
  28. package/dist/render/blocks.js.map +1 -1
  29. package/dist/render/charts.d.ts +5 -0
  30. package/dist/render/charts.d.ts.map +1 -1
  31. package/dist/render/charts.js +205 -90
  32. package/dist/render/charts.js.map +1 -1
  33. package/dist/render/derived-variables.d.ts +17 -0
  34. package/dist/render/derived-variables.d.ts.map +1 -0
  35. package/dist/render/derived-variables.js +17 -0
  36. package/dist/render/derived-variables.js.map +1 -0
  37. package/dist/render/diagram-fallback.d.ts +25 -0
  38. package/dist/render/diagram-fallback.d.ts.map +1 -0
  39. package/dist/render/diagram-fallback.js +86 -0
  40. package/dist/render/diagram-fallback.js.map +1 -0
  41. package/dist/render/document.d.ts +4 -0
  42. package/dist/render/document.d.ts.map +1 -1
  43. package/dist/render/document.js +34 -6
  44. package/dist/render/document.js.map +1 -1
  45. package/dist/render/effects-styles.d.ts +14 -0
  46. package/dist/render/effects-styles.d.ts.map +1 -0
  47. package/dist/render/effects-styles.js +39 -0
  48. package/dist/render/effects-styles.js.map +1 -0
  49. package/dist/render/embedded-fonts.generated.d.ts +22 -0
  50. package/dist/render/embedded-fonts.generated.d.ts.map +1 -0
  51. package/dist/render/embedded-fonts.generated.js +59 -0
  52. package/dist/render/embedded-fonts.generated.js.map +1 -0
  53. package/dist/render/feature-styles.d.ts +14 -0
  54. package/dist/render/feature-styles.d.ts.map +1 -0
  55. package/dist/render/feature-styles.js +161 -0
  56. package/dist/render/feature-styles.js.map +1 -0
  57. package/dist/render/font-faces.d.ts +22 -0
  58. package/dist/render/font-faces.d.ts.map +1 -0
  59. package/dist/render/font-faces.js +60 -0
  60. package/dist/render/font-faces.js.map +1 -0
  61. package/dist/render/outline.d.ts +21 -0
  62. package/dist/render/outline.d.ts.map +1 -0
  63. package/dist/render/outline.js +44 -0
  64. package/dist/render/outline.js.map +1 -0
  65. package/dist/render/render.d.ts.map +1 -1
  66. package/dist/render/render.js +53 -10
  67. package/dist/render/render.js.map +1 -1
  68. package/dist/render/runtime.d.ts.map +1 -1
  69. package/dist/render/runtime.js +184 -10
  70. package/dist/render/runtime.js.map +1 -1
  71. package/dist/render/showcase-blocks.d.ts +47 -0
  72. package/dist/render/showcase-blocks.d.ts.map +1 -0
  73. package/dist/render/showcase-blocks.js +349 -0
  74. package/dist/render/showcase-blocks.js.map +1 -0
  75. package/dist/render/showcase-styles.d.ts +15 -0
  76. package/dist/render/showcase-styles.d.ts.map +1 -0
  77. package/dist/render/showcase-styles.js +217 -0
  78. package/dist/render/showcase-styles.js.map +1 -0
  79. package/dist/render/signature-styles.d.ts +18 -0
  80. package/dist/render/signature-styles.d.ts.map +1 -0
  81. package/dist/render/signature-styles.js +41 -0
  82. package/dist/render/signature-styles.js.map +1 -0
  83. package/dist/render/styles.d.ts +18 -9
  84. package/dist/render/styles.d.ts.map +1 -1
  85. package/dist/render/styles.js +224 -128
  86. package/dist/render/styles.js.map +1 -1
  87. package/dist/render/surface-styles.d.ts +24 -0
  88. package/dist/render/surface-styles.d.ts.map +1 -0
  89. package/dist/render/surface-styles.js +41 -0
  90. package/dist/render/surface-styles.js.map +1 -0
  91. package/dist/render/verify.d.ts.map +1 -1
  92. package/dist/render/verify.js +30 -0
  93. package/dist/render/verify.js.map +1 -1
  94. package/dist/spec/normalize.d.ts.map +1 -1
  95. package/dist/spec/normalize.js +32 -0
  96. package/dist/spec/normalize.js.map +1 -1
  97. package/dist/theme/load-theme.d.ts +2 -2
  98. package/dist/theme/load-theme.d.ts.map +1 -1
  99. package/dist/theme/load-theme.js +46 -10
  100. package/dist/theme/load-theme.js.map +1 -1
  101. package/dist/theme/presets.d.ts +4 -3
  102. package/dist/theme/presets.d.ts.map +1 -1
  103. package/dist/theme/presets.js +35 -18
  104. package/dist/theme/presets.js.map +1 -1
  105. package/dist/theme/tokens.d.ts.map +1 -1
  106. package/dist/theme/tokens.js +4 -4
  107. package/dist/theme/tokens.js.map +1 -1
  108. package/dist/version.d.ts +1 -1
  109. package/dist/version.d.ts.map +1 -1
  110. package/dist/version.js +1 -1
  111. package/dist/version.js.map +1 -1
  112. package/llms.txt +25 -0
  113. package/package.json +9 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded-fonts.generated.js","sourceRoot":"","sources":["../../src/render/embedded-fonts.generated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,CAAC,MAAM,WAAW,GAAG,0JAA0J,CAAC;AACtL,MAAM,CAAC,MAAM,gBAAgB,GAAG,8IAA8I,CAAC;AAE/K,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD;QACE,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,iFAAiF;QAC5F,KAAK,EAAE,kysCAAkysC;QACzysC,UAAU,EAAE,k7UAAk7U;KAC/7U;IACD;QACE,MAAM,EAAE,aAAa;QACrB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,iFAAiF;QAC5F,KAAK,EAAE,8r/CAA8r/C;QACrs/C,UAAU,EAAE,0keAA0ke;KACvle;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,oGAAoG;QAC/G,KAAK,EAAE,01rDAA01rD;QACj2rD,UAAU,EAAE,0tWAA0tW;KACvuW;IACD;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,gGAAgG;QAC3G,KAAK,EAAE,knpDAAknpD;QACznpD,UAAU,EAAE,0xTAA0xT;KACvyT;IACD;QACE,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,gFAAgF;QAC3F,KAAK,EAAE,070DAA070D;QACj80D,UAAU,EAAE,0pbAA0pb;KACvqb;IACD;QACE,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,oGAAoG;QAC/G,KAAK,EAAE,knnCAAknnC;QACznnC,UAAU,EAAE,k4VAAk4V;KAC/4V;CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Per-feature stylesheets.
3
+ *
4
+ * The compiler emits a sheet here only when the page uses that feature, and
5
+ * `verify.ts` checks the marker selector in both directions, so selectors for a
6
+ * feature must stay in its own entry and never move into `BASE_CSS`.
7
+ *
8
+ * Shared vocabulary from the base sheet: `--ak-transition` for every state
9
+ * change, `--ak-fill` for surface backgrounds (a top-lit sheen in dark mode),
10
+ * `--ak-tint` for hover washes and `--ak-ring` for focus halos on inputs.
11
+ */
12
+ import type { RuntimeFeature } from '../registry/roster.js';
13
+ export declare const FEATURE_CSS: Readonly<Partial<Record<RuntimeFeature, string>>>;
14
+ //# sourceMappingURL=feature-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-styles.d.ts","sourceRoot":"","sources":["../../src/render/feature-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CA2JzE,CAAC"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Per-feature stylesheets.
3
+ *
4
+ * The compiler emits a sheet here only when the page uses that feature, and
5
+ * `verify.ts` checks the marker selector in both directions, so selectors for a
6
+ * feature must stay in its own entry and never move into `BASE_CSS`.
7
+ *
8
+ * Shared vocabulary from the base sheet: `--ak-transition` for every state
9
+ * change, `--ak-fill` for surface backgrounds (a top-lit sheen in dark mode),
10
+ * `--ak-tint` for hover washes and `--ak-ring` for focus halos on inputs.
11
+ */
12
+ import { SHOWCASE_CSS } from './showcase-styles.js';
13
+ const TRANSITION = 'transition:var(--ak-transition)';
14
+ export const FEATURE_CSS = {
15
+ ...SHOWCASE_CSS,
16
+ tabs: `.ak-tabs [role="tablist"]{display:inline-flex;flex-wrap:wrap;gap:3px;max-width:100%;padding:3px;margin-bottom:calc(var(--ak-space-unit) * 2);background:color-mix(in srgb,var(--ak-color-text) 5%,var(--ak-color-background));border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium)}
17
+ .ak-tabs [role="tab"]{font:inherit;font-size:.92em;font-weight:550;background:transparent;border:0;padding:.5em 1.05em;min-height:36px;cursor:pointer;color:var(--ak-color-text-muted);border-radius:max(0px,calc(var(--ak-radius-medium) - 3px));${TRANSITION}}
18
+ .ak-tabs [role="tab"]:hover{color:var(--ak-color-text)}
19
+ .ak-tabs [role="tab"][aria-selected="true"]{color:var(--ak-color-text);background:var(--ak-color-surface);box-shadow:0 0 0 var(--ak-border-width) var(--ak-color-border),0 1px 3px color-mix(in srgb,var(--ak-color-text) 10%,transparent)}
20
+ .ak-tabs [role="tabpanel"]{padding:0;max-width:var(--ak-measure)}
21
+ .ak-tabs [role="tabpanel"][hidden]{display:none}
22
+ @media (max-width:768px){.ak-tabs [role="tab"]{min-height:44px}}`,
23
+ accordion: `.ak-accordion{display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 1)}
24
+ .ak-accordion details{background:var(--ak-fill);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);${TRANSITION}}
25
+ .ak-accordion details[open]{border-color:color-mix(in srgb,var(--ak-color-accent) 28%,var(--ak-color-border));box-shadow:var(--ak-elevation-card)}
26
+ .ak-accordion summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:calc(var(--ak-space-unit) * 2);cursor:pointer;padding:calc(var(--ak-space-unit) * 1.75) calc(var(--ak-space-unit) * 2.25);min-height:48px;font-family:var(--ak-font-heading);font-weight:600;border-radius:inherit;${TRANSITION}}
27
+ .ak-accordion summary::-webkit-details-marker{display:none}
28
+ .ak-accordion summary::after{content:"";flex:none;width:26px;height:26px;border-radius:50%;border:var(--ak-border-width) solid var(--ak-color-border);color:var(--ak-color-text-muted);background:linear-gradient(currentColor,currentColor) center/10px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 10px no-repeat;${TRANSITION}}
29
+ .ak-accordion summary:hover{color:var(--ak-color-accent)}
30
+ .ak-accordion summary:hover::after{border-color:var(--ak-color-accent);color:var(--ak-color-accent)}
31
+ .ak-accordion details[open] summary::after{transform:rotate(180deg);background-size:10px 1.5px,1.5px 0;background-color:var(--ak-tint);color:var(--ak-color-accent);border-color:color-mix(in srgb,var(--ak-color-accent) 40%,var(--ak-color-border))}
32
+ .ak-accordion details > :not(summary){padding:0 calc(var(--ak-space-unit) * 2.25) calc(var(--ak-space-unit) * 2);margin:0;max-width:var(--ak-measure);color:var(--ak-color-text-muted)}`,
33
+ carousel: `.ak-carousel{display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 1.5)}
34
+ .ak-carousel-slides{position:relative;min-height:120px}
35
+ .ak-carousel-slide{display:flex;flex-direction:column;justify-content:flex-end;gap:.5em;min-height:200px;padding:calc(var(--ak-space-unit) * 4);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-large);background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--ak-color-accent) 12%,transparent),transparent 55%),var(--ak-fill);box-shadow:var(--ak-elevation-card)}
36
+ .ak-carousel-slide h3{font-size:calc(var(--ak-font-size-base) * 1.56);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),2));letter-spacing:-.018em}
37
+ .ak-carousel-slide p{color:var(--ak-color-text-muted);max-width:56ch;margin:0}
38
+ .ak-carousel-slide[hidden]{display:none}
39
+ .ak-carousel-controls{display:flex;gap:var(--ak-space-unit);align-items:center}
40
+ .ak-carousel-controls [data-ak-carousel="prev"]::before{content:"\\2190";font-family:var(--ak-font-mono)}
41
+ .ak-carousel-controls [data-ak-carousel="next"]::after{content:"\\2192";font-family:var(--ak-font-mono)}
42
+ .ak-carousel-status{margin-left:auto;font-family:var(--ak-font-mono);font-size:.78rem;letter-spacing:.08em;color:var(--ak-color-text-muted);font-variant-numeric:tabular-nums}
43
+ @media (max-width:480px){.ak-carousel-slide{min-height:160px;padding:calc(var(--ak-space-unit) * 2.5)}}`,
44
+ slider: `.ak-slider{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.6em var(--ak-space-unit);max-width:440px}
45
+ .ak-slider label{font-weight:550}
46
+ .ak-slider input[type="range"]{grid-column:1 / -1;width:100%;margin:0;accent-color:var(--ak-color-accent);min-height:28px;cursor:pointer}
47
+ .ak-slider output{grid-row:1;grid-column:2;min-width:2.5em;padding:.15em .6em;text-align:center;border-radius:999px;background:var(--ak-tint);border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-color-accent) 25%,var(--ak-color-border));font-family:var(--ak-font-mono);font-size:.8rem;color:var(--ak-color-accent);font-variant-numeric:tabular-nums}
48
+ @media (max-width:768px){.ak-slider input[type="range"]{min-height:44px}}`,
49
+ dialog: `dialog.ak-dialog{width:min(560px,calc(100vw - 32px));max-width:none;border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-large);background:var(--ak-fill);color:var(--ak-color-text);padding:calc(var(--ak-space-unit) * 3.5);box-shadow:var(--ak-elevation-popover)}
50
+ dialog.ak-dialog::backdrop{background:color-mix(in srgb,var(--ak-color-background) 62%,transparent);backdrop-filter:blur(8px) saturate(.9)}
51
+ dialog.ak-dialog[open]{animation:ak-rise calc(var(--ak-motion-duration) * 1.5) var(--ak-motion-easing)}
52
+ @keyframes ak-rise{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
53
+ .ak-dialog-title{margin-bottom:var(--ak-space-unit)}
54
+ .ak-dialog-title h2{font-size:calc(var(--ak-font-size-base) * 1.4);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),1.5))}
55
+ dialog.ak-dialog > p{color:var(--ak-color-text-muted)}
56
+ .ak-dialog-actions{display:flex;flex-wrap:wrap;gap:var(--ak-space-unit);justify-content:flex-end;margin:calc(var(--ak-space-unit) * 3) calc(var(--ak-space-unit) * -3.5) calc(var(--ak-space-unit) * -3.5);padding:calc(var(--ak-space-unit) * 2) calc(var(--ak-space-unit) * 3.5);border-top:var(--ak-border-width) solid var(--ak-color-border);background:color-mix(in srgb,var(--ak-color-text) 3%,transparent);border-radius:0 0 var(--ak-radius-large) var(--ak-radius-large)}`,
57
+ chart: `.ak-chart{display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 2);background:var(--ak-fill);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 3);box-shadow:var(--ak-elevation-card);--ak-c0:var(--ak-color-accent);--ak-c1:var(--ak-color-info);--ak-c2:var(--ak-color-success);--ak-c3:var(--ak-color-warning);--ak-c4:var(--ak-color-danger);--ak-c5:var(--ak-color-text-muted)}
58
+ @supports (color:oklch(from red l c h)){.ak-chart{--ak-c1:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 210));--ak-c2:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 120));--ak-c3:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 60));--ak-c4:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 290));--ak-c5:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 165))}}
59
+ .ak-chart svg{display:block;width:100%;height:auto;overflow:visible}
60
+ .ak-chart:is([data-ak-kind="pie"],[data-ak-kind="donut"]) svg{max-height:320px}
61
+ .ak-chart figcaption{font-family:var(--ak-font-heading);font-weight:600;font-size:calc(var(--ak-font-size-base) * 1.06);letter-spacing:-.01em;color:var(--ak-color-text)}
62
+ .ak-chart .ak-chart-s0{--ak-series:var(--ak-c0)}
63
+ .ak-chart .ak-chart-s1{--ak-series:var(--ak-c1)}
64
+ .ak-chart .ak-chart-s2{--ak-series:var(--ak-c2)}
65
+ .ak-chart .ak-chart-s3{--ak-series:var(--ak-c3)}
66
+ .ak-chart .ak-chart-s4{--ak-series:var(--ak-c4)}
67
+ .ak-chart .ak-chart-s5{--ak-series:var(--ak-c5)}
68
+ .ak-chart .ak-chart-bar:not([fill]),.ak-chart .ak-chart-slice{fill:var(--ak-series,var(--ak-c0))}
69
+ .ak-chart .ak-chart-bar,.ak-chart .ak-chart-slice{${TRANSITION}}
70
+ .ak-chart .ak-chart-slice{stroke:var(--ak-color-surface);stroke-width:3}
71
+ .ak-chart .ak-chart-slice:hover,.ak-chart .ak-chart-slice:focus-visible{opacity:.72}
72
+ .ak-chart svg:has(.ak-chart-bar:is(:hover,:focus-visible)) .ak-chart-bar:not(:hover,:focus-visible){opacity:.38}
73
+ .ak-chart-canvas{overflow-x:auto;overscroll-behavior-x:contain}
74
+ .ak-chart:is([data-ak-kind="bar"],[data-ak-kind="line"],[data-ak-kind="area"]) .ak-chart-canvas svg{min-width:560px}
75
+ .ak-chart .ak-chart-stop{stop-color:var(--ak-series,var(--ak-c0));stop-opacity:.34}
76
+ .ak-chart .ak-chart-stop--end{stop-opacity:0}
77
+ .ak-chart .ak-chart-stop--bar{stop-opacity:1}
78
+ .ak-chart .ak-chart-stop--bar.ak-chart-stop--end{stop-opacity:.62}
79
+ .ak-chart .ak-chart-value{fill:var(--ak-color-text);font-family:var(--ak-font-mono);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;opacity:0;pointer-events:none;${TRANSITION}}
80
+ .ak-chart :is(.ak-chart-bar,.ak-chart-point):is(:hover,:focus-visible) + .ak-chart-value{opacity:1}
81
+ .ak-chart .ak-chart-line{fill:none;stroke:var(--ak-series,var(--ak-c0));stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
82
+ .ak-chart .ak-chart-point{fill:var(--ak-color-surface);stroke:var(--ak-series,var(--ak-c0));stroke-width:2.25;${TRANSITION}}
83
+ .ak-chart .ak-chart-point:hover,.ak-chart .ak-chart-point:focus-visible{fill:var(--ak-series,var(--ak-c0));stroke-width:5;stroke-opacity:.35}
84
+ .ak-chart .ak-chart-area{stroke:none}
85
+ .ak-chart .ak-chart-axis{stroke:color-mix(in srgb,var(--ak-color-text) 28%,var(--ak-color-border));stroke-width:1}
86
+ .ak-chart .ak-chart-grid{stroke:var(--ak-color-border);stroke-width:1;stroke-dasharray:1 5;stroke-linecap:round}
87
+ .ak-chart .ak-chart-track{fill:color-mix(in srgb,var(--ak-color-text) 7%,var(--ak-color-surface))}
88
+ .ak-chart .ak-chart-label{fill:var(--ak-color-text-muted);font-family:var(--ak-font-mono);font-size:10.5px;font-variant-numeric:tabular-nums}
89
+ .ak-chart .ak-chart-label--row{fill:var(--ak-color-text);font-family:var(--ak-font-body);font-size:13px;font-weight:500}
90
+ .ak-chart .ak-chart-total{fill:var(--ak-color-text);font-family:var(--ak-font-heading);font-size:26px;font-weight:700;letter-spacing:-.02em}
91
+ .ak-chart :focus-visible{outline:2px solid var(--ak-color-accent)}
92
+ .ak-chart-legend{display:flex;flex-wrap:wrap;gap:.5em 1.4em;list-style:none;margin:0;padding:0;font-size:.82rem;color:var(--ak-color-text-muted)}
93
+ .ak-chart:is([data-ak-kind="pie"],[data-ak-kind="donut"]) .ak-chart-legend{justify-content:center}
94
+ .ak-chart-legend li{display:inline-flex;align-items:center;gap:.5em}
95
+ .ak-chart-swatch{width:.7em;height:.7em;border-radius:2px;background:var(--ak-series,var(--ak-c0))}
96
+ .ak-details{border-top:var(--ak-border-width) solid var(--ak-color-border);padding-top:calc(var(--ak-space-unit) * 1.5);margin-top:calc(var(--ak-space-unit) * -.5)}
97
+ .ak-details summary{display:inline-flex;align-items:center;gap:.55em;cursor:pointer;list-style:none;font-family:var(--ak-font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ak-color-text-muted);${TRANSITION}}
98
+ .ak-details summary::-webkit-details-marker{display:none}
99
+ .ak-details summary::before{content:"";width:.42em;height:.42em;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);${TRANSITION}}
100
+ .ak-details[open] summary::before{transform:rotate(45deg)}
101
+ .ak-details summary:hover{color:var(--ak-color-accent)}
102
+ .ak-details[open] summary{margin-bottom:calc(var(--ak-space-unit) * 1.5)}
103
+ .ak-details table{font-size:.85rem;border:var(--ak-border-width) solid var(--ak-color-border)}
104
+ .ak-details caption{font-size:.8rem}
105
+ @media (max-width:768px){.ak-details summary{min-height:44px}}`,
106
+ filter: `.ak-search{display:flex;flex-direction:column;gap:.5em;max-width:420px}
107
+ .ak-search label{font-weight:550}
108
+ .ak-search input{font:inherit;min-height:44px;padding:.55em .95em;border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);background:var(--ak-color-surface);color:var(--ak-color-text);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--ak-color-text) 6%,transparent);${TRANSITION}}
109
+ .ak-search input::placeholder{color:var(--ak-color-text-muted);opacity:.85}
110
+ .ak-search input:hover{border-color:color-mix(in srgb,var(--ak-color-text) 30%,var(--ak-color-border))}
111
+ .ak-search input:focus-visible{outline:0;border-color:var(--ak-color-accent);box-shadow:var(--ak-ring)}`,
112
+ theme: `.ak-theme-toggle{min-height:34px;padding:.35em .9em;font-family:var(--ak-font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ak-color-text-muted);border-radius:999px;background:var(--ak-color-surface)}
113
+ .ak-theme-toggle::before{content:"";width:.75em;height:.75em;border-radius:50%;background:linear-gradient(90deg,currentColor 50%,transparent 50%);box-shadow:inset 0 0 0 1.5px currentColor;${TRANSITION}}
114
+ .ak-theme-toggle:hover{color:var(--ak-color-text)}
115
+ .ak-theme-toggle[aria-pressed="true"]::before{transform:rotate(180deg)}
116
+ @keyframes ak-reveal{from{clip-path:circle(0 at var(--ak-vt-x,100%) var(--ak-vt-y,0))}to{clip-path:circle(150vmax at var(--ak-vt-x,100%) var(--ak-vt-y,0))}}
117
+ @media (prefers-reduced-motion:no-preference){::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){animation:ak-reveal .75s cubic-bezier(.16,1,.3,1)}}
118
+ @media (max-width:768px){.ak-theme-toggle{min-height:44px}}`,
119
+ media: `.ak-media-fallback{display:flex;flex-direction:column;align-items:flex-start;gap:.5em;background:var(--ak-fill);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 2.5)}
120
+ .ak-media-fallback p{margin:0}
121
+ .ak-media-fallback img{width:100%;max-width:100%;border-radius:var(--ak-radius-small);margin-bottom:calc(var(--ak-space-unit) * 1)}
122
+ .ak-media-fallback > p:first-of-type:has(strong){font-family:var(--ak-font-heading);font-size:calc(var(--ak-font-size-base) * 1.1)}
123
+ .ak-media-fallback .ak-caption{display:inline-flex;align-items:center;gap:.5em;font-family:var(--ak-font-mono);font-size:.72rem;letter-spacing:.04em}
124
+ .ak-media-fallback .ak-caption::before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--ak-color-warning)}
125
+ .ak-media-fallback > a{display:inline-flex;align-items:center;gap:.35em;margin-top:.35em;font-weight:550}
126
+ .ak-media-fallback > a::after{content:"\\2197";text-decoration:none}`,
127
+ outline: `.ak-toc{display:none;font-size:.84rem}
128
+ .ak-toc-title{margin:0 0 .9em;font-family:var(--ak-font-mono);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ak-color-text-muted)}
129
+ .ak-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-left:var(--ak-border-width) solid var(--ak-color-border)}
130
+ .ak-toc a{display:block;margin-left:calc(var(--ak-border-width) * -1);padding:.42em 0 .42em 1.1em;border-left:2px solid transparent;color:var(--ak-color-text-muted);text-decoration:none;line-height:1.4;${TRANSITION}}
131
+ .ak-toc a:hover{color:var(--ak-color-text);border-left-color:color-mix(in srgb,var(--ak-color-text) 30%,transparent)}
132
+ .ak-toc a[aria-current]{color:var(--ak-color-accent);border-left-color:var(--ak-color-accent);font-weight:600}
133
+ @media (min-width:1280px){.ak-shell--outline{max-width:1400px;display:grid;grid-template-columns:minmax(0,1fr) 216px;column-gap:calc(var(--ak-space-unit) * 8);align-items:start}.ak-shell--outline > *{grid-column:1}.ak-shell--outline > .ak-toc{display:block;grid-column:2;grid-row:1 / span 2;position:sticky;top:calc(var(--ak-space-unit) * 4);max-height:calc(100vh - var(--ak-space-unit) * 8);overflow-y:auto;padding-top:calc(var(--ak-space-unit) * 1)}}
134
+ @media print{.ak-toc{display:none!important}}`,
135
+ diagram: `.ak-diagram{overflow-x:auto}
136
+ .ak-diagram svg{max-width:100%;height:auto}
137
+ .ak-diagram-fallback{display:flex;flex-direction:column;gap:var(--ak-space-unit);background:var(--ak-fill);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 3);box-shadow:var(--ak-elevation-card)}
138
+ .ak-diagram-fallback{gap:calc(var(--ak-space-unit) * 2)}
139
+ .ak-diagram-fallback > .ak-caption{font-size:.74rem;color:var(--ak-color-text-muted)}
140
+ .ak-diagram-title{margin:0;font-family:var(--ak-font-mono);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ak-color-text-muted)}
141
+ .ak-flow{list-style:none;margin:0;padding:calc(var(--ak-space-unit) * 1) 0;display:flex;align-items:center;overflow-x:auto}
142
+ .ak-flow > li{display:flex;align-items:center;flex:1 1 auto;min-width:0}
143
+ .ak-flow > li:last-child{flex:0 0 auto}
144
+ .ak-flow-node{flex:none;display:flex;flex-direction:column;gap:.3em;min-width:9rem;padding:calc(var(--ak-space-unit) * 1.75) calc(var(--ak-space-unit) * 2.25);background:var(--ak-color-surface);border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-color-text) 14%,var(--ak-color-border));border-radius:var(--ak-radius-medium);box-shadow:var(--ak-elevation-card);${TRANSITION}}
145
+ .ak-flow-name{font-family:var(--ak-font-heading);font-weight:600;line-height:1.25;color:var(--ak-color-text)}
146
+ .ak-flow-node code{align-self:flex-start;padding:0;background:none;border:0;font-size:.72rem;color:var(--ak-color-text-muted)}
147
+ .ak-flow > li:first-child .ak-flow-node{border-color:color-mix(in srgb,var(--ak-color-accent) 45%,var(--ak-color-border))}
148
+ .ak-flow > li:last-child .ak-flow-node{background:color-mix(in srgb,var(--ak-color-accent) 9%,var(--ak-color-surface));border-color:var(--ak-color-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--ak-color-accent) 12%,transparent),var(--ak-elevation-card)}
149
+ .ak-flow-node:hover{border-color:var(--ak-color-accent)}
150
+ .ak-flow-edge{position:relative;flex:1;min-width:7rem;height:2.75rem;margin:0 .4rem}
151
+ .ak-flow-edge::before{content:"";position:absolute;left:0;right:6px;top:50%;height:1.5px;background:linear-gradient(90deg,color-mix(in srgb,var(--ak-color-text) 22%,var(--ak-color-border)),var(--ak-color-accent))}
152
+ .ak-flow-edge::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);border-left:7px solid var(--ak-color-accent);border-top:4.5px solid transparent;border-bottom:4.5px solid transparent}
153
+ .ak-flow-edge-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:calc(100% - 1.5rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.2em .7em;background:var(--ak-color-surface);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:999px;font-family:var(--ak-font-mono);font-size:.66rem;letter-spacing:.03em;color:var(--ak-color-text-muted)}
154
+ .ak-flow-nodes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:calc(var(--ak-space-unit) * 1.5)}
155
+ .ak-flow-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
156
+ .ak-flow-links li{display:flex;flex-wrap:wrap;align-items:center;gap:.6em;padding:.65em 0;border-top:var(--ak-border-width) solid var(--ak-color-border)}
157
+ .ak-flow-arrow{color:var(--ak-color-accent);font-weight:600}
158
+ .ak-flow-link-label{margin-left:auto;font-size:.88rem;color:var(--ak-color-text-muted)}
159
+ @media (max-width:640px){.ak-flow{flex-direction:column;align-items:stretch}.ak-flow > li{flex-direction:column;align-items:stretch}.ak-flow-edge{flex:none;min-width:0;height:3.25rem;margin:.25rem 0}.ak-flow-edge::before{left:50%;right:auto;top:0;bottom:6px;width:1.5px;height:auto;background:linear-gradient(180deg,color-mix(in srgb,var(--ak-color-text) 22%,var(--ak-color-border)),var(--ak-color-accent))}.ak-flow-edge::after{right:auto;left:50%;top:auto;bottom:0;transform:translateX(-50%);border-left:4.5px solid transparent;border-right:4.5px solid transparent;border-top:7px solid var(--ak-color-accent);border-bottom:0}}`,
160
+ };
161
+ //# sourceMappingURL=feature-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-styles.js","sourceRoot":"","sources":["../../src/render/feature-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,UAAU,GAAG,iCAAiC,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAsD;IAC5E,GAAG,YAAY;IACf,IAAI,EAAE;oPAC4O,UAAU;;;;;iEAK7L;IAE/D,SAAS,EAAE;mJACsI,UAAU;;6TAEgK,UAAU;;kVAEW,UAAU;;;;wLAIpK;IAEtL,QAAQ,EAAE;;;;;;;;;;wGAU4F;IAEtG,MAAM,EAAE;;;;0EAIgE;IAExE,MAAM,EAAE;;;;;;;qdAO2c;IAEnd,KAAK,EAAE;;;;;;;;;;;;oDAY2C,UAAU;;;;;;;;;;qLAUuH,UAAU;;;gHAG/E,UAAU;;;;;;;;;;;;;;;sOAe4G,UAAU;;wKAExE,UAAU;;;;;;+DAMnH;IAE7D,MAAM,EAAE;;qTAE2S,UAAU;;;wGAGvN;IAEtG,KAAK,EAAE;8LACqL,UAAU;;;;;4DAK5I;IAE1D,KAAK,EAAE;;;;;;;qEAO4D;IAEnE,OAAO,EAAE;;;4MAGiM,UAAU;;;;8CAIxK;IAC5C,OAAO,EAAE;;;;;;;;;qXAS0W,UAAU;;;;;;;;;;;;;;;onBAeqP;CACnnB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Embedded display faces.
3
+ *
4
+ * A theme opts into a bundled face by naming its namespaced family (for example
5
+ * `AK Geist`) in a font stack. The compiler then inlines that family as a
6
+ * `data:` WOFF2, so the artifact still opens offline and makes no request; the
7
+ * CSP widens `font-src` to `data:` only on pages that carry a face.
8
+ *
9
+ * Each family ships two subsets. Latin is always emitted; Vietnamese is emitted
10
+ * only when the page text uses a character the Latin subset lacks, so an English
11
+ * page does not pay for it. A family no stack names is never emitted.
12
+ */
13
+ import type { ResolvedTheme } from '../theme/load-theme.js';
14
+ import { type EmbeddedFont } from './embedded-fonts.generated.js';
15
+ /** Bundled families named by any of the theme's font stacks, in bundle order. */
16
+ export declare function embeddedFamilies(theme: ResolvedTheme): EmbeddedFont[];
17
+ /**
18
+ * The `@font-face` rules a page needs, or an empty string. `text` is the
19
+ * rendered page text the faces must cover; it only decides the subsets.
20
+ */
21
+ export declare function embeddedFontCss(theme: ResolvedTheme, text: string): string;
22
+ //# sourceMappingURL=font-faces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-faces.d.ts","sourceRoot":"","sources":["../../src/render/font-faces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,+BAA+B,CAAC;AAmBvC,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,EAAE,CASrE;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAe1E"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Embedded display faces.
3
+ *
4
+ * A theme opts into a bundled face by naming its namespaced family (for example
5
+ * `AK Geist`) in a font stack. The compiler then inlines that family as a
6
+ * `data:` WOFF2, so the artifact still opens offline and makes no request; the
7
+ * CSP widens `font-src` to `data:` only on pages that carry a face.
8
+ *
9
+ * Each family ships two subsets. Latin is always emitted; Vietnamese is emitted
10
+ * only when the page text uses a character the Latin subset lacks, so an English
11
+ * page does not pay for it. A family no stack names is never emitted.
12
+ */
13
+ import { EMBEDDED_FONTS, LATIN_RANGE, VIETNAMESE_RANGE, } from './embedded-fonts.generated.js';
14
+ const STACK_TOKENS = ['font-heading', 'font-body', 'font-mono'];
15
+ /**
16
+ * Characters only the Vietnamese subset covers (its overlap with Latin removed).
17
+ * The combining marks are alternatives, because a character class may not mix
18
+ * them with base letters.
19
+ */
20
+ // biome-ignore lint/complexity/useRegexLiterals: the autofix turns the escapes into raw combining marks.
21
+ const VIETNAMESE_ONLY = new RegExp('[\u0102\u0103\u0110\u0111\u0128\u0129\u0168\u0169\u01A0\u01A1\u01AF\u01B0\u1EA0-\u1EF9\u20AB]|\u0300|\u0301|\u0303|\u0309|\u0323', 'u');
22
+ function stackFamilies(stack) {
23
+ return stack.split(',').map((family) => family.trim().replace(/^["']|["']$/gu, ''));
24
+ }
25
+ /** Bundled families named by any of the theme's font stacks, in bundle order. */
26
+ export function embeddedFamilies(theme) {
27
+ const named = new Set();
28
+ for (const tokens of [theme.light, theme.dark]) {
29
+ for (const token of STACK_TOKENS) {
30
+ const stack = tokens[token];
31
+ if (stack !== undefined)
32
+ for (const family of stackFamilies(stack))
33
+ named.add(family);
34
+ }
35
+ }
36
+ return EMBEDDED_FONTS.filter((font) => named.has(font.family));
37
+ }
38
+ function face(font, data, range) {
39
+ return `@font-face{font-family:"${font.family}";font-style:normal;font-weight:${font.weight};font-display:swap;src:url(data:font/woff2;base64,${data}) format("woff2");unicode-range:${range}}`;
40
+ }
41
+ /**
42
+ * The `@font-face` rules a page needs, or an empty string. `text` is the
43
+ * rendered page text the faces must cover; it only decides the subsets.
44
+ */
45
+ export function embeddedFontCss(theme, text) {
46
+ const fonts = embeddedFamilies(theme);
47
+ if (fonts.length === 0)
48
+ return '';
49
+ const vietnamese = VIETNAMESE_ONLY.test(text.normalize('NFC'));
50
+ return fonts
51
+ .map((font) => [
52
+ `/* ${font.name}: ${font.copyright}. SIL Open Font License 1.1, https://openfontlicense.org */`,
53
+ face(font, font.latin, LATIN_RANGE),
54
+ vietnamese ? face(font, font.vietnamese, VIETNAMESE_RANGE) : '',
55
+ ]
56
+ .filter((rule) => rule !== '')
57
+ .join('\n'))
58
+ .join('\n');
59
+ }
60
+ //# sourceMappingURL=font-faces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-faces.js","sourceRoot":"","sources":["../../src/render/font-faces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,cAAc,EAEd,WAAW,EACX,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;AAEzE;;;;GAIG;AACH,yGAAyG;AACzG,MAAM,eAAe,GAAG,IAAI,MAAM,CAChC,kIAAkI,EAClI,GAAG,CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,KAAK,KAAK,SAAS;gBAAE,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,IAAI,CAAC,IAAkB,EAAE,IAAY,EAAE,KAAa;IAC3D,OAAO,2BAA2B,IAAI,CAAC,MAAM,mCAAmC,IAAI,CAAC,MAAM,qDAAqD,IAAI,mCAAmC,KAAK,GAAG,CAAC;AAClM,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAoB,EAAE,IAAY;IAChE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ;QACE,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,6DAA6D;QAC/F,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;QACnC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;KAChE;SACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CACd;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Page outline ("On this page").
3
+ *
4
+ * A long artifact gets a table of contents built from its top-level titled
5
+ * sections. It is derived from the IR alone, so it is deterministic, and it
6
+ * only appears once there is enough structure to navigate: below the threshold
7
+ * an outline is noise.
8
+ */
9
+ import type { IrDocument } from '../ir.js';
10
+ /** Fewest titled top-level sections that justify an outline. */
11
+ export declare const OUTLINE_MIN_SECTIONS = 3;
12
+ export interface OutlineEntry {
13
+ anchor: string;
14
+ title: string;
15
+ }
16
+ /** Titled sections that are direct children of the page root, in document order. */
17
+ export declare function outlineEntries(ir: IrDocument): OutlineEntry[];
18
+ export declare function hasOutline(ir: IrDocument): boolean;
19
+ /** The outline navigation landmark, or an empty string when the page is too short. */
20
+ export declare function renderOutline(ir: IrDocument): string;
21
+ //# sourceMappingURL=outline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/render/outline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,EAAE,EAAE,UAAU,GAAG,YAAY,EAAE,CAa7D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAElD;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAUpD"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Page outline ("On this page").
3
+ *
4
+ * A long artifact gets a table of contents built from its top-level titled
5
+ * sections. It is derived from the IR alone, so it is deterministic, and it
6
+ * only appears once there is enough structure to navigate: below the threshold
7
+ * an outline is noise.
8
+ */
9
+ import { sectionAnchor } from './blocks.js';
10
+ import { escapeAttribute, escapeText } from './escape.js';
11
+ /** Fewest titled top-level sections that justify an outline. */
12
+ export const OUTLINE_MIN_SECTIONS = 3;
13
+ /** Titled sections that are direct children of the page root, in document order. */
14
+ export function outlineEntries(ir) {
15
+ const byId = new Map(ir.nodes.map((node) => [node.id, node]));
16
+ const root = byId.get(ir.rootId);
17
+ if (root === undefined)
18
+ return [];
19
+ const entries = [];
20
+ for (const childId of root.children) {
21
+ const child = byId.get(childId);
22
+ if (child === undefined || child.type !== 'section')
23
+ continue;
24
+ const title = child.props.title;
25
+ if (typeof title !== 'string' || title.trim() === '')
26
+ continue;
27
+ entries.push({ anchor: sectionAnchor(child.id), title });
28
+ }
29
+ return entries;
30
+ }
31
+ export function hasOutline(ir) {
32
+ return outlineEntries(ir).length >= OUTLINE_MIN_SECTIONS;
33
+ }
34
+ /** The outline navigation landmark, or an empty string when the page is too short. */
35
+ export function renderOutline(ir) {
36
+ const entries = outlineEntries(ir);
37
+ if (entries.length < OUTLINE_MIN_SECTIONS)
38
+ return '';
39
+ const items = entries
40
+ .map((entry) => `<li><a href="#${escapeAttribute(entry.anchor)}" data-ak-outline-link>${escapeText(entry.title)}</a></li>`)
41
+ .join('');
42
+ return `<nav class="ak-toc" aria-label="On this page"><p class="ak-toc-title">On this page</p><ol>${items}</ol></nav>`;
43
+ }
44
+ //# sourceMappingURL=outline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/render/outline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1D,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAOtC,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,EAAc;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QAC/D,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAc;IACvC,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,oBAAoB,CAAC;AAC3D,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,EAAc;IAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,OAAO,CAAC,MAAM,GAAG,oBAAoB;QAAE,OAAO,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO;SAClB,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CACR,iBAAiB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAC7G;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,6FAA6F,KAAK,aAAa,CAAC;AACzH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,UAAU,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAgB,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGnF,OAAO,EAAgB,eAAe,EAAE,MAAM,cAAc,CAAC;AAI7D,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;0CACsC;IACtC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAwGD,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAiGjF;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAEzE;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAEnE;AAED,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,UAAU,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAgB,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKnF,OAAO,EAAgB,eAAe,EAAE,MAAM,cAAc,CAAC;AAK7D,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;0CACsC;IACtC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAgJD,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAqGjF;AAED,oDAAoD;AACpD,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAEzE;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAEnE;AAED,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC"}
@@ -17,8 +17,11 @@ import { loadTheme, resolveTheme } from '../theme/load-theme.js';
17
17
  import { builtinThemeCatalog } from '../theme/theme-catalog.js';
18
18
  import { renderNode } from './blocks.js';
19
19
  import { assembleDocument } from './document.js';
20
+ import { embeddedFontCss } from './font-faces.js';
21
+ import { hasOutline, renderOutline } from './outline.js';
20
22
  import { buildRuntime, needsLiveRegion } from './runtime.js';
21
23
  import { BASE_CSS, FEATURE_CSS } from './styles.js';
24
+ import { inverseSurfaceCss, usesInverseSurface } from './surface-styles.js';
22
25
  import { verifyDocument, verifyIr } from './verify.js';
23
26
  /** Fixed feature order: emitted bytes must not depend on discovery order. */
24
27
  const FEATURE_ORDER = [
@@ -33,6 +36,17 @@ const FEATURE_ORDER = [
33
36
  'chart',
34
37
  'diagram',
35
38
  'media',
39
+ 'outline',
40
+ 'frame',
41
+ 'bento',
42
+ 'marquee',
43
+ 'terminal',
44
+ 'tree',
45
+ 'before-after',
46
+ 'kpi',
47
+ 'checklist',
48
+ 'showcase',
49
+ 'cta',
36
50
  ];
37
51
  function collectFeatures(ir, includeTheme) {
38
52
  const features = new Set();
@@ -42,6 +56,13 @@ function collectFeatures(ir, includeTheme) {
42
56
  }
43
57
  if (includeTheme)
44
58
  features.add('theme');
59
+ if (hasOutline(ir))
60
+ features.add('outline');
61
+ // The browser frame is a style feature with no block of its own: the
62
+ // showcase always draws one, and a hero draws one around its optional shot.
63
+ const heroShot = ir.nodes.some((node) => node.type === 'hero' && typeof node.props.src === 'string');
64
+ if (heroShot || features.has('showcase'))
65
+ features.add('frame');
45
66
  return features;
46
67
  }
47
68
  function collectOrigins(ir) {
@@ -60,21 +81,25 @@ function collectOrigins(ir) {
60
81
  }
61
82
  };
62
83
  for (const node of ir.nodes) {
63
- const capability = node.type === 'image' || node.type === 'gallery' ? 'images' : 'media';
84
+ // Only players load through the media capability; every other block that
85
+ // carries a source shows a still image.
86
+ const capability = node.type === 'video' || node.type === 'audio' ? 'media' : 'images';
64
87
  const src = node.props.src;
65
88
  if (typeof src === 'string')
66
89
  add(src, capability);
67
- const items = node.props.items;
68
- if (Array.isArray(items)) {
69
- for (const item of items) {
70
- if (isPlainObject(item) && typeof item.src === 'string')
71
- add(item.src, capability);
72
- }
90
+ const nested = [
91
+ ...(Array.isArray(node.props.items) ? node.props.items : []),
92
+ node.props.before,
93
+ node.props.after,
94
+ ];
95
+ for (const item of nested) {
96
+ if (isPlainObject(item) && typeof item.src === 'string')
97
+ add(item.src, capability);
73
98
  }
74
99
  }
75
100
  return origins;
76
101
  }
77
- function buildCss(features, theme) {
102
+ function buildCss(features, theme, ir) {
78
103
  const sheets = [BASE_CSS];
79
104
  for (const feature of FEATURE_ORDER) {
80
105
  if (!features.has(feature))
@@ -84,7 +109,21 @@ function buildCss(features, theme) {
84
109
  sheets.push(sheet);
85
110
  }
86
111
  sheets.push(theme.css);
87
- return sheets.join('\n');
112
+ // The night band redeclares colour tokens, so it must follow the theme sheet.
113
+ if (usesInverseSurface(ir.nodes))
114
+ sheets.push(inverseSurfaceCss(theme));
115
+ const css = sheets.join('\n');
116
+ return theme.motionPolicy === 'none' ? withoutMotion(css) : css;
117
+ }
118
+ /**
119
+ * Every animation in the emitted CSS sits behind
120
+ * `(prefers-reduced-motion:no-preference)`. A theme that disables motion turns
121
+ * that condition into one that never matches, so the page renders exactly as it
122
+ * does for a reader who asked the system to reduce motion.
123
+ */
124
+ const MOTION_ALLOWED = '(prefers-reduced-motion:no-preference)';
125
+ function withoutMotion(css) {
126
+ return css.replaceAll(MOTION_ALLOWED, `${MOTION_ALLOWED} and (prefers-reduced-motion:reduce)`);
88
127
  }
89
128
  function bodyNeedsRuntime(body) {
90
129
  return body.includes('data-ak-on-') || body.includes('data-ak-dialog-open');
@@ -146,7 +185,6 @@ export function compile(spec, options = {}) {
146
185
  }
147
186
  const includeThemeToggle = options.themeToggle !== false;
148
187
  const features = collectFeatures(ir, includeThemeToggle);
149
- const css = buildCss(features, resolved);
150
188
  const irDiagnostics = verifyIr(ir, features);
151
189
  if (irDiagnostics.some((diagnostic) => diagnostic.severity === 'error')) {
152
190
  throw new RenderError('INTERNAL_ERROR', 'IR verification failed', {
@@ -159,6 +197,9 @@ export function compile(spec, options = {}) {
159
197
  warnings: renderWarnings,
160
198
  ...(options.diagramAdapter === undefined ? {} : { diagramAdapter: options.diagramAdapter }),
161
199
  });
200
+ // Faces come first and need the rendered text, which decides their subsets.
201
+ const fonts = embeddedFontCss(resolved, `${ir.meta.title}\n${body}`);
202
+ const css = [fonts, buildCss(features, resolved, ir)].filter((sheet) => sheet !== '').join('\n');
162
203
  const runtimeNeeded = features.size > 0 || bodyNeedsRuntime(body);
163
204
  const js = runtimeNeeded
164
205
  ? buildRuntime({ features, state: ir.state, hasBindings: bodyNeedsRuntime(body) })
@@ -172,6 +213,8 @@ export function compile(spec, options = {}) {
172
213
  allowedOrigins: collectOrigins(ir),
173
214
  themeToggle: includeThemeToggle,
174
215
  density: resolved.density,
216
+ motionDisabled: resolved.motionPolicy === 'none',
217
+ outline: renderOutline(ir),
175
218
  });
176
219
  const verification = verifyDocument({
177
220
  html: assembled.html,
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/render/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;CACtB;AA8YD,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAqC5D;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,OAAO,CAE9E"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/render/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;CACtB;AAqjBD,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA2C5D;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,OAAO,CAE9E"}