@ambitresearch/genie 1.3.1

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 (301) hide show
  1. package/README.md +15 -0
  2. package/dist/auth/bearer.d.ts +49 -0
  3. package/dist/auth/bearer.d.ts.map +1 -0
  4. package/dist/auth/bearer.js +159 -0
  5. package/dist/auth/bearer.js.map +1 -0
  6. package/dist/auth/oauth/authorize.d.ts +19 -0
  7. package/dist/auth/oauth/authorize.d.ts.map +1 -0
  8. package/dist/auth/oauth/authorize.js +111 -0
  9. package/dist/auth/oauth/authorize.js.map +1 -0
  10. package/dist/auth/oauth/config.d.ts +10 -0
  11. package/dist/auth/oauth/config.d.ts.map +1 -0
  12. package/dist/auth/oauth/config.js +16 -0
  13. package/dist/auth/oauth/config.js.map +1 -0
  14. package/dist/auth/oauth/dcr.d.ts +15 -0
  15. package/dist/auth/oauth/dcr.d.ts.map +1 -0
  16. package/dist/auth/oauth/dcr.js +38 -0
  17. package/dist/auth/oauth/dcr.js.map +1 -0
  18. package/dist/auth/oauth/jwt.d.ts +13 -0
  19. package/dist/auth/oauth/jwt.d.ts.map +1 -0
  20. package/dist/auth/oauth/jwt.js +46 -0
  21. package/dist/auth/oauth/jwt.js.map +1 -0
  22. package/dist/auth/oauth/metadata.d.ts +9 -0
  23. package/dist/auth/oauth/metadata.d.ts.map +1 -0
  24. package/dist/auth/oauth/metadata.js +19 -0
  25. package/dist/auth/oauth/metadata.js.map +1 -0
  26. package/dist/auth/oauth/router.d.ts +32 -0
  27. package/dist/auth/oauth/router.d.ts.map +1 -0
  28. package/dist/auth/oauth/router.js +159 -0
  29. package/dist/auth/oauth/router.js.map +1 -0
  30. package/dist/auth/oauth/store.d.ts +55 -0
  31. package/dist/auth/oauth/store.d.ts.map +1 -0
  32. package/dist/auth/oauth/store.js +63 -0
  33. package/dist/auth/oauth/store.js.map +1 -0
  34. package/dist/auth/oauth/token.d.ts +21 -0
  35. package/dist/auth/oauth/token.d.ts.map +1 -0
  36. package/dist/auth/oauth/token.js +77 -0
  37. package/dist/auth/oauth/token.js.map +1 -0
  38. package/dist/auth/oidc/group-policy.d.ts +43 -0
  39. package/dist/auth/oidc/group-policy.d.ts.map +1 -0
  40. package/dist/auth/oidc/group-policy.js +54 -0
  41. package/dist/auth/oidc/group-policy.js.map +1 -0
  42. package/dist/auth/oidc/verifier.d.ts +42 -0
  43. package/dist/auth/oidc/verifier.d.ts.map +1 -0
  44. package/dist/auth/oidc/verifier.js +145 -0
  45. package/dist/auth/oidc/verifier.js.map +1 -0
  46. package/dist/auth/token-cli.d.ts +9 -0
  47. package/dist/auth/token-cli.d.ts.map +1 -0
  48. package/dist/auth/token-cli.js +98 -0
  49. package/dist/auth/token-cli.js.map +1 -0
  50. package/dist/cli.d.ts +3 -0
  51. package/dist/cli.d.ts.map +1 -0
  52. package/dist/cli.js +149 -0
  53. package/dist/cli.js.map +1 -0
  54. package/dist/config/redact.d.ts +20 -0
  55. package/dist/config/redact.d.ts.map +1 -0
  56. package/dist/config/redact.js +77 -0
  57. package/dist/config/redact.js.map +1 -0
  58. package/dist/config/secrets.d.ts +100 -0
  59. package/dist/config/secrets.d.ts.map +1 -0
  60. package/dist/config/secrets.js +130 -0
  61. package/dist/config/secrets.js.map +1 -0
  62. package/dist/framework/html.d.ts +103 -0
  63. package/dist/framework/html.d.ts.map +1 -0
  64. package/dist/framework/html.js +271 -0
  65. package/dist/framework/html.js.map +1 -0
  66. package/dist/framework/interface.d.ts +130 -0
  67. package/dist/framework/interface.d.ts.map +1 -0
  68. package/dist/framework/interface.js +112 -0
  69. package/dist/framework/interface.js.map +1 -0
  70. package/dist/framework/react.d.ts +133 -0
  71. package/dist/framework/react.d.ts.map +1 -0
  72. package/dist/framework/react.js +243 -0
  73. package/dist/framework/react.js.map +1 -0
  74. package/dist/framework/vue.d.ts +99 -0
  75. package/dist/framework/vue.d.ts.map +1 -0
  76. package/dist/framework/vue.js +375 -0
  77. package/dist/framework/vue.js.map +1 -0
  78. package/dist/index.d.ts +3 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +3 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/llm/client.d.ts +81 -0
  83. package/dist/llm/client.d.ts.map +1 -0
  84. package/dist/llm/client.js +141 -0
  85. package/dist/llm/client.js.map +1 -0
  86. package/dist/llm/component-response.d.ts +111 -0
  87. package/dist/llm/component-response.d.ts.map +1 -0
  88. package/dist/llm/component-response.js +167 -0
  89. package/dist/llm/component-response.js.map +1 -0
  90. package/dist/llm/generated-files.d.ts +10 -0
  91. package/dist/llm/generated-files.d.ts.map +1 -0
  92. package/dist/llm/generated-files.js +26 -0
  93. package/dist/llm/generated-files.js.map +1 -0
  94. package/dist/llm/prompts/CHANGELOG.md +70 -0
  95. package/dist/llm/prompts/generate-component.system.md +99 -0
  96. package/dist/llm/prompts/refine-component.system.md +112 -0
  97. package/dist/llm/prompts.d.ts +66 -0
  98. package/dist/llm/prompts.d.ts.map +1 -0
  99. package/dist/llm/prompts.js +78 -0
  100. package/dist/llm/prompts.js.map +1 -0
  101. package/dist/llm/retry.d.ts +183 -0
  102. package/dist/llm/retry.d.ts.map +1 -0
  103. package/dist/llm/retry.js +475 -0
  104. package/dist/llm/retry.js.map +1 -0
  105. package/dist/llm/schema.d.ts +129 -0
  106. package/dist/llm/schema.d.ts.map +1 -0
  107. package/dist/llm/schema.js +147 -0
  108. package/dist/llm/schema.js.map +1 -0
  109. package/dist/llm/validate.d.ts +107 -0
  110. package/dist/llm/validate.d.ts.map +1 -0
  111. package/dist/llm/validate.js +174 -0
  112. package/dist/llm/validate.js.map +1 -0
  113. package/dist/manifest/compiler.d.ts +112 -0
  114. package/dist/manifest/compiler.d.ts.map +1 -0
  115. package/dist/manifest/compiler.js +306 -0
  116. package/dist/manifest/compiler.js.map +1 -0
  117. package/dist/manifest/ensure.d.ts +46 -0
  118. package/dist/manifest/ensure.d.ts.map +1 -0
  119. package/dist/manifest/ensure.js +49 -0
  120. package/dist/manifest/ensure.js.map +1 -0
  121. package/dist/manifest/index.d.ts +13 -0
  122. package/dist/manifest/index.d.ts.map +1 -0
  123. package/dist/manifest/index.js +13 -0
  124. package/dist/manifest/index.js.map +1 -0
  125. package/dist/middleware/plan-guard.d.ts +167 -0
  126. package/dist/middleware/plan-guard.d.ts.map +1 -0
  127. package/dist/middleware/plan-guard.js +190 -0
  128. package/dist/middleware/plan-guard.js.map +1 -0
  129. package/dist/plans/index.d.ts +71 -0
  130. package/dist/plans/index.d.ts.map +1 -0
  131. package/dist/plans/index.js +252 -0
  132. package/dist/plans/index.js.map +1 -0
  133. package/dist/schemas/component.schema.json +114 -0
  134. package/dist/server.d.ts +96 -0
  135. package/dist/server.d.ts.map +1 -0
  136. package/dist/server.js +258 -0
  137. package/dist/server.js.map +1 -0
  138. package/dist/store/empty-manifest.d.ts +58 -0
  139. package/dist/store/empty-manifest.d.ts.map +1 -0
  140. package/dist/store/empty-manifest.js +59 -0
  141. package/dist/store/empty-manifest.js.map +1 -0
  142. package/dist/store/git-host.d.ts +120 -0
  143. package/dist/store/git-host.d.ts.map +1 -0
  144. package/dist/store/git-host.js +796 -0
  145. package/dist/store/git-host.js.map +1 -0
  146. package/dist/store/index.d.ts +5 -0
  147. package/dist/store/index.d.ts.map +1 -0
  148. package/dist/store/index.js +4 -0
  149. package/dist/store/index.js.map +1 -0
  150. package/dist/store/interface.d.ts +322 -0
  151. package/dist/store/interface.d.ts.map +1 -0
  152. package/dist/store/interface.js +100 -0
  153. package/dist/store/interface.js.map +1 -0
  154. package/dist/store/kit-files.d.ts +88 -0
  155. package/dist/store/kit-files.d.ts.map +1 -0
  156. package/dist/store/kit-files.js +199 -0
  157. package/dist/store/kit-files.js.map +1 -0
  158. package/dist/store/local.d.ts +70 -0
  159. package/dist/store/local.d.ts.map +1 -0
  160. package/dist/store/local.js +651 -0
  161. package/dist/store/local.js.map +1 -0
  162. package/dist/store/manifest.d.ts +44 -0
  163. package/dist/store/manifest.d.ts.map +1 -0
  164. package/dist/store/manifest.js +116 -0
  165. package/dist/store/manifest.js.map +1 -0
  166. package/dist/store/viewer-assets.d.ts +20 -0
  167. package/dist/store/viewer-assets.d.ts.map +1 -0
  168. package/dist/store/viewer-assets.js +118 -0
  169. package/dist/store/viewer-assets.js.map +1 -0
  170. package/dist/sync/anchor.d.ts +125 -0
  171. package/dist/sync/anchor.d.ts.map +1 -0
  172. package/dist/sync/anchor.js +210 -0
  173. package/dist/sync/anchor.js.map +1 -0
  174. package/dist/sync/index.d.ts +15 -0
  175. package/dist/sync/index.d.ts.map +1 -0
  176. package/dist/sync/index.js +15 -0
  177. package/dist/sync/index.js.map +1 -0
  178. package/dist/sync/orchestrator.d.ts +160 -0
  179. package/dist/sync/orchestrator.d.ts.map +1 -0
  180. package/dist/sync/orchestrator.js +288 -0
  181. package/dist/sync/orchestrator.js.map +1 -0
  182. package/dist/tools/bind_kit.d.ts +29 -0
  183. package/dist/tools/bind_kit.d.ts.map +1 -0
  184. package/dist/tools/bind_kit.js +70 -0
  185. package/dist/tools/bind_kit.js.map +1 -0
  186. package/dist/tools/conjure.d.ts +141 -0
  187. package/dist/tools/conjure.d.ts.map +1 -0
  188. package/dist/tools/conjure.js +655 -0
  189. package/dist/tools/conjure.js.map +1 -0
  190. package/dist/tools/conjure_screen.d.ts +174 -0
  191. package/dist/tools/conjure_screen.d.ts.map +1 -0
  192. package/dist/tools/conjure_screen.js +458 -0
  193. package/dist/tools/conjure_screen.js.map +1 -0
  194. package/dist/tools/create_kit.d.ts +32 -0
  195. package/dist/tools/create_kit.d.ts.map +1 -0
  196. package/dist/tools/create_kit.js +131 -0
  197. package/dist/tools/create_kit.js.map +1 -0
  198. package/dist/tools/create_project.d.ts +267 -0
  199. package/dist/tools/create_project.d.ts.map +1 -0
  200. package/dist/tools/create_project.js +546 -0
  201. package/dist/tools/create_project.js.map +1 -0
  202. package/dist/tools/delete_files.d.ts +93 -0
  203. package/dist/tools/delete_files.d.ts.map +1 -0
  204. package/dist/tools/delete_files.js +276 -0
  205. package/dist/tools/delete_files.js.map +1 -0
  206. package/dist/tools/delete_project.d.ts +43 -0
  207. package/dist/tools/delete_project.d.ts.map +1 -0
  208. package/dist/tools/delete_project.js +118 -0
  209. package/dist/tools/delete_project.js.map +1 -0
  210. package/dist/tools/get_kit.d.ts +28 -0
  211. package/dist/tools/get_kit.d.ts.map +1 -0
  212. package/dist/tools/get_kit.js +95 -0
  213. package/dist/tools/get_kit.js.map +1 -0
  214. package/dist/tools/get_project.d.ts +37 -0
  215. package/dist/tools/get_project.d.ts.map +1 -0
  216. package/dist/tools/get_project.js +71 -0
  217. package/dist/tools/get_project.js.map +1 -0
  218. package/dist/tools/list_components.d.ts +42 -0
  219. package/dist/tools/list_components.d.ts.map +1 -0
  220. package/dist/tools/list_components.js +125 -0
  221. package/dist/tools/list_components.js.map +1 -0
  222. package/dist/tools/list_files.d.ts +32 -0
  223. package/dist/tools/list_files.d.ts.map +1 -0
  224. package/dist/tools/list_files.js +109 -0
  225. package/dist/tools/list_files.js.map +1 -0
  226. package/dist/tools/list_kits.d.ts +14 -0
  227. package/dist/tools/list_kits.d.ts.map +1 -0
  228. package/dist/tools/list_kits.js +41 -0
  229. package/dist/tools/list_kits.js.map +1 -0
  230. package/dist/tools/list_projects.d.ts +23 -0
  231. package/dist/tools/list_projects.d.ts.map +1 -0
  232. package/dist/tools/list_projects.js +66 -0
  233. package/dist/tools/list_projects.js.map +1 -0
  234. package/dist/tools/plan.d.ts +16 -0
  235. package/dist/tools/plan.d.ts.map +1 -0
  236. package/dist/tools/plan.js +146 -0
  237. package/dist/tools/plan.js.map +1 -0
  238. package/dist/tools/preview.d.ts +289 -0
  239. package/dist/tools/preview.d.ts.map +1 -0
  240. package/dist/tools/preview.js +672 -0
  241. package/dist/tools/preview.js.map +1 -0
  242. package/dist/tools/read_file.d.ts +40 -0
  243. package/dist/tools/read_file.d.ts.map +1 -0
  244. package/dist/tools/read_file.js +114 -0
  245. package/dist/tools/read_file.js.map +1 -0
  246. package/dist/tools/refine.d.ts +220 -0
  247. package/dist/tools/refine.d.ts.map +1 -0
  248. package/dist/tools/refine.js +501 -0
  249. package/dist/tools/refine.js.map +1 -0
  250. package/dist/tools/validate.d.ts +74 -0
  251. package/dist/tools/validate.d.ts.map +1 -0
  252. package/dist/tools/validate.js +224 -0
  253. package/dist/tools/validate.js.map +1 -0
  254. package/dist/tools/write_files.d.ts +158 -0
  255. package/dist/tools/write_files.d.ts.map +1 -0
  256. package/dist/tools/write_files.js +541 -0
  257. package/dist/tools/write_files.js.map +1 -0
  258. package/dist/transport.d.ts +77 -0
  259. package/dist/transport.d.ts.map +1 -0
  260. package/dist/transport.js +448 -0
  261. package/dist/transport.js.map +1 -0
  262. package/dist/ui/card-asset-broker.d.ts +42 -0
  263. package/dist/ui/card-asset-broker.d.ts.map +1 -0
  264. package/dist/ui/card-asset-broker.js +479 -0
  265. package/dist/ui/card-asset-broker.js.map +1 -0
  266. package/dist/ui/grid-resource.d.ts +252 -0
  267. package/dist/ui/grid-resource.d.ts.map +1 -0
  268. package/dist/ui/grid-resource.js +680 -0
  269. package/dist/ui/grid-resource.js.map +1 -0
  270. package/dist/ui/viewer-static/index.html +95 -0
  271. package/dist/ui/viewer-static/viewer.css +451 -0
  272. package/dist/ui/viewer-static/viewer.js +1405 -0
  273. package/dist/validate/full-scan.d.ts +87 -0
  274. package/dist/validate/full-scan.d.ts.map +1 -0
  275. package/dist/validate/full-scan.js +299 -0
  276. package/dist/validate/full-scan.js.map +1 -0
  277. package/dist/validate/index.d.ts +15 -0
  278. package/dist/validate/index.d.ts.map +1 -0
  279. package/dist/validate/index.js +18 -0
  280. package/dist/validate/index.js.map +1 -0
  281. package/dist/validate/marker.d.ts +89 -0
  282. package/dist/validate/marker.d.ts.map +1 -0
  283. package/dist/validate/marker.js +87 -0
  284. package/dist/validate/marker.js.map +1 -0
  285. package/dist/validate/phash.d.ts +135 -0
  286. package/dist/validate/phash.d.ts.map +1 -0
  287. package/dist/validate/phash.js +307 -0
  288. package/dist/validate/phash.js.map +1 -0
  289. package/dist/validate/render.d.ts +38 -0
  290. package/dist/validate/render.d.ts.map +1 -0
  291. package/dist/validate/render.js +155 -0
  292. package/dist/validate/render.js.map +1 -0
  293. package/dist/watch/index.d.ts +12 -0
  294. package/dist/watch/index.d.ts.map +1 -0
  295. package/dist/watch/index.js +12 -0
  296. package/dist/watch/index.js.map +1 -0
  297. package/dist/watch/watcher.d.ts +65 -0
  298. package/dist/watch/watcher.d.ts.map +1 -0
  299. package/dist/watch/watcher.js +238 -0
  300. package/dist/watch/watcher.js.map +1 -0
  301. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-resource.js","sourceRoot":"","sources":["../../src/ui/grid-resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ <!doctype html>
