@flyingrobots/bijou-tui 7.1.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. package/README.md +27 -4
  2. package/dist/accordion.d.ts +3 -108
  3. package/dist/accordion.d.ts.map +1 -1
  4. package/dist/accordion.js +2 -161
  5. package/dist/accordion.js.map +1 -1
  6. package/dist/accordion.part01.d.ts +25 -0
  7. package/dist/accordion.part01.d.ts.map +1 -0
  8. package/dist/accordion.part01.js +61 -0
  9. package/dist/accordion.part01.js.map +1 -0
  10. package/dist/accordion.part02.d.ts +8 -0
  11. package/dist/accordion.part02.d.ts.map +1 -0
  12. package/dist/accordion.part02.js +15 -0
  13. package/dist/accordion.part02.js.map +1 -0
  14. package/dist/animate.d.ts.map +1 -1
  15. package/dist/animate.js +5 -6
  16. package/dist/animate.js.map +1 -1
  17. package/dist/app-frame-actions.d.ts +1 -18
  18. package/dist/app-frame-actions.d.ts.map +1 -1
  19. package/dist/app-frame-actions.js +44 -42
  20. package/dist/app-frame-actions.js.map +1 -1
  21. package/dist/app-frame-i18n.d.ts.map +1 -1
  22. package/dist/app-frame-i18n.js +19 -2
  23. package/dist/app-frame-i18n.js.map +1 -1
  24. package/dist/app-frame-overlays.d.ts +1 -8
  25. package/dist/app-frame-overlays.d.ts.map +1 -1
  26. package/dist/app-frame-overlays.js +54 -24
  27. package/dist/app-frame-overlays.js.map +1 -1
  28. package/dist/app-frame-palette.d.ts +1 -11
  29. package/dist/app-frame-palette.d.ts.map +1 -1
  30. package/dist/app-frame-palette.js +19 -18
  31. package/dist/app-frame-palette.js.map +1 -1
  32. package/dist/app-frame-render.d.ts +0 -7
  33. package/dist/app-frame-render.d.ts.map +1 -1
  34. package/dist/app-frame-render.js +17 -26
  35. package/dist/app-frame-render.js.map +1 -1
  36. package/dist/app-frame-types.d.ts +8 -4
  37. package/dist/app-frame-types.d.ts.map +1 -1
  38. package/dist/app-frame-types.js +5 -5
  39. package/dist/app-frame-types.js.map +1 -1
  40. package/dist/app-frame-utils.d.ts +2 -1
  41. package/dist/app-frame-utils.d.ts.map +1 -1
  42. package/dist/app-frame-utils.js +8 -1
  43. package/dist/app-frame-utils.js.map +1 -1
  44. package/dist/app-frame.d.ts +14 -3
  45. package/dist/app-frame.d.ts.map +1 -1
  46. package/dist/app-frame.js +295 -231
  47. package/dist/app-frame.js.map +1 -1
  48. package/dist/app-frame.test-support.part01.d.ts +149 -0
  49. package/dist/app-frame.test-support.part01.d.ts.map +1 -0
  50. package/dist/app-frame.test-support.part01.js +106 -0
  51. package/dist/app-frame.test-support.part01.js.map +1 -0
  52. package/dist/app-frame.test-support.part02.d.ts +15 -0
  53. package/dist/app-frame.test-support.part02.d.ts.map +1 -0
  54. package/dist/app-frame.test-support.part02.js +89 -0
  55. package/dist/app-frame.test-support.part02.js.map +1 -0
  56. package/dist/browsable-list.d.ts +5 -5
  57. package/dist/browsable-list.d.ts.map +1 -1
  58. package/dist/browsable-list.js.map +1 -1
  59. package/dist/canvas.d.ts +2 -34
  60. package/dist/canvas.d.ts.map +1 -1
  61. package/dist/canvas.js +43 -47
  62. package/dist/canvas.js.map +1 -1
  63. package/dist/cell-glyph-fit.js +1 -1
  64. package/dist/cell-glyph-fit.js.map +1 -1
  65. package/dist/collection-surface-types.d.ts +12 -0
  66. package/dist/collection-surface-types.d.ts.map +1 -0
  67. package/dist/collection-surface-types.js +2 -0
  68. package/dist/collection-surface-types.js.map +1 -0
  69. package/dist/collection-surface.d.ts +2 -7
  70. package/dist/collection-surface.d.ts.map +1 -1
  71. package/dist/collection-surface.js +8 -18
  72. package/dist/collection-surface.js.map +1 -1
  73. package/dist/command-palette.d.ts.map +1 -1
  74. package/dist/command-palette.js +2 -1
  75. package/dist/command-palette.js.map +1 -1
  76. package/dist/commands.d.ts.map +1 -1
  77. package/dist/commands.js +1 -1
  78. package/dist/commands.js.map +1 -1
  79. package/dist/css/install.js.map +1 -1
  80. package/dist/css/parser.js +9 -3
  81. package/dist/css/parser.js.map +1 -1
  82. package/dist/css/resolver-types.d.ts +13 -0
  83. package/dist/css/resolver-types.d.ts.map +1 -0
  84. package/dist/css/resolver-types.js +2 -0
  85. package/dist/css/resolver-types.js.map +1 -0
  86. package/dist/css/resolver.d.ts +2 -12
  87. package/dist/css/resolver.d.ts.map +1 -1
  88. package/dist/css/resolver.js +13 -20
  89. package/dist/css/resolver.js.map +1 -1
  90. package/dist/css/text-style.d.ts +4 -8
  91. package/dist/css/text-style.d.ts.map +1 -1
  92. package/dist/css/text-style.js +13 -18
  93. package/dist/css/text-style.js.map +1 -1
  94. package/dist/dag-pane.d.ts +4 -224
  95. package/dist/dag-pane.d.ts.map +1 -1
  96. package/dist/dag-pane.js +3 -516
  97. package/dist/dag-pane.js.map +1 -1
  98. package/dist/dag-pane.part01.d.ts +58 -0
  99. package/dist/dag-pane.part01.d.ts.map +1 -0
  100. package/dist/dag-pane.part01.js +2 -0
  101. package/dist/dag-pane.part01.js.map +1 -0
  102. package/dist/dag-pane.part02.d.ts +4 -0
  103. package/dist/dag-pane.part02.d.ts.map +1 -0
  104. package/dist/dag-pane.part02.js +56 -0
  105. package/dist/dag-pane.part02.js.map +1 -0
  106. package/dist/dag-pane.part03.d.ts +6 -0
  107. package/dist/dag-pane.part03.d.ts.map +1 -0
  108. package/dist/dag-pane.part03.js +76 -0
  109. package/dist/dag-pane.part03.js.map +1 -0
  110. package/dist/dag-pane.part04.d.ts +7 -0
  111. package/dist/dag-pane.part04.d.ts.map +1 -0
  112. package/dist/dag-pane.part04.js +66 -0
  113. package/dist/dag-pane.part04.js.map +1 -0
  114. package/dist/dag-pane.part05.d.ts +7 -0
  115. package/dist/dag-pane.part05.d.ts.map +1 -0
  116. package/dist/dag-pane.part05.js +78 -0
  117. package/dist/dag-pane.part05.js.map +1 -0
  118. package/dist/dag-pane.part06.d.ts +14 -0
  119. package/dist/dag-pane.part06.d.ts.map +1 -0
  120. package/dist/dag-pane.part06.js +65 -0
  121. package/dist/dag-pane.part06.js.map +1 -0
  122. package/dist/dag-pane.part07.d.ts +18 -0
  123. package/dist/dag-pane.part07.d.ts.map +1 -0
  124. package/dist/dag-pane.part07.js +22 -0
  125. package/dist/dag-pane.part07.js.map +1 -0
  126. package/dist/driver.d.ts +35 -21
  127. package/dist/driver.d.ts.map +1 -1
  128. package/dist/driver.js +69 -39
  129. package/dist/driver.js.map +1 -1
  130. package/dist/eventbus.d.ts.map +1 -1
  131. package/dist/eventbus.js +13 -23
  132. package/dist/eventbus.js.map +1 -1
  133. package/dist/file-picker.d.ts +4 -164
  134. package/dist/file-picker.d.ts.map +1 -1
  135. package/dist/file-picker.js +3 -292
  136. package/dist/file-picker.js.map +1 -1
  137. package/dist/file-picker.part01.d.ts +54 -0
  138. package/dist/file-picker.part01.d.ts.map +1 -0
  139. package/dist/file-picker.part01.js +47 -0
  140. package/dist/file-picker.part01.js.map +1 -0
  141. package/dist/file-picker.part02.d.ts +9 -0
  142. package/dist/file-picker.part02.d.ts.map +1 -0
  143. package/dist/file-picker.part02.js +77 -0
  144. package/dist/file-picker.part02.js.map +1 -0
  145. package/dist/file-picker.part03.d.ts +12 -0
  146. package/dist/file-picker.part03.d.ts.map +1 -0
  147. package/dist/file-picker.part03.js +35 -0
  148. package/dist/file-picker.part03.js.map +1 -0
  149. package/dist/flex.d.ts +0 -61
  150. package/dist/flex.d.ts.map +1 -1
  151. package/dist/flex.js +11 -161
  152. package/dist/flex.js.map +1 -1
  153. package/dist/focus-area.d.ts +6 -210
  154. package/dist/focus-area.d.ts.map +1 -1
  155. package/dist/focus-area.js +5 -425
  156. package/dist/focus-area.js.map +1 -1
  157. package/dist/focus-area.part01.d.ts +57 -0
  158. package/dist/focus-area.part01.d.ts.map +1 -0
  159. package/dist/focus-area.part01.js +23 -0
  160. package/dist/focus-area.part01.js.map +1 -0
  161. package/dist/focus-area.part02.d.ts +13 -0
  162. package/dist/focus-area.part02.d.ts.map +1 -0
  163. package/dist/focus-area.part02.js +65 -0
  164. package/dist/focus-area.part02.js.map +1 -0
  165. package/dist/focus-area.part03.d.ts +5 -0
  166. package/dist/focus-area.part03.d.ts.map +1 -0
  167. package/dist/focus-area.part03.js +42 -0
  168. package/dist/focus-area.part03.js.map +1 -0
  169. package/dist/focus-area.part04.d.ts +5 -0
  170. package/dist/focus-area.part04.d.ts.map +1 -0
  171. package/dist/focus-area.part04.js +49 -0
  172. package/dist/focus-area.part04.js.map +1 -0
  173. package/dist/focus-area.part05.d.ts +10 -0
  174. package/dist/focus-area.part05.d.ts.map +1 -0
  175. package/dist/focus-area.part05.js +66 -0
  176. package/dist/focus-area.part05.js.map +1 -0
  177. package/dist/focus-area.part06.d.ts +17 -0
  178. package/dist/focus-area.part06.d.ts.map +1 -0
  179. package/dist/focus-area.part06.js +48 -0
  180. package/dist/focus-area.part06.js.map +1 -0
  181. package/dist/focus-map.d.ts.map +1 -1
  182. package/dist/focus-map.js +8 -10
  183. package/dist/focus-map.js.map +1 -1
  184. package/dist/index.d.ts +8 -80
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +8 -107
  187. package/dist/index.js.map +1 -1
  188. package/dist/index.part01.d.ts +15 -0
  189. package/dist/index.part01.d.ts.map +1 -0
  190. package/dist/index.part01.js +11 -0
  191. package/dist/index.part01.js.map +1 -0
  192. package/dist/index.part02.d.ts +26 -0
  193. package/dist/index.part02.d.ts.map +1 -0
  194. package/dist/index.part02.js +24 -0
  195. package/dist/index.part02.js.map +1 -0
  196. package/dist/index.part03.d.ts +17 -0
  197. package/dist/index.part03.d.ts.map +1 -0
  198. package/dist/index.part03.js +11 -0
  199. package/dist/index.part03.js.map +1 -0
  200. package/dist/index.part04.d.ts +6 -0
  201. package/dist/index.part04.d.ts.map +1 -0
  202. package/dist/index.part04.js +11 -0
  203. package/dist/index.part04.js.map +1 -0
  204. package/dist/index.part05.d.ts +10 -0
  205. package/dist/index.part05.d.ts.map +1 -0
  206. package/dist/index.part05.js +26 -0
  207. package/dist/index.part05.js.map +1 -0
  208. package/dist/index.part06.d.ts +9 -0
  209. package/dist/index.part06.d.ts.map +1 -0
  210. package/dist/index.part06.js +16 -0
  211. package/dist/index.part06.js.map +1 -0
  212. package/dist/index.part07.d.ts +8 -0
  213. package/dist/index.part07.d.ts.map +1 -0
  214. package/dist/index.part07.js +15 -0
  215. package/dist/index.part07.js.map +1 -0
  216. package/dist/index.part08.d.ts +5 -0
  217. package/dist/index.part08.d.ts.map +1 -0
  218. package/dist/index.part08.js +9 -0
  219. package/dist/index.part08.js.map +1 -0
  220. package/dist/input-map.d.ts.map +1 -1
  221. package/dist/input-map.js +1 -2
  222. package/dist/input-map.js.map +1 -1
  223. package/dist/input-parser.d.ts +3 -0
  224. package/dist/input-parser.d.ts.map +1 -0
  225. package/dist/input-parser.js +95 -0
  226. package/dist/input-parser.js.map +1 -0
  227. package/dist/input-routing-inspector.js +3 -3
  228. package/dist/input-routing-inspector.js.map +1 -1
  229. package/dist/inputstack.d.ts.map +1 -1
  230. package/dist/inputstack.js +2 -0
  231. package/dist/inputstack.js.map +1 -1
  232. package/dist/keybindings.d.ts.map +1 -1
  233. package/dist/keybindings.js +5 -2
  234. package/dist/keybindings.js.map +1 -1
  235. package/dist/keys.d.ts +0 -36
  236. package/dist/keys.d.ts.map +1 -1
  237. package/dist/keys.js +11 -66
  238. package/dist/keys.js.map +1 -1
  239. package/dist/layout-inspector.d.ts +2 -30
  240. package/dist/layout-inspector.d.ts.map +1 -1
  241. package/dist/layout-inspector.js +1 -132
  242. package/dist/layout-inspector.js.map +1 -1
  243. package/dist/layout-inspector.part01.d.ts +52 -0
  244. package/dist/layout-inspector.part01.d.ts.map +1 -0
  245. package/dist/layout-inspector.part01.js +48 -0
  246. package/dist/layout-inspector.part01.js.map +1 -0
  247. package/dist/layout-inspector.part02.d.ts +11 -0
  248. package/dist/layout-inspector.part02.d.ts.map +1 -0
  249. package/dist/layout-inspector.part02.js +80 -0
  250. package/dist/layout-inspector.part02.js.map +1 -0
  251. package/dist/layout-inspector.part03.d.ts +5 -0
  252. package/dist/layout-inspector.part03.d.ts.map +1 -0
  253. package/dist/layout-inspector.part03.js +11 -0
  254. package/dist/layout-inspector.part03.js.map +1 -0
  255. package/dist/layout-preset.js +4 -4
  256. package/dist/layout-preset.js.map +1 -1
  257. package/dist/layout.d.ts.map +1 -1
  258. package/dist/layout.js +5 -3
  259. package/dist/layout.js.map +1 -1
  260. package/dist/motion/motion.js +8 -4
  261. package/dist/motion/motion.js.map +1 -1
  262. package/dist/motion/reconciler.d.ts.map +1 -1
  263. package/dist/motion/reconciler.js +9 -7
  264. package/dist/motion/reconciler.js.map +1 -1
  265. package/dist/mouse-mode.d.ts +5 -0
  266. package/dist/mouse-mode.d.ts.map +1 -0
  267. package/dist/mouse-mode.js +17 -0
  268. package/dist/mouse-mode.js.map +1 -0
  269. package/dist/navigable-table.d.ts +3 -136
  270. package/dist/navigable-table.d.ts.map +1 -1
  271. package/dist/navigable-table.js +2 -234
  272. package/dist/navigable-table.js.map +1 -1
  273. package/dist/navigable-table.part01.d.ts +42 -0
  274. package/dist/navigable-table.part01.d.ts.map +1 -0
  275. package/dist/navigable-table.part01.js +42 -0
  276. package/dist/navigable-table.part01.js.map +1 -0
  277. package/dist/navigable-table.part02.d.ts +16 -0
  278. package/dist/navigable-table.part02.d.ts.map +1 -0
  279. package/dist/navigable-table.part02.js +83 -0
  280. package/dist/navigable-table.part02.js.map +1 -0
  281. package/dist/notification-card.d.ts +11 -0
  282. package/dist/notification-card.d.ts.map +1 -0
  283. package/dist/notification-card.js +157 -0
  284. package/dist/notification-card.js.map +1 -0
  285. package/dist/notification-stack.d.ts +6 -0
  286. package/dist/notification-stack.d.ts.map +1 -0
  287. package/dist/notification-stack.js +257 -0
  288. package/dist/notification-stack.js.map +1 -0
  289. package/dist/notification.d.ts +14 -112
  290. package/dist/notification.d.ts.map +1 -1
  291. package/dist/notification.js +12 -1087
  292. package/dist/notification.js.map +1 -1
  293. package/dist/notification.part01.d.ts +77 -0
  294. package/dist/notification.part01.d.ts.map +1 -0
  295. package/dist/notification.part01.js +19 -0
  296. package/dist/notification.part01.js.map +1 -0
  297. package/dist/notification.part02.d.ts +42 -0
  298. package/dist/notification.part02.d.ts.map +1 -0
  299. package/dist/notification.part02.js +44 -0
  300. package/dist/notification.part02.js.map +1 -0
  301. package/dist/notification.part03.d.ts +6 -0
  302. package/dist/notification.part03.d.ts.map +1 -0
  303. package/dist/notification.part03.js +81 -0
  304. package/dist/notification.part03.js.map +1 -0
  305. package/dist/notification.part04.d.ts +4 -0
  306. package/dist/notification.part04.d.ts.map +1 -0
  307. package/dist/notification.part04.js +32 -0
  308. package/dist/notification.part04.js.map +1 -0
  309. package/dist/notification.part05.d.ts +6 -0
  310. package/dist/notification.part05.d.ts.map +1 -0
  311. package/dist/notification.part05.js +95 -0
  312. package/dist/notification.part05.js.map +1 -0
  313. package/dist/notification.part06.d.ts +9 -0
  314. package/dist/notification.part06.d.ts.map +1 -0
  315. package/dist/notification.part06.js +65 -0
  316. package/dist/notification.part06.js.map +1 -0
  317. package/dist/notification.part07.d.ts +10 -0
  318. package/dist/notification.part07.d.ts.map +1 -0
  319. package/dist/notification.part07.js +70 -0
  320. package/dist/notification.part07.js.map +1 -0
  321. package/dist/notification.part08.d.ts +5 -0
  322. package/dist/notification.part08.d.ts.map +1 -0
  323. package/dist/notification.part08.js +79 -0
  324. package/dist/notification.part08.js.map +1 -0
  325. package/dist/notification.part09.d.ts +14 -0
  326. package/dist/notification.part09.d.ts.map +1 -0
  327. package/dist/notification.part09.js +96 -0
  328. package/dist/notification.part09.js.map +1 -0
  329. package/dist/notification.part10.d.ts +13 -0
  330. package/dist/notification.part10.d.ts.map +1 -0
  331. package/dist/notification.part10.js +94 -0
  332. package/dist/notification.part10.js.map +1 -0
  333. package/dist/notification.part11.d.ts +6 -0
  334. package/dist/notification.part11.d.ts.map +1 -0
  335. package/dist/notification.part11.js +42 -0
  336. package/dist/notification.part11.js.map +1 -0
  337. package/dist/overlay.d.ts +8 -232
  338. package/dist/overlay.d.ts.map +1 -1
  339. package/dist/overlay.js +5 -629
  340. package/dist/overlay.js.map +1 -1
  341. package/dist/overlay.part01.d.ts +71 -0
  342. package/dist/overlay.part01.d.ts.map +1 -0
  343. package/dist/overlay.part01.js +34 -0
  344. package/dist/overlay.part01.js.map +1 -0
  345. package/dist/overlay.part02.d.ts +8 -0
  346. package/dist/overlay.part02.d.ts.map +1 -0
  347. package/dist/overlay.part02.js +81 -0
  348. package/dist/overlay.part02.js.map +1 -0
  349. package/dist/overlay.part03.d.ts +27 -0
  350. package/dist/overlay.part03.d.ts.map +1 -0
  351. package/dist/overlay.part03.js +83 -0
  352. package/dist/overlay.part03.js.map +1 -0
  353. package/dist/overlay.part04.d.ts +8 -0
  354. package/dist/overlay.part04.d.ts.map +1 -0
  355. package/dist/overlay.part04.js +103 -0
  356. package/dist/overlay.part04.js.map +1 -0
  357. package/dist/overlay.part05.d.ts +8 -0
  358. package/dist/overlay.part05.d.ts.map +1 -0
  359. package/dist/overlay.part05.js +66 -0
  360. package/dist/overlay.part05.js.map +1 -0
  361. package/dist/overlay.part06.d.ts +46 -0
  362. package/dist/overlay.part06.d.ts.map +1 -0
  363. package/dist/overlay.part06.js +35 -0
  364. package/dist/overlay.part06.js.map +1 -0
  365. package/dist/overlay.part07.d.ts +4 -0
  366. package/dist/overlay.part07.d.ts.map +1 -0
  367. package/dist/overlay.part07.js +64 -0
  368. package/dist/overlay.part07.js.map +1 -0
  369. package/dist/overlay.part08.d.ts +34 -0
  370. package/dist/overlay.part08.d.ts.map +1 -0
  371. package/dist/overlay.part08.js +54 -0
  372. package/dist/overlay.part08.js.map +1 -0
  373. package/dist/overlay.part09.d.ts +6 -0
  374. package/dist/overlay.part09.d.ts.map +1 -0
  375. package/dist/overlay.part09.js +42 -0
  376. package/dist/overlay.part09.js.map +1 -0
  377. package/dist/pager.d.ts.map +1 -1
  378. package/dist/pager.js +2 -4
  379. package/dist/pager.js.map +1 -1
  380. package/dist/panel-dock.d.ts.map +1 -1
  381. package/dist/panel-dock.js +9 -11
  382. package/dist/panel-dock.js.map +1 -1
  383. package/dist/panels.d.ts.map +1 -1
  384. package/dist/panels.js +2 -0
  385. package/dist/panels.js.map +1 -1
  386. package/dist/pipeline/middleware/css.d.ts +3 -5
  387. package/dist/pipeline/middleware/css.d.ts.map +1 -1
  388. package/dist/pipeline/middleware/css.js +12 -6
  389. package/dist/pipeline/middleware/css.js.map +1 -1
  390. package/dist/pipeline/middleware/grayscale.js +15 -10
  391. package/dist/pipeline/middleware/grayscale.js.map +1 -1
  392. package/dist/pipeline/middleware/motion.js +9 -1
  393. package/dist/pipeline/middleware/motion.js.map +1 -1
  394. package/dist/pipeline/middleware/paint.js +9 -1
  395. package/dist/pipeline/middleware/paint.js.map +1 -1
  396. package/dist/pipeline/middleware/surface-shaders.js +13 -11
  397. package/dist/pipeline/middleware/surface-shaders.js.map +1 -1
  398. package/dist/pipeline/pipeline.d.ts +7 -52
  399. package/dist/pipeline/pipeline.d.ts.map +1 -1
  400. package/dist/pipeline/pipeline.js +37 -27
  401. package/dist/pipeline/pipeline.js.map +1 -1
  402. package/dist/raster-glyph.d.ts +2 -44
  403. package/dist/raster-glyph.d.ts.map +1 -1
  404. package/dist/raster-glyph.js +1 -404
  405. package/dist/raster-glyph.js.map +1 -1
  406. package/dist/raster-glyph.part01.d.ts +75 -0
  407. package/dist/raster-glyph.part01.d.ts.map +1 -0
  408. package/dist/raster-glyph.part01.js +25 -0
  409. package/dist/raster-glyph.part01.js.map +1 -0
  410. package/dist/raster-glyph.part02.d.ts +12 -0
  411. package/dist/raster-glyph.part02.d.ts.map +1 -0
  412. package/dist/raster-glyph.part02.js +81 -0
  413. package/dist/raster-glyph.part02.js.map +1 -0
  414. package/dist/raster-glyph.part03.d.ts +6 -0
  415. package/dist/raster-glyph.part03.d.ts.map +1 -0
  416. package/dist/raster-glyph.part03.js +60 -0
  417. package/dist/raster-glyph.part03.js.map +1 -0
  418. package/dist/raster-glyph.part04.d.ts +7 -0
  419. package/dist/raster-glyph.part04.d.ts.map +1 -0
  420. package/dist/raster-glyph.part04.js +59 -0
  421. package/dist/raster-glyph.part04.js.map +1 -0
  422. package/dist/raster-glyph.part05.d.ts +6 -0
  423. package/dist/raster-glyph.part05.d.ts.map +1 -0
  424. package/dist/raster-glyph.part05.js +71 -0
  425. package/dist/raster-glyph.part05.js.map +1 -0
  426. package/dist/raster-glyph.part06.d.ts +18 -0
  427. package/dist/raster-glyph.part06.d.ts.map +1 -0
  428. package/dist/raster-glyph.part06.js +78 -0
  429. package/dist/raster-glyph.part06.js.map +1 -0
  430. package/dist/raster-glyph.part07.d.ts +11 -0
  431. package/dist/raster-glyph.part07.d.ts.map +1 -0
  432. package/dist/raster-glyph.part07.js +55 -0
  433. package/dist/raster-glyph.part07.js.map +1 -0
  434. package/dist/raytrace.d.ts +3 -58
  435. package/dist/raytrace.d.ts.map +1 -1
  436. package/dist/raytrace.js +2 -120
  437. package/dist/raytrace.js.map +1 -1
  438. package/dist/raytrace.part01.d.ts +47 -0
  439. package/dist/raytrace.part01.d.ts.map +1 -0
  440. package/dist/raytrace.part01.js +45 -0
  441. package/dist/raytrace.part01.js.map +1 -0
  442. package/dist/raytrace.part02.d.ts +12 -0
  443. package/dist/raytrace.part02.d.ts.map +1 -0
  444. package/dist/raytrace.part02.js +73 -0
  445. package/dist/raytrace.part02.js.map +1 -0
  446. package/dist/runtime-binding.d.ts +2 -3
  447. package/dist/runtime-binding.d.ts.map +1 -1
  448. package/dist/runtime-binding.js +49 -38
  449. package/dist/runtime-binding.js.map +1 -1
  450. package/dist/runtime-engine.d.ts +2 -2
  451. package/dist/runtime-engine.d.ts.map +1 -1
  452. package/dist/runtime-engine.js +15 -4
  453. package/dist/runtime-engine.js.map +1 -1
  454. package/dist/runtime.d.ts +2 -18
  455. package/dist/runtime.d.ts.map +1 -1
  456. package/dist/runtime.js +33 -59
  457. package/dist/runtime.js.map +1 -1
  458. package/dist/screen.js +1 -1
  459. package/dist/screen.js.map +1 -1
  460. package/dist/shell-quit.d.ts.map +1 -1
  461. package/dist/shell-quit.js +48 -5
  462. package/dist/shell-quit.js.map +1 -1
  463. package/dist/split-pane.d.ts +3 -104
  464. package/dist/split-pane.d.ts.map +1 -1
  465. package/dist/split-pane.js +2 -190
  466. package/dist/split-pane.js.map +1 -1
  467. package/dist/split-pane.part01.d.ts +60 -0
  468. package/dist/split-pane.part01.d.ts.map +1 -0
  469. package/dist/split-pane.part01.js +45 -0
  470. package/dist/split-pane.part01.js.map +1 -0
  471. package/dist/split-pane.part02.d.ts +8 -0
  472. package/dist/split-pane.part02.d.ts.map +1 -0
  473. package/dist/split-pane.part02.js +73 -0
  474. package/dist/split-pane.part02.js.map +1 -0
  475. package/dist/split-pane.part03.d.ts +4 -0
  476. package/dist/split-pane.part03.d.ts.map +1 -0
  477. package/dist/split-pane.part03.js +40 -0
  478. package/dist/split-pane.part03.js.map +1 -0
  479. package/dist/spring.d.ts +4 -187
  480. package/dist/spring.d.ts.map +1 -1
  481. package/dist/spring.js +2 -142
  482. package/dist/spring.js.map +1 -1
  483. package/dist/spring.part01.d.ts +90 -0
  484. package/dist/spring.part01.d.ts.map +1 -0
  485. package/dist/spring.part01.js +58 -0
  486. package/dist/spring.part01.js.map +1 -0
  487. package/dist/spring.part02.d.ts +25 -0
  488. package/dist/spring.part02.d.ts.map +1 -0
  489. package/dist/spring.part02.js +21 -0
  490. package/dist/spring.part02.js.map +1 -0
  491. package/dist/status-bar.js +1 -1
  492. package/dist/status-bar.js.map +1 -1
  493. package/dist/subapp/mount.d.ts +6 -6
  494. package/dist/subapp/mount.d.ts.map +1 -1
  495. package/dist/subapp/mount.js +19 -14
  496. package/dist/subapp/mount.js.map +1 -1
  497. package/dist/surface-budget-types.d.ts +26 -0
  498. package/dist/surface-budget-types.d.ts.map +1 -0
  499. package/dist/surface-budget-types.js +2 -0
  500. package/dist/surface-budget-types.js.map +1 -0
  501. package/dist/surface-budget.d.ts +2 -25
  502. package/dist/surface-budget.d.ts.map +1 -1
  503. package/dist/surface-budget.js.map +1 -1
  504. package/dist/surface-diff.js +26 -28
  505. package/dist/surface-diff.js.map +1 -1
  506. package/dist/surface-layout.d.ts.map +1 -1
  507. package/dist/surface-layout.js +1 -2
  508. package/dist/surface-layout.js.map +1 -1
  509. package/dist/timeline.d.ts +1 -1
  510. package/dist/timeline.d.ts.map +1 -1
  511. package/dist/timeline.js +17 -15
  512. package/dist/timeline.js.map +1 -1
  513. package/dist/transition-shaders.d.ts +5 -142
  514. package/dist/transition-shaders.d.ts.map +1 -1
  515. package/dist/transition-shaders.js +4 -391
  516. package/dist/transition-shaders.js.map +1 -1
  517. package/dist/transition-shaders.part01.d.ts +41 -0
  518. package/dist/transition-shaders.part01.d.ts.map +1 -0
  519. package/dist/transition-shaders.part01.js +38 -0
  520. package/dist/transition-shaders.part01.js.map +1 -0
  521. package/dist/transition-shaders.part02.d.ts +12 -0
  522. package/dist/transition-shaders.part02.d.ts.map +1 -0
  523. package/dist/transition-shaders.part02.js +88 -0
  524. package/dist/transition-shaders.part02.js.map +1 -0
  525. package/dist/transition-shaders.part03.d.ts +6 -0
  526. package/dist/transition-shaders.part03.d.ts.map +1 -0
  527. package/dist/transition-shaders.part03.js +82 -0
  528. package/dist/transition-shaders.part03.js.map +1 -0
  529. package/dist/transition-shaders.part04.d.ts +16 -0
  530. package/dist/transition-shaders.part04.d.ts.map +1 -0
  531. package/dist/transition-shaders.part04.js +98 -0
  532. package/dist/transition-shaders.part04.js.map +1 -0
  533. package/dist/types.d.ts +10 -42
  534. package/dist/types.d.ts.map +1 -1
  535. package/dist/types.js +9 -36
  536. package/dist/types.js.map +1 -1
  537. package/dist/view-output.d.ts +1 -1
  538. package/dist/view-output.d.ts.map +1 -1
  539. package/dist/view-output.js +3 -2
  540. package/dist/view-output.js.map +1 -1
  541. package/dist/viewport.d.ts +7 -213
  542. package/dist/viewport.d.ts.map +1 -1
  543. package/dist/viewport.js +6 -470
  544. package/dist/viewport.js.map +1 -1
  545. package/dist/viewport.part01.d.ts +51 -0
  546. package/dist/viewport.part01.d.ts.map +1 -0
  547. package/dist/viewport.part01.js +10 -0
  548. package/dist/viewport.part01.js.map +1 -0
  549. package/dist/viewport.part02.d.ts +2 -0
  550. package/dist/viewport.part02.d.ts.map +1 -0
  551. package/dist/viewport.part02.js +69 -0
  552. package/dist/viewport.part02.js.map +1 -0
  553. package/dist/viewport.part03.d.ts +10 -0
  554. package/dist/viewport.part03.d.ts.map +1 -0
  555. package/dist/viewport.part03.js +78 -0
  556. package/dist/viewport.part03.js.map +1 -0
  557. package/dist/viewport.part04.d.ts +4 -0
  558. package/dist/viewport.part04.d.ts.map +1 -0
  559. package/dist/viewport.part04.js +50 -0
  560. package/dist/viewport.part04.js.map +1 -0
  561. package/dist/viewport.part05.d.ts +5 -0
  562. package/dist/viewport.part05.d.ts.map +1 -0
  563. package/dist/viewport.part05.js +59 -0
  564. package/dist/viewport.part05.js.map +1 -0
  565. package/dist/viewport.part06.d.ts +14 -0
  566. package/dist/viewport.part06.d.ts.map +1 -0
  567. package/dist/viewport.part06.js +58 -0
  568. package/dist/viewport.part06.js.map +1 -0
  569. package/package.json +3 -3
