Skip to content

fix: measure uncached positioned ancestors when removing table rows - #249

Open
thavguard wants to merge 3 commits into
formkit:masterfrom
thavguard:fix/webkit-table-removal
Open

thavguard wants to merge 3 commits into
formkit:masterfrom
thavguard:fix/webkit-table-removal

Conversation

@thavguard

@thavguard thavguard commented Oct 21, 2026 •

Copy link
Copy Markdown

Removing a <tr> during its entry animation throws when its positioned ancestor has no cached coordinates. WebKit explicitly resets position: relative to static on table row groups (engine source), so AutoAnimate can walk past the observed tbody to an unobserved wrapper.

Fall back to measuring that ancestor when its cache entry is missing. The production change is one line.

Fixes #248.

The regression test uses a plain HTML table, default options and unchanged styles. It verifies that a row removed during entry is cleaned up without an exception and its sibling survives. Run it in Chromium and WebKit:

export PATH="$PWD/node_modules/.bin:$PATH"
pnpm exec playwright test tests/e2e/removal-position.spec.ts --workers=1 --project=chromium --project=webkit --retries=0

Focused CI: unpatched core — Chromium passes, WebKit fails with parentCoords.top; patched core — both pass. The same minimal test is used in both runs.

@vercel

vercel Bot commented Oct 21, 2026

Copy link
Copy Markdown

@thavguard is attempting to deploy a commit to the Formkit Team on Vercel.

A member of the Team first needs to authorize it.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

WebKit: removing an animating table row throws in deletePosition()

1 participant