{
  "version": 3,
  "sources": ["/cdn/shop/t/5/assets/ball-viewer.js?sa=19"],
  "sourcesContent": ["/*! \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n *  \u00A9 2026 Sick Aura Inc. All rights reserved.\n *  Author: David Otero \u2014 SICK AURA (https://www.sickactivewear.com)\n *  PROPRIETARY \u2014 this source code and the visual designs it renders\n *  are the exclusive property of Sick Aura Inc. No license is granted\n *  to copy, modify, distribute, or create derivative works, in whole\n *  or in part, without prior written permission.\n *  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   BALL-VIEWER \u2014 the product-page 3D view. Replaces the media gallery\n   for the two ball products: a live rotating render IS the product\n   image. data-ball=\"lumen\" (Hologram Soccer Ball: retroreflective\n   foil + FLASH button) or data-ball=\"classic\" (Classic Soccer Ball:\n   KIX white-hex/black-pent + cyan core). Add-to-cart gives the ball a\n   celebratory spin-kick. Drag to inspect; auto-rotates.\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\nimport * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.160.0/+esm';\nimport { OrbitControls } from 'https://cdn.jsdelivr.net/npm/three@0.160.0/examples/jsm/controls/OrbitControls.js/+esm';\nimport { RoomEnvironment } from 'https://cdn.jsdelivr.net/npm/three@0.160.0/examples/jsm/environments/RoomEnvironment.js/+esm';\nimport { RGBELoader } from 'https://cdn.jsdelivr.net/npm/three@0.160.0/examples/jsm/loaders/RGBELoader.js/+esm';\nimport { createFoilBall } from './foil-ball-v21.js';   // FILENAME-versioned: Shopify's CDN ignores query params on assets \u2014 ?sa= never busted\nimport { createKixBall } from './kix-ball.js?sa=1';\nimport { createMatchPhysics, buildStatsHUD } from './ball-match-v3.js';\n\ndocument.querySelectorAll('canvas[data-ball]').forEach(initViewer);\n\nfunction initViewer(canvas){\n  const kind=canvas.dataset.ball;                        // 'lumen' | 'classic'\n\n  const renderer=new THREE.WebGLRenderer({canvas, antialias:true, alpha:true});\n  renderer.setPixelRatio(Math.min(1.75, window.devicePixelRatio||1));\n  renderer.toneMapping=THREE.ACESFilmicToneMapping; renderer.toneMappingExposure=1.40;\n  const scene=new THREE.Scene();                         // transparent \u2014 the page is the backdrop\n  const pmrem=new THREE.PMREMGenerator(renderer);\n  scene.environment=pmrem.fromScene(new RoomEnvironment(), 0.04).texture;\n  new RGBELoader().load((window.SA_HDR || 'https://www.sickaura.com/studio_small_09_1k.hdr'),\n    hdr=>{ scene.environment=pmrem.fromEquirectangular(hdr).texture; hdr.dispose(); },\n    undefined, ()=>{});                                  // real softboxes (CORS-served); RoomEnvironment fallback\n  const camera=new THREE.PerspectiveCamera(40,1,0.015,140); camera.position.set(0,0.25,3.9);\n  scene.add(camera);\n\n  /* contact shadow \u2014 grounds the product in its gallery box */\n  const shadow=(()=>{\n    const S=512, cv=document.createElement('canvas'); cv.width=cv.height=S;\n    const g=cv.getContext('2d');\n    const rg=g.createRadialGradient(S/2,S/2,S*0.04, S/2,S/2,S*0.46);\n    rg.addColorStop(0,'rgba(8,10,14,0.30)'); rg.addColorStop(0.45,'rgba(8,10,14,0.11)'); rg.addColorStop(1,'rgba(8,10,14,0)');\n    g.fillStyle=rg; g.fillRect(0,0,S,S);\n    const m=new THREE.Mesh(new THREE.PlaneGeometry(4.4,4.4),\n      new THREE.MeshBasicMaterial({map:new THREE.CanvasTexture(cv), transparent:true, depthWrite:false, toneMapped:false}));\n    m.rotation.x=-Math.PI/2; m.position.y=-1.06; m.scale.set(1,0.86,1);\n    return m;\n  })();\n  scene.add(shadow);\n\n  /* ---- the ball + its lighting story ---- */\n  let ball, uFlash=null, uTime=null, flashL=null;\n  const camRightV=new THREE.Vector3(), camUpV=new THREE.Vector3();\n  let keyL=null, rimL=null;\n  if(kind==='lumen'){\n    const foil=createFoilBall({ cacheKey:'pdp-lumen' });\n    ball=foil.ball; uFlash=foil.uFlash; uTime=foil.uTime;\n    /* one light riding the lens \u2014 the whole retroreflective story */\n    flashL=new THREE.PointLight(0xffffff,6,30,1.4); scene.add(flashL);\n  } else {\n    const kix=createKixBall();\n    ball=kix.ball;\n    /* the shop hero's studio rig, steady state */\n    keyL=new THREE.DirectionalLight(0xffffff,1.85); keyL.position.set(1.2,1.6,1.8); scene.add(keyL); scene.add(keyL.target);\n    rimL=new THREE.DirectionalLight(0x66f0ff,0.9); rimL.position.set(-1.6,-0.4,-1.4); scene.add(rimL); scene.add(rimL.target);\n    const filL=new THREE.DirectionalLight(0x8fa3b8,0.5); filL.position.set(-1.2,0.8,1.0); scene.add(filL);\n    scene.add(new THREE.AmbientLight(0x39434c,0.55));\n  }\n  scene.add(ball);\n\n  const controls=new OrbitControls(camera, canvas);\n  controls.enableDamping=true; controls.dampingFactor=0.06;\n  controls.enablePan=false; controls.enableZoom=false;   // never steal the page scroll\n  controls.minDistance=2.2; controls.maxDistance=6;\n  controls.autoRotate=true; controls.autoRotateSpeed=0.7;\n  const isCoarse=window.matchMedia('(pointer: coarse)').matches;\n  if(isCoarse){ canvas.style.touchAction='pan-y'; }      // touch users scroll the page; the ball still auto-rotates\n\n  function resize(){\n    const w=canvas.clientWidth||1, h=canvas.clientHeight||1;\n    renderer.setSize(w,h,false);\n    camera.aspect=w/h;\n    const need=2*Math.atan(Math.tan(20*Math.PI/180)/Math.min(1,camera.aspect))*180/Math.PI;\n    camera.fov=Math.max(40,need);\n    camera.updateProjectionMatrix();\n  }\n  new ResizeObserver(resize).observe(canvas); resize();\n\n  /* ---- FLASH button (hologram): tap = xenon burst, double-tap = hold ---- */\n  let flashT=0, held=false, lastTap=0, pressing=false;   // pressing = button physically held down\n  const flashBtn=canvas.closest('.sa-ball-viewer-wrap')?.querySelector('[data-ball-flash]');\n  if(flashBtn && uFlash){\n    flashBtn.addEventListener('pointerdown', e=>{ e.preventDefault(); pressing=true; flashT=1; });   // HOLD to prolong the light\n    ['pointerup','pointerleave','pointercancel'].forEach(ev=>flashBtn.addEventListener(ev, ()=>{ pressing=false; }));\n    flashBtn.addEventListener('contextmenu', e=>e.preventDefault());\n    flashBtn.addEventListener('click', ()=>{\n      const now=performance.now();\n      if(now-lastTap<340) held=!held;                    // double-tap = hold/release\n      lastTap=now; flashT=1;\n      flashBtn.classList.add('is-armed');\n      flashBtn.setAttribute('aria-pressed', held?'true':'false');\n    });\n  }\n\n  /* ---- MATCH MODE (both balls): KICK button = strike + LCD telemetry,\n     double-tap = full time \u2014 the index.html hero physics, verbatim ---- */\n  const wrap=canvas.closest('.sa-ball-viewer-wrap');\n  const kickBtn=wrap?.querySelector('[data-ball-kick]');\n  const hudCanvas=wrap?.querySelector('.sa-ball-hud');\n  let match=null, matchMode=false, hud=null, kickLastTap=0;\n  const spinAxis=new THREE.Vector3(), spinQ=new THREE.Quaternion();\n  if(kickBtn){\n    kickBtn.addEventListener('click', ()=>{\n      const now=performance.now();\n      if(now-kickLastTap<340){                           // double-tap = full time\n        matchMode=false; if(match) match.idle();\n        kickBtn.classList.remove('is-on'); kickBtn.setAttribute('aria-pressed','false');\n        if(hudCanvas) hudCanvas.classList.remove('is-on'); if(hud) hud.pause();\n        kickLastTap=now; return;\n      }\n      kickLastTap=now;\n      if(!match) match=createMatchPhysics();\n      if(!matchMode){\n        matchMode=true; kickBtn.classList.add('is-on'); kickBtn.setAttribute('aria-pressed','true');\n        if(hudCanvas){ hudCanvas.classList.add('is-on');\n          if(!hud) hud=buildStatsHUD(hudCanvas,{getStats:match.getStats});\n          hud.resume(); }\n        match.arm();\n      }\n      match.kick();                                      // every press is a strike\n    });\n  }\n\n  /* ---- ADD TO CART = spin-kick. Hooks Dawn's pub/sub when present, and\n     the submit button directly for instant feedback ---- */\n  let spinBoost=0;\n  const kick=()=>{                                       // violent strike \u2014 reads as a blur off the boot\n    if(matchMode){                                       // full time: match physics fights the cart spin (twitch)\n      matchMode=false; if(match) match.idle();\n      if(kickBtn){ kickBtn.classList.remove('is-on'); kickBtn.setAttribute('aria-pressed','false'); }\n      if(hudCanvas) hudCanvas.classList.remove('is-on'); if(hud) hud.pause();\n    }\n    spinBoost=28;\n  };\n  document.querySelectorAll('button[id^=\"ProductSubmitButton\"]').forEach(b=>b.addEventListener('click', kick));\n  if(typeof subscribe==='function' && typeof PUB_SUB_EVENTS!=='undefined' && PUB_SUB_EVENTS.cartUpdate){\n    subscribe(PUB_SUB_EVENTS.cartUpdate, e=>{ if(e && e.source==='product-form') kick(); });\n  }\n\n  // FLING INERTIA: drag velocity carries into continued spin, decaying slow\n  let flingLastX=null, flingLastT=0, flingVX=0, spinVelF=0;\n  canvas.addEventListener('pointerdown', e=>{ flingLastX=e.clientX; flingLastT=performance.now(); flingVX=0; spinVelF=0; });\n  canvas.addEventListener('pointermove', e=>{ if(flingLastX===null) return;\n    const now=performance.now(), fdt=(now-flingLastT)/1000;\n    if(fdt>0.001){ flingVX=0.75*flingVX+0.25*((e.clientX-flingLastX)/fdt); }\n    flingLastX=e.clientX; flingLastT=now; });\n  ['pointerup','pointerleave','pointercancel'].forEach(ev=>canvas.addEventListener(ev, ()=>{\n    if(flingLastX!==null) spinVelF=Math.max(-8,Math.min(8, flingVX*0.004));\n    flingLastX=null; }));\n\n  const clock=new THREE.Clock();\n  (function frame(){\n    requestAnimationFrame(frame);\n    const dt=Math.min(clock.getDelta(),0.05);\n    spinBoost=Math.max(0, spinBoost-dt*6);               // the kick bleeds off in ~1.5s\n    spinVelF*=Math.exp(-1.1*dt);                         // fling inertia bleeds off\n    if(matchMode&&match){\n      const rot=match.step(Math.min(64, dt*1000));       // the player owns the ball\n      if(rot.ang>0){ spinAxis.set(rot.x,rot.y,rot.z).normalize(); spinQ.setFromAxisAngle(spinAxis, rot.ang); ball.quaternion.premultiply(spinQ); }\n      if(Math.abs(spinVelF)>0.05){ match.impulse([0, spinVelF>0?1:-1, 0], Math.min(8, Math.abs(spinVelF)*1.5)); spinVelF=0; }\n      spinBoost=0;                                       // match physics owns the ball \u2014 no cart spin bleed-through\n    } else {\n      ball.rotation.y+=dt*(0.10+spinBoost+spinVelF);\n    }\n    if(uTime) uTime.value+=dt;\n\n    if(uFlash){                                          // xenon envelope \u2014 sustained while latched OR physically held\n      if(pressing||held) flashT=1;\n      else flashT=Math.max(0, flashT-dt*0.9);\n      uFlash.value += (flashT-uFlash.value)*Math.min(1, dt*(flashT>uFlash.value?60:4));\n      flashL.intensity=4+8*uFlash.value;\n      if(uFlash.value<0.01&&!held&&flashBtn) flashBtn.classList.remove('is-armed');\n    }\n\n    controls.update();\n    camera.updateMatrixWorld();\n    if(flashL) flashL.position.copy(camera.position);    // the lamp rides the lens\n    if(keyL){                                            // key ALWAYS from the camera's right \u2014 the shop's lighting rule\n      camRightV.setFromMatrixColumn(camera.matrixWorld,0);\n      camUpV.setFromMatrixColumn(camera.matrixWorld,1);\n      keyL.position.copy(camera.position).addScaledVector(camRightV,6).addScaledVector(camUpV,2.5);\n      keyL.target.position.copy(ball.position);\n      rimL.position.copy(camera.position).addScaledVector(camRightV,-7).addScaledVector(camUpV,-1);\n      rimL.target.position.copy(ball.position);\n    }\n    renderer.render(scene,camera);\n  })();\n}\n"],
  "mappings": "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",
  "names": []
}
