@kingkoo1985/ink 6.6.6

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 (225) hide show
  1. package/build/colorize.d.ts +4 -0
  2. package/build/colorize.js +59 -0
  3. package/build/colorize.js.map +1 -0
  4. package/build/components/AccessibilityContext.d.ts +3 -0
  5. package/build/components/AccessibilityContext.js +5 -0
  6. package/build/components/AccessibilityContext.js.map +1 -0
  7. package/build/components/App.d.ts +68 -0
  8. package/build/components/App.js +290 -0
  9. package/build/components/App.js.map +1 -0
  10. package/build/components/AppContext.d.ts +52 -0
  11. package/build/components/AppContext.js +16 -0
  12. package/build/components/AppContext.js.map +1 -0
  13. package/build/components/BackgroundContext.d.ts +4 -0
  14. package/build/components/BackgroundContext.js +3 -0
  15. package/build/components/BackgroundContext.js.map +1 -0
  16. package/build/components/Box.d.ts +171 -0
  17. package/build/components/Box.js +40 -0
  18. package/build/components/Box.js.map +1 -0
  19. package/build/components/ErrorOverview.d.ts +6 -0
  20. package/build/components/ErrorOverview.js +84 -0
  21. package/build/components/ErrorOverview.js.map +1 -0
  22. package/build/components/FocusContext.d.ts +16 -0
  23. package/build/components/FocusContext.js +16 -0
  24. package/build/components/FocusContext.js.map +1 -0
  25. package/build/components/Newline.d.ts +13 -0
  26. package/build/components/Newline.js +8 -0
  27. package/build/components/Newline.js.map +1 -0
  28. package/build/components/Spacer.d.ts +7 -0
  29. package/build/components/Spacer.js +11 -0
  30. package/build/components/Spacer.js.map +1 -0
  31. package/build/components/Static.d.ts +24 -0
  32. package/build/components/Static.js +29 -0
  33. package/build/components/Static.js.map +1 -0
  34. package/build/components/StaticRender.d.ts +8 -0
  35. package/build/components/StaticRender.js +19 -0
  36. package/build/components/StaticRender.js.map +1 -0
  37. package/build/components/StderrContext.d.ts +15 -0
  38. package/build/components/StderrContext.js +12 -0
  39. package/build/components/StderrContext.js.map +1 -0
  40. package/build/components/StdinContext.d.ts +22 -0
  41. package/build/components/StdinContext.js +16 -0
  42. package/build/components/StdinContext.js.map +1 -0
  43. package/build/components/StdoutContext.d.ts +15 -0
  44. package/build/components/StdoutContext.js +12 -0
  45. package/build/components/StdoutContext.js.map +1 -0
  46. package/build/components/Text.d.ts +63 -0
  47. package/build/components/Text.js +50 -0
  48. package/build/components/Text.js.map +1 -0
  49. package/build/components/Transform.d.ts +16 -0
  50. package/build/components/Transform.js +15 -0
  51. package/build/components/Transform.js.map +1 -0
  52. package/build/data-limited-lru-map.d.ts +20 -0
  53. package/build/data-limited-lru-map.js +65 -0
  54. package/build/data-limited-lru-map.js.map +1 -0
  55. package/build/debug-log.d.ts +2 -0
  56. package/build/debug-log.js +44 -0
  57. package/build/debug-log.js.map +1 -0
  58. package/build/devtools-window-polyfill.d.ts +1 -0
  59. package/build/devtools-window-polyfill.js +65 -0
  60. package/build/devtools-window-polyfill.js.map +1 -0
  61. package/build/devtools.d.ts +1 -0
  62. package/build/devtools.js +8 -0
  63. package/build/devtools.js.map +1 -0
  64. package/build/dom.d.ts +114 -0
  65. package/build/dom.js +169 -0
  66. package/build/dom.js.map +1 -0
  67. package/build/get-max-width.d.ts +3 -0
  68. package/build/get-max-width.js +10 -0
  69. package/build/get-max-width.js.map +1 -0
  70. package/build/hooks/use-app.d.ts +5 -0
  71. package/build/hooks/use-app.js +8 -0
  72. package/build/hooks/use-app.js.map +1 -0
  73. package/build/hooks/use-focus-manager.d.ts +28 -0
  74. package/build/hooks/use-focus-manager.js +17 -0
  75. package/build/hooks/use-focus-manager.js.map +1 -0
  76. package/build/hooks/use-focus.d.ts +29 -0
  77. package/build/hooks/use-focus.js +42 -0
  78. package/build/hooks/use-focus.js.map +1 -0
  79. package/build/hooks/use-input.d.ts +93 -0
  80. package/build/hooks/use-input.js +92 -0
  81. package/build/hooks/use-input.js.map +1 -0
  82. package/build/hooks/use-is-screen-reader-enabled.d.ts +5 -0
  83. package/build/hooks/use-is-screen-reader-enabled.js +11 -0
  84. package/build/hooks/use-is-screen-reader-enabled.js.map +1 -0
  85. package/build/hooks/use-stderr.d.ts +5 -0
  86. package/build/hooks/use-stderr.js +8 -0
  87. package/build/hooks/use-stderr.js.map +1 -0
  88. package/build/hooks/use-stdin.d.ts +5 -0
  89. package/build/hooks/use-stdin.js +8 -0
  90. package/build/hooks/use-stdin.js.map +1 -0
  91. package/build/hooks/use-stdout.d.ts +5 -0
  92. package/build/hooks/use-stdout.js +8 -0
  93. package/build/hooks/use-stdout.js.map +1 -0
  94. package/build/index.d.ts +38 -0
  95. package/build/index.js +27 -0
  96. package/build/index.js.map +1 -0
  97. package/build/ink.d.ts +110 -0
  98. package/build/ink.js +576 -0
  99. package/build/ink.js.map +1 -0
  100. package/build/instances.d.ts +3 -0
  101. package/build/instances.js +8 -0
  102. package/build/instances.js.map +1 -0
  103. package/build/layout.d.ts +18 -0
  104. package/build/layout.js +54 -0
  105. package/build/layout.js.map +1 -0
  106. package/build/log-update.d.ts +28 -0
  107. package/build/log-update.js +529 -0
  108. package/build/log-update.js.map +1 -0
  109. package/build/measure-element.d.ts +119 -0
  110. package/build/measure-element.js +825 -0
  111. package/build/measure-element.js.map +1 -0
  112. package/build/measure-text.d.ts +50 -0
  113. package/build/measure-text.js +237 -0
  114. package/build/measure-text.js.map +1 -0
  115. package/build/output.d.ts +242 -0
  116. package/build/output.js +607 -0
  117. package/build/output.js.map +1 -0
  118. package/build/parse-keypress.d.ts +14 -0
  119. package/build/parse-keypress.js +225 -0
  120. package/build/parse-keypress.js.map +1 -0
  121. package/build/reconciler.d.ts +4 -0
  122. package/build/reconciler.js +326 -0
  123. package/build/reconciler.js.map +1 -0
  124. package/build/render-background.d.ts +4 -0
  125. package/build/render-background.js +37 -0
  126. package/build/render-background.js.map +1 -0
  127. package/build/render-border.d.ts +4 -0
  128. package/build/render-border.js +81 -0
  129. package/build/render-border.js.map +1 -0
  130. package/build/render-cached.d.ts +18 -0
  131. package/build/render-cached.js +66 -0
  132. package/build/render-cached.js.map +1 -0
  133. package/build/render-container.d.ts +27 -0
  134. package/build/render-container.js +169 -0
  135. package/build/render-container.js.map +1 -0
  136. package/build/render-node-to-output.d.ts +32 -0
  137. package/build/render-node-to-output.js +177 -0
  138. package/build/render-node-to-output.js.map +1 -0
  139. package/build/render-screen-reader.d.ts +5 -0
  140. package/build/render-screen-reader.js +54 -0
  141. package/build/render-screen-reader.js.map +1 -0
  142. package/build/render-scrollbar.d.ts +23 -0
  143. package/build/render-scrollbar.js +70 -0
  144. package/build/render-scrollbar.js.map +1 -0
  145. package/build/render-sticky.d.ts +53 -0
  146. package/build/render-sticky.js +317 -0
  147. package/build/render-sticky.js.map +1 -0
  148. package/build/render-text-node.d.ts +20 -0
  149. package/build/render-text-node.js +155 -0
  150. package/build/render-text-node.js.map +1 -0
  151. package/build/render.d.ts +165 -0
  152. package/build/render.js +60 -0
  153. package/build/render.js.map +1 -0
  154. package/build/renderer.d.ts +24 -0
  155. package/build/renderer.js +292 -0
  156. package/build/renderer.js.map +1 -0
  157. package/build/replay.d.ts +59 -0
  158. package/build/replay.js +128 -0
  159. package/build/replay.js.map +1 -0
  160. package/build/resize-observer.d.ts +24 -0
  161. package/build/resize-observer.js +102 -0
  162. package/build/resize-observer.js.map +1 -0
  163. package/build/scroll.d.ts +11 -0
  164. package/build/scroll.js +123 -0
  165. package/build/scroll.js.map +1 -0
  166. package/build/selection.d.ts +52 -0
  167. package/build/selection.js +359 -0
  168. package/build/selection.js.map +1 -0
  169. package/build/serialization.d.ts +25 -0
  170. package/build/serialization.js +224 -0
  171. package/build/serialization.js.map +1 -0
  172. package/build/squash-text-nodes.d.ts +16 -0
  173. package/build/squash-text-nodes.js +58 -0
  174. package/build/squash-text-nodes.js.map +1 -0
  175. package/build/styled-line.d.ts +58 -0
  176. package/build/styled-line.js +629 -0
  177. package/build/styled-line.js.map +1 -0
  178. package/build/styles.d.ts +286 -0
  179. package/build/styles.js +257 -0
  180. package/build/styles.js.map +1 -0
  181. package/build/terminal-buffer.d.ts +57 -0
  182. package/build/terminal-buffer.js +507 -0
  183. package/build/terminal-buffer.js.map +1 -0
  184. package/build/text-wrap.d.ts +12 -0
  185. package/build/text-wrap.js +154 -0
  186. package/build/text-wrap.js.map +1 -0
  187. package/build/tokenize.d.ts +47 -0
  188. package/build/tokenize.js +419 -0
  189. package/build/tokenize.js.map +1 -0
  190. package/build/vertical-gap.d.ts +17 -0
  191. package/build/vertical-gap.js +20 -0
  192. package/build/vertical-gap.js.map +1 -0
  193. package/build/worker/animation-controller.d.ts +72 -0
  194. package/build/worker/animation-controller.js +128 -0
  195. package/build/worker/animation-controller.js.map +1 -0
  196. package/build/worker/ansi-utils.d.ts +16 -0
  197. package/build/worker/ansi-utils.js +40 -0
  198. package/build/worker/ansi-utils.js.map +1 -0
  199. package/build/worker/canvas.d.ts +49 -0
  200. package/build/worker/canvas.js +90 -0
  201. package/build/worker/canvas.js.map +1 -0
  202. package/build/worker/compositor.d.ts +33 -0
  203. package/build/worker/compositor.js +308 -0
  204. package/build/worker/compositor.js.map +1 -0
  205. package/build/worker/platform.d.ts +15 -0
  206. package/build/worker/platform.js +19 -0
  207. package/build/worker/platform.js.map +1 -0
  208. package/build/worker/render-worker.d.ts +112 -0
  209. package/build/worker/render-worker.js +944 -0
  210. package/build/worker/render-worker.js.map +1 -0
  211. package/build/worker/scene-manager.d.ts +26 -0
  212. package/build/worker/scene-manager.js +109 -0
  213. package/build/worker/scene-manager.js.map +1 -0
  214. package/build/worker/scroll-optimizer.d.ts +32 -0
  215. package/build/worker/scroll-optimizer.js +110 -0
  216. package/build/worker/scroll-optimizer.js.map +1 -0
  217. package/build/worker/terminal-writer.d.ts +116 -0
  218. package/build/worker/terminal-writer.js +708 -0
  219. package/build/worker/terminal-writer.js.map +1 -0
  220. package/build/worker/worker-entry.d.ts +6 -0
  221. package/build/worker/worker-entry.js +130 -0
  222. package/build/worker/worker-entry.js.map +1 -0
  223. package/license +9 -0
  224. package/package.json +208 -0
  225. package/readme.md +2353 -0
