diff --git a/.changeset/light-boxes-cough.md b/.changeset/light-boxes-cough.md new file mode 100644 index 000000000..2ec1ddefc --- /dev/null +++ b/.changeset/light-boxes-cough.md @@ -0,0 +1,5 @@ +--- +"@solid-primitives/selection": patch +--- + +fix: selection contenteditable node detection diff --git a/packages/selection/dev/index.tsx b/packages/selection/dev/index.tsx index be733c061..5ce34e69b 100644 --- a/packages/selection/dev/index.tsx +++ b/packages/selection/dev/index.tsx @@ -34,6 +34,11 @@ const App: Component = () => {
te st +
diff --git a/packages/selection/src/index.ts b/packages/selection/src/index.ts index d6a792039..15a1112ed 100644 --- a/packages/selection/src/index.ts +++ b/packages/selection/src/index.ts @@ -17,7 +17,7 @@ export const getTextNodes = (startNode: Node) => { const addNodeLength = (length: number, node: Node) => length + (node as Text).data.length; const getRangePos = (container: Node, offset: number, texts: Node[]) => { - const index = texts.indexOf(container); + const index = texts.findIndex((text) => text === container || text.parentElement === container); return index === -1 ? NaN : texts.slice(0, index).reduce(addNodeLength, 0) + offset; };