@liveroom-tech/react-immersive 6.0.2 → 6.1.0
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/README.md +24 -0
- package/dist/AnimationsTab-NUJTEMZ5.mjs +1 -0
- package/dist/AnnotationsTab-OHRVWRKI.mjs +1 -0
- package/dist/CinematicTab-IJAY2BS6.mjs +1 -0
- package/dist/ConfigureTab-UQRRATCY.mjs +6 -0
- package/dist/RulesTab-YVBZGJZX.mjs +1 -0
- package/dist/SequencesTab-IC5LWQ6N.css +1 -0
- package/dist/SequencesTab-RPJAG26Z.mjs +1 -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 +76 -23
- package/dist/binding-builder.mjs +1 -1
- package/dist/chunk-2DV2UCQH.mjs +1 -0
- package/dist/chunk-37YITTIK.mjs +1 -0
- package/dist/chunk-5FLX45O5.mjs +2 -0
- package/dist/chunk-6CTCV2Q5.mjs +1 -0
- package/dist/chunk-7JCFNZJM.mjs +1 -0
- package/dist/chunk-7OWHW66D.mjs +1 -0
- package/dist/chunk-AL6UIGWP.mjs +1 -0
- package/dist/chunk-BNKTI3CY.mjs +1 -0
- package/dist/chunk-CCBFMNAU.mjs +1 -0
- package/dist/chunk-E24EFHB5.mjs +1 -0
- package/dist/chunk-EV6THDXD.mjs +1 -0
- package/dist/chunk-F5QSXMME.mjs +1 -0
- package/dist/chunk-FGAJ2UT7.mjs +1 -0
- package/dist/chunk-FXV4CLAK.mjs +1 -0
- package/dist/chunk-GV4ZRXL6.mjs +1 -0
- package/dist/chunk-KHN55ZM7.mjs +3 -0
- package/dist/chunk-LX3GXQNU.mjs +1 -0
- package/dist/chunk-OPZJDP7T.mjs +1 -0
- package/dist/chunk-OREKYGO3.mjs +83 -0
- package/dist/chunk-PBVBZYOG.mjs +47 -0
- package/dist/chunk-T6AYLPCC.mjs +1 -0
- package/dist/hosted.css +1 -1
- package/dist/hosted.d.mts +22 -6
- package/dist/hosted.d.ts +22 -6
- package/dist/hosted.js +75 -22
- package/dist/hosted.mjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.mts +66 -6
- package/dist/index.d.ts +66 -6
- package/dist/index.js +69 -21
- package/dist/index.mjs +1 -1
- package/dist/{modelFileResolver-Co7j1tdQ.d.mts → modelFileResolver-BEW_95id.d.mts} +52 -7
- package/dist/{modelFileResolver-Co7j1tdQ.d.ts → modelFileResolver-BEW_95id.d.ts} +52 -7
- package/dist/{modelViewerProps-BibuMND7.d.ts → modelViewerProps-C7saa0i2.d.mts} +173 -3
- package/dist/{modelViewerProps-Ce4-wb57.d.mts → modelViewerProps-CbK_4uZj.d.ts} +173 -3
- package/dist/{publicProps-BaJHCDa_.d.mts → publicProps-NKTiohZO.d.mts} +1 -1
- package/dist/{publicProps-CP18d_mt.d.ts → publicProps-z7cJhUH8.d.ts} +1 -1
- package/dist/simple-model-viewer.css +1 -1
- package/dist/simple-model-viewer.d.mts +25 -3
- package/dist/simple-model-viewer.d.ts +25 -3
- package/dist/simple-model-viewer.js +49 -3
- package/dist/simple-model-viewer.mjs +1 -1
- package/dist/utils.d.mts +47 -4
- package/dist/utils.d.ts +47 -4
- package/dist/utils.js +2 -2
- package/dist/utils.mjs +1 -1
- package/package.json +5 -1
- package/dist/chunk-33SUWPXC.mjs +0 -3
- package/dist/chunk-4JMJALRO.mjs +0 -2
- package/dist/chunk-EIBW7ZJE.mjs +0 -81
- package/dist/chunk-KFTJMFYF.mjs +0 -1
- package/dist/chunk-OTSCPJWF.mjs +0 -1
- package/dist/chunk-P2JZ5Z7I.mjs +0 -1
- package/dist/chunk-V7WZUWJ5.mjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Color as w}from"three";var A=["position","rotation","scale","visible","baseColor","emissive","opacity","roughness","metalness","emissiveIntensity"],E=["linear","ease-in","ease-out","ease-in-out","step"],V=new Set(["position","rotation","scale"]),T=new Set(["baseColor","emissive"]),d=e=>typeof e=="string"&&e.length>0&&e.length<=256,l=e=>typeof e=="number"&&Number.isFinite(e),S=e=>Array.isArray(e)&&e.length===3&&e.every(l);function y(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function m(e){throw new Error(`Invalid sequences: ${e}`)}function I(e){return e.kind==="object"?JSON.stringify([e.kind,e.objectId,e.property]):e.kind==="clip"?JSON.stringify([e.kind,e.clip]):"camera"}function x(e,o){if(o.kind==="camera")return y(e)&&S(e.position)&&S(e.target)&&(e.fov===null||l(e.fov)&&e.fov>0&&e.fov<180)&&l(e.zoom)&&e.zoom>0;if(o.kind==="clip")return l(e)&&e>=0;let i=o.property;return V.has(i)?S(e)&&(i!=="scale"||e.every(n=>n!==0)):T.has(i)?typeof e=="string"&&/^#[\da-f]{6}$/i.test(e):i==="visible"?typeof e=="boolean":l(e)&&e>=0&&(i==="emissiveIntensity"||e<=1)}function j(e){(!Array.isArray(e)||e.length>64)&&m("expected up to 64 sequences.");let o=new Set,i=0;return e.map(n=>{(!y(n)||!d(n.id)||o.has(n.id)||!(typeof n.name=="string"&&d(n.name.trim()))||!l(n.duration)||n.duration<.1||n.duration>3600||typeof n.loop!="boolean"||typeof n.autoPlay!="boolean"||!Array.isArray(n.tracks)||n.tracks.length>128)&&m("each sequence needs a unique id, name, 0.1\u20133600 second duration, loop/autoplay flags and up to 128 tracks."),o.add(n.id);let s=new Set,u=new Set,c=n.tracks.map(t=>{(!y(t)||!d(t.id)||s.has(t.id)||!(typeof t.name=="string"&&d(t.name.trim()))||!y(t.target)||!Array.isArray(t.keyframes)||t.keyframes.length>2048||t.muted!==void 0&&typeof t.muted!="boolean")&&m("invalid or duplicate track."),s.add(t.id);let a;t.target.kind==="camera"?a={kind:"camera"}:t.target.kind==="clip"&&d(t.target.clip)?a={kind:"clip",clip:t.target.clip}:t.target.kind==="object"&&d(t.target.objectId)&&A.includes(t.target.property)?a={kind:"object",objectId:t.target.objectId,property:t.target.property}:m("unknown track target or property.");let b=I(a);u.has(b)&&m("only one track may own each target property in a sequence."),u.add(b);let q=new Set,v=new Set,h=t.keyframes.map(r=>{++i>2e4&&m("too many keyframes."),(!y(r)||!d(r.id)||q.has(r.id)||!l(r.time)||r.time<0||r.time>n.duration||v.has(r.time)||r.easing!==void 0&&!E.includes(r.easing)||!x(r.value,a))&&m("keyframes need unique ids/times, valid values and times inside the sequence."),q.add(r.id),v.add(r.time);let p=r.value,k=a.kind==="camera"?{position:[...p.position],target:[...p.target],fov:p.fov,zoom:p.zoom}:Array.isArray(r.value)?[...r.value]:r.value;return{id:r.id,time:r.time,value:k,...r.easing?{easing:r.easing}:{}}}).sort((r,p)=>r.time-p.time);return{id:t.id,name:t.name.trim(),target:a,keyframes:h,...t.muted!==void 0?{muted:t.muted}:{}}});return{id:n.id,name:n.name.trim(),duration:n.duration,loop:n.loop,autoPlay:n.autoPlay,tracks:c}})}function C(e,o="ease-in-out"){let i=Math.max(0,Math.min(1,e));return o==="step"?0:o==="ease-in"?i*i:o==="ease-out"?1-(1-i)**2:o==="ease-in-out"?i*i*(3-2*i):i}var f=(e,o,i)=>e+(o-e)*i,g=(e,o,i)=>e.map((n,s)=>f(n,o[s],i));function z(e,o){if(e.muted||!e.keyframes.length||!Number.isFinite(o))return null;let i=e.keyframes;if(o<i[0].time)return null;let n=i[0],s;for(let a of i)if(a.time<=o)n=a;else{s=a;break}if(!s||typeof n.value=="boolean")return structuredClone(n.value);let u=C((o-n.time)/(s.time-n.time),n.easing);if(typeof n.value=="number"&&typeof s.value=="number")return f(n.value,s.value,u);if(typeof n.value=="string"&&typeof s.value=="string")return`#${new w(n.value).lerp(new w(s.value),u).getHexString()}`;if(Array.isArray(n.value)&&Array.isArray(s.value))return g(n.value,s.value,u);let c=n.value,t=s.value;return{position:g(c.position,t.position,u),target:g(c.target,t.target,u),fov:c.fov!==null&&t.fov!==null?f(c.fov,t.fov,u):c.fov,zoom:f(c.zoom,t.zoom,u)}}function N(e,o){return{...e,keyframes:[...e.keyframes.filter(i=>i.id!==o.id&&Math.abs(i.time-o.time)>1e-6),o].sort((i,n)=>i.time-n.time)}}export{A as a,E as b,I as c,x as d,j as e,z as f,N as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as o}from"./chunk-T6AYLPCC.mjs";import{useSyncExternalStore as m}from"react";import{Pause as q,Play as S,Square as b}from"lucide-react";import{jsx as a,jsxs as l}from"react/jsx-runtime";var y={sequenceId:null,time:0,duration:0,status:"stopped",previewing:!1,ready:!1,issues:[]},c=()=>y,g=()=>()=>{};function p(t){return m(t?.subscribe??g,t?.getState??c,c)}function P({controls:t,duration:n,showScrubber:i=!0,hasTracks:s=!0}){let e=o(),u=p(t),r=u.status==="playing";return l("div",{className:"ri-sequenceTransport",children:[a("button",{type:"button",onClick:()=>r?t?.pause():t?.play(),disabled:!u.ready||!n||!s,"aria-label":e(r?"sequencePause":"sequencePlay"),title:e(r?"sequencePause":"sequencePlay"),children:a("span",{"aria-hidden":"true",children:r?a(q,{size:15}):a(S,{size:15})})}),a("button",{type:"button",onClick:()=>t?.stop(),disabled:!u.previewing,"aria-label":e("sequenceStop"),title:e("sequenceStop"),children:a(b,{size:14,"aria-hidden":"true"})}),i&&a("input",{"aria-label":e("sequencePlayhead"),type:"range",min:0,max:n||1,step:.01,value:Math.min(u.time,n),disabled:!u.ready||!n,onChange:d=>{t?.pause(),t?.seek(Number(d.target.value))}}),l("output",{"aria-label":e("sequenceTime"),children:[u.time.toFixed(2)," / ",n.toFixed(2),"s"]})]})}function v({controls:t,sequences:n}){let i=o(),s=p(t);return n.length?l("section",{className:"ri-sequencePlayer","aria-label":i("sequencePlayer"),onPointerDown:e=>e.stopPropagation(),children:[a("select",{"aria-label":i("sequenceSelect"),value:s.sequenceId??"",onChange:e=>t.select(e.target.value),children:n.map(e=>a("option",{value:e.id,children:e.name},e.id))}),a(P,{controls:t,duration:s.duration,hasTracks:n.find(e=>e.id===s.sequenceId)?.tracks.some(e=>!e.muted&&e.keyframes.length>0)??!1}),!!s.issues.length&&l("details",{children:[a("summary",{children:i("sequenceIssues")}),s.issues.map(e=>a("p",{children:e},e))]})]}):null}export{p as a,P as b,v as c};
|