@rezi-ui/core 0.1.0-alpha.6 → 0.1.0-alpha.63

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 (1382) hide show
  1. package/README.md +3 -2
  2. package/dist/abi.d.ts +3 -3
  3. package/dist/abi.d.ts.map +1 -1
  4. package/dist/abi.js +2 -2
  5. package/dist/abi.js.map +1 -1
  6. package/dist/animation/easing.d.ts +7 -0
  7. package/dist/animation/easing.d.ts.map +1 -0
  8. package/dist/animation/easing.js +68 -0
  9. package/dist/animation/easing.js.map +1 -0
  10. package/dist/animation/interpolate.d.ts +15 -0
  11. package/dist/animation/interpolate.d.ts.map +1 -0
  12. package/dist/animation/interpolate.js +53 -0
  13. package/dist/animation/interpolate.js.map +1 -0
  14. package/dist/animation/spring.d.ts +18 -0
  15. package/dist/animation/spring.d.ts.map +1 -0
  16. package/dist/animation/spring.js +84 -0
  17. package/dist/animation/spring.js.map +1 -0
  18. package/dist/animation/timeline.d.ts +27 -0
  19. package/dist/animation/timeline.d.ts.map +1 -0
  20. package/dist/animation/timeline.js +88 -0
  21. package/dist/animation/timeline.js.map +1 -0
  22. package/dist/animation/types.d.ts +96 -0
  23. package/dist/animation/types.d.ts.map +1 -0
  24. package/dist/animation/types.js +8 -0
  25. package/dist/animation/types.js.map +1 -0
  26. package/dist/app/createApp/breadcrumbs.d.ts +38 -0
  27. package/dist/app/createApp/breadcrumbs.d.ts.map +1 -0
  28. package/dist/app/createApp/breadcrumbs.js +65 -0
  29. package/dist/app/createApp/breadcrumbs.js.map +1 -0
  30. package/dist/app/createApp/config.d.ts +25 -0
  31. package/dist/app/createApp/config.d.ts.map +1 -0
  32. package/dist/app/createApp/config.js +130 -0
  33. package/dist/app/createApp/config.js.map +1 -0
  34. package/dist/app/createApp/dirtyPlan.d.ts +21 -0
  35. package/dist/app/createApp/dirtyPlan.d.ts.map +1 -0
  36. package/dist/app/createApp/dirtyPlan.js +54 -0
  37. package/dist/app/createApp/dirtyPlan.js.map +1 -0
  38. package/dist/app/createApp/eventLoop.d.ts +95 -0
  39. package/dist/app/createApp/eventLoop.d.ts.map +1 -0
  40. package/dist/app/createApp/eventLoop.js +384 -0
  41. package/dist/app/createApp/eventLoop.js.map +1 -0
  42. package/dist/app/createApp/focusDispatcher.d.ts +14 -0
  43. package/dist/app/createApp/focusDispatcher.d.ts.map +1 -0
  44. package/dist/app/createApp/focusDispatcher.js +39 -0
  45. package/dist/app/createApp/focusDispatcher.js.map +1 -0
  46. package/dist/app/createApp/guards.d.ts +21 -0
  47. package/dist/app/createApp/guards.d.ts.map +1 -0
  48. package/dist/app/createApp/guards.js +54 -0
  49. package/dist/app/createApp/guards.js.map +1 -0
  50. package/dist/app/createApp/keybindings.d.ts +28 -0
  51. package/dist/app/createApp/keybindings.d.ts.map +1 -0
  52. package/dist/app/createApp/keybindings.js +113 -0
  53. package/dist/app/createApp/keybindings.js.map +1 -0
  54. package/dist/app/createApp/renderLoop.d.ts +64 -0
  55. package/dist/app/createApp/renderLoop.d.ts.map +1 -0
  56. package/dist/app/createApp/renderLoop.js +305 -0
  57. package/dist/app/createApp/renderLoop.js.map +1 -0
  58. package/dist/app/createApp/runSignals.d.ts +23 -0
  59. package/dist/app/createApp/runSignals.d.ts.map +1 -0
  60. package/dist/app/createApp/runSignals.js +71 -0
  61. package/dist/app/createApp/runSignals.js.map +1 -0
  62. package/dist/app/createApp/topLevelViewError.d.ts +15 -0
  63. package/dist/app/createApp/topLevelViewError.d.ts.map +1 -0
  64. package/dist/app/createApp/topLevelViewError.js +87 -0
  65. package/dist/app/createApp/topLevelViewError.js.map +1 -0
  66. package/dist/app/createApp.d.ts +23 -41
  67. package/dist/app/createApp.d.ts.map +1 -1
  68. package/dist/app/createApp.js +688 -707
  69. package/dist/app/createApp.js.map +1 -1
  70. package/dist/app/inspectorOverlayHelper.d.ts +65 -0
  71. package/dist/app/inspectorOverlayHelper.d.ts.map +1 -0
  72. package/dist/app/inspectorOverlayHelper.js +200 -0
  73. package/dist/app/inspectorOverlayHelper.js.map +1 -0
  74. package/dist/app/rawRenderer.d.ts +5 -4
  75. package/dist/app/rawRenderer.d.ts.map +1 -1
  76. package/dist/app/rawRenderer.js +44 -8
  77. package/dist/app/rawRenderer.js.map +1 -1
  78. package/dist/app/runtimeBreadcrumbs.d.ts +114 -0
  79. package/dist/app/runtimeBreadcrumbs.d.ts.map +1 -0
  80. package/dist/app/runtimeBreadcrumbs.js +69 -0
  81. package/dist/app/runtimeBreadcrumbs.js.map +1 -0
  82. package/dist/app/types.d.ts +64 -0
  83. package/dist/app/types.d.ts.map +1 -0
  84. package/dist/app/types.js +2 -0
  85. package/dist/app/types.js.map +1 -0
  86. package/dist/app/widgetRenderer/animationTracks.d.ts +96 -0
  87. package/dist/app/widgetRenderer/animationTracks.d.ts.map +1 -0
  88. package/dist/app/widgetRenderer/animationTracks.js +346 -0
  89. package/dist/app/widgetRenderer/animationTracks.js.map +1 -0
  90. package/dist/app/widgetRenderer/commandPaletteRouting.d.ts +1 -1
  91. package/dist/app/widgetRenderer/commandPaletteRouting.d.ts.map +1 -1
  92. package/dist/app/widgetRenderer/commandPaletteRouting.js +5 -5
  93. package/dist/app/widgetRenderer/commandPaletteRouting.js.map +1 -1
  94. package/dist/app/widgetRenderer/constraintState.d.ts +98 -0
  95. package/dist/app/widgetRenderer/constraintState.d.ts.map +1 -0
  96. package/dist/app/widgetRenderer/constraintState.js +563 -0
  97. package/dist/app/widgetRenderer/constraintState.js.map +1 -0
  98. package/dist/app/widgetRenderer/cursorBreadcrumbs.d.ts +74 -0
  99. package/dist/app/widgetRenderer/cursorBreadcrumbs.d.ts.map +1 -0
  100. package/dist/app/widgetRenderer/cursorBreadcrumbs.js +273 -0
  101. package/dist/app/widgetRenderer/cursorBreadcrumbs.js.map +1 -0
  102. package/dist/app/widgetRenderer/damageTracking.d.ts +92 -0
  103. package/dist/app/widgetRenderer/damageTracking.d.ts.map +1 -0
  104. package/dist/app/widgetRenderer/damageTracking.js +513 -0
  105. package/dist/app/widgetRenderer/damageTracking.js.map +1 -0
  106. package/dist/app/widgetRenderer/devWarnings.d.ts +24 -0
  107. package/dist/app/widgetRenderer/devWarnings.d.ts.map +1 -0
  108. package/dist/app/widgetRenderer/devWarnings.js +86 -0
  109. package/dist/app/widgetRenderer/devWarnings.js.map +1 -0
  110. package/dist/app/widgetRenderer/fileNodeCache.d.ts +2 -0
  111. package/dist/app/widgetRenderer/fileNodeCache.d.ts.map +1 -1
  112. package/dist/app/widgetRenderer/fileNodeCache.js +31 -0
  113. package/dist/app/widgetRenderer/fileNodeCache.js.map +1 -1
  114. package/dist/app/widgetRenderer/filePickerRouting.d.ts +12 -1
  115. package/dist/app/widgetRenderer/filePickerRouting.d.ts.map +1 -1
  116. package/dist/app/widgetRenderer/filePickerRouting.js +77 -20
  117. package/dist/app/widgetRenderer/filePickerRouting.js.map +1 -1
  118. package/dist/app/widgetRenderer/focusState.d.ts +46 -0
  119. package/dist/app/widgetRenderer/focusState.d.ts.map +1 -0
  120. package/dist/app/widgetRenderer/focusState.js +122 -0
  121. package/dist/app/widgetRenderer/focusState.js.map +1 -0
  122. package/dist/app/widgetRenderer/inputEditing.d.ts +27 -0
  123. package/dist/app/widgetRenderer/inputEditing.d.ts.map +1 -0
  124. package/dist/app/widgetRenderer/inputEditing.js +146 -0
  125. package/dist/app/widgetRenderer/inputEditing.js.map +1 -0
  126. package/dist/app/widgetRenderer/keyboardRouting.d.ts +76 -0
  127. package/dist/app/widgetRenderer/keyboardRouting.d.ts.map +1 -0
  128. package/dist/app/widgetRenderer/keyboardRouting.js +595 -0
  129. package/dist/app/widgetRenderer/keyboardRouting.js.map +1 -0
  130. package/dist/app/widgetRenderer/mouseRouting.d.ts +256 -0
  131. package/dist/app/widgetRenderer/mouseRouting.d.ts.map +1 -0
  132. package/dist/app/widgetRenderer/mouseRouting.js +1283 -0
  133. package/dist/app/widgetRenderer/mouseRouting.js.map +1 -0
  134. package/dist/app/widgetRenderer/overlayShortcuts.d.ts +68 -0
  135. package/dist/app/widgetRenderer/overlayShortcuts.d.ts.map +1 -0
  136. package/dist/app/widgetRenderer/overlayShortcuts.js +167 -0
  137. package/dist/app/widgetRenderer/overlayShortcuts.js.map +1 -0
  138. package/dist/app/widgetRenderer/overlayState.d.ts +198 -0
  139. package/dist/app/widgetRenderer/overlayState.d.ts.map +1 -0
  140. package/dist/app/widgetRenderer/overlayState.js +590 -0
  141. package/dist/app/widgetRenderer/overlayState.js.map +1 -0
  142. package/dist/app/widgetRenderer/routeEngineEvent.d.ts +189 -0
  143. package/dist/app/widgetRenderer/routeEngineEvent.d.ts.map +1 -0
  144. package/dist/app/widgetRenderer/routeEngineEvent.js +527 -0
  145. package/dist/app/widgetRenderer/routeEngineEvent.js.map +1 -0
  146. package/dist/app/widgetRenderer/submitFramePipeline.d.ts +2 -2
  147. package/dist/app/widgetRenderer/submitFramePipeline.d.ts.map +1 -1
  148. package/dist/app/widgetRenderer/submitFramePipeline.js +496 -17
  149. package/dist/app/widgetRenderer/submitFramePipeline.js.map +1 -1
  150. package/dist/app/widgetRenderer/toolApprovalRouting.js +5 -5
  151. package/dist/app/widgetRenderer/toolApprovalRouting.js.map +1 -1
  152. package/dist/app/widgetRenderer.d.ts +216 -22
  153. package/dist/app/widgetRenderer.d.ts.map +1 -1
  154. package/dist/app/widgetRenderer.js +2139 -2373
  155. package/dist/app/widgetRenderer.js.map +1 -1
  156. package/dist/backend.d.ts +52 -2
  157. package/dist/backend.d.ts.map +1 -1
  158. package/dist/backend.js +31 -0
  159. package/dist/backend.js.map +1 -1
  160. package/dist/constraints/expr.d.ts +9 -0
  161. package/dist/constraints/expr.d.ts.map +1 -0
  162. package/dist/constraints/expr.js +134 -0
  163. package/dist/constraints/expr.js.map +1 -0
  164. package/dist/constraints/graph.d.ts +62 -0
  165. package/dist/constraints/graph.d.ts.map +1 -0
  166. package/dist/constraints/graph.js +359 -0
  167. package/dist/constraints/graph.js.map +1 -0
  168. package/dist/constraints/helpers.d.ts +191 -0
  169. package/dist/constraints/helpers.d.ts.map +1 -0
  170. package/dist/constraints/helpers.js +483 -0
  171. package/dist/constraints/helpers.js.map +1 -0
  172. package/dist/constraints/parser.d.ts +19 -0
  173. package/dist/constraints/parser.d.ts.map +1 -0
  174. package/dist/constraints/parser.js +522 -0
  175. package/dist/constraints/parser.js.map +1 -0
  176. package/dist/constraints/resolver.d.ts +70 -0
  177. package/dist/constraints/resolver.d.ts.map +1 -0
  178. package/dist/constraints/resolver.js +444 -0
  179. package/dist/constraints/resolver.js.map +1 -0
  180. package/dist/constraints/types.d.ts +65 -0
  181. package/dist/constraints/types.d.ts.map +1 -0
  182. package/dist/constraints/types.js +7 -0
  183. package/dist/constraints/types.js.map +1 -0
  184. package/dist/debug/constants.d.ts +16 -0
  185. package/dist/debug/constants.d.ts.map +1 -1
  186. package/dist/debug/constants.js +18 -0
  187. package/dist/debug/constants.js.map +1 -1
  188. package/dist/debug/debugController.d.ts +14 -1
  189. package/dist/debug/debugController.d.ts.map +1 -1
  190. package/dist/debug/debugController.js +247 -5
  191. package/dist/debug/debugController.js.map +1 -1
  192. package/dist/debug/describeThrown.d.ts +2 -0
  193. package/dist/debug/describeThrown.d.ts.map +1 -0
  194. package/dist/debug/describeThrown.js +11 -0
  195. package/dist/debug/describeThrown.js.map +1 -0
  196. package/dist/debug/index.d.ts +2 -2
  197. package/dist/debug/index.d.ts.map +1 -1
  198. package/dist/debug/index.js +1 -1
  199. package/dist/debug/index.js.map +1 -1
  200. package/dist/debug/types.d.ts +125 -0
  201. package/dist/debug/types.d.ts.map +1 -1
  202. package/dist/drawApi.d.ts +6 -6
  203. package/dist/drawApi.d.ts.map +1 -1
  204. package/dist/drawlist/builder.d.ts +5 -0
  205. package/dist/drawlist/builder.d.ts.map +1 -0
  206. package/dist/drawlist/builder.js +745 -0
  207. package/dist/drawlist/builder.js.map +1 -0
  208. package/dist/drawlist/builderBase.d.ts +132 -0
  209. package/dist/drawlist/builderBase.d.ts.map +1 -0
  210. package/dist/drawlist/builderBase.js +879 -0
  211. package/dist/drawlist/builderBase.js.map +1 -0
  212. package/dist/drawlist/index.d.ts +2 -3
  213. package/dist/drawlist/index.d.ts.map +1 -1
  214. package/dist/drawlist/index.js +1 -2
  215. package/dist/drawlist/index.js.map +1 -1
  216. package/dist/drawlist/textArena.d.ts +38 -0
  217. package/dist/drawlist/textArena.d.ts.map +1 -0
  218. package/dist/drawlist/textArena.js +101 -0
  219. package/dist/drawlist/textArena.js.map +1 -0
  220. package/dist/drawlist/types.d.ts +40 -103
  221. package/dist/drawlist/types.d.ts.map +1 -1
  222. package/dist/drawlist/types.js +0 -9
  223. package/dist/drawlist/types.js.map +1 -1
  224. package/dist/drawlist/writers.gen.d.ts +30 -0
  225. package/dist/drawlist/writers.gen.d.ts.map +1 -0
  226. package/dist/drawlist/writers.gen.js +240 -0
  227. package/dist/drawlist/writers.gen.js.map +1 -0
  228. package/dist/events.d.ts +2 -14
  229. package/dist/events.d.ts.map +1 -1
  230. package/dist/forms/bind.d.ts +6 -6
  231. package/dist/forms/bind.d.ts.map +1 -1
  232. package/dist/forms/bind.js +61 -5
  233. package/dist/forms/bind.js.map +1 -1
  234. package/dist/forms/index.d.ts +1 -1
  235. package/dist/forms/index.d.ts.map +1 -1
  236. package/dist/forms/index.js.map +1 -1
  237. package/dist/forms/internal/arrayState.d.ts +35 -0
  238. package/dist/forms/internal/arrayState.d.ts.map +1 -0
  239. package/dist/forms/internal/arrayState.js +238 -0
  240. package/dist/forms/internal/arrayState.js.map +1 -0
  241. package/dist/forms/internal/bindings.d.ts +46 -0
  242. package/dist/forms/internal/bindings.d.ts.map +1 -0
  243. package/dist/forms/internal/bindings.js +161 -0
  244. package/dist/forms/internal/bindings.js.map +1 -0
  245. package/dist/forms/internal/dev.d.ts +4 -0
  246. package/dist/forms/internal/dev.d.ts.map +1 -0
  247. package/dist/forms/internal/dev.js +21 -0
  248. package/dist/forms/internal/dev.js.map +1 -0
  249. package/dist/forms/internal/state.d.ts +52 -0
  250. package/dist/forms/internal/state.d.ts.map +1 -0
  251. package/dist/forms/internal/state.js +240 -0
  252. package/dist/forms/internal/state.js.map +1 -0
  253. package/dist/forms/internal/submit.d.ts +43 -0
  254. package/dist/forms/internal/submit.d.ts.map +1 -0
  255. package/dist/forms/internal/submit.js +165 -0
  256. package/dist/forms/internal/submit.js.map +1 -0
  257. package/dist/forms/internal/wizard.d.ts +53 -0
  258. package/dist/forms/internal/wizard.d.ts.map +1 -0
  259. package/dist/forms/internal/wizard.js +311 -0
  260. package/dist/forms/internal/wizard.js.map +1 -0
  261. package/dist/forms/types.d.ts +170 -15
  262. package/dist/forms/types.d.ts.map +1 -1
  263. package/dist/forms/useForm.d.ts +2 -40
  264. package/dist/forms/useForm.d.ts.map +1 -1
  265. package/dist/forms/useForm.js +136 -267
  266. package/dist/forms/useForm.js.map +1 -1
  267. package/dist/forms/validation.d.ts +3 -2
  268. package/dist/forms/validation.d.ts.map +1 -1
  269. package/dist/forms/validation.js +24 -8
  270. package/dist/forms/validation.js.map +1 -1
  271. package/dist/icons/index.d.ts +1 -0
  272. package/dist/icons/index.d.ts.map +1 -1
  273. package/dist/icons/index.js +1 -0
  274. package/dist/icons/index.js.map +1 -1
  275. package/dist/icons/resolveGlyph.d.ts +23 -0
  276. package/dist/icons/resolveGlyph.d.ts.map +1 -0
  277. package/dist/icons/resolveGlyph.js +92 -0
  278. package/dist/icons/resolveGlyph.js.map +1 -0
  279. package/dist/index.d.ts +61 -132
  280. package/dist/index.d.ts.map +1 -1
  281. package/dist/index.js +65 -26
  282. package/dist/index.js.map +1 -1
  283. package/dist/keybindings/index.d.ts +2 -2
  284. package/dist/keybindings/index.d.ts.map +1 -1
  285. package/dist/keybindings/index.js +1 -1
  286. package/dist/keybindings/index.js.map +1 -1
  287. package/dist/keybindings/manager.d.ts +32 -3
  288. package/dist/keybindings/manager.d.ts.map +1 -1
  289. package/dist/keybindings/manager.js +183 -25
  290. package/dist/keybindings/manager.js.map +1 -1
  291. package/dist/keybindings/parser.d.ts.map +1 -1
  292. package/dist/keybindings/parser.js +45 -5
  293. package/dist/keybindings/parser.js.map +1 -1
  294. package/dist/keybindings/types.d.ts +2 -0
  295. package/dist/keybindings/types.d.ts.map +1 -1
  296. package/dist/layout/constraints.d.ts +54 -5
  297. package/dist/layout/constraints.d.ts.map +1 -1
  298. package/dist/layout/constraints.js +194 -15
  299. package/dist/layout/constraints.js.map +1 -1
  300. package/dist/layout/dropdownGeometry.d.ts +15 -0
  301. package/dist/layout/dropdownGeometry.d.ts.map +1 -0
  302. package/dist/layout/dropdownGeometry.js +79 -0
  303. package/dist/layout/dropdownGeometry.js.map +1 -0
  304. package/dist/layout/engine/dirtySet.d.ts +9 -0
  305. package/dist/layout/engine/dirtySet.d.ts.map +1 -0
  306. package/dist/layout/engine/dirtySet.js +67 -0
  307. package/dist/layout/engine/dirtySet.js.map +1 -0
  308. package/dist/layout/engine/distributeInteger.d.ts +9 -0
  309. package/dist/layout/engine/distributeInteger.d.ts.map +1 -0
  310. package/dist/layout/engine/distributeInteger.js +62 -0
  311. package/dist/layout/engine/distributeInteger.js.map +1 -0
  312. package/dist/layout/engine/flex.d.ts +14 -0
  313. package/dist/layout/engine/flex.d.ts.map +1 -1
  314. package/dist/layout/engine/flex.js +144 -1
  315. package/dist/layout/engine/flex.js.map +1 -1
  316. package/dist/layout/engine/guards.d.ts +11 -5
  317. package/dist/layout/engine/guards.d.ts.map +1 -1
  318. package/dist/layout/engine/guards.js +29 -14
  319. package/dist/layout/engine/guards.js.map +1 -1
  320. package/dist/layout/engine/intrinsic.d.ts +8 -0
  321. package/dist/layout/engine/intrinsic.d.ts.map +1 -0
  322. package/dist/layout/engine/intrinsic.js +391 -0
  323. package/dist/layout/engine/intrinsic.js.map +1 -0
  324. package/dist/layout/engine/layoutEngine.d.ts +13 -2
  325. package/dist/layout/engine/layoutEngine.d.ts.map +1 -1
  326. package/dist/layout/engine/layoutEngine.js +653 -28
  327. package/dist/layout/engine/layoutEngine.js.map +1 -1
  328. package/dist/layout/engine/layoutTree.d.ts +1 -1
  329. package/dist/layout/engine/layoutTree.d.ts.map +1 -1
  330. package/dist/layout/engine/pool.d.ts.map +1 -1
  331. package/dist/layout/engine/pool.js +8 -2
  332. package/dist/layout/engine/pool.js.map +1 -1
  333. package/dist/layout/engine/types.d.ts +4 -1
  334. package/dist/layout/engine/types.d.ts.map +1 -1
  335. package/dist/layout/hitTest.d.ts +14 -4
  336. package/dist/layout/hitTest.d.ts.map +1 -1
  337. package/dist/layout/hitTest.js +210 -66
  338. package/dist/layout/hitTest.js.map +1 -1
  339. package/dist/layout/kinds/box.d.ts +3 -3
  340. package/dist/layout/kinds/box.d.ts.map +1 -1
  341. package/dist/layout/kinds/box.js +102 -5
  342. package/dist/layout/kinds/box.js.map +1 -1
  343. package/dist/layout/kinds/collections.d.ts +1 -1
  344. package/dist/layout/kinds/collections.d.ts.map +1 -1
  345. package/dist/layout/kinds/collections.js +58 -8
  346. package/dist/layout/kinds/collections.js.map +1 -1
  347. package/dist/layout/kinds/grid.d.ts +10 -0
  348. package/dist/layout/kinds/grid.d.ts.map +1 -0
  349. package/dist/layout/kinds/grid.js +564 -0
  350. package/dist/layout/kinds/grid.js.map +1 -0
  351. package/dist/layout/kinds/leaf.d.ts +1 -1
  352. package/dist/layout/kinds/leaf.d.ts.map +1 -1
  353. package/dist/layout/kinds/leaf.js +188 -46
  354. package/dist/layout/kinds/leaf.js.map +1 -1
  355. package/dist/layout/kinds/navigation.d.ts +10 -0
  356. package/dist/layout/kinds/navigation.d.ts.map +1 -0
  357. package/dist/layout/kinds/navigation.js +59 -0
  358. package/dist/layout/kinds/navigation.js.map +1 -0
  359. package/dist/layout/kinds/overlays.d.ts +2 -2
  360. package/dist/layout/kinds/overlays.d.ts.map +1 -1
  361. package/dist/layout/kinds/overlays.js +113 -30
  362. package/dist/layout/kinds/overlays.js.map +1 -1
  363. package/dist/layout/kinds/splitPane.d.ts +1 -1
  364. package/dist/layout/kinds/splitPane.d.ts.map +1 -1
  365. package/dist/layout/kinds/splitPane.js.map +1 -1
  366. package/dist/layout/kinds/stack.d.ts +2 -4
  367. package/dist/layout/kinds/stack.d.ts.map +1 -1
  368. package/dist/layout/kinds/stack.js +26 -796
  369. package/dist/layout/kinds/stack.js.map +1 -1
  370. package/dist/layout/kinds/stackParts/axis.d.ts +32 -0
  371. package/dist/layout/kinds/stackParts/axis.d.ts.map +1 -0
  372. package/dist/layout/kinds/stackParts/axis.js +61 -0
  373. package/dist/layout/kinds/stackParts/axis.js.map +1 -0
  374. package/dist/layout/kinds/stackParts/constraintPlan.d.ts +18 -0
  375. package/dist/layout/kinds/stackParts/constraintPlan.d.ts.map +1 -0
  376. package/dist/layout/kinds/stackParts/constraintPlan.js +434 -0
  377. package/dist/layout/kinds/stackParts/constraintPlan.js.map +1 -0
  378. package/dist/layout/kinds/stackParts/layout.d.ts +6 -0
  379. package/dist/layout/kinds/stackParts/layout.d.ts.map +1 -0
  380. package/dist/layout/kinds/stackParts/layout.js +376 -0
  381. package/dist/layout/kinds/stackParts/layout.js.map +1 -0
  382. package/dist/layout/kinds/stackParts/measure.d.ts +6 -0
  383. package/dist/layout/kinds/stackParts/measure.d.ts.map +1 -0
  384. package/dist/layout/kinds/stackParts/measure.js +212 -0
  385. package/dist/layout/kinds/stackParts/measure.js.map +1 -0
  386. package/dist/layout/kinds/stackParts/shared.d.ts +31 -0
  387. package/dist/layout/kinds/stackParts/shared.d.ts.map +1 -0
  388. package/dist/layout/kinds/stackParts/shared.js +94 -0
  389. package/dist/layout/kinds/stackParts/shared.js.map +1 -0
  390. package/dist/layout/kinds/stackParts/wrap.d.ts +26 -0
  391. package/dist/layout/kinds/stackParts/wrap.d.ts.map +1 -0
  392. package/dist/layout/kinds/stackParts/wrap.js +374 -0
  393. package/dist/layout/kinds/stackParts/wrap.js.map +1 -0
  394. package/dist/layout/responsive.d.ts +33 -0
  395. package/dist/layout/responsive.d.ts.map +1 -0
  396. package/dist/layout/responsive.js +145 -0
  397. package/dist/layout/responsive.js.map +1 -0
  398. package/dist/layout/spacing-scale.d.ts +4 -1
  399. package/dist/layout/spacing-scale.d.ts.map +1 -1
  400. package/dist/layout/spacing-scale.js +15 -8
  401. package/dist/layout/spacing-scale.js.map +1 -1
  402. package/dist/layout/textMeasure.d.ts +48 -2
  403. package/dist/layout/textMeasure.d.ts.map +1 -1
  404. package/dist/layout/textMeasure.js +313 -73
  405. package/dist/layout/textMeasure.js.map +1 -1
  406. package/dist/layout/types.d.ts +42 -7
  407. package/dist/layout/types.d.ts.map +1 -1
  408. package/dist/layout/types.js +0 -8
  409. package/dist/layout/types.js.map +1 -1
  410. package/dist/layout/validate/interactive.d.ts +106 -0
  411. package/dist/layout/validate/interactive.d.ts.map +1 -0
  412. package/dist/layout/validate/interactive.js +430 -0
  413. package/dist/layout/validate/interactive.js.map +1 -0
  414. package/dist/layout/validate/layoutConstraints.d.ts +51 -0
  415. package/dist/layout/validate/layoutConstraints.d.ts.map +1 -0
  416. package/dist/layout/validate/layoutConstraints.js +100 -0
  417. package/dist/layout/validate/layoutConstraints.js.map +1 -0
  418. package/dist/layout/validate/primitives.d.ts +31 -0
  419. package/dist/layout/validate/primitives.d.ts.map +1 -0
  420. package/dist/layout/validate/primitives.js +299 -0
  421. package/dist/layout/validate/primitives.js.map +1 -0
  422. package/dist/layout/validate/shared.d.ts +23 -0
  423. package/dist/layout/validate/shared.d.ts.map +1 -0
  424. package/dist/layout/validate/shared.js +32 -0
  425. package/dist/layout/validate/shared.js.map +1 -0
  426. package/dist/layout/validate/spacing.d.ts +21 -0
  427. package/dist/layout/validate/spacing.d.ts.map +1 -0
  428. package/dist/layout/validate/spacing.js +33 -0
  429. package/dist/layout/validate/spacing.js.map +1 -0
  430. package/dist/layout/validateProps.d.ts +7 -88
  431. package/dist/layout/validateProps.d.ts.map +1 -1
  432. package/dist/layout/validateProps.js +3 -329
  433. package/dist/layout/validateProps.js.map +1 -1
  434. package/dist/perf/frameAudit.d.ts +27 -0
  435. package/dist/perf/frameAudit.d.ts.map +1 -0
  436. package/dist/perf/frameAudit.js +152 -0
  437. package/dist/perf/frameAudit.js.map +1 -0
  438. package/dist/perf/perf.d.ts +3 -0
  439. package/dist/perf/perf.d.ts.map +1 -1
  440. package/dist/perf/perf.js +17 -7
  441. package/dist/perf/perf.js.map +1 -1
  442. package/dist/pipeline.d.ts +21 -0
  443. package/dist/pipeline.d.ts.map +1 -0
  444. package/dist/pipeline.js +25 -0
  445. package/dist/pipeline.js.map +1 -0
  446. package/dist/protocol/mouseKinds.d.ts +6 -0
  447. package/dist/protocol/mouseKinds.d.ts.map +1 -0
  448. package/dist/protocol/mouseKinds.js +6 -0
  449. package/dist/protocol/mouseKinds.js.map +1 -0
  450. package/dist/protocol/types.d.ts +1 -1
  451. package/dist/renderer/renderToDrawlist/boxBorder.d.ts +15 -8
  452. package/dist/renderer/renderToDrawlist/boxBorder.d.ts.map +1 -1
  453. package/dist/renderer/renderToDrawlist/boxBorder.js +84 -21
  454. package/dist/renderer/renderToDrawlist/boxBorder.js.map +1 -1
  455. package/dist/renderer/renderToDrawlist/damageBounds.d.ts +4 -0
  456. package/dist/renderer/renderToDrawlist/damageBounds.d.ts.map +1 -0
  457. package/dist/renderer/renderToDrawlist/damageBounds.js +28 -0
  458. package/dist/renderer/renderToDrawlist/damageBounds.js.map +1 -0
  459. package/dist/renderer/renderToDrawlist/renderPackets.d.ts +43 -0
  460. package/dist/renderer/renderToDrawlist/renderPackets.d.ts.map +1 -0
  461. package/dist/renderer/renderToDrawlist/renderPackets.js +574 -0
  462. package/dist/renderer/renderToDrawlist/renderPackets.js.map +1 -0
  463. package/dist/renderer/renderToDrawlist/renderTree.d.ts +6 -3
  464. package/dist/renderer/renderToDrawlist/renderTree.d.ts.map +1 -1
  465. package/dist/renderer/renderToDrawlist/renderTree.js +149 -11
  466. package/dist/renderer/renderToDrawlist/renderTree.js.map +1 -1
  467. package/dist/renderer/renderToDrawlist/simpleVNode.d.ts +7 -2
  468. package/dist/renderer/renderToDrawlist/simpleVNode.d.ts.map +1 -1
  469. package/dist/renderer/renderToDrawlist/simpleVNode.js +178 -95
  470. package/dist/renderer/renderToDrawlist/simpleVNode.js.map +1 -1
  471. package/dist/renderer/renderToDrawlist/spacing.d.ts.map +1 -1
  472. package/dist/renderer/renderToDrawlist/spacing.js +12 -8
  473. package/dist/renderer/renderToDrawlist/spacing.js.map +1 -1
  474. package/dist/renderer/renderToDrawlist/textStyle.d.ts +7 -2
  475. package/dist/renderer/renderToDrawlist/textStyle.d.ts.map +1 -1
  476. package/dist/renderer/renderToDrawlist/textStyle.js +155 -44
  477. package/dist/renderer/renderToDrawlist/textStyle.js.map +1 -1
  478. package/dist/renderer/renderToDrawlist/themeTokens.d.ts +14 -0
  479. package/dist/renderer/renderToDrawlist/themeTokens.d.ts.map +1 -0
  480. package/dist/renderer/renderToDrawlist/themeTokens.js +34 -0
  481. package/dist/renderer/renderToDrawlist/themeTokens.js.map +1 -0
  482. package/dist/renderer/renderToDrawlist/types.d.ts +18 -4
  483. package/dist/renderer/renderToDrawlist/types.d.ts.map +1 -1
  484. package/dist/renderer/renderToDrawlist/widgets/basic.d.ts +4 -4
  485. package/dist/renderer/renderToDrawlist/widgets/basic.d.ts.map +1 -1
  486. package/dist/renderer/renderToDrawlist/widgets/basic.js +70 -1167
  487. package/dist/renderer/renderToDrawlist/widgets/basic.js.map +1 -1
  488. package/dist/renderer/renderToDrawlist/widgets/collections.d.ts +3 -2
  489. package/dist/renderer/renderToDrawlist/widgets/collections.d.ts.map +1 -1
  490. package/dist/renderer/renderToDrawlist/widgets/collections.js +403 -47
  491. package/dist/renderer/renderToDrawlist/widgets/collections.js.map +1 -1
  492. package/dist/renderer/renderToDrawlist/widgets/containers.d.ts +3 -3
  493. package/dist/renderer/renderToDrawlist/widgets/containers.d.ts.map +1 -1
  494. package/dist/renderer/renderToDrawlist/widgets/containers.js +460 -104
  495. package/dist/renderer/renderToDrawlist/widgets/containers.js.map +1 -1
  496. package/dist/renderer/renderToDrawlist/widgets/editors.d.ts +2 -2
  497. package/dist/renderer/renderToDrawlist/widgets/editors.d.ts.map +1 -1
  498. package/dist/renderer/renderToDrawlist/widgets/editors.js +400 -107
  499. package/dist/renderer/renderToDrawlist/widgets/editors.js.map +1 -1
  500. package/dist/renderer/renderToDrawlist/widgets/files.d.ts +3 -2
  501. package/dist/renderer/renderToDrawlist/widgets/files.d.ts.map +1 -1
  502. package/dist/renderer/renderToDrawlist/widgets/files.js +82 -24
  503. package/dist/renderer/renderToDrawlist/widgets/files.js.map +1 -1
  504. package/dist/renderer/renderToDrawlist/widgets/focusConfig.d.ts +15 -0
  505. package/dist/renderer/renderToDrawlist/widgets/focusConfig.d.ts.map +1 -0
  506. package/dist/renderer/renderToDrawlist/widgets/focusConfig.js +78 -0
  507. package/dist/renderer/renderToDrawlist/widgets/focusConfig.js.map +1 -0
  508. package/dist/renderer/renderToDrawlist/widgets/navigation.d.ts +10 -0
  509. package/dist/renderer/renderToDrawlist/widgets/navigation.d.ts.map +1 -0
  510. package/dist/renderer/renderToDrawlist/widgets/navigation.js +185 -0
  511. package/dist/renderer/renderToDrawlist/widgets/navigation.js.map +1 -0
  512. package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts +3 -3
  513. package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts.map +1 -1
  514. package/dist/renderer/renderToDrawlist/widgets/overlays.js +264 -90
  515. package/dist/renderer/renderToDrawlist/widgets/overlays.js.map +1 -1
  516. package/dist/renderer/renderToDrawlist/widgets/renderCanvasWidgets.d.ts +14 -0
  517. package/dist/renderer/renderToDrawlist/widgets/renderCanvasWidgets.d.ts.map +1 -0
  518. package/dist/renderer/renderToDrawlist/widgets/renderCanvasWidgets.js +318 -0
  519. package/dist/renderer/renderToDrawlist/widgets/renderCanvasWidgets.js.map +1 -0
  520. package/dist/renderer/renderToDrawlist/widgets/renderChartWidgets.d.ts +9 -0
  521. package/dist/renderer/renderToDrawlist/widgets/renderChartWidgets.d.ts.map +1 -0
  522. package/dist/renderer/renderToDrawlist/widgets/renderChartWidgets.js +519 -0
  523. package/dist/renderer/renderToDrawlist/widgets/renderChartWidgets.js.map +1 -0
  524. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.d.ts +18 -0
  525. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.d.ts.map +1 -0
  526. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.js +939 -0
  527. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.js.map +1 -0
  528. package/dist/renderer/renderToDrawlist/widgets/renderIndicatorWidgets.d.ts +9 -0
  529. package/dist/renderer/renderToDrawlist/widgets/renderIndicatorWidgets.d.ts.map +1 -0
  530. package/dist/renderer/renderToDrawlist/widgets/renderIndicatorWidgets.js +565 -0
  531. package/dist/renderer/renderToDrawlist/widgets/renderIndicatorWidgets.js.map +1 -0
  532. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.d.ts +32 -0
  533. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.d.ts.map +1 -0
  534. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.js +893 -0
  535. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.js.map +1 -0
  536. package/dist/renderer/renderToDrawlist.d.ts +1 -9
  537. package/dist/renderer/renderToDrawlist.d.ts.map +1 -1
  538. package/dist/renderer/renderToDrawlist.js +5 -19
  539. package/dist/renderer/renderToDrawlist.js.map +1 -1
  540. package/dist/renderer/shadow.d.ts +19 -5
  541. package/dist/renderer/shadow.d.ts.map +1 -1
  542. package/dist/renderer/shadow.js +53 -4
  543. package/dist/renderer/shadow.js.map +1 -1
  544. package/dist/renderer/styles.d.ts +3 -12
  545. package/dist/renderer/styles.d.ts.map +1 -1
  546. package/dist/renderer/styles.js +27 -18
  547. package/dist/renderer/styles.js.map +1 -1
  548. package/dist/repro/constants.d.ts +23 -0
  549. package/dist/repro/constants.d.ts.map +1 -0
  550. package/dist/repro/constants.js +23 -0
  551. package/dist/repro/constants.js.map +1 -0
  552. package/dist/repro/index.d.ts +10 -0
  553. package/dist/repro/index.d.ts.map +1 -0
  554. package/dist/repro/index.js +8 -0
  555. package/dist/repro/index.js.map +1 -0
  556. package/dist/repro/replay.d.ts +126 -0
  557. package/dist/repro/replay.d.ts.map +1 -0
  558. package/dist/repro/replay.js +612 -0
  559. package/dist/repro/replay.js.map +1 -0
  560. package/dist/repro/schema.d.ts +21 -0
  561. package/dist/repro/schema.d.ts.map +1 -0
  562. package/dist/repro/schema.js +750 -0
  563. package/dist/repro/schema.js.map +1 -0
  564. package/dist/repro/stable.d.ts +19 -0
  565. package/dist/repro/stable.d.ts.map +1 -0
  566. package/dist/repro/stable.js +53 -0
  567. package/dist/repro/stable.js.map +1 -0
  568. package/dist/repro/types.d.ts +141 -0
  569. package/dist/repro/types.d.ts.map +1 -0
  570. package/dist/repro/types.js +8 -0
  571. package/dist/repro/types.js.map +1 -0
  572. package/dist/router/helpers.d.ts +47 -0
  573. package/dist/router/helpers.d.ts.map +1 -0
  574. package/dist/router/helpers.js +108 -0
  575. package/dist/router/helpers.js.map +1 -0
  576. package/dist/router/index.d.ts +6 -0
  577. package/dist/router/index.d.ts.map +1 -0
  578. package/dist/router/index.js +5 -0
  579. package/dist/router/index.js.map +1 -0
  580. package/dist/router/integration.d.ts +31 -0
  581. package/dist/router/integration.d.ts.map +1 -0
  582. package/dist/router/integration.js +256 -0
  583. package/dist/router/integration.js.map +1 -0
  584. package/dist/router/keybindings.d.ts +25 -0
  585. package/dist/router/keybindings.d.ts.map +1 -0
  586. package/dist/router/keybindings.js +53 -0
  587. package/dist/router/keybindings.js.map +1 -0
  588. package/dist/router/router.d.ts +66 -0
  589. package/dist/router/router.d.ts.map +1 -0
  590. package/dist/router/router.js +249 -0
  591. package/dist/router/router.js.map +1 -0
  592. package/dist/router/types.d.ts +114 -0
  593. package/dist/router/types.d.ts.map +1 -0
  594. package/dist/router/types.js +2 -0
  595. package/dist/router/types.js.map +1 -0
  596. package/dist/runtime/commit/composite.d.ts +11 -0
  597. package/dist/runtime/commit/composite.d.ts.map +1 -0
  598. package/dist/runtime/commit/composite.js +238 -0
  599. package/dist/runtime/commit/composite.js.map +1 -0
  600. package/dist/runtime/commit/container.d.ts +7 -0
  601. package/dist/runtime/commit/container.d.ts.map +1 -0
  602. package/dist/runtime/commit/container.js +350 -0
  603. package/dist/runtime/commit/container.js.map +1 -0
  604. package/dist/runtime/commit/equality.d.ts +20 -0
  605. package/dist/runtime/commit/equality.d.ts.map +1 -0
  606. package/dist/runtime/commit/equality.js +436 -0
  607. package/dist/runtime/commit/equality.js.map +1 -0
  608. package/dist/runtime/commit/errorBoundary.d.ts +7 -0
  609. package/dist/runtime/commit/errorBoundary.d.ts.map +1 -0
  610. package/dist/runtime/commit/errorBoundary.js +53 -0
  611. package/dist/runtime/commit/errorBoundary.js.map +1 -0
  612. package/dist/runtime/commit/shared.d.ts +138 -0
  613. package/dist/runtime/commit/shared.d.ts.map +1 -0
  614. package/dist/runtime/commit/shared.js +11 -0
  615. package/dist/runtime/commit/shared.js.map +1 -0
  616. package/dist/runtime/commit/transitions.d.ts +9 -0
  617. package/dist/runtime/commit/transitions.d.ts.map +1 -0
  618. package/dist/runtime/commit/transitions.js +93 -0
  619. package/dist/runtime/commit/transitions.js.map +1 -0
  620. package/dist/runtime/commit/validation.d.ts +16 -0
  621. package/dist/runtime/commit/validation.d.ts.map +1 -0
  622. package/dist/runtime/commit/validation.js +157 -0
  623. package/dist/runtime/commit/validation.js.map +1 -0
  624. package/dist/runtime/commit.d.ts +7 -53
  625. package/dist/runtime/commit.d.ts.map +1 -1
  626. package/dist/runtime/commit.js +148 -548
  627. package/dist/runtime/commit.js.map +1 -1
  628. package/dist/runtime/focus.d.ts +6 -3
  629. package/dist/runtime/focus.d.ts.map +1 -1
  630. package/dist/runtime/focus.js +168 -121
  631. package/dist/runtime/focus.js.map +1 -1
  632. package/dist/runtime/idCodec.d.ts +26 -0
  633. package/dist/runtime/idCodec.d.ts.map +1 -0
  634. package/dist/runtime/idCodec.js +56 -0
  635. package/dist/runtime/idCodec.js.map +1 -0
  636. package/dist/runtime/inputEditor.d.ts +37 -3
  637. package/dist/runtime/inputEditor.d.ts.map +1 -1
  638. package/dist/runtime/inputEditor.js +497 -73
  639. package/dist/runtime/inputEditor.js.map +1 -1
  640. package/dist/runtime/instances.d.ts +51 -0
  641. package/dist/runtime/instances.d.ts.map +1 -1
  642. package/dist/runtime/instances.js +179 -13
  643. package/dist/runtime/instances.js.map +1 -1
  644. package/dist/runtime/layers.d.ts +3 -1
  645. package/dist/runtime/layers.d.ts.map +1 -1
  646. package/dist/runtime/layers.js +33 -8
  647. package/dist/runtime/layers.js.map +1 -1
  648. package/dist/runtime/localState.d.ts +19 -0
  649. package/dist/runtime/localState.d.ts.map +1 -1
  650. package/dist/runtime/localState.js +107 -5
  651. package/dist/runtime/localState.js.map +1 -1
  652. package/dist/runtime/reconcile.d.ts +6 -2
  653. package/dist/runtime/reconcile.d.ts.map +1 -1
  654. package/dist/runtime/reconcile.js +48 -73
  655. package/dist/runtime/reconcile.js.map +1 -1
  656. package/dist/runtime/renderPacket.d.ts +65 -0
  657. package/dist/runtime/renderPacket.d.ts.map +1 -0
  658. package/dist/runtime/renderPacket.js +2 -0
  659. package/dist/runtime/renderPacket.js.map +1 -0
  660. package/dist/runtime/router/dropdown.d.ts.map +1 -1
  661. package/dist/runtime/router/dropdown.js +49 -26
  662. package/dist/runtime/router/dropdown.js.map +1 -1
  663. package/dist/runtime/router/layer.d.ts +1 -1
  664. package/dist/runtime/router/layer.d.ts.map +1 -1
  665. package/dist/runtime/router/layer.js +33 -25
  666. package/dist/runtime/router/layer.js.map +1 -1
  667. package/dist/runtime/router/mouse.d.ts.map +1 -1
  668. package/dist/runtime/router/mouse.js +3 -5
  669. package/dist/runtime/router/mouse.js.map +1 -1
  670. package/dist/runtime/router/pagination.d.ts +19 -0
  671. package/dist/runtime/router/pagination.d.ts.map +1 -0
  672. package/dist/runtime/router/pagination.js +115 -0
  673. package/dist/runtime/router/pagination.js.map +1 -0
  674. package/dist/runtime/router/table.d.ts.map +1 -1
  675. package/dist/runtime/router/table.js +44 -25
  676. package/dist/runtime/router/table.js.map +1 -1
  677. package/dist/runtime/router/tabs.d.ts +20 -0
  678. package/dist/runtime/router/tabs.d.ts.map +1 -0
  679. package/dist/runtime/router/tabs.js +92 -0
  680. package/dist/runtime/router/tabs.js.map +1 -0
  681. package/dist/runtime/router/types.d.ts +38 -2
  682. package/dist/runtime/router/types.d.ts.map +1 -1
  683. package/dist/runtime/router/virtualList.d.ts.map +1 -1
  684. package/dist/runtime/router/virtualList.js +44 -31
  685. package/dist/runtime/router/virtualList.js.map +1 -1
  686. package/dist/runtime/router/wheel.d.ts +15 -0
  687. package/dist/runtime/router/wheel.d.ts.map +1 -0
  688. package/dist/runtime/router/wheel.js +16 -0
  689. package/dist/runtime/router/wheel.js.map +1 -0
  690. package/dist/runtime/router/zones.d.ts.map +1 -1
  691. package/dist/runtime/router/zones.js +42 -2
  692. package/dist/runtime/router/zones.js.map +1 -1
  693. package/dist/runtime/router.d.ts +3 -0
  694. package/dist/runtime/router.d.ts.map +1 -1
  695. package/dist/runtime/router.js +3 -0
  696. package/dist/runtime/router.js.map +1 -1
  697. package/dist/runtime/widgetMeta/collector.d.ts +77 -0
  698. package/dist/runtime/widgetMeta/collector.d.ts.map +1 -0
  699. package/dist/runtime/widgetMeta/collector.js +293 -0
  700. package/dist/runtime/widgetMeta/collector.js.map +1 -0
  701. package/dist/runtime/widgetMeta/focusContainers.d.ts +44 -0
  702. package/dist/runtime/widgetMeta/focusContainers.d.ts.map +1 -0
  703. package/dist/runtime/widgetMeta/focusContainers.js +190 -0
  704. package/dist/runtime/widgetMeta/focusContainers.js.map +1 -0
  705. package/dist/runtime/widgetMeta/focusInfo.d.ts +19 -0
  706. package/dist/runtime/widgetMeta/focusInfo.d.ts.map +1 -0
  707. package/dist/runtime/widgetMeta/focusInfo.js +172 -0
  708. package/dist/runtime/widgetMeta/focusInfo.js.map +1 -0
  709. package/dist/runtime/widgetMeta/helpers.d.ts +47 -0
  710. package/dist/runtime/widgetMeta/helpers.d.ts.map +1 -0
  711. package/dist/runtime/widgetMeta/helpers.js +182 -0
  712. package/dist/runtime/widgetMeta/helpers.js.map +1 -0
  713. package/dist/runtime/widgetMeta.d.ts +12 -155
  714. package/dist/runtime/widgetMeta.d.ts.map +1 -1
  715. package/dist/runtime/widgetMeta.js +6 -614
  716. package/dist/runtime/widgetMeta.js.map +1 -1
  717. package/dist/terminalCaps.d.ts +8 -2
  718. package/dist/terminalCaps.d.ts.map +1 -1
  719. package/dist/terminalCaps.js +5 -3
  720. package/dist/terminalCaps.js.map +1 -1
  721. package/dist/terminalProfile.d.ts +16 -0
  722. package/dist/terminalProfile.d.ts.map +1 -0
  723. package/dist/terminalProfile.js +36 -0
  724. package/dist/terminalProfile.js.map +1 -0
  725. package/dist/testing/events.d.ts +168 -0
  726. package/dist/testing/events.d.ts.map +1 -0
  727. package/dist/testing/events.js +446 -0
  728. package/dist/testing/events.js.map +1 -0
  729. package/dist/testing/index.d.ts +5 -0
  730. package/dist/testing/index.d.ts.map +1 -0
  731. package/dist/testing/index.js +3 -0
  732. package/dist/testing/index.js.map +1 -0
  733. package/dist/testing/renderer.d.ts +128 -0
  734. package/dist/testing/renderer.d.ts.map +1 -0
  735. package/dist/testing/renderer.js +455 -0
  736. package/dist/testing/renderer.js.map +1 -0
  737. package/dist/testing/snapshot.d.ts +73 -0
  738. package/dist/testing/snapshot.d.ts.map +1 -0
  739. package/dist/testing/snapshot.js +138 -0
  740. package/dist/testing/snapshot.js.map +1 -0
  741. package/dist/theme/blend.d.ts +6 -0
  742. package/dist/theme/blend.d.ts.map +1 -0
  743. package/dist/theme/blend.js +12 -0
  744. package/dist/theme/blend.js.map +1 -0
  745. package/dist/theme/contrast.d.ts +13 -0
  746. package/dist/theme/contrast.d.ts.map +1 -0
  747. package/dist/theme/contrast.js +31 -0
  748. package/dist/theme/contrast.js.map +1 -0
  749. package/dist/theme/defaultTheme.d.ts +7 -6
  750. package/dist/theme/defaultTheme.d.ts.map +1 -1
  751. package/dist/theme/defaultTheme.js +4 -19
  752. package/dist/theme/defaultTheme.js.map +1 -1
  753. package/dist/theme/extend.d.ts +15 -0
  754. package/dist/theme/extend.d.ts.map +1 -0
  755. package/dist/theme/extend.js +81 -0
  756. package/dist/theme/extend.js.map +1 -0
  757. package/dist/theme/extract.d.ts +4 -0
  758. package/dist/theme/extract.d.ts.map +1 -0
  759. package/dist/theme/extract.js +4 -0
  760. package/dist/theme/extract.js.map +1 -0
  761. package/dist/theme/heatmapPalettes.d.ts +9 -0
  762. package/dist/theme/heatmapPalettes.d.ts.map +1 -0
  763. package/dist/theme/heatmapPalettes.js +43 -0
  764. package/dist/theme/heatmapPalettes.js.map +1 -0
  765. package/dist/theme/index.d.ts +4 -6
  766. package/dist/theme/index.d.ts.map +1 -1
  767. package/dist/theme/index.js +4 -10
  768. package/dist/theme/index.js.map +1 -1
  769. package/dist/theme/interop.d.ts +3 -10
  770. package/dist/theme/interop.d.ts.map +1 -1
  771. package/dist/theme/interop.js +19 -56
  772. package/dist/theme/interop.js.map +1 -1
  773. package/dist/theme/presets.d.ts +18 -0
  774. package/dist/theme/presets.d.ts.map +1 -1
  775. package/dist/theme/presets.js +37 -1
  776. package/dist/theme/presets.js.map +1 -1
  777. package/dist/theme/resolve.d.ts +8 -56
  778. package/dist/theme/resolve.d.ts.map +1 -1
  779. package/dist/theme/resolve.js +193 -136
  780. package/dist/theme/resolve.js.map +1 -1
  781. package/dist/theme/theme.d.ts +9 -28
  782. package/dist/theme/theme.d.ts.map +1 -1
  783. package/dist/theme/theme.js +220 -11
  784. package/dist/theme/theme.js.map +1 -1
  785. package/dist/theme/tokens.d.ts +152 -29
  786. package/dist/theme/tokens.d.ts.map +1 -1
  787. package/dist/theme/tokens.js +83 -4
  788. package/dist/theme/tokens.js.map +1 -1
  789. package/dist/theme/types.d.ts +24 -0
  790. package/dist/theme/types.d.ts.map +1 -0
  791. package/dist/theme/types.js +2 -0
  792. package/dist/theme/types.js.map +1 -0
  793. package/dist/theme/validate.d.ts +15 -0
  794. package/dist/theme/validate.d.ts.map +1 -0
  795. package/dist/theme/validate.js +165 -0
  796. package/dist/theme/validate.js.map +1 -0
  797. package/dist/ui/capabilities.d.ts +70 -0
  798. package/dist/ui/capabilities.d.ts.map +1 -0
  799. package/dist/ui/capabilities.js +94 -0
  800. package/dist/ui/capabilities.js.map +1 -0
  801. package/dist/ui/designTokens.d.ts +114 -0
  802. package/dist/ui/designTokens.d.ts.map +1 -0
  803. package/dist/ui/designTokens.js +144 -0
  804. package/dist/ui/designTokens.js.map +1 -0
  805. package/dist/ui/index.d.ts +11 -0
  806. package/dist/ui/index.d.ts.map +1 -0
  807. package/dist/ui/index.js +14 -0
  808. package/dist/ui/index.js.map +1 -0
  809. package/dist/ui/recipes.d.ts +403 -0
  810. package/dist/ui/recipes.d.ts.map +1 -0
  811. package/dist/ui/recipes.js +960 -0
  812. package/dist/ui/recipes.js.map +1 -0
  813. package/dist/ui.d.ts +4 -0
  814. package/dist/ui.d.ts.map +1 -0
  815. package/dist/ui.js +3 -0
  816. package/dist/ui.js.map +1 -0
  817. package/dist/widgets/accordion.d.ts +23 -0
  818. package/dist/widgets/accordion.d.ts.map +1 -0
  819. package/dist/widgets/accordion.js +134 -0
  820. package/dist/widgets/accordion.js.map +1 -0
  821. package/dist/widgets/breadcrumb.d.ts +27 -0
  822. package/dist/widgets/breadcrumb.d.ts.map +1 -0
  823. package/dist/widgets/breadcrumb.js +121 -0
  824. package/dist/widgets/breadcrumb.js.map +1 -0
  825. package/dist/widgets/canvas.d.ts +26 -0
  826. package/dist/widgets/canvas.d.ts.map +1 -0
  827. package/dist/widgets/canvas.js +391 -0
  828. package/dist/widgets/canvas.js.map +1 -0
  829. package/dist/widgets/codeEditor.d.ts.map +1 -1
  830. package/dist/widgets/codeEditor.js +47 -36
  831. package/dist/widgets/codeEditor.js.map +1 -1
  832. package/dist/widgets/codeEditorSyntax.d.ts +11 -0
  833. package/dist/widgets/codeEditorSyntax.d.ts.map +1 -0
  834. package/dist/widgets/codeEditorSyntax.js +960 -0
  835. package/dist/widgets/codeEditorSyntax.js.map +1 -0
  836. package/dist/widgets/collections.d.ts +6 -0
  837. package/dist/widgets/collections.d.ts.map +1 -1
  838. package/dist/widgets/collections.js +38 -35
  839. package/dist/widgets/collections.js.map +1 -1
  840. package/dist/widgets/commandPalette.d.ts +6 -26
  841. package/dist/widgets/commandPalette.d.ts.map +1 -1
  842. package/dist/widgets/commandPalette.js +35 -21
  843. package/dist/widgets/commandPalette.js.map +1 -1
  844. package/dist/widgets/composition.d.ts +40 -1
  845. package/dist/widgets/composition.d.ts.map +1 -1
  846. package/dist/widgets/composition.js +14 -3
  847. package/dist/widgets/composition.js.map +1 -1
  848. package/dist/widgets/dialogs/confirm.d.ts.map +1 -1
  849. package/dist/widgets/dialogs/confirm.js +8 -7
  850. package/dist/widgets/dialogs/confirm.js.map +1 -1
  851. package/dist/widgets/dialogs/dialog.d.ts +7 -0
  852. package/dist/widgets/dialogs/dialog.d.ts.map +1 -0
  853. package/dist/widgets/dialogs/dialog.js +8 -0
  854. package/dist/widgets/dialogs/dialog.js.map +1 -0
  855. package/dist/widgets/dialogs/index.d.ts +2 -1
  856. package/dist/widgets/dialogs/index.d.ts.map +1 -1
  857. package/dist/widgets/dialogs/index.js +1 -0
  858. package/dist/widgets/dialogs/index.js.map +1 -1
  859. package/dist/widgets/dialogs/types.d.ts +1 -0
  860. package/dist/widgets/dialogs/types.d.ts.map +1 -1
  861. package/dist/widgets/diffViewer.d.ts +9 -38
  862. package/dist/widgets/diffViewer.d.ts.map +1 -1
  863. package/dist/widgets/diffViewer.js +11 -9
  864. package/dist/widgets/diffViewer.js.map +1 -1
  865. package/dist/widgets/factories/advanced.d.ts +20 -0
  866. package/dist/widgets/factories/advanced.d.ts.map +1 -0
  867. package/dist/widgets/factories/advanced.js +75 -0
  868. package/dist/widgets/factories/advanced.js.map +1 -0
  869. package/dist/widgets/factories/basic.d.ts +14 -0
  870. package/dist/widgets/factories/basic.d.ts.map +1 -0
  871. package/dist/widgets/factories/basic.js +44 -0
  872. package/dist/widgets/factories/basic.js.map +1 -0
  873. package/dist/widgets/factories/feedback.d.ts +20 -0
  874. package/dist/widgets/factories/feedback.d.ts.map +1 -0
  875. package/dist/widgets/factories/feedback.js +102 -0
  876. package/dist/widgets/factories/feedback.js.map +1 -0
  877. package/dist/widgets/factories/helpers.d.ts +41 -0
  878. package/dist/widgets/factories/helpers.d.ts.map +1 -0
  879. package/dist/widgets/factories/helpers.js +72 -0
  880. package/dist/widgets/factories/helpers.js.map +1 -0
  881. package/dist/widgets/factories/interactive.d.ts +15 -0
  882. package/dist/widgets/factories/interactive.d.ts.map +1 -0
  883. package/dist/widgets/factories/interactive.js +46 -0
  884. package/dist/widgets/factories/interactive.js.map +1 -0
  885. package/dist/widgets/factories/layoutShell.d.ts +22 -0
  886. package/dist/widgets/factories/layoutShell.d.ts.map +1 -0
  887. package/dist/widgets/factories/layoutShell.js +190 -0
  888. package/dist/widgets/factories/layoutShell.js.map +1 -0
  889. package/dist/widgets/factories/media.d.ts +14 -0
  890. package/dist/widgets/factories/media.d.ts.map +1 -0
  891. package/dist/widgets/factories/media.js +25 -0
  892. package/dist/widgets/factories/media.js.map +1 -0
  893. package/dist/widgets/factories/navigation.d.ts +10 -0
  894. package/dist/widgets/factories/navigation.d.ts.map +1 -0
  895. package/dist/widgets/factories/navigation.js +24 -0
  896. package/dist/widgets/factories/navigation.js.map +1 -0
  897. package/dist/widgets/field.d.ts +6 -5
  898. package/dist/widgets/field.d.ts.map +1 -1
  899. package/dist/widgets/field.js +8 -1
  900. package/dist/widgets/field.js.map +1 -1
  901. package/dist/widgets/filePicker.d.ts +5 -0
  902. package/dist/widgets/filePicker.d.ts.map +1 -0
  903. package/dist/widgets/filePicker.js +136 -0
  904. package/dist/widgets/filePicker.js.map +1 -0
  905. package/dist/widgets/heatmap.d.ts +13 -0
  906. package/dist/widgets/heatmap.d.ts.map +1 -0
  907. package/dist/widgets/heatmap.js +105 -0
  908. package/dist/widgets/heatmap.js.map +1 -0
  909. package/dist/widgets/hooks/animation.d.ts +113 -0
  910. package/dist/widgets/hooks/animation.d.ts.map +1 -0
  911. package/dist/widgets/hooks/animation.js +1108 -0
  912. package/dist/widgets/hooks/animation.js.map +1 -0
  913. package/dist/widgets/hooks/data.d.ts +218 -0
  914. package/dist/widgets/hooks/data.d.ts.map +1 -0
  915. package/dist/widgets/hooks/data.js +679 -0
  916. package/dist/widgets/hooks/data.js.map +1 -0
  917. package/dist/widgets/hooks/utility.d.ts +34 -0
  918. package/dist/widgets/hooks/utility.d.ts.map +1 -0
  919. package/dist/widgets/hooks/utility.js +36 -0
  920. package/dist/widgets/hooks/utility.js.map +1 -0
  921. package/dist/widgets/image.d.ts +25 -0
  922. package/dist/widgets/image.d.ts.map +1 -0
  923. package/dist/widgets/image.js +112 -0
  924. package/dist/widgets/image.js.map +1 -0
  925. package/dist/widgets/inspectorOverlay.d.ts +33 -0
  926. package/dist/widgets/inspectorOverlay.d.ts.map +1 -0
  927. package/dist/widgets/inspectorOverlay.js +147 -0
  928. package/dist/widgets/inspectorOverlay.js.map +1 -0
  929. package/dist/widgets/lineChart.d.ts +13 -0
  930. package/dist/widgets/lineChart.d.ts.map +1 -0
  931. package/dist/widgets/lineChart.js +73 -0
  932. package/dist/widgets/lineChart.js.map +1 -0
  933. package/dist/widgets/link.d.ts +4 -0
  934. package/dist/widgets/link.d.ts.map +1 -0
  935. package/dist/widgets/link.js +7 -0
  936. package/dist/widgets/link.js.map +1 -0
  937. package/dist/widgets/logsConsole.d.ts +2 -6
  938. package/dist/widgets/logsConsole.d.ts.map +1 -1
  939. package/dist/widgets/logsConsole.js +8 -6
  940. package/dist/widgets/logsConsole.js.map +1 -1
  941. package/dist/widgets/pagination.d.ts +35 -0
  942. package/dist/widgets/pagination.d.ts.map +1 -0
  943. package/dist/widgets/pagination.js +250 -0
  944. package/dist/widgets/pagination.js.map +1 -0
  945. package/dist/widgets/protocol.d.ts +39 -0
  946. package/dist/widgets/protocol.d.ts.map +1 -0
  947. package/dist/widgets/protocol.js +160 -0
  948. package/dist/widgets/protocol.js.map +1 -0
  949. package/dist/widgets/scatter.d.ts +18 -0
  950. package/dist/widgets/scatter.d.ts.map +1 -0
  951. package/dist/widgets/scatter.js +75 -0
  952. package/dist/widgets/scatter.js.map +1 -0
  953. package/dist/widgets/select.d.ts.map +1 -1
  954. package/dist/widgets/select.js +7 -3
  955. package/dist/widgets/select.js.map +1 -1
  956. package/dist/widgets/slider.d.ts +40 -0
  957. package/dist/widgets/slider.d.ts.map +1 -0
  958. package/dist/widgets/slider.js +111 -0
  959. package/dist/widgets/slider.js.map +1 -0
  960. package/dist/widgets/splitPane.d.ts +1 -5
  961. package/dist/widgets/splitPane.d.ts.map +1 -1
  962. package/dist/widgets/splitPane.js +28 -10
  963. package/dist/widgets/splitPane.js.map +1 -1
  964. package/dist/widgets/style.d.ts +20 -23
  965. package/dist/widgets/style.d.ts.map +1 -1
  966. package/dist/widgets/style.js +34 -10
  967. package/dist/widgets/style.js.map +1 -1
  968. package/dist/widgets/styleUtils.d.ts +19 -13
  969. package/dist/widgets/styleUtils.d.ts.map +1 -1
  970. package/dist/widgets/styleUtils.js +101 -13
  971. package/dist/widgets/styleUtils.js.map +1 -1
  972. package/dist/widgets/table.d.ts.map +1 -1
  973. package/dist/widgets/table.js +43 -1
  974. package/dist/widgets/table.js.map +1 -1
  975. package/dist/widgets/tabs.d.ts +28 -0
  976. package/dist/widgets/tabs.d.ts.map +1 -0
  977. package/dist/widgets/tabs.js +146 -0
  978. package/dist/widgets/tabs.js.map +1 -0
  979. package/dist/widgets/toast.d.ts +2 -6
  980. package/dist/widgets/toast.d.ts.map +1 -1
  981. package/dist/widgets/toast.js +7 -5
  982. package/dist/widgets/toast.js.map +1 -1
  983. package/dist/widgets/tree.d.ts.map +1 -1
  984. package/dist/widgets/types/advanced.d.ts +611 -0
  985. package/dist/widgets/types/advanced.d.ts.map +1 -0
  986. package/dist/widgets/types/advanced.js +2 -0
  987. package/dist/widgets/types/advanced.js.map +1 -0
  988. package/dist/widgets/types/base.d.ts +933 -0
  989. package/dist/widgets/types/base.d.ts.map +1 -0
  990. package/dist/widgets/types/base.js +2 -0
  991. package/dist/widgets/types/base.js.map +1 -0
  992. package/dist/widgets/types/forms.d.ts +136 -0
  993. package/dist/widgets/types/forms.d.ts.map +1 -0
  994. package/dist/widgets/types/forms.js +2 -0
  995. package/dist/widgets/types/forms.js.map +1 -0
  996. package/dist/widgets/types/navigation.d.ts +83 -0
  997. package/dist/widgets/types/navigation.d.ts.map +1 -0
  998. package/dist/widgets/types/navigation.js +2 -0
  999. package/dist/widgets/types/navigation.js.map +1 -0
  1000. package/dist/widgets/types/overlaysShell.d.ts +223 -0
  1001. package/dist/widgets/types/overlaysShell.d.ts.map +1 -0
  1002. package/dist/widgets/types/overlaysShell.js +2 -0
  1003. package/dist/widgets/types/overlaysShell.js.map +1 -0
  1004. package/dist/widgets/types/table.d.ts +104 -0
  1005. package/dist/widgets/types/table.d.ts.map +1 -0
  1006. package/dist/widgets/types/table.js +2 -0
  1007. package/dist/widgets/types/table.js.map +1 -0
  1008. package/dist/widgets/types/tree.d.ts +64 -0
  1009. package/dist/widgets/types/tree.d.ts.map +1 -0
  1010. package/dist/widgets/types/tree.js +2 -0
  1011. package/dist/widgets/types/tree.js.map +1 -0
  1012. package/dist/widgets/types.d.ts +77 -1228
  1013. package/dist/widgets/types.d.ts.map +1 -1
  1014. package/dist/widgets/ui.d.ts +62 -702
  1015. package/dist/widgets/ui.d.ts.map +1 -1
  1016. package/dist/widgets/ui.js +62 -826
  1017. package/dist/widgets/ui.js.map +1 -1
  1018. package/dist/widgets/useModalStack.d.ts +21 -0
  1019. package/dist/widgets/useModalStack.d.ts.map +1 -0
  1020. package/dist/widgets/useModalStack.js +107 -0
  1021. package/dist/widgets/useModalStack.js.map +1 -0
  1022. package/dist/widgets/useTable.d.ts +30 -0
  1023. package/dist/widgets/useTable.d.ts.map +1 -0
  1024. package/dist/widgets/useTable.js +184 -0
  1025. package/dist/widgets/useTable.js.map +1 -0
  1026. package/dist/widgets/virtualList.d.ts +11 -4
  1027. package/dist/widgets/virtualList.d.ts.map +1 -1
  1028. package/dist/widgets/virtualList.js +71 -49
  1029. package/dist/widgets/virtualList.js.map +1 -1
  1030. package/package.json +33 -5
  1031. package/dist/app/__tests__/dirtyFlagPlan.test.d.ts +0 -2
  1032. package/dist/app/__tests__/dirtyFlagPlan.test.d.ts.map +0 -1
  1033. package/dist/app/__tests__/dirtyFlagPlan.test.js +0 -207
  1034. package/dist/app/__tests__/dirtyFlagPlan.test.js.map +0 -1
  1035. package/dist/app/__tests__/eventPump.test.d.ts +0 -2
  1036. package/dist/app/__tests__/eventPump.test.d.ts.map +0 -1
  1037. package/dist/app/__tests__/eventPump.test.js +0 -48
  1038. package/dist/app/__tests__/eventPump.test.js.map +0 -1
  1039. package/dist/app/__tests__/fatal.test.d.ts +0 -2
  1040. package/dist/app/__tests__/fatal.test.d.ts.map +0 -1
  1041. package/dist/app/__tests__/fatal.test.js +0 -27
  1042. package/dist/app/__tests__/fatal.test.js.map +0 -1
  1043. package/dist/app/__tests__/fileTreeExplorer.contextMenu.test.d.ts +0 -2
  1044. package/dist/app/__tests__/fileTreeExplorer.contextMenu.test.d.ts.map +0 -1
  1045. package/dist/app/__tests__/fileTreeExplorer.contextMenu.test.js +0 -69
  1046. package/dist/app/__tests__/fileTreeExplorer.contextMenu.test.js.map +0 -1
  1047. package/dist/app/__tests__/frameCoalescing.test.d.ts +0 -2
  1048. package/dist/app/__tests__/frameCoalescing.test.d.ts.map +0 -1
  1049. package/dist/app/__tests__/frameCoalescing.test.js +0 -33
  1050. package/dist/app/__tests__/frameCoalescing.test.js.map +0 -1
  1051. package/dist/app/__tests__/helpers.d.ts +0 -43
  1052. package/dist/app/__tests__/helpers.d.ts.map +0 -1
  1053. package/dist/app/__tests__/helpers.js +0 -111
  1054. package/dist/app/__tests__/helpers.js.map +0 -1
  1055. package/dist/app/__tests__/interactivePriority.test.d.ts +0 -2
  1056. package/dist/app/__tests__/interactivePriority.test.d.ts.map +0 -1
  1057. package/dist/app/__tests__/interactivePriority.test.js +0 -78
  1058. package/dist/app/__tests__/interactivePriority.test.js.map +0 -1
  1059. package/dist/app/__tests__/layerZIndexClamp.test.d.ts +0 -2
  1060. package/dist/app/__tests__/layerZIndexClamp.test.d.ts.map +0 -1
  1061. package/dist/app/__tests__/layerZIndexClamp.test.js +0 -63
  1062. package/dist/app/__tests__/layerZIndexClamp.test.js.map +0 -1
  1063. package/dist/app/__tests__/modes.test.d.ts +0 -2
  1064. package/dist/app/__tests__/modes.test.d.ts.map +0 -1
  1065. package/dist/app/__tests__/modes.test.js +0 -48
  1066. package/dist/app/__tests__/modes.test.js.map +0 -1
  1067. package/dist/app/__tests__/onEventHandlers.test.d.ts +0 -2
  1068. package/dist/app/__tests__/onEventHandlers.test.d.ts.map +0 -1
  1069. package/dist/app/__tests__/onEventHandlers.test.js +0 -41
  1070. package/dist/app/__tests__/onEventHandlers.test.js.map +0 -1
  1071. package/dist/app/__tests__/partialDrawlistEmission.test.d.ts +0 -2
  1072. package/dist/app/__tests__/partialDrawlistEmission.test.d.ts.map +0 -1
  1073. package/dist/app/__tests__/partialDrawlistEmission.test.js +0 -430
  1074. package/dist/app/__tests__/partialDrawlistEmission.test.js.map +0 -1
  1075. package/dist/app/__tests__/rawRender.test.d.ts +0 -2
  1076. package/dist/app/__tests__/rawRender.test.d.ts.map +0 -1
  1077. package/dist/app/__tests__/rawRender.test.js +0 -102
  1078. package/dist/app/__tests__/rawRender.test.js.map +0 -1
  1079. package/dist/app/__tests__/stateMachine.test.d.ts +0 -2
  1080. package/dist/app/__tests__/stateMachine.test.d.ts.map +0 -1
  1081. package/dist/app/__tests__/stateMachine.test.js +0 -22
  1082. package/dist/app/__tests__/stateMachine.test.js.map +0 -1
  1083. package/dist/app/__tests__/stop_during_frame_rejection.test.d.ts +0 -2
  1084. package/dist/app/__tests__/stop_during_frame_rejection.test.d.ts.map +0 -1
  1085. package/dist/app/__tests__/stop_during_frame_rejection.test.js +0 -54
  1086. package/dist/app/__tests__/stop_during_frame_rejection.test.js.map +0 -1
  1087. package/dist/app/__tests__/stubBackend.d.ts +0 -23
  1088. package/dist/app/__tests__/stubBackend.d.ts.map +0 -1
  1089. package/dist/app/__tests__/stubBackend.js +0 -76
  1090. package/dist/app/__tests__/stubBackend.js.map +0 -1
  1091. package/dist/app/__tests__/syncFrameAckFastPath.test.d.ts +0 -2
  1092. package/dist/app/__tests__/syncFrameAckFastPath.test.d.ts.map +0 -1
  1093. package/dist/app/__tests__/syncFrameAckFastPath.test.js +0 -47
  1094. package/dist/app/__tests__/syncFrameAckFastPath.test.js.map +0 -1
  1095. package/dist/app/__tests__/table.interactions.test.d.ts +0 -2
  1096. package/dist/app/__tests__/table.interactions.test.d.ts.map +0 -1
  1097. package/dist/app/__tests__/table.interactions.test.js +0 -179
  1098. package/dist/app/__tests__/table.interactions.test.js.map +0 -1
  1099. package/dist/app/__tests__/turnScheduler.test.d.ts +0 -2
  1100. package/dist/app/__tests__/turnScheduler.test.d.ts.map +0 -1
  1101. package/dist/app/__tests__/turnScheduler.test.js +0 -20
  1102. package/dist/app/__tests__/turnScheduler.test.js.map +0 -1
  1103. package/dist/app/__tests__/updates.test.d.ts +0 -2
  1104. package/dist/app/__tests__/updates.test.d.ts.map +0 -1
  1105. package/dist/app/__tests__/updates.test.js +0 -81
  1106. package/dist/app/__tests__/updates.test.js.map +0 -1
  1107. package/dist/app/__tests__/widgetRenderer.integration.test.d.ts +0 -2
  1108. package/dist/app/__tests__/widgetRenderer.integration.test.d.ts.map +0 -1
  1109. package/dist/app/__tests__/widgetRenderer.integration.test.js +0 -615
  1110. package/dist/app/__tests__/widgetRenderer.integration.test.js.map +0 -1
  1111. package/dist/binary/__tests__/reader.test.d.ts +0 -2
  1112. package/dist/binary/__tests__/reader.test.d.ts.map +0 -1
  1113. package/dist/binary/__tests__/reader.test.js +0 -35
  1114. package/dist/binary/__tests__/reader.test.js.map +0 -1
  1115. package/dist/binary/__tests__/writer.test.d.ts +0 -2
  1116. package/dist/binary/__tests__/writer.test.d.ts.map +0 -1
  1117. package/dist/binary/__tests__/writer.test.js +0 -36
  1118. package/dist/binary/__tests__/writer.test.js.map +0 -1
  1119. package/dist/debug/__tests__/eventTrace.test.d.ts +0 -7
  1120. package/dist/debug/__tests__/eventTrace.test.d.ts.map +0 -1
  1121. package/dist/debug/__tests__/eventTrace.test.js +0 -59
  1122. package/dist/debug/__tests__/eventTrace.test.js.map +0 -1
  1123. package/dist/debug/__tests__/frameInspector.test.d.ts +0 -8
  1124. package/dist/debug/__tests__/frameInspector.test.d.ts.map +0 -1
  1125. package/dist/debug/__tests__/frameInspector.test.js +0 -121
  1126. package/dist/debug/__tests__/frameInspector.test.js.map +0 -1
  1127. package/dist/debug/__tests__/parsers.test.d.ts +0 -8
  1128. package/dist/debug/__tests__/parsers.test.d.ts.map +0 -1
  1129. package/dist/debug/__tests__/parsers.test.js +0 -265
  1130. package/dist/debug/__tests__/parsers.test.js.map +0 -1
  1131. package/dist/debug/__tests__/stateTimeline.test.d.ts +0 -7
  1132. package/dist/debug/__tests__/stateTimeline.test.d.ts.map +0 -1
  1133. package/dist/debug/__tests__/stateTimeline.test.js +0 -55
  1134. package/dist/debug/__tests__/stateTimeline.test.js.map +0 -1
  1135. package/dist/debug/__tests__/uiDebug.test.d.ts +0 -2
  1136. package/dist/debug/__tests__/uiDebug.test.d.ts.map +0 -1
  1137. package/dist/debug/__tests__/uiDebug.test.js +0 -18
  1138. package/dist/debug/__tests__/uiDebug.test.js.map +0 -1
  1139. package/dist/drawlist/__tests__/builder_v1_golden.test.d.ts +0 -2
  1140. package/dist/drawlist/__tests__/builder_v1_golden.test.d.ts.map +0 -1
  1141. package/dist/drawlist/__tests__/builder_v1_golden.test.js +0 -132
  1142. package/dist/drawlist/__tests__/builder_v1_golden.test.js.map +0 -1
  1143. package/dist/drawlist/__tests__/builder_v1_text_run.test.d.ts +0 -2
  1144. package/dist/drawlist/__tests__/builder_v1_text_run.test.d.ts.map +0 -1
  1145. package/dist/drawlist/__tests__/builder_v1_text_run.test.js +0 -93
  1146. package/dist/drawlist/__tests__/builder_v1_text_run.test.js.map +0 -1
  1147. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.d.ts +0 -2
  1148. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.d.ts.map +0 -1
  1149. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.js +0 -116
  1150. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.js.map +0 -1
  1151. package/dist/drawlist/__tests__/builder_v2_cursor.test.d.ts +0 -12
  1152. package/dist/drawlist/__tests__/builder_v2_cursor.test.d.ts.map +0 -1
  1153. package/dist/drawlist/__tests__/builder_v2_cursor.test.js +0 -201
  1154. package/dist/drawlist/__tests__/builder_v2_cursor.test.js.map +0 -1
  1155. package/dist/drawlist/builder_v1.d.ts +0 -69
  1156. package/dist/drawlist/builder_v1.d.ts.map +0 -1
  1157. package/dist/drawlist/builder_v1.js +0 -984
  1158. package/dist/drawlist/builder_v1.js.map +0 -1
  1159. package/dist/drawlist/builder_v2.d.ts +0 -57
  1160. package/dist/drawlist/builder_v2.d.ts.map +0 -1
  1161. package/dist/drawlist/builder_v2.js +0 -953
  1162. package/dist/drawlist/builder_v2.js.map +0 -1
  1163. package/dist/forms/__tests__/useForm.test.d.ts +0 -7
  1164. package/dist/forms/__tests__/useForm.test.d.ts.map +0 -1
  1165. package/dist/forms/__tests__/useForm.test.js +0 -371
  1166. package/dist/forms/__tests__/useForm.test.js.map +0 -1
  1167. package/dist/keybindings/__tests__/chordMatcher.test.d.ts +0 -2
  1168. package/dist/keybindings/__tests__/chordMatcher.test.d.ts.map +0 -1
  1169. package/dist/keybindings/__tests__/chordMatcher.test.js +0 -238
  1170. package/dist/keybindings/__tests__/chordMatcher.test.js.map +0 -1
  1171. package/dist/keybindings/__tests__/manager.test.d.ts +0 -2
  1172. package/dist/keybindings/__tests__/manager.test.d.ts.map +0 -1
  1173. package/dist/keybindings/__tests__/manager.test.js +0 -377
  1174. package/dist/keybindings/__tests__/manager.test.js.map +0 -1
  1175. package/dist/keybindings/__tests__/parser.test.d.ts +0 -2
  1176. package/dist/keybindings/__tests__/parser.test.d.ts.map +0 -1
  1177. package/dist/keybindings/__tests__/parser.test.js +0 -386
  1178. package/dist/keybindings/__tests__/parser.test.js.map +0 -1
  1179. package/dist/layout/__tests__/constraints.golden.test.d.ts +0 -2
  1180. package/dist/layout/__tests__/constraints.golden.test.d.ts.map +0 -1
  1181. package/dist/layout/__tests__/constraints.golden.test.js +0 -86
  1182. package/dist/layout/__tests__/constraints.golden.test.js.map +0 -1
  1183. package/dist/layout/__tests__/hitTest.golden.test.d.ts +0 -2
  1184. package/dist/layout/__tests__/hitTest.golden.test.d.ts.map +0 -1
  1185. package/dist/layout/__tests__/hitTest.golden.test.js +0 -74
  1186. package/dist/layout/__tests__/hitTest.golden.test.js.map +0 -1
  1187. package/dist/layout/__tests__/layout.edgecases.test.d.ts +0 -2
  1188. package/dist/layout/__tests__/layout.edgecases.test.d.ts.map +0 -1
  1189. package/dist/layout/__tests__/layout.edgecases.test.js +0 -189
  1190. package/dist/layout/__tests__/layout.edgecases.test.js.map +0 -1
  1191. package/dist/layout/__tests__/layout.golden.test.d.ts +0 -2
  1192. package/dist/layout/__tests__/layout.golden.test.d.ts.map +0 -1
  1193. package/dist/layout/__tests__/layout.golden.test.js +0 -69
  1194. package/dist/layout/__tests__/layout.golden.test.js.map +0 -1
  1195. package/dist/layout/__tests__/layout.perf.test.d.ts +0 -8
  1196. package/dist/layout/__tests__/layout.perf.test.d.ts.map +0 -1
  1197. package/dist/layout/__tests__/layout.perf.test.js +0 -179
  1198. package/dist/layout/__tests__/layout.perf.test.js.map +0 -1
  1199. package/dist/layout/__tests__/measure.validation.test.d.ts +0 -2
  1200. package/dist/layout/__tests__/measure.validation.test.d.ts.map +0 -1
  1201. package/dist/layout/__tests__/measure.validation.test.js +0 -16
  1202. package/dist/layout/__tests__/measure.validation.test.js.map +0 -1
  1203. package/dist/layout/__tests__/panelGroupSizing.test.d.ts +0 -2
  1204. package/dist/layout/__tests__/panelGroupSizing.test.d.ts.map +0 -1
  1205. package/dist/layout/__tests__/panelGroupSizing.test.js +0 -118
  1206. package/dist/layout/__tests__/panelGroupSizing.test.js.map +0 -1
  1207. package/dist/layout/__tests__/spacing.test.d.ts +0 -2
  1208. package/dist/layout/__tests__/spacing.test.d.ts.map +0 -1
  1209. package/dist/layout/__tests__/spacing.test.js +0 -39
  1210. package/dist/layout/__tests__/spacing.test.js.map +0 -1
  1211. package/dist/layout/__tests__/splitPaneCollapse.test.d.ts +0 -2
  1212. package/dist/layout/__tests__/splitPaneCollapse.test.d.ts.map +0 -1
  1213. package/dist/layout/__tests__/splitPaneCollapse.test.js +0 -91
  1214. package/dist/layout/__tests__/splitPaneCollapse.test.js.map +0 -1
  1215. package/dist/layout/__tests__/sweep.robustness.test.d.ts +0 -11
  1216. package/dist/layout/__tests__/sweep.robustness.test.d.ts.map +0 -1
  1217. package/dist/layout/__tests__/sweep.robustness.test.js +0 -491
  1218. package/dist/layout/__tests__/sweep.robustness.test.js.map +0 -1
  1219. package/dist/layout/__tests__/textMeasure.golden.test.d.ts +0 -2
  1220. package/dist/layout/__tests__/textMeasure.golden.test.d.ts.map +0 -1
  1221. package/dist/layout/__tests__/textMeasure.golden.test.js +0 -32
  1222. package/dist/layout/__tests__/textMeasure.golden.test.js.map +0 -1
  1223. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.d.ts +0 -2
  1224. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.d.ts.map +0 -1
  1225. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.js +0 -35
  1226. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.js.map +0 -1
  1227. package/dist/protocol/__tests__/zrev_v1_invalid.test.d.ts +0 -2
  1228. package/dist/protocol/__tests__/zrev_v1_invalid.test.d.ts.map +0 -1
  1229. package/dist/protocol/__tests__/zrev_v1_invalid.test.js +0 -128
  1230. package/dist/protocol/__tests__/zrev_v1_invalid.test.js.map +0 -1
  1231. package/dist/protocol/__tests__/zrev_v1_valid.test.d.ts +0 -2
  1232. package/dist/protocol/__tests__/zrev_v1_valid.test.d.ts.map +0 -1
  1233. package/dist/protocol/__tests__/zrev_v1_valid.test.js +0 -126
  1234. package/dist/protocol/__tests__/zrev_v1_valid.test.js.map +0 -1
  1235. package/dist/renderer/__tests__/overlay.edge.test.d.ts +0 -2
  1236. package/dist/renderer/__tests__/overlay.edge.test.d.ts.map +0 -1
  1237. package/dist/renderer/__tests__/overlay.edge.test.js +0 -101
  1238. package/dist/renderer/__tests__/overlay.edge.test.js.map +0 -1
  1239. package/dist/renderer/__tests__/render.golden.test.d.ts +0 -2
  1240. package/dist/renderer/__tests__/render.golden.test.d.ts.map +0 -1
  1241. package/dist/renderer/__tests__/render.golden.test.js +0 -359
  1242. package/dist/renderer/__tests__/render.golden.test.js.map +0 -1
  1243. package/dist/renderer/__tests__/spinner.golden.test.d.ts +0 -2
  1244. package/dist/renderer/__tests__/spinner.golden.test.d.ts.map +0 -1
  1245. package/dist/renderer/__tests__/spinner.golden.test.js +0 -67
  1246. package/dist/renderer/__tests__/spinner.golden.test.js.map +0 -1
  1247. package/dist/runtime/__tests__/commit.fastReuse.regression.test.d.ts +0 -2
  1248. package/dist/runtime/__tests__/commit.fastReuse.regression.test.d.ts.map +0 -1
  1249. package/dist/runtime/__tests__/commit.fastReuse.regression.test.js +0 -63
  1250. package/dist/runtime/__tests__/commit.fastReuse.regression.test.js.map +0 -1
  1251. package/dist/runtime/__tests__/duplicateIdFatal.test.d.ts +0 -2
  1252. package/dist/runtime/__tests__/duplicateIdFatal.test.d.ts.map +0 -1
  1253. package/dist/runtime/__tests__/duplicateIdFatal.test.js +0 -45
  1254. package/dist/runtime/__tests__/duplicateIdFatal.test.js.map +0 -1
  1255. package/dist/runtime/__tests__/duplicateKeyFatal.test.d.ts +0 -2
  1256. package/dist/runtime/__tests__/duplicateKeyFatal.test.d.ts.map +0 -1
  1257. package/dist/runtime/__tests__/duplicateKeyFatal.test.js +0 -20
  1258. package/dist/runtime/__tests__/duplicateKeyFatal.test.js.map +0 -1
  1259. package/dist/runtime/__tests__/focusList.golden.test.d.ts +0 -2
  1260. package/dist/runtime/__tests__/focusList.golden.test.d.ts.map +0 -1
  1261. package/dist/runtime/__tests__/focusList.golden.test.js +0 -98
  1262. package/dist/runtime/__tests__/focusList.golden.test.js.map +0 -1
  1263. package/dist/runtime/__tests__/focusZones.golden.test.d.ts +0 -16
  1264. package/dist/runtime/__tests__/focusZones.golden.test.d.ts.map +0 -1
  1265. package/dist/runtime/__tests__/focusZones.golden.test.js +0 -594
  1266. package/dist/runtime/__tests__/focusZones.golden.test.js.map +0 -1
  1267. package/dist/runtime/__tests__/inputRouting.golden.test.d.ts +0 -2
  1268. package/dist/runtime/__tests__/inputRouting.golden.test.d.ts.map +0 -1
  1269. package/dist/runtime/__tests__/inputRouting.golden.test.js +0 -56
  1270. package/dist/runtime/__tests__/inputRouting.golden.test.js.map +0 -1
  1271. package/dist/runtime/__tests__/keyRouting.golden.test.d.ts +0 -2
  1272. package/dist/runtime/__tests__/keyRouting.golden.test.d.ts.map +0 -1
  1273. package/dist/runtime/__tests__/keyRouting.golden.test.js +0 -43
  1274. package/dist/runtime/__tests__/keyRouting.golden.test.js.map +0 -1
  1275. package/dist/runtime/__tests__/localStateStore.test.d.ts +0 -2
  1276. package/dist/runtime/__tests__/localStateStore.test.d.ts.map +0 -1
  1277. package/dist/runtime/__tests__/localStateStore.test.js +0 -25
  1278. package/dist/runtime/__tests__/localStateStore.test.js.map +0 -1
  1279. package/dist/runtime/__tests__/mouseRouting.golden.test.d.ts +0 -2
  1280. package/dist/runtime/__tests__/mouseRouting.golden.test.d.ts.map +0 -1
  1281. package/dist/runtime/__tests__/mouseRouting.golden.test.js +0 -47
  1282. package/dist/runtime/__tests__/mouseRouting.golden.test.js.map +0 -1
  1283. package/dist/runtime/__tests__/reconcile.test.d.ts +0 -2
  1284. package/dist/runtime/__tests__/reconcile.test.d.ts.map +0 -1
  1285. package/dist/runtime/__tests__/reconcile.test.js +0 -46
  1286. package/dist/runtime/__tests__/reconcile.test.js.map +0 -1
  1287. package/dist/runtime/__tests__/widgetMeta.test.d.ts +0 -2
  1288. package/dist/runtime/__tests__/widgetMeta.test.d.ts.map +0 -1
  1289. package/dist/runtime/__tests__/widgetMeta.test.js +0 -212
  1290. package/dist/runtime/__tests__/widgetMeta.test.js.map +0 -1
  1291. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1292. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1293. package/dist/theme/__tests__/theme.test.js +0 -28
  1294. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1295. package/dist/widgets/__tests__/basicWidgets.render.test.d.ts +0 -2
  1296. package/dist/widgets/__tests__/basicWidgets.render.test.d.ts.map +0 -1
  1297. package/dist/widgets/__tests__/basicWidgets.render.test.js +0 -182
  1298. package/dist/widgets/__tests__/basicWidgets.render.test.js.map +0 -1
  1299. package/dist/widgets/__tests__/basicWidgets.test.d.ts +0 -2
  1300. package/dist/widgets/__tests__/basicWidgets.test.d.ts.map +0 -1
  1301. package/dist/widgets/__tests__/basicWidgets.test.js +0 -336
  1302. package/dist/widgets/__tests__/basicWidgets.test.js.map +0 -1
  1303. package/dist/widgets/__tests__/collections.test.d.ts +0 -2
  1304. package/dist/widgets/__tests__/collections.test.d.ts.map +0 -1
  1305. package/dist/widgets/__tests__/collections.test.js +0 -91
  1306. package/dist/widgets/__tests__/collections.test.js.map +0 -1
  1307. package/dist/widgets/__tests__/commandPalette.test.d.ts +0 -2
  1308. package/dist/widgets/__tests__/commandPalette.test.d.ts.map +0 -1
  1309. package/dist/widgets/__tests__/commandPalette.test.js +0 -13
  1310. package/dist/widgets/__tests__/commandPalette.test.js.map +0 -1
  1311. package/dist/widgets/__tests__/composition.test.d.ts +0 -14
  1312. package/dist/widgets/__tests__/composition.test.d.ts.map +0 -1
  1313. package/dist/widgets/__tests__/composition.test.js +0 -458
  1314. package/dist/widgets/__tests__/composition.test.js.map +0 -1
  1315. package/dist/widgets/__tests__/conditionals.test.d.ts +0 -2
  1316. package/dist/widgets/__tests__/conditionals.test.d.ts.map +0 -1
  1317. package/dist/widgets/__tests__/conditionals.test.js +0 -49
  1318. package/dist/widgets/__tests__/conditionals.test.js.map +0 -1
  1319. package/dist/widgets/__tests__/containers.test.d.ts +0 -2
  1320. package/dist/widgets/__tests__/containers.test.d.ts.map +0 -1
  1321. package/dist/widgets/__tests__/containers.test.js +0 -96
  1322. package/dist/widgets/__tests__/containers.test.js.map +0 -1
  1323. package/dist/widgets/__tests__/dataVizWidgets.test.d.ts +0 -2
  1324. package/dist/widgets/__tests__/dataVizWidgets.test.d.ts.map +0 -1
  1325. package/dist/widgets/__tests__/dataVizWidgets.test.js +0 -57
  1326. package/dist/widgets/__tests__/dataVizWidgets.test.js.map +0 -1
  1327. package/dist/widgets/__tests__/dialogs.test.d.ts +0 -2
  1328. package/dist/widgets/__tests__/dialogs.test.d.ts.map +0 -1
  1329. package/dist/widgets/__tests__/dialogs.test.js +0 -29
  1330. package/dist/widgets/__tests__/dialogs.test.js.map +0 -1
  1331. package/dist/widgets/__tests__/editors.test.d.ts +0 -2
  1332. package/dist/widgets/__tests__/editors.test.d.ts.map +0 -1
  1333. package/dist/widgets/__tests__/editors.test.js +0 -116
  1334. package/dist/widgets/__tests__/editors.test.js.map +0 -1
  1335. package/dist/widgets/__tests__/filesWidgets.test.d.ts +0 -2
  1336. package/dist/widgets/__tests__/filesWidgets.test.d.ts.map +0 -1
  1337. package/dist/widgets/__tests__/filesWidgets.test.js +0 -52
  1338. package/dist/widgets/__tests__/filesWidgets.test.js.map +0 -1
  1339. package/dist/widgets/__tests__/formWidgets.test.d.ts +0 -7
  1340. package/dist/widgets/__tests__/formWidgets.test.d.ts.map +0 -1
  1341. package/dist/widgets/__tests__/formWidgets.test.js +0 -241
  1342. package/dist/widgets/__tests__/formWidgets.test.js.map +0 -1
  1343. package/dist/widgets/__tests__/infoWidgets.test.d.ts +0 -2
  1344. package/dist/widgets/__tests__/infoWidgets.test.d.ts.map +0 -1
  1345. package/dist/widgets/__tests__/infoWidgets.test.js +0 -43
  1346. package/dist/widgets/__tests__/infoWidgets.test.js.map +0 -1
  1347. package/dist/widgets/__tests__/layers.golden.test.d.ts +0 -14
  1348. package/dist/widgets/__tests__/layers.golden.test.d.ts.map +0 -1
  1349. package/dist/widgets/__tests__/layers.golden.test.js +0 -728
  1350. package/dist/widgets/__tests__/layers.golden.test.js.map +0 -1
  1351. package/dist/widgets/__tests__/overlays.test.d.ts +0 -2
  1352. package/dist/widgets/__tests__/overlays.test.d.ts.map +0 -1
  1353. package/dist/widgets/__tests__/overlays.test.js +0 -99
  1354. package/dist/widgets/__tests__/overlays.test.js.map +0 -1
  1355. package/dist/widgets/__tests__/renderer.regressions.test.d.ts +0 -2
  1356. package/dist/widgets/__tests__/renderer.regressions.test.d.ts.map +0 -1
  1357. package/dist/widgets/__tests__/renderer.regressions.test.js +0 -132
  1358. package/dist/widgets/__tests__/renderer.regressions.test.js.map +0 -1
  1359. package/dist/widgets/__tests__/styleUtils.test.d.ts +0 -2
  1360. package/dist/widgets/__tests__/styleUtils.test.d.ts.map +0 -1
  1361. package/dist/widgets/__tests__/styleUtils.test.js +0 -22
  1362. package/dist/widgets/__tests__/styleUtils.test.js.map +0 -1
  1363. package/dist/widgets/__tests__/styled.test.d.ts +0 -2
  1364. package/dist/widgets/__tests__/styled.test.d.ts.map +0 -1
  1365. package/dist/widgets/__tests__/styled.test.js +0 -23
  1366. package/dist/widgets/__tests__/styled.test.js.map +0 -1
  1367. package/dist/widgets/__tests__/table.golden.test.d.ts +0 -10
  1368. package/dist/widgets/__tests__/table.golden.test.d.ts.map +0 -1
  1369. package/dist/widgets/__tests__/table.golden.test.js +0 -368
  1370. package/dist/widgets/__tests__/table.golden.test.js.map +0 -1
  1371. package/dist/widgets/__tests__/tree.golden.test.d.ts +0 -10
  1372. package/dist/widgets/__tests__/tree.golden.test.d.ts.map +0 -1
  1373. package/dist/widgets/__tests__/tree.golden.test.js +0 -501
  1374. package/dist/widgets/__tests__/tree.golden.test.js.map +0 -1
  1375. package/dist/widgets/__tests__/virtualList.golden.test.d.ts +0 -10
  1376. package/dist/widgets/__tests__/virtualList.golden.test.d.ts.map +0 -1
  1377. package/dist/widgets/__tests__/virtualList.golden.test.js +0 -349
  1378. package/dist/widgets/__tests__/virtualList.golden.test.js.map +0 -1
  1379. package/dist/widgets/__tests__/widgetRenderSmoke.test.d.ts +0 -2
  1380. package/dist/widgets/__tests__/widgetRenderSmoke.test.d.ts.map +0 -1
  1381. package/dist/widgets/__tests__/widgetRenderSmoke.test.js +0 -311
  1382. package/dist/widgets/__tests__/widgetRenderSmoke.test.js.map +0 -1
