In www/src/routes/_app/create.tsx the desktop panel is only CSS-hidden (max-lg:hidden) while the mobile sheet mounts a second CreatePanel. Below lg with the sheet open, both are mounted at once.
Failures:
- The preset picker is URL-driven (
?gallery=) and portals to body, so portals ignore the hidden parent — tapping the preset name opens two stacked pickers with a doubled backdrop and fighting focus traps.
- The hidden instance runs its own ⌘K listener and its own
usePresetHistory, recording the visible instance's undos as fresh edits, so its stacks are corrupt if the viewport later crosses to desktop.
Related: the registry Drawer renders through a Base UI Portal, so the lg:hidden wrapper never applies to an open sheet — resizing past lg with the sheet open leaves it over the desktop layout.
Found reviewing #511.
In
www/src/routes/_app/create.tsxthe desktop panel is only CSS-hidden (max-lg:hidden) while the mobile sheet mounts a secondCreatePanel. Belowlgwith the sheet open, both are mounted at once.Failures:
?gallery=) and portals tobody, so portals ignore the hidden parent — tapping the preset name opens two stacked pickers with a doubled backdrop and fighting focus traps.usePresetHistory, recording the visible instance's undos as fresh edits, so its stacks are corrupt if the viewport later crosses to desktop.Related: the registry Drawer renders through a Base UI
Portal, so thelg:hiddenwrapper never applies to an open sheet — resizing pastlgwith the sheet open leaves it over the desktop layout.Found reviewing #511.