@rezi-ui/core 0.1.0-alpha.9 → 0.1.0-beta.2

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 (1478) 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 +26 -0
  31. package/dist/app/createApp/config.d.ts.map +1 -0
  32. package/dist/app/createApp/config.js +137 -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 +720 -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 +203 -0
  73. package/dist/app/inspectorOverlayHelper.js.map +1 -0
  74. package/dist/app/rawRenderer.d.ts +6 -4
  75. package/dist/app/rawRenderer.d.ts.map +1 -1
  76. package/dist/app/rawRenderer.js +45 -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 +71 -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/codeEditorRouting.d.ts.map +1 -1
  91. package/dist/app/widgetRenderer/codeEditorRouting.js +31 -25
  92. package/dist/app/widgetRenderer/codeEditorRouting.js.map +1 -1
  93. package/dist/app/widgetRenderer/commandPaletteRouting.d.ts +1 -1
  94. package/dist/app/widgetRenderer/commandPaletteRouting.d.ts.map +1 -1
  95. package/dist/app/widgetRenderer/commandPaletteRouting.js +14 -14
  96. package/dist/app/widgetRenderer/commandPaletteRouting.js.map +1 -1
  97. package/dist/app/widgetRenderer/constraintState.d.ts +98 -0
  98. package/dist/app/widgetRenderer/constraintState.d.ts.map +1 -0
  99. package/dist/app/widgetRenderer/constraintState.js +563 -0
  100. package/dist/app/widgetRenderer/constraintState.js.map +1 -0
  101. package/dist/app/widgetRenderer/cursorBreadcrumbs.d.ts +74 -0
  102. package/dist/app/widgetRenderer/cursorBreadcrumbs.d.ts.map +1 -0
  103. package/dist/app/widgetRenderer/cursorBreadcrumbs.js +273 -0
  104. package/dist/app/widgetRenderer/cursorBreadcrumbs.js.map +1 -0
  105. package/dist/app/widgetRenderer/damageTracking.d.ts +92 -0
  106. package/dist/app/widgetRenderer/damageTracking.d.ts.map +1 -0
  107. package/dist/app/widgetRenderer/damageTracking.js +513 -0
  108. package/dist/app/widgetRenderer/damageTracking.js.map +1 -0
  109. package/dist/app/widgetRenderer/devWarnings.d.ts +24 -0
  110. package/dist/app/widgetRenderer/devWarnings.d.ts.map +1 -0
  111. package/dist/app/widgetRenderer/devWarnings.js +86 -0
  112. package/dist/app/widgetRenderer/devWarnings.js.map +1 -0
  113. package/dist/app/widgetRenderer/fileNodeCache.d.ts +2 -0
  114. package/dist/app/widgetRenderer/fileNodeCache.d.ts.map +1 -1
  115. package/dist/app/widgetRenderer/fileNodeCache.js +31 -0
  116. package/dist/app/widgetRenderer/fileNodeCache.js.map +1 -1
  117. package/dist/app/widgetRenderer/filePickerRouting.d.ts +12 -1
  118. package/dist/app/widgetRenderer/filePickerRouting.d.ts.map +1 -1
  119. package/dist/app/widgetRenderer/filePickerRouting.js +82 -23
  120. package/dist/app/widgetRenderer/filePickerRouting.js.map +1 -1
  121. package/dist/app/widgetRenderer/focusState.d.ts +46 -0
  122. package/dist/app/widgetRenderer/focusState.d.ts.map +1 -0
  123. package/dist/app/widgetRenderer/focusState.js +122 -0
  124. package/dist/app/widgetRenderer/focusState.js.map +1 -0
  125. package/dist/app/widgetRenderer/inputEditing.d.ts +27 -0
  126. package/dist/app/widgetRenderer/inputEditing.d.ts.map +1 -0
  127. package/dist/app/widgetRenderer/inputEditing.js +146 -0
  128. package/dist/app/widgetRenderer/inputEditing.js.map +1 -0
  129. package/dist/app/widgetRenderer/keyboardRouting.d.ts +76 -0
  130. package/dist/app/widgetRenderer/keyboardRouting.d.ts.map +1 -0
  131. package/dist/app/widgetRenderer/keyboardRouting.js +628 -0
  132. package/dist/app/widgetRenderer/keyboardRouting.js.map +1 -0
  133. package/dist/app/widgetRenderer/mouseRouting.d.ts +273 -0
  134. package/dist/app/widgetRenderer/mouseRouting.d.ts.map +1 -0
  135. package/dist/app/widgetRenderer/mouseRouting.js +1357 -0
  136. package/dist/app/widgetRenderer/mouseRouting.js.map +1 -0
  137. package/dist/app/widgetRenderer/overlayShortcuts.d.ts +68 -0
  138. package/dist/app/widgetRenderer/overlayShortcuts.d.ts.map +1 -0
  139. package/dist/app/widgetRenderer/overlayShortcuts.js +167 -0
  140. package/dist/app/widgetRenderer/overlayShortcuts.js.map +1 -0
  141. package/dist/app/widgetRenderer/overlayState.d.ts +198 -0
  142. package/dist/app/widgetRenderer/overlayState.d.ts.map +1 -0
  143. package/dist/app/widgetRenderer/overlayState.js +614 -0
  144. package/dist/app/widgetRenderer/overlayState.js.map +1 -0
  145. package/dist/app/widgetRenderer/routeEngineEvent.d.ts +194 -0
  146. package/dist/app/widgetRenderer/routeEngineEvent.d.ts.map +1 -0
  147. package/dist/app/widgetRenderer/routeEngineEvent.js +589 -0
  148. package/dist/app/widgetRenderer/routeEngineEvent.js.map +1 -0
  149. package/dist/app/widgetRenderer/safeCallback.d.ts +2 -0
  150. package/dist/app/widgetRenderer/safeCallback.d.ts.map +1 -0
  151. package/dist/app/widgetRenderer/safeCallback.js +33 -0
  152. package/dist/app/widgetRenderer/safeCallback.js.map +1 -0
  153. package/dist/app/widgetRenderer/submitFramePipeline.d.ts +2 -2
  154. package/dist/app/widgetRenderer/submitFramePipeline.d.ts.map +1 -1
  155. package/dist/app/widgetRenderer/submitFramePipeline.js +496 -17
  156. package/dist/app/widgetRenderer/submitFramePipeline.js.map +1 -1
  157. package/dist/app/widgetRenderer/toolApprovalRouting.d.ts.map +1 -1
  158. package/dist/app/widgetRenderer/toolApprovalRouting.js +19 -15
  159. package/dist/app/widgetRenderer/toolApprovalRouting.js.map +1 -1
  160. package/dist/app/widgetRenderer.d.ts +217 -22
  161. package/dist/app/widgetRenderer.d.ts.map +1 -1
  162. package/dist/app/widgetRenderer.js +2142 -2415
  163. package/dist/app/widgetRenderer.js.map +1 -1
  164. package/dist/backend.d.ts +52 -2
  165. package/dist/backend.d.ts.map +1 -1
  166. package/dist/backend.js +31 -0
  167. package/dist/backend.js.map +1 -1
  168. package/dist/binary/writer.d.ts.map +1 -1
  169. package/dist/binary/writer.js +13 -1
  170. package/dist/binary/writer.js.map +1 -1
  171. package/dist/constraints/expr.d.ts +9 -0
  172. package/dist/constraints/expr.d.ts.map +1 -0
  173. package/dist/constraints/expr.js +134 -0
  174. package/dist/constraints/expr.js.map +1 -0
  175. package/dist/constraints/graph.d.ts +62 -0
  176. package/dist/constraints/graph.d.ts.map +1 -0
  177. package/dist/constraints/graph.js +359 -0
  178. package/dist/constraints/graph.js.map +1 -0
  179. package/dist/constraints/helpers.d.ts +191 -0
  180. package/dist/constraints/helpers.d.ts.map +1 -0
  181. package/dist/constraints/helpers.js +483 -0
  182. package/dist/constraints/helpers.js.map +1 -0
  183. package/dist/constraints/parser.d.ts +19 -0
  184. package/dist/constraints/parser.d.ts.map +1 -0
  185. package/dist/constraints/parser.js +522 -0
  186. package/dist/constraints/parser.js.map +1 -0
  187. package/dist/constraints/resolver.d.ts +70 -0
  188. package/dist/constraints/resolver.d.ts.map +1 -0
  189. package/dist/constraints/resolver.js +444 -0
  190. package/dist/constraints/resolver.js.map +1 -0
  191. package/dist/constraints/types.d.ts +65 -0
  192. package/dist/constraints/types.d.ts.map +1 -0
  193. package/dist/constraints/types.js +7 -0
  194. package/dist/constraints/types.js.map +1 -0
  195. package/dist/debug/constants.d.ts +16 -0
  196. package/dist/debug/constants.d.ts.map +1 -1
  197. package/dist/debug/constants.js +18 -0
  198. package/dist/debug/constants.js.map +1 -1
  199. package/dist/debug/debugController.d.ts +14 -1
  200. package/dist/debug/debugController.d.ts.map +1 -1
  201. package/dist/debug/debugController.js +247 -5
  202. package/dist/debug/debugController.js.map +1 -1
  203. package/dist/debug/describeThrown.d.ts +2 -0
  204. package/dist/debug/describeThrown.d.ts.map +1 -0
  205. package/dist/debug/describeThrown.js +11 -0
  206. package/dist/debug/describeThrown.js.map +1 -0
  207. package/dist/debug/index.d.ts +2 -2
  208. package/dist/debug/index.d.ts.map +1 -1
  209. package/dist/debug/index.js +1 -1
  210. package/dist/debug/index.js.map +1 -1
  211. package/dist/debug/types.d.ts +125 -0
  212. package/dist/debug/types.d.ts.map +1 -1
  213. package/dist/drawApi.d.ts +6 -6
  214. package/dist/drawApi.d.ts.map +1 -1
  215. package/dist/drawlist/builder.d.ts +5 -0
  216. package/dist/drawlist/builder.d.ts.map +1 -0
  217. package/dist/drawlist/builder.js +745 -0
  218. package/dist/drawlist/builder.js.map +1 -0
  219. package/dist/drawlist/builderBase.d.ts +132 -0
  220. package/dist/drawlist/builderBase.d.ts.map +1 -0
  221. package/dist/drawlist/builderBase.js +879 -0
  222. package/dist/drawlist/builderBase.js.map +1 -0
  223. package/dist/drawlist/index.d.ts +2 -3
  224. package/dist/drawlist/index.d.ts.map +1 -1
  225. package/dist/drawlist/index.js +1 -2
  226. package/dist/drawlist/index.js.map +1 -1
  227. package/dist/drawlist/textArena.d.ts +38 -0
  228. package/dist/drawlist/textArena.d.ts.map +1 -0
  229. package/dist/drawlist/textArena.js +101 -0
  230. package/dist/drawlist/textArena.js.map +1 -0
  231. package/dist/drawlist/types.d.ts +40 -103
  232. package/dist/drawlist/types.d.ts.map +1 -1
  233. package/dist/drawlist/types.js +0 -9
  234. package/dist/drawlist/types.js.map +1 -1
  235. package/dist/drawlist/writers.gen.d.ts +30 -0
  236. package/dist/drawlist/writers.gen.d.ts.map +1 -0
  237. package/dist/drawlist/writers.gen.js +240 -0
  238. package/dist/drawlist/writers.gen.js.map +1 -0
  239. package/dist/events.d.ts +2 -14
  240. package/dist/events.d.ts.map +1 -1
  241. package/dist/forms/bind.d.ts +6 -6
  242. package/dist/forms/bind.d.ts.map +1 -1
  243. package/dist/forms/bind.js +61 -5
  244. package/dist/forms/bind.js.map +1 -1
  245. package/dist/forms/index.d.ts +1 -1
  246. package/dist/forms/index.d.ts.map +1 -1
  247. package/dist/forms/index.js.map +1 -1
  248. package/dist/forms/internal/arrayState.d.ts +35 -0
  249. package/dist/forms/internal/arrayState.d.ts.map +1 -0
  250. package/dist/forms/internal/arrayState.js +238 -0
  251. package/dist/forms/internal/arrayState.js.map +1 -0
  252. package/dist/forms/internal/bindings.d.ts +46 -0
  253. package/dist/forms/internal/bindings.d.ts.map +1 -0
  254. package/dist/forms/internal/bindings.js +161 -0
  255. package/dist/forms/internal/bindings.js.map +1 -0
  256. package/dist/forms/internal/dev.d.ts +4 -0
  257. package/dist/forms/internal/dev.d.ts.map +1 -0
  258. package/dist/forms/internal/dev.js +21 -0
  259. package/dist/forms/internal/dev.js.map +1 -0
  260. package/dist/forms/internal/state.d.ts +52 -0
  261. package/dist/forms/internal/state.d.ts.map +1 -0
  262. package/dist/forms/internal/state.js +240 -0
  263. package/dist/forms/internal/state.js.map +1 -0
  264. package/dist/forms/internal/submit.d.ts +43 -0
  265. package/dist/forms/internal/submit.d.ts.map +1 -0
  266. package/dist/forms/internal/submit.js +165 -0
  267. package/dist/forms/internal/submit.js.map +1 -0
  268. package/dist/forms/internal/wizard.d.ts +53 -0
  269. package/dist/forms/internal/wizard.d.ts.map +1 -0
  270. package/dist/forms/internal/wizard.js +311 -0
  271. package/dist/forms/internal/wizard.js.map +1 -0
  272. package/dist/forms/types.d.ts +170 -15
  273. package/dist/forms/types.d.ts.map +1 -1
  274. package/dist/forms/useForm.d.ts +2 -40
  275. package/dist/forms/useForm.d.ts.map +1 -1
  276. package/dist/forms/useForm.js +136 -267
  277. package/dist/forms/useForm.js.map +1 -1
  278. package/dist/forms/validation.d.ts +3 -2
  279. package/dist/forms/validation.d.ts.map +1 -1
  280. package/dist/forms/validation.js +24 -8
  281. package/dist/forms/validation.js.map +1 -1
  282. package/dist/icons/index.d.ts +1 -0
  283. package/dist/icons/index.d.ts.map +1 -1
  284. package/dist/icons/index.js +1 -0
  285. package/dist/icons/index.js.map +1 -1
  286. package/dist/icons/resolveGlyph.d.ts +23 -0
  287. package/dist/icons/resolveGlyph.d.ts.map +1 -0
  288. package/dist/icons/resolveGlyph.js +92 -0
  289. package/dist/icons/resolveGlyph.js.map +1 -0
  290. package/dist/index.d.ts +63 -132
  291. package/dist/index.d.ts.map +1 -1
  292. package/dist/index.js +66 -26
  293. package/dist/index.js.map +1 -1
  294. package/dist/keybindings/index.d.ts +2 -2
  295. package/dist/keybindings/index.d.ts.map +1 -1
  296. package/dist/keybindings/index.js +1 -1
  297. package/dist/keybindings/index.js.map +1 -1
  298. package/dist/keybindings/manager.d.ts +32 -3
  299. package/dist/keybindings/manager.d.ts.map +1 -1
  300. package/dist/keybindings/manager.js +183 -25
  301. package/dist/keybindings/manager.js.map +1 -1
  302. package/dist/keybindings/parser.d.ts.map +1 -1
  303. package/dist/keybindings/parser.js +45 -5
  304. package/dist/keybindings/parser.js.map +1 -1
  305. package/dist/keybindings/types.d.ts +2 -0
  306. package/dist/keybindings/types.d.ts.map +1 -1
  307. package/dist/layout/constraints.d.ts +54 -5
  308. package/dist/layout/constraints.d.ts.map +1 -1
  309. package/dist/layout/constraints.js +194 -15
  310. package/dist/layout/constraints.js.map +1 -1
  311. package/dist/layout/dropdownGeometry.d.ts +15 -0
  312. package/dist/layout/dropdownGeometry.d.ts.map +1 -0
  313. package/dist/layout/dropdownGeometry.js +79 -0
  314. package/dist/layout/dropdownGeometry.js.map +1 -0
  315. package/dist/layout/engine/dirtySet.d.ts +9 -0
  316. package/dist/layout/engine/dirtySet.d.ts.map +1 -0
  317. package/dist/layout/engine/dirtySet.js +67 -0
  318. package/dist/layout/engine/dirtySet.js.map +1 -0
  319. package/dist/layout/engine/distributeInteger.d.ts +9 -0
  320. package/dist/layout/engine/distributeInteger.d.ts.map +1 -0
  321. package/dist/layout/engine/distributeInteger.js +62 -0
  322. package/dist/layout/engine/distributeInteger.js.map +1 -0
  323. package/dist/layout/engine/flex.d.ts +14 -0
  324. package/dist/layout/engine/flex.d.ts.map +1 -1
  325. package/dist/layout/engine/flex.js +144 -1
  326. package/dist/layout/engine/flex.js.map +1 -1
  327. package/dist/layout/engine/guards.d.ts +11 -5
  328. package/dist/layout/engine/guards.d.ts.map +1 -1
  329. package/dist/layout/engine/guards.js +29 -14
  330. package/dist/layout/engine/guards.js.map +1 -1
  331. package/dist/layout/engine/intrinsic.d.ts +8 -0
  332. package/dist/layout/engine/intrinsic.d.ts.map +1 -0
  333. package/dist/layout/engine/intrinsic.js +391 -0
  334. package/dist/layout/engine/intrinsic.js.map +1 -0
  335. package/dist/layout/engine/layoutEngine.d.ts +13 -2
  336. package/dist/layout/engine/layoutEngine.d.ts.map +1 -1
  337. package/dist/layout/engine/layoutEngine.js +633 -29
  338. package/dist/layout/engine/layoutEngine.js.map +1 -1
  339. package/dist/layout/engine/layoutTree.d.ts +1 -1
  340. package/dist/layout/engine/layoutTree.d.ts.map +1 -1
  341. package/dist/layout/engine/pool.d.ts.map +1 -1
  342. package/dist/layout/engine/pool.js +8 -2
  343. package/dist/layout/engine/pool.js.map +1 -1
  344. package/dist/layout/engine/types.d.ts +4 -1
  345. package/dist/layout/engine/types.d.ts.map +1 -1
  346. package/dist/layout/hitTest.d.ts +14 -4
  347. package/dist/layout/hitTest.d.ts.map +1 -1
  348. package/dist/layout/hitTest.js +210 -68
  349. package/dist/layout/hitTest.js.map +1 -1
  350. package/dist/layout/kinds/box.d.ts +3 -3
  351. package/dist/layout/kinds/box.d.ts.map +1 -1
  352. package/dist/layout/kinds/box.js +102 -5
  353. package/dist/layout/kinds/box.js.map +1 -1
  354. package/dist/layout/kinds/collections.d.ts +1 -1
  355. package/dist/layout/kinds/collections.d.ts.map +1 -1
  356. package/dist/layout/kinds/collections.js +58 -8
  357. package/dist/layout/kinds/collections.js.map +1 -1
  358. package/dist/layout/kinds/grid.d.ts +10 -0
  359. package/dist/layout/kinds/grid.d.ts.map +1 -0
  360. package/dist/layout/kinds/grid.js +564 -0
  361. package/dist/layout/kinds/grid.js.map +1 -0
  362. package/dist/layout/kinds/leaf.d.ts +1 -1
  363. package/dist/layout/kinds/leaf.d.ts.map +1 -1
  364. package/dist/layout/kinds/leaf.js +169 -54
  365. package/dist/layout/kinds/leaf.js.map +1 -1
  366. package/dist/layout/kinds/navigation.d.ts +10 -0
  367. package/dist/layout/kinds/navigation.d.ts.map +1 -0
  368. package/dist/layout/kinds/navigation.js +59 -0
  369. package/dist/layout/kinds/navigation.js.map +1 -0
  370. package/dist/layout/kinds/overlays.d.ts +2 -2
  371. package/dist/layout/kinds/overlays.d.ts.map +1 -1
  372. package/dist/layout/kinds/overlays.js +113 -30
  373. package/dist/layout/kinds/overlays.js.map +1 -1
  374. package/dist/layout/kinds/splitPane.d.ts +1 -1
  375. package/dist/layout/kinds/splitPane.d.ts.map +1 -1
  376. package/dist/layout/kinds/splitPane.js.map +1 -1
  377. package/dist/layout/kinds/stack.d.ts +2 -4
  378. package/dist/layout/kinds/stack.d.ts.map +1 -1
  379. package/dist/layout/kinds/stack.js +26 -814
  380. package/dist/layout/kinds/stack.js.map +1 -1
  381. package/dist/layout/kinds/stackParts/axis.d.ts +32 -0
  382. package/dist/layout/kinds/stackParts/axis.d.ts.map +1 -0
  383. package/dist/layout/kinds/stackParts/axis.js +61 -0
  384. package/dist/layout/kinds/stackParts/axis.js.map +1 -0
  385. package/dist/layout/kinds/stackParts/constraintPlan.d.ts +18 -0
  386. package/dist/layout/kinds/stackParts/constraintPlan.d.ts.map +1 -0
  387. package/dist/layout/kinds/stackParts/constraintPlan.js +434 -0
  388. package/dist/layout/kinds/stackParts/constraintPlan.js.map +1 -0
  389. package/dist/layout/kinds/stackParts/layout.d.ts +6 -0
  390. package/dist/layout/kinds/stackParts/layout.d.ts.map +1 -0
  391. package/dist/layout/kinds/stackParts/layout.js +376 -0
  392. package/dist/layout/kinds/stackParts/layout.js.map +1 -0
  393. package/dist/layout/kinds/stackParts/measure.d.ts +6 -0
  394. package/dist/layout/kinds/stackParts/measure.d.ts.map +1 -0
  395. package/dist/layout/kinds/stackParts/measure.js +212 -0
  396. package/dist/layout/kinds/stackParts/measure.js.map +1 -0
  397. package/dist/layout/kinds/stackParts/shared.d.ts +31 -0
  398. package/dist/layout/kinds/stackParts/shared.d.ts.map +1 -0
  399. package/dist/layout/kinds/stackParts/shared.js +94 -0
  400. package/dist/layout/kinds/stackParts/shared.js.map +1 -0
  401. package/dist/layout/kinds/stackParts/wrap.d.ts +26 -0
  402. package/dist/layout/kinds/stackParts/wrap.d.ts.map +1 -0
  403. package/dist/layout/kinds/stackParts/wrap.js +374 -0
  404. package/dist/layout/kinds/stackParts/wrap.js.map +1 -0
  405. package/dist/layout/responsive.d.ts +33 -0
  406. package/dist/layout/responsive.d.ts.map +1 -0
  407. package/dist/layout/responsive.js +145 -0
  408. package/dist/layout/responsive.js.map +1 -0
  409. package/dist/layout/spacing-scale.d.ts +4 -1
  410. package/dist/layout/spacing-scale.d.ts.map +1 -1
  411. package/dist/layout/spacing-scale.js +15 -8
  412. package/dist/layout/spacing-scale.js.map +1 -1
  413. package/dist/layout/textMeasure.d.ts +48 -2
  414. package/dist/layout/textMeasure.d.ts.map +1 -1
  415. package/dist/layout/textMeasure.js +247 -20
  416. package/dist/layout/textMeasure.js.map +1 -1
  417. package/dist/layout/types.d.ts +42 -7
  418. package/dist/layout/types.d.ts.map +1 -1
  419. package/dist/layout/types.js +0 -8
  420. package/dist/layout/types.js.map +1 -1
  421. package/dist/layout/validate/interactive.d.ts +106 -0
  422. package/dist/layout/validate/interactive.d.ts.map +1 -0
  423. package/dist/layout/validate/interactive.js +430 -0
  424. package/dist/layout/validate/interactive.js.map +1 -0
  425. package/dist/layout/validate/layoutConstraints.d.ts +51 -0
  426. package/dist/layout/validate/layoutConstraints.d.ts.map +1 -0
  427. package/dist/layout/validate/layoutConstraints.js +100 -0
  428. package/dist/layout/validate/layoutConstraints.js.map +1 -0
  429. package/dist/layout/validate/primitives.d.ts +31 -0
  430. package/dist/layout/validate/primitives.d.ts.map +1 -0
  431. package/dist/layout/validate/primitives.js +299 -0
  432. package/dist/layout/validate/primitives.js.map +1 -0
  433. package/dist/layout/validate/shared.d.ts +23 -0
  434. package/dist/layout/validate/shared.d.ts.map +1 -0
  435. package/dist/layout/validate/shared.js +32 -0
  436. package/dist/layout/validate/shared.js.map +1 -0
  437. package/dist/layout/validate/spacing.d.ts +21 -0
  438. package/dist/layout/validate/spacing.d.ts.map +1 -0
  439. package/dist/layout/validate/spacing.js +33 -0
  440. package/dist/layout/validate/spacing.js.map +1 -0
  441. package/dist/layout/validateProps.d.ts +7 -88
  442. package/dist/layout/validateProps.d.ts.map +1 -1
  443. package/dist/layout/validateProps.js +3 -329
  444. package/dist/layout/validateProps.js.map +1 -1
  445. package/dist/perf/frameAudit.d.ts +27 -0
  446. package/dist/perf/frameAudit.d.ts.map +1 -0
  447. package/dist/perf/frameAudit.js +152 -0
  448. package/dist/perf/frameAudit.js.map +1 -0
  449. package/dist/perf/perf.d.ts +3 -0
  450. package/dist/perf/perf.d.ts.map +1 -1
  451. package/dist/perf/perf.js +17 -7
  452. package/dist/perf/perf.js.map +1 -1
  453. package/dist/pipeline.d.ts +21 -0
  454. package/dist/pipeline.d.ts.map +1 -0
  455. package/dist/pipeline.js +25 -0
  456. package/dist/pipeline.js.map +1 -0
  457. package/dist/protocol/mouseKinds.d.ts +6 -0
  458. package/dist/protocol/mouseKinds.d.ts.map +1 -0
  459. package/dist/protocol/mouseKinds.js +6 -0
  460. package/dist/protocol/mouseKinds.js.map +1 -0
  461. package/dist/protocol/types.d.ts +1 -1
  462. package/dist/renderer/renderToDrawlist/boxBorder.d.ts +15 -8
  463. package/dist/renderer/renderToDrawlist/boxBorder.d.ts.map +1 -1
  464. package/dist/renderer/renderToDrawlist/boxBorder.js +87 -21
  465. package/dist/renderer/renderToDrawlist/boxBorder.js.map +1 -1
  466. package/dist/renderer/renderToDrawlist/damageBounds.d.ts +4 -0
  467. package/dist/renderer/renderToDrawlist/damageBounds.d.ts.map +1 -0
  468. package/dist/renderer/renderToDrawlist/damageBounds.js +28 -0
  469. package/dist/renderer/renderToDrawlist/damageBounds.js.map +1 -0
  470. package/dist/renderer/renderToDrawlist/renderPackets.d.ts +43 -0
  471. package/dist/renderer/renderToDrawlist/renderPackets.d.ts.map +1 -0
  472. package/dist/renderer/renderToDrawlist/renderPackets.js +574 -0
  473. package/dist/renderer/renderToDrawlist/renderPackets.js.map +1 -0
  474. package/dist/renderer/renderToDrawlist/renderTree.d.ts +6 -3
  475. package/dist/renderer/renderToDrawlist/renderTree.d.ts.map +1 -1
  476. package/dist/renderer/renderToDrawlist/renderTree.js +148 -11
  477. package/dist/renderer/renderToDrawlist/renderTree.js.map +1 -1
  478. package/dist/renderer/renderToDrawlist/simpleVNode.d.ts +7 -2
  479. package/dist/renderer/renderToDrawlist/simpleVNode.d.ts.map +1 -1
  480. package/dist/renderer/renderToDrawlist/simpleVNode.js +180 -97
  481. package/dist/renderer/renderToDrawlist/simpleVNode.js.map +1 -1
  482. package/dist/renderer/renderToDrawlist/spacing.d.ts +0 -2
  483. package/dist/renderer/renderToDrawlist/spacing.d.ts.map +1 -1
  484. package/dist/renderer/renderToDrawlist/spacing.js +12 -11
  485. package/dist/renderer/renderToDrawlist/spacing.js.map +1 -1
  486. package/dist/renderer/renderToDrawlist/textStyle.d.ts +7 -2
  487. package/dist/renderer/renderToDrawlist/textStyle.d.ts.map +1 -1
  488. package/dist/renderer/renderToDrawlist/textStyle.js +155 -44
  489. package/dist/renderer/renderToDrawlist/textStyle.js.map +1 -1
  490. package/dist/renderer/renderToDrawlist/themeTokens.d.ts +14 -0
  491. package/dist/renderer/renderToDrawlist/themeTokens.d.ts.map +1 -0
  492. package/dist/renderer/renderToDrawlist/themeTokens.js +34 -0
  493. package/dist/renderer/renderToDrawlist/themeTokens.js.map +1 -0
  494. package/dist/renderer/renderToDrawlist/types.d.ts +18 -4
  495. package/dist/renderer/renderToDrawlist/types.d.ts.map +1 -1
  496. package/dist/renderer/renderToDrawlist/widgets/basic.d.ts +4 -4
  497. package/dist/renderer/renderToDrawlist/widgets/basic.d.ts.map +1 -1
  498. package/dist/renderer/renderToDrawlist/widgets/basic.js +70 -1273
  499. package/dist/renderer/renderToDrawlist/widgets/basic.js.map +1 -1
  500. package/dist/renderer/renderToDrawlist/widgets/collections.d.ts +3 -2
  501. package/dist/renderer/renderToDrawlist/widgets/collections.d.ts.map +1 -1
  502. package/dist/renderer/renderToDrawlist/widgets/collections.js +353 -32
  503. package/dist/renderer/renderToDrawlist/widgets/collections.js.map +1 -1
  504. package/dist/renderer/renderToDrawlist/widgets/containers.d.ts +3 -3
  505. package/dist/renderer/renderToDrawlist/widgets/containers.d.ts.map +1 -1
  506. package/dist/renderer/renderToDrawlist/widgets/containers.js +382 -124
  507. package/dist/renderer/renderToDrawlist/widgets/containers.js.map +1 -1
  508. package/dist/renderer/renderToDrawlist/widgets/editors.d.ts +2 -2
  509. package/dist/renderer/renderToDrawlist/widgets/editors.d.ts.map +1 -1
  510. package/dist/renderer/renderToDrawlist/widgets/editors.js +403 -109
  511. package/dist/renderer/renderToDrawlist/widgets/editors.js.map +1 -1
  512. package/dist/renderer/renderToDrawlist/widgets/files.d.ts +3 -2
  513. package/dist/renderer/renderToDrawlist/widgets/files.d.ts.map +1 -1
  514. package/dist/renderer/renderToDrawlist/widgets/files.js +65 -20
  515. package/dist/renderer/renderToDrawlist/widgets/files.js.map +1 -1
  516. package/dist/renderer/renderToDrawlist/widgets/focusConfig.d.ts +15 -0
  517. package/dist/renderer/renderToDrawlist/widgets/focusConfig.d.ts.map +1 -0
  518. package/dist/renderer/renderToDrawlist/widgets/focusConfig.js +78 -0
  519. package/dist/renderer/renderToDrawlist/widgets/focusConfig.js.map +1 -0
  520. package/dist/renderer/renderToDrawlist/widgets/navigation.d.ts +10 -0
  521. package/dist/renderer/renderToDrawlist/widgets/navigation.d.ts.map +1 -0
  522. package/dist/renderer/renderToDrawlist/widgets/navigation.js +193 -0
  523. package/dist/renderer/renderToDrawlist/widgets/navigation.js.map +1 -0
  524. package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts +3 -3
  525. package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts.map +1 -1
  526. package/dist/renderer/renderToDrawlist/widgets/overlays.js +196 -85
  527. package/dist/renderer/renderToDrawlist/widgets/overlays.js.map +1 -1
  528. package/dist/renderer/renderToDrawlist/widgets/renderCanvasWidgets.d.ts +14 -0
  529. package/dist/renderer/renderToDrawlist/widgets/renderCanvasWidgets.d.ts.map +1 -0
  530. package/dist/renderer/renderToDrawlist/widgets/renderCanvasWidgets.js +318 -0
  531. package/dist/renderer/renderToDrawlist/widgets/renderCanvasWidgets.js.map +1 -0
  532. package/dist/renderer/renderToDrawlist/widgets/renderChartWidgets.d.ts +9 -0
  533. package/dist/renderer/renderToDrawlist/widgets/renderChartWidgets.d.ts.map +1 -0
  534. package/dist/renderer/renderToDrawlist/widgets/renderChartWidgets.js +519 -0
  535. package/dist/renderer/renderToDrawlist/widgets/renderChartWidgets.js.map +1 -0
  536. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.d.ts +18 -0
  537. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.d.ts.map +1 -0
  538. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.js +939 -0
  539. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.js.map +1 -0
  540. package/dist/renderer/renderToDrawlist/widgets/renderIndicatorWidgets.d.ts +9 -0
  541. package/dist/renderer/renderToDrawlist/widgets/renderIndicatorWidgets.d.ts.map +1 -0
  542. package/dist/renderer/renderToDrawlist/widgets/renderIndicatorWidgets.js +565 -0
  543. package/dist/renderer/renderToDrawlist/widgets/renderIndicatorWidgets.js.map +1 -0
  544. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.d.ts +32 -0
  545. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.d.ts.map +1 -0
  546. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.js +956 -0
  547. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.js.map +1 -0
  548. package/dist/renderer/renderToDrawlist.d.ts +1 -9
  549. package/dist/renderer/renderToDrawlist.d.ts.map +1 -1
  550. package/dist/renderer/renderToDrawlist.js +5 -19
  551. package/dist/renderer/renderToDrawlist.js.map +1 -1
  552. package/dist/renderer/shadow.d.ts +19 -5
  553. package/dist/renderer/shadow.d.ts.map +1 -1
  554. package/dist/renderer/shadow.js +53 -4
  555. package/dist/renderer/shadow.js.map +1 -1
  556. package/dist/renderer/styles.d.ts +3 -12
  557. package/dist/renderer/styles.d.ts.map +1 -1
  558. package/dist/renderer/styles.js +27 -18
  559. package/dist/renderer/styles.js.map +1 -1
  560. package/dist/repro/constants.d.ts +23 -0
  561. package/dist/repro/constants.d.ts.map +1 -0
  562. package/dist/repro/constants.js +23 -0
  563. package/dist/repro/constants.js.map +1 -0
  564. package/dist/repro/index.d.ts +10 -0
  565. package/dist/repro/index.d.ts.map +1 -0
  566. package/dist/repro/index.js +8 -0
  567. package/dist/repro/index.js.map +1 -0
  568. package/dist/repro/replay.d.ts +130 -0
  569. package/dist/repro/replay.d.ts.map +1 -0
  570. package/dist/repro/replay.js +627 -0
  571. package/dist/repro/replay.js.map +1 -0
  572. package/dist/repro/schema.d.ts +21 -0
  573. package/dist/repro/schema.d.ts.map +1 -0
  574. package/dist/repro/schema.js +750 -0
  575. package/dist/repro/schema.js.map +1 -0
  576. package/dist/repro/stable.d.ts +19 -0
  577. package/dist/repro/stable.d.ts.map +1 -0
  578. package/dist/repro/stable.js +53 -0
  579. package/dist/repro/stable.js.map +1 -0
  580. package/dist/repro/types.d.ts +141 -0
  581. package/dist/repro/types.d.ts.map +1 -0
  582. package/dist/repro/types.js +8 -0
  583. package/dist/repro/types.js.map +1 -0
  584. package/dist/router/helpers.d.ts +47 -0
  585. package/dist/router/helpers.d.ts.map +1 -0
  586. package/dist/router/helpers.js +108 -0
  587. package/dist/router/helpers.js.map +1 -0
  588. package/dist/router/index.d.ts +6 -0
  589. package/dist/router/index.d.ts.map +1 -0
  590. package/dist/router/index.js +5 -0
  591. package/dist/router/index.js.map +1 -0
  592. package/dist/router/integration.d.ts +31 -0
  593. package/dist/router/integration.d.ts.map +1 -0
  594. package/dist/router/integration.js +256 -0
  595. package/dist/router/integration.js.map +1 -0
  596. package/dist/router/keybindings.d.ts +25 -0
  597. package/dist/router/keybindings.d.ts.map +1 -0
  598. package/dist/router/keybindings.js +53 -0
  599. package/dist/router/keybindings.js.map +1 -0
  600. package/dist/router/router.d.ts +66 -0
  601. package/dist/router/router.d.ts.map +1 -0
  602. package/dist/router/router.js +249 -0
  603. package/dist/router/router.js.map +1 -0
  604. package/dist/router/types.d.ts +114 -0
  605. package/dist/router/types.d.ts.map +1 -0
  606. package/dist/router/types.js +2 -0
  607. package/dist/router/types.js.map +1 -0
  608. package/dist/runtime/commit/composite.d.ts +11 -0
  609. package/dist/runtime/commit/composite.d.ts.map +1 -0
  610. package/dist/runtime/commit/composite.js +238 -0
  611. package/dist/runtime/commit/composite.js.map +1 -0
  612. package/dist/runtime/commit/container.d.ts +7 -0
  613. package/dist/runtime/commit/container.d.ts.map +1 -0
  614. package/dist/runtime/commit/container.js +350 -0
  615. package/dist/runtime/commit/container.js.map +1 -0
  616. package/dist/runtime/commit/equality.d.ts +20 -0
  617. package/dist/runtime/commit/equality.d.ts.map +1 -0
  618. package/dist/runtime/commit/equality.js +436 -0
  619. package/dist/runtime/commit/equality.js.map +1 -0
  620. package/dist/runtime/commit/errorBoundary.d.ts +7 -0
  621. package/dist/runtime/commit/errorBoundary.d.ts.map +1 -0
  622. package/dist/runtime/commit/errorBoundary.js +53 -0
  623. package/dist/runtime/commit/errorBoundary.js.map +1 -0
  624. package/dist/runtime/commit/shared.d.ts +138 -0
  625. package/dist/runtime/commit/shared.d.ts.map +1 -0
  626. package/dist/runtime/commit/shared.js +11 -0
  627. package/dist/runtime/commit/shared.js.map +1 -0
  628. package/dist/runtime/commit/transitions.d.ts +9 -0
  629. package/dist/runtime/commit/transitions.d.ts.map +1 -0
  630. package/dist/runtime/commit/transitions.js +93 -0
  631. package/dist/runtime/commit/transitions.js.map +1 -0
  632. package/dist/runtime/commit/validation.d.ts +16 -0
  633. package/dist/runtime/commit/validation.d.ts.map +1 -0
  634. package/dist/runtime/commit/validation.js +157 -0
  635. package/dist/runtime/commit/validation.js.map +1 -0
  636. package/dist/runtime/commit.d.ts +7 -53
  637. package/dist/runtime/commit.d.ts.map +1 -1
  638. package/dist/runtime/commit.js +148 -549
  639. package/dist/runtime/commit.js.map +1 -1
  640. package/dist/runtime/focus.d.ts +4 -2
  641. package/dist/runtime/focus.d.ts.map +1 -1
  642. package/dist/runtime/focus.js +101 -43
  643. package/dist/runtime/focus.js.map +1 -1
  644. package/dist/runtime/idCodec.d.ts +26 -0
  645. package/dist/runtime/idCodec.d.ts.map +1 -0
  646. package/dist/runtime/idCodec.js +56 -0
  647. package/dist/runtime/idCodec.js.map +1 -0
  648. package/dist/runtime/inputEditor.d.ts +37 -3
  649. package/dist/runtime/inputEditor.d.ts.map +1 -1
  650. package/dist/runtime/inputEditor.js +497 -73
  651. package/dist/runtime/inputEditor.js.map +1 -1
  652. package/dist/runtime/instances.d.ts +51 -0
  653. package/dist/runtime/instances.d.ts.map +1 -1
  654. package/dist/runtime/instances.js +179 -13
  655. package/dist/runtime/instances.js.map +1 -1
  656. package/dist/runtime/layers.d.ts +3 -1
  657. package/dist/runtime/layers.d.ts.map +1 -1
  658. package/dist/runtime/layers.js +33 -8
  659. package/dist/runtime/layers.js.map +1 -1
  660. package/dist/runtime/localState.d.ts +25 -0
  661. package/dist/runtime/localState.d.ts.map +1 -1
  662. package/dist/runtime/localState.js +112 -5
  663. package/dist/runtime/localState.js.map +1 -1
  664. package/dist/runtime/reconcile.d.ts +6 -2
  665. package/dist/runtime/reconcile.d.ts.map +1 -1
  666. package/dist/runtime/reconcile.js +48 -73
  667. package/dist/runtime/reconcile.js.map +1 -1
  668. package/dist/runtime/renderPacket.d.ts +65 -0
  669. package/dist/runtime/renderPacket.d.ts.map +1 -0
  670. package/dist/runtime/renderPacket.js +2 -0
  671. package/dist/runtime/renderPacket.js.map +1 -0
  672. package/dist/runtime/router/dropdown.d.ts.map +1 -1
  673. package/dist/runtime/router/dropdown.js +49 -26
  674. package/dist/runtime/router/dropdown.js.map +1 -1
  675. package/dist/runtime/router/layer.d.ts +1 -1
  676. package/dist/runtime/router/layer.d.ts.map +1 -1
  677. package/dist/runtime/router/layer.js +33 -25
  678. package/dist/runtime/router/layer.js.map +1 -1
  679. package/dist/runtime/router/mouse.d.ts.map +1 -1
  680. package/dist/runtime/router/mouse.js +3 -5
  681. package/dist/runtime/router/mouse.js.map +1 -1
  682. package/dist/runtime/router/pagination.d.ts +19 -0
  683. package/dist/runtime/router/pagination.d.ts.map +1 -0
  684. package/dist/runtime/router/pagination.js +115 -0
  685. package/dist/runtime/router/pagination.js.map +1 -0
  686. package/dist/runtime/router/table.d.ts.map +1 -1
  687. package/dist/runtime/router/table.js +44 -25
  688. package/dist/runtime/router/table.js.map +1 -1
  689. package/dist/runtime/router/tabs.d.ts +20 -0
  690. package/dist/runtime/router/tabs.d.ts.map +1 -0
  691. package/dist/runtime/router/tabs.js +92 -0
  692. package/dist/runtime/router/tabs.js.map +1 -0
  693. package/dist/runtime/router/types.d.ts +37 -2
  694. package/dist/runtime/router/types.d.ts.map +1 -1
  695. package/dist/runtime/router/virtualList.d.ts.map +1 -1
  696. package/dist/runtime/router/virtualList.js +44 -31
  697. package/dist/runtime/router/virtualList.js.map +1 -1
  698. package/dist/runtime/router/wheel.d.ts +15 -0
  699. package/dist/runtime/router/wheel.d.ts.map +1 -0
  700. package/dist/runtime/router/wheel.js +16 -0
  701. package/dist/runtime/router/wheel.js.map +1 -0
  702. package/dist/runtime/router/zones.d.ts.map +1 -1
  703. package/dist/runtime/router/zones.js +68 -1
  704. package/dist/runtime/router/zones.js.map +1 -1
  705. package/dist/runtime/router.d.ts +3 -0
  706. package/dist/runtime/router.d.ts.map +1 -1
  707. package/dist/runtime/router.js +3 -0
  708. package/dist/runtime/router.js.map +1 -1
  709. package/dist/runtime/widgetMeta/collector.d.ts +77 -0
  710. package/dist/runtime/widgetMeta/collector.d.ts.map +1 -0
  711. package/dist/runtime/widgetMeta/collector.js +293 -0
  712. package/dist/runtime/widgetMeta/collector.js.map +1 -0
  713. package/dist/runtime/widgetMeta/focusContainers.d.ts +44 -0
  714. package/dist/runtime/widgetMeta/focusContainers.d.ts.map +1 -0
  715. package/dist/runtime/widgetMeta/focusContainers.js +190 -0
  716. package/dist/runtime/widgetMeta/focusContainers.js.map +1 -0
  717. package/dist/runtime/widgetMeta/focusInfo.d.ts +19 -0
  718. package/dist/runtime/widgetMeta/focusInfo.d.ts.map +1 -0
  719. package/dist/runtime/widgetMeta/focusInfo.js +172 -0
  720. package/dist/runtime/widgetMeta/focusInfo.js.map +1 -0
  721. package/dist/runtime/widgetMeta/helpers.d.ts +47 -0
  722. package/dist/runtime/widgetMeta/helpers.d.ts.map +1 -0
  723. package/dist/runtime/widgetMeta/helpers.js +182 -0
  724. package/dist/runtime/widgetMeta/helpers.js.map +1 -0
  725. package/dist/runtime/widgetMeta.d.ts +12 -155
  726. package/dist/runtime/widgetMeta.d.ts.map +1 -1
  727. package/dist/runtime/widgetMeta.js +6 -620
  728. package/dist/runtime/widgetMeta.js.map +1 -1
  729. package/dist/terminalCaps.d.ts +8 -2
  730. package/dist/terminalCaps.d.ts.map +1 -1
  731. package/dist/terminalCaps.js +5 -3
  732. package/dist/terminalCaps.js.map +1 -1
  733. package/dist/terminalProfile.d.ts +16 -0
  734. package/dist/terminalProfile.d.ts.map +1 -0
  735. package/dist/terminalProfile.js +36 -0
  736. package/dist/terminalProfile.js.map +1 -0
  737. package/dist/testing/assertions.d.ts +7 -0
  738. package/dist/testing/assertions.d.ts.map +1 -0
  739. package/dist/testing/assertions.js +187 -0
  740. package/dist/testing/assertions.js.map +1 -0
  741. package/dist/testing/events.d.ts +168 -0
  742. package/dist/testing/events.d.ts.map +1 -0
  743. package/dist/testing/events.js +446 -0
  744. package/dist/testing/events.js.map +1 -0
  745. package/dist/testing/index.d.ts +16 -0
  746. package/dist/testing/index.d.ts.map +1 -0
  747. package/dist/testing/index.js +14 -0
  748. package/dist/testing/index.js.map +1 -0
  749. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.d.ts +8 -0
  750. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.d.ts.map +1 -0
  751. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.js +79 -0
  752. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.js.map +1 -0
  753. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.d.ts +9 -0
  754. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.d.ts.map +1 -0
  755. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.js +96 -0
  756. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.js.map +1 -0
  757. package/dist/testing/referenceScenarios/inputModalBlocking.d.ts +9 -0
  758. package/dist/testing/referenceScenarios/inputModalBlocking.d.ts.map +1 -0
  759. package/dist/testing/referenceScenarios/inputModalBlocking.js +172 -0
  760. package/dist/testing/referenceScenarios/inputModalBlocking.js.map +1 -0
  761. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.d.ts +9 -0
  762. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.d.ts.map +1 -0
  763. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.js +102 -0
  764. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.js.map +1 -0
  765. package/dist/testing/referenceScenarios/selectKeyboardCycler.d.ts +8 -0
  766. package/dist/testing/referenceScenarios/selectKeyboardCycler.d.ts.map +1 -0
  767. package/dist/testing/referenceScenarios/selectKeyboardCycler.js +115 -0
  768. package/dist/testing/referenceScenarios/selectKeyboardCycler.js.map +1 -0
  769. package/dist/testing/referenceScenarios/textareaMultilineEditing.d.ts +8 -0
  770. package/dist/testing/referenceScenarios/textareaMultilineEditing.d.ts.map +1 -0
  771. package/dist/testing/referenceScenarios/textareaMultilineEditing.js +100 -0
  772. package/dist/testing/referenceScenarios/textareaMultilineEditing.js.map +1 -0
  773. package/dist/testing/referenceScenarios/virtualListResizeStorm.d.ts +8 -0
  774. package/dist/testing/referenceScenarios/virtualListResizeStorm.d.ts.map +1 -0
  775. package/dist/testing/referenceScenarios/virtualListResizeStorm.js +88 -0
  776. package/dist/testing/referenceScenarios/virtualListResizeStorm.js.map +1 -0
  777. package/dist/testing/renderer.d.ts +128 -0
  778. package/dist/testing/renderer.d.ts.map +1 -0
  779. package/dist/testing/renderer.js +463 -0
  780. package/dist/testing/renderer.js.map +1 -0
  781. package/dist/testing/replayScenario.d.ts +6 -0
  782. package/dist/testing/replayScenario.d.ts.map +1 -0
  783. package/dist/testing/replayScenario.js +399 -0
  784. package/dist/testing/replayScenario.js.map +1 -0
  785. package/dist/testing/scenario.d.ts +145 -0
  786. package/dist/testing/scenario.d.ts.map +1 -0
  787. package/dist/testing/scenario.js +57 -0
  788. package/dist/testing/scenario.js.map +1 -0
  789. package/dist/testing/semanticScenario.d.ts +6 -0
  790. package/dist/testing/semanticScenario.d.ts.map +1 -0
  791. package/dist/testing/semanticScenario.js +347 -0
  792. package/dist/testing/semanticScenario.js.map +1 -0
  793. package/dist/testing/snapshot.d.ts +73 -0
  794. package/dist/testing/snapshot.d.ts.map +1 -0
  795. package/dist/testing/snapshot.js +138 -0
  796. package/dist/testing/snapshot.js.map +1 -0
  797. package/dist/theme/blend.d.ts +6 -0
  798. package/dist/theme/blend.d.ts.map +1 -0
  799. package/dist/theme/blend.js +12 -0
  800. package/dist/theme/blend.js.map +1 -0
  801. package/dist/theme/contrast.d.ts +13 -0
  802. package/dist/theme/contrast.d.ts.map +1 -0
  803. package/dist/theme/contrast.js +31 -0
  804. package/dist/theme/contrast.js.map +1 -0
  805. package/dist/theme/defaultTheme.d.ts +7 -6
  806. package/dist/theme/defaultTheme.d.ts.map +1 -1
  807. package/dist/theme/defaultTheme.js +4 -19
  808. package/dist/theme/defaultTheme.js.map +1 -1
  809. package/dist/theme/extend.d.ts +15 -0
  810. package/dist/theme/extend.d.ts.map +1 -0
  811. package/dist/theme/extend.js +81 -0
  812. package/dist/theme/extend.js.map +1 -0
  813. package/dist/theme/extract.d.ts +4 -0
  814. package/dist/theme/extract.d.ts.map +1 -0
  815. package/dist/theme/extract.js +4 -0
  816. package/dist/theme/extract.js.map +1 -0
  817. package/dist/theme/heatmapPalettes.d.ts +9 -0
  818. package/dist/theme/heatmapPalettes.d.ts.map +1 -0
  819. package/dist/theme/heatmapPalettes.js +43 -0
  820. package/dist/theme/heatmapPalettes.js.map +1 -0
  821. package/dist/theme/index.d.ts +4 -6
  822. package/dist/theme/index.d.ts.map +1 -1
  823. package/dist/theme/index.js +4 -10
  824. package/dist/theme/index.js.map +1 -1
  825. package/dist/theme/interop.d.ts +3 -10
  826. package/dist/theme/interop.d.ts.map +1 -1
  827. package/dist/theme/interop.js +19 -56
  828. package/dist/theme/interop.js.map +1 -1
  829. package/dist/theme/presets.d.ts +18 -0
  830. package/dist/theme/presets.d.ts.map +1 -1
  831. package/dist/theme/presets.js +37 -1
  832. package/dist/theme/presets.js.map +1 -1
  833. package/dist/theme/resolve.d.ts +8 -56
  834. package/dist/theme/resolve.d.ts.map +1 -1
  835. package/dist/theme/resolve.js +193 -136
  836. package/dist/theme/resolve.js.map +1 -1
  837. package/dist/theme/theme.d.ts +9 -28
  838. package/dist/theme/theme.d.ts.map +1 -1
  839. package/dist/theme/theme.js +220 -11
  840. package/dist/theme/theme.js.map +1 -1
  841. package/dist/theme/tokens.d.ts +152 -29
  842. package/dist/theme/tokens.d.ts.map +1 -1
  843. package/dist/theme/tokens.js +83 -4
  844. package/dist/theme/tokens.js.map +1 -1
  845. package/dist/theme/types.d.ts +24 -0
  846. package/dist/theme/types.d.ts.map +1 -0
  847. package/dist/theme/types.js +2 -0
  848. package/dist/theme/types.js.map +1 -0
  849. package/dist/theme/validate.d.ts +15 -0
  850. package/dist/theme/validate.d.ts.map +1 -0
  851. package/dist/theme/validate.js +165 -0
  852. package/dist/theme/validate.js.map +1 -0
  853. package/dist/ui/capabilities.d.ts +70 -0
  854. package/dist/ui/capabilities.d.ts.map +1 -0
  855. package/dist/ui/capabilities.js +94 -0
  856. package/dist/ui/capabilities.js.map +1 -0
  857. package/dist/ui/designTokens.d.ts +114 -0
  858. package/dist/ui/designTokens.d.ts.map +1 -0
  859. package/dist/ui/designTokens.js +144 -0
  860. package/dist/ui/designTokens.js.map +1 -0
  861. package/dist/ui/index.d.ts +11 -0
  862. package/dist/ui/index.d.ts.map +1 -0
  863. package/dist/ui/index.js +14 -0
  864. package/dist/ui/index.js.map +1 -0
  865. package/dist/ui/recipes.d.ts +403 -0
  866. package/dist/ui/recipes.d.ts.map +1 -0
  867. package/dist/ui/recipes.js +960 -0
  868. package/dist/ui/recipes.js.map +1 -0
  869. package/dist/ui.d.ts +4 -0
  870. package/dist/ui.d.ts.map +1 -0
  871. package/dist/ui.js +3 -0
  872. package/dist/ui.js.map +1 -0
  873. package/dist/widgets/accordion.d.ts +23 -0
  874. package/dist/widgets/accordion.d.ts.map +1 -0
  875. package/dist/widgets/accordion.js +134 -0
  876. package/dist/widgets/accordion.js.map +1 -0
  877. package/dist/widgets/breadcrumb.d.ts +27 -0
  878. package/dist/widgets/breadcrumb.d.ts.map +1 -0
  879. package/dist/widgets/breadcrumb.js +110 -0
  880. package/dist/widgets/breadcrumb.js.map +1 -0
  881. package/dist/widgets/canvas.d.ts +26 -0
  882. package/dist/widgets/canvas.d.ts.map +1 -0
  883. package/dist/widgets/canvas.js +391 -0
  884. package/dist/widgets/canvas.js.map +1 -0
  885. package/dist/widgets/codeEditor.d.ts.map +1 -1
  886. package/dist/widgets/codeEditor.js +47 -36
  887. package/dist/widgets/codeEditor.js.map +1 -1
  888. package/dist/widgets/codeEditorSyntax.d.ts +11 -0
  889. package/dist/widgets/codeEditorSyntax.d.ts.map +1 -0
  890. package/dist/widgets/codeEditorSyntax.js +960 -0
  891. package/dist/widgets/codeEditorSyntax.js.map +1 -0
  892. package/dist/widgets/collections.d.ts +6 -0
  893. package/dist/widgets/collections.d.ts.map +1 -1
  894. package/dist/widgets/collections.js +38 -35
  895. package/dist/widgets/collections.js.map +1 -1
  896. package/dist/widgets/commandPalette.d.ts +6 -26
  897. package/dist/widgets/commandPalette.d.ts.map +1 -1
  898. package/dist/widgets/commandPalette.js +27 -17
  899. package/dist/widgets/commandPalette.js.map +1 -1
  900. package/dist/widgets/composition.d.ts +40 -1
  901. package/dist/widgets/composition.d.ts.map +1 -1
  902. package/dist/widgets/composition.js +14 -3
  903. package/dist/widgets/composition.js.map +1 -1
  904. package/dist/widgets/dialogs/confirm.d.ts.map +1 -1
  905. package/dist/widgets/dialogs/confirm.js +8 -7
  906. package/dist/widgets/dialogs/confirm.js.map +1 -1
  907. package/dist/widgets/dialogs/dialog.d.ts +7 -0
  908. package/dist/widgets/dialogs/dialog.d.ts.map +1 -0
  909. package/dist/widgets/dialogs/dialog.js +8 -0
  910. package/dist/widgets/dialogs/dialog.js.map +1 -0
  911. package/dist/widgets/dialogs/index.d.ts +2 -1
  912. package/dist/widgets/dialogs/index.d.ts.map +1 -1
  913. package/dist/widgets/dialogs/index.js +1 -0
  914. package/dist/widgets/dialogs/index.js.map +1 -1
  915. package/dist/widgets/dialogs/types.d.ts +1 -0
  916. package/dist/widgets/dialogs/types.d.ts.map +1 -1
  917. package/dist/widgets/diffViewer.d.ts +9 -38
  918. package/dist/widgets/diffViewer.d.ts.map +1 -1
  919. package/dist/widgets/diffViewer.js +11 -9
  920. package/dist/widgets/diffViewer.js.map +1 -1
  921. package/dist/widgets/factories/advanced.d.ts +20 -0
  922. package/dist/widgets/factories/advanced.d.ts.map +1 -0
  923. package/dist/widgets/factories/advanced.js +75 -0
  924. package/dist/widgets/factories/advanced.js.map +1 -0
  925. package/dist/widgets/factories/basic.d.ts +14 -0
  926. package/dist/widgets/factories/basic.d.ts.map +1 -0
  927. package/dist/widgets/factories/basic.js +44 -0
  928. package/dist/widgets/factories/basic.js.map +1 -0
  929. package/dist/widgets/factories/feedback.d.ts +20 -0
  930. package/dist/widgets/factories/feedback.d.ts.map +1 -0
  931. package/dist/widgets/factories/feedback.js +102 -0
  932. package/dist/widgets/factories/feedback.js.map +1 -0
  933. package/dist/widgets/factories/helpers.d.ts +41 -0
  934. package/dist/widgets/factories/helpers.d.ts.map +1 -0
  935. package/dist/widgets/factories/helpers.js +72 -0
  936. package/dist/widgets/factories/helpers.js.map +1 -0
  937. package/dist/widgets/factories/interactive.d.ts +15 -0
  938. package/dist/widgets/factories/interactive.d.ts.map +1 -0
  939. package/dist/widgets/factories/interactive.js +46 -0
  940. package/dist/widgets/factories/interactive.js.map +1 -0
  941. package/dist/widgets/factories/layoutShell.d.ts +22 -0
  942. package/dist/widgets/factories/layoutShell.d.ts.map +1 -0
  943. package/dist/widgets/factories/layoutShell.js +190 -0
  944. package/dist/widgets/factories/layoutShell.js.map +1 -0
  945. package/dist/widgets/factories/media.d.ts +14 -0
  946. package/dist/widgets/factories/media.d.ts.map +1 -0
  947. package/dist/widgets/factories/media.js +25 -0
  948. package/dist/widgets/factories/media.js.map +1 -0
  949. package/dist/widgets/factories/navigation.d.ts +10 -0
  950. package/dist/widgets/factories/navigation.d.ts.map +1 -0
  951. package/dist/widgets/factories/navigation.js +24 -0
  952. package/dist/widgets/factories/navigation.js.map +1 -0
  953. package/dist/widgets/field.d.ts +6 -5
  954. package/dist/widgets/field.d.ts.map +1 -1
  955. package/dist/widgets/field.js +8 -1
  956. package/dist/widgets/field.js.map +1 -1
  957. package/dist/widgets/filePicker.d.ts +5 -0
  958. package/dist/widgets/filePicker.d.ts.map +1 -0
  959. package/dist/widgets/filePicker.js +136 -0
  960. package/dist/widgets/filePicker.js.map +1 -0
  961. package/dist/widgets/heatmap.d.ts +13 -0
  962. package/dist/widgets/heatmap.d.ts.map +1 -0
  963. package/dist/widgets/heatmap.js +105 -0
  964. package/dist/widgets/heatmap.js.map +1 -0
  965. package/dist/widgets/hooks/animation.d.ts +113 -0
  966. package/dist/widgets/hooks/animation.d.ts.map +1 -0
  967. package/dist/widgets/hooks/animation.js +1108 -0
  968. package/dist/widgets/hooks/animation.js.map +1 -0
  969. package/dist/widgets/hooks/data.d.ts +218 -0
  970. package/dist/widgets/hooks/data.d.ts.map +1 -0
  971. package/dist/widgets/hooks/data.js +679 -0
  972. package/dist/widgets/hooks/data.js.map +1 -0
  973. package/dist/widgets/hooks/utility.d.ts +34 -0
  974. package/dist/widgets/hooks/utility.d.ts.map +1 -0
  975. package/dist/widgets/hooks/utility.js +36 -0
  976. package/dist/widgets/hooks/utility.js.map +1 -0
  977. package/dist/widgets/image.d.ts +25 -0
  978. package/dist/widgets/image.d.ts.map +1 -0
  979. package/dist/widgets/image.js +112 -0
  980. package/dist/widgets/image.js.map +1 -0
  981. package/dist/widgets/inspectorOverlay.d.ts +33 -0
  982. package/dist/widgets/inspectorOverlay.d.ts.map +1 -0
  983. package/dist/widgets/inspectorOverlay.js +147 -0
  984. package/dist/widgets/inspectorOverlay.js.map +1 -0
  985. package/dist/widgets/lineChart.d.ts +13 -0
  986. package/dist/widgets/lineChart.d.ts.map +1 -0
  987. package/dist/widgets/lineChart.js +73 -0
  988. package/dist/widgets/lineChart.js.map +1 -0
  989. package/dist/widgets/link.d.ts +4 -0
  990. package/dist/widgets/link.d.ts.map +1 -0
  991. package/dist/widgets/link.js +7 -0
  992. package/dist/widgets/link.js.map +1 -0
  993. package/dist/widgets/logsConsole.d.ts +2 -6
  994. package/dist/widgets/logsConsole.d.ts.map +1 -1
  995. package/dist/widgets/logsConsole.js +8 -6
  996. package/dist/widgets/logsConsole.js.map +1 -1
  997. package/dist/widgets/markdown/ast.d.ts +71 -0
  998. package/dist/widgets/markdown/ast.d.ts.map +1 -0
  999. package/dist/widgets/markdown/ast.js +10 -0
  1000. package/dist/widgets/markdown/ast.js.map +1 -0
  1001. package/dist/widgets/markdown/index.d.ts +25 -0
  1002. package/dist/widgets/markdown/index.d.ts.map +1 -0
  1003. package/dist/widgets/markdown/index.js +32 -0
  1004. package/dist/widgets/markdown/index.js.map +1 -0
  1005. package/dist/widgets/markdown/parse.d.ts +39 -0
  1006. package/dist/widgets/markdown/parse.d.ts.map +1 -0
  1007. package/dist/widgets/markdown/parse.js +791 -0
  1008. package/dist/widgets/markdown/parse.js.map +1 -0
  1009. package/dist/widgets/markdown/render.d.ts +33 -0
  1010. package/dist/widgets/markdown/render.d.ts.map +1 -0
  1011. package/dist/widgets/markdown/render.js +308 -0
  1012. package/dist/widgets/markdown/render.js.map +1 -0
  1013. package/dist/widgets/markdown/stream.d.ts +46 -0
  1014. package/dist/widgets/markdown/stream.d.ts.map +1 -0
  1015. package/dist/widgets/markdown/stream.js +124 -0
  1016. package/dist/widgets/markdown/stream.js.map +1 -0
  1017. package/dist/widgets/pagination.d.ts +35 -0
  1018. package/dist/widgets/pagination.d.ts.map +1 -0
  1019. package/dist/widgets/pagination.js +250 -0
  1020. package/dist/widgets/pagination.js.map +1 -0
  1021. package/dist/widgets/protocol.d.ts +39 -0
  1022. package/dist/widgets/protocol.d.ts.map +1 -0
  1023. package/dist/widgets/protocol.js +160 -0
  1024. package/dist/widgets/protocol.js.map +1 -0
  1025. package/dist/widgets/scatter.d.ts +18 -0
  1026. package/dist/widgets/scatter.d.ts.map +1 -0
  1027. package/dist/widgets/scatter.js +75 -0
  1028. package/dist/widgets/scatter.js.map +1 -0
  1029. package/dist/widgets/select.d.ts.map +1 -1
  1030. package/dist/widgets/select.js +7 -3
  1031. package/dist/widgets/select.js.map +1 -1
  1032. package/dist/widgets/splitPane.d.ts +1 -5
  1033. package/dist/widgets/splitPane.d.ts.map +1 -1
  1034. package/dist/widgets/splitPane.js +28 -10
  1035. package/dist/widgets/splitPane.js.map +1 -1
  1036. package/dist/widgets/style.d.ts +20 -23
  1037. package/dist/widgets/style.d.ts.map +1 -1
  1038. package/dist/widgets/style.js +34 -10
  1039. package/dist/widgets/style.js.map +1 -1
  1040. package/dist/widgets/styleUtils.d.ts +19 -13
  1041. package/dist/widgets/styleUtils.d.ts.map +1 -1
  1042. package/dist/widgets/styleUtils.js +101 -13
  1043. package/dist/widgets/styleUtils.js.map +1 -1
  1044. package/dist/widgets/table.d.ts.map +1 -1
  1045. package/dist/widgets/table.js +43 -1
  1046. package/dist/widgets/table.js.map +1 -1
  1047. package/dist/widgets/tabs.d.ts +28 -0
  1048. package/dist/widgets/tabs.d.ts.map +1 -0
  1049. package/dist/widgets/tabs.js +146 -0
  1050. package/dist/widgets/tabs.js.map +1 -0
  1051. package/dist/widgets/toast.d.ts +2 -6
  1052. package/dist/widgets/toast.d.ts.map +1 -1
  1053. package/dist/widgets/toast.js +7 -5
  1054. package/dist/widgets/toast.js.map +1 -1
  1055. package/dist/widgets/tree.d.ts.map +1 -1
  1056. package/dist/widgets/types/advanced.d.ts +611 -0
  1057. package/dist/widgets/types/advanced.d.ts.map +1 -0
  1058. package/dist/widgets/types/advanced.js +2 -0
  1059. package/dist/widgets/types/advanced.js.map +1 -0
  1060. package/dist/widgets/types/base.d.ts +953 -0
  1061. package/dist/widgets/types/base.d.ts.map +1 -0
  1062. package/dist/widgets/types/base.js +2 -0
  1063. package/dist/widgets/types/base.js.map +1 -0
  1064. package/dist/widgets/types/forms.d.ts +136 -0
  1065. package/dist/widgets/types/forms.d.ts.map +1 -0
  1066. package/dist/widgets/types/forms.js +2 -0
  1067. package/dist/widgets/types/forms.js.map +1 -0
  1068. package/dist/widgets/types/navigation.d.ts +83 -0
  1069. package/dist/widgets/types/navigation.d.ts.map +1 -0
  1070. package/dist/widgets/types/navigation.js +2 -0
  1071. package/dist/widgets/types/navigation.js.map +1 -0
  1072. package/dist/widgets/types/overlaysShell.d.ts +223 -0
  1073. package/dist/widgets/types/overlaysShell.d.ts.map +1 -0
  1074. package/dist/widgets/types/overlaysShell.js +2 -0
  1075. package/dist/widgets/types/overlaysShell.js.map +1 -0
  1076. package/dist/widgets/types/table.d.ts +104 -0
  1077. package/dist/widgets/types/table.d.ts.map +1 -0
  1078. package/dist/widgets/types/table.js +2 -0
  1079. package/dist/widgets/types/table.js.map +1 -0
  1080. package/dist/widgets/types/tree.d.ts +64 -0
  1081. package/dist/widgets/types/tree.d.ts.map +1 -0
  1082. package/dist/widgets/types/tree.js +2 -0
  1083. package/dist/widgets/types/tree.js.map +1 -0
  1084. package/dist/widgets/types.d.ts +74 -1309
  1085. package/dist/widgets/types.d.ts.map +1 -1
  1086. package/dist/widgets/ui.d.ts +64 -721
  1087. package/dist/widgets/ui.d.ts.map +1 -1
  1088. package/dist/widgets/ui.js +64 -847
  1089. package/dist/widgets/ui.js.map +1 -1
  1090. package/dist/widgets/useModalStack.d.ts +21 -0
  1091. package/dist/widgets/useModalStack.d.ts.map +1 -0
  1092. package/dist/widgets/useModalStack.js +107 -0
  1093. package/dist/widgets/useModalStack.js.map +1 -0
  1094. package/dist/widgets/useTable.d.ts +30 -0
  1095. package/dist/widgets/useTable.d.ts.map +1 -0
  1096. package/dist/widgets/useTable.js +184 -0
  1097. package/dist/widgets/useTable.js.map +1 -0
  1098. package/dist/widgets/virtualList.d.ts +11 -4
  1099. package/dist/widgets/virtualList.d.ts.map +1 -1
  1100. package/dist/widgets/virtualList.js +71 -49
  1101. package/dist/widgets/virtualList.js.map +1 -1
  1102. package/package.json +32 -8
  1103. package/dist/app/__tests__/dirtyFlagPlan.test.d.ts +0 -2
  1104. package/dist/app/__tests__/dirtyFlagPlan.test.d.ts.map +0 -1
  1105. package/dist/app/__tests__/dirtyFlagPlan.test.js +0 -207
  1106. package/dist/app/__tests__/dirtyFlagPlan.test.js.map +0 -1
  1107. package/dist/app/__tests__/eventPump.test.d.ts +0 -2
  1108. package/dist/app/__tests__/eventPump.test.d.ts.map +0 -1
  1109. package/dist/app/__tests__/eventPump.test.js +0 -48
  1110. package/dist/app/__tests__/eventPump.test.js.map +0 -1
  1111. package/dist/app/__tests__/fatal.test.d.ts +0 -2
  1112. package/dist/app/__tests__/fatal.test.d.ts.map +0 -1
  1113. package/dist/app/__tests__/fatal.test.js +0 -27
  1114. package/dist/app/__tests__/fatal.test.js.map +0 -1
  1115. package/dist/app/__tests__/fileTreeExplorer.contextMenu.test.d.ts +0 -2
  1116. package/dist/app/__tests__/fileTreeExplorer.contextMenu.test.d.ts.map +0 -1
  1117. package/dist/app/__tests__/fileTreeExplorer.contextMenu.test.js +0 -69
  1118. package/dist/app/__tests__/fileTreeExplorer.contextMenu.test.js.map +0 -1
  1119. package/dist/app/__tests__/frameCoalescing.test.d.ts +0 -2
  1120. package/dist/app/__tests__/frameCoalescing.test.d.ts.map +0 -1
  1121. package/dist/app/__tests__/frameCoalescing.test.js +0 -33
  1122. package/dist/app/__tests__/frameCoalescing.test.js.map +0 -1
  1123. package/dist/app/__tests__/helpers.d.ts +0 -43
  1124. package/dist/app/__tests__/helpers.d.ts.map +0 -1
  1125. package/dist/app/__tests__/helpers.js +0 -111
  1126. package/dist/app/__tests__/helpers.js.map +0 -1
  1127. package/dist/app/__tests__/interactivePriority.test.d.ts +0 -2
  1128. package/dist/app/__tests__/interactivePriority.test.d.ts.map +0 -1
  1129. package/dist/app/__tests__/interactivePriority.test.js +0 -78
  1130. package/dist/app/__tests__/interactivePriority.test.js.map +0 -1
  1131. package/dist/app/__tests__/layerZIndexClamp.test.d.ts +0 -2
  1132. package/dist/app/__tests__/layerZIndexClamp.test.d.ts.map +0 -1
  1133. package/dist/app/__tests__/layerZIndexClamp.test.js +0 -63
  1134. package/dist/app/__tests__/layerZIndexClamp.test.js.map +0 -1
  1135. package/dist/app/__tests__/modes.test.d.ts +0 -2
  1136. package/dist/app/__tests__/modes.test.d.ts.map +0 -1
  1137. package/dist/app/__tests__/modes.test.js +0 -48
  1138. package/dist/app/__tests__/modes.test.js.map +0 -1
  1139. package/dist/app/__tests__/onEventHandlers.test.d.ts +0 -2
  1140. package/dist/app/__tests__/onEventHandlers.test.d.ts.map +0 -1
  1141. package/dist/app/__tests__/onEventHandlers.test.js +0 -41
  1142. package/dist/app/__tests__/onEventHandlers.test.js.map +0 -1
  1143. package/dist/app/__tests__/partialDrawlistEmission.test.d.ts +0 -2
  1144. package/dist/app/__tests__/partialDrawlistEmission.test.d.ts.map +0 -1
  1145. package/dist/app/__tests__/partialDrawlistEmission.test.js +0 -430
  1146. package/dist/app/__tests__/partialDrawlistEmission.test.js.map +0 -1
  1147. package/dist/app/__tests__/rawRender.test.d.ts +0 -2
  1148. package/dist/app/__tests__/rawRender.test.d.ts.map +0 -1
  1149. package/dist/app/__tests__/rawRender.test.js +0 -102
  1150. package/dist/app/__tests__/rawRender.test.js.map +0 -1
  1151. package/dist/app/__tests__/stateMachine.test.d.ts +0 -2
  1152. package/dist/app/__tests__/stateMachine.test.d.ts.map +0 -1
  1153. package/dist/app/__tests__/stateMachine.test.js +0 -22
  1154. package/dist/app/__tests__/stateMachine.test.js.map +0 -1
  1155. package/dist/app/__tests__/stop_during_frame_rejection.test.d.ts +0 -2
  1156. package/dist/app/__tests__/stop_during_frame_rejection.test.d.ts.map +0 -1
  1157. package/dist/app/__tests__/stop_during_frame_rejection.test.js +0 -54
  1158. package/dist/app/__tests__/stop_during_frame_rejection.test.js.map +0 -1
  1159. package/dist/app/__tests__/stubBackend.d.ts +0 -23
  1160. package/dist/app/__tests__/stubBackend.d.ts.map +0 -1
  1161. package/dist/app/__tests__/stubBackend.js +0 -76
  1162. package/dist/app/__tests__/stubBackend.js.map +0 -1
  1163. package/dist/app/__tests__/syncFrameAckFastPath.test.d.ts +0 -2
  1164. package/dist/app/__tests__/syncFrameAckFastPath.test.d.ts.map +0 -1
  1165. package/dist/app/__tests__/syncFrameAckFastPath.test.js +0 -47
  1166. package/dist/app/__tests__/syncFrameAckFastPath.test.js.map +0 -1
  1167. package/dist/app/__tests__/table.interactions.test.d.ts +0 -2
  1168. package/dist/app/__tests__/table.interactions.test.d.ts.map +0 -1
  1169. package/dist/app/__tests__/table.interactions.test.js +0 -179
  1170. package/dist/app/__tests__/table.interactions.test.js.map +0 -1
  1171. package/dist/app/__tests__/turnScheduler.test.d.ts +0 -2
  1172. package/dist/app/__tests__/turnScheduler.test.d.ts.map +0 -1
  1173. package/dist/app/__tests__/turnScheduler.test.js +0 -20
  1174. package/dist/app/__tests__/turnScheduler.test.js.map +0 -1
  1175. package/dist/app/__tests__/updates.test.d.ts +0 -2
  1176. package/dist/app/__tests__/updates.test.d.ts.map +0 -1
  1177. package/dist/app/__tests__/updates.test.js +0 -81
  1178. package/dist/app/__tests__/updates.test.js.map +0 -1
  1179. package/dist/app/__tests__/widgetRenderer.integration.test.d.ts +0 -2
  1180. package/dist/app/__tests__/widgetRenderer.integration.test.d.ts.map +0 -1
  1181. package/dist/app/__tests__/widgetRenderer.integration.test.js +0 -723
  1182. package/dist/app/__tests__/widgetRenderer.integration.test.js.map +0 -1
  1183. package/dist/binary/__tests__/reader.test.d.ts +0 -2
  1184. package/dist/binary/__tests__/reader.test.d.ts.map +0 -1
  1185. package/dist/binary/__tests__/reader.test.js +0 -35
  1186. package/dist/binary/__tests__/reader.test.js.map +0 -1
  1187. package/dist/binary/__tests__/writer.test.d.ts +0 -2
  1188. package/dist/binary/__tests__/writer.test.d.ts.map +0 -1
  1189. package/dist/binary/__tests__/writer.test.js +0 -36
  1190. package/dist/binary/__tests__/writer.test.js.map +0 -1
  1191. package/dist/debug/__tests__/eventTrace.test.d.ts +0 -7
  1192. package/dist/debug/__tests__/eventTrace.test.d.ts.map +0 -1
  1193. package/dist/debug/__tests__/eventTrace.test.js +0 -59
  1194. package/dist/debug/__tests__/eventTrace.test.js.map +0 -1
  1195. package/dist/debug/__tests__/frameInspector.test.d.ts +0 -8
  1196. package/dist/debug/__tests__/frameInspector.test.d.ts.map +0 -1
  1197. package/dist/debug/__tests__/frameInspector.test.js +0 -121
  1198. package/dist/debug/__tests__/frameInspector.test.js.map +0 -1
  1199. package/dist/debug/__tests__/parsers.test.d.ts +0 -8
  1200. package/dist/debug/__tests__/parsers.test.d.ts.map +0 -1
  1201. package/dist/debug/__tests__/parsers.test.js +0 -265
  1202. package/dist/debug/__tests__/parsers.test.js.map +0 -1
  1203. package/dist/debug/__tests__/stateTimeline.test.d.ts +0 -7
  1204. package/dist/debug/__tests__/stateTimeline.test.d.ts.map +0 -1
  1205. package/dist/debug/__tests__/stateTimeline.test.js +0 -55
  1206. package/dist/debug/__tests__/stateTimeline.test.js.map +0 -1
  1207. package/dist/debug/__tests__/uiDebug.test.d.ts +0 -2
  1208. package/dist/debug/__tests__/uiDebug.test.d.ts.map +0 -1
  1209. package/dist/debug/__tests__/uiDebug.test.js +0 -18
  1210. package/dist/debug/__tests__/uiDebug.test.js.map +0 -1
  1211. package/dist/drawlist/__tests__/builder_style_attrs.test.d.ts +0 -2
  1212. package/dist/drawlist/__tests__/builder_style_attrs.test.d.ts.map +0 -1
  1213. package/dist/drawlist/__tests__/builder_style_attrs.test.js +0 -71
  1214. package/dist/drawlist/__tests__/builder_style_attrs.test.js.map +0 -1
  1215. package/dist/drawlist/__tests__/builder_v1_golden.test.d.ts +0 -2
  1216. package/dist/drawlist/__tests__/builder_v1_golden.test.d.ts.map +0 -1
  1217. package/dist/drawlist/__tests__/builder_v1_golden.test.js +0 -132
  1218. package/dist/drawlist/__tests__/builder_v1_golden.test.js.map +0 -1
  1219. package/dist/drawlist/__tests__/builder_v1_text_run.test.d.ts +0 -2
  1220. package/dist/drawlist/__tests__/builder_v1_text_run.test.d.ts.map +0 -1
  1221. package/dist/drawlist/__tests__/builder_v1_text_run.test.js +0 -93
  1222. package/dist/drawlist/__tests__/builder_v1_text_run.test.js.map +0 -1
  1223. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.d.ts +0 -2
  1224. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.d.ts.map +0 -1
  1225. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.js +0 -116
  1226. package/dist/drawlist/__tests__/builder_v1_validate_caps.test.js.map +0 -1
  1227. package/dist/drawlist/__tests__/builder_v2_cursor.test.d.ts +0 -12
  1228. package/dist/drawlist/__tests__/builder_v2_cursor.test.d.ts.map +0 -1
  1229. package/dist/drawlist/__tests__/builder_v2_cursor.test.js +0 -201
  1230. package/dist/drawlist/__tests__/builder_v2_cursor.test.js.map +0 -1
  1231. package/dist/drawlist/builder_v1.d.ts +0 -69
  1232. package/dist/drawlist/builder_v1.d.ts.map +0 -1
  1233. package/dist/drawlist/builder_v1.js +0 -986
  1234. package/dist/drawlist/builder_v1.js.map +0 -1
  1235. package/dist/drawlist/builder_v2.d.ts +0 -57
  1236. package/dist/drawlist/builder_v2.d.ts.map +0 -1
  1237. package/dist/drawlist/builder_v2.js +0 -955
  1238. package/dist/drawlist/builder_v2.js.map +0 -1
  1239. package/dist/forms/__tests__/useForm.test.d.ts +0 -7
  1240. package/dist/forms/__tests__/useForm.test.d.ts.map +0 -1
  1241. package/dist/forms/__tests__/useForm.test.js +0 -371
  1242. package/dist/forms/__tests__/useForm.test.js.map +0 -1
  1243. package/dist/keybindings/__tests__/chordMatcher.test.d.ts +0 -2
  1244. package/dist/keybindings/__tests__/chordMatcher.test.d.ts.map +0 -1
  1245. package/dist/keybindings/__tests__/chordMatcher.test.js +0 -238
  1246. package/dist/keybindings/__tests__/chordMatcher.test.js.map +0 -1
  1247. package/dist/keybindings/__tests__/manager.test.d.ts +0 -2
  1248. package/dist/keybindings/__tests__/manager.test.d.ts.map +0 -1
  1249. package/dist/keybindings/__tests__/manager.test.js +0 -377
  1250. package/dist/keybindings/__tests__/manager.test.js.map +0 -1
  1251. package/dist/keybindings/__tests__/parser.test.d.ts +0 -2
  1252. package/dist/keybindings/__tests__/parser.test.d.ts.map +0 -1
  1253. package/dist/keybindings/__tests__/parser.test.js +0 -386
  1254. package/dist/keybindings/__tests__/parser.test.js.map +0 -1
  1255. package/dist/layout/__tests__/constraints.golden.test.d.ts +0 -2
  1256. package/dist/layout/__tests__/constraints.golden.test.d.ts.map +0 -1
  1257. package/dist/layout/__tests__/constraints.golden.test.js +0 -110
  1258. package/dist/layout/__tests__/constraints.golden.test.js.map +0 -1
  1259. package/dist/layout/__tests__/hitTest.golden.test.d.ts +0 -2
  1260. package/dist/layout/__tests__/hitTest.golden.test.d.ts.map +0 -1
  1261. package/dist/layout/__tests__/hitTest.golden.test.js +0 -74
  1262. package/dist/layout/__tests__/hitTest.golden.test.js.map +0 -1
  1263. package/dist/layout/__tests__/layout.edgecases.test.d.ts +0 -2
  1264. package/dist/layout/__tests__/layout.edgecases.test.d.ts.map +0 -1
  1265. package/dist/layout/__tests__/layout.edgecases.test.js +0 -196
  1266. package/dist/layout/__tests__/layout.edgecases.test.js.map +0 -1
  1267. package/dist/layout/__tests__/layout.golden.test.d.ts +0 -2
  1268. package/dist/layout/__tests__/layout.golden.test.d.ts.map +0 -1
  1269. package/dist/layout/__tests__/layout.golden.test.js +0 -69
  1270. package/dist/layout/__tests__/layout.golden.test.js.map +0 -1
  1271. package/dist/layout/__tests__/layout.perf.test.d.ts +0 -8
  1272. package/dist/layout/__tests__/layout.perf.test.d.ts.map +0 -1
  1273. package/dist/layout/__tests__/layout.perf.test.js +0 -179
  1274. package/dist/layout/__tests__/layout.perf.test.js.map +0 -1
  1275. package/dist/layout/__tests__/measure.validation.test.d.ts +0 -2
  1276. package/dist/layout/__tests__/measure.validation.test.d.ts.map +0 -1
  1277. package/dist/layout/__tests__/measure.validation.test.js +0 -16
  1278. package/dist/layout/__tests__/measure.validation.test.js.map +0 -1
  1279. package/dist/layout/__tests__/panelGroupSizing.test.d.ts +0 -2
  1280. package/dist/layout/__tests__/panelGroupSizing.test.d.ts.map +0 -1
  1281. package/dist/layout/__tests__/panelGroupSizing.test.js +0 -118
  1282. package/dist/layout/__tests__/panelGroupSizing.test.js.map +0 -1
  1283. package/dist/layout/__tests__/spacing.test.d.ts +0 -2
  1284. package/dist/layout/__tests__/spacing.test.d.ts.map +0 -1
  1285. package/dist/layout/__tests__/spacing.test.js +0 -39
  1286. package/dist/layout/__tests__/spacing.test.js.map +0 -1
  1287. package/dist/layout/__tests__/splitPaneCollapse.test.d.ts +0 -2
  1288. package/dist/layout/__tests__/splitPaneCollapse.test.d.ts.map +0 -1
  1289. package/dist/layout/__tests__/splitPaneCollapse.test.js +0 -91
  1290. package/dist/layout/__tests__/splitPaneCollapse.test.js.map +0 -1
  1291. package/dist/layout/__tests__/sweep.robustness.test.d.ts +0 -11
  1292. package/dist/layout/__tests__/sweep.robustness.test.d.ts.map +0 -1
  1293. package/dist/layout/__tests__/sweep.robustness.test.js +0 -491
  1294. package/dist/layout/__tests__/sweep.robustness.test.js.map +0 -1
  1295. package/dist/layout/__tests__/textMeasure.golden.test.d.ts +0 -2
  1296. package/dist/layout/__tests__/textMeasure.golden.test.d.ts.map +0 -1
  1297. package/dist/layout/__tests__/textMeasure.golden.test.js +0 -32
  1298. package/dist/layout/__tests__/textMeasure.golden.test.js.map +0 -1
  1299. package/dist/layout/__tests__/textMeasure.truncate.unicode.test.d.ts +0 -2
  1300. package/dist/layout/__tests__/textMeasure.truncate.unicode.test.d.ts.map +0 -1
  1301. package/dist/layout/__tests__/textMeasure.truncate.unicode.test.js +0 -50
  1302. package/dist/layout/__tests__/textMeasure.truncate.unicode.test.js.map +0 -1
  1303. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.d.ts +0 -2
  1304. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.d.ts.map +0 -1
  1305. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.js +0 -35
  1306. package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.js.map +0 -1
  1307. package/dist/protocol/__tests__/zrev_v1_invalid.test.d.ts +0 -2
  1308. package/dist/protocol/__tests__/zrev_v1_invalid.test.d.ts.map +0 -1
  1309. package/dist/protocol/__tests__/zrev_v1_invalid.test.js +0 -128
  1310. package/dist/protocol/__tests__/zrev_v1_invalid.test.js.map +0 -1
  1311. package/dist/protocol/__tests__/zrev_v1_valid.test.d.ts +0 -2
  1312. package/dist/protocol/__tests__/zrev_v1_valid.test.d.ts.map +0 -1
  1313. package/dist/protocol/__tests__/zrev_v1_valid.test.js +0 -126
  1314. package/dist/protocol/__tests__/zrev_v1_valid.test.js.map +0 -1
  1315. package/dist/renderer/__tests__/overlay.edge.test.d.ts +0 -2
  1316. package/dist/renderer/__tests__/overlay.edge.test.d.ts.map +0 -1
  1317. package/dist/renderer/__tests__/overlay.edge.test.js +0 -101
  1318. package/dist/renderer/__tests__/overlay.edge.test.js.map +0 -1
  1319. package/dist/renderer/__tests__/render.golden.test.d.ts +0 -2
  1320. package/dist/renderer/__tests__/render.golden.test.d.ts.map +0 -1
  1321. package/dist/renderer/__tests__/render.golden.test.js +0 -359
  1322. package/dist/renderer/__tests__/render.golden.test.js.map +0 -1
  1323. package/dist/renderer/__tests__/spinner.golden.test.d.ts +0 -2
  1324. package/dist/renderer/__tests__/spinner.golden.test.d.ts.map +0 -1
  1325. package/dist/renderer/__tests__/spinner.golden.test.js +0 -67
  1326. package/dist/renderer/__tests__/spinner.golden.test.js.map +0 -1
  1327. package/dist/runtime/__tests__/commit.fastReuse.regression.test.d.ts +0 -2
  1328. package/dist/runtime/__tests__/commit.fastReuse.regression.test.d.ts.map +0 -1
  1329. package/dist/runtime/__tests__/commit.fastReuse.regression.test.js +0 -63
  1330. package/dist/runtime/__tests__/commit.fastReuse.regression.test.js.map +0 -1
  1331. package/dist/runtime/__tests__/duplicateIdFatal.test.d.ts +0 -2
  1332. package/dist/runtime/__tests__/duplicateIdFatal.test.d.ts.map +0 -1
  1333. package/dist/runtime/__tests__/duplicateIdFatal.test.js +0 -45
  1334. package/dist/runtime/__tests__/duplicateIdFatal.test.js.map +0 -1
  1335. package/dist/runtime/__tests__/duplicateKeyFatal.test.d.ts +0 -2
  1336. package/dist/runtime/__tests__/duplicateKeyFatal.test.d.ts.map +0 -1
  1337. package/dist/runtime/__tests__/duplicateKeyFatal.test.js +0 -20
  1338. package/dist/runtime/__tests__/duplicateKeyFatal.test.js.map +0 -1
  1339. package/dist/runtime/__tests__/focusList.golden.test.d.ts +0 -2
  1340. package/dist/runtime/__tests__/focusList.golden.test.d.ts.map +0 -1
  1341. package/dist/runtime/__tests__/focusList.golden.test.js +0 -98
  1342. package/dist/runtime/__tests__/focusList.golden.test.js.map +0 -1
  1343. package/dist/runtime/__tests__/focusZones.golden.test.d.ts +0 -16
  1344. package/dist/runtime/__tests__/focusZones.golden.test.d.ts.map +0 -1
  1345. package/dist/runtime/__tests__/focusZones.golden.test.js +0 -749
  1346. package/dist/runtime/__tests__/focusZones.golden.test.js.map +0 -1
  1347. package/dist/runtime/__tests__/inputRouting.golden.test.d.ts +0 -2
  1348. package/dist/runtime/__tests__/inputRouting.golden.test.d.ts.map +0 -1
  1349. package/dist/runtime/__tests__/inputRouting.golden.test.js +0 -56
  1350. package/dist/runtime/__tests__/inputRouting.golden.test.js.map +0 -1
  1351. package/dist/runtime/__tests__/keyRouting.golden.test.d.ts +0 -2
  1352. package/dist/runtime/__tests__/keyRouting.golden.test.d.ts.map +0 -1
  1353. package/dist/runtime/__tests__/keyRouting.golden.test.js +0 -43
  1354. package/dist/runtime/__tests__/keyRouting.golden.test.js.map +0 -1
  1355. package/dist/runtime/__tests__/localStateStore.test.d.ts +0 -2
  1356. package/dist/runtime/__tests__/localStateStore.test.d.ts.map +0 -1
  1357. package/dist/runtime/__tests__/localStateStore.test.js +0 -25
  1358. package/dist/runtime/__tests__/localStateStore.test.js.map +0 -1
  1359. package/dist/runtime/__tests__/mouseRouting.golden.test.d.ts +0 -2
  1360. package/dist/runtime/__tests__/mouseRouting.golden.test.d.ts.map +0 -1
  1361. package/dist/runtime/__tests__/mouseRouting.golden.test.js +0 -47
  1362. package/dist/runtime/__tests__/mouseRouting.golden.test.js.map +0 -1
  1363. package/dist/runtime/__tests__/reconcile.test.d.ts +0 -2
  1364. package/dist/runtime/__tests__/reconcile.test.d.ts.map +0 -1
  1365. package/dist/runtime/__tests__/reconcile.test.js +0 -46
  1366. package/dist/runtime/__tests__/reconcile.test.js.map +0 -1
  1367. package/dist/runtime/__tests__/widgetMeta.test.d.ts +0 -2
  1368. package/dist/runtime/__tests__/widgetMeta.test.d.ts.map +0 -1
  1369. package/dist/runtime/__tests__/widgetMeta.test.js +0 -226
  1370. package/dist/runtime/__tests__/widgetMeta.test.js.map +0 -1
  1371. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1372. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1373. package/dist/theme/__tests__/theme.test.js +0 -28
  1374. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1375. package/dist/widgets/__tests__/basicWidgets.render.test.d.ts +0 -2
  1376. package/dist/widgets/__tests__/basicWidgets.render.test.d.ts.map +0 -1
  1377. package/dist/widgets/__tests__/basicWidgets.render.test.js +0 -197
  1378. package/dist/widgets/__tests__/basicWidgets.render.test.js.map +0 -1
  1379. package/dist/widgets/__tests__/basicWidgets.test.d.ts +0 -2
  1380. package/dist/widgets/__tests__/basicWidgets.test.d.ts.map +0 -1
  1381. package/dist/widgets/__tests__/basicWidgets.test.js +0 -336
  1382. package/dist/widgets/__tests__/basicWidgets.test.js.map +0 -1
  1383. package/dist/widgets/__tests__/collections.test.d.ts +0 -2
  1384. package/dist/widgets/__tests__/collections.test.d.ts.map +0 -1
  1385. package/dist/widgets/__tests__/collections.test.js +0 -99
  1386. package/dist/widgets/__tests__/collections.test.js.map +0 -1
  1387. package/dist/widgets/__tests__/commandPalette.test.d.ts +0 -2
  1388. package/dist/widgets/__tests__/commandPalette.test.d.ts.map +0 -1
  1389. package/dist/widgets/__tests__/commandPalette.test.js +0 -34
  1390. package/dist/widgets/__tests__/commandPalette.test.js.map +0 -1
  1391. package/dist/widgets/__tests__/composition.test.d.ts +0 -14
  1392. package/dist/widgets/__tests__/composition.test.d.ts.map +0 -1
  1393. package/dist/widgets/__tests__/composition.test.js +0 -458
  1394. package/dist/widgets/__tests__/composition.test.js.map +0 -1
  1395. package/dist/widgets/__tests__/conditionals.test.d.ts +0 -2
  1396. package/dist/widgets/__tests__/conditionals.test.d.ts.map +0 -1
  1397. package/dist/widgets/__tests__/conditionals.test.js +0 -49
  1398. package/dist/widgets/__tests__/conditionals.test.js.map +0 -1
  1399. package/dist/widgets/__tests__/containers.test.d.ts +0 -2
  1400. package/dist/widgets/__tests__/containers.test.d.ts.map +0 -1
  1401. package/dist/widgets/__tests__/containers.test.js +0 -141
  1402. package/dist/widgets/__tests__/containers.test.js.map +0 -1
  1403. package/dist/widgets/__tests__/dataVizWidgets.test.d.ts +0 -2
  1404. package/dist/widgets/__tests__/dataVizWidgets.test.d.ts.map +0 -1
  1405. package/dist/widgets/__tests__/dataVizWidgets.test.js +0 -57
  1406. package/dist/widgets/__tests__/dataVizWidgets.test.js.map +0 -1
  1407. package/dist/widgets/__tests__/dialogs.test.d.ts +0 -2
  1408. package/dist/widgets/__tests__/dialogs.test.d.ts.map +0 -1
  1409. package/dist/widgets/__tests__/dialogs.test.js +0 -29
  1410. package/dist/widgets/__tests__/dialogs.test.js.map +0 -1
  1411. package/dist/widgets/__tests__/editors.test.d.ts +0 -2
  1412. package/dist/widgets/__tests__/editors.test.d.ts.map +0 -1
  1413. package/dist/widgets/__tests__/editors.test.js +0 -116
  1414. package/dist/widgets/__tests__/editors.test.js.map +0 -1
  1415. package/dist/widgets/__tests__/filesWidgets.test.d.ts +0 -2
  1416. package/dist/widgets/__tests__/filesWidgets.test.d.ts.map +0 -1
  1417. package/dist/widgets/__tests__/filesWidgets.test.js +0 -52
  1418. package/dist/widgets/__tests__/filesWidgets.test.js.map +0 -1
  1419. package/dist/widgets/__tests__/formWidgets.test.d.ts +0 -7
  1420. package/dist/widgets/__tests__/formWidgets.test.d.ts.map +0 -1
  1421. package/dist/widgets/__tests__/formWidgets.test.js +0 -241
  1422. package/dist/widgets/__tests__/formWidgets.test.js.map +0 -1
  1423. package/dist/widgets/__tests__/infoWidgets.test.d.ts +0 -2
  1424. package/dist/widgets/__tests__/infoWidgets.test.d.ts.map +0 -1
  1425. package/dist/widgets/__tests__/infoWidgets.test.js +0 -43
  1426. package/dist/widgets/__tests__/infoWidgets.test.js.map +0 -1
  1427. package/dist/widgets/__tests__/layers.golden.test.d.ts +0 -14
  1428. package/dist/widgets/__tests__/layers.golden.test.d.ts.map +0 -1
  1429. package/dist/widgets/__tests__/layers.golden.test.js +0 -728
  1430. package/dist/widgets/__tests__/layers.golden.test.js.map +0 -1
  1431. package/dist/widgets/__tests__/overlays.test.d.ts +0 -2
  1432. package/dist/widgets/__tests__/overlays.test.d.ts.map +0 -1
  1433. package/dist/widgets/__tests__/overlays.test.js +0 -148
  1434. package/dist/widgets/__tests__/overlays.test.js.map +0 -1
  1435. package/dist/widgets/__tests__/overlays.typecheck.d.ts +0 -2
  1436. package/dist/widgets/__tests__/overlays.typecheck.d.ts.map +0 -1
  1437. package/dist/widgets/__tests__/overlays.typecheck.js +0 -41
  1438. package/dist/widgets/__tests__/overlays.typecheck.js.map +0 -1
  1439. package/dist/widgets/__tests__/renderer.regressions.test.d.ts +0 -2
  1440. package/dist/widgets/__tests__/renderer.regressions.test.d.ts.map +0 -1
  1441. package/dist/widgets/__tests__/renderer.regressions.test.js +0 -508
  1442. package/dist/widgets/__tests__/renderer.regressions.test.js.map +0 -1
  1443. package/dist/widgets/__tests__/slider.test.d.ts +0 -2
  1444. package/dist/widgets/__tests__/slider.test.d.ts.map +0 -1
  1445. package/dist/widgets/__tests__/slider.test.js +0 -65
  1446. package/dist/widgets/__tests__/slider.test.js.map +0 -1
  1447. package/dist/widgets/__tests__/styleUtils.test.d.ts +0 -2
  1448. package/dist/widgets/__tests__/styleUtils.test.d.ts.map +0 -1
  1449. package/dist/widgets/__tests__/styleUtils.test.js +0 -22
  1450. package/dist/widgets/__tests__/styleUtils.test.js.map +0 -1
  1451. package/dist/widgets/__tests__/styled.test.d.ts +0 -2
  1452. package/dist/widgets/__tests__/styled.test.d.ts.map +0 -1
  1453. package/dist/widgets/__tests__/styled.test.js +0 -23
  1454. package/dist/widgets/__tests__/styled.test.js.map +0 -1
  1455. package/dist/widgets/__tests__/table.golden.test.d.ts +0 -10
  1456. package/dist/widgets/__tests__/table.golden.test.d.ts.map +0 -1
  1457. package/dist/widgets/__tests__/table.golden.test.js +0 -368
  1458. package/dist/widgets/__tests__/table.golden.test.js.map +0 -1
  1459. package/dist/widgets/__tests__/table.typecheck.d.ts +0 -2
  1460. package/dist/widgets/__tests__/table.typecheck.d.ts.map +0 -1
  1461. package/dist/widgets/__tests__/table.typecheck.js +0 -40
  1462. package/dist/widgets/__tests__/table.typecheck.js.map +0 -1
  1463. package/dist/widgets/__tests__/toast.test.d.ts +0 -2
  1464. package/dist/widgets/__tests__/toast.test.d.ts.map +0 -1
  1465. package/dist/widgets/__tests__/toast.test.js +0 -129
  1466. package/dist/widgets/__tests__/toast.test.js.map +0 -1
  1467. package/dist/widgets/__tests__/tree.golden.test.d.ts +0 -10
  1468. package/dist/widgets/__tests__/tree.golden.test.d.ts.map +0 -1
  1469. package/dist/widgets/__tests__/tree.golden.test.js +0 -501
  1470. package/dist/widgets/__tests__/tree.golden.test.js.map +0 -1
  1471. package/dist/widgets/__tests__/virtualList.golden.test.d.ts +0 -10
  1472. package/dist/widgets/__tests__/virtualList.golden.test.d.ts.map +0 -1
  1473. package/dist/widgets/__tests__/virtualList.golden.test.js +0 -349
  1474. package/dist/widgets/__tests__/virtualList.golden.test.js.map +0 -1
  1475. package/dist/widgets/__tests__/widgetRenderSmoke.test.d.ts +0 -2
  1476. package/dist/widgets/__tests__/widgetRenderSmoke.test.d.ts.map +0 -1
  1477. package/dist/widgets/__tests__/widgetRenderSmoke.test.js +0 -312
  1478. package/dist/widgets/__tests__/widgetRenderSmoke.test.js.map +0 -1
