@rezi-ui/core 0.1.0-alpha.60 → 0.1.0-alpha.68

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 (410) hide show
  1. package/dist/app/createApp/breadcrumbs.d.ts +38 -0
  2. package/dist/app/createApp/breadcrumbs.d.ts.map +1 -0
  3. package/dist/app/createApp/breadcrumbs.js +65 -0
  4. package/dist/app/createApp/breadcrumbs.js.map +1 -0
  5. package/dist/app/createApp/config.d.ts +25 -0
  6. package/dist/app/createApp/config.d.ts.map +1 -0
  7. package/dist/app/createApp/config.js +130 -0
  8. package/dist/app/createApp/config.js.map +1 -0
  9. package/dist/app/createApp/eventLoop.d.ts +95 -0
  10. package/dist/app/createApp/eventLoop.d.ts.map +1 -0
  11. package/dist/app/createApp/eventLoop.js +384 -0
  12. package/dist/app/createApp/eventLoop.js.map +1 -0
  13. package/dist/app/createApp/guards.d.ts +21 -0
  14. package/dist/app/createApp/guards.d.ts.map +1 -0
  15. package/dist/app/createApp/guards.js +54 -0
  16. package/dist/app/createApp/guards.js.map +1 -0
  17. package/dist/app/createApp/keybindings.d.ts +28 -0
  18. package/dist/app/createApp/keybindings.d.ts.map +1 -0
  19. package/dist/app/createApp/keybindings.js +113 -0
  20. package/dist/app/createApp/keybindings.js.map +1 -0
  21. package/dist/app/createApp/renderLoop.d.ts +64 -0
  22. package/dist/app/createApp/renderLoop.d.ts.map +1 -0
  23. package/dist/app/createApp/renderLoop.js +305 -0
  24. package/dist/app/createApp/renderLoop.js.map +1 -0
  25. package/dist/app/createApp.d.ts +3 -39
  26. package/dist/app/createApp.d.ts.map +1 -1
  27. package/dist/app/createApp.js +403 -1205
  28. package/dist/app/createApp.js.map +1 -1
  29. package/dist/app/widgetRenderer/constraintState.d.ts +98 -0
  30. package/dist/app/widgetRenderer/constraintState.d.ts.map +1 -0
  31. package/dist/app/widgetRenderer/constraintState.js +563 -0
  32. package/dist/app/widgetRenderer/constraintState.js.map +1 -0
  33. package/dist/app/widgetRenderer/fileNodeCache.d.ts +2 -0
  34. package/dist/app/widgetRenderer/fileNodeCache.d.ts.map +1 -1
  35. package/dist/app/widgetRenderer/fileNodeCache.js +31 -0
  36. package/dist/app/widgetRenderer/fileNodeCache.js.map +1 -1
  37. package/dist/app/widgetRenderer/filePickerRouting.d.ts +12 -1
  38. package/dist/app/widgetRenderer/filePickerRouting.d.ts.map +1 -1
  39. package/dist/app/widgetRenderer/filePickerRouting.js +63 -14
  40. package/dist/app/widgetRenderer/filePickerRouting.js.map +1 -1
  41. package/dist/app/widgetRenderer/focusState.d.ts +46 -0
  42. package/dist/app/widgetRenderer/focusState.d.ts.map +1 -0
  43. package/dist/app/widgetRenderer/focusState.js +122 -0
  44. package/dist/app/widgetRenderer/focusState.js.map +1 -0
  45. package/dist/app/widgetRenderer/keyboardRouting.d.ts.map +1 -1
  46. package/dist/app/widgetRenderer/keyboardRouting.js.map +1 -1
  47. package/dist/app/widgetRenderer/mouseRouting.d.ts +5 -0
  48. package/dist/app/widgetRenderer/mouseRouting.d.ts.map +1 -1
  49. package/dist/app/widgetRenderer/mouseRouting.js +78 -8
  50. package/dist/app/widgetRenderer/mouseRouting.js.map +1 -1
  51. package/dist/app/widgetRenderer/overlayShortcuts.d.ts.map +1 -1
  52. package/dist/app/widgetRenderer/overlayShortcuts.js +14 -4
  53. package/dist/app/widgetRenderer/overlayShortcuts.js.map +1 -1
  54. package/dist/app/widgetRenderer/overlayState.d.ts +198 -0
  55. package/dist/app/widgetRenderer/overlayState.d.ts.map +1 -0
  56. package/dist/app/widgetRenderer/overlayState.js +590 -0
  57. package/dist/app/widgetRenderer/overlayState.js.map +1 -0
  58. package/dist/app/widgetRenderer/routeEngineEvent.d.ts +189 -0
  59. package/dist/app/widgetRenderer/routeEngineEvent.d.ts.map +1 -0
  60. package/dist/app/widgetRenderer/routeEngineEvent.js +527 -0
  61. package/dist/app/widgetRenderer/routeEngineEvent.js.map +1 -0
  62. package/dist/app/widgetRenderer.d.ts +2 -1
  63. package/dist/app/widgetRenderer.d.ts.map +1 -1
  64. package/dist/app/widgetRenderer.js +334 -1707
  65. package/dist/app/widgetRenderer.js.map +1 -1
  66. package/dist/forms/internal/arrayState.d.ts +35 -0
  67. package/dist/forms/internal/arrayState.d.ts.map +1 -0
  68. package/dist/forms/internal/arrayState.js +238 -0
  69. package/dist/forms/internal/arrayState.js.map +1 -0
  70. package/dist/forms/internal/bindings.d.ts +46 -0
  71. package/dist/forms/internal/bindings.d.ts.map +1 -0
  72. package/dist/forms/internal/bindings.js +161 -0
  73. package/dist/forms/internal/bindings.js.map +1 -0
  74. package/dist/forms/internal/dev.d.ts +4 -0
  75. package/dist/forms/internal/dev.d.ts.map +1 -0
  76. package/dist/forms/internal/dev.js +21 -0
  77. package/dist/forms/internal/dev.js.map +1 -0
  78. package/dist/forms/internal/state.d.ts +52 -0
  79. package/dist/forms/internal/state.d.ts.map +1 -0
  80. package/dist/forms/internal/state.js +240 -0
  81. package/dist/forms/internal/state.js.map +1 -0
  82. package/dist/forms/internal/submit.d.ts +43 -0
  83. package/dist/forms/internal/submit.d.ts.map +1 -0
  84. package/dist/forms/internal/submit.js +165 -0
  85. package/dist/forms/internal/submit.js.map +1 -0
  86. package/dist/forms/internal/wizard.d.ts +53 -0
  87. package/dist/forms/internal/wizard.d.ts.map +1 -0
  88. package/dist/forms/internal/wizard.js +311 -0
  89. package/dist/forms/internal/wizard.js.map +1 -0
  90. package/dist/forms/useForm.d.ts.map +1 -1
  91. package/dist/forms/useForm.js +90 -1117
  92. package/dist/forms/useForm.js.map +1 -1
  93. package/dist/index.d.ts +1 -1
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +1 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/keybindings/manager.d.ts.map +1 -1
  98. package/dist/keybindings/manager.js.map +1 -1
  99. package/dist/keybindings/parser.d.ts.map +1 -1
  100. package/dist/keybindings/parser.js +10 -5
  101. package/dist/keybindings/parser.js.map +1 -1
  102. package/dist/layout/dropdownGeometry.d.ts +8 -0
  103. package/dist/layout/dropdownGeometry.d.ts.map +1 -1
  104. package/dist/layout/dropdownGeometry.js +40 -0
  105. package/dist/layout/dropdownGeometry.js.map +1 -1
  106. package/dist/layout/engine/layoutEngine.js +1 -1
  107. package/dist/layout/engine/layoutEngine.js.map +1 -1
  108. package/dist/layout/kinds/overlays.d.ts.map +1 -1
  109. package/dist/layout/kinds/stack.d.ts +1 -3
  110. package/dist/layout/kinds/stack.d.ts.map +1 -1
  111. package/dist/layout/kinds/stack.js +11 -1523
  112. package/dist/layout/kinds/stack.js.map +1 -1
  113. package/dist/layout/kinds/stackParts/axis.d.ts +32 -0
  114. package/dist/layout/kinds/stackParts/axis.d.ts.map +1 -0
  115. package/dist/layout/kinds/stackParts/axis.js +61 -0
  116. package/dist/layout/kinds/stackParts/axis.js.map +1 -0
  117. package/dist/layout/kinds/stackParts/constraintPlan.d.ts +18 -0
  118. package/dist/layout/kinds/stackParts/constraintPlan.d.ts.map +1 -0
  119. package/dist/layout/kinds/stackParts/constraintPlan.js +434 -0
  120. package/dist/layout/kinds/stackParts/constraintPlan.js.map +1 -0
  121. package/dist/layout/kinds/stackParts/layout.d.ts +6 -0
  122. package/dist/layout/kinds/stackParts/layout.d.ts.map +1 -0
  123. package/dist/layout/kinds/stackParts/layout.js +376 -0
  124. package/dist/layout/kinds/stackParts/layout.js.map +1 -0
  125. package/dist/layout/kinds/stackParts/measure.d.ts +6 -0
  126. package/dist/layout/kinds/stackParts/measure.d.ts.map +1 -0
  127. package/dist/layout/kinds/stackParts/measure.js +212 -0
  128. package/dist/layout/kinds/stackParts/measure.js.map +1 -0
  129. package/dist/layout/kinds/stackParts/shared.d.ts +31 -0
  130. package/dist/layout/kinds/stackParts/shared.d.ts.map +1 -0
  131. package/dist/layout/kinds/stackParts/shared.js +94 -0
  132. package/dist/layout/kinds/stackParts/shared.js.map +1 -0
  133. package/dist/layout/kinds/stackParts/wrap.d.ts +26 -0
  134. package/dist/layout/kinds/stackParts/wrap.d.ts.map +1 -0
  135. package/dist/layout/kinds/stackParts/wrap.js +374 -0
  136. package/dist/layout/kinds/stackParts/wrap.js.map +1 -0
  137. package/dist/layout/validate/interactive.d.ts +106 -0
  138. package/dist/layout/validate/interactive.d.ts.map +1 -0
  139. package/dist/layout/validate/interactive.js +430 -0
  140. package/dist/layout/validate/interactive.js.map +1 -0
  141. package/dist/layout/validate/layoutConstraints.d.ts +51 -0
  142. package/dist/layout/validate/layoutConstraints.d.ts.map +1 -0
  143. package/dist/layout/validate/layoutConstraints.js +100 -0
  144. package/dist/layout/validate/layoutConstraints.js.map +1 -0
  145. package/dist/layout/validate/primitives.d.ts +31 -0
  146. package/dist/layout/validate/primitives.d.ts.map +1 -0
  147. package/dist/layout/validate/primitives.js +299 -0
  148. package/dist/layout/validate/primitives.js.map +1 -0
  149. package/dist/layout/validate/shared.d.ts +23 -0
  150. package/dist/layout/validate/shared.d.ts.map +1 -0
  151. package/dist/layout/validate/shared.js +32 -0
  152. package/dist/layout/validate/shared.js.map +1 -0
  153. package/dist/layout/validate/spacing.d.ts +21 -0
  154. package/dist/layout/validate/spacing.d.ts.map +1 -0
  155. package/dist/layout/validate/spacing.js +33 -0
  156. package/dist/layout/validate/spacing.js.map +1 -0
  157. package/dist/layout/validateProps.d.ts +5 -159
  158. package/dist/layout/validateProps.d.ts.map +1 -1
  159. package/dist/layout/validateProps.js +1 -832
  160. package/dist/layout/validateProps.js.map +1 -1
  161. package/dist/pipeline.d.ts +2 -2
  162. package/dist/pipeline.js +3 -3
  163. package/dist/pipeline.js.map +1 -1
  164. package/dist/renderer/renderToDrawlist/renderTree.d.ts +1 -1
  165. package/dist/renderer/renderToDrawlist/renderTree.d.ts.map +1 -1
  166. package/dist/renderer/renderToDrawlist/renderTree.js +3 -3
  167. package/dist/renderer/renderToDrawlist/renderTree.js.map +1 -1
  168. package/dist/renderer/renderToDrawlist/types.d.ts +2 -0
  169. package/dist/renderer/renderToDrawlist/types.d.ts.map +1 -1
  170. package/dist/renderer/renderToDrawlist/widgets/containers.d.ts.map +1 -1
  171. package/dist/renderer/renderToDrawlist/widgets/containers.js +1 -1
  172. package/dist/renderer/renderToDrawlist/widgets/containers.js.map +1 -1
  173. package/dist/renderer/renderToDrawlist/widgets/files.d.ts +2 -1
  174. package/dist/renderer/renderToDrawlist/widgets/files.d.ts.map +1 -1
  175. package/dist/renderer/renderToDrawlist/widgets/files.js +30 -3
  176. package/dist/renderer/renderToDrawlist/widgets/files.js.map +1 -1
  177. package/dist/renderer/renderToDrawlist/widgets/navigation.d.ts.map +1 -1
  178. package/dist/renderer/renderToDrawlist/widgets/navigation.js +12 -4
  179. package/dist/renderer/renderToDrawlist/widgets/navigation.js.map +1 -1
  180. package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts +1 -1
  181. package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts.map +1 -1
  182. package/dist/renderer/renderToDrawlist/widgets/overlays.js +26 -6
  183. package/dist/renderer/renderToDrawlist/widgets/overlays.js.map +1 -1
  184. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.d.ts.map +1 -1
  185. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.js +52 -18
  186. package/dist/renderer/renderToDrawlist/widgets/renderFormWidgets.js.map +1 -1
  187. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.d.ts.map +1 -1
  188. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.js +90 -27
  189. package/dist/renderer/renderToDrawlist/widgets/renderTextWidgets.js.map +1 -1
  190. package/dist/renderer/renderToDrawlist.d.ts +0 -8
  191. package/dist/renderer/renderToDrawlist.d.ts.map +1 -1
  192. package/dist/renderer/renderToDrawlist.js +1 -9
  193. package/dist/renderer/renderToDrawlist.js.map +1 -1
  194. package/dist/repro/replay.d.ts +4 -0
  195. package/dist/repro/replay.d.ts.map +1 -1
  196. package/dist/repro/replay.js +17 -2
  197. package/dist/repro/replay.js.map +1 -1
  198. package/dist/runtime/commit/composite.d.ts +11 -0
  199. package/dist/runtime/commit/composite.d.ts.map +1 -0
  200. package/dist/runtime/commit/composite.js +238 -0
  201. package/dist/runtime/commit/composite.js.map +1 -0
  202. package/dist/runtime/commit/container.d.ts +7 -0
  203. package/dist/runtime/commit/container.d.ts.map +1 -0
  204. package/dist/runtime/commit/container.js +350 -0
  205. package/dist/runtime/commit/container.js.map +1 -0
  206. package/dist/runtime/commit/equality.d.ts +20 -0
  207. package/dist/runtime/commit/equality.d.ts.map +1 -0
  208. package/dist/runtime/commit/equality.js +436 -0
  209. package/dist/runtime/commit/equality.js.map +1 -0
  210. package/dist/runtime/commit/errorBoundary.d.ts +7 -0
  211. package/dist/runtime/commit/errorBoundary.d.ts.map +1 -0
  212. package/dist/runtime/commit/errorBoundary.js +53 -0
  213. package/dist/runtime/commit/errorBoundary.js.map +1 -0
  214. package/dist/runtime/commit/shared.d.ts +138 -0
  215. package/dist/runtime/commit/shared.d.ts.map +1 -0
  216. package/dist/runtime/commit/shared.js +11 -0
  217. package/dist/runtime/commit/shared.js.map +1 -0
  218. package/dist/runtime/commit/transitions.d.ts +9 -0
  219. package/dist/runtime/commit/transitions.d.ts.map +1 -0
  220. package/dist/runtime/commit/transitions.js +93 -0
  221. package/dist/runtime/commit/transitions.js.map +1 -0
  222. package/dist/runtime/commit/validation.d.ts +16 -0
  223. package/dist/runtime/commit/validation.d.ts.map +1 -0
  224. package/dist/runtime/commit/validation.js +157 -0
  225. package/dist/runtime/commit/validation.js.map +1 -0
  226. package/dist/runtime/commit.d.ts +7 -117
  227. package/dist/runtime/commit.d.ts.map +1 -1
  228. package/dist/runtime/commit.js +13 -1394
  229. package/dist/runtime/commit.js.map +1 -1
  230. package/dist/runtime/localState.d.ts +4 -0
  231. package/dist/runtime/localState.d.ts.map +1 -1
  232. package/dist/runtime/localState.js.map +1 -1
  233. package/dist/runtime/router/zones.d.ts.map +1 -1
  234. package/dist/runtime/router/zones.js +28 -1
  235. package/dist/runtime/router/zones.js.map +1 -1
  236. package/dist/runtime/widgetMeta/collector.d.ts +77 -0
  237. package/dist/runtime/widgetMeta/collector.d.ts.map +1 -0
  238. package/dist/runtime/widgetMeta/collector.js +293 -0
  239. package/dist/runtime/widgetMeta/collector.js.map +1 -0
  240. package/dist/runtime/widgetMeta/focusContainers.d.ts +44 -0
  241. package/dist/runtime/widgetMeta/focusContainers.d.ts.map +1 -0
  242. package/dist/runtime/widgetMeta/focusContainers.js +190 -0
  243. package/dist/runtime/widgetMeta/focusContainers.js.map +1 -0
  244. package/dist/runtime/widgetMeta/focusInfo.d.ts +19 -0
  245. package/dist/runtime/widgetMeta/focusInfo.d.ts.map +1 -0
  246. package/dist/runtime/widgetMeta/focusInfo.js +172 -0
  247. package/dist/runtime/widgetMeta/focusInfo.js.map +1 -0
  248. package/dist/runtime/widgetMeta/helpers.d.ts +47 -0
  249. package/dist/runtime/widgetMeta/helpers.d.ts.map +1 -0
  250. package/dist/runtime/widgetMeta/helpers.js +182 -0
  251. package/dist/runtime/widgetMeta/helpers.js.map +1 -0
  252. package/dist/runtime/widgetMeta.d.ts +12 -175
  253. package/dist/runtime/widgetMeta.d.ts.map +1 -1
  254. package/dist/runtime/widgetMeta.js +6 -847
  255. package/dist/runtime/widgetMeta.js.map +1 -1
  256. package/dist/testing/assertions.d.ts +7 -0
  257. package/dist/testing/assertions.d.ts.map +1 -0
  258. package/dist/testing/assertions.js +187 -0
  259. package/dist/testing/assertions.js.map +1 -0
  260. package/dist/testing/index.d.ts +11 -0
  261. package/dist/testing/index.d.ts.map +1 -1
  262. package/dist/testing/index.js +11 -0
  263. package/dist/testing/index.js.map +1 -1
  264. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.d.ts +8 -0
  265. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.d.ts.map +1 -0
  266. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.js +79 -0
  267. package/dist/testing/referenceScenarios/inputIncompleteEscapeRecovery.js.map +1 -0
  268. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.d.ts +9 -0
  269. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.d.ts.map +1 -0
  270. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.js +96 -0
  271. package/dist/testing/referenceScenarios/inputIncompletePasteRecovery.js.map +1 -0
  272. package/dist/testing/referenceScenarios/inputModalBlocking.d.ts +9 -0
  273. package/dist/testing/referenceScenarios/inputModalBlocking.d.ts.map +1 -0
  274. package/dist/testing/referenceScenarios/inputModalBlocking.js +172 -0
  275. package/dist/testing/referenceScenarios/inputModalBlocking.js.map +1 -0
  276. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.d.ts +9 -0
  277. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.d.ts.map +1 -0
  278. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.js +102 -0
  279. package/dist/testing/referenceScenarios/inputMouseCapabilityFallback.js.map +1 -0
  280. package/dist/testing/referenceScenarios/selectKeyboardCycler.d.ts +8 -0
  281. package/dist/testing/referenceScenarios/selectKeyboardCycler.d.ts.map +1 -0
  282. package/dist/testing/referenceScenarios/selectKeyboardCycler.js +115 -0
  283. package/dist/testing/referenceScenarios/selectKeyboardCycler.js.map +1 -0
  284. package/dist/testing/referenceScenarios/textareaMultilineEditing.d.ts +8 -0
  285. package/dist/testing/referenceScenarios/textareaMultilineEditing.d.ts.map +1 -0
  286. package/dist/testing/referenceScenarios/textareaMultilineEditing.js +100 -0
  287. package/dist/testing/referenceScenarios/textareaMultilineEditing.js.map +1 -0
  288. package/dist/testing/referenceScenarios/virtualListResizeStorm.d.ts +8 -0
  289. package/dist/testing/referenceScenarios/virtualListResizeStorm.d.ts.map +1 -0
  290. package/dist/testing/referenceScenarios/virtualListResizeStorm.js +88 -0
  291. package/dist/testing/referenceScenarios/virtualListResizeStorm.js.map +1 -0
  292. package/dist/testing/replayScenario.d.ts +6 -0
  293. package/dist/testing/replayScenario.d.ts.map +1 -0
  294. package/dist/testing/replayScenario.js +399 -0
  295. package/dist/testing/replayScenario.js.map +1 -0
  296. package/dist/testing/scenario.d.ts +145 -0
  297. package/dist/testing/scenario.d.ts.map +1 -0
  298. package/dist/testing/scenario.js +57 -0
  299. package/dist/testing/scenario.js.map +1 -0
  300. package/dist/testing/semanticScenario.d.ts +6 -0
  301. package/dist/testing/semanticScenario.d.ts.map +1 -0
  302. package/dist/testing/semanticScenario.js +347 -0
  303. package/dist/testing/semanticScenario.js.map +1 -0
  304. package/dist/ui/capabilities.d.ts.map +1 -1
  305. package/dist/ui/designTokens.d.ts.map +1 -1
  306. package/dist/widgets/accordion.d.ts.map +1 -1
  307. package/dist/widgets/accordion.js +8 -13
  308. package/dist/widgets/accordion.js.map +1 -1
  309. package/dist/widgets/breadcrumb.d.ts.map +1 -1
  310. package/dist/widgets/breadcrumb.js +1 -12
  311. package/dist/widgets/breadcrumb.js.map +1 -1
  312. package/dist/widgets/factories/advanced.d.ts +20 -0
  313. package/dist/widgets/factories/advanced.d.ts.map +1 -0
  314. package/dist/widgets/factories/advanced.js +75 -0
  315. package/dist/widgets/factories/advanced.js.map +1 -0
  316. package/dist/widgets/factories/basic.d.ts +14 -0
  317. package/dist/widgets/factories/basic.d.ts.map +1 -0
  318. package/dist/widgets/factories/basic.js +44 -0
  319. package/dist/widgets/factories/basic.js.map +1 -0
  320. package/dist/widgets/factories/feedback.d.ts +20 -0
  321. package/dist/widgets/factories/feedback.d.ts.map +1 -0
  322. package/dist/widgets/factories/feedback.js +102 -0
  323. package/dist/widgets/factories/feedback.js.map +1 -0
  324. package/dist/widgets/factories/helpers.d.ts +41 -0
  325. package/dist/widgets/factories/helpers.d.ts.map +1 -0
  326. package/dist/widgets/factories/helpers.js +72 -0
  327. package/dist/widgets/factories/helpers.js.map +1 -0
  328. package/dist/widgets/factories/interactive.d.ts +15 -0
  329. package/dist/widgets/factories/interactive.d.ts.map +1 -0
  330. package/dist/widgets/factories/interactive.js +46 -0
  331. package/dist/widgets/factories/interactive.js.map +1 -0
  332. package/dist/widgets/factories/layoutShell.d.ts +22 -0
  333. package/dist/widgets/factories/layoutShell.d.ts.map +1 -0
  334. package/dist/widgets/factories/layoutShell.js +190 -0
  335. package/dist/widgets/factories/layoutShell.js.map +1 -0
  336. package/dist/widgets/factories/media.d.ts +14 -0
  337. package/dist/widgets/factories/media.d.ts.map +1 -0
  338. package/dist/widgets/factories/media.js +25 -0
  339. package/dist/widgets/factories/media.js.map +1 -0
  340. package/dist/widgets/factories/navigation.d.ts +10 -0
  341. package/dist/widgets/factories/navigation.d.ts.map +1 -0
  342. package/dist/widgets/factories/navigation.js +24 -0
  343. package/dist/widgets/factories/navigation.js.map +1 -0
  344. package/dist/widgets/field.d.ts +6 -1
  345. package/dist/widgets/field.d.ts.map +1 -1
  346. package/dist/widgets/field.js +8 -2
  347. package/dist/widgets/field.js.map +1 -1
  348. package/dist/widgets/filePicker.d.ts +5 -0
  349. package/dist/widgets/filePicker.d.ts.map +1 -0
  350. package/dist/widgets/filePicker.js +136 -0
  351. package/dist/widgets/filePicker.js.map +1 -0
  352. package/dist/widgets/protocol.d.ts +0 -6
  353. package/dist/widgets/protocol.d.ts.map +1 -1
  354. package/dist/widgets/protocol.js +0 -6
  355. package/dist/widgets/protocol.js.map +1 -1
  356. package/dist/widgets/select.js +1 -1
  357. package/dist/widgets/select.js.map +1 -1
  358. package/dist/widgets/splitPane.d.ts.map +1 -1
  359. package/dist/widgets/splitPane.js.map +1 -1
  360. package/dist/widgets/table.d.ts.map +1 -1
  361. package/dist/widgets/table.js +43 -1
  362. package/dist/widgets/table.js.map +1 -1
  363. package/dist/widgets/tree.d.ts.map +1 -1
  364. package/dist/widgets/types/advanced.d.ts +611 -0
  365. package/dist/widgets/types/advanced.d.ts.map +1 -0
  366. package/dist/widgets/types/advanced.js +2 -0
  367. package/dist/widgets/types/advanced.js.map +1 -0
  368. package/dist/widgets/types/base.d.ts +931 -0
  369. package/dist/widgets/types/base.d.ts.map +1 -0
  370. package/dist/widgets/types/base.js +2 -0
  371. package/dist/widgets/types/base.js.map +1 -0
  372. package/dist/widgets/types/forms.d.ts +136 -0
  373. package/dist/widgets/types/forms.d.ts.map +1 -0
  374. package/dist/widgets/types/forms.js +2 -0
  375. package/dist/widgets/types/forms.js.map +1 -0
  376. package/dist/widgets/types/navigation.d.ts +83 -0
  377. package/dist/widgets/types/navigation.d.ts.map +1 -0
  378. package/dist/widgets/types/navigation.js +2 -0
  379. package/dist/widgets/types/navigation.js.map +1 -0
  380. package/dist/widgets/types/overlaysShell.d.ts +223 -0
  381. package/dist/widgets/types/overlaysShell.d.ts.map +1 -0
  382. package/dist/widgets/types/overlaysShell.js +2 -0
  383. package/dist/widgets/types/overlaysShell.js.map +1 -0
  384. package/dist/widgets/types/table.d.ts +104 -0
  385. package/dist/widgets/types/table.d.ts.map +1 -0
  386. package/dist/widgets/types/table.js +2 -0
  387. package/dist/widgets/types/table.js.map +1 -0
  388. package/dist/widgets/types/tree.d.ts +64 -0
  389. package/dist/widgets/types/tree.d.ts.map +1 -0
  390. package/dist/widgets/types/tree.js +2 -0
  391. package/dist/widgets/types/tree.js.map +1 -0
  392. package/dist/widgets/types.d.ts +14 -2123
  393. package/dist/widgets/types.d.ts.map +1 -1
  394. package/dist/widgets/ui.d.ts +37 -843
  395. package/dist/widgets/ui.d.ts.map +1 -1
  396. package/dist/widgets/ui.js +37 -1262
  397. package/dist/widgets/ui.js.map +1 -1
  398. package/package.json +2 -2
  399. package/dist/constraints/aggregation.d.ts +0 -17
  400. package/dist/constraints/aggregation.d.ts.map +0 -1
  401. package/dist/constraints/aggregation.js +0 -59
  402. package/dist/constraints/aggregation.js.map +0 -1
  403. package/dist/renderer/renderToDrawlist/overflowCulling.d.ts +0 -3
  404. package/dist/renderer/renderToDrawlist/overflowCulling.d.ts.map +0 -1
  405. package/dist/renderer/renderToDrawlist/overflowCulling.js +0 -81
  406. package/dist/renderer/renderToDrawlist/overflowCulling.js.map +0 -1
  407. package/dist/widgets/tests/protocol.test.d.ts +0 -2
  408. package/dist/widgets/tests/protocol.test.d.ts.map +0 -1
  409. package/dist/widgets/tests/protocol.test.js +0 -120
  410. package/dist/widgets/tests/protocol.test.js.map +0 -1
