@opentui/keymap 0.2.4 → 0.2.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/README.md CHANGED
@@ -46,7 +46,7 @@ It models keybindings as priority-ordered, focus-scoped layers attached to targe
46
46
  - `@opentui/keymap/opentui` — OpenTUI adapter
47
47
  - `@opentui/keymap/react` — `KeymapProvider`, `useKeymap`, `useBindings`, `useActiveKeys`, `usePendingSequence`, `reactiveMatcherFromStore`
48
48
  - `@opentui/keymap/solid` — `KeymapProvider`, `useKeymap`, `useKeymapSelector`, `useBindings`, `reactiveMatcherFromSignal`
49
- - `@opentui/keymap/extras` — helpers for cheat-sheet UIs (`resolveBindingSections`, `commandBindings`, `formatCommandBindings`)
49
+ - `@opentui/keymap/extras` — helpers for cheat-sheet UIs (`createBindingLookup`, `commandBindings`, `formatCommandBindings`)
50
50
 
51
51
  ## Usage
52
52
 
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "src/index.js",
5
5
  "types": "src/index.d.ts",
6
6
  "type": "module",
7
- "version": "0.2.4",
7
+ "version": "0.2.6",
8
8
  "description": "Standalone keymap package for OpenTUI",
9
9
  "license": "MIT",
10
10
  "repository": {
@@ -70,7 +70,7 @@
70
70
  }
71
71
  },
72
72
  "dependencies": {
73
- "@opentui/core": "0.2.4"
73
+ "@opentui/core": "0.2.6"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@opentui/react": "workspace:*",
@@ -83,8 +83,8 @@
83
83
  "typescript": "^5"
84
84
  },
85
85
  "peerDependencies": {
86
- "@opentui/react": "0.2.4",
87
- "@opentui/solid": "0.2.4",
86
+ "@opentui/react": "0.2.6",
87
+ "@opentui/solid": "0.2.6",
88
88
  "react": ">=19.2.0",
89
89
  "solid-js": "1.9.12"
90
90
  },
@@ -926,10 +926,25 @@ function registerExCommands(keymap) {
926
926
  });
927
927
  }
928
928
  // src/addons/universal/leader.ts
929
+ function isLeaderTriggerArray(trigger) {
930
+ return Array.isArray(trigger);
931
+ }
932
+ function resolveLeaderTrigger(trigger) {
933
+ if (isLeaderTriggerArray(trigger)) {
934
+ if (trigger.length !== 1) {
935
+ throw new Error("Invalid leader trigger: expected exactly one binding");
936
+ }
937
+ return trigger[0].key;
938
+ }
939
+ if (typeof trigger === "object" && "key" in trigger) {
940
+ return trigger.key;
941
+ }
942
+ return trigger;
943
+ }
929
944
  function registerLeader(keymap, options) {
930
945
  return keymap.registerToken({
931
946
  name: options.name ?? "leader",
932
- key: options.trigger
947
+ key: resolveLeaderTrigger(options.trigger)
933
948
  });
934
949
  }
935
950
  // src/addons/universal/metadata.ts
@@ -1024,7 +1039,8 @@ function registerNeovimDisambiguation(keymap, options) {
1024
1039
  }
1025
1040
  // src/addons/universal/timed-leader.ts
1026
1041
  function registerTimedLeader(keymap, options) {
1027
- const matchesTrigger = keymap.createKeyMatcher(options.trigger);
1042
+ const trigger = resolveLeaderTrigger(options.trigger);
1043
+ const matchesTrigger = keymap.createKeyMatcher(trigger);
1028
1044
  const timeoutMs = options.timeoutMs ?? 1500;
1029
1045
  let armed = false;
1030
1046
  let timeout;
@@ -1058,7 +1074,7 @@ function registerTimedLeader(keymap, options) {
1058
1074
  }
1059
1075
  options.onDisarm?.();
1060
1076
  };
1061
- const offLeader = registerLeader(keymap, options);
1077
+ const offLeader = registerLeader(keymap, { name: options.name, trigger });
1062
1078
  const offPendingSequenceChange = keymap.on("pendingSequence", (sequence) => {
1063
1079
  syncArmedState(sequence);
1064
1080
  });
@@ -1126,5 +1142,5 @@ export {
1126
1142
  defaultBindingParser
1127
1143
  };
1128
1144
 
1129
- //# debugId=BC9676433CEF75A964756E2164756E21
1145
+ //# debugId=B4CAEF1C45EFD05564756E2164756E21
1130
1146
  //# sourceMappingURL=index.js.map
@@ -12,14 +12,14 @@
12
12
  "import type { Keymap, KeymapEvent, ReactiveMatcher } from \"../../index.js\"\n\nconst ENABLED_FIELDS_RESOURCE = Symbol(\"keymap:enabled-fields\")\n\n/**\n * Accepted `enabled` values: boolean, raw `() => boolean`, or an\n * `ReactiveMatcher` for subscription-driven invalidation.\n */\nexport type Enabled = boolean | (() => boolean) | ReactiveMatcher\n\nfunction isReactiveMatcher(value: unknown): value is ReactiveMatcher {\n if (!value || typeof value !== \"object\") {\n return false\n }\n\n const candidate = value as { get?: unknown; subscribe?: unknown }\n return typeof candidate.get === \"function\" && typeof candidate.subscribe === \"function\"\n}\n\nfunction normalizeEnabledValue(fieldName: string, value: unknown): Enabled {\n if (typeof value === \"boolean\") {\n return value\n }\n\n if (typeof value === \"function\") {\n return value as () => boolean\n }\n\n if (isReactiveMatcher(value)) {\n return value\n }\n\n throw new Error(`Keymap enabled field \"${fieldName}\" must be a boolean, a function, or a reactive matcher`)\n}\n\n/**\n * Adds `enabled` layer and command fields for boolean, callback, or reactive\n * matcher gating.\n */\nexport function registerEnabledFields<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n): () => void {\n return keymap.acquireResource(ENABLED_FIELDS_RESOURCE, () => {\n const offLayerFields = keymap.registerLayerFields({\n enabled(value, ctx) {\n const normalized = normalizeEnabledValue(\"enabled\", value)\n if (normalized === true) {\n return\n }\n\n if (normalized === false) {\n ctx.activeWhen(() => false)\n return\n }\n\n ctx.activeWhen(normalized)\n },\n })\n\n const offCommandFields = keymap.registerCommandFields({\n enabled(value, ctx) {\n const normalized = normalizeEnabledValue(\"enabled\", value)\n if (normalized === true) {\n return\n }\n\n if (normalized === false) {\n ctx.activeWhen(() => false)\n return\n }\n\n ctx.activeWhen(normalized)\n },\n })\n\n return () => {\n offCommandFields()\n offLayerFields()\n }\n })\n}\n",
13
13
  "import type { BindingParser, BindingParserContext, Keymap, KeymapEvent, KeySequencePart } from \"../../index.js\"\n\nconst EMACS_BINDINGS_RESOURCE = Symbol(\"keymap:emacs-bindings\")\n\n/**\n * Example Emacs-style chord parsing.\n *\n * This is included as a sample addon and may not be a complete or accurate\n * representation of Emacs binding syntax.\n */\n\nfunction parseEmacsStroke(\n input: string,\n sequence: string,\n parseObjectKey: BindingParserContext[\"parseObjectKey\"],\n): KeySequencePart {\n const parts = input.split(\"+\")\n let name = \"\"\n let ctrl = false\n let shift = false\n let meta = false\n let superKey = false\n let hyper = false\n\n for (const rawPart of parts) {\n const part = rawPart.trim()\n if (!part) {\n continue\n }\n\n const lowered = part.toLowerCase()\n if (lowered === \"ctrl\" || lowered === \"control\") {\n ctrl = true\n continue\n }\n\n if (lowered === \"shift\") {\n shift = true\n continue\n }\n\n if (lowered === \"meta\" || lowered === \"alt\" || lowered === \"option\") {\n meta = true\n continue\n }\n\n if (lowered === \"super\") {\n superKey = true\n continue\n }\n\n if (lowered === \"hyper\") {\n hyper = true\n continue\n }\n\n if (name) {\n throw new Error(`Invalid emacs key sequence \"${sequence}\": stroke \"${input}\" contains multiple key names`)\n }\n\n name = part\n }\n\n if (!name) {\n throw new Error(`Invalid emacs key sequence \"${sequence}\": stroke \"${input}\" is missing a key name`)\n }\n\n return parseObjectKey({\n name,\n ctrl,\n shift,\n meta,\n super: superKey,\n hyper: hyper || undefined,\n })\n}\n\nfunction parseEmacsSequence(\n input: string,\n parseObjectKey: BindingParserContext[\"parseObjectKey\"],\n): KeySequencePart[] | undefined {\n const strokes = input.trim().split(/\\s+/).filter(Boolean)\n\n if (strokes.length <= 1) {\n return undefined\n }\n\n if (!strokes.some((stroke) => stroke.includes(\"+\"))) {\n return undefined\n }\n\n return strokes.map((stroke) => parseEmacsStroke(stroke, input, parseObjectKey))\n}\n\n/**\n * Parses Emacs-style space-separated chords such as `ctrl+x ctrl+s`.\n */\nexport function registerEmacsBindings<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n): () => void {\n return keymap.acquireResource(EMACS_BINDINGS_RESOURCE, () => {\n const parseEmacsBinding: BindingParser = ({ input, index, parseObjectKey }) => {\n const parsed = parseEmacsSequence(input, parseObjectKey)\n if (!parsed || index !== 0) {\n return undefined\n }\n\n return {\n parts: parsed,\n nextIndex: input.length,\n }\n }\n\n return keymap.prependBindingParser(parseEmacsBinding)\n })\n}\n",
