@inhuman.tools/quickdraw 0.0.0-bootstrap.0 → 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 (522) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +102 -1
  3. package/aurora.vert +168 -0
  4. package/dist/bench/host.d.ts +62 -0
  5. package/dist/bench/host.d.ts.map +1 -0
  6. package/dist/bench/host.js +77 -0
  7. package/dist/bench/host.js.map +1 -0
  8. package/dist/bench/main.d.ts +6 -0
  9. package/dist/bench/main.d.ts.map +1 -0
  10. package/dist/bench/main.js +118 -0
  11. package/dist/bench/main.js.map +1 -0
  12. package/dist/bench/model.d.ts +36 -0
  13. package/dist/bench/model.d.ts.map +1 -0
  14. package/dist/bench/model.js +112 -0
  15. package/dist/bench/model.js.map +1 -0
  16. package/dist/bench/tea.d.ts +14 -0
  17. package/dist/bench/tea.d.ts.map +1 -0
  18. package/dist/bench/tea.js +6 -0
  19. package/dist/bench/tea.js.map +1 -0
  20. package/dist/bench/view.d.ts +9 -0
  21. package/dist/bench/view.d.ts.map +1 -0
  22. package/dist/bench/view.js +88 -0
  23. package/dist/bench/view.js.map +1 -0
  24. package/dist/bench/worker.d.ts +6 -0
  25. package/dist/bench/worker.d.ts.map +1 -0
  26. package/dist/bench/worker.js +46 -0
  27. package/dist/bench/worker.js.map +1 -0
  28. package/dist/buffer/bgfx-mark.d.ts +32 -0
  29. package/dist/buffer/bgfx-mark.d.ts.map +1 -0
  30. package/dist/buffer/bgfx-mark.js +43 -0
  31. package/dist/buffer/bgfx-mark.js.map +1 -0
  32. package/dist/buffer/index.d.ts +191 -0
  33. package/dist/buffer/index.d.ts.map +1 -0
  34. package/dist/buffer/index.js +353 -0
  35. package/dist/buffer/index.js.map +1 -0
  36. package/dist/capabilities/env.d.ts +23 -0
  37. package/dist/capabilities/env.d.ts.map +1 -0
  38. package/dist/capabilities/env.js +35 -0
  39. package/dist/capabilities/env.js.map +1 -0
  40. package/dist/capabilities/index.d.ts +13 -0
  41. package/dist/capabilities/index.d.ts.map +1 -0
  42. package/dist/capabilities/index.js +13 -0
  43. package/dist/capabilities/index.js.map +1 -0
  44. package/dist/capabilities/parse.d.ts +41 -0
  45. package/dist/capabilities/parse.d.ts.map +1 -0
  46. package/dist/capabilities/parse.js +86 -0
  47. package/dist/capabilities/parse.js.map +1 -0
  48. package/dist/capabilities/probe.d.ts +37 -0
  49. package/dist/capabilities/probe.d.ts.map +1 -0
  50. package/dist/capabilities/probe.js +75 -0
  51. package/dist/capabilities/probe.js.map +1 -0
  52. package/dist/capabilities/sequences.d.ts +33 -0
  53. package/dist/capabilities/sequences.d.ts.map +1 -0
  54. package/dist/capabilities/sequences.js +36 -0
  55. package/dist/capabilities/sequences.js.map +1 -0
  56. package/dist/capabilities/types.d.ts +25 -0
  57. package/dist/capabilities/types.d.ts.map +1 -0
  58. package/dist/capabilities/types.js +5 -0
  59. package/dist/capabilities/types.js.map +1 -0
  60. package/dist/index.d.ts +11 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +11 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/input/decode.d.ts +167 -0
  65. package/dist/input/decode.d.ts.map +1 -0
  66. package/dist/input/decode.js +825 -0
  67. package/dist/input/decode.js.map +1 -0
  68. package/dist/input/draft.d.ts +85 -0
  69. package/dist/input/draft.d.ts.map +1 -0
  70. package/dist/input/draft.js +276 -0
  71. package/dist/input/draft.js.map +1 -0
  72. package/dist/input/index.d.ts +3 -0
  73. package/dist/input/index.d.ts.map +1 -0
  74. package/dist/input/index.js +3 -0
  75. package/dist/input/index.js.map +1 -0
  76. package/dist/input/prompt-blocks.d.ts +58 -0
  77. package/dist/input/prompt-blocks.d.ts.map +1 -0
  78. package/dist/input/prompt-blocks.js +48 -0
  79. package/dist/input/prompt-blocks.js.map +1 -0
  80. package/dist/input/rich-draft.d.ts +46 -0
  81. package/dist/input/rich-draft.d.ts.map +1 -0
  82. package/dist/input/rich-draft.js +391 -0
  83. package/dist/input/rich-draft.js.map +1 -0
  84. package/dist/input/rich-hit.d.ts +17 -0
  85. package/dist/input/rich-hit.d.ts.map +1 -0
  86. package/dist/input/rich-hit.js +89 -0
  87. package/dist/input/rich-hit.js.map +1 -0
  88. package/dist/input/rich-intake.d.ts +16 -0
  89. package/dist/input/rich-intake.d.ts.map +1 -0
  90. package/dist/input/rich-intake.js +22 -0
  91. package/dist/input/rich-intake.js.map +1 -0
  92. package/dist/input/rich-paint.d.ts +13 -0
  93. package/dist/input/rich-paint.d.ts.map +1 -0
  94. package/dist/input/rich-paint.js +18 -0
  95. package/dist/input/rich-paint.js.map +1 -0
  96. package/dist/internals/bgfx/index.d.ts +17 -0
  97. package/dist/internals/bgfx/index.d.ts.map +1 -0
  98. package/dist/internals/bgfx/index.js +17 -0
  99. package/dist/internals/bgfx/index.js.map +1 -0
  100. package/dist/internals/bgfx/materialize.d.ts +31 -0
  101. package/dist/internals/bgfx/materialize.d.ts.map +1 -0
  102. package/dist/internals/bgfx/materialize.js +117 -0
  103. package/dist/internals/bgfx/materialize.js.map +1 -0
  104. package/dist/internals/bgfx/opacity.d.ts +37 -0
  105. package/dist/internals/bgfx/opacity.d.ts.map +1 -0
  106. package/dist/internals/bgfx/opacity.js +76 -0
  107. package/dist/internals/bgfx/opacity.js.map +1 -0
  108. package/dist/internals/bgfx/registry.d.ts +13 -0
  109. package/dist/internals/bgfx/registry.d.ts.map +1 -0
  110. package/dist/internals/bgfx/registry.js +24 -0
  111. package/dist/internals/bgfx/registry.js.map +1 -0
  112. package/dist/internals/bgfx/sab-layout.d.ts +61 -0
  113. package/dist/internals/bgfx/sab-layout.d.ts.map +1 -0
  114. package/dist/internals/bgfx/sab-layout.js +107 -0
  115. package/dist/internals/bgfx/sab-layout.js.map +1 -0
  116. package/dist/internals/bgfx/shader-frame-host.d.ts +22 -0
  117. package/dist/internals/bgfx/shader-frame-host.d.ts.map +1 -0
  118. package/dist/internals/bgfx/shader-frame-host.js +165 -0
  119. package/dist/internals/bgfx/shader-frame-host.js.map +1 -0
  120. package/dist/internals/bgfx/shadertoy-catalog.d.ts +41 -0
  121. package/dist/internals/bgfx/shadertoy-catalog.d.ts.map +1 -0
  122. package/dist/internals/bgfx/shadertoy-catalog.js +200 -0
  123. package/dist/internals/bgfx/shadertoy-catalog.js.map +1 -0
  124. package/dist/internals/bgfx/shadertoy-gl.d.ts +38 -0
  125. package/dist/internals/bgfx/shadertoy-gl.d.ts.map +1 -0
  126. package/dist/internals/bgfx/shadertoy-gl.js +283 -0
  127. package/dist/internals/bgfx/shadertoy-gl.js.map +1 -0
  128. package/dist/internals/bgfx/types.d.ts +51 -0
  129. package/dist/internals/bgfx/types.d.ts.map +1 -0
  130. package/dist/internals/bgfx/types.js +14 -0
  131. package/dist/internals/bgfx/types.js.map +1 -0
  132. package/dist/internals/bgfx-worker.d.ts +6 -0
  133. package/dist/internals/bgfx-worker.d.ts.map +1 -0
  134. package/dist/internals/bgfx-worker.js +131 -0
  135. package/dist/internals/bgfx-worker.js.map +1 -0
  136. package/dist/layout/birth.d.ts +77 -0
  137. package/dist/layout/birth.d.ts.map +1 -0
  138. package/dist/layout/birth.js +148 -0
  139. package/dist/layout/birth.js.map +1 -0
  140. package/dist/layout/children.d.ts +5 -0
  141. package/dist/layout/children.d.ts.map +1 -0
  142. package/dist/layout/children.js +19 -0
  143. package/dist/layout/children.js.map +1 -0
  144. package/dist/layout/chrome_frame.d.ts +254 -0
  145. package/dist/layout/chrome_frame.d.ts.map +1 -0
  146. package/dist/layout/chrome_frame.js +1080 -0
  147. package/dist/layout/chrome_frame.js.map +1 -0
  148. package/dist/layout/chrome_mask.d.ts +40 -0
  149. package/dist/layout/chrome_mask.d.ts.map +1 -0
  150. package/dist/layout/chrome_mask.js +150 -0
  151. package/dist/layout/chrome_mask.js.map +1 -0
  152. package/dist/layout/engine.d.ts +49 -0
  153. package/dist/layout/engine.d.ts.map +1 -0
  154. package/dist/layout/engine.js +1269 -0
  155. package/dist/layout/engine.js.map +1 -0
  156. package/dist/layout/flex.d.ts +36 -0
  157. package/dist/layout/flex.d.ts.map +1 -0
  158. package/dist/layout/flex.js +111 -0
  159. package/dist/layout/flex.js.map +1 -0
  160. package/dist/layout/grid.d.ts +36 -0
  161. package/dist/layout/grid.d.ts.map +1 -0
  162. package/dist/layout/grid.js +126 -0
  163. package/dist/layout/grid.js.map +1 -0
  164. package/dist/layout/index.d.ts +30 -0
  165. package/dist/layout/index.d.ts.map +1 -0
  166. package/dist/layout/index.js +30 -0
  167. package/dist/layout/index.js.map +1 -0
  168. package/dist/layout/indication.d.ts +34 -0
  169. package/dist/layout/indication.d.ts.map +1 -0
  170. package/dist/layout/indication.js +68 -0
  171. package/dist/layout/indication.js.map +1 -0
  172. package/dist/layout/length.d.ts +18 -0
  173. package/dist/layout/length.d.ts.map +1 -0
  174. package/dist/layout/length.js +24 -0
  175. package/dist/layout/length.js.map +1 -0
  176. package/dist/layout/live_paint.d.ts +145 -0
  177. package/dist/layout/live_paint.d.ts.map +1 -0
  178. package/dist/layout/live_paint.js +255 -0
  179. package/dist/layout/live_paint.js.map +1 -0
  180. package/dist/layout/markdown.d.ts +22 -0
  181. package/dist/layout/markdown.d.ts.map +1 -0
  182. package/dist/layout/markdown.js +167 -0
  183. package/dist/layout/markdown.js.map +1 -0
  184. package/dist/layout/measure.d.ts +46 -0
  185. package/dist/layout/measure.d.ts.map +1 -0
  186. package/dist/layout/measure.js +307 -0
  187. package/dist/layout/measure.js.map +1 -0
  188. package/dist/layout/paint-hotkey.d.ts +45 -0
  189. package/dist/layout/paint-hotkey.d.ts.map +1 -0
  190. package/dist/layout/paint-hotkey.js +152 -0
  191. package/dist/layout/paint-hotkey.js.map +1 -0
  192. package/dist/layout/paint.d.ts +25 -0
  193. package/dist/layout/paint.d.ts.map +1 -0
  194. package/dist/layout/paint.js +189 -0
  195. package/dist/layout/paint.js.map +1 -0
  196. package/dist/layout/paint_theme.d.ts +85 -0
  197. package/dist/layout/paint_theme.d.ts.map +1 -0
  198. package/dist/layout/paint_theme.js +76 -0
  199. package/dist/layout/paint_theme.js.map +1 -0
  200. package/dist/layout/progress.d.ts +31 -0
  201. package/dist/layout/progress.d.ts.map +1 -0
  202. package/dist/layout/progress.js +83 -0
  203. package/dist/layout/progress.js.map +1 -0
  204. package/dist/layout/selection.d.ts +136 -0
  205. package/dist/layout/selection.d.ts.map +1 -0
  206. package/dist/layout/selection.js +312 -0
  207. package/dist/layout/selection.js.map +1 -0
  208. package/dist/layout/selection_gesture.d.ts +88 -0
  209. package/dist/layout/selection_gesture.d.ts.map +1 -0
  210. package/dist/layout/selection_gesture.js +239 -0
  211. package/dist/layout/selection_gesture.js.map +1 -0
  212. package/dist/layout/selection_paint.d.ts +47 -0
  213. package/dist/layout/selection_paint.d.ts.map +1 -0
  214. package/dist/layout/selection_paint.js +320 -0
  215. package/dist/layout/selection_paint.js.map +1 -0
  216. package/dist/layout/serialize.d.ts +49 -0
  217. package/dist/layout/serialize.d.ts.map +1 -0
  218. package/dist/layout/serialize.js +437 -0
  219. package/dist/layout/serialize.js.map +1 -0
  220. package/dist/layout/squeeze.d.ts +58 -0
  221. package/dist/layout/squeeze.d.ts.map +1 -0
  222. package/dist/layout/squeeze.js +239 -0
  223. package/dist/layout/squeeze.js.map +1 -0
  224. package/dist/layout/text.d.ts +44 -0
  225. package/dist/layout/text.d.ts.map +1 -0
  226. package/dist/layout/text.js +230 -0
  227. package/dist/layout/text.js.map +1 -0
  228. package/dist/layout/theme_store.d.ts +21 -0
  229. package/dist/layout/theme_store.d.ts.map +1 -0
  230. package/dist/layout/theme_store.js +133 -0
  231. package/dist/layout/theme_store.js.map +1 -0
  232. package/dist/layout/types.d.ts +564 -0
  233. package/dist/layout/types.d.ts.map +1 -0
  234. package/dist/layout/types.js +2 -0
  235. package/dist/layout/types.js.map +1 -0
  236. package/dist/layout/visual_draft.d.ts +60 -0
  237. package/dist/layout/visual_draft.d.ts.map +1 -0
  238. package/dist/layout/visual_draft.js +199 -0
  239. package/dist/layout/visual_draft.js.map +1 -0
  240. package/dist/lexicon/color.d.ts +22 -0
  241. package/dist/lexicon/color.d.ts.map +1 -0
  242. package/dist/lexicon/color.js +6 -0
  243. package/dist/lexicon/color.js.map +1 -0
  244. package/dist/lexicon/index.d.ts +15 -0
  245. package/dist/lexicon/index.d.ts.map +1 -0
  246. package/dist/lexicon/index.js +15 -0
  247. package/dist/lexicon/index.js.map +1 -0
  248. package/dist/lexicon/prominence.d.ts +46 -0
  249. package/dist/lexicon/prominence.d.ts.map +1 -0
  250. package/dist/lexicon/prominence.js +73 -0
  251. package/dist/lexicon/prominence.js.map +1 -0
  252. package/dist/lexicon/quarantine.d.ts +21 -0
  253. package/dist/lexicon/quarantine.d.ts.map +1 -0
  254. package/dist/lexicon/quarantine.js +15 -0
  255. package/dist/lexicon/quarantine.js.map +1 -0
  256. package/dist/lexicon/roles.d.ts +37 -0
  257. package/dist/lexicon/roles.d.ts.map +1 -0
  258. package/dist/lexicon/roles.js +52 -0
  259. package/dist/lexicon/roles.js.map +1 -0
  260. package/dist/lexicon/tiers.d.ts +18 -0
  261. package/dist/lexicon/tiers.d.ts.map +1 -0
  262. package/dist/lexicon/tiers.js +17 -0
  263. package/dist/lexicon/tiers.js.map +1 -0
  264. package/dist/measure/index.d.ts +43 -0
  265. package/dist/measure/index.d.ts.map +1 -0
  266. package/dist/measure/index.js +120 -0
  267. package/dist/measure/index.js.map +1 -0
  268. package/dist/render.d.ts +72 -0
  269. package/dist/render.d.ts.map +1 -0
  270. package/dist/render.js +164 -0
  271. package/dist/render.js.map +1 -0
  272. package/dist/runtime/agents_keys.d.ts +8 -0
  273. package/dist/runtime/agents_keys.d.ts.map +1 -0
  274. package/dist/runtime/agents_keys.js +24 -0
  275. package/dist/runtime/agents_keys.js.map +1 -0
  276. package/dist/runtime/agents_peek.d.ts +44 -0
  277. package/dist/runtime/agents_peek.d.ts.map +1 -0
  278. package/dist/runtime/agents_peek.js +96 -0
  279. package/dist/runtime/agents_peek.js.map +1 -0
  280. package/dist/runtime/agents_preview.d.ts +27 -0
  281. package/dist/runtime/agents_preview.d.ts.map +1 -0
  282. package/dist/runtime/agents_preview.js +122 -0
  283. package/dist/runtime/agents_preview.js.map +1 -0
  284. package/dist/runtime/box_bus.d.ts +144 -0
  285. package/dist/runtime/box_bus.d.ts.map +1 -0
  286. package/dist/runtime/box_bus.js +74 -0
  287. package/dist/runtime/box_bus.js.map +1 -0
  288. package/dist/runtime/clipboard-image.d.ts +20 -0
  289. package/dist/runtime/clipboard-image.d.ts.map +1 -0
  290. package/dist/runtime/clipboard-image.js +62 -0
  291. package/dist/runtime/clipboard-image.js.map +1 -0
  292. package/dist/runtime/copy_toast.d.ts +46 -0
  293. package/dist/runtime/copy_toast.d.ts.map +1 -0
  294. package/dist/runtime/copy_toast.js +117 -0
  295. package/dist/runtime/copy_toast.js.map +1 -0
  296. package/dist/runtime/echo.d.ts +41 -0
  297. package/dist/runtime/echo.d.ts.map +1 -0
  298. package/dist/runtime/echo.js +112 -0
  299. package/dist/runtime/echo.js.map +1 -0
  300. package/dist/runtime/frame.d.ts +79 -0
  301. package/dist/runtime/frame.d.ts.map +1 -0
  302. package/dist/runtime/frame.js +258 -0
  303. package/dist/runtime/frame.js.map +1 -0
  304. package/dist/runtime/index.d.ts +16 -0
  305. package/dist/runtime/index.d.ts.map +1 -0
  306. package/dist/runtime/index.js +16 -0
  307. package/dist/runtime/index.js.map +1 -0
  308. package/dist/runtime/key_buffer.d.ts +19 -0
  309. package/dist/runtime/key_buffer.d.ts.map +1 -0
  310. package/dist/runtime/key_buffer.js +24 -0
  311. package/dist/runtime/key_buffer.js.map +1 -0
  312. package/dist/runtime/keys.d.ts +66 -0
  313. package/dist/runtime/keys.d.ts.map +1 -0
  314. package/dist/runtime/keys.js +220 -0
  315. package/dist/runtime/keys.js.map +1 -0
  316. package/dist/runtime/paint_snapshot.d.ts +9 -0
  317. package/dist/runtime/paint_snapshot.d.ts.map +1 -0
  318. package/dist/runtime/paint_snapshot.js +8 -0
  319. package/dist/runtime/paint_snapshot.js.map +1 -0
  320. package/dist/runtime/paint_source.d.ts +266 -0
  321. package/dist/runtime/paint_source.d.ts.map +1 -0
  322. package/dist/runtime/paint_source.js +532 -0
  323. package/dist/runtime/paint_source.js.map +1 -0
  324. package/dist/runtime/present_loop.d.ts +11 -0
  325. package/dist/runtime/present_loop.d.ts.map +1 -0
  326. package/dist/runtime/present_loop.js +46 -0
  327. package/dist/runtime/present_loop.js.map +1 -0
  328. package/dist/runtime/present_profile.d.ts +58 -0
  329. package/dist/runtime/present_profile.d.ts.map +1 -0
  330. package/dist/runtime/present_profile.js +130 -0
  331. package/dist/runtime/present_profile.js.map +1 -0
  332. package/dist/runtime/raster.d.ts +24 -0
  333. package/dist/runtime/raster.d.ts.map +1 -0
  334. package/dist/runtime/raster.js +43 -0
  335. package/dist/runtime/raster.js.map +1 -0
  336. package/dist/runtime/renderer.d.ts +151 -0
  337. package/dist/runtime/renderer.d.ts.map +1 -0
  338. package/dist/runtime/renderer.js +1607 -0
  339. package/dist/runtime/renderer.js.map +1 -0
  340. package/dist/runtime/screenshot.d.ts +9 -0
  341. package/dist/runtime/screenshot.d.ts.map +1 -0
  342. package/dist/runtime/screenshot.js +111 -0
  343. package/dist/runtime/screenshot.js.map +1 -0
  344. package/dist/runtime/selection_host.d.ts +41 -0
  345. package/dist/runtime/selection_host.d.ts.map +1 -0
  346. package/dist/runtime/selection_host.js +190 -0
  347. package/dist/runtime/selection_host.js.map +1 -0
  348. package/dist/runtime/stderr_hold.d.ts +16 -0
  349. package/dist/runtime/stderr_hold.d.ts.map +1 -0
  350. package/dist/runtime/stderr_hold.js +23 -0
  351. package/dist/runtime/stderr_hold.js.map +1 -0
  352. package/dist/runtime/thought_birth.d.ts +25 -0
  353. package/dist/runtime/thought_birth.d.ts.map +1 -0
  354. package/dist/runtime/thought_birth.js +122 -0
  355. package/dist/runtime/thought_birth.js.map +1 -0
  356. package/dist/runtime/thought_collapsed.d.ts +35 -0
  357. package/dist/runtime/thought_collapsed.d.ts.map +1 -0
  358. package/dist/runtime/thought_collapsed.js +94 -0
  359. package/dist/runtime/thought_collapsed.js.map +1 -0
  360. package/dist/runtime/tty.d.ts +58 -0
  361. package/dist/runtime/tty.d.ts.map +1 -0
  362. package/dist/runtime/tty.js +130 -0
  363. package/dist/runtime/tty.js.map +1 -0
  364. package/dist/theme/ansi16.d.ts +34 -0
  365. package/dist/theme/ansi16.d.ts.map +1 -0
  366. package/dist/theme/ansi16.js +181 -0
  367. package/dist/theme/ansi16.js.map +1 -0
  368. package/dist/theme/ansi256.d.ts +15 -0
  369. package/dist/theme/ansi256.d.ts.map +1 -0
  370. package/dist/theme/ansi256.js +94 -0
  371. package/dist/theme/ansi256.js.map +1 -0
  372. package/dist/theme/ground.d.ts +8 -0
  373. package/dist/theme/ground.d.ts.map +1 -0
  374. package/dist/theme/ground.js +11 -0
  375. package/dist/theme/ground.js.map +1 -0
  376. package/dist/theme/index.d.ts +10 -0
  377. package/dist/theme/index.d.ts.map +1 -0
  378. package/dist/theme/index.js +10 -0
  379. package/dist/theme/index.js.map +1 -0
  380. package/dist/theme/region.d.ts +42 -0
  381. package/dist/theme/region.d.ts.map +1 -0
  382. package/dist/theme/region.js +105 -0
  383. package/dist/theme/region.js.map +1 -0
  384. package/dist/theme/resolver.d.ts +126 -0
  385. package/dist/theme/resolver.d.ts.map +1 -0
  386. package/dist/theme/resolver.js +366 -0
  387. package/dist/theme/resolver.js.map +1 -0
  388. package/dist/theme/salience.d.ts +90 -0
  389. package/dist/theme/salience.d.ts.map +1 -0
  390. package/dist/theme/salience.js +208 -0
  391. package/dist/theme/salience.js.map +1 -0
  392. package/dist/theme/seeds.d.ts +113 -0
  393. package/dist/theme/seeds.d.ts.map +1 -0
  394. package/dist/theme/seeds.js +52 -0
  395. package/dist/theme/seeds.js.map +1 -0
  396. package/dist/theme/selection.d.ts +94 -0
  397. package/dist/theme/selection.d.ts.map +1 -0
  398. package/dist/theme/selection.js +135 -0
  399. package/dist/theme/selection.js.map +1 -0
  400. package/dist/theme/theme.d.ts +41 -0
  401. package/dist/theme/theme.d.ts.map +1 -0
  402. package/dist/theme/theme.js +34 -0
  403. package/dist/theme/theme.js.map +1 -0
  404. package/dist/widgets/composer-caret.d.ts +47 -0
  405. package/dist/widgets/composer-caret.d.ts.map +1 -0
  406. package/dist/widgets/composer-caret.js +90 -0
  407. package/dist/widgets/composer-caret.js.map +1 -0
  408. package/dist/widgets/composer-click.d.ts +30 -0
  409. package/dist/widgets/composer-click.d.ts.map +1 -0
  410. package/dist/widgets/composer-click.js +89 -0
  411. package/dist/widgets/composer-click.js.map +1 -0
  412. package/dist/widgets/composer-command.d.ts +64 -0
  413. package/dist/widgets/composer-command.d.ts.map +1 -0
  414. package/dist/widgets/composer-command.js +127 -0
  415. package/dist/widgets/composer-command.js.map +1 -0
  416. package/dist/widgets/composer-frame.d.ts +74 -0
  417. package/dist/widgets/composer-frame.d.ts.map +1 -0
  418. package/dist/widgets/composer-frame.js +284 -0
  419. package/dist/widgets/composer-frame.js.map +1 -0
  420. package/dist/widgets/composer-picker.d.ts +89 -0
  421. package/dist/widgets/composer-picker.d.ts.map +1 -0
  422. package/dist/widgets/composer-picker.js +240 -0
  423. package/dist/widgets/composer-picker.js.map +1 -0
  424. package/dist/widgets/diff.d.ts +11 -0
  425. package/dist/widgets/diff.d.ts.map +1 -0
  426. package/dist/widgets/diff.js +19 -0
  427. package/dist/widgets/diff.js.map +1 -0
  428. package/dist/widgets/expand.d.ts +28 -0
  429. package/dist/widgets/expand.d.ts.map +1 -0
  430. package/dist/widgets/expand.js +94 -0
  431. package/dist/widgets/expand.js.map +1 -0
  432. package/dist/widgets/index.d.ts +126 -0
  433. package/dist/widgets/index.d.ts.map +1 -0
  434. package/dist/widgets/index.js +455 -0
  435. package/dist/widgets/index.js.map +1 -0
  436. package/dist/widgets/internals/arrival-lang.d.ts +88 -0
  437. package/dist/widgets/internals/arrival-lang.d.ts.map +1 -0
  438. package/dist/widgets/internals/arrival-lang.js +211 -0
  439. package/dist/widgets/internals/arrival-lang.js.map +1 -0
  440. package/dist/widgets/internals/diff-expand.d.ts +93 -0
  441. package/dist/widgets/internals/diff-expand.d.ts.map +1 -0
  442. package/dist/widgets/internals/diff-expand.js +1106 -0
  443. package/dist/widgets/internals/diff-expand.js.map +1 -0
  444. package/dist/widgets/internals/embedded-syntax.d.ts +62 -0
  445. package/dist/widgets/internals/embedded-syntax.d.ts.map +1 -0
  446. package/dist/widgets/internals/embedded-syntax.js +465 -0
  447. package/dist/widgets/internals/embedded-syntax.js.map +1 -0
  448. package/dist/widgets/internals/markdown-expand.d.ts +57 -0
  449. package/dist/widgets/internals/markdown-expand.d.ts.map +1 -0
  450. package/dist/widgets/internals/markdown-expand.js +980 -0
  451. package/dist/widgets/internals/markdown-expand.js.map +1 -0
  452. package/dist/widgets/internals/overlay-syntax.d.ts +24 -0
  453. package/dist/widgets/internals/overlay-syntax.d.ts.map +1 -0
  454. package/dist/widgets/internals/overlay-syntax.js +90 -0
  455. package/dist/widgets/internals/overlay-syntax.js.map +1 -0
  456. package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts +6 -0
  457. package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts.map +1 -0
  458. package/dist/widgets/internals/pierre-parse/cleanLastNewline.js +8 -0
  459. package/dist/widgets/internals/pierre-parse/cleanLastNewline.js.map +1 -0
  460. package/dist/widgets/internals/pierre-parse/constants.d.ts +13 -0
  461. package/dist/widgets/internals/pierre-parse/constants.d.ts.map +1 -0
  462. package/dist/widgets/internals/pierre-parse/constants.js +13 -0
  463. package/dist/widgets/internals/pierre-parse/constants.js.map +1 -0
  464. package/dist/widgets/internals/pierre-parse/detachString.d.ts +3 -0
  465. package/dist/widgets/internals/pierre-parse/detachString.d.ts.map +1 -0
  466. package/dist/widgets/internals/pierre-parse/detachString.js +24 -0
  467. package/dist/widgets/internals/pierre-parse/detachString.js.map +1 -0
  468. package/dist/widgets/internals/pierre-parse/index.d.ts +8 -0
  469. package/dist/widgets/internals/pierre-parse/index.d.ts.map +1 -0
  470. package/dist/widgets/internals/pierre-parse/index.js +8 -0
  471. package/dist/widgets/internals/pierre-parse/index.js.map +1 -0
  472. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts +15 -0
  473. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts.map +1 -0
  474. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js +39 -0
  475. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js.map +1 -0
  476. package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts +11 -0
  477. package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts.map +1 -0
  478. package/dist/widgets/internals/pierre-parse/parsePatchFiles.js +621 -0
  479. package/dist/widgets/internals/pierre-parse/parsePatchFiles.js.map +1 -0
  480. package/dist/widgets/internals/pierre-parse/types.d.ts +73 -0
  481. package/dist/widgets/internals/pierre-parse/types.d.ts.map +1 -0
  482. package/dist/widgets/internals/pierre-parse/types.js +7 -0
  483. package/dist/widgets/internals/pierre-parse/types.js.map +1 -0
  484. package/dist/widgets/internals/syntax.d.ts +55 -0
  485. package/dist/widgets/internals/syntax.d.ts.map +1 -0
  486. package/dist/widgets/internals/syntax.js +261 -0
  487. package/dist/widgets/internals/syntax.js.map +1 -0
  488. package/dist/widgets/markdown.d.ts +14 -0
  489. package/dist/widgets/markdown.d.ts.map +1 -0
  490. package/dist/widgets/markdown.js +9 -0
  491. package/dist/widgets/markdown.js.map +1 -0
  492. package/dist/widgets/shadow-stream.d.ts +88 -0
  493. package/dist/widgets/shadow-stream.d.ts.map +1 -0
  494. package/dist/widgets/shadow-stream.js +359 -0
  495. package/dist/widgets/shadow-stream.js.map +1 -0
  496. package/dist/widgets/speech.d.ts +36 -0
  497. package/dist/widgets/speech.d.ts.map +1 -0
  498. package/dist/widgets/speech.js +238 -0
  499. package/dist/widgets/speech.js.map +1 -0
  500. package/dist/widgets/stream-birth.d.ts +13 -0
  501. package/dist/widgets/stream-birth.d.ts.map +1 -0
  502. package/dist/widgets/stream-birth.js +70 -0
  503. package/dist/widgets/stream-birth.js.map +1 -0
  504. package/dist/widgets/syntax-boot.d.ts +25 -0
  505. package/dist/widgets/syntax-boot.d.ts.map +1 -0
  506. package/dist/widgets/syntax-boot.js +181 -0
  507. package/dist/widgets/syntax-boot.js.map +1 -0
  508. package/dist/widgets/text.d.ts +16 -0
  509. package/dist/widgets/text.d.ts.map +1 -0
  510. package/dist/widgets/text.js +14 -0
  511. package/dist/widgets/text.js.map +1 -0
  512. package/dist/widgets/transcript.d.ts +44 -0
  513. package/dist/widgets/transcript.d.ts.map +1 -0
  514. package/dist/widgets/transcript.js +106 -0
  515. package/dist/widgets/transcript.js.map +1 -0
  516. package/doom.vert +1840 -0
  517. package/fonts/DejaVuSans.ttf +0 -0
  518. package/fonts/DejaVuSansMono.ttf +0 -0
  519. package/fonts/LICENSE-DejaVu.txt +187 -0
  520. package/fonts/README.md +6 -0
  521. package/gradient.vert +75 -0
  522. package/package.json +147 -4
