@nuvin/ink 7.0.0-alpha → 7.0.2-alpha

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 (42) hide show
  1. package/build/current-frame.d.ts +27 -0
  2. package/build/current-frame.js +73 -0
  3. package/build/current-frame.js.map +1 -0
  4. package/build/diagnostics.d.ts +5 -0
  5. package/build/diagnostics.js +7 -0
  6. package/build/diagnostics.js.map +1 -0
  7. package/build/hooks/use-input.js +83 -76
  8. package/build/hooks/use-input.js.map +1 -1
  9. package/build/hooks/use-paste.js +13 -9
  10. package/build/hooks/use-paste.js.map +1 -1
  11. package/build/hooks/use-selection-overlay.d.ts +3 -0
  12. package/build/hooks/use-selection-overlay.js +14 -0
  13. package/build/hooks/use-selection-overlay.js.map +1 -0
  14. package/build/index.d.ts +2 -0
  15. package/build/index.js +1 -0
  16. package/build/index.js.map +1 -1
  17. package/build/ink.d.ts +8 -0
  18. package/build/ink.js +5 -1
  19. package/build/ink.js.map +1 -1
  20. package/build/measure-element.d.ts +13 -5
  21. package/build/measure-element.js +29 -7
  22. package/build/measure-element.js.map +1 -1
  23. package/build/measure-text.d.ts +2 -0
  24. package/build/measure-text.js +10 -0
  25. package/build/measure-text.js.map +1 -1
  26. package/build/output.js +55 -2
  27. package/build/output.js.map +1 -1
  28. package/build/paint-selection.d.ts +3 -0
  29. package/build/paint-selection.js +106 -0
  30. package/build/paint-selection.js.map +1 -0
  31. package/build/render-border.js +11 -4
  32. package/build/render-border.js.map +1 -1
  33. package/build/render-node-to-output.js.map +1 -1
  34. package/build/selection.d.ts +28 -0
  35. package/build/selection.js +9 -0
  36. package/build/selection.js.map +1 -0
  37. package/build/squash-text-nodes.js +17 -1
  38. package/build/squash-text-nodes.js.map +1 -1
  39. package/build/wrap-text.d.ts +2 -0
  40. package/build/wrap-text.js +14 -4
  41. package/build/wrap-text.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,27 @@