14
14
  "import type { CommandContext, Command, CommandResult, Keymap, KeymapEvent, ParsedCommand } from \"../../index.js\"\n\nconst EX_COMMANDS_RESOURCE = Symbol(\"keymap:ex-commands\")\n\nexport interface ExCommandPayload {\n raw: string\n args: readonly string[]\n payload?: unknown\n}\n\nexport interface ExCommand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n name: string\n aliases?: string[]\n nargs?: \"0\" | \"1\" | \"?\" | \"*\" | \"+\"\n run: (ctx: CommandContext<TTarget, TEvent, ExCommandPayload>) => CommandResult<TTarget, TEvent>\n [key: string]: unknown\n}\n\nfunction isExCommandPayload(value: unknown): value is ExCommandPayload {\n if (!value || typeof value !== \"object\") {\n return false\n }\n\n const candidate = value as { raw?: unknown; args?: unknown }\n return typeof candidate.raw === \"string\" && Array.isArray(candidate.args)\n}\n\nfunction getExCommandPayload(input: string, payload: unknown): ExCommandPayload {\n if (isExCommandPayload(payload)) {\n return payload\n }\n\n return { raw: input, args: [], payload }\n}\n\nfunction normalizeExCommandName(name: string): string {\n const normalized = name.trim()\n if (!normalized) {\n throw new Error(\"Invalid keymap command name: name cannot be empty\")\n }\n\n if (/\\s/.test(normalized)) {\n throw new Error(`Invalid keymap command name \"${name}\": command names cannot contain whitespace`)\n }\n\n if (normalized.startsWith(\":\")) {\n return normalized\n }\n\n return `:${normalized}`\n}\n\nfunction normalizeExCommandAliases(value: unknown): string[] {\n if (!Array.isArray(value)) {\n throw new Error('Keymap ex-command field \"aliases\" must be an array of command names')\n }\n\n const aliases: string[] = []\n for (const alias of value) {\n if (typeof alias !== \"string\") {\n throw new Error('Keymap ex-command field \"aliases\" must only contain command names')\n }\n\n aliases.push(alias)\n }\n\n return aliases\n}\n\nfunction normalizeExCommandNargs(value: unknown): ExCommand[\"nargs\"] {\n if (value === \"0\" || value === \"1\" || value === \"?\" || value === \"*\" || value === \"+\") {\n return value\n }\n\n throw new Error('Keymap ex-command field \"nargs\" must be \"0\", \"1\", \"?\", \"*\", or \"+\"')\n}\n\nfunction getExCommandAliases<TTarget extends object, TEvent extends KeymapEvent>(\n command: Command<TTarget, TEvent>,\n): readonly string[] {\n const aliases = command.aliases\n if (aliases === undefined) {\n return []\n }\n\n return normalizeExCommandAliases(aliases)\n}\n\nfunction isExCommand<TTarget extends object, TEvent extends KeymapEvent>(command: Command<TTarget, TEvent>): boolean {\n return command.name.trim().startsWith(\":\") || command.namespace === \"excommands\"\n}\n\nfunction parseCommandInput(input: string): ParsedCommand {\n const trimmed = input.trim()\n if (!trimmed) {\n throw new Error(\"Invalid keymap command: command cannot be empty\")\n }\n\n const parts = trimmed.split(/\\s+/)\n const [name, ...args] = parts\n if (!name) {\n throw new Error(`Invalid keymap command \"${input}\"`)\n }\n\n return {\n input: trimmed,\n name,\n args,\n }\n}\n\nfunction validateCommandArgs<TTarget extends object, TEvent extends KeymapEvent>(\n command: Command<TTarget, TEvent>,\n args: readonly unknown[],\n): boolean {\n if (command.nargs === undefined) {\n return true\n }\n\n const nargs = normalizeExCommandNargs(command.nargs)\n const count = args.length\n if (nargs === \"0\") {\n return count === 0\n }\n\n if (nargs === \"1\") {\n return count === 1\n }\n\n if (nargs === \"?\") {\n return count <= 1\n }\n\n if (nargs === \"*\") {\n return true\n }\n\n if (nargs === \"+\") {\n return count >= 1\n }\n\n return true\n}\n\nfunction createExCommandRegistration<TTarget extends object, TEvent extends KeymapEvent>(\n command: Command<TTarget, TEvent>,\n name: string,\n): Command<TTarget, TEvent, ExCommandPayload> {\n const run = command.run\n\n return {\n ...command,\n name,\n namespace: \"excommands\",\n run(ctx) {\n const payload = getExCommandPayload(ctx.input, ctx.payload)\n\n if (!validateCommandArgs(command, payload.args)) {\n return { ok: false, reason: \"invalid-args\" }\n }\n\n return run({\n ...ctx,\n command: ctx.command!,\n payload,\n })\n },\n }\n}\n\n/**\n * Installs Ex command support. Ex commands are registered through normal\n * keymap layers by using a colon-prefixed command name or\n * `namespace: \"excommands\"`.\n */\nexport function registerExCommands<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n): () => void {\n return keymap.acquireResource(EX_COMMANDS_RESOURCE, () => {\n const offFields = keymap.registerCommandFields({\n aliases(value) {\n normalizeExCommandAliases(value)\n },\n nargs(value) {\n normalizeExCommandNargs(value)\n },\n })\n\n const offTransformer = keymap.appendCommandTransformer((command, ctx) => {\n if (!isExCommand(command)) {\n return\n }\n\n ctx.skipOriginal()\n\n if (command.nargs !== undefined) {\n normalizeExCommandNargs(command.nargs)\n }\n\n const names = [command.name, ...getExCommandAliases(command)].map((name) => normalizeExCommandName(name))\n for (const name of names) {\n ctx.add(createExCommandRegistration(command, name))\n }\n })\n\n const offResolver = keymap.appendCommandResolver((input, ctx) => {\n if (!input.startsWith(\":\")) {\n return undefined\n }\n\n const parsed = parseCommandInput(input)\n const normalizedName = normalizeExCommandName(parsed.name)\n const command = ctx.getCommand(normalizedName)\n\n if (!command) {\n return undefined\n }\n\n ctx.setInput(parsed.input)\n ctx.setPayload({ raw: parsed.input, args: parsed.args, payload: ctx.payload } satisfies ExCommandPayload)\n return command\n })\n\n return () => {\n offResolver()\n offTransformer()\n offFields()\n }\n })\n}\n",
15
- "import type { KeyLike, Keymap, KeymapEvent } from \"../../index.js\"\n\nexport interface LeaderOptions {\n trigger: KeyLike\n name?: string\n}\n\n/**\n * Defines a token such as `leader` that the default parser can reference as `<leader>`.\n */\nexport function registerLeader<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n options: LeaderOptions,\n): () => void {\n return keymap.registerToken({\n name: options.name ?? \"leader\",\n key: options.trigger,\n })\n}\n",
15
+ "import type { KeyLike, Keymap, KeymapEvent } from \"../../index.js\"\n\nexport type LeaderTrigger = KeyLike | Readonly<{ key: KeyLike }> | readonly Readonly<{ key: KeyLike }>[]\n\nexport interface LeaderOptions {\n trigger: LeaderTrigger\n name?: string\n}\n\nfunction isLeaderTriggerArray(trigger: LeaderTrigger): trigger is readonly Readonly<{ key: KeyLike }>[] {\n return Array.isArray(trigger)\n}\n\nexport function resolveLeaderTrigger(trigger: LeaderTrigger): KeyLike {\n if (isLeaderTriggerArray(trigger)) {\n if (trigger.length !== 1) {\n throw new Error(\"Invalid leader trigger: expected exactly one binding\")\n }\n\n return trigger[0]!.key\n }\n\n if (typeof trigger === \"object\" && \"key\" in trigger) {\n return trigger.key\n }\n\n return trigger\n}\n\n/**\n * Defines a token such as `leader` that the default parser can reference as `<leader>`.\n */\nexport function registerLeader<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n options: LeaderOptions,\n): () => void {\n return keymap.registerToken({\n name: options.name ?? \"leader\",\n key: resolveLeaderTrigger(options.trigger),\n })\n}\n",
16
16
  "import type { Keymap, KeymapEvent } from \"../../index.js\"\n\nconst METADATA_FIELDS_RESOURCE = Symbol(\"keymap:metadata-fields\")\n\nfunction normalizeMetadataText(fieldName: string, value: unknown): string {\n if (typeof value !== \"string\") {\n throw new Error(`Keymap metadata field \"${fieldName}\" must be a string`)\n }\n\n const trimmed = value.trim()\n if (!trimmed) {\n throw new Error(`Keymap metadata field \"${fieldName}\" cannot be empty`)\n }\n\n return trimmed\n}\n\n/**\n * Maps `desc`, `group`, `title`, and `category` fields into binding and\n * command attrs.\n *\n * This addon only registers binding and command field compilers. Apps can\n * register layer metadata fields directly with `registerLayerFields`.\n */\nexport function registerMetadataFields<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n): () => void {\n return keymap.acquireResource(METADATA_FIELDS_RESOURCE, () => {\n const offBindingFields = keymap.registerBindingFields({\n desc(value, ctx) {\n ctx.attr(\"desc\", normalizeMetadataText(\"desc\", value))\n },\n group(value, ctx) {\n ctx.attr(\"group\", normalizeMetadataText(\"group\", value))\n },\n })\n\n const offCommandFields = keymap.registerCommandFields({\n desc(value, ctx) {\n ctx.attr(\"desc\", normalizeMetadataText(\"desc\", value))\n },\n title(value, ctx) {\n ctx.attr(\"title\", normalizeMetadataText(\"title\", value))\n },\n category(value, ctx) {\n ctx.attr(\"category\", normalizeMetadataText(\"category\", value))\n },\n })\n\n return () => {\n offCommandFields()\n offBindingFields()\n }\n })\n}\n",
