@nuvin/ink 6.5.2-test-scroll-1 → 6.5.3-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.
@@ -1,62 +1,92 @@
1
1
  import React from 'react';
2
+ import { type Except } from 'type-fest';
3
+ import { type ScrollState } from '../hooks/use-scroll.js';
2
4
  import { type DOMElement } from '../dom.js';
3
5
  import { type Props as BoxProps } from './Box.js';
4
- import { type UseScrollReturn } from '../hooks/use-scroll.js';
5
- export interface ScrollBoxProps extends BoxProps {
6
- /**
7
- * Enable horizontal scrolling
8
- * @default false
9
- */
10
- scrollX?: boolean;
11
- /**
12
- * Enable vertical scrolling
13
- * @default false
14
- */
15
- scrollY?: boolean;
16
- /**
17
- * Width of the scrollable content (needed for horizontal scrolling)
18
- */
19
- contentWidth?: number;
20
- /**
21
- * Height of the scrollable content (needed for vertical scrolling)
22
- */
23
- contentHeight?: number;
24
- /**
25
- * Initial scroll position (x, y)
26
- * @default [0, 0]
27
- */
28
- initialScroll?: [number, number];
29
- /**
30
- * Callback when scroll position changes
31
- */
32
- onScroll?: (scrollState: UseScrollReturn) => void;
33
- }
34
- export interface ScrollBoxRef {
35
- /**
36
- * Reference to the underlying DOM element
37
- */
38
- ref: DOMElement | null;
39
- /**
40
- * Scroll control methods and state
41
- */
42
- scroll: UseScrollReturn;
43
- }
44
- /**
45
- * A scrollable container component that supports overflow="scroll"
46
- *
47
- * @example
48
- * ```tsx
49
- * <ScrollBox
50
- * width={20}
51
- * height={10}
52
- * overflow="scroll"
53
- * contentHeight={50}
54
- * >
55
- * {longContent}
56
- * </ScrollBox>
57
- * ```
58
- */
59
- declare const ScrollBox: React.ForwardRefExoticComponent<ScrollBoxProps & {
6
+ export type ScrollBoxProps = Except<BoxProps, 'overflow' | 'overflowX' | 'overflowY'> & {
7
+ readonly scrollX?: boolean;
8
+ readonly scrollY?: boolean;
9
+ readonly contentWidth?: number;
10
+ readonly contentHeight?: number;
11
+ readonly initialScrollX?: number;
12
+ readonly initialScrollY?: number;
13
+ readonly onScroll?: (state: ScrollState) => void;
14
+ };
15
+ export type ScrollBoxRef = {
16
+ node: DOMElement | undefined;
17
+ scroll: ScrollState;
18
+ };
19
+ declare const ScrollBox: React.ForwardRefExoticComponent<{
20
+ readonly position?: "absolute" | "relative" | undefined;
21
+ readonly columnGap?: number | undefined;
22
+ readonly rowGap?: number | undefined;
23
+ readonly gap?: number | undefined;
24
+ readonly margin?: number | undefined;
25
+ readonly marginX?: number | undefined;
26
+ readonly marginY?: number | undefined;
27
+ readonly marginTop?: number | undefined;
28
+ readonly marginBottom?: number | undefined;
29
+ readonly marginLeft?: number | undefined;
30
+ readonly marginRight?: number | undefined;
31
+ readonly padding?: number | undefined;
32
+ readonly paddingX?: number | undefined;
33
+ readonly paddingY?: number | undefined;
34
+ readonly paddingTop?: number | undefined;
35
+ readonly paddingBottom?: number | undefined;
36
+ readonly paddingLeft?: number | undefined;
37
+ readonly paddingRight?: number | undefined;
38
+ readonly flexGrow?: number | undefined;
39
+ readonly flexShrink?: number | undefined;
40
+ readonly flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
41
+ readonly flexBasis?: number | string | undefined;
42
+ readonly flexWrap?: "nowrap" | "wrap" | "wrap-reverse" | undefined;
43
+ readonly alignItems?: "flex-start" | "center" | "flex-end" | "stretch" | undefined;
44
+ readonly alignSelf?: "flex-start" | "center" | "flex-end" | "auto" | undefined;
45
+ readonly justifyContent?: "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | "center" | undefined;
46
+ readonly width?: number | string | undefined;
47
+ readonly height?: number | string | undefined;
48
+ readonly minWidth?: number | string | undefined;
49
+ readonly minHeight?: number | string | undefined;
50
+ readonly display?: "flex" | "none" | undefined;
51
+ readonly borderStyle?: (keyof import("cli-boxes").Boxes | import("cli-boxes").BoxStyle) | undefined;
52
+ readonly borderTop?: boolean | undefined;
53
+ readonly borderBottom?: boolean | undefined;
54
+ readonly borderLeft?: boolean | undefined;
55
+ readonly borderRight?: boolean | undefined;
56
+ readonly borderColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
57
+ readonly borderTopColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
58
+ readonly borderBottomColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
59
+ readonly borderLeftColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
60
+ readonly borderRightColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
61
+ readonly borderDimColor?: boolean | undefined;
62
+ readonly borderTopDimColor?: boolean | undefined;
63
+ readonly borderBottomDimColor?: boolean | undefined;
64
+ readonly borderLeftDimColor?: boolean | undefined;
65
+ readonly borderRightDimColor?: boolean | undefined;
66
+ readonly backgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
67
+ readonly 'aria-label'?: string | undefined;
68
+ readonly 'aria-hidden'?: boolean | undefined;
69
+ readonly 'aria-role'?: "button" | "checkbox" | "combobox" | "list" | "listbox" | "listitem" | "menu" | "menuitem" | "option" | "progressbar" | "radio" | "radiogroup" | "tab" | "tablist" | "table" | "textbox" | "timer" | "toolbar" | undefined;
70
+ readonly 'aria-state'?: {
71
+ readonly busy?: boolean;
72
+ readonly checked?: boolean;
73
+ readonly disabled?: boolean;
74
+ readonly expanded?: boolean;
75
+ readonly multiline?: boolean;
76
+ readonly multiselectable?: boolean;
77
+ readonly readonly?: boolean;
78
+ readonly required?: boolean;
79
+ readonly selected?: boolean;
80
+ } | undefined;
81
+ } & {
82
+ readonly scrollX?: boolean;
83
+ readonly scrollY?: boolean;
84
+ readonly contentWidth?: number;
85
+ readonly contentHeight?: number;
86
+ readonly initialScrollX?: number;
87
+ readonly initialScrollY?: number;
88
+ readonly onScroll?: (state: ScrollState) => void;
89
+ } & {
60
90
  children?: React.ReactNode | undefined;
61
91
  } & React.RefAttributes<ScrollBoxRef>>;
62
92
  export default ScrollBox;
@@ -1,75 +1,37 @@
1
- import React, { forwardRef, useRef, useEffect, useImperativeHandle } from 'react';
2
- import Box from './Box.js';
1
+ import React, { forwardRef, useRef, useEffect, useImperativeHandle, useLayoutEffect, } from 'react';
3
2
  import { useScroll } from '../hooks/use-scroll.js';
4
- /**
5
- * A scrollable container component that supports overflow="scroll"
6
- *
7
- * @example
8
- * ```tsx
9
- * <ScrollBox
10
- * width={20}
11
- * height={10}
12
- * overflow="scroll"
13
- * contentHeight={50}
14
- * >
15
- * {longContent}
16
- * </ScrollBox>
17
- * ```
18
- */
19
- const ScrollBox = forwardRef(({ children, scrollX = false, scrollY = false, contentWidth, contentHeight, initialScroll = [0, 0], onScroll, width, height, overflow = 'visible', overflowX, overflowY, ...boxProps }, ref) => {
3
+ import Box from './Box.js';
4
+ const ScrollBox = forwardRef(({ children, width, height, scrollX = false, scrollY = true, contentWidth, contentHeight, initialScrollX = 0, initialScrollY = 0, onScroll, ...boxProps }, ref) => {
20
5
  const boxRef = useRef(null);
21
- // Determine if scrolling should be enabled based on overflow props
22
- const shouldScrollX = scrollX || overflowX === 'scroll' || overflow === 'scroll';
23
- const shouldScrollY = scrollY || overflowY === 'scroll' || overflow === 'scroll';
24
- // Default to vertical scrolling if scroll is requested but no direction specified
25
- const finalScrollY = shouldScrollY || (scrollY && !shouldScrollX);
26
- const finalScrollX = shouldScrollX;
27
- // Calculate content dimensions from props or measure children
28
6
  const containerWidth = typeof width === 'number' ? width : 0;
29
7
  const containerHeight = typeof height === 'number' ? height : 0;
30
- const scrollOptions = {
31
- scrollX: finalScrollX,
32
- scrollY: finalScrollY,
33
- contentWidth: contentWidth || containerWidth,
34
- contentHeight: contentHeight || containerHeight,
8
+ const scroll = useScroll({
9
+ scrollX,
10
+ scrollY,
11
+ contentWidth: contentWidth ?? containerWidth,
12
+ contentHeight: contentHeight ?? containerHeight,
35
13
  containerWidth,
36
14
  containerHeight,
37
- };
38
- const scroll = useScroll(scrollOptions, {
39
- x: finalScrollX ? initialScroll[0] : undefined,
40
- y: finalScrollY ? initialScroll[1] : undefined
15
+ }, {
16
+ x: scrollX ? initialScrollX : undefined,
17
+ y: scrollY ? initialScrollY : undefined,
41
18
  });
42
- // Notify parent of scroll changes
43
19
  useEffect(() => {
44
- if (onScroll) {
45
- onScroll(scroll);
46
- }
47
- }, [scroll.scrollLeft, scroll.scrollTop, onScroll]);
48
- // Expose ref with scroll state and methods
20
+ onScroll?.(scroll);
21
+ }, [scroll.scrollLeft, scroll.scrollTop, onScroll, scroll]);
49
22
  useImperativeHandle(ref, () => ({
50
- ref: boxRef.current,
23
+ node: boxRef.current ?? undefined,
51
24
  scroll,
52
25
  }), [scroll]);
53
- // Update the DOM element with scroll offset
54
- useEffect(() => {
55
- if (boxRef.current && (finalScrollX || finalScrollY)) {
26
+ useLayoutEffect(() => {
27
+ if (boxRef.current) {
56
28
  boxRef.current.internal_scrollOffset = {
57
- x: finalScrollX ? scroll.scrollLeft : 0,
58
- y: finalScrollY ? scroll.scrollTop : 0,
29
+ x: scrollX ? scroll.scrollLeft : 0,
30
+ y: scrollY ? scroll.scrollTop : 0,
59
31
  };
60
32
  }
61
- }, [scroll.scrollLeft, scroll.scrollTop, finalScrollX, finalScrollY]);
62
- // Determine the appropriate overflow value - use a separate approach
63
- // by setting the internal_scrollOffset directly on the DOM element
64
- const allBoxProps = {
65
- width,
66
- height,
67
- overflow: (finalScrollX || finalScrollY) ? 'scroll' : overflow,
68
- overflowX: finalScrollX ? 'scroll' : overflowX,
69
- overflowY: finalScrollY ? 'scroll' : overflowY,
70
- ...boxProps
71
- };
72
- return (React.createElement(Box, { ref: boxRef, ...allBoxProps }, children));
33
+ }, [scroll.scrollLeft, scroll.scrollTop, scrollX, scrollY]);
34
+ return (React.createElement(Box, { ref: boxRef, width: width, height: height, overflowX: scrollX ? 'scroll' : 'visible', overflowY: scrollY ? 'scroll' : 'visible', ...boxProps }, children));
73
35
  });
74
36
  ScrollBox.displayName = 'ScrollBox';
75
37
  export default ScrollBox;
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollBox.js","sourceRoot":"","sources":["../../src/components/ScrollBox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScrollBox.js","sourceRoot":"","sources":["../../src/components/ScrollBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACb,UAAU,EACV,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,eAAe,GAEf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAC,SAAS,EAAmB,MAAM,wBAAwB,CAAC;AAEnE,OAAO,GAA6B,MAAM,UAAU,CAAC;AAoBrD,MAAM,SAAS,GAAG,UAAU,CAC3B,CACC,EACC,QAAQ,EACR,KAAK,EACL,MAAM,EACN,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,IAAI,EACd,YAAY,EACZ,aAAa,EACb,cAAc,GAAG,CAAC,EAClB,cAAc,GAAG,CAAC,EAClB,QAAQ,EACR,GAAG,QAAQ,EACX,EACD,GAAG,EACF,EAAE;IACH,MAAM,MAAM,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IAExC,MAAM,cAAc,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,SAAS,CACvB;QACC,OAAO;QACP,OAAO;QACP,YAAY,EAAE,YAAY,IAAI,cAAc;QAC5C,aAAa,EAAE,aAAa,IAAI,eAAe;QAC/C,cAAc;QACd,eAAe;KACf,EACD;QACC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACvC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;KACvC,CACD,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5D,mBAAmB,CAClB,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACN,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;QACjC,MAAM;KACN,CAAC,EACF,CAAC,MAAM,CAAC,CACR,CAAC;IAEF,eAAe,CAAC,GAAG,EAAE;QACpB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,qBAAqB,GAAG;gBACtC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAClC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACjC,CAAC;QACH,CAAC;IACF,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE5D,OAAO,CACN,oBAAC,GAAG,IACH,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACzC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KACrC,QAAQ,IAEX,QAAQ,CACJ,CACN,CAAC;AACH,CAAC,CACD,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,eAAe,SAAS,CAAC"}
@@ -15,7 +15,7 @@ export default function Static(props) {
15
15
  useLayoutEffect(() => {
16
16
  setIndex(items.length);
17
17
  }, [items.length]);
18
- const children = itemsToRender.map((item, itemIndex) => {
18
+ const children = itemsToRender.map(async (item, itemIndex) => {
19
19
  return render(item, index + itemIndex);
20
20
  });
21
21
  const style = useMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"file":"Static.js","sourceRoot":"","sources":["../../src/components/Static.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAiB,MAAM,OAAO,CAAC;AAoBhF;;;;;;EAME;AACF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAI,KAAe;IAChD,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC,GAAG,KAAK,CAAC;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAQ,OAAO,CAAC,GAAG,EAAE;QACvC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,eAAe,CAAC,GAAG,EAAE;QACpB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACtD,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAW,OAAO,CAC5B,GAAG,EAAE,CAAC,CAAC;QACN,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,QAAQ;QACvB,GAAG,WAAW;KACd,CAAC,EACF,CAAC,WAAW,CAAC,CACb,CAAC;IAEF,OAAO,CACN,iCAAS,eAAe,QAAC,KAAK,EAAE,KAAK,IACnC,QAAQ,CACA,CACV,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Static.js","sourceRoot":"","sources":["../../src/components/Static.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAiB,MAAM,OAAO,CAAC;AAoBhF;;;;;;EAME;AACF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAI,KAAe;IAChD,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC,GAAG,KAAK,CAAC;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAQ,OAAO,CAAC,GAAG,EAAE;QACvC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,eAAe,CAAC,GAAG,EAAE;QACpB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QAC5D,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAW,OAAO,CAC5B,GAAG,EAAE,CAAC,CAAC;QACN,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,QAAQ;QACvB,GAAG,WAAW;KACd,CAAC,EACF,CAAC,WAAW,CAAC,CACb,CAAC;IAEF,OAAO,CACN,iCAAS,eAAe,QAAC,KAAK,EAAE,KAAK,IACnC,QAAQ,CACA,CACV,CAAC;AACH,CAAC"}
package/build/dom.d.ts CHANGED
@@ -5,6 +5,10 @@ type InkNode = {
5
5
  parentNode: DOMElement | undefined;
6
6
  yogaNode?: YogaNode;
7
7
  internal_static?: boolean;
8
+ internal_scrollOffset?: {
9
+ x: number;
10
+ y: number;
11
+ };
8
12
  style: Styles;
9
13
  };
10
14
  export type TextName = '#text';
@@ -29,13 +33,6 @@ export type DOMElement = {
29
33
  selected?: boolean;
30
34
  };
31
35
  };
32
- /**
33
- * Internal scroll offset for scrollable containers
34
- */
35
- internal_scrollOffset?: {
36
- x: number;
37
- y: number;
38
- };
39
36
  isStaticDirty?: boolean;
40
37
  staticNode?: DOMElement;
41
38
  onComputeLayout?: () => void;
package/build/dom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
@@ -1,89 +1,28 @@
1
- export interface ScrollOptions {
2
- /**
3
- * Enable horizontal scrolling
4
- * @default false
5
- */
6
- scrollX?: boolean;
7
- /**
8
- * Enable vertical scrolling
9
- * @default false
10
- */
11
- scrollY?: boolean;
12
- /**
13
- * Width of the scrollable content (needed for horizontal scrolling)
14
- */
15
- contentWidth?: number;
16
- /**
17
- * Height of the scrollable content (needed for vertical scrolling)
18
- */
19
- contentHeight?: number;
20
- /**
21
- * Width of the visible container
22
- */
23
- containerWidth?: number;
24
- /**
25
- * Height of the visible container
26
- */
27
- containerHeight?: number;
28
- }
29
- export interface ScrollState {
30
- /**
31
- * Current horizontal scroll position
32
- */
1
+ export type ScrollState = {
33
2
  scrollLeft: number;
34
- /**
35
- * Current vertical scroll position
36
- */
37
3
  scrollTop: number;
38
- /**
39
- * Maximum horizontal scroll position
40
- */
41
4
  maxScrollLeft: number;
42
- /**
43
- * Maximum vertical scroll position
44
- */
45
5
  maxScrollTop: number;
46
- /**
47
- * Whether horizontal scrolling is possible
48
- */
49
6
  canScrollX: boolean;
50
- /**
51
- * Whether vertical scrolling is possible
52
- */
53
7
  canScrollY: boolean;
54
- }
55
- export interface ScrollActions {
56
- /**
57
- * Scroll to a specific horizontal position
58
- */
59
8
  scrollTo: (x: number, y?: number) => void;
60
- /**
61
- * Scroll by a relative amount
62
- */
63
9
  scrollBy: (deltaX: number, deltaY: number) => void;
64
- /**
65
- * Scroll to the top
66
- */
67
10
  scrollToTop: () => void;
68
- /**
69
- * Scroll to the bottom
70
- */
71
11
  scrollToBottom: () => void;
72
- /**
73
- * Scroll to the left
74
- */
75
12
  scrollToLeft: () => void;
76
- /**
77
- * Scroll to the right
78
- */
79
13
  scrollToRight: () => void;
80
- }
81
- export type UseScrollReturn = ScrollState & ScrollActions;
82
- /**
83
- * Hook for managing scroll state in scrollable containers
84
- */
85
- export declare const useScroll: (options?: ScrollOptions, initialValues?: {
14
+ };
15
+ export type ScrollOptions = {
16
+ scrollX?: boolean;
17
+ scrollY?: boolean;
18
+ contentWidth?: number;
19
+ contentHeight?: number;
20
+ containerWidth?: number;
21
+ containerHeight?: number;
22
+ };
23
+ export type ScrollInitialValues = {
86
24
  x?: number;
87
25
  y?: number;
88
- }) => UseScrollReturn;
26
+ };
27
+ export declare const useScroll: (options?: ScrollOptions, initialValues?: ScrollInitialValues) => ScrollState;
89
28
  export default useScroll;
@@ -1,32 +1,27 @@
1
- import { useState, useCallback } from 'react';
2
- /**
3
- * Hook for managing scroll state in scrollable containers
4
- */
1
+ import { useState, useCallback } from "react";
5
2
  export const useScroll = (options = {}, initialValues) => {
6
3
  const { scrollX = false, scrollY = false, contentWidth = 0, contentHeight = 0, containerWidth = 0, containerHeight = 0, } = options;
7
4
  const [scrollLeft, setScrollLeft] = useState(initialValues?.x ?? 0);
8
5
  const [scrollTop, setScrollTop] = useState(initialValues?.y ?? 0);
9
- // Calculate maximum scroll positions
10
6
  const maxScrollLeft = Math.max(0, contentWidth - containerWidth);
11
7
  const maxScrollTop = Math.max(0, contentHeight - containerHeight);
12
- // Calculate whether scrolling is possible
13
8
  const canScrollX = scrollX && maxScrollLeft > 0;
14
9
  const canScrollY = scrollY && maxScrollTop > 0;
15
10
  const scrollTo = useCallback((x, y) => {
16
11
  if (scrollX) {
17
12
  setScrollLeft(Math.max(0, Math.min(maxScrollLeft, x)));
18
13
  }
19
- if (scrollY && typeof y === 'number') {
14
+ if (scrollY && typeof y === "number") {
20
15
  setScrollTop(Math.max(0, Math.min(maxScrollTop, y)));
21
16
  }
22
17
  }, [scrollX, scrollY, maxScrollLeft, maxScrollTop]);
23
18
  const scrollBy = useCallback((deltaX, deltaY) => {
24
- setScrollLeft(prev => {
19
+ setScrollLeft((prev) => {
25
20
  if (!scrollX)
26
21
  return prev;
27
22
  return Math.max(0, Math.min(maxScrollLeft, prev + deltaX));
28
23
  });
29
- setScrollTop(prev => {
24
+ setScrollTop((prev) => {
30
25
  if (!scrollY)
31
26
  return prev;
32
27
  return Math.max(0, Math.min(maxScrollTop, prev + deltaY));
@@ -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":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AA+B9C,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,UAAyB,EAAE,EAC3B,aAAmC,EACrB,EAAE;IAChB,MAAM,EACL,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EACf,YAAY,GAAG,CAAC,EAChB,aAAa,GAAG,CAAC,EACjB,cAAc,GAAG,CAAC,EAClB,eAAe,GAAG,CAAC,GACnB,GAAG,OAAO,CAAC;IAEZ,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,OAAO,IAAI,aAAa,GAAG,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,IAAI,YAAY,GAAG,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,WAAW,CAC3B,CAAC,CAAS,EAAE,CAAU,EAAE,EAAE;QACzB,IAAI,OAAO,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;IACF,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAC/C,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAC3B,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;QAClC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAC/C,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,aAAa,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO;QACN,UAAU;QACV,SAAS;QACT,aAAa;QACb,YAAY;QACZ,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,cAAc;QACd,YAAY;QACZ,aAAa;KACb,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
package/build/index.d.ts CHANGED
@@ -2,8 +2,6 @@ export type { RenderOptions, Instance } from './render.js';
2
2
  export { default as render } from './render.js';
3
3
  export type { Props as BoxProps } from './components/Box.js';
4
4
  export { default as Box } from './components/Box.js';
5
- export type { ScrollBoxProps, ScrollBoxRef } from './components/ScrollBox.js';
6
- export { default as ScrollBox } from './components/ScrollBox.js';
7
5
  export type { Props as TextProps } from './components/Text.js';
8
6
  export { default as Text } from './components/Text.js';
9
7
  export type { Props as AppProps } from './components/AppContext.js';
@@ -17,6 +15,8 @@ export { default as Transform } from './components/Transform.js';
17
15
  export type { Props as NewlineProps } from './components/Newline.js';
18
16
  export { default as Newline } from './components/Newline.js';
19
17
  export { default as Spacer } from './components/Spacer.js';
18
+ export type { ScrollBoxProps, ScrollBoxRef } from './components/ScrollBox.js';
19
+ export { default as ScrollBox } from './components/ScrollBox.js';
20
20
  export type { Key } from './hooks/use-input.js';
21
21
  export { default as useInput } from './hooks/use-input.js';
22
22
  export { default as useApp } from './hooks/use-app.js';
@@ -26,7 +26,7 @@ export { default as useStderr } from './hooks/use-stderr.js';
26
26
  export { default as useFocus } from './hooks/use-focus.js';
27
27
  export { default as useFocusManager } from './hooks/use-focus-manager.js';
28
28
  export { default as useIsScreenReaderEnabled } from './hooks/use-is-screen-reader-enabled.js';
29
- export type { UseScrollReturn, ScrollOptions } from './hooks/use-scroll.js';
29
+ export type { ScrollState, ScrollOptions } from './hooks/use-scroll.js';
30
30
  export { default as useScroll } from './hooks/use-scroll.js';
31
31
  export { default as measureElement } from './measure-element.js';
32
32
  export type { DOMElement } from './dom.js';
package/build/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  export { default as render } from './render.js';
2
2
  export { default as Box } from './components/Box.js';
3
- export { default as ScrollBox } from './components/ScrollBox.js';
4
3
  export { default as Text } from './components/Text.js';
5
4
  export { default as Static } from './components/Static.js';
6
5
  export { default as Transform } from './components/Transform.js';
7
6
  export { default as Newline } from './components/Newline.js';
8
7
  export { default as Spacer } from './components/Spacer.js';
8
+ export { default as ScrollBox } from './components/ScrollBox.js';
9
9
  export { default as useInput } from './hooks/use-input.js';
10
10
  export { default as useApp } from './hooks/use-app.js';
11
11
  export { default as useStdin } from './hooks/use-stdin.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAMrD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AAE5F,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAMrD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,MAAM,yCAAyC,CAAC;AAE5F,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,sBAAsB,CAAC"}
@@ -5,15 +5,10 @@ export declare const renderNodeToScreenReaderOutput: (node: DOMElement, options?
5
5
  parentRole?: string;
6
6
  skipStaticElements?: boolean;
7
7
  }) => string;
8
- export interface ScrollOffset {
9
- x: number;
10
- y: number;
11
- }
12
8
  declare const renderNodeToOutput: (node: DOMElement, output: Output, options: {
13
9
  offsetX?: number;
14
10
  offsetY?: number;
15
11
  transformers?: OutputTransformer[];
16
12
  skipStaticElements: boolean;
17
- scrollOffset?: ScrollOffset;
18
13
  }) => void;
19
14
  export default renderNodeToOutput;
@@ -1,6 +1,5 @@
1
1
  import widestLine from 'widest-line';
2
2
  import indentString from 'indent-string';
3
- import sliceAnsi from 'slice-ansi';
4
3
  import Yoga from 'yoga-layout';
5
4
  import wrapText from './wrap-text.js';
6
5
  import getMaxWidth from './get-max-width.js';
@@ -68,8 +67,9 @@ export const renderNodeToScreenReaderOutput = (node, options = {}) => {
68
67
  }
69
68
  return output;
70
69
  };
70
+ // After nodes are laid out, render each to output object, which later gets rendered to terminal
71
71
  const renderNodeToOutput = (node, output, options) => {
72
- const { offsetX = 0, offsetY = 0, transformers = [], skipStaticElements, scrollOffset = { x: 0, y: 0 }, } = options;
72
+ const { offsetX = 0, offsetY = 0, transformers = [], skipStaticElements, } = options;
73
73
  if (skipStaticElements && node.internal_static) {
74
74
  return;
75
75
  }
@@ -92,60 +92,47 @@ const renderNodeToOutput = (node, output, options) => {
92
92
  if (text.length > 0) {
93
93
  const currentWidth = widestLine(text);
94
94
  const maxWidth = getMaxWidth(yogaNode);
95
- // Check if we're in a scrollable container
96
- const isHorizontallyScrollable = scrollOffset.x !== 0;
97
- const isVerticallyScrollable = scrollOffset.y !== 0;
98
- // For horizontally scrollable content, don't wrap text - let it overflow
99
- if (!isHorizontallyScrollable && currentWidth > maxWidth) {
95
+ if (currentWidth > maxWidth) {
100
96
  const textWrap = node.style.textWrap ?? 'wrap';
101
97
  text = wrapText(text, maxWidth, textWrap);
102
98
  }
103
99
  text = applyPaddingToText(node, text);
104
- // Apply scroll offset for scrollable containers
105
- if (isHorizontallyScrollable || isVerticallyScrollable) {
106
- const lines = text.split('\n');
107
- // Apply vertical scroll offset
108
- const scrolledLines = isVerticallyScrollable ?
109
- lines.slice(Math.max(0, scrollOffset.y)) : lines;
110
- // Apply horizontal scroll offset
111
- const scrolledText = scrolledLines.map((line) => {
112
- if (isHorizontallyScrollable) {
113
- // For horizontal scrolling, we need to apply the offset character by character
114
- return sliceAnsi(line, scrollOffset.x);
115
- }
116
- return line;
117
- }).join('\n');
118
- output.write(x, y, scrolledText, { transformers: newTransformers });
119
- }
120
- else {
121
- output.write(x, y, text, { transformers: newTransformers });
122
- }
100
+ output.write(x, y, text, { transformers: newTransformers });
123
101
  }
124
102
  return;
125
103
  }
126
104
  let clipped = false;
105
+ let scrollOffsetX = 0;
106
+ let scrollOffsetY = 0;
127
107
  if (node.nodeName === 'ink-box') {
128
108
  renderBackground(x, y, node, output);
129
109
  renderBorder(x, y, node, output);
130
- const overflowX = node.style.overflowX ?? node.style.overflow ?? 'visible';
131
- const overflowY = node.style.overflowY ?? node.style.overflow ?? 'visible';
132
- const scrollX = overflowX === 'scroll';
133
- const scrollY = overflowY === 'scroll';
134
- const clipHorizontally = overflowX === 'hidden';
135
- const clipVertically = overflowY === 'hidden';
136
- if (scrollX || scrollY || clipHorizontally || clipVertically) {
137
- const x1 = (scrollX || clipHorizontally)
110
+ const scrollHorizontally = node.style.overflowX === 'scroll' || node.style.overflow === 'scroll';
111
+ const scrollVertically = node.style.overflowY === 'scroll' || node.style.overflow === 'scroll';
112
+ const clipHorizontally = node.style.overflowX === 'hidden' ||
113
+ node.style.overflow === 'hidden' ||
114
+ scrollHorizontally;
115
+ const clipVertically = node.style.overflowY === 'hidden' ||
116
+ node.style.overflow === 'hidden' ||
117
+ scrollVertically;
118
+ if (scrollHorizontally || scrollVertically) {
119
+ const offset = node.internal_scrollOffset ?? { x: 0, y: 0 };
120
+ scrollOffsetX = scrollHorizontally ? offset.x : 0;
121
+ scrollOffsetY = scrollVertically ? offset.y : 0;
122
+ }
123
+ if (clipHorizontally || clipVertically) {
124
+ const x1 = clipHorizontally
138
125
  ? x + yogaNode.getComputedBorder(Yoga.EDGE_LEFT)
139
126
  : undefined;
140
- const x2 = (scrollX || clipHorizontally)
127
+ const x2 = clipHorizontally
141
128
  ? x +
142
129
  yogaNode.getComputedWidth() -
143
130
  yogaNode.getComputedBorder(Yoga.EDGE_RIGHT)
144
131
  : undefined;
145
- const y1 = (scrollY || clipVertically)
132
+ const y1 = clipVertically
146
133
  ? y + yogaNode.getComputedBorder(Yoga.EDGE_TOP)
147
134
  : undefined;
148
- const y2 = (scrollY || clipVertically)
135
+ const y2 = clipVertically
149
136
  ? y +
150
137
  yogaNode.getComputedHeight() -
151
138
  yogaNode.getComputedBorder(Yoga.EDGE_BOTTOM)
@@ -155,23 +142,12 @@ const renderNodeToOutput = (node, output, options) => {
155
142
  }
156
143
  }
157
144
  if (node.nodeName === 'ink-root' || node.nodeName === 'ink-box') {
158
- // Calculate new scroll offset for scrollable containers
159
- const overflowX = node.style.overflowX ?? node.style.overflow ?? 'visible';
160
- const overflowY = node.style.overflowY ?? node.style.overflow ?? 'visible';
161
- const scrollX = overflowX === 'scroll';
162
- const scrollY = overflowY === 'scroll';
163
- // Get scroll offset from node internal state or use current scrollOffset
164
- const currentScrollOffset = node.internal_scrollOffset || scrollOffset;
165
- const childScrollOffset = scrollX || scrollY ?
166
- { x: scrollX ? currentScrollOffset.x : 0, y: scrollY ? currentScrollOffset.y : 0 } :
167
- currentScrollOffset;
168
145
  for (const childNode of node.childNodes) {
169
146
  renderNodeToOutput(childNode, output, {
170
- offsetX: x,
171
- offsetY: y,
147
+ offsetX: x - scrollOffsetX,
148
+ offsetY: y - scrollOffsetY,
172
149
  transformers: newTransformers,
173
150
  skipStaticElements,
174
- scrollOffset: childScrollOffset,
175
151
  });
176
152
  }
177
153
  if (clipped) {
@@ -1 +1 @@
1
- {"version":3,"file":"render-node-to-output.js","sourceRoot":"","sources":["../src/render-node-to-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-node-to-output.js","sourceRoot":"","sources":["../src/render-node-to-output.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuvin/ink",
3
- "version": "6.5.2-test-scroll-1",
3
+ "version": "6.5.3-1",
4
4
  "description": "React for CLI",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -195,4 +195,4 @@
195
195
  ]
196
196
  },
197
197
  "prettier": "@vdemedes/prettier-config"
198
- }
198
+ }