@flyingrobots/bijou-tui 7.1.0 → 7.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 (569) hide show
  1. package/README.md +27 -4
  2. package/dist/accordion.d.ts +3 -108
  3. package/dist/accordion.d.ts.map +1 -1
  4. package/dist/accordion.js +2 -161
  5. package/dist/accordion.js.map +1 -1
  6. package/dist/accordion.part01.d.ts +25 -0
  7. package/dist/accordion.part01.d.ts.map +1 -0
  8. package/dist/accordion.part01.js +61 -0
  9. package/dist/accordion.part01.js.map +1 -0
  10. package/dist/accordion.part02.d.ts +8 -0
  11. package/dist/accordion.part02.d.ts.map +1 -0
  12. package/dist/accordion.part02.js +15 -0
  13. package/dist/accordion.part02.js.map +1 -0
  14. package/dist/animate.d.ts.map +1 -1
  15. package/dist/animate.js +5 -6
  16. package/dist/animate.js.map +1 -1
  17. package/dist/app-frame-actions.d.ts +1 -18
  18. package/dist/app-frame-actions.d.ts.map +1 -1
  19. package/dist/app-frame-actions.js +44 -42
  20. package/dist/app-frame-actions.js.map +1 -1
  21. package/dist/app-frame-i18n.d.ts.map +1 -1
  22. package/dist/app-frame-i18n.js +19 -2
  23. package/dist/app-frame-i18n.js.map +1 -1
  24. package/dist/app-frame-overlays.d.ts +1 -8
  25. package/dist/app-frame-overlays.d.ts.map +1 -1
  26. package/dist/app-frame-overlays.js +54 -24
  27. package/dist/app-frame-overlays.js.map +1 -1
  28. package/dist/app-frame-palette.d.ts +1 -11
  29. package/dist/app-frame-palette.d.ts.map +1 -1
  30. package/dist/app-frame-palette.js +19 -18
  31. package/dist/app-frame-palette.js.map +1 -1
  32. package/dist/app-frame-render.d.ts +0 -7
  33. package/dist/app-frame-render.d.ts.map +1 -1
  34. package/dist/app-frame-render.js +17 -26
  35. package/dist/app-frame-render.js.map +1 -1
  36. package/dist/app-frame-types.d.ts +8 -4
  37. package/dist/app-frame-types.d.ts.map +1 -1
  38. package/dist/app-frame-types.js +5 -5
  39. package/dist/app-frame-types.js.map +1 -1
  40. package/dist/app-frame-utils.d.ts +2 -1
  41. package/dist/app-frame-utils.d.ts.map +1 -1
  42. package/dist/app-frame-utils.js +8 -1
  43. package/dist/app-frame-utils.js.map +1 -1
  44. package/dist/app-frame.d.ts +14 -3
  45. package/dist/app-frame.d.ts.map +1 -1
  46. package/dist/app-frame.js +295 -231
  47. package/dist/app-frame.js.map +1 -1
  48. package/dist/app-frame.test-support.part01.d.ts +149 -0
  49. package/dist/app-frame.test-support.part01.d.ts.map +1 -0
  50. package/dist/app-frame.test-support.part01.js +106 -0
  51. package/dist/app-frame.test-support.part01.js.map +1 -0
  52. package/dist/app-frame.test-support.part02.d.ts +15 -0
  53. package/dist/app-frame.test-support.part02.d.ts.map +1 -0
  54. package/dist/app-frame.test-support.part02.js +89 -0
  55. package/dist/app-frame.test-support.part02.js.map +1 -0
  56. package/dist/browsable-list.d.ts +5 -5
  57. package/dist/browsable-list.d.ts.map +1 -1
  58. package/dist/browsable-list.js.map +1 -1
  59. package/dist/canvas.d.ts +2 -34
  60. package/dist/canvas.d.ts.map +1 -1
  61. package/dist/canvas.js +43 -47
  62. package/dist/canvas.js.map +1 -1
  63. package/dist/cell-glyph-fit.js +1 -1
  64. package/dist/cell-glyph-fit.js.map +1 -1
  65. package/dist/collection-surface-types.d.ts +12 -0
  66. package/dist/collection-surface-types.d.ts.map +1 -0
  67. package/dist/collection-surface-types.js +2 -0
  68. package/dist/collection-surface-types.js.map +1 -0
  69. package/dist/collection-surface.d.ts +2 -7
  70. package/dist/collection-surface.d.ts.map +1 -1
  71. package/dist/collection-surface.js +8 -18
  72. package/dist/collection-surface.js.map +1 -1
  73. package/dist/command-palette.d.ts.map +1 -1
  74. package/dist/command-palette.js +2 -1
  75. package/dist/command-palette.js.map +1 -1
  76. package/dist/commands.d.ts.map +1 -1
  77. package/dist/commands.js +1 -1
  78. package/dist/commands.js.map +1 -1
  79. package/dist/css/install.js.map +1 -1
  80. package/dist/css/parser.js +9 -3
  81. package/dist/css/parser.js.map +1 -1
  82. package/dist/css/resolver-types.d.ts +13 -0
  83. package/dist/css/resolver-types.d.ts.map +1 -0
  84. package/dist/css/resolver-types.js +2 -0
  85. package/dist/css/resolver-types.js.map +1 -0
  86. package/dist/css/resolver.d.ts +2 -12
  87. package/dist/css/resolver.d.ts.map +1 -1
  88. package/dist/css/resolver.js +13 -20
  89. package/dist/css/resolver.js.map +1 -1
  90. package/dist/css/text-style.d.ts +4 -8
  91. package/dist/css/text-style.d.ts.map +1 -1
  92. package/dist/css/text-style.js +13 -18
  93. package/dist/css/text-style.js.map +1 -1
  94. package/dist/dag-pane.d.ts +4 -224
  95. package/dist/dag-pane.d.ts.map +1 -1
  96. package/dist/dag-pane.js +3 -516
  97. package/dist/dag-pane.js.map +1 -1
  98. package/dist/dag-pane.part01.d.ts +58 -0
  99. package/dist/dag-pane.part01.d.ts.map +1 -0
  100. package/dist/dag-pane.part01.js +2 -0
  101. package/dist/dag-pane.part01.js.map +1 -0
  102. package/dist/dag-pane.part02.d.ts +4 -0
  103. package/dist/dag-pane.part02.d.ts.map +1 -0
  104. package/dist/dag-pane.part02.js +56 -0
  105. package/dist/dag-pane.part02.js.map +1 -0
  106. package/dist/dag-pane.part03.d.ts +6 -0
  107. package/dist/dag-pane.part03.d.ts.map +1 -0
  108. package/dist/dag-pane.part03.js +76 -0
  109. package/dist/dag-pane.part03.js.map +1 -0
  110. package/dist/dag-pane.part04.d.ts +7 -0
  111. package/dist/dag-pane.part04.d.ts.map +1 -0
  112. package/dist/dag-pane.part04.js +66 -0
  113. package/dist/dag-pane.part04.js.map +1 -0
  114. package/dist/dag-pane.part05.d.ts +7 -0
  115. package/dist/dag-pane.part05.d.ts.map +1 -0
  116. package/dist/dag-pane.part05.js +78 -0
  117. package/dist/dag-pane.part05.js.map +1 -0
  118. package/dist/dag-pane.part06.d.ts +14 -0
  119. package/dist/dag-pane.part06.d.ts.map +1 -0
  120. package/dist/dag-pane.part06.js +65 -0
  121. package/dist/dag-pane.part06.js.map +1 -0
  122. package/dist/dag-pane.part07.d.ts +18 -0
  123. package/dist/dag-pane.part07.d.ts.map +1 -0
  124. package/dist/dag-pane.part07.js +22 -0
  125. package/dist/dag-pane.part07.js.map +1 -0
  126. package/dist/driver.d.ts +35 -21
  127. package/dist/driver.d.ts.map +1 -1
  128. package/dist/driver.js +69 -39
  129. package/dist/driver.js.map +1 -1
  130. package/dist/eventbus.d.ts.map +1 -1
  131. package/dist/eventbus.js +13 -23
  132. package/dist/eventbus.js.map +1 -1
  133. package/dist/file-picker.d.ts +4 -164
  134. package/dist/file-picker.d.ts.map +1 -1
  135. package/dist/file-picker.js +3 -292
  136. package/dist/file-picker.js.map +1 -1
  137. package/dist/file-picker.part01.d.ts +54 -0
  138. package/dist/file-picker.part01.d.ts.map +1 -0
  139. package/dist/file-picker.part01.js +47 -0
  140. package/dist/file-picker.part01.js.map +1 -0
  141. package/dist/file-picker.part02.d.ts +9 -0
  142. package/dist/file-picker.part02.d.ts.map +1 -0
  143. package/dist/file-picker.part02.js +77 -0
  144. package/dist/file-picker.part02.js.map +1 -0
  145. package/dist/file-picker.part03.d.ts +12 -0
  146. package/dist/file-picker.part03.d.ts.map +1 -0
  147. package/dist/file-picker.part03.js +35 -0
  148. package/dist/file-picker.part03.js.map +1 -0
  149. package/dist/flex.d.ts +0 -61
  150. package/dist/flex.d.ts.map +1 -1
  151. package/dist/flex.js +11 -161
  152. package/dist/flex.js.map +1 -1
  153. package/dist/focus-area.d.ts +6 -210
  154. package/dist/focus-area.d.ts.map +1 -1
  155. package/dist/focus-area.js +5 -425
  156. package/dist/focus-area.js.map +1 -1
  157. package/dist/focus-area.part01.d.ts +57 -0
  158. package/dist/focus-area.part01.d.ts.map +1 -0
  159. package/dist/focus-area.part01.js +23 -0
  160. package/dist/focus-area.part01.js.map +1 -0
  161. package/dist/focus-area.part02.d.ts +13 -0
  162. package/dist/focus-area.part02.d.ts.map +1 -0
  163. package/dist/focus-area.part02.js +65 -0
  164. package/dist/focus-area.part02.js.map +1 -0
  165. package/dist/focus-area.part03.d.ts +5 -0
  166. package/dist/focus-area.part03.d.ts.map +1 -0
  167. package/dist/focus-area.part03.js +42 -0
  168. package/dist/focus-area.part03.js.map +1 -0
  169. package/dist/focus-area.part04.d.ts +5 -0
  170. package/dist/focus-area.part04.d.ts.map +1 -0
  171. package/dist/focus-area.part04.js +49 -0
  172. package/dist/focus-area.part04.js.map +1 -0
  173. package/dist/focus-area.part05.d.ts +10 -0
  174. package/dist/focus-area.part05.d.ts.map +1 -0
  175. package/dist/focus-area.part05.js +66 -0
  176. package/dist/focus-area.part05.js.map +1 -0
  177. package/dist/focus-area.part06.d.ts +17 -0
  178. package/dist/focus-area.part06.d.ts.map +1 -0
  179. package/dist/focus-area.part06.js +48 -0
  180. package/dist/focus-area.part06.js.map +1 -0
  181. package/dist/focus-map.d.ts.map +1 -1
  182. package/dist/focus-map.js +8 -10
  183. package/dist/focus-map.js.map +1 -1
  184. package/dist/index.d.ts +8 -80
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +8 -107
  187. package/dist/index.js.map +1 -1
  188. package/dist/index.part01.d.ts +15 -0
  189. package/dist/index.part01.d.ts.map +1 -0
  190. package/dist/index.part01.js +11 -0
  191. package/dist/index.part01.js.map +1 -0
  192. package/dist/index.part02.d.ts +26 -0
  193. package/dist/index.part02.d.ts.map +1 -0
  194. package/dist/index.part02.js +24 -0
  195. package/dist/index.part02.js.map +1 -0
  196. package/dist/index.part03.d.ts +17 -0
  197. package/dist/index.part03.d.ts.map +1 -0
  198. package/dist/index.part03.js +11 -0
  199. package/dist/index.part03.js.map +1 -0
  200. package/dist/index.part04.d.ts +6 -0
  201. package/dist/index.part04.d.ts.map +1 -0
  202. package/dist/index.part04.js +11 -0
  203. package/dist/index.part04.js.map +1 -0
  204. package/dist/index.part05.d.ts +10 -0
  205. package/dist/index.part05.d.ts.map +1 -0
  206. package/dist/index.part05.js +26 -0
  207. package/dist/index.part05.js.map +1 -0
  208. package/dist/index.part06.d.ts +9 -0
  209. package/dist/index.part06.d.ts.map +1 -0
  210. package/dist/index.part06.js +16 -0
  211. package/dist/index.part06.js.map +1 -0
  212. package/dist/index.part07.d.ts +8 -0
  213. package/dist/index.part07.d.ts.map +1 -0
  214. package/dist/index.part07.js +15 -0
  215. package/dist/index.part07.js.map +1 -0
  216. package/dist/index.part08.d.ts +5 -0
  217. package/dist/index.part08.d.ts.map +1 -0
  218. package/dist/index.part08.js +9 -0
  219. package/dist/index.part08.js.map +1 -0
  220. package/dist/input-map.d.ts.map +1 -1
  221. package/dist/input-map.js +1 -2
  222. package/dist/input-map.js.map +1 -1
  223. package/dist/input-parser.d.ts +3 -0
  224. package/dist/input-parser.d.ts.map +1 -0
  225. package/dist/input-parser.js +95 -0
  226. package/dist/input-parser.js.map +1 -0
  227. package/dist/input-routing-inspector.js +3 -3
  228. package/dist/input-routing-inspector.js.map +1 -1
  229. package/dist/inputstack.d.ts.map +1 -1
  230. package/dist/inputstack.js +2 -0
  231. package/dist/inputstack.js.map +1 -1
  232. package/dist/keybindings.d.ts.map +1 -1
  233. package/dist/keybindings.js +5 -2
  234. package/dist/keybindings.js.map +1 -1
  235. package/dist/keys.d.ts +0 -36
  236. package/dist/keys.d.ts.map +1 -1
  237. package/dist/keys.js +11 -66
  238. package/dist/keys.js.map +1 -1
  239. package/dist/layout-inspector.d.ts +2 -30
  240. package/dist/layout-inspector.d.ts.map +1 -1
  241. package/dist/layout-inspector.js +1 -132
  242. package/dist/layout-inspector.js.map +1 -1
  243. package/dist/layout-inspector.part01.d.ts +52 -0
  244. package/dist/layout-inspector.part01.d.ts.map +1 -0
  245. package/dist/layout-inspector.part01.js +48 -0
  246. package/dist/layout-inspector.part01.js.map +1 -0
  247. package/dist/layout-inspector.part02.d.ts +11 -0
  248. package/dist/layout-inspector.part02.d.ts.map +1 -0
  249. package/dist/layout-inspector.part02.js +80 -0
  250. package/dist/layout-inspector.part02.js.map +1 -0
  251. package/dist/layout-inspector.part03.d.ts +5 -0
  252. package/dist/layout-inspector.part03.d.ts.map +1 -0
  253. package/dist/layout-inspector.part03.js +11 -0
  254. package/dist/layout-inspector.part03.js.map +1 -0
  255. package/dist/layout-preset.js +4 -4
  256. package/dist/layout-preset.js.map +1 -1
  257. package/dist/layout.d.ts.map +1 -1
  258. package/dist/layout.js +5 -3
  259. package/dist/layout.js.map +1 -1
  260. package/dist/motion/motion.js +8 -4
  261. package/dist/motion/motion.js.map +1 -1
  262. package/dist/motion/reconciler.d.ts.map +1 -1
  263. package/dist/motion/reconciler.js +9 -7
  264. package/dist/motion/reconciler.js.map +1 -1
  265. package/dist/mouse-mode.d.ts +5 -0
  266. package/dist/mouse-mode.d.ts.map +1 -0
  267. package/dist/mouse-mode.js +17 -0
  268. package/dist/mouse-mode.js.map +1 -0
  269. package/dist/navigable-table.d.ts +3 -136
  270. package/dist/navigable-table.d.ts.map +1 -1
  271. package/dist/navigable-table.js +2 -234
  272. package/dist/navigable-table.js.map +1 -1
  273. package/dist/navigable-table.part01.d.ts +42 -0
  274. package/dist/navigable-table.part01.d.ts.map +1 -0
  275. package/dist/navigable-table.part01.js +42 -0
  276. package/dist/navigable-table.part01.js.map +1 -0
  277. package/dist/navigable-table.part02.d.ts +16 -0
  278. package/dist/navigable-table.part02.d.ts.map +1 -0
  279. package/dist/navigable-table.part02.js +83 -0
  280. package/dist/navigable-table.part02.js.map +1 -0
  281. package/dist/notification-card.d.ts +11 -0
  282. package/dist/notification-card.d.ts.map +1 -0
  283. package/dist/notification-card.js +157 -0
  284. package/dist/notification-card.js.map +1 -0
  285. package/dist/notification-stack.d.ts +6 -0
  286. package/dist/notification-stack.d.ts.map +1 -0
  287. package/dist/notification-stack.js +257 -0
  288. package/dist/notification-stack.js.map +1 -0
  289. package/dist/notification.d.ts +14 -112
  290. package/dist/notification.d.ts.map +1 -1
  291. package/dist/notification.js +12 -1087
  292. package/dist/notification.js.map +1 -1
  293. package/dist/notification.part01.d.ts +77 -0
  294. package/dist/notification.part01.d.ts.map +1 -0
  295. package/dist/notification.part01.js +19 -0
  296. package/dist/notification.part01.js.map +1 -0
  297. package/dist/notification.part02.d.ts +42 -0
  298. package/dist/notification.part02.d.ts.map +1 -0
  299. package/dist/notification.part02.js +44 -0
  300. package/dist/notification.part02.js.map +1 -0
  301. package/dist/notification.part03.d.ts +6 -0
  302. package/dist/notification.part03.d.ts.map +1 -0
  303. package/dist/notification.part03.js +81 -0
  304. package/dist/notification.part03.js.map +1 -0
  305. package/dist/notification.part04.d.ts +4 -0
  306. package/dist/notification.part04.d.ts.map +1 -0
  307. package/dist/notification.part04.js +32 -0
  308. package/dist/notification.part04.js.map +1 -0
  309. package/dist/notification.part05.d.ts +6 -0
  310. package/dist/notification.part05.d.ts.map +1 -0
  311. package/dist/notification.part05.js +95 -0
  312. package/dist/notification.part05.js.map +1 -0
  313. package/dist/notification.part06.d.ts +9 -0
  314. package/dist/notification.part06.d.ts.map +1 -0
  315. package/dist/notification.part06.js +65 -0
  316. package/dist/notification.part06.js.map +1 -0
  317. package/dist/notification.part07.d.ts +10 -0
  318. package/dist/notification.part07.d.ts.map +1 -0
  319. package/dist/notification.part07.js +70 -0
  320. package/dist/notification.part07.js.map +1 -0
  321. package/dist/notification.part08.d.ts +5 -0
  322. package/dist/notification.part08.d.ts.map +1 -0
  323. package/dist/notification.part08.js +79 -0
  324. package/dist/notification.part08.js.map +1 -0
  325. package/dist/notification.part09.d.ts +14 -0
  326. package/dist/notification.part09.d.ts.map +1 -0
  327. package/dist/notification.part09.js +96 -0
  328. package/dist/notification.part09.js.map +1 -0
  329. package/dist/notification.part10.d.ts +13 -0
  330. package/dist/notification.part10.d.ts.map +1 -0
  331. package/dist/notification.part10.js +94 -0
  332. package/dist/notification.part10.js.map +1 -0
  333. package/dist/notification.part11.d.ts +6 -0
  334. package/dist/notification.part11.d.ts.map +1 -0
  335. package/dist/notification.part11.js +42 -0
  336. package/dist/notification.part11.js.map +1 -0
  337. package/dist/overlay.d.ts +8 -232
  338. package/dist/overlay.d.ts.map +1 -1
  339. package/dist/overlay.js +5 -629
  340. package/dist/overlay.js.map +1 -1
  341. package/dist/overlay.part01.d.ts +71 -0
  342. package/dist/overlay.part01.d.ts.map +1 -0
  343. package/dist/overlay.part01.js +34 -0
  344. package/dist/overlay.part01.js.map +1 -0
  345. package/dist/overlay.part02.d.ts +8 -0
  346. package/dist/overlay.part02.d.ts.map +1 -0
  347. package/dist/overlay.part02.js +81 -0
  348. package/dist/overlay.part02.js.map +1 -0
  349. package/dist/overlay.part03.d.ts +27 -0
  350. package/dist/overlay.part03.d.ts.map +1 -0
  351. package/dist/overlay.part03.js +83 -0
  352. package/dist/overlay.part03.js.map +1 -0
  353. package/dist/overlay.part04.d.ts +8 -0
  354. package/dist/overlay.part04.d.ts.map +1 -0
  355. package/dist/overlay.part04.js +103 -0
  356. package/dist/overlay.part04.js.map +1 -0
  357. package/dist/overlay.part05.d.ts +8 -0
  358. package/dist/overlay.part05.d.ts.map +1 -0
  359. package/dist/overlay.part05.js +66 -0
  360. package/dist/overlay.part05.js.map +1 -0
  361. package/dist/overlay.part06.d.ts +46 -0
  362. package/dist/overlay.part06.d.ts.map +1 -0
  363. package/dist/overlay.part06.js +35 -0
  364. package/dist/overlay.part06.js.map +1 -0
  365. package/dist/overlay.part07.d.ts +4 -0
  366. package/dist/overlay.part07.d.ts.map +1 -0
  367. package/dist/overlay.part07.js +64 -0
  368. package/dist/overlay.part07.js.map +1 -0
  369. package/dist/overlay.part08.d.ts +34 -0
  370. package/dist/overlay.part08.d.ts.map +1 -0
  371. package/dist/overlay.part08.js +54 -0
  372. package/dist/overlay.part08.js.map +1 -0
  373. package/dist/overlay.part09.d.ts +6 -0
  374. package/dist/overlay.part09.d.ts.map +1 -0
  375. package/dist/overlay.part09.js +42 -0
  376. package/dist/overlay.part09.js.map +1 -0
  377. package/dist/pager.d.ts.map +1 -1
  378. package/dist/pager.js +2 -4
  379. package/dist/pager.js.map +1 -1
  380. package/dist/panel-dock.d.ts.map +1 -1
  381. package/dist/panel-dock.js +9 -11
  382. package/dist/panel-dock.js.map +1 -1
  383. package/dist/panels.d.ts.map +1 -1
  384. package/dist/panels.js +2 -0
  385. package/dist/panels.js.map +1 -1
  386. package/dist/pipeline/middleware/css.d.ts +3 -5
  387. package/dist/pipeline/middleware/css.d.ts.map +1 -1
  388. package/dist/pipeline/middleware/css.js +12 -6
  389. package/dist/pipeline/middleware/css.js.map +1 -1
  390. package/dist/pipeline/middleware/grayscale.js +15 -10
  391. package/dist/pipeline/middleware/grayscale.js.map +1 -1
  392. package/dist/pipeline/middleware/motion.js +9 -1
  393. package/dist/pipeline/middleware/motion.js.map +1 -1
  394. package/dist/pipeline/middleware/paint.js +9 -1
  395. package/dist/pipeline/middleware/paint.js.map +1 -1
  396. package/dist/pipeline/middleware/surface-shaders.js +13 -11
  397. package/dist/pipeline/middleware/surface-shaders.js.map +1 -1
  398. package/dist/pipeline/pipeline.d.ts +7 -52
  399. package/dist/pipeline/pipeline.d.ts.map +1 -1
  400. package/dist/pipeline/pipeline.js +37 -27
  401. package/dist/pipeline/pipeline.js.map +1 -1
  402. package/dist/raster-glyph.d.ts +2 -44
  403. package/dist/raster-glyph.d.ts.map +1 -1
  404. package/dist/raster-glyph.js +1 -404
  405. package/dist/raster-glyph.js.map +1 -1
  406. package/dist/raster-glyph.part01.d.ts +75 -0
  407. package/dist/raster-glyph.part01.d.ts.map +1 -0
  408. package/dist/raster-glyph.part01.js +25 -0
  409. package/dist/raster-glyph.part01.js.map +1 -0
  410. package/dist/raster-glyph.part02.d.ts +12 -0
  411. package/dist/raster-glyph.part02.d.ts.map +1 -0
  412. package/dist/raster-glyph.part02.js +81 -0
  413. package/dist/raster-glyph.part02.js.map +1 -0
  414. package/dist/raster-glyph.part03.d.ts +6 -0
  415. package/dist/raster-glyph.part03.d.ts.map +1 -0
  416. package/dist/raster-glyph.part03.js +60 -0
  417. package/dist/raster-glyph.part03.js.map +1 -0
  418. package/dist/raster-glyph.part04.d.ts +7 -0
  419. package/dist/raster-glyph.part04.d.ts.map +1 -0
  420. package/dist/raster-glyph.part04.js +59 -0
  421. package/dist/raster-glyph.part04.js.map +1 -0
  422. package/dist/raster-glyph.part05.d.ts +6 -0
  423. package/dist/raster-glyph.part05.d.ts.map +1 -0
  424. package/dist/raster-glyph.part05.js +71 -0
  425. package/dist/raster-glyph.part05.js.map +1 -0
  426. package/dist/raster-glyph.part06.d.ts +18 -0
  427. package/dist/raster-glyph.part06.d.ts.map +1 -0
  428. package/dist/raster-glyph.part06.js +78 -0
  429. package/dist/raster-glyph.part06.js.map +1 -0
  430. package/dist/raster-glyph.part07.d.ts +11 -0
  431. package/dist/raster-glyph.part07.d.ts.map +1 -0
  432. package/dist/raster-glyph.part07.js +55 -0
  433. package/dist/raster-glyph.part07.js.map +1 -0
  434. package/dist/raytrace.d.ts +3 -58
  435. package/dist/raytrace.d.ts.map +1 -1
  436. package/dist/raytrace.js +2 -120
  437. package/dist/raytrace.js.map +1 -1
  438. package/dist/raytrace.part01.d.ts +47 -0
  439. package/dist/raytrace.part01.d.ts.map +1 -0
  440. package/dist/raytrace.part01.js +45 -0
  441. package/dist/raytrace.part01.js.map +1 -0
  442. package/dist/raytrace.part02.d.ts +12 -0
  443. package/dist/raytrace.part02.d.ts.map +1 -0
  444. package/dist/raytrace.part02.js +73 -0
  445. package/dist/raytrace.part02.js.map +1 -0
  446. package/dist/runtime-binding.d.ts +2 -3
  447. package/dist/runtime-binding.d.ts.map +1 -1
  448. package/dist/runtime-binding.js +49 -38
  449. package/dist/runtime-binding.js.map +1 -1
  450. package/dist/runtime-engine.d.ts +2 -2
  451. package/dist/runtime-engine.d.ts.map +1 -1
  452. package/dist/runtime-engine.js +15 -4
  453. package/dist/runtime-engine.js.map +1 -1
  454. package/dist/runtime.d.ts +2 -18
  455. package/dist/runtime.d.ts.map +1 -1
  456. package/dist/runtime.js +33 -59
  457. package/dist/runtime.js.map +1 -1
  458. package/dist/screen.js +1 -1
  459. package/dist/screen.js.map +1 -1
  460. package/dist/shell-quit.d.ts.map +1 -1
  461. package/dist/shell-quit.js +48 -5
  462. package/dist/shell-quit.js.map +1 -1
  463. package/dist/split-pane.d.ts +3 -104
  464. package/dist/split-pane.d.ts.map +1 -1
  465. package/dist/split-pane.js +2 -190
  466. package/dist/split-pane.js.map +1 -1
  467. package/dist/split-pane.part01.d.ts +60 -0
  468. package/dist/split-pane.part01.d.ts.map +1 -0
  469. package/dist/split-pane.part01.js +45 -0
  470. package/dist/split-pane.part01.js.map +1 -0
  471. package/dist/split-pane.part02.d.ts +8 -0
  472. package/dist/split-pane.part02.d.ts.map +1 -0
  473. package/dist/split-pane.part02.js +73 -0
  474. package/dist/split-pane.part02.js.map +1 -0
  475. package/dist/split-pane.part03.d.ts +4 -0
  476. package/dist/split-pane.part03.d.ts.map +1 -0
  477. package/dist/split-pane.part03.js +40 -0
  478. package/dist/split-pane.part03.js.map +1 -0
  479. package/dist/spring.d.ts +4 -187
  480. package/dist/spring.d.ts.map +1 -1
  481. package/dist/spring.js +2 -142
  482. package/dist/spring.js.map +1 -1
  483. package/dist/spring.part01.d.ts +90 -0
  484. package/dist/spring.part01.d.ts.map +1 -0
  485. package/dist/spring.part01.js +58 -0
  486. package/dist/spring.part01.js.map +1 -0
  487. package/dist/spring.part02.d.ts +25 -0
  488. package/dist/spring.part02.d.ts.map +1 -0
  489. package/dist/spring.part02.js +21 -0
  490. package/dist/spring.part02.js.map +1 -0
  491. package/dist/status-bar.js +1 -1
  492. package/dist/status-bar.js.map +1 -1
  493. package/dist/subapp/mount.d.ts +6 -6
  494. package/dist/subapp/mount.d.ts.map +1 -1
  495. package/dist/subapp/mount.js +19 -14
  496. package/dist/subapp/mount.js.map +1 -1
  497. package/dist/surface-budget-types.d.ts +26 -0
  498. package/dist/surface-budget-types.d.ts.map +1 -0
  499. package/dist/surface-budget-types.js +2 -0
  500. package/dist/surface-budget-types.js.map +1 -0
  501. package/dist/surface-budget.d.ts +2 -25
  502. package/dist/surface-budget.d.ts.map +1 -1
  503. package/dist/surface-budget.js.map +1 -1
  504. package/dist/surface-diff.js +26 -28
  505. package/dist/surface-diff.js.map +1 -1
  506. package/dist/surface-layout.d.ts.map +1 -1
  507. package/dist/surface-layout.js +1 -2
  508. package/dist/surface-layout.js.map +1 -1
  509. package/dist/timeline.d.ts +1 -1
  510. package/dist/timeline.d.ts.map +1 -1
  511. package/dist/timeline.js +17 -15
  512. package/dist/timeline.js.map +1 -1
  513. package/dist/transition-shaders.d.ts +5 -142
  514. package/dist/transition-shaders.d.ts.map +1 -1
  515. package/dist/transition-shaders.js +4 -391
  516. package/dist/transition-shaders.js.map +1 -1
  517. package/dist/transition-shaders.part01.d.ts +41 -0
  518. package/dist/transition-shaders.part01.d.ts.map +1 -0
  519. package/dist/transition-shaders.part01.js +38 -0
  520. package/dist/transition-shaders.part01.js.map +1 -0
  521. package/dist/transition-shaders.part02.d.ts +12 -0
  522. package/dist/transition-shaders.part02.d.ts.map +1 -0
  523. package/dist/transition-shaders.part02.js +88 -0
  524. package/dist/transition-shaders.part02.js.map +1 -0
  525. package/dist/transition-shaders.part03.d.ts +6 -0
  526. package/dist/transition-shaders.part03.d.ts.map +1 -0
  527. package/dist/transition-shaders.part03.js +82 -0
  528. package/dist/transition-shaders.part03.js.map +1 -0
  529. package/dist/transition-shaders.part04.d.ts +16 -0
  530. package/dist/transition-shaders.part04.d.ts.map +1 -0
  531. package/dist/transition-shaders.part04.js +98 -0
  532. package/dist/transition-shaders.part04.js.map +1 -0
  533. package/dist/types.d.ts +10 -42
  534. package/dist/types.d.ts.map +1 -1
  535. package/dist/types.js +9 -36
  536. package/dist/types.js.map +1 -1
  537. package/dist/view-output.d.ts +1 -1
  538. package/dist/view-output.d.ts.map +1 -1
  539. package/dist/view-output.js +3 -2
  540. package/dist/view-output.js.map +1 -1
  541. package/dist/viewport.d.ts +7 -213
  542. package/dist/viewport.d.ts.map +1 -1
  543. package/dist/viewport.js +6 -470
  544. package/dist/viewport.js.map +1 -1
  545. package/dist/viewport.part01.d.ts +51 -0
  546. package/dist/viewport.part01.d.ts.map +1 -0
  547. package/dist/viewport.part01.js +10 -0
  548. package/dist/viewport.part01.js.map +1 -0
  549. package/dist/viewport.part02.d.ts +2 -0
  550. package/dist/viewport.part02.d.ts.map +1 -0
  551. package/dist/viewport.part02.js +69 -0
  552. package/dist/viewport.part02.js.map +1 -0
  553. package/dist/viewport.part03.d.ts +10 -0
  554. package/dist/viewport.part03.d.ts.map +1 -0
  555. package/dist/viewport.part03.js +78 -0
  556. package/dist/viewport.part03.js.map +1 -0
  557. package/dist/viewport.part04.d.ts +4 -0
  558. package/dist/viewport.part04.d.ts.map +1 -0
  559. package/dist/viewport.part04.js +50 -0
  560. package/dist/viewport.part04.js.map +1 -0
  561. package/dist/viewport.part05.d.ts +5 -0
  562. package/dist/viewport.part05.d.ts.map +1 -0
  563. package/dist/viewport.part05.js +59 -0
  564. package/dist/viewport.part05.js.map +1 -0
  565. package/dist/viewport.part06.d.ts +14 -0
  566. package/dist/viewport.part06.d.ts.map +1 -0
  567. package/dist/viewport.part06.js +58 -0
  568. package/dist/viewport.part06.js.map +1 -0
  569. package/package.json +3 -3