2
+ <!--
3
+ M4-03 (DRO-265) — genie preview viewer shell.
4
+
5
+ The static entry the Vite viewer (M4-02) serves as the kit root `index.html`.
6
+ It is deliberately a thin, declarative shell: the header + search + empty
7
+ `<main id="grid">`, plus the two static assets. All rendering lives in
8
+ `viewer.js`, which fetches `.genie/manifest.json` and fills the grid.
9
+
10
+ Tier: STANDALONE (Vite viewer / file://) — full brand fonts are allowed here
11
+ (the EMBEDDED `ui://genie/grid` tier, M4-06, is system-fonts-only). The
12
+ `genie-standalone` class opts into the brand font stack from tokens.css.
13
+
14
+ Identity contract (tokens.css): the clay/gilt accent appears ONLY on
15
+ generate/refine moments. This browse surface is structural, so its chrome
16
+ stays ink/neutral; the wordmark's single clay glyph is the one sanctioned
17
+ accent touch.
18
+
19
+ `viewer.js` is loaded as a CLASSIC script (no `type="module"`) — DRO-749
20
+ fix. A module script's relative-path `src` fetch is rejected by the browser
21
+ under `file://` (each `file://` document gets an opaque, distinct origin,
22
+ so the ES module loader's same-origin check fails), verified empirically
23
+ against a real headless-Chromium `file://` navigation before this fix. A
24
+ classic script has no such restriction and runs identically under
25
+ `file://`, the Vite dev server, and inside a sandboxed iframe — required by
26
+ RFC G-5 ("byte-identical across file:// / localhost / ui://", AGENTS.md
27
+ hard rule 5). See `viewer.js`'s own header for the full writeup.
28
+ -->
29
+ <html lang="en" class="genie-standalone">
30
+ <head>
31
+ <meta charset="utf-8" />
32
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
33
+ <title>genie — preview</title>
34
+ <link rel="stylesheet" href="./viewer.css" />
35
+ </head>
36
+ <body>
37
+ <header class="app-header">
38
+ <div class="app-header__brand">
39
+ <span class="wordmark">genie<span class="wordmark__spark" aria-hidden="true">✦</span></span>
40
+ <span class="app-header__subtitle">preview</span>
41
+ </div>
42
+ <div class="app-header__search">
43
+ <!--
44
+ M4-09 AC4 — `aria-label` directly on the input (not just the
45
+ `<label for="q">` below). Both are harmless together: `aria-label`
46
+ wins the accessible-name computation (WAI-ARIA §5.2.7.5 name-from
47
+ precedence puts `aria-label` ahead of native `<label>`), so the
48
+ visible label becomes redundant-but-harmless rather than
49
+ conflicting — kept because sighted mouse users still get a visible
50
+ "click the label to focus" affordance the aria-label alone can't
51
+ give them.
52
+ -->
53
+ <label class="visually-hidden" for="q">Filter components by name</label>
54
+ <input
55
+ id="q"
56
+ type="search"
57
+ class="search-input"
58
+ placeholder="Filter components…"
59
+ aria-label="Filter components by name"
60
+ autocomplete="off"
61
+ spellcheck="false"
62
+ />
63
+ </div>
64
+
65
+ <!--
66
+ M4-04 (DRO-266) — HMR reload counter (AC6): a debugging read-out of how
67
+ many per-card refreshes have fired this session. Collapsible via a native
68
+ <details> (no JS needed to toggle). Structural chrome only — neutral
69
+ ink/mono, NEVER the clay accent (identity contract: clay marks
70
+ generate/refine moments, not diagnostics). `viewer.js`'s bumpReloadCounter
71
+ writes the live total into #hmr-count (and mirrors it to data-count for
72
+ tests). It is removed from the task Tab sequence so M4-09's
73
+ search → card → card navigation remains intact; the live count is still
74
+ announced. Static tools (file:// open, embedded ui:// grid) that never
75
+ receive an HMR event simply leave it at 0.
76
+ -->
77
+ <details class="hmr-meter">
78
+ <summary class="hmr-meter__summary" tabindex="-1">
79
+ HMR
80
+ <span id="hmr-count" class="hmr-meter__count" data-count="0" aria-live="polite">0</span>
81
+ </summary>
82
+ <p class="hmr-meter__detail">
83
+ Per-card reloads since load. Edit a component's preview HTML to see one card refresh in
84
+ place.
85
+ </p>
86
+ </details>
87
+ </header>
88
+
89
+ <main id="grid" class="app-grid" aria-live="polite">
90
+ <!-- viewer.js renders group sections + cards here. -->
91
+ </main>
92
+
93
+ <script src="./viewer.js"></script>
94
+ </body>
95
+ </html>
@@ -0,0 +1,451 @@
1
+ /*
2
+ * M4-03 (DRO-265) — genie preview viewer styles.
3
+ *
4
+ * Renders the card grid described by `docs/designs/design-6/02-preview-refine.svg`
5
+ * (the browse/preview surface) and `ref-genie-card.svg` (card anatomy). The
6
+ * palette, type, spacing, and radii are the design-6 tokens
7
+ * (`docs/designs/design-6/tokens.css`), inlined here so the viewer static dir is
8
+ * a self-contained artefact (RFC G-5: "one artefact, three vehicles").
9
+ *
10
+ * IDENTITY CONTRACT (tokens.css): the clay/gilt accent (--color-accent) marks
11
+ * generate/refine moments ONLY. This is a *browse* surface — so structural
12
+ * chrome (header, hairlines, group titles, card frames) stays ink/neutral, and
13
+ * the single clay touch is the wordmark spark. No clay on borders, headings, or
14
+ * card chrome.
15
+ *
16
+ * @layer ordering (Impl Notes — cascade hygiene): tokens < base < layout <
17
+ * components < state. A later layer always wins regardless of selector
18
+ * specificity, so component rules never fight base resets and state (e.g.
19
+ * `[hidden]`) always applies.
20
+ *
21
+ * M4-09 (DRO-271) accessibility additions: the wordmark-spark
22
+ * `--color-accent-2` contrast fix (AC2/AC6, see the "wordmark__spark"
23
+ * comment in the components layer below) and its dark-mode override, plus a
24
+ * new automatic `@media (prefers-color-scheme: dark)` block alongside the
25
+ * pre-existing manual `:root[data-scheme="dark"]` override (AC7) — see the
26
+ * "Dark mode" comment in the tokens layer below for why both exist. The
27
+ * `--color-ink-3` AA override and the `:focus-visible` ring below predate
28
+ * this PR (M4-03) and are called out here only because this audit verifies
29
+ * them, not because either was added or changed by M4-09.
30
+ */
31
+
32
+ @layer tokens, base, layout, components, state;
33
+
34
+ @layer tokens {
35
+ :root {
36
+ /* Type — standalone tier (brand-if-present, system-always). */
37
+ --font-display: "Newsreader", "Times New Roman", Georgia, ui-serif, serif;
38
+ --font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
39
+ --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
40
+
41
+ /* Color — warm bone paper + near-black ink (design-1 origin). */
42
+ --color-paper: oklch(98% 0.005 85);
43
+ --color-paper-2: oklch(95.5% 0.008 82);
44
+ --color-paper-3: oklch(92.5% 0.01 80);
45
+ --color-ink: oklch(20% 0.004 60);
46
+ --color-ink-2: oklch(37% 0.005 60);
47
+ --color-ink-3: oklch(45% 0.01 65); /* darkened from token 55% → AA on paper */
48
+ --color-hairline: oklch(88% 0.008 82);
49
+ --color-hairline-2: oklch(82% 0.01 80);
50
+
51
+ /* Clay — GENERATION MOMENTS ONLY (identity contract). */
52
+ --color-accent: oklch(66% 0.105 42);
53
+ --color-accent-2: oklch(56% 0.115 38);
54
+
55
+ /* Structural ink-blue — links / focus only. */
56
+ --color-focus: oklch(52% 0.14 265);
57
+
58
+ /* Spacing. */
59
+ --space-2xs: 4px;
60
+ --space-xs: 8px;
61
+ --space-sm: 12px;
62
+ --space-md: 16px;
63
+ --space-lg: 24px;
64
+ --space-xl: 32px;
65
+ --space-2xl: 48px;
66
+
67
+ /* Radii + rules. */
68
+ --radius-sm: 5px;
69
+ --radius-md: 8px;
70
+ --radius-lg: 12px;
71
+ --rule-hair: 1px;
72
+
73
+ /* Type scale. */
74
+ --text-xs: 0.75rem;
75
+ --text-sm: 0.875rem;
76
+ --text-base: 1rem;
77
+ --text-lg: 1.375rem;
78
+ --leading-normal: 1.55;
79
+ --tracking-wide: 0.04em;
80
+
81
+ /* Elevation — warm, never cold black. */
82
+ --shadow-sm: 0 1px 2px oklch(30% 0.02 70 / 0.06), 0 1px 1px oklch(30% 0.02 70 / 0.04);
83
+ }
84
+
85
+ /*
86
+ * Dark mode — warm charcoal (mirrors tokens.css).
87
+ *
88
+ * M4-09 AC7 — TWO independent triggers, so an explicit choice always beats
89
+ * the OS default:
90
+ * 1. `@media (prefers-color-scheme: dark)` below — automatic, follows the
91
+ * OS/browser preference with NO app code required (`color-scheme:
92
+ * light dark` on `html`, in the base layer, is what makes even
93
+ * un-themed UA chrome — e.g. the search input's native cancel button —
94
+ * follow this too).
95
+ * 2. `:root[data-scheme="dark"]` here — an explicit manual override for a
96
+ * future in-app toggle (not built yet; no mock shows one — RFC G-5's
97
+ * "one artefact, three vehicles" kit statics already ship this
98
+ * attribute hook from tokens.css, so the viewer honors it on arrival
99
+ * rather than needing a follow-up CSS change).
100
+ * The media-query block's `:not([data-scheme="light"])` guard means a
101
+ * future manual "force light" toggle can still override an OS dark
102
+ * preference — an explicit choice always wins over the ambient one.
103
+ *
104
+ * `--color-accent-2` dark override (DRO-743's fix, ported from
105
+ * `docs/designs/design-6/tokens.css` — see the wordmark-spark comment in
106
+ * the components layer below for why this file now has a text consumer of
107
+ * it): with no override this token would silently fall back to its
108
+ * light-mode value (`oklch(56% 0.115 38)`) against dark paper — 3.78:1,
109
+ * failing the 4.5:1 clay-text-rule promise once dark mode is active. This
110
+ * is `--color-accent`'s own light→dark nudge (+8% L, −0.005 C, +4 H)
111
+ * applied to `accent-2`, exactly as DRO-743 derived it — 5.27:1 on dark
112
+ * paper.
113
+ */
114
+ :root[data-scheme="dark"] {
115
+ --color-paper: oklch(19% 0.006 60);
116
+ --color-paper-2: oklch(23% 0.007 60);
117
+ --color-paper-3: oklch(27% 0.008 60);
118
+ --color-ink: oklch(94% 0.008 82);
119
+ --color-ink-2: oklch(76% 0.012 78);
120
+ --color-ink-3: oklch(68% 0.012 70); /* lightened → AA on dark paper */
121
+ --color-hairline: oklch(32% 0.012 75);
122
+ --color-hairline-2: oklch(40% 0.014 75);
123
+ --color-accent: oklch(74% 0.1 46);
124
+ --color-accent-2: oklch(64% 0.11 42); /* DRO-743: 5.27:1 on dark paper */
125
+ }
126
+
127
+ @media (prefers-color-scheme: dark) {
128
+ /* Same values as the explicit block above — kept as a literal duplicate
129
+ rather than a shared selector list so this file has no dependency on
130
+ CSS nesting syntax (broader baseline support; this ships verbatim to
131
+ every vehicle per RFC G-5, embedded included). */
132
+ :root:not([data-scheme="light"]) {
133
+ --color-paper: oklch(19% 0.006 60);
134
+ --color-paper-2: oklch(23% 0.007 60);
135
+ --color-paper-3: oklch(27% 0.008 60);
136
+ --color-ink: oklch(94% 0.008 82);
137
+ --color-ink-2: oklch(76% 0.012 78);
138
+ --color-ink-3: oklch(68% 0.012 70);
139
+ --color-hairline: oklch(32% 0.012 75);
140
+ --color-hairline-2: oklch(40% 0.014 75);
141
+ --color-accent: oklch(74% 0.1 46);
142
+ --color-accent-2: oklch(64% 0.11 42); /* DRO-743: 5.27:1 on dark paper */
143
+ }
144
+ }
145
+ }
146
+
147
+ @layer base {
148
+ *,
149
+ *::before,
150
+ *::after {
151
+ box-sizing: border-box;
152
+ }
153
+
154
+ html {
155
+ color-scheme: light dark;
156
+ }
157
+
158
+ body {
159
+ margin: 0;
160
+ font-family: var(--font-body);
161
+ font-size: var(--text-base);
162
+ line-height: var(--leading-normal);
163
+ color: var(--color-ink);
164
+ background: var(--color-paper);
165
+ -webkit-font-smoothing: antialiased;
166
+ text-rendering: optimizeLegibility;
167
+ }
168
+
169
+ h2,
170
+ h3 {
171
+ margin: 0;
172
+ font-weight: 600;
173
+ }
174
+
175
+ /* Visible, high-contrast focus ring for keyboard users (a11y). */
176
+ :focus-visible {
177
+ outline: 2px solid var(--color-focus);
178
+ outline-offset: 2px;
179
+ }
180
+
181
+ .visually-hidden {
182
+ position: absolute;
183
+ width: 1px;
184
+ height: 1px;
185
+ padding: 0;
186
+ margin: -1px;
187
+ overflow: hidden;
188
+ clip: rect(0, 0, 0, 0);
189
+ white-space: nowrap;
190
+ border: 0;
191
+ }
192
+ }
193
+
194
+ @layer layout {
195
+ /* Sticky hairline header — structural, no shadow, no accent. */
196
+ .app-header {
197
+ position: sticky;
198
+ top: 0;
199
+ z-index: 10;
200
+ display: flex;
201
+ flex-wrap: wrap;
202
+ gap: var(--space-md);
203
+ align-items: baseline;
204
+ justify-content: space-between;
205
+ padding: var(--space-md) var(--space-xl);
206
+ background: color-mix(in oklch, var(--color-paper) 88%, transparent);
207
+ backdrop-filter: blur(8px);
208
+ border-bottom: var(--rule-hair) solid var(--color-hairline);
209
+ }
210
+
211
+ .app-header__brand {
212
+ display: flex;
213
+ align-items: baseline;
214
+ gap: var(--space-sm);
215
+ }
216
+
217
+ .app-header__search {
218
+ flex: 1 1 220px;
219
+ max-width: 360px;
220
+ }
221
+
222
+ /* Main scroll region: comfortable page gutters + rhythm between groups. */
223
+ .app-grid {
224
+ display: flex;
225
+ flex-direction: column;
226
+ gap: var(--space-2xl);
227
+ padding: var(--space-xl);
228
+ max-width: 1400px;
229
+ margin-inline: auto;
230
+ }
231
+
232
+ /* AC7 — responsive card grid. auto-fill + minmax lets columns reflow from a
233
+ single column on narrow viewports up to as many 320px+ columns as fit. */
234
+ .ds-grid {
235
+ display: grid;
236
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
237
+ gap: var(--space-lg);
238
+ }
239
+ }
240
+
241
+ @layer components {
242
+ /* Wordmark — the ONE sanctioned clay touch (the generate "spark"). */
243
+ .wordmark {
244
+ font-family: var(--font-display);
245
+ font-size: var(--text-lg);
246
+ font-weight: 600;
247
+ letter-spacing: -0.01em;
248
+ color: var(--color-ink);
249
+ }
250
+
251
+ /*
252
+ * M4-09 (DRO-271) AC2/AC6 — `--color-accent-2` ("text-safe clay"), NOT
253
+ * `--color-accent`. This is the design system's own **clay-text rule**
254
+ * (design.md §14): `--color-accent` (the fill/large-control hue) is only
255
+ * 3.05:1 on paper — below the 4.5:1 AA body-text bar — but any bare "✦"
256
+ * rendered as body-size text directly on paper across every design-6 mock
257
+ * (ref-primitives.svg, ref-genie-card.svg) already uses `#ac5a40`
258
+ * (`--color-accent-2`), never `#c87c5e` (`--color-accent`). This span was
259
+ * the one place that rule hadn't been applied yet — axe-core's
260
+ * `color-contrast` check flags it as `incomplete` (not a hard violation;
261
+ * a lone symbol glyph isn't shape-gradable the way a word is — see
262
+ * `test/a11y.test.ts`'s file-header note) rather than fail outright, but
263
+ * `aria-hidden="true"` doesn't exempt a *sighted* low-vision user from
264
+ * needing to actually read it. `--color-accent-2` clears AA (4.62:1 light
265
+ * / 5.27:1 dark, see the dark-mode override below) while keeping the exact
266
+ * same hue family — the identity rule (clay only on generate/refine
267
+ * moments) is unchanged; only which existing clay token this glyph points
268
+ * at changes.
269
+ */
270
+ .wordmark__spark {
271
+ margin-left: 2px;
272
+ color: var(--color-accent-2);
273
+ }
274
+
275
+ .app-header__subtitle {
276
+ font-size: var(--text-sm);
277
+ color: var(--color-ink-3);
278
+ letter-spacing: var(--tracking-wide);
279
+ text-transform: lowercase;
280
+ }
281
+
282
+ .search-input {
283
+ width: 100%;
284
+ padding: var(--space-xs) var(--space-sm);
285
+ font: inherit;
286
+ font-size: var(--text-sm);
287
+ color: var(--color-ink);
288
+ background: var(--color-paper-2);
289
+ border: var(--rule-hair) solid var(--color-hairline-2);
290
+ border-radius: var(--radius-md);
291
+ }
292
+
293
+ .search-input::placeholder {
294
+ color: var(--color-ink-3);
295
+ }
296
+
297
+ /* M4-04 (DRO-266) — HMR reload meter (AC6): a quiet, collapsible diagnostic.
298
+ Structural chrome ONLY — neutral ink + mono, NEVER the clay accent (identity
299
+ contract: clay is for generate/refine, not diagnostics). */
300
+ .hmr-meter {
301
+ flex: 0 0 auto;
302
+ font-size: var(--text-xs);
303
+ color: var(--color-ink-3);
304
+ }
305
+
306
+ .hmr-meter__summary {
307
+ cursor: pointer;
308
+ list-style: none;
309
+ padding: var(--space-2xs) var(--space-xs);
310
+ font-family: var(--font-mono);
311
+ letter-spacing: var(--tracking-wide);
312
+ color: var(--color-ink-3);
313
+ background: var(--color-paper-2);
314
+ border: var(--rule-hair) solid var(--color-hairline-2);
315
+ border-radius: var(--radius-sm);
316
+ user-select: none;
317
+ }
318
+
319
+ .hmr-meter__summary::-webkit-details-marker {
320
+ display: none;
321
+ }
322
+
323
+ /* The live count — inks up (ink-2) so a nonzero total reads at a glance,
324
+ still neutral (no clay). */
325
+ .hmr-meter__count {
326
+ font-weight: 600;
327
+ color: var(--color-ink-2);
328
+ }
329
+
330
+ .hmr-meter__detail {
331
+ max-width: 30ch;
332
+ margin: var(--space-2xs) 0 0;
333
+ color: var(--color-ink-3);
334
+ }
335
+
336
+ .hmr-meter__detail code {
337
+ font-family: var(--font-mono);
338
+ font-size: 0.9em;
339
+ }
340
+
341
+ /* Group section: a hairline-ruled title, then the card grid. */
342
+ .ds-group__title {
343
+ margin-bottom: var(--space-md);
344
+ padding-bottom: var(--space-xs);
345
+ font-family: var(--font-display);
346
+ font-size: var(--text-lg);
347
+ font-weight: 600;
348
+ color: var(--color-ink);
349
+ border-bottom: var(--rule-hair) solid var(--color-hairline);
350
+ }
351
+
352
+ /* Card — hairline shell, near-flat elevation (design-4 restraint). */
353
+ .ds-card {
354
+ display: flex;
355
+ flex-direction: column;
356
+ overflow: hidden;
357
+ background: var(--color-paper);
358
+ border: var(--rule-hair) solid var(--color-hairline);
359
+ border-radius: var(--radius-lg);
360
+ box-shadow: var(--shadow-sm);
361
+ }
362
+
363
+ .ds-card__head {
364
+ display: flex;
365
+ flex-wrap: wrap;
366
+ align-items: baseline;
367
+ justify-content: space-between;
368
+ gap: var(--space-xs);
369
+ padding: var(--space-sm) var(--space-md);
370
+ border-bottom: var(--rule-hair) solid var(--color-hairline);
371
+ }
372
+
373
+ .ds-card__name {
374
+ font-family: var(--font-display);
375
+ font-size: var(--text-base);
376
+ font-weight: 600;
377
+ color: var(--color-ink);
378
+ }
379
+
380
+ .ds-card__meta {
381
+ display: flex;
382
+ align-items: center;
383
+ gap: var(--space-xs);
384
+ font-size: var(--text-xs);
385
+ color: var(--color-ink-3);
386
+ }
387
+
388
+ /* Group pill — neutral, NOT clay (structure stays ink). */
389
+ .ds-card__group {
390
+ padding: 1px var(--space-xs);
391
+ color: var(--color-ink-2);
392
+ background: var(--color-paper-3);
393
+ border-radius: var(--radius-sm);
394
+ letter-spacing: var(--tracking-wide);
395
+ }
396
+
397
+ .ds-card__viewport {
398
+ font-family: var(--font-mono);
399
+ font-size: var(--text-xs);
400
+ }
401
+
402
+ /* Preview region — a checkerboard-free neutral surface behind the iframe. */
403
+ .ds-card__frame {
404
+ display: flex;
405
+ padding: var(--space-md);
406
+ background: var(--color-paper-2);
407
+ }
408
+
409
+ .ds-card__frame iframe {
410
+ width: 100%;
411
+ max-width: 100%;
412
+ border: var(--rule-hair) solid var(--color-hairline);
413
+ border-radius: var(--radius-sm);
414
+ background: var(--color-paper);
415
+ }
416
+
417
+ /* Empty + error states — quiet, centered, neutral. */
418
+ .ds-empty,
419
+ .ds-error {
420
+ padding: var(--space-2xl);
421
+ text-align: center;
422
+ color: var(--color-ink-2);
423
+ background: var(--color-paper-2);
424
+ border: var(--rule-hair) dashed var(--color-hairline-2);
425
+ border-radius: var(--radius-lg);
426
+ }
427
+
428
+ .ds-viewer-embed {
429
+ display: block;
430
+ width: 100%;
431
+ min-height: 640px;
432
+ border: 0;
433
+ }
434
+
435
+ .ds-error {
436
+ color: var(--color-ink);
437
+ }
438
+ }
439
+
440
+ @layer state {
441
+ /* AC5 — the filter toggles [hidden]; in the state layer so it always wins. */
442
+ [hidden] {
443
+ display: none !important;
444
+ }
445
+
446
+ @media (prefers-reduced-motion: no-preference) {
447
+ .ds-card {
448
+ transition: box-shadow var(--dur-base, 200ms) ease;
449
+ }
450
+ }
451
+ }