@@ -1,1298 +1,95 @@
1
- import { getIconChar, getSpinnerFrame } from "../../../icons/index.js";
2
- import { measureTextCells, truncateMiddle, truncateWithEllipsis, } from "../../../layout/textMeasure.js";
3
- import { resolveColor } from "../../../theme/theme.js";
4
- import { DEFAULT_SLIDER_TRACK_WIDTH, formatSliderValue, normalizeSliderState, } from "../../../widgets/slider.js";
5
- import { asTextStyle, getButtonLabelStyle } from "../../styles.js";
6
- import { renderBoxBorder } from "../boxBorder.js";
1
+ import { kbdRecipe } from "../../../ui/recipes.js";
7
2
  import { isVisibleRect } from "../indices.js";
8
3
  import { mergeTextStyle, shouldFillForStyleOverride } from "../textStyle.js";
9
- const REPEAT_CACHE_MAX_ENTRIES = 2048;
10
- const repeatCache = new Map();
11
- function repeatCached(glyph, count) {
12
- if (count <= 0)
13
- return "";
14
- if (count === 1)
15
- return glyph;
16
- if (count > 256)
17
- return glyph.repeat(count);
18
- const key = `${glyph}\u0000${String(count)}`;
19
- const cached = repeatCache.get(key);
20
- if (cached !== undefined)
21
- return cached;
22
- const value = glyph.repeat(count);
23
- if (repeatCache.size >= REPEAT_CACHE_MAX_ENTRIES) {
24
- const oldest = repeatCache.keys().next();
25
- if (!oldest.done)
26
- repeatCache.delete(oldest.value);
27
- }
28
- repeatCache.set(key, value);
29
- return value;
30
- }
31
- const SPARKLINE_LEVELS = Object.freeze(["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]);
32
- function isRecord(v) {
33
- return typeof v === "object" && v !== null;
34
- }
35
- /** Check if a string contains only printable ASCII (0x20..0x7E). */
36
- function isAsciiText(text) {
37
- for (let i = 0; i < text.length; i++) {
38
- const c = text.charCodeAt(i);
39
- if (c < 0x20 || c > 0x7e)
40
- return false;
41
- }
42
- return true;
43
- }
44
- function clamp01(value) {
45
- if (!Number.isFinite(value))
46
- return 0;
47
- if (value <= 0)
48
- return 0;
49
- if (value >= 1)
50
- return 1;
51
- return value;
52
- }
53
- function readNumber(v) {
54
- if (typeof v !== "number" || !Number.isFinite(v))
55
- return undefined;
56
- return v;
57
- }
58
- function readNonNegativeInt(v) {
59
- const n = readNumber(v);
60
- if (n === undefined || n < 0)
61
- return undefined;
62
- return Math.trunc(n);
63
- }
64
- function readTerminalCursorMeta(props) {
65
- const focused = (props.internal_terminalCursorFocus ?? props.terminalCursorFocus) === true;
66
- const rawPosition = props.internal_terminalCursorPosition ?? props.terminalCursorPosition;
67
- const position = readNonNegativeInt(rawPosition);
68
- return { focused, ...(position === undefined ? {} : { position }) };
69
- }
70
- function readPositiveInt(v) {
71
- const n = readNonNegativeInt(v);
72
- if (n === undefined || n <= 0)
73
- return undefined;
74
- return n;
75
- }
76
- function readString(v) {
77
- return typeof v === "string" ? v : undefined;
78
- }
79
- function readTextOverflow(v) {
80
- switch (v) {
81
- case "ellipsis":
82
- case "middle":
83
- return v;
84
- default:
85
- return "clip";
86
- }
87
- }
88
- function textVariantToStyle(variant) {
89
- switch (variant) {
90
- case "heading":
91
- case "label":
92
- return { bold: true };
93
- case "caption":
94
- return { dim: true };
95
- case "code":
96
- return { inverse: true };
97
- default:
98
- return undefined;
99
- }
100
- }
101
- function truncateToWidth(text, width) {
102
- if (width <= 0 || text.length === 0)
103
- return "";
104
- return measureTextCells(text) > width ? truncateWithEllipsis(text, width) : text;
105
- }
106
- function clipSegmentsToWidth(segments, maxWidth) {
107
- if (maxWidth <= 0 || segments.length === 0)
108
- return [];
109
- let remaining = maxWidth;
110
- const out = [];
111
- for (const segment of segments) {
112
- if (remaining <= 0)
113
- break;
114
- if (segment.text.length === 0)
115
- continue;
116
- const segmentWidth = measureTextCells(segment.text);
117
- if (segmentWidth <= remaining) {
118
- out.push(segment);
119
- remaining -= segmentWidth;
120
- continue;
121
- }
122
- const clipped = truncateToWidth(segment.text, remaining);
123
- if (clipped.length > 0)
124
- out.push({ text: clipped, style: segment.style });
125
- break;
126
- }
127
- return out;
128
- }
129
- function drawSegments(builder, x, y, maxWidth, segments) {
130
- const clipped = clipSegmentsToWidth(segments, maxWidth);
131
- if (clipped.length === 0)
132
- return;
133
- if (clipped.length === 1) {
134
- const first = clipped[0];
135
- if (!first)
136
- return;
137
- builder.drawText(x, y, first.text, first.style);
138
- return;
139
- }
140
- const blobIndex = builder.addTextRunBlob(clipped.map((segment) => ({
141
- text: segment.text,
142
- style: segment.style,
143
- })));
144
- if (blobIndex !== null) {
145
- builder.drawTextRun(x, y, blobIndex);
146
- return;
147
- }
148
- let cursorX = x;
149
- for (const segment of clipped) {
150
- builder.drawText(cursorX, y, segment.text, segment.style);
151
- cursorX += measureTextCells(segment.text);
152
- }
153
- }
154
- function variantToThemeColor(theme, variant, fallback) {
155
- switch (variant) {
156
- case "success":
157
- return theme.colors.success;
158
- case "warning":
159
- return theme.colors.warning;
160
- case "error":
161
- return theme.colors.danger;
162
- case "info":
163
- return theme.colors.info;
164
- case "default":
165
- return theme.colors[fallback] ?? theme.colors.primary;
166
- default:
167
- return theme.colors[fallback] ?? theme.colors.primary;
168
- }
169
- }
170
- function statusToThemeColor(theme, status) {
171
- switch (status) {
172
- case "online":
173
- return theme.colors.success;
174
- case "offline":
175
- return theme.colors.danger;
176
- case "away":
177
- return theme.colors.warning;
178
- case "busy":
179
- return theme.colors.danger;
180
- default:
181
- return theme.colors.muted;
182
- }
183
- }
184
- function calloutVariantToColor(theme, variant) {
185
- switch (variant) {
186
- case "success":
187
- return theme.colors.success;
188
- case "warning":
189
- return theme.colors.warning;
190
- case "error":
191
- return theme.colors.danger;
192
- default:
193
- return theme.colors.info;
194
- }
195
- }
196
- function calloutVariantIcon(variant) {
197
- switch (variant) {
198
- case "success":
199
- return "✓";
200
- case "warning":
201
- return "⚠";
202
- case "error":
203
- return "✗";
204
- default:
205
- return "ℹ";
206
- }
207
- }
208
- function readSpinnerVariant(v) {
209
- switch (v) {
210
- case "dots":
211
- case "line":
212
- case "circle":
213
- case "bounce":
214
- case "pulse":
215
- case "arrows":
216
- case "dots2":
217
- return v;
218
- default:
219
- return "dots";
220
- }
221
- }
222
- function resolveIconGlyph(iconPath, useFallback) {
223
- if (iconPath.length === 0)
224
- return "";
225
- const preferred = getIconChar(iconPath, useFallback);
226
- if (preferred.length > 0)
227
- return preferred;
228
- const fallback = getIconChar(iconPath, true);
229
- if (fallback.length > 0)
230
- return fallback;
231
- return iconPath;
232
- }
4
+ import { getColorTokens, readWidgetSize, readWidgetTone, readWidgetVariant, } from "../themeTokens.js";
5
+ import { renderCanvasWidgets } from "./renderCanvasWidgets.js";
6
+ import { renderChartWidgets } from "./renderChartWidgets.js";
7
+ import { renderFormWidgets } from "./renderFormWidgets.js";
8
+ import { renderIndicatorWidgets } from "./renderIndicatorWidgets.js";
9
+ import { renderTextWidgets } from "./renderTextWidgets.js";
233
10
  function maybeFillOwnBackground(builder, rect, ownStyle, style) {
234
11
  if (shouldFillForStyleOverride(ownStyle)) {
235
12
  builder.fillRect(rect.x, rect.y, rect.w, rect.h, style);
236
13
  }
237
14
  }
238
- function resolveGaugeColor(theme, value, thresholds) {
239
- if (Array.isArray(thresholds)) {
240
- let bestThreshold;
241
- let bestVariant;
242
- for (const raw of thresholds) {
243
- if (!isRecord(raw))
244
- continue;
245
- const entry = raw;
246
- const threshold = readNumber(entry.value);
247
- if (threshold === undefined)
248
- continue;
249
- if (value < threshold)
250
- continue;
251
- if (bestThreshold === undefined || threshold >= bestThreshold) {
252
- bestThreshold = threshold;
253
- bestVariant = entry.variant;
254
- }
255
- }
256
- if (bestThreshold !== undefined) {
257
- return variantToThemeColor(theme, bestVariant, "primary");
258
- }
259
- }
260
- if (value >= 0.9)
261
- return theme.colors.danger;
262
- if (value >= 0.75)
263
- return theme.colors.warning;
264
- if (value >= 0.5)
265
- return theme.colors.info;
266
- return theme.colors.success;
15
+ function readZLayer(v) {
16
+ if (v === -1 || v === 1)
17
+ return v;
18
+ return 0;
267
19
  }
268
- function sparklineForData(data, width, min, max) {
269
- if (width <= 0 || data.length === 0)
270
- return "";
271
- const range = max - min;
272
- const out = [];
273
- for (let i = 0; i < width; i++) {
274
- const index = Math.min(data.length - 1, Math.floor((i * data.length) / width));
275
- const value = data[index] ?? min;
276
- const normalized = range <= 0 ? 0.5 : clamp01((value - min) / range);
277
- const levelIndex = Math.round(normalized * (SPARKLINE_LEVELS.length - 1));
278
- const glyph = SPARKLINE_LEVELS[levelIndex] ?? SPARKLINE_LEVELS[0] ?? "▁";
279
- out.push(glyph);
20
+ export function renderBasicWidget(builder, focusState, pressedId, rect, theme, tick, parentStyle, node, layoutNode, nodeStack, styleStack, layoutStack, clipStack, currentClip, cursorInfo, focusAnnouncement, terminalProfile) {
21
+ const kind = node.vnode.kind;
22
+ if (kind !== "spacer" && !isVisibleRect(rect)) {
23
+ return null;
280
24
  }
281
- return out.join("");
282
- }
283
- function firstChar(text) {
284
- if (text.length === 0)
285
- return "";
286
- return text.slice(0, 1);
287
- }
288
- function readActionLabel(action) {
289
- if (!isRecord(action))
290
- return undefined;
291
- const actionNode = action;
292
- const kind = actionNode.kind;
293
- const props = isRecord(actionNode.props)
294
- ? actionNode.props
295
- : undefined;
296
25
  switch (kind) {
297
- case "text": {
298
- const text = readString(actionNode.text);
299
- return text;
300
- }
301
- case "button": {
302
- const label = props ? readString(props.label) : undefined;
303
- if (!label)
304
- return undefined;
305
- return `[${label}]`;
306
- }
26
+ case "text":
27
+ case "richText":
307
28
  case "badge":
308
29
  case "tag":
309
- return props ? readString(props.text) : undefined;
310
- case "icon": {
311
- const iconPath = props ? readString(props.icon) : undefined;
312
- if (!iconPath)
313
- return undefined;
314
- return resolveIconGlyph(iconPath, false);
315
- }
316
- default:
317
- return undefined;
318
- }
319
- }
320
- export function renderBasicWidget(builder, focusState, rect, theme, tick, parentStyle, node, layoutNode, nodeStack, styleStack, layoutStack, clipStack, currentClip, cursorInfo) {
321
- const vnode = node.vnode;
322
- let resolvedCursor = null;
323
- switch (vnode.kind) {
324
- case "text": {
325
- if (!isVisibleRect(rect))
326
- break;
327
- const props = vnode.props;
328
- const variantStyle = textVariantToStyle(props.variant);
329
- const ownStyle = asTextStyle(props.style);
330
- const style = variantStyle === undefined && ownStyle === undefined
331
- ? parentStyle
332
- : mergeTextStyle(mergeTextStyle(parentStyle, variantStyle), ownStyle);
333
- const textOverflow = readTextOverflow(props.textOverflow);
334
- const maxWidth = readNonNegativeInt(props.maxWidth);
335
- const overflowW = maxWidth === undefined ? rect.w : Math.min(rect.w, maxWidth);
336
- if (overflowW <= 0)
337
- break;
338
- const text = vnode.text;
339
- const cursorMeta = readTerminalCursorMeta(props);
340
- const cursorOffset = Math.min(text.length, Math.max(0, cursorMeta.position ?? text.length));
341
- const cursorX = Math.min(overflowW, measureTextCells(text.slice(0, cursorOffset)));
342
- // Avoid measuring in the common ASCII case.
343
- const fits = (isAsciiText(text) && text.length <= overflowW) || measureTextCells(text) <= overflowW;
344
- if (fits) {
345
- builder.drawText(rect.x, rect.y, text, style);
346
- if (cursorInfo && cursorMeta.focused) {
347
- resolvedCursor = {
348
- x: rect.x + cursorX,
349
- y: rect.y,
350
- shape: cursorInfo.shape,
351
- blink: cursorInfo.blink,
352
- };
353
- }
354
- break;
355
- }
356
- let displayText = text;
357
- let useClip = false;
358
- switch (textOverflow) {
359
- case "ellipsis":
360
- displayText = truncateWithEllipsis(text, overflowW);
361
- break;
362
- case "middle":
363
- displayText = truncateMiddle(text, overflowW);
364
- break;
365
- case "clip":
366
- useClip = true;
367
- break;
368
- }
369
- if (useClip) {
370
- builder.pushClip(rect.x, rect.y, overflowW, rect.h);
371
- builder.drawText(rect.x, rect.y, displayText, style);
372
- builder.popClip();
373
- }
374
- else {
375
- builder.drawText(rect.x, rect.y, displayText, style);
376
- }
377
- if (cursorInfo && cursorMeta.focused) {
378
- resolvedCursor = {
379
- x: rect.x + cursorX,
380
- y: rect.y,
381
- shape: cursorInfo.shape,
382
- blink: cursorInfo.blink,
383
- };
384
- }
385
- break;
386
- }
387
- case "divider": {
388
- if (!isVisibleRect(rect))
389
- break;
390
- const props = vnode.props;
391
- const direction = props.direction === "vertical" ? "vertical" : "horizontal";
392
- const rawChar = typeof props.char === "string" && props.char.length > 0 ? props.char : undefined;
393
- const glyph = (() => {
394
- const fallback = direction === "horizontal" ? "─" : "│";
395
- if (!rawChar)
396
- return fallback;
397
- const cp = rawChar.codePointAt(0);
398
- return cp === undefined ? fallback : String.fromCodePoint(cp);
399
- })();
400
- const label = typeof props.label === "string" ? props.label : undefined;
401
- const color = typeof props.color === "string" ? props.color : undefined;
402
- const style = color
403
- ? mergeTextStyle(parentStyle, { fg: resolveColor(theme, color) })
404
- : parentStyle;
405
- if (direction === "horizontal") {
406
- const w = rect.w;
407
- if (w <= 0)
408
- break;
409
- if (label && label.length > 0) {
410
- const labelText = ` ${label} `;
411
- const labelWidth = measureTextCells(labelText);
412
- if (labelWidth >= w) {
413
- builder.drawText(rect.x, rect.y, truncateWithEllipsis(labelText, w), style);
414
- break;
30
+ case "spinner":
31
+ case "icon":
32
+ case "kbd":
33
+ case "status":
34
+ case "link":
35
+ case "focusAnnouncer": {
36
+ let textParentStyle = parentStyle;
37
+ if (kind === "kbd") {
38
+ const colorTokens = getColorTokens(theme);
39
+ if (colorTokens !== null) {
40
+ const props = node.vnode.props;
41
+ const dsVariant = readWidgetVariant(props.dsVariant) ?? "outline";
42
+ const dsTone = readWidgetTone(props.dsTone) ?? "default";
43
+ const dsSize = readWidgetSize(props.dsSize) ?? "md";
44
+ const recipeResult = kbdRecipe(colorTokens, {
45
+ variant: dsVariant,
46
+ tone: dsTone,
47
+ size: dsSize,
48
+ });
49
+ if (recipeResult.bg.bg !== undefined) {
50
+ builder.fillRect(rect.x, rect.y, rect.w, rect.h, mergeTextStyle(parentStyle, recipeResult.bg));
415
51
  }
416
- const remaining = w - labelWidth;
417
- const left = Math.floor(remaining / 2);
418
- const right = remaining - left;
419
- builder.drawText(rect.x, rect.y, `${repeatCached(glyph, left)}${labelText}${repeatCached(glyph, right)}`, style);
420
- break;
52
+ textParentStyle = mergeTextStyle(textParentStyle, recipeResult.key);
421
53
  }
422
- builder.drawText(rect.x, rect.y, repeatCached(glyph, w), style);
423
- break;
424
- }
425
- for (let i = 0; i < rect.h; i++) {
426
- builder.drawText(rect.x, rect.y + i, glyph, style);
427
- }
428
- break;
429
- }
430
- case "button": {
431
- if (!isVisibleRect(rect))
432
- break;
433
- const props = vnode.props;
434
- const id = typeof props.id === "string" ? props.id : null;
435
- const label = typeof props.label === "string" ? props.label : "";
436
- const disabled = props.disabled === true;
437
- const focused = id !== null && focusState.focusedId === id;
438
- const px = typeof props.px === "number" && Number.isFinite(props.px) && props.px >= 0
439
- ? Math.trunc(props.px)
440
- : 1;
441
- const availableLabelW = Math.max(0, rect.w - px * 2);
442
- const displayLabel = availableLabelW <= 0
443
- ? ""
444
- : measureTextCells(label) > availableLabelW
445
- ? truncateWithEllipsis(label, availableLabelW)
446
- : label;
447
- const ownStyle = asTextStyle(props.style);
448
- if (displayLabel.length > 0) {
449
- builder.drawText(rect.x + px, rect.y, displayLabel, mergeTextStyle(mergeTextStyle(parentStyle, ownStyle), getButtonLabelStyle({ focused, disabled })));
450
54
  }
451
- break;
55
+ return (renderTextWidgets(builder, focusState, rect, theme, tick, textParentStyle, node, cursorInfo, focusAnnouncement, maybeFillOwnBackground) ?? null);
452
56
  }
453
- case "input": {
454
- if (!isVisibleRect(rect))
455
- break;
456
- const props = vnode.props;
457
- const id = typeof props.id === "string" ? props.id : null;
458
- const value = typeof props.value === "string" ? props.value : "";
459
- const disabled = props.disabled === true;
460
- const focused = id !== null && focusState.focusedId === id;
461
- const ownStyle = asTextStyle(props.style);
462
- const style = mergeTextStyle(mergeTextStyle(parentStyle, ownStyle), getButtonLabelStyle({ focused, disabled }));
463
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
464
- builder.drawText(rect.x + 1, rect.y, value, style);
465
- builder.popClip();
466
- // v2 cursor: resolve cursor position for focused enabled input
467
- if (focused && !disabled && cursorInfo) {
468
- // Cursor offset is stored as grapheme index; convert to cell position
469
- const graphemeOffset = cursorInfo.cursorByInstanceId.get(node.instanceId);
470
- const cursorX = graphemeOffset !== undefined
471
- ? measureTextCells(value.slice(0, graphemeOffset))
472
- : measureTextCells(value);
473
- resolvedCursor = {
474
- x: rect.x + 1 + cursorX,
475
- y: rect.y,
476
- shape: cursorInfo.shape,
477
- blink: cursorInfo.blink,
478
- };
479
- }
480
- break;
481
- }
482
- case "slider": {
483
- if (!isVisibleRect(rect))
484
- break;
485
- const props = vnode.props;
486
- const id = readString(props.id);
487
- const focused = id !== undefined && focusState.focusedId === id;
488
- const disabled = props.disabled === true;
489
- const readOnly = props.readOnly === true;
490
- const label = readString(props.label) ?? "";
491
- const showValue = props.showValue !== false;
492
- const value = readNumber(props.value) ?? Number.NaN;
493
- const min = readNumber(props.min);
494
- const max = readNumber(props.max);
495
- const step = readNumber(props.step);
496
- const normalized = normalizeSliderState({ value, min, max, step });
497
- const ownStyle = asTextStyle(props.style);
498
- const style = mergeTextStyle(parentStyle, ownStyle);
499
- maybeFillOwnBackground(builder, rect, ownStyle, style);
500
- let stateStyle;
501
- if (disabled) {
502
- stateStyle = { fg: theme.colors.muted };
503
- }
504
- else if (focused && readOnly) {
505
- stateStyle = { underline: true, bold: true, dim: true };
506
- }
507
- else if (focused) {
508
- stateStyle = { underline: true, bold: true };
509
- }
510
- else if (readOnly) {
511
- stateStyle = { dim: true };
512
- }
513
- else {
514
- stateStyle = {};
515
- }
516
- const textStyle = mergeTextStyle(style, stateStyle);
517
- const labelText = label.length > 0 ? `${label} ` : "";
518
- const valueText = showValue === true ? ` ${formatSliderValue(normalized.value, normalized.step)}` : "";
519
- const dynamicTrack = rect.w - measureTextCells(labelText) - measureTextCells(valueText) - 2; // '[' + ']'
520
- const explicitTrack = readPositiveInt(props.width);
521
- const trackCells = Math.max(1, explicitTrack ?? Math.max(1, dynamicTrack > 0 ? dynamicTrack : DEFAULT_SLIDER_TRACK_WIDTH));
522
- const span = normalized.max - normalized.min;
523
- const ratio = span <= 0 ? 0 : clamp01((normalized.value - normalized.min) / span);
524
- const thumbIndex = trackCells <= 1
525
- ? 0
526
- : Math.max(0, Math.min(trackCells - 1, Math.round(ratio * (trackCells - 1))));
527
- const fillCells = trackCells <= 1 ? 0 : thumbIndex;
528
- const emptyCells = Math.max(0, trackCells - fillCells - 1);
529
- const trackText = `${repeatCached("█", fillCells)}●${repeatCached("░", emptyCells)}`;
530
- const trackStyle = mergeTextStyle(textStyle, disabled
531
- ? { fg: theme.colors.muted }
532
- : readOnly
533
- ? { fg: theme.colors.info, dim: true }
534
- : { fg: theme.colors.primary, bold: true });
535
- const valueStyle = mergeTextStyle(textStyle, !disabled && readOnly ? { fg: theme.colors.muted } : undefined);
536
- const segments = [];
537
- if (labelText.length > 0)
538
- segments.push({ text: labelText, style: textStyle });
539
- segments.push({ text: "[", style: textStyle });
540
- segments.push({ text: trackText, style: trackStyle });
541
- segments.push({ text: "]", style: textStyle });
542
- if (valueText.length > 0)
543
- segments.push({ text: valueText, style: valueStyle });
544
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
545
- drawSegments(builder, rect.x, rect.y, rect.w, segments);
546
- builder.popClip();
547
- break;
548
- }
549
- case "spacer":
550
- break;
57
+ case "button":
58
+ case "input":
59
+ case "select":
60
+ case "checkbox":
61
+ case "radioGroup":
62
+ case "slider":
551
63
  case "field": {
552
- if (!isVisibleRect(rect))
553
- break;
554
- const props = vnode.props;
555
- const label = typeof props.label === "string" ? props.label : "";
556
- const required = props.required === true;
557
- const error = typeof props.error === "string" ? props.error : undefined;
558
- const hint = typeof props.hint === "string" ? props.hint : undefined;
559
- const labelText = required ? `${label} *` : label;
560
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
561
- builder.drawText(rect.x, rect.y, truncateToWidth(labelText, rect.w), parentStyle);
562
- if (rect.h >= 2) {
563
- const footerY = rect.y + rect.h - 1;
564
- const footer = error ?? hint;
565
- if (footer) {
566
- const footerStyle = mergeTextStyle(parentStyle, error ? { fg: theme.colors.danger } : { fg: theme.colors.muted });
567
- builder.drawText(rect.x, footerY, truncateToWidth(footer, rect.w), footerStyle);
568
- }
569
- }
570
- builder.popClip();
571
- const childCount = Math.min(node.children.length, layoutNode.children.length);
572
- for (let i = childCount - 1; i >= 0; i--) {
573
- const c = node.children[i];
574
- const lc = layoutNode.children[i];
575
- if (c && lc) {
576
- nodeStack.push(c);
577
- styleStack.push(parentStyle);
578
- layoutStack.push(lc);
579
- clipStack.push(currentClip);
580
- }
581
- }
582
- break;
583
- }
584
- case "select": {
585
- if (!isVisibleRect(rect))
586
- break;
587
- const props = vnode.props;
588
- const id = typeof props.id === "string" ? props.id : null;
589
- const focused = id !== null && focusState.focusedId === id;
590
- const disabled = props.disabled === true;
591
- const value = typeof props.value === "string" ? props.value : "";
592
- const placeholder = typeof props.placeholder === "string" ? props.placeholder : "Select…";
593
- const options = Array.isArray(props.options)
594
- ? props.options
595
- : [];
596
- let label = "";
597
- for (const opt of options) {
598
- if (opt && opt.value === value) {
599
- label = opt.label;
600
- break;
601
- }
602
- }
603
- if (label.length === 0)
604
- label = placeholder;
605
- const focusStyle = focused ? { underline: true, bold: true } : undefined;
606
- const style = mergeTextStyle(parentStyle, disabled ? { fg: theme.colors.muted, ...focusStyle } : focusStyle);
607
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
608
- const text = ` ${label} ▼`;
609
- builder.drawText(rect.x, rect.y, text, style);
610
- builder.popClip();
611
- break;
612
- }
613
- case "checkbox": {
614
- if (!isVisibleRect(rect))
615
- break;
616
- const props = vnode.props;
617
- const id = typeof props.id === "string" ? props.id : null;
618
- const focused = id !== null && focusState.focusedId === id;
619
- const disabled = props.disabled === true;
620
- const checked = props.checked === true;
621
- const label = typeof props.label === "string" ? props.label : "";
622
- const box = checked ? "[x]" : "[ ]";
623
- const text = label.length > 0 ? `${box} ${label}` : box;
624
- const focusStyle = focused ? { underline: true, bold: true } : undefined;
625
- const style = mergeTextStyle(parentStyle, disabled ? { fg: theme.colors.muted, ...focusStyle } : focusStyle);
626
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
627
- builder.drawText(rect.x, rect.y, text, style);
628
- builder.popClip();
629
- break;
630
- }
631
- case "radioGroup": {
632
- if (!isVisibleRect(rect))
633
- break;
634
- const props = vnode.props;
635
- const id = typeof props.id === "string" ? props.id : null;
636
- const focused = id !== null && focusState.focusedId === id;
637
- const disabled = props.disabled === true;
638
- const value = typeof props.value === "string" ? props.value : "";
639
- const direction = props.direction === "horizontal" ? "horizontal" : "vertical";
640
- const options = Array.isArray(props.options)
641
- ? props.options
642
- : [];
643
- const focusStyle = focused ? { underline: true, bold: true } : undefined;
644
- const style = mergeTextStyle(parentStyle, disabled ? { fg: theme.colors.muted, ...focusStyle } : focusStyle);
645
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
646
- let cx = rect.x;
647
- let cy = rect.y;
648
- for (const opt of options) {
649
- const mark = opt.value === value ? "(o)" : "( )";
650
- const chunk = `${mark} ${opt.label}`;
651
- builder.drawText(cx, cy, chunk, style);
652
- if (direction === "horizontal") {
653
- cx += measureTextCells(chunk) + 2;
654
- }
655
- else {
656
- cy += 1;
657
- }
658
- if (cy >= rect.y + rect.h)
659
- break;
660
- }
661
- builder.popClip();
662
- break;
663
- }
664
- case "richText": {
665
- if (!isVisibleRect(rect))
666
- break;
667
- const props = vnode.props;
668
- const spans = Array.isArray(props.spans)
669
- ? props.spans
670
- : [];
671
- if (spans.length === 0)
672
- break;
673
- const segments = [];
674
- let combinedText = "";
675
- for (const span of spans) {
676
- const text = readString(span.text) ?? "";
677
- if (text.length === 0)
678
- continue;
679
- combinedText += text;
680
- segments.push({
681
- text,
682
- style: mergeTextStyle(parentStyle, asTextStyle(span.style)),
683
- });
684
- }
685
- if (segments.length === 0)
686
- break;
687
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
688
- drawSegments(builder, rect.x, rect.y, rect.w, segments);
689
- builder.popClip();
690
- const cursorMeta = readTerminalCursorMeta(props);
691
- if (cursorInfo && cursorMeta.focused) {
692
- const cursorOffset = Math.min(combinedText.length, Math.max(0, cursorMeta.position ?? combinedText.length));
693
- const cursorX = Math.min(rect.w, measureTextCells(combinedText.slice(0, cursorOffset)));
694
- resolvedCursor = {
695
- x: rect.x + cursorX,
696
- y: rect.y,
697
- shape: cursorInfo.shape,
698
- blink: cursorInfo.blink,
699
- };
700
- }
701
- break;
702
- }
703
- case "badge": {
704
- if (!isVisibleRect(rect))
705
- break;
706
- const props = vnode.props;
707
- const text = readString(props.text) ?? "";
708
- const ownStyle = asTextStyle(props.style);
709
- const color = variantToThemeColor(theme, props.variant, "primary");
710
- const style = mergeTextStyle(mergeTextStyle(parentStyle, { fg: theme.colors.bg, bg: color, bold: true }), ownStyle);
711
- const content = ` ${text} `;
712
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
713
- const display = truncateToWidth(content, rect.w);
714
- if (display.length > 0) {
715
- const fillW = Math.min(rect.w, measureTextCells(display));
716
- if (fillW > 0)
717
- builder.fillRect(rect.x, rect.y, fillW, 1, style);
718
- builder.drawText(rect.x, rect.y, display, style);
719
- }
720
- builder.popClip();
721
- break;
722
- }
723
- case "spinner": {
724
- if (!isVisibleRect(rect))
725
- break;
726
- const props = vnode.props;
727
- const variant = readSpinnerVariant(props.variant);
728
- const label = readString(props.label);
729
- const ownStyle = asTextStyle(props.style);
730
- const style = mergeTextStyle(parentStyle, ownStyle);
731
- maybeFillOwnBackground(builder, rect, ownStyle, style);
732
- const frame = getSpinnerFrame(variant, tick);
733
- const frameStyle = mergeTextStyle(style, { fg: theme.colors.primary, bold: true });
734
- const segments = [{ text: frame, style: frameStyle }];
735
- if (label && label.length > 0) {
736
- segments.push({ text: ` ${label}`, style });
737
- }
738
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
739
- drawSegments(builder, rect.x, rect.y, rect.w, segments);
740
- builder.popClip();
741
- break;
742
- }
743
- case "icon": {
744
- if (!isVisibleRect(rect))
745
- break;
746
- const props = vnode.props;
747
- const iconPath = readString(props.icon) ?? "";
748
- const ownStyle = asTextStyle(props.style);
749
- const style = mergeTextStyle(parentStyle, ownStyle);
750
- maybeFillOwnBackground(builder, rect, ownStyle, style);
751
- const glyph = resolveIconGlyph(iconPath, props.fallback === true);
752
- const display = truncateToWidth(glyph, rect.w);
753
- if (display.length === 0)
754
- break;
755
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
756
- builder.drawText(rect.x, rect.y, display, style);
757
- builder.popClip();
758
- break;
759
- }
760
- case "kbd": {
761
- if (!isVisibleRect(rect))
762
- break;
763
- const props = vnode.props;
764
- const keysProp = props.keys;
765
- const separator = readString(props.separator) ?? "+";
766
- const ownStyle = asTextStyle(props.style);
767
- const style = mergeTextStyle(parentStyle, ownStyle);
768
- maybeFillOwnBackground(builder, rect, ownStyle, style);
769
- const keyStyle = mergeTextStyle(style, { bold: true });
770
- const mutedStyle = mergeTextStyle(keyStyle, { fg: theme.colors.muted });
771
- const segments = [];
772
- if (typeof keysProp === "string") {
773
- segments.push({ text: "[", style: mutedStyle });
774
- segments.push({ text: keysProp, style: keyStyle });
775
- segments.push({ text: "]", style: mutedStyle });
776
- }
777
- else if (Array.isArray(keysProp)) {
778
- for (let i = 0; i < keysProp.length; i++) {
779
- const key = keysProp[i];
780
- if (typeof key !== "string")
781
- continue;
782
- if (i > 0)
783
- segments.push({ text: separator, style: mutedStyle });
784
- segments.push({ text: "[", style: mutedStyle });
785
- segments.push({ text: key, style: keyStyle });
786
- segments.push({ text: "]", style: mutedStyle });
787
- }
788
- }
789
- if (segments.length === 0)
790
- break;
791
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
792
- drawSegments(builder, rect.x, rect.y, rect.w, segments);
793
- builder.popClip();
794
- break;
795
- }
796
- case "status": {
797
- if (!isVisibleRect(rect))
798
- break;
799
- const props = vnode.props;
800
- const label = readString(props.label);
801
- const showLabel = props.showLabel === true || (props.showLabel !== false && label !== undefined);
802
- const ownStyle = asTextStyle(props.style);
803
- const style = mergeTextStyle(parentStyle, ownStyle);
804
- maybeFillOwnBackground(builder, rect, ownStyle, style);
805
- const dotStyle = mergeTextStyle(style, {
806
- fg: statusToThemeColor(theme, props.status),
807
- bold: true,
808
- });
809
- const segments = [{ text: "●", style: dotStyle }];
810
- if (showLabel && label && label.length > 0) {
811
- segments.push({ text: ` ${label}`, style });
812
- }
813
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
814
- drawSegments(builder, rect.x, rect.y, rect.w, segments);
815
- builder.popClip();
816
- break;
817
- }
818
- case "tag": {
819
- if (!isVisibleRect(rect))
820
- break;
821
- const props = vnode.props;
822
- const text = readString(props.text) ?? "";
823
- const removable = props.removable === true;
824
- const ownStyle = asTextStyle(props.style);
825
- const variantColor = variantToThemeColor(theme, props.variant, "secondary");
826
- const style = mergeTextStyle(mergeTextStyle(parentStyle, { fg: theme.colors.bg, bg: variantColor, bold: true }), ownStyle);
827
- maybeFillOwnBackground(builder, rect, ownStyle, style);
828
- const content = ` ${text}${removable ? " ×" : ""} `;
829
- const display = truncateToWidth(content, rect.w);
830
- if (display.length === 0)
831
- break;
832
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
833
- const fillW = Math.min(rect.w, measureTextCells(display));
834
- if (fillW > 0)
835
- builder.fillRect(rect.x, rect.y, fillW, 1, style);
836
- builder.drawText(rect.x, rect.y, display, style);
837
- builder.popClip();
838
- break;
839
- }
840
- case "skeleton": {
841
- if (!isVisibleRect(rect))
842
- break;
843
- const props = vnode.props;
844
- const targetW = readNonNegativeInt(props.width) ?? rect.w;
845
- const targetH = readPositiveInt(props.height) ?? 1;
846
- const drawW = Math.max(0, Math.min(rect.w, targetW));
847
- const drawH = Math.max(0, Math.min(rect.h, targetH));
848
- if (drawW <= 0 || drawH <= 0)
849
- break;
850
- const ownStyle = asTextStyle(props.style);
851
- const style = mergeTextStyle(parentStyle, ownStyle);
852
- maybeFillOwnBackground(builder, rect, ownStyle, style);
853
- const skeletonStyle = mergeTextStyle(style, { fg: theme.colors.muted, dim: true });
854
- const variant = props.variant === "circle" ? "circle" : props.variant === "rect" ? "rect" : "text";
855
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
856
- if (variant === "circle") {
857
- const circleText = truncateToWidth("(░░)", drawW);
858
- const y = rect.y + Math.floor((drawH - 1) / 2);
859
- builder.drawText(rect.x, y, circleText, skeletonStyle);
860
- }
861
- else {
862
- for (let row = 0; row < drawH; row++) {
863
- const glyph = row % 2 === 0 ? "░" : "▒";
864
- builder.drawText(rect.x, rect.y + row, repeatCached(glyph, drawW), skeletonStyle);
865
- }
866
- }
867
- builder.popClip();
868
- break;
869
- }
870
- case "progress": {
871
- if (!isVisibleRect(rect))
872
- break;
873
- const props = vnode.props;
874
- const value = clamp01(readNumber(props.value) ?? 0);
875
- const label = readString(props.label) ?? "";
876
- const showPercent = props.showPercent === true;
877
- const ownStyle = asTextStyle(props.style);
878
- const style = mergeTextStyle(parentStyle, ownStyle);
879
- maybeFillOwnBackground(builder, rect, ownStyle, style);
880
- const variant = props.variant === "blocks" ? "blocks" : props.variant === "minimal" ? "minimal" : "bar";
881
- const labelText = label.length > 0 ? `${label} ` : "";
882
- const percentText = showPercent ? ` ${Math.round(value * 100)}%` : "";
883
- const explicitWidth = readPositiveInt(props.width);
884
- const dynamicWidth = rect.w - measureTextCells(labelText) - measureTextCells(percentText);
885
- let barWidth = explicitWidth ?? Math.max(1, dynamicWidth);
886
- if (variant !== "minimal")
887
- barWidth = Math.max(3, barWidth);
888
- const fillGlyph = variant === "minimal" ? "━" : variant === "blocks" ? "▓" : "█";
889
- const emptyGlyph = variant === "minimal" ? "╌" : "░";
890
- const fillStyle = mergeTextStyle(style, { fg: theme.colors.primary, bold: true });
891
- const trackStyle = mergeTextStyle(mergeTextStyle(style, { fg: theme.colors.muted }), asTextStyle(props.trackStyle));
892
- const segments = [];
893
- if (labelText.length > 0)
894
- segments.push({ text: labelText, style });
895
- if (variant === "minimal") {
896
- const cells = Math.max(1, barWidth);
897
- const filled = Math.max(0, Math.min(cells, Math.round(cells * value)));
898
- const empty = Math.max(0, cells - filled);
899
- if (filled > 0)
900
- segments.push({ text: repeatCached(fillGlyph, filled), style: fillStyle });
901
- if (empty > 0)
902
- segments.push({ text: repeatCached(emptyGlyph, empty), style: trackStyle });
903
- }
904
- else {
905
- const inner = Math.max(1, barWidth - 2);
906
- const filled = Math.max(0, Math.min(inner, Math.round(inner * value)));
907
- const empty = Math.max(0, inner - filled);
908
- segments.push({ text: "[", style });
909
- if (filled > 0)
910
- segments.push({ text: repeatCached(fillGlyph, filled), style: fillStyle });
911
- if (empty > 0)
912
- segments.push({ text: repeatCached(emptyGlyph, empty), style: trackStyle });
913
- segments.push({ text: "]", style });
914
- }
915
- if (percentText.length > 0)
916
- segments.push({ text: percentText, style });
917
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
918
- drawSegments(builder, rect.x, rect.y, rect.w, segments);
919
- builder.popClip();
920
- break;
921
- }
922
- case "gauge": {
923
- if (!isVisibleRect(rect))
924
- break;
925
- const props = vnode.props;
926
- const value = clamp01(readNumber(props.value) ?? 0);
927
- const label = readString(props.label) ?? "";
928
- const ownStyle = asTextStyle(props.style);
929
- const style = mergeTextStyle(parentStyle, ownStyle);
930
- maybeFillOwnBackground(builder, rect, ownStyle, style);
931
- const gaugeColor = resolveGaugeColor(theme, value, props.thresholds);
932
- const fillStyle = mergeTextStyle(style, { fg: gaugeColor, bold: true });
933
- const trackStyle = mergeTextStyle(style, { fg: theme.colors.muted });
934
- const variant = props.variant === "compact" ? "compact" : "linear";
935
- const percentText = `${Math.round(value * 100)}%`;
936
- const labelText = label.length > 0 ? `${label} ` : "";
937
- const segments = [];
938
- if (labelText.length > 0)
939
- segments.push({ text: labelText, style });
940
- if (variant === "compact") {
941
- const compactSuffix = ` ${percentText}`;
942
- const meterWidth = Math.max(1, rect.w - measureTextCells(labelText) - measureTextCells(compactSuffix));
943
- const filled = Math.max(0, Math.min(meterWidth, Math.round(meterWidth * value)));
944
- const empty = Math.max(0, meterWidth - filled);
945
- if (filled > 0)
946
- segments.push({ text: repeatCached("▓", filled), style: fillStyle });
947
- if (empty > 0)
948
- segments.push({ text: repeatCached("░", empty), style: trackStyle });
949
- segments.push({ text: compactSuffix, style });
950
- }
951
- else {
952
- const linearSuffix = ` ${percentText}`;
953
- const barWidth = Math.max(3, rect.w - measureTextCells(labelText) - measureTextCells(linearSuffix));
954
- const inner = Math.max(1, barWidth - 2);
955
- const filled = Math.max(0, Math.min(inner, Math.round(inner * value)));
956
- const empty = Math.max(0, inner - filled);
957
- segments.push({ text: "[", style });
958
- if (filled > 0)
959
- segments.push({ text: repeatCached("▓", filled), style: fillStyle });
960
- if (empty > 0)
961
- segments.push({ text: repeatCached("░", empty), style: trackStyle });
962
- segments.push({ text: "]", style });
963
- segments.push({ text: linearSuffix, style });
964
- }
965
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
966
- drawSegments(builder, rect.x, rect.y, rect.w, segments);
967
- builder.popClip();
968
- break;
969
- }
970
- case "empty": {
971
- if (!isVisibleRect(rect))
972
- break;
973
- const props = vnode.props;
974
- const title = readString(props.title) ?? "";
975
- const description = readString(props.description);
976
- const iconPath = readString(props.icon);
977
- const actionLabel = readActionLabel(props.action);
978
- const ownStyle = asTextStyle(props.style);
979
- const style = mergeTextStyle(parentStyle, ownStyle);
980
- maybeFillOwnBackground(builder, rect, ownStyle, style);
981
- const lines = [];
982
- if (iconPath && iconPath.length > 0) {
983
- const icon = resolveIconGlyph(iconPath, false);
984
- if (icon.length > 0) {
985
- lines.push({
986
- text: icon,
987
- style: mergeTextStyle(style, { fg: theme.colors.muted }),
988
- });
989
- }
990
- }
991
- if (title.length > 0) {
992
- lines.push({ text: title, style: mergeTextStyle(style, { bold: true }) });
993
- }
994
- if (description && description.length > 0) {
995
- lines.push({
996
- text: description,
997
- style: mergeTextStyle(style, { fg: theme.colors.muted }),
998
- });
999
- }
1000
- if (actionLabel && actionLabel.length > 0) {
1001
- lines.push({
1002
- text: actionLabel,
1003
- style: mergeTextStyle(style, { fg: theme.colors.info, underline: true }),
1004
- });
1005
- }
1006
- if (lines.length === 0)
1007
- break;
1008
- const startY = rect.y + Math.max(0, Math.floor((rect.h - lines.length) / 2));
1009
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
1010
- for (let i = 0; i < lines.length; i++) {
1011
- const line = lines[i];
1012
- if (!line)
1013
- continue;
1014
- const y = startY + i;
1015
- if (y < rect.y || y >= rect.y + rect.h)
1016
- continue;
1017
- const text = truncateToWidth(line.text, rect.w);
1018
- if (text.length === 0)
1019
- continue;
1020
- const textWidth = measureTextCells(text);
1021
- const x = rect.x + Math.max(0, Math.floor((rect.w - textWidth) / 2));
1022
- builder.drawText(x, y, text, line.style);
1023
- }
1024
- builder.popClip();
1025
- break;
1026
- }
1027
- case "errorDisplay": {
1028
- if (!isVisibleRect(rect))
1029
- break;
1030
- const props = vnode.props;
1031
- const title = readString(props.title) ?? "Error";
1032
- const message = readString(props.message) ?? "";
1033
- const stack = readString(props.stack);
1034
- const showStack = props.showStack === true;
1035
- const showRetry = typeof props.onRetry === "function";
1036
- const ownStyle = asTextStyle(props.style);
1037
- const style = mergeTextStyle(parentStyle, ownStyle);
1038
- maybeFillOwnBackground(builder, rect, ownStyle, style);
1039
- const titleStyle = mergeTextStyle(style, { fg: theme.colors.danger, bold: true });
1040
- const stackStyle = mergeTextStyle(style, { fg: theme.colors.muted, dim: true });
1041
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
1042
- let y = rect.y;
1043
- if (y < rect.y + rect.h) {
1044
- builder.drawText(rect.x, y, truncateToWidth(`✗ ${title}`, rect.w), titleStyle);
1045
- y += 1;
1046
- }
1047
- for (const line of message.split("\n")) {
1048
- if (y >= rect.y + rect.h)
1049
- break;
1050
- builder.drawText(rect.x, y, truncateToWidth(line, rect.w), style);
1051
- y += 1;
1052
- }
1053
- if (showStack && stack && stack.length > 0) {
1054
- for (const line of stack.split("\n")) {
1055
- if (y >= rect.y + rect.h)
1056
- break;
1057
- builder.drawText(rect.x, y, truncateToWidth(line, rect.w), stackStyle);
1058
- y += 1;
1059
- }
1060
- }
1061
- if (showRetry && y < rect.y + rect.h) {
1062
- builder.drawText(rect.x, y, truncateToWidth("[Retry]", rect.w), mergeTextStyle(style, { fg: theme.colors.info, underline: true }));
1063
- }
1064
- builder.popClip();
1065
- break;
64
+ return (renderFormWidgets(builder, focusState, pressedId, rect, theme, parentStyle, node, layoutNode, nodeStack, styleStack, layoutStack, clipStack, currentClip, cursorInfo, maybeFillOwnBackground) ?? null);
1066
65
  }
66
+ case "divider":
67
+ case "progress":
68
+ case "gauge":
69
+ case "skeleton":
70
+ case "spacer":
71
+ case "empty":
72
+ case "errorDisplay":
1067
73
  case "callout": {
1068
- if (!isVisibleRect(rect))
1069
- break;
1070
- const props = vnode.props;
1071
- const variant = props.variant;
1072
- const title = readString(props.title);
1073
- const message = readString(props.message) ?? "";
1074
- const ownStyle = asTextStyle(props.style);
1075
- const style = mergeTextStyle(parentStyle, ownStyle);
1076
- maybeFillOwnBackground(builder, rect, ownStyle, style);
1077
- const accentColor = calloutVariantToColor(theme, variant);
1078
- const borderStyle = mergeTextStyle(style, { fg: theme.colors.border });
1079
- if (rect.w >= 2 && rect.h >= 2) {
1080
- renderBoxBorder(builder, rect, "single", undefined, "left", borderStyle);
1081
- }
1082
- const inset = rect.w >= 2 && rect.h >= 2 ? 1 : 0;
1083
- const innerX = rect.x + inset;
1084
- const innerY = rect.y + inset;
1085
- const innerW = Math.max(0, rect.w - inset * 2);
1086
- const innerH = Math.max(0, rect.h - inset * 2);
1087
- if (innerW <= 0 || innerH <= 0)
1088
- break;
1089
- const accentStyle = mergeTextStyle(style, { fg: accentColor, bold: true });
1090
- const titleStyle = mergeTextStyle(style, { fg: accentColor, bold: true });
1091
- const iconOverride = readString(props.icon);
1092
- const iconGlyph = iconOverride && iconOverride.length > 0
1093
- ? resolveIconGlyph(iconOverride, false)
1094
- : calloutVariantIcon(variant);
1095
- builder.pushClip(innerX, innerY, innerW, innerH);
1096
- for (let row = 0; row < innerH; row++) {
1097
- builder.drawText(innerX, innerY + row, "│", accentStyle);
1098
- }
1099
- const contentX = innerX + (innerW >= 3 ? 2 : 1);
1100
- const contentW = Math.max(0, innerW - (contentX - innerX));
1101
- if (contentW > 0) {
1102
- let y = innerY;
1103
- if (title && title.length > 0) {
1104
- const header = [];
1105
- if (iconGlyph.length > 0)
1106
- header.push({ text: `${iconGlyph} `, style: accentStyle });
1107
- header.push({ text: title, style: titleStyle });
1108
- drawSegments(builder, contentX, y, contentW, header);
1109
- y += 1;
1110
- }
1111
- if (y < innerY + innerH) {
1112
- const firstLinePrefix = title && title.length > 0 ? "" : iconGlyph.length > 0 ? `${iconGlyph} ` : "";
1113
- const lines = message.split("\n");
1114
- for (let i = 0; i < lines.length; i++) {
1115
- if (y >= innerY + innerH)
1116
- break;
1117
- const line = i === 0 ? `${firstLinePrefix}${lines[i] ?? ""}` : (lines[i] ?? "");
1118
- builder.drawText(contentX, y, truncateToWidth(line, contentW), style);
1119
- y += 1;
1120
- }
1121
- }
1122
- }
1123
- builder.popClip();
1124
- break;
1125
- }
1126
- case "sparkline": {
1127
- if (!isVisibleRect(rect))
1128
- break;
1129
- const props = vnode.props;
1130
- const rawData = Array.isArray(props.data) ? props.data : [];
1131
- const data = [];
1132
- for (const value of rawData) {
1133
- const n = readNumber(value);
1134
- if (n !== undefined)
1135
- data.push(n);
1136
- }
1137
- if (data.length === 0)
1138
- break;
1139
- const ownStyle = asTextStyle(props.style);
1140
- const style = mergeTextStyle(parentStyle, ownStyle);
1141
- maybeFillOwnBackground(builder, rect, ownStyle, style);
1142
- const width = Math.max(1, Math.min(rect.w, readPositiveInt(props.width) ?? data.length));
1143
- const autoMin = Math.min(...data);
1144
- const autoMax = Math.max(...data);
1145
- const min = readNumber(props.min) ?? autoMin;
1146
- const max = readNumber(props.max) ?? autoMax;
1147
- const line = sparklineForData(data, width, min, max);
1148
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
1149
- builder.drawText(rect.x, rect.y, truncateToWidth(line, rect.w), mergeTextStyle(style, { fg: theme.colors.info }));
1150
- builder.popClip();
1151
- break;
1152
- }
1153
- case "barChart": {
1154
- if (!isVisibleRect(rect))
1155
- break;
1156
- const props = vnode.props;
1157
- const rawData = Array.isArray(props.data) ? props.data : [];
1158
- const data = rawData.filter((item) => isRecord(item));
1159
- if (data.length === 0)
1160
- break;
1161
- const orientation = props.orientation === "vertical" ? "vertical" : "horizontal";
1162
- const showValues = props.showValues !== false;
1163
- const showLabels = props.showLabels !== false;
1164
- const ownStyle = asTextStyle(props.style);
1165
- const style = mergeTextStyle(parentStyle, ownStyle);
1166
- maybeFillOwnBackground(builder, rect, ownStyle, style);
1167
- const values = data.map((item) => Math.max(0, readNumber(item.value) ?? 0));
1168
- const maxValue = Math.max(1, ...values);
1169
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
1170
- if (orientation === "horizontal") {
1171
- const maxBarLength = readPositiveInt(props.maxBarLength);
1172
- for (let row = 0; row < rect.h && row < data.length; row++) {
1173
- const item = data[row];
1174
- if (!item)
1175
- continue;
1176
- const label = showLabels ? (readString(item.label) ?? "") : "";
1177
- const value = Math.max(0, readNumber(item.value) ?? 0);
1178
- const valueText = showValues ? ` ${String(value)}` : "";
1179
- const labelText = label.length > 0 ? `${label} ` : "";
1180
- let barWidth = rect.w - measureTextCells(labelText) - measureTextCells(valueText);
1181
- if (maxBarLength !== undefined)
1182
- barWidth = Math.min(barWidth, maxBarLength);
1183
- barWidth = Math.max(1, barWidth);
1184
- const filled = Math.max(0, Math.min(barWidth, Math.round((value / maxValue) * barWidth)));
1185
- const empty = Math.max(0, barWidth - filled);
1186
- const barStyle = mergeTextStyle(style, {
1187
- fg: variantToThemeColor(theme, item.variant, "primary"),
1188
- bold: true,
1189
- });
1190
- const trackStyle = mergeTextStyle(style, { fg: theme.colors.muted });
1191
- const segments = [];
1192
- if (labelText.length > 0)
1193
- segments.push({ text: labelText, style });
1194
- if (filled > 0)
1195
- segments.push({ text: repeatCached("█", filled), style: barStyle });
1196
- if (empty > 0)
1197
- segments.push({ text: repeatCached("░", empty), style: trackStyle });
1198
- if (valueText.length > 0)
1199
- segments.push({ text: valueText, style });
1200
- drawSegments(builder, rect.x, rect.y + row, rect.w, segments);
1201
- }
1202
- }
1203
- else {
1204
- const labelRows = showLabels ? 1 : 0;
1205
- const valueRows = showValues ? 1 : 0;
1206
- const maxBarLength = readPositiveInt(props.maxBarLength);
1207
- const chartHeight = Math.max(0, Math.min(rect.h - labelRows - valueRows, maxBarLength ?? Number.POSITIVE_INFINITY));
1208
- const columns = Math.max(1, Math.min(rect.w, data.length));
1209
- for (let col = 0; col < columns; col++) {
1210
- const sourceIndex = Math.min(data.length - 1, Math.floor((col * data.length) / columns));
1211
- const item = data[sourceIndex];
1212
- if (!item)
1213
- continue;
1214
- const value = Math.max(0, readNumber(item.value) ?? 0);
1215
- const filled = chartHeight <= 0
1216
- ? 0
1217
- : Math.max(0, Math.min(chartHeight, Math.round((value / maxValue) * chartHeight)));
1218
- const barStyle = mergeTextStyle(style, {
1219
- fg: variantToThemeColor(theme, item.variant, "primary"),
1220
- bold: true,
1221
- });
1222
- const trackStyle = mergeTextStyle(style, { fg: theme.colors.muted });
1223
- for (let y = 0; y < chartHeight; y++) {
1224
- const cellY = rect.y + chartHeight - 1 - y;
1225
- const filledCell = y < filled;
1226
- builder.drawText(rect.x + col, cellY, filledCell ? "█" : "░", filledCell ? barStyle : trackStyle);
1227
- }
1228
- }
1229
- if (showLabels && chartHeight < rect.h) {
1230
- let labels = "";
1231
- for (let col = 0; col < columns; col++) {
1232
- const sourceIndex = Math.min(data.length - 1, Math.floor((col * data.length) / columns));
1233
- const item = data[sourceIndex];
1234
- const label = item ? (readString(item.label) ?? "") : "";
1235
- labels += firstChar(label) || " ";
1236
- }
1237
- builder.drawText(rect.x, rect.y + chartHeight, truncateToWidth(labels, rect.w), style);
1238
- }
1239
- if (showValues && chartHeight + labelRows < rect.h) {
1240
- const valueLine = data
1241
- .map((item) => String(Math.max(0, readNumber(item.value) ?? 0)))
1242
- .join(" ");
1243
- const y = rect.y + chartHeight + labelRows;
1244
- builder.drawText(rect.x, y, truncateToWidth(valueLine, rect.w), mergeTextStyle(style, { fg: theme.colors.muted }));
1245
- }
1246
- }
1247
- builder.popClip();
1248
- break;
1249
- }
74
+ renderIndicatorWidgets(builder, rect, theme, parentStyle, node, maybeFillOwnBackground);
75
+ return null;
76
+ }
77
+ case "canvas":
78
+ case "image": {
79
+ renderCanvasWidgets(builder, rect, theme, parentStyle, node, terminalProfile, readZLayer);
80
+ return null;
81
+ }
82
+ case "lineChart":
83
+ case "scatter":
84
+ case "heatmap":
85
+ case "sparkline":
86
+ case "barChart":
1250
87
  case "miniChart": {
1251
- if (!isVisibleRect(rect))
1252
- break;
1253
- const props = vnode.props;
1254
- const rawValues = Array.isArray(props.values) ? props.values : [];
1255
- const values = rawValues.filter((item) => isRecord(item));
1256
- if (values.length === 0)
1257
- break;
1258
- const variant = props.variant === "pills" ? "pills" : "bars";
1259
- const ownStyle = asTextStyle(props.style);
1260
- const style = mergeTextStyle(parentStyle, ownStyle);
1261
- maybeFillOwnBackground(builder, rect, ownStyle, style);
1262
- const fillGlyph = variant === "pills" ? "●" : "▓";
1263
- const emptyGlyph = variant === "pills" ? "○" : "░";
1264
- const fillStyle = mergeTextStyle(style, { fg: theme.colors.primary, bold: true });
1265
- const trackStyle = mergeTextStyle(style, { fg: theme.colors.muted });
1266
- const segments = [];
1267
- for (let i = 0; i < values.length; i++) {
1268
- const item = values[i];
1269
- if (!item)
1270
- continue;
1271
- if (i > 0)
1272
- segments.push({ text: " ", style });
1273
- const label = readString(item.label) ?? "";
1274
- const value = Math.max(0, readNumber(item.value) ?? 0);
1275
- const max = Math.max(1, readNumber(item.max) ?? Math.max(value, 1));
1276
- const ratio = clamp01(value / max);
1277
- const cells = 5;
1278
- const filled = Math.max(0, Math.min(cells, Math.round(cells * ratio)));
1279
- const empty = Math.max(0, cells - filled);
1280
- if (label.length > 0)
1281
- segments.push({ text: `${label}:`, style });
1282
- if (filled > 0)
1283
- segments.push({ text: repeatCached(fillGlyph, filled), style: fillStyle });
1284
- if (empty > 0)
1285
- segments.push({ text: repeatCached(emptyGlyph, empty), style: trackStyle });
1286
- segments.push({ text: ` ${Math.round(ratio * 100)}%`, style });
1287
- }
1288
- builder.pushClip(rect.x, rect.y, rect.w, rect.h);
1289
- drawSegments(builder, rect.x, rect.y, rect.w, segments);
1290
- builder.popClip();
1291
- break;
88
+ renderChartWidgets(builder, rect, theme, parentStyle, node, maybeFillOwnBackground);
89
+ return null;
1292
90
  }
1293
91
  default:
1294
- break;
92
+ return null;
1295
93
  }
1296
- return resolvedCursor;
1297
94
  }
1298
95
  //# sourceMappingURL=basic.js.map