@effect-tui/react 0.13.0 → 0.14.1

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 (120) hide show
  1. package/README.md +11 -7
  2. package/dist/jsx-runtime.d.ts +1 -2
  3. package/dist/jsx-runtime.d.ts.map +1 -1
  4. package/dist/src/components/Markdown.js +7 -7
  5. package/dist/src/components/Markdown.js.map +1 -1
  6. package/dist/src/components/MultilineTextInput.d.ts.map +1 -1
  7. package/dist/src/components/MultilineTextInput.js +11 -0
  8. package/dist/src/components/MultilineTextInput.js.map +1 -1
  9. package/dist/src/components/TextInput.d.ts.map +1 -1
  10. package/dist/src/components/TextInput.js +15 -0
  11. package/dist/src/components/TextInput.js.map +1 -1
  12. package/dist/src/hosts/base.d.ts +16 -0
  13. package/dist/src/hosts/base.d.ts.map +1 -1
  14. package/dist/src/hosts/base.js +30 -0
  15. package/dist/src/hosts/base.js.map +1 -1
  16. package/dist/src/hosts/box.d.ts.map +1 -1
  17. package/dist/src/hosts/box.js +7 -8
  18. package/dist/src/hosts/box.js.map +1 -1
  19. package/dist/src/hosts/canvas.d.ts.map +1 -1
  20. package/dist/src/hosts/canvas.js +5 -3
  21. package/dist/src/hosts/canvas.js.map +1 -1
  22. package/dist/src/hosts/codeblock.d.ts.map +1 -1
  23. package/dist/src/hosts/codeblock.js +5 -4
  24. package/dist/src/hosts/codeblock.js.map +1 -1
  25. package/dist/src/hosts/flex-container.d.ts.map +1 -1
  26. package/dist/src/hosts/flex-container.js +5 -8
  27. package/dist/src/hosts/flex-container.js.map +1 -1
  28. package/dist/src/hosts/index.d.ts +1 -1
  29. package/dist/src/hosts/index.d.ts.map +1 -1
  30. package/dist/src/hosts/index.js +2 -3
  31. package/dist/src/hosts/index.js.map +1 -1
  32. package/dist/src/hosts/overlay-item.js +2 -2
  33. package/dist/src/hosts/overlay-item.js.map +1 -1
  34. package/dist/src/hosts/overlay.d.ts.map +1 -1
  35. package/dist/src/hosts/overlay.js +6 -11
  36. package/dist/src/hosts/overlay.js.map +1 -1
  37. package/dist/src/hosts/scroll.d.ts +4 -0
  38. package/dist/src/hosts/scroll.d.ts.map +1 -1
  39. package/dist/src/hosts/scroll.js +32 -24
  40. package/dist/src/hosts/scroll.js.map +1 -1
  41. package/dist/src/hosts/spacer.d.ts.map +1 -1
  42. package/dist/src/hosts/spacer.js +1 -3
  43. package/dist/src/hosts/spacer.js.map +1 -1
  44. package/dist/src/hosts/text.d.ts +24 -45
  45. package/dist/src/hosts/text.d.ts.map +1 -1
  46. package/dist/src/hosts/text.js +69 -215
  47. package/dist/src/hosts/text.js.map +1 -1
  48. package/dist/src/hosts/zstack.d.ts.map +1 -1
  49. package/dist/src/hosts/zstack.js +4 -10
  50. package/dist/src/hosts/zstack.js.map +1 -1
  51. package/dist/src/reconciler/types.d.ts +2 -0
  52. package/dist/src/reconciler/types.d.ts.map +1 -1
  53. package/dist/src/renderer/core/FrameBuilder.d.ts.map +1 -1
  54. package/dist/src/renderer/core/FrameBuilder.js +2 -0
  55. package/dist/src/renderer/core/FrameBuilder.js.map +1 -1
  56. package/dist/src/renderer/input/InputProcessor.d.ts.map +1 -1
  57. package/dist/src/renderer/input/InputProcessor.js +5 -2
  58. package/dist/src/renderer/input/InputProcessor.js.map +1 -1
  59. package/dist/src/renderer/lifecycle/RenderCache.d.ts +3 -0
  60. package/dist/src/renderer/lifecycle/RenderCache.d.ts.map +1 -0
  61. package/dist/src/renderer/lifecycle/RenderCache.js +9 -0
  62. package/dist/src/renderer/lifecycle/RenderCache.js.map +1 -0
  63. package/dist/src/renderer/lifecycle/index.d.ts +1 -0
  64. package/dist/src/renderer/lifecycle/index.d.ts.map +1 -1
  65. package/dist/src/renderer/lifecycle/index.js +1 -0
  66. package/dist/src/renderer/lifecycle/index.js.map +1 -1
  67. package/dist/src/renderer-types.d.ts +1 -1
  68. package/dist/src/renderer-types.d.ts.map +1 -1
  69. package/dist/src/renderer.d.ts.map +1 -1
  70. package/dist/src/renderer.js +4 -14
  71. package/dist/src/renderer.js.map +1 -1
  72. package/dist/src/test/render-tui.d.ts.map +1 -1
  73. package/dist/src/test/render-tui.js +1 -0
  74. package/dist/src/test/render-tui.js.map +1 -1
  75. package/dist/src/utils/alignment.d.ts +4 -0
  76. package/dist/src/utils/alignment.d.ts.map +1 -1
  77. package/dist/src/utils/alignment.js +12 -0
  78. package/dist/src/utils/alignment.js.map +1 -1
  79. package/dist/src/utils/index.d.ts +3 -2
  80. package/dist/src/utils/index.d.ts.map +1 -1
  81. package/dist/src/utils/index.js +3 -2
  82. package/dist/src/utils/index.js.map +1 -1
  83. package/dist/src/utils/styles.d.ts +6 -1
  84. package/dist/src/utils/styles.d.ts.map +1 -1
  85. package/dist/src/utils/styles.js +9 -0
  86. package/dist/src/utils/styles.js.map +1 -1
  87. package/dist/src/utils/text-wrap.d.ts +10 -0
  88. package/dist/src/utils/text-wrap.d.ts.map +1 -0
  89. package/dist/src/utils/text-wrap.js +64 -0
  90. package/dist/src/utils/text-wrap.js.map +1 -0
  91. package/dist/tsconfig.tsbuildinfo +1 -1
  92. package/jsx-runtime.ts +1 -2
  93. package/package.json +2 -2
  94. package/src/components/Markdown.tsx +7 -7
  95. package/src/components/MultilineTextInput.tsx +14 -0
  96. package/src/components/TextInput.tsx +18 -0
  97. package/src/hosts/base.ts +35 -0
  98. package/src/hosts/box.ts +7 -8
  99. package/src/hosts/canvas.ts +5 -3
  100. package/src/hosts/codeblock.ts +5 -4
  101. package/src/hosts/flex-container.ts +5 -7
  102. package/src/hosts/index.ts +1 -4
  103. package/src/hosts/overlay-item.ts +2 -2
  104. package/src/hosts/overlay.ts +6 -12
  105. package/src/hosts/scroll.ts +34 -24
  106. package/src/hosts/spacer.ts +1 -3
  107. package/src/hosts/text.ts +89 -256
  108. package/src/hosts/zstack.ts +4 -11
  109. package/src/reconciler/types.ts +3 -0
  110. package/src/renderer/core/FrameBuilder.ts +3 -0
  111. package/src/renderer/input/InputProcessor.ts +5 -2
  112. package/src/renderer/lifecycle/RenderCache.ts +13 -0
  113. package/src/renderer/lifecycle/index.ts +1 -0
  114. package/src/renderer-types.ts +1 -1
  115. package/src/renderer.ts +6 -22
  116. package/src/test/render-tui.ts +1 -0
  117. package/src/utils/alignment.ts +18 -0
  118. package/src/utils/index.ts +3 -1
  119. package/src/utils/styles.ts +18 -1
  120. package/src/utils/text-wrap.ts +66 -0
@@ -1,9 +1,21 @@
1
1
  import { type CellBuffer, type Color, type Palette } from "@effect-tui/core";
2
2
  import type { ColorMotionValue } from "../motion/color-motion-value.js";
3
- import type { CommonProps, HostContext, Rect, Size } from "../reconciler/types.js";
3
+ import type { CommonProps, HostContext, HostInstance, Rect, Size } from "../reconciler/types.js";
4
4
  import { BaseHost } from "./base.js";
5
5
  /** Color prop that can be a static Color or a spring-animated ColorMotionValue */
6
6
  export type ColorProp = Color | ColorMotionValue;
7
+ /** A span of text with optional styling */
8
+ export interface StyledSpan {
9
+ text: string;
10
+ fg?: Color;
11
+ bg?: Color;
12
+ bold?: boolean;
13
+ dimmed?: boolean;
14
+ italic?: boolean;
15
+ underline?: boolean;
16
+ strikethrough?: boolean;
17
+ inverse?: boolean;
18
+ }
7
19
  export interface TextProps extends CommonProps {
8
20
  fg?: ColorProp;
9
21
  bg?: ColorProp;
@@ -15,6 +27,8 @@ export interface TextProps extends CommonProps {
15
27
  inverse?: boolean;
16
28
  /** If true, wrap text to multiple lines (default: false, text is truncated) */
17
29
  wrap?: boolean;
30
+ /** Optional styled spans (bypasses child parsing) */
31
+ spans?: StyledSpan[];
18
32
  }
19
33
  export declare class TextHost extends BaseHost {
20
34
  fg?: Color;
@@ -30,7 +44,10 @@ export declare class TextHost extends BaseHost {
30
44
  private cachedWidth;
31
45
  private cachedContent;
32
46
  private cachedStyledLines;
47
+ private cachedSpans;
33
48
  private hasSpans;
49
+ private explicitSpans;
50
+ private prepared;
34
51
  constructor(props: TextProps, ctx: HostContext);
35
52
  /** Check if we have SpanHost children (requires styled rendering) */
36
53
  private checkForSpans;
@@ -38,10 +55,14 @@ export declare class TextHost extends BaseHost {
38
55
  private getContent;
39
56
  /** Collect children as styled spans for multi-style rendering */
40
57
  private collectSpans;
41
- /** Wrap spans into lines, breaking at word boundaries (same logic as StyledTextHost) */
42
- private wrapSpans;
58
+ private prepareContent;
59
+ private ensurePrepared;
43
60
  /** Invalidate content cache when children change */
44
61
  private invalidateContent;
62
+ protected prepareSelf(): void;
63
+ appendChild(child: HostInstance): void;
64
+ removeChild(child: HostInstance): void;
65
+ insertBefore(child: HostInstance, before: HostInstance): void;
45
66
  measure(maxW: number, maxH: number): Size;
46
67
  /** Wrap text to fit within maxWidth, preferring word boundaries */
47
68
  private wrapText;
@@ -103,46 +124,4 @@ export declare class SpanHost extends BaseHost {
103
124
  render(_buffer: CellBuffer, _palette: Palette): void;
104
125
  updateProps(props: Record<string, unknown>): void;
105
126
  }
106
- /** A span of text with optional styling */
107
- export interface StyledSpan {
108
- text: string;
109
- fg?: Color;
110
- bg?: Color;
111
- bold?: boolean;
112
- dimmed?: boolean;
113
- italic?: boolean;
114
- underline?: boolean;
115
- strikethrough?: boolean;
116
- inverse?: boolean;
117
- }
118
- export interface StyledTextProps extends CommonProps {
119
- /** Array of styled text spans */
120
- spans: StyledSpan[];
121
- /** Default text color */
122
- fg?: Color;
123
- /** Default background color */
124
- bg?: Color;
125
- /** If true, wrap text to multiple lines */
126
- wrap?: boolean;
127
- }
128
- /**
129
- * Host for rendering multiple styled spans that wrap as a unit.
130
- * Unlike using hstack with multiple text elements, this properly
131
- * wraps styled inline text across lines.
132
- */
133
- export declare class StyledTextHost extends BaseHost {
134
- spans: StyledSpan[];
135
- fg?: Color;
136
- bg?: Color;
137
- wrap: boolean;
138
- private cachedLines;
139
- private cachedWidth;
140
- constructor(props: StyledTextProps, ctx: HostContext);
141
- measure(maxW: number, maxH: number): Size;
142
- /** Wrap spans into lines, breaking at word boundaries */
143
- private wrapSpans;
144
- layout(rect: Rect): void;
145
- render(buffer: CellBuffer, palette: Palette): void;
146
- updateProps(props: Record<string, unknown>): void;
147
- }
148
127
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/hosts/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,EAAgB,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAElF,OAAO,EAAE,QAAQ,EAAkB,MAAM,WAAW,CAAA;AAEpD,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,gBAAgB,CAAA;AAEhD,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC7C,EAAE,CAAC,EAAE,SAAS,CAAA;IACd,EAAE,CAAC,EAAE,SAAS,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED,qBAAa,QAAS,SAAQ,QAAQ;IACrC,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,UAAQ;IACZ,MAAM,UAAQ;IACd,MAAM,UAAQ;IACd,SAAS,UAAQ;IACjB,aAAa,UAAQ;IACrB,OAAO,UAAQ;IACf,IAAI,UAAQ;IAGZ,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,WAAW,CAAI;IAEvB,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW;IAK9C,qEAAqE;IACrE,OAAO,CAAC,aAAa;IAIrB,gGAAgG;IAChG,OAAO,CAAC,UAAU;IAgBlB,iEAAiE;IACjE,OAAO,CAAC,YAAY;IAyCpB,wFAAwF;IACxF,OAAO,CAAC,SAAS;IA2DjB,oDAAoD;IACpD,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IA6CzC,mEAAmE;IACnE,OAAO,CAAC,QAAQ;IAqDP,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQjC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAwFzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAiB1D;AAED,4DAA4D;AAC5D,qBAAa,WAAY,SAAQ,QAAQ;IACxC,OAAO,SAAK;gBAEA,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW;IAK1C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAG3D;AAMD,sCAAsC;AACtC,MAAM,WAAW,SAAS;IACzB,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC7C,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yEAAyE;IACzE,SAAS,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,QAAQ;IACrC,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,UAAQ;IACZ,MAAM,UAAQ;IACd,MAAM,UAAQ;IACd,SAAS,UAAQ;IACjB,aAAa,UAAQ;IACrB,OAAO,UAAQ;gBAEH,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW;IAK9C,iDAAiD;IACjD,UAAU,IAAI,MAAM;IAOpB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3C,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI3C,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAe1D;AAMD,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IACnD,iCAAiC;IACjC,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,yBAAyB;IACzB,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,+BAA+B;IAC/B,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,2CAA2C;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC3C,KAAK,EAAE,UAAU,EAAE,CAAK;IACxB,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,UAAQ;IAGZ,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAI;gBAEX,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW;IAKpD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAiBzC,yDAAyD;IACzD,OAAO,CAAC,SAAS;IA2DR,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIjC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAmCzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAS1D"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/hosts/text.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { displayWidth } from "@effect-tui/core";
2
- import { resolveInheritedBgStyle, styleIdFromProps } from "../utils/index.js";
2
+ import { resolveInheritedBgStyle, styleIdFromProps, wrapSpans } from "../utils/index.js";
3
3
  import { BaseHost, getInheritedBg } from "./base.js";
4
4
  export class TextHost extends BaseHost {
5
5
  fg;
@@ -18,7 +18,10 @@ export class TextHost extends BaseHost {
18
18
  cachedContent = null;
19
19
  // Cache for styled mode
20
20
  cachedStyledLines = null;
21
+ cachedSpans = null;
21
22
  hasSpans = false;
23
+ explicitSpans = null;
24
+ prepared = false;
22
25
  constructor(props, ctx) {
23
26
  super("text", props, ctx);
24
27
  this.updateProps(props);
@@ -84,105 +87,81 @@ export class TextHost extends BaseHost {
84
87
  }
85
88
  return spans;
86
89
  }
87
- /** Wrap spans into lines, breaking at word boundaries (same logic as StyledTextHost) */
88
- wrapSpans(spans, maxWidth) {
89
- const lines = [[]];
90
- let lineWidth = 0;
91
- for (const span of spans) {
92
- // Split span text into words (keeping whitespace as separate tokens)
93
- const tokens = span.text.split(/(\s+)/);
94
- for (const token of tokens) {
95
- if (!token)
96
- continue;
97
- const tokenWidth = displayWidth(token);
98
- const isWhitespace = /^\s+$/.test(token);
99
- if (lineWidth + tokenWidth <= maxWidth) {
100
- // Token fits on current line
101
- lines[lines.length - 1].push({ ...span, text: token });
102
- lineWidth += tokenWidth;
103
- }
104
- else if (isWhitespace) {
105
- // Skip whitespace at line break
106
- continue;
107
- }
108
- else if (tokenWidth <= maxWidth) {
109
- // Start new line with this token
110
- lines.push([{ ...span, text: token }]);
111
- lineWidth = tokenWidth;
112
- }
113
- else {
114
- // Token is longer than maxWidth - break by character
115
- let charLine = "";
116
- let charLineWidth = 0;
117
- for (const ch of token) {
118
- const chWidth = displayWidth(ch);
119
- if (lineWidth + charLineWidth + chWidth > maxWidth && (charLine || lineWidth > 0)) {
120
- if (charLine) {
121
- lines[lines.length - 1].push({ ...span, text: charLine });
122
- }
123
- lines.push([]);
124
- lineWidth = 0;
125
- charLine = ch;
126
- charLineWidth = chWidth;
127
- }
128
- else {
129
- charLine += ch;
130
- charLineWidth += chWidth;
131
- }
132
- }
133
- if (charLine) {
134
- lines[lines.length - 1].push({ ...span, text: charLine });
135
- lineWidth += charLineWidth;
136
- }
137
- }
138
- }
139
- }
140
- // Remove empty lines at the end
141
- while (lines.length > 0 && lines[lines.length - 1].length === 0) {
142
- lines.pop();
90
+ prepareContent() {
91
+ this.invalidateContent();
92
+ const useExplicitSpans = this.explicitSpans !== null;
93
+ if (useExplicitSpans) {
94
+ this.hasSpans = false;
95
+ this.cachedSpans = null;
96
+ this.prepared = true;
97
+ return;
143
98
  }
144
- return lines.length > 0 ? lines : [[]];
99
+ this.hasSpans = this.checkForSpans();
100
+ this.cachedSpans = this.hasSpans ? this.collectSpans() : null;
101
+ this.prepared = true;
102
+ }
103
+ ensurePrepared() {
104
+ if (this.prepared)
105
+ return;
106
+ this.prepareContent();
145
107
  }
146
108
  /** Invalidate content cache when children change */
147
109
  invalidateContent() {
148
110
  this.cachedContent = null;
149
111
  this.cachedLines = null;
150
112
  this.cachedStyledLines = null;
113
+ this.cachedSpans = null;
114
+ this.prepared = false;
151
115
  }
152
- measure(maxW, maxH) {
153
- // Invalidate content cache at start of measure (will be recomputed on demand)
116
+ prepareSelf() {
117
+ this.prepareContent();
118
+ }
119
+ appendChild(child) {
120
+ super.appendChild(child);
154
121
  this.invalidateContent();
155
- this.hasSpans = this.checkForSpans();
122
+ }
123
+ removeChild(child) {
124
+ super.removeChild(child);
125
+ this.invalidateContent();
126
+ }
127
+ insertBefore(child, before) {
128
+ super.insertBefore(child, before);
129
+ this.invalidateContent();
130
+ }
131
+ measure(maxW, maxH) {
132
+ const constrained = this.constrainProposal(maxW, maxH);
133
+ this.ensurePrepared();
134
+ const useExplicitSpans = this.explicitSpans !== null;
156
135
  // Styled mode: use span-aware rendering
157
- if (this.hasSpans) {
158
- const spans = this.collectSpans();
136
+ if (useExplicitSpans || this.hasSpans) {
137
+ const spans = useExplicitSpans ? this.explicitSpans : (this.cachedSpans ?? this.collectSpans());
159
138
  if (this.wrap) {
160
- this.cachedStyledLines = this.wrapSpans(spans, maxW);
161
- this.cachedWidth = maxW;
162
- const h = Math.min(this.cachedStyledLines.length, maxH);
139
+ this.cachedStyledLines = wrapSpans(spans, constrained.w);
140
+ this.cachedWidth = constrained.w;
141
+ const h = Math.min(this.cachedStyledLines.length, constrained.h);
163
142
  const w = this.cachedStyledLines.reduce((max, line) => Math.max(max, line.reduce((sum, span) => sum + displayWidth(span.text), 0)), 0);
164
- return { w, h };
143
+ return this.constrainResult({ w, h });
165
144
  }
166
145
  // Non-wrap styled mode
167
146
  const totalWidth = spans.reduce((sum, span) => sum + displayWidth(span.text), 0);
168
- return { w: Math.min(totalWidth, maxW), h: 1 };
147
+ return this.constrainResult({ w: Math.min(totalWidth, constrained.w), h: 1 });
169
148
  }
170
149
  // Simple mode: single style for all content
171
150
  const content = this.getContent();
172
151
  const rawLines = content.split("\n");
173
152
  if (this.wrap) {
174
153
  // Wrap mode: may span multiple lines. Cache result for render()
175
- this.cachedLines = rawLines.flatMap((line, idx) => idx < rawLines.length - 1 ? [...this.wrapText(line, maxW), ""] : this.wrapText(line, maxW));
176
- this.cachedWidth = maxW;
154
+ this.cachedLines = rawLines.flatMap((line, idx) => idx < rawLines.length - 1 ? [...this.wrapText(line, constrained.w), ""] : this.wrapText(line, constrained.w));
155
+ this.cachedWidth = constrained.w;
177
156
  const w = this.cachedLines.reduce((max, line) => Math.max(max, displayWidth(line)), 0);
178
- return { w, h: Math.min(this.cachedLines.length, maxH) };
157
+ return this.constrainResult({ w, h: Math.min(this.cachedLines.length, constrained.h) });
179
158
  }
180
159
  // Default: respect explicit newlines but do not wrap long words
181
160
  this.cachedLines = null;
182
- const widths = rawLines.map((line) => Math.min(displayWidth(line), maxW));
161
+ const widths = rawLines.map((line) => Math.min(displayWidth(line), constrained.w));
183
162
  const w = widths.reduce((max, val) => Math.max(max, val), 0);
184
- const h = Math.min(rawLines.length, maxH);
185
- return { w, h };
163
+ const h = Math.min(rawLines.length, constrained.h);
164
+ return this.constrainResult({ w, h });
186
165
  }
187
166
  /** Wrap text to fit within maxWidth, preferring word boundaries */
188
167
  wrapText(text, maxWidth) {
@@ -242,26 +221,30 @@ export class TextHost extends BaseHost {
242
221
  return result.length > 0 ? result : [""];
243
222
  }
244
223
  layout(rect) {
245
- super.layout(rect);
224
+ const layoutRect = this.layoutWithConstraints(rect);
246
225
  // Layout children (RawTextHost nodes) at same position
247
226
  for (const child of this.children) {
248
- child.layout(rect);
227
+ child.layout(layoutRect);
249
228
  }
250
229
  }
251
230
  render(buffer, palette) {
252
- if (!this.rect)
231
+ if (!this.rect) {
232
+ this.prepared = false;
253
233
  return;
234
+ }
235
+ this.ensurePrepared();
254
236
  // If text has no bg, inherit from parent box for proper highlight rendering
255
237
  const { value: bgValue, styleId: bgStyleId } = resolveInheritedBgStyle(palette, this.bg, this.parent);
256
238
  const inheritedBg = this.bg ?? getInheritedBg(this.parent);
239
+ const useExplicitSpans = this.explicitSpans !== null;
257
240
  // Styled mode: render with per-span styles
258
- if (this.hasSpans) {
259
- const spans = this.collectSpans();
241
+ if (useExplicitSpans || this.hasSpans) {
260
242
  const lines = this.wrap && this.cachedStyledLines && this.cachedWidth === this.rect.w
261
243
  ? this.cachedStyledLines
262
- : this.wrap
263
- ? this.wrapSpans(spans, this.rect.w)
264
- : [spans];
244
+ : (() => {
245
+ const spans = useExplicitSpans ? this.explicitSpans : (this.cachedSpans ?? this.collectSpans());
246
+ return this.wrap ? wrapSpans(spans, this.rect.w) : [spans];
247
+ })();
265
248
  for (let y = 0; y < Math.min(lines.length, this.rect.h); y++) {
266
249
  let x = this.rect.x;
267
250
  for (const span of lines[y]) {
@@ -283,6 +266,7 @@ export class TextHost extends BaseHost {
283
266
  x += displayWidth(span.text);
284
267
  }
285
268
  }
269
+ this.prepared = false;
286
270
  return;
287
271
  }
288
272
  // Simple mode: single style for all content
@@ -314,6 +298,7 @@ export class TextHost extends BaseHost {
314
298
  const lineWidth = Math.min(displayWidth(lines[i]), this.rect.w);
315
299
  buffer.drawText(this.rect.x, this.rect.y + i, lines[i], styleId, lineWidth);
316
300
  }
301
+ this.prepared = false;
317
302
  return;
318
303
  }
319
304
  // Default: render explicit newlines, clip to width/height
@@ -326,6 +311,7 @@ export class TextHost extends BaseHost {
326
311
  const lineWidth = Math.min(displayWidth(rawLines[i]), this.rect.w);
327
312
  buffer.drawText(this.rect.x, this.rect.y + i, rawLines[i], styleId, lineWidth);
328
313
  }
314
+ this.prepared = false;
329
315
  }
330
316
  updateProps(props) {
331
317
  super.updateProps(props);
@@ -343,6 +329,7 @@ export class TextHost extends BaseHost {
343
329
  this.strikethrough = Boolean(props.strikethrough);
344
330
  this.inverse = Boolean(props.inverse);
345
331
  this.wrap = Boolean(props.wrap);
332
+ this.explicitSpans = "spans" in props ? (props.spans ?? []) : null;
346
333
  }
347
334
  }
348
335
  /** Special host for raw text nodes (React text children) */
@@ -421,137 +408,4 @@ export class SpanHost extends BaseHost {
421
408
  this.inverse = props.inverse !== undefined ? Boolean(props.inverse) : Boolean(textStyle?.inverse);
422
409
  }
423
410
  }
424
- /**
425
- * Host for rendering multiple styled spans that wrap as a unit.
426
- * Unlike using hstack with multiple text elements, this properly
427
- * wraps styled inline text across lines.
428
- */
429
- export class StyledTextHost extends BaseHost {
430
- spans = [];
431
- fg;
432
- bg;
433
- wrap = false;
434
- // Cache wrapped lines - each line is an array of spans
435
- cachedLines = null;
436
- cachedWidth = 0;
437
- constructor(props, ctx) {
438
- super("styledtext", props, ctx);
439
- this.updateProps(props);
440
- }
441
- measure(maxW, maxH) {
442
- if (this.wrap) {
443
- this.cachedLines = this.wrapSpans(this.spans, maxW);
444
- this.cachedWidth = maxW;
445
- const h = Math.min(this.cachedLines.length, maxH);
446
- const w = this.cachedLines.reduce((max, line) => Math.max(max, line.reduce((sum, span) => sum + displayWidth(span.text), 0)), 0);
447
- return { w, h };
448
- }
449
- // Non-wrap mode: single line, may truncate
450
- const totalWidth = this.spans.reduce((sum, span) => sum + displayWidth(span.text), 0);
451
- return { w: Math.min(totalWidth, maxW), h: 1 };
452
- }
453
- /** Wrap spans into lines, breaking at word boundaries */
454
- wrapSpans(spans, maxWidth) {
455
- const lines = [[]];
456
- let lineWidth = 0;
457
- for (const span of spans) {
458
- // Split span text into words (keeping whitespace as separate tokens)
459
- const tokens = span.text.split(/(\s+)/);
460
- for (const token of tokens) {
461
- if (!token)
462
- continue;
463
- const tokenWidth = displayWidth(token);
464
- const isWhitespace = /^\s+$/.test(token);
465
- if (lineWidth + tokenWidth <= maxWidth) {
466
- // Token fits on current line
467
- lines[lines.length - 1].push({ ...span, text: token });
468
- lineWidth += tokenWidth;
469
- }
470
- else if (isWhitespace) {
471
- // Skip whitespace at line break
472
- continue;
473
- }
474
- else if (tokenWidth <= maxWidth) {
475
- // Start new line with this token
476
- lines.push([{ ...span, text: token }]);
477
- lineWidth = tokenWidth;
478
- }
479
- else {
480
- // Token is longer than maxWidth - break by character
481
- let charLine = "";
482
- let charLineWidth = 0;
483
- for (const ch of token) {
484
- const chWidth = displayWidth(ch);
485
- if (lineWidth + charLineWidth + chWidth > maxWidth && (charLine || lineWidth > 0)) {
486
- if (charLine) {
487
- lines[lines.length - 1].push({ ...span, text: charLine });
488
- }
489
- lines.push([]);
490
- lineWidth = 0;
491
- charLine = ch;
492
- charLineWidth = chWidth;
493
- }
494
- else {
495
- charLine += ch;
496
- charLineWidth += chWidth;
497
- }
498
- }
499
- if (charLine) {
500
- lines[lines.length - 1].push({ ...span, text: charLine });
501
- lineWidth += charLineWidth;
502
- }
503
- }
504
- }
505
- }
506
- // Remove empty lines at the end
507
- while (lines.length > 0 && lines[lines.length - 1].length === 0) {
508
- lines.pop();
509
- }
510
- return lines.length > 0 ? lines : [[]];
511
- }
512
- layout(rect) {
513
- super.layout(rect);
514
- }
515
- render(buffer, palette) {
516
- if (!this.rect)
517
- return;
518
- const inheritedBg = this.bg ?? getInheritedBg(this.parent);
519
- // Get lines to render
520
- const lines = this.wrap && this.cachedLines && this.cachedWidth === this.rect.w
521
- ? this.cachedLines
522
- : this.wrap
523
- ? this.wrapSpans(this.spans, this.rect.w)
524
- : [this.spans];
525
- for (let y = 0; y < Math.min(lines.length, this.rect.h); y++) {
526
- let x = this.rect.x;
527
- for (const span of lines[y]) {
528
- const styleId = styleIdFromProps(palette, {
529
- fg: span.fg ?? this.fg,
530
- bg: span.bg ?? inheritedBg,
531
- bold: span.bold,
532
- dimmed: span.dimmed,
533
- italic: span.italic,
534
- underline: span.underline,
535
- strikethrough: span.strikethrough,
536
- inverse: span.inverse,
537
- });
538
- const availableWidth = this.rect.w - (x - this.rect.x);
539
- if (availableWidth <= 0)
540
- break;
541
- const textWidth = Math.min(displayWidth(span.text), availableWidth);
542
- buffer.drawText(x, this.rect.y + y, span.text, styleId, textWidth);
543
- x += displayWidth(span.text);
544
- }
545
- }
546
- }
547
- updateProps(props) {
548
- super.updateProps(props);
549
- this.spans = props.spans ?? [];
550
- this.fg = props.fg;
551
- this.bg = props.bg;
552
- this.wrap = Boolean(props.wrap);
553
- // Invalidate cache when props change
554
- this.cachedLines = null;
555
- }
556
- }
557
411
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/hosts/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/hosts/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,YAAY,EAAgB,MAAM,kBAAkB,CAAA;AAG1F,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAiCpD,MAAM,OAAO,QAAS,SAAQ,QAAQ;IACrC,EAAE,CAAQ;IACV,EAAE,CAAQ;IACV,IAAI,GAAG,KAAK,CAAA;IACZ,MAAM,GAAG,KAAK,CAAA;IACd,MAAM,GAAG,KAAK,CAAA;IACd,SAAS,GAAG,KAAK,CAAA;IACjB,aAAa,GAAG,KAAK,CAAA;IACrB,OAAO,GAAG,KAAK,CAAA;IACf,IAAI,GAAG,KAAK,CAAA,CAAC,8BAA8B;IAE3C,qDAAqD;IAC7C,WAAW,GAAoB,IAAI,CAAA;IACnC,WAAW,GAAG,CAAC,CAAA;IACvB,wDAAwD;IAChD,aAAa,GAAkB,IAAI,CAAA;IAC3C,wBAAwB;IAChB,iBAAiB,GAA0B,IAAI,CAAA;IAC/C,WAAW,GAAwB,IAAI,CAAA;IACvC,QAAQ,GAAG,KAAK,CAAA;IAChB,aAAa,GAAwB,IAAI,CAAA;IACzC,QAAQ,GAAG,KAAK,CAAA;IAExB,YAAY,KAAgB,EAAE,GAAgB;QAC7C,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,WAAW,CAAC,KAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,qEAAqE;IAC7D,aAAa;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED,gGAAgG;IACxF,UAAU;QACjB,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,aAAa,CAAA;QAC1B,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC1B,CAAC;iBAAM,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;YAC/B,CAAC;QACF,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnC,OAAO,IAAI,CAAC,aAAa,CAAA;IAC1B,CAAC;IAED,iEAAiE;IACzD,YAAY;QACnB,MAAM,KAAK,GAAiB,EAAE,CAAA;QAE9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,4BAA4B;wBAC5B,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;qBACrB,CAAC,CAAA;gBACH,CAAC;YACF,CAAC;iBAAM,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAA;gBAClC,IAAI,OAAO,EAAE,CAAC;oBACb,KAAK,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO;wBACb,4CAA4C;wBAC5C,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;wBACvB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;wBACvB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;wBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;wBACnC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;wBACnC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;wBAC5C,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;wBACxD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;qBACtC,CAAC,CAAA;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAEO,cAAc;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAA;QACpD,IAAI,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACpB,OAAM;QACP,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACrB,CAAC;IAEO,cAAc;QACrB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QACzB,IAAI,CAAC,cAAc,EAAE,CAAA;IACtB,CAAC;IAED,oDAAoD;IAC5C,iBAAiB;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACtB,CAAC;IAEkB,WAAW;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAA;IACtB,CAAC;IAEQ,WAAW,CAAC,KAAmB;QACvC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACzB,CAAC;IAEQ,WAAW,CAAC,KAAmB;QACvC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACzB,CAAC;IAEQ,YAAY,CAAC,KAAmB,EAAE,MAAoB;QAC9D,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAY;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACtD,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAA;QAEpD,wCAAwC;QACxC,IAAI,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;YAChG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;gBACxD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAA;gBAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;gBAChE,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAC1F,CAAC,CACD,CAAA;gBACD,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACtC,CAAC;YACD,uBAAuB;YACvB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YAChF,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9E,CAAC;QAED,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,gEAAgE;YAChE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CACjD,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAC5G,CAAA;YACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAA;YAChC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACtF,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACxF,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAClF,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,mEAAmE;IAC3D,QAAQ,CAAC,IAAY,EAAE,QAAgB;QAC9C,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACf,SAAQ;YACT,CAAC;YAED,2DAA2D;YAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrC,IAAI,IAAI,GAAG,EAAE,CAAA;YACb,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;gBAClC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAExC,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAChC,6BAA6B;oBAC7B,IAAI,IAAI,KAAK,CAAA;oBACb,KAAK,IAAI,MAAM,CAAA;gBAChB,CAAC;qBAAM,IAAI,YAAY,EAAE,CAAC;oBACzB,0EAA0E;oBAC1E,SAAQ;gBACT,CAAC;qBAAM,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC/B,iEAAiE;oBACjE,IAAI,IAAI,CAAC,OAAO,EAAE;wBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;oBAC/C,IAAI,GAAG,KAAK,CAAA;oBACZ,KAAK,GAAG,MAAM,CAAA;gBACf,CAAC;qBAAM,CAAC;oBACP,iEAAiE;oBACjE,IAAI,IAAI,CAAC,OAAO,EAAE;wBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;oBAC/C,IAAI,GAAG,EAAE,CAAA;oBACT,KAAK,GAAG,CAAC,CAAA;oBACT,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;wBACxB,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;wBAC5B,IAAI,KAAK,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;4BACjB,IAAI,GAAG,EAAE,CAAA;4BACT,KAAK,GAAG,GAAG,CAAA;wBACZ,CAAC;6BAAM,CAAC;4BACP,IAAI,IAAI,EAAE,CAAA;4BACV,KAAK,IAAI,GAAG,CAAA;wBACb,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YACD,6FAA6F;YAC7F,IAAI,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACzC,CAAC;IAEQ,MAAM,CAAC,IAAU;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACnD,uDAAuD;QACvD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACzB,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,OAAgB;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,OAAM;QACP,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAA;QAErB,4EAA4E;QAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACrG,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAA;QAEpD,2CAA2C;QAC3C,IAAI,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,GACV,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtE,CAAC,CAAC,IAAI,CAAC,iBAAiB;gBACxB,CAAC,CAAC,CAAC,GAAG,EAAE;oBACN,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;oBAChG,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC3D,CAAC,CAAC,EAAE,CAAA;YAEP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9D,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBACnB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE;wBAC7C,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;wBACtB,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,WAAW;wBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;qBACrB,CAAC,CAAA;oBACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACtD,IAAI,cAAc,IAAI,CAAC;wBAAE,MAAK;oBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAA;oBACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;oBACtE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC7B,CAAC;YACF,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,OAAM;QACP,CAAC;QAED,4CAA4C;QAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE;YACzC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE,IAAI,CAAC,OAAO;SACrB,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,iEAAiE;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACzB,MAAM,KAAK,GACV,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK;gBAC7C,CAAC,CAAC,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAC/B,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAC5F,CAAA;YACJ,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxD,mGAAmG;YACnG,IAAI,OAAO,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,SAAS,CAAC,CAAA;YACrG,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,uEAAuE;gBACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBAC/D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YAC5E,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,OAAM;QACP,CAAC;QAED,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,SAAS,CAAC,CAAA;QACjG,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,uEAAuE;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QAC/E,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACtB,CAAC;IAEQ,WAAW,CAAC,KAA8B;QAClD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACxB,gFAAgF;QAChF,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YACtD,IAAI,CAAC,EAAE,GAAG,CAAU,CAAA;QACrB,CAAC,CAAsB,CAAA;QACvB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YACtD,IAAI,CAAC,EAAE,GAAG,CAAU,CAAA;QACrB,CAAC,CAAsB,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,KAAkC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACjG,CAAC;CACD;AAED,4DAA4D;AAC5D,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACxC,OAAO,GAAG,EAAE,CAAA;IAEZ,YAAY,IAAY,EAAE,GAAgB;QACzC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACpB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,KAAa;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;QACpD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,OAAgB;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAM;QACtB,wDAAwD;QACxD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;QAC9D,uEAAuE;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IAC5E,CAAC;IAED,UAAU,CAAC,IAAY;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACpB,CAAC;IAEQ,WAAW,CAAC,MAA+B;QACnD,wBAAwB;IACzB,CAAC;CACD;AA+BD;;;;;GAKG;AACH,MAAM,OAAO,QAAS,SAAQ,QAAQ;IACrC,EAAE,CAAQ;IACV,EAAE,CAAQ;IACV,IAAI,GAAG,KAAK,CAAA;IACZ,MAAM,GAAG,KAAK,CAAA;IACd,MAAM,GAAG,KAAK,CAAA;IACd,SAAS,GAAG,KAAK,CAAA;IACjB,aAAa,GAAG,KAAK,CAAA;IACrB,OAAO,GAAG,KAAK,CAAA;IAEf,YAAY,KAAgB,EAAE,GAAgB;QAC7C,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,WAAW,CAAC,KAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,iDAAiD;IACjD,UAAU;QACT,OAAO,IAAI,CAAC,QAAQ;aAClB,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,YAAY,WAAW,CAAC;aACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,EAAE,CAAC,CAAA;IACX,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,KAAa;QACnC,sEAAsE;QACtE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,OAAmB,EAAE,QAAiB;QAC5C,wEAAwE;IACzE,CAAC;IAEQ,WAAW,CAAC,KAA8B;QAClD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAkC,CAAA;QAE1D,6CAA6C;QAC7C,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAE,KAAK,CAAC,EAAY,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAA;QACtE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAE,KAAK,CAAC,EAAY,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAA;QACtE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACrF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC7F,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC7F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACzG,IAAI,CAAC,aAAa;YACjB,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACrG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClG,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"zstack.d.ts","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAe,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;QAAC,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAA;CACtF;AAGD,qBAAa,UAAW,SAAQ,QAAQ;IACvC,UAAU,EAAE,MAAM,CAAW;IAC7B,UAAU,EAAE,MAAM,CAAW;IAC7B,OAAO,CAAC,WAAW,CAAa;gBAEpB,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAKhD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAwBhC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAiBjC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAQ1D"}
1
+ {"version":3,"file":"zstack.d.ts","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAoB,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;QAAC,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAA;CACtF;AAGD,qBAAa,UAAW,SAAQ,QAAQ;IACvC,UAAU,EAAE,MAAM,CAAW;IAC7B,UAAU,EAAE,MAAM,CAAW;IAC7B,OAAO,CAAC,WAAW,CAAa;gBAEpB,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAKhD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAwBhC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAUjC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAQ1D"}
@@ -1,4 +1,4 @@
1
- import { alignInRect } from "../utils/index.js";
1
+ import { alignedChildRect } from "../utils/index.js";
2
2
  import { BaseHost } from "./base.js";
3
3
  // Overlay children in the same rect, honoring alignment for each child.
4
4
  export class ZStackHost extends BaseHost {
@@ -29,17 +29,11 @@ export class ZStackHost extends BaseHost {
29
29
  return this.constrainResult(naturalSize);
30
30
  }
31
31
  layout(rect) {
32
- super.layout(rect);
32
+ const layoutRect = this.layoutWithConstraints(rect);
33
33
  for (let i = 0; i < this.children.length; i++) {
34
34
  const child = this.children[i];
35
- const size = this.cachedSizes[i] ?? child.measure(rect.w, rect.h);
36
- const { x, y } = alignInRect(rect, size, this.alignmentH, this.alignmentV);
37
- child.layout({
38
- x,
39
- y,
40
- w: Math.min(rect.w, size.w),
41
- h: Math.min(rect.h, size.h),
42
- });
35
+ const size = this.cachedSizes[i] ?? child.measure(layoutRect.w, layoutRect.h);
36
+ child.layout(alignedChildRect(layoutRect, size, this.alignmentH, this.alignmentV));
43
37
  }
44
38
  }
45
39
  render(buffer, palette) {
@@ -1 +1 @@
1
- {"version":3,"file":"zstack.js","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zstack.js","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,8 @@ export interface HostInstance {
19
19
  layout(rect: Rect): void;
20
20
  /** Render to buffer */
21
21
  render(buffer: CellBuffer, palette: Palette): void;
22
+ /** Optional pre-frame hook for cache prep (called before measure/layout/render). */
23
+ prepareFrame?(): void;
22
24
  /** Update props from React */
23
25
  updateProps(props: Record<string, unknown>): void;
24
26
  /** Cleanup on unmount */