@promptctl/rich-js 0.1.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 (318) hide show
  1. package/README.md +418 -0
  2. package/dist/core/box.d.ts +91 -0
  3. package/dist/core/box.d.ts.map +1 -0
  4. package/dist/core/box.js +534 -0
  5. package/dist/core/box.js.map +1 -0
  6. package/dist/core/cells.d.ts +24 -0
  7. package/dist/core/cells.d.ts.map +1 -0
  8. package/dist/core/cells.js +114 -0
  9. package/dist/core/cells.js.map +1 -0
  10. package/dist/core/color.d.ts +158 -0
  11. package/dist/core/color.d.ts.map +1 -0
  12. package/dist/core/color.js +825 -0
  13. package/dist/core/color.js.map +1 -0
  14. package/dist/core/console.d.ts +100 -0
  15. package/dist/core/console.d.ts.map +1 -0
  16. package/dist/core/console.js +353 -0
  17. package/dist/core/console.js.map +1 -0
  18. package/dist/core/emoji.d.ts +25 -0
  19. package/dist/core/emoji.d.ts.map +1 -0
  20. package/dist/core/emoji.js +392 -0
  21. package/dist/core/emoji.js.map +1 -0
  22. package/dist/core/highlighter.d.ts +33 -0
  23. package/dist/core/highlighter.d.ts.map +1 -0
  24. package/dist/core/highlighter.js +103 -0
  25. package/dist/core/highlighter.js.map +1 -0
  26. package/dist/core/markup.d.ts +69 -0
  27. package/dist/core/markup.d.ts.map +1 -0
  28. package/dist/core/markup.js +401 -0
  29. package/dist/core/markup.js.map +1 -0
  30. package/dist/core/measure.d.ts +17 -0
  31. package/dist/core/measure.d.ts.map +1 -0
  32. package/dist/core/measure.js +50 -0
  33. package/dist/core/measure.js.map +1 -0
  34. package/dist/core/protocol.d.ts +32 -0
  35. package/dist/core/protocol.d.ts.map +1 -0
  36. package/dist/core/protocol.js +17 -0
  37. package/dist/core/protocol.js.map +1 -0
  38. package/dist/core/render.d.ts +51 -0
  39. package/dist/core/render.d.ts.map +1 -0
  40. package/dist/core/render.js +69 -0
  41. package/dist/core/render.js.map +1 -0
  42. package/dist/core/segment.d.ts +104 -0
  43. package/dist/core/segment.d.ts.map +1 -0
  44. package/dist/core/segment.js +364 -0
  45. package/dist/core/segment.js.map +1 -0
  46. package/dist/core/spinnerData.d.ts +11 -0
  47. package/dist/core/spinnerData.d.ts.map +1 -0
  48. package/dist/core/spinnerData.js +116 -0
  49. package/dist/core/spinnerData.js.map +1 -0
  50. package/dist/core/strip.d.ts +159 -0
  51. package/dist/core/strip.d.ts.map +1 -0
  52. package/dist/core/strip.js +237 -0
  53. package/dist/core/strip.js.map +1 -0
  54. package/dist/core/style.d.ts +115 -0
  55. package/dist/core/style.d.ts.map +1 -0
  56. package/dist/core/style.js +662 -0
  57. package/dist/core/style.js.map +1 -0
  58. package/dist/core/text.d.ts +91 -0
  59. package/dist/core/text.d.ts.map +1 -0
  60. package/dist/core/text.js +610 -0
  61. package/dist/core/text.js.map +1 -0
  62. package/dist/index.d.ts +99 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +72 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/renderables/align.d.ts +17 -0
  67. package/dist/renderables/align.d.ts.map +1 -0
  68. package/dist/renderables/align.js +47 -0
  69. package/dist/renderables/align.js.map +1 -0
  70. package/dist/renderables/columns.d.ts +28 -0
  71. package/dist/renderables/columns.d.ts.map +1 -0
  72. package/dist/renderables/columns.js +92 -0
  73. package/dist/renderables/columns.js.map +1 -0
  74. package/dist/renderables/constrain.d.ts +16 -0
  75. package/dist/renderables/constrain.d.ts.map +1 -0
  76. package/dist/renderables/constrain.js +38 -0
  77. package/dist/renderables/constrain.js.map +1 -0
  78. package/dist/renderables/flexStrip.d.ts +42 -0
  79. package/dist/renderables/flexStrip.d.ts.map +1 -0
  80. package/dist/renderables/flexStrip.js +201 -0
  81. package/dist/renderables/flexStrip.js.map +1 -0
  82. package/dist/renderables/group.d.ts +12 -0
  83. package/dist/renderables/group.d.ts.map +1 -0
  84. package/dist/renderables/group.js +16 -0
  85. package/dist/renderables/group.js.map +1 -0
  86. package/dist/renderables/json.d.ts +23 -0
  87. package/dist/renderables/json.d.ts.map +1 -0
  88. package/dist/renderables/json.js +49 -0
  89. package/dist/renderables/json.js.map +1 -0
  90. package/dist/renderables/layout.d.ts +37 -0
  91. package/dist/renderables/layout.d.ts.map +1 -0
  92. package/dist/renderables/layout.js +151 -0
  93. package/dist/renderables/layout.js.map +1 -0
  94. package/dist/renderables/live.d.ts +48 -0
  95. package/dist/renderables/live.d.ts.map +1 -0
  96. package/dist/renderables/live.js +131 -0
  97. package/dist/renderables/live.js.map +1 -0
  98. package/dist/renderables/markdown.d.ts +25 -0
  99. package/dist/renderables/markdown.d.ts.map +1 -0
  100. package/dist/renderables/markdown.js +190 -0
  101. package/dist/renderables/markdown.js.map +1 -0
  102. package/dist/renderables/padding.d.ts +26 -0
  103. package/dist/renderables/padding.d.ts.map +1 -0
  104. package/dist/renderables/padding.js +92 -0
  105. package/dist/renderables/padding.js.map +1 -0
  106. package/dist/renderables/panel.d.ts +42 -0
  107. package/dist/renderables/panel.d.ts.map +1 -0
  108. package/dist/renderables/panel.js +202 -0
  109. package/dist/renderables/panel.js.map +1 -0
  110. package/dist/renderables/pretty.d.ts +29 -0
  111. package/dist/renderables/pretty.d.ts.map +1 -0
  112. package/dist/renderables/pretty.js +141 -0
  113. package/dist/renderables/pretty.js.map +1 -0
  114. package/dist/renderables/progress.d.ts +91 -0
  115. package/dist/renderables/progress.d.ts.map +1 -0
  116. package/dist/renderables/progress.js +234 -0
  117. package/dist/renderables/progress.js.map +1 -0
  118. package/dist/renderables/progressBar.d.ts +32 -0
  119. package/dist/renderables/progressBar.d.ts.map +1 -0
  120. package/dist/renderables/progressBar.js +59 -0
  121. package/dist/renderables/progressBar.js.map +1 -0
  122. package/dist/renderables/prompt.d.ts +25 -0
  123. package/dist/renderables/prompt.d.ts.map +1 -0
  124. package/dist/renderables/prompt.js +109 -0
  125. package/dist/renderables/prompt.js.map +1 -0
  126. package/dist/renderables/rule.d.ts +25 -0
  127. package/dist/renderables/rule.d.ts.map +1 -0
  128. package/dist/renderables/rule.js +96 -0
  129. package/dist/renderables/rule.js.map +1 -0
  130. package/dist/renderables/spinner.d.ts +30 -0
  131. package/dist/renderables/spinner.d.ts.map +1 -0
  132. package/dist/renderables/spinner.js +70 -0
  133. package/dist/renderables/spinner.js.map +1 -0
  134. package/dist/renderables/status.d.ts +24 -0
  135. package/dist/renderables/status.d.ts.map +1 -0
  136. package/dist/renderables/status.js +67 -0
  137. package/dist/renderables/status.js.map +1 -0
  138. package/dist/renderables/syntax.d.ts +36 -0
  139. package/dist/renderables/syntax.d.ts.map +1 -0
  140. package/dist/renderables/syntax.js +115 -0
  141. package/dist/renderables/syntax.js.map +1 -0
  142. package/dist/renderables/table.d.ts +109 -0
  143. package/dist/renderables/table.d.ts.map +1 -0
  144. package/dist/renderables/table.js +434 -0
  145. package/dist/renderables/table.js.map +1 -0
  146. package/dist/renderables/traceback.d.ts +26 -0
  147. package/dist/renderables/traceback.d.ts.map +1 -0
  148. package/dist/renderables/traceback.js +108 -0
  149. package/dist/renderables/traceback.js.map +1 -0
  150. package/dist/renderables/tree.d.ts +30 -0
  151. package/dist/renderables/tree.d.ts.map +1 -0
  152. package/dist/renderables/tree.js +107 -0
  153. package/dist/renderables/tree.js.map +1 -0
  154. package/dist/template-bindings/index.d.ts +61 -0
  155. package/dist/template-bindings/index.d.ts.map +1 -0
  156. package/dist/template-bindings/index.js +70 -0
  157. package/dist/template-bindings/index.js.map +1 -0
  158. package/dist/template-bindings/style-funcs.d.ts +30 -0
  159. package/dist/template-bindings/style-funcs.d.ts.map +1 -0
  160. package/dist/template-bindings/style-funcs.js +172 -0
  161. package/dist/template-bindings/style-funcs.js.map +1 -0
  162. package/dist/themes/buildPalette.d.ts +31 -0
  163. package/dist/themes/buildPalette.d.ts.map +1 -0
  164. package/dist/themes/buildPalette.js +43 -0
  165. package/dist/themes/buildPalette.js.map +1 -0
  166. package/dist/themes/colorMath.d.ts +23 -0
  167. package/dist/themes/colorMath.d.ts.map +1 -0
  168. package/dist/themes/colorMath.js +99 -0
  169. package/dist/themes/colorMath.js.map +1 -0
  170. package/dist/themes/data/atom-one-dark.d.ts +4 -0
  171. package/dist/themes/data/atom-one-dark.d.ts.map +1 -0
  172. package/dist/themes/data/atom-one-dark.js +159 -0
  173. package/dist/themes/data/atom-one-dark.js.map +1 -0
  174. package/dist/themes/data/atom-one-light.d.ts +4 -0
  175. package/dist/themes/data/atom-one-light.d.ts.map +1 -0
  176. package/dist/themes/data/atom-one-light.js +159 -0
  177. package/dist/themes/data/atom-one-light.js.map +1 -0
  178. package/dist/themes/data/catppuccin-latte.d.ts +4 -0
  179. package/dist/themes/data/catppuccin-latte.d.ts.map +1 -0
  180. package/dist/themes/data/catppuccin-latte.js +159 -0
  181. package/dist/themes/data/catppuccin-latte.js.map +1 -0
  182. package/dist/themes/data/catppuccin-mocha.d.ts +4 -0
  183. package/dist/themes/data/catppuccin-mocha.d.ts.map +1 -0
  184. package/dist/themes/data/catppuccin-mocha.js +159 -0
  185. package/dist/themes/data/catppuccin-mocha.js.map +1 -0
  186. package/dist/themes/data/dracula.d.ts +4 -0
  187. package/dist/themes/data/dracula.d.ts.map +1 -0
  188. package/dist/themes/data/dracula.js +159 -0
  189. package/dist/themes/data/dracula.js.map +1 -0
  190. package/dist/themes/data/flexoki.d.ts +4 -0
  191. package/dist/themes/data/flexoki.d.ts.map +1 -0
  192. package/dist/themes/data/flexoki.js +159 -0
  193. package/dist/themes/data/flexoki.js.map +1 -0
  194. package/dist/themes/data/gruvbox.d.ts +4 -0
  195. package/dist/themes/data/gruvbox.d.ts.map +1 -0
  196. package/dist/themes/data/gruvbox.js +159 -0
  197. package/dist/themes/data/gruvbox.js.map +1 -0
  198. package/dist/themes/data/index.d.ts +29 -0
  199. package/dist/themes/data/index.d.ts.map +1 -0
  200. package/dist/themes/data/index.js +48 -0
  201. package/dist/themes/data/index.js.map +1 -0
  202. package/dist/themes/data/monokai.d.ts +4 -0
  203. package/dist/themes/data/monokai.d.ts.map +1 -0
  204. package/dist/themes/data/monokai.js +159 -0
  205. package/dist/themes/data/monokai.js.map +1 -0
  206. package/dist/themes/data/nord.d.ts +4 -0
  207. package/dist/themes/data/nord.d.ts.map +1 -0
  208. package/dist/themes/data/nord.js +159 -0
  209. package/dist/themes/data/nord.js.map +1 -0
  210. package/dist/themes/data/rose-pine-dawn.d.ts +4 -0
  211. package/dist/themes/data/rose-pine-dawn.d.ts.map +1 -0
  212. package/dist/themes/data/rose-pine-dawn.js +159 -0
  213. package/dist/themes/data/rose-pine-dawn.js.map +1 -0
  214. package/dist/themes/data/rose-pine-moon.d.ts +4 -0
  215. package/dist/themes/data/rose-pine-moon.d.ts.map +1 -0
  216. package/dist/themes/data/rose-pine-moon.js +159 -0
  217. package/dist/themes/data/rose-pine-moon.js.map +1 -0
  218. package/dist/themes/data/rose-pine.d.ts +4 -0
  219. package/dist/themes/data/rose-pine.d.ts.map +1 -0
  220. package/dist/themes/data/rose-pine.js +159 -0
  221. package/dist/themes/data/rose-pine.js.map +1 -0
  222. package/dist/themes/data/solarized-dark.d.ts +4 -0
  223. package/dist/themes/data/solarized-dark.d.ts.map +1 -0
  224. package/dist/themes/data/solarized-dark.js +159 -0
  225. package/dist/themes/data/solarized-dark.js.map +1 -0
  226. package/dist/themes/data/solarized-light.d.ts +4 -0
  227. package/dist/themes/data/solarized-light.d.ts.map +1 -0
  228. package/dist/themes/data/solarized-light.js +159 -0
  229. package/dist/themes/data/solarized-light.js.map +1 -0
  230. package/dist/themes/data/textual-ansi.d.ts +4 -0
  231. package/dist/themes/data/textual-ansi.d.ts.map +1 -0
  232. package/dist/themes/data/textual-ansi.js +159 -0
  233. package/dist/themes/data/textual-ansi.js.map +1 -0
  234. package/dist/themes/data/textual-dark.d.ts +4 -0
  235. package/dist/themes/data/textual-dark.d.ts.map +1 -0
  236. package/dist/themes/data/textual-dark.js +159 -0
  237. package/dist/themes/data/textual-dark.js.map +1 -0
  238. package/dist/themes/data/textual-light.d.ts +4 -0
  239. package/dist/themes/data/textual-light.d.ts.map +1 -0
  240. package/dist/themes/data/textual-light.js +159 -0
  241. package/dist/themes/data/textual-light.js.map +1 -0
  242. package/dist/themes/data/tokyo-night.d.ts +4 -0
  243. package/dist/themes/data/tokyo-night.d.ts.map +1 -0
  244. package/dist/themes/data/tokyo-night.js +159 -0
  245. package/dist/themes/data/tokyo-night.js.map +1 -0
  246. package/dist/themes/data/types.d.ts +15 -0
  247. package/dist/themes/data/types.d.ts.map +1 -0
  248. package/dist/themes/data/types.js +2 -0
  249. package/dist/themes/data/types.js.map +1 -0
  250. package/dist/themes/palette.d.ts +20 -0
  251. package/dist/themes/palette.d.ts.map +1 -0
  252. package/dist/themes/palette.js +27 -0
  253. package/dist/themes/palette.js.map +1 -0
  254. package/dist/themes/paletteResolver.d.ts +35 -0
  255. package/dist/themes/paletteResolver.d.ts.map +1 -0
  256. package/dist/themes/paletteResolver.js +88 -0
  257. package/dist/themes/paletteResolver.js.map +1 -0
  258. package/dist/themes/registry.d.ts +17 -0
  259. package/dist/themes/registry.d.ts.map +1 -0
  260. package/dist/themes/registry.js +33 -0
  261. package/dist/themes/registry.js.map +1 -0
  262. package/dist/themes/terminalThemes.d.ts +46 -0
  263. package/dist/themes/terminalThemes.d.ts.map +1 -0
  264. package/dist/themes/terminalThemes.js +268 -0
  265. package/dist/themes/terminalThemes.js.map +1 -0
  266. package/dist/widgets/button.d.ts +47 -0
  267. package/dist/widgets/button.d.ts.map +1 -0
  268. package/dist/widgets/button.js +183 -0
  269. package/dist/widgets/button.js.map +1 -0
  270. package/dist/widgets/checkbox.d.ts +43 -0
  271. package/dist/widgets/checkbox.d.ts.map +1 -0
  272. package/dist/widgets/checkbox.js +144 -0
  273. package/dist/widgets/checkbox.js.map +1 -0
  274. package/dist/widgets/dropdown.d.ts +67 -0
  275. package/dist/widgets/dropdown.d.ts.map +1 -0
  276. package/dist/widgets/dropdown.js +373 -0
  277. package/dist/widgets/dropdown.js.map +1 -0
  278. package/dist/widgets/event-router.d.ts +73 -0
  279. package/dist/widgets/event-router.d.ts.map +1 -0
  280. package/dist/widgets/event-router.js +479 -0
  281. package/dist/widgets/event-router.js.map +1 -0
  282. package/dist/widgets/focus-manager.d.ts +26 -0
  283. package/dist/widgets/focus-manager.d.ts.map +1 -0
  284. package/dist/widgets/focus-manager.js +179 -0
  285. package/dist/widgets/focus-manager.js.map +1 -0
  286. package/dist/widgets/index.d.ts +23 -0
  287. package/dist/widgets/index.d.ts.map +1 -0
  288. package/dist/widgets/index.js +13 -0
  289. package/dist/widgets/index.js.map +1 -0
  290. package/dist/widgets/screen.d.ts +90 -0
  291. package/dist/widgets/screen.d.ts.map +1 -0
  292. package/dist/widgets/screen.js +440 -0
  293. package/dist/widgets/screen.js.map +1 -0
  294. package/dist/widgets/slider.d.ts +55 -0
  295. package/dist/widgets/slider.d.ts.map +1 -0
  296. package/dist/widgets/slider.js +248 -0
  297. package/dist/widgets/slider.js.map +1 -0
  298. package/dist/widgets/static-item.d.ts +41 -0
  299. package/dist/widgets/static-item.d.ts.map +1 -0
  300. package/dist/widgets/static-item.js +62 -0
  301. package/dist/widgets/static-item.js.map +1 -0
  302. package/dist/widgets/text-input.d.ts +50 -0
  303. package/dist/widgets/text-input.d.ts.map +1 -0
  304. package/dist/widgets/text-input.js +242 -0
  305. package/dist/widgets/text-input.js.map +1 -0
  306. package/dist/widgets/toggle.d.ts +46 -0
  307. package/dist/widgets/toggle.d.ts.map +1 -0
  308. package/dist/widgets/toggle.js +169 -0
  309. package/dist/widgets/toggle.js.map +1 -0
  310. package/dist/widgets/types.d.ts +92 -0
  311. package/dist/widgets/types.d.ts.map +1 -0
  312. package/dist/widgets/types.js +13 -0
  313. package/dist/widgets/types.js.map +1 -0
  314. package/dist/widgets/widget-base.d.ts +41 -0
  315. package/dist/widgets/widget-base.d.ts.map +1 -0
  316. package/dist/widgets/widget-base.js +159 -0
  317. package/dist/widgets/widget-base.js.map +1 -0
  318. package/package.json +76 -0
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Built-in spinner frame data.
3
+ * [LAW:one-type-per-behavior] All spinners are instances of SpinnerData — differ only by frame data.
4
+ */
5
+ // [LAW:one-source-of-truth] Single authoritative collection of spinner definitions
6
+ export const SPINNERS = {
7
+ dots: { frames: ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"], interval: 80 },
8
+ dots2: { frames: ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"], interval: 80 },
9
+ dots3: { frames: ["⠋", "⠙", "⠚", "⠞", "⠖", "⠦", "⠴", "⠲", "⠳", "⠓"], interval: 80 },
10
+ line: { frames: ["-", "\\", "|", "/"], interval: 130 },
11
+ line2: { frames: ["⠂", "-", "–", "—", "–", "-"], interval: 100 },
12
+ pipe: { frames: ["┤", "┘", "┴", "└", "├", "┌", "┬", "┐"], interval: 100 },
13
+ simpleDots: { frames: [". ", ".. ", "...", " "], interval: 400 },
14
+ simpleDotsScrolling: { frames: [". ", ".. ", "...", " ..", " .", " "], interval: 200 },
15
+ star: { frames: ["✶", "✸", "✹", "✺", "✹", "✷"], interval: 70 },
16
+ star2: { frames: ["+", "x", "*"], interval: 80 },
17
+ flip: { frames: ["_", "_", "_", "-", "`", "`", "'", "´", "-", "_", "_", "_"], interval: 70 },
18
+ hamburger: { frames: ["☱", "☲", "☴"], interval: 100 },
19
+ growVertical: { frames: ["▁", "▃", "▄", "▅", "▆", "▇", "▆", "▅", "▄", "▃"], interval: 120 },
20
+ growHorizontal: { frames: ["▏", "▎", "▍", "▌", "▋", "▊", "▉", "▊", "▋", "▌", "▍", "▎"], interval: 120 },
21
+ balloon: { frames: [" ", ".", "o", "O", "@", "*", " "], interval: 140 },
22
+ balloon2: { frames: [".", "o", "O", "°", "O", "o", "."], interval: 120 },
23
+ noise: { frames: ["▓", "▒", "░"], interval: 100 },
24
+ bounce: { frames: ["⠁", "⠂", "⠄", "⠂"], interval: 120 },
25
+ boxBounce: { frames: ["▖", "▘", "▝", "▗"], interval: 120 },
26
+ boxBounce2: { frames: ["▌", "▀", "▐", "▄"], interval: 100 },
27
+ triangle: { frames: ["◢", "◣", "◤", "◥"], interval: 50 },
28
+ arc: { frames: ["◜", "◠", "◝", "◞", "◡", "◟"], interval: 100 },
29
+ circle: { frames: ["◡", "⊙", "◠"], interval: 120 },
30
+ squareCorners: { frames: ["◰", "◳", "◲", "◱"], interval: 180 },
31
+ circleQuarters: { frames: ["◴", "◷", "◶", "◵"], interval: 120 },
32
+ circleHalves: { frames: ["◐", "◓", "◑", "◒"], interval: 50 },
33
+ squish: { frames: ["╫", "╪"], interval: 100 },
34
+ toggle: { frames: ["⊶", "⊷"], interval: 250 },
35
+ toggle2: { frames: ["▫", "▪"], interval: 80 },
36
+ toggle3: { frames: ["□", "■"], interval: 120 },
37
+ toggle4: { frames: ["■", "□", "▪", "▫"], interval: 100 },
38
+ toggle5: { frames: ["▮", "▯"], interval: 100 },
39
+ toggle6: { frames: ["ဝ", "၀"], interval: 300 },
40
+ toggle7: { frames: ["⦾", "⦿"], interval: 80 },
41
+ toggle8: { frames: ["◍", "◌"], interval: 100 },
42
+ toggle9: { frames: ["◉", "◎"], interval: 100 },
43
+ toggle10: { frames: ["㊂", "㊀", "㊁"], interval: 100 },
44
+ toggle11: { frames: ["⧇", "⧆"], interval: 50 },
45
+ toggle12: { frames: ["☗", "☖"], interval: 120 },
46
+ toggle13: { frames: ["=", "*", "-"], interval: 80 },
47
+ arrow: { frames: ["←", "↖", "↑", "↗", "→", "↘", "↓", "↙"], interval: 100 },
48
+ arrow2: { frames: ["⬆️ ", "↗️ ", "➡️ ", "↘️ ", "⬇️ ", "↙️ ", "⬅️ ", "↖️ "], interval: 80 },
49
+ arrow3: { frames: ["▹▹▹▹▹", "▸▹▹▹▹", "▹▸▹▹▹", "▹▹▸▹▹", "▹▹▹▸▹", "▹▹▹▹▸"], interval: 120 },
50
+ bouncingBar: { frames: [
51
+ "[ ]", "[= ]", "[== ]", "[=== ]", "[ ===]", "[ ==]", "[ =]", "[ ]",
52
+ "[ =]", "[ ==]", "[ ===]", "[====]", "[=== ]", "[== ]", "[= ]",
53
+ ], interval: 80 },
54
+ bouncingBall: { frames: [
55
+ "( ● )", "( ● )", "( ● )", "( ● )", "( ●)", "( ● )",
56
+ "( ● )", "( ● )", "( ● )", "(● )",
57
+ ], interval: 80 },
58
+ smiley: { frames: ["😄 ", "😝 "], interval: 200 },
59
+ monkey: { frames: ["🙈 ", "🙈 ", "🙉 ", "🙊 "], interval: 300 },
60
+ hearts: { frames: ["💛 ", "💙 ", "💜 ", "💚 ", "❤️ "], interval: 100 },
61
+ clock: { frames: ["🕛 ", "🕐 ", "🕑 ", "🕒 ", "🕓 ", "🕔 ", "🕕 ", "🕖 ", "🕗 ", "🕘 ", "🕙 ", "🕚 "], interval: 100 },
62
+ earth: { frames: ["🌍 ", "🌎 ", "🌏 "], interval: 180 },
63
+ moon: { frames: ["🌑 ", "🌒 ", "🌓 ", "🌔 ", "🌕 ", "🌖 ", "🌗 ", "🌘 "], interval: 80 },
64
+ runner: { frames: ["🚶 ", "🏃 "], interval: 140 },
65
+ pong: { frames: [
66
+ "▐⠂ ▌", "▐⠈ ▌", "▐ ⠂ ▌", "▐ ⠠ ▌", "▐ ⡀ ▌",
67
+ "▐ ⠠ ▌", "▐ ⠂ ▌", "▐ ⠈ ▌", "▐ ⠂ ▌", "▐ ⠠ ▌",
68
+ "▐ ⡀ ▌", "▐ ⠠ ▌", "▐ ⠂ ▌", "▐ ⠈ ▌", "▐ ⠂▌",
69
+ "▐ ⠠▌", "▐ ⡀▌", "▐ ⠠ ▌", "▐ ⠂ ▌", "▐ ⠈ ▌",
70
+ "▐ ⠂ ▌", "▐ ⠠ ▌", "▐ ⡀ ▌", "▐ ⠠ ▌", "▐ ⠂ ▌",
71
+ "▐ ⠈ ▌", "▐ ⠂ ▌", "▐ ⠠ ▌", "▐ ⡀ ▌", "▐⠠ ▌",
72
+ ], interval: 80 },
73
+ material: { frames: [
74
+ "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
75
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
76
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁", "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
77
+ "███████▁▁▁▁▁▁▁▁▁▁▁▁▁", "████████▁▁▁▁▁▁▁▁▁▁▁▁",
78
+ "█████████▁▁▁▁▁▁▁▁▁▁▁", "█████████▁▁▁▁▁▁▁▁▁▁▁",
79
+ "██████████▁▁▁▁▁▁▁▁▁▁", "███████████▁▁▁▁▁▁▁▁▁",
80
+ "█████████████▁▁▁▁▁▁▁", "██████████████▁▁▁▁▁▁",
81
+ "██████████████▁▁▁▁▁▁", "▁██████████████▁▁▁▁▁",
82
+ "▁██████████████▁▁▁▁▁", "▁██████████████▁▁▁▁▁",
83
+ "▁▁██████████████▁▁▁▁", "▁▁▁██████████████▁▁▁",
84
+ "▁▁▁▁█████████████▁▁▁", "▁▁▁▁██████████████▁▁",
85
+ "▁▁▁▁██████████████▁▁", "▁▁▁▁▁██████████████▁",
86
+ "▁▁▁▁▁██████████████▁", "▁▁▁▁▁██████████████▁",
87
+ "▁▁▁▁▁▁██████████████", "▁▁▁▁▁▁██████████████",
88
+ "▁▁▁▁▁▁▁█████████████", "▁▁▁▁▁▁▁█████████████",
89
+ "▁▁▁▁▁▁▁▁████████████", "▁▁▁▁▁▁▁▁████████████",
90
+ "▁▁▁▁▁▁▁▁▁███████████", "▁▁▁▁▁▁▁▁▁███████████",
91
+ "▁▁▁▁▁▁▁▁▁▁██████████", "▁▁▁▁▁▁▁▁▁▁██████████",
92
+ "▁▁▁▁▁▁▁▁▁▁▁▁████████", "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
93
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████", "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
94
+ "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████", "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
95
+ "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███", "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
96
+ "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███", "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
97
+ "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█", "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
98
+ "██████▁▁▁▁▁▁▁▁▁▁▁▁▁█", "████████▁▁▁▁▁▁▁▁▁▁▁▁",
99
+ "█████████▁▁▁▁▁▁▁▁▁▁▁", "█████████▁▁▁▁▁▁▁▁▁▁▁",
100
+ "█████████▁▁▁▁▁▁▁▁▁▁▁", "█████████▁▁▁▁▁▁▁▁▁▁▁",
101
+ "███████████▁▁▁▁▁▁▁▁▁", "████████████▁▁▁▁▁▁▁▁",
102
+ "████████████▁▁▁▁▁▁▁▁", "██████████████▁▁▁▁▁▁",
103
+ "██████████████▁▁▁▁▁▁", "▁██████████████▁▁▁▁▁",
104
+ "▁██████████████▁▁▁▁▁", "▁▁▁██████████████▁▁▁",
105
+ "▁▁▁▁▁████████████▁▁▁", "▁▁▁▁▁████████████▁▁▁",
106
+ "▁▁▁▁▁▁███████████▁▁▁", "▁▁▁▁▁▁▁▁█████████▁▁▁",
107
+ "▁▁▁▁▁▁▁▁█████████▁▁▁", "▁▁▁▁▁▁▁▁▁█████████▁▁",
108
+ "▁▁▁▁▁▁▁▁▁█████████▁▁", "▁▁▁▁▁▁▁▁▁▁█████████▁",
109
+ ], interval: 17 },
110
+ aesthetic: { frames: [
111
+ "▰▱▱▱▱▱▱", "▰▰▱▱▱▱▱", "▰▰▰▱▱▱▱", "▰▰▰▰▱▱▱",
112
+ "▰▰▰▰▰▱▱", "▰▰▰▰▰▰▱", "▰▰▰▰▰▰▰", "▰▱▱▱▱▱▱",
113
+ ], interval: 80 },
114
+ };
115
+ export const DEFAULT_SPINNER = "dots";
116
+ //# sourceMappingURL=spinnerData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinnerData.js","sourceRoot":"","sources":["../../src/core/spinnerData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Strip + Joiner — edge-aware horizontal layout primitive.
3
+ *
4
+ * A `Strip` renders a horizontal sequence of styled items with a `Joiner`
5
+ * deciding how each transition between adjacent items looks. The joiner is
6
+ * a pure function of `(leftItem | null, rightItem | null) -> Renderable`,
7
+ * so endpoint joins (the start and end of the strip) are explicit positions
8
+ * in the protocol — the joiner names what an endpoint looks like rather than
9
+ * the strip guessing.
10
+ *
11
+ * [LAW:one-source-of-truth] The render walk
12
+ * joiner(null, items[0]), items[0],
13
+ * joiner(items[0], items[1]), items[1], ...,
14
+ * joiner(items[N-1], null)
15
+ * is the single authority for how strips lay out. Every joiner participates
16
+ * in the same protocol; "look up the previous segment's bg" is no longer a
17
+ * powerline-specific hack but the contract every joiner shares.
18
+ */
19
+ import { Segment } from "./segment.js";
20
+ import { Style } from "./style.js";
21
+ import type { Renderable, RenderOptions } from "./protocol.js";
22
+ /**
23
+ * Items in a `Strip` expose a single dominant `style` so joiners can read
24
+ * fg/bg without inspecting the rendered output.
25
+ *
26
+ * ## Single-style invariant (load-bearing)
27
+ *
28
+ * Joiners — `PowerlineJoiner`, `CapsuleJoiner`, `GradientJoiner` — paint edges
29
+ * by reading `item.style.bgcolor` for adjacent items. If `render()` emits a
30
+ * `Segment` whose `style.bgcolor` diverges from `this.style.bgcolor`, the
31
+ * arrow/cap glyph between this item and its neighbour will use the *declared*
32
+ * bg even though the item *displayed* a different bg. The result is a
33
+ * visually wrong transition (e.g. a powerline arrow whose source colour
34
+ * doesn't match the cell it's bleeding out of).
35
+ *
36
+ * **The invariant**: for every `Segment` yielded by `render()`, either
37
+ * - `segment.style.bgcolor === this.style.bgcolor`, or
38
+ * - `segment.style.bgcolor === undefined` (transparent — terminal default).
39
+ *
40
+ * Foreground colour and text attributes (bold, italic, underline, etc.) may
41
+ * vary freely within a single item — only `bgcolor` is constrained, because
42
+ * that's the only field joiners read.
43
+ *
44
+ * ## What breaks the invariant
45
+ *
46
+ * - Yielding inline `Segment`s with their own `bgcolor` set to a different
47
+ * value (e.g. an embedded "warning" highlight with a yellow background).
48
+ * - Wrapping a renderable that paints its own background — `Panel`, a styled
49
+ * `Group`, or any `RichText` whose base style includes a bg.
50
+ *
51
+ * ## The safe path
52
+ *
53
+ * Use `StripCell(text, style)` for plain styled text — it satisfies the
54
+ * invariant by construction. For richer items, implement this interface
55
+ * directly and ensure your `render()` only emits Segments whose bg matches
56
+ * `this.style.bgcolor` (or is undefined). Inline fg variation is fine; bg
57
+ * variation is not.
58
+ */
59
+ export interface StyledRenderable extends Renderable {
60
+ readonly style: Style;
61
+ }
62
+ /**
63
+ * A styled run within a `StripCell` — text plus an optional foreground /
64
+ * text-attribute overlay. Used to express inline fg variation inside a single
65
+ * cell (e.g. a status string where some characters render green and others
66
+ * red, all on the same cell-level bg).
67
+ *
68
+ * The overlay must NOT set `bgcolor`. Cell-level bg is the joiner-visible bg
69
+ * per the single-style invariant on `StyledRenderable`; allowing parts to
70
+ * override it would silently violate that invariant. `StripCell` rejects parts
71
+ * with a `bgcolor` overlay at construction.
72
+ */
73
+ export interface StripCellPart {
74
+ readonly text: string;
75
+ readonly style?: Style;
76
+ }
77
+ /**
78
+ * Canonical safe implementation of `StyledRenderable`. Two construction
79
+ * shapes:
80
+ *
81
+ * - `new StripCell(text, style)` — a single styled run. One segment out.
82
+ * - `new StripCell(parts, style)` — multiple runs sharing one cell-level
83
+ * `style`. Each part may carry its own fg / attribute overlay; cell-level
84
+ * `style` always governs the bg. Consumers needing inline fg variation
85
+ * (e.g. `[ main S +3 -2 ]` where `S`/`+3` are green, `-2` is red, all on
86
+ * the same blue bg) use this shape instead of writing a custom
87
+ * `StyledRenderable`.
88
+ *
89
+ * Both shapes satisfy the single-style invariant by construction: parts with
90
+ * `bgcolor` set are rejected, so every emitted `Segment`'s bg matches
91
+ * `this.style.bgcolor` (or is undefined when the cell has no bg).
92
+ */
93
+ export declare class StripCell implements StyledRenderable {
94
+ readonly text: string;
95
+ readonly style: Style;
96
+ private readonly _parts;
97
+ constructor(text: string, style?: Style);
98
+ constructor(parts: readonly StripCellPart[], style?: Style);
99
+ render(_options: RenderOptions): Iterable<Segment>;
100
+ }
101
+ export interface Joiner<T extends StyledRenderable = StyledRenderable> {
102
+ /**
103
+ * `left === null` marks the start endpoint; `right === null` marks the end
104
+ * endpoint. The joiner decides what an endpoint looks like — typically
105
+ * fg-only with no bg so the strip blends into the terminal background.
106
+ */
107
+ join(left: T | null, right: T | null): Renderable;
108
+ }
109
+ export declare class Strip<T extends StyledRenderable = StyledRenderable> implements Renderable {
110
+ readonly items: readonly T[];
111
+ readonly joiner: Joiner<T>;
112
+ constructor(items: readonly T[], joiner: Joiner<T>);
113
+ render(options: RenderOptions): Iterable<Segment>;
114
+ }
115
+ export interface PowerlineJoinerOptions {
116
+ /** Glyph used for every join (default: U+E0B0, the powerline right-arrow). */
117
+ glyph?: string;
118
+ }
119
+ export declare class PowerlineJoiner<T extends StyledRenderable = StyledRenderable> implements Joiner<T> {
120
+ private readonly _glyph;
121
+ constructor(options?: PowerlineJoinerOptions);
122
+ join(left: T | null, right: T | null): Renderable;
123
+ }
124
+ export interface CapsuleJoinerOptions {
125
+ /** Left-cap glyph (default: U+E0B6, powerline rounded left). */
126
+ left?: string;
127
+ /** Right-cap glyph (default: U+E0B4, powerline rounded right). */
128
+ right?: string;
129
+ /** Separator inserted between adjacent capsules in the middle position. */
130
+ separator?: string;
131
+ }
132
+ export declare class CapsuleJoiner<T extends StyledRenderable = StyledRenderable> implements Joiner<T> {
133
+ private readonly _left;
134
+ private readonly _right;
135
+ private readonly _separator;
136
+ constructor(options?: CapsuleJoinerOptions);
137
+ _emit(left: T | null, right: T | null, options: RenderOptions): Iterable<Segment>;
138
+ join(left: T | null, right: T | null): Renderable;
139
+ }
140
+ export interface PlainJoinerOptions {
141
+ separator?: string;
142
+ style?: Style;
143
+ }
144
+ export declare class PlainJoiner<T extends StyledRenderable = StyledRenderable> implements Joiner<T> {
145
+ private readonly _separator;
146
+ private readonly _style;
147
+ constructor(options?: PlainJoinerOptions);
148
+ join(left: T | null, right: T | null): Renderable;
149
+ }
150
+ export interface GradientJoinerOptions {
151
+ /** Number of cells between adjacent items (default: 4). */
152
+ steps?: number;
153
+ }
154
+ export declare class GradientJoiner<T extends StyledRenderable = StyledRenderable> implements Joiner<T> {
155
+ private readonly _steps;
156
+ constructor(options?: GradientJoinerOptions);
157
+ join(left: T | null, right: T | null): Renderable;
158
+ }
159
+ //# sourceMappingURL=strip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../../src/core/strip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Strip + Joiner — edge-aware horizontal layout primitive.
3
+ *
4
+ * A `Strip` renders a horizontal sequence of styled items with a `Joiner`
5
+ * deciding how each transition between adjacent items looks. The joiner is
6
+ * a pure function of `(leftItem | null, rightItem | null) -> Renderable`,
7
+ * so endpoint joins (the start and end of the strip) are explicit positions
8
+ * in the protocol — the joiner names what an endpoint looks like rather than
9
+ * the strip guessing.
10
+ *
11
+ * [LAW:one-source-of-truth] The render walk
12
+ * joiner(null, items[0]), items[0],
13
+ * joiner(items[0], items[1]), items[1], ...,
14
+ * joiner(items[N-1], null)
15
+ * is the single authority for how strips lay out. Every joiner participates
16
+ * in the same protocol; "look up the previous segment's bg" is no longer a
17
+ * powerline-specific hack but the contract every joiner shares.
18
+ */
19
+ import { Segment } from "./segment.js";
20
+ import { Style, NULL_STYLE } from "./style.js";
21
+ import { ColorSpec, blendRgb } from "./color.js";
22
+ /**
23
+ * Canonical safe implementation of `StyledRenderable`. Two construction
24
+ * shapes:
25
+ *
26
+ * - `new StripCell(text, style)` — a single styled run. One segment out.
27
+ * - `new StripCell(parts, style)` — multiple runs sharing one cell-level
28
+ * `style`. Each part may carry its own fg / attribute overlay; cell-level
29
+ * `style` always governs the bg. Consumers needing inline fg variation
30
+ * (e.g. `[ main S +3 -2 ]` where `S`/`+3` are green, `-2` is red, all on
31
+ * the same blue bg) use this shape instead of writing a custom
32
+ * `StyledRenderable`.
33
+ *
34
+ * Both shapes satisfy the single-style invariant by construction: parts with
35
+ * `bgcolor` set are rejected, so every emitted `Segment`'s bg matches
36
+ * `this.style.bgcolor` (or is undefined when the cell has no bg).
37
+ */
38
+ export class StripCell {
39
+ text;
40
+ style;
41
+ _parts;
42
+ constructor(textOrParts, style) {
43
+ this.style = style ?? NULL_STYLE;
44
+ if (typeof textOrParts === "string") {
45
+ this.text = textOrParts;
46
+ this._parts = [{ text: textOrParts }];
47
+ return;
48
+ }
49
+ // [LAW:single-enforcer] cell-level bg is the only joiner-visible bg.
50
+ // Reject parts that try to set their own bg at construction so the
51
+ // invariant cannot be silently broken downstream.
52
+ for (const part of textOrParts) {
53
+ if (part.style?.bgcolor !== undefined) {
54
+ throw new Error("StripCell part style must not set bgcolor — cell-level style governs the bg (single-style invariant). Use the cell `style` argument for bg.");
55
+ }
56
+ }
57
+ this._parts = textOrParts.slice();
58
+ this.text = textOrParts.map((p) => p.text).join("");
59
+ }
60
+ *render(_options) {
61
+ // [LAW:dataflow-not-control-flow] The walk is identical for both
62
+ // construction shapes: one part for the (text, style) form, N parts for
63
+ // the parts form. Variability lives in `_parts`, not in branching here.
64
+ for (const part of this._parts) {
65
+ const partStyle = part.style;
66
+ // `Style.add` keeps `this.style.bgcolor` whenever the overlay's bg is
67
+ // undefined — and the constructor guarantees that. So the merged style
68
+ // always satisfies `merged.bgcolor === this.style.bgcolor`.
69
+ const style = partStyle ? this.style.add(partStyle) : this.style;
70
+ yield new Segment(part.text, style);
71
+ }
72
+ }
73
+ }
74
+ // --- Strip ---
75
+ export class Strip {
76
+ items;
77
+ joiner;
78
+ constructor(items, joiner) {
79
+ this.items = items;
80
+ this.joiner = joiner;
81
+ }
82
+ *render(options) {
83
+ const items = this.items;
84
+ if (items.length === 0)
85
+ return;
86
+ // [LAW:dataflow-not-control-flow] The walk is the same shape every render:
87
+ // start-cap, item, mid-join, item, ..., item, end-cap. Variability lives
88
+ // in `items` and in what the joiner emits at each position — never in
89
+ // whether a join runs.
90
+ yield* this.joiner.join(null, items[0]).render(options);
91
+ for (let i = 0; i < items.length; i++) {
92
+ const item = items[i];
93
+ yield* item.render(options);
94
+ const next = i + 1 < items.length ? items[i + 1] : null;
95
+ yield* this.joiner.join(item, next).render(options);
96
+ }
97
+ }
98
+ }
99
+ // --- Helpers ---
100
+ const EMPTY = {
101
+ *render(_options) {
102
+ // intentionally empty
103
+ },
104
+ };
105
+ class FixedSegment {
106
+ _text;
107
+ _style;
108
+ constructor(text, style) {
109
+ this._text = text;
110
+ this._style = style;
111
+ }
112
+ *render(_options) {
113
+ yield new Segment(this._text, this._style);
114
+ }
115
+ }
116
+ function bgAsFg(item) {
117
+ // Endpoint and powerline join glyphs paint the previous/next item's bg
118
+ // *as* their fg. If the source item has no bgcolor, the glyph degrades to
119
+ // the default fg — which renders as nothing visible against the terminal
120
+ // background, the right outcome for an unstyled cell.
121
+ return new Style({ color: item.style.bgcolor });
122
+ }
123
+ export class PowerlineJoiner {
124
+ _glyph;
125
+ constructor(options) {
126
+ this._glyph = options?.glyph ?? "\ue0b0";
127
+ }
128
+ join(left, right) {
129
+ // Start cap: empty. A right-pointing arrow with no source segment to its
130
+ // left has nothing to bleed out *from*, so the first segment just begins
131
+ // cleanly. This matches vim-airline / tmux-powerline / claude-powerline.
132
+ if (left === null)
133
+ return EMPTY;
134
+ if (right === null) {
135
+ // End cap: fg = left.bg, no bg — last segment bleeds out into the
136
+ // terminal background.
137
+ return new FixedSegment(this._glyph, bgAsFg(left));
138
+ }
139
+ // Middle: fg = left.bg, bg = right.bg.
140
+ return new FixedSegment(this._glyph, new Style({ color: left.style.bgcolor, bgcolor: right.style.bgcolor }));
141
+ }
142
+ }
143
+ export class CapsuleJoiner {
144
+ _left;
145
+ _right;
146
+ _separator;
147
+ constructor(options) {
148
+ this._left = options?.left ?? "\ue0b6";
149
+ this._right = options?.right ?? "\ue0b4";
150
+ this._separator = options?.separator ?? " ";
151
+ }
152
+ *_emit(left, right, options) {
153
+ if (left === null && right === null)
154
+ return;
155
+ if (left === null) {
156
+ yield new Segment(this._left, bgAsFg(right));
157
+ return;
158
+ }
159
+ if (right === null) {
160
+ yield new Segment(this._right, bgAsFg(left));
161
+ return;
162
+ }
163
+ // Middle: close the left capsule, separator (unstyled), open the right.
164
+ yield new Segment(this._right, bgAsFg(left));
165
+ if (this._separator.length > 0)
166
+ yield new Segment(this._separator);
167
+ yield new Segment(this._left, bgAsFg(right));
168
+ void options;
169
+ }
170
+ join(left, right) {
171
+ const emit = this._emit.bind(this);
172
+ return {
173
+ *render(options) {
174
+ yield* emit(left, right, options);
175
+ },
176
+ };
177
+ }
178
+ }
179
+ export class PlainJoiner {
180
+ _separator;
181
+ _style;
182
+ constructor(options) {
183
+ this._separator = options?.separator ?? " | ";
184
+ this._style = options?.style ?? Style.parse("dim");
185
+ }
186
+ join(left, right) {
187
+ // Endpoints are empty — a fixed separator has no natural cap.
188
+ if (left === null || right === null)
189
+ return EMPTY;
190
+ return new FixedSegment(this._separator, this._style);
191
+ }
192
+ }
193
+ /**
194
+ * Half-block dithering glyph: paints the cell's left half with the foreground
195
+ * colour and the right half with the background colour. Lets each cell carry
196
+ * two colour samples — `2 * steps` samples in `steps` cells — so the gradient
197
+ * looks twice as smooth as one-colour-per-cell at the same width.
198
+ */
199
+ const HALF_BLOCK = "\u258c"; // ▌
200
+ export class GradientJoiner {
201
+ _steps;
202
+ constructor(options) {
203
+ this._steps = options?.steps ?? 4;
204
+ }
205
+ join(left, right) {
206
+ // [LAW:dataflow-not-control-flow] Endpoints have no opposite anchor to
207
+ // interpolate toward — the data (a missing neighbor) makes the gradient
208
+ // empty. Same for items lacking a bgcolor: nothing to blend between.
209
+ if (left === null || right === null)
210
+ return EMPTY;
211
+ const lbg = left.style.bgcolor;
212
+ const rbg = right.style.bgcolor;
213
+ if (!lbg || !rbg)
214
+ return EMPTY;
215
+ const lTrip = lbg.getTruecolor();
216
+ const rTrip = rbg.getTruecolor();
217
+ const steps = this._steps;
218
+ const samples = 2 * steps;
219
+ // Midpoint sampling across `2 * steps` half-cell positions: sample j has
220
+ // t = (j + 0.5) / samples. Cell i takes samples 2i (left half) and 2i+1
221
+ // (right half). No sample ever equals either anchor.
222
+ const segments = [];
223
+ for (let i = 0; i < steps; i++) {
224
+ const tLeft = (2 * i + 0.5) / samples;
225
+ const tRight = (2 * i + 1.5) / samples;
226
+ const fg = ColorSpec.fromRgba(blendRgb(lTrip, rTrip, tLeft));
227
+ const bg = ColorSpec.fromRgba(blendRgb(lTrip, rTrip, tRight));
228
+ segments.push(new Segment(HALF_BLOCK, new Style({ color: fg, bgcolor: bg })));
229
+ }
230
+ return {
231
+ *render(_options) {
232
+ yield* segments;
233
+ },
234
+ };
235
+ }
236
+ }
237
+ //# sourceMappingURL=strip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip.js","sourceRoot":"","sources":["../../src/core/strip.ts"],"names":[],"mappings":"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"}