@@ -1,137 +1,4 @@
1
- /**
2
- * Navigable table building block.
3
- *
4
- * Wraps the static `table()` from bijou core with focus management,
5
- * keyboard navigation, and vertical scrolling.
6
- *
7
- * ```ts
8
- * // In TEA init:
9
- * const tableState = createNavigableTableState({ columns, rows, height: 10 });
10
- *
11
- * // In TEA view:
12
- * const output = navigableTable(model.tableState, { ctx });
13
- *
14
- * // In TEA update:
15
- * case 'focus-next':
16
- * return [{ ...model, tableState: navTableFocusNext(model.tableState) }, []];
17
- * ```
18
- */
19
- import { type TableColumn, type BijouContext, type Surface } from '@flyingrobots/bijou';
20
- import { type KeyMap } from './keybindings.js';
21
- /** Immutable state for the navigable table widget. */
22
- export interface NavigableTableState {
23
- /** Column definitions (headers, widths, alignment). */
24
- readonly columns: TableColumn[];
25
- /** All data rows as arrays of cell strings. */
26
- readonly rows: readonly (readonly string[])[];
27
- /** Index of the currently focused row. */
28
- readonly focusRow: number;
29
- /** Vertical scroll offset (first visible row index). */
30
- readonly scrollY: number;
31
- /** Maximum number of visible data rows. */
32
- readonly height: number;
33
- }
34
- /** Options for creating a new navigable table state. */
35
- export interface NavigableTableOptions {
36
- /** Column definitions (headers, widths, alignment). */
37
- readonly columns: TableColumn[];
38
- /** Data rows as arrays of cell strings. */
39
- readonly rows: readonly (readonly string[])[];
40
- /** Maximum number of visible data rows (default: 10). */
41
- readonly height?: number;
42
- }
43
- export interface NavigableTableInput extends NavigableTableOptions {
44
- /** Optional focused row index for snapshot-style rendering. */
45
- readonly focusRow?: number;
46
- /** Optional scroll offset for snapshot-style rendering. */
47
- readonly scrollY?: number;
48
- }
49
- /** Options for rendering the navigable table view. */
50
- export interface NavTableRenderOptions {
51
- /** Character(s) prepended to the focused row's first cell (default: `"\u25b8"`). */
52
- readonly focusIndicator?: string;
53
- /** Bijou context for theming and styling. */
54
- readonly ctx?: BijouContext;
55
- }
56
- /** Options for rendering the navigable table into a `Surface`. */
57
- export type NavTableSurfaceOptions = NavTableRenderOptions;
58
- export declare function createNavigableTableState(options: NavigableTableOptions): NavigableTableState;
59
- export declare function createNavigableTableState(columns: readonly TableColumn[], rows: readonly (readonly string[])[], height?: number): NavigableTableState;
60
- /**
61
- * Move focus to the next row (wraps around).
62
- *
63
- * @param state - Current table state.
64
- * @returns Updated table state with focus on the next row.
65
- */
66
- export declare function navTableFocusNext(state: NavigableTableState): NavigableTableState;
67
- /**
68
- * Move focus to the previous row (wraps around).
69
- *
70
- * @param state - Current table state.
71
- * @returns Updated table state with focus on the previous row.
72
- */
73
- export declare function navTableFocusPrev(state: NavigableTableState): NavigableTableState;
74
- /**
75
- * Move focus down by one page (clamps to last row).
76
- *
77
- * @param state - Current table state.
78
- * @returns Updated table state with focus advanced by one page.
79
- */
80
- export declare function navTablePageDown(state: NavigableTableState): NavigableTableState;
81
- /**
82
- * Move focus up by one page (clamps to first row).
83
- *
84
- * @param state - Current table state.
85
- * @returns Updated table state with focus moved back by one page.
86
- */
87
- export declare function navTablePageUp(state: NavigableTableState): NavigableTableState;
88
- /**
89
- * Render the navigable table with a focus indicator on the focused row.
90
- *
91
- * Slices visible rows based on `scrollY` and `height`, prepends a focus
92
- * indicator to the first column, then delegates to core `table()`.
93
- *
94
- * @param state - Current table state.
95
- * @param options - Rendering options (focus indicator, context).
96
- * @returns Rendered table string with focus indicator on the active row.
97
- */
98
- export declare function navigableTable(input: NavigableTableInput, options?: NavTableRenderOptions): string;
99
- /**
100
- * Render the navigable table directly into a `Surface`.
101
- *
102
- * This keeps the table on the structured render path while preserving the
103
- * existing row-aware scroll model. Unlike generic `viewportSurface()` masking,
104
- * the scroll window is still defined in rows, not rendered lines, so wrapped
105
- * rows stay honest to the table-inspection job.
106
- *
107
- * @param state - Current table state.
108
- * @param options - Rendering options (focus indicator, context).
109
- * @returns Rendered table surface with focus indicator on the active row.
110
- */
111
- export declare function navigableTableSurface(state: NavigableTableInput, options?: NavTableSurfaceOptions): Surface;
112
- /**
113
- * Create a preconfigured KeyMap for navigable table navigation.
114
- *
115
- * The caller provides their own message types for each action:
116
- * ```ts
117
- * const keys = navTableKeyMap({
118
- * focusNext: { type: 'next-row' },
119
- * focusPrev: { type: 'prev-row' },
120
- * pageDown: { type: 'page-down' },
121
- * pageUp: { type: 'page-up' },
122
- * quit: { type: 'quit' },
123
- * });
124
- * ```
125
- *
126
- * @template Msg - Application message type dispatched by key bindings.
127
- * @param actions - Map of navigation actions to message values.
128
- * @returns Preconfigured key map with vim-style table row bindings.
129
- */
130
- export declare function navTableKeyMap<Msg>(actions: {
131
- focusNext: Msg;
132
- focusPrev: Msg;
133
- pageDown: Msg;
134
- pageUp: Msg;
135
- quit: Msg;
136
- }): KeyMap<Msg>;
1
+ export { createNavigableTableState, navTableFocusNext, navTableFocusPrev } from './navigable-table.part01.js';
2
+ export type { NavTableRenderOptions, NavTableSurfaceOptions, NavigableTableInput, NavigableTableOptions, NavigableTableState } from './navigable-table.part01.js';
3
+ export { navTableKeyMap, navTablePageDown, navTablePageUp, navigableTable, navigableTableSurface } from './navigable-table.part02.js';
137
4
  //# sourceMappingURL=navigable-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigable-table.d.ts","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM7D,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9C,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAChC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAQD,sDAAsD;AACtD,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,kEAAkE;AAClE,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AA8C3D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAAC;AAC/F,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACpC,MAAM,CAAC,EAAE,MAAM,GACd,mBAAmB,CAAC;AAavB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIjF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIjF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIhF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAI9E;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAyBlG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAsBT;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;IAC3C,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,MAAM,CAAC,GAAG,CAAC,CAcd"}
