{
  "version": 3,
  "sources": ["/cdn/shop/t/165/assets/fu-homepage-refinements.js?fu_v=20261029-2"],
  "sourcesContent": ["(() => {\n  const doc = document.documentElement;\n  if (doc.dataset.fuCarouselReady === 'true') return;\n  doc.dataset.fuCarouselReady = 'true';\n  const tabRoots = [...document.querySelectorAll('[data-fu-home-carousel]')];\n  const tabs = tabRoots.flatMap(root => [...root.querySelectorAll('[role=\"tab\"][data-fu-target]')]);\n  const carousels = [...document.querySelectorAll('[data-fu-carousel]')];\n  function cardsFor(track) { return [...track.querySelectorAll('.fu-brooki__card')].filter(card => getComputedStyle(card).display !== 'none'); }\n  function cardStep(track) {\n    const cards = cardsFor(track);\n    if (cards.length > 1) return cards[1].offsetLeft - cards[0].offsetLeft;\n    return cards[0]?.getBoundingClientRect().width || track.clientWidth;\n  }\n  function alignShortRail(track) {\n    const cards = cardsFor(track);\n    if (!window.matchMedia('(min-width: 750px)').matches || cards.length > 5 || !cards.length) {\n      track.removeAttribute('data-fu-short-rail');\n      track.style.removeProperty('--fu-rail-leading-space');\n      return;\n    }\n    const wasShort = track.dataset.fuShortRail === 'true';\n    track.dataset.fuShortRail = 'true';\n    const style = getComputedStyle(track);\n    const gap = parseFloat(style.columnGap || style.gap) || 0;\n    const leftPad = parseFloat(style.paddingLeft) || 0;\n    const rightPad = parseFloat(style.paddingRight) || 0;\n    const cardWidths = cards.reduce((sum, card) => sum + card.getBoundingClientRect().width, 0);\n    const desired = Math.max(0, track.clientWidth - leftPad - rightPad - cardWidths - gap * (cards.length - 1));\n    track.style.setProperty('--fu-rail-leading-space', desired.toFixed(2) + 'px');\n    if (!wasShort) track.scrollLeft = 0;\n  }\n  function refresh(carousel) {\n    const track = carousel.querySelector('.fu-brooki__cards');\n    const controls = carousel.querySelector('.fu-brooki__controls');\n    const next = carousel.querySelector('.fu-brooki__nav--next');\n    const dots = carousel.querySelector('.fu-brooki__dots');\n    if (!track || !controls || track.clientWidth === 0) return;\n    alignShortRail(track);\n    const maxScroll = Math.max(0, track.scrollWidth - track.clientWidth);\n    const step = Math.max(1, cardStep(track));\n    const scrollable = maxScroll > 2;\n    controls.hidden = !scrollable;\n    if (next) {\n      const atEnd = track.scrollLeft >= maxScroll - 2;\n      next.hidden = !scrollable || atEnd;\n      next.disabled = !scrollable || atEnd;\n    }\n    if (dots) {\n      dots.replaceChildren();\n      const positions = scrollable ? Math.ceil(maxScroll / step) + 1 : 0;\n      dots.hidden = positions < 2;\n      for (let i = 0; i < positions; i++) {\n        const dot = document.createElement('button');\n        dot.type = 'button';\n        dot.className = 'fu-brooki__dot';\n        dot.setAttribute('aria-label', 'Go to carousel position ' + (i + 1));\n        if (Math.min(positions - 1, Math.round(track.scrollLeft / step)) === i) dot.setAttribute('aria-current', 'true');\n        dot.addEventListener('click', () => track.scrollTo({ left: Math.min(maxScroll, i * step), behavior: 'smooth' }));\n        dots.append(dot);\n      }\n    }\n  }\n  let refreshFrame = 0;\n  function refreshAll() { if (refreshFrame) return; refreshFrame = requestAnimationFrame(() => { refreshFrame = 0; carousels.forEach(refresh); }); }\n  carousels.forEach(carousel => {\n    const track = carousel.querySelector('.fu-brooki__cards');\n    const next = carousel.querySelector('.fu-brooki__nav--next');\n    if (!track) return;\n    next?.addEventListener('click', () => track.scrollBy({ left: cardStep(track), behavior: 'smooth' }));\n    let scrollFrame = 0;\n    track.addEventListener('scroll', () => { if (scrollFrame) return; scrollFrame = requestAnimationFrame(() => { scrollFrame = 0; refresh(carousel); }); }, { passive: true });\n    track.addEventListener('keydown', event => {\n      if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n      event.preventDefault();\n      track.scrollBy({ left: (event.key === 'ArrowRight' ? 1 : -1) * cardStep(track), behavior: 'smooth' });\n    });\n    track.addEventListener('wheel', event => {\n      if (track.scrollWidth <= track.clientWidth + 2 || event.ctrlKey || Math.abs(event.deltaX) >= Math.abs(event.deltaY)) return;\n      event.preventDefault();\n      track.scrollBy({ left: event.deltaY, behavior: 'auto' });\n    }, { passive: false });\n  });\n  const switchStates = new WeakMap();\n  const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n  function visibleCards(panel) {\n    const track = panel?.querySelector('.fu-brooki__cards');\n    if (!track) return [];\n    const bounds = track.getBoundingClientRect();\n    return [...track.querySelectorAll('.fu-brooki__card,.fu-brooki__view-all')].filter(card => {\n      const rect = card.getBoundingClientRect();\n      return rect.width > 0 && Math.min(rect.right, bounds.right) - Math.max(rect.left, bounds.left) > Math.min(20, rect.width * .2);\n    });\n  }\n  async function moveCards(panel, entering) {\n    const cards = visibleCards(panel);\n    if (reduceMotion.matches || !cards.length || typeof cards[0].animate !== 'function') return;\n    const animations = cards.map((card, index) => card.animate(\n      entering\n        ? [{ transform: 'translateY(35px)', opacity: 0 }, { transform: 'translateY(0)', opacity: 1 }]\n        : [{ transform: 'translateY(0)', opacity: 1 }, { transform: 'translateY(35px)', opacity: 0 }],\n      { duration: entering ? 460 : 240, delay: index * 65, easing: entering ? 'cubic-bezier(.22,1,.36,1)' : 'cubic-bezier(.4,0,1,1)', fill: 'both' }\n    ));\n    const finish = () => animations.forEach(animation => animation.finish());\n    reduceMotion.addEventListener('change', finish, { once: true });\n    try { await Promise.allSettled(animations.map(animation => animation.finished)); }\n    finally {\n      reduceMotion.removeEventListener('change', finish);\n      animations.forEach(animation => animation.cancel());\n    }\n  }\n  function selectTab(root, selected) {\n    root.querySelectorAll('[role=\"tab\"][data-fu-target]').forEach(tab => {\n      const active = tab.dataset.fuTarget === selected;\n      tab.setAttribute('aria-selected', active ? 'true' : 'false');\n      tab.tabIndex = active ? 0 : -1;\n    });\n  }\n  async function switchCategory(root, key) {\n    if (!root) return;\n    const panels = [...root.querySelectorAll('[data-fu-panel]')];\n    if (!panels.some(panel => panel.dataset.fuPanel === key)) return;\n    let state = switchStates.get(root);\n    if (!state) {\n      state = { active: panels.find(panel => !panel.hidden)?.dataset.fuPanel, requested: key, running: false };\n      switchStates.set(root, state);\n    }\n    state.requested = key;\n    selectTab(root, key);\n    const targetImages = panels.find(panel => panel.dataset.fuPanel === key)?.querySelectorAll('.fu-brooki__card img');\n    [...(targetImages || [])].slice(0, 6).forEach(image => { image.loading = 'eager'; });\n    if (state.running || state.active === key) return;\n    state.running = true;\n    const minHeight = root.style.minHeight;\n    root.style.minHeight = root.getBoundingClientRect().height + 'px';\n    root.setAttribute('aria-busy', 'true');\n    try {\n      while (state.requested !== state.active) {\n        const outgoing = panels.find(panel => panel.dataset.fuPanel === state.active);\n        root.dataset.fuTransition = 'out';\n        if (outgoing) outgoing.inert = true;\n        await moveCards(outgoing, false);\n        state.active = state.requested;\n        panels.forEach(panel => { panel.hidden = panel.dataset.fuPanel !== state.active; });\n        const incoming = panels.find(panel => !panel.hidden);\n        if (incoming) incoming.inert = true;\n        incoming?.querySelectorAll('[data-fu-carousel]').forEach(refresh);\n        root.dataset.fuTransition = 'in';\n        await moveCards(incoming, true);\n      }\n    } finally {\n      panels.forEach(panel => { panel.inert = false; panel.hidden = panel.dataset.fuPanel !== state.active; });\n      state.running = false;\n      root.style.minHeight = minHeight;\n      root.removeAttribute('aria-busy');\n      delete root.dataset.fuTransition;\n      selectTab(root, state.active);\n      refreshAll();\n    }\n  }\n  tabs.forEach(tab => {\n    const root = tab.closest('[data-fu-home-carousel]');\n    const groupTabs = root ? [...root.querySelectorAll('[role=\"tab\"][data-fu-target]')] : [];\n    tab.addEventListener('click', () => { switchCategory(root, tab.dataset.fuTarget); });\n    tab.addEventListener('keydown', event => {\n      const index = groupTabs.indexOf(tab);\n      let target = index;\n      if (event.key === 'ArrowRight') target = (index + 1) % groupTabs.length;\n      else if (event.key === 'ArrowLeft') target = (index + groupTabs.length - 1) % groupTabs.length;\n      else if (event.key === 'Home') target = 0;\n      else if (event.key === 'End') target = groupTabs.length - 1;\n      else return;\n      event.preventDefault();\n      groupTabs[target].click();\n      groupTabs[target].focus();\n    });\n  });\n  if ('ResizeObserver' in window) {\n    const observer = new ResizeObserver(refreshAll);\n    carousels.forEach(carousel => observer.observe(carousel));\n  }\n  window.addEventListener('resize', refreshAll, { passive: true });\n  window.addEventListener('orientationchange', refreshAll, { passive: true });\n  refreshAll();\n})();\n"],
  "mappings": "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",
  "names": []
}