package/dist/raytrace.js CHANGED
@@ -1,121 +1,3 @@
1
- /**
2
- * Small raytrace geometry helpers for shader-authored terminal scenes.
3
- *
4
- * This module owns camera rays, vector math, and primitive intersections.
5
- * Apps keep material, lighting, palette, and sampling policy.
6
- */
7
- const DEFAULT_FOCAL_LENGTH = 1;
8
- const MIN_HIT_DISTANCE = 0.000001;
9
- const WORLD_UP = [0, 1, 0];
10
- const FALLBACK_RIGHT = [1, 0, 0];
11
- export function raytraceLookAtRay(options) {
12
- const focalLength = options.focalLength ?? DEFAULT_FOCAL_LENGTH;
13
- const up = options.up ?? WORLD_UP;
14
- const forward = raytraceNormalize(raytraceSub(options.target, options.origin));
15
- const rightCandidate = raytraceNormalize(raytraceCross(forward, up));
16
- const right = raytraceLength(rightCandidate) === 0 ? FALLBACK_RIGHT : rightCandidate;
17
- const cameraUp = raytraceNormalize(raytraceCross(right, forward));
18
- const direction = raytraceNormalize(raytraceAdd(raytraceAdd(raytraceScale(right, options.screen[0]), raytraceScale(cameraUp, options.screen[1])), raytraceScale(forward, focalLength)));
19
- return {
20
- origin: options.origin,
21
- direction,
22
- };
23
- }
24
- export function raytraceOrbitCameraRay(options) {
25
- const origin = [
26
- options.target[0] + (Math.sin(options.angleRadians) * options.radius),
27
- options.target[1] + options.height,
28
- options.target[2] + (Math.cos(options.angleRadians) * options.radius),
29
- ];
30
- return raytraceLookAtRay({
31
- origin,
32
- target: options.target,
33
- screen: options.screen,
34
- focalLength: options.focalLength,
35
- up: options.up,
36
- });
37
- }
38
- export function raytraceNearestHit(ray, shapes) {
39
- let nearest;
40
- for (const shape of shapes) {
41
- const hit = shape.kind === 'sphere'
42
- ? raytraceSphereHit(ray, shape)
43
- : raytracePlaneHit(ray, shape);
44
- if (hit !== undefined && (nearest === undefined || hit.distance < nearest.distance)) {
45
- nearest = hit;
46
- }
47
- }
48
- return nearest;
49
- }
50
- export function raytraceSphereHit(ray, sphere) {
51
- const offset = raytraceSub(ray.origin, sphere.center);
52
- const halfB = raytraceDot(offset, ray.direction);
53
- const c = raytraceDot(offset, offset) - (sphere.radius * sphere.radius);
54
- const discriminant = (halfB * halfB) - c;
55
- if (discriminant < 0)
56
- return undefined;
57
- const root = Math.sqrt(discriminant);
58
- const near = -halfB - root;
59
- const far = -halfB + root;
60
- const distance = near > MIN_HIT_DISTANCE
61
- ? near
62
- : far > MIN_HIT_DISTANCE
63
- ? far
64
- : undefined;
65
- if (distance === undefined)
66
- return undefined;
67
- const point = raytraceAdd(ray.origin, raytraceScale(ray.direction, distance));
68
- return {
69
- shape: sphere,
70
- distance,
71
- point,
72
- normal: raytraceNormalize(raytraceSub(point, sphere.center)),
73
- };
74
- }
75
- export function raytracePlaneHit(ray, plane) {
76
- const normal = raytraceNormalize(plane.normal);
77
- const denominator = raytraceDot(normal, ray.direction);
78
- if (Math.abs(denominator) <= MIN_HIT_DISTANCE)
79
- return undefined;
80
- const distance = raytraceDot(raytraceSub(plane.point, ray.origin), normal) / denominator;
81
- if (distance <= MIN_HIT_DISTANCE)
82
- return undefined;
83
- return {
84
- shape: plane,
85
- distance,
86
- point: raytraceAdd(ray.origin, raytraceScale(ray.direction, distance)),
87
- normal,
88
- };
89
- }
90
- export function raytraceReflect(ray, normal) {
91
- return raytraceSub(ray, raytraceScale(normal, 2 * raytraceDot(ray, normal)));
92
- }
93
- export function raytraceNormalize(vector) {
94
- const length = raytraceLength(vector);
95
- return length === 0
96
- ? [0, 0, 0]
97
- : [vector[0] / length, vector[1] / length, vector[2] / length];
98
- }
99
- export function raytraceLength(vector) {
100
- return Math.hypot(vector[0], vector[1], vector[2]);
101
- }
102
- export function raytraceDot(a, b) {
103
- return (a[0] * b[0]) + (a[1] * b[1]) + (a[2] * b[2]);
104
- }
105
- export function raytraceCross(a, b) {
106
- return [
107
- (a[1] * b[2]) - (a[2] * b[1]),
108
- (a[2] * b[0]) - (a[0] * b[2]),
109
- (a[0] * b[1]) - (a[1] * b[0]),
110
- ];
111
- }
112
- export function raytraceAdd(a, b) {
113
- return [a[0] + b[0], a[1] + b[1], a[2] + b[2]];
114
- }
115
- export function raytraceSub(a, b) {
116
- return [a[0] - b[0], a[1] - b[1], a[2] - b[2]];
117
- }
118
- export function raytraceScale(vector, scalar) {
119
- return [vector[0] * scalar, vector[1] * scalar, vector[2] * scalar];
120
- }
1
+ export { raytraceLookAtRay, raytraceNearestHit, raytraceOrbitCameraRay } from './raytrace.part01.js';
2
+ export { raytraceAdd, raytraceCross, raytraceDot, raytraceLength, raytraceNormalize, raytracePlaneHit, raytraceReflect, raytraceScale, raytraceSphereHit, raytraceSub } from './raytrace.part02.js';
121
3
  //# sourceMappingURL=raytrace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"raytrace.js","sourceRoot":"","sources":["../src/raytrace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raytrace.js","sourceRoot":"","sources":["../src/raytrace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAErG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,47 @@
