@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 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internals/bgfx/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Procedural cell backgrounds = GLSL color-field shaders.
3
+ *
4
+ * Optional present-path canary (headroom under wash), not product chrome.
5
+ * TEA/layout writes style.bgFx = program id (+ baked UV).
6
+ * Present materialize* → bgRgb only.
7
+ *
8
+ * Catalog: registerShadertoyCatalog / loadShadertoyFile / activateShadertoy.
9
+ */
10
+ export * from "./types.js";
11
+ export * from "./registry.js";
12
+ export * from "./materialize.js";
13
+ export * from "./shadertoy-gl.js";
14
+ export * from "./shadertoy-catalog.js";
15
+ export * from "./shader-frame-host.js";
16
+ export * from "./opacity.js";
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internals/bgfx/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Present-time expansion of bgFx markers → bgRgb only.
3
+ *
4
+ * Cells store a shader id; present shades the field and writes truecolor
5
+ * backgrounds. No glyph / sub-cell packing — terminals that can't paint
6
+ * dense block+fg/bg at 30fps stay out of scope.
7
+ */
8
+ import type { BgFxEnv, BgFxId } from "./types.js";
9
+ import type { Rgb } from "../../lexicon/index.js";
10
+ export type BgFxCell = {
11
+ ch: string;
12
+ style: {
13
+ bgFx?: BgFxId;
14
+ bgFxU?: number;
15
+ bgFxV?: number;
16
+ /** Multiplies global opacity (0–1). */
17
+ bgFxOpacity?: number;
18
+ bgRgb?: Rgb;
19
+ bg?: number;
20
+ [k: string]: unknown;
21
+ };
22
+ placeholder?: boolean;
23
+ };
24
+ export type BgFxBuffer = {
25
+ width: number;
26
+ height: number;
27
+ cells: BgFxCell[];
28
+ };
29
+ export declare function bufferHasBgFx(buf: BgFxBuffer): boolean;
30
+ export declare function materializeBgFx(buf: BgFxBuffer, envOrT: number | BgFxEnv): number;
31
+ //# sourceMappingURL=materialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../../../src/internals/bgfx/materialize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,uCAAuC;QACvC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAKtD;AAyGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAKjF"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Present-time expansion of bgFx markers → bgRgb only.
3
+ *
4
+ * Cells store a shader id; present shades the field and writes truecolor
5
+ * backgrounds. No glyph / sub-cell packing — terminals that can't paint
6
+ * dense block+fg/bg at 30fps stay out of scope.
7
+ */
8
+ import { blendBgFx, getBgFxNullField } from "./opacity.js";
9
+ import { getBgFxShader } from "./registry.js";
10
+ export function bufferHasBgFx(buf) {
11
+ for (let i = 0; i < buf.cells.length; i++) {
12
+ if (buf.cells[i].style.bgFx)
13
+ return true;
14
+ }
15
+ return false;
16
+ }
17
+ function normalizeEnv(buf, envOrT) {
18
+ if (typeof envOrT === "number") {
19
+ return {
20
+ t: envOrT,
21
+ resolution: { x: buf.width, y: buf.height },
22
+ };
23
+ }
24
+ return {
25
+ t: envOrT.t,
26
+ resolution: envOrT.resolution ?? { x: buf.width, y: buf.height },
27
+ mouse: envOrT.mouse,
28
+ polarity: envOrT.polarity,
29
+ };
30
+ }
31
+ function collectCells(buf) {
32
+ const { width: w, height: h, cells } = buf;
33
+ const out = [];
34
+ for (let y = 0; y < h; y++) {
35
+ const row = y * w;
36
+ for (let x = 0; x < w; x++) {
37
+ const i = row + x;
38
+ const id = cells[i].style.bgFx;
39
+ if (!id)
40
+ continue;
41
+ out.push({ i, x, y, id });
42
+ }
43
+ }
44
+ return out;
45
+ }
46
+ function applyRgb(buf, i, field) {
47
+ const cell = buf.cells[i];
48
+ const per = typeof cell.style.bgFxOpacity === "number" ? cell.style.bgFxOpacity : undefined;
49
+ // Toward terminal ground (setBgFxGround / OSC 11), not pure black
50
+ cell.style.bgRgb = blendBgFx(field, { opacity: per });
51
+ if (cell.style.bg !== undefined)
52
+ delete cell.style.bg;
53
+ }
54
+ function materializeCollected(buf, cells, env) {
55
+ if (cells.length === 0)
56
+ return 0;
57
+ const byId = new Map();
58
+ for (const c of cells) {
59
+ let list = byId.get(c.id);
60
+ if (!list) {
61
+ list = [];
62
+ byId.set(c.id, list);
63
+ }
64
+ list.push(c);
65
+ }
66
+ let n = 0;
67
+ const nullField = getBgFxNullField();
68
+ for (const [id, refs] of byId) {
69
+ const prog = getBgFxShader(id);
70
+ if (!prog?.renderFrame) {
71
+ for (const r of refs) {
72
+ applyRgb(buf, r.i, nullField);
73
+ n += 1;
74
+ }
75
+ continue;
76
+ }
77
+ let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
78
+ for (const r of refs) {
79
+ if (r.x < minX)
80
+ minX = r.x;
81
+ if (r.y < minY)
82
+ minY = r.y;
83
+ if (r.x > maxX)
84
+ maxX = r.x;
85
+ if (r.y > maxY)
86
+ maxY = r.y;
87
+ }
88
+ const cellsW = maxX - minX + 1;
89
+ const cellsH = maxY - minY + 1;
90
+ const frameEnv = {
91
+ ...env,
92
+ resolution: { x: cellsW, y: cellsH },
93
+ };
94
+ const frame = prog.renderFrame(cellsW, cellsH, frameEnv);
95
+ for (const r of refs) {
96
+ const px = Math.min(frame.width - 1, Math.max(0, r.x - minX));
97
+ const py = Math.min(frame.height - 1, Math.max(0, r.y - minY));
98
+ const o = (py * frame.width + px) * 4;
99
+ applyRgb(buf, r.i, {
100
+ r: frame.rgba[o],
101
+ g: frame.rgba[o + 1],
102
+ b: frame.rgba[o + 2],
103
+ });
104
+ n += 1;
105
+ }
106
+ }
107
+ return n;
108
+ }
109
+ export function materializeBgFx(buf, envOrT) {
110
+ if (buf.width <= 0 || buf.height <= 0)
111
+ return 0;
112
+ const cells = collectCells(buf);
113
+ if (cells.length === 0)
114
+ return 0;
115
+ return materializeCollected(buf, cells, normalizeEnv(buf, envOrT));
116
+ }
117
+ //# sourceMappingURL=materialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../../src/internals/bgfx/materialize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Global opacity for procedural backgrounds (quiet wash).
3
+ *
4
+ * Transparency means mix toward the **terminal ground color** (OSC 11),
5
+ * not toward pure black — so light terminals and tinted themes stay coherent.
6
+ *
7
+ * out = mix(ground, field, opacity)
8
+ * 0 → ground · 1 → full field
9
+ */
10
+ import { type Rgb } from "../../lexicon/index.js";
11
+ /**
12
+ * Fallback only when OSC 11 was never set — not "the" ground.
13
+ * Hosts should call `setBgFxGround` from probeOsc11 / theme.
14
+ */
15
+ export declare const BGFX_DEFAULT_GROUND: Rgb;
16
+ export declare function setBgFxOpacity(o: number): void;
17
+ export declare function getBgFxOpacity(): number;
18
+ /** Terminal background (0–255 sRGB), typically from OSC 11. */
19
+ export declare function setBgFxGround(rgb: Rgb): void;
20
+ /**
21
+ * The `BGFX_NULL_FIELD` sentinel (color-hygiene plan, enabler 10) — the
22
+ * single "nothing here" color for all bgFx no-field paths, replacing five
23
+ * independent near-black literals. Ground-derived + `NULL_FIELD_DELTA`, so it
24
+ * is a function (not a frozen constant): it must track `setBgFxGround` calls
25
+ * rather than assume a dark terminal.
26
+ */
27
+ export declare function getBgFxNullField(): Rgb;
28
+ /**
29
+ * Blend field sample toward terminal ground.
30
+ * Per-cell `opacity` multiplies global opacity.
31
+ * Explicit `ground` overrides the OSC11-attuned default for this call only.
32
+ */
33
+ export declare function blendBgFx(field: Rgb, opts?: {
34
+ opacity?: number;
35
+ ground?: Rgb;
36
+ }): Rgb;
37
+ //# sourceMappingURL=opacity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opacity.d.ts","sourceRoot":"","sources":["../../../src/internals/bgfx/opacity.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,KAAK,GAAG,EAAO,MAAM,wBAAwB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,GAA6B,CAAC;AAehE,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAM5C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,GAAG,CAMtC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,GAAG,EACV,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,GACA,GAAG,CAUL"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Global opacity for procedural backgrounds (quiet wash).
3
+ *
4
+ * Transparency means mix toward the **terminal ground color** (OSC 11),
5
+ * not toward pure black — so light terminals and tinted themes stay coherent.
6
+ *
7
+ * out = mix(ground, field, opacity)
8
+ * 0 → ground · 1 → full field
9
+ */
10
+ import { clampByte, mix } from "./types.js";
11
+ import { BgP } from "../../lexicon/index.js";
12
+ /**
13
+ * Fallback only when OSC 11 was never set — not "the" ground.
14
+ * Hosts should call `setBgFxGround` from probeOsc11 / theme.
15
+ */
16
+ export const BGFX_DEFAULT_GROUND = { r: 10, g: 10, b: 14 };
17
+ /**
18
+ * Fixed per-channel nudge from ground for the "no field sample here"
19
+ * sentinel (registry unknown-id, shadertoy null frame, shader-frame-host
20
+ * bad-copy fill). Keeps the sentinel one truth with the live ground instead
21
+ * of a hardcoded near-black that clashes with light terminals, while staying
22
+ * non-zero so a zero-filled buffer is never mistaken for valid shader output
23
+ * (see M1 note in shader-frame-host.ts).
24
+ */
25
+ const NULL_FIELD_DELTA = { r: 4, g: 4, b: 6 };
26
+ let opacity = BgP.mist;
27
+ let ground = { ...BGFX_DEFAULT_GROUND };
28
+ export function setBgFxOpacity(o) {
29
+ if (!Number.isFinite(o))
30
+ return;
31
+ opacity = Math.min(1, Math.max(0, o));
32
+ }
33
+ export function getBgFxOpacity() {
34
+ return opacity;
35
+ }
36
+ /** Terminal background (0–255 sRGB), typically from OSC 11. */
37
+ export function setBgFxGround(rgb) {
38
+ ground = {
39
+ r: clampByte(rgb.r),
40
+ g: clampByte(rgb.g),
41
+ b: clampByte(rgb.b),
42
+ };
43
+ }
44
+ /**
45
+ * The `BGFX_NULL_FIELD` sentinel (color-hygiene plan, enabler 10) — the
46
+ * single "nothing here" color for all bgFx no-field paths, replacing five
47
+ * independent near-black literals. Ground-derived + `NULL_FIELD_DELTA`, so it
48
+ * is a function (not a frozen constant): it must track `setBgFxGround` calls
49
+ * rather than assume a dark terminal.
50
+ */
51
+ export function getBgFxNullField() {
52
+ return {
53
+ r: clampByte(ground.r + NULL_FIELD_DELTA.r),
54
+ g: clampByte(ground.g + NULL_FIELD_DELTA.g),
55
+ b: clampByte(ground.b + NULL_FIELD_DELTA.b),
56
+ };
57
+ }
58
+ /**
59
+ * Blend field sample toward terminal ground.
60
+ * Per-cell `opacity` multiplies global opacity.
61
+ * Explicit `ground` overrides the OSC11-attuned default for this call only.
62
+ */
63
+ export function blendBgFx(field, opts) {
64
+ const o = Math.min(1, Math.max(0, (opts?.opacity ?? 1) * opacity));
65
+ const g = opts?.ground ?? ground;
66
+ if (o >= 0.999)
67
+ return field;
68
+ if (o <= 0.001)
69
+ return { ...g };
70
+ return {
71
+ r: clampByte(mix(g.r, field.r, o)),
72
+ g: clampByte(mix(g.g, field.g, o)),
73
+ b: clampByte(mix(g.b, field.b, o)),
74
+ };
75
+ }
76
+ //# sourceMappingURL=opacity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opacity.js","sourceRoot":"","sources":["../../../src/internals/bgfx/opacity.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAY,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEnD,IAAI,OAAO,GAAW,GAAG,CAAC,IAAI,CAAC;AAC/B,IAAI,MAAM,GAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;AAE7C,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO;IAChC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,aAAa,CAAC,GAAQ;IACpC,MAAM,GAAG;QACP,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;QAC3C,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;QAC3C,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,KAAU,EACV,IAGC;IAED,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,MAAM,CAAC;IACjC,IAAI,CAAC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,CAAC,IAAI,KAAK;QAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;IAChC,OAAO;QACL,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Open shader registry. Programs register with renderFrame (node GL / worker).
3
+ *
4
+ * registerBgFxShader({ id: "mine", renderFrame: ... })
5
+ * fillBgFx(buf, rect, "mine")
6
+ */
7
+ import type { BgFxId, BgFxProgram } from "./types.js";
8
+ /** Register or replace a color-field program. */
9
+ export declare function registerBgFxShader(program: BgFxProgram): void;
10
+ export declare function unregisterBgFxShader(id: BgFxId): boolean;
11
+ export declare function getBgFxShader(id: BgFxId): BgFxProgram | undefined;
12
+ export declare function hasBgFxShader(id: BgFxId): boolean;
13
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/internals/bgfx/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAItD,iDAAiD;AACjD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAI7D;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEjE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Open shader registry. Programs register with renderFrame (node GL / worker).
3
+ *
4
+ * registerBgFxShader({ id: "mine", renderFrame: ... })
5
+ * fillBgFx(buf, rect, "mine")
6
+ */
7
+ import invariant from "tiny-invariant";
8
+ const registry = new Map();
9
+ /** Register or replace a color-field program. */
10
+ export function registerBgFxShader(program) {
11
+ invariant(program.id, "bgFx program requires non-empty id");
12
+ invariant(program.renderFrame, `bgFx program "${program.id}" needs renderFrame`);
13
+ registry.set(program.id, program);
14
+ }
15
+ export function unregisterBgFxShader(id) {
16
+ return registry.delete(id);
17
+ }
18
+ export function getBgFxShader(id) {
19
+ return registry.get(id);
20
+ }
21
+ export function hasBgFxShader(id) {
22
+ return registry.has(id);
23
+ }
24
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/internals/bgfx/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAIvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEhD,iDAAiD;AACjD,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACrD,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,oCAAoC,CAAC,CAAC;IAC5D,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACjF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAU;IAC7C,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * SharedArrayBuffer layout for off-thread field frames (bg only).
3
+ *
4
+ * Double-buffered RGBA + seqlocks. Dimensions are cell grid (1 sample / cell).
5
+ */
6
+ export declare const HDR_W = 0;
7
+ export declare const HDR_H = 1;
8
+ export declare const HDR_FRONT = 2;
9
+ export declare const HDR_SEQ0 = 3;
10
+ export declare const HDR_SEQ1 = 4;
11
+ export declare const HDR_FRAME_MS = 5;
12
+ export declare const HDR_STATUS = 6;
13
+ export declare const HDR_GEN = 7;
14
+ export declare const HDR_SLOTS = 16;
15
+ export declare const STATUS_BOOT = 0;
16
+ export declare const STATUS_OK = 1;
17
+ export declare const STATUS_ERR = 2;
18
+ export declare const ENV_T = 0;
19
+ export declare const ENV_MX = 1;
20
+ export declare const ENV_MY = 2;
21
+ export declare const ENV_MZ = 3;
22
+ export declare const ENV_MW = 4;
23
+ /** +1 dark canvas, −1 light — Shadertoy iPolarity. */
24
+ export declare const ENV_POLARITY = 5;
25
+ export declare const ENV_FLOATS = 8;
26
+ export declare const ENV_W = 0;
27
+ export declare const ENV_H = 1;
28
+ export declare const ENV_INTS = 4;
29
+ export declare function headerBytes(): number;
30
+ export declare function slotBytes(w: number, h: number): number;
31
+ export declare function pixelSabBytes(w: number, h: number): number;
32
+ export declare function envSabBytes(): number;
33
+ export declare function slotOffset(w: number, h: number, slot: 0 | 1): number;
34
+ export type PixelViews = {
35
+ sab: SharedArrayBuffer;
36
+ hdr: Int32Array;
37
+ bytes: Uint8Array;
38
+ };
39
+ export declare function openPixelViews(sab: SharedArrayBuffer): PixelViews;
40
+ export type EnvViews = {
41
+ sab: SharedArrayBuffer;
42
+ f32: Float32Array;
43
+ i32: Int32Array;
44
+ };
45
+ export declare function openEnvViews(sab: SharedArrayBuffer): EnvViews;
46
+ export declare function writeEnv(env: EnvViews, opts: {
47
+ t: number;
48
+ w: number;
49
+ h: number;
50
+ mouse?: {
51
+ x: number;
52
+ y: number;
53
+ z: number;
54
+ w: number;
55
+ };
56
+ polarity?: "dark" | "light";
57
+ }): void;
58
+ export declare function beginSlotWrite(hdr: Int32Array, slot: 0 | 1): void;
59
+ export declare function endSlotWrite(hdr: Int32Array, slot: 0 | 1, frameMs: number): void;
60
+ export declare function copyFrontFrame(views: PixelViews, out: Uint8Array, expectW: number, expectH: number): boolean;
61
+ //# sourceMappingURL=sab-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sab-layout.d.ts","sourceRoot":"","sources":["../../../src/internals/bgfx/sab-layout.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,KAAK,IAAI,CAAC;AACvB,eAAO,MAAM,KAAK,IAAI,CAAC;AACvB,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,eAAO,MAAM,KAAK,IAAI,CAAC;AACvB,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,sDAAsD;AACtD,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,eAAO,MAAM,KAAK,IAAI,CAAC;AACvB,eAAO,MAAM,KAAK,IAAI,CAAC;AACvB,eAAO,MAAM,QAAQ,IAAI,CAAC;AAE1B,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAEpE;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,iBAAiB,CAAC;IACvB,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,UAAU,CAMjE;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,iBAAiB,CAAC;IACvB,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,EAAE,UAAU,CAAC;CACjB,CAAC;AAEF,wBAAgB,YAAY,CAAC,GAAG,EAAE,iBAAiB,GAAG,QAAQ,CAI7D;AAED,wBAAgB,QAAQ,CACtB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;IACJ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B,GACA,IAAI,CAWN;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAIjE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQhF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAqB5G"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * SharedArrayBuffer layout for off-thread field frames (bg only).
3
+ *
4
+ * Double-buffered RGBA + seqlocks. Dimensions are cell grid (1 sample / cell).
5
+ */
6
+ export const HDR_W = 0;
7
+ export const HDR_H = 1;
8
+ export const HDR_FRONT = 2;
9
+ export const HDR_SEQ0 = 3;
10
+ export const HDR_SEQ1 = 4;
11
+ export const HDR_FRAME_MS = 5;
12
+ export const HDR_STATUS = 6;
13
+ export const HDR_GEN = 7;
14
+ export const HDR_SLOTS = 16;
15
+ export const STATUS_BOOT = 0;
16
+ export const STATUS_OK = 1;
17
+ export const STATUS_ERR = 2;
18
+ export const ENV_T = 0;
19
+ export const ENV_MX = 1;
20
+ export const ENV_MY = 2;
21
+ export const ENV_MZ = 3;
22
+ export const ENV_MW = 4;
23
+ /** +1 dark canvas, −1 light — Shadertoy iPolarity. */
24
+ export const ENV_POLARITY = 5;
25
+ export const ENV_FLOATS = 8;
26
+ export const ENV_W = 0;
27
+ export const ENV_H = 1;
28
+ export const ENV_INTS = 4;
29
+ export function headerBytes() {
30
+ return HDR_SLOTS * 4;
31
+ }
32
+ export function slotBytes(w, h) {
33
+ return Math.max(1, w) * Math.max(1, h) * 4;
34
+ }
35
+ export function pixelSabBytes(w, h) {
36
+ return headerBytes() + 2 * slotBytes(w, h);
37
+ }
38
+ export function envSabBytes() {
39
+ return ENV_FLOATS * 4 + ENV_INTS * 4;
40
+ }
41
+ export function slotOffset(w, h, slot) {
42
+ return headerBytes() + slot * slotBytes(w, h);
43
+ }
44
+ export function openPixelViews(sab) {
45
+ return {
46
+ sab,
47
+ hdr: new Int32Array(sab, 0, HDR_SLOTS),
48
+ bytes: new Uint8Array(sab),
49
+ };
50
+ }
51
+ export function openEnvViews(sab) {
52
+ const f32 = new Float32Array(sab, 0, ENV_FLOATS);
53
+ const i32 = new Int32Array(sab, ENV_FLOATS * 4, ENV_INTS);
54
+ return { sab, f32, i32 };
55
+ }
56
+ export function writeEnv(env, opts) {
57
+ const m = opts.mouse ?? { x: 0, y: 0, z: 0, w: 0 };
58
+ env.f32[ENV_T] = opts.t;
59
+ env.f32[ENV_MX] = m.x;
60
+ env.f32[ENV_MY] = m.y;
61
+ env.f32[ENV_MZ] = m.z;
62
+ env.f32[ENV_MW] = m.w;
63
+ env.f32[ENV_POLARITY] = opts.polarity === "light" ? -1 : 1;
64
+ Atomics.store(env.i32, ENV_W, opts.w);
65
+ Atomics.store(env.i32, ENV_H, opts.h);
66
+ // ENV_RESERVED left untouched — no reader; avoid false "change" noise.
67
+ }
68
+ export function beginSlotWrite(hdr, slot) {
69
+ const seqIdx = slot === 0 ? HDR_SEQ0 : HDR_SEQ1;
70
+ const seq = Atomics.load(hdr, seqIdx);
71
+ Atomics.store(hdr, seqIdx, seq | 1);
72
+ }
73
+ export function endSlotWrite(hdr, slot, frameMs) {
74
+ const seqIdx = slot === 0 ? HDR_SEQ0 : HDR_SEQ1;
75
+ const seq = Atomics.load(hdr, seqIdx);
76
+ Atomics.store(hdr, seqIdx, (seq | 1) + 1);
77
+ Atomics.store(hdr, HDR_FRONT, slot);
78
+ Atomics.store(hdr, HDR_FRAME_MS, Math.round(frameMs));
79
+ Atomics.add(hdr, HDR_GEN, 1);
80
+ Atomics.store(hdr, HDR_STATUS, STATUS_OK);
81
+ }
82
+ export function copyFrontFrame(views, out, expectW, expectH) {
83
+ const { hdr, bytes } = views;
84
+ const w = Atomics.load(hdr, HDR_W);
85
+ const h = Atomics.load(hdr, HDR_H);
86
+ if (w !== expectW || h !== expectH || w <= 0 || h <= 0)
87
+ return false;
88
+ const need = w * h * 4;
89
+ if (out.length < need)
90
+ return false;
91
+ for (let attempt = 0; attempt < 8; attempt++) {
92
+ const front = Atomics.load(hdr, HDR_FRONT);
93
+ if (front !== 0 && front !== 1)
94
+ return false;
95
+ const seqIdx = front === 0 ? HDR_SEQ0 : HDR_SEQ1;
96
+ const s1 = Atomics.load(hdr, seqIdx);
97
+ if (s1 & 1)
98
+ continue;
99
+ const off = slotOffset(w, h, front);
100
+ out.set(bytes.subarray(off, off + need));
101
+ const s2 = Atomics.load(hdr, seqIdx);
102
+ if (s1 === s2 && (s2 & 1) === 0)
103
+ return true;
104
+ }
105
+ return false;
106
+ }
107
+ //# sourceMappingURL=sab-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sab-layout.js","sourceRoot":"","sources":["../../../src/internals/bgfx/sab-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Main-thread host for off-thread field frames (bg only, 1 sample / cell).
3
+ */
4
+ import type { BgFxEnv, BgFxFrame } from "./types.js";
5
+ export type ShaderFrameHostOpts = {
6
+ source: string;
7
+ width?: number;
8
+ height?: number;
9
+ };
10
+ export type ShaderFrameHost = {
11
+ pushEnv(w: number, h: number, env: BgFxEnv): void;
12
+ readFrame(w: number, h: number): BgFxFrame;
13
+ /** Recompile worker GLSL (await before using new shader). */
14
+ switchSource(source: string): Promise<void>;
15
+ lastFrameMs(): number;
16
+ gen(): number;
17
+ ready(): boolean;
18
+ [Symbol.dispose](): void;
19
+ };
20
+ export declare function resolveBgfxWorkerPath(): string;
21
+ export declare function createShaderFrameHost(opts: ShaderFrameHostOpts): Promise<ShaderFrameHost>;
22
+ //# sourceMappingURL=shader-frame-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-frame-host.d.ts","sourceRoot":"","sources":["../../../src/internals/bgfx/shader-frame-host.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0BH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAClD,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,6DAA6D;IAC7D,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,IAAI,MAAM,CAAC;IACtB,GAAG,IAAI,MAAM,CAAC;IACd,KAAK,IAAI,OAAO,CAAC;IACjB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CAC1B,CAAC;AAiBF,wBAAgB,qBAAqB,IAAI,MAAM,CAM9C;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CA0I/F"}