{"version":3,"file":"vuejs-tour.umd.cjs","sources":["../src/easing.ts","../src/components/VTour.vue"],"sourcesContent":["// Robert Penner's easing functions\n// Credit: http://robertpenner.com/easing/\n// Ported for ES6 from: https://github.com/jaxgeller/ez.js\n\nexport type EasingFunction = (\n  t: number,\n  b: number,\n  c: number,\n  d: number\n) => number;\n\n// Quadratic\nexport const easeInQuad: EasingFunction = (t, b, c, d) => {\n  t /= d;\n  return c * t * t + b;\n};\n\nexport const easeOutQuad: EasingFunction = (t, b, c, d) => {\n  t /= d;\n  return -c * t * (t - 2) + b;\n};\n\nexport const easeInOutQuad: EasingFunction = (t, b, c, d) => {\n  t /= d / 2;\n  if (t < 1) return (c / 2) * t * t + b;\n  t--;\n  return (-c / 2) * (t * (t - 2) - 1) + b;\n};\n\n// Cubic\nexport const easeInCubic: EasingFunction = (t, b, c, d) => {\n  t /= d;\n  return c * t * t * t + b;\n};\n\nexport const easeOutCubic: EasingFunction = (t, b, c, d) => {\n  t /= d;\n  t--;\n  return c * (t * t * t + 1) + b;\n};\n\nexport const easeInOutCubic: EasingFunction = (t, b, c, d) => {\n  t /= d / 2;\n  if (t < 1) return (c / 2) * t * t * t + b;\n  t -= 2;\n  return (c / 2) * (t * t * t + 2) + b;\n};\n\n// Quartic\nexport const easeInQuart: EasingFunction = (t, b, c, d) => {\n  t /= d;\n  return c * t * t * t * t + b;\n};\n\nexport const easeOutQuart: EasingFunction = (t, b, c, d) => {\n  t /= d;\n  t--;\n  return -c * (t * t * t * t - 1) + b;\n};\n\nexport const easeInOutQuart: EasingFunction = (t, b, c, d) => {\n  t /= d / 2;\n  if (t < 1) return (c / 2) * t * t * t * t + b;\n  t -= 2;\n  return (-c / 2) * (t * t * t * t - 2) + b;\n};\n\n// Quintic\nexport const easeInQuint: EasingFunction = (t, b, c, d) => {\n  t /= d;\n  return c * t * t * t * t * t + b;\n};\n\nexport const easeOutQuint: EasingFunction = (t, b, c, d) => {\n  t /= d;\n  t--;\n  return c * (t * t * t * t * t + 1) + b;\n};\n\nexport const easeInOutQuint: EasingFunction = (t, b, c, d) => {\n  t /= d / 2;\n  if (t < 1) return (c / 2) * t * t * t * t * t + b;\n  t -= 2;\n  return (c / 2) * (t * t * t * t * t + 2) + b;\n};\n\n// Map of easing function names to implementations\nexport const easingFunctions: Record<string, EasingFunction> = {\n  easeInQuad,\n  easeOutQuad,\n  easeInOutQuad,\n  easeInCubic,\n  easeOutCubic,\n  easeInOutCubic,\n  easeInQuart,\n  easeOutQuart,\n  easeInOutQuart,\n  easeInQuint,\n  easeOutQuint,\n  easeInOutQuint,\n};\n","<script setup lang=\"ts\">\nimport { createPopper, type NanoPop } from 'nanopop';\nimport {\n  computed,\n  nextTick,\n  onMounted,\n  onUnmounted,\n  reactive,\n  ref,\n  watch,\n} from 'vue';\nimport jump from 'jump.js';\nimport type {\n  VTourProps,\n  VTourEmits,\n  VTourData,\n  VTourExposedMethods,\n} from '../Types';\nimport { easeInOutQuad, easingFunctions } from '../easing';\n\n// Props with defaults\n// Note: widen the local type so this compiles even if VTourProps isn't updated yet.\ntype LocalVTourProps = VTourProps & { restartOnPropChange?: boolean };\n\nconst props = withDefaults(defineProps<LocalVTourProps>(), {\n  name: 'tour',\n  backdrop: false,\n  autoStart: false,\n  startDelay: 0,\n  highlight: false,\n  margin: 8,\n  defaultPlacement: 'right',\n  saveToLocalStorage: 'never',\n  hideSkip: false,\n  hideArrow: false,\n  noScroll: false,\n  resizeTimeout: 250,\n  enableA11y: false, // Conservative default - can be enabled when accessibility is fully vetted\n  keyboardNav: true,\n  ariaLabel: 'Guided tour',\n  teleportDelay: 100,\n  // New flag to control hot-switch behavior (on by default for backward compatibility)\n  restartOnPropChange: true,\n});\n\n// Emit definitions using standardized VTourEmits type\nconst emit = defineEmits<VTourEmits>();\n\n// Reactive state with cleaner naming\nconst saveKey = computed(() => (props.name ? `vjt-${props.name}` : 'vjt-tour'));\nconst vTour = ref<NanoPop>();\n\nconst currentStepIndex = ref(0);\nconst lastStepIndex = ref(0);\nconst nextStepIndex = ref(1);\n\nconst getCurrentStep = computed(() => props.steps[currentStepIndex.value]);\nconst getLastStep = computed(() => props.steps[lastStepIndex.value]);\nconst getNextStep = computed(() => props.steps[nextStepIndex.value]);\n\n// Reactive data structure for compatibility\nconst _CurrentStep: VTourData = reactive({\n  currentStep: currentStepIndex,\n  lastStep: lastStepIndex,\n  nextStep: nextStepIndex,\n  getCurrentStep,\n  getLastStep,\n  getNextStep,\n});\n\nconst isLastStep = computed(\n  () => currentStepIndex.value === props.steps.length - 1\n);\n\nconst getNextLabel = computed(() => {\n  return isLastStep.value\n    ? (props.buttonLabels?.done ?? 'Done')\n    : (props.buttonLabels?.next ?? 'Next');\n});\n\nconst getClipPath = ref('');\n\n// Reactive visibility controls for modal behavior\nconst tourVisible = ref(false);\nconst backdropVisible = ref(false);\nconst currentPlacement = ref('right');\nconst isTransitioning = ref(false); // Hide tooltip during step transitions\n\n// Unique IDs and classes for this tour instance (based on name prop)\n// Empty name = backward compatible IDs (vjt-tooltip, vjt-backdrop)\n// Non-empty name = scoped IDs (vjt-myname-tooltip, vjt-myname-backdrop)\nconst tourId = computed(() => (props.name ? `vjt-${props.name}` : 'vjt'));\nconst tooltipId = computed(() => `${tourId.value}-vjt-tooltip`);\nconst backdropId = computed(() => `${tourId.value}-vjt-backdrop`);\nconst arrowId = computed(() => `${tourId.value}-vjt-arrow`);\nconst highlightClass = computed(() =>\n  props.name ? `${props.name}vjt-highlight` : 'vjt-highlight'\n);\n\n// Cache DOM element references (populated after Teleport renders)\nconst _Tooltip = ref<HTMLElement>();\nconst _Backdrop = ref<HTMLElement>();\n\n// Accessibility: Store previous focus to restore on close\nlet previousFocus: HTMLElement | null = null;\n\n// Default jump.js scroll options (can be overridden via props)\nconst DEFAULT_JUMP_OPTIONS = {\n  duration: 500,\n  offset: -100,\n};\n\n// Helper to check if tour was completed and saved to localStorage\nconst isTourCompleted = (): boolean => {\n  return localStorage.getItem(saveKey.value) === 'true';\n};\n\n// Track the props used when the tour last started, to allow hot-switch restarts\nconst lastStarted = reactive<{\n  name: string | undefined;\n  stepsRef: unknown | null;\n}>({\n  name: undefined,\n  stepsRef: null,\n});\n\nconst startTour = async (): Promise<void> => {\n  if (isTourCompleted()) return;\n\n  // If tour is visible, allow \"hot-switch\" restart only when incoming props changed\n  if (tourVisible.value) {\n    const nameChanged = props.name !== lastStarted.name;\n    const stepsChanged = props.steps !== lastStarted.stepsRef;\n    if (!(nameChanged || stepsChanged)) {\n      // No meaningful change -> no-op for backward behavior\n      return;\n    }\n    // Cleanly stop current tour, then proceed to start with new props\n    stopTour();\n    await nextTick();\n  }\n\n  if (props.saveToLocalStorage === 'step') {\n    const savedStep = localStorage.getItem(saveKey.value);\n    currentStepIndex.value = parseInt(savedStep || '0', 10);\n\n    if (currentStepIndex.value > 0) {\n      lastStepIndex.value = Math.max(currentStepIndex.value - 1, 0);\n      nextStepIndex.value = currentStepIndex.value + 1;\n    }\n  } else {\n    currentStepIndex.value = 0;\n  }\n\n  startDelayTimer = setTimeout(async () => {\n    await beforeStep(currentStepIndex.value);\n\n    const currentStepData = getCurrentStep.value;\n\n    if (!currentStepData) {\n      console.warn('No step data available');\n      return;\n    }\n\n    const targetElement = document.querySelector(\n      currentStepData.target\n    ) as HTMLElement;\n\n    if (!targetElement) {\n      console.warn(`Tour target element not found: ${currentStepData.target}`);\n      return;\n    }\n\n    // Wait for Teleport to render DOM elements, then cache references\n    await new Promise((resolve) => {\n      teleportDelayTimer = setTimeout(resolve, props.teleportDelay);\n    });\n\n    // Vue ref is preferred, but if not yet bound, fall back to query (defensive)\n    if (!_Tooltip.value) {\n      _Tooltip.value = document.querySelector(\n        `#${tooltipId.value}`\n      ) as HTMLElement;\n    }\n\n    if (!_Backdrop.value) {\n      _Backdrop.value = document.querySelector(\n        `#${backdropId.value}`\n      ) as HTMLElement;\n    }\n\n    if (!_Tooltip.value) {\n      console.warn('Tooltip element not found in DOM');\n      return;\n    }\n\n    // Store current focus for accessibility restoration\n    if (props.enableA11y && typeof document !== 'undefined') {\n      previousFocus = document.activeElement as HTMLElement;\n    }\n\n    // Show tour content (but keep hidden via isTransitioning) so nanopop can calculate dimensions\n    tourVisible.value = true;\n    isTransitioning.value = true;\n\n    // Wait for Vue to render the content in the DOM with proper dimensions\n    await nextTick();\n\n    // (Re)create popper for this run\n    {\n      const shouldHighlight = props.highlight || currentStepData.highlight;\n      const calculatedMargin = props.margin || (shouldHighlight ? 14 : 8);\n\n      vTour.value = createPopper(targetElement, _Tooltip.value, {\n        position: currentStepData.placement || props.defaultPlacement,\n        margin: calculatedMargin,\n      });\n    }\n\n    await updatePosition();\n\n    // Show tooltip after positioning is complete\n    isTransitioning.value = false;\n\n    // Focus the tooltip for accessibility\n    if (props.enableA11y) {\n      await nextTick();\n      _Tooltip.value?.focus();\n    }\n\n    // Record the props used for this start so we can detect future hot-switches\n    lastStarted.name = props.name;\n    lastStarted.stepsRef = props.steps;\n\n    emit('onTourStart');\n  }, props.startDelay);\n};\n\nconst stopTour = (): void => {\n  // Clear any pending timeouts\n  clearTimeout(startDelayTimer);\n  clearTimeout(teleportDelayTimer);\n\n  // Hide tour and backdrop immediately\n  tourVisible.value = false;\n  backdropVisible.value = false;\n  isTransitioning.value = false;\n\n  // Remove highlights for this tour instance only\n  document\n    .querySelectorAll(`.${highlightClass.value}`)\n    .forEach((element) => element.classList.remove(highlightClass.value));\n\n  // Destroy nanopop instance so it can be recreated on next tour start\n  if (vTour.value) {\n    vTour.value = undefined;\n  }\n\n  // Restore previous focus for accessibility\n  if (props.enableA11y && previousFocus) {\n    previousFocus.focus();\n    previousFocus = null;\n  }\n};\n\nconst resetTour = (shouldRestart = false): void => {\n  stopTour();\n  currentStepIndex.value = 0;\n  lastStepIndex.value = 0;\n  nextStepIndex.value = 1;\n  localStorage.removeItem(saveKey.value);\n  if (shouldRestart) startTour();\n};\n\nconst nextStep = async (): Promise<void> => {\n  await beforeStep(nextStepIndex.value);\n\n  // Hide tooltip during transition to prevent content flash\n  isTransitioning.value = true;\n\n  lastStepIndex.value = currentStepIndex.value;\n  currentStepIndex.value++;\n\n  if (currentStepIndex.value > props.steps.length - 1) {\n    endTour();\n    return;\n  }\n\n  nextStepIndex.value = currentStepIndex.value + 1;\n  await updatePosition();\n\n  // Show tooltip after positioning is complete\n  isTransitioning.value = false;\n};\n\nconst lastStep = async (): Promise<void> => {\n  await beforeStep(lastStepIndex.value);\n\n  // Hide tooltip during transition to prevent content flash\n  isTransitioning.value = true;\n\n  currentStepIndex.value = lastStepIndex.value;\n  lastStepIndex.value = Math.max(lastStepIndex.value - 1, 0);\n\n  if (currentStepIndex.value < 0) {\n    endTour();\n    return;\n  }\n\n  nextStepIndex.value = currentStepIndex.value + 1;\n  await updatePosition();\n\n  // Show tooltip after positioning is complete\n  isTransitioning.value = false;\n};\n\nconst endTour = (): void => {\n  stopTour();\n  if (props.saveToLocalStorage !== 'never') {\n    localStorage.setItem(saveKey.value, 'true');\n  }\n  emit('onTourEnd');\n};\n\nconst goToStep = async (stepIndex: number): Promise<void> => {\n  if (stepIndex < 0 || stepIndex >= props.steps.length) {\n    console.warn(`Invalid step index: ${stepIndex}`);\n    return;\n  }\n\n  await beforeStep(stepIndex);\n\n  // Hide tooltip during transition to prevent content flash\n  isTransitioning.value = true;\n\n  currentStepIndex.value = stepIndex;\n  lastStepIndex.value = Math.max(stepIndex - 1, 0);\n  nextStepIndex.value = stepIndex + 1;\n  await updatePosition();\n\n  // Show tooltip after positioning is complete\n  isTransitioning.value = false;\n};\n\nconst beforeStep = async (step: number): Promise<void> => {\n  const stepData = props.steps[step];\n  if (stepData?.onBefore) {\n    await stepData.onBefore();\n  }\n};\n\n// Helper function to set the placement attribute for CSS styling\n// Sets data-arrow attribute based on tooltip placement so CSS can style the arrow accordingly\nconst setPlacementAttribute = (placement: string | null | undefined): void => {\n  if (!placement || !_Tooltip.value) return;\n\n  _Tooltip.value.setAttribute('data-arrow', placement);\n  currentPlacement.value = placement;\n};\n\n// Core positioning logic - updates tooltip, highlight, and backdrop without scrolling or events\nconst updateTooltipPosition = (): void => {\n  const currentStepData = getCurrentStep.value;\n  if (!currentStepData || !vTour.value) return;\n\n  const targetElement = document.querySelector(\n    currentStepData.target\n  ) as HTMLElement;\n\n  if (!targetElement) return;\n\n  // Update highlight and backdrop for current position\n  updateHighlight();\n  updateBackdrop();\n\n  // Update popper position and set placement attribute\n  const actualPlacement = vTour.value.update({\n    reference: targetElement,\n    position: currentStepData.placement || props.defaultPlacement,\n  });\n\n  setPlacementAttribute(actualPlacement || props.defaultPlacement);\n};\n\n// Full position update with optional scrolling, callbacks, and events\nconst updatePosition = async (): Promise<void> => {\n  const currentStepData = getCurrentStep.value;\n  if (!currentStepData) return;\n\n  const targetElement = document.querySelector(\n    currentStepData.target\n  ) as HTMLElement;\n\n  if (!targetElement || !_Tooltip.value || !vTour.value) {\n    return;\n  }\n\n  // Scroll to target first if needed\n  if (!props.noScroll && !currentStepData.noScroll) {\n    await new Promise<void>((resolve) => {\n      // Merge jump options: step > global > defaults\n      const merged = {\n        duration: DEFAULT_JUMP_OPTIONS.duration,\n        offset: DEFAULT_JUMP_OPTIONS.offset,\n        easing: 'easeInOutQuad',\n        a11y: props.enableA11y,\n        ...props.jumpOptions,\n        ...currentStepData.jumpOptions,\n      };\n\n      // Map string easing name to function (jump.js requirement)\n      const easingFn = easingFunctions[merged.easing] || easeInOutQuad;\n\n      jump(targetElement, {\n        duration: merged.duration,\n        offset: merged.offset,\n        easing: easingFn,\n        a11y: merged.a11y,\n        callback: () => resolve(),\n      });\n    });\n  }\n\n  // Update tooltip position (includes highlight, backdrop, and nanopop positioning)\n  updateTooltipPosition();\n\n  if (props.saveToLocalStorage === 'step') {\n    localStorage.setItem(saveKey.value, currentStepIndex.value.toString());\n  }\n\n  if (currentStepData.onAfter) {\n    await currentStepData.onAfter();\n  }\n\n  emit('onTourStep', currentStepIndex.value);\n};\n\nconst updateHighlight = (): void => {\n  // Remove existing highlights for this tour instance only\n  document\n    .querySelectorAll(`.${highlightClass.value}`)\n    .forEach((element) => element.classList.remove(highlightClass.value));\n\n  const currentStepData = getCurrentStep.value;\n\n  // Check if highlighting is disabled or no step data\n  if (!currentStepData || (!props.highlight && !currentStepData.highlight)) {\n    // Reset clip-path when highlighting is disabled\n    getClipPath.value = '';\n    return;\n  }\n\n  const targetElement = document.querySelector(\n    currentStepData.target\n  ) as HTMLElement;\n\n  if (!targetElement) {\n    return;\n  }\n\n  targetElement.classList.add(highlightClass.value);\n  getClipPath.value = getClipPathValues(`.${highlightClass.value}`);\n};\n\nconst updateBackdrop = (): void => {\n  const currentStepData = getCurrentStep.value;\n  // Show backdrop if global backdrop is enabled OR step has backdrop\n  const shouldShowBackdrop = props.backdrop || !!currentStepData?.backdrop;\n\n  backdropVisible.value = shouldShowBackdrop;\n};\n\n// Redraw layers for resize/scroll events - updates position without scrolling or events\nconst redrawLayers = (): void => {\n  if (isTourCompleted()) return;\n  if (!tourVisible.value) return; // Only redraw if tour is active\n\n  updateTooltipPosition();\n};\n\n// Resize handling with debounce\nlet resizeTimer: ReturnType<typeof setTimeout> | undefined;\nlet startDelayTimer: ReturnType<typeof setTimeout> | undefined;\nlet teleportDelayTimer: ReturnType<typeof setTimeout> | undefined;\n\nconst onResizeEnd = (): void => {\n  if (isTourCompleted()) return;\n\n  clearTimeout(resizeTimer);\n  redrawLayers();\n\n  resizeTimer = setTimeout(() => {\n    redrawLayers();\n  }, props.resizeTimeout);\n};\n\n// Utility functions\nfunction getClipPathValues(targetSelector: string): string {\n  // Guard against SSR environment where document is not available\n  if (typeof document === 'undefined') return '';\n\n  const targetElement = document.querySelector(targetSelector) as HTMLElement;\n  if (!targetElement) return '';\n\n  const rect = targetElement.getBoundingClientRect();\n  return `polygon(\n    0% 0%,\n    0% 100%,\n    ${rect.left}px 100%,\n    ${rect.left}px ${rect.top}px,\n    ${rect.right}px ${rect.top}px,\n    ${rect.right}px ${rect.bottom}px,\n    ${rect.left}px ${rect.bottom}px,\n    ${rect.left}px 100%,\n    100% 100%,\n    100% 0%\n  )`;\n}\n\n// Initialize clip path (will be updated when highlight is applied)\ngetClipPath.value = '';\n\n// Scroll handling to update position during scroll\nconst onScroll = (): void => {\n  if (isTourCompleted()) return;\n  if (!tourVisible.value) return; // Only update if tour is active\n\n  redrawLayers();\n};\n\n// Keyboard navigation handler\nconst onKeydown = (event: KeyboardEvent): void => {\n  if (!tourVisible.value || !props.enableA11y || !props.keyboardNav) return;\n\n  switch (event.key) {\n    case 'Escape':\n      endTour();\n      event.preventDefault();\n      break;\n    case 'ArrowRight':\n    case 'Enter':\n      // Only handle Enter if it's not from a button click\n      if (\n        event.key === 'Enter' &&\n        (event.target as HTMLElement)?.tagName === 'BUTTON'\n      ) {\n        return;\n      }\n      nextStep();\n      event.preventDefault();\n      break;\n    case 'ArrowLeft':\n      if (currentStepIndex.value > 0) {\n        lastStep();\n        event.preventDefault();\n      }\n      break;\n  }\n};\n\n// Lifecycle hooks\nonMounted(() => {\n  // Vue refs will be set automatically for Teleported elements\n  // No need to manually query DOM for refs\n\n  // Set up keyboard navigation if enabled\n  if (props.keyboardNav) {\n    window.addEventListener('keydown', onKeydown);\n  }\n\n  if (props.autoStart) {\n    startTour();\n  }\n\n  window.addEventListener('resize', onResizeEnd);\n  window.addEventListener('scroll', onScroll, true); // Use capture phase to catch all scrolls\n});\n\nonUnmounted(() => {\n  // Clean up event listeners\n  if (props.keyboardNav) {\n    window.removeEventListener('keydown', onKeydown);\n  }\n  window.removeEventListener('resize', onResizeEnd);\n  window.removeEventListener('scroll', onScroll, true);\n\n  // Clear all timers\n  clearTimeout(resizeTimer);\n  clearTimeout(startDelayTimer);\n  clearTimeout(teleportDelayTimer);\n\n  // Ensure tour is stopped and cleaned up when component unmounts\n  if (tourVisible.value) {\n    stopTour();\n  }\n});\n\n// Seamless auto-switching, gated by restartOnPropChange\nwatch(\n  () => [props.name, props.steps, props.restartOnPropChange],\n  async ([newName, newSteps, enabled], [oldName, oldSteps]) => {\n    if (!enabled) return; // opt-out supported\n    if (!tourVisible.value) return; // only when tour is currently visible\n\n    const nameChanged = newName !== oldName;\n    const stepsChanged = newSteps !== oldSteps;\n    if (!(nameChanged || stepsChanged)) return;\n\n    // Clean up old highlights manually if name changed\n    if (nameChanged && oldName !== undefined) {\n      const oldHighlightClass = oldName\n        ? `vjt-highlight-${oldName}`\n        : 'vjt-highlight';\n      document\n        .querySelectorAll(`.${oldHighlightClass}`)\n        .forEach((element) => element.classList.remove(oldHighlightClass));\n    }\n\n    stopTour();\n    await nextTick();\n    startTour(); // uses current props\n  }\n);\n\n// Expose public API\ndefineExpose<VTourExposedMethods>({\n  startTour,\n  nextStep,\n  lastStep,\n  endTour,\n  stopTour,\n  goToStep,\n  resetTour,\n  updatePosition,\n  updateHighlight,\n  updateBackdrop,\n});\n</script>\n\n<template>\n  <Teleport to=\"body\">\n    <div\n      class=\"vjt-modal-overlay\"\n      :class=\"{ 'vjt-tour-active': tourVisible }\"\n      :data-hidden=\"!tourVisible\"\n    >\n      <div\n        :id=\"backdropId\"\n        :data-hidden=\"!backdropVisible\"\n        :style=\"{ 'clip-path': getClipPath }\"\n      />\n      <div\n        :id=\"tooltipId\"\n        ref=\"_Tooltip\"\n        role=\"dialog\"\n        :aria-modal=\"enableA11y ? 'true' : undefined\"\n        :aria-label=\"getCurrentStep?.ariaLabel || ariaLabel\"\n        :aria-describedby=\"`${tooltipId}-content`\"\n        :tabindex=\"enableA11y ? '0' : undefined\"\n        :data-hidden=\"!tourVisible || isTransitioning\"\n      >\n        <div v-if=\"tourVisible\" :key=\"`step-${currentStepIndex}`\">\n          <!-- Screen reader announcement for step changes -->\n          <div\n            v-if=\"enableA11y\"\n            role=\"status\"\n            aria-live=\"polite\"\n            aria-atomic=\"true\"\n            class=\"vjt-sr-only\"\n          >\n            Step {{ currentStepIndex + 1 }} of {{ props.steps.length }}\n          </div>\n\n          <div :id=\"arrowId\" v-if=\"!hideArrow\"></div>\n          <slot\n            name=\"content\"\n            :current-step-index=\"currentStepIndex\"\n            :current-step-data=\"getCurrentStep\"\n          >\n            <div\n              :id=\"`${tooltipId}-content`\"\n              v-html=\"_CurrentStep.getCurrentStep?.content\"\n            />\n          </slot>\n\n          <slot\n            name=\"actions\"\n            :lastStep=\"lastStep\"\n            :nextStep=\"nextStep\"\n            :endTour=\"endTour\"\n            :getNextLabel=\"getNextLabel\"\n            :props=\"props\"\n            :_CurrentStep=\"_CurrentStep\"\n          >\n            <div class=\"vjt-actions\">\n              <button\n                v-if=\"lastStepIndex < currentStepIndex\"\n                type=\"button\"\n                @click.prevent=\"lastStep\"\n                :aria-label=\"\n                  enableA11y\n                    ? `Go to previous step, step ${currentStepIndex} of ${props.steps.length}`\n                    : undefined\n                \"\n              >\n                {{ props.buttonLabels?.back || 'Back' }}\n              </button>\n\n              <button\n                v-if=\"!props.hideSkip\"\n                type=\"button\"\n                @click.prevent=\"endTour\"\n                :aria-label=\"enableA11y ? 'Skip tour and close' : undefined\"\n              >\n                {{ props.buttonLabels?.skip || 'Skip' }}\n              </button>\n\n              <button\n                type=\"button\"\n                @click.prevent=\"nextStep\"\n                :aria-label=\"\n                  enableA11y\n                    ? isLastStep\n                      ? 'Finish tour'\n                      : `Go to next step, step ${nextStepIndex + 1} of ${props.steps.length}`\n                    : undefined\n                \"\n              >\n                {{ getNextLabel }}\n              </button>\n            </div>\n          </slot>\n        </div>\n      </div>\n    </div>\n  </Teleport>\n</template>\n"],"names":["easeInQuad","t","b","c","d","easeOutQuad","easeInOutQuad","easingFunctions","props","__props","emit","__emit","saveKey","computed","vTour","ref","currentStepIndex","lastStepIndex","nextStepIndex","getCurrentStep","getLastStep","getNextStep","_CurrentStep","reactive","isLastStep","getNextLabel","getClipPath","tourVisible","backdropVisible","currentPlacement","isTransitioning","tourId","tooltipId","backdropId","arrowId","highlightClass","_Tooltip","_Backdrop","previousFocus","DEFAULT_JUMP_OPTIONS","isTourCompleted","lastStarted","startTour","nameChanged","stepsChanged","stopTour","nextTick","savedStep","startDelayTimer","beforeStep","currentStepData","targetElement","resolve","teleportDelayTimer","shouldHighlight","calculatedMargin","createPopper","updatePosition","element","resetTour","shouldRestart","nextStep","endTour","lastStep","goToStep","stepIndex","step","stepData","setPlacementAttribute","placement","updateTooltipPosition","updateHighlight","updateBackdrop","actualPlacement","merged","easingFn","jump","getClipPathValues","shouldShowBackdrop","redrawLayers","resizeTimer","onResizeEnd","targetSelector","rect","onScroll","onKeydown","event","onMounted","onUnmounted","watch","newName","newSteps","enabled","oldName","oldSteps","oldHighlightClass","__expose","_createBlock","_Teleport","_createElementVNode","_normalizeClass","_createElementBlock","_openBlock","_hoisted_4","_toDisplayString","_renderSlot","_ctx","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10"],"mappings":"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"}