@opentui/keymap 0.2.1 → 0.2.2

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/src/types.d.ts CHANGED
@@ -91,6 +91,7 @@ export interface KeySequencePart {
91
91
  }
92
92
  export interface StringifyOptions {
93
93
  preferDisplay?: boolean;
94
+ separator?: string;
94
95
  }
95
96
  export type KeyStringifyInput = KeyStrokeInput | NormalizedKeyStroke | KeySequencePart | {
96
97
  stroke: NormalizedKeyStroke;
@@ -116,6 +117,11 @@ export interface CommandQuery<TTarget extends object = object> {
116
117
  searchIn?: readonly string[];
117
118
  filter?: CommandFilter;
118
119
  }
120
+ export interface CommandBindingsQuery<TTarget extends object = object> {
121
+ visibility?: "reachable" | "active" | "registered";
122
+ focused?: TTarget | null;
123
+ commands: readonly string[];
124
+ }
119
125
  export interface RunCommandOptions<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {
120
126
  event?: TEvent;
121
127
  focused?: TTarget | null;
@@ -167,8 +173,7 @@ export interface BindingInput<TTarget extends object = object, TEvent extends Ke
167
173
  fallthrough?: boolean;
168
174
  [key: string]: unknown;
169
175
  }
170
- export type BindingShorthand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Record<string, BindingCommand<TTarget, TEvent>>;
171
- export type Bindings<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = BindingInput<TTarget, TEvent>[] | BindingShorthand<TTarget, TEvent>;
176
+ export type Bindings<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = readonly BindingInput<TTarget, TEvent>[];
172
177
  export type TargetMode = "focus" | "focus-within";
173
178
  export interface LayerFields<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {
174
179
  priority?: number;
@@ -362,6 +367,17 @@ export interface BindingTransformerContext<TTarget extends object = object, TEve
362
367
  skipOriginal(): void;
363
368
  }
364
369
  export type BindingTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (binding: ParsedBindingInput<TTarget, TEvent>, ctx: BindingTransformerContext<TTarget, TEvent>) => void;
370
+ export type BindingInputsValidationResult = {
371
+ ok: true;
372
+ } | {
373
+ ok: false;
374
+ reason: string;
375
+ };
376
+ export interface LayerBindingsTransformerContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {
377
+ layer: Readonly<Layer<TTarget, TEvent>>;
378
+ validateBindings(bindings: unknown): BindingInputsValidationResult;
379
+ }
380
+ export type LayerBindingsTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (bindings: readonly BindingInput<TTarget, TEvent>[], ctx: LayerBindingsTransformerContext<TTarget, TEvent>) => readonly BindingInput<TTarget, TEvent>[] | void;
365
381
  export interface CommandFieldContext {
366
382
  require(name: string, value: unknown): void;
367
383
  attr(name: string, value: unknown): void;
File without changes
File without changes