1
+ export type SelectionScope = {
2
+ surfaceId: string;
3
+ itemKey: string;
4
+ itemIndex: number;
5
+ itemOffsetY: number;
6
+ originX: number;
7
+ originY: number;
8
+ };
9
+ export type RegisteredSelectionLine = {
10
+ key: string;
11
+ order: number;
12
+ text: string;
13
+ viewportX: number;
14
+ viewportY: number;
15
+ itemKey: string;
16
+ };
17
+ export type LogicalSelectionPoint = {
18
+ lineKey: string;
19
+ column: number;
20
+ };
21
+ export declare const recordSelectionFrame: (lines: readonly string[], scrollOffsetY: number, viewportTopY?: number) => void;
22
+ export declare const getSelectionFrameCache: () => ReadonlyMap<number, string>;
23
+ export declare const clearSelectionFrameCache: () => void;
24
+ export declare const registerSelectionLines: (lines: readonly string[], scope: SelectionScope) => void;
25
+ export declare const getRegisteredSelectionLines: () => ReadonlyMap<string, RegisteredSelectionLine>;
26
+ export declare const clearRegisteredSelectionLines: () => void;
27
+ export declare const getSelectionPointAtCell: (x: number, y: number) => LogicalSelectionPoint | null;
@@ -0,0 +1,73 @@
1
+ import stringWidth from 'string-width';
2
+ const MAX_CACHED_ROWS = 2000;
3
+ const MAX_REGISTERED_LINES = 5000;
4
+ let selectionFrameCache = new Map();
5
+ let registeredSelectionLines = new Map();
6
+ export const recordSelectionFrame = (lines, scrollOffsetY, viewportTopY = 0) => {
7
+ for (let viewportY = viewportTopY; viewportY < lines.length; viewportY++) {
8
+ const contentY = scrollOffsetY + viewportY - viewportTopY;
9
+ const line = lines[viewportY] ?? '';
10
+ const existing = selectionFrameCache.get(contentY);
11
+ if (line.length === 0 && existing && existing.length > 0) {
12
+ continue;
13
+ }
14
+ selectionFrameCache.set(contentY, line);
15
+ }
16
+ while (selectionFrameCache.size > MAX_CACHED_ROWS) {
17
+ const oldestKey = selectionFrameCache.keys().next().value;
18
+ if (oldestKey === undefined)
19
+ break;
20
+ selectionFrameCache.delete(oldestKey);
21
+ }
22
+ };
23
+ export const getSelectionFrameCache = () => selectionFrameCache;
24
+ export const clearSelectionFrameCache = () => {
25
+ selectionFrameCache = new Map();
26
+ };
27
+ const widthToColumn = (text, targetWidth) => {
28
+ let width = 0;
29
+ let column = 0;
30
+ for (const character of text) {
31
+ const nextWidth = width + Math.max(1, stringWidth(character));
32
+ if (targetWidth < nextWidth)
33
+ break;
34
+ width = nextWidth;
35
+ column++;
36
+ }
37
+ return column;
38
+ };
39
+ export const registerSelectionLines = (lines, scope) => {
40
+ for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
41
+ const text = lines[lineIndex] ?? '';
42
+ const key = `${scope.surfaceId}:${scope.itemKey}:${lineIndex}`;
43
+ const viewportY = scope.originY + scope.itemOffsetY + lineIndex;
44
+ registeredSelectionLines.set(key, {
45
+ key,
46
+ order: viewportY * 100_000 + scope.originX,
47
+ text,
48
+ viewportX: scope.originX,
49
+ viewportY,
50
+ itemKey: scope.itemKey,
51
+ });
52
+ }
53
+ while (registeredSelectionLines.size > MAX_REGISTERED_LINES) {
54
+ const oldestKey = registeredSelectionLines.keys().next().value;
55
+ if (oldestKey === undefined)
56
+ break;
57
+ registeredSelectionLines.delete(oldestKey);
58
+ }
59
+ };
60
+ export const getRegisteredSelectionLines = () => registeredSelectionLines;
61
+ export const clearRegisteredSelectionLines = () => {
62
+ registeredSelectionLines = new Map();
63
+ };
64
+ export const getSelectionPointAtCell = (x, y) => {
65
+ const line = [...registeredSelectionLines.values()]
66
+ .filter(candidate => candidate.viewportY === y)
67
+ .sort((left, right) => right.order - left.order || right.itemKey.length - left.itemKey.length)[0];
68
+ if (!line)
69
+ return null;
70
+ const column = widthToColumn(line.text, Math.max(0, x - line.viewportX));
71
+ return { lineKey: line.key, column };
72
+ };
73
+ //# sourceMappingURL=current-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-frame.js","sourceRoot":"","sources":["../src/current-frame.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC,IAAI,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAyBpD,IAAI,wBAAwB,GAAG,IAAI,GAAG,EAAmC,CAAC;AAE1E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,KAAwB,EACxB,aAAqB,EACrB,YAAY,GAAG,CAAC,EACT,EAAE;IACT,KAAK,IAAI,SAAS,GAAG,YAAY,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC1E,MAAM,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,SAAS;QACV,CAAC;QACD,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,mBAAmB,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAA2B,CAAC;QAChF,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM;QACnC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAgC,EAAE,CACvE,mBAAmB,CAAC;AAErB,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAS,EAAE;IAClD,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,WAAmB,EAAU,EAAE;IACnE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,IAAI,WAAW,GAAG,SAAS;YAAE,MAAM;QACnC,KAAK,GAAG,SAAS,CAAC;QAClB,MAAM,EAAE,CAAC;IACV,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,KAAwB,EACxB,KAAqB,EACd,EAAE;IACT,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;QAChE,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE;YACjC,GAAG;YACH,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC,OAAO;YAC1C,IAAI;YACJ,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,SAAS;YACT,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,wBAAwB,CAAC,IAAI,GAAG,oBAAoB,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAA2B,CAAC;QACrF,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM;QACnC,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAiD,EAAE,CAC7F,wBAAwB,CAAC;AAE1B,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAS,EAAE;IACvD,wBAAwB,GAAG,IAAI,GAAG,EAAmC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,CAAS,EACT,CAAS,EACsB,EAAE;IACjC,MAAM,IAAI,GAAG,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC;SACjD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,CAAC,CAAC;SAC9C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzE,OAAO,EAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAC,CAAC;AACpC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type InkCacheSizes = {
2
+ measureText: number;
3
+ wrapText: number;
4
+ };
5
+ export declare const getInkCacheSizes: () => InkCacheSizes;
@@ -0,0 +1,7 @@
1
+ import { getMeasureTextCacheSize } from './measure-text.js';
2
+ import { getWrapTextCacheSize } from './wrap-text.js';
3
+ export const getInkCacheSizes = () => ({
4
+ measureText: getMeasureTextCacheSize(),
5
+ wrapText: getWrapTextCacheSize(),
6
+ });
7
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAOpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAkB,EAAE,CAAC,CAAC;IACrD,WAAW,EAAE,uBAAuB,EAAE;IACtC,QAAQ,EAAE,oBAAoB,EAAE;CAChC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { useEffect, useEffectEvent } from 'react';
1
+ import { useEffect, useRef } from 'react';
2
2
  import parseKeypress, { nonAlphanumericKeys } from '../parse-keypress.js';
