@ashx-j/lunr-tui 0.1.2 → 0.1.4
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.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mouse.d.ts +26 -0
- package/dist/mouse.d.ts.map +1 -0
- package/dist/mouse.js +91 -0
- package/dist/mouse.js.map +1 -0
- package/dist/tui.d.ts +6 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +41 -0
- package/dist/tui.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export type { EditorComponent } from "./editor-component.ts";
|
|
|
15
15
|
export { type FuzzyMatch, fuzzyFilter, fuzzyMatch } from "./fuzzy.ts";
|
|
16
16
|
export { getKeybindings, type Keybinding, type KeybindingConflict, type KeybindingDefinition, type KeybindingDefinitions, type Keybindings, type KeybindingsConfig, KeybindingsManager, setKeybindings, TUI_KEYBINDINGS, } from "./keybindings.ts";
|
|
17
17
|
export { decodeKittyPrintable, isKeyRelease, isKeyRepeat, isKittyProtocolActive, Key, type KeyEventType, type KeyId, matchesKey, parseKey, setKittyProtocolActive, } from "./keys.ts";
|
|
18
|
+
export { MOUSE_TRACKING_DISABLE, MOUSE_TRACKING_ENABLE, type MouseKind, type ParsedMouseEvent, parseMouseEvent, } from "./mouse.ts";
|
|
18
19
|
export { StdinBuffer, type StdinBufferEventMap, type StdinBufferOptions } from "./stdin-buffer.ts";
|
|
19
20
|
export { ProcessTerminal, type Terminal } from "./terminal.ts";
|
|
20
21
|
export { parseOsc11BackgroundColor, parseTerminalColorSchemeReport, type RgbColor, type TerminalColorScheme, } from "./terminal-colors.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Core TUI interfaces and classes\n\n// Autocomplete support\nexport {\n\ttype AutocompleteItem,\n\ttype AutocompleteProvider,\n\ttype AutocompleteSuggestions,\n\tCombinedAutocompleteProvider,\n\ttype SlashCommand,\n} from \"./autocomplete.ts\";\n// Components\nexport { Box } from \"./components/box.ts\";\nexport { CancellableLoader } from \"./components/cancellable-loader.ts\";\nexport { Editor, type EditorOptions, type EditorTheme } from \"./components/editor.ts\";\nexport { Image, type ImageOptions, type ImageTheme } from \"./components/image.ts\";\nexport { Input } from \"./components/input.ts\";\nexport { Loader, type LoaderIndicatorOptions } from \"./components/loader.ts\";\nexport { type DefaultTextStyle, Markdown, type MarkdownOptions, type MarkdownTheme } from \"./components/markdown.ts\";\nexport {\n\ttype SelectItem,\n\tSelectList,\n\ttype SelectListLayoutOptions,\n\ttype SelectListTheme,\n\ttype SelectListTruncatePrimaryContext,\n} from \"./components/select-list.ts\";\nexport { type SettingItem, SettingsList, type SettingsListTheme } from \"./components/settings-list.ts\";\nexport { Spacer } from \"./components/spacer.ts\";\nexport { Text } from \"./components/text.ts\";\nexport { TruncatedText } from \"./components/truncated-text.ts\";\n// Editor component interface (for custom editors)\nexport type { EditorComponent } from \"./editor-component.ts\";\n// Fuzzy matching\nexport { type FuzzyMatch, fuzzyFilter, fuzzyMatch } from \"./fuzzy.ts\";\n// Keybindings\nexport {\n\tgetKeybindings,\n\ttype Keybinding,\n\ttype KeybindingConflict,\n\ttype KeybindingDefinition,\n\ttype KeybindingDefinitions,\n\ttype Keybindings,\n\ttype KeybindingsConfig,\n\tKeybindingsManager,\n\tsetKeybindings,\n\tTUI_KEYBINDINGS,\n} from \"./keybindings.ts\";\n// Keyboard input handling\nexport {\n\tdecodeKittyPrintable,\n\tisKeyRelease,\n\tisKeyRepeat,\n\tisKittyProtocolActive,\n\tKey,\n\ttype KeyEventType,\n\ttype KeyId,\n\tmatchesKey,\n\tparseKey,\n\tsetKittyProtocolActive,\n} from \"./keys.ts\";\n// Input buffering for batch splitting\nexport { StdinBuffer, type StdinBufferEventMap, type StdinBufferOptions } from \"./stdin-buffer.ts\";\n// Terminal interface and implementations\nexport { ProcessTerminal, type Terminal } from \"./terminal.ts\";\n// Terminal colors\nexport {\n\tparseOsc11BackgroundColor,\n\tparseTerminalColorSchemeReport,\n\ttype RgbColor,\n\ttype TerminalColorScheme,\n} from \"./terminal-colors.ts\";\n// Terminal image support\nexport {\n\tallocateImageId,\n\ttype CellDimensions,\n\tcalculateImageRows,\n\tdeleteAllKittyImages,\n\tdeleteKittyImage,\n\tdetectCapabilities,\n\tencodeITerm2,\n\tencodeKitty,\n\tgetCapabilities,\n\tgetCellDimensions,\n\tgetGifDimensions,\n\tgetImageDimensions,\n\tgetJpegDimensions,\n\tgetPngDimensions,\n\tgetWebpDimensions,\n\thyperlink,\n\ttype ImageDimensions,\n\ttype ImageProtocol,\n\ttype ImageRenderOptions,\n\timageFallback,\n\trenderImage,\n\tresetCapabilitiesCache,\n\tsetCapabilities,\n\tsetCellDimensions,\n\ttype TerminalCapabilities,\n} from \"./terminal-image.ts\";\nexport {\n\ttype Component,\n\tContainer,\n\tCURSOR_MARKER,\n\ttype Focusable,\n\tisFocusable,\n\ttype OverlayAnchor,\n\ttype OverlayHandle,\n\ttype OverlayMargin,\n\ttype OverlayOptions,\n\ttype OverlayUnfocusOptions,\n\ttype SizeValue,\n\tTUI,\n} from \"./tui.ts\";\n// Utilities\nexport { sliceByColumn, truncateToWidth, visibleWidth, wrapTextWithAnsi } from \"./utils.ts\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Core TUI interfaces and classes\n\n// Autocomplete support\nexport {\n\ttype AutocompleteItem,\n\ttype AutocompleteProvider,\n\ttype AutocompleteSuggestions,\n\tCombinedAutocompleteProvider,\n\ttype SlashCommand,\n} from \"./autocomplete.ts\";\n// Components\nexport { Box } from \"./components/box.ts\";\nexport { CancellableLoader } from \"./components/cancellable-loader.ts\";\nexport { Editor, type EditorOptions, type EditorTheme } from \"./components/editor.ts\";\nexport { Image, type ImageOptions, type ImageTheme } from \"./components/image.ts\";\nexport { Input } from \"./components/input.ts\";\nexport { Loader, type LoaderIndicatorOptions } from \"./components/loader.ts\";\nexport { type DefaultTextStyle, Markdown, type MarkdownOptions, type MarkdownTheme } from \"./components/markdown.ts\";\nexport {\n\ttype SelectItem,\n\tSelectList,\n\ttype SelectListLayoutOptions,\n\ttype SelectListTheme,\n\ttype SelectListTruncatePrimaryContext,\n} from \"./components/select-list.ts\";\nexport { type SettingItem, SettingsList, type SettingsListTheme } from \"./components/settings-list.ts\";\nexport { Spacer } from \"./components/spacer.ts\";\nexport { Text } from \"./components/text.ts\";\nexport { TruncatedText } from \"./components/truncated-text.ts\";\n// Editor component interface (for custom editors)\nexport type { EditorComponent } from \"./editor-component.ts\";\n// Fuzzy matching\nexport { type FuzzyMatch, fuzzyFilter, fuzzyMatch } from \"./fuzzy.ts\";\n// Keybindings\nexport {\n\tgetKeybindings,\n\ttype Keybinding,\n\ttype KeybindingConflict,\n\ttype KeybindingDefinition,\n\ttype KeybindingDefinitions,\n\ttype Keybindings,\n\ttype KeybindingsConfig,\n\tKeybindingsManager,\n\tsetKeybindings,\n\tTUI_KEYBINDINGS,\n} from \"./keybindings.ts\";\n// Keyboard input handling\nexport {\n\tdecodeKittyPrintable,\n\tisKeyRelease,\n\tisKeyRepeat,\n\tisKittyProtocolActive,\n\tKey,\n\ttype KeyEventType,\n\ttype KeyId,\n\tmatchesKey,\n\tparseKey,\n\tsetKittyProtocolActive,\n} from \"./keys.ts\";\n// Mouse (SGR / X10) — used for in-app chat wheel scroll\nexport {\n\tMOUSE_TRACKING_DISABLE,\n\tMOUSE_TRACKING_ENABLE,\n\ttype MouseKind,\n\ttype ParsedMouseEvent,\n\tparseMouseEvent,\n} from \"./mouse.ts\";\n// Input buffering for batch splitting\nexport { StdinBuffer, type StdinBufferEventMap, type StdinBufferOptions } from \"./stdin-buffer.ts\";\n// Terminal interface and implementations\nexport { ProcessTerminal, type Terminal } from \"./terminal.ts\";\n// Terminal colors\nexport {\n\tparseOsc11BackgroundColor,\n\tparseTerminalColorSchemeReport,\n\ttype RgbColor,\n\ttype TerminalColorScheme,\n} from \"./terminal-colors.ts\";\n// Terminal image support\nexport {\n\tallocateImageId,\n\ttype CellDimensions,\n\tcalculateImageRows,\n\tdeleteAllKittyImages,\n\tdeleteKittyImage,\n\tdetectCapabilities,\n\tencodeITerm2,\n\tencodeKitty,\n\tgetCapabilities,\n\tgetCellDimensions,\n\tgetGifDimensions,\n\tgetImageDimensions,\n\tgetJpegDimensions,\n\tgetPngDimensions,\n\tgetWebpDimensions,\n\thyperlink,\n\ttype ImageDimensions,\n\ttype ImageProtocol,\n\ttype ImageRenderOptions,\n\timageFallback,\n\trenderImage,\n\tresetCapabilitiesCache,\n\tsetCapabilities,\n\tsetCellDimensions,\n\ttype TerminalCapabilities,\n} from \"./terminal-image.ts\";\nexport {\n\ttype Component,\n\tContainer,\n\tCURSOR_MARKER,\n\ttype Focusable,\n\tisFocusable,\n\ttype OverlayAnchor,\n\ttype OverlayHandle,\n\ttype OverlayMargin,\n\ttype OverlayOptions,\n\ttype OverlayUnfocusOptions,\n\ttype SizeValue,\n\tTUI,\n} from \"./tui.ts\";\n// Utilities\nexport { sliceByColumn, truncateToWidth, visibleWidth, wrapTextWithAnsi } from \"./utils.ts\";\n"]}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,8 @@ export { fuzzyFilter, fuzzyMatch } from "./fuzzy.js";
|
|
|
20
20
|
export { getKeybindings, KeybindingsManager, setKeybindings, TUI_KEYBINDINGS, } from "./keybindings.js";
|
|
21
21
|
// Keyboard input handling
|
|
22
22
|
export { decodeKittyPrintable, isKeyRelease, isKeyRepeat, isKittyProtocolActive, Key, matchesKey, parseKey, setKittyProtocolActive, } from "./keys.js";
|
|
23
|
+
// Mouse (SGR / X10) — used for in-app chat wheel scroll
|
|
24
|
+
export { MOUSE_TRACKING_DISABLE, MOUSE_TRACKING_ENABLE, parseMouseEvent, } from "./mouse.js";
|
|
23
25
|
// Input buffering for batch splitting
|
|
24
26
|
export { StdinBuffer } from "./stdin-buffer.js";
|
|
25
27
|
// Terminal interface and implementations
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC,uBAAuB;AACvB,OAAO,EAIN,4BAA4B,GAE5B,MAAM,mBAAmB,CAAC;AAC3B,aAAa;AACb,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAwC,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,KAAK,EAAsC,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAA+B,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAyB,QAAQ,EAA4C,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAEN,UAAU,GAIV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAoB,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,iBAAiB;AACjB,OAAO,EAAmB,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,cAAc;AACd,OAAO,EACN,cAAc,EAOd,kBAAkB,EAClB,cAAc,EACd,eAAe,GACf,MAAM,kBAAkB,CAAC;AAC1B,0BAA0B;AAC1B,OAAO,EACN,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,GAAG,EAGH,UAAU,EACV,QAAQ,EACR,sBAAsB,GACtB,MAAM,WAAW,CAAC;AACnB,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAqD,MAAM,mBAAmB,CAAC;AACnG,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAiB,MAAM,eAAe,CAAC;AAC/D,kBAAkB;AAClB,OAAO,EACN,yBAAyB,EACzB,8BAA8B,GAG9B,MAAM,sBAAsB,CAAC;AAC9B,yBAAyB;AACzB,OAAO,EACN,eAAe,EAEf,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EAIT,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEN,SAAS,EACT,aAAa,EAEb,WAAW,EAOX,GAAG,GACH,MAAM,UAAU,CAAC;AAClB,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC","sourcesContent":["// Core TUI interfaces and classes\n\n// Autocomplete support\nexport {\n\ttype AutocompleteItem,\n\ttype AutocompleteProvider,\n\ttype AutocompleteSuggestions,\n\tCombinedAutocompleteProvider,\n\ttype SlashCommand,\n} from \"./autocomplete.ts\";\n// Components\nexport { Box } from \"./components/box.ts\";\nexport { CancellableLoader } from \"./components/cancellable-loader.ts\";\nexport { Editor, type EditorOptions, type EditorTheme } from \"./components/editor.ts\";\nexport { Image, type ImageOptions, type ImageTheme } from \"./components/image.ts\";\nexport { Input } from \"./components/input.ts\";\nexport { Loader, type LoaderIndicatorOptions } from \"./components/loader.ts\";\nexport { type DefaultTextStyle, Markdown, type MarkdownOptions, type MarkdownTheme } from \"./components/markdown.ts\";\nexport {\n\ttype SelectItem,\n\tSelectList,\n\ttype SelectListLayoutOptions,\n\ttype SelectListTheme,\n\ttype SelectListTruncatePrimaryContext,\n} from \"./components/select-list.ts\";\nexport { type SettingItem, SettingsList, type SettingsListTheme } from \"./components/settings-list.ts\";\nexport { Spacer } from \"./components/spacer.ts\";\nexport { Text } from \"./components/text.ts\";\nexport { TruncatedText } from \"./components/truncated-text.ts\";\n// Editor component interface (for custom editors)\nexport type { EditorComponent } from \"./editor-component.ts\";\n// Fuzzy matching\nexport { type FuzzyMatch, fuzzyFilter, fuzzyMatch } from \"./fuzzy.ts\";\n// Keybindings\nexport {\n\tgetKeybindings,\n\ttype Keybinding,\n\ttype KeybindingConflict,\n\ttype KeybindingDefinition,\n\ttype KeybindingDefinitions,\n\ttype Keybindings,\n\ttype KeybindingsConfig,\n\tKeybindingsManager,\n\tsetKeybindings,\n\tTUI_KEYBINDINGS,\n} from \"./keybindings.ts\";\n// Keyboard input handling\nexport {\n\tdecodeKittyPrintable,\n\tisKeyRelease,\n\tisKeyRepeat,\n\tisKittyProtocolActive,\n\tKey,\n\ttype KeyEventType,\n\ttype KeyId,\n\tmatchesKey,\n\tparseKey,\n\tsetKittyProtocolActive,\n} from \"./keys.ts\";\n// Input buffering for batch splitting\nexport { StdinBuffer, type StdinBufferEventMap, type StdinBufferOptions } from \"./stdin-buffer.ts\";\n// Terminal interface and implementations\nexport { ProcessTerminal, type Terminal } from \"./terminal.ts\";\n// Terminal colors\nexport {\n\tparseOsc11BackgroundColor,\n\tparseTerminalColorSchemeReport,\n\ttype RgbColor,\n\ttype TerminalColorScheme,\n} from \"./terminal-colors.ts\";\n// Terminal image support\nexport {\n\tallocateImageId,\n\ttype CellDimensions,\n\tcalculateImageRows,\n\tdeleteAllKittyImages,\n\tdeleteKittyImage,\n\tdetectCapabilities,\n\tencodeITerm2,\n\tencodeKitty,\n\tgetCapabilities,\n\tgetCellDimensions,\n\tgetGifDimensions,\n\tgetImageDimensions,\n\tgetJpegDimensions,\n\tgetPngDimensions,\n\tgetWebpDimensions,\n\thyperlink,\n\ttype ImageDimensions,\n\ttype ImageProtocol,\n\ttype ImageRenderOptions,\n\timageFallback,\n\trenderImage,\n\tresetCapabilitiesCache,\n\tsetCapabilities,\n\tsetCellDimensions,\n\ttype TerminalCapabilities,\n} from \"./terminal-image.ts\";\nexport {\n\ttype Component,\n\tContainer,\n\tCURSOR_MARKER,\n\ttype Focusable,\n\tisFocusable,\n\ttype OverlayAnchor,\n\ttype OverlayHandle,\n\ttype OverlayMargin,\n\ttype OverlayOptions,\n\ttype OverlayUnfocusOptions,\n\ttype SizeValue,\n\tTUI,\n} from \"./tui.ts\";\n// Utilities\nexport { sliceByColumn, truncateToWidth, visibleWidth, wrapTextWithAnsi } from \"./utils.ts\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC,uBAAuB;AACvB,OAAO,EAIN,4BAA4B,GAE5B,MAAM,mBAAmB,CAAC;AAC3B,aAAa;AACb,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAwC,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,KAAK,EAAsC,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAA+B,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAyB,QAAQ,EAA4C,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAEN,UAAU,GAIV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAoB,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,iBAAiB;AACjB,OAAO,EAAmB,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtE,cAAc;AACd,OAAO,EACN,cAAc,EAOd,kBAAkB,EAClB,cAAc,EACd,eAAe,GACf,MAAM,kBAAkB,CAAC;AAC1B,0BAA0B;AAC1B,OAAO,EACN,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,GAAG,EAGH,UAAU,EACV,QAAQ,EACR,sBAAsB,GACtB,MAAM,WAAW,CAAC;AACnB,0DAAwD;AACxD,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EAGrB,eAAe,GACf,MAAM,YAAY,CAAC;AACpB,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAqD,MAAM,mBAAmB,CAAC;AACnG,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAiB,MAAM,eAAe,CAAC;AAC/D,kBAAkB;AAClB,OAAO,EACN,yBAAyB,EACzB,8BAA8B,GAG9B,MAAM,sBAAsB,CAAC;AAC9B,yBAAyB;AACzB,OAAO,EACN,eAAe,EAEf,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EAIT,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEN,SAAS,EACT,aAAa,EAEb,WAAW,EAOX,GAAG,GACH,MAAM,UAAU,CAAC;AAClB,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC","sourcesContent":["// Core TUI interfaces and classes\n\n// Autocomplete support\nexport {\n\ttype AutocompleteItem,\n\ttype AutocompleteProvider,\n\ttype AutocompleteSuggestions,\n\tCombinedAutocompleteProvider,\n\ttype SlashCommand,\n} from \"./autocomplete.ts\";\n// Components\nexport { Box } from \"./components/box.ts\";\nexport { CancellableLoader } from \"./components/cancellable-loader.ts\";\nexport { Editor, type EditorOptions, type EditorTheme } from \"./components/editor.ts\";\nexport { Image, type ImageOptions, type ImageTheme } from \"./components/image.ts\";\nexport { Input } from \"./components/input.ts\";\nexport { Loader, type LoaderIndicatorOptions } from \"./components/loader.ts\";\nexport { type DefaultTextStyle, Markdown, type MarkdownOptions, type MarkdownTheme } from \"./components/markdown.ts\";\nexport {\n\ttype SelectItem,\n\tSelectList,\n\ttype SelectListLayoutOptions,\n\ttype SelectListTheme,\n\ttype SelectListTruncatePrimaryContext,\n} from \"./components/select-list.ts\";\nexport { type SettingItem, SettingsList, type SettingsListTheme } from \"./components/settings-list.ts\";\nexport { Spacer } from \"./components/spacer.ts\";\nexport { Text } from \"./components/text.ts\";\nexport { TruncatedText } from \"./components/truncated-text.ts\";\n// Editor component interface (for custom editors)\nexport type { EditorComponent } from \"./editor-component.ts\";\n// Fuzzy matching\nexport { type FuzzyMatch, fuzzyFilter, fuzzyMatch } from \"./fuzzy.ts\";\n// Keybindings\nexport {\n\tgetKeybindings,\n\ttype Keybinding,\n\ttype KeybindingConflict,\n\ttype KeybindingDefinition,\n\ttype KeybindingDefinitions,\n\ttype Keybindings,\n\ttype KeybindingsConfig,\n\tKeybindingsManager,\n\tsetKeybindings,\n\tTUI_KEYBINDINGS,\n} from \"./keybindings.ts\";\n// Keyboard input handling\nexport {\n\tdecodeKittyPrintable,\n\tisKeyRelease,\n\tisKeyRepeat,\n\tisKittyProtocolActive,\n\tKey,\n\ttype KeyEventType,\n\ttype KeyId,\n\tmatchesKey,\n\tparseKey,\n\tsetKittyProtocolActive,\n} from \"./keys.ts\";\n// Mouse (SGR / X10) — used for in-app chat wheel scroll\nexport {\n\tMOUSE_TRACKING_DISABLE,\n\tMOUSE_TRACKING_ENABLE,\n\ttype MouseKind,\n\ttype ParsedMouseEvent,\n\tparseMouseEvent,\n} from \"./mouse.ts\";\n// Input buffering for batch splitting\nexport { StdinBuffer, type StdinBufferEventMap, type StdinBufferOptions } from \"./stdin-buffer.ts\";\n// Terminal interface and implementations\nexport { ProcessTerminal, type Terminal } from \"./terminal.ts\";\n// Terminal colors\nexport {\n\tparseOsc11BackgroundColor,\n\tparseTerminalColorSchemeReport,\n\ttype RgbColor,\n\ttype TerminalColorScheme,\n} from \"./terminal-colors.ts\";\n// Terminal image support\nexport {\n\tallocateImageId,\n\ttype CellDimensions,\n\tcalculateImageRows,\n\tdeleteAllKittyImages,\n\tdeleteKittyImage,\n\tdetectCapabilities,\n\tencodeITerm2,\n\tencodeKitty,\n\tgetCapabilities,\n\tgetCellDimensions,\n\tgetGifDimensions,\n\tgetImageDimensions,\n\tgetJpegDimensions,\n\tgetPngDimensions,\n\tgetWebpDimensions,\n\thyperlink,\n\ttype ImageDimensions,\n\ttype ImageProtocol,\n\ttype ImageRenderOptions,\n\timageFallback,\n\trenderImage,\n\tresetCapabilitiesCache,\n\tsetCapabilities,\n\tsetCellDimensions,\n\ttype TerminalCapabilities,\n} from \"./terminal-image.ts\";\nexport {\n\ttype Component,\n\tContainer,\n\tCURSOR_MARKER,\n\ttype Focusable,\n\tisFocusable,\n\ttype OverlayAnchor,\n\ttype OverlayHandle,\n\ttype OverlayMargin,\n\ttype OverlayOptions,\n\ttype OverlayUnfocusOptions,\n\ttype SizeValue,\n\tTUI,\n} from \"./tui.ts\";\n// Utilities\nexport { sliceByColumn, truncateToWidth, visibleWidth, wrapTextWithAnsi } from \"./utils.ts\";\n"]}
|
package/dist/mouse.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal mouse event parsing (SGR + X10).
|
|
3
|
+
*
|
|
4
|
+
* SGR: ESC[<button;x;yM (press) / m (release)
|
|
5
|
+
* X10: ESC[M + 3 bytes (button+32, x+32, y+32)
|
|
6
|
+
*
|
|
7
|
+
* Wheel: bit 6 set. low bits 0=up, 1=down, 2=left, 3=right.
|
|
8
|
+
*/
|
|
9
|
+
export declare const MOUSE_TRACKING_ENABLE = "\u001B[?1000h\u001B[?1006h";
|
|
10
|
+
export declare const MOUSE_TRACKING_DISABLE = "\u001B[?1006l\u001B[?1000l";
|
|
11
|
+
export type MouseKind = "wheel" | "button" | "move";
|
|
12
|
+
export interface ParsedMouseEvent {
|
|
13
|
+
kind: MouseKind;
|
|
14
|
+
/** Raw low button id, or 64+low for wheel. */
|
|
15
|
+
button: number;
|
|
16
|
+
/** +1 wheel up (older chat), -1 wheel down (newer). 0 if not vertical wheel. */
|
|
17
|
+
delta: number;
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
shift: boolean;
|
|
21
|
+
alt: boolean;
|
|
22
|
+
ctrl: boolean;
|
|
23
|
+
release: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare function parseMouseEvent(data: string): ParsedMouseEvent | undefined;
|
|
26
|
+
//# sourceMappingURL=mouse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../src/mouse.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,qBAAqB,+BAA2B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,+BAA2B,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CACjB;AAWD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAqB1E","sourcesContent":["/**\n * Terminal mouse event parsing (SGR + X10).\n *\n * SGR: ESC[<button;x;yM (press) / m (release)\n * X10: ESC[M + 3 bytes (button+32, x+32, y+32)\n *\n * Wheel: bit 6 set. low bits 0=up, 1=down, 2=left, 3=right.\n */\n\nexport const MOUSE_TRACKING_ENABLE = \"\\x1b[?1000h\\x1b[?1006h\";\nexport const MOUSE_TRACKING_DISABLE = \"\\x1b[?1006l\\x1b[?1000l\";\n\nexport type MouseKind = \"wheel\" | \"button\" | \"move\";\n\nexport interface ParsedMouseEvent {\n\tkind: MouseKind;\n\t/** Raw low button id, or 64+low for wheel. */\n\tbutton: number;\n\t/** +1 wheel up (older chat), -1 wheel down (newer). 0 if not vertical wheel. */\n\tdelta: number;\n\tx: number;\n\ty: number;\n\tshift: boolean;\n\talt: boolean;\n\tctrl: boolean;\n\trelease: boolean;\n}\n\nconst BUTTON_SHIFT = 4;\nconst BUTTON_ALT = 8;\nconst BUTTON_CTRL = 16;\nconst BUTTON_MOTION = 32;\nconst BUTTON_WHEEL = 64;\nconst BUTTON_EXTRA = 128;\n\nconst SGR_MOUSE = /^\\x1b\\[<(\\d+);(\\d+);(\\d+)([Mm])$/;\n\nexport function parseMouseEvent(data: string): ParsedMouseEvent | undefined {\n\tif (!data.startsWith(\"\\x1b[\")) return undefined;\n\n\tconst sgr = data.match(SGR_MOUSE);\n\tif (sgr) {\n\t\tconst cb = Number.parseInt(sgr[1]!, 10);\n\t\tconst x = Number.parseInt(sgr[2]!, 10);\n\t\tconst y = Number.parseInt(sgr[3]!, 10);\n\t\tif (!Number.isFinite(cb) || !Number.isFinite(x) || !Number.isFinite(y)) return undefined;\n\t\treturn decodeMouse(cb, x, y, sgr[4] === \"m\");\n\t}\n\n\tif (data.startsWith(\"\\x1b[M\") && data.length >= 6) {\n\t\tconst cb = data.charCodeAt(3) - 32;\n\t\tconst x = data.charCodeAt(4) - 32;\n\t\tconst y = data.charCodeAt(5) - 32;\n\t\tif (cb < 0 || x < 1 || y < 1) return undefined;\n\t\treturn decodeMouse(cb, x, y, (cb & 3) === 3);\n\t}\n\n\treturn undefined;\n}\n\nfunction decodeMouse(cb: number, x: number, y: number, release: boolean): ParsedMouseEvent {\n\tconst shift = (cb & BUTTON_SHIFT) !== 0;\n\tconst alt = (cb & BUTTON_ALT) !== 0;\n\tconst ctrl = (cb & BUTTON_CTRL) !== 0;\n\tconst motion = (cb & BUTTON_MOTION) !== 0;\n\tconst wheel = (cb & BUTTON_WHEEL) !== 0;\n\tconst extra = (cb & BUTTON_EXTRA) !== 0;\n\tconst low = cb & 3;\n\n\tif (wheel) {\n\t\tlet delta = 0;\n\t\tif (low === 0) delta = 1;\n\t\telse if (low === 1) delta = -1;\n\t\treturn {\n\t\t\tkind: \"wheel\",\n\t\t\tbutton: BUTTON_WHEEL + low,\n\t\t\tdelta,\n\t\t\tx,\n\t\t\ty,\n\t\t\tshift,\n\t\t\talt,\n\t\t\tctrl,\n\t\t\trelease: false,\n\t\t};\n\t}\n\n\tif (motion) {\n\t\treturn {\n\t\t\tkind: \"move\",\n\t\t\tbutton: extra ? 8 + low : low,\n\t\t\tdelta: 0,\n\t\t\tx,\n\t\t\ty,\n\t\t\tshift,\n\t\t\talt,\n\t\t\tctrl,\n\t\t\trelease: false,\n\t\t};\n\t}\n\n\treturn {\n\t\tkind: \"button\",\n\t\tbutton: extra ? 8 + low : low,\n\t\tdelta: 0,\n\t\tx,\n\t\ty,\n\t\tshift,\n\t\talt,\n\t\tctrl,\n\t\trelease,\n\t};\n}\n"]}
|
package/dist/mouse.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal mouse event parsing (SGR + X10).
|
|
3
|
+
*
|
|
4
|
+
* SGR: ESC[<button;x;yM (press) / m (release)
|
|
5
|
+
* X10: ESC[M + 3 bytes (button+32, x+32, y+32)
|
|
6
|
+
*
|
|
7
|
+
* Wheel: bit 6 set. low bits 0=up, 1=down, 2=left, 3=right.
|
|
8
|
+
*/
|
|
9
|
+
export const MOUSE_TRACKING_ENABLE = "\x1b[?1000h\x1b[?1006h";
|
|
10
|
+
export const MOUSE_TRACKING_DISABLE = "\x1b[?1006l\x1b[?1000l";
|
|
11
|
+
const BUTTON_SHIFT = 4;
|
|
12
|
+
const BUTTON_ALT = 8;
|
|
13
|
+
const BUTTON_CTRL = 16;
|
|
14
|
+
const BUTTON_MOTION = 32;
|
|
15
|
+
const BUTTON_WHEEL = 64;
|
|
16
|
+
const BUTTON_EXTRA = 128;
|
|
17
|
+
const SGR_MOUSE = /^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/;
|
|
18
|
+
export function parseMouseEvent(data) {
|
|
19
|
+
if (!data.startsWith("\x1b["))
|
|
20
|
+
return undefined;
|
|
21
|
+
const sgr = data.match(SGR_MOUSE);
|
|
22
|
+
if (sgr) {
|
|
23
|
+
const cb = Number.parseInt(sgr[1], 10);
|
|
24
|
+
const x = Number.parseInt(sgr[2], 10);
|
|
25
|
+
const y = Number.parseInt(sgr[3], 10);
|
|
26
|
+
if (!Number.isFinite(cb) || !Number.isFinite(x) || !Number.isFinite(y))
|
|
27
|
+
return undefined;
|
|
28
|
+
return decodeMouse(cb, x, y, sgr[4] === "m");
|
|
29
|
+
}
|
|
30
|
+
if (data.startsWith("\x1b[M") && data.length >= 6) {
|
|
31
|
+
const cb = data.charCodeAt(3) - 32;
|
|
32
|
+
const x = data.charCodeAt(4) - 32;
|
|
33
|
+
const y = data.charCodeAt(5) - 32;
|
|
34
|
+
if (cb < 0 || x < 1 || y < 1)
|
|
35
|
+
return undefined;
|
|
36
|
+
return decodeMouse(cb, x, y, (cb & 3) === 3);
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
function decodeMouse(cb, x, y, release) {
|
|
41
|
+
const shift = (cb & BUTTON_SHIFT) !== 0;
|
|
42
|
+
const alt = (cb & BUTTON_ALT) !== 0;
|
|
43
|
+
const ctrl = (cb & BUTTON_CTRL) !== 0;
|
|
44
|
+
const motion = (cb & BUTTON_MOTION) !== 0;
|
|
45
|
+
const wheel = (cb & BUTTON_WHEEL) !== 0;
|
|
46
|
+
const extra = (cb & BUTTON_EXTRA) !== 0;
|
|
47
|
+
const low = cb & 3;
|
|
48
|
+
if (wheel) {
|
|
49
|
+
let delta = 0;
|
|
50
|
+
if (low === 0)
|
|
51
|
+
delta = 1;
|
|
52
|
+
else if (low === 1)
|
|
53
|
+
delta = -1;
|
|
54
|
+
return {
|
|
55
|
+
kind: "wheel",
|
|
56
|
+
button: BUTTON_WHEEL + low,
|
|
57
|
+
delta,
|
|
58
|
+
x,
|
|
59
|
+
y,
|
|
60
|
+
shift,
|
|
61
|
+
alt,
|
|
62
|
+
ctrl,
|
|
63
|
+
release: false,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (motion) {
|
|
67
|
+
return {
|
|
68
|
+
kind: "move",
|
|
69
|
+
button: extra ? 8 + low : low,
|
|
70
|
+
delta: 0,
|
|
71
|
+
x,
|
|
72
|
+
y,
|
|
73
|
+
shift,
|
|
74
|
+
alt,
|
|
75
|
+
ctrl,
|
|
76
|
+
release: false,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
kind: "button",
|
|
81
|
+
button: extra ? 8 + low : low,
|
|
82
|
+
delta: 0,
|
|
83
|
+
x,
|
|
84
|
+
y,
|
|
85
|
+
shift,
|
|
86
|
+
alt,
|
|
87
|
+
ctrl,
|
|
88
|
+
release,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=mouse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mouse.js","sourceRoot":"","sources":["../src/mouse.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAkB/D,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,MAAM,SAAS,GAAG,kCAAkC,CAAC;AAErD,MAAM,UAAU,eAAe,CAAC,IAAY,EAAgC;IAC3E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,GAAG,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACzF,OAAO,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,OAAO,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,SAAS,CAAC;AAAA,CACjB;AAED,SAAS,WAAW,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,OAAgB,EAAoB;IAC1F,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IAEnB,IAAI,KAAK,EAAE,CAAC;QACX,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,KAAK,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC;aACpB,IAAI,GAAG,KAAK,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,OAAO;YACN,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,YAAY,GAAG,GAAG;YAC1B,KAAK;YACL,CAAC;YACD,CAAC;YACD,KAAK;YACL,GAAG;YACH,IAAI;YACJ,OAAO,EAAE,KAAK;SACd,CAAC;IACH,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO;YACN,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;YAC7B,KAAK,EAAE,CAAC;YACR,CAAC;YACD,CAAC;YACD,KAAK;YACL,GAAG;YACH,IAAI;YACJ,OAAO,EAAE,KAAK;SACd,CAAC;IACH,CAAC;IAED,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;QAC7B,KAAK,EAAE,CAAC;QACR,CAAC;QACD,CAAC;QACD,KAAK;QACL,GAAG;QACH,IAAI;QACJ,OAAO;KACP,CAAC;AAAA,CACF","sourcesContent":["/**\n * Terminal mouse event parsing (SGR + X10).\n *\n * SGR: ESC[<button;x;yM (press) / m (release)\n * X10: ESC[M + 3 bytes (button+32, x+32, y+32)\n *\n * Wheel: bit 6 set. low bits 0=up, 1=down, 2=left, 3=right.\n */\n\nexport const MOUSE_TRACKING_ENABLE = \"\\x1b[?1000h\\x1b[?1006h\";\nexport const MOUSE_TRACKING_DISABLE = \"\\x1b[?1006l\\x1b[?1000l\";\n\nexport type MouseKind = \"wheel\" | \"button\" | \"move\";\n\nexport interface ParsedMouseEvent {\n\tkind: MouseKind;\n\t/** Raw low button id, or 64+low for wheel. */\n\tbutton: number;\n\t/** +1 wheel up (older chat), -1 wheel down (newer). 0 if not vertical wheel. */\n\tdelta: number;\n\tx: number;\n\ty: number;\n\tshift: boolean;\n\talt: boolean;\n\tctrl: boolean;\n\trelease: boolean;\n}\n\nconst BUTTON_SHIFT = 4;\nconst BUTTON_ALT = 8;\nconst BUTTON_CTRL = 16;\nconst BUTTON_MOTION = 32;\nconst BUTTON_WHEEL = 64;\nconst BUTTON_EXTRA = 128;\n\nconst SGR_MOUSE = /^\\x1b\\[<(\\d+);(\\d+);(\\d+)([Mm])$/;\n\nexport function parseMouseEvent(data: string): ParsedMouseEvent | undefined {\n\tif (!data.startsWith(\"\\x1b[\")) return undefined;\n\n\tconst sgr = data.match(SGR_MOUSE);\n\tif (sgr) {\n\t\tconst cb = Number.parseInt(sgr[1]!, 10);\n\t\tconst x = Number.parseInt(sgr[2]!, 10);\n\t\tconst y = Number.parseInt(sgr[3]!, 10);\n\t\tif (!Number.isFinite(cb) || !Number.isFinite(x) || !Number.isFinite(y)) return undefined;\n\t\treturn decodeMouse(cb, x, y, sgr[4] === \"m\");\n\t}\n\n\tif (data.startsWith(\"\\x1b[M\") && data.length >= 6) {\n\t\tconst cb = data.charCodeAt(3) - 32;\n\t\tconst x = data.charCodeAt(4) - 32;\n\t\tconst y = data.charCodeAt(5) - 32;\n\t\tif (cb < 0 || x < 1 || y < 1) return undefined;\n\t\treturn decodeMouse(cb, x, y, (cb & 3) === 3);\n\t}\n\n\treturn undefined;\n}\n\nfunction decodeMouse(cb: number, x: number, y: number, release: boolean): ParsedMouseEvent {\n\tconst shift = (cb & BUTTON_SHIFT) !== 0;\n\tconst alt = (cb & BUTTON_ALT) !== 0;\n\tconst ctrl = (cb & BUTTON_CTRL) !== 0;\n\tconst motion = (cb & BUTTON_MOTION) !== 0;\n\tconst wheel = (cb & BUTTON_WHEEL) !== 0;\n\tconst extra = (cb & BUTTON_EXTRA) !== 0;\n\tconst low = cb & 3;\n\n\tif (wheel) {\n\t\tlet delta = 0;\n\t\tif (low === 0) delta = 1;\n\t\telse if (low === 1) delta = -1;\n\t\treturn {\n\t\t\tkind: \"wheel\",\n\t\t\tbutton: BUTTON_WHEEL + low,\n\t\t\tdelta,\n\t\t\tx,\n\t\t\ty,\n\t\t\tshift,\n\t\t\talt,\n\t\t\tctrl,\n\t\t\trelease: false,\n\t\t};\n\t}\n\n\tif (motion) {\n\t\treturn {\n\t\t\tkind: \"move\",\n\t\t\tbutton: extra ? 8 + low : low,\n\t\t\tdelta: 0,\n\t\t\tx,\n\t\t\ty,\n\t\t\tshift,\n\t\t\talt,\n\t\t\tctrl,\n\t\t\trelease: false,\n\t\t};\n\t}\n\n\treturn {\n\t\tkind: \"button\",\n\t\tbutton: extra ? 8 + low : low,\n\t\tdelta: 0,\n\t\tx,\n\t\ty,\n\t\tshift,\n\t\talt,\n\t\tctrl,\n\t\trelease,\n\t};\n}\n"]}
|
package/dist/tui.d.ts
CHANGED
|
@@ -173,6 +173,8 @@ export declare class TUI extends Container {
|
|
|
173
173
|
private lastChatScrollMax;
|
|
174
174
|
private alternateScreen;
|
|
175
175
|
private alternateScreenActive;
|
|
176
|
+
private mouseTrackingActive;
|
|
177
|
+
private static readonly WHEEL_LINES;
|
|
176
178
|
constructor(terminal: Terminal, showHardwareCursor?: boolean);
|
|
177
179
|
get fullRedraws(): number;
|
|
178
180
|
getShowHardwareCursor(): boolean;
|
|
@@ -240,6 +242,10 @@ export declare class TUI extends Container {
|
|
|
240
242
|
stop(): void;
|
|
241
243
|
requestRender(force?: boolean): void;
|
|
242
244
|
private scheduleRender;
|
|
245
|
+
private syncMouseTracking;
|
|
246
|
+
private enableMouseTracking;
|
|
247
|
+
private disableMouseTracking;
|
|
248
|
+
private handleMouseEvent;
|
|
243
249
|
private handleInput;
|
|
244
250
|
private consumeOsc11BackgroundResponse;
|
|
245
251
|
private consumeTerminalColorSchemeReport;
|