@@ -0,0 +1,286 @@
1
+ import { type Boxes, type BoxStyle } from 'cli-boxes';
2
+ import { type LiteralUnion } from 'type-fest';
3
+ import { type ForegroundColorName } from 'ansi-styles';
4
+ import { type Node as YogaNode } from 'yoga-layout';
5
+ export type Styles = {
6
+ readonly textWrap?: 'wrap' | 'end' | 'middle' | 'truncate-end' | 'truncate' | 'truncate-middle' | 'truncate-start';
7
+ readonly position?: 'absolute' | 'relative';
8
+ /**
9
+ Size of the gap between an element's columns.
10
+ */
11
+ readonly columnGap?: number;
12
+ /**
13
+ Size of the gap between an element's rows.
14
+ */
15
+ readonly rowGap?: number;
16
+ /**
17
+ Size of the gap between an element's columns and rows. A shorthand for `columnGap` and `rowGap`.
18
+ */
19
+ readonly gap?: number;
20
+ /**
21
+ Margin on all sides. Equivalent to setting `marginTop`, `marginBottom`, `marginLeft`, and `marginRight`.
22
+ */
23
+ readonly margin?: number;
24
+ /**
25
+ Horizontal margin. Equivalent to setting `marginLeft` and `marginRight`.
26
+ */
27
+ readonly marginX?: number;
28
+ /**
29
+ Vertical margin. Equivalent to setting `marginTop` and `marginBottom`.
30
+ */
31
+ readonly marginY?: number;
32
+ /**
33
+ Top margin.
34
+ */
35
+ readonly marginTop?: number;
36
+ /**
37
+ Bottom margin.
38
+ */
39
+ readonly marginBottom?: number;
40
+ /**
41
+ Left margin.
42
+ */
43
+ readonly marginLeft?: number;
44
+ /**
45
+ Right margin.
46
+ */
47
+ readonly marginRight?: number;
48
+ /**
49
+ Padding on all sides. Equivalent to setting `paddingTop`, `paddingBottom`, `paddingLeft`, and `paddingRight`.
50
+ */
51
+ readonly padding?: number;
52
+ /**
53
+ Horizontal padding. Equivalent to setting `paddingLeft` and `paddingRight`.
54
+ */
55
+ readonly paddingX?: number;
56
+ /**
57
+ Vertical padding. Equivalent to setting `paddingTop` and `paddingBottom`.
58
+ */
59
+ readonly paddingY?: number;
60
+ /**
61
+ Top padding.
62
+ */
63
+ readonly paddingTop?: number;
64
+ /**
65
+ Bottom padding.
66
+ */
67
+ readonly paddingBottom?: number;
68
+ /**
69
+ Left padding.
70
+ */
71
+ readonly paddingLeft?: number;
72
+ /**
73
+ Right padding.
74
+ */
75
+ readonly paddingRight?: number;
76
+ /**
77
+ This property defines the ability for a flex item to grow if necessary.
78
+ See [flex-grow](https://css-tricks.com/almanac/properties/f/flex-grow/).
79
+ */
80
+ readonly flexGrow?: number;
81
+ /**
82
+ It specifies the “flex shrink factor”, which determines how much the flex item will shrink relative to the rest of the flex items in the flex container when there isn’t enough space on the row.
83
+ See [flex-shrink](https://css-tricks.com/almanac/properties/f/flex-shrink/).
84
+ */
85
+ readonly flexShrink?: number;
86
+ /**
87
+ It establishes the main-axis, thus defining the direction flex items are placed in the flex container.
88
+ See [flex-direction](https://css-tricks.com/almanac/properties/f/flex-direction/).
89
+ */
90
+ readonly flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
91
+ /**
92
+ It specifies the initial size of the flex item, before any available space is distributed according to the flex factors.
93
+ See [flex-basis](https://css-tricks.com/almanac/properties/f/flex-basis/).
94
+ */
95
+ readonly flexBasis?: number | string;
96
+ /**
97
+ It defines whether the flex items are forced in a single line or can be flowed into multiple lines. If set to multiple lines, it also defines the cross-axis which determines the direction new lines are stacked in.
98
+ See [flex-wrap](https://css-tricks.com/almanac/properties/f/flex-wrap/).
99
+ */
100
+ readonly flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
101
+ /**
102
+ The align-items property defines the default behavior for how items are laid out along the cross axis (perpendicular to the main axis).
103
+ See [align-items](https://css-tricks.com/almanac/properties/a/align-items/).
104
+ */
105
+ readonly alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch';
106
+ /**
107
+ It makes possible to override the align-items value for specific flex items.
108
+ See [align-self](https://css-tricks.com/almanac/properties/a/align-self/).
109
+ */
110
+ readonly alignSelf?: 'flex-start' | 'center' | 'flex-end' | 'auto';
111
+ /**
112
+ It defines the alignment along the main axis.
113
+ See [justify-content](https://css-tricks.com/almanac/properties/j/justify-content/).
114
+ */
115
+ readonly justifyContent?: 'flex-start' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly' | 'center';
116
+ /**
117
+ Width of the element in spaces. You can also set it as a percentage, which will calculate the width based on the width of the parent element.
118
+ */
119
+ readonly width?: number | string;
120
+ /**
121
+ Height of the element in lines (rows). You can also set it as a percentage, which will calculate the height based on the height of the parent element.
122
+ */
123
+ readonly height?: number | string;
124
+ /**
125
+ Sets a minimum width of the element.
126
+ */
127
+ readonly minWidth?: number | string;
128
+ /**
129
+ Sets a minimum height of the element.
130
+ */
131
+ readonly minHeight?: number | string;
132
+ /**
133
+ Maximum width of the element.
134
+ */
135
+ readonly maxWidth?: number | string;
136
+ /**
137
+ Maximum height of the element.
138
+ */
139
+ readonly maxHeight?: number | string;
140
+ /**
141
+ Set this property to `none` to hide the element.
142
+ */
143
+ readonly display?: 'flex' | 'none';
144
+ /**
145
+ Add a border with a specified style. If `borderStyle` is `undefined` (the default), no border will be added.
146
+ */
147
+ readonly borderStyle?: keyof Boxes | BoxStyle;
148
+ /**
149
+ Determines whether top border is visible.
150
+
151
+ @default true
152
+ */
153
+ readonly borderTop?: boolean;
154
+ /**
155
+ Determines whether bottom border is visible.
156
+
157
+ @default true
158
+ */
159
+ readonly borderBottom?: boolean;
160
+ /**
161
+ Determines whether left border is visible.
162
+
163
+ @default true
164
+ */
165
+ readonly borderLeft?: boolean;
166
+ /**
167
+ Determines whether right border is visible.
168
+
169
+ @default true
170
+ */
171
+ readonly borderRight?: boolean;
172
+ /**
173
+ Change border color. A shorthand for setting `borderTopColor`, `borderRightColor`, `borderBottomColor`, and `borderLeftColor`.
174
+ */
175
+ readonly borderColor?: LiteralUnion<ForegroundColorName, string>;
176
+ /**
177
+ Change top border color. Accepts the same values as `color` in `Text` component.
178
+ */
179
+ readonly borderTopColor?: LiteralUnion<ForegroundColorName, string>;
180
+ /**
181
+ Change bottom border color. Accepts the same values as `color` in `Text` component.
182
+ */
183
+ readonly borderBottomColor?: LiteralUnion<ForegroundColorName, string>;
184
+ /**
185
+ Change left border color. Accepts the same values as `color` in `Text` component.
186
+ */
187
+ readonly borderLeftColor?: LiteralUnion<ForegroundColorName, string>;
188
+ /**
189
+ Change right border color. Accepts the same values as `color` in `Text` component.
190
+ */
191
+ readonly borderRightColor?: LiteralUnion<ForegroundColorName, string>;
192
+ /**
193
+ Dim the border color. A shorthand for setting `borderTopDimColor`, `borderBottomDimColor`, `borderLeftDimColor`, and `borderRightDimColor`.
194
+
195
+ @default false
196
+ */
197
+ readonly borderDimColor?: boolean;
198
+ /**
199
+ Dim the top border color.
200
+
201
+ @default false
202
+ */
203
+ readonly borderTopDimColor?: boolean;
204
+ /**
205
+ Dim the bottom border color.
206
+
207
+ @default false
208
+ */
209
+ readonly borderBottomDimColor?: boolean;
210
+ /**
211
+ Dim the left border color.
212
+
213
+ @default false
214
+ */
215
+ readonly borderLeftDimColor?: boolean;
216
+ /**
217
+ Dim the right border color.
218
+
219
+ @default false
220
+ */
221
+ readonly borderRightDimColor?: boolean;
222
+ /**
223
+ Behavior for an element's overflow in both directions.
224
+
225
+ @default 'visible'
226
+ */
227
+ readonly overflow?: 'visible' | 'hidden' | 'scroll';
228
+ /**
229
+ Behavior for an element's overflow in the horizontal direction.
230
+
231
+ @default 'visible'
232
+ */
233
+ readonly overflowX?: 'visible' | 'hidden' | 'scroll';
234
+ /**
235
+ Behavior for an element's overflow in the vertical direction.
236
+
237
+ @default 'visible'
238
+ */
239
+ readonly overflowY?: 'visible' | 'hidden' | 'scroll';
240
+ /**
241
+ If true, content that is scrolled out of the top of the box (when overflowY is 'scroll')
242
+ will be added to the terminal's scrollback history.
243
+
244
+ Results are undefined if more than one scrollable region in the app has
245
+ overflowToBackbuffer enabled.
246
+
247
+ @default false
248
+ */
249
+ readonly overflowToBackbuffer?: boolean;
250
+ /**
251
+ If true, and `overflowToBackbuffer` is also enabled, the `scrollHeight` of the box
252
+ will never decrease as long as the existing history remains valid.
253
+ This prevents the terminal's scrollback from being corrupted when content shrinks.
254
+
255
+ @default false
256
+ */
257
+ readonly stableScrollback?: boolean;
258
+ /**
259
+ Background color for the element.
260
+
261
+ Accepts the same values as `color` in the `<Text>` component.
262
+ */
263
+ readonly backgroundColor?: LiteralUnion<ForegroundColorName, string>;
264
+ /**
265
+ Vertical scroll position.
266
+ */
267
+ readonly scrollTop?: number;
268
+ /**
269
+ Horizontal scroll position.
270
+ */
271
+ readonly scrollLeft?: number;
272
+ /**
273
+ Color of the scrollbar thumb.
274
+ */
275
+ readonly scrollbarThumbColor?: LiteralUnion<ForegroundColorName, string>;
276
+ /**
277
+ Determines whether the user can select text.
278
+ - `auto`: The user can select text.
279
+ - `none`: The user cannot select text.
280
+ - `text`: The user can select text.
281
+ - `all`: The user can select all text.
282
+ */
283
+ readonly userSelect?: 'auto' | 'none' | 'text' | 'all';
284
+ };
285
+ declare const styles: (node: YogaNode, style?: Styles) => void;
286
+ export default styles;
@@ -0,0 +1,257 @@
1
+ import Yoga from 'yoga-layout';
2
+ const applyPositionStyles = (node, style) => {
3
+ if ('position' in style) {
4
+ node.setPositionType(style.position === 'absolute'
5
+ ? Yoga.POSITION_TYPE_ABSOLUTE
6
+ : Yoga.POSITION_TYPE_RELATIVE);
7
+ }
8
+ };
9
+ const applyMarginStyles = (node, style) => {
10
+ if ('margin' in style) {
11
+ node.setMargin(Yoga.EDGE_ALL, style.margin ?? 0);
12
+ }
13
+ if ('marginX' in style) {
14
+ node.setMargin(Yoga.EDGE_HORIZONTAL, style.marginX ?? 0);
15
+ }
16
+ if ('marginY' in style) {
17
+ node.setMargin(Yoga.EDGE_VERTICAL, style.marginY ?? 0);
18
+ }
19
+ if ('marginLeft' in style) {
20
+ node.setMargin(Yoga.EDGE_START, style.marginLeft || 0);
21
+ }
22
+ if ('marginRight' in style) {
23
+ node.setMargin(Yoga.EDGE_END, style.marginRight || 0);
24
+ }
25
+ if ('marginTop' in style) {
26
+ node.setMargin(Yoga.EDGE_TOP, style.marginTop || 0);
27
+ }
28
+ if ('marginBottom' in style) {
29
+ node.setMargin(Yoga.EDGE_BOTTOM, style.marginBottom || 0);
30
+ }
31
+ };
32
+ const applyPaddingStyles = (node, style) => {
33
+ if ('padding' in style) {
34
+ node.setPadding(Yoga.EDGE_ALL, style.padding ?? 0);
35
+ }
36
+ if ('paddingX' in style) {
37
+ node.setPadding(Yoga.EDGE_HORIZONTAL, style.paddingX ?? 0);
38
+ }
39
+ if ('paddingY' in style) {
40
+ node.setPadding(Yoga.EDGE_VERTICAL, style.paddingY ?? 0);
41
+ }
42
+ if ('paddingLeft' in style) {
43
+ node.setPadding(Yoga.EDGE_LEFT, style.paddingLeft || 0);
44
+ }
45
+ if ('paddingRight' in style) {
46
+ node.setPadding(Yoga.EDGE_RIGHT, style.paddingRight || 0);
47
+ }
48
+ if ('paddingTop' in style) {
49
+ node.setPadding(Yoga.EDGE_TOP, style.paddingTop || 0);
50
+ }
51
+ if ('paddingBottom' in style) {
52
+ node.setPadding(Yoga.EDGE_BOTTOM, style.paddingBottom || 0);
53
+ }
54
+ };
55
+ const applyFlexStyles = (node, style) => {
56
+ if ('flexGrow' in style) {
57
+ node.setFlexGrow(style.flexGrow ?? 0);
58
+ }
59
+ if ('flexShrink' in style) {
60
+ node.setFlexShrink(typeof style.flexShrink === 'number' ? style.flexShrink : 1);
61
+ }
62
+ if ('flexWrap' in style) {
63
+ if (style.flexWrap === 'nowrap') {
64
+ node.setFlexWrap(Yoga.WRAP_NO_WRAP);
65
+ }
66
+ if (style.flexWrap === 'wrap') {
67
+ node.setFlexWrap(Yoga.WRAP_WRAP);
68
+ }
69
+ if (style.flexWrap === 'wrap-reverse') {
70
+ node.setFlexWrap(Yoga.WRAP_WRAP_REVERSE);
71
+ }
72
+ }
73
+ if ('flexDirection' in style) {
74
+ if (style.flexDirection === 'row') {
75
+ node.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
76
+ }
77
+ if (style.flexDirection === 'row-reverse') {
78
+ node.setFlexDirection(Yoga.FLEX_DIRECTION_ROW_REVERSE);
79
+ }
80
+ if (style.flexDirection === 'column') {
81
+ node.setFlexDirection(Yoga.FLEX_DIRECTION_COLUMN);
82
+ }
83
+ if (style.flexDirection === 'column-reverse') {
84
+ node.setFlexDirection(Yoga.FLEX_DIRECTION_COLUMN_REVERSE);
85
+ }
86
+ }
87
+ if ('flexBasis' in style) {
88
+ if (typeof style.flexBasis === 'number') {
89
+ node.setFlexBasis(style.flexBasis);
90
+ }
91
+ else if (typeof style.flexBasis === 'string') {
92
+ node.setFlexBasisPercent(Number.parseInt(style.flexBasis, 10));
93
+ }
94
+ else {
95
+ // This should be replaced with node.setFlexBasisAuto() when new Yoga release is out
96
+ node.setFlexBasis(Number.NaN);
97
+ }
98
+ }
99
+ if ('alignItems' in style) {
100
+ if (style.alignItems === 'stretch' || !style.alignItems) {
101
+ node.setAlignItems(Yoga.ALIGN_STRETCH);
102
+ }
103
+ if (style.alignItems === 'flex-start') {
104
+ node.setAlignItems(Yoga.ALIGN_FLEX_START);
105
+ }
106
+ if (style.alignItems === 'center') {
107
+ node.setAlignItems(Yoga.ALIGN_CENTER);
108
+ }
109
+ if (style.alignItems === 'flex-end') {
110
+ node.setAlignItems(Yoga.ALIGN_FLEX_END);
111
+ }
112
+ }
113
+ if ('alignSelf' in style) {
114
+ if (style.alignSelf === 'auto' || !style.alignSelf) {
115
+ node.setAlignSelf(Yoga.ALIGN_AUTO);
116
+ }
117
+ if (style.alignSelf === 'flex-start') {
118
+ node.setAlignSelf(Yoga.ALIGN_FLEX_START);
119
+ }
120
+ if (style.alignSelf === 'center') {
121
+ node.setAlignSelf(Yoga.ALIGN_CENTER);
122
+ }
123
+ if (style.alignSelf === 'flex-end') {
124
+ node.setAlignSelf(Yoga.ALIGN_FLEX_END);
125
+ }
126
+ }
127
+ if ('justifyContent' in style) {
128
+ if (style.justifyContent === 'flex-start' || !style.justifyContent) {
129
+ node.setJustifyContent(Yoga.JUSTIFY_FLEX_START);
130
+ }
131
+ if (style.justifyContent === 'center') {
132
+ node.setJustifyContent(Yoga.JUSTIFY_CENTER);
133
+ }
134
+ if (style.justifyContent === 'flex-end') {
135
+ node.setJustifyContent(Yoga.JUSTIFY_FLEX_END);
136
+ }
137
+ if (style.justifyContent === 'space-between') {
138
+ node.setJustifyContent(Yoga.JUSTIFY_SPACE_BETWEEN);
139
+ }
140
+ if (style.justifyContent === 'space-around') {
141
+ node.setJustifyContent(Yoga.JUSTIFY_SPACE_AROUND);
142
+ }
143
+ if (style.justifyContent === 'space-evenly') {
144
+ node.setJustifyContent(Yoga.JUSTIFY_SPACE_EVENLY);
145
+ }
146
+ }
147
+ };
148
+ const applyDimensionStyles = (node, style) => {
149
+ if ('width' in style) {
150
+ if (typeof style.width === 'number') {
151
+ node.setWidth(style.width);
152
+ }
153
+ else if (typeof style.width === 'string') {
154
+ node.setWidthPercent(Number.parseInt(style.width, 10));
155
+ }
156
+ else {
157
+ node.setWidthAuto();
158
+ }
159
+ }
160
+ if ('height' in style) {
161
+ if (typeof style.height === 'number') {
162
+ node.setHeight(style.height);
163
+ }
164
+ else if (typeof style.height === 'string') {
165
+ node.setHeightPercent(Number.parseInt(style.height, 10));
166
+ }
167
+ else {
168
+ node.setHeightAuto();
169
+ }
170
+ }
171
+ if ('minWidth' in style) {
172
+ if (typeof style.minWidth === 'string') {
173
+ node.setMinWidthPercent(Number.parseInt(style.minWidth, 10));
174
+ }
175
+ else {
176
+ node.setMinWidth(style.minWidth ?? 0);
177
+ }
178
+ }
179
+ if ('minHeight' in style) {
180
+ if (typeof style.minHeight === 'string') {
181
+ node.setMinHeightPercent(Number.parseInt(style.minHeight, 10));
182
+ }
183
+ else {
184
+ node.setMinHeight(style.minHeight ?? 0);
185
+ }
186
+ }
187
+ if ('maxWidth' in style) {
188
+ if (typeof style.maxWidth === 'string') {
189
+ node.setMaxWidthPercent(Number.parseInt(style.maxWidth, 10));
190
+ }
191
+ else {
192
+ node.setMaxWidth(style.maxWidth);
193
+ }
194
+ }
195
+ if ('maxHeight' in style) {
196
+ if (typeof style.maxHeight === 'string') {
197
+ node.setMaxHeightPercent(Number.parseInt(style.maxHeight, 10));
198
+ }
199
+ else {
200
+ node.setMaxHeight(style.maxHeight);
201
+ }
202
+ }
203
+ };
204
+ const applyDisplayStyles = (node, style) => {
205
+ if ('display' in style) {
206
+ node.setDisplay(style.display === 'flex' ? Yoga.DISPLAY_FLEX : Yoga.DISPLAY_NONE);
207
+ }
208
+ };
209
+ const applyBorderStyles = (node, style) => {
210
+ if ('borderStyle' in style) {
211
+ const borderWidth = style.borderStyle ? 1 : 0;
212
+ if (style.borderTop !== false) {
213
+ node.setBorder(Yoga.EDGE_TOP, borderWidth);
214
+ }
215
+ if (style.borderBottom !== false) {
216
+ node.setBorder(Yoga.EDGE_BOTTOM, borderWidth);
217
+ }
218
+ if (style.borderLeft !== false) {
219
+ node.setBorder(Yoga.EDGE_LEFT, borderWidth);
220
+ }
221
+ if (style.borderRight !== false) {
222
+ node.setBorder(Yoga.EDGE_RIGHT, borderWidth);
223
+ }
224
+ }
225
+ };
226
+ const applyGapStyles = (node, style) => {
227
+ if ('gap' in style) {
228
+ node.setGap(Yoga.GUTTER_ALL, style.gap ?? 0);
229
+ }
230
+ if ('columnGap' in style) {
231
+ node.setGap(Yoga.GUTTER_COLUMN, style.columnGap ?? 0);
232
+ }
233
+ if ('rowGap' in style) {
234
+ node.setGap(Yoga.GUTTER_ROW, style.rowGap ?? 0);
235
+ }
236
+ };
237
+ const applyOverflowStyles = (node, style) => {
238
+ const overflow = style.overflow ?? 'visible';
239
+ const overflowX = style.overflowX ?? overflow;
240
+ const overflowY = style.overflowY ?? overflow;
241
+ if (overflowX === 'scroll' || overflowY === 'scroll') {
242
+ node.setOverflow(Yoga.OVERFLOW_SCROLL);
243
+ }
244
+ };
245
+ const styles = (node, style = {}) => {
246
+ applyPositionStyles(node, style);
247
+ applyMarginStyles(node, style);
248
+ applyPaddingStyles(node, style);
249
+ applyFlexStyles(node, style);
250
+ applyDimensionStyles(node, style);
251
+ applyDisplayStyles(node, style);
252
+ applyBorderStyles(node, style);
253
+ applyGapStyles(node, style);
254
+ applyOverflowStyles(node, style);
255
+ };
256
+ export default styles;
257
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAGA,OAAO,IAA6B,MAAM,aAAa,CAAC;AAkWxD,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACnE,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,CACnB,KAAK,CAAC,QAAQ,KAAK,UAAU;YAC5B,CAAC,CAAC,IAAI,CAAC,sBAAsB;YAC7B,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAC9B,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACjE,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IAClE,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IAC/D,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CACjB,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC;IACH,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,gBAAgB,EAAE,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,oFAAoF;YACpF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACzD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,cAAc,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACpE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACpE,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAED,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IAClE,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CACd,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAChE,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACjE,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IAC9D,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC;IAE9C,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,IAAc,EAAE,QAAgB,EAAE,EAAQ,EAAE;IAC3D,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { StyledLine } from './styled-line.js';
7
+ import { type Region } from './output.js';
8
+ import { type InkOptions } from './components/AppContext.js';
9
+ export default class TerminalBuffer {
10
+ get lines(): StyledLine[];
11
+ private _cachedLines?;
12
+ private lastRootRegion?;
13
+ private readonly serializer;
14
+ private readonly worker?;
15
+ private readonly workerInstance?;
16
+ private readonly resizeListener?;
17
+ private readonly stdout;
18
+ private lastRegions;
19
+ private lastCursorPosition?;
20
+ private lastTree?;
21
+ private lastOptions?;
22
+ private optionsChanged;
23
+ private columns;
24
+ private rows;
25
+ constructor(columns: number, rows: number, options?: {
26
+ debugRainbowEnabled?: boolean;
27
+ renderInProcess?: boolean;
28
+ stdout?: NodeJS.WriteStream;
29
+ isAlternateBufferEnabled?: boolean;
30
+ stickyHeadersInBackbuffer?: boolean;
31
+ animatedScroll?: boolean;
32
+ animationInterval?: number;
33
+ backbufferUpdateDelay?: number;
34
+ maxScrollbackLength?: number;
35
+ forceScrollToBottomOnBackbufferRefresh?: boolean;
36
+ cacheToStyledCharacters?: boolean;
37
+ });
38
+ resize(columns: number, rows: number): void;
39
+ updateOptions(options: InkOptions): void;
40
+ startRecording(filename: string): void;
41
+ stopRecording(): void;
42
+ dumpCurrentFrame(filename: string): void;
43
+ update(_start: number, _end: number, root: Region, cursorPosition?: {
44
+ row: number;
45
+ col: number;
46
+ }): boolean;
47
+ render(): Promise<void>;
48
+ fullRender(): Promise<void>;
49
+ done(): void;
50
+ getLinesUpdated(): Promise<number>;
51
+ resetLinesUpdated(): void;
52
+ destroy(): void;
53
+ private sendToWorker;
54
+ private diffRegion;
55
+ private diffLines;
56
+ private sendEdits;
57
+ }