@rezi-ui/core 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (922) hide show
  1. package/README.md +12 -0
  2. package/dist/abi.d.ts +72 -0
  3. package/dist/abi.d.ts.map +1 -0
  4. package/dist/abi.js +86 -0
  5. package/dist/abi.js.map +1 -0
  6. package/dist/app/__tests__/dirtyFlagPlan.test.d.ts +2 -0
  7. package/dist/app/__tests__/dirtyFlagPlan.test.d.ts.map +1 -0
  8. package/dist/app/__tests__/dirtyFlagPlan.test.js +207 -0
  9. package/dist/app/__tests__/dirtyFlagPlan.test.js.map +1 -0
  10. package/dist/app/__tests__/eventPump.test.d.ts +2 -0
  11. package/dist/app/__tests__/eventPump.test.d.ts.map +1 -0
  12. package/dist/app/__tests__/eventPump.test.js +48 -0
  13. package/dist/app/__tests__/eventPump.test.js.map +1 -0
  14. package/dist/app/__tests__/fatal.test.d.ts +2 -0
  15. package/dist/app/__tests__/fatal.test.d.ts.map +1 -0
  16. package/dist/app/__tests__/fatal.test.js +27 -0
  17. package/dist/app/__tests__/fatal.test.js.map +1 -0
  18. package/dist/app/__tests__/frameCoalescing.test.d.ts +2 -0
  19. package/dist/app/__tests__/frameCoalescing.test.d.ts.map +1 -0
  20. package/dist/app/__tests__/frameCoalescing.test.js +33 -0
  21. package/dist/app/__tests__/frameCoalescing.test.js.map +1 -0
  22. package/dist/app/__tests__/helpers.d.ts +39 -0
  23. package/dist/app/__tests__/helpers.d.ts.map +1 -0
  24. package/dist/app/__tests__/helpers.js +99 -0
  25. package/dist/app/__tests__/helpers.js.map +1 -0
  26. package/dist/app/__tests__/interactivePriority.test.d.ts +2 -0
  27. package/dist/app/__tests__/interactivePriority.test.d.ts.map +1 -0
  28. package/dist/app/__tests__/interactivePriority.test.js +61 -0
  29. package/dist/app/__tests__/interactivePriority.test.js.map +1 -0
  30. package/dist/app/__tests__/modes.test.d.ts +2 -0
  31. package/dist/app/__tests__/modes.test.d.ts.map +1 -0
  32. package/dist/app/__tests__/modes.test.js +48 -0
  33. package/dist/app/__tests__/modes.test.js.map +1 -0
  34. package/dist/app/__tests__/onEventHandlers.test.d.ts +2 -0
  35. package/dist/app/__tests__/onEventHandlers.test.d.ts.map +1 -0
  36. package/dist/app/__tests__/onEventHandlers.test.js +41 -0
  37. package/dist/app/__tests__/onEventHandlers.test.js.map +1 -0
  38. package/dist/app/__tests__/rawRender.test.d.ts +2 -0
  39. package/dist/app/__tests__/rawRender.test.d.ts.map +1 -0
  40. package/dist/app/__tests__/rawRender.test.js +102 -0
  41. package/dist/app/__tests__/rawRender.test.js.map +1 -0
  42. package/dist/app/__tests__/stateMachine.test.d.ts +2 -0
  43. package/dist/app/__tests__/stateMachine.test.d.ts.map +1 -0
  44. package/dist/app/__tests__/stateMachine.test.js +22 -0
  45. package/dist/app/__tests__/stateMachine.test.js.map +1 -0
  46. package/dist/app/__tests__/stop_during_frame_rejection.test.d.ts +2 -0
  47. package/dist/app/__tests__/stop_during_frame_rejection.test.d.ts.map +1 -0
  48. package/dist/app/__tests__/stop_during_frame_rejection.test.js +54 -0
  49. package/dist/app/__tests__/stop_during_frame_rejection.test.js.map +1 -0
  50. package/dist/app/__tests__/stubBackend.d.ts +23 -0
  51. package/dist/app/__tests__/stubBackend.d.ts.map +1 -0
  52. package/dist/app/__tests__/stubBackend.js +76 -0
  53. package/dist/app/__tests__/stubBackend.js.map +1 -0
  54. package/dist/app/__tests__/syncFrameAckFastPath.test.d.ts +2 -0
  55. package/dist/app/__tests__/syncFrameAckFastPath.test.d.ts.map +1 -0
  56. package/dist/app/__tests__/syncFrameAckFastPath.test.js +47 -0
  57. package/dist/app/__tests__/syncFrameAckFastPath.test.js.map +1 -0
  58. package/dist/app/__tests__/turnScheduler.test.d.ts +2 -0
  59. package/dist/app/__tests__/turnScheduler.test.d.ts.map +1 -0
  60. package/dist/app/__tests__/turnScheduler.test.js +20 -0
  61. package/dist/app/__tests__/turnScheduler.test.js.map +1 -0
  62. package/dist/app/__tests__/updates.test.d.ts +2 -0
  63. package/dist/app/__tests__/updates.test.d.ts.map +1 -0
  64. package/dist/app/__tests__/updates.test.js +81 -0
  65. package/dist/app/__tests__/updates.test.js.map +1 -0
  66. package/dist/app/__tests__/widgetRenderer.integration.test.d.ts +2 -0
  67. package/dist/app/__tests__/widgetRenderer.integration.test.d.ts.map +1 -0
  68. package/dist/app/__tests__/widgetRenderer.integration.test.js +305 -0
  69. package/dist/app/__tests__/widgetRenderer.integration.test.js.map +1 -0
  70. package/dist/app/createApp.d.ts +68 -0
  71. package/dist/app/createApp.d.ts.map +1 -0
  72. package/dist/app/createApp.js +908 -0
  73. package/dist/app/createApp.js.map +1 -0
  74. package/dist/app/rawRenderer.d.ts +58 -0
  75. package/dist/app/rawRenderer.d.ts.map +1 -0
  76. package/dist/app/rawRenderer.js +89 -0
  77. package/dist/app/rawRenderer.js.map +1 -0
  78. package/dist/app/stateMachine.d.ts +44 -0
  79. package/dist/app/stateMachine.d.ts.map +1 -0
  80. package/dist/app/stateMachine.js +76 -0
  81. package/dist/app/stateMachine.js.map +1 -0
  82. package/dist/app/turnScheduler.d.ts +43 -0
  83. package/dist/app/turnScheduler.d.ts.map +1 -0
  84. package/dist/app/turnScheduler.js +72 -0
  85. package/dist/app/turnScheduler.js.map +1 -0
  86. package/dist/app/updateQueue.d.ts +32 -0
  87. package/dist/app/updateQueue.d.ts.map +1 -0
  88. package/dist/app/updateQueue.js +37 -0
  89. package/dist/app/updateQueue.js.map +1 -0
  90. package/dist/app/widgetRenderer/codeEditorRouting.d.ts +8 -0
  91. package/dist/app/widgetRenderer/codeEditorRouting.d.ts.map +1 -0
  92. package/dist/app/widgetRenderer/codeEditorRouting.js +184 -0
  93. package/dist/app/widgetRenderer/codeEditorRouting.js.map +1 -0
  94. package/dist/app/widgetRenderer/commandPaletteRouting.d.ts +5 -0
  95. package/dist/app/widgetRenderer/commandPaletteRouting.d.ts.map +1 -0
  96. package/dist/app/widgetRenderer/commandPaletteRouting.js +143 -0
  97. package/dist/app/widgetRenderer/commandPaletteRouting.js.map +1 -0
  98. package/dist/app/widgetRenderer/fileNodeCache.d.ts +9 -0
  99. package/dist/app/widgetRenderer/fileNodeCache.d.ts.map +1 -0
  100. package/dist/app/widgetRenderer/fileNodeCache.js +34 -0
  101. package/dist/app/widgetRenderer/fileNodeCache.js.map +1 -0
  102. package/dist/app/widgetRenderer/filePickerRouting.d.ts +6 -0
  103. package/dist/app/widgetRenderer/filePickerRouting.d.ts.map +1 -0
  104. package/dist/app/widgetRenderer/filePickerRouting.js +145 -0
  105. package/dist/app/widgetRenderer/filePickerRouting.js.map +1 -0
  106. package/dist/app/widgetRenderer/renderCaches.d.ts +55 -0
  107. package/dist/app/widgetRenderer/renderCaches.d.ts.map +1 -0
  108. package/dist/app/widgetRenderer/renderCaches.js +202 -0
  109. package/dist/app/widgetRenderer/renderCaches.js.map +1 -0
  110. package/dist/app/widgetRenderer/submitFramePipeline.d.ts +18 -0
  111. package/dist/app/widgetRenderer/submitFramePipeline.d.ts.map +1 -0
  112. package/dist/app/widgetRenderer/submitFramePipeline.js +253 -0
  113. package/dist/app/widgetRenderer/submitFramePipeline.js.map +1 -0
  114. package/dist/app/widgetRenderer/toolApprovalRouting.d.ts +5 -0
  115. package/dist/app/widgetRenderer/toolApprovalRouting.d.ts.map +1 -0
  116. package/dist/app/widgetRenderer/toolApprovalRouting.js +56 -0
  117. package/dist/app/widgetRenderer/toolApprovalRouting.js.map +1 -0
  118. package/dist/app/widgetRenderer.d.ts +238 -0
  119. package/dist/app/widgetRenderer.d.ts.map +1 -0
  120. package/dist/app/widgetRenderer.js +1891 -0
  121. package/dist/app/widgetRenderer.js.map +1 -0
  122. package/dist/backend.d.ts +95 -0
  123. package/dist/backend.d.ts.map +1 -0
  124. package/dist/backend.js +10 -0
  125. package/dist/backend.js.map +1 -0
  126. package/dist/binary/__tests__/reader.test.d.ts +2 -0
  127. package/dist/binary/__tests__/reader.test.d.ts.map +1 -0
  128. package/dist/binary/__tests__/reader.test.js +35 -0
  129. package/dist/binary/__tests__/reader.test.js.map +1 -0
  130. package/dist/binary/__tests__/writer.test.d.ts +2 -0
  131. package/dist/binary/__tests__/writer.test.d.ts.map +1 -0
  132. package/dist/binary/__tests__/writer.test.js +36 -0
  133. package/dist/binary/__tests__/writer.test.js.map +1 -0
  134. package/dist/binary/parseError.d.ts +37 -0
  135. package/dist/binary/parseError.d.ts.map +1 -0
  136. package/dist/binary/parseError.js +33 -0
  137. package/dist/binary/parseError.js.map +1 -0
  138. package/dist/binary/reader.d.ts +52 -0
  139. package/dist/binary/reader.d.ts.map +1 -0
  140. package/dist/binary/reader.js +107 -0
  141. package/dist/binary/reader.js.map +1 -0
  142. package/dist/binary/writer.d.ts +59 -0
  143. package/dist/binary/writer.d.ts.map +1 -0
  144. package/dist/binary/writer.js +114 -0
  145. package/dist/binary/writer.js.map +1 -0
  146. package/dist/cursor/cursorState.d.ts +89 -0
  147. package/dist/cursor/cursorState.d.ts.map +1 -0
  148. package/dist/cursor/cursorState.js +82 -0
  149. package/dist/cursor/cursorState.js.map +1 -0
  150. package/dist/cursor/index.d.ts +9 -0
  151. package/dist/cursor/index.d.ts.map +1 -0
  152. package/dist/cursor/index.js +9 -0
  153. package/dist/cursor/index.js.map +1 -0
  154. package/dist/debug/__tests__/eventTrace.test.d.ts +7 -0
  155. package/dist/debug/__tests__/eventTrace.test.d.ts.map +1 -0
  156. package/dist/debug/__tests__/eventTrace.test.js +59 -0
  157. package/dist/debug/__tests__/eventTrace.test.js.map +1 -0
  158. package/dist/debug/__tests__/frameInspector.test.d.ts +8 -0
  159. package/dist/debug/__tests__/frameInspector.test.d.ts.map +1 -0
  160. package/dist/debug/__tests__/frameInspector.test.js +121 -0
  161. package/dist/debug/__tests__/frameInspector.test.js.map +1 -0
  162. package/dist/debug/__tests__/parsers.test.d.ts +8 -0
  163. package/dist/debug/__tests__/parsers.test.d.ts.map +1 -0
  164. package/dist/debug/__tests__/parsers.test.js +265 -0
  165. package/dist/debug/__tests__/parsers.test.js.map +1 -0
  166. package/dist/debug/__tests__/stateTimeline.test.d.ts +7 -0
  167. package/dist/debug/__tests__/stateTimeline.test.d.ts.map +1 -0
  168. package/dist/debug/__tests__/stateTimeline.test.js +55 -0
  169. package/dist/debug/__tests__/stateTimeline.test.js.map +1 -0
  170. package/dist/debug/__tests__/uiDebug.test.d.ts +2 -0
  171. package/dist/debug/__tests__/uiDebug.test.d.ts.map +1 -0
  172. package/dist/debug/__tests__/uiDebug.test.js +18 -0
  173. package/dist/debug/__tests__/uiDebug.test.js.map +1 -0
  174. package/dist/debug/constants.d.ts +84 -0
  175. package/dist/debug/constants.d.ts.map +1 -0
  176. package/dist/debug/constants.js +165 -0
  177. package/dist/debug/constants.js.map +1 -0
  178. package/dist/debug/debug.d.ts +14 -0
  179. package/dist/debug/debug.d.ts.map +1 -0
  180. package/dist/debug/debug.js +54 -0
  181. package/dist/debug/debug.js.map +1 -0
  182. package/dist/debug/debugController.d.ts +151 -0
  183. package/dist/debug/debugController.d.ts.map +1 -0
  184. package/dist/debug/debugController.js +232 -0
  185. package/dist/debug/debugController.js.map +1 -0
  186. package/dist/debug/errorAggregator.d.ts +89 -0
  187. package/dist/debug/errorAggregator.d.ts.map +1 -0
  188. package/dist/debug/errorAggregator.js +150 -0
  189. package/dist/debug/errorAggregator.js.map +1 -0
  190. package/dist/debug/eventTrace.d.ts +90 -0
  191. package/dist/debug/eventTrace.d.ts.map +1 -0
  192. package/dist/debug/eventTrace.js +153 -0
  193. package/dist/debug/eventTrace.js.map +1 -0
  194. package/dist/debug/frameInspector.d.ts +88 -0
  195. package/dist/debug/frameInspector.d.ts.map +1 -0
  196. package/dist/debug/frameInspector.js +140 -0
  197. package/dist/debug/frameInspector.js.map +1 -0
  198. package/dist/debug/index.d.ts +25 -0
  199. package/dist/debug/index.d.ts.map +1 -0
  200. package/dist/debug/index.js +58 -0
  201. package/dist/debug/index.js.map +1 -0
  202. package/dist/debug/parsers.d.ts +138 -0
  203. package/dist/debug/parsers.d.ts.map +1 -0
  204. package/dist/debug/parsers.js +397 -0
  205. package/dist/debug/parsers.js.map +1 -0
  206. package/dist/debug/stateTimeline.d.ts +73 -0
  207. package/dist/debug/stateTimeline.d.ts.map +1 -0
  208. package/dist/debug/stateTimeline.js +109 -0
  209. package/dist/debug/stateTimeline.js.map +1 -0
  210. package/dist/debug/types.d.ts +261 -0
  211. package/dist/debug/types.d.ts.map +1 -0
  212. package/dist/debug/types.js +13 -0
  213. package/dist/debug/types.js.map +1 -0
  214. package/dist/drawApi.d.ts +74 -0
  215. package/dist/drawApi.d.ts.map +1 -0
  216. package/dist/drawApi.js +6 -0
  217. package/dist/drawApi.js.map +1 -0
  218. package/dist/drawlist/__tests__/builder_v1_golden.test.d.ts +2 -0
  219. package/dist/drawlist/__tests__/builder_v1_golden.test.d.ts.map +1 -0
  220. package/dist/drawlist/__tests__/builder_v1_golden.test.js +132 -0
  221. package/dist/drawlist/__tests__/builder_v1_golden.test.js.map +1 -0
  222. package/dist/drawlist/__tests__/builder_v1_text_run.test.d.ts +2 -0
  223. package/dist/drawlist/__tests__/builder_v1_text_run.test.d.ts.map +1 -0
  224. package/dist/drawlist/__tests__/builder_v1_text_run.test.js +93 -0
  225. package/dist/drawlist/__tests__/builder_v1_text_run.test.js.map +1 -0
  226. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.d.ts +2 -0
  227. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.d.ts.map +1 -0
  228. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.js +116 -0
  229. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.js.map +1 -0
  230. package/dist/drawlist/__tests__/builder_v2_cursor.test.d.ts +12 -0
  231. package/dist/drawlist/__tests__/builder_v2_cursor.test.d.ts.map +1 -0
  232. package/dist/drawlist/__tests__/builder_v2_cursor.test.js +201 -0
  233. package/dist/drawlist/__tests__/builder_v2_cursor.test.js.map +1 -0
  234. package/dist/drawlist/builder_v1.d.ts +69 -0
  235. package/dist/drawlist/builder_v1.d.ts.map +1 -0
  236. package/dist/drawlist/builder_v1.js +984 -0
  237. package/dist/drawlist/builder_v1.js.map +1 -0
  238. package/dist/drawlist/builder_v2.d.ts +57 -0
  239. package/dist/drawlist/builder_v2.d.ts.map +1 -0
  240. package/dist/drawlist/builder_v2.js +953 -0
  241. package/dist/drawlist/builder_v2.js.map +1 -0
  242. package/dist/drawlist/index.d.ts +13 -0
  243. package/dist/drawlist/index.d.ts.map +1 -0
  244. package/dist/drawlist/index.js +12 -0
  245. package/dist/drawlist/index.js.map +1 -0
  246. package/dist/drawlist/types.d.ts +138 -0
  247. package/dist/drawlist/types.d.ts.map +1 -0
  248. package/dist/drawlist/types.js +14 -0
  249. package/dist/drawlist/types.js.map +1 -0
  250. package/dist/events.d.ts +70 -0
  251. package/dist/events.d.ts.map +1 -0
  252. package/dist/events.js +7 -0
  253. package/dist/events.js.map +1 -0
  254. package/dist/focus/styles.d.ts +213 -0
  255. package/dist/focus/styles.d.ts.map +1 -0
  256. package/dist/focus/styles.js +267 -0
  257. package/dist/focus/styles.js.map +1 -0
  258. package/dist/forms/__tests__/useForm.test.d.ts +7 -0
  259. package/dist/forms/__tests__/useForm.test.d.ts.map +1 -0
  260. package/dist/forms/__tests__/useForm.test.js +371 -0
  261. package/dist/forms/__tests__/useForm.test.js.map +1 -0
  262. package/dist/forms/bind.d.ts +15 -0
  263. package/dist/forms/bind.d.ts.map +1 -0
  264. package/dist/forms/bind.js +40 -0
  265. package/dist/forms/bind.js.map +1 -0
  266. package/dist/forms/index.d.ts +10 -0
  267. package/dist/forms/index.d.ts.map +1 -0
  268. package/dist/forms/index.js +9 -0
  269. package/dist/forms/index.js.map +1 -0
  270. package/dist/forms/types.d.ts +101 -0
  271. package/dist/forms/types.d.ts.map +1 -0
  272. package/dist/forms/types.js +10 -0
  273. package/dist/forms/types.js.map +1 -0
  274. package/dist/forms/useForm.d.ts +54 -0
  275. package/dist/forms/useForm.d.ts.map +1 -0
  276. package/dist/forms/useForm.js +316 -0
  277. package/dist/forms/useForm.js.map +1 -0
  278. package/dist/forms/validation.d.ts +67 -0
  279. package/dist/forms/validation.d.ts.map +1 -0
  280. package/dist/forms/validation.js +135 -0
  281. package/dist/forms/validation.js.map +1 -0
  282. package/dist/icons/index.d.ts +5 -0
  283. package/dist/icons/index.d.ts.map +1 -0
  284. package/dist/icons/index.js +9 -0
  285. package/dist/icons/index.js.map +1 -0
  286. package/dist/icons/registry.d.ts +1452 -0
  287. package/dist/icons/registry.d.ts.map +1 -0
  288. package/dist/icons/registry.js +192 -0
  289. package/dist/icons/registry.js.map +1 -0
  290. package/dist/index.d.ts +197 -0
  291. package/dist/index.d.ts.map +1 -0
  292. package/dist/index.js +221 -0
  293. package/dist/index.js.map +1 -0
  294. package/dist/keybindings/__tests__/chordMatcher.test.d.ts +2 -0
  295. package/dist/keybindings/__tests__/chordMatcher.test.d.ts.map +1 -0
  296. package/dist/keybindings/__tests__/chordMatcher.test.js +238 -0
  297. package/dist/keybindings/__tests__/chordMatcher.test.js.map +1 -0
  298. package/dist/keybindings/__tests__/manager.test.d.ts +2 -0
  299. package/dist/keybindings/__tests__/manager.test.d.ts.map +1 -0
  300. package/dist/keybindings/__tests__/manager.test.js +377 -0
  301. package/dist/keybindings/__tests__/manager.test.js.map +1 -0
  302. package/dist/keybindings/__tests__/parser.test.d.ts +2 -0
  303. package/dist/keybindings/__tests__/parser.test.d.ts.map +1 -0
  304. package/dist/keybindings/__tests__/parser.test.js +386 -0
  305. package/dist/keybindings/__tests__/parser.test.js.map +1 -0
  306. package/dist/keybindings/chordMatcher.d.ts +75 -0
  307. package/dist/keybindings/chordMatcher.d.ts.map +1 -0
  308. package/dist/keybindings/chordMatcher.js +224 -0
  309. package/dist/keybindings/chordMatcher.js.map +1 -0
  310. package/dist/keybindings/index.d.ts +16 -0
  311. package/dist/keybindings/index.d.ts.map +1 -0
  312. package/dist/keybindings/index.js +31 -0
  313. package/dist/keybindings/index.js.map +1 -0
  314. package/dist/keybindings/keyCodes.d.ts +84 -0
  315. package/dist/keybindings/keyCodes.d.ts.map +1 -0
  316. package/dist/keybindings/keyCodes.js +182 -0
  317. package/dist/keybindings/keyCodes.js.map +1 -0
  318. package/dist/keybindings/manager.d.ts +168 -0
  319. package/dist/keybindings/manager.d.ts.map +1 -0
  320. package/dist/keybindings/manager.js +290 -0
  321. package/dist/keybindings/manager.js.map +1 -0
  322. package/dist/keybindings/parser.d.ts +71 -0
  323. package/dist/keybindings/parser.d.ts.map +1 -0
  324. package/dist/keybindings/parser.js +252 -0
  325. package/dist/keybindings/parser.js.map +1 -0
  326. package/dist/keybindings/types.d.ts +131 -0
  327. package/dist/keybindings/types.d.ts.map +1 -0
  328. package/dist/keybindings/types.js +11 -0
  329. package/dist/keybindings/types.js.map +1 -0
  330. package/dist/layout/__tests__/constraints.golden.test.d.ts +2 -0
  331. package/dist/layout/__tests__/constraints.golden.test.d.ts.map +1 -0
  332. package/dist/layout/__tests__/constraints.golden.test.js +86 -0
  333. package/dist/layout/__tests__/constraints.golden.test.js.map +1 -0
  334. package/dist/layout/__tests__/hitTest.golden.test.d.ts +2 -0
  335. package/dist/layout/__tests__/hitTest.golden.test.d.ts.map +1 -0
  336. package/dist/layout/__tests__/hitTest.golden.test.js +74 -0
  337. package/dist/layout/__tests__/hitTest.golden.test.js.map +1 -0
  338. package/dist/layout/__tests__/layout.edgecases.test.d.ts +2 -0
  339. package/dist/layout/__tests__/layout.edgecases.test.d.ts.map +1 -0
  340. package/dist/layout/__tests__/layout.edgecases.test.js +152 -0
  341. package/dist/layout/__tests__/layout.edgecases.test.js.map +1 -0
  342. package/dist/layout/__tests__/layout.golden.test.d.ts +2 -0
  343. package/dist/layout/__tests__/layout.golden.test.d.ts.map +1 -0
  344. package/dist/layout/__tests__/layout.golden.test.js +69 -0
  345. package/dist/layout/__tests__/layout.golden.test.js.map +1 -0
  346. package/dist/layout/__tests__/layout.perf.test.d.ts +8 -0
  347. package/dist/layout/__tests__/layout.perf.test.d.ts.map +1 -0
  348. package/dist/layout/__tests__/layout.perf.test.js +179 -0
  349. package/dist/layout/__tests__/layout.perf.test.js.map +1 -0
  350. package/dist/layout/__tests__/measure.validation.test.d.ts +2 -0
  351. package/dist/layout/__tests__/measure.validation.test.d.ts.map +1 -0
  352. package/dist/layout/__tests__/measure.validation.test.js +16 -0
  353. package/dist/layout/__tests__/measure.validation.test.js.map +1 -0
  354. package/dist/layout/__tests__/spacing.test.d.ts +2 -0
  355. package/dist/layout/__tests__/spacing.test.d.ts.map +1 -0
  356. package/dist/layout/__tests__/spacing.test.js +9 -0
  357. package/dist/layout/__tests__/spacing.test.js.map +1 -0
  358. package/dist/layout/__tests__/sweep.robustness.test.d.ts +11 -0
  359. package/dist/layout/__tests__/sweep.robustness.test.d.ts.map +1 -0
  360. package/dist/layout/__tests__/sweep.robustness.test.js +491 -0
  361. package/dist/layout/__tests__/sweep.robustness.test.js.map +1 -0
  362. package/dist/layout/__tests__/textMeasure.golden.test.d.ts +2 -0
  363. package/dist/layout/__tests__/textMeasure.golden.test.d.ts.map +1 -0
  364. package/dist/layout/__tests__/textMeasure.golden.test.js +32 -0
  365. package/dist/layout/__tests__/textMeasure.golden.test.js.map +1 -0
  366. package/dist/layout/constraints.d.ts +27 -0
  367. package/dist/layout/constraints.d.ts.map +1 -0
  368. package/dist/layout/constraints.js +57 -0
  369. package/dist/layout/constraints.js.map +1 -0
  370. package/dist/layout/engine/bounds.d.ts +7 -0
  371. package/dist/layout/engine/bounds.d.ts.map +1 -0
  372. package/dist/layout/engine/bounds.js +25 -0
  373. package/dist/layout/engine/bounds.js.map +1 -0
  374. package/dist/layout/engine/flex.d.ts +11 -0
  375. package/dist/layout/engine/flex.d.ts.map +1 -0
  376. package/dist/layout/engine/flex.js +162 -0
  377. package/dist/layout/engine/flex.js.map +1 -0
  378. package/dist/layout/engine/guards.d.ts +14 -0
  379. package/dist/layout/engine/guards.d.ts.map +1 -0
  380. package/dist/layout/engine/guards.js +36 -0
  381. package/dist/layout/engine/guards.js.map +1 -0
  382. package/dist/layout/engine/layoutEngine.d.ts +41 -0
  383. package/dist/layout/engine/layoutEngine.d.ts.map +1 -0
  384. package/dist/layout/engine/layoutEngine.js +344 -0
  385. package/dist/layout/engine/layoutEngine.js.map +1 -0
  386. package/dist/layout/engine/layoutTree.d.ts +6 -0
  387. package/dist/layout/engine/layoutTree.d.ts.map +1 -0
  388. package/dist/layout/engine/layoutTree.js +16 -0
  389. package/dist/layout/engine/layoutTree.js.map +1 -0
  390. package/dist/layout/engine/pool.d.ts +10 -0
  391. package/dist/layout/engine/pool.d.ts.map +1 -0
  392. package/dist/layout/engine/pool.js +33 -0
  393. package/dist/layout/engine/pool.js.map +1 -0
  394. package/dist/layout/engine/result.d.ts +3 -0
  395. package/dist/layout/engine/result.d.ts.map +1 -0
  396. package/dist/layout/engine/result.js +4 -0
  397. package/dist/layout/engine/result.js.map +1 -0
  398. package/dist/layout/engine/types.d.ts +12 -0
  399. package/dist/layout/engine/types.d.ts.map +1 -0
  400. package/dist/layout/engine/types.js +2 -0
  401. package/dist/layout/engine/types.js.map +1 -0
  402. package/dist/layout/hitTest.d.ts +25 -0
  403. package/dist/layout/hitTest.d.ts.map +1 -0
  404. package/dist/layout/hitTest.js +111 -0
  405. package/dist/layout/hitTest.js.map +1 -0
  406. package/dist/layout/kinds/box.d.ts +10 -0
  407. package/dist/layout/kinds/box.d.ts.map +1 -0
  408. package/dist/layout/kinds/box.js +140 -0
  409. package/dist/layout/kinds/box.js.map +1 -0
  410. package/dist/layout/kinds/collections.d.ts +7 -0
  411. package/dist/layout/kinds/collections.d.ts.map +1 -0
  412. package/dist/layout/kinds/collections.js +87 -0
  413. package/dist/layout/kinds/collections.js.map +1 -0
  414. package/dist/layout/kinds/leaf.d.ts +7 -0
  415. package/dist/layout/kinds/leaf.d.ts.map +1 -0
  416. package/dist/layout/kinds/leaf.js +390 -0
  417. package/dist/layout/kinds/leaf.js.map +1 -0
  418. package/dist/layout/kinds/overlays.d.ts +10 -0
  419. package/dist/layout/kinds/overlays.d.ts.map +1 -0
  420. package/dist/layout/kinds/overlays.js +302 -0
  421. package/dist/layout/kinds/overlays.js.map +1 -0
  422. package/dist/layout/kinds/splitPane.d.ts +9 -0
  423. package/dist/layout/kinds/splitPane.d.ts.map +1 -0
  424. package/dist/layout/kinds/splitPane.js +118 -0
  425. package/dist/layout/kinds/splitPane.js.map +1 -0
  426. package/dist/layout/kinds/stack.d.ts +10 -0
  427. package/dist/layout/kinds/stack.d.ts.map +1 -0
  428. package/dist/layout/kinds/stack.js +803 -0
  429. package/dist/layout/kinds/stack.js.map +1 -0
  430. package/dist/layout/layout.d.ts +11 -0
  431. package/dist/layout/layout.d.ts.map +1 -0
  432. package/dist/layout/layout.js +10 -0
  433. package/dist/layout/layout.js.map +1 -0
  434. package/dist/layout/positioning.d.ts +124 -0
  435. package/dist/layout/positioning.d.ts.map +1 -0
  436. package/dist/layout/positioning.js +234 -0
  437. package/dist/layout/positioning.js.map +1 -0
  438. package/dist/layout/spacing-scale.d.ts +59 -0
  439. package/dist/layout/spacing-scale.d.ts.map +1 -0
  440. package/dist/layout/spacing-scale.js +79 -0
  441. package/dist/layout/spacing-scale.js.map +1 -0
  442. package/dist/layout/spacing.d.ts +46 -0
  443. package/dist/layout/spacing.d.ts.map +1 -0
  444. package/dist/layout/spacing.js +57 -0
  445. package/dist/layout/spacing.js.map +1 -0
  446. package/dist/layout/textMeasure.d.ts +72 -0
  447. package/dist/layout/textMeasure.d.ts.map +1 -0
  448. package/dist/layout/textMeasure.js +363 -0
  449. package/dist/layout/textMeasure.js.map +1 -0
  450. package/dist/layout/types.d.ts +43 -0
  451. package/dist/layout/types.d.ts.map +1 -0
  452. package/dist/layout/types.js +10 -0
  453. package/dist/layout/types.js.map +1 -0
  454. package/dist/layout/unicode/props.d.ts +23 -0
  455. package/dist/layout/unicode/props.d.ts.map +1 -0
  456. package/dist/layout/unicode/props.js +80 -0
  457. package/dist/layout/unicode/props.js.map +1 -0
  458. package/dist/layout/unicode/tables_15_1_0.d.ts +11 -0
  459. package/dist/layout/unicode/tables_15_1_0.d.ts.map +1 -0
  460. package/dist/layout/unicode/tables_15_1_0.js +416 -0
  461. package/dist/layout/unicode/tables_15_1_0.js.map +1 -0
  462. package/dist/layout/validateProps.d.ts +101 -0
  463. package/dist/layout/validateProps.d.ts.map +1 -0
  464. package/dist/layout/validateProps.js +328 -0
  465. package/dist/layout/validateProps.js.map +1 -0
  466. package/dist/perf/index.d.ts +5 -0
  467. package/dist/perf/index.d.ts.map +1 -0
  468. package/dist/perf/index.js +5 -0
  469. package/dist/perf/index.js.map +1 -0
  470. package/dist/perf/perf.d.ts +71 -0
  471. package/dist/perf/perf.d.ts.map +1 -0
  472. package/dist/perf/perf.js +239 -0
  473. package/dist/perf/perf.js.map +1 -0
  474. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.d.ts +2 -0
  475. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.d.ts.map +1 -0
  476. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.js +35 -0
  477. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.js.map +1 -0
  478. package/dist/protocol/__tests__/zrev_v1_invalid.test.d.ts +2 -0
  479. package/dist/protocol/__tests__/zrev_v1_invalid.test.d.ts.map +1 -0
  480. package/dist/protocol/__tests__/zrev_v1_invalid.test.js +128 -0
  481. package/dist/protocol/__tests__/zrev_v1_invalid.test.js.map +1 -0
  482. package/dist/protocol/__tests__/zrev_v1_valid.test.d.ts +2 -0
  483. package/dist/protocol/__tests__/zrev_v1_valid.test.d.ts.map +1 -0
  484. package/dist/protocol/__tests__/zrev_v1_valid.test.js +126 -0
  485. package/dist/protocol/__tests__/zrev_v1_valid.test.js.map +1 -0
  486. package/dist/protocol/types.d.ts +119 -0
  487. package/dist/protocol/types.d.ts.map +1 -0
  488. package/dist/protocol/types.js +14 -0
  489. package/dist/protocol/types.js.map +1 -0
  490. package/dist/protocol/zrev_v1.d.ts +52 -0
  491. package/dist/protocol/zrev_v1.d.ts.map +1 -0
  492. package/dist/protocol/zrev_v1.js +288 -0
  493. package/dist/protocol/zrev_v1.js.map +1 -0
  494. package/dist/renderer/__tests__/overlay.edge.test.d.ts +2 -0
  495. package/dist/renderer/__tests__/overlay.edge.test.d.ts.map +1 -0
  496. package/dist/renderer/__tests__/overlay.edge.test.js +101 -0
  497. package/dist/renderer/__tests__/overlay.edge.test.js.map +1 -0
  498. package/dist/renderer/__tests__/render.golden.test.d.ts +2 -0
  499. package/dist/renderer/__tests__/render.golden.test.d.ts.map +1 -0
  500. package/dist/renderer/__tests__/render.golden.test.js +220 -0
  501. package/dist/renderer/__tests__/render.golden.test.js.map +1 -0
  502. package/dist/renderer/boxGlyphs.d.ts +87 -0
  503. package/dist/renderer/boxGlyphs.d.ts.map +1 -0
  504. package/dist/renderer/boxGlyphs.js +143 -0
  505. package/dist/renderer/boxGlyphs.js.map +1 -0
  506. package/dist/renderer/renderToDrawlist/boxBorder.d.ts +42 -0
  507. package/dist/renderer/renderToDrawlist/boxBorder.d.ts.map +1 -0
  508. package/dist/renderer/renderToDrawlist/boxBorder.js +138 -0
  509. package/dist/renderer/renderToDrawlist/boxBorder.js.map +1 -0
  510. package/dist/renderer/renderToDrawlist/indices.d.ts +11 -0
  511. package/dist/renderer/renderToDrawlist/indices.d.ts.map +1 -0
  512. package/dist/renderer/renderToDrawlist/indices.js +50 -0
  513. package/dist/renderer/renderToDrawlist/indices.js.map +1 -0
  514. package/dist/renderer/renderToDrawlist/renderTree.d.ts +21 -0
  515. package/dist/renderer/renderToDrawlist/renderTree.d.ts.map +1 -0
  516. package/dist/renderer/renderToDrawlist/renderTree.js +117 -0
  517. package/dist/renderer/renderToDrawlist/renderTree.js.map +1 -0
  518. package/dist/renderer/renderToDrawlist/simpleVNode.d.ts +9 -0
  519. package/dist/renderer/renderToDrawlist/simpleVNode.d.ts.map +1 -0
  520. package/dist/renderer/renderToDrawlist/simpleVNode.js +634 -0
  521. package/dist/renderer/renderToDrawlist/simpleVNode.js.map +1 -0
  522. package/dist/renderer/renderToDrawlist/spacing.d.ts +34 -0
  523. package/dist/renderer/renderToDrawlist/spacing.d.ts.map +1 -0
  524. package/dist/renderer/renderToDrawlist/spacing.js +53 -0
  525. package/dist/renderer/renderToDrawlist/spacing.js.map +1 -0
  526. package/dist/renderer/renderToDrawlist/textStyle.d.ts +9 -0
  527. package/dist/renderer/renderToDrawlist/textStyle.d.ts.map +1 -0
  528. package/dist/renderer/renderToDrawlist/textStyle.js +58 -0
  529. package/dist/renderer/renderToDrawlist/textStyle.js.map +1 -0
  530. package/dist/renderer/renderToDrawlist/types.d.ts +96 -0
  531. package/dist/renderer/renderToDrawlist/types.d.ts.map +1 -0
  532. package/dist/renderer/renderToDrawlist/types.js +2 -0
  533. package/dist/renderer/renderToDrawlist/types.js.map +1 -0
  534. package/dist/renderer/renderToDrawlist/widgets/basic.d.ts +17 -0
  535. package/dist/renderer/renderToDrawlist/widgets/basic.d.ts.map +1 -0
  536. package/dist/renderer/renderToDrawlist/widgets/basic.js +1149 -0
  537. package/dist/renderer/renderToDrawlist/widgets/basic.js.map +1 -0
  538. package/dist/renderer/renderToDrawlist/widgets/collections.d.ts +10 -0
  539. package/dist/renderer/renderToDrawlist/widgets/collections.d.ts.map +1 -0
  540. package/dist/renderer/renderToDrawlist/widgets/collections.js +304 -0
  541. package/dist/renderer/renderToDrawlist/widgets/collections.js.map +1 -0
  542. package/dist/renderer/renderToDrawlist/widgets/containers.d.ts +10 -0
  543. package/dist/renderer/renderToDrawlist/widgets/containers.d.ts.map +1 -0
  544. package/dist/renderer/renderToDrawlist/widgets/containers.js +242 -0
  545. package/dist/renderer/renderToDrawlist/widgets/containers.js.map +1 -0
  546. package/dist/renderer/renderToDrawlist/widgets/editors.d.ts +17 -0
  547. package/dist/renderer/renderToDrawlist/widgets/editors.d.ts.map +1 -0
  548. package/dist/renderer/renderToDrawlist/widgets/editors.js +497 -0
  549. package/dist/renderer/renderToDrawlist/widgets/editors.js.map +1 -0
  550. package/dist/renderer/renderToDrawlist/widgets/files.d.ts +13 -0
  551. package/dist/renderer/renderToDrawlist/widgets/files.d.ts.map +1 -0
  552. package/dist/renderer/renderToDrawlist/widgets/files.js +288 -0
  553. package/dist/renderer/renderToDrawlist/widgets/files.js.map +1 -0
  554. package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts +21 -0
  555. package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts.map +1 -0
  556. package/dist/renderer/renderToDrawlist/widgets/overlays.js +358 -0
  557. package/dist/renderer/renderToDrawlist/widgets/overlays.js.map +1 -0
  558. package/dist/renderer/renderToDrawlist.d.ts +21 -0
  559. package/dist/renderer/renderToDrawlist.d.ts.map +1 -0
  560. package/dist/renderer/renderToDrawlist.js +53 -0
  561. package/dist/renderer/renderToDrawlist.js.map +1 -0
  562. package/dist/renderer/scrollbar.d.ts +129 -0
  563. package/dist/renderer/scrollbar.d.ts.map +1 -0
  564. package/dist/renderer/scrollbar.js +219 -0
  565. package/dist/renderer/scrollbar.js.map +1 -0
  566. package/dist/renderer/shadow.d.ts +74 -0
  567. package/dist/renderer/shadow.d.ts.map +1 -0
  568. package/dist/renderer/shadow.js +118 -0
  569. package/dist/renderer/shadow.js.map +1 -0
  570. package/dist/renderer/styles.d.ts +28 -0
  571. package/dist/renderer/styles.d.ts.map +1 -0
  572. package/dist/renderer/styles.js +42 -0
  573. package/dist/renderer/styles.js.map +1 -0
  574. package/dist/runtime/__tests__/duplicateIdFatal.test.d.ts +2 -0
  575. package/dist/runtime/__tests__/duplicateIdFatal.test.d.ts.map +1 -0
  576. package/dist/runtime/__tests__/duplicateIdFatal.test.js +45 -0
  577. package/dist/runtime/__tests__/duplicateIdFatal.test.js.map +1 -0
  578. package/dist/runtime/__tests__/duplicateKeyFatal.test.d.ts +2 -0
  579. package/dist/runtime/__tests__/duplicateKeyFatal.test.d.ts.map +1 -0
  580. package/dist/runtime/__tests__/duplicateKeyFatal.test.js +20 -0
  581. package/dist/runtime/__tests__/duplicateKeyFatal.test.js.map +1 -0
  582. package/dist/runtime/__tests__/focusList.golden.test.d.ts +2 -0
  583. package/dist/runtime/__tests__/focusList.golden.test.d.ts.map +1 -0
  584. package/dist/runtime/__tests__/focusList.golden.test.js +98 -0
  585. package/dist/runtime/__tests__/focusList.golden.test.js.map +1 -0
  586. package/dist/runtime/__tests__/focusZones.golden.test.d.ts +16 -0
  587. package/dist/runtime/__tests__/focusZones.golden.test.d.ts.map +1 -0
  588. package/dist/runtime/__tests__/focusZones.golden.test.js +594 -0
  589. package/dist/runtime/__tests__/focusZones.golden.test.js.map +1 -0
  590. package/dist/runtime/__tests__/inputRouting.golden.test.d.ts +2 -0
  591. package/dist/runtime/__tests__/inputRouting.golden.test.d.ts.map +1 -0
  592. package/dist/runtime/__tests__/inputRouting.golden.test.js +56 -0
  593. package/dist/runtime/__tests__/inputRouting.golden.test.js.map +1 -0
  594. package/dist/runtime/__tests__/keyRouting.golden.test.d.ts +2 -0
  595. package/dist/runtime/__tests__/keyRouting.golden.test.d.ts.map +1 -0
  596. package/dist/runtime/__tests__/keyRouting.golden.test.js +43 -0
  597. package/dist/runtime/__tests__/keyRouting.golden.test.js.map +1 -0
  598. package/dist/runtime/__tests__/localStateStore.test.d.ts +2 -0
  599. package/dist/runtime/__tests__/localStateStore.test.d.ts.map +1 -0
  600. package/dist/runtime/__tests__/localStateStore.test.js +25 -0
  601. package/dist/runtime/__tests__/localStateStore.test.js.map +1 -0
  602. package/dist/runtime/__tests__/mouseRouting.golden.test.d.ts +2 -0
  603. package/dist/runtime/__tests__/mouseRouting.golden.test.d.ts.map +1 -0
  604. package/dist/runtime/__tests__/mouseRouting.golden.test.js +47 -0
  605. package/dist/runtime/__tests__/mouseRouting.golden.test.js.map +1 -0
  606. package/dist/runtime/__tests__/reconcile.test.d.ts +2 -0
  607. package/dist/runtime/__tests__/reconcile.test.d.ts.map +1 -0
  608. package/dist/runtime/__tests__/reconcile.test.js +46 -0
  609. package/dist/runtime/__tests__/reconcile.test.js.map +1 -0
  610. package/dist/runtime/__tests__/widgetMeta.test.d.ts +2 -0
  611. package/dist/runtime/__tests__/widgetMeta.test.d.ts.map +1 -0
  612. package/dist/runtime/__tests__/widgetMeta.test.js +196 -0
  613. package/dist/runtime/__tests__/widgetMeta.test.js.map +1 -0
  614. package/dist/runtime/commit.d.ts +76 -0
  615. package/dist/runtime/commit.d.ts.map +1 -0
  616. package/dist/runtime/commit.js +366 -0
  617. package/dist/runtime/commit.js.map +1 -0
  618. package/dist/runtime/focus.d.ts +162 -0
  619. package/dist/runtime/focus.d.ts.map +1 -0
  620. package/dist/runtime/focus.js +488 -0
  621. package/dist/runtime/focus.js.map +1 -0
  622. package/dist/runtime/inputEditor.d.ts +49 -0
  623. package/dist/runtime/inputEditor.d.ts.map +1 -0
  624. package/dist/runtime/inputEditor.js +312 -0
  625. package/dist/runtime/inputEditor.js.map +1 -0
  626. package/dist/runtime/instance.d.ts +21 -0
  627. package/dist/runtime/instance.d.ts.map +1 -0
  628. package/dist/runtime/instance.js +27 -0
  629. package/dist/runtime/instance.js.map +1 -0
  630. package/dist/runtime/instances.d.ts +105 -0
  631. package/dist/runtime/instances.d.ts.map +1 -0
  632. package/dist/runtime/instances.js +248 -0
  633. package/dist/runtime/instances.js.map +1 -0
  634. package/dist/runtime/layers.d.ts +144 -0
  635. package/dist/runtime/layers.d.ts.map +1 -0
  636. package/dist/runtime/layers.js +264 -0
  637. package/dist/runtime/layers.js.map +1 -0
  638. package/dist/runtime/localState.d.ts +172 -0
  639. package/dist/runtime/localState.d.ts.map +1 -0
  640. package/dist/runtime/localState.js +182 -0
  641. package/dist/runtime/localState.js.map +1 -0
  642. package/dist/runtime/reconcile.d.ts +64 -0
  643. package/dist/runtime/reconcile.d.ts.map +1 -0
  644. package/dist/runtime/reconcile.js +223 -0
  645. package/dist/runtime/reconcile.js.map +1 -0
  646. package/dist/runtime/router/dropdown.d.ts +16 -0
  647. package/dist/runtime/router/dropdown.d.ts.map +1 -0
  648. package/dist/runtime/router/dropdown.js +108 -0
  649. package/dist/runtime/router/dropdown.js.map +1 -0
  650. package/dist/runtime/router/key.d.ts +10 -0
  651. package/dist/runtime/router/key.d.ts.map +1 -0
  652. package/dist/runtime/router/key.js +39 -0
  653. package/dist/runtime/router/key.js.map +1 -0
  654. package/dist/runtime/router/layer.d.ts +11 -0
  655. package/dist/runtime/router/layer.d.ts.map +1 -0
  656. package/dist/runtime/router/layer.js +45 -0
  657. package/dist/runtime/router/layer.js.map +1 -0
  658. package/dist/runtime/router/mouse.d.ts +9 -0
  659. package/dist/runtime/router/mouse.d.ts.map +1 -0
  660. package/dist/runtime/router/mouse.js +38 -0
  661. package/dist/runtime/router/mouse.js.map +1 -0
  662. package/dist/runtime/router/table.d.ts +15 -0
  663. package/dist/runtime/router/table.d.ts.map +1 -0
  664. package/dist/runtime/router/table.js +182 -0
  665. package/dist/runtime/router/table.js.map +1 -0
  666. package/dist/runtime/router/tree.d.ts +16 -0
  667. package/dist/runtime/router/tree.d.ts.map +1 -0
  668. package/dist/runtime/router/tree.js +211 -0
  669. package/dist/runtime/router/tree.js.map +1 -0
  670. package/dist/runtime/router/types.d.ts +194 -0
  671. package/dist/runtime/router/types.d.ts.map +1 -0
  672. package/dist/runtime/router/types.js +2 -0
  673. package/dist/runtime/router/types.js.map +1 -0
  674. package/dist/runtime/router/virtualList.d.ts +21 -0
  675. package/dist/runtime/router/virtualList.d.ts.map +1 -0
  676. package/dist/runtime/router/virtualList.js +167 -0
  677. package/dist/runtime/router/virtualList.js.map +1 -0
  678. package/dist/runtime/router/zones.d.ts +16 -0
  679. package/dist/runtime/router/zones.d.ts.map +1 -0
  680. package/dist/runtime/router/zones.js +118 -0
  681. package/dist/runtime/router/zones.js.map +1 -0
  682. package/dist/runtime/router.d.ts +18 -0
  683. package/dist/runtime/router.d.ts.map +1 -0
  684. package/dist/runtime/router.js +17 -0
  685. package/dist/runtime/router.js.map +1 -0
  686. package/dist/runtime/widgetMeta.d.ts +157 -0
  687. package/dist/runtime/widgetMeta.d.ts.map +1 -0
  688. package/dist/runtime/widgetMeta.js +618 -0
  689. package/dist/runtime/widgetMeta.js.map +1 -0
  690. package/dist/terminalCaps.d.ts +74 -0
  691. package/dist/terminalCaps.d.ts.map +1 -0
  692. package/dist/terminalCaps.js +61 -0
  693. package/dist/terminalCaps.js.map +1 -0
  694. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  695. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  696. package/dist/theme/__tests__/theme.test.js +28 -0
  697. package/dist/theme/__tests__/theme.test.js.map +1 -0
  698. package/dist/theme/defaultTheme.d.ts +9 -0
  699. package/dist/theme/defaultTheme.d.ts.map +1 -0
  700. package/dist/theme/defaultTheme.js +22 -0
  701. package/dist/theme/defaultTheme.js.map +1 -0
  702. package/dist/theme/index.d.ts +12 -0
  703. package/dist/theme/index.d.ts.map +1 -0
  704. package/dist/theme/index.js +16 -0
  705. package/dist/theme/index.js.map +1 -0
  706. package/dist/theme/interop.d.ts +13 -0
  707. package/dist/theme/interop.d.ts.map +1 -0
  708. package/dist/theme/interop.js +66 -0
  709. package/dist/theme/interop.js.map +1 -0
  710. package/dist/theme/presets.d.ts +81 -0
  711. package/dist/theme/presets.d.ts.map +1 -0
  712. package/dist/theme/presets.js +293 -0
  713. package/dist/theme/presets.js.map +1 -0
  714. package/dist/theme/resolve.d.ts +69 -0
  715. package/dist/theme/resolve.d.ts.map +1 -0
  716. package/dist/theme/resolve.js +159 -0
  717. package/dist/theme/resolve.js.map +1 -0
  718. package/dist/theme/theme.d.ts +33 -0
  719. package/dist/theme/theme.d.ts.map +1 -0
  720. package/dist/theme/theme.js +28 -0
  721. package/dist/theme/theme.js.map +1 -0
  722. package/dist/theme/tokens.d.ts +130 -0
  723. package/dist/theme/tokens.d.ts.map +1 -0
  724. package/dist/theme/tokens.js +50 -0
  725. package/dist/theme/tokens.js.map +1 -0
  726. package/dist/widgets/__tests__/basicWidgets.render.test.d.ts +2 -0
  727. package/dist/widgets/__tests__/basicWidgets.render.test.d.ts.map +1 -0
  728. package/dist/widgets/__tests__/basicWidgets.render.test.js +182 -0
  729. package/dist/widgets/__tests__/basicWidgets.render.test.js.map +1 -0
  730. package/dist/widgets/__tests__/basicWidgets.test.d.ts +2 -0
  731. package/dist/widgets/__tests__/basicWidgets.test.d.ts.map +1 -0
  732. package/dist/widgets/__tests__/basicWidgets.test.js +336 -0
  733. package/dist/widgets/__tests__/basicWidgets.test.js.map +1 -0
  734. package/dist/widgets/__tests__/collections.test.d.ts +2 -0
  735. package/dist/widgets/__tests__/collections.test.d.ts.map +1 -0
  736. package/dist/widgets/__tests__/collections.test.js +91 -0
  737. package/dist/widgets/__tests__/collections.test.js.map +1 -0
  738. package/dist/widgets/__tests__/commandPalette.test.d.ts +2 -0
  739. package/dist/widgets/__tests__/commandPalette.test.d.ts.map +1 -0
  740. package/dist/widgets/__tests__/commandPalette.test.js +13 -0
  741. package/dist/widgets/__tests__/commandPalette.test.js.map +1 -0
  742. package/dist/widgets/__tests__/composition.test.d.ts +14 -0
  743. package/dist/widgets/__tests__/composition.test.d.ts.map +1 -0
  744. package/dist/widgets/__tests__/composition.test.js +458 -0
  745. package/dist/widgets/__tests__/composition.test.js.map +1 -0
  746. package/dist/widgets/__tests__/conditionals.test.d.ts +2 -0
  747. package/dist/widgets/__tests__/conditionals.test.d.ts.map +1 -0
  748. package/dist/widgets/__tests__/conditionals.test.js +49 -0
  749. package/dist/widgets/__tests__/conditionals.test.js.map +1 -0
  750. package/dist/widgets/__tests__/containers.test.d.ts +2 -0
  751. package/dist/widgets/__tests__/containers.test.d.ts.map +1 -0
  752. package/dist/widgets/__tests__/containers.test.js +98 -0
  753. package/dist/widgets/__tests__/containers.test.js.map +1 -0
  754. package/dist/widgets/__tests__/dataVizWidgets.test.d.ts +2 -0
  755. package/dist/widgets/__tests__/dataVizWidgets.test.d.ts.map +1 -0
  756. package/dist/widgets/__tests__/dataVizWidgets.test.js +57 -0
  757. package/dist/widgets/__tests__/dataVizWidgets.test.js.map +1 -0
  758. package/dist/widgets/__tests__/dialogs.test.d.ts +2 -0
  759. package/dist/widgets/__tests__/dialogs.test.d.ts.map +1 -0
  760. package/dist/widgets/__tests__/dialogs.test.js +29 -0
  761. package/dist/widgets/__tests__/dialogs.test.js.map +1 -0
  762. package/dist/widgets/__tests__/editors.test.d.ts +2 -0
  763. package/dist/widgets/__tests__/editors.test.d.ts.map +1 -0
  764. package/dist/widgets/__tests__/editors.test.js +116 -0
  765. package/dist/widgets/__tests__/editors.test.js.map +1 -0
  766. package/dist/widgets/__tests__/filesWidgets.test.d.ts +2 -0
  767. package/dist/widgets/__tests__/filesWidgets.test.d.ts.map +1 -0
  768. package/dist/widgets/__tests__/filesWidgets.test.js +52 -0
  769. package/dist/widgets/__tests__/filesWidgets.test.js.map +1 -0
  770. package/dist/widgets/__tests__/formWidgets.test.d.ts +7 -0
  771. package/dist/widgets/__tests__/formWidgets.test.d.ts.map +1 -0
  772. package/dist/widgets/__tests__/formWidgets.test.js +241 -0
  773. package/dist/widgets/__tests__/formWidgets.test.js.map +1 -0
  774. package/dist/widgets/__tests__/infoWidgets.test.d.ts +2 -0
  775. package/dist/widgets/__tests__/infoWidgets.test.d.ts.map +1 -0
  776. package/dist/widgets/__tests__/infoWidgets.test.js +43 -0
  777. package/dist/widgets/__tests__/infoWidgets.test.js.map +1 -0
  778. package/dist/widgets/__tests__/layers.golden.test.d.ts +14 -0
  779. package/dist/widgets/__tests__/layers.golden.test.d.ts.map +1 -0
  780. package/dist/widgets/__tests__/layers.golden.test.js +728 -0
  781. package/dist/widgets/__tests__/layers.golden.test.js.map +1 -0
  782. package/dist/widgets/__tests__/overlays.test.d.ts +2 -0
  783. package/dist/widgets/__tests__/overlays.test.d.ts.map +1 -0
  784. package/dist/widgets/__tests__/overlays.test.js +99 -0
  785. package/dist/widgets/__tests__/overlays.test.js.map +1 -0
  786. package/dist/widgets/__tests__/renderer.regressions.test.d.ts +2 -0
  787. package/dist/widgets/__tests__/renderer.regressions.test.d.ts.map +1 -0
  788. package/dist/widgets/__tests__/renderer.regressions.test.js +132 -0
  789. package/dist/widgets/__tests__/renderer.regressions.test.js.map +1 -0
  790. package/dist/widgets/__tests__/styleUtils.test.d.ts +2 -0
  791. package/dist/widgets/__tests__/styleUtils.test.d.ts.map +1 -0
  792. package/dist/widgets/__tests__/styleUtils.test.js +22 -0
  793. package/dist/widgets/__tests__/styleUtils.test.js.map +1 -0
  794. package/dist/widgets/__tests__/styled.test.d.ts +2 -0
  795. package/dist/widgets/__tests__/styled.test.d.ts.map +1 -0
  796. package/dist/widgets/__tests__/styled.test.js +23 -0
  797. package/dist/widgets/__tests__/styled.test.js.map +1 -0
  798. package/dist/widgets/__tests__/table.golden.test.d.ts +10 -0
  799. package/dist/widgets/__tests__/table.golden.test.d.ts.map +1 -0
  800. package/dist/widgets/__tests__/table.golden.test.js +367 -0
  801. package/dist/widgets/__tests__/table.golden.test.js.map +1 -0
  802. package/dist/widgets/__tests__/tree.golden.test.d.ts +10 -0
  803. package/dist/widgets/__tests__/tree.golden.test.d.ts.map +1 -0
  804. package/dist/widgets/__tests__/tree.golden.test.js +501 -0
  805. package/dist/widgets/__tests__/tree.golden.test.js.map +1 -0
  806. package/dist/widgets/__tests__/virtualList.golden.test.d.ts +10 -0
  807. package/dist/widgets/__tests__/virtualList.golden.test.d.ts.map +1 -0
  808. package/dist/widgets/__tests__/virtualList.golden.test.js +349 -0
  809. package/dist/widgets/__tests__/virtualList.golden.test.js.map +1 -0
  810. package/dist/widgets/__tests__/widgetRenderSmoke.test.d.ts +2 -0
  811. package/dist/widgets/__tests__/widgetRenderSmoke.test.d.ts.map +1 -0
  812. package/dist/widgets/__tests__/widgetRenderSmoke.test.js +311 -0
  813. package/dist/widgets/__tests__/widgetRenderSmoke.test.js.map +1 -0
  814. package/dist/widgets/checkbox.d.ts +49 -0
  815. package/dist/widgets/checkbox.d.ts.map +1 -0
  816. package/dist/widgets/checkbox.js +66 -0
  817. package/dist/widgets/checkbox.js.map +1 -0
  818. package/dist/widgets/codeEditor.d.ts +150 -0
  819. package/dist/widgets/codeEditor.d.ts.map +1 -0
  820. package/dist/widgets/codeEditor.js +434 -0
  821. package/dist/widgets/codeEditor.js.map +1 -0
  822. package/dist/widgets/collections.d.ts +10 -0
  823. package/dist/widgets/collections.d.ts.map +1 -0
  824. package/dist/widgets/collections.js +49 -0
  825. package/dist/widgets/collections.js.map +1 -0
  826. package/dist/widgets/commandPalette.d.ts +117 -0
  827. package/dist/widgets/commandPalette.d.ts.map +1 -0
  828. package/dist/widgets/commandPalette.js +230 -0
  829. package/dist/widgets/commandPalette.js.map +1 -0
  830. package/dist/widgets/composition.d.ts +202 -0
  831. package/dist/widgets/composition.d.ts.map +1 -0
  832. package/dist/widgets/composition.js +135 -0
  833. package/dist/widgets/composition.js.map +1 -0
  834. package/dist/widgets/conditionals.d.ts +9 -0
  835. package/dist/widgets/conditionals.d.ts.map +1 -0
  836. package/dist/widgets/conditionals.js +27 -0
  837. package/dist/widgets/conditionals.js.map +1 -0
  838. package/dist/widgets/debugPanel.d.ts +96 -0
  839. package/dist/widgets/debugPanel.d.ts.map +1 -0
  840. package/dist/widgets/debugPanel.js +172 -0
  841. package/dist/widgets/debugPanel.js.map +1 -0
  842. package/dist/widgets/dialogs/alert.d.ts +7 -0
  843. package/dist/widgets/dialogs/alert.d.ts.map +1 -0
  844. package/dist/widgets/dialogs/alert.js +21 -0
  845. package/dist/widgets/dialogs/alert.js.map +1 -0
  846. package/dist/widgets/dialogs/confirm.d.ts +7 -0
  847. package/dist/widgets/dialogs/confirm.d.ts.map +1 -0
  848. package/dist/widgets/dialogs/confirm.js +27 -0
  849. package/dist/widgets/dialogs/confirm.js.map +1 -0
  850. package/dist/widgets/dialogs/index.d.ts +8 -0
  851. package/dist/widgets/dialogs/index.d.ts.map +1 -0
  852. package/dist/widgets/dialogs/index.js +7 -0
  853. package/dist/widgets/dialogs/index.js.map +1 -0
  854. package/dist/widgets/dialogs/prompt.d.ts +9 -0
  855. package/dist/widgets/dialogs/prompt.d.ts.map +1 -0
  856. package/dist/widgets/dialogs/prompt.js +40 -0
  857. package/dist/widgets/dialogs/prompt.js.map +1 -0
  858. package/dist/widgets/dialogs/types.d.ts +29 -0
  859. package/dist/widgets/dialogs/types.d.ts.map +1 -0
  860. package/dist/widgets/dialogs/types.js +5 -0
  861. package/dist/widgets/dialogs/types.js.map +1 -0
  862. package/dist/widgets/diffViewer.d.ts +101 -0
  863. package/dist/widgets/diffViewer.d.ts.map +1 -0
  864. package/dist/widgets/diffViewer.js +194 -0
  865. package/dist/widgets/diffViewer.js.map +1 -0
  866. package/dist/widgets/field.d.ts +52 -0
  867. package/dist/widgets/field.d.ts.map +1 -0
  868. package/dist/widgets/field.js +62 -0
  869. package/dist/widgets/field.js.map +1 -0
  870. package/dist/widgets/logsConsole.d.ts +101 -0
  871. package/dist/widgets/logsConsole.d.ts.map +1 -0
  872. package/dist/widgets/logsConsole.js +189 -0
  873. package/dist/widgets/logsConsole.js.map +1 -0
  874. package/dist/widgets/radioGroup.d.ts +79 -0
  875. package/dist/widgets/radioGroup.d.ts.map +1 -0
  876. package/dist/widgets/radioGroup.js +145 -0
  877. package/dist/widgets/radioGroup.js.map +1 -0
  878. package/dist/widgets/select.d.ts +61 -0
  879. package/dist/widgets/select.d.ts.map +1 -0
  880. package/dist/widgets/select.js +119 -0
  881. package/dist/widgets/select.js.map +1 -0
  882. package/dist/widgets/splitPane.d.ts +92 -0
  883. package/dist/widgets/splitPane.d.ts.map +1 -0
  884. package/dist/widgets/splitPane.js +265 -0
  885. package/dist/widgets/splitPane.js.map +1 -0
  886. package/dist/widgets/style.d.ts +34 -0
  887. package/dist/widgets/style.d.ts.map +1 -0
  888. package/dist/widgets/style.js +16 -0
  889. package/dist/widgets/style.js.map +1 -0
  890. package/dist/widgets/styleUtils.d.ts +39 -0
  891. package/dist/widgets/styleUtils.d.ts.map +1 -0
  892. package/dist/widgets/styleUtils.js +42 -0
  893. package/dist/widgets/styleUtils.js.map +1 -0
  894. package/dist/widgets/styled.d.ts +21 -0
  895. package/dist/widgets/styled.d.ts.map +1 -0
  896. package/dist/widgets/styled.js +30 -0
  897. package/dist/widgets/styled.js.map +1 -0
  898. package/dist/widgets/table.d.ts +157 -0
  899. package/dist/widgets/table.d.ts.map +1 -0
  900. package/dist/widgets/table.js +338 -0
  901. package/dist/widgets/table.js.map +1 -0
  902. package/dist/widgets/toast.d.ts +89 -0
  903. package/dist/widgets/toast.d.ts.map +1 -0
  904. package/dist/widgets/toast.js +145 -0
  905. package/dist/widgets/toast.js.map +1 -0
  906. package/dist/widgets/tree.d.ts +207 -0
  907. package/dist/widgets/tree.d.ts.map +1 -0
  908. package/dist/widgets/tree.js +393 -0
  909. package/dist/widgets/tree.js.map +1 -0
  910. package/dist/widgets/types.d.ts +1400 -0
  911. package/dist/widgets/types.d.ts.map +1 -0
  912. package/dist/widgets/types.js +20 -0
  913. package/dist/widgets/types.js.map +1 -0
  914. package/dist/widgets/ui.d.ts +734 -0
  915. package/dist/widgets/ui.d.ts.map +1 -0
  916. package/dist/widgets/ui.js +851 -0
  917. package/dist/widgets/ui.js.map +1 -0
  918. package/dist/widgets/virtualList.d.ts +93 -0
  919. package/dist/widgets/virtualList.d.ts.map +1 -0
  920. package/dist/widgets/virtualList.js +258 -0
  921. package/dist/widgets/virtualList.js.map +1 -0
  922. package/package.json +97 -0