@@ -22,219 +22,134 @@
22
22
  * @see docs/guide/lifecycle-and-updates.md
23
23
  */
24
24
  import { ZrUiError } from "../abi.js";
25
- import { FRAME_ACCEPTED_ACK_MARKER, } from "../backend.js";
26
- import { createManagerState, getMode, registerBindings, registerModes, routeKeyEvent, setMode, } from "../keybindings/index.js";
27
- import { PERF_ENABLED, perfMarkEnd, perfMarkStart, perfNow, perfRecord } from "../perf/perf.js";
28
- import { parseEventBatchV1 } from "../protocol/zrev_v1.js";
25
+ import { BACKEND_FPS_CAP_MARKER, BACKEND_MAX_EVENT_BYTES_MARKER, } from "../backend.js";
26
+ import { describeThrown } from "../debug/describeThrown.js";
27
+ import { createManagerState, getBindings, getMode, getPendingChord, setMode, } from "../keybindings/index.js";
28
+ import { PERF_ENABLED, perfMarkStart } from "../perf/perf.js";
29
+ import { createRouterIntegration } from "../router/integration.js";
30
+ import { DEFAULT_TERMINAL_PROFILE } from "../terminalProfile.js";
29
31
  import { defaultTheme } from "../theme/defaultTheme.js";