3
3
  import reconciler from '../reconciler.js';
4
4
  import { useStdinContext } from './use-stdin.js';
@@ -27,6 +27,13 @@ const UserInput = () => {
27
27
  const useInput = (inputHandler, options = {}) => {
28
28
  // eslint-disable-next-line @typescript-eslint/naming-convention
29
29
  const { setRawMode, internal_exitOnCtrlC, internal_eventEmitter } = useStdinContext();
30
+ // Use a ref to always have the latest handler without re-subscribing
31
+ // to the event emitter. This avoids useEffectEvent which has a stale
32
+ // closure bug in ink's custom React reconciler when used with forwardRef.
33
+ const handlerRef = useRef(inputHandler);
34
+ handlerRef.current = inputHandler;
35
+ const exitOnCtrlCRef = useRef(internal_exitOnCtrlC);
36
+ exitOnCtrlCRef.current = internal_exitOnCtrlC;
30
37
  useEffect(() => {
31
38
  if (options.isActive === false) {
32
39
  return;
@@ -36,86 +43,86 @@ const useInput = (inputHandler, options = {}) => {
36
43
  setRawMode(false);
37
44
  };
38
45
  }, [options.isActive, setRawMode]);
39
- const handleData = useEffectEvent((data) => {
40
- const keypress = parseKeypress(data);
41
- const key = {
42
- upArrow: keypress.name === 'up',
43
- downArrow: keypress.name === 'down',
44
- leftArrow: keypress.name === 'left',
45
- rightArrow: keypress.name === 'right',
46
- pageDown: keypress.name === 'pagedown',
47
- pageUp: keypress.name === 'pageup',
48
- home: keypress.name === 'home',
49
- end: keypress.name === 'end',
50
- return: keypress.name === 'return',
51
- escape: keypress.name === 'escape',
52
- ctrl: keypress.ctrl,
53
- shift: keypress.shift,
54
- tab: keypress.name === 'tab',
55
- backspace: keypress.name === 'backspace',
56
- delete: keypress.name === 'delete',
57
- meta: keypress.meta,
58
- // Kitty keyboard protocol modifiers
59
- super: keypress.super ?? false,
60
- hyper: keypress.hyper ?? false,
61
- capsLock: keypress.capsLock ?? false,
62
- numLock: keypress.numLock ?? false,
63
- eventType: keypress.eventType,
64
- };
65
- let input;
66
- if (keypress.isKittyProtocol) {
67
- // Use text-as-codepoints field for printable keys (needed when
68
- // reportAllKeysAsEscapeCodes flag is enabled), suppress non-printable
69
- if (keypress.isPrintable) {
70
- input = keypress.text ?? keypress.name;
46
+ useEffect(() => {
47
+ if (options.isActive === false) {
48
+ return;
49
+ }
50
+ const handleData = (data) => {
51
+ const keypress = parseKeypress(data);
52
+ const key = {
53
+ upArrow: keypress.name === 'up',
54
+ downArrow: keypress.name === 'down',
55
+ leftArrow: keypress.name === 'left',
56
+ rightArrow: keypress.name === 'right',
57
+ pageDown: keypress.name === 'pagedown',
58
+ pageUp: keypress.name === 'pageup',
59
+ home: keypress.name === 'home',
60
+ end: keypress.name === 'end',
61
+ return: keypress.name === 'return',
62
+ escape: keypress.name === 'escape',
63
+ ctrl: keypress.ctrl,
64
+ shift: keypress.shift,
65
+ tab: keypress.name === 'tab',
66
+ backspace: keypress.name === 'backspace',
67
+ delete: keypress.name === 'delete',
68
+ meta: keypress.meta,
69
+ // Kitty keyboard protocol modifiers
70
+ super: keypress.super ?? false,
71
+ hyper: keypress.hyper ?? false,
72
+ capsLock: keypress.capsLock ?? false,
73
+ numLock: keypress.numLock ?? false,
74
+ eventType: keypress.eventType,
75
+ };
76
+ let input;
77
+ if (keypress.isKittyProtocol) {
78
+ // Use text-as-codepoints field for printable keys (needed when
79
+ // reportAllKeysAsEscapeCodes flag is enabled), suppress non-printable
80
+ if (keypress.isPrintable) {
81
+ input = keypress.text ?? keypress.name;
82
+ }
83
+ else if (keypress.ctrl && keypress.name.length === 1) {
84
+ // Ctrl+letter via codepoint 1-26 form: not printable text, but
85
+ // the letter name must flow through so handlers (e.g. exitOnCtrlC
86
+ // checking `input === 'c' && key.ctrl`) still work.
87
+ input = keypress.name;
88
+ }
89
+ else {
90
+ input = '';
91
+ }
71
92
  }
72
- else if (keypress.ctrl && keypress.name.length === 1) {
73
- // Ctrl+letter via codepoint 1-26 form: not printable text, but
74
- // the letter name must flow through so handlers (e.g. exitOnCtrlC
75
- // checking `input === 'c' && key.ctrl`) still work.
76
- input = keypress.name;
93
+ else if (keypress.ctrl) {
94
+ // Keypress.name is guaranteed non-undefined by parseKeypress,
95
+ // but guard defensively since a TypeError here would crash the
96
+ // entire Ink app (see https://github.com/vadimdemedes/ink/issues/901).
97
+ input = keypress.name ?? '';
77
98
  }
78
99
  else {
100
+ input = keypress.sequence;
101
+ }
102
+ if (!keypress.isKittyProtocol &&
103
+ nonAlphanumericKeys.includes(keypress.name)) {
79
104
  input = '';
80
105
  }
81
- }
82
- else if (keypress.ctrl) {
83
- // Keypress.name is guaranteed non-undefined by parseKeypress,
84
- // but guard defensively since a TypeError here would crash the
85
- // entire Ink app (see https://github.com/vadimdemedes/ink/issues/901).
86
- input = keypress.name ?? '';
87
- }
88
- else {
89
- input = keypress.sequence;
90
- }
91
- if (!keypress.isKittyProtocol &&
92
- nonAlphanumericKeys.includes(keypress.name)) {
93
- input = '';
94
- }
95
- // Strip escape prefix from broken/incomplete sequences that
96
- // parseKeypress did not fully resolve (e.g. a flushed "\u001B[").
97
- if (input.startsWith('\u001B')) {
98
- input = input.slice(1);
99
- }
100
- if (input.length === 1 && /[A-Z]/.test(input)) {
101
- key.shift = true;
102
- }
103
- // If app is supposed to exit on Ctrl+C, skip input listeners.
104
- if (input === 'c' && key.ctrl && internal_exitOnCtrlC) {
105
- return;
106
- }
107
- // Use discreteUpdates to assign DiscreteEventPriority to state
108
- // updates from keyboard input, ensuring they are processed at the
109
- // highest priority in concurrent mode.
110
- // @ts-expect-error Types require 5 arguments (fn, a, b, c, d) but only fn is needed at runtime.
111
- reconciler.discreteUpdates(() => {
112
- inputHandler(input, key);
113
- });
114
- });
115
- useEffect(() => {
116
- if (options.isActive === false) {
117
- return;
118
- }
106
+ // Strip escape prefix from broken/incomplete sequences that
107
+ // parseKeypress did not fully resolve (e.g. a flushed "\u001B[").
108
+ if (input.startsWith('\u001B')) {
109
+ input = input.slice(1);
110
+ }
111
+ if (input.length === 1 && /[A-Z]/.test(input)) {
112
+ key.shift = true;
113
+ }
114
+ // If app is supposed to exit on Ctrl+C, skip input listeners.
115
+ if (input === 'c' && key.ctrl && exitOnCtrlCRef.current) {
116
+ return;
117
+ }
118
+ // Use discreteUpdates to assign DiscreteEventPriority to state
119
+ // updates from keyboard input, ensuring they are processed at the
120
+ // highest priority in concurrent mode.
121
+ // @ts-expect-error Types require 5 arguments (fn, a, b, c, d) but only fn is needed at runtime.
122
+ reconciler.discreteUpdates(() => {
123
+ handlerRef.current(input, key);
124
+ });
125
+ };
119
126
  internal_eventEmitter.on('input', handleData);
120
127
  return () => {
121
128
  internal_eventEmitter.removeListener('input', handleData);
@@ -1 +1 @@
1
- {"version":3,"file":"use-input.js","sourceRoot":"","sources":["../../src/hooks/use-input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-input.js","sourceRoot":"","sources":["../../src/hooks/use-input.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { useEffect, useEffectEvent } from 'react';
1
+ import { useEffect, useRef } from 'react';
2
2
  import reconciler from '../reconciler.js';
3
3
  import { useStdinContext } from './use-stdin.js';
4
4
  /**
@@ -40,18 +40,22 @@ const usePaste = (handler, options = {}) => {
40
40
  setBracketedPasteMode(false);
41
41
  };
42
42
  }, [options.isActive, setRawMode, setBracketedPasteMode]);
43
- const handlePaste = useEffectEvent((text) => {
44
- // Use discreteUpdates to assign DiscreteEventPriority to state
45
- // updates triggered by paste, matching the priority of useInput.
46
- // @ts-expect-error Types require 5 arguments (fn, a, b, c, d) but only fn is needed at runtime.
47
- reconciler.discreteUpdates(() => {
48
- handler(text);
49
- });
50
- });
43
+ // Use a ref to always have the latest handler. useEffectEvent has a stale
44
+ // closure bug in ink's custom React reconciler when used with forwardRef.
45
+ const handlerRef = useRef(handler);
46
+ handlerRef.current = handler;
51
47
  useEffect(() => {
52
48
  if (options.isActive === false) {
53
49
  return;
54
50
  }
51
+ const handlePaste = (text) => {
52
+ // Use discreteUpdates to assign DiscreteEventPriority to state
53
+ // updates triggered by paste, matching the priority of useInput.
54
+ // @ts-expect-error Types require 5 arguments (fn, a, b, c, d) but only fn is needed at runtime.
55
+ reconciler.discreteUpdates(() => {
56
+ handlerRef.current(text);
57
+ });
58
+ };
55
59
  internal_eventEmitter.on('paste', handlePaste);
56
60
  return () => {
57
61
  internal_eventEmitter.removeListener('paste', handlePaste);
@@ -1 +1 @@
1
- {"version":3,"file":"use-paste.js","sourceRoot":"","sources":["../../src/hooks/use-paste.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,OAAO,CAAC;AAChD,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAW/C;;;;;;;;;;;;;;;;;;;;;;;;EAwBE;AACF,MAAM,QAAQ,GAAG,CAChB,OAA+B,EAC/B,UAAmB,EAAE,EACd,EAAE;IACT,gEAAgE;IAChE,MAAM,EAAC,UAAU,EAAE,qBAAqB,EAAE,qBAAqB,EAAC,GAC/D,eAAe,EAAE,CAAC;IAEnB,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO;QACR,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE5B,OAAO,GAAG,EAAE;YACX,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE1D,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,IAAY,EAAE,EAAE;QACnD,+DAA+D;QAC/D,iEAAiE;QACjE,gGAAgG;QAChG,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO;QACR,CAAC;QAED,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE/C,OAAO,GAAG,EAAE;YACX,qBAAqB,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"use-paste.js","sourceRoot":"","sources":["../../src/hooks/use-paste.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAW/C;;;;;;;;;;;;;;;;;;;;;;;;EAwBE;AACF,MAAM,QAAQ,GAAG,CAChB,OAA+B,EAC/B,UAAmB,EAAE,EACd,EAAE;IACT,gEAAgE;IAChE,MAAM,EAAC,UAAU,EAAE,qBAAqB,EAAE,qBAAqB,EAAC,GAC/D,eAAe,EAAE,CAAC;IAEnB,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO;QACR,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE5B,OAAO,GAAG,EAAE;YACX,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE1D,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO;QACR,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAQ,EAAE;YAC1C,+DAA+D;YAC/D,iEAAiE;YACjE,gGAAgG;YAChG,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE;gBAC/B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE/C,OAAO,GAAG,EAAE;YACX,qBAAqB,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type SelectionRange } from '../selection.js';
2
+ declare const useSelectionOverlay: (range: SelectionRange | null) => void;
3
+ export default useSelectionOverlay;
@@ -0,0 +1,14 @@
1
+ import { useLayoutEffect } from 'react';
2
+ import { setSelectionRange } from '../selection.js';
3
+ const useSelectionOverlay = (range) => {
4
+ useLayoutEffect(() => {
5
+ setSelectionRange(range);
6
+ });
7
+ useLayoutEffect(() => {
8
+ return () => {
9
+ setSelectionRange(null);
10
+ };
11
+ }, []);
12
+ };
13
+ export default useSelectionOverlay;
14
+ //# sourceMappingURL=use-selection-overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-selection-overlay.js","sourceRoot":"","sources":["../../src/hooks/use-selection-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAAC,iBAAiB,EAAsB,MAAM,iBAAiB,CAAC;AAEvE,MAAM,mBAAmB,GAAG,CAAC,KAA4B,EAAQ,EAAE;IAClE,eAAe,CAAC,GAAG,EAAE;QACpB,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,GAAG,EAAE;QACpB,OAAO,GAAG,EAAE;YACX,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;AACR,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
package/build/index.d.ts CHANGED
@@ -36,6 +36,8 @@ export type { BoxMetrics, UseBoxMetricsResult } from './hooks/use-box-metrics.js
36
36
  export { default as useBoxMetrics } from './hooks/use-box-metrics.js';
37
37
  export type { CursorPosition } from './log-update.js';
38
38
  export { default as measureElement } from './measure-element.js';
39
+ export type { InkCacheSizes } from './diagnostics.js';
40
+ export { getInkCacheSizes } from './diagnostics.js';
39
41
  export type { DOMElement } from './dom.js';
40
42
  export { kittyFlags, kittyModifiers } from './kitty-keyboard.js';
41
43
  export type { KittyKeyboardOptions, KittyFlagName } from './kitty-keyboard.js';
package/build/index.js CHANGED
@@ -20,5 +20,6 @@ export { default as useAnimation } from './hooks/use-animation.js';
20
20
  export { default as useWindowSize } from './hooks/use-window-size.js';
21
21
  export { default as useBoxMetrics } from './hooks/use-box-metrics.js';
22
22
  export { default as measureElement } from './measure-element.js';
23
+ export { getInkCacheSizes } from './diagnostics.js';
23
24
  export { kittyFlags, kittyModifiers } from './kitty-keyboard.js';
24
25
  //# sourceMappingURL=index.js.map
@@ -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,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAEhE,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,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,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;AAC5F,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,qBAAqB,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,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAEhE,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,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,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;AAC5F,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC"}
package/build/ink.d.ts CHANGED
@@ -5,6 +5,14 @@ import { type KittyKeyboardOptions } from './kitty-keyboard.js';
5
5
  Performance metrics for a render operation.
6
6
  */
7
7
  export type RenderMetrics = {
8
+ /**
9
+ Number of terminal rows in the rendered frame.
10
+ */
11
+ outputHeight: number;
12
+ /**
13
+ Number of UTF-16 code units in the rendered frame string.
14
+ */
15
+ outputLength: number;
8
16
  /**
9
17
  Time spent rendering in milliseconds.
10
18
  */
package/build/ink.js CHANGED
@@ -313,7 +313,11 @@ export default class Ink {
313
313
  }
314
314
  const startTime = performance.now();
315
315
  const { output, outputHeight, staticOutput } = render(this.rootNode, this.isScreenReaderEnabled);
316
- this.options.onRender?.({ renderTime: performance.now() - startTime });
316
+ this.options.onRender?.({
317
+ outputHeight,
318
+ outputLength: output.length,
319
+ renderTime: performance.now() - startTime,
320
+ });
317
321
  // If <Static> output isn't empty, it means new children have been added to it
318
322
  const hasStaticOutput = staticOutput && staticOutput !== '\n';
319
323
  if (this.options.debug) {
package/build/ink.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ink.js","sourceRoot":"","sources":["../src/ink.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ink.js","sourceRoot":"","sources":["../src/ink.tsx"],"names":[],"mappings":"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"}