From 7ada18558fc63693f060d663e5785f262204d5c9 Mon Sep 17 00:00:00 2001 From: Liu Liu Date: Mon, 12 Jan 2026 22:51:28 +0000 Subject: [PATCH] clamp position --- src/text-expander-element.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/text-expander-element.ts b/src/text-expander-element.ts index 1801eee..2269cf4 100644 --- a/src/text-expander-element.ts +++ b/src/text-expander-element.ts @@ -103,7 +103,9 @@ class TextExpander { } private positionMenu(menu: HTMLElement, position: number) { - const caretRect = new InputRange(this.input, position).getBoundingClientRect() + // Clamp position to valid range to avoid IndexSizeError when input text changes + const clampedPosition = Math.min(position, this.input.value.length) + const caretRect = new InputRange(this.input, clampedPosition).getBoundingClientRect() const targetPosition = {left: caretRect.left, top: caretRect.top + caretRect.height} const currentPosition = menu.getBoundingClientRect()