30
- import { coerceToLegacyTheme } from "../theme/interop.js";
32
+ import { compileTheme } from "../theme/theme.js";
33
+ import { createRuntimeBreadcrumbHelpers, } from "./createApp/breadcrumbs.js";
34
+ import { loadTerminalProfile, readBackendDrawlistVersionMarker, readBackendPositiveIntMarker, requirePositiveInt, resolveAppConfig as resolveAppConfigImpl, } from "./createApp/config.js";
35
+ import { DIRTY_LAYOUT, DIRTY_RENDER, DIRTY_VIEW, createDirtyTracker, } from "./createApp/dirtyPlan.js";
36
+ import { createEventLoop } from "./createApp/eventLoop.js";
37
+ import { createFocusDispatcher } from "./createApp/focusDispatcher.js";
38
+ import { createAppGuards } from "./createApp/guards.js";
39
+ import { computeKeybindingsEnabled, createAppKeybindingHelpers } from "./createApp/keybindings.js";
40
+ import { createRenderLoop } from "./createApp/renderLoop.js";
41
+ import { createRunSignalController, readProcessLike } from "./createApp/runSignals.js";
31
42
  import { RawRenderer } from "./rawRenderer.js";
32
43
  import { AppStateMachine } from "./stateMachine.js";
33
44
  import { TurnScheduler } from "./turnScheduler.js";
