import { BlockType, MarkType } from '../../components/editor/types'; /** Pure: an is-hotkey string ('mod+b', "mod+'") as keycap labels. */ export const hotkeyKeys = (hotkey: string, modKey: string): string[] => hotkey.split('+').map((k) => (k === 'mod' ? modKey : k.length === 1 ? k.toUpperCase() : k)); /** Pure: a KeyboardEvent.code ('KeyM', 'Digit1', 'Space') as a keycap label. */ export const keyCodeLabel = (code: string | undefined): string => { if (!code) return 'Not set'; if (/^Key[A-Z]$/.test(code)) return code.slice(3); if (/^Digit\d$/.test(code)) return code.slice(5); return code; }; export const MARK_LABELS: Record = { [MarkType.Bold]: 'Bold', [MarkType.Italic]: 'Italic', [MarkType.Underline]: 'Underline', [MarkType.StrikeThrough]: 'Strikethrough', [MarkType.Code]: 'Inline code', [MarkType.Spoiler]: 'Spoiler', }; export const BLOCK_LABELS: Partial> = { [BlockType.OrderedList]: 'Numbered list', [BlockType.UnorderedList]: 'Bulleted list', [BlockType.BlockQuote]: 'Quote', [BlockType.CodeBlock]: 'Code block', };