{
  "version": 3,
  "sources": ["/cdn/shop/t/35/assets/lux-trade-page-v2.js?lux_v=20260801_v4_0_0"],
  "sourcesContent": ["/**\r\n * LUXWORLD Trade Page V2\r\n * Asset: lux-trade-page-v2.js\r\n * Version: 3.2.0\r\n *\r\n * Responsibilities:\r\n * - Trade audience selector\r\n * - Industry tabs\r\n * - Trade account / project brief form switching\r\n * - Smooth CTA navigation\r\n * - Selected audience transfer into both Shopify contact forms\r\n * - FAQ accordion behaviour\r\n * - CTA analytics\r\n * - Accessible announcements\r\n * - Shopify Theme Editor reinitialisation\r\n */\r\n\r\n(() => {\r\n  \"use strict\";\r\n\r\n  const ROOT_SELECTOR = \"[data-lux-trade-page-v2]\";\r\n  const READY_ATTRIBUTE = \"data-lux-trade-ready\";\r\n\r\n  const AUDIENCE_COPY = {\r\n    builder: {\r\n      title: \"Builder or Developer\",\r\n      copy: \"Repeatable specifications, project pricing, scheduling and coordinated supply.\"\r\n    },\r\n    designer: {\r\n      title: \"Interior Designer or Architect\",\r\n      copy: \"Samples, finishes, customisation and product guidance for client projects.\"\r\n    },\r\n    installer: {\r\n      title: \"Installer or Contractor\",\r\n      copy: \"Supply pricing, product access and practical ordering support.\"\r\n    },\r\n    commercial: {\r\n      title: \"Commercial Project Team\",\r\n      copy: \"Plans, quantities, logistics, site measurement and installation coordination.\"\r\n    },\r\n    retailer: {\r\n      title: \"Retailer or Reseller\",\r\n      copy: \"Wholesale product access, repeat ordering and account support.\"\r\n    }\r\n  };\r\n\r\n  function trackEvent(root, eventName, details = {}) {\r\n    if (!eventName) return;\r\n\r\n    const payload = {\r\n      event: eventName,\r\n      page_type: \"trade-page-v2\",\r\n      page_path: window.location.pathname,\r\n      ...details\r\n    };\r\n\r\n    window.dataLayer = window.dataLayer || [];\r\n    window.dataLayer.push(payload);\r\n\r\n    try {\r\n      root.dispatchEvent(\r\n        new CustomEvent(\"luxworld:trade-page-event\", {\r\n          bubbles: true,\r\n          detail: payload\r\n        })\r\n      );\r\n    } catch (error) {\r\n      console.warn(\"[LUXWORLD Trade V2] Event dispatch failed.\", error);\r\n    }\r\n  }\r\n\r\n  function announce(root, message) {\r\n    if (!message) return;\r\n\r\n    const region = root.querySelector(\"[data-lux-trade-announcement]\");\r\n    if (!(region instanceof HTMLElement)) return;\r\n\r\n    region.textContent = \"\";\r\n\r\n    window.setTimeout(() => {\r\n      region.textContent = message;\r\n    }, 40);\r\n\r\n    window.setTimeout(() => {\r\n      if (region.textContent === message) {\r\n        region.textContent = \"\";\r\n      }\r\n    }, 3500);\r\n  }\r\n\r\n  function smoothScrollTo(element) {\r\n    if (!(element instanceof HTMLElement)) return;\r\n\r\n    const reducedMotion = window.matchMedia(\r\n      \"(prefers-reduced-motion: reduce)\"\r\n    ).matches;\r\n\r\n    element.scrollIntoView({\r\n      behavior: reducedMotion ? \"auto\" : \"smooth\",\r\n      block: \"start\"\r\n    });\r\n  }\r\n\r\n  function updateAudienceInputs(root, title) {\r\n    root.querySelectorAll(\"[data-lux-trade-audience-input]\").forEach((input) => {\r\n      if (input instanceof HTMLInputElement) {\r\n        input.value = title;\r\n      }\r\n    });\r\n  }\r\n\r\n  function activateAudience(root, button, { focus = false } = {}) {\r\n    if (!(button instanceof HTMLElement)) return;\r\n\r\n    const key = button.dataset.luxTradeAudience || \"builder\";\r\n    const fallbackTitle = (button.querySelector(\"strong\")?.textContent || \"\").trim();\r\n    const fallbackCopy = (button.querySelector(\"p\")?.textContent || \"\").trim();\r\n    const data = AUDIENCE_COPY[key] || {\r\n      title: fallbackTitle || \"Trade Professional\",\r\n      copy: fallbackCopy || \"Trade and project support tailored to your requirements.\"\r\n    };\r\n\r\n    root.querySelectorAll(\"[data-lux-trade-audience]\").forEach((item) => {\r\n      const active = item === button;\r\n      item.classList.toggle(\"is-active\", active);\r\n      item.setAttribute(\"aria-pressed\", active ? \"true\" : \"false\");\r\n    });\r\n\r\n    const title = root.querySelector(\"[data-lux-trade-audience-title]\");\r\n    const copy = root.querySelector(\"[data-lux-trade-audience-copy]\");\r\n\r\n    if (title instanceof HTMLElement) title.textContent = data.title;\r\n    if (copy instanceof HTMLElement) copy.textContent = data.copy;\r\n\r\n    updateAudienceInputs(root, data.title);\r\n    root.dataset.selectedTradeAudience = key;\r\n\r\n    if (focus) {\r\n      button.focus({ preventScroll: true });\r\n    }\r\n\r\n    trackEvent(root, \"trade_audience_selected\", {\r\n      audience_key: key,\r\n      audience_title: data.title\r\n    });\r\n\r\n    announce(root, `${data.title} selected.`);\r\n  }\r\n\r\n  function initialiseAudienceSelector(root) {\r\n    const buttons = Array.from(\r\n      root.querySelectorAll(\"[data-lux-trade-audience]\")\r\n    ).filter((item) => item instanceof HTMLElement);\r\n\r\n    if (!buttons.length) return;\r\n\r\n    buttons.forEach((button) => {\r\n      if (button.dataset.luxTradeAudienceReady === \"true\") return;\r\n\r\n      button.addEventListener(\"click\", () => {\r\n        activateAudience(root, button);\r\n      });\r\n\r\n      button.addEventListener(\"keydown\", (event) => {\r\n        const currentIndex = buttons.indexOf(button);\r\n        let nextIndex = currentIndex;\r\n\r\n        switch (event.key) {\r\n          case \"ArrowRight\":\r\n          case \"ArrowDown\":\r\n            nextIndex = (currentIndex + 1) % buttons.length;\r\n            break;\r\n          case \"ArrowLeft\":\r\n          case \"ArrowUp\":\r\n            nextIndex = (currentIndex - 1 + buttons.length) % buttons.length;\r\n            break;\r\n          case \"Home\":\r\n            nextIndex = 0;\r\n            break;\r\n          case \"End\":\r\n            nextIndex = buttons.length - 1;\r\n            break;\r\n          default:\r\n            return;\r\n        }\r\n\r\n        event.preventDefault();\r\n        activateAudience(root, buttons[nextIndex], { focus: true });\r\n      });\r\n\r\n      button.dataset.luxTradeAudienceReady = \"true\";\r\n    });\r\n\r\n    const initial =\r\n      buttons.find((button) => button.classList.contains(\"is-active\")) ||\r\n      buttons[0];\r\n\r\n    activateAudience(root, initial);\r\n  }\r\n\r\n  function activateIndustryTab(root, tab, { focus = false } = {}) {\r\n    if (!(tab instanceof HTMLElement)) return;\r\n\r\n    const key = tab.dataset.luxTradeIndustryTab;\r\n    if (!key) return;\r\n\r\n    const tabs = root.querySelectorAll(\"[data-lux-trade-industry-tab]\");\r\n    const panels = root.querySelectorAll(\"[data-lux-trade-industry-panel]\");\r\n\r\n    tabs.forEach((item) => {\r\n      const active = item === tab;\r\n      item.classList.toggle(\"is-active\", active);\r\n      item.setAttribute(\"aria-selected\", active ? \"true\" : \"false\");\r\n      item.setAttribute(\"tabindex\", active ? \"0\" : \"-1\");\r\n    });\r\n\r\n    panels.forEach((panel) => {\r\n      const active = panel.dataset.luxTradeIndustryPanel === key;\r\n      panel.classList.toggle(\"is-active\", active);\r\n      panel.hidden = !active;\r\n      panel.setAttribute(\"aria-hidden\", active ? \"false\" : \"true\");\r\n      panel.setAttribute(\"tabindex\", active ? \"0\" : \"-1\");\r\n    });\r\n\r\n    if (focus) {\r\n      tab.focus({ preventScroll: true });\r\n    }\r\n\r\n    trackEvent(root, \"trade_industry_selected\", {\r\n      industry_key: key,\r\n      industry_label: (tab.textContent || \"\").trim()\r\n    });\r\n  }\r\n\r\n  function initialiseIndustryTabs(root) {\r\n    const tabList = root.querySelector(\r\n      \"[data-lux-trade-industry-tabs] [role='tablist']\"\r\n    );\r\n\r\n    const tabs = Array.from(\r\n      root.querySelectorAll(\"[data-lux-trade-industry-tab]\")\r\n    ).filter((item) => item instanceof HTMLElement);\r\n\r\n    if (!(tabList instanceof HTMLElement) || !tabs.length) return;\r\n\r\n    tabs.forEach((tab) => {\r\n      if (tab.dataset.luxTradeIndustryReady === \"true\") return;\r\n\r\n      tab.addEventListener(\"click\", () => {\r\n        activateIndustryTab(root, tab);\r\n      });\r\n\r\n      tab.dataset.luxTradeIndustryReady = \"true\";\r\n    });\r\n\r\n    tabList.addEventListener(\"keydown\", (event) => {\r\n      const currentIndex = tabs.indexOf(document.activeElement);\r\n      if (currentIndex < 0) return;\r\n\r\n      let nextIndex = currentIndex;\r\n\r\n      switch (event.key) {\r\n        case \"ArrowRight\":\r\n        case \"ArrowDown\":\r\n          nextIndex = (currentIndex + 1) % tabs.length;\r\n          break;\r\n        case \"ArrowLeft\":\r\n        case \"ArrowUp\":\r\n          nextIndex = (currentIndex - 1 + tabs.length) % tabs.length;\r\n          break;\r\n        case \"Home\":\r\n          nextIndex = 0;\r\n          break;\r\n        case \"End\":\r\n          nextIndex = tabs.length - 1;\r\n          break;\r\n        default:\r\n          return;\r\n      }\r\n\r\n      event.preventDefault();\r\n      activateIndustryTab(root, tabs[nextIndex], { focus: true });\r\n    });\r\n\r\n    const initial =\r\n      tabs.find((tab) => tab.getAttribute(\"aria-selected\") === \"true\") ||\r\n      tabs[0];\r\n\r\n    activateIndustryTab(root, initial);\r\n  }\r\n\r\n  function activateFormPanel(root, key, { scroll = false, focus = false } = {}) {\r\n    const tabs = root.querySelectorAll(\"[data-lux-trade-form-tab]\");\r\n    const panels = root.querySelectorAll(\"[data-lux-trade-form-panel]\");\r\n\r\n    let activeTab = null;\r\n    let activePanel = null;\r\n\r\n    tabs.forEach((tab) => {\r\n      const active = tab.dataset.luxTradeFormTab === key;\r\n      tab.classList.toggle(\"is-active\", active);\r\n      tab.setAttribute(\"aria-selected\", active ? \"true\" : \"false\");\r\n      tab.setAttribute(\"tabindex\", active ? \"0\" : \"-1\");\r\n\r\n      if (active) activeTab = tab;\r\n    });\r\n\r\n    panels.forEach((panel) => {\r\n      const active = panel.dataset.luxTradeFormPanel === key;\r\n      panel.classList.toggle(\"is-active\", active);\r\n      panel.hidden = !active;\r\n      panel.setAttribute(\"aria-hidden\", active ? \"false\" : \"true\");\r\n\r\n      if (active) activePanel = panel;\r\n    });\r\n\r\n    root.dataset.activeTradeForm = key;\r\n\r\n    if (scroll && activePanel instanceof HTMLElement) {\r\n      smoothScrollTo(activePanel);\r\n    }\r\n\r\n    if (focus && activeTab instanceof HTMLElement) {\r\n      activeTab.focus({ preventScroll: true });\r\n    }\r\n\r\n    trackEvent(root, \"trade_form_selected\", {\r\n      form_type: key\r\n    });\r\n\r\n    announce(\r\n      root,\r\n      key === \"trade-account\"\r\n        ? \"Trade Account Application selected.\"\r\n        : \"Project Brief form selected.\"\r\n    );\r\n  }\r\n\r\n  function initialiseFormSwitcher(root) {\r\n    const tabs = Array.from(\r\n      root.querySelectorAll(\"[data-lux-trade-form-tab]\")\r\n    ).filter((item) => item instanceof HTMLElement);\r\n\r\n    if (!tabs.length) return;\r\n\r\n    tabs.forEach((tab) => {\r\n      if (tab.dataset.luxTradeFormReady === \"true\") return;\r\n\r\n      tab.addEventListener(\"click\", () => {\r\n        activateFormPanel(root, tab.dataset.luxTradeFormTab || \"trade-account\");\r\n      });\r\n\r\n      tab.dataset.luxTradeFormReady = \"true\";\r\n    });\r\n\r\n    const tabList = root.querySelector(\".lux-trade-v2__form-switcher\");\r\n\r\n    if (tabList instanceof HTMLElement) {\r\n      tabList.addEventListener(\"keydown\", (event) => {\r\n        const currentIndex = tabs.indexOf(document.activeElement);\r\n        if (currentIndex < 0) return;\r\n\r\n        let nextIndex = currentIndex;\r\n\r\n        switch (event.key) {\r\n          case \"ArrowRight\":\r\n          case \"ArrowDown\":\r\n            nextIndex = (currentIndex + 1) % tabs.length;\r\n            break;\r\n          case \"ArrowLeft\":\r\n          case \"ArrowUp\":\r\n            nextIndex = (currentIndex - 1 + tabs.length) % tabs.length;\r\n            break;\r\n          case \"Home\":\r\n            nextIndex = 0;\r\n            break;\r\n          case \"End\":\r\n            nextIndex = tabs.length - 1;\r\n            break;\r\n          default:\r\n            return;\r\n        }\r\n\r\n        event.preventDefault();\r\n        activateFormPanel(\r\n          root,\r\n          tabs[nextIndex].dataset.luxTradeFormTab || \"trade-account\",\r\n          { focus: true }\r\n        );\r\n      });\r\n    }\r\n\r\n    const initial =\r\n      tabs.find((tab) => tab.getAttribute(\"aria-selected\") === \"true\") ||\r\n      tabs[0];\r\n\r\n    activateFormPanel(\r\n      root,\r\n      initial.dataset.luxTradeFormTab || \"trade-account\"\r\n    );\r\n  }\r\n\r\n  function initialiseFormTargetLinks(root) {\r\n    root.querySelectorAll(\"[data-lux-trade-form-target]\").forEach((element) => {\r\n      if (!(element instanceof HTMLElement)) return;\r\n      if (element.dataset.luxTradeTargetReady === \"true\") return;\r\n\r\n      element.addEventListener(\"click\", (event) => {\r\n        const target = element.dataset.luxTradeFormTarget || \"trade-account\";\r\n        const formSection = root.querySelector(\".lux-trade-v2__forms\");\r\n\r\n        if (formSection instanceof HTMLElement) {\r\n          event.preventDefault();\r\n          activateFormPanel(root, target);\r\n          smoothScrollTo(formSection);\r\n        }\r\n      });\r\n\r\n      element.dataset.luxTradeTargetReady = \"true\";\r\n    });\r\n  }\r\n\r\n  function initialiseFaq(root) {\r\n    root.querySelectorAll(\".lux-trade-v2__faq-list\").forEach((list) => {\r\n      if (!(list instanceof HTMLElement)) return;\r\n      if (list.dataset.luxTradeFaqReady === \"true\") return;\r\n\r\n      const detailsItems = Array.from(list.querySelectorAll(\"details\"));\r\n\r\n      detailsItems.forEach((details) => {\r\n        details.addEventListener(\"toggle\", () => {\r\n          if (!details.open) return;\r\n\r\n          detailsItems.forEach((other) => {\r\n            if (other !== details) other.open = false;\r\n          });\r\n\r\n          const summary = details.querySelector(\"summary\");\r\n\r\n          trackEvent(root, \"trade_faq_opened\", {\r\n            question: (summary?.textContent || \"\").trim()\r\n          });\r\n        });\r\n      });\r\n\r\n      list.dataset.luxTradeFaqReady = \"true\";\r\n    });\r\n  }\r\n\r\n  function initialiseCtaTracking(root) {\r\n    root.querySelectorAll(\"[data-lux-trade-event]\").forEach((element) => {\r\n      if (!(element instanceof HTMLElement)) return;\r\n      if (element.dataset.luxTradeTrackingReady === \"true\") return;\r\n\r\n      element.addEventListener(\"click\", () => {\r\n        trackEvent(root, element.dataset.luxTradeEvent || \"trade_cta_click\", {\r\n          label: (element.textContent || \"\").trim(),\r\n          destination:\r\n            element instanceof HTMLAnchorElement ? element.href : \"\"\r\n        });\r\n      });\r\n\r\n      element.dataset.luxTradeTrackingReady = \"true\";\r\n    });\r\n  }\r\n\r\n  function initialiseExternalLinks(root) {\r\n    root.querySelectorAll(\"a[href]\").forEach((link) => {\r\n      if (!(link instanceof HTMLAnchorElement)) return;\r\n      if (link.dataset.luxTradeExternalReady === \"true\") return;\r\n\r\n      try {\r\n        const destination = new URL(link.href, window.location.href);\r\n\r\n        if (destination.origin !== window.location.origin) {\r\n          link.target = \"_blank\";\r\n          link.rel = \"noopener noreferrer\";\r\n        }\r\n      } catch (error) {\r\n        console.warn(\"[LUXWORLD Trade V2] Invalid link URL.\", error);\r\n      }\r\n\r\n      link.dataset.luxTradeExternalReady = \"true\";\r\n    });\r\n  }\r\n\r\n\r\n  function initialiseClientLogos(root) {\r\n    root.querySelectorAll(\"[data-lux-trade-client-link]\").forEach((link) => {\r\n      if (!(link instanceof HTMLAnchorElement)) return;\r\n      if (link.dataset.luxTradeClientReady === \"true\") return;\r\n\r\n      link.addEventListener(\"click\", () => {\r\n        const card = link.closest(\"[data-lux-trade-client-card]\");\r\n        const name =\r\n          card?.querySelector(\".lux-trade-v2__client-name\")?.textContent?.trim() ||\r\n          link.getAttribute(\"aria-label\") ||\r\n          \"Client or brand\";\r\n\r\n        trackEvent(root, \"trade_client_logo_clicked\", {\r\n          client_name: name,\r\n          destination: link.href\r\n        });\r\n      });\r\n\r\n      link.dataset.luxTradeClientReady = \"true\";\r\n    });\r\n  }\r\n\r\n  function initialiseSuccessfulForms(root) {\r\n    const successMessage = root.querySelector(\".lux-trade-v2__success\");\r\n    if (!(successMessage instanceof HTMLElement)) return;\r\n\r\n    successMessage.setAttribute(\"tabindex\", \"-1\");\r\n    successMessage.focus({ preventScroll: true });\r\n    smoothScrollTo(successMessage);\r\n\r\n    announce(root, \"Your trade enquiry has been submitted successfully.\");\r\n  }\r\n\r\n\r\n  function initialiseCommercialLogoFlow(root) {\r\n    const track = root.querySelector(\".lux-trade-v2__commercial-logo-track\");\r\n    if (!(track instanceof HTMLElement) || track.dataset.luxTradeFlowReady === \"true\") return;\r\n    const originals = Array.from(track.children);\r\n    if (originals.length < 2) return;\r\n    originals.forEach((item) => {\r\n      const clone = item.cloneNode(true);\r\n      clone.setAttribute(\"aria-hidden\", \"true\");\r\n      clone.querySelectorAll(\"img\").forEach((img) => { img.alt = \"\"; });\r\n      track.appendChild(clone);\r\n    });\r\n    track.dataset.luxTradeFlowReady = \"true\";\r\n    let paused = false;\r\n    let x = 0;\r\n    let last = performance.now();\r\n    const reduced = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\r\n    const pause = () => { paused = true; };\r\n    const resume = () => { paused = false; };\r\n    track.addEventListener(\"mouseenter\", pause);\r\n    track.addEventListener(\"mouseleave\", resume);\r\n    track.addEventListener(\"focusin\", pause);\r\n    track.addEventListener(\"focusout\", resume);\r\n    track.addEventListener(\"touchstart\", pause, { passive: true });\r\n    track.addEventListener(\"touchend\", resume, { passive: true });\r\n    function frame(now) {\r\n      if (!track.isConnected) return;\r\n      const dt = Math.min(now - last, 50);\r\n      last = now;\r\n      if (!paused && !reduced.matches && document.visibilityState === \"visible\") {\r\n        const loop = track.scrollWidth / 2;\r\n        x -= 30 * dt / 1000;\r\n        if (loop > 0 && Math.abs(x) >= loop) x += loop;\r\n        track.style.transform = `translate3d(${x}px,0,0)`;\r\n      }\r\n      requestAnimationFrame(frame);\r\n    }\r\n    requestAnimationFrame(frame);\r\n  }\r\n  function initialiseRoot(root) {\r\n    if (!(root instanceof HTMLElement)) return;\r\n    if (root.getAttribute(READY_ATTRIBUTE) === \"true\") return;\r\n\r\n    initialiseAudienceSelector(root);\r\n    initialiseIndustryTabs(root);\r\n    initialiseFormSwitcher(root);\r\n    initialiseFormTargetLinks(root);\r\n    initialiseFaq(root);\r\n    initialiseCtaTracking(root);\r\n    initialiseExternalLinks(root);\r\n    initialiseClientLogos(root);\r\n    initialiseCommercialLogoFlow(root);\r\n    initialiseSuccessfulForms(root);\r\n\r\n    root.addEventListener(\"luxworld:trade-page-announce\", (event) => {\r\n      const customEvent = /** @type {CustomEvent} */ (event);\r\n      announce(root, String(customEvent.detail?.message || \"\"));\r\n    });\r\n\r\n    root.setAttribute(READY_ATTRIBUTE, \"true\");\r\n\r\n    trackEvent(root, \"trade_page_loaded\", {\r\n      version: root.dataset.version || \"3.2.0\",\r\n      audience_count: root.querySelectorAll(\"[data-lux-trade-audience]\").length,\r\n      project_count: root.querySelectorAll(\".lux-trade-v2__project-card\").length,\r\n      client_logo_count: root.querySelectorAll(\"[data-lux-trade-client-card]\").length\r\n    });\r\n  }\r\n\r\n  function initialiseAll(context = document) {\r\n    const roots = [];\r\n\r\n    if (context instanceof HTMLElement && context.matches(ROOT_SELECTOR)) {\r\n      roots.push(context);\r\n    }\r\n\r\n    context.querySelectorAll?.(ROOT_SELECTOR).forEach((root) => {\r\n      if (root instanceof HTMLElement) roots.push(root);\r\n    });\r\n\r\n    roots.forEach(initialiseRoot);\r\n  }\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\r\n      \"DOMContentLoaded\",\r\n      () => initialiseAll(document),\r\n      { once: true }\r\n    );\r\n  } else {\r\n    initialiseAll(document);\r\n  }\r\n\r\n  document.addEventListener(\"shopify:section:load\", (event) => {\r\n    const target = event.target;\r\n    if (target instanceof HTMLElement) initialiseAll(target);\r\n  });\r\n\r\n  document.addEventListener(\"shopify:block:select\", (event) => {\r\n    const block = event.target;\r\n    if (!(block instanceof HTMLElement)) return;\r\n\r\n    const root = block.closest(ROOT_SELECTOR);\r\n    if (!(root instanceof HTMLElement)) return;\r\n\r\n    const audience = block.closest(\"[data-lux-trade-audience]\");\r\n\r\n    if (audience instanceof HTMLElement) {\r\n      activateAudience(root, audience);\r\n    }\r\n\r\n    smoothScrollTo(block);\r\n  });\r\n})();\r\n"],
  "mappings": "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",
  "names": []
}