1
+ {"version":3,"file":"navigable-table.d.ts","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC9G,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClK,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,235 +1,3 @@
1
- /**
2
- * Navigable table building block.
3
- *
4
- * Wraps the static `table()` from bijou core with focus management,
5
- * keyboard navigation, and vertical scrolling.
6
- *
7
- * ```ts
8
- * // In TEA init:
9
- * const tableState = createNavigableTableState({ columns, rows, height: 10 });
10
- *
11
- * // In TEA view:
12
- * const output = navigableTable(model.tableState, { ctx });
13
- *
14
- * // In TEA update:
15
- * case 'focus-next':
16
- * return [{ ...model, tableState: navTableFocusNext(model.tableState) }, []];
17
- * ```
18
- */
19
- import { sanitizeNonNegativeInt, sanitizePositiveInt, table, tableSurface, } from '@flyingrobots/bijou';
20
- import { createKeyMap } from './keybindings.js';
21
- function isNavigableTableOptions(value) {
22
- return !Array.isArray(value);
23
- }
24
- // ---------------------------------------------------------------------------
25
- // State creation
26
- // ---------------------------------------------------------------------------
27
- /**
28
- * Create initial navigable table state.
29
- *
30
- * `height` defaults to 10 rows when not provided.
31
- *
32
- * @param options - Columns, rows, and optional viewport height.
33
- * @returns Fresh table state with focus on the first row.
34
- */
35
- function resolveNavigableTableOptions(optionsOrColumns, rows, height) {
36
- if (isNavigableTableOptions(optionsOrColumns)) {
37
- return optionsOrColumns;
38
- }
39
- return { columns: [...optionsOrColumns], rows: rows ?? [], height };
40
- }
41
- function resolveNavigableTableState(input) {
42
- const height = sanitizePositiveInt(input.height, 10);
43
- const rows = input.rows.map((row) => [...row]);
44
- const focusRow = rows.length === 0
45
- ? 0
46
- : Math.min(sanitizeNonNegativeInt(input.focusRow, 0), rows.length - 1);
47
- const scrollY = adjustScroll(focusRow, sanitizeNonNegativeInt(input.scrollY, 0), height, rows.length);
48
- return {
49
- columns: [...input.columns],
50
- rows,
51
- focusRow,
52
- scrollY,
53
- height,
54
- };
55
- }
56
- export function createNavigableTableState(optionsOrColumns, rows, height) {
57
- return resolveNavigableTableState(resolveNavigableTableOptions(optionsOrColumns, rows, height));
58
- }
59
- // ---------------------------------------------------------------------------
60
- // State transformers
61
- // ---------------------------------------------------------------------------
62
- /**
63
- * Move focus to the next row (wraps around).
64
- *
65
- * @param state - Current table state.
66
- * @returns Updated table state with focus on the next row.
67
- */
68
- export function navTableFocusNext(state) {
69
- if (state.rows.length === 0)
70
- return state;
71
- const focusRow = (state.focusRow + 1) % state.rows.length;
72
- return { ...state, focusRow, scrollY: adjustScroll(focusRow, state.scrollY, state.height, state.rows.length) };
73
- }
74
- /**
75
- * Move focus to the previous row (wraps around).
76
- *
77
- * @param state - Current table state.
78
- * @returns Updated table state with focus on the previous row.
79
- */
80
- export function navTableFocusPrev(state) {
81
- if (state.rows.length === 0)
82
- return state;
83
- const focusRow = (state.focusRow - 1 + state.rows.length) % state.rows.length;
84
- return { ...state, focusRow, scrollY: adjustScroll(focusRow, state.scrollY, state.height, state.rows.length) };
85
- }
86
- /**
87
- * Move focus down by one page (clamps to last row).
88
- *
89
- * @param state - Current table state.
90
- * @returns Updated table state with focus advanced by one page.
91
- */
92
- export function navTablePageDown(state) {
93
- if (state.rows.length === 0)
94
- return state;
95
- const focusRow = Math.min(state.focusRow + state.height, state.rows.length - 1);
96
- return { ...state, focusRow, scrollY: adjustScroll(focusRow, state.scrollY, state.height, state.rows.length) };
97
- }
98
- /**
99
- * Move focus up by one page (clamps to first row).
100
- *
101
- * @param state - Current table state.
102
- * @returns Updated table state with focus moved back by one page.
103
- */
104
- export function navTablePageUp(state) {
105
- if (state.rows.length === 0)
106
- return state;
107
- const focusRow = Math.max(state.focusRow - state.height, 0);
108
- return { ...state, focusRow, scrollY: adjustScroll(focusRow, state.scrollY, state.height, state.rows.length) };
109
- }
110
- // ---------------------------------------------------------------------------
111
- // Scroll helper
112
- // ---------------------------------------------------------------------------
113
- /**
114
- * Clamp scroll position so the focused row stays within the visible window.
115
- *
116
- * @param focusRow - Index of the focused row.
117
- * @param scrollY - Current scroll offset.
118
- * @param height - Viewport height in rows.
119
- * @param totalRows - Total number of data rows.
120
- * @returns Adjusted scroll offset.
121
- */
122
- function adjustScroll(focusRow, scrollY, height, totalRows) {
123
- let newScrollY = scrollY;
124
- if (focusRow < newScrollY) {
125
- newScrollY = focusRow;
126
- }
127
- else if (focusRow >= newScrollY + height) {
128
- newScrollY = focusRow - height + 1;
129
- }
130
- const maxScroll = Math.max(0, totalRows - height);
131
- return Math.min(newScrollY, maxScroll);
132
- }
133
- // ---------------------------------------------------------------------------
134
- // Render
135
- // ---------------------------------------------------------------------------
136
- /**
137
- * Render the navigable table with a focus indicator on the focused row.
138
- *
139
- * Slices visible rows based on `scrollY` and `height`, prepends a focus
140
- * indicator to the first column, then delegates to core `table()`.
141
- *
142
- * @param state - Current table state.
143
- * @param options - Rendering options (focus indicator, context).
144
- * @returns Rendered table string with focus indicator on the active row.
145
- */
146
- export function navigableTable(input, options) {
147
- const state = resolveNavigableTableState(input);
148
- if (state.rows.length === 0) {
149
- return table({ columns: state.columns, rows: [], ctx: options?.ctx });
150
- }
151
- const indicator = options?.focusIndicator ?? '\u25b8';
152
- const pad = ' '.repeat(indicator.length);
153
- // Slice visible window
154
- const visibleRows = state.rows.slice(state.scrollY, state.scrollY + state.height);
155
- // Prepend focus indicator to first column
156
- const decoratedRows = visibleRows.map((row, i) => {
157
- const globalIndex = state.scrollY + i;
158
- const prefix = globalIndex === state.focusRow ? indicator : pad;
159
- const firstCol = `${prefix} ${row[0] ?? ''}`;
160
- return [firstCol, ...row.slice(1)];
161
- });
162
- return table({
163
- columns: state.columns,
164
- rows: decoratedRows,
165
- ctx: options?.ctx,
166
- });
167
- }
168
- /**
169
- * Render the navigable table directly into a `Surface`.
170
- *
171
- * This keeps the table on the structured render path while preserving the
172
- * existing row-aware scroll model. Unlike generic `viewportSurface()` masking,
173
- * the scroll window is still defined in rows, not rendered lines, so wrapped
174
- * rows stay honest to the table-inspection job.
175
- *
176
- * @param state - Current table state.
177
- * @param options - Rendering options (focus indicator, context).
178
- * @returns Rendered table surface with focus indicator on the active row.
179
- */
180
- export function navigableTableSurface(state, options) {
181
- const resolvedState = resolveNavigableTableState(state);
182
- if (resolvedState.rows.length === 0) {
183
- return tableSurface({ columns: resolvedState.columns, rows: [], ctx: options?.ctx });
184
- }
185
- const indicator = options?.focusIndicator ?? '\u25b8';
186
- const pad = ' '.repeat(indicator.length);
187
- const visibleRows = resolvedState.rows.slice(resolvedState.scrollY, resolvedState.scrollY + resolvedState.height);
188
- const decoratedRows = visibleRows.map((row, i) => {
189
- const globalIndex = resolvedState.scrollY + i;
190
- const prefix = globalIndex === resolvedState.focusRow ? indicator : pad;
191
- const firstCol = `${prefix} ${row[0] ?? ''}`;
192
- return [firstCol, ...row.slice(1)];
193
- });
194
- return tableSurface({
195
- columns: resolvedState.columns,
196
- rows: decoratedRows,
197
- ctx: options?.ctx,
198
- });
199
- }
200
- // ---------------------------------------------------------------------------
201
- // Convenience keymap
202
- // ---------------------------------------------------------------------------
203
- /**
204
- * Create a preconfigured KeyMap for navigable table navigation.
205
- *
206
- * The caller provides their own message types for each action:
207
- * ```ts
208
- * const keys = navTableKeyMap({
209
- * focusNext: { type: 'next-row' },
210
- * focusPrev: { type: 'prev-row' },
211
- * pageDown: { type: 'page-down' },
212
- * pageUp: { type: 'page-up' },
213
- * quit: { type: 'quit' },
214
- * });
215
- * ```
216
- *
217
- * @template Msg - Application message type dispatched by key bindings.
218
- * @param actions - Map of navigation actions to message values.
219
- * @returns Preconfigured key map with vim-style table row bindings.
220
- */
221
- export function navTableKeyMap(actions) {
222
- return createKeyMap()
223
- .group('Navigation', (g) => g
224
- .bind('j', 'Next row', actions.focusNext)
225
- .bind('down', 'Next row', actions.focusNext)
226
- .bind('k', 'Previous row', actions.focusPrev)
227
- .bind('up', 'Previous row', actions.focusPrev)
228
- .bind('d', 'Page down', actions.pageDown)
229
- .bind('pagedown', 'Page down', actions.pageDown)
230
- .bind('u', 'Page up', actions.pageUp)
231
- .bind('pageup', 'Page up', actions.pageUp))
232
- .bind('q', 'Quit', actions.quit)
233
- .bind('ctrl+c', 'Quit', actions.quit);
234
- }
1
+ export { createNavigableTableState, navTableFocusNext, navTableFocusPrev } from './navigable-table.part01.js';
2
+ export { navTableKeyMap, navTablePageDown, navTablePageUp, navigableTable, navigableTableSurface } from './navigable-table.part02.js';
235
3
  //# sourceMappingURL=navigable-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigable-table.js","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigable-table.js","sourceRoot":"","sources":["../src/navigable-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE9G,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { BijouContext, TableColumn } from '@flyingrobots/bijou';
2
+ export interface NavigableTableState {
3
+ /** Column definitions (headers, widths, alignment). */
4
+ readonly columns: TableColumn[];
5
+ /** All data rows as arrays of cell strings. */
6
+ readonly rows: readonly (readonly string[])[];
7
+ /** Index of the currently focused row. */
8
+ readonly focusRow: number;
9
+ /** Vertical scroll offset (first visible row index). */
10
+ readonly scrollY: number;
11
+ /** Maximum number of visible data rows. */
12
+ readonly height: number;
13
+ }
14
+ export interface NavigableTableOptions {
15
+ /** Column definitions (headers, widths, alignment). */
16
+ readonly columns: TableColumn[];
17
+ /** Data rows as arrays of cell strings. */
18
+ readonly rows: readonly (readonly string[])[];
19
+ /** Maximum number of visible data rows (default: 10). */
20
+ readonly height?: number;
21
+ }
22
+ export interface NavigableTableInput extends NavigableTableOptions {
23
+ /** Optional focused row index for snapshot-style rendering. */
24
+ readonly focusRow?: number;
25
+ /** Optional scroll offset for snapshot-style rendering. */
26
+ readonly scrollY?: number;
27
+ }
28
+ export declare function isNavigableTableOptions(value: NavigableTableOptions | readonly TableColumn[]): value is NavigableTableOptions;
29
+ export interface NavTableRenderOptions {
30
+ /** Character(s) prepended to the focused row's first cell (default: `"\u25b8"`). */
31
+ readonly focusIndicator?: string;
32
+ /** Bijou context for theming and styling. */
33
+ readonly ctx?: BijouContext;
34
+ }
35
+ export type NavTableSurfaceOptions = NavTableRenderOptions;
36
+ export declare function resolveNavigableTableOptions(optionsOrColumns: NavigableTableOptions | readonly TableColumn[], rows?: readonly (readonly string[])[], height?: number): NavigableTableOptions;
37
+ export declare function resolveNavigableTableState(input: NavigableTableInput): NavigableTableState;
38
+ export declare function createNavigableTableState(options: NavigableTableOptions): NavigableTableState;
39
+ export declare function createNavigableTableState(columns: readonly TableColumn[], rows: readonly (readonly string[])[], height?: number): NavigableTableState;
40
+ export declare function navTableFocusNext(state: NavigableTableState): NavigableTableState;
41
+ export declare function navTableFocusPrev(state: NavigableTableState): NavigableTableState;
42
+ //# sourceMappingURL=navigable-table.part01.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigable-table.part01.d.ts","sourceRoot":"","sources":["../src/navigable-table.part01.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGrE,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9C,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAChC,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AACD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,qBAAqB,GAAG,SAAS,WAAW,EAAE,GACpD,KAAK,IAAI,qBAAqB,CAEhC;AACD,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AACD,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAC3D,wBAAgB,4BAA4B,CAC1C,gBAAgB,EAAE,qBAAqB,GAAG,SAAS,WAAW,EAAE,EAChE,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACrC,MAAM,CAAC,EAAE,MAAM,GACd,qBAAqB,CAKvB;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAmB1F;AACD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAAC;AAC/F,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACpC,MAAM,CAAC,EAAE,MAAM,GACd,mBAAmB,CAAC;AAQvB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIjF;AACD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIjF"}
@@ -0,0 +1,42 @@
1
+ import { sanitizeNonNegativeInt, sanitizePositiveInt } from '@flyingrobots/bijou';
2
+ import { adjustScroll } from './navigable-table.part02.js';
3
+ export function isNavigableTableOptions(value) {
4
+ return !Array.isArray(value);
5
+ }
6
+ export function resolveNavigableTableOptions(optionsOrColumns, rows, height) {
7
+ if (isNavigableTableOptions(optionsOrColumns)) {
8
+ return optionsOrColumns;
9
+ }
10
+ return { columns: [...optionsOrColumns], rows: rows ?? [], height };
11
+ }
12
+ export function resolveNavigableTableState(input) {
13
+ const height = sanitizePositiveInt(input.height, 10);
14
+ const rows = input.rows.map((row) => [...row]);
15
+ const focusRow = rows.length === 0
16
+ ? 0
17
+ : Math.min(sanitizeNonNegativeInt(input.focusRow, 0), rows.length - 1);
18
+ const scrollY = adjustScroll(focusRow, sanitizeNonNegativeInt(input.scrollY, 0), height, rows.length);
19
+ return {
20
+ columns: [...input.columns],
21
+ rows,
22
+ focusRow,
23
+ scrollY,
24
+ height,
25
+ };
26
+ }
27
+ export function createNavigableTableState(optionsOrColumns, rows, height) {
28
+ return resolveNavigableTableState(resolveNavigableTableOptions(optionsOrColumns, rows, height));
29
+ }
30
+ export function navTableFocusNext(state) {
31
+ if (state.rows.length === 0)
32
+ return state;
33
+ const focusRow = (state.focusRow + 1) % state.rows.length;
34
+ return { ...state, focusRow, scrollY: adjustScroll(focusRow, state.scrollY, state.height, state.rows.length) };
35
+ }
36
+ export function navTableFocusPrev(state) {
37
+ if (state.rows.length === 0)
38
+ return state;
39
+ const focusRow = (state.focusRow - 1 + state.rows.length) % state.rows.length;
40
+ return { ...state, focusRow, scrollY: adjustScroll(focusRow, state.scrollY, state.height, state.rows.length) };
41
+ }
42
+ //# sourceMappingURL=navigable-table.part01.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigable-table.part01.js","sourceRoot":"","sources":["../src/navigable-table.part01.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAIlF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AA2B3D,MAAM,UAAU,uBAAuB,CACrC,KAAqD;IAErD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAQD,MAAM,UAAU,4BAA4B,CAC1C,gBAAgE,EAChE,IAAqC,EACrC,MAAe;IAEf,IAAI,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9C,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;AACtE,CAAC;AACD,MAAM,UAAU,0BAA0B,CAAC,KAA0B;IACnE,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,YAAY,CAC1B,QAAQ,EACR,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EACxC,MAAM,EACN,IAAI,CAAC,MAAM,CACZ,CAAC;IACF,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QAC3B,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,yBAAyB,CACvC,gBAAgE,EAChE,IAAqC,EACrC,MAAe;IAEf,OAAO,0BAA0B,CAAC,4BAA4B,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAClG,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1D,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACjH,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9E,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACjH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Surface } from '@flyingrobots/bijou';
2
+ import type { KeyMap } from './keybindings.js';
3
+ import type { NavTableRenderOptions, NavTableSurfaceOptions, NavigableTableInput, NavigableTableState } from './navigable-table.part01.js';
4
+ export declare function navTablePageDown(state: NavigableTableState): NavigableTableState;
5
+ export declare function navTablePageUp(state: NavigableTableState): NavigableTableState;
6
+ export declare function adjustScroll(focusRow: number, scrollY: number, height: number, totalRows: number): number;
7
+ export declare function navigableTable(input: NavigableTableInput, options?: NavTableRenderOptions): string;
8
+ export declare function navigableTableSurface(state: NavigableTableInput, options?: NavTableSurfaceOptions): Surface;
9
+ export declare function navTableKeyMap<Msg>(actions: {
10
+ focusNext: Msg;
11
+ focusPrev: Msg;
12
+ pageDown: Msg;
13
+ pageUp: Msg;
14
+ quit: Msg;
15
+ }): KeyMap<Msg>;
16
+ //# sourceMappingURL=navigable-table.part02.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigable-table.part02.d.ts","sourceRoot":"","sources":["../src/navigable-table.part02.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC3I,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAIhF;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAI9E;AACD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASzG;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAyBlG;AACD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAsBT;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;IAC3C,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,MAAM,CAAC,GAAG,CAAC,CAcd"}
@@ -0,0 +1,83 @@
1
+ import { table, tableSurface } from '@flyingrobots/bijou';
2
+ import { createKeyMap } from './keybindings.js';
3
+ import { resolveNavigableTableState } from './navigable-table.part01.js';
4
+ export function navTablePageDown(state) {
5
+ if (state.rows.length === 0)
6
+ return state;
7
+ const focusRow = Math.min(state.focusRow + state.height, state.rows.length - 1);
8
+ return { ...state, focusRow, scrollY: adjustScroll(focusRow, state.scrollY, state.height, state.rows.length) };
9
+ }
10
+ export function navTablePageUp(state) {
11
+ if (state.rows.length === 0)
12
+ return state;
13
+ const focusRow = Math.max(state.focusRow - state.height, 0);
14
+ return { ...state, focusRow, scrollY: adjustScroll(focusRow, state.scrollY, state.height, state.rows.length) };
15
+ }
16
+ export function adjustScroll(focusRow, scrollY, height, totalRows) {
17
+ let newScrollY = scrollY;
18
+ if (focusRow < newScrollY) {
19
+ newScrollY = focusRow;
20
+ }
21
+ else if (focusRow >= newScrollY + height) {
22
+ newScrollY = focusRow - height + 1;
23
+ }
24
+ const maxScroll = Math.max(0, totalRows - height);
25
+ return Math.min(newScrollY, maxScroll);
26
+ }
27
+ export function navigableTable(input, options) {
28
+ const state = resolveNavigableTableState(input);
29
+ if (state.rows.length === 0) {
30
+ return table({ columns: state.columns, rows: [], ctx: options?.ctx });
31
+ }
32
+ const indicator = options?.focusIndicator ?? '\u25b8';
33
+ const pad = ' '.repeat(indicator.length);
34
+ // Slice visible window
35
+ const visibleRows = state.rows.slice(state.scrollY, state.scrollY + state.height);
36
+ // Prepend focus indicator to first column
37
+ const decoratedRows = visibleRows.map((row, i) => {
38
+ const globalIndex = state.scrollY + i;
39
+ const prefix = globalIndex === state.focusRow ? indicator : pad;
40
+ const firstCol = `${prefix} ${row[0] ?? ''}`;
41
+ return [firstCol, ...row.slice(1)];
42
+ });
43
+ return table({
44
+ columns: state.columns,
45
+ rows: decoratedRows,
46
+ ctx: options?.ctx,
47
+ });
48
+ }
49
+ export function navigableTableSurface(state, options) {
50
+ const resolvedState = resolveNavigableTableState(state);
51
+ if (resolvedState.rows.length === 0) {
52
+ return tableSurface({ columns: resolvedState.columns, rows: [], ctx: options?.ctx });
53
+ }
54
+ const indicator = options?.focusIndicator ?? '\u25b8';
55
+ const pad = ' '.repeat(indicator.length);
56
+ const visibleRows = resolvedState.rows.slice(resolvedState.scrollY, resolvedState.scrollY + resolvedState.height);
57
+ const decoratedRows = visibleRows.map((row, i) => {
58
+ const globalIndex = resolvedState.scrollY + i;
59
+ const prefix = globalIndex === resolvedState.focusRow ? indicator : pad;
60
+ const firstCol = `${prefix} ${row[0] ?? ''}`;
61
+ return [firstCol, ...row.slice(1)];
62
+ });
63
+ return tableSurface({
64
+ columns: resolvedState.columns,
65
+ rows: decoratedRows,
66
+ ctx: options?.ctx,
67
+ });
68
+ }
69
+ export function navTableKeyMap(actions) {
70
+ return createKeyMap()
71
+ .group('Navigation', (g) => g
72
+ .bind('j', 'Next row', actions.focusNext)
73
+ .bind('down', 'Next row', actions.focusNext)
74
+ .bind('k', 'Previous row', actions.focusPrev)
75
+ .bind('up', 'Previous row', actions.focusPrev)
76
+ .bind('d', 'Page down', actions.pageDown)
77
+ .bind('pagedown', 'Page down', actions.pageDown)
78
+ .bind('u', 'Page up', actions.pageUp)
79
+ .bind('pageup', 'Page up', actions.pageUp))
80
+ .bind('q', 'Quit', actions.quit)
81
+ .bind('ctrl+c', 'Quit', actions.quit);
82
+ }
83
+ //# sourceMappingURL=navigable-table.part02.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigable-table.part02.js","sourceRoot":"","sources":["../src/navigable-table.part02.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Surface } from '@flyingrobots/bijou';
2
+ import type { LayoutRect } from './layout-rect.js';
3
+ import { type NotificationRecord, type RenderNotificationStackOptions } from './notification.js';
4
+ export interface NotificationRenderEntry<Msg> {
5
+ readonly item: NotificationRecord<Msg>;
6
+ readonly surface: Surface;
7
+ readonly dismissRect: LayoutRect;
8
+ readonly actionRect?: LayoutRect;
9
+ }
10
+ export declare function renderNotificationSurface<Msg>(item: NotificationRecord<Msg>, options: RenderNotificationStackOptions, focused: boolean): NotificationRenderEntry<Msg>;
11
+ //# sourceMappingURL=notification-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-card.d.ts","sourceRoot":"","sources":["../src/notification-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAaL,KAAK,kBAAkB,EAEvB,KAAK,8BAA8B,EACpC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,uBAAuB,CAAC,GAAG;IAC1C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAqCD,wBAAgB,yBAAyB,CAAC,GAAG,EAC3C,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAC7B,OAAO,EAAE,8BAA8B,EACvC,OAAO,EAAE,OAAO,GACf,uBAAuB,CAAC,GAAG,CAAC,CA4I9B"}