You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After repeatedly dragging a selected component that contains nested slot fields, the component can remain selected in Puck's global state while its canvas overlay disappears.
The properties panel and breadcrumb continue showing the correct selected component, but Puck no longer renders the selection border or action bar.
This occurs with the latest published Puck version, 0.22.4.
Video:
Screen.Recording.2026-08-05.at.1.22.56.PM.mov
Environment
Puck version: 0.22.4
Browser version: Chrome desktop (version to add)
Additional environment info:
React 19.2.4
macOS
Vite
Puck iframe enabled
Desktop device
Steps to reproduce
Configure a component with multiple nested slot fields.
Alternatively, remove the duplicated local drag-finished state and derive overlay eligibility directly from Puck's global drag state, if compatible with the drop animation lifecycle.
A regression test should repeatedly move a selected nested-slot component and verify that:
Description
After repeatedly dragging a selected component that contains nested
slotfields, the component can remain selected in Puck's global state while its canvas overlay disappears.The properties panel and breadcrumb continue showing the correct selected component, but Puck no longer renders the selection border or action bar.
This occurs with the latest published Puck version,
0.22.4.Video:
Screen.Recording.2026-08-05.at.1.22.56.PM.mov
Environment
0.22.419.2.4Steps to reproduce
slotfields.Select the Container.
Drag the Container above and below the other root components repeatedly.
After several drag-and-drop operations, click the Container again.
The issue is intermittent but becomes easier to reproduce after repeatedly moving the nested-slot component.
What happens
The Container remains selected in Puck's state:
The following UI continues working:
However:
[data-puck-overlay]element is mounted.What I expect to happen
When Puck's global drag state is finished and the component remains selected:
Suspected cause
DraggableComponentonly mounts its overlay when both local conditions are true:After repeated nested-zone drag operations, the component's local
dragFinishedstate can remainfalse, even though Puck's global state reports:The properties panel reads the global selected item, which explains why it continues working while the local overlay remains unmounted.
Proposed fix
Reconcile the local
dragFinishedstate when Puck's authoritative global drag state finishes:Alternatively, remove the duplicated local drag-finished state and derive overlay eligibility directly from Puck's global drag state, if compatible with the drop animation lifecycle.
A regression test should repeatedly move a selected nested-slot component and verify that: