@effect-tui/react 0.6.3 → 0.8.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 (59) hide show
  1. package/dist/jsx-runtime.d.ts +4 -1
  2. package/dist/jsx-runtime.d.ts.map +1 -1
  3. package/dist/src/components/ListView.d.ts +3 -1
  4. package/dist/src/components/ListView.d.ts.map +1 -1
  5. package/dist/src/components/ListView.js +38 -11
  6. package/dist/src/components/ListView.js.map +1 -1
  7. package/dist/src/console/ConsoleCapture.d.ts +19 -0
  8. package/dist/src/console/ConsoleCapture.d.ts.map +1 -1
  9. package/dist/src/console/ConsoleCapture.js +132 -9
  10. package/dist/src/console/ConsoleCapture.js.map +1 -1
  11. package/dist/src/hooks/use-scroll.d.ts +5 -3
  12. package/dist/src/hooks/use-scroll.d.ts.map +1 -1
  13. package/dist/src/hooks/use-scroll.js +4 -2
  14. package/dist/src/hooks/use-scroll.js.map +1 -1
  15. package/dist/src/hosts/index.d.ts +1 -1
  16. package/dist/src/hosts/index.d.ts.map +1 -1
  17. package/dist/src/hosts/index.js +3 -2
  18. package/dist/src/hosts/index.js.map +1 -1
  19. package/dist/src/hosts/scroll.d.ts +5 -0
  20. package/dist/src/hosts/scroll.d.ts.map +1 -1
  21. package/dist/src/hosts/scroll.js +10 -0
  22. package/dist/src/hosts/scroll.js.map +1 -1
  23. package/dist/src/hosts/text.d.ts +48 -1
  24. package/dist/src/hosts/text.d.ts.map +1 -1
  25. package/dist/src/hosts/text.js +200 -5
  26. package/dist/src/hosts/text.js.map +1 -1
  27. package/dist/src/index.d.ts +1 -1
  28. package/dist/src/index.d.ts.map +1 -1
  29. package/dist/src/remote/Procedures.d.ts +11 -0
  30. package/dist/src/remote/Procedures.d.ts.map +1 -1
  31. package/dist/src/remote/Procedures.js +17 -1
  32. package/dist/src/remote/Procedures.js.map +1 -1
  33. package/dist/src/remote/Router.d.ts +12 -1
  34. package/dist/src/remote/Router.d.ts.map +1 -1
  35. package/dist/src/remote/Router.js +1 -0
  36. package/dist/src/remote/Router.js.map +1 -1
  37. package/dist/src/remote/index.d.ts.map +1 -1
  38. package/dist/src/remote/index.js +14 -0
  39. package/dist/src/remote/index.js.map +1 -1
  40. package/dist/src/renderer.d.ts.map +1 -1
  41. package/dist/src/renderer.js +9 -1
  42. package/dist/src/renderer.js.map +1 -1
  43. package/dist/src/test/render-tui.js +2 -2
  44. package/dist/src/test/render-tui.js.map +1 -1
  45. package/dist/tsconfig.tsbuildinfo +1 -1
  46. package/jsx-runtime.ts +2 -1
  47. package/package.json +2 -2
  48. package/src/components/ListView.tsx +50 -13
  49. package/src/console/ConsoleCapture.ts +151 -9
  50. package/src/hooks/use-scroll.ts +9 -5
  51. package/src/hosts/index.ts +13 -2
  52. package/src/hosts/scroll.ts +13 -0
  53. package/src/hosts/text.ts +242 -5
  54. package/src/index.ts +1 -1
  55. package/src/remote/Procedures.ts +19 -1
  56. package/src/remote/Router.ts +14 -1
  57. package/src/remote/index.ts +15 -1
  58. package/src/renderer.ts +9 -1
  59. package/src/test/render-tui.ts +2 -2
@@ -8,7 +8,7 @@ import type { OverlayProps } from "./src/hosts/overlay.js";
8
8
  import type { OverlayItemProps } from "./src/hosts/overlay-item.js";
9
9
  import type { ScrollProps } from "./src/hosts/scroll.js";
10
10
  import type { SpacerProps } from "./src/hosts/spacer.js";
11
- import type { StyledTextProps, TextProps } from "./src/hosts/text.js";
11
+ import type { SpanProps, StyledTextProps, TextProps } from "./src/hosts/text.js";
12
12
  import type { VStackProps } from "./src/hosts/vstack.js";
13
13
  import type { ZStackProps } from "./src/hosts/zstack.js";
14
14
  declare const JSX: {};
@@ -30,6 +30,9 @@ export declare namespace JSX {
30
30
  text: TextProps & {
31
31
  children?: React.ReactNode;
32
32
  };
33
+ span: SpanProps & {
34
+ children?: React.ReactNode;
35
+ };
33
36
  styledtext: StyledTextProps;
34
37
  spacer: SpacerProps;
35
38
  vstack: VStackProps & {
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../jsx-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,QAAA,MAAM,GAAG,IAAK,CAAA;AACd,OAAO,EAAE,GAAG,EAAE,CAAA;AAEd,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC5B,KAAY,OAAO,GAAG,KAAK,CAAC,SAAS,CAAA;IAErC,UAAiB,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,SAAS,CAAA;KACzB;IAED,UAAiB,yBAAyB;QACzC,KAAK,EAAE,EAAE,CAAA;KACT;IAED,UAAiB,wBAAwB;QACxC,QAAQ,EAAE,EAAE,CAAA;KACZ;IAED,UAAiB,mBAAoB,SAAQ,KAAK,CAAC,UAAU;KAAG;IAGhE,UAAiB,iBAAkB,SAAQ,KAAK,CAAC,GAAG,CAAC,iBAAiB;QAErE,IAAI,EAAE,SAAS,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAChD,UAAU,EAAE,eAAe,CAAA;QAC3B,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;QACxE,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,GAAG,EAAE,QAAQ,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAC9C,MAAM,EAAE,WAAW,CAAA;QACnB,SAAS,EAAE,cAAc,CAAA;QACzB,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,OAAO,EAAE,YAAY,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACtD,WAAW,EAAE,gBAAgB,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;KAC9D;CACD"}
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../jsx-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,QAAA,MAAM,GAAG,IAAK,CAAA;AACd,OAAO,EAAE,GAAG,EAAE,CAAA;AAEd,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC5B,KAAY,OAAO,GAAG,KAAK,CAAC,SAAS,CAAA;IAErC,UAAiB,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,SAAS,CAAA;KACzB;IAED,UAAiB,yBAAyB;QACzC,KAAK,EAAE,EAAE,CAAA;KACT;IAED,UAAiB,wBAAwB;QACxC,QAAQ,EAAE,EAAE,CAAA;KACZ;IAED,UAAiB,mBAAoB,SAAQ,KAAK,CAAC,UAAU;KAAG;IAGhE,UAAiB,iBAAkB,SAAQ,KAAK,CAAC,GAAG,CAAC,iBAAiB;QAErE,IAAI,EAAE,SAAS,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAChD,IAAI,EAAE,SAAS,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAChD,UAAU,EAAE,eAAe,CAAA;QAC3B,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;QACxE,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,GAAG,EAAE,QAAQ,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAC9C,MAAM,EAAE,WAAW,CAAA;QACnB,SAAS,EAAE,cAAc,CAAA;QACzB,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,OAAO,EAAE,YAAY,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACtD,WAAW,EAAE,gBAAgB,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;KAC9D;CACD"}
@@ -18,6 +18,8 @@ export interface ListViewProps<T> {
18
18
  emptyContent?: ReactNode;
19
19
  /** Number of extra items to render above/below viewport for smooth scrolling (default: 3) */
20
20
  overscan?: number;
21
+ /** Called when an item is clicked. Receives the item index. */
22
+ onItemClick?: (index: number) => void;
21
23
  /** @internal */
22
24
  __debugViewportMeasured?: boolean;
23
25
  /** @internal */
@@ -63,5 +65,5 @@ export interface ListViewProps<T> {
63
65
  * )
64
66
  * ```
65
67
  */
66
- export declare function ListView<T>({ items, selectedIndex, renderItem, keyExtractor, itemHeight, scrollPadding, showScrollbar, emptyContent, overscan, __debugViewportMeasured, __debugViewportSize, __debugContentSize, }: ListViewProps<T>): ReactNode;
68
+ export declare function ListView<T>({ items, selectedIndex, renderItem, keyExtractor, itemHeight, scrollPadding, showScrollbar, emptyContent, overscan, onItemClick, __debugViewportMeasured, __debugViewportSize, __debugContentSize, }: ListViewProps<T>): ReactNode;
67
69
  //# sourceMappingURL=ListView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../../src/components/ListView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,sBAAsB;IACtB,KAAK,EAAE,SAAS,CAAC,EAAE,CAAA;IACnB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,oCAAoC;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAA;IACtE,uCAAuC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAA;IACzD,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB;IAChB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,gBAAgB;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gBAAgB;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAC3B,KAAK,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAc,EACd,aAAiB,EACjB,aAAoB,EACpB,YAAY,EACZ,QAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAClB,EAAE,aAAa,CAAC,CAAC,CAAC,aAuElB"}
1
+ {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../../src/components/ListView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKtC,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,sBAAsB;IACtB,KAAK,EAAE,SAAS,CAAC,EAAE,CAAA;IACnB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,oCAAoC;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAA;IACtE,uCAAuC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAA;IACzD,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,gBAAgB;IAChB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,gBAAgB;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gBAAgB;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAC3B,KAAK,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAc,EACd,aAAiB,EACjB,aAAoB,EACpB,YAAY,EACZ,QAAY,EACZ,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAClB,EAAE,aAAa,CAAC,CAAC,CAAC,aAwGlB"}
@@ -1,5 +1,6 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "@effect-tui/react/jsx-runtime";
2
- import { useEffect, useRef } from "react";
2
+ import { useEffect, useLayoutEffect, useRef } from "react";
3
+ import { useMouse } from "../hooks/use-mouse.js";
3
4
  import { useScroll } from "../hooks/use-scroll.js";
4
5
  /**
5
6
  * A virtualized scrolling list view with selection and scroll-into-view behavior.
@@ -39,7 +40,7 @@ import { useScroll } from "../hooks/use-scroll.js";
39
40
  * )
40
41
  * ```
41
42
  */
42
- export function ListView({ items, selectedIndex, renderItem, keyExtractor, itemHeight = 1, scrollPadding = 0, showScrollbar = true, emptyContent, overscan = 3, __debugViewportMeasured, __debugViewportSize, __debugContentSize, }) {
43
+ export function ListView({ items, selectedIndex, renderItem, keyExtractor, itemHeight = 1, scrollPadding = 0, showScrollbar = true, emptyContent, overscan = 3, onItemClick, __debugViewportMeasured, __debugViewportSize, __debugContentSize, }) {
43
44
  const totalHeight = items.length * itemHeight;
44
45
  const { state, scrollProps, scrollToVisible } = useScroll({
45
46
  enableKeyboard: false, // Parent handles keyboard for selection
@@ -49,19 +50,40 @@ export function ListView({ items, selectedIndex, renderItem, keyExtractor, itemH
49
50
  });
50
51
  const viewportMeasured = __debugViewportMeasured ?? state.viewportMeasured;
51
52
  const viewportSize = __debugViewportSize ?? state.viewportSize;
53
+ // Track scroll container rect for hit testing
54
+ const rectRef = useRef(null);
55
+ // Handle mouse clicks on items
56
+ useMouse((mouse) => {
57
+ if (!onItemClick || !rectRef.current)
58
+ return;
59
+ const { x, y, w, h } = rectRef.current;
60
+ // Check if click is inside the scroll container
61
+ if (mouse.x < x || mouse.x >= x + w || mouse.y < y || mouse.y >= y + h)
62
+ return;
63
+ // Calculate which item was clicked
64
+ const localY = mouse.y - y;
65
+ const contentY = localY + state.offset;
66
+ const clickedIndex = Math.floor(contentY / itemHeight);
67
+ // Validate index is in range
68
+ if (clickedIndex >= 0 && clickedIndex < items.length) {
69
+ onItemClick(clickedIndex);
70
+ }
71
+ }, { action: "press", button: "left" });
52
72
  // Track previous selection to detect changes
53
73
  const prevSelectedRef = useRef(selectedIndex);
54
74
  // Scroll to keep selection visible when it changes
55
- useEffect(() => {
75
+ // useLayoutEffect runs before paint - prevents visible "jump" when navigating
76
+ useLayoutEffect(() => {
56
77
  if (selectedIndex !== prevSelectedRef.current) {
57
78
  prevSelectedRef.current = selectedIndex;
58
- scrollToVisible(selectedIndex, itemHeight, scrollPadding);
79
+ // Pass totalHeight to avoid stale contentSize issues when jumping to end
80
+ scrollToVisible(selectedIndex, itemHeight, scrollPadding, totalHeight);
59
81
  }
60
- }, [selectedIndex, itemHeight, scrollPadding, scrollToVisible]);
82
+ }, [selectedIndex, itemHeight, scrollPadding, scrollToVisible, totalHeight]);
61
83
  // Also scroll on initial render if selection is not 0
62
84
  useEffect(() => {
63
85
  if (selectedIndex > 0) {
64
- scrollToVisible(selectedIndex, itemHeight, scrollPadding);
86
+ scrollToVisible(selectedIndex, itemHeight, scrollPadding, totalHeight);
65
87
  }
66
88
  // Only run on mount
67
89
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -70,20 +92,25 @@ export function ListView({ items, selectedIndex, renderItem, keyExtractor, itemH
70
92
  return _jsx(_Fragment, { children: emptyContent });
71
93
  }
72
94
  // Calculate visible range for virtualization
95
+ // Before viewport is measured, render a reasonable default (not all items!)
73
96
  const startIndex = viewportMeasured
74
97
  ? Math.max(0, Math.floor(state.offset / itemHeight) - overscan)
75
98
  : 0;
76
99
  const endIndex = viewportMeasured
77
100
  ? Math.min(items.length, Math.ceil((state.offset + viewportSize) / itemHeight) + overscan)
78
- : items.length;
101
+ : Math.min(items.length, 50);
79
102
  // Calculate spacer heights for virtual scrolling
80
- const topSpacerHeight = viewportMeasured ? startIndex * itemHeight : 0;
81
- const bottomSpacerHeight = viewportMeasured ? Math.max(0, totalHeight - endIndex * itemHeight) : 0;
103
+ const topSpacerHeight = startIndex * itemHeight;
104
+ const bottomSpacerHeight = Math.max(0, totalHeight - endIndex * itemHeight);
82
105
  // Get visible slice of items
83
106
  const visibleItems = items.slice(startIndex, endIndex);
84
- return (_jsx("scroll", { ...scrollProps, showScrollbar: showScrollbar, children: _jsxs("vstack", { children: [topSpacerHeight > 0 && _jsx("spacer", { minHeight: topSpacerHeight }), visibleItems.map((item, i) => {
107
+ // Handler to track scroll container rect for click detection
108
+ const handleRect = (x, y, w, h) => {
109
+ rectRef.current = { x, y, w, h };
110
+ };
111
+ return (_jsx("scroll", { ...scrollProps, showScrollbar: showScrollbar, onRect: handleRect, children: _jsxs("vstack", { children: [_jsx("box", { height: topSpacerHeight }, "top-spacer"), visibleItems.map((item, i) => {
85
112
  const actualIndex = startIndex + i;
86
113
  return (_jsx("vstack", { children: renderItem(item, actualIndex, actualIndex === selectedIndex) }, keyExtractor(item, actualIndex)));
87
- }), bottomSpacerHeight > 0 && _jsx("spacer", { minHeight: bottomSpacerHeight })] }) }));
114
+ }), _jsx("box", { height: bottomSpacerHeight }, "bottom-spacer")] }) }));
88
115
  }
89
116
  //# sourceMappingURL=ListView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView.js","sourceRoot":"","sources":["../../../src/components/ListView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListView.js","sourceRoot":"","sources":["../../../src/components/ListView.tsx"],"names":[],"mappings":"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"}
@@ -21,16 +21,35 @@ export declare class ConsoleCapture extends EventEmitter {
21
21
  private originalConsole;
22
22
  private active;
23
23
  private maxEntries;
24
+ private inConsoleMethod;
25
+ private inRendererWrite;
24
26
  constructor(options?: {
25
27
  maxEntries?: number;
26
28
  });
29
+ /**
30
+ * Write directly to stdout, bypassing capture.
31
+ * Used by the TUI renderer to output to terminal.
32
+ */
33
+ writeToTerminal(data: string | Uint8Array): boolean;
27
34
  get isActive(): boolean;
28
35
  getEntries(): LogEntry[];
29
36
  clear(): void;
30
37
  activate(): void;
31
38
  deactivate(): void;
32
39
  private appendToConsole;
40
+ private captureRawOutput;
41
+ private detectLogLevel;
33
42
  writeToOriginal(level: LogLevel, ...args: unknown[]): void;
34
43
  }
35
44
  export declare function getConsoleCapture(): ConsoleCapture;
45
+ /**
46
+ * Write directly to the terminal, bypassing console capture.
47
+ * Used by the TUI renderer to output to terminal without being captured.
48
+ */
49
+ export declare function writeToTerminal(data: string | Uint8Array): boolean;
50
+ /**
51
+ * Create a wrapped stdout that bypasses console capture.
52
+ * Returns a write function compatible with TuiWriteStream.
53
+ */
54
+ export declare function createTerminalWriter(): typeof process.stdout.write;
36
55
  //# sourceMappingURL=ConsoleCapture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleCapture.d.ts","sourceRoot":"","sources":["../../../src/console/ConsoleCapture.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ1C,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAElE,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACxB,SAAS,EAAE,IAAI,CAAA;IACf,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,QAAQ,CAAC,EAAE,cAAc,CAAA;CACzB;AA4ED,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;CAChC;AAED,qBAAa,cAAe,SAAQ,YAAY;IAC/C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAQ;gBAEd,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAK7C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,UAAU,IAAI,QAAQ,EAAE;IAIxB,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,IAAI;IAkEhB,UAAU,IAAI,IAAI;IAQlB,OAAO,CAAC,eAAe;IA2BvB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAoB1D;AAQD,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD"}
1
+ {"version":3,"file":"ConsoleCapture.d.ts","sourceRoot":"","sources":["../../../src/console/ConsoleCapture.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAQ1C,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAElE,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACxB,SAAS,EAAE,IAAI,CAAA;IACf,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,QAAQ,CAAC,EAAE,cAAc,CAAA;CACzB;AA4ED,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;CAChC;AAOD,qBAAa,cAAe,SAAQ,YAAY;IAC/C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,eAAe,CAAQ;IAE/B,OAAO,CAAC,eAAe,CAAQ;gBAEnB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAK7C;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO;IASnD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,UAAU,IAAI,QAAQ,EAAE;IAIxB,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,IAAI;IAyGhB,UAAU,IAAI,IAAI;IAYlB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,cAAc;IAgBtB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;CAoB1D;AAQD,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAElE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAQlE"}
@@ -1,5 +1,6 @@
1
1
  // Console capture singleton for TUI debugging
2
- // Intercepts console.log/info/warn/error/debug and stores entries for display
2
+ // Intercepts console.log/info/warn/error/debug AND process.stdout/stderr.write
3
+ // to capture ALL output including Effect.log, third-party libraries, etc.
3
4
  import { Console } from "node:console";
4
5
  import { EventEmitter } from "node:events";
5
6
  import { Writable } from "node:stream";
@@ -64,15 +65,36 @@ class CapturedWritableStream extends Writable {
64
65
  return process.stdout.getColorDepth?.() || 8;
65
66
  }
66
67
  }
68
+ // Store the ORIGINAL stdout/stderr write functions at module load time
69
+ // This ensures the renderer can always write to the terminal even when capture is active
70
+ const originalStdoutWrite = process.stdout.write.bind(process.stdout);
71
+ const originalStderrWrite = process.stderr.write.bind(process.stderr);
67
72
  export class ConsoleCapture extends EventEmitter {
68
73
  entries = [];
69
74
  originalConsole = null;
70
75
  active = false;
71
76
  maxEntries;
77
+ // Track if current write is from our console methods (to avoid double-capture)
78
+ inConsoleMethod = false;
79
+ // Track if current write is from the TUI renderer (should bypass capture)
80
+ inRendererWrite = false;
72
81
  constructor(options) {
73
82
  super();
74
83
  this.maxEntries = options?.maxEntries ?? 1000;
75
84
  }
85
+ /**
86
+ * Write directly to stdout, bypassing capture.
87
+ * Used by the TUI renderer to output to terminal.
88
+ */
89
+ writeToTerminal(data) {
90
+ this.inRendererWrite = true;
91
+ try {
92
+ return originalStdoutWrite(data);
93
+ }
94
+ finally {
95
+ this.inRendererWrite = false;
96
+ }
97
+ }
76
98
  get isActive() {
77
99
  return this.active;
78
100
  }
@@ -87,6 +109,37 @@ export class ConsoleCapture extends EventEmitter {
87
109
  return;
88
110
  // Store original console
89
111
  this.originalConsole = globalThis.console;
112
+ // Intercept stdout.write - captures Effect.log, printf, etc.
113
+ process.stdout.write = ((chunk, encodingOrCallback, callback) => {
114
+ // If this write is from renderer or console methods, pass through
115
+ if (this.inRendererWrite) {
116
+ return originalStdoutWrite(chunk, encodingOrCallback, callback);
117
+ }
118
+ // Capture if not from our console methods (avoid double-capture)
119
+ if (!this.inConsoleMethod) {
120
+ const text = typeof chunk === "string" ? chunk : chunk.toString();
121
+ this.captureRawOutput(text, "stdout");
122
+ }
123
+ // Don't write to real stdout - TUI owns the terminal
124
+ const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
125
+ if (cb)
126
+ cb();
127
+ return true;
128
+ });
129
+ // Intercept stderr.write
130
+ process.stderr.write = ((chunk, encodingOrCallback, callback) => {
131
+ if (this.inRendererWrite) {
132
+ return originalStderrWrite(chunk, encodingOrCallback, callback);
133
+ }
134
+ if (!this.inConsoleMethod) {
135
+ const text = typeof chunk === "string" ? chunk : chunk.toString();
136
+ this.captureRawOutput(text, "stderr");
137
+ }
138
+ const cb = typeof encodingOrCallback === "function" ? encodingOrCallback : callback;
139
+ if (cb)
140
+ cb();
141
+ return true;
142
+ });
90
143
  // Create mock streams for the new console
91
144
  const mockStdout = new CapturedWritableStream();
92
145
  const mockStderr = new CapturedWritableStream();
@@ -142,32 +195,86 @@ export class ConsoleCapture extends EventEmitter {
142
195
  deactivate() {
143
196
  if (!this.active || !this.originalConsole)
144
197
  return;
198
+ // Restore original stdout/stderr write methods
199
+ process.stdout.write = originalStdoutWrite;
200
+ process.stderr.write = originalStderrWrite;
145
201
  globalThis.console = this.originalConsole;
146
202
  this.originalConsole = null;
147
203
  this.active = false;
148
204
  }
149
205
  appendToConsole(level, args) {
150
- const location = captureCallerLocation();
151
- const message = util.format(...args);
206
+ // Mark that we're in a console method to avoid double-capture from stdout/stderr
207
+ this.inConsoleMethod = true;
208
+ try {
209
+ const location = captureCallerLocation();
210
+ const message = util.format(...args);
211
+ const entry = {
212
+ timestamp: new Date(),
213
+ level,
214
+ message,
215
+ args,
216
+ location,
217
+ };
218
+ // Enforce max entries
219
+ if (this.entries.length >= this.maxEntries) {
220
+ this.entries.shift();
221
+ }
222
+ this.entries.push(entry);
223
+ // Emit events
224
+ this.emit("entry", entry);
225
+ // Only emit error event if there are listeners (avoid unhandled error exception)
226
+ if (level === "ERROR" && this.listenerCount("error") > 0) {
227
+ this.emit("error", entry);
228
+ }
229
+ }
230
+ finally {
231
+ this.inConsoleMethod = false;
232
+ }
233
+ }
234
+ // Capture raw output from stdout/stderr (for Effect.log, third-party libs, etc.)
235
+ captureRawOutput(text, stream) {
236
+ // Skip empty output
237
+ if (!text.trim())
238
+ return;
239
+ // Parse Effect log format: timestamp level fiber message
240
+ // Example: "timestamp=2024-01-15T10:30:00.000Z level=INFO fiber=#0 message=Hello"
241
+ // Or the pretty format with ANSI colors
242
+ const level = this.detectLogLevel(text, stream);
243
+ // Strip ANSI codes for the stored message
244
+ const cleanText = text.replace(/\x1b\[[0-9;]*m/g, "").trim();
152
245
  const entry = {
153
246
  timestamp: new Date(),
154
247
  level,
155
- message,
156
- args,
157
- location,
248
+ message: cleanText,
249
+ args: [text], // Keep original with ANSI for potential future use
250
+ // No location for raw output - we can't get stack trace here
158
251
  };
159
- // Enforce max entries
160
252
  if (this.entries.length >= this.maxEntries) {
161
253
  this.entries.shift();
162
254
  }
163
255
  this.entries.push(entry);
164
- // Emit events
165
256
  this.emit("entry", entry);
166
- // Only emit error event if there are listeners (avoid unhandled error exception)
167
257
  if (level === "ERROR" && this.listenerCount("error") > 0) {
168
258
  this.emit("error", entry);
169
259
  }
170
260
  }
261
+ // Detect log level from raw output text
262
+ detectLogLevel(text, stream) {
263
+ const upperText = text.toUpperCase();
264
+ // Effect log format detection
265
+ if (upperText.includes("LEVEL=ERROR") || upperText.includes("[ERROR]"))
266
+ return "ERROR";
267
+ if (upperText.includes("LEVEL=WARN") || upperText.includes("[WARN]"))
268
+ return "WARN";
269
+ if (upperText.includes("LEVEL=INFO") || upperText.includes("[INFO]"))
270
+ return "INFO";
271
+ if (upperText.includes("LEVEL=DEBUG") || upperText.includes("[DEBUG]"))
272
+ return "DEBUG";
273
+ // stderr is typically error output
274
+ if (stream === "stderr")
275
+ return "ERROR";
276
+ return "LOG";
277
+ }
171
278
  // Also expose write to original console for debugging the capture itself
172
279
  writeToOriginal(level, ...args) {
173
280
  if (!this.originalConsole)
@@ -201,6 +308,22 @@ export function getConsoleCapture() {
201
308
  }
202
309
  return instance;
203
310
  }
311
+ /**
312
+ * Write directly to the terminal, bypassing console capture.
313
+ * Used by the TUI renderer to output to terminal without being captured.
314
+ */
315
+ export function writeToTerminal(data) {
316
+ return originalStdoutWrite(data);
317
+ }
318
+ /**
319
+ * Create a wrapped stdout that bypasses console capture.
320
+ * Returns a write function compatible with TuiWriteStream.
321
+ */
322
+ export function createTerminalWriter() {
323
+ return ((chunk, encodingOrCallback, callback) => {
324
+ return originalStdoutWrite(chunk, encodingOrCallback, callback);
325
+ });
326
+ }
204
327
  // Clean up on process exit
205
328
  process.on("exit", () => {
206
329
  if (instance?.isActive) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleCapture.js","sourceRoot":"","sources":["../../../src/console/ConsoleCapture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsoleCapture.js","sourceRoot":"","sources":["../../../src/console/ConsoleCapture.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,9 @@ export interface ScrollState {
17
17
  export interface UseScrollOptions {
18
18
  /** Scroll axis: "vertical" (default) or "horizontal" */
19
19
  axis?: "vertical" | "horizontal";
20
- /** Initial viewport size override (useful for tests) */
20
+ /** @internal Initial viewport size override (useful for tests) */
21
21
  initialViewportSize?: number;
22
- /** Initial content size override (useful for tests) */
22
+ /** @internal Initial content size override (useful for tests) */
23
23
  initialContentSize?: number;
24
24
  /** Initial scroll offset */
25
25
  initialOffset?: number;
@@ -53,14 +53,16 @@ export interface UseScrollReturn {
53
53
  * @param position - The position (row/col index or pixel offset)
54
54
  * @param itemSize - Size of each item (default: 1 for row-based lists)
55
55
  * @param padding - Extra padding around the item (default: 0)
56
+ * @param totalSize - Optional known total content size (avoids stale state issues)
56
57
  */
57
- scrollToVisible: (position: number, itemSize?: number, padding?: number) => void;
58
+ scrollToVisible: (position: number, itemSize?: number, padding?: number, totalSize?: number) => void;
58
59
  /** Props to spread on <scroll> element */
59
60
  scrollProps: {
60
61
  offset: number;
61
62
  axis: "vertical" | "horizontal";
62
63
  onContentSize: (width: number, height: number) => void;
63
64
  onViewportSize: (width: number, height: number) => void;
65
+ onRect?: (x: number, y: number, w: number, h: number) => void;
64
66
  };
65
67
  }
66
68
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"use-scroll.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-scroll.ts"],"names":[],"mappings":"AAsFA,MAAM,WAAW,WAAW;IAC3B,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAA;IACpB,0DAA0D;IAC1D,gBAAgB,EAAE,OAAO,CAAA;IACzB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAChC,wDAAwD;IACxD,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IAChC,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,iCAAiC;IACjC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,6BAA6B;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,sBAAsB;IACtB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,oBAAoB;IACpB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAChF,0CAA0C;IAC1C,WAAW,EAAE;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,UAAU,GAAG,YAAY,CAAA;QAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;QACtD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KACvD,CAAA;CACD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA+NzE"}
1
+ {"version":3,"file":"use-scroll.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-scroll.ts"],"names":[],"mappings":"AAsFA,MAAM,WAAW,WAAW;IAC3B,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAA;IACpB,0DAA0D;IAC1D,gBAAgB,EAAE,OAAO,CAAA;IACzB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAChC,wDAAwD;IACxD,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IAChC,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,iCAAiC;IACjC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,6BAA6B;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,sBAAsB;IACtB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,oBAAoB;IACpB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACpG,0CAA0C;IAC1C,WAAW,EAAE;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,UAAU,GAAG,YAAY,CAAA;QAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;QACtD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;QACvD,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAC7D,CAAA;CACD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAiOzE"}
@@ -193,17 +193,19 @@ export function useScroll(options = {}) {
193
193
  useKeyboard(handleKey);
194
194
  // Scroll to make a position visible (for keeping selection in view)
195
195
  // Uses refs to avoid changing on every scroll - only triggers when selection changes
196
- const scrollToVisible = useCallback((position, itemSize = 1, padding = 0) => {
196
+ const scrollToVisible = useCallback((position, itemSize = 1, padding = 0, totalSize) => {
197
197
  const currentOffset = offsetRef.current;
198
198
  const itemStart = position * itemSize;
199
199
  const itemEnd = itemStart + itemSize;
200
+ // Use provided totalSize if available (more accurate than potentially stale contentSize)
201
+ const effectiveContentSize = totalSize ?? contentSize;
200
202
  // If item is above viewport, scroll up to show it
201
203
  if (itemStart < currentOffset + padding) {
202
204
  setOffset(Math.max(0, itemStart - padding));
203
205
  }
204
206
  // If item is below viewport, scroll down to show it
205
207
  else if (itemEnd > currentOffset + viewportSize - padding) {
206
- const currentMaxOffset = Math.max(0, contentSize - viewportSize);
208
+ const currentMaxOffset = Math.max(0, effectiveContentSize - viewportSize);
207
209
  setOffset(Math.min(currentMaxOffset, itemEnd - viewportSize + padding));
208
210
  }
209
211
  }, [viewportSize, contentSize, setOffset]);
@@ -1 +1 @@
1
- {"version":3,"file":"use-scroll.js","sourceRoot":"","sources":["../../../src/hooks/use-scroll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-scroll.js","sourceRoot":"","sources":["../../../src/hooks/use-scroll.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export { OverlayItemHost, type OverlayItemProps } from "./overlay-item.js";
11
11
  export { ScrollHost, type ScrollProps } from "./scroll.js";
12
12
  export { SingleChildHost } from "./single-child.js";
13
13
  export { SpacerHost, type SpacerProps } from "./spacer.js";
14
- export { RawTextHost, StyledTextHost, TextHost, type StyledSpan, type StyledTextProps, type TextProps } from "./text.js";
14
+ export { RawTextHost, SpanHost, StyledTextHost, TextHost, type SpanProps, type SpanStyle, type StyledSpan, type StyledTextProps, type TextProps, } from "./text.js";
15
15
  export { VStackHost, type VStackProps } from "./vstack.js";
16
16
  export { ZStackHost, type ZStackProps } from "./zstack.js";
17
17
  export declare const hostRegistry: Record<string, new (props: any, ctx: HostContext) => BaseHost>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AASzC,OAAO,EAAE,WAAW,EAA4B,MAAM,WAAW,CAAA;AAIjE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AACxH,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAI1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,QAAQ,CAavF,CAAA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,QAAQ,CAM/F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAE9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AASzC,OAAO,EAAE,WAAW,EAAsC,MAAM,WAAW,CAAA;AAI3E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,SAAS,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAI1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,QAAQ,CAcvF,CAAA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,QAAQ,CAM/F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAE9E"}
@@ -6,7 +6,7 @@ import { OverlayHost } from "./overlay.js";
6
6
  import { OverlayItemHost } from "./overlay-item.js";
7
7
  import { ScrollHost } from "./scroll.js";
8
8
  import { SpacerHost } from "./spacer.js";
9
- import { RawTextHost, StyledTextHost, TextHost } from "./text.js";
9
+ import { RawTextHost, SpanHost, StyledTextHost, TextHost } from "./text.js";
10
10
  import { VStackHost } from "./vstack.js";
11
11
  import { ZStackHost } from "./zstack.js";
12
12
  export { BaseHost } from "./base.js";
@@ -19,13 +19,14 @@ export { OverlayItemHost } from "./overlay-item.js";
19
19
  export { ScrollHost } from "./scroll.js";
20
20
  export { SingleChildHost } from "./single-child.js";
21
21
  export { SpacerHost } from "./spacer.js";
22
- export { RawTextHost, StyledTextHost, TextHost } from "./text.js";
22
+ export { RawTextHost, SpanHost, StyledTextHost, TextHost, } from "./text.js";
23
23
  export { VStackHost } from "./vstack.js";
24
24
  export { ZStackHost } from "./zstack.js";
25
25
  // Use any to allow specialized props on each host type
26
26
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
27
  export const hostRegistry = {
28
28
  text: TextHost,
29
+ span: SpanHost,
29
30
  styledtext: StyledTextHost,
30
31
  spacer: SpacerHost,
31
32
  vstack: VStackHost,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAsC,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAuB,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAyB,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAyD,MAAM,WAAW,CAAA;AACxH,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAE1D,uDAAuD;AACvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAmE;IAC3F,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,cAAc;IAC1B,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,aAAa;IACxB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,eAAe;CAC5B,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAAkB,EAAE,GAAgB;IACpF,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,GAAgB;IAChE,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAsC,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAuB,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAyB,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,GAMR,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAE1D,uDAAuD;AACvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAmE;IAC3F,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,cAAc;IAC1B,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,aAAa;IACxB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,eAAe;CAC5B,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAAkB,EAAE,GAAgB;IACpF,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,GAAgB;IAChE,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC"}