code: function intersectViewportAbove([entry]) {
      updateDirection();
      const { isIntersecting, target } = entry;
      const index = getIndex(target);
      const ss = stepStates[index];
  
      if (
        isIntersecting &&
        direction === 'down' &&
        ss.direction !== 'down' &&
        ss.state !== 'enter'
      ) {
        notifyStepEnter(target, 'down');
        notifyStepExit(target, 'down');
      }
    }
docs: /*
  if there is a scroll event where a step never intersects (therefore
  skipping an enter/exit trigger), use this fallback to detect if it is
  in view