{
  "version": 3,
  "sources": ["/cdn/shop/t/17/assets/sc-preferred-customer.js?scv=sc-preferred-20261008-v10"],
  "sourcesContent": ["import { Component } from '@theme/component';\n\n/** @type {Set<SCPreferredCustomer>} */\nconst instances = new Set();\nconst nativeInstances = new Set();\n// Preserve same-page dismissal through a section replacement when storage is denied.\nconst pageDismissals = new Set();\n/** @type {AbortController | undefined} */\nlet lifecycleController;\nlet identityStale = false;\nconst release = 'sc-preferred-20261008-v10';\nlet generation = 0;\nlet request;\nconst bindingPattern = /^sc-preferred-welcome:v1:[a-f0-9]{64}$/;\n\nconst nativeBindingPattern = /^sc-native-account:v1:[a-f0-9]{64}$/;\nlet nativeAvatars = new WeakMap();\nconst nativeScopes = ['.account-popover', '.account-drawer'];\n\nfunction nativeRegions(root) {\n  const regions = [];\n  for (const scope of nativeScopes) {\n    const buttons = root.querySelectorAll(`${scope} .account-button`);\n    const headings = root.querySelectorAll(`${scope} .account-actions__header`);\n    if (buttons.length !== 1 || headings.length !== 1) return;\n    regions.push({ button: buttons[0], heading: headings[0] });\n  }\n  return regions;\n}\n\nfunction nativeFallback(root) {\n  const icons = root.querySelectorAll('[data-sc-native-account-icon]');\n  const headings = root.querySelectorAll('[data-sc-native-account-heading]');\n  if (icons.length !== 1 || headings.length !== 1) return;\n  return { icon: icons[0].content, heading: headings[0].content };\n}\n\nfunction replacePresentation(target, source) {\n  target.replaceChildren(...Array.from(source.childNodes, (node) => node.cloneNode(true)));\n  target.style.visibility = '';\n}\n\nfunction replaceHeading(target, text, email) {\n  const titles = target.querySelectorAll('.account-actions__title');\n  if (titles.length !== 1) {\n    target.style.visibility = 'hidden';\n    return;\n  }\n  const title = titles[0];\n  title.textContent = text;\n  for (const child of Array.from(target.children)) {\n    if (child !== title) child.remove();\n  }\n  if (email !== undefined) {\n    const address = document.createElement('span');\n    address.className = 'account-actions__email';\n    address.textContent = email;\n    target.append(address);\n  }\n  target.style.visibility = '';\n}\n\nfunction hasUnsafePresentation(root) {\n  for (const node of [root, ...root.querySelectorAll('*')]) {\n    for (const attribute of node.attributes) {\n      if (/^on/i.test(attribute.name) || attribute.name === 'style') return true;\n      if (['src', 'href'].includes(attribute.name)) {\n        try {\n          if (!['https:', 'http:'].includes(new URL(attribute.value, window.location.href).protocol)) return true;\n        } catch {\n          return true;\n        }\n      }\n    }\n  }\n  return root.querySelectorAll('script, iframe, object, embed').length > 0;\n}\n\nfunction validNativeIcon(icon, state) {\n  if (icon.tagName === 'SPAN' && icon.matches('.account-button__icon')) return true;\n  if (state !== 'customer') return false;\n  if (icon.tagName === 'SPAN' && icon.matches('.account-button__avatar')) return icon.children.length === 0;\n  if (icon.tagName !== 'SHOP-USER-AVATAR' || icon.children.length !== 0) return false;\n  // Support the native avatar custom element only with inert, validated\n  // attributes and no supplied subtree; never copy executable response markup.\n  return true;\n}\n\nfunction supportedAvatarAttributes(icon) {\n  return Array.from(icon.attributes).every((attribute) =>\n    ['src', 'class', 'aria-hidden', 'title', 'alt', 'width', 'height', 'loading'].includes(attribute.name));\n}\n\nfunction replaceNativeIcon(target, source, fallback, binding) {\n  const icon = source.children[0];\n  if (icon.matches('.account-button__icon')) {\n    replacePresentation(target, fallback.icon);\n    return;\n  }\n  if (icon.tagName === 'SPAN') {\n    const initial = document.createElement('span');\n    initial.className = 'account-button__avatar';\n    initial.setAttribute('aria-hidden', 'true');\n    initial.textContent = icon.textContent;\n    target.replaceChildren(initial);\n  } else {\n    const trusted = nativeAvatars.get(target);\n    if (trusted?.binding === binding) {\n      target.replaceChildren(trusted.node);\n      target.style.visibility = '';\n      return;\n    }\n    if (!supportedAvatarAttributes(icon)) {\n      replacePresentation(target, fallback.icon);\n      return;\n    }\n    const avatar = document.createElement('shop-user-avatar');\n    for (const attribute of icon.attributes) avatar.setAttribute(attribute.name, attribute.value);\n    target.replaceChildren(avatar);\n  }\n  target.style.visibility = '';\n}\n\nfunction hideNativePresentation() {\n  const header = document.querySelector('#header-component');\n  const root = header?.closest('[id^=\"shopify-section-\"]');\n  if (!root) return;\n  const fallback = nativeFallback(root);\n  // Clear private descendants synchronously before snapshot/cache exposure.\n  // Keep Account triggers, accessible names, headings, dialogs and routes alive.\n  for (const button of root.querySelectorAll('.account-button')) {\n    const avatar = button.children[0];\n    if (header.dataset.scNativeAccountState === 'customer' && nativeBindingPattern.test(header.dataset.scNativeAccountBinding ?? '') &&\n      avatar?.tagName === 'SHOP-USER-AVATAR') {\n      nativeAvatars.set(button, { binding: header.dataset.scNativeAccountBinding, node: avatar });\n    }\n    if (fallback) replacePresentation(button, fallback.icon);\n    else button.style.visibility = 'hidden';\n  }\n  for (const heading of root.querySelectorAll('.account-actions__header')) {\n    if (fallback) replaceHeading(heading, fallback.heading.textContent.trim());\n    else heading.style.visibility = 'hidden';\n  }\n}\n\nfunction validNativeResponse(header, regions, fallback) {\n  const { scNativeAccountState: state, scNativeAccountBinding: binding, scNativeAccountRelease: marker } = header.dataset;\n  if (marker !== release || !regions || !fallback ||\n    (state !== 'guest' && state !== 'customer') ||\n    (state === 'guest' ? binding !== '' : !nativeBindingPattern.test(binding ?? ''))) return false;\n  for (const { button, heading } of regions) {\n    const titles = heading.querySelectorAll('.account-actions__title');\n    const emails = heading.querySelectorAll('.account-actions__email');\n    if (titles.length !== 1 || titles[0].tagName !== 'H2' || titles[0].id !== 'account-drawer-heading' ||\n      heading.children.length !== (state === 'guest' ? 1 : 2) || emails.length !== (state === 'guest' ? 0 : 1) ||\n      heading.children[0] !== titles[0] || (emails.length && (emails[0].tagName !== 'SPAN' || heading.children[1] !== emails[0])) ||\n      button.children.length !== 1 || hasUnsafePresentation(button.children[0]) || hasUnsafePresentation(heading)) return false;\n    // The existing outer native trigger is never copied or replaced. Validate\n    // only its imported presentation child; native on:click remains untouched.\n    const icon = button.children[0];\n    if (!validNativeIcon(icon, state)) return false;\n    if (state === 'guest' && (!icon.matches('.account-button__icon') ||\n      titles[0].textContent.trim() !== fallback.heading.textContent.trim())) return false;\n  }\n  return true;\n}\n\nfunction disconnectLifecycleIfUnused() {\n  if (instances.size || nativeInstances.size) return;\n  hidePersonalization();\n  nativeAvatars = new WeakMap();\n  lifecycleController?.abort();\n  lifecycleController = undefined;\n}\n\nfunction cancelRequest() {\n  generation += 1;\n  if (!request) return;\n  clearTimeout(request.timer);\n  request.controller.abort();\n  request = undefined;\n}\n\n// Never snapshot or expose potentially stale personalization. An epoch guard is\n// also required: cancellation alone cannot stop an already delivered response.\nfunction hidePersonalization() {\n  identityStale = true;\n  cancelRequest();\n  for (const instance of instances) {\n    instance.closeTooltip();\n    instance.hidden = true;\n  }\n  hideNativePresentation();\n}\n\nasync function revalidateIdentity() {\n  if (request || (!instances.size && !nativeInstances.size) || document.visibilityState === 'hidden') return;\n  const header = document.querySelector('#header-component');\n  const wrapper = header?.closest('[id^=\"shopify-section-\"]');\n  const wrapperId = wrapper?.id;\n  const sectionId = wrapperId?.slice('shopify-section-'.length);\n  if (!sectionId || !/^[a-zA-Z0-9_-]+$/.test(sectionId)) return;\n  const nodes = Array.from(instances);\n  const presentations = nodes.map((node) => node.dataset.presentation);\n  const bindings = nodes.map((node) => node.dataset.nativeBinding);\n  const binding = bindings[0];\n  const badges = nodes.filter((node) => node.dataset.presentation === 'badge');\n  const placements = badges.map((node) => node.dataset.placement);\n  const customReady = nodes.length > 0 && presentations.every((value) => ['badge', 'welcome'].includes(value)) &&\n    bindingPattern.test(binding ?? '') && bindings.every((value) => value === binding) &&\n    nodes.every((node) => node.dataset.scPreferredRelease === release &&\n      (node.dataset.presentation !== 'welcome' || node.dataset.dismissalKey === binding)) &&\n    badges.length > 0 && badges.every((node) => wrapper.contains(node)) &&\n    placements.every((value) => ['desktop', 'compact'].includes(value)) && new Set(placements).size === placements.length;\n  if (!customReady && !nativeInstances.size) return;\n  const nativeNodes = Array.from(nativeInstances);\n  const regions = nativeRegions(wrapper);\n  const fallback = nativeFallback(wrapper);\n  const nativeState = header.dataset.scNativeAccountState;\n  const nativeBinding = header.dataset.scNativeAccountBinding;\n  if (!regions || !fallback || header.dataset.scNativeAccountRelease !== release) return;\n\n  const href = window.location.href;\n  const url = new URL(href);\n  url.hash = '';\n  url.searchParams.delete('sections');\n  url.searchParams.set('section_id', sectionId);\n  const epoch = ++generation;\n  url.searchParams.set('_sc_preferred_check', `${Date.now()}-${epoch}`);\n  const controller = new AbortController();\n  const pending = { controller, timer: undefined };\n  request = pending;\n  pending.timer = setTimeout(() => {\n    if (request === pending) cancelRequest();\n  }, 5000);\n  try {\n    // Current page/locale and preview query are retained; native draft/session\n    // cookies accompany this single section GET. No header or form is morphed.\n    const response = await fetch(url.href, {\n      method: 'GET', credentials: 'same-origin', cache: 'no-store', redirect: 'error', signal: controller.signal,\n    });\n    if (!response.ok || response.redirected ||\n      response.url !== url.href || !response.headers.get('content-type')?.includes('text/html')) return;\n    const html = await response.text();\n    if (request !== pending || epoch !== generation || document.visibilityState === 'hidden' || window.location.href !== href) return;\n    const parsed = new DOMParser().parseFromString(html, 'text/html');\n    const wrappers = parsed.querySelectorAll(`[id=\"${wrapperId}\"]`);\n    if (wrappers.length !== 1) return;\n    const incomingWrapper = wrappers[0];\n    const incomingHeaders = incomingWrapper.querySelectorAll('#header-component');\n    if (incomingHeaders.length !== 1) return;\n    const incomingHeader = incomingHeaders[0];\n    const incomingRegions = nativeRegions(incomingWrapper);\n    if (!validNativeResponse(incomingHeader, incomingRegions, fallback)) return;\n    const incoming = Array.from(incomingWrapper.querySelectorAll('sc-preferred-customer'));\n    const customMatches = customReady && incoming.length === badges.length && incoming.every((node) =>\n      node.dataset.presentation === 'badge' && node.dataset.scPreferredRelease === release &&\n      node.dataset.nativeBinding === binding && placements.includes(node.dataset.placement)) &&\n      new Set(incoming.map((node) => node.dataset.placement)).size === placements.length;\n    const currentRegions = nativeRegions(wrapper);\n    if (instances.size !== nodes.length || nativeInstances.size !== nativeNodes.length ||\n      nativeNodes.some((node) => !nativeInstances.has(node)) || document.querySelector('#header-component') !== header ||\n      header.closest('[id^=\"shopify-section-\"]') !== wrapper || wrapper.id !== wrapperId ||\n      header.dataset.scNativeAccountRelease !== release || header.dataset.scNativeAccountState !== nativeState ||\n      header.dataset.scNativeAccountBinding !== nativeBinding || !currentRegions ||\n      currentRegions.some((region, index) => region.button !== regions[index].button || region.heading !== regions[index].heading) ||\n      nodes.some((node, index) => !instances.has(node) || !document.contains(node) ||\n        node.dataset.presentation !== presentations[index] || node.dataset.nativeBinding !== bindings[index] ||\n        node.dataset.scPreferredRelease !== release ||\n        (node.dataset.presentation === 'welcome' && node.dataset.dismissalKey !== binding) ||\n        (node.dataset.presentation === 'badge' && (!wrapper.contains(node) || node.dataset.placement !== placements[badges.indexOf(node)])))) return;\n    // Reconcile only presentation descendants. Native auth controls, sign-in\n    // custom elements, handlers, routes and current focus remain untouched.\n    for (const [index, region] of regions.entries()) {\n      replaceNativeIcon(region.button, incomingRegions[index].button, fallback, incomingHeader.dataset.scNativeAccountBinding);\n      const incomingHeading = incomingRegions[index].heading;\n      replaceHeading(region.heading, incomingHeading.querySelectorAll('.account-actions__title')[0].textContent,\n        incomingHeading.querySelectorAll('.account-actions__email')[0]?.textContent);\n    }\n    header.dataset.scNativeAccountState = incomingHeader.dataset.scNativeAccountState;\n    header.dataset.scNativeAccountBinding = incomingHeader.dataset.scNativeAccountBinding;\n    // Native guest/ordinary-customer state is separate from preferred status.\n    // A changed current customer may receive current native presentation, but\n    // never revives the previous customer's existing preferred UI.\n    if (customMatches && incomingHeader.dataset.scNativeAccountState === 'customer' &&\n      incomingHeader.dataset.scNativeAccountBinding === nativeBinding) {\n      identityStale = false;\n      for (const node of nodes) node.refreshPresentation();\n    }\n  } catch {\n    // Unknown identity remains hidden; shopping controls remain usable.\n  } finally {\n    if (request === pending) {\n      clearTimeout(pending.timer);\n      request = undefined;\n    }\n  }\n}\n\nfunction connectLifecycle() {\n  if (lifecycleController) return;\n  lifecycleController = new AbortController();\n  const options = { signal: lifecycleController.signal };\n  window.addEventListener('pagehide', hidePersonalization, options);\n  window.addEventListener('pageshow', (event) => {\n    // Fresh server-rendered documents are trusted, including background loads.\n    // Only a real cache restoration invalidates their rendered identity.\n    if (event.persisted && !request) hidePersonalization();\n    if (identityStale) void revalidateIdentity();\n  }, options);\n  document.addEventListener('visibilitychange', () => {\n    if (document.visibilityState === 'hidden') {\n      for (const instance of instances) instance.closeTooltip();\n      // A previously invalidated cache check must not reconcile while hidden.\n      // Cancel its epoch so visible return can resume without a late-response race.\n      if (identityStale && request) cancelRequest();\n    } else if (identityStale) void revalidateIdentity();\n  }, options);\n}\n\n/** Explanation only: this controller cannot establish customer eligibility. */\nclass SCPreferredTooltip {\n  #owner;\n  #binding;\n  #controller = new AbortController();\n  #openController;\n  #observer;\n  #resizeObserver;\n  #open = false;\n  #triggerHovered = false;\n  #messageHovered = false;\n  #focused = false;\n  #pinned = false;\n  #suppressed = false;\n  #touchPending = false;\n\n  constructor(owner, trigger, message) {\n    this.#owner = owner;\n    this.#binding = owner.dataset.nativeBinding;\n    this.trigger = trigger;\n    this.message = message;\n    const options = { signal: this.#controller.signal };\n    trigger.addEventListener('pointerenter', (event) => {\n      if (event.pointerType === 'touch') return;\n      if (!this.#triggerHovered) this.#suppressed = false;\n      this.#triggerHovered = true;\n      this.#reconcile();\n    }, options);\n    trigger.addEventListener('pointerleave', (event) => {\n      if (event.pointerType === 'touch') return;\n      this.#triggerHovered = false;\n      this.#leave(event);\n    }, options);\n    message.addEventListener('pointerenter', (event) => {\n      if (event.pointerType === 'touch') return;\n      this.#messageHovered = true;\n      this.#reconcile();\n    }, options);\n    message.addEventListener('pointerleave', (event) => {\n      if (event.pointerType === 'touch') return;\n      this.#messageHovered = false;\n      this.#leave(event);\n    }, options);\n    trigger.addEventListener('pointerdown', (event) => {\n      this.#touchPending = event.pointerType === 'touch';\n    }, options);\n    trigger.addEventListener('pointercancel', () => { this.#touchPending = false; }, options);\n    trigger.addEventListener('focus', () => {\n      if (!this.#focused) this.#suppressed = false;\n      this.#focused = true;\n      if (!this.#touchPending) this.#reconcile();\n    }, options);\n    trigger.addEventListener('blur', () => {\n      this.#focused = false;\n      this.#reconcile();\n    }, options);\n    trigger.addEventListener('click', () => {\n      this.#touchPending = false;\n      if (this.#open) this.close(true);\n      else {\n        this.#suppressed = false;\n        this.#pinned = true;\n        this.#reconcile();\n      }\n    }, options);\n    this.#observer = new MutationObserver(() => {\n      if (!this.#available()) this.reset();\n    });\n    this.#observer.observe(owner, { attributes: true, attributeFilter: [\n      'hidden', 'data-native-binding', 'data-sc-preferred-release', 'data-presentation',\n    ] });\n  }\n\n  #available() {\n    return !identityStale && !this.#owner.hidden && document.visibilityState !== 'hidden' &&\n      instances.has(this.#owner) && this.#owner.dataset.presentation === 'badge' &&\n      this.#owner.dataset.scPreferredRelease === release && bindingPattern.test(this.#binding ?? '') &&\n      this.#owner.dataset.nativeBinding === this.#binding && this.trigger.getClientRects().length > 0;\n  }\n\n  #inside(node, target) {\n    return target instanceof Element && node.contains(target);\n  }\n\n  // The transparent padding is a pointer bridge; the corridor also retains a\n  // diagonal crossing between the trigger and either flipped tooltip edge.\n  #inBridge(event) {\n    const trigger = this.trigger.getBoundingClientRect();\n    const message = this.message.getBoundingClientRect();\n    if ([trigger, message].some((bounds) => event.clientX >= bounds.left && event.clientX <= bounds.right &&\n      event.clientY >= bounds.top && event.clientY <= bounds.bottom)) return true;\n    const top = message.top >= trigger.bottom ? trigger.bottom : message.bottom;\n    const bottom = message.top >= trigger.bottom ? message.top : trigger.top;\n    return event.clientX >= Math.min(trigger.left, message.left) &&\n      event.clientX <= Math.max(trigger.right, message.right) &&\n      event.clientY >= top && event.clientY <= bottom;\n  }\n\n  #leave(event) {\n    if (this.#inside(this.trigger, event.relatedTarget)) this.#triggerHovered = true;\n    if (this.#inside(this.message, event.relatedTarget)) this.#messageHovered = true;\n    if (this.#open && this.#inBridge(event)) return;\n    this.#reconcile();\n  }\n\n  #reconcile() {\n    if (!this.#available()) { this.reset(); return; }\n    if (this.#suppressed || !(this.#triggerHovered || this.#messageHovered || this.#focused || this.#pinned)) {\n      this.close();\n      return;\n    }\n    if (this.#open) return;\n    this.message.hidden = false;\n    this.message.showPopover?.();\n    this.#open = true;\n    this.#position();\n    this.#openController = new AbortController();\n    const options = { signal: this.#openController.signal, capture: true };\n    document.addEventListener('pointermove', (event) => {\n      if (event.pointerType === 'touch') return;\n      this.#triggerHovered = this.#inside(this.trigger, event.target);\n      this.#messageHovered = this.#inside(this.message, event.target);\n      if (!this.#inBridge(event)) this.#reconcile();\n    }, options);\n    document.addEventListener('pointerdown', (event) => {\n      if (!this.#inside(this.trigger, event.target) && !this.#inside(this.message, event.target)) this.close(true);\n    }, options);\n    document.addEventListener('keydown', (event) => {\n      if (event.key === 'Escape') this.close(true);\n    }, options);\n    window.addEventListener('resize', this.#position, options);\n    document.addEventListener('scroll', this.#position, options);\n    window.visualViewport?.addEventListener('resize', this.#position, options);\n    window.visualViewport?.addEventListener('scroll', this.#position, options);\n    this.#resizeObserver = new ResizeObserver(this.#position);\n    this.#resizeObserver.observe(this.trigger);\n    this.#resizeObserver.observe(this.message);\n  }\n\n  #position = () => {\n    if (!this.#available()) { this.reset(); return; }\n    const viewport = window.visualViewport;\n    const left = (viewport?.offsetLeft ?? 0) + 12;\n    const top = (viewport?.offsetTop ?? 0) + 12;\n    const width = (viewport?.width ?? window.innerWidth) - 24;\n    const height = (viewport?.height ?? window.innerHeight) - 24;\n    this.message.style.setProperty('--sc-tooltip-max-width', `${width}px`);\n    this.message.style.setProperty('--sc-tooltip-max-height', `${height}px`);\n    const anchor = this.trigger.getBoundingClientRect();\n    const bounds = this.message.getBoundingClientRect();\n    const below = anchor.bottom + bounds.height <= top + height;\n    this.message.dataset.side = below ? 'below' : 'above';\n    this.message.style.left = `${Math.max(left, Math.min(anchor.right - bounds.width, left + width - bounds.width))}px`;\n    this.message.style.top = `${Math.max(top, Math.min(below ? anchor.bottom : anchor.top - bounds.height, top + height - bounds.height))}px`;\n  };\n\n  close(suppress = false) {\n    if (suppress) this.#suppressed = true;\n    this.#pinned = false;\n    this.#openController?.abort();\n    this.#openController = undefined;\n    this.#resizeObserver?.disconnect();\n    this.#resizeObserver = undefined;\n    if (this.#open) {\n      try { this.message.hidePopover?.(); } catch { /* Already detached or closed. */ }\n    }\n    this.message.hidden = true;\n    this.#open = false;\n  }\n\n  reset() {\n    this.close(true);\n    this.#triggerHovered = false;\n    this.#messageHovered = false;\n    this.#focused = false;\n    this.#touchPending = false;\n  }\n\n  disconnect() {\n    this.reset();\n    this.#controller.abort();\n    this.#observer.disconnect();\n  }\n}\n\n/**\n * Presentation-only enhancement for server-rendered preferred-customer UI.\n * Storage hides a welcome message; it cannot create status or prove identity.\n * @extends {Component<{dismissButton: HTMLButtonElement | undefined}>}\n */\nclass SCPreferredCustomer extends Component {\n  #pageDismissed = false;\n  #lastKey;\n  #tooltip;\n\n  #connectTooltip() {\n    const { tooltipTrigger, tooltipMessage } = this.refs;\n    if (this.#tooltip?.trigger === tooltipTrigger && this.#tooltip?.message === tooltipMessage) return;\n    this.#tooltip?.disconnect();\n    this.#tooltip = undefined;\n    if (this.dataset.presentation === 'badge' && tooltipTrigger instanceof HTMLElement && tooltipMessage instanceof HTMLElement) {\n      this.#tooltip = new SCPreferredTooltip(this, tooltipTrigger, tooltipMessage);\n    }\n  }\n\n  closeTooltip() {\n    this.#tooltip?.reset();\n  }\n\n  connectedCallback() {\n    super.connectedCallback();\n    const newlyConnected = !instances.has(this);\n    instances.add(this);\n    connectLifecycle();\n    this.dataset.enhanced = 'true';\n    this.#connectTooltip();\n    this.refreshPresentation();\n    if (identityStale && document.visibilityState !== 'hidden') {\n      if (newlyConnected) cancelRequest();\n      void revalidateIdentity();\n    }\n  }\n\n  updatedCallback() {\n    super.updatedCallback();\n    this.#connectTooltip();\n    this.refreshPresentation();\n  }\n\n  disconnectedCallback() {\n    this.#tooltip?.disconnect();\n    this.#tooltip = undefined;\n    super.disconnectedCallback();\n    instances.delete(this);\n    disconnectLifecycleIfUnused();\n  }\n\n  #dismissalKey() {\n    const key = this.dataset.dismissalKey;\n    return typeof key === 'string' && /^sc-preferred-welcome:v\\d+:[a-f0-9]{64}$/.test(key) ? key : undefined;\n  }\n\n  refreshPresentation() {\n    if (identityStale) {\n      this.closeTooltip();\n      this.hidden = true;\n      return;\n    }\n    if (this.dataset.presentation !== 'welcome') {\n      this.hidden = false;\n      return;\n    }\n\n    const key = this.#dismissalKey();\n    if (key !== this.#lastKey) {\n      this.#pageDismissed = false;\n      this.#lastKey = key;\n    }\n    let storedDismissal = false;\n    try {\n      storedDismissal = Boolean(key && window.localStorage.getItem(key) === 'dismissed');\n    } catch {\n      // Storage-denied browsers keep the current-page preference only.\n    }\n    this.hidden = this.#pageDismissed || Boolean(key && pageDismissals.has(key)) || storedDismissal;\n    if (this.refs.dismissButton) this.refs.dismissButton.hidden = false;\n  }\n\n  /** @param {MouseEvent} event - Framework-routed click on the close control. */\n  dismiss(event) {\n    if (this.dataset.presentation !== 'welcome' || !this.refs.dismissButton) return;\n    if (!(event.target instanceof Element) || !this.refs.dismissButton.contains(event.target)) return;\n\n    if (document.activeElement === this.refs.dismissButton) {\n      const accountButton = Array.from(document.querySelectorAll('#header-component .account-button'))\n        .find((button) => button instanceof HTMLElement && button.getClientRects().length > 0);\n      if (accountButton instanceof HTMLElement) accountButton.focus({ preventScroll: true });\n    }\n    this.#pageDismissed = true;\n    this.hidden = true;\n    const key = this.#dismissalKey();\n    if (key) pageDismissals.add(key);\n    try {\n      if (key) window.localStorage.setItem(key, 'dismissed');\n    } catch {\n      // Dismissal already succeeded on this page.\n    }\n  }\n}\n\nif (!customElements.get('sc-preferred-customer')) {\n  customElements.define('sc-preferred-customer', SCPreferredCustomer);\n}\n\n\n/** Native account presentation lifecycle; never establishes preferred status. */\nclass SCNativeAccountPresentation extends Component {\n  connectedCallback() {\n    super.connectedCallback();\n    const newlyConnected = !nativeInstances.has(this);\n    nativeInstances.add(this);\n    connectLifecycle();\n    if (identityStale && document.visibilityState !== 'hidden') {\n      if (newlyConnected) cancelRequest();\n      void revalidateIdentity();\n    }\n  }\n\n  disconnectedCallback() {\n    super.disconnectedCallback();\n    nativeInstances.delete(this);\n    disconnectLifecycleIfUnused();\n  }\n}\n\nif (!customElements.get('sc-native-account-presentation')) {\n  customElements.define('sc-native-account-presentation', SCNativeAccountPresentation);\n}\n"],
  "mappings": "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",
  "names": []
}
