feat: export measureText and kittyModifiers to match Ink public API (#13)
This commit is contained in:
@@ -32,4 +32,10 @@ export {
|
||||
} from "./composables/useBoxMetrics.ts";
|
||||
export { renderScreenReaderOutput, type ScreenReaderOptions } from "./paint/screen-reader.ts";
|
||||
export type { DevState, DevErrorInfo } from "./hmr.ts";
|
||||
export { kittyFlags, type KittyKeyboardOptions, type KittyFlagName } from "./io/kitty-keyboard.ts";
|
||||
export {
|
||||
kittyFlags,
|
||||
kittyModifiers,
|
||||
type KittyKeyboardOptions,
|
||||
type KittyFlagName,
|
||||
} from "./io/kitty-keyboard.ts";
|
||||
export { measureText } from "./host/text-measure.ts";
|
||||
|
||||
@@ -12,6 +12,17 @@ export const kittyFlags = {
|
||||
|
||||
export type KittyFlagName = keyof typeof kittyFlags;
|
||||
|
||||
export const kittyModifiers = {
|
||||
shift: 1,
|
||||
alt: 2,
|
||||
ctrl: 4,
|
||||
super: 8,
|
||||
hyper: 16,
|
||||
meta: 32,
|
||||
capsLock: 64,
|
||||
numLock: 128,
|
||||
} as const;
|
||||
|
||||
export type KittyKeyboardOptions = {
|
||||
mode?: "auto" | "enabled" | "disabled";
|
||||
flags?: KittyFlagName[];
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
// Ported from Ink's parse-keypress.ts
|
||||
// @see https://github.com/vadimdemedes/ink
|
||||
|
||||
import { kittyModifiers } from "./kitty-keyboard.ts";
|
||||
|
||||
const textDecoder = new TextDecoder();
|
||||
|
||||
const metaKeyCodeRe = /^(?:\x1b)([a-zA-Z0-9])$/;
|
||||
@@ -136,19 +138,6 @@ export interface Keypress {
|
||||
ignore?: boolean;
|
||||
}
|
||||
|
||||
// Kitty keyboard protocol modifier bits.
|
||||
// The actual modifier value in CSI sequences is (modifiers - 1).
|
||||
const kittyModifiers = {
|
||||
shift: 1,
|
||||
alt: 2,
|
||||
ctrl: 4,
|
||||
super: 8,
|
||||
hyper: 16,
|
||||
meta: 32,
|
||||
capsLock: 64,
|
||||
numLock: 128,
|
||||
} as const;
|
||||
|
||||
// Kitty keyboard protocol: CSI codepoint ; modifiers [: eventType] [; text-as-codepoints] u
|
||||
const kittyKeyRe = /^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user