34
45
  import { UpdateQueue } from "./updateQueue.js";
35
- import { WidgetRenderer, } from "./widgetRenderer.js";
36
- /** Default configuration values. */
37
- const DEFAULT_CONFIG = Object.freeze({
38
- fpsCap: 60,
39
- maxEventBytes: 1 << 20 /* 1 MiB */,
40
- maxDrawlistBytes: 2 << 20 /* 2 MiB */,
41
- useV2Cursor: false,
42
- drawlistValidateParams: true,
43
- drawlistReuseOutputBuffer: true,
44
- drawlistEncodedStringCacheCap: 1024,
45
- maxFramesInFlight: 1,
46
- internal_onRender: undefined,
47
- internal_onLayout: undefined,
48
- });
49
- const SYNC_FRAME_ACK_MARKER = "__reziSyncFrameAck";
46
+ import { WidgetRenderer } from "./widgetRenderer.js";
47
+ export const APP_INTERNAL_REQUEST_VIEW_LAYOUT_MARKER = "__reziRequestViewLayout";
48
+ export const APP_INTERNAL_SET_RUNTIME_BREADCRUMB_HOOKS_MARKER = "__reziSetRuntimeBreadcrumbHooks";
50
49
  function invalidProps(detail) {
51
50
  throw new ZrUiError("ZRUI_INVALID_PROPS", detail);
52
51
  }
