@opentui/keymap 0.2.2 → 0.2.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/README.md +56 -32
- package/chunks/index-frk6sdcd.js +409 -0
- package/chunks/index-frk6sdcd.js.map +14 -0
- package/package.json +17 -7
- package/src/addons/index.js +511 -4870
- package/src/addons/index.js.map +25 -0
- package/src/addons/opentui/edit-buffer-bindings.d.ts +6 -2
- package/src/addons/opentui/index.d.ts +2 -2
- package/src/addons/opentui/index.js +101 -5515
- package/src/addons/opentui/index.js.map +12 -0
- package/src/addons/universal/dead-bindings.d.ts +1 -1
- package/src/addons/universal/default-parser.d.ts +2 -2
- package/src/addons/universal/ex-commands.d.ts +11 -8
- package/src/addons/universal/index.d.ts +2 -1
- package/src/addons/universal/leader.d.ts +1 -1
- package/src/addons/universal/metadata.d.ts +2 -2
- package/src/addons/universal/mod-bindings.d.ts +6 -0
- package/src/addons/universal/unresolved-commands.d.ts +1 -1
- package/src/extras/binding-sections.d.ts +16 -7
- package/src/extras/command-bindings.d.ts +2 -2
- package/src/extras/formatting.d.ts +3 -0
- package/src/extras/graph.d.ts +9 -0
- package/src/extras/graph.js +373 -0
- package/src/extras/graph.js.map +11 -0
- package/src/extras/index.js +57 -4
- package/src/extras/index.js.map +12 -0
- package/src/extras/lib/graph-snapshot.d.ts +14 -0
- package/src/extras/lib/graph-types.d.ts +83 -0
- package/src/html.d.ts +3 -3
- package/src/html.js +47 -4992
- package/src/html.js.map +10 -0
- package/src/index.d.ts +3 -1
- package/src/index.js +2688 -2807
- package/src/index.js.map +34 -0
- package/src/keymap.d.ts +17 -33
- package/src/lib/emitter.d.ts +1 -2
- package/src/lib/registry.d.ts +2 -2
- package/src/lib/runtime-utils.d.ts +34 -0
- package/src/opentui.d.ts +1 -3
- package/src/opentui.js +40 -4994
- package/src/opentui.js.map +10 -0
- package/src/react/index.d.ts +5 -19
- package/src/react/index.js +3 -0
- package/src/react/index.js.map +10 -0
- package/src/runtime-modules.d.ts +2 -0
- package/src/runtime-modules.js +5 -0
- package/src/runtime-modules.js.map +10 -0
- package/src/services/activation.d.ts +7 -33
- package/src/services/active-key-cache.d.ts +29 -0
- package/src/services/command-catalog.d.ts +27 -52
- package/src/services/command-executor.d.ts +6 -12
- package/src/services/compiler.d.ts +4 -12
- package/src/services/conditions.d.ts +4 -16
- package/src/services/dispatch-decisions.d.ts +21 -0
- package/src/services/dispatch-patterns.d.ts +5 -0
- package/src/services/dispatch.d.ts +6 -42
- package/src/services/environment.d.ts +6 -24
- package/src/services/extension-context.d.ts +16 -0
- package/src/services/layer-diagnostics.d.ts +10 -0
- package/src/services/layers.d.ts +15 -24
- package/src/services/notify.d.ts +6 -8
- package/src/services/pending-sequence.d.ts +4 -0
- package/src/services/primitives/active-layers.d.ts +2 -3
- package/src/services/primitives/bindings.d.ts +4 -0
- package/src/services/primitives/field-invariants.d.ts +16 -1
- package/src/services/primitives/pending-captures.d.ts +5 -0
- package/src/services/runtime-view.d.ts +5 -0
- package/src/services/runtime.d.ts +2 -7
- package/src/services/sequence-index.d.ts +24 -0
- package/src/services/state.d.ts +46 -92
- package/src/solid/index.d.ts +5 -19
- package/src/solid/index.js +3 -0
- package/src/solid/index.js.map +10 -0
- package/src/testing/index.d.ts +90 -0
- package/src/testing/index.js +276 -0
- package/src/testing/index.js.map +10 -0
- package/src/types.d.ts +180 -128
- package/src/services/primitives/binding-inputs.d.ts +0 -4
package/src/keymap.d.ts
CHANGED
|
@@ -1,49 +1,33 @@
|
|
|
1
|
-
import type { ActiveBinding, ActiveKey, ActiveKeyOptions, BindingExpander, BindingParser, BindingFieldCompiler, LayerBindingsTransformer, BindingTransformer, Events, CommandFieldCompiler, CommandBindingsQuery, CommandEntry, CommandQuery,
|
|
1
|
+
import type { ActiveBinding, ActiveKey, ActiveKeyOptions, BindingExpander, BindingParser, BindingFieldCompiler, LayerBindingsTransformer, BindingTransformer, Events, CommandFieldCompiler, CommandTransformer, CommandBindingsQuery, CommandEntry, CommandQuery, Command, KeymapEvent, KeymapHost, HostMetadata, LayerAnalyzer, Listener, RunCommandOptions, RunCommandResult, CommandResolver, KeyAfterInputContext, KeyInterceptOptions, KeyInputContext, Layer, LayerFieldCompiler, KeyDisambiguationResolver, RawInterceptOptions, RawInputContext, EventMatchResolver, KeyStringifyInput, KeyToken, SequencePattern, KeyLike, KeySequencePart, StringifyOptions } from "./types.js";
|
|
2
|
+
import { KEYMAP_EXTENSION_CONTEXT, type KeymapExtensionContext } from "./services/extension-context.js";
|
|
2
3
|
export declare class Keymap<TTarget extends object, TEvent extends KeymapEvent = KeymapEvent> {
|
|
3
|
-
private
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
private readonly resources;
|
|
7
|
-
private readonly cleanupListeners;
|
|
8
|
-
private events;
|
|
9
|
-
private hooks;
|
|
10
|
-
private readonly notify;
|
|
11
|
-
private readonly activation;
|
|
12
|
-
private readonly runtime;
|
|
13
|
-
private readonly conditions;
|
|
14
|
-
private readonly catalog;
|
|
15
|
-
private readonly executor;
|
|
16
|
-
private readonly compiler;
|
|
17
|
-
private readonly dispatch;
|
|
18
|
-
private readonly layers;
|
|
19
|
-
private readonly environment;
|
|
20
|
-
private readonly keypressListener;
|
|
21
|
-
private readonly keyreleaseListener;
|
|
22
|
-
private readonly rawListener;
|
|
23
|
-
private readonly focusedTargetListener;
|
|
4
|
+
#private;
|
|
5
|
+
getPendingSequence: () => readonly KeySequencePart[];
|
|
6
|
+
getActiveKeys: (options?: ActiveKeyOptions) => readonly ActiveKey<TTarget, TEvent>[];
|
|
24
7
|
constructor(host: KeymapHost<TTarget, TEvent>);
|
|
25
|
-
|
|
8
|
+
[KEYMAP_EXTENSION_CONTEXT](): KeymapExtensionContext<TTarget, TEvent>;
|
|
26
9
|
setData(name: string, value: unknown): void;
|
|
27
10
|
getData(name: string): unknown;
|
|
11
|
+
getHostMetadata(): Readonly<HostMetadata>;
|
|
28
12
|
hasPendingSequence(): boolean;
|
|
29
|
-
getPendingSequence(): readonly KeySequencePart[];
|
|
30
13
|
createKeyMatcher(key: KeyLike): (input: KeyStringifyInput | null | undefined) => boolean;
|
|
31
14
|
parseKeySequence(key: KeyLike): readonly KeySequencePart[];
|
|
32
15
|
formatKey(key: KeyLike, options?: StringifyOptions): string;
|
|
33
16
|
clearPendingSequence(): void;
|
|
34
17
|
popPendingSequence(): boolean;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
getCommandEntries(query?: CommandQuery<TTarget>): readonly CommandEntry<TTarget, TEvent>[];
|
|
18
|
+
getCommands(query?: CommandQuery<TTarget, TEvent>): readonly Command<TTarget, TEvent>[];
|
|
19
|
+
getCommandEntries(query?: CommandQuery<TTarget, TEvent>): readonly CommandEntry<TTarget, TEvent>[];
|
|
38
20
|
getCommandBindings(query: CommandBindingsQuery<TTarget>): ReadonlyMap<string, readonly ActiveBinding<TTarget, TEvent>[]>;
|
|
39
21
|
acquireResource(key: symbol, setup: () => () => void): () => void;
|
|
40
|
-
runCommand(cmd: string, options?: RunCommandOptions<TTarget, TEvent>): RunCommandResult
|
|
41
|
-
dispatchCommand(cmd: string, options?: RunCommandOptions<TTarget, TEvent>): RunCommandResult
|
|
22
|
+
runCommand(cmd: string, options?: RunCommandOptions<TTarget, TEvent>): RunCommandResult<TTarget, TEvent>;
|
|
23
|
+
dispatchCommand(cmd: string, options?: RunCommandOptions<TTarget, TEvent>): RunCommandResult<TTarget, TEvent>;
|
|
42
24
|
on(name: "state", fn: Listener<Events<TTarget, TEvent>["state"]>): () => void;
|
|
43
25
|
on(name: "pendingSequence", fn: Listener<Events<TTarget, TEvent>["pendingSequence"]>): () => void;
|
|
26
|
+
on(name: "dispatch", fn: Listener<Events<TTarget, TEvent>["dispatch"]>): () => void;
|
|
44
27
|
on(name: "warning", fn: Listener<Events<TTarget, TEvent>["warning"]>): () => void;
|
|
45
28
|
on(name: "error", fn: Listener<Events<TTarget, TEvent>["error"]>): () => void;
|
|
46
29
|
intercept(name: "key", fn: (ctx: KeyInputContext<TEvent>) => void, options?: KeyInterceptOptions): () => void;
|
|
30
|
+
intercept(name: "key:after", fn: (ctx: KeyAfterInputContext<TTarget, TEvent>) => void, options?: KeyInterceptOptions): () => void;
|
|
47
31
|
intercept(name: "raw", fn: (ctx: RawInputContext) => void, options?: RawInterceptOptions): () => void;
|
|
48
32
|
registerLayer(layer: Layer<TTarget, TEvent>): () => void;
|
|
49
33
|
registerLayerFields(fields: Record<string, LayerFieldCompiler>): () => void;
|
|
@@ -53,10 +37,14 @@ export declare class Keymap<TTarget extends object, TEvent extends KeymapEvent =
|
|
|
53
37
|
prependBindingTransformer(transformer: BindingTransformer<TTarget, TEvent>): () => void;
|
|
54
38
|
appendBindingTransformer(transformer: BindingTransformer<TTarget, TEvent>): () => void;
|
|
55
39
|
clearBindingTransformers(): void;
|
|
40
|
+
prependCommandTransformer(transformer: CommandTransformer<TTarget, TEvent>): () => void;
|
|
41
|
+
appendCommandTransformer(transformer: CommandTransformer<TTarget, TEvent>): () => void;
|
|
42
|
+
clearCommandTransformers(): void;
|
|
56
43
|
prependBindingParser(parser: BindingParser): () => void;
|
|
57
44
|
appendBindingParser(parser: BindingParser): () => void;
|
|
58
45
|
clearBindingParsers(): void;
|
|
59
46
|
registerToken(token: KeyToken): () => void;
|
|
47
|
+
registerSequencePattern(pattern: SequencePattern<TEvent>): () => void;
|
|
60
48
|
prependBindingExpander(expander: BindingExpander): () => void;
|
|
61
49
|
appendBindingExpander(expander: BindingExpander): () => void;
|
|
62
50
|
clearBindingExpanders(): void;
|
|
@@ -74,8 +62,4 @@ export declare class Keymap<TTarget extends object, TEvent extends KeymapEvent =
|
|
|
74
62
|
prependDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void;
|
|
75
63
|
appendDisambiguationResolver(resolver: KeyDisambiguationResolver<TTarget, TEvent>): () => void;
|
|
76
64
|
clearDisambiguationResolvers(): void;
|
|
77
|
-
private handleFocusedTargetChange;
|
|
78
|
-
private warnUnknownField;
|
|
79
|
-
private warnUnknownToken;
|
|
80
|
-
private releaseResource;
|
|
81
65
|
}
|
package/src/lib/emitter.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export type EmitterListener<TValue> = [TValue] extends [void] ? () => void : (value: TValue) => void;
|
|
2
2
|
type EmitterArgs<TValue> = [TValue] extends [void] ? [] : [TValue];
|
|
3
3
|
export declare class Emitter<TEvents extends Record<string, unknown>> {
|
|
4
|
-
private
|
|
5
|
-
private listeners;
|
|
4
|
+
#private;
|
|
6
5
|
constructor(onError: (name: keyof TEvents, error: unknown) => void);
|
|
7
6
|
hook<TName extends keyof TEvents>(name: TName, listener: EmitterListener<TEvents[TName]>): () => void;
|
|
8
7
|
has<TName extends keyof TEvents>(name: TName): boolean;
|
package/src/lib/registry.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type PriorityRegistration<TListener, TOptions extends {
|
|
|
5
5
|
order: number;
|
|
6
6
|
}>;
|
|
7
7
|
declare abstract class CopyOnWriteRegistry<TValue> {
|
|
8
|
-
private
|
|
8
|
+
#private;
|
|
9
9
|
protected getItems(): readonly TValue[];
|
|
10
10
|
protected setItems(items: readonly TValue[]): void;
|
|
11
11
|
protected removeItem(value: TValue): boolean;
|
|
@@ -21,7 +21,7 @@ export declare class OrderedRegistry<TValue> extends CopyOnWriteRegistry<TValue>
|
|
|
21
21
|
export declare class PriorityRegistry<TListener, TOptions extends {
|
|
22
22
|
priority: number;
|
|
23
23
|
}> extends CopyOnWriteRegistry<PriorityRegistration<TListener, TOptions>> {
|
|
24
|
-
private
|
|
24
|
+
#private;
|
|
25
25
|
register(listener: TListener, options: TOptions): () => void;
|
|
26
26
|
entries(): readonly PriorityRegistration<TListener, TOptions>[];
|
|
27
27
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export type RuntimeEmitterListener<TValue> = [TValue] extends [void] ? () => void : (value: TValue) => void;
|
|
2
|
+
type RuntimeEmitterArgs<TValue> = [TValue] extends [void] ? [] : [TValue];
|
|
3
|
+
export interface RuntimeEmitter<TEvents extends Record<string, unknown>> {
|
|
4
|
+
hook<TName extends keyof TEvents>(name: TName, listener: RuntimeEmitterListener<TEvents[TName]>): () => void;
|
|
5
|
+
has<TName extends keyof TEvents>(name: TName): boolean;
|
|
6
|
+
emit<TName extends keyof TEvents>(name: TName, ...args: RuntimeEmitterArgs<TEvents[TName]>): void;
|
|
7
|
+
}
|
|
8
|
+
export declare function createRuntimeEmitter<TEvents extends Record<string, unknown>>(onError: (name: keyof TEvents, error: unknown) => void): RuntimeEmitter<TEvents>;
|
|
9
|
+
export type RuntimePriorityRegistration<TListener, TOptions extends {
|
|
10
|
+
priority: number;
|
|
11
|
+
}> = Readonly<TOptions & {
|
|
12
|
+
listener: TListener;
|
|
13
|
+
order: number;
|
|
14
|
+
}>;
|
|
15
|
+
export interface RuntimeOrderedRegistry<TValue> {
|
|
16
|
+
append(value: TValue): () => void;
|
|
17
|
+
prepend(value: TValue): () => void;
|
|
18
|
+
values(): readonly TValue[];
|
|
19
|
+
has(): boolean;
|
|
20
|
+
clear(): void;
|
|
21
|
+
}
|
|
22
|
+
export interface RuntimePriorityRegistry<TListener, TOptions extends {
|
|
23
|
+
priority: number;
|
|
24
|
+
}> {
|
|
25
|
+
register(listener: TListener, options: TOptions): () => void;
|
|
26
|
+
entries(): readonly RuntimePriorityRegistration<TListener, TOptions>[];
|
|
27
|
+
has(): boolean;
|
|
28
|
+
clear(): void;
|
|
29
|
+
}
|
|
30
|
+
export declare function createRuntimeOrderedRegistry<TValue>(): RuntimeOrderedRegistry<TValue>;
|
|
31
|
+
export declare function createRuntimePriorityRegistry<TListener, TOptions extends {
|
|
32
|
+
priority: number;
|
|
33
|
+
}>(): RuntimePriorityRegistry<TListener, TOptions>;
|
|
34
|
+
export {};
|
package/src/opentui.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { KeyEvent, type CliRenderer, type Renderable } from "@opentui/core";
|
|
2
|
-
import { Keymap } from "
|
|
3
|
-
import type { KeymapHost } from "./types.js";
|
|
4
|
-
export * from "./index.js";
|
|
2
|
+
import { Keymap, type KeymapHost } from "@opentui/keymap";
|
|
5
3
|
export declare function createOpenTuiKeymapHost(renderer: CliRenderer): KeymapHost<Renderable, KeyEvent>;
|
|
6
4
|
export declare function createOpenTuiKeymap(renderer: CliRenderer): Keymap<Renderable, KeyEvent>;
|
|
7
5
|
export declare function createDefaultOpenTuiKeymap(renderer: CliRenderer): Keymap<Renderable, KeyEvent>;
|