('[data-stage]');
+ const handled = stage
+ ? requestPresentationVerticalNavigation(
+ stage,
+ e.key === 'ArrowDown' ? 'next' : 'previous',
+ openDrillIdRef,
+ )
+ : false;
+ if (!handled && e.key === 'ArrowDown') go(index + 1);
+ return;
+ }
+ // While a drill sheet is open horizontal navigation pauses. Vertical
+ // navigation remains available so the presenter can move among the
+ // slide's click-ins or return to its base state.
if (document.querySelector('[data-drill-open]')) return;
if (e.key === 'ArrowRight' || e.key === ' ' || e.key === 'PageDown') {
e.preventDefault();
@@ -1694,6 +1870,12 @@ export function PresentationDeck({
{
+ const target = event.target instanceof Element
+ ? event.target.closest('[data-drill-target]')
+ : null;
+ if (target) openDrillIdRef.current = target.dataset.drillTarget ?? null;
+ }}
style={{
position: 'absolute',
width: stageWidth,