1
+ export type RaytraceVector3 = readonly [number, number, number];
2
+ export type RaytraceScreenPoint = readonly [number, number];
3
+ export interface RaytraceRay {
4
+ readonly origin: RaytraceVector3;
5
+ readonly direction: RaytraceVector3;
6
+ }
7
+ export interface RaytraceSphere {
8
+ readonly kind: 'sphere';
9
+ readonly center: RaytraceVector3;
10
+ readonly radius: number;
11
+ }
12
+ export interface RaytracePlane {
13
+ readonly kind: 'plane';
14
+ readonly point: RaytraceVector3;
15
+ readonly normal: RaytraceVector3;
16
+ }
17
+ export type RaytraceShape = RaytraceSphere | RaytracePlane;
18
+ export interface RaytraceHit<Shape extends RaytraceShape = RaytraceShape> {
19
+ readonly shape: Shape;
20
+ readonly distance: number;
21
+ readonly point: RaytraceVector3;
22
+ readonly normal: RaytraceVector3;
23
+ }
24
+ export interface RaytraceLookAtRayOptions {
25
+ readonly origin: RaytraceVector3;
26
+ readonly target: RaytraceVector3;
27
+ readonly screen: RaytraceScreenPoint;
28
+ readonly focalLength?: number;
29
+ readonly up?: RaytraceVector3;
30
+ }
31
+ export interface RaytraceOrbitCameraRayOptions {
32
+ readonly angleRadians: number;
33
+ readonly radius: number;
34
+ readonly height: number;
35
+ readonly target: RaytraceVector3;
36
+ readonly screen: RaytraceScreenPoint;
37
+ readonly focalLength?: number;
38
+ readonly up?: RaytraceVector3;
39
+ }
40
+ export declare const DEFAULT_FOCAL_LENGTH = 1;
41
+ export declare const MIN_HIT_DISTANCE = 0.000001;
42
+ export declare const WORLD_UP: RaytraceVector3;
43
+ export declare const FALLBACK_RIGHT: RaytraceVector3;
44
+ export declare function raytraceLookAtRay(options: RaytraceLookAtRayOptions): RaytraceRay;
45
+ export declare function raytraceOrbitCameraRay(options: RaytraceOrbitCameraRayOptions): RaytraceRay;
46
+ export declare function raytraceNearestHit(ray: RaytraceRay, shapes: readonly RaytraceShape[]): RaytraceHit | undefined;
47
+ //# sourceMappingURL=raytrace.part01.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raytrace.part01.d.ts","sourceRoot":"","sources":["../src/raytrace.part01.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CAClC;AACD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,aAAa,CAAC;AAC3D,MAAM,WAAW,WAAW,CAAC,KAAK,SAAS,aAAa,GAAG,aAAa;IACtE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CAClC;AACD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC;CAC/B;AACD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC;CAC/B;AACD,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,QAAQ,EAAE,eAA2B,CAAC;AACnD,eAAO,MAAM,cAAc,EAAE,eAA2B,CAAC;AACzD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,CAmBhF;AACD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,WAAW,CAc1F;AACD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,WAAW,GAAG,SAAS,CAa9G"}
@@ -0,0 +1,45 @@
1
+ import { raytraceAdd, raytraceCross, raytraceLength, raytraceNormalize, raytracePlaneHit, raytraceScale, raytraceSphereHit, raytraceSub } from './raytrace.part02.js';
2
+ export const DEFAULT_FOCAL_LENGTH = 1;
3
+ export const MIN_HIT_DISTANCE = 0.000001;
4
+ export const WORLD_UP = [0, 1, 0];
5
+ export const FALLBACK_RIGHT = [1, 0, 0];
6
+ export function raytraceLookAtRay(options) {
7
+ const focalLength = options.focalLength ?? DEFAULT_FOCAL_LENGTH;
8
+ const up = options.up ?? WORLD_UP;
9
+ const forward = raytraceNormalize(raytraceSub(options.target, options.origin));
10
+ const rightCandidate = raytraceNormalize(raytraceCross(forward, up));
11
+ const right = raytraceLength(rightCandidate) === 0 ? FALLBACK_RIGHT : rightCandidate;
12
+ const cameraUp = raytraceNormalize(raytraceCross(right, forward));
13
+ const direction = raytraceNormalize(raytraceAdd(raytraceAdd(raytraceScale(right, options.screen[0]), raytraceScale(cameraUp, options.screen[1])), raytraceScale(forward, focalLength)));
14
+ return {
15
+ origin: options.origin,
16
+ direction,
17
+ };
18
+ }
19
+ export function raytraceOrbitCameraRay(options) {
20
+ const origin = [
21
+ options.target[0] + (Math.sin(options.angleRadians) * options.radius),
22
+ options.target[1] + options.height,
23
+ options.target[2] + (Math.cos(options.angleRadians) * options.radius),
24
+ ];
25
+ return raytraceLookAtRay({
26
+ origin,
27
+ target: options.target,
28
+ screen: options.screen,
29
+ focalLength: options.focalLength,
30
+ up: options.up,
31
+ });
32
+ }
33
+ export function raytraceNearestHit(ray, shapes) {
34
+ let nearest;
35
+ for (const shape of shapes) {
36
+ const hit = shape.kind === 'sphere'
37
+ ? raytraceSphereHit(ray, shape)
38
+ : raytracePlaneHit(ray, shape);
39
+ if (hit !== undefined && (nearest === undefined || hit.distance < nearest.distance)) {
40
+ nearest = hit;
41
+ }
42
+ }
43
+ return nearest;
44
+ }
45
+ //# sourceMappingURL=raytrace.part01.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raytrace.part01.js","sourceRoot":"","sources":["../src/raytrace.part01.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { RaytraceHit, RaytracePlane, RaytraceRay, RaytraceSphere, RaytraceVector3 } from './raytrace.part01.js';
2
+ export declare function raytraceSphereHit(ray: RaytraceRay, sphere: RaytraceSphere): RaytraceHit<RaytraceSphere> | undefined;
3
+ export declare function raytracePlaneHit(ray: RaytraceRay, plane: RaytracePlane): RaytraceHit<RaytracePlane> | undefined;
4
+ export declare function raytraceReflect(ray: RaytraceVector3, normal: RaytraceVector3): RaytraceVector3;
5
+ export declare function raytraceNormalize(vector: RaytraceVector3): RaytraceVector3;
6
+ export declare function raytraceLength(vector: RaytraceVector3): number;
7
+ export declare function raytraceDot(a: RaytraceVector3, b: RaytraceVector3): number;
8
+ export declare function raytraceCross(a: RaytraceVector3, b: RaytraceVector3): RaytraceVector3;
9
+ export declare function raytraceAdd(a: RaytraceVector3, b: RaytraceVector3): RaytraceVector3;
10
+ export declare function raytraceSub(a: RaytraceVector3, b: RaytraceVector3): RaytraceVector3;
11
+ export declare function raytraceScale(vector: RaytraceVector3, scalar: number): RaytraceVector3;
12
+ //# sourceMappingURL=raytrace.part02.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raytrace.part02.d.ts","sourceRoot":"","sources":["../src/raytrace.part02.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,SAAS,CAwBnH;AACD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,SAAS,CAc/G;AACD,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,eAAe,CAE9F;AACD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAK1E;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAE9D;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAE1E;AACD,wBAAgB,aAAa,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,eAAe,CAMrF;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,eAAe,CAEnF;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,eAAe,CAEnF;AACD,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAEtF"}
@@ -0,0 +1,73 @@
1
+ import { MIN_HIT_DISTANCE } from './raytrace.part01.js';
2
+ export function raytraceSphereHit(ray, sphere) {
3
+ const offset = raytraceSub(ray.origin, sphere.center);
4
+ const halfB = raytraceDot(offset, ray.direction);
5
+ const c = raytraceDot(offset, offset) - (sphere.radius * sphere.radius);
6
+ const discriminant = (halfB * halfB) - c;
7
+ if (discriminant < 0)
8
+ return undefined;
9
+ const root = Math.sqrt(discriminant);
10
+ const near = -halfB - root;
11
+ const far = -halfB + root;
12
+ const distance = near > MIN_HIT_DISTANCE
13
+ ? near
14
+ : far > MIN_HIT_DISTANCE
15
+ ? far
16
+ : undefined;
17
+ if (distance === undefined)
18
+ return undefined;
19
+ const point = raytraceAdd(ray.origin, raytraceScale(ray.direction, distance));
20
+ return {
21
+ shape: sphere,
22
+ distance,
23
+ point,
24
+ normal: raytraceNormalize(raytraceSub(point, sphere.center)),
25
+ };
26
+ }
27
+ export function raytracePlaneHit(ray, plane) {
28
+ const normal = raytraceNormalize(plane.normal);
29
+ const denominator = raytraceDot(normal, ray.direction);
30
+ if (Math.abs(denominator) <= MIN_HIT_DISTANCE)
31
+ return undefined;
32
+ const distance = raytraceDot(raytraceSub(plane.point, ray.origin), normal) / denominator;
33
+ if (distance <= MIN_HIT_DISTANCE)
34
+ return undefined;
35
+ return {
36
+ shape: plane,
37
+ distance,
38
+ point: raytraceAdd(ray.origin, raytraceScale(ray.direction, distance)),
39
+ normal,
40
+ };
41
+ }
42
+ export function raytraceReflect(ray, normal) {
43
+ return raytraceSub(ray, raytraceScale(normal, 2 * raytraceDot(ray, normal)));
44
+ }
45
+ export function raytraceNormalize(vector) {
46
+ const length = raytraceLength(vector);
47
+ return length === 0
48
+ ? [0, 0, 0]
49
+ : [vector[0] / length, vector[1] / length, vector[2] / length];
50
+ }
51
+ export function raytraceLength(vector) {
52
+ return Math.hypot(vector[0], vector[1], vector[2]);
53
+ }
54
+ export function raytraceDot(a, b) {
55
+ return (a[0] * b[0]) + (a[1] * b[1]) + (a[2] * b[2]);
56
+ }
57
+ export function raytraceCross(a, b) {
58
+ return [
59
+ (a[1] * b[2]) - (a[2] * b[1]),
60
+ (a[2] * b[0]) - (a[0] * b[2]),
61
+ (a[0] * b[1]) - (a[1] * b[0]),
62
+ ];
63
+ }
64
+ export function raytraceAdd(a, b) {
65
+ return [a[0] + b[0], a[1] + b[1], a[2] + b[2]];
66
+ }
67
+ export function raytraceSub(a, b) {
68
+ return [a[0] - b[0], a[1] - b[1], a[2] - b[2]];
69
+ }
70
+ export function raytraceScale(vector, scalar) {
71
+ return [vector[0] * scalar, vector[1] * scalar, vector[2] * scalar];
72
+ }
73
+ //# sourceMappingURL=raytrace.part02.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raytrace.part02.js","sourceRoot":"","sources":["../src/raytrace.part02.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { type ActiveBindingCollection, type ActiveBindingProviderAssignment, type BindingLifecycleOwner, type CommandIntent, type DeepReadonly, type ViewDataContract } from '@flyingrobots/bijou';
2
- import { type RuntimeCommandBuffer } from './runtime-engine.js';
3
- import type { RuntimeStackLayer, RuntimeViewStack } from './runtime-engine.js';
2
+ import { type RuntimeCommandBuffer, RuntimeStackLayer, RuntimeViewStack } from './runtime-engine.js';
4
3
  declare const RUNTIME_VIEW_BINDING_SOURCE_BRAND: unique symbol;