53
- function requirePositiveInt(name, v) {
54
- if (!Number.isInteger(v) || v <= 0)
55
- invalidProps(`${name} must be a positive integer`);
56
- return v;
57
- }
58
- function requireNonNegativeInt(name, v) {
59
- if (!Number.isInteger(v) || v < 0)
60
- invalidProps(`${name} must be a non-negative integer`);
61
- return v;
62
- }
63
- function isSyncFrameAck(p) {
64
- return (typeof p === "object" &&
65
- p !== null &&
66
- p[SYNC_FRAME_ACK_MARKER] === true);
67
- }
68
- function getAcceptedFrameAck(p) {
69
- if (typeof p !== "object" || p === null)
70
- return null;
71
- const marker = p[FRAME_ACCEPTED_ACK_MARKER];
72
- if (typeof marker !== "object" || marker === null)
73
- return null;
74
- if (typeof marker.then !== "function")
75
- return null;
76
- return marker;
77
- }
78
- /** Apply defaults to user-provided config, validating all values. */
79
52
  export function resolveAppConfig(config) {
80
- if (!config)
81
- return DEFAULT_CONFIG;
82
- const fpsCap = config.fpsCap === undefined
83
- ? DEFAULT_CONFIG.fpsCap
84
- : requirePositiveInt("fpsCap", config.fpsCap);
85
- const maxEventBytes = config.maxEventBytes === undefined
86
- ? DEFAULT_CONFIG.maxEventBytes
87
- : requirePositiveInt("maxEventBytes", config.maxEventBytes);
88
- const maxDrawlistBytes = config.maxDrawlistBytes === undefined
89
- ? DEFAULT_CONFIG.maxDrawlistBytes
90
- : requirePositiveInt("maxDrawlistBytes", config.maxDrawlistBytes);
91
- const useV2Cursor = config.useV2Cursor === true;
92
- const drawlistValidateParams = config.drawlistValidateParams === undefined
93
- ? DEFAULT_CONFIG.drawlistValidateParams
94
- : config.drawlistValidateParams !== false;
95
- const drawlistReuseOutputBuffer = config.drawlistReuseOutputBuffer === undefined
96
- ? DEFAULT_CONFIG.drawlistReuseOutputBuffer
97
- : config.drawlistReuseOutputBuffer === true;
98
- const drawlistEncodedStringCacheCap = config.drawlistEncodedStringCacheCap === undefined
99
- ? DEFAULT_CONFIG.drawlistEncodedStringCacheCap
100
- : requireNonNegativeInt("drawlistEncodedStringCacheCap", config.drawlistEncodedStringCacheCap);
101
- const maxFramesInFlight = config.maxFramesInFlight === undefined
102
- ? DEFAULT_CONFIG.maxFramesInFlight
103
- : Math.min(4, Math.max(1, requirePositiveInt("maxFramesInFlight", config.maxFramesInFlight)));
104
- const internal_onRender = typeof config.internal_onRender === "function" ? config.internal_onRender : undefined;
105
- const internal_onLayout = typeof config.internal_onLayout === "function" ? config.internal_onLayout : undefined;
106
- return Object.freeze({
107
- fpsCap,
108
- maxEventBytes,
109
- maxDrawlistBytes,
110
- useV2Cursor,
111
- drawlistValidateParams,
112
- drawlistReuseOutputBuffer,
113
- drawlistEncodedStringCacheCap,
114
- maxFramesInFlight,
115
- internal_onRender,
116
- internal_onLayout,
117
- });
118
- }
119
- function describeThrown(v) {
120
- if (v instanceof Error)
121
- return `${v.name}: ${v.message}`;
122
- return String(v);
123
- }
124
- /**
125
- * Convert a text codepoint to a key code for keybinding matching.
126
- * Letters are normalized to uppercase (A-Z = 65-90).
127
- * Returns null if codepoint is not matchable.
128
- */
129
- function codepointToKeyCode(codepoint) {
130
- // Lowercase letters -> uppercase
131
- if (codepoint >= 97 && codepoint <= 122) {
132
- return codepoint - 32; // 'a' (97) -> 'A' (65)
133
- }
134
- // Uppercase letters
135
- if (codepoint >= 65 && codepoint <= 90) {
136
- return codepoint;
137
- }
138
- // Digits and printable ASCII
139
- if (codepoint >= 32 && codepoint <= 126) {
140
- return codepoint;
141
- }
142
- return null;
53
+ return resolveAppConfigImpl(config);
143
54
  }