@@ -0,0 +1,359 @@
1
+ /**
2
+ * ShadowStream — labeled, height-bounded, gradient-faded window over a live
3
+ * text stream (`ShadowStream`, 2026-07-18).
4
+ *
5
+ * Render-side only: pure `LayoutNode` construction. Caller owns state cycle
6
+ * and collapse. Not a "thinking" feature — any streaming process with a header
7
+ * you want to peek-bound (thinking / searching / compiling / log tail).
8
+ *
9
+ * ## Dominating primitive
10
+ *
11
+ * Always rendered, always at `base` prominence. What changes is how much of
12
+ * the stream is shown.
13
+ *
14
+ * ## Three states
15
+ *
16
+ * - `fully_collapsed` — only the primitive (`▸ thinking`).
17
+ * - `peek` — the shadow window (default live render).
18
+ * - `expanded` — `▾ primitive` + full lines (caller may wrap in a rule gutter).
19
+ *
20
+ * ## Peek shadow (two axes)
21
+ *
22
+ * Paint dissolves FG toward local surface / theme ground. Axes:
23
+ *
24
+ * 1. **Vertical age (lanes):** each body row is **full-width uniform** dim by
25
+ * age — oldest darkest, gradually de-dims toward newest (`kLine`). Older
26
+ * lanes never get a horizontal birth ramp.
27
+ * 2. **Opacity wavefront:** host steps wavefront `W` on the newest line only.
28
+ * Full left of W, gradient after W. Older lanes never wait for W.
29
+ * 3. **Squeeze oldest:** primitive at `base` + per-char horizontal dissolve
30
+ * on the oldest tail (`floor → shadowCap`).
31
+ *
32
+ * Peek always ghost-overlays the oldest visible line onto the primitive row.
33
+ * One-line peek: that row is also the birth tip. Taller peeks: oldest
34
+ * squeezes; middle lanes age; newest carries the wavefront.
35
+ */
36
+ import { Text } from "./text.js";
37
+ import { BIRTH_FRONTIER_DEFAULTS, birthLive } from "../layout/index.js";
38
+ import { displayWidth, splitAtWidth } from "../measure/index.js";
39
+ /** Defaults match ShadowStream module attrs + birth-band audit pins. */
40
+ const SHADOW_STREAM_DEFAULTS = {
41
+ primitive: "thinking",
42
+ height: 3,
43
+ base: 0.6,
44
+ /** Full-width age floor for oldest lane (clearly dimmer than mid). */
45
+ floor: 0.12,
46
+ shadowCap: 0.4,
47
+ birthFloor: BIRTH_FRONTIER_DEFAULTS.birthFloor,
48
+ /** Vertical age: >1 = older lanes darker. */
49
+ kLine: 1.25,
50
+ kChar: 1.5,
51
+ falloff: BIRTH_FRONTIER_DEFAULTS.falloff,
52
+ gap: 3,
53
+ ellipsis: "…",
54
+ role: "muted",
55
+ collapsedIcon: "▸",
56
+ expandedIcon: "▾",
57
+ };
58
+ function clamp01(n) {
59
+ if (!Number.isFinite(n))
60
+ return 1;
61
+ return Math.min(1, Math.max(0, n));
62
+ }
63
+ /** Default tip window from layout width (aesthetic; distance still uses ink W). */
64
+ function defaultTipWindow(layoutWidth) {
65
+ const w = Math.max(8, layoutWidth);
66
+ return Math.min(16, Math.max(8, Math.round(w / 4)));
67
+ }
68
+ function normalize(props) {
69
+ const d = SHADOW_STREAM_DEFAULTS;
70
+ const width = Math.max(8, props.width ?? 48);
71
+ const floor = clamp01(props.floor ?? d.floor);
72
+ const birthFloor = clamp01(props.birthFloor ?? d.birthFloor);
73
+ return {
74
+ primitive: props.primitive ?? d.primitive,
75
+ lines: toLines(props.lines),
76
+ state: props.state ?? "peek",
77
+ width,
78
+ height: Math.max(1, props.height ?? d.height),
79
+ base: clamp01(props.base ?? d.base),
80
+ floor,
81
+ shadowCap: clamp01(props.shadowCap ?? d.shadowCap),
82
+ birthFloor,
83
+ tipWindow: Math.max(1, props.tipWindow ?? defaultTipWindow(width)),
84
+ role: props.role ?? d.role,
85
+ surfaceRole: props.surfaceRole,
86
+ surfaceProminence: props.surfaceProminence,
87
+ key: props.key ?? "shadow",
88
+ collapsedIcon: props.collapsedIcon ?? d.collapsedIcon,
89
+ expandedIcon: props.expandedIcon ?? d.expandedIcon,
90
+ primitiveLive: props.primitiveLive,
91
+ wavefront: props.wavefront === true,
92
+ expandedBodyExternal: props.expandedBodyExternal === true,
93
+ };
94
+ }
95
+ function toLines(text) {
96
+ if (text == null)
97
+ return [];
98
+ if (Array.isArray(text)) {
99
+ return text.filter((l) => typeof l === "string" && l.length > 0);
100
+ }
101
+ if (typeof text !== "string")
102
+ return [];
103
+ return text.split("\n").filter((l) => l.length > 0);
104
+ }
105
+ /**
106
+ * Vertical prominence by age: age 0 (newest) = base; older → floor over
107
+ * height-1 steps, slightly exponential (`@k_line`).
108
+ */
109
+ function ageProminence(age, opts) {
110
+ if (age <= 0)
111
+ return opts.base;
112
+ const denom = Math.max(opts.height - 1, 1);
113
+ const t = Math.max(1 - age / denom, 0);
114
+ const k = opts.kLine ?? SHADOW_STREAM_DEFAULTS.kLine;
115
+ return opts.floor + (opts.base - opts.floor) * Math.pow(t, k);
116
+ }
117
+ /**
118
+ * Horizontal prominence on the **oldest** squeeze tail: col 0 (left /
119
+ * consumed) = floor, rising to shadowCap at region right edge (`kChar`).
120
+ */
121
+ function charProminence(col, region, opts) {
122
+ if (region <= 1)
123
+ return opts.floor;
124
+ const t = Math.min(col / (region - 1), 1);
125
+ const k = opts.kChar ?? SHADOW_STREAM_DEFAULTS.kChar;
126
+ return Math.min(opts.floor + (opts.shadowCap - opts.floor) * Math.pow(t, k), opts.shadowCap);
127
+ }
128
+ function textNode(content, key, role, prominence, extra) {
129
+ return Text(content, {
130
+ key,
131
+ whiteSpace: "nowrap",
132
+ style: {
133
+ role,
134
+ prominence,
135
+ bold: extra?.bold,
136
+ surfaceRole: extra?.surfaceRole,
137
+ surfaceProminence: extra?.surfaceRole ? (extra.surfaceProminence ?? 1) : undefined,
138
+ },
139
+ live: extra?.live,
140
+ });
141
+ }
142
+ function surfaceExtra(p) {
143
+ if (!p.surfaceRole)
144
+ return {};
145
+ return {
146
+ surfaceRole: p.surfaceRole,
147
+ surfaceProminence: p.surfaceProminence ?? 1,
148
+ };
149
+ }
150
+ /**
151
+ * Keep the tail that fits `region` display columns; overflow prefix → `…`.
152
+ */
153
+ function fitTail(line, region) {
154
+ const r = Math.max(1, region);
155
+ if (displayWidth(line) <= r)
156
+ return line;
157
+ const keep = Math.max(r - 1, 0);
158
+ const total = displayWidth(line);
159
+ const drop = Math.max(total - keep, 0);
160
+ const [, kept] = splitAtWidth(line, drop);
161
+ return SHADOW_STREAM_DEFAULTS.ellipsis + kept;
162
+ }
163
+ /**
164
+ * Micro-offset so column `col` quantizes RGB on a different phase.
165
+ * ~±½ of an 8-bit step over a typical muted fade span — invisible as
166
+ * structure, enough to break lockstep hops.
167
+ */
168
+ function staggerProminence(p, col) {
169
+ // Golden-ratio phase in [0,1)
170
+ const phase = (col * 0.618_033_988_7) % 1;
171
+ // ±~1/160 on prominence — enough that adjacent letters rarely share an
172
+ // 8-bit RGB step boundary when W crawls (cluster hop → letter crawl).
173
+ const delta = (phase - 0.5) * (1 / 80);
174
+ return Math.min(1, Math.max(0, p + delta));
175
+ }
176
+ /** Coalesce adjacent equal-prominence grapheme runs into text nodes. */
177
+ function spansFromProminence(line, prominenceAtCol, opts) {
178
+ const chars = [...line];
179
+ if (chars.length === 0)
180
+ return [];
181
+ const inkW = displayWidth(line);
182
+ const coalesce = opts.coalesce !== false;
183
+ const stagger = opts.quantizeStagger === true;
184
+ const runs = [];
185
+ let col = 0;
186
+ for (const g of chars) {
187
+ const gW = displayWidth(g);
188
+ // Trailing edge of this grapheme: distance from ink end.
189
+ const trailingDist = Math.max(inkW - (col + gW), 0);
190
+ let p = prominenceAtCol(col, trailingDist);
191
+ if (stagger)
192
+ p = staggerProminence(p, col);
193
+ const last = runs.at(-1);
194
+ if (coalesce && last && Math.abs(last.p - p) < 1e-6) {
195
+ last.text += g;
196
+ }
197
+ else {
198
+ runs.push({ text: g, p });
199
+ }
200
+ col += gW;
201
+ }
202
+ const surf = opts.surfaceRole
203
+ ? {
204
+ surfaceRole: opts.surfaceRole,
205
+ surfaceProminence: opts.surfaceProminence ?? 1,
206
+ }
207
+ : {};
208
+ return runs.map((run, i) => textNode(run.text, `${opts.key}:c${i}`, opts.role, run.p, surf));
209
+ }
210
+ /** Per-char horizontal fade on squeeze oldest tail (left→right dissolve). */
211
+ function fadeSpans(tail, region, opts) {
212
+ return spansFromProminence(tail, (col) => charProminence(col, region, {
213
+ floor: opts.floor,
214
+ shadowCap: opts.shadowCap,
215
+ }), opts);
216
+ }
217
+ /** Primitive + oldest (or only) body on one row — the ghost overlay. */
218
+ function headerRow(p, line, opts) {
219
+ const primW = displayWidth(p.primitive);
220
+ const gap = SHADOW_STREAM_DEFAULTS.gap;
221
+ const region = Math.max(p.width - primW - gap, 1);
222
+ const tail = fitTail(line, region);
223
+ const surf = surfaceExtra(p);
224
+ const tailNodes = opts?.streamBirth
225
+ ? [
226
+ lineNode(p, tail, 0, `${p.key}:shadow`, {
227
+ streamBirth: opts.streamBirth,
228
+ }),
229
+ ]
230
+ : fadeSpans(tail, region, {
231
+ role: p.role,
232
+ key: `${p.key}:shadow`,
233
+ floor: p.floor,
234
+ shadowCap: p.shadowCap,
235
+ ...surf,
236
+ });
237
+ return {
238
+ type: "flex",
239
+ key: `${p.key}:sq`,
240
+ style: { direction: "row", gap: 0, width: p.width },
241
+ children: [
242
+ textNode(p.primitive, `${p.key}:prim`, p.role, p.base, {
243
+ live: p.primitiveLive,
244
+ bold: true,
245
+ ...surf,
246
+ }),
247
+ textNode(" ".repeat(gap), `${p.key}:gap`, p.role, p.floor, surf),
248
+ ...tailNodes,
249
+ ],
250
+ };
251
+ }
252
+ /**
253
+ * Body line: full-width **uniform** age dim, or newest-line birth tip.
254
+ * Older lanes never get horizontal birth ramps — only age.
255
+ */
256
+ function lineNode(p, line, age, key, opts) {
257
+ const surf = surfaceExtra(p);
258
+ const targetP = ageProminence(age, p);
259
+ if (!opts.streamBirth) {
260
+ return textNode(line, key, p.role, targetP, surf);
261
+ }
262
+ return textNode(line, key, p.role, targetP, {
263
+ ...surf,
264
+ live: birthLive({
265
+ siteId: p.key,
266
+ T: opts.streamBirth.T,
267
+ offset: opts.streamBirth.offset,
268
+ target: targetP,
269
+ birthFloor: p.birthFloor,
270
+ falloff: BIRTH_FRONTIER_DEFAULTS.falloff,
271
+ tipWindow: p.tipWindow,
272
+ }),
273
+ });
274
+ }
275
+ /** Newest-line mass. Offset 0 — W is local to this line. */
276
+ function newestStreamBirth(_p, body) {
277
+ if (body.length === 0)
278
+ return undefined;
279
+ const last = body.at(-1);
280
+ return { T: displayWidth(last), offset: 0 };
281
+ }
282
+ function peekChildren(p) {
283
+ const n = p.lines.length;
284
+ const surf = surfaceExtra(p);
285
+ if (n === 0) {
286
+ return [
287
+ textNode(p.primitive, `${p.key}:prim`, p.role, p.base, {
288
+ live: p.primitiveLive,
289
+ bold: true,
290
+ ...surf,
291
+ }),
292
+ ];
293
+ }
294
+ const window = p.lines.slice(-p.height);
295
+ const len = window.length;
296
+ const oldest = window[0];
297
+ const rest = window.slice(1);
298
+ const birth = newestStreamBirth(p, window);
299
+ if (rest.length === 0) {
300
+ return [
301
+ headerRow(p, oldest, {
302
+ streamBirth: p.wavefront ? birth : undefined,
303
+ }),
304
+ ];
305
+ }
306
+ const restRows = rest.map((line, i) => {
307
+ const age = len - 2 - i;
308
+ const isNewest = age === 0;
309
+ return lineNode(p, line, Math.max(age, 0), `${p.key}:l${i + 1}`, {
310
+ streamBirth: isNewest && p.wavefront ? birth : undefined,
311
+ });
312
+ });
313
+ return [headerRow(p, oldest), ...restRows];
314
+ }
315
+ /**
316
+ * Pure LayoutNode tree for a ShadowStream.
317
+ * Root is a column flex; does not wrap Indication — caller composes.
318
+ */
319
+ export function ShadowStream(props = {}) {
320
+ const p = normalize(props);
321
+ let kids;
322
+ const surf = surfaceExtra(p);
323
+ switch (p.state) {
324
+ case "fully_collapsed":
325
+ kids = [
326
+ textNode(`${p.collapsedIcon} ${p.primitive}`, `${p.key}:prim`, p.role, p.base, {
327
+ live: p.primitiveLive,
328
+ bold: true,
329
+ ...surf,
330
+ }),
331
+ ];
332
+ break;
333
+ case "expanded":
334
+ // No tip rubber-band — peek-only feature (audit S6).
335
+ kids = [
336
+ textNode(`${p.expandedIcon} ${p.primitive}`, `${p.key}:prim`, p.role, p.base, {
337
+ live: p.primitiveLive,
338
+ bold: true,
339
+ ...surf,
340
+ }),
341
+ ];
342
+ if (!p.expandedBodyExternal) {
343
+ for (let i = 0; i < p.lines.length; i++) {
344
+ kids.push(textNode(p.lines[i], `${p.key}:x${i}`, p.role, p.base, surf));
345
+ }
346
+ }
347
+ break;
348
+ case "peek":
349
+ kids = peekChildren(p);
350
+ break;
351
+ }
352
+ return {
353
+ type: "flex",
354
+ key: p.key,
355
+ style: { direction: "column", gap: 0, width: p.width },
356
+ children: kids,
357
+ };
358
+ }
359
+ //# sourceMappingURL=shadow-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-stream.js","sourceRoot":"","sources":["../../src/widgets/shadow-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type LayoutNode } from "../layout/index.js";
2
+ /**
3
+ * `"12:00 AM"` is 8 cells. Shorter `H:MM AM/PM` faces right-pad in this slot
4
+ * so AM/PM stays a column — do not shrink-wrap the clock.
5
+ */
6
+ export declare const SPEECH_STAMP_CELLS = 8;
7
+ export declare const SPEECH_STAMP_GAP = 1;
8
+ export declare const SPEECH_STAMP_RESERVE: number;
9
+ export declare function speechBodyWidth(contentW: number): number;
10
+ /** Local wall clock. `H:MM AM/PM` — no leading hour zero. */
11
+ export declare function formatClock12h(atMs: number): string;
12
+ export declare const SIGIL_USER = "\u276F";
13
+ /** Stamp-rail width for a user floor in a column of `columnW`. */
14
+ export declare function userSpeechRailWidth(columnW: number): number;
15
+ /** Indication inset, then the user floor's right pad, so both clocks share a column. */
16
+ export declare function replySpeechRailWidth(columnW: number): number;
17
+ export type SpeechVoice = "user" | "assistant";
18
+ export type SpeechModel = {
19
+ readonly text: string;
20
+ readonly voice?: SpeechVoice;
21
+ readonly live?: boolean;
22
+ readonly failed?: boolean;
23
+ /** Epoch ms. Null keeps the 8-cell rail empty. */
24
+ readonly atMs?: number | null;
25
+ };
26
+ export declare function Speech(model: SpeechModel, opts: {
27
+ key: string;
28
+ width?: number;
29
+ }): LayoutNode;
30
+ /** Markdown / text child inside the stamp rail. */
31
+ export declare function speechBodyNode(node: LayoutNode): LayoutNode | undefined;
32
+ export declare function replaceSpeechBody(node: LayoutNode, body: LayoutNode): LayoutNode;
33
+ export declare function Recall(text: string, opts: {
34
+ key: string;
35
+ }): LayoutNode;
36
+ //# sourceMappingURL=speech.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../../src/widgets/speech.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGtG;;;GAGG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,oBAAoB,QAAwC,CAAC;AAI1E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASnD;AA2DD,eAAO,MAAM,UAAU,WAAM,CAAC;AAQ9B,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAKD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAyD5F;AA0CD,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAIvE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAqBhF;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAYtE"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * Transcript speech / recall. Glyph and role only — no session, no PEW.
3
+ * Prompt and reply share one voice (foreground @ primary). Bold + ❯ is the
4
+ * user mark, one cell inside a surface floor at mist. Replies do not recede
5
+ * to muted or secondary.
6
+ */
7
+ import { Markdown } from "./markdown.js";
8
+ import { Text } from "./text.js";
9
+ import { INDICATION_CONTENT_INSET, INDICATION_VOID_GLYPH } from "../layout/index.js";
10
+ import { BgP, FgP } from "../lexicon/index.js";
11
+ /**
12
+ * `"12:00 AM"` is 8 cells. Shorter `H:MM AM/PM` faces right-pad in this slot
13
+ * so AM/PM stays a column — do not shrink-wrap the clock.
14
+ */
15
+ export const SPEECH_STAMP_CELLS = 8;
16
+ export const SPEECH_STAMP_GAP = 1;
17
+ export const SPEECH_STAMP_RESERVE = SPEECH_STAMP_CELLS + SPEECH_STAMP_GAP;
18
+ const STAMP_VOICE = { role: "foreground", prominence: FgP.ghost };
19
+ export function speechBodyWidth(contentW) {
20
+ return Math.max(8, contentW - SPEECH_STAMP_RESERVE);
21
+ }
22
+ /** Local wall clock. `H:MM AM/PM` — no leading hour zero. */
23
+ export function formatClock12h(atMs) {
24
+ if (!Number.isFinite(atMs))
25
+ return "";
26
+ const date = new Date(atMs);
27
+ const minutes = date.getMinutes();
28
+ let hour = date.getHours();
29
+ const suffix = hour >= 12 ? "PM" : "AM";
30
+ hour %= 12;
31
+ if (hour === 0)
32
+ hour = 12;
33
+ return `${hour}:${String(minutes).padStart(2, "0")} ${suffix}`;
34
+ }
35
+ function stampFace(atMs) {
36
+ if (atMs == null || !Number.isFinite(atMs))
37
+ return "";
38
+ return formatClock12h(atMs).padStart(SPEECH_STAMP_CELLS, " ");
39
+ }
40
+ function withStampRail(body, opts) {
41
+ const bodyW = speechBodyWidth(opts.contentW);
42
+ return {
43
+ type: "box",
44
+ key: `${opts.key}:rail`,
45
+ style: { width: opts.contentW },
46
+ children: [
47
+ {
48
+ type: "flex",
49
+ key: `${opts.key}:cols`,
50
+ style: { direction: "row", gap: SPEECH_STAMP_GAP, alignItems: "flex_start" },
51
+ children: [
52
+ {
53
+ type: "box",
54
+ key: `${opts.key}:body`,
55
+ style: { width: bodyW, flex: 1 },
56
+ children: [body],
57
+ },
58
+ {
59
+ type: "box",
60
+ key: `${opts.key}:stamp`,
61
+ style: { width: SPEECH_STAMP_CELLS, height: 1 },
62
+ children: [
63
+ Text(stampFace(opts.atMs), {
64
+ key: `${opts.key}:stamp-text`,
65
+ whiteSpace: "nowrap",
66
+ userSelect: "none",
67
+ style: STAMP_VOICE,
68
+ }),
69
+ ],
70
+ },
71
+ ],
72
+ },
73
+ ],
74
+ };
75
+ }
76
+ function indication(opts) {
77
+ return {
78
+ type: "indication",
79
+ key: opts.key,
80
+ gutter: opts.gutter,
81
+ style: opts.style,
82
+ children: opts.children,
83
+ };
84
+ }
85
+ export const SIGIL_USER = "❯";
86
+ const USER_BLOCK_PAD = 1;
87
+ /** Law 6 gap, so user prose stays in the same column as a reply. */
88
+ const USER_MARK_GAP = 1;
89
+ /** Neutral floor: hue and chroma stay on the `surface` seed. Mist is the low BG step. */
90
+ const USER_BLOCK_BG = { bgRole: "surface", bgProminence: BgP.mist };
91
+ /** Stamp-rail width for a user floor in a column of `columnW`. */
92
+ export function userSpeechRailWidth(columnW) {
93
+ return Math.max(8, columnW - USER_BLOCK_PAD * 2 - 1 - USER_MARK_GAP);
94
+ }
95
+ /** Indication inset, then the user floor's right pad, so both clocks share a column. */
96
+ export function replySpeechRailWidth(columnW) {
97
+ return Math.max(8, columnW - INDICATION_CONTENT_INSET - USER_BLOCK_PAD);
98
+ }
99
+ /** Body of a prompt or a reply. User adds bold; fail swaps the role. */
100
+ const SPEECH_VOICE = { role: "foreground", prominence: FgP.primary };
101
+ export function Speech(model, opts) {
102
+ const voice = model.voice ?? "assistant";
103
+ const key = opts.key;
104
+ const contentW = opts.width ?? 48;
105
+ const bodyW = speechBodyWidth(contentW);
106
+ const rail = (body) => withStampRail(body, { key, contentW, atMs: model.atMs });
107
+ if (voice === "user") {
108
+ const userVoice = { ...SPEECH_VOICE, bold: true };
109
+ const body = model.text === ""
110
+ ? Text(model.text, {
111
+ key: `${key}:text`,
112
+ whiteSpace: "pre-wrap",
113
+ style: userVoice,
114
+ })
115
+ : Markdown(model.text, { key: `${key}:md`, width: bodyW, style: SPEECH_VOICE });
116
+ return {
117
+ type: "box",
118
+ key: `${key}:speech-user`,
119
+ style: { padding: USER_BLOCK_PAD, background: USER_BLOCK_BG },
120
+ children: [
121
+ {
122
+ type: "flex",
123
+ key: `${key}:user-line`,
124
+ style: { direction: "row", gap: USER_MARK_GAP, alignItems: "flex_start" },
125
+ children: [
126
+ Text(SIGIL_USER, {
127
+ key: `${key}:chevron`,
128
+ whiteSpace: "nowrap",
129
+ style: userVoice,
130
+ }),
131
+ rail(body),
132
+ ],
133
+ },
134
+ ],
135
+ };
136
+ }
137
+ const live = model.live === true;
138
+ const failed = model.failed === true;
139
+ const bodyVoice = failed ? { role: "error" } : SPEECH_VOICE;
140
+ const body = failed || model.text === ""
141
+ ? Text(model.text, {
142
+ key: `${key}:text`,
143
+ whiteSpace: "pre-wrap",
144
+ style: bodyVoice,
145
+ })
146
+ : Markdown(model.text, { key: `${key}:md`, width: bodyW, style: bodyVoice });
147
+ return indication({
148
+ key: `${key}:speech`,
149
+ gutter: { kind: "top", glyph: INDICATION_VOID_GLYPH },
150
+ style: {
151
+ role: failed ? "error" : "foreground",
152
+ prominence: live && !failed ? FgP.rising : FgP.primary,
153
+ },
154
+ children: [rail(body)],
155
+ });
156
+ }
157
+ function railBox(node) {
158
+ if (node.type === "indication") {
159
+ const rail = node.children?.[0];
160
+ return rail?.type === "box" ? rail : undefined;
161
+ }
162
+ if (node.type !== "box")
163
+ return undefined;
164
+ const row = node.children?.[0];
165
+ if (row?.type !== "flex")
166
+ return undefined;
167
+ const rail = row.children?.[1];
168
+ return rail?.type === "box" ? rail : undefined;
169
+ }
170
+ function speechRail(rail) {
171
+ const cols = rail.children?.[0];
172
+ if (cols?.type !== "flex")
173
+ return null;
174
+ const bodyBox = cols.children?.[0];
175
+ const body = bodyBox?.type === "box" ? bodyBox.children?.[0] : undefined;
176
+ if (bodyBox?.type !== "box" || body == undefined)
177
+ return null;
178
+ return { rail, cols, bodyBox, body };
179
+ }
180
+ function railWithBody(parts, body) {
181
+ return {
182
+ ...parts.rail,
183
+ children: [
184
+ {
185
+ ...parts.cols,
186
+ children: [{ ...parts.bodyBox, children: [body] }, ...(parts.cols.children?.slice(1) ?? [])],
187
+ },
188
+ ],
189
+ };
190
+ }
191
+ /** Markdown / text child inside the stamp rail. */
192
+ export function speechBodyNode(node) {
193
+ const rail = railBox(node);
194
+ if (rail == null)
195
+ return undefined;
196
+ return speechRail(rail)?.body;
197
+ }
198
+ export function replaceSpeechBody(node, body) {
199
+ const rail = railBox(node);
200
+ if (rail == null)
201
+ return node;
202
+ const parts = speechRail(rail);
203
+ if (parts == null)
204
+ return node;
205
+ const nextRail = railWithBody(parts, body);
206
+ if (node.type === "indication") {
207
+ return { ...node, children: [nextRail, ...(node.children?.slice(1) ?? [])] };
208
+ }
209
+ if (node.type !== "box")
210
+ return node;
211
+ const row = node.children?.[0];
212
+ if (row?.type !== "flex")
213
+ return node;
214
+ const chevron = row.children?.[0];
215
+ if (chevron == null)
216
+ return node;
217
+ return {
218
+ ...node,
219
+ children: [
220
+ { ...row, children: [chevron, nextRail, ...(row.children?.slice(2) ?? [])] },
221
+ ...(node.children?.slice(1) ?? []),
222
+ ],
223
+ };
224
+ }
225
+ export function Recall(text, opts) {
226
+ return indication({
227
+ key: `${opts.key}:row`,
228
+ gutter: { kind: "top", glyph: INDICATION_VOID_GLYPH },
229
+ children: [
230
+ Text(text, {
231
+ key: `${opts.key}:text`,
232
+ whiteSpace: "pre-wrap",
233
+ style: { role: "muted" },
234
+ }),
235
+ ],
236
+ });
237
+ }
238
+ //# sourceMappingURL=speech.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech.js","sourceRoot":"","sources":["../../src/widgets/speech.ts"],"names":[],"mappings":"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"}