17
17
  "import type { BindingExpander, HostMetadata, Keymap, KeymapEvent } from \"../../index.js\"\n\nconst MOD_BINDINGS_RESOURCE = Symbol(\"keymap:mod-bindings\")\n\nconst MOD_MODIFIER_PATTERN = /(^|[+,\\s])mod(?=\\s*\\+)/i\nconst MOD_MODIFIER_REPLACE_PATTERN = /(^|[+,\\s])mod(?=\\s*\\+)/gi\n\nfunction resolveModModifier(metadata: Readonly<HostMetadata>): \"ctrl\" | \"super\" {\n const primary = metadata.primaryModifier\n if ((primary === \"ctrl\" || primary === \"super\") && metadata.modifiers[primary] !== \"unsupported\") {\n return primary\n }\n\n if (metadata.modifiers.ctrl !== \"unsupported\") {\n return \"ctrl\"\n }\n\n return \"super\"\n}\n\nfunction createDisplays(input: string): readonly string[] {\n if (input.includes(\",\")) {\n return [input]\n }\n\n const trimmed = input.trim()\n return trimmed.includes(\" \") ? trimmed.split(/\\s+/) : [input]\n}\n\n/**\n * Adds a platform-aware `mod+...` modifier alias. `mod` resolves to the host's\n * primary modifier, with `ctrl` as the fallback when the host is unknown.\n */\nexport function registerModBindings<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n): () => void {\n return keymap.acquireResource(MOD_BINDINGS_RESOURCE, () => {\n const expandModBinding: BindingExpander = ({ input, displays }) => {\n if (!MOD_MODIFIER_PATTERN.test(input)) {\n return undefined\n }\n\n const modifier = resolveModModifier(keymap.getHostMetadata())\n return [\n {\n key: input.replace(MOD_MODIFIER_REPLACE_PATTERN, (_match, prefix: string) => `${prefix}${modifier}`),\n displays: displays ?? createDisplays(input),\n },\n ]\n }\n\n return keymap.appendBindingExpander(expandModBinding)\n })\n}\n",
18
18
  "import type { Keymap, KeymapEvent } from \"../../index.js\"\n\nexport interface NeovimDisambiguationOptions {\n timeoutMs?: number\n}\n\n/**\n * Defers ambiguous exact-vs-prefix bindings and runs the exact binding if no\n * continuation arrives before the timeout, matching Neovim-style timeout-based\n * disambiguation.\n */\nexport function registerNeovimDisambiguation<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n options?: NeovimDisambiguationOptions,\n): () => void {\n const timeoutMs = options?.timeoutMs ?? 300\n\n return keymap.appendDisambiguationResolver((ctx) => {\n return ctx.defer(async (deferred) => {\n const elapsed = await deferred.sleep(timeoutMs)\n if (!elapsed) {\n return\n }\n\n return deferred.runExact()\n })\n })\n}\n",
19
- "import type { Keymap, KeymapEvent, KeySequencePart } from \"../../index.js\"\nimport { registerLeader, type LeaderOptions } from \"./leader.js\"\n\nexport interface TimedLeaderOptions extends LeaderOptions {\n timeoutMs?: number\n onArm?: () => void\n onDisarm?: () => void\n}\n\n/**\n * Defines a leader token and clears it if no follow-up key arrives before the\n * timeout.\n */\nexport function registerTimedLeader<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n options: TimedLeaderOptions,\n): () => void {\n const matchesTrigger = keymap.createKeyMatcher(options.trigger)\n const timeoutMs = options.timeoutMs ?? 1500\n\n let armed = false\n let timeout: ReturnType<typeof setTimeout> | undefined\n\n const clearTimer = (): void => {\n if (!timeout) {\n return\n }\n\n clearTimeout(timeout)\n timeout = undefined\n }\n\n const scheduleTimeout = (): void => {\n clearTimer()\n timeout = setTimeout(() => {\n keymap.clearPendingSequence()\n }, timeoutMs)\n }\n\n const syncArmedState = (sequence: readonly KeySequencePart[]): void => {\n const nextArmed = matchesTrigger(sequence[0])\n if (nextArmed) {\n scheduleTimeout()\n } else {\n clearTimer()\n }\n\n if (nextArmed === armed) {\n return\n }\n\n armed = nextArmed\n if (armed) {\n options.onArm?.()\n return\n }\n\n options.onDisarm?.()\n }\n\n const offLeader = registerLeader(keymap, options)\n const offPendingSequenceChange = keymap.on(\"pendingSequence\", (sequence) => {\n syncArmedState(sequence)\n })\n syncArmedState(keymap.getPendingSequence())\n\n const dispose = (): void => {\n clearTimer()\n offPendingSequenceChange()\n offLeader()\n\n if (!armed) {\n return\n }\n\n armed = false\n options.onDisarm?.()\n }\n\n return dispose\n}\n",
19
+ "import type { Keymap, KeymapEvent, KeySequencePart } from \"../../index.js\"\nimport { registerLeader, resolveLeaderTrigger, type LeaderOptions } from \"./leader.js\"\n\nexport interface TimedLeaderOptions extends LeaderOptions {\n timeoutMs?: number\n onArm?: () => void\n onDisarm?: () => void\n}\n\n/**\n * Defines a leader token and clears it if no follow-up key arrives before the\n * timeout.\n */\nexport function registerTimedLeader<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n options: TimedLeaderOptions,\n): () => void {\n const trigger = resolveLeaderTrigger(options.trigger)\n const matchesTrigger = keymap.createKeyMatcher(trigger)\n const timeoutMs = options.timeoutMs ?? 1500\n\n let armed = false\n let timeout: ReturnType<typeof setTimeout> | undefined\n\n const clearTimer = (): void => {\n if (!timeout) {\n return\n }\n\n clearTimeout(timeout)\n timeout = undefined\n }\n\n const scheduleTimeout = (): void => {\n clearTimer()\n timeout = setTimeout(() => {\n keymap.clearPendingSequence()\n }, timeoutMs)\n }\n\n const syncArmedState = (sequence: readonly KeySequencePart[]): void => {\n const nextArmed = matchesTrigger(sequence[0])\n if (nextArmed) {\n scheduleTimeout()\n } else {\n clearTimer()\n }\n\n if (nextArmed === armed) {\n return\n }\n\n armed = nextArmed\n if (armed) {\n options.onArm?.()\n return\n }\n\n options.onDisarm?.()\n }\n\n const offLeader = registerLeader(keymap, { name: options.name, trigger })\n const offPendingSequenceChange = keymap.on(\"pendingSequence\", (sequence) => {\n syncArmedState(sequence)\n })\n syncArmedState(keymap.getPendingSequence())\n\n const dispose = (): void => {\n clearTimer()\n offPendingSequenceChange()\n offLeader()\n\n if (!armed) {\n return\n }\n\n armed = false\n options.onDisarm?.()\n }\n\n return dispose\n}\n",
20
20
  "import { stringifyKeySequence, stringifyKeyStroke } from \"@opentui/keymap\"\nimport type { Keymap, KeymapEvent, LayerAnalysisContext, ParsedBinding } from \"@opentui/keymap\"\n\nconst UNRESOLVED_COMMAND_WARNINGS_RESOURCE = Symbol(\"keymap:unresolved-command-warnings\")\n\ninterface UnresolvedCommandWarning<TTarget extends object, TEvent extends KeymapEvent> {\n command: string\n binding: ParsedBinding<TTarget, TEvent>\n target?: TTarget\n}\n\nfunction warnUnresolvedCommand<TTarget extends object, TEvent extends KeymapEvent>(\n ctx: LayerAnalysisContext<TTarget, TEvent>,\n binding: LayerAnalysisContext<TTarget, TEvent>[\"bindings\"][number],\n): void {\n if (typeof binding.command !== \"string\") {\n return\n }\n\n if (ctx.checkCommandResolution(binding.command) !== \"unresolved\") {\n return\n }\n\n const sequence = stringifyKeySequence(binding.parsedBinding.sequence, { preferDisplay: true })\n const sourceKey =\n typeof binding.parsedBinding.key === \"string\"\n ? binding.parsedBinding.key\n : stringifyKeyStroke(binding.parsedBinding.key)\n const warning: UnresolvedCommandWarning<TTarget, TEvent> = {\n command: binding.command,\n binding: binding.parsedBinding,\n target: binding.sourceTarget,\n }\n\n ctx.warnOnce(\n `unresolved:${binding.sourceLayerOrder}:${binding.bindingIndex}:${binding.command}:${sourceKey}`,\n \"unresolved-command\",\n warning,\n `[Keymap] Unresolved command \"${binding.command}\" for binding \"${sequence}\"`,\n )\n}\n\n/**\n * Warns when a string command name cannot be resolved by registered commands\n * or resolvers.\n */\nexport function registerUnresolvedCommandWarnings<TTarget extends object, TEvent extends KeymapEvent>(\n keymap: Keymap<TTarget, TEvent>,\n): () => void {\n return keymap.acquireResource(UNRESOLVED_COMMAND_WARNINGS_RESOURCE, () => {\n return keymap.appendLayerAnalyzer((ctx) => {\n for (const binding of ctx.bindings) {\n warnUnresolvedCommand(ctx, binding)\n }\n })\n })\n}\n"