144
- /**
145
- * Create a Rezi application instance.
146
- *
147
- * @typeParam S - Application state type
148
- * @param opts.backend - Runtime backend (e.g., createNodeBackend())
149
- * @param opts.initialState - Initial application state
150
- * @param opts.config - Optional configuration overrides
151
- * @returns App instance with view/draw, update, start/stop/dispose methods
152
- *
153
- * @example
154
- * ```ts
155
- * const app = createApp({
156
- * backend: createNodeBackend(),
157
- * initialState: { count: 0 },
158
- * });
159
- *
160
- * app.view((state) => ui.text(`Count: ${state.count}`));
161
- * await app.start();
162
- * ```
163
- */
164
55
  export function createApp(opts) {
165
56
  const backend = opts.backend;
166
57
  const config = resolveAppConfig(opts.config);
167
- let theme = coerceToLegacyTheme(opts.theme ?? defaultTheme);
58
+ const backendDrawlistVersion = readBackendDrawlistVersionMarker(backend);
59
+ if (backendDrawlistVersion !== null && backendDrawlistVersion !== 1) {
60
+ invalidProps(`backend drawlistVersion=${String(backendDrawlistVersion)} is invalid. Fix: set backend drawlist version marker to 1.`);
61
+ }
62
+ const backendMaxEventBytes = readBackendPositiveIntMarker(backend, BACKEND_MAX_EVENT_BYTES_MARKER);
63
+ if (backendMaxEventBytes !== null && backendMaxEventBytes !== config.maxEventBytes) {
64
+ invalidProps(`config.maxEventBytes=${String(config.maxEventBytes)} must match backend maxEventBytes=${String(backendMaxEventBytes)}. Fix: align maxEventBytes between app config and backend, or prefer createNodeApp({ config }) for Node/Bun apps to keep them aligned automatically.`);
65
+ }
66
+ const backendFpsCap = readBackendPositiveIntMarker(backend, BACKEND_FPS_CAP_MARKER);
67
+ if (backendFpsCap !== null && backendFpsCap !== config.fpsCap) {
68
+ invalidProps(`config.fpsCap=${String(config.fpsCap)} must match backend fpsCap=${String(backendFpsCap)}. Fix: align fpsCap between app config and backend, or prefer createNodeApp({ config }) for Node/Bun apps to keep them aligned automatically.`);
69
+ }
70
+ let theme = compileTheme(opts.theme ?? defaultTheme.definition);
71
+ let themeTransition = null;
72
+ let terminalProfile = DEFAULT_TERMINAL_PROFILE;
168
73
  const sm = new AppStateMachine();
74
+ const routes = opts.routes;
75
+ if (routes !== undefined && routes.length === 0) {
76
+ invalidProps("routes must contain at least one route");
77
+ }
78
+ if (routes === undefined && opts.initialRoute !== undefined) {
79
+ invalidProps("initialRoute requires routes");
80
+ }
81
+ if (routes !== undefined && opts.initialRoute === undefined) {
82
+ invalidProps("initialRoute is required when routes are provided");
83
+ }
84
+ if (opts.routeHistoryMaxDepth !== undefined) {
85
+ requirePositiveInt("routeHistoryMaxDepth", opts.routeHistoryMaxDepth);
86
+ }
169
87
  let mode = null;
170
88
  let drawFn = null;
171
89
  let viewFn = null;
172
- let committedState = opts.initialState;
90
+ let topLevelViewError = null;
91
+ let debugLayoutEnabled = false;
92
+ const hasInitialState = "initialState" in opts;
93
+ let committedState = hasInitialState ? opts.initialState : Object.freeze({});
173
94
  const updates = new UpdateQueue();
174
95
  const handlers = [];
175
- const DIRTY_RENDER = 1 << 0;
176
- const DIRTY_LAYOUT = 1 << 1;
177
- const DIRTY_VIEW = 1 << 2;
178
- let dirtyFlags = 0;
179
- let dirtyRenderVersion = 0;
180
- let dirtyLayoutVersion = 0;
181
- let dirtyViewVersion = 0;
96
+ const dirtyTracker = createDirtyTracker();
97
+ const spinnerTickMinIntervalMs = Math.max(1, Math.floor(1000 / Math.min(config.fpsCap, 8)));
182
98
  let framesInFlight = 0;
183
99
  let interactiveBudget = 0;
100
+ let lastSpinnerRenderTickMs = Number.NEGATIVE_INFINITY;
101
+ let lastObservedSpinnerTickEventMs = Number.NEGATIVE_INFINITY;
102
+ let lastSpinnerRenderPerfMs = Number.NEGATIVE_INFINITY;
184
103
  let viewport = null;
185
104
  const timeUnwrap = { epochMs: 0, lastRawMs: null };
186
105
  let inRender = false;
187
106
  let inCommit = false;
188
107
  let inEventHandlerDepth = 0;
189
108
  let lifecycleBusy = null;
109
+ let backendStarted = false;
110
+ let lifecycleGeneration = 0;
190
111
  let pollToken = 0;
112
+ let settleActiveRun = null;
113
+ let renderRequestQueuedForCurrentTurn = false;
191
114
  let userCommitScheduled = false;
192
- // Perf tracking: submit time for backend_ack calculation
193
- let submitFrameStartMs = null;
194
- // Perf tracking: schedule_wait measures time from render request to render start
195
115
  let scheduleWaitStartMs = null;
196
- const scheduler = new TurnScheduler((items) => processTurn(items));
197
- function snapshotDirtyVersions() {
198
- return {
199
- render: dirtyRenderVersion,
200
- layout: dirtyLayoutVersion,
201
- view: dirtyViewVersion,
202
- };
203
- }
204
- function clearConsumedDirtyFlags(consumedFlags, snapshot) {
205
- let clearMask = 0;
206
- if ((consumedFlags & DIRTY_RENDER) !== 0 && dirtyRenderVersion === snapshot.render) {
207
- clearMask |= DIRTY_RENDER;
208
- }
209
- if ((consumedFlags & DIRTY_LAYOUT) !== 0 && dirtyLayoutVersion === snapshot.layout) {
210
- clearMask |= DIRTY_LAYOUT;
211
- }
212
- if ((consumedFlags & DIRTY_VIEW) !== 0 && dirtyViewVersion === snapshot.view) {
213
- clearMask |= DIRTY_VIEW;
214
- }
215
- dirtyFlags &= ~clearMask;
216
- }
116
+ const baseInternalOnRender = config.internal_onRender;
117
+ const baseInternalOnLayout = config.internal_onLayout;
118
+ let inspectorInternalOnRender;
119
+ let inspectorInternalOnLayout;
120
+ let runtimeBreadcrumbsEnabled = baseInternalOnRender !== undefined || baseInternalOnLayout !== undefined;
121
+ let keybindingState = createManagerState();
122
+ let keybindingsEnabled = false;
123
+ let breadcrumbLastEventKind = null;
124
+ let breadcrumbLastConsumptionPath = null;
125
+ let breadcrumbLastAction = null;
126
+ let breadcrumbEventTracked = false;
127
+ let deferredInlineFatal = null;
128
+ let processTurnImpl = () => undefined;
129
+ let tryRenderOnceImpl = () => undefined;
130
+ const scheduler = new TurnScheduler((items) => processTurnImpl(items));
131
+ const enqueueWorkItem = (item) => {
132
+ scheduler.enqueue(item);
133
+ };
217
134
  function markDirty(flags, schedule = true) {
218
- // Track when dirty flags are first set for schedule_wait measurement.
219
- // This captures time from "render needed" to "render started".
220
- const wasDirty = dirtyFlags !== 0;
221
- dirtyFlags |= flags;
222
- if ((flags & DIRTY_RENDER) !== 0)
223
- dirtyRenderVersion++;
224
- if ((flags & DIRTY_LAYOUT) !== 0)
225
- dirtyLayoutVersion++;
226
- if ((flags & DIRTY_VIEW) !== 0)
227
- dirtyViewVersion++;
228
- if (PERF_ENABLED && !wasDirty && dirtyFlags !== 0 && scheduleWaitStartMs === null) {
135
+ const { wasDirty, flags: nextFlags } = dirtyTracker.markDirty(flags);
136
+ if (PERF_ENABLED && !wasDirty && nextFlags !== 0 && scheduleWaitStartMs === null) {
229
137
  scheduleWaitStartMs = perfMarkStart("schedule_wait");
230
138
  }
231
139
  if (!schedule)
232
140
  return;
233
141
  if (sm.state !== "Running")
234
142
  return;
235
- if (scheduler.isScheduled || scheduler.isExecuting)
143
+ if (scheduler.isExecuting) {
144
+ if (!renderRequestQueuedForCurrentTurn) {
145
+ renderRequestQueuedForCurrentTurn = true;
146
+ enqueueWorkItem({ kind: "renderRequest" });
147
+ }
148
+ return;
149
+ }
150
+ if (scheduler.isScheduled)
236
151
  return;
237
- scheduler.enqueue({ kind: "renderRequest" });
152
+ enqueueWorkItem({ kind: "renderRequest" });
238
153
  }
239
154
  function requestRenderFromRenderer() {
240
155
  markDirty(DIRTY_RENDER);
@@ -242,88 +157,22 @@ export function createApp(opts) {
242
157
  function requestViewFromRenderer() {
243
158
  markDirty(DIRTY_VIEW);
244
159
  }
245
- const rawRenderer = new RawRenderer({
246
- backend,
247
- maxDrawlistBytes: config.maxDrawlistBytes,
248
- ...(opts.config?.drawlistValidateParams === undefined
249
- ? {}
250
- : { drawlistValidateParams: opts.config.drawlistValidateParams }),
251
- drawlistReuseOutputBuffer: config.drawlistReuseOutputBuffer,
252
- drawlistEncodedStringCacheCap: config.drawlistEncodedStringCacheCap,
160
+ const guards = createAppGuards({
161
+ getEventHandlerDepth: () => inEventHandlerDepth,
162
+ getLifecycleBusy: () => lifecycleBusy,
163
+ getRuntimeState: () => sm.state,
164
+ isInCommit: () => inCommit,
165
+ isInRender: () => inRender,
253
166
  });
254
- const widgetRenderer = new WidgetRenderer({
255
- backend,
256
- maxDrawlistBytes: config.maxDrawlistBytes,
257
- useV2Cursor: config.useV2Cursor,
258
- ...(opts.config?.drawlistValidateParams === undefined
259
- ? {}
260
- : { drawlistValidateParams: opts.config.drawlistValidateParams }),
261
- drawlistReuseOutputBuffer: config.drawlistReuseOutputBuffer,
262
- drawlistEncodedStringCacheCap: config.drawlistEncodedStringCacheCap,
263
- requestRender: requestRenderFromRenderer,
264
- requestView: requestViewFromRenderer,
265
- });
266
- /* --- Keybinding State --- */
267
- let keybindingState = createManagerState();
268
- let keybindingsEnabled = false;
269
- function computeKeybindingsEnabled(state) {
270
- for (const m of state.modes.values()) {
271
- if (m.bindings.length > 0)
272
- return true;
273
- }
274
- return false;
275
- }
276
- function throwCode(code, detail) {
277
- throw new ZrUiError(code, detail);
278
- }
279
- function assertOperational(method) {
280
- const st = sm.state;
281
- if (st === "Disposed" || st === "Faulted") {
282
- throwCode("ZRUI_INVALID_STATE", `${method}: app is ${st}`);
283
- }
284
- }
285
- function assertNotReentrant(method) {
286
- if (inCommit || inRender || inEventHandlerDepth > 0) {
287
- throwCode("ZRUI_REENTRANT_CALL", `${method}: re-entrant call`);
288
- }
289
- }
290
167
  function enqueueFatal(code, detail) {
291
- scheduler.enqueue({ kind: "fatal", code, detail });
292
- }
293
- function fatalNowOrEnqueue(code, detail) {
294
- if (scheduler.isExecuting) {
295
- doFatal(code, detail);
296
- return;
297
- }
298
- enqueueFatal(code, detail);
299
- }
300
- function emit(ev) {
301
- const snapshot = [];
302
- for (const slot of handlers) {
303
- if (slot.active.value)
304
- snapshot.push(slot.fn);
305
- }
306
- inEventHandlerDepth++;
307
- try {
308
- for (const fn of snapshot) {
309
- try {
310
- fn(ev);
311
- }
312
- catch (e) {
313
- // Treat handler exceptions as fatal, but defer out of the handler stack.
314
- enqueueFatal("ZRUI_USER_CODE_THROW", `onEvent handler threw: ${describeThrown(e)}`);
315
- return;
316
- }
317
- }
318
- }
319
- finally {
320
- inEventHandlerDepth--;
321
- }
168
+ enqueueWorkItem({ kind: "fatal", code, detail });
322
169
  }
323
170
  function doFatal(code, detail) {
324
171
  if (sm.state !== "Running")
325
172
  return;
326
- // 1) emit fatal to handlers (registration order, best-effort)
173
+ lifecycleBusy = null;
174
+ lifecycleGeneration++;
175
+ backendStarted = false;
327
176
  const fatalEv = { kind: "fatal", code, detail };
328
177
  const snapshot = [];
329
178
  for (const slot of handlers) {
@@ -338,16 +187,13 @@ export function createApp(opts) {
338
187
  // ignore
339
188
  }
340
189
  }
341
- // 2) transition to Faulted
342
190
  try {
343
191
  sm.toFaulted();
344
192
  }
345
193
  catch {
346
194
  // ignore
347
195
  }
348
- // Stop polling immediately.
349
196
  pollToken++;
350
- // 3) backend stop/dispose best-effort (stop then dispose)
351
197
  try {
352
198
  void backend
353
199
  .stop()
@@ -359,6 +205,7 @@ export function createApp(opts) {
359
205
  catch {
360
206
  // ignore
361
207
  }
208
+ settleActiveRun?.();
362
209
  });
363
210
  }
364
211
  catch {
@@ -368,550 +215,645 @@ export function createApp(opts) {
368
215
  catch {
369
216
  // ignore
370
217
  }
218
+ settleActiveRun?.();
371
219
  }
372
220
  }
373
- function releaseOnce(batch) {
374
- let released = false;
375
- return () => {
376
- if (released)
377
- return;
378
- released = true;
379
- try {
380
- batch.release();
381
- }
382
- catch {
383
- // ignore
384
- }
385
- };
386
- }
387
- function processEventBatch(batch) {
388
- const release = releaseOnce(batch);
389
- const parseToken = perfMarkStart("event_parse");
390
- const parsed = parseEventBatchV1(batch.bytes, {
391
- maxTotalSize: config.maxEventBytes,
392
- timeUnwrap,
393
- });
394
- perfMarkEnd("event_parse", parseToken);
395
- if (!parsed.ok) {
396
- release();
397
- fatalNowOrEnqueue("ZRUI_PROTOCOL_ERROR", `${parsed.error.code}: ${parsed.error.detail}`);
221
+ function flushDeferredInlineFatal() {
222
+ if (deferredInlineFatal === null || inEventHandlerDepth !== 0)
398
223
  return;
399
- }
400
- const engineTruncated = (parsed.value.flags & 1) !== 0;
401
- const droppedBatches = batch.droppedBatches;
402
- try {
403
- if (engineTruncated || droppedBatches > 0) {
404
- emit({ kind: "overrun", engineTruncated, droppedBatches });
405
- if (sm.state !== "Running")
406
- return;
407
- }
408
- for (const ev of parsed.value.events) {
409
- // Input-priority / preemption: when an interactive input event arrives,
410
- // allow a short urgent burst even if a previous frame is still
411
- // in-flight. This keeps interactive latency resilient to transport/ack
412
- // jitter while older frames are still coalesced downstream (latest-wins)
413
- // in the backend/worker.
414
- if (ev.kind === "key" || ev.kind === "text" || ev.kind === "paste" || ev.kind === "mouse") {
415
- interactiveBudget = 2;
416
- }
417
- emit({ kind: "engine", event: ev });
418
- if (sm.state !== "Running")
419
- return;
420
- if (ev.kind === "resize") {
421
- const prev = viewport;
422
- if (prev === null || prev.cols !== ev.cols || prev.rows !== ev.rows) {
423
- viewport = Object.freeze({ cols: ev.cols, rows: ev.rows });
424
- markDirty(DIRTY_LAYOUT);
425
- }
426
- }
427
- if (ev.kind === "tick" && mode === "widget") {
428
- // Tick events drive render-only animation frames (e.g., Spinner).
429
- markDirty(DIRTY_RENDER);
430
- }
431
- const isWidgetRoutableEvent = ev.kind === "key" || ev.kind === "text" || ev.kind === "paste" || ev.kind === "mouse";
432
- if (mode === "widget" && isWidgetRoutableEvent) {
433
- if (keybindingsEnabled) {
434
- // Route key events through keybinding system first
435
- if (ev.kind === "key") {
436
- const bypass = widgetRenderer.shouldBypassKeybindings(ev);
437
- if (!bypass) {
438
- const keyCtx = Object.freeze({
439
- state: committedState,
440
- update: app.update,
441
- focusedId: widgetRenderer.getFocusedId(),
442
- });
443
- const keyResult = routeKeyEvent(keybindingState, ev, keyCtx);
444
- keybindingState = keyResult.nextState;
445
- if (keyResult.consumed)
446
- continue; // Skip default widget routing
447
- }
448
- }
449
- // Also route text events through keybinding system for single-character bindings
450
- if (ev.kind === "text") {
451
- const keyCode = codepointToKeyCode(ev.codepoint);
452
- if (keyCode !== null) {
453
- // Create a synthetic key event for keybinding matching
454
- const syntheticKeyEvent = {
455
- kind: "key",
456
- action: "down",
457
- key: keyCode,
458
- mods: 0, // Text events have no modifiers
459
- timeMs: ev.timeMs,
460
- };
461
- const keyCtx = Object.freeze({
462
- state: committedState,
463
- update: app.update,
464
- focusedId: widgetRenderer.getFocusedId(),
465
- });
466
- const keyResult = routeKeyEvent(keybindingState, syntheticKeyEvent, keyCtx);
467
- keybindingState = keyResult.nextState;
468
- if (keyResult.consumed)
469
- continue; // Skip default widget routing
470
- }
471
- }
472
- }
473
- let routed;
474
- try {
475
- routed = widgetRenderer.routeEngineEvent(ev);
476
- }
477
- catch (e) {
478
- enqueueFatal("ZRUI_USER_CODE_THROW", `widget routing threw: ${describeThrown(e)}`);
479
- return;
480
- }
481
- if (routed.needsRender)
482
- markDirty(DIRTY_RENDER);
483
- if (routed.action) {
484
- emit({ kind: "action", ...routed.action });
485
- if (sm.state !== "Running")
486
- return;
487
- }
488
- }
224
+ const fatal = deferredInlineFatal;
225
+ deferredInlineFatal = null;
226
+ doFatal(fatal.code, fatal.detail);
227
+ }
228
+ function fatalNowOrEnqueue(code, detail) {
229
+ const canFailFastInline = scheduler.isExecuting && !inRender && !inCommit;
230
+ if (canFailFastInline && inEventHandlerDepth > 0) {
231
+ if (deferredInlineFatal === null) {
232
+ deferredInlineFatal = Object.freeze({ code, detail });
489
233
  }
234
+ return;
490
235
  }
491
- finally {
492
- release();
236
+ if (canFailFastInline) {
237
+ doFatal(code, detail);
238
+ return;
493
239
  }
240
+ enqueueFatal(code, detail);
494
241
  }
495
- function commitUpdates() {
496
- const drained = updates.drain();
497
- if (drained.length === 0)
242
+ function cleanupStartedBackendAfterAbort() {
243
+ if (!backendStarted)
498
244
  return;
499
- const commitToken = perfMarkStart("commit");
500
- inCommit = true;
245
+ backendStarted = false;
501
246
  try {
502
- let next = committedState;
503
- for (const u of drained) {
504
- if (typeof u === "function") {
505
- next = u(next);
247
+ void backend
248
+ .stop()
249
+ .catch(() => undefined)
250
+ .finally(() => {
251
+ try {
252
+ backend.dispose();
506
253
  }
507
- else {
508
- next = u;
254
+ catch {
255
+ // ignore
509
256
  }
257
+ });
258
+ }
259
+ catch {
260
+ try {
261
+ backend.dispose();
510
262
  }
511
- if (next !== committedState) {
512
- committedState = next;
513
- markDirty(DIRTY_VIEW, false);
263
+ catch {
264
+ // ignore
514
265
  }
515
266
  }
516
- catch (e) {
517
- fatalNowOrEnqueue("ZRUI_USER_CODE_THROW", `state updater threw: ${describeThrown(e)}`);
518
- }
519
- finally {
520
- inCommit = false;
521
- perfMarkEnd("commit", commitToken);
522
- }
523
267
  }
524
- function scheduleFrameSettlement(p, submitStart, submitEnd) {
525
- if (isSyncFrameAck(p)) {
526
- if (PERF_ENABLED && submitStart !== null) {
527
- const ackNow = perfNow();
528
- perfRecord("backend_ack", ackNow - submitStart);
529
- if (submitEnd !== null) {
530
- perfRecord("frame_build", submitEnd - submitStart);
531
- perfRecord("worker_roundtrip", ackNow - submitEnd);
532
- }
533
- }
534
- framesInFlight = Math.max(0, framesInFlight - 1);
535
- return;
536
- }
537
- const acceptedAck = getAcceptedFrameAck(p);
538
- const ackPromise = acceptedAck ?? p;
539
- void ackPromise.then(() => {
540
- if (PERF_ENABLED && submitStart !== null) {
541
- const ackNow = perfNow();
542
- // backend_ack: total time from frame build start to backend ack.
543
- // Equals frame_build + worker_roundtrip (kept for backward compat).
544
- perfRecord("backend_ack", ackNow - submitStart);
545
- if (submitEnd !== null) {
546
- // frame_build: synchronous TS pipeline (view/commit/layout/render/build).
547
- perfRecord("frame_build", submitEnd - submitStart);
548
- // worker_roundtrip: async transport from requestFrame to backend ack.
549
- perfRecord("worker_roundtrip", ackNow - submitEnd);
550
- }
268
+ const rawRenderer = new RawRenderer({
269
+ backend,
270
+ maxDrawlistBytes: config.maxDrawlistBytes,
271
+ ...(opts.config?.drawlistValidateParams === undefined
272
+ ? {}
273
+ : { drawlistValidateParams: opts.config.drawlistValidateParams }),
274
+ drawlistReuseOutputBuffer: config.drawlistReuseOutputBuffer,
275
+ drawlistEncodedStringCacheCap: config.drawlistEncodedStringCacheCap,
276
+ });
277
+ const widgetRenderer = new WidgetRenderer({
278
+ backend,
279
+ maxDrawlistBytes: config.maxDrawlistBytes,
280
+ rootPadding: config.rootPadding,
281
+ breakpointThresholds: config.breakpointThresholds,
282
+ terminalProfile,
283
+ ...(opts.config?.drawlistValidateParams === undefined
284
+ ? {}
285
+ : { drawlistValidateParams: opts.config.drawlistValidateParams }),
286
+ drawlistReuseOutputBuffer: config.drawlistReuseOutputBuffer,
287
+ drawlistEncodedStringCacheCap: config.drawlistEncodedStringCacheCap,
288
+ requestRender: requestRenderFromRenderer,
289
+ requestView: requestViewFromRenderer,
290
+ onUserCodeError: (detail) => fatalNowOrEnqueue("ZRUI_USER_CODE_THROW", detail),
291
+ collectRuntimeBreadcrumbs: runtimeBreadcrumbsEnabled,
292
+ });
293
+ const focusDispatcher = createFocusDispatcher({
294
+ getFocusedId: () => widgetRenderer.getFocusedId(),
295
+ getFocusInfo: () => widgetRenderer.getCurrentFocusInfo(),
296
+ initialFocusedId: widgetRenderer.getFocusedId(),
297
+ onHandlerError: (error) => {
298
+ fatalNowOrEnqueue("ZRUI_USER_CODE_THROW", `onFocusChange handler threw: ${describeThrown(error)}`);
299
+ },
300
+ });
301
+ let routeStateUpdater = null;
302
+ let routerIntegration = null;
303
+ if (routes !== undefined) {
304
+ mode = "widget";
305
+ viewFn = (state) => {
306
+ if (!routerIntegration || !routeStateUpdater) {
307
+ throw new ZrUiError("ZRUI_INVALID_STATE", "router integration is not initialized");
551
308
  }
552
- scheduler.enqueue({ kind: "frameDone" });
553
- }, (err) => scheduler.enqueue({ kind: "frameError", error: err }));
554
- if (acceptedAck !== null) {
555
- void p.then(() => { }, (err) => scheduler.enqueue({
556
- kind: "fatal",
557
- code: "ZRUI_BACKEND_ERROR",
558
- detail: `requestFrame completion rejected after accepted ack: ${describeThrown(err)}`,
559
- }));
560
- }
309
+ return routerIntegration.renderCurrentScreen(state, routeStateUpdater);
310
+ };
561
311
  }
562
- function emitInternalRenderMetrics(renderTime) {
563
- if (config.internal_onRender === undefined)
564
- return true;
565
- try {
566
- config.internal_onRender({ renderTime: Math.max(0, renderTime) });
567
- return true;
568
- }
569
- catch (e) {
570
- fatalNowOrEnqueue("ZRUI_USER_CODE_THROW", `onRender callback threw: ${describeThrown(e)}`);
571
- return false;
572
- }
312
+ const applyKeybindingState = (nextState) => {
313
+ keybindingState = nextState;
314
+ keybindingsEnabled = computeKeybindingsEnabled(keybindingState);
315
+ };
316
+ const keybindingHelpers = createAppKeybindingHelpers({
317
+ getState: () => keybindingState,
318
+ markDirty: (flags) => markDirty(flags),
319
+ setState: applyKeybindingState,
320
+ throwCode: guards.throwCode,
321
+ });
322
+ const runtimeBreadcrumbHelpers = createRuntimeBreadcrumbHelpers({
323
+ getBaseInternalOnLayout: () => baseInternalOnLayout,
324
+ getBaseInternalOnRender: () => baseInternalOnRender,
325
+ getInspectorInternalOnLayout: () => inspectorInternalOnLayout,
326
+ getInspectorInternalOnRender: () => inspectorInternalOnRender,
327
+ getLastAction: () => breadcrumbLastAction,
328
+ getLastConsumptionPath: () => breadcrumbLastConsumptionPath,
329
+ getLastEventKind: () => breadcrumbLastEventKind,
330
+ getWidgetRuntimeBreadcrumbSnapshot: () => widgetRenderer.getRuntimeBreadcrumbSnapshot(),
331
+ isEnabled: () => runtimeBreadcrumbsEnabled,
332
+ isEventTracked: () => breadcrumbEventTracked,
333
+ setEnabled: (enabled) => {
334
+ runtimeBreadcrumbsEnabled = enabled;
335
+ },
336
+ setEventTracked: (tracked) => {
337
+ breadcrumbEventTracked = tracked;
338
+ },
339
+ setInspectorInternalOnLayout: (callback) => {
340
+ inspectorInternalOnLayout = callback;
341
+ },
342
+ setInspectorInternalOnRender: (callback) => {
343
+ inspectorInternalOnRender = callback;
344
+ },
345
+ setLastAction: (action) => {
346
+ breadcrumbLastAction = action;
347
+ },
348
+ setLastConsumptionPath: (path) => {
349
+ breadcrumbLastConsumptionPath = path;
350
+ },
351
+ setLastEventKind: (kind) => {
352
+ breadcrumbLastEventKind = kind;
353
+ },
354
+ setWidgetRuntimeBreadcrumbCaptureEnabled: (enabled) => {
355
+ widgetRenderer.setRuntimeBreadcrumbCaptureEnabled(enabled);
356
+ },
357
+ });
358
+ function retryTopLevelViewError() {
359
+ topLevelViewError = null;
360
+ markDirty(DIRTY_VIEW | DIRTY_LAYOUT);
573
361
  }
574
- function emitInternalLayoutSnapshot() {
575
- if (config.internal_onLayout === undefined)
576
- return true;
362
+ function quitFromTopLevelViewError() {
363
+ let stopPromise;
577
364
  try {
578
- config.internal_onLayout({ idRects: widgetRenderer.getRectByIdIndex() });
579
- return true;
580
- }
581
- catch (e) {
582
- fatalNowOrEnqueue("ZRUI_USER_CODE_THROW", `onLayout callback threw: ${describeThrown(e)}`);
583
- return false;
365
+ stopPromise = app.stop();
584
366
  }
585
- }
586
- function tryRenderOnce() {
587
- if (sm.state !== "Running")
588
- return;
589
- // During stop(), we may still receive a few late event batches, but we must not
590
- // submit new frames (backend may be tearing down).
591
- if (lifecycleBusy === "stop")
592
- return;
593
- if (dirtyFlags === 0)
594
- return;
595
- const maxInFlight = config.maxFramesInFlight + (interactiveBudget > 0 ? 1 : 0);
596
- if (framesInFlight >= maxInFlight)
597
- return;
598
- if (mode === null)
599
- return;
600
- // Record schedule_wait: time from render request to render start
601
- if (PERF_ENABLED && scheduleWaitStartMs !== null) {
602
- perfMarkEnd("schedule_wait", scheduleWaitStartMs);
603
- scheduleWaitStartMs = null;
604
- }
605
- const dirtyVersionStart = snapshotDirtyVersions();
606
- const snapshot = committedState;
607
- const hooks = {
608
- enterRender: () => {
609
- inRender = true;
610
- },
611
- exitRender: () => {
612
- inRender = false;
613
- },
614
- };
615
- if (mode === "raw") {
616
- const df = drawFn;
617
- if (!df)
618
- return;
619
- const renderStart = perfNow();
620
- const submitToken = perfMarkStart("submit_frame");
621
- const res = rawRenderer.submitFrame(df, hooks);
622
- perfMarkEnd("submit_frame", submitToken);
623
- if (!res.ok) {
624
- fatalNowOrEnqueue(res.code, res.detail);
625
- return;
367
+ catch {
368
+ try {
369
+ app.dispose();
626
370
  }
627
- if (!emitInternalRenderMetrics(perfNow() - renderStart))
628
- return;
629
- submitFrameStartMs = PERF_ENABLED ? submitToken : null;
630
- const buildEndMs = PERF_ENABLED ? perfNow() : null;
631
- framesInFlight++;
632
- if (interactiveBudget > 0)
633
- interactiveBudget--;
634
- scheduleFrameSettlement(res.inFlight, submitFrameStartMs, buildEndMs);
635
- clearConsumedDirtyFlags(DIRTY_RENDER | DIRTY_LAYOUT | DIRTY_VIEW, dirtyVersionStart);
636
- return;
637
- }
638
- const vf = viewFn;
639
- if (!vf)
640
- return;
641
- if (!viewport)
642
- return;
643
- if ((dirtyFlags & (DIRTY_VIEW | DIRTY_LAYOUT | DIRTY_RENDER)) === 0)
644
- return;
645
- // Compute render plan from dirty flags. Render-only turns (e.g., focus change)
646
- // skip view/commit/layout. Layout-only turns (e.g., resize without state change)
647
- // skip view/commit. Commit turns now rely on WidgetRenderer layout signatures
648
- // to decide whether relayout is required, instead of forcing layout by default.
649
- // First-frame/bootstrap safety is handled inside submitFrame(): it falls back
650
- // to full pipeline when committedRoot or layoutTree is null.
651
- const pendingDirtyFlags = dirtyFlags;
652
- const plan = {
653
- commit: (pendingDirtyFlags & DIRTY_VIEW) !== 0,
654
- layout: (pendingDirtyFlags & DIRTY_LAYOUT) !== 0,
655
- // Keep interactive frames on the absolute fast path (no layout signature walk).
656
- // Background commit turns can afford the signature check to avoid unnecessary relayout.
657
- checkLayoutStability: (pendingDirtyFlags & DIRTY_LAYOUT) === 0 &&
658
- interactiveBudget === 0 &&
659
- (pendingDirtyFlags & DIRTY_VIEW) !== 0,
660
- };
661
- const renderStart = perfNow();
662
- const submitToken = perfMarkStart("submit_frame");
663
- const res = widgetRenderer.submitFrame(vf, snapshot, viewport, theme, hooks, plan);
664
- perfMarkEnd("submit_frame", submitToken);
665
- if (!res.ok) {
666
- fatalNowOrEnqueue(res.code, res.detail);
667
- return;
668
- }
669
- if (!emitInternalRenderMetrics(perfNow() - renderStart))
670
- return;
671
- if (!emitInternalLayoutSnapshot())
672
- return;
673
- submitFrameStartMs = PERF_ENABLED ? submitToken : null;
674
- const buildEndMs = PERF_ENABLED ? perfNow() : null;
675
- framesInFlight++;
676
- if (interactiveBudget > 0)
677
- interactiveBudget--;
678
- scheduleFrameSettlement(res.inFlight, submitFrameStartMs, buildEndMs);
679
- let consumedDirtyFlags = DIRTY_RENDER;
680
- if (plan.layout)
681
- consumedDirtyFlags |= DIRTY_LAYOUT;
682
- if (plan.commit)
683
- consumedDirtyFlags |= DIRTY_VIEW;
684
- clearConsumedDirtyFlags(consumedDirtyFlags, dirtyVersionStart);
685
- }
686
- function drainIgnored(items) {
687
- for (const it of items) {
688
- if (it.kind === "eventBatch") {
689
- try {
690
- it.batch.release();
691
- }
692
- catch {
693
- // ignore
694
- }
371
+ catch {
372
+ // ignore
695
373
  }
696
- }
697
- }
698
- function processTurn(items) {
699
- const st = sm.state;
700
- if (st === "Disposed" || st === "Faulted") {
701
- drainIgnored(items);
702
374
  return;
703
375
  }
704
- let sawKick = false;
705
- for (const item of items) {
706
- if (sm.state === "Faulted" || sm.state === "Disposed") {
707
- drainIgnored(items);
708
- return;
376
+ void stopPromise.finally(() => {
377
+ try {
378
+ app.dispose();
709
379
  }
710
- switch (item.kind) {
711
- case "fatal": {
712
- doFatal(item.code, item.detail);
713
- drainIgnored(items);
714
- return;
715
- }
716
- case "eventBatch": {
717
- if (sm.state !== "Running") {
718
- try {
719
- item.batch.release();
720
- }
721
- catch {
722
- // ignore
723
- }
724
- break;
725
- }
726
- processEventBatch(item.batch);
727
- if (sm.state !== "Running") {
728
- drainIgnored(items);
729
- return;
730
- }
731
- commitUpdates();
732
- break;
733
- }
734
- case "userCommit": {
735
- userCommitScheduled = false;
736
- if (sm.state === "Running")
737
- commitUpdates();
738
- break;
739
- }
740
- case "kick": {
741
- sawKick = true;
742
- break;
743
- }
744
- case "renderRequest": {
745
- break;
746
- }
747
- case "frameDone": {
748
- framesInFlight = Math.max(0, framesInFlight - 1);
749
- break;
750
- }
751
- case "frameError": {
752
- framesInFlight = Math.max(0, framesInFlight - 1);
753
- // If we are intentionally stopping, treat requestFrame rejections as
754
- // part of shutdown (not a fatal backend error).
755
- if (lifecycleBusy === "stop")
756
- break;
757
- doFatal("ZRUI_BACKEND_ERROR", `requestFrame rejected: ${describeThrown(item.error)}`);
758
- break;
759
- }
380
+ catch {
381
+ // ignore
760
382
  }
383
+ });
384
+ }
385
+ function stopFromUnhandledQuitEvent() {
386
+ let stopPromise;
387
+ try {
388
+ stopPromise = app.stop();
761
389
  }
762
- if (sm.state !== "Running")
390
+ catch (error) {
391
+ if (lifecycleBusy === "stop")
392
+ return;
393
+ fatalNowOrEnqueue("ZRUI_BACKEND_ERROR", `stop threw after unhandled quit input: ${describeThrown(error)}`);
763
394
  return;
764
- if (sawKick)
765
- commitUpdates();
766
- tryRenderOnce();
395
+ }
396
+ void stopPromise.catch((error) => {
397
+ fatalNowOrEnqueue("ZRUI_BACKEND_ERROR", `stop rejected after unhandled quit input: ${describeThrown(error)}`);
398
+ });
767
399
  }
768
- async function pollLoop(token) {
769
- while (sm.state === "Running" && token === pollToken) {
770
- let batch;
771
- try {
772
- batch = await backend.pollEvents();
773
- }
774
- catch (e) {
775
- if (sm.state === "Running" && token === pollToken) {
776
- enqueueFatal("ZRUI_BACKEND_ERROR", `pollEvents rejected: ${describeThrown(e)}`);
777
- }
778
- return;
779
- }
780
- if (token !== pollToken || sm.state !== "Running") {
400
+ if (routes !== undefined) {
401
+ routerIntegration = createRouterIntegration({
402
+ routes,
403
+ initialRoute: opts.initialRoute,
404
+ ...(opts.routeHistoryMaxDepth === undefined
405
+ ? {}
406
+ : { maxHistoryDepth: opts.routeHistoryMaxDepth }),
407
+ getState: () => committedState,
408
+ requestRouteRender: () => markDirty(DIRTY_VIEW | DIRTY_LAYOUT),
409
+ captureFocusSnapshot: () => widgetRenderer.captureFocusSnapshot(),
410
+ restoreFocusSnapshot: (snapshot) => widgetRenderer.restoreFocusSnapshot(snapshot),
411
+ assertCanMutate: guards.assertRouterMutationAllowed,
412
+ });
413
+ }
414
+ function emit(ev) {
415
+ const snapshot = [];
416
+ for (const slot of handlers) {
417
+ if (slot.active.value)
418
+ snapshot.push(slot.fn);
419
+ }
420
+ inEventHandlerDepth++;
421
+ try {
422
+ for (const fn of snapshot) {
781
423
  try {
782
- batch.release();
424
+ fn(ev);
783
425
  }
784
- catch {
785
- // ignore
426
+ catch (error) {
427
+ fatalNowOrEnqueue("ZRUI_USER_CODE_THROW", `onEvent handler threw: ${describeThrown(error)}`);
428
+ return false;
786
429
  }
787
- return;
788
430
  }
789
- scheduler.enqueue({ kind: "eventBatch", batch });
790
431
  }
432
+ finally {
433
+ inEventHandlerDepth--;
434
+ flushDeferredInlineFatal();
435
+ }
436
+ return true;
437
+ }
438
+ function emitFocusChangeIfNeeded() {
439
+ return focusDispatcher.emitIfChanged();
791
440
  }
441
+ const renderLoop = createRenderLoop({
442
+ buildRuntimeBreadcrumbSnapshot: runtimeBreadcrumbHelpers.buildRuntimeBreadcrumbSnapshot,
443
+ config,
444
+ dirtyTracker,
445
+ emitFocusChangeIfNeeded,
446
+ enqueueWorkItem,
447
+ fatalNowOrEnqueue,
448
+ getBaseInternalOnLayout: () => baseInternalOnLayout,
449
+ getBaseInternalOnRender: () => baseInternalOnRender,
450
+ getCommittedState: () => committedState,
451
+ getDebugLayoutEnabled: () => debugLayoutEnabled,
452
+ getDrawFn: () => drawFn,
453
+ getFramesInFlight: () => framesInFlight,
454
+ getInspectorInternalOnLayout: () => inspectorInternalOnLayout,
455
+ getInspectorInternalOnRender: () => inspectorInternalOnRender,
456
+ getInteractiveBudget: () => interactiveBudget,
457
+ getLifecycleBusy: () => lifecycleBusy,
458
+ getMode: () => mode,
459
+ getRenderRequestQueuedForCurrentTurn: () => renderRequestQueuedForCurrentTurn,
460
+ getScheduleWaitStartMs: () => scheduleWaitStartMs,
461
+ getTheme: () => theme,
462
+ getThemeTransition: () => themeTransition,
463
+ getTopLevelViewError: () => topLevelViewError,
464
+ getViewFn: () => viewFn,
465
+ getViewport: () => viewport,
466
+ isRunning: () => sm.state === "Running",
467
+ markDirty,
468
+ rawRenderer,
469
+ setFramesInFlight: (next) => {
470
+ framesInFlight = next;
471
+ },
472
+ setInRender: (next) => {
473
+ inRender = next;
474
+ },
475
+ setInteractiveBudget: (next) => {
476
+ interactiveBudget = next;
477
+ },
478
+ setRenderRequestQueuedForCurrentTurn: (next) => {
479
+ renderRequestQueuedForCurrentTurn = next;
480
+ },
481
+ setScheduleWaitStartMs: (next) => {
482
+ scheduleWaitStartMs = next;
483
+ },
484
+ setTheme: (next) => {
485
+ theme = next;
486
+ },
487
+ setThemeTransition: (next) => {
488
+ themeTransition = next;
489
+ },
490
+ setTopLevelViewError: (next) => {
491
+ topLevelViewError = next;
492
+ },
493
+ widgetRenderer,
494
+ });
495
+ tryRenderOnceImpl = renderLoop.tryRenderOnce;
496
+ const eventLoop = createEventLoop({
497
+ backend,
498
+ config,
499
+ doFatal,
500
+ emit,
501
+ emitFocusChangeIfNeeded,
502
+ enqueueWorkItem,
503
+ fatalNowOrEnqueue,
504
+ getAppUpdate: () => app.update,
505
+ getCommittedState: () => committedState,
506
+ getFramesInFlight: () => framesInFlight,
507
+ getInteractiveBudget: () => interactiveBudget,
508
+ getKeybindingState: () => keybindingState,
509
+ getKeybindingsEnabled: () => keybindingsEnabled,
510
+ getLastObservedSpinnerTickEventMs: () => lastObservedSpinnerTickEventMs,
511
+ getLastSpinnerRenderPerfMs: () => lastSpinnerRenderPerfMs,
512
+ getLastSpinnerRenderTickMs: () => lastSpinnerRenderTickMs,
513
+ getLifecycleBusy: () => lifecycleBusy,
514
+ getMode: () => mode,
515
+ getPollToken: () => pollToken,
516
+ getRenderRequestQueuedForCurrentTurn: () => renderRequestQueuedForCurrentTurn,
517
+ getRuntimeState: () => sm.state,
518
+ getTopLevelViewError: () => topLevelViewError,
519
+ getViewport: () => viewport,
520
+ keybindingHelpers,
521
+ markDirty,
522
+ noteBreadcrumbAction: runtimeBreadcrumbHelpers.noteBreadcrumbAction,
523
+ noteBreadcrumbConsumptionPath: runtimeBreadcrumbHelpers.noteBreadcrumbConsumptionPath,
524
+ noteBreadcrumbEvent: runtimeBreadcrumbHelpers.noteBreadcrumbEvent,
525
+ quitFromTopLevelViewError,
526
+ retryTopLevelViewError,
527
+ setCommittedState: (next) => {
528
+ committedState = next;
529
+ },
530
+ setFramesInFlight: (next) => {
531
+ framesInFlight = next;
532
+ },
533
+ setInCommit: (next) => {
534
+ inCommit = next;
535
+ },
536
+ setInteractiveBudget: (next) => {
537
+ interactiveBudget = next;
538
+ },
539
+ setKeybindingState: applyKeybindingState,
540
+ setLastObservedSpinnerTickEventMs: (next) => {
541
+ lastObservedSpinnerTickEventMs = next;
542
+ },
543
+ setLastSpinnerRenderPerfMs: (next) => {
544
+ lastSpinnerRenderPerfMs = next;
545
+ },
546
+ setLastSpinnerRenderTickMs: (next) => {
547
+ lastSpinnerRenderTickMs = next;
548
+ },
549
+ setRenderRequestQueuedForCurrentTurn: (next) => {
550
+ renderRequestQueuedForCurrentTurn = next;
551
+ },
552
+ setUserCommitScheduled: (next) => {
553
+ userCommitScheduled = next;
554
+ },
555
+ setViewport: (next) => {
556
+ viewport = next;
557
+ },
558
+ spinnerTickMinIntervalMs,
559
+ stopFromUnhandledQuitEvent,
560
+ timeUnwrap,
561
+ tryRenderOnce: () => tryRenderOnceImpl(),
562
+ updates,
563
+ widgetRenderer,
564
+ });
565
+ processTurnImpl = eventLoop.processTurn;
792
566
  const app = {
793
567
  view(fn) {
794
- assertOperational("view");
568
+ guards.assertOperational("view");
569
+ guards.assertLifecycleIdle("view");
795
570
  sm.assertOneOf(["Created", "Stopped"], "view: must be Created or Stopped");
796
- assertNotReentrant("view");
571
+ guards.assertNotReentrant("view");
572
+ if (routes !== undefined) {
573
+ guards.throwCode("ZRUI_MODE_CONFLICT", "view: routes are configured in createApp(); screen rendering is managed by router");
574
+ }
797
575
  if (mode === "raw")
798
- throwCode("ZRUI_MODE_CONFLICT", "view: draw mode already selected");
576
+ guards.throwCode("ZRUI_MODE_CONFLICT", "view: draw mode already selected");
799
577
  mode = "widget";
800
578
  viewFn = fn;
801
579
  },
580
+ replaceView(fn) {
581
+ guards.assertOperational("replaceView");
582
+ guards.assertLifecycleIdle("replaceView");
583
+ guards.assertNotReentrant("replaceView");
584
+ if (routes !== undefined) {
585
+ guards.throwCode("ZRUI_MODE_CONFLICT", "replaceView: routes are configured in createApp(); screen rendering is managed by router");
586
+ }
587
+ if (mode === "raw") {
588
+ guards.throwCode("ZRUI_MODE_CONFLICT", "replaceView: draw mode already selected");
589
+ }
590
+ if (mode === null)
591
+ mode = "widget";
592
+ viewFn = fn;
593
+ topLevelViewError = null;
594
+ if (sm.state === "Running") {
595
+ widgetRenderer.forceFullRenderNextFrame();
596
+ markDirty(DIRTY_VIEW);
597
+ }
598
+ },
599
+ replaceRoutes(nextRoutes) {
600
+ guards.assertOperational("replaceRoutes");
601
+ guards.assertLifecycleIdle("replaceRoutes");
602
+ guards.assertNotReentrant("replaceRoutes");
603
+ const activeRouterIntegration = routerIntegration;
604
+ if (activeRouterIntegration === null || routes === undefined) {
605
+ throw new ZrUiError("ZRUI_MODE_CONFLICT", "replaceRoutes: app was created without routes; use replaceView for view-mode apps");
606
+ }
607
+ if (mode === "raw") {
608
+ guards.throwCode("ZRUI_MODE_CONFLICT", "replaceRoutes: draw mode already selected");
609
+ }
610
+ const nextRouteKeybindings = activeRouterIntegration.replaceRoutes(nextRoutes);
611
+ keybindingHelpers.replaceRouteBindings(nextRouteKeybindings);
612
+ topLevelViewError = null;
613
+ if (sm.state === "Running") {
614
+ widgetRenderer.forceFullRenderNextFrame();
615
+ markDirty(DIRTY_VIEW);
616
+ }
617
+ },
802
618
  draw(fn) {
803
- assertOperational("draw");
619
+ guards.assertOperational("draw");
620
+ guards.assertLifecycleIdle("draw");
804
621
  sm.assertOneOf(["Created", "Stopped"], "draw: must be Created or Stopped");
805
- assertNotReentrant("draw");
622
+ guards.assertNotReentrant("draw");
806
623
  if (mode === "widget")
807
- throwCode("ZRUI_MODE_CONFLICT", "draw: view mode already selected");
624
+ guards.throwCode("ZRUI_MODE_CONFLICT", "draw: view mode already selected");
808
625
  mode = "raw";
809
626
  drawFn = fn;
810
627
  },
811
628
  onEvent(handler) {
812
- assertOperational("onEvent");
629
+ guards.assertOperational("onEvent");
813
630
  if (inCommit || inRender)
814
- throwCode("ZRUI_REENTRANT_CALL", "onEvent: re-entrant call");
631
+ guards.throwCode("ZRUI_REENTRANT_CALL", "onEvent: re-entrant call");
815
632
  const active = { value: true };
816
633
  handlers.push({ fn: handler, active });
817
634
  return () => {
818
635
  active.value = false;
819
636
  };
820
637
  },
638
+ onFocusChange(handler) {
639
+ guards.assertOperational("onFocusChange");
640
+ if (inCommit || inRender) {
641
+ guards.throwCode("ZRUI_REENTRANT_CALL", "onFocusChange: re-entrant call");
642
+ }
643
+ return focusDispatcher.register(handler);
644
+ },
821
645
  update(updater) {
822
- assertOperational("update");
646
+ guards.assertOperational("update");
647
+ guards.assertLifecycleIdle("update");
823
648
  if (inCommit)
824
- throwCode("ZRUI_REENTRANT_CALL", "update: called during commit");
825
- if (inRender)
826
- throwCode("ZRUI_UPDATE_DURING_RENDER", "update: called during render");
649
+ guards.throwCode("ZRUI_REENTRANT_CALL", "update: called during commit");
650
+ if (inRender) {
651
+ guards.throwCode("ZRUI_UPDATE_DURING_RENDER", guards.updateDuringRenderDetail("update"));
652
+ }
827
653
  updates.enqueue(updater);
828
654
  if (sm.state === "Running" && inEventHandlerDepth === 0 && !userCommitScheduled) {
829
655
  userCommitScheduled = true;
830
- scheduler.enqueue({ kind: "userCommit" });
656
+ enqueueWorkItem({ kind: "userCommit" });
831
657
  }
832
658
  },
833
659
  setTheme(next) {
834
- assertOperational("setTheme");
660
+ guards.assertOperational("setTheme");
661
+ guards.assertLifecycleIdle("setTheme");
835
662
  if (inCommit)
836
- throwCode("ZRUI_REENTRANT_CALL", "setTheme: called during commit");
837
- if (inRender)
838
- throwCode("ZRUI_UPDATE_DURING_RENDER", "setTheme: called during render");
839
- theme = coerceToLegacyTheme(next);
840
- requestRenderFromRenderer();
663
+ guards.throwCode("ZRUI_REENTRANT_CALL", "setTheme: called during commit");
664
+ if (inRender) {
665
+ guards.throwCode("ZRUI_UPDATE_DURING_RENDER", guards.updateDuringRenderDetail("setTheme"));
666
+ }
667
+ const nextTheme = compileTheme(next);
668
+ if (nextTheme === themeTransition?.to)
669
+ return;
670
+ if (nextTheme === theme) {
671
+ themeTransition = null;
672
+ return;
673
+ }
674
+ renderLoop.beginThemeTransition(nextTheme);
675
+ requestViewFromRenderer();
676
+ },
677
+ debugLayout(enabled) {
678
+ guards.assertOperational("debugLayout");
679
+ guards.assertLifecycleIdle("debugLayout");
680
+ if (mode === "raw") {
681
+ guards.throwCode("ZRUI_MODE_CONFLICT", "debugLayout: not available in draw mode");
682
+ }
683
+ const next = enabled === undefined ? !debugLayoutEnabled : enabled === true;
684
+ if (next === debugLayoutEnabled)
685
+ return debugLayoutEnabled;
686
+ debugLayoutEnabled = next;
687
+ requestViewFromRenderer();
688
+ return debugLayoutEnabled;
841
689
  },
842
690
  start() {
843
- assertOperational("start");
844
- assertNotReentrant("start");
845
- if (lifecycleBusy)
846
- throwCode("ZRUI_INVALID_STATE", "start: lifecycle operation already in flight");
691
+ guards.assertOperational("start");
692
+ guards.assertNotReentrant("start");
847
693
  sm.assertOneOf(["Created", "Stopped"], "start: must be Created or Stopped");
848
694
  if (mode === null)
849
- throwCode("ZRUI_NO_RENDER_MODE", "start: no render mode selected");
695
+ guards.throwCode("ZRUI_NO_RENDER_MODE", "start: no render mode selected");
850
696
  lifecycleBusy = "start";
851
- let p;
697
+ const startGeneration = ++lifecycleGeneration;
698
+ let promise = null;
852
699
  try {
853
- p = backend.start();
700
+ promise = backend.start();
854
701
  }
855
- catch (e) {
856
- lifecycleBusy = null;
857
- throwCode("ZRUI_BACKEND_ERROR", `backend.start threw: ${describeThrown(e)}`);
702
+ catch (error) {
703
+ if (lifecycleGeneration === startGeneration)
704
+ lifecycleBusy = null;
705
+ guards.throwCode("ZRUI_BACKEND_ERROR", `backend.start threw: ${describeThrown(error)}`);
858
706
  }
859
- return p.then(() => {
860
- lifecycleBusy = null;
861
- sm.toRunning();
862
- markDirty(DIRTY_VIEW, false);
863
- pollToken++;
864
- void pollLoop(pollToken);
865
- scheduler.enqueue({ kind: "kick" });
866
- }, (e) => {
707
+ if (promise === null)
708
+ throw new Error("start: backend.start did not return a promise");
709
+ return promise.then(async () => {
710
+ try {
711
+ backendStarted = true;
712
+ if (lifecycleGeneration !== startGeneration) {
713
+ cleanupStartedBackendAfterAbort();
714
+ return;
715
+ }
716
+ topLevelViewError = null;
717
+ const loadedTerminalProfile = await loadTerminalProfile(backend);
718
+ if (lifecycleGeneration !== startGeneration) {
719
+ cleanupStartedBackendAfterAbort();
720
+ return;
721
+ }
722
+ terminalProfile = loadedTerminalProfile;
723
+ widgetRenderer.setTerminalProfile(terminalProfile);
724
+ sm.toRunning();
725
+ markDirty(DIRTY_VIEW, false);
726
+ pollToken++;
727
+ void eventLoop.pollLoop(pollToken);
728
+ enqueueWorkItem({ kind: "kick" });
729
+ }
730
+ finally {
731
+ if (lifecycleGeneration === startGeneration && lifecycleBusy === "start") {
732
+ lifecycleBusy = null;
733
+ }
734
+ }
735
+ }, (error) => {
736
+ if (lifecycleGeneration !== startGeneration)
737
+ return;
867
738
  lifecycleBusy = null;
868
- throw new ZrUiError("ZRUI_BACKEND_ERROR", `backend.start rejected: ${describeThrown(e)}`);
739
+ throw new ZrUiError("ZRUI_BACKEND_ERROR", `backend.start rejected: ${describeThrown(error)}`);
740
+ });
741
+ },
742
+ run() {
743
+ guards.assertOperational("run");
744
+ guards.assertNotReentrant("run");
745
+ sm.assertOneOf(["Created", "Stopped"], "run: must be Created or Stopped");
746
+ if (mode === null)
747
+ guards.throwCode("ZRUI_NO_RENDER_MODE", "run: no render mode selected");
748
+ const proc = readProcessLike();
749
+ let runSettle = null;
750
+ const runController = createRunSignalController({
751
+ onDetached: () => {
752
+ if (runSettle !== null && settleActiveRun === runSettle) {
753
+ settleActiveRun = null;
754
+ }
755
+ },
756
+ onSignal: async () => {
757
+ try {
758
+ if (sm.state === "Running")
759
+ await app.stop();
760
+ }
761
+ catch {
762
+ // ignore
763
+ }
764
+ try {
765
+ app.dispose();
766
+ }
767
+ catch {
768
+ // ignore
769
+ }
770
+ try {
771
+ proc?.exit?.(0);
772
+ }
773
+ catch {
774
+ // ignore
775
+ }
776
+ },
777
+ processLike: proc,
778
+ });
779
+ runSettle = runController.settle;
780
+ settleActiveRun = runController.settle;
781
+ let startPromise;
782
+ try {
783
+ startPromise = app.start();
784
+ }
785
+ catch (error) {
786
+ runController.detach();
787
+ throw error;
788
+ }
789
+ return startPromise.then(() => {
790
+ if (!runController.canRegisterSignals) {
791
+ runController.settle();
792
+ }
793
+ return runController.promise;
794
+ }, (error) => {
795
+ runController.detach();
796
+ throw error;
869
797
  });
870
798
  },
871
799
  stop() {
872
- assertOperational("stop");
873
- assertNotReentrant("stop");
874
- if (lifecycleBusy)
875
- throwCode("ZRUI_INVALID_STATE", "stop: lifecycle operation already in flight");
800
+ guards.assertOperational("stop");
801
+ guards.assertNotReentrant("stop");
876
802
  sm.assertOneOf(["Running"], "stop: must be Running");
877
803
  lifecycleBusy = "stop";
878
- // Stop polling immediately so in-flight pollEvents rejections from backend.stop()
879
- // are treated as part of shutdown (not a fatal backend error).
804
+ const stopGeneration = ++lifecycleGeneration;
880
805
  pollToken++;
881
- // Clear any in-flight frames so a shutdown doesn't strand the app in a state
882
- // where a future start() cannot submit frames.
883
806
  framesInFlight = 0;
884
- let p;
807
+ let promise = null;
885
808
  try {
886
- p = backend.stop();
809
+ promise = backend.stop();
887
810
  }
888
- catch (e) {
889
- lifecycleBusy = null;
890
- throwCode("ZRUI_BACKEND_ERROR", `backend.stop threw: ${describeThrown(e)}`);
811
+ catch (error) {
812
+ if (lifecycleGeneration === stopGeneration)
813
+ lifecycleBusy = null;
814
+ guards.throwCode("ZRUI_BACKEND_ERROR", `backend.stop threw: ${describeThrown(error)}`);
891
815
  }
892
- return p.then(() => {
893
- lifecycleBusy = null;
894
- sm.toStopped();
895
- }, (e) => {
816
+ if (promise === null)
817
+ throw new Error("stop: backend.stop did not return a promise");
818
+ return promise.then(() => {
819
+ try {
820
+ if (lifecycleGeneration !== stopGeneration)
821
+ return;
822
+ backendStarted = false;
823
+ themeTransition = null;
824
+ sm.toStopped();
825
+ settleActiveRun?.();
826
+ }
827
+ finally {
828
+ if (lifecycleGeneration === stopGeneration && lifecycleBusy === "stop") {
829
+ lifecycleBusy = null;
830
+ }
831
+ }
832
+ }, (error) => {
833
+ if (lifecycleGeneration !== stopGeneration)
834
+ return;
896
835
  lifecycleBusy = null;
897
- throw new ZrUiError("ZRUI_BACKEND_ERROR", `backend.stop rejected: ${describeThrown(e)}`);
836
+ throw new ZrUiError("ZRUI_BACKEND_ERROR", `backend.stop rejected: ${describeThrown(error)}`);
898
837
  });
899
838
  },
900
839
  dispose() {
901
840
  if (inCommit || inRender || inEventHandlerDepth > 0) {
902
- throwCode("ZRUI_REENTRANT_CALL", "dispose: re-entrant call");
841
+ guards.throwCode("ZRUI_REENTRANT_CALL", "dispose: re-entrant call");
903
842
  }
904
843
  const st0 = sm.state;
905
844
  if (st0 === "Disposed")
906
845
  return;
846
+ lifecycleGeneration++;
847
+ lifecycleBusy = null;
907
848
  pollToken++;
849
+ themeTransition = null;
908
850
  try {
909
851
  sm.dispose();
910
852
  }
911
853
  catch {
912
854
  // ignore
913
855
  }
914
- if (st0 === "Running") {
856
+ if (st0 === "Running" || backendStarted) {
915
857
  try {
916
858
  void backend.stop().catch(() => undefined);
917
859
  }
@@ -919,32 +861,71 @@ export function createApp(opts) {
919
861
  // ignore
920
862
  }
921
863
  }
864
+ backendStarted = false;
922
865
  try {
923
866
  backend.dispose();
924
867
  }
925
868
  catch {
926
869
  // ignore
927
870
  }
871
+ settleActiveRun?.();
928
872
  },
929
- /* --- Keybinding API --- */
930
873
  keys(bindings) {
931
- assertOperational("keys");
932
- keybindingState = registerBindings(keybindingState, bindings).state;
933
- keybindingsEnabled = computeKeybindingsEnabled(keybindingState);
874
+ guards.assertKeybindingMutationAllowed("keys");
875
+ guards.assertLifecycleIdle("keys");
876
+ keybindingHelpers.registerAppBindings(bindings);
934
877
  },
935
878
  modes(modes) {
936
- assertOperational("modes");
937
- keybindingState = registerModes(keybindingState, modes).state;
938
- keybindingsEnabled = computeKeybindingsEnabled(keybindingState);
879
+ guards.assertKeybindingMutationAllowed("modes");
880
+ guards.assertLifecycleIdle("modes");
881
+ keybindingHelpers.registerAppModes(modes);
939
882
  },
940
883
  setMode(modeName) {
941
- assertOperational("setMode");
942
- keybindingState = setMode(keybindingState, modeName);
884
+ guards.assertKeybindingMutationAllowed("setMode");
885
+ guards.assertLifecycleIdle("setMode");
886
+ applyKeybindingState(setMode(keybindingState, modeName));
943
887
  },
944
888
  getMode() {
945
889
  return getMode(keybindingState);
946
890
  },
891
+ getBindings(mode) {
892
+ return getBindings(keybindingState, mode);
893
+ },
894
+ get pendingChord() {
895
+ return getPendingChord(keybindingState);
896
+ },
897
+ getTerminalProfile() {
898
+ return terminalProfile;
899
+ },
900
+ measureElement(id) {
901
+ if (mode !== "widget")
902
+ return null;
903
+ return widgetRenderer.getRectByIdIndex().get(id) ?? null;
904
+ },
905
+ ...(routerIntegration ? { router: routerIntegration.router } : {}),
947
906
  };
907
+ routeStateUpdater = app.update;
908
+ if (routerIntegration) {
909
+ keybindingHelpers.replaceRouteBindings(routerIntegration.routeKeybindings);
910
+ }
911
+ Object.defineProperty(app, APP_INTERNAL_REQUEST_VIEW_LAYOUT_MARKER, {
912
+ value: () => {
913
+ if (sm.state !== "Running")
914
+ return;
915
+ markDirty(DIRTY_VIEW | DIRTY_LAYOUT);
916
+ },
917
+ enumerable: false,
918
+ configurable: false,
919
+ writable: false,
920
+ });
921
+ Object.defineProperty(app, APP_INTERNAL_SET_RUNTIME_BREADCRUMB_HOOKS_MARKER, {
922
+ value: (hooks) => {
923
+ runtimeBreadcrumbHelpers.setInspectorHooks(hooks);
924
+ },
925
+ enumerable: false,
926
+ configurable: false,
927
+ writable: false,
928
+ });
948
929
  return app;
949
930
  }
950
931
  //# sourceMappingURL=createApp.js.map