@@ -1,386 +1,13 @@
1
1
  /**
2
- * packages/core/src/widgets/ui.ts — Widget factory functions.
3
- *
4
- * Why: Provides a convenient API for building VNode trees without manually
5
- * constructing discriminated union objects. Each function returns a properly
6
- * typed VNode for the corresponding widget.
7
- *
8
- * @see docs/widgets/index.md
9
- */
10
- import type { RegisteredBinding } from "../keybindings/index.js";
11
- import { type RouterBreadcrumbProps, type RouterTabsProps } from "../router/helpers.js";
12
- import type { RouteDefinition, RouterApi } from "../router/types.js";
13
- import type { TextStyle } from "./style.js";
14
- import type { AccordionProps, AppShellOptions, BadgeProps, BarChartItem, BarChartProps, BoxProps, BreadcrumbProps, ButtonProps, CalloutProps, CanvasProps, CardOptions, CheckboxProps, CodeEditorProps, ColumnProps, CommandPaletteProps, DialogProps, DiffViewerProps, DividerProps, DropdownProps, EmptyProps, ErrorBoundaryProps, ErrorDisplayProps, FieldProps, FilePickerProps, FileTreeExplorerProps, FocusAnnouncerProps, FocusTrapProps, FocusZoneProps, GaugeProps, GridProps, HeaderOptions, HeatmapProps, IconProps, ImageProps, InputProps, KbdProps, LayerProps, LayersProps, LineChartProps, LinkProps, LogsConsoleProps, MasterDetailOptions, MiniChartProps, ModalProps, PageOptions, PaginationProps, PanelGroupProps, ProgressProps, RadioGroupProps, ResizablePanelProps, RichTextProps, RichTextSpan, RowProps, ScatterProps, ScopedThemeOverride, SelectProps, SidebarOptions, SkeletonProps, SliderProps, SpacerProps, SparklineProps, SpinnerProps, SplitPaneProps, StatusBarOptions, StatusProps, TableProps, TabsProps, TagProps, TextProps, TextareaProps, ToastContainerProps, ToolApprovalDialogProps, ToolbarOptions, TreeProps, VNode, VirtualListProps } from "./types.js";
15
- type UiChild = VNode | false | null | undefined | readonly UiChild[];
16
- type PanelOptions = Readonly<{
17
- id?: string;
18
- key?: string;
19
- title?: string;
20
- variant?: BoxProps["border"];
21
- p?: BoxProps["p"];
22
- gap?: ColumnProps["gap"];
23
- style?: BoxProps["style"];
24
- }>;
25
- type FormOptions = Readonly<{
26
- id?: string;
27
- key?: string;
28
- gap?: ColumnProps["gap"];
29
- }>;
30
- type ActionsOptions = Readonly<{
31
- id?: string;
32
- key?: string;
33
- gap?: RowProps["gap"];
34
- }>;
35
- type CenterOptions = Readonly<{
36
- id?: string;
37
- key?: string;
38
- p?: ColumnProps["p"];
39
- }>;
40
- type KeybindingHelpOptions = Readonly<{
41
- key?: string;
42
- title?: string;
43
- emptyText?: string;
44
- showMode?: boolean;
45
- sort?: boolean;
46
- }>;
47
- declare function text(content: string): VNode;
48
- declare function text(content: string, style: TextStyle): VNode;
49
- declare function text(content: string, props: TextProps): VNode;
50
- declare function box(props?: BoxProps, children?: readonly UiChild[]): VNode;
51
- declare function row(props?: RowProps, children?: readonly UiChild[]): VNode;
52
- declare function column(props?: ColumnProps, children?: readonly UiChild[]): VNode;
53
- declare function themed(themeOverride: ScopedThemeOverride, children?: readonly UiChild[]): VNode;
54
- declare function grid(props: GridProps, ...children: UiChild[]): VNode;
55
- declare function spacer(props?: SpacerProps): VNode;
56
- declare function divider(props?: DividerProps): VNode;
57
- /**
58
- * Create an icon widget.
59
- *
60
- * @param iconPath - Icon path (e.g., "status.check", "arrow.right")
61
- * @param props - Optional icon props
62
- *
63
- * @example
64
- * ```ts
65
- * ui.icon("status.check")
66
- * ui.icon("arrow.right", { style: { fg: rgb(0, 255, 0) } })
67
- * ui.icon("ui.search", { fallback: true })
68
- * ```
69
- */
70
- declare function icon(iconPath: string, props?: Omit<IconProps, "icon">): VNode;
71
- /**
72
- * Create a spinner widget (animated loading indicator).
73
- *
74
- * @param props - Spinner props
75
- *
76
- * @example
77
- * ```ts
78
- * ui.spinner()
79
- * ui.spinner({ variant: "dots", label: "Loading..." })
80
- * ```
81
- */
82
- declare function spinner(props?: SpinnerProps): VNode;
83
- /**
84
- * Create a progress bar widget.
85
- *
86
- * @param value - Progress value from 0 to 1
87
- * @param props - Optional progress bar props
88
- *
89
- * @example
90
- * ```ts
91
- * ui.progress(0.75)
92
- * ui.progress(0.5, { variant: "blocks", showPercent: true })
93
- * ui.progress(0.3, { label: "Downloading:", width: 20 })
94
- * ```
95
- */
96
- declare function progress(value: number, props?: Omit<ProgressProps, "value">): VNode;
97
- /**
98
- * Create a skeleton loading placeholder.
99
- *
100
- * @param width - Width in cells
101
- * @param props - Optional skeleton props
102
- *
103
- * @example
104
- * ```ts
105
- * ui.skeleton(20)
106
- * ui.skeleton(10, { height: 3, variant: "rect" })
107
- * ```
108
- */
109
- declare function skeleton(width: number, props?: Omit<SkeletonProps, "width">): VNode;
110
- /**
111
- * Create a rich text widget with multiple styled spans.
112
- *
113
- * @param spans - Array of text spans with optional styles
114
- *
115
- * @example
116
- * ```ts
117
- * ui.richText([
118
- * { text: "Error: ", style: { fg: rgb(255, 0, 0), bold: true } },
119
- * { text: "File not found" },
120
- * ])
121
- * ```
122
- */
123
- declare function richText(spans: readonly RichTextSpan[], props?: Omit<RichTextProps, "spans">): VNode;
124
- /**
125
- * Create a keyboard shortcut display widget.
126
- *
127
- * @param keys - Key or keys to display
128
- * @param props - Optional kbd props
129
- *
130
- * @example
131
- * ```ts
132
- * ui.kbd("Ctrl+S")
133
- * ui.kbd(["Ctrl", "Shift", "P"])
134
- * ui.kbd("Cmd+K", { separator: " " })
135
- * ```
136
- */
137
- declare function kbd(keys: string | readonly string[], props?: Omit<KbdProps, "keys">): VNode;
138
- /**
139
- * Render keybindings as a formatted help table.
140
- *
141
- * Accepts output from `app.getBindings()` directly.
142
- */
143
- declare function keybindingHelp(bindings: readonly RegisteredBinding[], options?: KeybindingHelpOptions): VNode;
144
- /**
145
- * Create a badge widget.
146
- *
147
- * @param text - Badge text
148
- * @param props - Optional badge props
149
- *
150
- * @example
151
- * ```ts
152
- * ui.badge("New")
153
- * ui.badge("Error", { variant: "error" })
154
- * ui.badge("3", { variant: "info" })
155
- * ```
156
- */
157
- declare function badge(text: string, props?: Omit<BadgeProps, "text">): VNode;
158
- /**
159
- * Create a status indicator widget.
160
- *
161
- * @param status - Status type (online, offline, away, busy, unknown)
162
- * @param props - Optional status props
163
- *
164
- * @example
165
- * ```ts
166
- * ui.status("online")
167
- * ui.status("busy", { label: "In a meeting" })
168
- * ui.status("away", { showLabel: true })
169
- * ```
170
- */
171
- declare function status(status: StatusProps["status"], props?: Omit<StatusProps, "status">): VNode;
172
- /**
173
- * Create a tag widget.
174
- *
175
- * @param text - Tag text
176
- * @param props - Optional tag props
177
- *
178
- * @example
179
- * ```ts
180
- * ui.tag("TypeScript")
181
- * ui.tag("Bug", { variant: "error" })
182
- * ui.tag("Feature", { variant: "info", removable: true })
183
- * ```
184
- */
185
- declare function tag(text: string, props?: Omit<TagProps, "text">): VNode;
186
- /**
187
- * Create a gauge widget.
188
- *
189
- * @param value - Value from 0 to 1
190
- * @param props - Optional gauge props
191
- *
192
- * @example
193
- * ```ts
194
- * ui.gauge(0.75)
195
- * ui.gauge(0.42, { label: "CPU" })
196
- * ui.gauge(0.9, {
197
- * label: "Memory",
198
- * thresholds: [
199
- * { value: 0.8, variant: "warning" },
200
- * { value: 0.95, variant: "error" }
201
- * ]
202
- * })
203
- * ```
204
- */
205
- declare function gauge(value: number, props?: Omit<GaugeProps, "value">): VNode;
206
- /**
207
- * Create an empty state widget.
208
- *
209
- * @param title - Main title text
210
- * @param props - Optional empty state props
211
- *
212
- * @example
213
- * ```ts
214
- * ui.empty("No results")
215
- * ui.empty("No messages", {
216
- * icon: "ui.mail",
217
- * description: "Messages will appear here",
218
- * action: ui.button({ id: "compose", label: "Compose" })
219
- * })
220
- * ```
221
- */
222
- declare function empty(title: string, props?: Omit<EmptyProps, "title">): VNode;
223
- /**
224
- * Create an error display widget.
225
- *
226
- * @param message - Error message
227
- * @param props - Optional error display props
228
- *
229
- * @example
230
- * ```ts
231
- * ui.errorDisplay("Failed to load data")
232
- * ui.errorDisplay("Connection failed", {
233
- * title: "Network Error",
234
- * onRetry: () => refetch()
235
- * })
236
- * ui.errorDisplay("Unexpected error", {
237
- * stack: error.stack,
238
- * showStack: true
239
- * })
240
- * ```
241
- */
242
- declare function errorDisplay(message: string, props?: Omit<ErrorDisplayProps, "message">): VNode;
243
- /**
244
- * Create an error boundary widget.
245
- *
246
- * @param props - Boundary config with protected children and fallback renderer
247
- *
248
- * @example
249
- * ```ts
250
- * ui.errorBoundary({
251
- * children: RiskyWidget(),
252
- * fallback: (error) =>
253
- * ui.column({}, [
254
- * ui.errorDisplay(error.message, { title: error.code }),
255
- * ui.button({ id: "retry", label: "Retry", onPress: error.retry }),
256
- * ]),
257
- * })
258
- * ```
259
- */
260
- declare function errorBoundary(props: ErrorBoundaryProps): VNode;
261
- /**
262
- * Create a callout/alert widget.
263
- *
264
- * @param message - Callout message
265
- * @param props - Optional callout props
266
- *
267
- * @example
268
- * ```ts
269
- * ui.callout("This action cannot be undone", { variant: "warning" })
270
- * ui.callout("Changes saved successfully", { variant: "success" })
271
- * ui.callout("New feature available", {
272
- * variant: "info",
273
- * title: "What's New"
274
- * })
275
- * ```
276
- */
277
- declare function callout(message: string, props?: Omit<CalloutProps, "message">): VNode;
278
- declare function link(props: LinkProps): VNode;
279
- declare function canvas(props: CanvasProps): VNode;
280
- declare function image(props: ImageProps): VNode;
281
- declare function lineChart(props: LineChartProps): VNode;
282
- declare function scatter(props: ScatterProps): VNode;
283
- declare function heatmap(props: HeatmapProps): VNode;
284
- /**
285
- * Create a sparkline widget (mini inline chart using block characters).
286
- *
287
- * @param data - Array of numeric data points
288
- * @param props - Optional sparkline props
289
- *
290
- * @example
291
- * ```ts
292
- * ui.sparkline([10, 20, 15, 30, 25])
293
- * ui.sparkline(cpuHistory, { width: 10 })
294
- * ui.sparkline(prices, { min: 0, max: 100 })
295
- * ```
296
- */
297
- declare function sparkline(data: readonly number[], props?: Omit<SparklineProps, "data">): VNode;
298
- /**
299
- * Create a bar chart widget.
300
- *
301
- * @param data - Array of bar chart items
302
- * @param props - Optional bar chart props
303
- *
304
- * @example
305
- * ```ts
306
- * ui.barChart([
307
- * { label: "TypeScript", value: 60 },
308
- * { label: "JavaScript", value: 30 },
309
- * { label: "Python", value: 10 },
310
- * ])
311
- * ui.barChart(stats, { orientation: "vertical", showValues: true })
312
- * ```
313
- */
314
- declare function barChart(data: readonly BarChartItem[], props?: Omit<BarChartProps, "data">): VNode;
315
- /**
316
- * Create a mini chart widget for compact multi-value display.
317
- *
318
- * @param values - Array of labeled values
319
- * @param props - Optional mini chart props
320
- *
321
- * @example
322
- * ```ts
323
- * ui.miniChart([
324
- * { label: "CPU", value: 42, max: 100 },
325
- * { label: "MEM", value: 78, max: 100 },
326
- * ])
327
- * ui.miniChart(metrics, { variant: "pills" })
328
- * ```
329
- */
330
- declare function miniChart(values: readonly {
331
- label: string;
332
- value: number;
333
- max?: number;
334
- }[], props?: Omit<MiniChartProps, "values">): VNode;
335
- declare function button(props: ButtonProps): VNode;
336
- declare function input(props: InputProps): VNode;
337
- declare function textarea(props: TextareaProps): VNode;
338
- declare function focusAnnouncer(props?: FocusAnnouncerProps): VNode;
339
- declare function focusZone(props: FocusZoneProps, children?: readonly UiChild[]): VNode;
340
- declare function focusTrap(props: FocusTrapProps, children?: readonly UiChild[]): VNode;
341
- declare function virtualList<T>(props: VirtualListProps<T>): VNode;
342
- /**
343
- * Create a layers container for stacking overlays.
344
- * Later children render on top (higher z-order).
345
- *
346
- * @example
347
- * ```ts
348
- * ui.layers([
349
- * MainContent(),
350
- * state.showModal && ui.modal({ ... }),
351
- * ])
352
- * ```
353
- */
354
- declare function layers(children: readonly UiChild[]): VNode;
355
- declare function layers(props: LayersProps, children?: readonly UiChild[]): VNode;
356
- declare function panel(title: string, children: readonly UiChild[]): VNode;
357
- declare function panel(options: PanelOptions, children: readonly UiChild[]): VNode;
358
- declare function form(children: readonly UiChild[]): VNode;
359
- declare function form(options: FormOptions, children: readonly UiChild[]): VNode;
360
- declare function actions(children: readonly UiChild[]): VNode;
361
- declare function actions(options: ActionsOptions, children: readonly UiChild[]): VNode;
362
- declare function center(child: VNode, options?: CenterOptions): VNode;
363
- declare function page(options: PageOptions): VNode;
364
- declare function appShell(options: AppShellOptions): VNode;
365
- declare function card(options: CardOptions, children: readonly UiChild[]): VNode;
366
- declare function card(title: string, children: readonly UiChild[]): VNode;
367
- declare function toolbar(children: readonly UiChild[]): VNode;
368
- declare function toolbar(options: ToolbarOptions, children: readonly UiChild[]): VNode;
369
- declare function statusBar(options: StatusBarOptions): VNode;
370
- declare function header(options: HeaderOptions): VNode;
371
- declare function sidebar(options: SidebarOptions): VNode;
372
- declare function masterDetail(options: MasterDetailOptions): VNode;
373
- /**
374
- * Widget factory functions for building VNode trees.
375
- *
376
- * @example
377
- * ```ts
378
- * ui.column({ p: 1 }, [
379
- * ui.text("Hello"),
380
- * ui.button({ id: "ok", label: "OK" }),
381
- * ])
382
- * ```
383
- */
2
+ * packages/core/src/widgets/ui.ts — Widget factory public facade.
3
+ */
4
+ import { codeEditor, commandPalette, dialog, diffViewer, dropdown, filePicker, fileTreeExplorer, layer, logsConsole, modal, panelGroup, resizablePanel, splitPane, table, toastContainer, toolApprovalDialog, tree } from "./factories/advanced.js";
5
+ import { box, column, divider, grid, row, spacer, text, themed } from "./factories/basic.js";
6
+ import { badge, callout, empty, errorBoundary, errorDisplay, gauge, icon, kbd, keybindingHelp, link, progress, richText, skeleton, spinner, status, tag } from "./factories/feedback.js";
7
+ import { button, checkbox, field, focusAnnouncer, focusTrap, focusZone, input, radioGroup, select, slider, textarea, virtualList } from "./factories/interactive.js";
8
+ import { actions, appShell, card, center, form, header, layers, masterDetail, page, panel, sidebar, statusBar, toolbar } from "./factories/layoutShell.js";
9
+ import { barChart, canvas, heatmap, image, lineChart, miniChart, scatter, sparkline } from "./factories/media.js";
10
+ import { accordion, breadcrumb, pagination, routerBreadcrumb, routerTabs, tabs } from "./factories/navigation.js";
384
11
  export declare const ui: {
385
12
  readonly text: typeof text;
386
13
  readonly box: typeof box;
@@ -434,466 +61,33 @@ export declare const ui: {
434
61
  readonly header: typeof header;
435
62
  readonly sidebar: typeof sidebar;
436
63
  readonly masterDetail: typeof masterDetail;
437
- /**
438
- * Create a declarative dialog with arbitrary actions.
439
- * Sugar over `ui.modal(...)` for common confirmation/message flows.
440
- *
441
- * @example
442
- * ```ts
443
- * ui.dialog({
444
- * id: "save",
445
- * title: "Unsaved Changes",
446
- * message: "Save before closing?",
447
- * actions: [
448
- * { label: "Save", intent: "primary", onPress: save },
449
- * { label: "Don't Save", intent: "danger", onPress: discard },
450
- * { label: "Cancel", onPress: cancel },
451
- * ],
452
- * })
453
- * ```
454
- */
455
- readonly dialog: (props: DialogProps) => VNode;
456
- /**
457
- * Create a modal overlay.
458
- * Renders centered with optional backdrop and focus trap.
459
- *
460
- * @example
461
- * ```ts
462
- * ui.modal({
463
- * id: "confirm",
464
- * title: "Confirm Action",
465
- * content: ui.text("Are you sure?"),
466
- * actions: [
467
- * ui.button({ id: "yes", label: "Yes" }),
468
- * ui.button({ id: "no", label: "No" }),
469
- * ],
470
- * onClose: () => app.update({ showModal: false }),
471
- * })
472
- * ```
473
- */
474
- readonly modal: (props: ModalProps) => VNode;
475
- /**
476
- * Create a dropdown menu positioned relative to an anchor.
477
- * Automatically flips when near screen edge.
478
- *
479
- * @example
480
- * ```ts
481
- * ui.dropdown({
482
- * id: "file-menu",
483
- * anchorId: "file-button",
484
- * position: "below-start",
485
- * items: [
486
- * { id: "new", label: "New", shortcut: "Ctrl+N" },
487
- * { id: "open", label: "Open", shortcut: "Ctrl+O" },
488
- * { id: "divider", label: "", divider: true },
489
- * { id: "exit", label: "Exit" },
490
- * ],
491
- * onSelect: (item) => handleAction(item.id),
492
- * onClose: () => app.update({ menuOpen: false }),
493
- * })
494
- * ```
495
- */
496
- readonly dropdown: (props: DropdownProps) => VNode;
497
- /**
498
- * Create a generic layer in the layer stack.
499
- * Use for custom overlays that need z-order control.
500
- *
501
- * @example
502
- * ```ts
503
- * ui.layer({
504
- * id: "tooltip",
505
- * content: ui.text("Tooltip text"),
506
- * zIndex: 100,
507
- * })
508
- * ```
509
- */
510
- readonly layer: (props: LayerProps) => VNode;
511
- /**
512
- * Create a table widget for displaying tabular data.
513
- * Supports sorting, selection, and virtualization for large datasets.
514
- *
515
- * @example
516
- * ```ts
517
- * ui.table({
518
- * id: "files",
519
- * columns: [
520
- * { key: "name", header: "Name", flex: 1, sortable: true, overflow: "middle" },
521
- * { key: "size", header: "Size", width: 10, align: "right", overflow: "clip" },
522
- * { key: "actions", header: "", width: 8, render: (_, row) =>
523
- * ui.button({ id: `del-${row.id}`, label: "Del" }) },
524
- * ],
525
- * data: files,
526
- * getRowKey: (f) => f.id,
527
- * selection: state.selected,
528
- * selectionMode: "multi",
529
- * onSelectionChange: (keys) => app.update({ selected: keys }),
530
- * sortColumn: state.sortCol,
531
- * sortDirection: state.sortDir,
532
- * onSort: (col, dir) => app.update({ sortCol: col, sortDir: dir }),
533
- * stripeStyle: { odd: rgb(30, 33, 41) },
534
- * borderStyle: { variant: "double", color: rgb(130, 140, 150) },
535
- * })
536
- * ```
537
- */
538
- readonly table: <T>(props: TableProps<T>) => VNode;
539
- /**
540
- * Create a tree widget for displaying hierarchical data.
541
- * Supports expand/collapse, selection, and lazy loading.
542
- *
543
- * @example
544
- * ```ts
545
- * ui.tree<FileNode>({
546
- * id: "file-tree",
547
- * data: fileSystem,
548
- * getKey: (n) => n.path,
549
- * getChildren: (n) => n.children,
550
- * hasChildren: (n) => n.type === "directory",
551
- * expanded: state.expandedPaths,
552
- * selected: state.selectedPath,
553
- * onChange: (node, exp) => app.update(s => ({
554
- * expandedPaths: exp
555
- * ? [...s.expandedPaths, node.path]
556
- * : s.expandedPaths.filter(p => p !== node.path)
557
- * })),
558
- * onSelect: (n) => app.update({ selectedPath: n.path }),
559
- * onPress: (n) => n.type === "file" && openFile(n.path),
560
- * renderNode: (node, depth, state) => ui.row({ gap: 1 }, [
561
- * ui.text(state.expanded ? "▼" : state.hasChildren ? "▶" : " "),
562
- * ui.text(node.type === "directory" ? "📁" : "📄"),
563
- * ui.text(node.name),
564
- * ]),
565
- * showLines: true,
566
- * })
567
- * ```
568
- */
569
- readonly tree: <T>(props: TreeProps<T>) => VNode;
570
- /**
571
- * Create a field wrapper for form inputs.
572
- * Displays label, error message, and optional hint.
573
- *
574
- * @example
575
- * ```ts
576
- * ui.field({
577
- * label: "Username",
578
- * required: true,
579
- * error: form.touched.username && form.errors.username,
580
- * hint: "Enter your email address",
581
- * children: ui.input(form.bind("username")),
582
- * })
583
- * ```
584
- */
585
- readonly field: (props: FieldProps) => VNode;
586
- /**
587
- * Create a select dropdown widget.
588
- * Supports keyboard navigation with ArrowUp/Down and Enter.
589
- *
590
- * @example
591
- * ```ts
592
- * ui.select({
593
- * id: "country",
594
- * value: form.values.country,
595
- * options: [
596
- * { value: "us", label: "United States" },
597
- * { value: "uk", label: "United Kingdom" },
598
- * { value: "ca", label: "Canada" },
599
- * ],
600
- * onChange: form.handleChange("country"),
601
- * placeholder: "Select a country...",
602
- * })
603
- * ```
604
- */
605
- readonly select: (props: SelectProps) => VNode;
606
- /**
607
- * Create a slider widget.
608
- * Supports keyboard adjustment with Left/Right (or Up/Down), Home/End, and PageUp/PageDown.
609
- *
610
- * @example
611
- * ```ts
612
- * ui.slider({
613
- * id: "volume",
614
- * value: state.volume,
615
- * min: 0,
616
- * max: 100,
617
- * step: 5,
618
- * onChange: (value) => app.update({ volume: value }),
619
- * })
620
- * ```
621
- */
622
- readonly slider: (props: SliderProps) => VNode;
623
- /**
624
- * Create a checkbox widget.
625
- * Toggles with Space key.
626
- *
627
- * @example
628
- * ```ts
629
- * ui.checkbox({
630
- * id: "remember",
631
- * checked: form.values.remember,
632
- * label: "Remember me",
633
- * onChange: (c) => form.setFieldValue("remember", c),
634
- * })
635
- * ```
636
- */
637
- readonly checkbox: (props: CheckboxProps) => VNode;
638
- /**
639
- * Create a radio group widget.
640
- * Supports keyboard navigation with ArrowUp/Down for selection.
641
- *
642
- * @example
643
- * ```ts
644
- * ui.radioGroup({
645
- * id: "plan",
646
- * value: form.values.plan,
647
- * options: [
648
- * { value: "free", label: "Free" },
649
- * { value: "pro", label: "Pro" },
650
- * { value: "enterprise", label: "Enterprise" },
651
- * ],
652
- * onChange: form.handleChange("plan"),
653
- * direction: "vertical",
654
- * })
655
- * ```
656
- */
657
- readonly radioGroup: (props: RadioGroupProps) => VNode;
658
- /**
659
- * Create a tabs widget.
660
- * Supports Left/Right tab switching and scoped content focus.
661
- */
662
- readonly tabs: (props: TabsProps) => VNode;
663
- /**
664
- * Create breadcrumbs from current router history.
665
- */
666
- readonly routerBreadcrumb: <S>(router: RouterApi, routes: readonly RouteDefinition<S>[], props?: RouterBreadcrumbProps) => VNode;
667
- /**
668
- * Create tabs from registered routes with current route selection.
669
- */
670
- readonly routerTabs: <S>(router: RouterApi, routes: readonly RouteDefinition<S>[], props?: RouterTabsProps) => VNode;
671
- /**
672
- * Create an accordion widget.
673
- * Supports Up/Down header navigation and Enter/Space toggles.
674
- */
675
- readonly accordion: (props: AccordionProps) => VNode;
676
- /**
677
- * Create a breadcrumb widget.
678
- * The last item is rendered as the current page (non-clickable).
679
- */
680
- readonly breadcrumb: (props: BreadcrumbProps) => VNode;
681
- /**
682
- * Create a pagination widget.
683
- * Supports Left/Right navigation and optional Home/End first/last jumps.
684
- */
685
- readonly pagination: (props: PaginationProps) => VNode;
686
- /**
687
- * Create a command palette widget for quick-access command execution.
688
- * Supports search, keyboard navigation, and multiple command sources.
689
- *
690
- * @example
691
- * ```ts
692
- * ui.commandPalette({
693
- * id: "cmd-palette",
694
- * open: state.paletteOpen,
695
- * query: state.query,
696
- * sources: [
697
- * { id: "cmds", name: "Commands", prefix: ">", getItems: getCommands },
698
- * { id: "files", name: "Files", getItems: searchFiles },
699
- * ],
700
- * selectedIndex: state.selectedIndex,
701
- * onChange: (q) => app.update({ query: q }),
702
- * onSelect: (item) => executeCommand(item),
703
- * onClose: () => app.update({ paletteOpen: false }),
704
- * })
705
- * ```
706
- */
707
- readonly commandPalette: (props: CommandPaletteProps) => VNode;
708
- /**
709
- * Create a file picker widget for browsing workspace files.
710
- * Supports expand/collapse, multi-select, and git status indicators.
711
- *
712
- * @example
713
- * ```ts
714
- * ui.filePicker({
715
- * id: "file-picker",
716
- * rootPath: "/workspace",
717
- * data: fileTree,
718
- * selectedPath: state.selectedFile,
719
- * expandedPaths: state.expanded,
720
- * modifiedPaths: state.gitModified,
721
- * onSelect: (path) => app.update({ selectedFile: path }),
722
- * onChange: (path, exp) => toggleExpanded(path, exp),
723
- * onPress: (path) => openFile(path),
724
- * })
725
- * ```
726
- */
727
- readonly filePicker: (props: FilePickerProps) => VNode;
728
- /**
729
- * Create a file tree explorer widget.
730
- * Provides tree view with expand/collapse and custom node rendering.
731
- *
732
- * @example
733
- * ```ts
734
- * ui.fileTreeExplorer({
735
- * id: "explorer",
736
- * data: fileTree,
737
- * expanded: state.expanded,
738
- * selected: state.selected,
739
- * showIcons: true,
740
- * showStatus: true,
741
- * onChange: (node, exp) => toggleNode(node, exp),
742
- * onSelect: (node) => selectNode(node),
743
- * onPress: (node) => openNode(node),
744
- * })
745
- * ```
746
- */
747
- readonly fileTreeExplorer: (props: FileTreeExplorerProps) => VNode;
748
- /**
749
- * Create a split pane widget with draggable dividers.
750
- * Supports horizontal/vertical splits with resize constraints.
751
- *
752
- * @example
753
- * ```ts
754
- * ui.splitPane({
755
- * id: "main-split",
756
- * direction: "horizontal",
757
- * sizes: [25, 50, 25],
758
- * minSizes: [20, 30, 20],
759
- * onChange: (sizes) => app.update({ panelSizes: sizes }),
760
- * }, [
761
- * FileExplorer(),
762
- * Editor(),
763
- * LogsPanel(),
764
- * ])
765
- * ```
766
- */
767
- readonly splitPane: (props: SplitPaneProps, children?: readonly VNode[]) => VNode;
768
- /**
769
- * Create a panel group container for resizable panels.
770
- * Manages layout and resize state for child panels.
771
- *
772
- * @example
773
- * ```ts
774
- * ui.panelGroup({
775
- * id: "panel-group",
776
- * direction: "horizontal",
777
- * }, [
778
- * ui.resizablePanel({ defaultSize: 25 }, [Sidebar()]),
779
- * ui.resizablePanel({ defaultSize: 75, minSize: 50 }, [Content()]),
780
- * ])
781
- * ```
782
- */
783
- readonly panelGroup: (props: PanelGroupProps, children?: readonly VNode[]) => VNode;
784
- /**
785
- * Create a resizable panel within a panel group.
786
- * Specifies size constraints for the panel.
787
- *
788
- * @example
789
- * ```ts
790
- * ui.resizablePanel({
791
- * defaultSize: 30,
792
- * minSize: 20,
793
- * maxSize: 50,
794
- * collapsible: true,
795
- * }, [PanelContent()])
796
- * ```
797
- */
798
- readonly resizablePanel: (props?: ResizablePanelProps, children?: readonly VNode[]) => VNode;
799
- /**
800
- * Create a code editor widget for multiline text editing.
801
- * Supports selections, keyboard navigation, and undo/redo.
802
- *
803
- * @example
804
- * ```ts
805
- * ui.codeEditor({
806
- * id: "editor",
807
- * lines: state.lines,
808
- * cursor: state.cursor,
809
- * selection: state.selection,
810
- * scrollTop: state.scrollTop,
811
- * scrollLeft: state.scrollLeft,
812
- * syntaxLanguage: "typescript",
813
- * lineNumbers: true,
814
- * tabSize: 2,
815
- * onChange: (lines, cursor) => app.update({ lines, cursor }),
816
- * onSelectionChange: (sel) => app.update({ selection: sel }),
817
- * onScroll: (top, left) => app.update({ scrollTop: top, scrollLeft: left }),
818
- * })
819
- * ```
820
- */
821
- readonly codeEditor: (props: CodeEditorProps) => VNode;
822
- /**
823
- * Create a diff viewer widget for displaying file changes.
824
- * Supports unified and side-by-side modes with hunk staging.
825
- *
826
- * @example
827
- * ```ts
828
- * ui.diffViewer({
829
- * id: "diff",
830
- * diff: fileDiff,
831
- * mode: "unified",
832
- * scrollTop: state.scrollTop,
833
- * lineNumbers: true,
834
- * contextLines: 3,
835
- * onScroll: (top) => app.update({ scrollTop: top }),
836
- * onStageHunk: (i) => stageHunk(i),
837
- * onRevertHunk: (i) => revertHunk(i),
838
- * })
839
- * ```
840
- */
841
- readonly diffViewer: (props: DiffViewerProps) => VNode;
842
- /**
843
- * Create a tool approval dialog for reviewing tool execution.
844
- * Shows tool details, risk level, and approval actions.
845
- *
846
- * @example
847
- * ```ts
848
- * ui.toolApprovalDialog({
849
- * id: "approval",
850
- * open: state.pendingApproval !== null,
851
- * request: state.pendingApproval,
852
- * onPress: (action) => action === "allow"
853
- * ? executeTool(state.pendingApproval)
854
- * : app.update({ pendingApproval: null }),
855
- * onAllowForSession: () => allowForSession(state.pendingApproval),
856
- * onClose: () => app.update({ pendingApproval: null }),
857
- * })
858
- * ```
859
- */
860
- readonly toolApprovalDialog: (props: ToolApprovalDialogProps) => VNode;
861
- /**
862
- * Create a logs console widget for streaming output.
863
- * Supports filtering, auto-scroll, and expandable entries.
864
- *
865
- * @example
866
- * ```ts
867
- * ui.logsConsole({
868
- * id: "logs",
869
- * entries: state.logs,
870
- * autoScroll: true,
871
- * levelFilter: ["info", "warn", "error"],
872
- * scrollTop: state.logsScrollTop,
873
- * showTimestamps: true,
874
- * onScroll: (top) => app.update({ logsScrollTop: top }),
875
- * onPress: () => app.update({ logs: [] }),
876
- * })
877
- * ```
878
- */
879
- readonly logsConsole: (props: LogsConsoleProps) => VNode;
880
- /**
881
- * Create a toast container for non-blocking notifications.
882
- * Manages toast stack and auto-dismiss.
883
- *
884
- * @example
885
- * ```ts
886
- * ui.toastContainer({
887
- * toasts: state.toasts,
888
- * position: "bottom-right",
889
- * maxVisible: 5,
890
- * onClose: (id) => app.update(s => ({
891
- * toasts: s.toasts.filter(t => t.id !== id)
892
- * })),
893
- * })
894
- * ```
895
- */
896
- readonly toastContainer: (props: ToastContainerProps) => VNode;
64
+ readonly dialog: typeof dialog;
65
+ readonly modal: typeof modal;
66
+ readonly dropdown: typeof dropdown;
67
+ readonly layer: typeof layer;
68
+ readonly table: typeof table;
69
+ readonly tree: typeof tree;
70
+ readonly field: typeof field;
71
+ readonly select: typeof select;
72
+ readonly slider: typeof slider;
73
+ readonly checkbox: typeof checkbox;
74
+ readonly radioGroup: typeof radioGroup;
75
+ readonly tabs: typeof tabs;
76
+ readonly routerBreadcrumb: typeof routerBreadcrumb;
77
+ readonly routerTabs: typeof routerTabs;
78
+ readonly accordion: typeof accordion;
79
+ readonly breadcrumb: typeof breadcrumb;
80
+ readonly pagination: typeof pagination;
81
+ readonly commandPalette: typeof commandPalette;
82
+ readonly filePicker: typeof filePicker;
83
+ readonly fileTreeExplorer: typeof fileTreeExplorer;
84
+ readonly splitPane: typeof splitPane;
85
+ readonly panelGroup: typeof panelGroup;
86
+ readonly resizablePanel: typeof resizablePanel;
87
+ readonly codeEditor: typeof codeEditor;
88
+ readonly diffViewer: typeof diffViewer;
89
+ readonly toolApprovalDialog: typeof toolApprovalDialog;
90
+ readonly logsConsole: typeof logsConsole;
91
+ readonly toastContainer: typeof toastContainer;
897
92
  };
898
- export {};
899
93
  //# sourceMappingURL=ui.d.ts.map