21
21
  ],
22
- "mappings": "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",
23
- "debugId": "BC9676433CEF75A964756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "B4CAEF1C45EFD05564756E2164756E21",
24
24
  "names": []
25
25
  }
@@ -19,6 +19,6 @@ export type { BackspacePopsPendingSequenceOptions } from "./backspace-pops-pendi
19
19
  export type { EscapeClearsPendingSequenceOptions } from "./escape-clears-pending-sequence.js";
20
20
  export type { Enabled } from "./enabled.js";
21
21
  export type { ExCommand, ExCommandPayload } from "./ex-commands.js";
22
- export type { LeaderOptions } from "./leader.js";
22
+ export type { LeaderOptions, LeaderTrigger } from "./leader.js";
23
23
  export type { NeovimDisambiguationOptions } from "./neovim-disambiguation.js";
24
24
  export type { TimedLeaderOptions } from "./timed-leader.js";
@@ -1,8 +1,14 @@
1
1
  import type { KeyLike, Keymap, KeymapEvent } from "../../index.js";
2
+ export type LeaderTrigger = KeyLike | Readonly<{
3
+ key: KeyLike;
4
+ }> | readonly Readonly<{
5
+ key: KeyLike;
6
+ }>[];
2
7
  export interface LeaderOptions {
3
- trigger: KeyLike;
8
+ trigger: LeaderTrigger;
4
9
  name?: string;
5
10
  }
11
+ export declare function resolveLeaderTrigger(trigger: LeaderTrigger): KeyLike;
6
12
  /**
7
13
  * Defines a token such as `leader` that the default parser can reference as `<leader>`.
8
14
  */
@@ -0,0 +1,25 @@
1
+ import type { Binding, KeyLike, KeymapEvent } from "../types.js";
2
+ export type BindingConfigItem<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = KeyLike | Binding<TTarget, TEvent>;
3
+ export type BindingValue<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = false | "none" | BindingConfigItem<TTarget, TEvent> | readonly BindingConfigItem<TTarget, TEvent>[];
4
+ export type BindingConfig<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Readonly<Record<string, BindingValue<TTarget, TEvent>>>;
5
+ export type BindingCommandMap = Readonly<Record<string, string>>;
6
+ export interface BindingDefaultsContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {
7
+ command: string;
8
+ binding: Readonly<Binding<TTarget, TEvent>>;
9
+ }
10
+ export type BindingDefaults<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (ctx: BindingDefaultsContext<TTarget, TEvent>) => Readonly<Record<string, unknown>> | void;
11
+ export interface CreateBindingLookupOptions<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {
12
+ commandMap?: BindingCommandMap;
13
+ bindingDefaults?: BindingDefaults<TTarget, TEvent>;
14
+ }
15
+ export interface BindingLookup<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {
16
+ readonly bindings: readonly Binding<TTarget, TEvent>[];
17
+ get(command: string): readonly Binding<TTarget, TEvent>[];
18
+ has(command: string): boolean;
19
+ gather(name: string, commands: readonly string[]): readonly Binding<TTarget, TEvent>[];
20
+ pick(name: string, commands: readonly string[]): Binding<TTarget, TEvent>[];
21
+ omit(name: string, commands: readonly string[]): Binding<TTarget, TEvent>[];
22
+ invalidate(name?: string): void;
23
+ update(config?: BindingConfig<TTarget, TEvent>): void;
24
+ }
25
+ export declare function createBindingLookup<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>(config: BindingConfig<TTarget, TEvent>, options?: CreateBindingLookupOptions<TTarget, TEvent>): BindingLookup<TTarget, TEvent>;
@@ -1,6 +1,6 @@
1
- export { resolveBindingSections } from "./binding-sections.js";
1
+ export { createBindingLookup } from "./binding-lookup.js";
2
2
  export { commandBindings } from "./command-bindings.js";
3
3
  export { formatCommandBindings, formatKeySequence } from "./formatting.js";
4
- export type { BindingSectionConfig, BindingSectionItem, BindingSectionsConfig, BindingValue, ResolveBindingSectionsOptions, ResolvedBindingSections, } from "./binding-sections.js";
4
+ export type { BindingConfig, BindingConfigItem, BindingCommandMap, BindingDefaults, BindingDefaultsContext, BindingLookup, BindingValue, CreateBindingLookupOptions, } from "./binding-lookup.js";
5
5
  export type { FormatCommandBindingsOptions, FormatKeySequenceOptions, KeySequenceFormatPart, KeyModifierName, SequenceBindingLike, TokenDisplayResolver, } from "./formatting.js";
6
6
  export type { CommandBindingMap, CommandBindingsOptions, CommandBindingsOverrideWarning, CommandBindingsError, } from "./command-bindings.js";
@@ -1,6 +1,7 @@
1
1
  // @bun
2
- // src/extras/binding-sections.ts
2
+ // src/extras/binding-lookup.ts
3
3
  var hasOwn = Object.prototype.hasOwnProperty;
4
+ var EMPTY_BINDINGS = Object.freeze([]);
4
5
  function isObject(value) {
5
6
  return !!value && typeof value === "object" && !Array.isArray(value);
6
7
  }
@@ -13,13 +14,33 @@ function cloneKeyLike(key) {
13
14
  }
14
15
  return { ...key };
15
16
  }
