2026-03-17 17:04:34 -07:00
import { r as e } from "./chunk-DECur_0Z.js" ; import { r as t } from "./jsx-runtime-BpGWiA-R.js" ; import { i as n , o as r } from "./react-three-fiber.esm-BccVk4IG.js" ; import { Ht as i , Vt as a , mt as o , pt as s } from "./three.module-BRbuBcDx.js" ; import { t as c } from "./extends-Cu_B6L18.js" ; import { V as l } from "./index-KOH_0HDb.js" ; var u = e ( t ( ) ) , d = e ( l ( ) ) , f = new i , p = new i , m = new i , h = new a ; function ee ( e , t , n ) { let r = f . setFromMatrixPosition ( e . matrixWorld ) ; r . project ( t ) ; let i = n . width / 2 , a = n . height / 2 ; return [ r . x * i + i , - ( r . y * a ) + a ] } function te ( e , t ) { let n = f . setFromMatrixPosition ( e . matrixWorld ) , r = p . setFromMatrixPosition ( t . matrixWorld ) , i = n . sub ( r ) , a = t . getWorldDirection ( m ) ; return i . angleTo ( a ) > Math . PI / 2 } function g ( e , t , n , r ) { let i = f . setFromMatrixPosition ( e . matrixWorld ) , a = i . clone ( ) ; a . project ( t ) , h . set ( a . x , a . y ) , n . setFromCamera ( h , t ) ; let o = n . intersectObjects ( r , ! 0 ) ; if ( o . length ) { let e = o [ 0 ] . distance ; return i . distanceTo ( n . ray . origin ) < e } return ! 0 } function _ ( e , t ) { if ( t instanceof s ) return t . zoom ; if ( t instanceof o ) { let n = f . setFromMatrixPosition ( e . matrixWorld ) , r = p . setFromMatrixPosition ( t . matrixWorld ) , i = t . fov * Math . PI / 180 , a = n . distanceTo ( r ) ; return 1 / ( 2 * Math . tan ( i / 2 ) * a ) } else return 1 } function v ( e , t , n ) { if ( t instanceof o || t instanceof s ) { let r = f . setFromMatrixPosition ( e . matrixWorld ) , i = p . setFromMatrixPosition ( t . matrixWorld ) , a = r . distanceTo ( i ) , o = ( n [ 1 ] - n [ 0 ] ) / ( t . far - t . near ) , s = n [ 1 ] - o * t . far ; return Math . round ( o * a + s ) } } var y = e => Math . abs ( e ) < 1e-10 ? 0 : e ; function b ( e , t , n = ` ` ) { let r = ` matrix3d( ` ; for ( let n = 0 ; n !== 16 ; n ++ ) r += y ( t [ n ] * e . elements [ n ] ) + ( n === 15 ? ` ) ` : ` , ` ) ; return n + r } var x = ( e => t => b ( t , e ) ) ( [ 1 , - 1 , 1 , 1 , 1 , - 1 , 1 , 1 , 1 , - 1 , 1 , 1 , 1 , - 1 , 1 , 1 ] ) , S = ( e => ( t , n ) => b ( t , e ( n ) , ` translate(-50%,-50%) ` ) ) ( e => [ 1 / e , 1 / e , 1 / e , 1 , - 1 / e , - 1 / e , - 1 / e , - 1 , 1 / e , 1 / e , 1 / e , 1 , 1 , 1 , 1 , 1 ] ) ; function ne ( e ) { return e && typeof e == ` object ` && ` current ` in e } var C = u . forwardRef ( ( { children : e , eps : t = . 001 , style : a , className : o , prepend : s , center : l , fullscreen : f , portal : p , distanceFactor : m , sprite : h = ! 1 , transform : b = ! 1 , occlude : C , onOcclude : w , castShadow : re , receiveShadow : ie , material : ae , geometry : T , zIndexRange : E = [ 16777271 , 0 ] , calculatePosition : D = ee , as : O = ` div ` , wrapperClass : k , pointerEvents : A = ` auto ` , ... j } , M ) => { let { gl : N , camera : P , scene : F , size : I , raycaster : L , events : R , viewport : z } = r ( ) , [ B ] = u . useState ( ( ) => document . createElement ( O ) ) , V = u . useRef ( null ) , H = u . useRef ( null ) , U = u . useRef ( 0 ) , W = u . useRef ( [ 0 , 0 ] ) , G = u . useRef ( null ) , K = u . useRef ( null ) , q = p ? . current || R . connected || N . domElement . parentNode , J = u . useRef ( null ) , Y = u . useRef ( ! 1 ) , X = u . useMemo ( ( ) => C && C !== ` blending ` || Array . isArray ( C ) && C . length && ne ( C [ 0 ] ) , [ C ] ) ; u . useLayoutEffect ( ( ) => { let e = N . domElement ; C && C === ` blending ` ? ( e . style . zIndex = ` ${ Math . floor ( E [ 0 ] / 2 ) } ` , e . style . position = ` absolute ` , e . style . pointerEvents = ` none ` ) : ( e . style . zIndex = null , e . style . position = null , e . style . pointerEvents = null ) } , [ C ] ) , u . useLayoutEffect ( ( ) => { if ( H . current ) { let e = V . current = d . createRoot ( B ) ; if ( F . updateMatrixWorld ( ) , b ) B . style . cssText = ` position:absolute;top:0;left:0;pointer-events:none;overflow:hidden; ` ; else { let e = D ( H . current , P , I ) ; B . style . cssText = ` position:absolute;top:0;left:0;transform:translate3d( ${ e [ 0 ] } px, ${ e [ 1 ] } px,0);transform-origin:0 0; ` } return q && ( s ? q . prepend ( B ) : q . appendChild ( B ) ) , ( ) => { q && q . removeChild ( B ) , e . unmount ( ) } } } , [ q , b ] ) , u . useLayoutEffect ( ( ) => { k && ( B . className = k ) } , [ k ] ) ; let Z = u . useMemo ( ( ) => b ? { position : ` absolute ` , top : 0 , left : 0 , width : I . width , height : I . height , transformStyle : ` preserve-3d ` , pointerEvents : ` none ` } : { position : ` absolute ` , transform : l ? ` translate3d(-50%,-50%,0) ` : ` none ` , ... f && { top : - I . height / 2 , left : - I . width / 2 , width : I . width , height : I . height } , ... a } , [ a , l , f , I , b ] ) , oe = u . useMemo ( ( ) => ( { position : ` absolute ` , pointerEvents : A } ) , [ A ] ) ; u . useLayoutEffect ( ( ) => { if ( Y . current = ! 1 , b ) { var t ; ( t = V . current ) == null || t . render ( u . createElement ( ` div ` , { ref : G , style : Z } , u . createElement ( ` div ` , { ref : K , style : oe } , u . createElement ( ` div ` , { ref : M , className : o , style : a , children : e } ) ) ) ) } else { var n ; ( n = V . current ) == null || n . render ( u . createElement ( ` div ` , { ref : M , style : Z , className : o , children : e } ) ) } } ) ; let Q = u . useRef ( ! 0 ) ; n ( e => { if ( H . current ) { P . updateMatrixWorld ( ) , H . current . updateWorldMatrix ( ! 0 , ! 1 ) ; let e = b ? W . current : D ( H . current , P , I ) ; if ( b || Math . abs ( U . current - P . zoom ) > t || Math . abs ( W . current [ 0 ] - e [ 0 ] ) > t || Math . abs ( W . current [ 1 ] - e [ 1 ] ) > t ) { let t = te ( H . current , P ) , n = ! 1 ; X && ( Array . isArray ( C )