5
4
  declare const RUNTIME_COMMAND_INTENT_EMISSION_BRAND: unique symbol;
6
5
  declare const RUNTIME_COMMAND_INTENT_ROUTE_BRAND: unique symbol;
@@ -46,7 +45,7 @@ export interface DispatchRuntimeCommandIntentResult<Command> {
46
45
  readonly buffer: RuntimeCommandBuffer<Command>;
47
46
  }
48
47
  export declare function runtimeViewBindingSource(input: RuntimeViewBindingSourceInput): RuntimeViewBindingSource;
49
- export declare function runtimeCommandIntentEmission(intent: CommandIntent): RuntimeCommandIntentEmission<undefined>;
48
+ export declare function runtimeCommandIntentEmission(intent: CommandIntent): RuntimeCommandIntentEmission;
50
49
  export declare function runtimeCommandIntentEmission<Payload>(intent: CommandIntent<Payload>, payload: Payload, options?: RuntimeCommandIntentEmissionOptions): RuntimeCommandIntentEmission<Payload>;
51
50
  export declare function isRuntimeCommandIntentEmission(value: unknown): value is RuntimeCommandIntentEmission;
52
51
  export declare function runtimeCommandIntentRoute<Payload, Command>(input: RuntimeCommandIntentRouteInput<Payload, Command>): RuntimeCommandIntentRoute<Payload, Command>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-binding.d.ts","sourceRoot":"","sources":["../src/runtime-binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-binding.d.ts","sourceRoot":"","sources":["../src/runtime-binding.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,13 @@ export function runtimeViewBindingSource(input) {
11
11
  if (!isViewDataContract(input.contract)) {
12
12
  throw new Error('runtime binding source: contract was not created by defineViewData()');
13
13
  }
14
+ const providerIds = freezeProviderAssignments(input.providerIds);
14
15
  const source = {
15
16
  owner: input.owner,
16
17
  contract: input.contract,
17
- providerIds: freezeProviderAssignments(input.providerIds),
18
+ ...(providerIds === undefined ? {} : { providerIds }),
18
19
  };
19
- Object.defineProperty(source, RUNTIME_VIEW_BINDING_SOURCE_BRAND, { value: true });
20
+ brand(source, RUNTIME_VIEW_BINDING_SOURCE_BRAND);
20
21
  return Object.freeze(source);
21
22
  }
