@simon_he/vue-tui 0.0.5 → 0.0.6
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.cjs +1478 -125
- package/dist/index.d.ts +119 -102
- package/dist/index.js +1295 -112
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -39,9 +39,16 @@ type TerminalSize = Readonly<{
|
|
|
39
39
|
cols: number;
|
|
40
40
|
rows: number;
|
|
41
41
|
}>;
|
|
42
|
+
type TerminalScrollOperation = Readonly<{
|
|
43
|
+
startY: number;
|
|
44
|
+
endY: number;
|
|
45
|
+
delta: number;
|
|
46
|
+
}>;
|
|
42
47
|
type TerminalCommitEvent = Readonly<{
|
|
43
48
|
dirtyRows: readonly number[] | null;
|
|
44
49
|
planes: TerminalRenderPlanes | null;
|
|
50
|
+
sync?: boolean;
|
|
51
|
+
scrollOperations?: readonly TerminalScrollOperation[] | null;
|
|
45
52
|
}>;
|
|
46
53
|
type TerminalResizeEvent = Readonly<{
|
|
47
54
|
cols: number;
|
|
@@ -70,6 +77,7 @@ interface Terminal {
|
|
|
70
77
|
batch: <T>(fn: () => T) => T;
|
|
71
78
|
commit: (meta?: {
|
|
72
79
|
planes?: TerminalRenderPlanes | null;
|
|
80
|
+
sync?: boolean;
|
|
73
81
|
}) => readonly number[] | null;
|
|
74
82
|
on: <K extends keyof TerminalEventMap>(event: K, cb: (payload: TerminalEventMap[K]) => void) => () => void;
|
|
75
83
|
dispose: () => void;
|
|
@@ -79,6 +87,10 @@ interface Terminal {
|
|
|
79
87
|
getRow: (y: number) => readonly Cell[];
|
|
80
88
|
setScrollbackLimit: (limit: number) => void;
|
|
81
89
|
getScrollbackLines: (count?: number) => readonly string[];
|
|
90
|
+
/** Register fingerprint function for SoA pre-computation on the composite buffer. */
|
|
91
|
+
setFingerprintFn: (fn: (ch: string, style: Style) => number) => void;
|
|
92
|
+
/** Get pre-computed fingerprints for a composite buffer row (null if not enabled). */
|
|
93
|
+
getRowFingerprints: (y: number) => Uint32Array | null;
|
|
82
94
|
} //#endregion
|
|
83
95
|
//#region src/core/ansi/colors.d.ts
|
|
84
96
|
type TerminalColorMode = 'ansi8' | 'ansi16' | 'ansi256' | 'truecolor';
|
|
@@ -626,106 +638,6 @@ declare function createEventManager(container: HTMLElement, metrics: CellMetrics
|
|
|
626
638
|
onFocusChange?: (prev: string | null, next: string | null) => void;
|
|
627
639
|
}>): EventManager;
|
|
628
640
|
|
|
629
|
-
//#endregion
|
|
630
|
-
//#region src/vue/components/input/host.d.ts
|
|
631
|
-
type ResolveTInputPathInfo = Readonly<{
|
|
632
|
-
workspace: string;
|
|
633
|
-
input: string;
|
|
634
|
-
preserveBackslash?: boolean;
|
|
635
|
-
homeDir?: string;
|
|
636
|
-
}>;
|
|
637
|
-
type TInputHostAdapter = Readonly<{
|
|
638
|
-
isTerminalLike?: boolean;
|
|
639
|
-
resolvePath?: (info: ResolveTInputPathInfo) => string;
|
|
640
|
-
pathToHref?: (pathLike: string) => string | undefined;
|
|
641
|
-
readClipboardText?: () => Promise<string>;
|
|
642
|
-
writeClipboardText?: (text: string) => Promise<boolean>;
|
|
643
|
-
showToast?: (message: string) => void;
|
|
644
|
-
}>;
|
|
645
|
-
|
|
646
|
-
//#endregion
|
|
647
|
-
//#region src/vue/components/input/plugins/types.d.ts
|
|
648
|
-
type PromptSuggestion = Readonly<{
|
|
649
|
-
value: string;
|
|
650
|
-
insert?: string;
|
|
651
|
-
label?: string;
|
|
652
|
-
detail?: string;
|
|
653
|
-
keywords?: readonly string[];
|
|
654
|
-
mentionValue?: string;
|
|
655
|
-
mentionBehavior?: 'collect' | 'inline';
|
|
656
|
-
onSelect?: (info: Readonly<{
|
|
657
|
-
value: string;
|
|
658
|
-
query: string;
|
|
659
|
-
}>) => void | boolean;
|
|
660
|
-
}>;
|
|
661
|
-
type TInputPluginContext = Readonly<{
|
|
662
|
-
getProps: () => Readonly<{
|
|
663
|
-
zIndex: number;
|
|
664
|
-
style?: Style;
|
|
665
|
-
promptSuggestions: readonly PromptSuggestion[];
|
|
666
|
-
promptTrigger: string;
|
|
667
|
-
promptTriggers?: readonly string[];
|
|
668
|
-
promptMaxItems: number;
|
|
669
|
-
promptAlign: 'input' | 'center';
|
|
670
|
-
promptSelectedStyle?: Style;
|
|
671
|
-
mentionTrigger: string;
|
|
672
|
-
mentionWorkspace: string;
|
|
673
|
-
mentionMode: PathPickMode;
|
|
674
|
-
mentionShowHidden: boolean;
|
|
675
|
-
mentionSuggestions: readonly PromptSuggestion[];
|
|
676
|
-
mentionMaxItems: number;
|
|
677
|
-
collectMentions: boolean;
|
|
678
|
-
mentions: readonly string[];
|
|
679
|
-
skillTrigger?: string;
|
|
680
|
-
skillSuggestions?: readonly PromptSuggestion[];
|
|
681
|
-
}>;
|
|
682
|
-
emit: (event: string, ...args: any[]) => void;
|
|
683
|
-
terminal: Terminal;
|
|
684
|
-
scheduler: Readonly<{
|
|
685
|
-
invalidate: () => void;
|
|
686
|
-
}>;
|
|
687
|
-
defaultStyle: Ref<Style>;
|
|
688
|
-
render: Readonly<{
|
|
689
|
-
rootStack: any;
|
|
690
|
-
createStack: (parent: any, z: number) => any;
|
|
691
|
-
}>;
|
|
692
|
-
visible: Ref<boolean>;
|
|
693
|
-
rawAbsRect: ComputedRef<Rect>;
|
|
694
|
-
eventZ: ComputedRef<number>;
|
|
695
|
-
focused: Ref<boolean>;
|
|
696
|
-
cursor: Ref<number>;
|
|
697
|
-
getValue: () => string;
|
|
698
|
-
insertText: (text: string) => void;
|
|
699
|
-
pushUndoSnapshot: (nextValue: string) => void;
|
|
700
|
-
applyEdit: (nextValue: string, nextCursor: number) => void;
|
|
701
|
-
registerKeydownInterceptor: (fn: (e: TerminalKeyboardEvent) => boolean) => void;
|
|
702
|
-
registerTextFilter: (fn: (info: Readonly<{
|
|
703
|
-
text: string;
|
|
704
|
-
value: string;
|
|
705
|
-
cursor: number;
|
|
706
|
-
selection: null | Readonly<{
|
|
707
|
-
start: number;
|
|
708
|
-
end: number;
|
|
709
|
-
}>;
|
|
710
|
-
}>) => string) => void;
|
|
711
|
-
registerChipStyleProvider: (provider: Readonly<{
|
|
712
|
-
getStyle: (baseStyle: Style, chip: Readonly<{
|
|
713
|
-
kind: 'multiline' | 'mention';
|
|
714
|
-
absPath?: string;
|
|
715
|
-
}>) => Style | null | undefined;
|
|
716
|
-
version: Ref<number>;
|
|
717
|
-
}> | null) => void;
|
|
718
|
-
registerHostAdapter: (adapter: TInputHostAdapter | null) => void;
|
|
719
|
-
resolvePath: (input: string, opts?: Readonly<{
|
|
720
|
-
preserveBackslash?: boolean;
|
|
721
|
-
}>) => string;
|
|
722
|
-
mentionToken: string;
|
|
723
|
-
}>;
|
|
724
|
-
type TInputPlugin = Readonly<{
|
|
725
|
-
name: string;
|
|
726
|
-
install: (ctx: TInputPluginContext) => void;
|
|
727
|
-
}>;
|
|
728
|
-
|
|
729
641
|
//#endregion
|
|
730
642
|
//#region src/observability/trace.d.ts
|
|
731
643
|
type TraceRecord = Readonly<{
|
|
@@ -825,6 +737,8 @@ type RenderNode = Readonly<{
|
|
|
825
737
|
type RenderManager = Readonly<{
|
|
826
738
|
rootStack: RenderStack;
|
|
827
739
|
createStack: (parent: RenderStack, zIndex: number) => RenderStack;
|
|
740
|
+
invalidatePlane: (plane: TerminalRenderPlane) => void;
|
|
741
|
+
scrollPlane: (plane: TerminalRenderPlane, startY: number, endY: number, delta: number) => void;
|
|
828
742
|
register: (node: {
|
|
829
743
|
stack: RenderStack;
|
|
830
744
|
plane?: TerminalRenderPlane;
|
|
@@ -837,6 +751,7 @@ type RenderManager = Readonly<{
|
|
|
837
751
|
plane: TerminalRenderPlane;
|
|
838
752
|
zIndex: number;
|
|
839
753
|
rect: RenderRect | null;
|
|
754
|
+
dirtyRowsHint: readonly number[];
|
|
840
755
|
paint: (dirtyRows?: readonly number[]) => void;
|
|
841
756
|
}>) => void;
|
|
842
757
|
unregister: (id: string) => void;
|
|
@@ -897,6 +812,105 @@ type TerminalContext = Readonly<{
|
|
|
897
812
|
}>;
|
|
898
813
|
declare const TInputPluginsContextKey: InjectionKey<Readonly<Ref<readonly TInputPlugin[]>>>;
|
|
899
814
|
|
|
815
|
+
//#endregion
|
|
816
|
+
//#region src/vue/components/input/host.d.ts
|
|
817
|
+
type ResolveTInputPathInfo = Readonly<{
|
|
818
|
+
workspace: string;
|
|
819
|
+
input: string;
|
|
820
|
+
preserveBackslash?: boolean;
|
|
821
|
+
homeDir?: string;
|
|
822
|
+
}>;
|
|
823
|
+
type TInputHostAdapter = Readonly<{
|
|
824
|
+
isTerminalLike?: boolean;
|
|
825
|
+
resolvePath?: (info: ResolveTInputPathInfo) => string;
|
|
826
|
+
pathToHref?: (pathLike: string) => string | undefined;
|
|
827
|
+
readClipboardText?: () => Promise<string>;
|
|
828
|
+
writeClipboardText?: (text: string) => Promise<boolean>;
|
|
829
|
+
showToast?: (message: string) => void;
|
|
830
|
+
}>;
|
|
831
|
+
|
|
832
|
+
//#endregion
|
|
833
|
+
//#region src/vue/components/input/plugins/types.d.ts
|
|
834
|
+
type PromptSuggestion = Readonly<{
|
|
835
|
+
value: string;
|
|
836
|
+
insert?: string;
|
|
837
|
+
label?: string;
|
|
838
|
+
detail?: string;
|
|
839
|
+
keywords?: readonly string[];
|
|
840
|
+
mentionValue?: string;
|
|
841
|
+
mentionBehavior?: 'collect' | 'inline';
|
|
842
|
+
onSelect?: (info: Readonly<{
|
|
843
|
+
value: string;
|
|
844
|
+
query: string;
|
|
845
|
+
}>) => void | boolean;
|
|
846
|
+
}>;
|
|
847
|
+
type TInputPluginContext = Readonly<{
|
|
848
|
+
getProps: () => Readonly<{
|
|
849
|
+
zIndex: number;
|
|
850
|
+
style?: Style;
|
|
851
|
+
promptSuggestions: readonly PromptSuggestion[];
|
|
852
|
+
promptTrigger: string;
|
|
853
|
+
promptTriggers?: readonly string[];
|
|
854
|
+
promptMaxItems: number;
|
|
855
|
+
promptAlign: 'input' | 'center';
|
|
856
|
+
promptSelectedStyle?: Style;
|
|
857
|
+
mentionTrigger: string;
|
|
858
|
+
mentionWorkspace: string;
|
|
859
|
+
mentionMode: PathPickMode;
|
|
860
|
+
mentionShowHidden: boolean;
|
|
861
|
+
mentionSuggestions: readonly PromptSuggestion[];
|
|
862
|
+
mentionMaxItems: number;
|
|
863
|
+
collectMentions: boolean;
|
|
864
|
+
mentions: readonly string[];
|
|
865
|
+
skillTrigger?: string;
|
|
866
|
+
skillSuggestions?: readonly PromptSuggestion[];
|
|
867
|
+
}>;
|
|
868
|
+
emit: (event: string, ...args: any[]) => void;
|
|
869
|
+
terminal: Terminal;
|
|
870
|
+
scheduler: TerminalScheduler;
|
|
871
|
+
defaultStyle: Ref<Style>;
|
|
872
|
+
render: Readonly<{
|
|
873
|
+
rootStack: any;
|
|
874
|
+
createStack: (parent: any, z: number) => any;
|
|
875
|
+
invalidatePlane: (plane: TerminalRenderPlane) => void;
|
|
876
|
+
}>;
|
|
877
|
+
visible: Ref<boolean>;
|
|
878
|
+
rawAbsRect: ComputedRef<Rect>;
|
|
879
|
+
eventZ: ComputedRef<number>;
|
|
880
|
+
focused: Ref<boolean>;
|
|
881
|
+
cursor: Ref<number>;
|
|
882
|
+
getValue: () => string;
|
|
883
|
+
insertText: (text: string) => void;
|
|
884
|
+
pushUndoSnapshot: (nextValue: string) => void;
|
|
885
|
+
applyEdit: (nextValue: string, nextCursor: number) => void;
|
|
886
|
+
registerKeydownInterceptor: (fn: (e: TerminalKeyboardEvent) => boolean) => void;
|
|
887
|
+
registerTextFilter: (fn: (info: Readonly<{
|
|
888
|
+
text: string;
|
|
889
|
+
value: string;
|
|
890
|
+
cursor: number;
|
|
891
|
+
selection: null | Readonly<{
|
|
892
|
+
start: number;
|
|
893
|
+
end: number;
|
|
894
|
+
}>;
|
|
895
|
+
}>) => string) => void;
|
|
896
|
+
registerChipStyleProvider: (provider: Readonly<{
|
|
897
|
+
getStyle: (baseStyle: Style, chip: Readonly<{
|
|
898
|
+
kind: 'multiline' | 'mention';
|
|
899
|
+
absPath?: string;
|
|
900
|
+
}>) => Style | null | undefined;
|
|
901
|
+
version: Ref<number>;
|
|
902
|
+
}> | null) => void;
|
|
903
|
+
registerHostAdapter: (adapter: TInputHostAdapter | null) => void;
|
|
904
|
+
resolvePath: (input: string, opts?: Readonly<{
|
|
905
|
+
preserveBackslash?: boolean;
|
|
906
|
+
}>) => string;
|
|
907
|
+
mentionToken: string;
|
|
908
|
+
}>;
|
|
909
|
+
type TInputPlugin = Readonly<{
|
|
910
|
+
name: string;
|
|
911
|
+
install: (ctx: TInputPluginContext) => void;
|
|
912
|
+
}>;
|
|
913
|
+
|
|
900
914
|
//#endregion
|
|
901
915
|
//#region src/create-terminal-app.d.ts
|
|
902
916
|
type TerminalApp = Readonly<{
|
|
@@ -1152,6 +1166,8 @@ interface RenderNodeOptions {
|
|
|
1152
1166
|
zIndex?: number;
|
|
1153
1167
|
stack?: RenderStack;
|
|
1154
1168
|
rect?: RenderRect | null;
|
|
1169
|
+
dirtyRowsHint?: readonly number[];
|
|
1170
|
+
priority?: TerminalSchedulerPriority;
|
|
1155
1171
|
deps?: unknown;
|
|
1156
1172
|
paint: (dirtyRows?: readonly number[]) => void;
|
|
1157
1173
|
}
|
|
@@ -1272,8 +1288,9 @@ interface WheelScrollResult {
|
|
|
1272
1288
|
dir: -1 | 0 | 1;
|
|
1273
1289
|
lines: number;
|
|
1274
1290
|
}
|
|
1291
|
+
type WheelDeltaMode = 'auto' | 'line' | 'pixel';
|
|
1275
1292
|
declare function createWheelScrollState(): WheelScrollState;
|
|
1276
|
-
declare function applyWheelScroll(state: WheelScrollState, deltaY: number, scrollTop: number, maxTop: number, now?: number): WheelScrollResult;
|
|
1293
|
+
declare function applyWheelScroll(state: WheelScrollState, deltaY: number, scrollTop: number, maxTop: number, now?: number, deltaMode?: WheelDeltaMode): WheelScrollResult;
|
|
1277
1294
|
|
|
1278
1295
|
//#endregion
|
|
1279
|
-
export { ANSI16_COLORS, ANSI256_COLORS, ANSI8_COLORS, AnsiColorName, BufferSnapshot, Cell, CellMetrics, CliEventManager, ClipboardApi, CreateTerminalAppOptions, DomRenderer, EventManager, FsDirEntry, FsEntryKind, FsStat, LayoutContext, MentionPathProvider, MentionSuggestionProvider, PathPickMode, PathPickerProvider, PathSuggestion, PromptMentionPluginOptions, PromptSuggestion, RafApi, Rect, Runtime, RuntimeEnv, SGR_RESET, StdinDriver, StdoutRenderer, StdoutRendererMetrics, Style, SuggestPathsResult, TAnchor, TBox, TDebugOverlay, TDialog, TERMINAL_RENDER_PLANES, TFlow, TInput, TInputBox, TInputHostAdapter, TInputPlugin, TInputPluginContext, TInputPluginsContextKey, TJsonEditor, TList, TMultilineModal, TPathPicker, TRenderLayer, TRenderPlane, TRouterView, TSelect, TText, TTransition, TView, Terminal, TerminalApp, TerminalBaseEvent, TerminalColorCapability, TerminalColorLevel, TerminalColorMode, TerminalCommitEvent, TerminalContext, TerminalDebugNode, TerminalEventHandlerMap, TerminalEventMap, TerminalEventRecord, TerminalEventType, TerminalInputEvent, TerminalKeyboardEvent, TerminalNode, TerminalPointerEvent, TerminalProvider, TerminalRenderPlane, TerminalRenderPlanes, TerminalResizeEvent, TerminalRoute, TerminalRouteLocationRaw, TerminalRouteRecord, TerminalRouter, TerminalRuntime, TerminalRuntimeHandle, TerminalScheduler, TerminalSchedulerInvalidateOptions, TimerApi, TraceRecord, TraceStore, ansiColors, ansiStyles, applyWheelScroll, charCellWidth, clearTextCaches, createCliEventManager, createDefaultTInputHostAdapter, createDomRenderer, createEventManager, createNodeMentionPathProvider, createNodePathPickerProvider, createPromptMentionPlugin, createRuntime, createStdinDriver, createStdoutRenderer, createTInputHostPlugin, createTerminal, createTerminalApp, createTerminalRouter, createTextRestrictionPlugin, createTraceStore, createWheelScrollState, defaultTInputHostPlugin, detectTerminalColorCapability, formatInlineCellLine, getStdoutRendererMetrics, lintJsonText, normalizeNewlines, padEndByCells, parseAnsiSgr, readEventLog, resolveUserPath, rgbToAnsi256, sanitizeInlineText, sanitizeTextBlock, sliceByCells, sliceByCellsRange, spaces, suggestPaths, textCellWidth, truecolorBgOpen, truecolorFgOpen, useLayout, useRenderNode, useRoute, useRouter, useTerminal, useTerminalNode, useTerminalRuntime, useVisibility, wrapByCells, writeEventLog, writeSnapshot };
|
|
1296
|
+
export { ANSI16_COLORS, ANSI256_COLORS, ANSI8_COLORS, AnsiColorName, BufferSnapshot, Cell, CellMetrics, CliEventManager, ClipboardApi, CreateTerminalAppOptions, DomRenderer, EventManager, FsDirEntry, FsEntryKind, FsStat, LayoutContext, MentionPathProvider, MentionSuggestionProvider, PathPickMode, PathPickerProvider, PathSuggestion, PromptMentionPluginOptions, PromptSuggestion, RafApi, Rect, Runtime, RuntimeEnv, SGR_RESET, StdinDriver, StdoutRenderer, StdoutRendererMetrics, Style, SuggestPathsResult, TAnchor, TBox, TDebugOverlay, TDialog, TERMINAL_RENDER_PLANES, TFlow, TInput, TInputBox, TInputHostAdapter, TInputPlugin, TInputPluginContext, TInputPluginsContextKey, TJsonEditor, TList, TMultilineModal, TPathPicker, TRenderLayer, TRenderPlane, TRouterView, TSelect, TText, TTransition, TView, Terminal, TerminalApp, TerminalBaseEvent, TerminalColorCapability, TerminalColorLevel, TerminalColorMode, TerminalCommitEvent, TerminalContext, TerminalDebugNode, TerminalEventHandlerMap, TerminalEventMap, TerminalEventRecord, TerminalEventType, TerminalInputEvent, TerminalKeyboardEvent, TerminalNode, TerminalPointerEvent, TerminalProvider, TerminalRenderPlane, TerminalRenderPlanes, TerminalResizeEvent, TerminalRoute, TerminalRouteLocationRaw, TerminalRouteRecord, TerminalRouter, TerminalRuntime, TerminalRuntimeHandle, TerminalScheduler, TerminalSchedulerInvalidateOptions, TerminalScrollOperation, TimerApi, TraceRecord, TraceStore, ansiColors, ansiStyles, applyWheelScroll, charCellWidth, clearTextCaches, createCliEventManager, createDefaultTInputHostAdapter, createDomRenderer, createEventManager, createNodeMentionPathProvider, createNodePathPickerProvider, createPromptMentionPlugin, createRuntime, createStdinDriver, createStdoutRenderer, createTInputHostPlugin, createTerminal, createTerminalApp, createTerminalRouter, createTextRestrictionPlugin, createTraceStore, createWheelScrollState, defaultTInputHostPlugin, detectTerminalColorCapability, formatInlineCellLine, getStdoutRendererMetrics, lintJsonText, normalizeNewlines, padEndByCells, parseAnsiSgr, readEventLog, resolveUserPath, rgbToAnsi256, sanitizeInlineText, sanitizeTextBlock, sliceByCells, sliceByCellsRange, spaces, suggestPaths, textCellWidth, truecolorBgOpen, truecolorFgOpen, useLayout, useRenderNode, useRoute, useRouter, useTerminal, useTerminalNode, useTerminalRuntime, useVisibility, wrapByCells, writeEventLog, writeSnapshot };
|