@@ -0,0 +1,172 @@
1
+ /**
2
+ * packages/core/src/runtime/localState.ts — Per-instance local state storage.
3
+ *
4
+ * Why: Provides a key-value store for runtime-local state associated with
5
+ * widget instances. State is keyed by instanceId and persists across renders
6
+ * for reused instances, but is cleaned up when instances are unmounted.
7
+ *
8
+ * Stored state:
9
+ * - layout: computed rect from layout pass
10
+ * - hover: mouse hover state
11
+ * - pressed: mouse press state
12
+ * - focusable: whether widget can receive focus
13
+ * - tabIndex: position in focus traversal order
14
+ *
15
+ * @see docs/guide/runtime-and-layout.md
16
+ */
17
+ import type { InstanceId } from "./instance.js";
18
+ /** Rectangle in terminal cell coordinates. */
19
+ export type Rect = Readonly<{
20
+ x: number;
21
+ y: number;
22
+ w: number;
23
+ h: number;
24
+ }>;
25
+ /** Local state stored per widget instance. */
26
+ export type RuntimeLocalState = Readonly<{
27
+ layout: Rect | null;
28
+ hover: boolean;
29
+ pressed: boolean;
30
+ focusable: boolean;
31
+ tabIndex: number | null;
32
+ }>;
33
+ /** Local state for virtualList instances. */
34
+ export type VirtualListLocalState = Readonly<{
35
+ scrollTop: number;
36
+ selectedIndex: number;
37
+ viewportHeight: number;
38
+ /** First visible item index (derived from scrollTop). */
39
+ startIndex: number;
40
+ /** One past last visible item index (derived from scrollTop + viewportHeight). */
41
+ endIndex: number;
42
+ }>;
43
+ /** Partial update to local state (undefined fields are not changed). */
44
+ export type RuntimeLocalStatePatch = Readonly<{
45
+ layout?: Rect | null;
46
+ hover?: boolean;
47
+ pressed?: boolean;
48
+ focusable?: boolean;
49
+ tabIndex?: number | null;
50
+ }>;
51
+ /** Store interface for per-instance local state. */
52
+ export type RuntimeLocalStateStore = Readonly<{
53
+ get: (instanceId: InstanceId) => RuntimeLocalState | undefined;
54
+ set: (instanceId: InstanceId, patch: RuntimeLocalStatePatch) => RuntimeLocalState;
55
+ delete: (instanceId: InstanceId) => void;
56
+ }>;
57
+ /** Create a new local state store instance. */
58
+ export declare function createRuntimeLocalStateStore(): RuntimeLocalStateStore;
59
+ /** Partial update to virtual list state. */
60
+ export type VirtualListLocalStatePatch = Readonly<{
61
+ scrollTop?: number;
62
+ selectedIndex?: number;
63
+ viewportHeight?: number;
64
+ startIndex?: number;
65
+ endIndex?: number;
66
+ }>;
67
+ /** Store interface for per-instance virtual list state. */
68
+ export type VirtualListStateStore = Readonly<{
69
+ get: (id: string) => VirtualListLocalState;
70
+ set: (id: string, patch: VirtualListLocalStatePatch) => VirtualListLocalState;
71
+ delete: (id: string) => void;
72
+ }>;
73
+ /** Create a new virtual list state store instance. */
74
+ export declare function createVirtualListStateStore(): VirtualListStateStore;
75
+ /** Local state for table instances. */
76
+ export type TableLocalState = Readonly<{
77
+ /** Current scroll position (row offset). */
78
+ scrollTop: number;
79
+ /** Index of the focused row (-1 if none). */
80
+ focusedRowIndex: number;
81
+ /** Last clicked row key (for shift-select). */
82
+ lastClickedKey: string | null;
83
+ /** Viewport height in rows. */
84
+ viewportHeight: number;
85
+ /** First visible row index (derived). */
86
+ startIndex: number;
87
+ /** One past last visible row index (derived). */
88
+ endIndex: number;
89
+ }>;
90
+ /** Partial update to table state. */
91
+ export type TableLocalStatePatch = Readonly<{
92
+ scrollTop?: number;
93
+ focusedRowIndex?: number;
94
+ lastClickedKey?: string | null;
95
+ viewportHeight?: number;
96
+ startIndex?: number;
97
+ endIndex?: number;
98
+ }>;
99
+ /** Store interface for per-instance table state. */
100
+ export type TableStateStore = Readonly<{
101
+ get: (id: string) => TableLocalState;
102
+ set: (id: string, patch: TableLocalStatePatch) => TableLocalState;
103
+ delete: (id: string) => void;
104
+ }>;
105
+ /** Create a new table state store instance. */
106
+ export declare function createTableStateStore(): TableStateStore;
107
+ /** Local state for tree instances. */
108
+ export type TreeLocalState = Readonly<{
109
+ /** Key of the focused node (null if none). */
110
+ focusedKey: string | null;
111
+ /** Set of node keys currently loading. */
112
+ loadingKeys: ReadonlySet<string>;
113
+ /** Scroll position for virtualized trees. */
114
+ scrollTop: number;
115
+ /** Viewport height for virtualization. */
116
+ viewportHeight: number;
117
+ /**
118
+ * Cached flattened nodes for tree-like widgets (tree/filePicker/fileTreeExplorer).
119
+ * Used to avoid per-frame allocations when inputs are referentially stable.
120
+ */
121
+ flatCache: TreeFlatCache | null;
122
+ /** Cached expanded set (for faster lookup). */
123
+ expandedSetRef: readonly string[] | undefined;
124
+ expandedSet: ReadonlySet<string> | undefined;
125
+ /** Cached tree line prefixes keyed to flatNodes/showLines/indentSize. */
126
+ prefixCache: TreePrefixCache | null;
127
+ }>;
128
+ export type TreePrefixCache = Readonly<{
129
+ flatNodesRef: readonly unknown[];
130
+ showLines: boolean;
131
+ indentSize: number;
132
+ prefixes: readonly string[];
133
+ }>;
134
+ export type TreeFlatCache = Readonly<{
135
+ kind: "fileNode" | "tree";
136
+ dataRef: unknown;
137
+ expandedRef: readonly string[];
138
+ /** Loaded-children map identity (only used for kind="tree"). */
139
+ loadedRef?: unknown;
140
+ /** Key function identity (only used for kind="tree"). */
141
+ getKeyRef: unknown;
142
+ /** Children function identity (only used for kind="tree"). */
143
+ getChildrenRef: unknown;
144
+ /** hasChildren function identity (only used for kind="tree"). */
145
+ hasChildrenRef: unknown;
146
+ /** Flattened nodes (typed by kind at call sites). */
147
+ flatNodes: readonly unknown[];
148
+ }>;
149
+ /** Partial update to tree state. */
150
+ export type TreeLocalStatePatch = Readonly<{
151
+ focusedKey?: string | null;
152
+ loadingKeys?: ReadonlySet<string>;
153
+ scrollTop?: number;
154
+ viewportHeight?: number;
155
+ flatCache?: TreeFlatCache | null;
156
+ expandedSetRef?: readonly string[];
157
+ expandedSet?: ReadonlySet<string>;
158
+ prefixCache?: TreePrefixCache | null;
159
+ }>;
160
+ /** Store interface for per-instance tree state. */
161
+ export type TreeStateStore = Readonly<{
162
+ get: (id: string) => TreeLocalState;
163
+ set: (id: string, patch: TreeLocalStatePatch) => TreeLocalState;
164
+ delete: (id: string) => void;
165
+ /** Add a key to the loading set. */
166
+ startLoading: (id: string, nodeKey: string) => TreeLocalState;
167
+ /** Remove a key from the loading set. */
168
+ finishLoading: (id: string, nodeKey: string) => TreeLocalState;
169
+ }>;
170
+ /** Create a new tree state store instance. */
171
+ export declare function createTreeStateStore(): TreeStateStore;
172
+ //# sourceMappingURL=localState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localState.d.ts","sourceRoot":"","sources":["../../src/runtime/localState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * packages/core/src/runtime/localState.ts — Per-instance local state storage.
3
+ *
4
+ * Why: Provides a key-value store for runtime-local state associated with
5
+ * widget instances. State is keyed by instanceId and persists across renders
6
+ * for reused instances, but is cleaned up when instances are unmounted.
7
+ *
8
+ * Stored state:
9
+ * - layout: computed rect from layout pass
10
+ * - hover: mouse hover state
11
+ * - pressed: mouse press state
12
+ * - focusable: whether widget can receive focus
13
+ * - tabIndex: position in focus traversal order
14
+ *
15
+ * @see docs/guide/runtime-and-layout.md
16
+ */
17
+ const DEFAULT_STATE = Object.freeze({
18
+ layout: null,
19
+ hover: false,
20
+ pressed: false,
21
+ focusable: false,
22
+ tabIndex: null,
23
+ });
24
+ function freezeRect(r) {
25
+ return Object.freeze({ x: r.x, y: r.y, w: r.w, h: r.h });
26
+ }
27
+ function freezeState(s) {
28
+ const layout = s.layout ? freezeRect(s.layout) : null;
29
+ return Object.freeze({
30
+ layout,
31
+ hover: s.hover,
32
+ pressed: s.pressed,
33
+ focusable: s.focusable,
34
+ tabIndex: s.tabIndex,
35
+ });
36
+ }
37
+ /** Create a new local state store instance. */
38
+ export function createRuntimeLocalStateStore() {
39
+ const table = new Map();
40
+ return Object.freeze({
41
+ get: (instanceId) => table.get(instanceId),
42
+ set: (instanceId, patch) => {
43
+ const prev = table.get(instanceId) ?? DEFAULT_STATE;
44
+ const next = {
45
+ layout: patch.layout !== undefined ? patch.layout : prev.layout,
46
+ hover: patch.hover !== undefined ? patch.hover : prev.hover,
47
+ pressed: patch.pressed !== undefined ? patch.pressed : prev.pressed,
48
+ focusable: patch.focusable !== undefined ? patch.focusable : prev.focusable,
49
+ tabIndex: patch.tabIndex !== undefined ? patch.tabIndex : prev.tabIndex,
50
+ };
51
+ const frozen = freezeState(next);
52
+ table.set(instanceId, frozen);
53
+ return frozen;
54
+ },
55
+ delete: (instanceId) => {
56
+ table.delete(instanceId);
57
+ },
58
+ });
59
+ }
60
+ /* ========== Virtual List State Store ========== */
61
+ const DEFAULT_VLIST_STATE = Object.freeze({
62
+ scrollTop: 0,
63
+ selectedIndex: 0,
64
+ viewportHeight: 0,
65
+ startIndex: 0,
66
+ endIndex: 0,
67
+ });
68
+ /** Create a new virtual list state store instance. */
69
+ export function createVirtualListStateStore() {
70
+ const table = new Map();
71
+ return Object.freeze({
72
+ get: (id) => table.get(id) ?? DEFAULT_VLIST_STATE,
73
+ set: (id, patch) => {
74
+ const prev = table.get(id) ?? DEFAULT_VLIST_STATE;
75
+ const next = Object.freeze({
76
+ scrollTop: patch.scrollTop !== undefined ? patch.scrollTop : prev.scrollTop,
77
+ selectedIndex: patch.selectedIndex !== undefined ? patch.selectedIndex : prev.selectedIndex,
78
+ viewportHeight: patch.viewportHeight !== undefined ? patch.viewportHeight : prev.viewportHeight,
79
+ startIndex: patch.startIndex !== undefined ? patch.startIndex : prev.startIndex,
80
+ endIndex: patch.endIndex !== undefined ? patch.endIndex : prev.endIndex,
81
+ });
82
+ table.set(id, next);
83
+ return next;
84
+ },
85
+ delete: (id) => {
86
+ table.delete(id);
87
+ },
88
+ });
89
+ }
90
+ const DEFAULT_TABLE_STATE = Object.freeze({
91
+ scrollTop: 0,
92
+ focusedRowIndex: 0,
93
+ lastClickedKey: null,
94
+ viewportHeight: 0,
95
+ startIndex: 0,
96
+ endIndex: 0,
97
+ });
98
+ /** Create a new table state store instance. */
99
+ export function createTableStateStore() {
100
+ const table = new Map();
101
+ return Object.freeze({
102
+ get: (id) => table.get(id) ?? DEFAULT_TABLE_STATE,
103
+ set: (id, patch) => {
104
+ const prev = table.get(id) ?? DEFAULT_TABLE_STATE;
105
+ const next = Object.freeze({
106
+ scrollTop: patch.scrollTop !== undefined ? patch.scrollTop : prev.scrollTop,
107
+ focusedRowIndex: patch.focusedRowIndex !== undefined ? patch.focusedRowIndex : prev.focusedRowIndex,
108
+ lastClickedKey: patch.lastClickedKey !== undefined ? patch.lastClickedKey : prev.lastClickedKey,
109
+ viewportHeight: patch.viewportHeight !== undefined ? patch.viewportHeight : prev.viewportHeight,
110
+ startIndex: patch.startIndex !== undefined ? patch.startIndex : prev.startIndex,
111
+ endIndex: patch.endIndex !== undefined ? patch.endIndex : prev.endIndex,
112
+ });
113
+ table.set(id, next);
114
+ return next;
115
+ },
116
+ delete: (id) => {
117
+ table.delete(id);
118
+ },
119
+ });
120
+ }
121
+ const DEFAULT_TREE_STATE = Object.freeze({
122
+ focusedKey: null,
123
+ loadingKeys: Object.freeze(new Set()),
124
+ scrollTop: 0,
125
+ viewportHeight: 0,
126
+ flatCache: null,
127
+ expandedSetRef: undefined,
128
+ expandedSet: undefined,
129
+ prefixCache: null,
130
+ });
131
+ /** Create a new tree state store instance. */
132
+ export function createTreeStateStore() {
133
+ const table = new Map();
134
+ const store = Object.freeze({
135
+ get: (id) => table.get(id) ?? DEFAULT_TREE_STATE,
136
+ set: (id, patch) => {
137
+ const prev = table.get(id) ?? DEFAULT_TREE_STATE;
138
+ const next = Object.freeze({
139
+ focusedKey: patch.focusedKey !== undefined ? patch.focusedKey : prev.focusedKey,
140
+ loadingKeys: patch.loadingKeys !== undefined ? patch.loadingKeys : prev.loadingKeys,
141
+ scrollTop: patch.scrollTop !== undefined ? patch.scrollTop : prev.scrollTop,
142
+ viewportHeight: patch.viewportHeight !== undefined ? patch.viewportHeight : prev.viewportHeight,
143
+ flatCache: patch.flatCache !== undefined ? patch.flatCache : prev.flatCache,
144
+ expandedSetRef: patch.expandedSetRef !== undefined ? patch.expandedSetRef : prev.expandedSetRef,
145
+ expandedSet: patch.expandedSet !== undefined ? patch.expandedSet : prev.expandedSet,
146
+ prefixCache: patch.prefixCache !== undefined ? patch.prefixCache : prev.prefixCache,
147
+ });
148
+ table.set(id, next);
149
+ return next;
150
+ },
151
+ delete: (id) => {
152
+ table.delete(id);
153
+ },
154
+ startLoading: (id, nodeKey) => {
155
+ const prev = table.get(id) ?? DEFAULT_TREE_STATE;
156
+ const newLoading = new Set(prev.loadingKeys);
157
+ newLoading.add(nodeKey);
158
+ const next = Object.freeze({
159
+ ...prev,
160
+ loadingKeys: Object.freeze(newLoading),
161
+ });
162
+ table.set(id, next);
163
+ return next;
164
+ },
165
+ finishLoading: (id, nodeKey) => {
166
+ const prev = table.get(id) ?? DEFAULT_TREE_STATE;
167
+ if (!prev.loadingKeys.has(nodeKey)) {
168
+ return prev;
169
+ }
170
+ const newLoading = new Set(prev.loadingKeys);
171
+ newLoading.delete(nodeKey);
172
+ const next = Object.freeze({
173
+ ...prev,
174
+ loadingKeys: Object.freeze(newLoading),
175
+ });
176
+ table.set(id, next);
177
+ return next;
178
+ },
179
+ });
180
+ return store;
181
+ }
182
+ //# sourceMappingURL=localState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localState.js","sourceRoot":"","sources":["../../src/runtime/localState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * packages/core/src/runtime/reconcile.ts — VNode tree reconciliation.
3
+ *
4
+ * Why: Matches new VNode children against previous children to determine which
5
+ * instances can be reused, which are new, and which should be unmounted. Uses
6
+ * key-based matching when keys are provided, index-based otherwise.
7
+ *
8
+ * Reconciliation rules:
9
+ * - Keyed children match by key (deterministic across reordering)
10
+ * - Unkeyed children match by index (position-based)
11
+ * - Duplicate keys within siblings are fatal errors
12
+ * - Reused instances keep their instanceId; new instances get fresh IDs
13
+ *
14
+ * @see docs/guide/runtime-and-layout.md
15
+ */
16
+ import type { VNode } from "../index.js";
17
+ import type { InstanceId, InstanceIdAllocator } from "./instance.js";
18
+ /** Slot identifier: keyed ("k:mykey") or indexed ("i:0"). */
19
+ export type SlotId = `k:${string}` | `i:${number}`;
20
+ /** Fatal error from reconciliation (duplicate keys). */
21
+ export type ReconcileFatal = Readonly<{
22
+ code: "ZRUI_DUPLICATE_KEY";
23
+ detail: string;
24
+ }>;
25
+ /** Result of matching a single child in reconciliation. */
26
+ export type ReconciledChild = Readonly<{
27
+ slotId: SlotId;
28
+ vnode: VNode;
29
+ instanceId: InstanceId;
30
+ kind: "reused" | "new";
31
+ prevIndex: number | null;
32
+ }>;
33
+ /** Successful reconciliation result with instance lifecycle information. */
34
+ export type ReconcileChildrenOk = Readonly<{
35
+ nextChildren: readonly ReconciledChild[];
36
+ reusedInstanceIds: readonly InstanceId[];
37
+ newInstanceIds: readonly InstanceId[];
38
+ unmountedInstanceIds: readonly InstanceId[];
39
+ }>;
40
+ export type ReconcileChildrenResult = Readonly<{
41
+ ok: true;
42
+ value: ReconcileChildrenOk;
43
+ }> | Readonly<{
44
+ ok: false;
45
+ fatal: ReconcileFatal;
46
+ }>;
47
+ type PrevChild = Readonly<{
48
+ instanceId: InstanceId;
49
+ vnode: VNode;
50
+ }>;
51
+ /** Compute the slot ID for a child: keyed if key present, indexed otherwise. */
52
+ export declare function slotIdForChild(child: VNode, childIndex: number): SlotId;
53
+ /**
54
+ * Reconcile previous children against new VNode children.
55
+ *
56
+ * @param parentInstanceId - ID of parent instance (for error messages)
57
+ * @param prevChildren - Previous children with instance IDs
58
+ * @param nextVChildren - New VNode children to reconcile
59
+ * @param allocator - Instance ID allocator for new children
60
+ * @returns Reconciliation result or fatal error for duplicate keys
61
+ */
62
+ export declare function reconcileChildren(parentInstanceId: InstanceId, prevChildren: readonly PrevChild[], nextVChildren: readonly VNode[], allocator: InstanceIdAllocator): ReconcileChildrenResult;
63
+ export {};
64
+ //# sourceMappingURL=reconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/runtime/reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAErE,6DAA6D;AAC7D,MAAM,MAAM,MAAM,GAAG,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAAC;AAEnD,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,YAAY,EAAE,SAAS,eAAe,EAAE,CAAC;IACzC,iBAAiB,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,oBAAoB,EAAE,SAAS,UAAU,EAAE,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAC/B,QAAQ,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC,GAClD,QAAQ,CAAC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC;AAEnD,KAAK,SAAS,GAAG,QAAQ,CAAC;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AA4CpE,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIvE;AAkFD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,UAAU,EAC5B,YAAY,EAAE,SAAS,SAAS,EAAE,EAClC,aAAa,EAAE,SAAS,KAAK,EAAE,EAC/B,SAAS,EAAE,mBAAmB,GAC7B,uBAAuB,CAwFzB"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * packages/core/src/runtime/reconcile.ts — VNode tree reconciliation.
3
+ *
4
+ * Why: Matches new VNode children against previous children to determine which
5
+ * instances can be reused, which are new, and which should be unmounted. Uses
6
+ * key-based matching when keys are provided, index-based otherwise.
7
+ *
8
+ * Reconciliation rules:
9
+ * - Keyed children match by key (deterministic across reordering)
10
+ * - Unkeyed children match by index (position-based)
11
+ * - Duplicate keys within siblings are fatal errors
12
+ * - Reused instances keep their instanceId; new instances get fresh IDs
13
+ *
14
+ * @see docs/guide/runtime-and-layout.md
15
+ */
16
+ function getVNodeKey(v) {
17
+ switch (v.kind) {
18
+ case "text":
19
+ return v.props.key;
20
+ case "box":
21
+ case "row":
22
+ case "column":
23
+ return v.props.key;
24
+ case "spacer":
25
+ return v.props.key;
26
+ case "button":
27
+ return v.props.key;
28
+ case "input":
29
+ return v.props.key;
30
+ case "focusZone":
31
+ case "focusTrap":
32
+ return v.props.key;
33
+ case "virtualList":
34
+ return v.props.key;
35
+ case "layers":
36
+ return v.props.key;
37
+ case "modal":
38
+ return v.props.key;
39
+ case "dropdown":
40
+ return v.props.key;
41
+ case "layer":
42
+ return v.props.key;
43
+ case "table":
44
+ return v.props.key;
45
+ case "tree":
46
+ return v.props.key;
47
+ case "field":
48
+ return v.props.key;
49
+ case "select":
50
+ return v.props.key;
51
+ case "checkbox":
52
+ return v.props.key;
53
+ case "radioGroup":
54
+ return v.props.key;
55
+ }
56
+ }
57
+ /** Compute the slot ID for a child: keyed if key present, indexed otherwise. */
58
+ export function slotIdForChild(child, childIndex) {
59
+ const key = getVNodeKey(child);
60
+ if (key !== undefined)
61
+ return `k:${key}`;
62
+ return `i:${childIndex}`;
63
+ }
64
+ function duplicateKeyDetail(parentInstanceId, key, aIndex, bIndex) {
65
+ // Deterministic, stable detail string (no object dumps, no JSON ordering concerns).
66
+ return `duplicate sibling key "${key}" under parent instanceId=${String(parentInstanceId)} (child indices ${String(aIndex)} and ${String(bIndex)})`;
67
+ }
68
+ function containsAnyKeyInPrevChildren(prevChildren) {
69
+ for (let i = 0; i < prevChildren.length; i++) {
70
+ const prev = prevChildren[i];
71
+ if (!prev)
72
+ continue;
73
+ if (getVNodeKey(prev.vnode) !== undefined)
74
+ return true;
75
+ }
76
+ return false;
77
+ }
78
+ function containsAnyKeyInNextChildren(nextVChildren) {
79
+ for (let i = 0; i < nextVChildren.length; i++) {
80
+ const vnode = nextVChildren[i];
81
+ if (!vnode)
82
+ continue;
83
+ if (getVNodeKey(vnode) !== undefined)
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ function reconcileUnkeyedChildren(prevChildren, nextVChildren, allocator) {
89
+ const nextChildren = [];
90
+ const reusedInstanceIds = [];
91
+ const newInstanceIds = [];
92
+ const unmountedInstanceIds = [];
93
+ const sharedLength = Math.min(prevChildren.length, nextVChildren.length);
94
+ for (let i = 0; i < sharedLength; i++) {
95
+ const prev = prevChildren[i];
96
+ const vnode = nextVChildren[i];
97
+ if (!vnode)
98
+ continue;
99
+ const slotId = `i:${i}`;
100
+ if (prev) {
101
+ const instanceId = prev.instanceId;
102
+ reusedInstanceIds.push(instanceId);
103
+ nextChildren.push({ slotId, vnode, instanceId, kind: "reused", prevIndex: i });
104
+ continue;
105
+ }
106
+ const instanceId = allocator.allocate();
107
+ newInstanceIds.push(instanceId);
108
+ nextChildren.push({ slotId, vnode, instanceId, kind: "new", prevIndex: null });
109
+ }
110
+ for (let i = sharedLength; i < nextVChildren.length; i++) {
111
+ const vnode = nextVChildren[i];
112
+ if (!vnode)
113
+ continue;
114
+ const slotId = `i:${i}`;
115
+ const instanceId = allocator.allocate();
116
+ newInstanceIds.push(instanceId);
117
+ nextChildren.push({ slotId, vnode, instanceId, kind: "new", prevIndex: null });
118
+ }
119
+ for (let i = sharedLength; i < prevChildren.length; i++) {
120
+ const prev = prevChildren[i];
121
+ if (!prev)
122
+ continue;
123
+ unmountedInstanceIds.push(prev.instanceId);
124
+ }
125
+ return {
126
+ nextChildren,
127
+ reusedInstanceIds,
128
+ newInstanceIds,
129
+ unmountedInstanceIds,
130
+ };
131
+ }
132
+ /**
133
+ * Reconcile previous children against new VNode children.
134
+ *
135
+ * @param parentInstanceId - ID of parent instance (for error messages)
136
+ * @param prevChildren - Previous children with instance IDs
137
+ * @param nextVChildren - New VNode children to reconcile
138
+ * @param allocator - Instance ID allocator for new children
139
+ * @returns Reconciliation result or fatal error for duplicate keys
140
+ */
141
+ export function reconcileChildren(parentInstanceId, prevChildren, nextVChildren, allocator) {
142
+ const prevContainsKeys = containsAnyKeyInPrevChildren(prevChildren);
143
+ const nextContainsKeys = containsAnyKeyInNextChildren(nextVChildren);
144
+ if (!prevContainsKeys && !nextContainsKeys) {
145
+ return {
146
+ ok: true,
147
+ value: reconcileUnkeyedChildren(prevChildren, nextVChildren, allocator),
148
+ };
149
+ }
150
+ const prevBySlotId = new Map();
151
+ for (let i = 0; i < prevChildren.length; i++) {
152
+ const prev = prevChildren[i];
153
+ if (!prev)
154
+ continue;
155
+ const slotId = slotIdForChild(prev.vnode, i);
156
+ if (slotId.startsWith("k:")) {
157
+ const existing = prevBySlotId.get(slotId);
158
+ if (existing !== undefined) {
159
+ return {
160
+ ok: false,
161
+ fatal: {
162
+ code: "ZRUI_DUPLICATE_KEY",
163
+ detail: duplicateKeyDetail(parentInstanceId, slotId.slice(2), existing, i),
164
+ },
165
+ };
166
+ }
167
+ }
168
+ prevBySlotId.set(slotId, i);
169
+ }
170
+ const seenNextKeySlot = new Map();
171
+ const usedPrev = new Array(prevChildren.length).fill(false);
172
+ const nextChildren = [];
173
+ const reusedInstanceIds = [];
174
+ const newInstanceIds = [];
175
+ for (let nextIndex = 0; nextIndex < nextVChildren.length; nextIndex++) {
176
+ const vnode = nextVChildren[nextIndex];
177
+ if (!vnode)
178
+ continue;
179
+ const slotId = slotIdForChild(vnode, nextIndex);
180
+ if (slotId.startsWith("k:")) {
181
+ const key = slotId.slice(2);
182
+ const existing = seenNextKeySlot.get(key);
183
+ if (existing !== undefined) {
184
+ return {
185
+ ok: false,
186
+ fatal: {
187
+ code: "ZRUI_DUPLICATE_KEY",
188
+ detail: duplicateKeyDetail(parentInstanceId, key, existing, nextIndex),
189
+ },
190
+ };
191
+ }
192
+ seenNextKeySlot.set(key, nextIndex);
193
+ }
194
+ const prevIndex = prevBySlotId.get(slotId);
195
+ const prevChild = prevIndex !== undefined ? prevChildren[prevIndex] : undefined;
196
+ if (prevIndex !== undefined && prevChild !== undefined && usedPrev[prevIndex] === false) {
197
+ usedPrev[prevIndex] = true;
198
+ const instanceId = prevChild.instanceId;
199
+ reusedInstanceIds.push(instanceId);
200
+ nextChildren.push({ slotId, vnode, instanceId, kind: "reused", prevIndex });
201
+ continue;
202
+ }
203
+ const instanceId = allocator.allocate();
204
+ newInstanceIds.push(instanceId);
205
+ nextChildren.push({ slotId, vnode, instanceId, kind: "new", prevIndex: null });
206
+ }
207
+ const unmountedInstanceIds = [];
208
+ for (let i = 0; i < prevChildren.length; i++) {
209
+ const prev = prevChildren[i];
210
+ if (!usedPrev[i] && prev)
211
+ unmountedInstanceIds.push(prev.instanceId);
212
+ }
213
+ return {
214
+ ok: true,
215
+ value: {
216
+ nextChildren,
217
+ reusedInstanceIds,
218
+ newInstanceIds,
219
+ unmountedInstanceIds,
220
+ },
221
+ };
222
+ }
223
+ //# sourceMappingURL=reconcile.js.map