22
23
  export function runtimeCommandIntentEmission(intent, payload, options = {}) {
@@ -24,22 +25,20 @@ export function runtimeCommandIntentEmission(intent, payload, options = {}) {
24
25
  if (!isCommandIntent(intent)) {
25
26
  throw new Error('runtime command intent emission: intent was not created by commandIntent()');
26
27
  }
27
- if (options.owner !== undefined && !isBindingLifecycleOwner(options.owner)) {
28
+ const owner = options['owner'];
29
+ if (owner !== undefined && !isBindingLifecycleOwner(owner)) {
28
30
  throw new Error('runtime command intent emission: owner was not created by defineBindingLifecycleOwner()');
29
31
  }
30
32
  const emission = {
31
33
  intent,
32
34
  payload: freezeRuntimePayload(payload),
33
- owner: options.owner,
35
+ owner,
34
36
  };
35
- Object.defineProperty(emission, RUNTIME_COMMAND_INTENT_EMISSION_BRAND, { value: true });
37
+ brand(emission, RUNTIME_COMMAND_INTENT_EMISSION_BRAND);
36
38
  return Object.freeze(emission);
37
39
  }
38
40
  export function isRuntimeCommandIntentEmission(value) {
39
- return Boolean(value
40
- && typeof value === 'object'
41
- && Object.prototype.hasOwnProperty.call(value, RUNTIME_COMMAND_INTENT_EMISSION_BRAND)
42
- && value[RUNTIME_COMMAND_INTENT_EMISSION_BRAND] === true);
41
+ return hasOwnBrand(value, RUNTIME_COMMAND_INTENT_EMISSION_BRAND);
43
42
  }
44
43
  export function runtimeCommandIntentRoute(input) {
45
44
  assertObjectRecord(input, 'runtime command intent route');
@@ -53,31 +52,31 @@ export function runtimeCommandIntentRoute(input) {
53
52
  intent: input.intent,
54
53
  toCommand: input.toCommand,
55
54
  };
56
- Object.defineProperty(route, RUNTIME_COMMAND_INTENT_ROUTE_BRAND, { value: true });
55
+ brand(route, RUNTIME_COMMAND_INTENT_ROUTE_BRAND);
57
56
  return Object.freeze(route);
58
57
  }
59
58
  export function isRuntimeCommandIntentRoute(value) {
60
- return Boolean(value
61
- && typeof value === 'object'
62
- && Object.prototype.hasOwnProperty.call(value, RUNTIME_COMMAND_INTENT_ROUTE_BRAND)
63
- && value[RUNTIME_COMMAND_INTENT_ROUTE_BRAND] === true);
59
+ return hasOwnBrand(value, RUNTIME_COMMAND_INTENT_ROUTE_BRAND);
64
60
  }
65
61
  export function dispatchRuntimeCommandIntent(input) {
66
62
  assertObjectRecord(input, 'runtime command intent dispatch');
67
63
  if (!isRuntimeCommandIntentEmission(input.emission)) {
68
64
  throw new Error('runtime command intent dispatch: emission was not created by runtimeCommandIntentEmission()');
69
65
  }
70
- if (!Array.isArray(input.routes)) {
66
+ if (!isRuntimeCommandIntentRouteList(input.routes)) {
71
67
  throw new Error('runtime command intent dispatch: routes must be an array');
72
68
  }
73
69
  if (!isRuntimeCommandBuffer(input.buffer)) {
74
70
  throw new Error('runtime command intent dispatch: buffer must be a RuntimeCommandBuffer');
75
71
  }
76
- const route = input.routes.find((candidate, index) => {
77
- if (!isRuntimeCommandIntentRoute(candidate)) {
78
- throw new Error(`runtime command intent dispatch: route at index ${index} was not created by runtimeCommandIntentRoute()`);
72
+ let route;
73
+ input.routes.forEach((candidate, index) => {
74
+ if (!hasOwnBrand(candidate, RUNTIME_COMMAND_INTENT_ROUTE_BRAND)) {
75
+ throw new Error(`runtime command intent dispatch: route at index ${String(index)} was not created by runtimeCommandIntentRoute()`);
76
+ }
77
+ if (route === undefined && candidate.intent.id === input.emission.intent.id) {
78
+ route = candidate;
79
79
  }
80
- return candidate.intent.id === input.emission.intent.id;
81
80
  });
82
81
  if (route === undefined) {
83
82
  throw new Error(`runtime command intent dispatch: no route for intent ${input.emission.intent.id}`);
@@ -89,10 +88,7 @@ export function dispatchRuntimeCommandIntent(input) {
89
88
  });
90
89
  }
91
90
  export function isRuntimeViewBindingSource(value) {
92
- return Boolean(value
93
- && typeof value === 'object'
94
- && Object.prototype.hasOwnProperty.call(value, RUNTIME_VIEW_BINDING_SOURCE_BRAND)
95
- && value[RUNTIME_VIEW_BINDING_SOURCE_BRAND] === true);
91
+ return hasOwnBrand(value, RUNTIME_VIEW_BINDING_SOURCE_BRAND);
96
92
  }
97
93
  export function runtimeActiveBindingLayers(stack) {
98
94
  if (!isRuntimeViewStack(stack)) {
@@ -119,7 +115,7 @@ export function collectRuntimeViewBindings(stack) {
119
115
  }
120
116
  return bindingSources.map((source, index) => {
121
117
  if (!isRuntimeViewBindingSource(source)) {
122
- throw new Error(`runtime binding collection: source at layer ${layer.id} index ${index} `
118
+ throw new Error(`runtime binding collection: source at layer ${layer.id} index ${String(index)} `
123
119
  + 'was not created by runtimeViewBindingSource()');
124
120
  }
125
121
  return {
@@ -134,13 +130,23 @@ export function collectRuntimeViewBindings(stack) {
134
130
  function isRuntimeViewStack(value) {
135
131
  return Boolean(value
136
132
  && typeof value === 'object'
137
- && Array.isArray(value.layers));
133
+ && Array.isArray(Reflect.get(value, 'layers')));
138
134
  }
139
135
  function isRuntimeCommandBuffer(value) {
140
136
  return Boolean(value
141
137
  && typeof value === 'object'
142
- && Array.isArray(value.items));
138
+ && Array.isArray(Reflect.get(value, 'items')));
139
+ }
140
+ function brand(value, brandSymbol) {
141
+ Object.defineProperty(value, brandSymbol, { value: true });
143
142
  }
143
+ function hasOwnBrand(value, brandSymbol) {
144
+ return (value !== null
145
+ && typeof value === 'object'
146
+ && Object.prototype.hasOwnProperty.call(value, brandSymbol)
147
+ && Reflect.get(value, brandSymbol) === true);
148
+ }
149
+ function isRuntimeCommandIntentRouteList(value) { return Array.isArray(value); }
144
150
  function freezeProviderAssignments(assignments) {
145
151
  if (assignments === undefined) {
146
152
  return undefined;
@@ -150,10 +156,10 @@ function freezeProviderAssignments(assignments) {
150
156
  }
151
157
  const seenRequirementIds = new Set();
152
158
  return Object.freeze(assignments.map((assignment, index) => {
153
- assertObjectRecord(assignment, 'runtime binding source', `provider assignment ${index}`);
159
+ assertObjectRecord(assignment, 'runtime binding source', `provider assignment ${String(index)}`);
154
160
  const requirementId = normalizeRequiredText({
155
161
  scope: 'runtime binding source',
156
- field: `provider assignment ${index} requirementId`,
162
+ field: `provider assignment ${String(index)} requirementId`,
157
163
  value: assignment['requirementId'],
158
164
  });
159
165
  if (seenRequirementIds.has(requirementId)) {
@@ -164,7 +170,7 @@ function freezeProviderAssignments(assignments) {
164
170
  requirementId,
165
171
  providerId: normalizeRequiredText({
166
172
  scope: 'runtime binding source',
167
- field: `provider assignment ${index} providerId`,
173
+ field: `provider assignment ${String(index)} providerId`,
168
174
  value: assignment['providerId'],
169
175
  }),
170
176
  });
@@ -198,13 +204,16 @@ function cloneRuntimePayload(value, path, seen = new WeakSet()) {
198
204
  }
199
205
  seen.add(objectValue);
200
206
  try {
201
- if (Array.isArray(value)) {
202
- return value.map((item, index) => cloneRuntimePayload(item, `${path}[${index}]`, seen));
207
+ if (isRuntimePayloadArray(value)) {
208
+ return value.map((item, index) => cloneRuntimePayload(item, `${path}[${String(index)}]`, seen));
203
209
  }
204
210
  if (!isPlainObject(value)) {
205
211
  throw new Error(`runtime command intent payload: unsupported ${objectKind(value)} at ${path}`);
206
212
  }
207
- const clone = Object.create(Object.getPrototypeOf(value));
213
+ const clone = {};
214
+ if (Reflect.getPrototypeOf(value) === null) {
215
+ Object.setPrototypeOf(clone, null);
216
+ }
208
217
  const descriptors = Object.getOwnPropertyDescriptors(value);
209
218
  for (const key of Reflect.ownKeys(descriptors)) {
210
219
  if (typeof key === 'symbol') {
@@ -233,13 +242,12 @@ function deepFreeze(value, seen = new WeakSet()) {
233
242
  if (value === null || typeof value !== 'object') {
234
243
  return value;
235
244
  }
236
- const objectValue = value;
237
- if (seen.has(objectValue)) {
245
+ if (seen.has(value)) {
238
246
  return value;
239
247
  }
240
- seen.add(objectValue);
241
- for (const key of Reflect.ownKeys(objectValue)) {
242
- const descriptor = Object.getOwnPropertyDescriptor(objectValue, key);
248
+ seen.add(value);
249
+ for (const key of Reflect.ownKeys(value)) {
250
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
243
251
  if (descriptor !== undefined && 'value' in descriptor) {
244
252
  deepFreeze(descriptor.value, seen);
245
253
  }
@@ -262,9 +270,12 @@ function normalizeRequiredText(options) {
262
270
  return normalized;
263
271
  }
264
272
  function isPlainObject(value) {
265
- const prototype = Object.getPrototypeOf(value);
273
+ const prototype = Reflect.getPrototypeOf(value);
266
274
  return prototype === Object.prototype || prototype === null;
267
275
  }
276
+ function isRuntimePayloadArray(value) {
277
+ return Array.isArray(value);
278
+ }
268
279
  function objectKind(value) {
269
280
  return Object.prototype.toString.call(value).slice(8, -1);
270
281
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-binding.js","sourceRoot":"","sources":["../src/runtime-binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-binding.js","sourceRoot":"","sources":["../src/runtime-binding.ts"],"names":[],"mappings":"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"}