16
- function invalidBindingValue(section, command, index) {
17
- const location = index === undefined ? `"${section}.${command}"` : `"${section}.${command}" at index ${index}`;
17
+ function normalizeCommand(command) {
18
+ if (command.length === 0) {
19
+ throw new Error("Invalid binding command: command cannot be empty");
20
+ }
21
+ return command;
22
+ }
23
+ function mapCommand(command, commandMap) {
24
+ const configCommand = normalizeCommand(command);
25
+ if (!commandMap || !hasOwn.call(commandMap, configCommand)) {
26
+ return configCommand;
27
+ }
28
+ const mappedCommand = commandMap[configCommand];
29
+ if (typeof mappedCommand !== "string") {
30
+ throw new Error(`Invalid binding command map entry for "${configCommand}": expected a command string`);
31
+ }
32
+ if (mappedCommand.length === 0) {
33
+ throw new Error(`Invalid binding command map entry for "${configCommand}": command cannot be empty`);
34
+ }
35
+ return mappedCommand;
36
+ }
37
+ function invalidBindingValue(command, index) {
38
+ const location = index === undefined ? `"${command}"` : `"${command}" at index ${index}`;
18
39
  return new Error(`Invalid binding value for ${location}: expected false, a key, a binding object, or an array of keys/binding objects`);
19
40
  }
20
- function resolveBindingItem(section, command, item, index) {
41
+ function resolveBindingItem(command, item, index) {
21
42
  if (!isKeyLike(item)) {
22
- throw invalidBindingValue(section, command, index);
43
+ throw invalidBindingValue(command, index);
23
44
  }
24
45
  if (typeof item === "string" || !("key" in item)) {
25
46
  return {
@@ -29,7 +50,7 @@ function resolveBindingItem(section, command, item, index) {
29
50
  }
30
51
  const key = item.key;
31
52
  if (!isKeyLike(key)) {
32
- throw invalidBindingValue(section, command, index);
53
+ throw invalidBindingValue(command, index);
33
54
  }
34
55
  return {
35
56
  ...item,
@@ -37,7 +58,7 @@ function resolveBindingItem(section, command, item, index) {
37
58
  cmd: command
38
59
  };
39
60
  }
40
- function resolveBindingValue(section, command, value, bindingDefaults) {
61
+ function resolveBindingValue(command, value, bindingDefaults) {
41
62
  if (value === false || value === "none") {
42
63
  return;
43
64
  }
@@ -48,76 +69,97 @@ function resolveBindingValue(section, command, value, bindingDefaults) {
48
69
  const items = value;
49
70
  const bindings = new Array(items.length);
50
71
  for (let index = 0;index < items.length; index += 1) {
51
- const binding2 = resolveBindingItem(section, command, items[index], index);
52
- bindings[index] = bindingDefaults ? withBindingDefaults(section, command, binding2, bindingDefaults) : binding2;
72
+ const binding2 = resolveBindingItem(command, items[index], index);
73
+ bindings[index] = bindingDefaults ? withBindingDefaults(command, binding2, bindingDefaults) : binding2;
53
74
  }
54
75
  return bindings;
55
76
  }
56
- const binding = resolveBindingItem(section, command, value);
57
- return [bindingDefaults ? withBindingDefaults(section, command, binding, bindingDefaults) : binding];
77
+ const binding = resolveBindingItem(command, value);
78
+ return [bindingDefaults ? withBindingDefaults(command, binding, bindingDefaults) : binding];
58
79
  }
59
- function withBindingDefaults(section, command, binding, bindingDefaults) {
60
- const defaults = bindingDefaults?.({ section, command, binding });
80
+ function withBindingDefaults(command, binding, bindingDefaults) {
81
+ const defaults = bindingDefaults?.({ command, binding });
61
82
  if (!defaults)
62
83
  return binding;
63
84
  return { ...defaults, ...binding };
64
85
  }
65
- function resolveBindingSections(config, options) {
66
- const sections = {};
67
- const lookups = new Map;
68
- const bindingDefaults = options?.bindingDefaults;
69
- for (const section of options?.sections ?? []) {
70
- sections[section] = [];
71
- lookups.set(section, new Map);
86
+ function flattenBindings(byCommand) {
87
+ let bindingCount = 0;
88
+ for (const bindings of byCommand.values()) {
89
+ bindingCount += bindings.length;
72
90
  }
73
- for (const section in config) {
74
- if (!hasOwn.call(config, section)) {
75
- continue;
76
- }
77
- const sectionConfig = config[section];
78
- if (!isObject(sectionConfig)) {
79
- throw new Error(`Invalid binding section "${section}": expected an object`);
91
+ const result = new Array(bindingCount);
92
+ let bindingIndex = 0;
93
+ for (const bindings of byCommand.values()) {
94
+ for (let index = 0;index < bindings.length; index += 1) {
95
+ result[bindingIndex] = bindings[index];
96
+ bindingIndex += 1;
80
97
  }
81
- const sectionLookup = new Map;
82
- for (const rawCommand in sectionConfig) {
83
- if (!hasOwn.call(sectionConfig, rawCommand)) {
84
- continue;
85
- }
86
- const command = rawCommand.trim();
87
- const bindings = resolveBindingValue(section, command, sectionConfig[rawCommand], bindingDefaults);
88
- if (!bindings) {
89
- sectionLookup.delete(command);
90
- continue;
91
- }
92
- sectionLookup.set(command, bindings);
98
+ }
99
+ return result;
100
+ }
101
+ function normalizeBindings(config, commandMap, bindingDefaults) {
102
+ const byCommand = new Map;
103
+ for (const rawCommand in config) {
104
+ if (!hasOwn.call(config, rawCommand)) {
105
+ continue;
93
106
  }
94
- let sectionBindingCount = 0;
95
- for (const bindings of sectionLookup.values()) {
96
- sectionBindingCount += bindings.length;
107
+ const command = mapCommand(rawCommand, commandMap);
108
+ const commandBindings = resolveBindingValue(command, config[rawCommand], bindingDefaults);
109
+ if (!commandBindings) {
110
+ byCommand.delete(command);
111
+ } else {
112
+ byCommand.set(command, commandBindings);
97
113
  }
98
- const sectionBindings = new Array(sectionBindingCount);
99
- let bindingIndex = 0;
100
- for (const bindings of sectionLookup.values()) {
101
- for (let index = 0;index < bindings.length; index += 1) {
102
- sectionBindings[bindingIndex] = bindings[index];
103
- bindingIndex += 1;
104
- }
114
+ }
115
+ return {
116
+ bindings: flattenBindings(byCommand),
117
+ byCommand
118
+ };
119
+ }
120
+ function gatherBindings(byCommand, commands) {
121
+ const gatheredByCommand = new Map;
122
+ const bindings = [];
123
+ for (const command of commands) {
124
+ const commandBindings = byCommand.get(command);
125
+ if (!commandBindings)
126
+ continue;
127
+ gatheredByCommand.set(command, commandBindings);
128
+ for (let index = 0;index < commandBindings.length; index += 1) {
129
+ bindings.push(commandBindings[index]);
105
130
  }
106
- sections[section] = sectionBindings;
107
- lookups.set(section, sectionLookup);
108
131
  }
132
+ return { bindings, byCommand: gatheredByCommand };
133
+ }
134
+ function createBindingLookup(config, options) {
135
+ let currentConfig = config;
136
+ let normalized = normalizeBindings(currentConfig, options?.commandMap, options?.bindingDefaults);
137
+ const gathered = new Map;
109
138
  return {
110
- sections,
111
- get(section, cmd) {
112
- return lookups.get(section)?.get(cmd.trim());
139
+ get bindings() {
140
+ return normalized.bindings;
141
+ },
142
+ get(command) {
143
+ return normalized.byCommand.get(command) ?? EMPTY_BINDINGS;
144
+ },
145
+ has(command) {
146
+ return normalized.byCommand.has(command);
113
147
  },
114
- pick(section, commands) {
115
- const lookup = lookups.get(section);
116
- if (!lookup)
148
+ gather(name, commands) {
149
+ const existing = gathered.get(name);
150
+ if (existing)
151
+ return existing.bindings;
152
+ const next = gatherBindings(normalized.byCommand, commands);
153
+ gathered.set(name, next);
154
+ return next.bindings;
155
+ },
156
+ pick(name, commands) {
157
+ const group = gathered.get(name);
158
+ if (!group)
117
159
  return [];
118
160
  const result = [];
119
161
  for (const command of commands) {
120
- const bindings = lookup.get(command);
162
+ const bindings = group.byCommand.get(command);
121
163
  if (!bindings)
122
164
  continue;
123
165
  for (let index = 0;index < bindings.length; index += 1) {
@@ -126,21 +168,46 @@ function resolveBindingSections(config, options) {
126
168
  }
127
169
  return result;
128
170
  },
129
- omit(section, commands) {
130
- const sectionBindings = sections[section];
131
- if (!sectionBindings)
171
+ omit(name, commands) {
172
+ const group = gathered.get(name);
173
+ if (!group)
132
174
  return [];
133
175
  if (commands.length === 0)
134
- return sectionBindings.slice();
176
+ return group.bindings;
177
+ if (commands.length === 1) {
178
+ const omitted2 = commands[0];
179
+ const result2 = [];
180
+ for (let index = 0;index < group.bindings.length; index += 1) {
181
+ const binding = group.bindings[index];
182
+ if (typeof binding.cmd === "string" && binding.cmd === omitted2)
183
+ continue;
184
+ result2.push(binding);
185
+ }
186
+ return result2;
187
+ }
135
188
  const omitted = new Set(commands);
136
189
  const result = [];
137
- for (let index = 0;index < sectionBindings.length; index += 1) {
138
- const binding = sectionBindings[index];
190
+ for (let index = 0;index < group.bindings.length; index += 1) {
191
+ const binding = group.bindings[index];
139
192
  if (typeof binding.cmd === "string" && omitted.has(binding.cmd))
140
193
  continue;
141
194
  result.push(binding);
142
195
  }
143
196
  return result;
197
+ },
198
+ invalidate(name) {
199
+ if (name === undefined) {
200
+ gathered.clear();
201
+ return;
202
+ }
203
+ gathered.delete(name);
204
+ },
205
+ update(nextConfig) {
206
+ if (nextConfig) {
207
+ currentConfig = nextConfig;
208
+ }
209
+ normalized = normalizeBindings(currentConfig, options?.commandMap, options?.bindingDefaults);
210
+ gathered.clear();
144
211
  }
145
212
  };
146
213
  }
@@ -269,11 +336,11 @@ function formatCommandBindings(bindings, options = {}) {
269
336
  return formatted;
270
337
  }
271
338
  export {
272
- resolveBindingSections,
273
339
  formatKeySequence,
274
340
  formatCommandBindings,
341
+ createBindingLookup,
275
342
  commandBindings
276
343
  };
277
344
 
278
- //# debugId=12505B3C78ECCBFB64756E2164756E21
345
+ //# debugId=59FFB61F7EF5B9AC64756E2164756E21
279
346
  //# sourceMappingURL=index.js.map
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/extras/binding-sections.ts", "../src/extras/command-bindings.ts", "../src/extras/formatting.ts"],
3
+ "sources": ["../src/extras/binding-lookup.ts", "../src/extras/command-bindings.ts", "../src/extras/formatting.ts"],
4
4
  "sourcesContent": [
5
- "// Opinionated config-to-keymap transformation helper. Treat this as one\n// practical shape you can copy and adjust for application-specific needs.\nimport type { Binding, KeyLike, KeymapEvent } from \"../types.js\"\n\nexport type BindingSectionItem<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | KeyLike\n | Binding<TTarget, TEvent>\n\nexport type BindingValue<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | false\n | \"none\"\n | BindingSectionItem<TTarget, TEvent>\n | readonly BindingSectionItem<TTarget, TEvent>[]\n\nexport type BindingSectionConfig<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Readonly<\n Record<string, BindingValue<TTarget, TEvent>>\n>\n\nexport type BindingSectionsConfig<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Readonly<\n Record<string, BindingSectionConfig<TTarget, TEvent>>\n>\n\ntype LiteralStringKeys<T> = string extends Extract<keyof T, string> ? never : Extract<keyof T, string>\n\nconst hasOwn = Object.prototype.hasOwnProperty\n\nexport interface BindingDefaultsContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n section: string\n command: string\n binding: Readonly<Binding<TTarget, TEvent>>\n}\n\nexport type BindingDefaults<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (\n ctx: BindingDefaultsContext<TTarget, TEvent>,\n) => Readonly<Record<string, unknown>> | void\n\nexport interface ResolvedBindingSections<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n TSection extends string = string,\n> {\n sections: Record<TSection, Binding<TTarget, TEvent>[]>\n get(section: string, cmd: string): readonly Binding<TTarget, TEvent>[] | undefined\n pick(section: string, commands: readonly string[]): Binding<TTarget, TEvent>[]\n omit(section: string, commands: readonly string[]): Binding<TTarget, TEvent>[]\n}\n\nexport interface ResolveBindingSectionsOptions<\n TSection extends string = string,\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n> {\n sections?: readonly TSection[]\n bindingDefaults?: BindingDefaults<TTarget, TEvent>\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value)\n}\n\nfunction isKeyLike(value: unknown): value is KeyLike {\n return typeof value === \"string\" || isObject(value)\n}\n\nfunction cloneKeyLike(key: KeyLike): KeyLike {\n if (typeof key === \"string\") {\n return key\n }\n\n return { ...key }\n}\n\nfunction invalidBindingValue(section: string, command: string, index?: number): Error {\n const location = index === undefined ? `\"${section}.${command}\"` : `\"${section}.${command}\" at index ${index}`\n return new Error(\n `Invalid binding value for ${location}: expected false, a key, a binding object, or an array of keys/binding objects`,\n )\n}\n\nfunction resolveBindingItem<TTarget extends object, TEvent extends KeymapEvent>(\n section: string,\n command: string,\n item: BindingSectionItem<TTarget, TEvent>,\n index?: number,\n): Binding<TTarget, TEvent> {\n if (!isKeyLike(item)) {\n throw invalidBindingValue(section, command, index)\n }\n\n if (typeof item === \"string\" || !(\"key\" in item)) {\n return {\n key: cloneKeyLike(item),\n cmd: command,\n }\n }\n\n const key = item.key\n if (!isKeyLike(key)) {\n throw invalidBindingValue(section, command, index)\n }\n\n return {\n ...item,\n key: cloneKeyLike(key),\n cmd: command,\n }\n}\n\nfunction resolveBindingValue<TTarget extends object, TEvent extends KeymapEvent>(\n section: string,\n command: string,\n value: BindingValue<TTarget, TEvent>,\n bindingDefaults: BindingDefaults<TTarget, TEvent> | undefined,\n): Binding<TTarget, TEvent>[] | undefined {\n if (value === false || value === \"none\") {\n return undefined\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n const items = value as readonly BindingSectionItem<TTarget, TEvent>[]\n const bindings = new Array<Binding<TTarget, TEvent>>(items.length)\n for (let index = 0; index < items.length; index += 1) {\n const binding = resolveBindingItem(section, command, items[index]!, index)\n bindings[index] = bindingDefaults ? withBindingDefaults(section, command, binding, bindingDefaults) : binding\n }\n\n return bindings\n }\n\n const binding = resolveBindingItem(section, command, value as BindingSectionItem<TTarget, TEvent>)\n return [bindingDefaults ? withBindingDefaults(section, command, binding, bindingDefaults) : binding]\n}\n\nfunction withBindingDefaults<TTarget extends object, TEvent extends KeymapEvent>(\n section: string,\n command: string,\n binding: Binding<TTarget, TEvent>,\n bindingDefaults: BindingDefaults<TTarget, TEvent> | undefined,\n): Binding<TTarget, TEvent> {\n const defaults = bindingDefaults?.({ section, command, binding })\n if (!defaults) return binding\n return { ...defaults, ...binding }\n}\n\nexport function resolveBindingSections<\n TTarget extends object = object,\n TEvent extends KeymapEvent = KeymapEvent,\n const TConfig extends BindingSectionsConfig<TTarget, TEvent> = BindingSectionsConfig<TTarget, TEvent>,\n const TSection extends string = string,\n>(\n config: TConfig,\n options: ResolveBindingSectionsOptions<TSection, TTarget, TEvent> & { sections: readonly TSection[] },\n): ResolvedBindingSections<TTarget, TEvent, TSection | LiteralStringKeys<TConfig>>\nexport function resolveBindingSections<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>(\n config: BindingSectionsConfig<TTarget, TEvent>,\n options?: ResolveBindingSectionsOptions<string, TTarget, TEvent>,\n): ResolvedBindingSections<TTarget, TEvent>\nexport function resolveBindingSections<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>(\n config: BindingSectionsConfig<TTarget, TEvent>,\n options?: ResolveBindingSectionsOptions<string, TTarget, TEvent>,\n): ResolvedBindingSections<TTarget, TEvent> {\n const sections: Record<string, Binding<TTarget, TEvent>[]> = {}\n const lookups = new Map<string, Map<string, Binding<TTarget, TEvent>[]>>()\n const bindingDefaults = options?.bindingDefaults\n\n for (const section of options?.sections ?? []) {\n sections[section] = []\n lookups.set(section, new Map())\n }\n\n // Own-property loops avoid Object.entries allocations while still ignoring inherited config.\n for (const section in config) {\n if (!hasOwn.call(config, section)) {\n continue\n }\n\n const sectionConfig = config[section]\n if (!isObject(sectionConfig)) {\n throw new Error(`Invalid binding section \"${section}\": expected an object`)\n }\n\n const sectionLookup = new Map<string, Binding<TTarget, TEvent>[]>()\n\n for (const rawCommand in sectionConfig) {\n if (!hasOwn.call(sectionConfig, rawCommand)) {\n continue\n }\n\n const command = rawCommand.trim()\n const bindings = resolveBindingValue(section, command, sectionConfig[rawCommand]!, bindingDefaults)\n\n if (!bindings) {\n sectionLookup.delete(command)\n continue\n }\n\n sectionLookup.set(command, bindings)\n }\n\n // Manual flattening avoids Array.flat allocations on large generated configs.\n let sectionBindingCount = 0\n for (const bindings of sectionLookup.values()) {\n sectionBindingCount += bindings.length\n }\n\n const sectionBindings = new Array<Binding<TTarget, TEvent>>(sectionBindingCount)\n let bindingIndex = 0\n for (const bindings of sectionLookup.values()) {\n for (let index = 0; index < bindings.length; index += 1) {\n sectionBindings[bindingIndex] = bindings[index]!\n bindingIndex += 1\n }\n }\n\n sections[section] = sectionBindings\n lookups.set(section, sectionLookup)\n }\n\n return {\n sections,\n get(section, cmd) {\n return lookups.get(section)?.get(cmd.trim())\n },\n pick(section, commands) {\n const lookup = lookups.get(section)\n if (!lookup) return []\n\n const result: Binding<TTarget, TEvent>[] = []\n for (const command of commands) {\n const bindings = lookup.get(command)\n if (!bindings) continue\n for (let index = 0; index < bindings.length; index += 1) {\n result.push(bindings[index]!)\n }\n }\n\n return result\n },\n omit(section, commands) {\n const sectionBindings = sections[section]\n if (!sectionBindings) return []\n if (commands.length === 0) return sectionBindings.slice()\n\n const omitted = new Set(commands)\n const result: Binding<TTarget, TEvent>[] = []\n for (let index = 0; index < sectionBindings.length; index += 1) {\n const binding = sectionBindings[index]!\n if (typeof binding.cmd === \"string\" && omitted.has(binding.cmd)) continue\n result.push(binding)\n }\n\n return result\n },\n }\n}\n",
5
+ "// Opinionated config-to-keymap transformation helper. Treat this as one\n// practical shape you can copy and adjust for application-specific needs.\nimport type { Binding, KeyLike, KeymapEvent } from \"../types.js\"\n\nexport type BindingConfigItem<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | KeyLike\n | Binding<TTarget, TEvent>\n\nexport type BindingValue<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> =\n | false\n | \"none\"\n | BindingConfigItem<TTarget, TEvent>\n | readonly BindingConfigItem<TTarget, TEvent>[]\n\nexport type BindingConfig<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Readonly<\n Record<string, BindingValue<TTarget, TEvent>>\n>\n\nexport type BindingCommandMap = Readonly<Record<string, string>>\n\nconst hasOwn = Object.prototype.hasOwnProperty\nconst EMPTY_BINDINGS: readonly Binding[] = Object.freeze([])\n\nexport interface BindingDefaultsContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n command: string\n binding: Readonly<Binding<TTarget, TEvent>>\n}\n\nexport type BindingDefaults<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (\n ctx: BindingDefaultsContext<TTarget, TEvent>,\n) => Readonly<Record<string, unknown>> | void\n\nexport interface CreateBindingLookupOptions<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n commandMap?: BindingCommandMap\n bindingDefaults?: BindingDefaults<TTarget, TEvent>\n}\n\nexport interface BindingLookup<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {\n readonly bindings: readonly Binding<TTarget, TEvent>[]\n get(command: string): readonly Binding<TTarget, TEvent>[]\n has(command: string): boolean\n gather(name: string, commands: readonly string[]): readonly Binding<TTarget, TEvent>[]\n pick(name: string, commands: readonly string[]): Binding<TTarget, TEvent>[]\n omit(name: string, commands: readonly string[]): Binding<TTarget, TEvent>[]\n invalidate(name?: string): void\n update(config?: BindingConfig<TTarget, TEvent>): void\n}\n\ninterface NormalizedBindings<TTarget extends object, TEvent extends KeymapEvent> {\n bindings: Binding<TTarget, TEvent>[]\n byCommand: Map<string, Binding<TTarget, TEvent>[]>\n}\n\ninterface GatheredBindings<TTarget extends object, TEvent extends KeymapEvent> {\n bindings: Binding<TTarget, TEvent>[]\n byCommand: Map<string, readonly Binding<TTarget, TEvent>[]>\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value)\n}\n\nfunction isKeyLike(value: unknown): value is KeyLike {\n return typeof value === \"string\" || isObject(value)\n}\n\nfunction cloneKeyLike(key: KeyLike): KeyLike {\n if (typeof key === \"string\") {\n return key\n }\n\n return { ...key }\n}\n\nfunction normalizeCommand(command: string): string {\n if (command.length === 0) {\n throw new Error(\"Invalid binding command: command cannot be empty\")\n }\n\n return command\n}\n\nfunction mapCommand(command: string, commandMap: BindingCommandMap | undefined): string {\n const configCommand = normalizeCommand(command)\n if (!commandMap || !hasOwn.call(commandMap, configCommand)) {\n return configCommand\n }\n\n const mappedCommand = commandMap[configCommand]\n if (typeof mappedCommand !== \"string\") {\n throw new Error(`Invalid binding command map entry for \"${configCommand}\": expected a command string`)\n }\n\n if (mappedCommand.length === 0) {\n throw new Error(`Invalid binding command map entry for \"${configCommand}\": command cannot be empty`)\n }\n\n return mappedCommand\n}\n\nfunction invalidBindingValue(command: string, index?: number): Error {\n const location = index === undefined ? `\"${command}\"` : `\"${command}\" at index ${index}`\n return new Error(\n `Invalid binding value for ${location}: expected false, a key, a binding object, or an array of keys/binding objects`,\n )\n}\n\nfunction resolveBindingItem<TTarget extends object, TEvent extends KeymapEvent>(\n command: string,\n item: BindingConfigItem<TTarget, TEvent>,\n index?: number,\n): Binding<TTarget, TEvent> {\n if (!isKeyLike(item)) {\n throw invalidBindingValue(command, index)\n }\n\n if (typeof item === \"string\" || !(\"key\" in item)) {\n return {\n key: cloneKeyLike(item),\n cmd: command,\n }\n }\n\n const key = item.key\n if (!isKeyLike(key)) {\n throw invalidBindingValue(command, index)\n }\n\n return {\n ...item,\n key: cloneKeyLike(key),\n cmd: command,\n }\n}\n\nfunction resolveBindingValue<TTarget extends object, TEvent extends KeymapEvent>(\n command: string,\n value: BindingValue<TTarget, TEvent>,\n bindingDefaults: BindingDefaults<TTarget, TEvent> | undefined,\n): Binding<TTarget, TEvent>[] | undefined {\n if (value === false || value === \"none\") {\n return undefined\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined\n }\n\n const items = value as readonly BindingConfigItem<TTarget, TEvent>[]\n const bindings = new Array<Binding<TTarget, TEvent>>(items.length)\n for (let index = 0; index < items.length; index += 1) {\n const binding = resolveBindingItem(command, items[index]!, index)\n bindings[index] = bindingDefaults ? withBindingDefaults(command, binding, bindingDefaults) : binding\n }\n\n return bindings\n }\n\n const binding = resolveBindingItem(command, value as BindingConfigItem<TTarget, TEvent>)\n return [bindingDefaults ? withBindingDefaults(command, binding, bindingDefaults) : binding]\n}\n\nfunction withBindingDefaults<TTarget extends object, TEvent extends KeymapEvent>(\n command: string,\n binding: Binding<TTarget, TEvent>,\n bindingDefaults: BindingDefaults<TTarget, TEvent> | undefined,\n): Binding<TTarget, TEvent> {\n const defaults = bindingDefaults?.({ command, binding })\n if (!defaults) return binding\n return { ...defaults, ...binding }\n}\n\nfunction flattenBindings<TTarget extends object, TEvent extends KeymapEvent>(\n byCommand: ReadonlyMap<string, readonly Binding<TTarget, TEvent>[]>,\n): Binding<TTarget, TEvent>[] {\n let bindingCount = 0\n for (const bindings of byCommand.values()) {\n bindingCount += bindings.length\n }\n\n const result = new Array<Binding<TTarget, TEvent>>(bindingCount)\n let bindingIndex = 0\n for (const bindings of byCommand.values()) {\n for (let index = 0; index < bindings.length; index += 1) {\n result[bindingIndex] = bindings[index]!\n bindingIndex += 1\n }\n }\n\n return result\n}\n\nfunction normalizeBindings<TTarget extends object, TEvent extends KeymapEvent>(\n config: BindingConfig<TTarget, TEvent>,\n commandMap: BindingCommandMap | undefined,\n bindingDefaults: BindingDefaults<TTarget, TEvent> | undefined,\n): NormalizedBindings<TTarget, TEvent> {\n const byCommand = new Map<string, Binding<TTarget, TEvent>[]>()\n\n for (const rawCommand in config) {\n if (!hasOwn.call(config, rawCommand)) {\n continue\n }\n\n const command = mapCommand(rawCommand, commandMap)\n const commandBindings = resolveBindingValue(command, config[rawCommand]!, bindingDefaults)\n\n if (!commandBindings) {\n byCommand.delete(command)\n } else {\n byCommand.set(command, commandBindings)\n }\n }\n\n return {\n bindings: flattenBindings(byCommand),\n byCommand,\n }\n}\n\nfunction gatherBindings<TTarget extends object, TEvent extends KeymapEvent>(\n byCommand: ReadonlyMap<string, readonly Binding<TTarget, TEvent>[]>,\n commands: readonly string[],\n): GatheredBindings<TTarget, TEvent> {\n const gatheredByCommand = new Map<string, readonly Binding<TTarget, TEvent>[]>()\n const bindings: Binding<TTarget, TEvent>[] = []\n\n for (const command of commands) {\n const commandBindings = byCommand.get(command)\n if (!commandBindings) continue\n\n gatheredByCommand.set(command, commandBindings)\n for (let index = 0; index < commandBindings.length; index += 1) {\n bindings.push(commandBindings[index]!)\n }\n }\n\n return { bindings, byCommand: gatheredByCommand }\n}\n\nexport function createBindingLookup<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>(\n config: BindingConfig<TTarget, TEvent>,\n options?: CreateBindingLookupOptions<TTarget, TEvent>,\n): BindingLookup<TTarget, TEvent> {\n let currentConfig = config\n let normalized = normalizeBindings(currentConfig, options?.commandMap, options?.bindingDefaults)\n const gathered = new Map<string, GatheredBindings<TTarget, TEvent>>()\n\n return {\n get bindings() {\n return normalized.bindings\n },\n get(command) {\n return normalized.byCommand.get(command) ?? (EMPTY_BINDINGS as readonly Binding<TTarget, TEvent>[])\n },\n has(command) {\n return normalized.byCommand.has(command)\n },\n gather(name, commands) {\n const existing = gathered.get(name)\n if (existing) return existing.bindings\n\n const next = gatherBindings(normalized.byCommand, commands)\n gathered.set(name, next)\n return next.bindings\n },\n pick(name, commands) {\n const group = gathered.get(name)\n if (!group) return []\n\n const result: Binding<TTarget, TEvent>[] = []\n for (const command of commands) {\n const bindings = group.byCommand.get(command)\n if (!bindings) continue\n for (let index = 0; index < bindings.length; index += 1) {\n result.push(bindings[index]!)\n }\n }\n\n return result\n },\n omit(name, commands) {\n const group = gathered.get(name)\n if (!group) return []\n if (commands.length === 0) return group.bindings\n\n if (commands.length === 1) {\n const omitted = commands[0]\n const result: Binding<TTarget, TEvent>[] = []\n for (let index = 0; index < group.bindings.length; index += 1) {\n const binding = group.bindings[index]!\n if (typeof binding.cmd === \"string\" && binding.cmd === omitted) continue\n result.push(binding)\n }\n\n return result\n }\n\n const omitted = new Set(commands)\n const result: Binding<TTarget, TEvent>[] = []\n for (let index = 0; index < group.bindings.length; index += 1) {\n const binding = group.bindings[index]!\n if (typeof binding.cmd === \"string\" && omitted.has(binding.cmd)) continue\n result.push(binding)\n }\n\n return result\n },\n invalidate(name) {\n if (name === undefined) {\n gathered.clear()\n return\n }\n\n gathered.delete(name)\n },\n update(nextConfig) {\n if (nextConfig) {\n currentConfig = nextConfig\n }\n\n normalized = normalizeBindings(currentConfig, options?.commandMap, options?.bindingDefaults)\n gathered.clear()\n },\n }\n}\n",
6
6
  "import type { Binding, KeyLike, KeymapEvent } from \"../types.js\"\n\nexport type CommandBindingMap = Record<string, KeyLike>\n\nexport interface CommandBindingsOverrideWarning {\n code: \"command-binding-override\"\n command: string\n previousKey: KeyLike\n nextKey: KeyLike\n}\n\nexport interface CommandBindingsError {\n code: \"invalid-command-binding\"\n command: string\n value: unknown\n reason: Error\n}\n\nexport interface CommandBindingsOptions {\n onWarning?: (warning: CommandBindingsOverrideWarning) => void\n onError?: (error: CommandBindingsError) => void\n}\n\nfunction isCommandBindingKey(value: unknown): value is KeyLike {\n return typeof value === \"string\" || (!!value && typeof value === \"object\" && !Array.isArray(value))\n}\n\nexport function commandBindings<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>(\n bindings: Readonly<CommandBindingMap>,\n options?: CommandBindingsOptions,\n): Binding<TTarget, TEvent>[] {\n const normalized: Binding<TTarget, TEvent>[] = []\n const indexesByCommand = new Map<string, number>()\n\n for (const [command, key] of Object.entries(bindings)) {\n if (!isCommandBindingKey(key)) {\n const error = new Error(\n `Invalid command binding for \"${command}\": command bindings must map command strings to key strings or keystroke objects`,\n )\n\n options?.onError?.({\n code: \"invalid-command-binding\",\n command,\n value: key,\n reason: error,\n })\n continue\n }\n\n const normalizedCommand = command.trim()\n\n const nextBinding = {\n key: typeof key === \"string\" ? key : { ...key },\n cmd: normalizedCommand,\n } satisfies Binding<TTarget, TEvent>\n\n const existingIndex = indexesByCommand.get(normalizedCommand)\n if (existingIndex !== undefined) {\n const previousBinding = normalized[existingIndex]!\n options?.onWarning?.({\n code: \"command-binding-override\",\n command: normalizedCommand,\n previousKey: previousBinding.key,\n nextKey: nextBinding.key,\n })\n normalized[existingIndex] = nextBinding\n continue\n }\n\n indexesByCommand.set(normalizedCommand, normalized.length)\n normalized.push(nextBinding)\n }\n\n return normalized\n}\n",
7
7
  "import type { KeySequencePart } from \"../types.js\"\n\nexport type KeyModifierName = \"ctrl\" | \"shift\" | \"meta\" | \"super\" | \"hyper\"\n\nexport interface KeySequenceFormatPart {\n stroke: KeySequencePart[\"stroke\"]\n display: string\n match?: KeySequencePart[\"match\"]\n tokenName?: string\n patternName?: string\n}\n\nexport type TokenDisplayResolver =\n | Readonly<Record<string, string>>\n | ((tokenName: string, part: KeySequenceFormatPart) => string | undefined)\n\nexport type PatternDisplayResolver =\n | Readonly<Record<string, string>>\n | ((patternName: string, part: KeySequenceFormatPart) => string | undefined)\n\nexport interface FormatKeySequenceOptions {\n tokenDisplay?: TokenDisplayResolver\n patternDisplay?: PatternDisplayResolver\n keyNameAliases?: Readonly<Record<string, string>>\n modifierAliases?: Partial<Record<KeyModifierName, string>>\n separator?: string\n}\n\nexport interface FormatCommandBindingsOptions extends FormatKeySequenceOptions {\n bindingSeparator?: string\n dedupe?: boolean\n}\n\nexport interface SequenceBindingLike {\n sequence: readonly KeySequenceFormatPart[]\n}\n\nfunction formatStroke(part: KeySequenceFormatPart, options: FormatKeySequenceOptions): string {\n if (part.tokenName) {\n const tokenDisplay = options.tokenDisplay\n if (!tokenDisplay) return part.display\n if (typeof tokenDisplay === \"function\") return tokenDisplay(part.tokenName, part) ?? part.display\n return tokenDisplay[part.tokenName] ?? part.display\n }\n\n if (part.patternName) {\n const patternDisplay = options.patternDisplay\n if (!patternDisplay) return part.display\n if (typeof patternDisplay === \"function\") return patternDisplay(part.patternName, part) ?? part.display\n return patternDisplay[part.patternName] ?? part.display\n }\n\n if (!options.keyNameAliases && !options.modifierAliases) return part.display\n\n // This is on the command-palette hot path; build directly to avoid per-stroke arrays.\n const stroke = part.stroke\n const modifierAliases = options.modifierAliases\n let formatted = \"\"\n let pieceCount = 0\n\n if (stroke.ctrl) {\n formatted = modifierAliases?.ctrl ?? \"ctrl\"\n pieceCount = 1\n }\n\n if (stroke.shift) {\n const alias = modifierAliases?.shift ?? \"shift\"\n formatted = pieceCount === 0 ? alias : `${formatted}+${alias}`\n pieceCount += 1\n }\n\n if (stroke.meta) {\n const alias = modifierAliases?.meta ?? \"meta\"\n formatted = pieceCount === 0 ? alias : `${formatted}+${alias}`\n pieceCount += 1\n }\n\n if (stroke.super) {\n const alias = modifierAliases?.super ?? \"super\"\n formatted = pieceCount === 0 ? alias : `${formatted}+${alias}`\n pieceCount += 1\n }\n\n if (stroke.hyper) {\n const alias = modifierAliases?.hyper ?? \"hyper\"\n formatted = pieceCount === 0 ? alias : `${formatted}+${alias}`\n pieceCount += 1\n }\n\n const name = stroke.name === \"return\" ? \"enter\" : stroke.name\n const keyName = options.keyNameAliases?.[name] ?? name\n return pieceCount === 0 ? keyName : `${formatted}+${keyName}`\n}\n\nexport function formatKeySequence(\n parts: readonly KeySequenceFormatPart[] | undefined,\n options: FormatKeySequenceOptions = {},\n): string {\n if (!parts || parts.length === 0) return \"\"\n\n // Avoid map/join allocation here; binding-list formatting calls this repeatedly.\n const separator = options.separator ?? \" \"\n let formatted = formatStroke(parts[0]!, options)\n for (let index = 1; index < parts.length; index += 1) {\n formatted += separator + formatStroke(parts[index]!, options)\n }\n\n return formatted\n}\n\nexport function formatCommandBindings(\n bindings: readonly SequenceBindingLike[] | undefined,\n options: FormatCommandBindingsOptions = {},\n): string | undefined {\n if (!bindings?.length) return\n\n const bindingSeparator = options.bindingSeparator ?? \", \"\n const dedupe = options.dedupe !== false\n const seen = dedupe ? new Set<string>() : undefined\n let formatted = \"\"\n let itemCount = 0\n\n // One pass keeps dedupe, filtering, and joining allocation-light for large binding lists.\n for (const binding of bindings) {\n const item = formatKeySequence(binding.sequence, options)\n if (!item) continue\n\n if (seen) {\n if (seen.has(item)) continue\n seen.add(item)\n }\n\n formatted = itemCount === 0 ? item : `${formatted}${bindingSeparator}${item}`\n itemCount += 1\n }\n\n return formatted\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "12505B3C78ECCBFB64756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "59FFB61F7EF5B9AC64756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,27 +0,0 @@
1
- import type { Binding, KeyLike, KeymapEvent } from "../types.js";
2
- export type BindingSectionItem<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = KeyLike | Binding<TTarget, TEvent>;
3
- export type BindingValue<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = false | "none" | BindingSectionItem<TTarget, TEvent> | readonly BindingSectionItem<TTarget, TEvent>[];
4
- export type BindingSectionConfig<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Readonly<Record<string, BindingValue<TTarget, TEvent>>>;
5
- export type BindingSectionsConfig<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Readonly<Record<string, BindingSectionConfig<TTarget, TEvent>>>;
6
- type LiteralStringKeys<T> = string extends Extract<keyof T, string> ? never : Extract<keyof T, string>;
7
- export interface BindingDefaultsContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {
8
- section: string;
9
- command: string;
10
- binding: Readonly<Binding<TTarget, TEvent>>;
11
- }
12
- export type BindingDefaults<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (ctx: BindingDefaultsContext<TTarget, TEvent>) => Readonly<Record<string, unknown>> | void;
13
- export interface ResolvedBindingSections<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent, TSection extends string = string> {
14
- sections: Record<TSection, Binding<TTarget, TEvent>[]>;
15
- get(section: string, cmd: string): readonly Binding<TTarget, TEvent>[] | undefined;
16
- pick(section: string, commands: readonly string[]): Binding<TTarget, TEvent>[];
17
- omit(section: string, commands: readonly string[]): Binding<TTarget, TEvent>[];
18
- }
19
- export interface ResolveBindingSectionsOptions<TSection extends string = string, TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> {
20
- sections?: readonly TSection[];
21
- bindingDefaults?: BindingDefaults<TTarget, TEvent>;
22
- }
23
- export declare function resolveBindingSections<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent, const TConfig extends BindingSectionsConfig<TTarget, TEvent> = BindingSectionsConfig<TTarget, TEvent>, const TSection extends string = string>(config: TConfig, options: ResolveBindingSectionsOptions<TSection, TTarget, TEvent> & {
24
- sections: readonly TSection[];
25
- }): ResolvedBindingSections<TTarget, TEvent, TSection | LiteralStringKeys<TConfig>>;
26
- export declare function resolveBindingSections<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>(config: BindingSectionsConfig<TTarget, TEvent>, options?: ResolveBindingSectionsOptions<string, TTarget, TEvent>): ResolvedBindingSections<TTarget, TEvent>;
27
- export {};