@liveroom-tech/react-immersive 6.1.3 → 6.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DownloadedEnvironment-NHM4U2LJ.mjs +1 -0
- package/dist/{SequencesTab-66VBWTO5.mjs → SequencesTab-VZKEKAUG.mjs} +1 -1
- package/dist/StreamingTilesModel-6Z7SIC2J.mjs +16 -0
- package/dist/binding-builder.css +1 -1
- package/dist/binding-builder.d.mts +3 -3
- package/dist/binding-builder.d.ts +3 -3
- package/dist/binding-builder.js +59 -58
- package/dist/binding-builder.mjs +1 -1
- package/dist/chunk-25WC5KDO.mjs +50 -0
- package/dist/chunk-2AJK643D.mjs +1 -0
- package/dist/chunk-3OCHN3CA.mjs +1 -0
- package/dist/chunk-7OVEHDDE.mjs +1 -0
- package/dist/chunk-KFLS7GI6.mjs +1 -0
- package/dist/{chunk-B75URXOE.mjs → chunk-KYXJG3TX.mjs} +1 -1
- package/dist/chunk-LD7QWHB4.mjs +3 -0
- package/dist/{chunk-LKKH4PO7.mjs → chunk-NMRTI3NQ.mjs} +1 -1
- package/dist/chunk-RKDATTUM.mjs +1 -0
- package/dist/chunk-RXZ4Q7CY.mjs +1 -0
- package/dist/chunk-TUYVYSN5.mjs +1 -0
- package/dist/chunk-UAZ6I25Y.mjs +1 -0
- package/dist/chunk-UCD76KQ6.mjs +1 -0
- package/dist/chunk-UHRJ2RBF.mjs +1 -0
- package/dist/chunk-UTVFRMYW.mjs +47 -0
- package/dist/chunk-YKDDNX2D.mjs +69 -0
- package/dist/exportSceneMesh-YJFOLFHS.mjs +1 -0
- package/dist/hosted.css +1 -1
- package/dist/hosted.d.mts +4 -4
- package/dist/hosted.d.ts +4 -4
- package/dist/hosted.js +58 -57
- package/dist/hosted.mjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +52 -51
- package/dist/index.mjs +1 -1
- package/dist/meshFormats-4C6NHYOA.mjs +1 -0
- package/dist/{modelViewerProps-Bo48RDq6.d.ts → modelFileResolver-CVmON8hg.d.mts} +459 -895
- package/dist/{modelViewerProps-DkvYb1GH.d.mts → modelFileResolver-CVmON8hg.d.ts} +459 -895
- package/dist/modelViewerProps-BBnZTFO-.d.ts +949 -0
- package/dist/modelViewerProps-CIY4nsNY.d.mts +949 -0
- package/dist/{publicProps-DJSccx3b.d.ts → publicProps-BARVwXu7.d.ts} +2 -1
- package/dist/{publicProps-DN0-8tBm.d.mts → publicProps-n0Yvr_Km.d.mts} +2 -1
- package/dist/simple-model-viewer.css +1 -1
- package/dist/simple-model-viewer.d.mts +35 -4
- package/dist/simple-model-viewer.d.ts +35 -4
- package/dist/simple-model-viewer.js +5 -5
- package/dist/simple-model-viewer.mjs +1 -1
- package/dist/utils.d.mts +4 -4
- package/dist/utils.d.ts +4 -4
- package/dist/utils.js +3 -3
- package/dist/utils.mjs +1 -1
- package/dist/xrRuntime-5S7KYUVB.mjs +1 -0
- package/package.json +7 -4
- package/dist/chunk-4RYMXBK6.mjs +0 -47
- package/dist/chunk-5P7ETEAN.mjs +0 -50
- package/dist/chunk-6Q6YZ7O5.mjs +0 -1
- package/dist/chunk-EC542N4J.mjs +0 -1
- package/dist/chunk-JK7GRGRG.mjs +0 -1
- package/dist/chunk-U3BQMOC3.mjs +0 -83
- package/dist/chunk-VMYNX63T.mjs +0 -3
- package/dist/modelFileResolver-B2B3F3d1.d.mts +0 -464
- package/dist/modelFileResolver-B2B3F3d1.d.ts +0 -464
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as Rr}from"./chunk-MMO7KCYU.mjs";import{A as fr,C as gr,G as br,I as hr,M as xr,N as wr,Q as yr,R as _r,S as kr,T as Sr,h as nr,k as tr,l as ar,m as or,n as Re,o as ir,p as sr,t as lr,u as dr,v as cr,w as pr,x as ur,y as mr,z as vr}from"./chunk-4RYMXBK6.mjs";import{a as rr,b as me}from"./chunk-LKKH4PO7.mjs";import{a as Mr}from"./chunk-37YITTIK.mjs";import"./chunk-6Q6YZ7O5.mjs";import{a as mn}from"./chunk-EC542N4J.mjs";import"./chunk-BNKTI3CY.mjs";import"./chunk-JR557W27.mjs";import{useRef as N,useState as g,useCallback as y,useEffect as _,useMemo as H,Component as vn,Suspense as Ce}from"react";import{CameraControls as fn,Environment as gn}from"@react-three/drei";import{useFrame as Tr,useThree as G}from"@react-three/fiber";import{Canvas as bn}from"@react-three/fiber";import{ACESFilmicToneMapping as hn,AgXToneMapping as xn,Box3 as ze,Color as wn,MeshStandardMaterial as yn,NeutralToneMapping as _n,NoToneMapping as kn,PerspectiveCamera as Dr,Vector3 as Y}from"three";import{SkeletonUtils as Mn}from"three-stdlib";import{X as Pe,Check as Vr,Settings as Sn,ChevronDown as Rn,Boxes as Cn,RotateCcw as Nn,Trash2 as Ln,Upload as Ne,AlertTriangle as En}from"lucide-react";import{Fragment as Pr,jsx as e,jsxs as d}from"react/jsx-runtime";var Cr={color:"#93c5fd",intensity:.05},Nr=["apartment","city","dawn","forest","lobby","night","park","studio","sunset","warehouse"],Or={aces:hn,agx:xn,neutral:_n,none:kn};function Te(r){return!!(r&&"isMesh"in r&&r.isMesh)}function Lr(r,i){Array.isArray(r)?r.forEach(i):i(r)}function zn(r,i){if(!i)return;let a=i.camera;if(!(a instanceof Dr))return;let l=new ze().setFromObject(r).getSize(new Y).length();!Number.isFinite(l)||l<=0||(a.near=l/100,a.far=l*100,a.updateProjectionMatrix(),i.maxDistance=l*10)}var Ee=class extends vn{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(a){this.props.onLoadError?.(a)}render(){return this.state.hasError?null:this.props.children}};function Pn({url:r,format:i,dracoDecoderPath:a,ktx2TranscoderPath:l,meshopt:s,hiddenKeys:c,selectedKey:o,panelHoveredKey:n,nodeRefsOut:u,onMeshesReady:x,onModelLoaded:U,onLoadProgress:k,onMeshClick:T,highlightOnHover:L}){let{scene:h}=xr(r,{dracoDecoderPath:a,ktx2TranscoderPath:l,meshopt:s},i,k),B=G(p=>p.invalidate),{setCanvasCursor:D,restoreCanvasCursor:V}=_r(),[z,j]=g(null),M=H(()=>Mn.clone(h),[h]),E=H(()=>{let p={};return M.traverse(m=>{if(!Te(m))return;let w=m.name||m.uuid;p[w]={key:w,label:m.name||m.type,ref:m}}),p},[M]),A=H(()=>{let p={};for(let[m,{ref:w}]of Object.entries(E)){let K=(Array.isArray(w.material)?w.material:[w.material]).map(b=>{let S=(wr(b)??new yn).clone();return S.userData.baseColor=S.color.clone(),S.userData.baseMap=S.map,S.userData.baseEmissive=S.emissive.clone(),S.userData.baseEmissiveMap=S.emissiveMap,S.userData.baseEmissiveIntensity=S.emissiveIntensity,S});p[m]=Array.isArray(w.material)?K:K[0]}return p},[E]);_(()=>()=>{Object.values(A).forEach(p=>Lr(p,m=>m.dispose()))},[A]);let J=N(null);_(()=>{J.current!==r&&(J.current=r,M.updateWorldMatrix(!0,!0),yr(M),x(E),U(M))},[r,M,E,x,U]),_(()=>{let p=new AbortController;return ir(M,p.signal),()=>{p.abort(),sr(M)}},[M]);let oe=H(()=>!or(M),[M]);_(()=>{for(let[p,{ref:m}]of Object.entries(E))u.current[p]=m},[E,u]),_(()=>{!L&&z!==null&&(j(null),V())},[L,z,V]),_(()=>{for(let[p,{ref:m}]of Object.entries(E)){m.visible=!c.has(p);let w=A[p];if(!w)continue;m.material=w;let Z=L&&z===p,K=L&&n===p;Lr(w,b=>{if(b.color.copy(b.userData.baseColor),b.map=b.userData.baseMap??null,b.emissive.copy(b.userData.baseEmissive),b.emissiveMap=b.userData.baseEmissiveMap??null,b.emissiveIntensity=b.userData.baseEmissiveIntensity,K||Z){let ee=!!b.userData.baseEmissiveMap;b.emissive.set(Cr.color),b.emissiveIntensity=ee?b.userData.baseEmissiveIntensity:Cr.intensity}b.needsUpdate=!0})}B()},[E,A,z,o,n,L,c,B]);let Q=p=>{let m=p;for(;m;){let w=m.name||m.uuid;if(E[w])return w;m=m.parent}return null},ie=oe?{onClick:p=>{let m=Q(p.object);m&&(p.stopPropagation(),T(m))},...L?{onPointerOver:p=>{let m=Q(p.object);m&&(p.stopPropagation(),D("pointer"),j(m))},onPointerOut:p=>{p.stopPropagation(),V(),j(null)}}:{}}:{};return e("primitive",{object:M,...ie})}function Tn({scene:r,controlsRef:i,refitOnResize:a,onInitialFitComplete:l,resumeViewRef:s}){let c=N(!1),o=G(x=>x.invalidate),n=G(x=>x.size),u=N(null);return _(()=>{c.current=!1,o()},[o,r]),Tr(()=>{if(c.current)return;if(!r||!i.current){o();return}c.current=!0,zn(r,i.current);let x=s.current;if(x){s.current=null,i.current.setLookAt(...x.position,...x.target,!1).catch(()=>{}).finally(l);return}i.current.fitToBox(r,!0,{paddingTop:.5,paddingBottom:.5,paddingLeft:.5,paddingRight:.5}).catch(()=>{}).finally(l)}),_(()=>{if(!(!a||!c.current||!r||!i.current))return u.current&&clearTimeout(u.current),u.current=setTimeout(()=>{i.current?.fitToBox(r,!0,{paddingTop:.5,paddingBottom:.5,paddingLeft:.5,paddingRight:.5}).catch(()=>{}),o()},150),()=>{u.current&&clearTimeout(u.current)}},[n.width,n.height,a]),null}function Dn({scene:r,exposure:i,toneMapping:a,fov:l,wireframe:s}){let c=G(u=>u.gl),o=G(u=>u.camera),n=G(u=>u.invalidate);return _(()=>{c.toneMappingExposure=i,n()},[c,i,n]),_(()=>{o instanceof Dr&&(o.fov=l,o.updateProjectionMatrix(),n())},[o,l,n]),_(()=>{c.toneMapping=Or[a],r?.traverse(u=>{if(Te(u))for(let x of[u.material].flat())x.wireframe=s,x.needsUpdate=!0}),n()},[c,r,a,s,n]),null}function Vn({enabled:r,speed:i,controlsRef:a}){let l=G(s=>s.invalidate);return Tr((s,c)=>{!r||!a.current||(a.current.rotate(c*.2*i,0,!1),l())}),null}function ve(r){return Array.from(r.types).includes("Files")}function te({label:r,checked:i,onChange:a}){return d("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),e("div",{className:"ri-env-row__value",children:e("button",{type:"button",className:"ri-env-checkbox-btn",role:"checkbox","aria-checked":i,"aria-label":r,onClick:()=>a(!i),children:e("span",{className:`ri-env-checkbox${i?" ri-env-checkbox--checked":""}`,children:i&&e(Vr,{size:10,strokeWidth:2.5,"aria-hidden":"true"})})})})]})}function Le({label:r,value:i,onChange:a}){return d("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),e("div",{className:"ri-env-row__value",children:d("label",{className:"ri-env-color-swatch",children:[e("span",{className:"ri-env-color-swatch__chip",style:{background:i}}),e("span",{className:"ri-env-color-swatch__hex",children:i}),e("input",{type:"color",className:"ri-env-color-swatch__input","aria-label":r,value:i,onChange:l=>a(l.target.value)})]})})]})}function O({label:r,value:i,min:a,max:l,step:s,format:c=n=>n.toFixed(2),onChange:o}){return d("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),d("div",{className:"ri-env-row__value ri-env-row__value--slider",children:[e("input",{type:"range",className:"ri-env-slider","aria-label":r,min:a,max:l,step:s,value:i,onChange:n=>o(Number(n.target.value))}),e("span",{className:"ri-env-slider__value",children:c(i)})]})]})}function Er({label:r,optionLabels:i,value:a,options:l,onChange:s}){return d("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),e("div",{className:"ri-env-row__value",children:e("select",{className:"ri-env-select","aria-label":r,value:a,onChange:c=>s(c.target.value),children:l.map(c=>e("option",{value:c,children:i?.[c]??c},c))})})]})}function fe({label:r,value:i}){return d("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),e("span",{className:"ri-env-row__info",children:i})]})}var zr=r=>`${Math.round(r)}\xB0`;function ae({title:r,children:i}){let[a,l]=g(!1);return d("div",{className:"ri-env-section",children:[d("button",{type:"button",className:"ri-env-section__header","aria-expanded":!a,onClick:()=>l(s=>!s),children:[e(Rn,{size:12,strokeWidth:2,className:`ri-env-section__chevron${a?" env-section__chevron--collapsed":""}`}),e("span",{children:r})]}),!a&&e("div",{className:"ri-env-section__body",children:i})]})}function On({isOpen:r,onToggle:i,settings:a,modelInfo:l,onChange:s,onReset:c}){let o=me();return d("div",{className:`ri-left-panel-wrapper ${r?"ri-left-panel-wrapper--open":"ri-left-panel-wrapper--closed"}`,children:[!r&&e("button",{className:"ri-side-panel__open-btn ri-side-panel__open-btn--left",onClick:()=>i(!0),children:e(Sn,{size:20,strokeWidth:1.8})}),d("div",{className:`ri-side-panel ri-side-panel--left ${r?"ri-side-panel--open-left":"ri-side-panel--closed-left"}`,"aria-hidden":!r,children:[e("div",{className:"ri-side-panel__header",children:d("div",{className:"ri-side-panel__header-top",children:[e("span",{className:"ri-side-panel__eyebrow",children:o("sceneSettings")}),e("button",{className:"ri-side-panel__close-btn",onClick:()=>i(!1),title:o("close"),children:e(Pe,{size:12,strokeWidth:1.6})})]})}),d("div",{className:"ri-env-controls",children:[d(ae,{title:o("environment"),children:[e(Er,{label:o("environmentPreset"),value:a.envPreset,options:Nr,optionLabels:Object.fromEntries(Nr.map(n=>[n,o(`environment${n[0].toUpperCase()}${n.slice(1)}`)])),onChange:n=>s("envPreset",n)}),e(O,{label:o("environmentIntensity"),value:a.envIntensity,min:0,max:3,step:.05,onChange:n=>s("envIntensity",n)}),e(O,{label:o("rotation"),value:a.envRotation,min:0,max:360,step:1,format:zr,onChange:n=>s("envRotation",n)}),e(te,{label:o("showEnvironmentAsBackground"),checked:a.backgroundEnabled,onChange:n=>s("backgroundEnabled",n)}),a.backgroundEnabled?e(O,{label:o("backgroundBlur"),value:a.backgroundBlur,min:0,max:1,step:.01,onChange:n=>s("backgroundBlur",n)}):e(Le,{label:o("backgroundColor"),value:a.backgroundColor,onChange:n=>s("backgroundColor",n)})]}),d(ae,{title:o("lighting"),children:[e(O,{label:o("exposure"),value:a.exposure,min:0,max:2,step:.05,onChange:n=>s("exposure",n)}),e(Er,{label:o("toneMapping"),value:a.toneMapping,options:Object.keys(Or),optionLabels:{aces:o("toneMappingAces"),agx:o("toneMappingAgx"),neutral:o("toneMappingNeutral"),none:o("toneMappingNone")},onChange:n=>s("toneMapping",n)}),e(O,{label:o("ambientLightIntensity"),value:a.ambientIntensity,min:0,max:3,step:.05,onChange:n=>s("ambientIntensity",n)}),e(Le,{label:o("ambientLightColor"),value:a.ambientColor,onChange:n=>s("ambientColor",n)}),e(O,{label:o("directLightIntensity"),value:a.directionalIntensity,min:0,max:5,step:.05,onChange:n=>s("directionalIntensity",n)}),e(Le,{label:o("directLightColor"),value:a.directionalColor,onChange:n=>s("directionalColor",n)})]}),d(ae,{title:o("ground"),children:[e(te,{label:o("groundShadow"),checked:a.groundShadow,onChange:n=>s("groundShadow",n)}),a.groundShadow&&e(O,{label:o("groundShadowOpacity"),value:a.groundShadowOpacity,min:0,max:1,step:.01,onChange:n=>s("groundShadowOpacity",n)}),e(te,{label:o("floorGrid"),checked:a.showFloorGrid,onChange:n=>s("showFloorGrid",n)})]}),d(ae,{title:o("display"),children:[e(te,{label:o("wireframe"),checked:a.wireframe,onChange:n=>s("wireframe",n)}),e(te,{label:o("autoRotate"),checked:a.autoRotate,onChange:n=>s("autoRotate",n)}),a.autoRotate&&e(O,{label:o("autoRotateSpeed"),value:a.autoRotateSpeed,min:.1,max:5,step:.1,onChange:n=>s("autoRotateSpeed",n)}),e(O,{label:o("fieldOfView"),value:a.fov,min:15,max:90,step:1,format:zr,onChange:n=>s("fov",n)})]}),l&&d(ae,{title:o("modelInfo"),children:[e(fe,{label:o("modelInfoObjects"),value:l.objects.toLocaleString()}),e(fe,{label:o("modelInfoTriangles"),value:l.triangles.toLocaleString()}),e(fe,{label:o("modelInfoMaterials"),value:l.materials.toLocaleString()}),e(fe,{label:o("size"),value:l.size})]}),e("div",{className:"ri-env-footer",children:d("button",{type:"button",className:"ri-env-reset",onClick:c,children:[e(Nn,{size:12,"aria-hidden":"true"}),o("resetSettings")]})})]})]})]})}function jn(r){let i=0,a=new Set;r.traverse(s=>{if(Te(s)){i+=1;for(let c of[s.material].flat())a.add(c.name||c.uuid)}});let l=new ze().setFromObject(r).getSize(new Y);return{objects:i,triangles:Re(r),materials:a.size,size:[l.x,l.y,l.z].map(s=>Number(s.toPrecision(3))).join(" \xD7 ")}}function In({meshKeys:r,hiddenKeys:i,selectedKey:a,isOpen:l,onToggle:s,onFocus:c,onHover:o,onToggleVisibility:n}){let u=me(),[x,U]=g(""),[k,T]=g(null),L=Object.values(r).filter(h=>h.label.toLowerCase().includes(x.toLowerCase()));return d("div",{className:`ri-right-panel-wrapper ${l?"ri-right-panel-wrapper--open":"ri-right-panel-wrapper--closed"}`,children:[!l&&e("button",{className:"ri-side-panel__open-btn",onClick:()=>s(!0),children:e(Cn,{size:20,strokeWidth:1.8})}),d("div",{className:`ri-side-panel ${l?"ri-side-panel--open":"ri-side-panel--closed"}`,"aria-hidden":!l,children:[e("div",{className:"ri-side-panel__header",children:d("div",{className:"ri-side-panel__header-top",children:[e("span",{className:"ri-side-panel__eyebrow",children:u("sceneObjects")}),e("span",{className:"ri-side-panel__title","aria-label":u("objectCount",{count:L.length}),children:L.length}),e("button",{className:"ri-side-panel__close-btn",onClick:()=>s(!1),title:u("close"),children:e(Pe,{size:12,strokeWidth:1.6})})]})}),e("div",{className:"ri-side-panel__search-wrap",children:e("input",{className:"ri-side-panel__search",type:"text",placeholder:u("searchObjects"),value:x,onChange:h=>U(h.target.value)})}),e("div",{className:"ri-side-panel__list",children:L.map(({key:h,label:B})=>{let D=!i.has(h),V=a===h,z=k===h;return d("div",{onClick:()=>c(h),onMouseEnter:()=>{T(h),o(h)},onMouseLeave:()=>{T(null),o(null)},className:["ri-side-panel__row",z?"ri-side-panel__row--hovered":"",V?"ri-side-panel__row--selected":""].filter(Boolean).join(" "),children:[e("button",{type:"button",className:`ri-side-panel__label ri-side-panel__labelButton${z||V?" ri-side-panel__label--hovered":""}`,"aria-current":V?"true":void 0,onFocus:()=>{T(h),o(h)},onBlur:()=>{T(null),o(null)},children:B}),e("button",{type:"button",className:"ri-side-panel__vis-btn",title:u(D?"hide":"show"),"aria-label":u(D?"hideObject":"showObject",{name:B}),onClick:j=>{j.stopPropagation(),n(h)},children:e("span",{className:`ri-side-panel__checkbox${D?" ri-side-panel__checkbox--checked":""}`,children:D&&e(Vr,{size:9,strokeWidth:5,color:"white"})})})]},h)})})]})]})}function jr(r){return e(rr,{labels:r.labels,children:e(Fn,{...r})})}function Fn({modelUrl:r,poster:i,loading:a,reveal:l,modelFormat:s,dracoDecoderPath:c,ktx2TranscoderPath:o,meshopt:n=!0,backgroundColor:u="#1a1a1a",showSceneObjectsPanel:x=!0,showSceneSettingsPanel:U=!0,enableModelUpload:k=!1,zoomOnSelected:T=!1,highlightOnHover:L=!1,showLoadingOverlay:h=!0,refitOnResize:B=!0,backgroundEnabled:D=!1,autoRotate:V=!1,envPreset:z="city",exposure:j=1,ambientIntensity:M=.6,ambientColor:E="#ffffff",directionalIntensity:A=1.2,directionalColor:J="#ffffff",envIntensity:oe=1,envRotation:Q=0,backgroundBlur:ie=0,toneMapping:p="aces",groundShadow:m=!1,groundShadowOpacity:w=.5,showFloorGrid:Z=!1,wireframe:K=!1,autoRotateSpeed:b=1,fov:ee=45,onModelLoaded:S,onLoadError:se,reducedMotion:Ir="user"}){let I=me(),ge=Mr(Ir),De=V&&!ge;Rr("simple-model-viewer","SimpleModelViewer");let W=N(null),Ve=N({}),Oe=N(null),be=N(null),re=N(0),[R,he]=g(null),[je,Ie]=g(null),[Fr,xe]=g(!1),[Br,Fe]=g({}),[Be,Ae]=g(new Set),[Ke,He]=g(null),[Ar,Ge]=g(null),[Ue,We]=g(null),[Kr,Xe]=g(null),[Hr,le]=g(!1),[$e,qe]=g(!1),[we,ye]=g(!1),[Gr,de]=g(null),Ur=gr(Gr),[Wr,ce]=g(!1),[Xr,$r]=g(()=>typeof window>"u"?!0:window.innerWidth>900),[qr,Yr]=g(()=>typeof window>"u"?!0:window.innerWidth>900),pe=H(()=>({backgroundEnabled:D,backgroundColor:u,autoRotate:De,envPreset:z,exposure:j,ambientIntensity:M,ambientColor:E,directionalIntensity:A,directionalColor:J,envIntensity:oe,envRotation:Q,backgroundBlur:ie,toneMapping:p,groundShadow:m,groundShadowOpacity:w,showFloorGrid:Z,wireframe:K,autoRotateSpeed:b,fov:ee}),[D,u,De,z,j,M,E,A,J,oe,Q,ie,p,m,w,Z,K,b,ee]),[v,ue]=g(pe),C=k?Ue:r,Ye=N(null),_e=N(null),ke=N(null),[ne,Je]=g(null);_(()=>()=>{ne&&URL.revokeObjectURL(ne)},[ne]);let Qe=N(C);Qe.current=C;let Me=N(null),F=mr({loading:a,reveal:l,rootRef:Ye,onPark:()=>{Me.current=_e.current?.gl??null;let t=W.current;if(t&&we){ke.current={position:t.getPosition(new Y).toArray(),target:t.getTarget(new Y).toArray()};let f=C;ur(_e.current).then(P=>{P&&(f===Qe.current?Je(P):URL.revokeObjectURL(P))})}he(null),ye(!1)}});_(()=>{if(F.live)return;let t=Me.current;Me.current=null,t&&pr(t)},[F.live]);let X=y(()=>{ke.current=null,Je(null),he(null),Ie(null),xe(!1),Fe({}),Ae(new Set),He(null),Ge(null),le(!1),ye(!1),de(null)},[]),$=y(()=>{be.current?.cleanup(),be.current=null},[]),Jr=y(()=>{$(),We(null),Xe(null),X(),ue(pe)},[pe,X,$]),Ze=y(async t=>{qe(!0);try{let f=await tr(t);$(),be.current=f,We(f.url),Xe(f.name),X()}catch(f){le(!0),se?.(f)}finally{qe(!1)}},[se,X,$]),Se=y(t=>{let f=t?.[0];f&&Ze(f)},[Ze]);_(()=>()=>{$()},[$]);let Qr=y(()=>R,[R]),Zr=!v.backgroundEnabled&&new wn(v.backgroundColor).getHSL({h:0,s:0,l:0}).l>.5?"#000000":"#ffffff",en=H(()=>R?jn(R):null,[R]),q=H(()=>{if(!R)return null;let t=new ze().setFromObject(R);if(t.isEmpty())return null;let f=t.getSize(new Y);return{y:t.min.y,center:t.getCenter(new Y),size:Math.max(f.x,f.y,f.z)}},[R]),rn=y((t,f)=>{ue(P=>({...P,[t]:f}))},[]);_(()=>{ue(t=>({...t,backgroundColor:u}))},[u]),_(()=>{X()},[C,X]);let nn=y(t=>{Fe(t)},[]),tn=y(t=>{he(t),le(!1);let f=Re(t);Ie(f>ar?f:null),xe(!1),de(null),S?.(kr(t))},[S]),an=y(t=>{le(!0),de(null),se?.(t)},[se]),on=y(t=>{t.lengthComputable&&t.total>0&&de(t.loaded/t.total*100)},[]),er=y(t=>{if(He(t),!T)return;let f=Ve.current[t];!f||!W.current||W.current.fitToBox(f,!0,{paddingTop:.5,paddingBottom:.5,paddingLeft:.5,paddingRight:.5}).catch(()=>{})},[T]),sn=y(t=>{Ae(f=>{let P=new Set(f);return P.has(t)?P.delete(t):P.add(t),P})},[]),ln=y(t=>{!k||!ve(t.dataTransfer)||(t.preventDefault(),t.stopPropagation(),re.current+=1,ce(!0))},[k]),dn=y(t=>{!k||!ve(t.dataTransfer)||(t.preventDefault(),t.stopPropagation(),t.dataTransfer.dropEffect="copy",ce(!0))},[k]),cn=y(t=>{!k||!ve(t.dataTransfer)||(t.preventDefault(),t.stopPropagation(),re.current=Math.max(0,re.current-1),re.current===0&&ce(!1))},[k]),pn=y(t=>{!k||!ve(t.dataTransfer)||(t.preventDefault(),t.stopPropagation(),re.current=0,ce(!1),Se(t.dataTransfer.files))},[k,Se]),un=h&&($e||!!(C&&F.live&&!Hr&&(!R||!we)));return d("div",{className:"smv-root",ref:Ye,"data-reduced-motion":ge?"":void 0,style:{background:v.backgroundColor},onDragEnter:ln,onDragOver:dn,onDragLeave:cn,onDrop:pn,children:[U&&C&&e(On,{isOpen:qr,onToggle:Yr,settings:v,modelInfo:en,onReset:()=>ue(pe),onChange:rn}),d("div",{className:"smv-canvasArea",children:[je!==null&&!Fr&&d("div",{className:"smv-largeModelBanner",children:[e(En,{size:14,className:"smv-largeModelBanner__icon"}),e("span",{children:I("simpleLargeModelWarning",{millions:Math.round(je/1e6)})}),e("button",{type:"button",className:"smv-largeModelBanner__dismiss",onClick:()=>xe(!0),"aria-label":I("dismiss"),children:e(Pe,{size:12})})]}),k?d(Pr,{children:[e("input",{ref:Oe,type:"file",accept:nr,className:"smv-upload-input",onChange:t=>{Se(t.target.files),t.currentTarget.value=""}}),C?e("div",{className:"smv-upload-toolbar",children:d(Pr,{children:[e("span",{className:"smv-upload-toolbar__name",children:Kr??I("uploadedModel")}),d("button",{type:"button",className:"smv-upload-toolbar__button smv-upload-toolbar__button--ghost",onClick:Jr,children:[e(Ln,{size:14}),I("clear")]})]})}):null]}):null,C&&!F.live?e(fr,{className:"ri-viewerPlaceholder--inset",background:v.backgroundColor,poster:ne??i,onReveal:F.awaitingReveal?F.reveal:void 0}):C?d(bn,{dpr:[1,2],frameloop:F.visible?"demand":"never",resize:{debounce:0,scroll:!1},raycaster:{firstHitOnly:!0},style:{background:v.backgroundColor},camera:{position:[0,0,5],fov:45,near:.1,far:1e3},children:[e(dr,{captureRef:_e}),e(cr,{}),d(Ce,{fallback:null,children:[e("ambientLight",{intensity:v.ambientIntensity,color:v.ambientColor}),e("directionalLight",{position:[-4,5,7],intensity:v.directionalIntensity,color:v.directionalColor,castShadow:!0}),e("directionalLight",{position:[-5,5,5],intensity:.5}),e(Ce,{fallback:null,children:e(gn,{preset:v.envPreset,background:v.backgroundEnabled,environmentIntensity:v.envIntensity,backgroundIntensity:v.envIntensity,backgroundBlurriness:v.backgroundBlur})}),e(hr,{rotation:v.envRotation}),e(Dn,{scene:R,exposure:v.exposure,toneMapping:v.toneMapping,fov:v.fov,wireframe:v.wireframe}),e(Vn,{enabled:v.autoRotate,speed:v.autoRotateSpeed,controlsRef:W}),v.groundShadow&&q&&e(br,{position:[q.center.x,q.y,q.center.z],scale:q.size*2,opacity:v.groundShadowOpacity,blur:2,far:q.size,resolution:1024,color:"#000000"}),v.showFloorGrid&&e(lr,{getTarget:Qr,revision:R,lineColor:Zr}),e(Ee,{onLoadError:an,children:e(Ce,{fallback:null,children:e(Pn,{url:C,format:Ue?void 0:s,dracoDecoderPath:c,ktx2TranscoderPath:o,meshopt:n,hiddenKeys:Be,selectedKey:Ke,panelHoveredKey:Ar,nodeRefsOut:Ve,onMeshesReady:nn,onModelLoaded:tn,onLoadProgress:on,onMeshClick:er,highlightOnHover:L})})},C),e(Tn,{scene:R,controlsRef:W,refitOnResize:B,onInitialFitComplete:()=>ye(!0),resumeViewRef:ke}),e(fn,{ref:W,makeDefault:!0,smoothTime:ge?0:.3})]})]}):e("div",{className:"smv-upload-empty-state",style:{background:v.backgroundColor},children:d("div",{className:"smv-upload-empty-state__card",children:[e("div",{className:"smv-upload-empty-state__icon",children:e(Ne,{size:24})}),e("p",{className:"smv-upload-empty-state__body",children:I("dropModelHint",{formats:".glb, .gltf, .obj, .fbx, .usdz, .stl, .ply, .zip"})}),d("button",{type:"button",className:"smv-upload-empty-state__button",onClick:()=>Oe.current?.click(),children:[e(Ne,{size:15}),I("chooseModel")]})]})}),C&&F.live?e(vr,{src:ne??i,hidden:!!(R&&we)}):null,e(Sr,{visible:un,message:I("loadingModel"),progress:$e?void 0:Ur??void 0}),k&&Wr?e("div",{className:"smv-upload-drop-overlay",children:d("div",{className:"smv-upload-drop-overlay__card",children:[e(Ne,{size:20}),e("span",{children:I("releaseToLoadYourModel")})]})}):null]}),x&&C&&e(In,{meshKeys:Br,hiddenKeys:Be,selectedKey:Ke,isOpen:Xr,onToggle:$r,onFocus:er,onHover:Ge,onToggleVisibility:sn})]})}export{mn as DEFAULT_MODEL_VIEWER_LABELS,jr as SimpleModelViewer};
|
|
1
|
+
"use client";import{a as Xr}from"./chunk-MMO7KCYU.mjs";import{A as Tr,C as Vr,E as Or,F as Ir,H as jr,I as Br,J as Fr,K as Hr,L as Gr,M as Ur,N as $r,h as br,i as fr,k as hr,o as kr,p as Mr,q as Sr,r as Cr,s as Rr,t as Er,u as Lr,v as Nr,x as zr,y as Pr,z as Dr}from"./chunk-UTVFRMYW.mjs";import{a as gr,b as fe}from"./chunk-NMRTI3NQ.mjs";import{a as Wr}from"./chunk-37YITTIK.mjs";import"./chunk-2AJK643D.mjs";import{a as xr,b as wr,c as De,d as yr,e as _r,f as Ar,j as Kr}from"./chunk-RKDATTUM.mjs";import"./chunk-KFLS7GI6.mjs";import{a as Fn}from"./chunk-UAZ6I25Y.mjs";import"./chunk-BNKTI3CY.mjs";import"./chunk-UCD76KQ6.mjs";import"./chunk-RXZ4Q7CY.mjs";import"./chunk-JR557W27.mjs";import{useRef as C,useState as b,useCallback as k,useEffect as M,useMemo as H,Component as Gn,Suspense as Te}from"react";import{CameraControls as Un}from"@react-three/drei";import{useFrame as on,useThree as q}from"@react-three/fiber";import{Canvas as Wn}from"@react-three/fiber";import{ACESFilmicToneMapping as $n,AgXToneMapping as Xn,Box3 as _e,Color as qn,MeshStandardMaterial as Jn,NeutralToneMapping as Yn,NoToneMapping as Zn,PerspectiveCamera as an,Vector3 as V}from"three";import{SkeletonUtils as Qn}from"three-stdlib";import{X as Oe,Check as sn,Settings as et,ChevronDown as rt,Boxes as nt,RotateCcw as tt,Trash2 as ot,Upload as Ve,AlertTriangle as at}from"lucide-react";import{Box3 as qr,Vector3 as oe}from"three";var Jr=.1;function Kn(r,o){if(!o||r.isEmpty())return r.clone();let t=r.getCenter(new oe),l=r.getSize(new oe),a=Math.hypot(l.x,l.z)/2;return new qr(new oe(t.x-a,r.min.y,t.z-a),new oe(t.x+a,r.max.y,t.z+a))}function Hn(r,o){let t=r.getSize(new oe),l=Math.max(t.x,t.y,t.z),a=Number.isFinite(l)?l*Math.max(0,o):0;return{paddingTop:a,paddingBottom:a,paddingLeft:a,paddingRight:a}}function he(r,o,{fitPadding:t,spinning:l},a){let d=new qr().setFromObject(o);return r.fitToBox(Kn(d,l),a,Hn(d,t))}import{Fragment as tn,jsx as e,jsxs as c}from"react/jsx-runtime";var Yr={color:"#93c5fd",intensity:.05},Zr=["neutral","apartment","city","dawn","forest","lobby","night","park","studio","sunset","warehouse"],ln={aces:$n,agx:Xn,neutral:Yn,none:Zn};function Ie(r){return!!(r&&"isMesh"in r&&r.isMesh)}function Qr(r,o){Array.isArray(r)?r.forEach(o):o(r)}function en(r,o,t){if(!o)return;let l=o.camera;if(!(l instanceof an))return;let a=new _e().setFromObject(r).getSize(new V).length();if(!Number.isFinite(a)||a<=0)return;l.near=a/100,l.far=a*100,l.updateProjectionMatrix();let d=jr(t);o.minDistance=t?.minDistance??a*.05,o.maxDistance=t?.maxDistance??a*10,o.minPolarAngle=d.minPolarAngle,o.maxPolarAngle=d.maxPolarAngle,o.minAzimuthAngle=d.minAzimuthAngle,o.maxAzimuthAngle=d.maxAzimuthAngle,o.boundaryEnclosesCamera=d.boundaryEnclosesCamera,o.boundaryFriction=d.boundaryFriction,o.setBoundary(d.panBoundary?new _e(new V(...d.panBoundary[0]),new V(...d.panBoundary[1])):void 0)}var ke=class extends Gn{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t){this.props.onLoadError?.(t)}render(){return this.state.hasError?null:this.props.children}};function it({url:r,format:o,dracoDecoderPath:t,ktx2TranscoderPath:l,meshopt:a,hiddenKeys:d,selectedKey:x,panelHoveredKey:f,nodeRefsOut:i,onMeshesReady:s,onModelLoaded:z,onLoadProgress:h,onMeshClick:N,highlightOnHover:y}){let{scene:u}=Fr(r,{dracoDecoderPath:t,ktx2TranscoderPath:l,meshopt:a},o,h),G=q(p=>p.invalidate),{setCanvasCursor:A,restoreCanvasCursor:O}=Gr(),[I,F]=b(null),E=H(()=>Qn.clone(u),[u]),P=H(()=>{let p={};return E.traverse(m=>{if(!Ie(m))return;let _=m.name||m.uuid;p[_]={key:_,label:m.name||m.type,ref:m}}),p},[E]),U=H(()=>{let p={};for(let[m,{ref:_}]of Object.entries(P)){let $=(Array.isArray(_.material)?_.material:[_.material]).map(w=>{let L=(Kr(w)??new Jn).clone();return L.userData.baseColor=L.color.clone(),L.userData.baseMap=L.map,L.userData.baseEmissive=L.emissive.clone(),L.userData.baseEmissiveMap=L.emissiveMap,L.userData.baseEmissiveIntensity=L.emissiveIntensity,L});p[m]=Array.isArray(_.material)?$:$[0]}return p},[P]);M(()=>()=>{Object.values(U).forEach(p=>Qr(p,m=>m.dispose()))},[U]);let ie=C(null);M(()=>{ie.current!==r&&(ie.current=r,E.updateWorldMatrix(!0,!0),Hr(E),s(P),z(E))},[r,E,P,s,z]),M(()=>{let p=new AbortController;return yr(E,p.signal),()=>{p.abort(),_r(E)}},[E]);let se=H(()=>!wr(E),[E]);M(()=>{for(let[p,{ref:m}]of Object.entries(P))i.current[p]=m},[P,i]),M(()=>{!y&&I!==null&&(F(null),O())},[y,I,O]),M(()=>{for(let[p,{ref:m}]of Object.entries(P)){m.visible=!d.has(p);let _=U[p];if(!_)continue;m.material=_;let re=y&&I===p,$=y&&f===p;Qr(_,w=>{if(w.color.copy(w.userData.baseColor),w.map=w.userData.baseMap??null,w.emissive.copy(w.userData.baseEmissive),w.emissiveMap=w.userData.baseEmissiveMap??null,w.emissiveIntensity=w.userData.baseEmissiveIntensity,$||re){let ne=!!w.userData.baseEmissiveMap;w.emissive.set(Yr.color),w.emissiveIntensity=ne?w.userData.baseEmissiveIntensity:Yr.intensity}w.needsUpdate=!0})}G()},[P,U,I,x,f,y,d,G]);let W=p=>{if(!Ar(p))return null;let m=p;for(;m;){let _=m.name||m.uuid;if(P[_])return _;m=m.parent}return null},ee=se?{onClick:p=>{let m=W(p.object);m&&(p.stopPropagation(),N(m))},...y?{onPointerOver:p=>{let m=W(p.object);m&&(p.stopPropagation(),A("pointer"),F(m))},onPointerOut:p=>{p.stopPropagation(),O(),F(null)}}:{}}:{};return e("primitive",{object:E,...ee})}function st({scene:r,controlsRef:o,refitOnResize:t,onInitialFitComplete:l,resumeViewRef:a,cameraLimits:d,framing:x}){let f=C(x);f.current=x;let i=C(d);i.current=d;let s=JSON.stringify(d??null);M(()=>{r&&en(r,o.current,i.current)},[r,o,s]);let z=C(!1),h=q(u=>u.invalidate),N=q(u=>u.size),y=C(null);return M(()=>{z.current=!1,h()},[h,r]),on(()=>{if(z.current)return;if(!r||!o.current){h();return}z.current=!0,en(r,o.current,d);let u=a.current;if(u){a.current=null,o.current.setLookAt(...u.position,...u.target,!1).catch(()=>{}).finally(l),h();return}he(o.current,r,f.current,!1).catch(()=>{}).finally(l),h()}),M(()=>{if(!(!t||!z.current||!r||!o.current))return y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{let u=o.current;u&&he(u,r,f.current,!0).catch(()=>{}),h()},150),()=>{y.current&&clearTimeout(y.current)}},[N.width,N.height,t]),null}function lt({scene:r,exposure:o,toneMapping:t,fov:l,wireframe:a}){let d=q(i=>i.gl),x=q(i=>i.camera),f=q(i=>i.invalidate);return M(()=>{d.toneMappingExposure=o,f()},[d,o,f]),M(()=>{x instanceof an&&(x.fov=l,x.updateProjectionMatrix(),f())},[x,l,f]),M(()=>{d.toneMapping=ln[t],r?.traverse(i=>{if(Ie(i))for(let s of[i.material].flat())s.wireframe=a,s.needsUpdate=!0}),f()},[d,r,t,a,f]),null}function dt({enabled:r,speed:o,controlsRef:t}){let l=q(a=>a.invalidate);return on((a,d)=>{!r||!t.current||(t.current.rotate(d*.2*o,0,!1),l())}),null}function xe(r){return Array.from(r.types).includes("Files")}function ae({label:r,checked:o,onChange:t}){return c("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),e("div",{className:"ri-env-row__value",children:e("button",{type:"button",className:"ri-env-checkbox-btn",role:"checkbox","aria-checked":o,"aria-label":r,onClick:()=>t(!o),children:e("span",{className:`ri-env-checkbox${o?" ri-env-checkbox--checked":""}`,children:o&&e(sn,{size:10,strokeWidth:2.5,"aria-hidden":"true"})})})})]})}function we({label:r,value:o,onChange:t}){return c("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),e("div",{className:"ri-env-row__value",children:c("label",{className:"ri-env-color-swatch",children:[e("span",{className:"ri-env-color-swatch__chip",style:{background:o}}),e("span",{className:"ri-env-color-swatch__hex",children:o}),e("input",{type:"color",className:"ri-env-color-swatch__input","aria-label":r,value:o,onChange:l=>t(l.target.value)})]})})]})}function B({label:r,value:o,min:t,max:l,step:a,format:d=f=>f.toFixed(2),onChange:x}){return c("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),c("div",{className:"ri-env-row__value ri-env-row__value--slider",children:[e("input",{type:"range",className:"ri-env-slider","aria-label":r,min:t,max:l,step:a,value:o,onChange:f=>x(Number(f.target.value))}),e("span",{className:"ri-env-slider__value",children:d(o)})]})]})}function rn({label:r,optionLabels:o,value:t,options:l,onChange:a}){return c("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),e("div",{className:"ri-env-row__value",children:e("select",{className:"ri-env-select","aria-label":r,value:t,onChange:d=>a(d.target.value),children:l.map(d=>e("option",{value:d,children:o?.[d]??d},d))})})]})}function ye({label:r,value:o}){return c("div",{className:"ri-env-row",children:[e("span",{className:"ri-env-row__label",title:r,children:r}),e("span",{className:"ri-env-row__info",children:o})]})}var nn=r=>`${Math.round(r)}\xB0`;function Q({title:r,children:o}){let[t,l]=b(!1);return c("div",{className:"ri-env-section",children:[c("button",{type:"button",className:"ri-env-section__header","aria-expanded":!t,onClick:()=>l(a=>!a),children:[e(rt,{size:12,strokeWidth:2,className:`ri-env-section__chevron${t?" env-section__chevron--collapsed":""}`}),e("span",{children:r})]}),!t&&e("div",{className:"ri-env-section__body",children:o})]})}function ct({isOpen:r,onToggle:o,settings:t,modelInfo:l,onChange:a,onReset:d,environmentEnabled:x,environmentUrl:f}){let i=fe();return c("div",{className:`ri-left-panel-wrapper ${r?"ri-left-panel-wrapper--open":"ri-left-panel-wrapper--closed"}`,children:[!r&&e("button",{className:"ri-side-panel__open-btn ri-side-panel__open-btn--left",onClick:()=>o(!0),children:e(et,{size:20,strokeWidth:1.8})}),c("div",{className:`ri-side-panel ri-side-panel--left ${r?"ri-side-panel--open-left":"ri-side-panel--closed-left"}`,"aria-hidden":!r,children:[e("div",{className:"ri-side-panel__header",children:c("div",{className:"ri-side-panel__header-top",children:[e("span",{className:"ri-side-panel__eyebrow",children:i("sceneSettings")}),e("button",{className:"ri-side-panel__close-btn",onClick:()=>o(!1),title:i("close"),children:e(Oe,{size:12,strokeWidth:1.6})})]})}),c("div",{className:"ri-env-controls",children:[x&&c(Q,{title:i("environment"),children:[!f&&e(rn,{label:i("environmentPreset"),value:t.envPreset,options:Zr,optionLabels:Object.fromEntries(Zr.map(s=>[s,i(`environment${s[0].toUpperCase()}${s.slice(1)}`)])),onChange:s=>a("envPreset",s)}),e(B,{label:i("environmentIntensity"),value:t.envIntensity,min:0,max:3,step:.05,onChange:s=>a("envIntensity",s)}),e(B,{label:i("rotation"),value:t.envRotation,min:0,max:360,step:1,format:nn,onChange:s=>a("envRotation",s)}),e(ae,{label:i("showEnvironmentAsBackground"),checked:t.backgroundEnabled,onChange:s=>a("backgroundEnabled",s)}),t.backgroundEnabled?e(B,{label:i("backgroundBlur"),value:t.backgroundBlur,min:0,max:1,step:.01,onChange:s=>a("backgroundBlur",s)}):e(we,{label:i("backgroundColor"),value:t.backgroundColor,onChange:s=>a("backgroundColor",s)})]}),!x&&e(Q,{title:i("background"),children:e(we,{label:i("backgroundColor"),value:t.backgroundColor,onChange:s=>a("backgroundColor",s)})}),c(Q,{title:i("lighting"),children:[e(B,{label:i("exposure"),value:t.exposure,min:0,max:2,step:.05,onChange:s=>a("exposure",s)}),e(rn,{label:i("toneMapping"),value:t.toneMapping,options:Object.keys(ln),optionLabels:{aces:i("toneMappingAces"),agx:i("toneMappingAgx"),neutral:i("toneMappingNeutral"),none:i("toneMappingNone")},onChange:s=>a("toneMapping",s)}),e(B,{label:i("ambientLightIntensity"),value:t.ambientIntensity,min:0,max:3,step:.05,onChange:s=>a("ambientIntensity",s)}),e(we,{label:i("ambientLightColor"),value:t.ambientColor,onChange:s=>a("ambientColor",s)}),e(B,{label:i("directLightIntensity"),value:t.directionalIntensity,min:0,max:5,step:.05,onChange:s=>a("directionalIntensity",s)}),e(we,{label:i("directLightColor"),value:t.directionalColor,onChange:s=>a("directionalColor",s)})]}),c(Q,{title:i("ground"),children:[e(ae,{label:i("groundShadow"),checked:t.groundShadow,onChange:s=>a("groundShadow",s)}),t.groundShadow&&e(B,{label:i("groundShadowOpacity"),value:t.groundShadowOpacity,min:0,max:1,step:.01,onChange:s=>a("groundShadowOpacity",s)}),e(ae,{label:i("floorGrid"),checked:t.showFloorGrid,onChange:s=>a("showFloorGrid",s)})]}),c(Q,{title:i("display"),children:[e(ae,{label:i("wireframe"),checked:t.wireframe,onChange:s=>a("wireframe",s)}),e(ae,{label:i("autoRotate"),checked:t.autoRotate,onChange:s=>a("autoRotate",s)}),t.autoRotate&&e(B,{label:i("autoRotateSpeed"),value:t.autoRotateSpeed,min:.1,max:5,step:.1,onChange:s=>a("autoRotateSpeed",s)}),e(B,{label:i("fieldOfView"),value:t.fov,min:15,max:90,step:1,format:nn,onChange:s=>a("fov",s)})]}),l&&c(Q,{title:i("modelInfo"),children:[e(ye,{label:i("modelInfoObjects"),value:l.objects.toLocaleString()}),e(ye,{label:i("modelInfoTriangles"),value:l.triangles.toLocaleString()}),e(ye,{label:i("modelInfoMaterials"),value:l.materials.toLocaleString()}),e(ye,{label:i("size"),value:l.size})]}),e("div",{className:"ri-env-footer",children:c("button",{type:"button",className:"ri-env-reset",onClick:d,children:[e(tt,{size:12,"aria-hidden":"true"}),i("resetSettings")]})})]})]})]})}function pt(r){let o=0,t=new Set;r.traverse(a=>{if(Ie(a)){o+=1;for(let d of[a.material].flat())t.add(d.name||d.uuid)}});let l=new _e().setFromObject(r).getSize(new V);return{objects:o,triangles:De(r),materials:t.size,size:[l.x,l.y,l.z].map(a=>Number(a.toPrecision(3))).join(" \xD7 ")}}function ut({meshKeys:r,hiddenKeys:o,selectedKey:t,isOpen:l,onToggle:a,onFocus:d,onHover:x,onToggleVisibility:f}){let i=fe(),[s,z]=b(""),[h,N]=b(null),y=Object.values(r).filter(u=>u.label.toLowerCase().includes(s.toLowerCase()));return c("div",{className:`ri-right-panel-wrapper ${l?"ri-right-panel-wrapper--open":"ri-right-panel-wrapper--closed"}`,children:[!l&&e("button",{className:"ri-side-panel__open-btn",onClick:()=>a(!0),children:e(nt,{size:20,strokeWidth:1.8})}),c("div",{className:`ri-side-panel ${l?"ri-side-panel--open":"ri-side-panel--closed"}`,"aria-hidden":!l,children:[e("div",{className:"ri-side-panel__header",children:c("div",{className:"ri-side-panel__header-top",children:[e("span",{className:"ri-side-panel__eyebrow",children:i("sceneObjects")}),e("span",{className:"ri-side-panel__title","aria-label":i("objectCount",{count:y.length}),children:y.length}),e("button",{className:"ri-side-panel__close-btn",onClick:()=>a(!1),title:i("close"),children:e(Oe,{size:12,strokeWidth:1.6})})]})}),e("div",{className:"ri-side-panel__search-wrap",children:e("input",{className:"ri-side-panel__search",type:"text",placeholder:i("searchObjects"),value:s,onChange:u=>z(u.target.value)})}),e("div",{className:"ri-side-panel__list",children:y.map(({key:u,label:G})=>{let A=!o.has(u),O=t===u,I=h===u;return c("div",{onClick:()=>d(u),onMouseEnter:()=>{N(u),x(u)},onMouseLeave:()=>{N(null),x(null)},className:["ri-side-panel__row",I?"ri-side-panel__row--hovered":"",O?"ri-side-panel__row--selected":""].filter(Boolean).join(" "),children:[e("button",{type:"button",className:`ri-side-panel__label ri-side-panel__labelButton${I||O?" ri-side-panel__label--hovered":""}`,"aria-current":O?"true":void 0,onFocus:()=>{N(u),x(u)},onBlur:()=>{N(null),x(null)},children:G}),e("button",{type:"button",className:"ri-side-panel__vis-btn",title:i(A?"hide":"show"),"aria-label":i(A?"hideObject":"showObject",{name:G}),onClick:F=>{F.stopPropagation(),f(u)},children:e("span",{className:`ri-side-panel__checkbox${A?" ri-side-panel__checkbox--checked":""}`,children:A&&e(sn,{size:9,strokeWidth:5,color:"white"})})})]},u)})})]})]})}function dn(r){return e(gr,{labels:r.labels,children:e(mt,{...r})})}function mt({modelUrl:r,poster:o,loading:t,reveal:l,modelFormat:a,dracoDecoderPath:d,ktx2TranscoderPath:x,meshopt:f=!0,backgroundColor:i="#1a1a1a",showSceneObjectsPanel:s=!0,showSceneSettingsPanel:z=!0,enableModelUpload:h=!1,zoomOnSelected:N=!1,highlightOnHover:y=!1,showLoadingOverlay:u=!0,showLoadError:G=!0,refitOnResize:A=!0,cameraLimits:O,showResetButton:I=!0,fitPadding:F=Jr,zoom:E=!0,pageScroll:P=!1,backgroundEnabled:U=!1,autoRotate:ie=!1,envPreset:se=Dr,environmentUrl:W,environmentEnabled:ee=!0,exposure:p=1,ambientIntensity:m=.6,ambientColor:_="#ffffff",directionalIntensity:re=1.2,directionalColor:$="#ffffff",envIntensity:w=1,envRotation:ne=0,backgroundBlur:L=0,toneMapping:je="aces",groundShadow:Be=!1,groundShadowOpacity:Ae=.5,showFloorGrid:Fe=!1,wireframe:Ke=!1,autoRotateSpeed:He=1,fov:Ge=45,onModelLoaded:Ue,onLoadError:le,labels:cn,reducedMotion:pn="user"}){let D=fe(),de=Wr(pn),We=ie&&!de;Xr("simple-model-viewer","SimpleModelViewer");let j=C(null),ce=C(null),$e=C({}),Xe=C(null),Me=C(null),te=C(0),[R,Se]=b(null),[qe,Je]=b(null),[un,Ce]=b(!1),[mn,Ye]=b({}),[Ze,Qe]=b(new Set),[er,rr]=b(null),[vn,nr]=b(null),[tr,or]=b(null),[gn,ar]=b(null),[ir,pe]=b(!1),[bn,Re]=b(null),[fn,hn]=b(0),[sr,lr]=b(!1),[ue,Ee]=b(!1),[xn,me]=b(null),wn=Pr(xn),[yn,ve]=b(!1),[_n,kn]=b(()=>typeof window>"u"?!0:window.innerWidth>900),[Mn,Sn]=b(()=>typeof window>"u"?!0:window.innerWidth>900),ge=H(()=>({backgroundEnabled:U,backgroundColor:i,autoRotate:We,envPreset:se,exposure:p,ambientIntensity:m,ambientColor:_,directionalIntensity:re,directionalColor:$,envIntensity:w,envRotation:ne,backgroundBlur:L,toneMapping:je,groundShadow:Be,groundShadowOpacity:Ae,showFloorGrid:Fe,wireframe:Ke,autoRotateSpeed:He,fov:Ge}),[U,i,We,se,p,m,_,re,$,w,ne,L,je,Be,Ae,Fe,Ke,He,Ge]),[v,be]=b(ge),dr=H(()=>({fitPadding:F,spinning:v.autoRotate}),[F,v.autoRotate]),S=h?tr:r,cr=C(null),Le=C(null),Ne=C(null),[J,pr]=b(null);M(()=>()=>{J&&URL.revokeObjectURL(J)},[J]);let ur=C(S);ur.current=S;let ze=C(null),K=Er({loading:t,reveal:l,rootRef:cr,onPark:()=>{ze.current=Le.current?.gl??null;let n=j.current;if(n&&ue){Ne.current={position:n.getPosition(new V).toArray(),target:n.getTarget(new V).toArray()};let g=S;Rr(Le.current).then(T=>{T&&(g===ur.current?pr(T):URL.revokeObjectURL(T))})}Se(null),Ee(!1)}});M(()=>{if(K.live)return;let n=ze.current;ze.current=null,n&&Cr(n)},[K.live]);let X=k(()=>{Ne.current=null,ce.current=null,pr(null),Se(null),Je(null),Ce(!1),Ye({}),Qe(new Set),rr(null),nr(null),pe(!1),Re(null),Ee(!1),me(null)},[]),Y=k(()=>{Me.current?.cleanup(),Me.current=null},[]),Cn=k(()=>{Y(),or(null),ar(null),X(),be(ge)},[ge,X,Y]),mr=k(async n=>{lr(!0);try{let g=await hr(n);Y(),Me.current=g,or(g.url),ar(g.name),X()}catch(g){pe(!0),Re(g),le?.(g)}finally{lr(!1)}},[le,X,Y]),Pe=k(n=>{let g=n?.[0];g&&mr(g)},[mr]);M(()=>()=>{Y()},[Y]);let Rn=k(()=>R,[R]),En=!(ee&&v.backgroundEnabled)&&new qn(v.backgroundColor).getHSL({h:0,s:0,l:0}).l>.5?"#000000":"#ffffff",Ln=H(()=>R?pt(R):null,[R]),Z=H(()=>{if(!R)return null;let n=new _e().setFromObject(R);if(n.isEmpty())return null;let g=n.getSize(new V);return{y:n.min.y,center:n.getCenter(new V),size:Math.max(g.x,g.y,g.z)}},[R]),Nn=k((n,g)=>{be(T=>({...T,[n]:g}))},[]);M(()=>{be(n=>({...n,backgroundColor:i}))},[i]),M(()=>{X()},[S,X]);let zn=k(n=>{Ye(n)},[]),Pn=k(n=>{Se(n),pe(!1);let g=De(n);Je(g>xr?g:null),Ce(!1),me(null),Ue?.(Ur(n))},[Ue]),Dn=k(n=>{pe(!0),Re(n),me(null),le?.(n)},[le]),Tn=k(n=>{n.lengthComputable&&n.total>0&&me(n.loaded/n.total*100)},[]),vr=k(n=>{if(rr(n),!N)return;let g=$e.current[n];!g||!j.current||j.current.fitToBox(g,!0,{paddingTop:.5,paddingBottom:.5,paddingLeft:.5,paddingRight:.5}).catch(()=>{})},[N]),Vn=k(n=>{Qe(g=>{let T=new Set(g);return T.has(n)?T.delete(n):T.add(n),T})},[]),On=k(n=>{!h||!xe(n.dataTransfer)||(n.preventDefault(),n.stopPropagation(),te.current+=1,ve(!0))},[h]),In=k(n=>{!h||!xe(n.dataTransfer)||(n.preventDefault(),n.stopPropagation(),n.dataTransfer.dropEffect="copy",ve(!0))},[h]),jn=k(n=>{!h||!xe(n.dataTransfer)||(n.preventDefault(),n.stopPropagation(),te.current=Math.max(0,te.current-1),te.current===0&&ve(!1))},[h]),Bn=k(n=>{!h||!xe(n.dataTransfer)||(n.preventDefault(),n.stopPropagation(),te.current=0,ve(!1),Pe(n.dataTransfer.files))},[h,Pe]),An=u&&(sr||!!(S&&K.live&&!ir&&(!R||!ue)));return c("div",{className:"smv-root",ref:cr,"data-reduced-motion":de?"":void 0,style:{background:v.backgroundColor},onDragEnter:On,onDragOver:In,onDragLeave:jn,onDrop:Bn,children:[z&&S&&e(ct,{isOpen:Mn,onToggle:Sn,environmentUrl:W,environmentEnabled:ee,settings:v,modelInfo:Ln,onReset:()=>be(ge),onChange:Nn}),c("div",{className:"smv-canvasArea",children:[G&&ir&&S&&c("div",{className:"smv-load-error",role:"alert",children:[e("strong",{children:D("loadErrorTitle")}),e("p",{children:zr(bn,S,a,cn).detail}),e("button",{type:"button",onClick:()=>{br(S),X(),hn(n=>n+1)},children:D("retryModelLoad")})]}),I&&R&&ue&&e("button",{type:"button",className:"smv-reset-camera",onClick:()=>{let n=j.current,g=ce.current;!n||!g||n.setLookAt(...g.position,...g.target,!1).then(()=>he(n,R,dr,!de)).catch(()=>{})},children:D("resetCameraView")}),qe!==null&&!un&&c("div",{className:"smv-largeModelBanner",children:[e(at,{size:14,className:"smv-largeModelBanner__icon"}),e("span",{children:D("simpleLargeModelWarning",{millions:Math.round(qe/1e6)})}),e("button",{type:"button",className:"smv-largeModelBanner__dismiss",onClick:()=>Ce(!0),"aria-label":D("dismiss"),children:e(Oe,{size:12})})]}),h?c(tn,{children:[e("input",{ref:Xe,type:"file",accept:fr,className:"smv-upload-input",onChange:n=>{Pe(n.target.files),n.currentTarget.value=""}}),S?e("div",{className:"smv-upload-toolbar",children:c(tn,{children:[e("span",{className:"smv-upload-toolbar__name",children:gn??D("uploadedModel")}),c("button",{type:"button",className:"smv-upload-toolbar__button smv-upload-toolbar__button--ghost",onClick:Cn,children:[e(ot,{size:14}),D("clear")]})]})}):null]}):null,S&&!K.live?e(Nr,{className:"ri-viewerPlaceholder--inset",background:v.backgroundColor,poster:J??o,onReveal:K.awaitingReveal?K.reveal:void 0}):S?c(Wn,{dpr:[1,2],frameloop:K.visible?"demand":"never",resize:{debounce:0,scroll:!1},raycaster:{firstHitOnly:!0},style:{background:v.backgroundColor},camera:{position:[0,0,5],fov:45,near:.1,far:1e3},children:[e(Mr,{captureRef:Le}),e(Sr,{}),c(Te,{fallback:null,children:[e("ambientLight",{intensity:v.ambientIntensity,color:v.ambientColor}),e("directionalLight",{position:[-4,5,7],intensity:v.directionalIntensity,color:v.directionalColor,castShadow:!0}),e("directionalLight",{position:[-5,5,5],intensity:.5}),ee&&e(ke,{children:c(Te,{fallback:null,children:[e(Tr,{...W?{files:W}:{preset:v.envPreset},background:v.backgroundEnabled,environmentIntensity:v.envIntensity,backgroundIntensity:v.envIntensity,backgroundBlurriness:v.backgroundBlur}),e(Or,{})]})},W??v.envPreset),e(Ir,{rotation:v.envRotation}),e(lt,{scene:R,exposure:v.exposure,toneMapping:v.toneMapping,fov:v.fov,wireframe:v.wireframe}),e(dt,{enabled:v.autoRotate,speed:v.autoRotateSpeed,controlsRef:j}),v.groundShadow&&Z&&e(Vr,{position:[Z.center.x,Z.y,Z.center.z],scale:Z.size*2,opacity:v.groundShadowOpacity,blur:2,far:Z.size,resolution:1024,color:"#000000"}),v.showFloorGrid&&e(kr,{getTarget:Rn,revision:R,lineColor:En}),e(ke,{onLoadError:Dn,children:e(Te,{fallback:null,children:e(it,{url:S,format:tr?void 0:a,dracoDecoderPath:d,ktx2TranscoderPath:x,meshopt:f,hiddenKeys:Ze,selectedKey:er,panelHoveredKey:vn,nodeRefsOut:$e,onMeshesReady:zn,onModelLoaded:Pn,onLoadProgress:Tn,onMeshClick:vr,highlightOnHover:y})})},`${S}:${fn}`),e(st,{scene:R,controlsRef:j,refitOnResize:A,onInitialFitComplete:()=>{let n=j.current;n&&!ce.current&&(ce.current={position:n.getPosition(new V).toArray(),target:n.getTarget(new V).toArray()}),Ee(!0)},cameraLimits:O,resumeViewRef:Ne,framing:dr}),e(Un,{ref:j,makeDefault:!0,smoothTime:de?0:.3}),e(Br,{controlsRef:j,zoom:E,pageScroll:P})]})]}):e("div",{className:"smv-upload-empty-state",style:{background:v.backgroundColor},children:c("div",{className:"smv-upload-empty-state__card",children:[e("div",{className:"smv-upload-empty-state__icon",children:e(Ve,{size:24})}),e("p",{className:"smv-upload-empty-state__body",children:D("dropModelHint",{formats:".glb, .gltf, .obj, .fbx, .usdz, .stl, .ply, .zip"})}),c("button",{type:"button",className:"smv-upload-empty-state__button",onClick:()=>Xe.current?.click(),children:[e(Ve,{size:15}),D("chooseModel")]})]})}),S&&K.live?e(Lr,{src:J??o,hidden:!!(R&&ue)}):null,e($r,{visible:An,message:D("loadingModel"),progress:sr?void 0:wn??void 0,background:v.backgroundColor,seeThrough:!!(J??o)}),h&&yn?e("div",{className:"smv-upload-drop-overlay",children:c("div",{className:"smv-upload-drop-overlay__card",children:[e(Ve,{size:20}),e("span",{children:D("releaseToLoadYourModel")})]})}):null]}),s&&S&&e(ut,{meshKeys:mn,hiddenKeys:Ze,selectedKey:er,isOpen:_n,onToggle:kn,onFocus:vr,onHover:nr,onToggleVisibility:Vn})]})}export{Fn as DEFAULT_MODEL_VIEWER_LABELS,dn as SimpleModelViewer};
|
package/dist/utils.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
1
|
+
import { aI as SceneLight, N as ObjectBinding, a1 as ObjectBindingType, z as MeasurementUnit, w as MeasurementSettings, as as SavedMeasurement, t as MeasurementPoint, v as MeasurementResult, y as MeasurementTool, s as MeasurementCollection, Y as ObjectBindingStyle, Z as ObjectBindingTarget, aP as SceneProductConfig, p as MaterialVariantGroup, ae as ProductDefinition, ao as ProductSelections, ac as ProductConfiguration, ap as ProductSku, af as ProductDefinitionWarning, a6 as ProductAvailability, al as ProductOptionState, am as ProductPrice, b3 as SequenceEasing, aW as SceneSequence, b8 as SequenceTrack, b9 as SequenceValue, b4 as SequenceKeyframe, aR as SceneSectionConfig, aU as SceneSectionSettings } from './modelFileResolver-CVmON8hg.mjs';
|
|
2
|
+
export { f as AnimationLoopMode, B as BindingEdit, D as DEFAULT_MODEL_VIEWER_LABELS, k as DEFAULT_SCENE_CONFIG, l as DEFAULT_SECTION_CONFIG, m as DeepPartial, E as EnvironmentPreset, G as GlitchModeName, I as IsolatedObjectBindings, K as KernelSizeName, M as MATERIAL_BLENDING_MODES, o as MATERIAL_SIDES, q as MaterialVariantOption, r as MeasurementAnchor, u as MeasurementPosition, x as MeasurementStatus, H as ModelViewerLabelKey, J as ModelViewerLabels, L as ObjectActionEvent, P as ObjectBindingAction, Q as ObjectBindingCameraState, R as ObjectBindingDecal, S as ObjectBindingMaterial, T as ObjectBindingMaterialBlendingMode, U as ObjectBindingMaterialSide, V as ObjectBindingPatch, W as ObjectBindingSelector, X as ObjectBindingStatus, _ as ObjectBindingTextureChannel, $ as ObjectBindingTextureSlot, a0 as ObjectBindingTransform, a3 as ObjectPointerEvent, a4 as ObjectSurfacePoint, a5 as ProductAppearance, a7 as ProductCheckoutContext, a8 as ProductCheckoutLink, a9 as ProductCommerceAdapter, aa as ProductCommerceContext, ab as ProductCommerceResult, ad as ProductConfigurationIssue, ag as ProductGroupDisplay, ah as ProductOption, ai as ProductOptionGroup, aj as ProductOptionRef, ak as ProductOptionRule, an as ProductPricing, aq as RampTypeName, ar as ReducedMotionSetting, at as SceneAnimationClipConfig, au as SceneAnimationConfig, av as SceneAnnotationCameraView, aw as SceneAnnotationImage, ax as SceneAnnotationLink, ay as SceneAnnotationMarker, az as SceneBackgroundConfig, aA as SceneCameraConfig, aB as SceneCinematicConfig, aC as SceneCinematicWaypoint, aD as SceneConfig, aF as SceneConfigPatch, aG as SceneEnvironmentConfig, aH as SceneGroundShadowConfig, aJ as SceneLightAttachment, aK as SceneLightType, aL as SceneLightingConfig, aM as SceneModelConfig, aN as SceneModelRenderer, aO as ScenePostProcessingConfig, aQ as SceneSectionAxis, aV as SceneSelectionSet, aX as SceneShadowConfig, aY as SceneStyleColorScale, aZ as SceneStyleCondition, a_ as SceneStylePulse, a$ as SceneStyleRule, b0 as SceneWireframeConfig, b1 as SequenceCameraView, b2 as SequenceControls, b5 as SequenceObjectProperty, b6 as SequencePlaybackState, b7 as SequenceTarget, ba as SequenceVector3, bb as StyledObjectBindings, bc as StyledObjectPulse, bg as ViewerIsolation, bm as applyIsolation, bn as applyStyleRules, bo as chooseMaterialVariant, bp as colorScaleValue, bq as isolatedBindingKeys, br as material, bs as parseSelectionSets, bt as patchBindings, bu as patchSceneConfig, bv as selectBindingKeys, bw as selectBindings } from './modelFileResolver-CVmON8hg.mjs';
|
|
3
|
+
import { I as InspectAssetOptions, h as AssetDiagnosticsReport, e as ARSnapshotSource, A as ARExportOptions, d as ARSnapshot, Z as ShareableViewerState, a9 as ViewerStateStorage } from './modelViewerProps-CIY4nsNY.mjs';
|
|
4
|
+
export { a as ARHandoffOptions, b as ARHandoffRequest, c as ARHandoffStatus, g as AssetDiagnosticIssue, i as AssetDiagnosticsSource, j as AssetTextureDiagnostic, k as AssetTransform, p as ComparisonCategory, q as ComparisonChange, r as ComparisonHighlight, s as ComparisonObject, t as ComparisonStatus, u as ConfigurationComparisonInput, v as ConfigurationComparisonReport, M as MAX_VIEWER_STATE_BYTES, W as RendererBackend, Y as SemanticComparisonOptions, _ as StreamingDiagnostics, a3 as ViewerConfiguration, a5 as ViewerObjectInfo, a8 as ViewerRuntimeStats, ab as compareViewerConfigurations, ac as groundAsset, ad as parseAssetTransform, ae as parseViewerState, af as prepareViewerState, ag as serializeViewerState, ah as snapAssetToGrid } from './modelViewerProps-CIY4nsNY.mjs';
|
|
5
5
|
import { Object3D } from 'three';
|
|
6
6
|
import 'react';
|
|
7
7
|
import '@react-three/drei';
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
1
|
+
import { aI as SceneLight, N as ObjectBinding, a1 as ObjectBindingType, z as MeasurementUnit, w as MeasurementSettings, as as SavedMeasurement, t as MeasurementPoint, v as MeasurementResult, y as MeasurementTool, s as MeasurementCollection, Y as ObjectBindingStyle, Z as ObjectBindingTarget, aP as SceneProductConfig, p as MaterialVariantGroup, ae as ProductDefinition, ao as ProductSelections, ac as ProductConfiguration, ap as ProductSku, af as ProductDefinitionWarning, a6 as ProductAvailability, al as ProductOptionState, am as ProductPrice, b3 as SequenceEasing, aW as SceneSequence, b8 as SequenceTrack, b9 as SequenceValue, b4 as SequenceKeyframe, aR as SceneSectionConfig, aU as SceneSectionSettings } from './modelFileResolver-CVmON8hg.js';
|
|
2
|
+
export { f as AnimationLoopMode, B as BindingEdit, D as DEFAULT_MODEL_VIEWER_LABELS, k as DEFAULT_SCENE_CONFIG, l as DEFAULT_SECTION_CONFIG, m as DeepPartial, E as EnvironmentPreset, G as GlitchModeName, I as IsolatedObjectBindings, K as KernelSizeName, M as MATERIAL_BLENDING_MODES, o as MATERIAL_SIDES, q as MaterialVariantOption, r as MeasurementAnchor, u as MeasurementPosition, x as MeasurementStatus, H as ModelViewerLabelKey, J as ModelViewerLabels, L as ObjectActionEvent, P as ObjectBindingAction, Q as ObjectBindingCameraState, R as ObjectBindingDecal, S as ObjectBindingMaterial, T as ObjectBindingMaterialBlendingMode, U as ObjectBindingMaterialSide, V as ObjectBindingPatch, W as ObjectBindingSelector, X as ObjectBindingStatus, _ as ObjectBindingTextureChannel, $ as ObjectBindingTextureSlot, a0 as ObjectBindingTransform, a3 as ObjectPointerEvent, a4 as ObjectSurfacePoint, a5 as ProductAppearance, a7 as ProductCheckoutContext, a8 as ProductCheckoutLink, a9 as ProductCommerceAdapter, aa as ProductCommerceContext, ab as ProductCommerceResult, ad as ProductConfigurationIssue, ag as ProductGroupDisplay, ah as ProductOption, ai as ProductOptionGroup, aj as ProductOptionRef, ak as ProductOptionRule, an as ProductPricing, aq as RampTypeName, ar as ReducedMotionSetting, at as SceneAnimationClipConfig, au as SceneAnimationConfig, av as SceneAnnotationCameraView, aw as SceneAnnotationImage, ax as SceneAnnotationLink, ay as SceneAnnotationMarker, az as SceneBackgroundConfig, aA as SceneCameraConfig, aB as SceneCinematicConfig, aC as SceneCinematicWaypoint, aD as SceneConfig, aF as SceneConfigPatch, aG as SceneEnvironmentConfig, aH as SceneGroundShadowConfig, aJ as SceneLightAttachment, aK as SceneLightType, aL as SceneLightingConfig, aM as SceneModelConfig, aN as SceneModelRenderer, aO as ScenePostProcessingConfig, aQ as SceneSectionAxis, aV as SceneSelectionSet, aX as SceneShadowConfig, aY as SceneStyleColorScale, aZ as SceneStyleCondition, a_ as SceneStylePulse, a$ as SceneStyleRule, b0 as SceneWireframeConfig, b1 as SequenceCameraView, b2 as SequenceControls, b5 as SequenceObjectProperty, b6 as SequencePlaybackState, b7 as SequenceTarget, ba as SequenceVector3, bb as StyledObjectBindings, bc as StyledObjectPulse, bg as ViewerIsolation, bm as applyIsolation, bn as applyStyleRules, bo as chooseMaterialVariant, bp as colorScaleValue, bq as isolatedBindingKeys, br as material, bs as parseSelectionSets, bt as patchBindings, bu as patchSceneConfig, bv as selectBindingKeys, bw as selectBindings } from './modelFileResolver-CVmON8hg.js';
|
|
3
|
+
import { I as InspectAssetOptions, h as AssetDiagnosticsReport, e as ARSnapshotSource, A as ARExportOptions, d as ARSnapshot, Z as ShareableViewerState, a9 as ViewerStateStorage } from './modelViewerProps-BBnZTFO-.js';
|
|
4
|
+
export { a as ARHandoffOptions, b as ARHandoffRequest, c as ARHandoffStatus, g as AssetDiagnosticIssue, i as AssetDiagnosticsSource, j as AssetTextureDiagnostic, k as AssetTransform, p as ComparisonCategory, q as ComparisonChange, r as ComparisonHighlight, s as ComparisonObject, t as ComparisonStatus, u as ConfigurationComparisonInput, v as ConfigurationComparisonReport, M as MAX_VIEWER_STATE_BYTES, W as RendererBackend, Y as SemanticComparisonOptions, _ as StreamingDiagnostics, a3 as ViewerConfiguration, a5 as ViewerObjectInfo, a8 as ViewerRuntimeStats, ab as compareViewerConfigurations, ac as groundAsset, ad as parseAssetTransform, ae as parseViewerState, af as prepareViewerState, ag as serializeViewerState, ah as snapAssetToGrid } from './modelViewerProps-BBnZTFO-.js';
|
|
5
5
|
import { Object3D } from 'three';
|
|
6
6
|
import 'react';
|
|
7
7
|
import '@react-three/drei';
|