lecodes-viewer 0.19.2 → 0.20.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/dist-embed/VERSION.json +3 -3
- package/dist-embed/assets/{createViewer2d-D12Wy3VF.js → createViewer2d-Dx-COLjO.js} +1 -1
- package/dist-embed/assets/createViewerLite-DkM-O9BQ.js +852 -0
- package/dist-embed/assets/host-Czj6Nu-U.js +168 -0
- package/dist-embed/assets/{index-UwRci5mq.js → index-mhLEVWyK.js} +1 -1
- package/dist-embed/assets/{loadCreatorUiNode-UAdhjRTd.js → loadCreatorUiNode-D87bZHrH.js} +1 -1
- package/dist-embed/assets/mapViewImpl-B2JcES8l.js +810 -0
- package/dist-embed/assets/maplibre-gl-worker-CJfwIrte.js +8 -0
- package/dist-embed/embed.js +8 -8
- package/package.json +7 -3
- package/src/host.ts +3 -0
- package/src/ui/creator-ui.wasm +0 -0
- package/src/ui/nativeViewSystem.ts +2 -91
- package/src/ui/presentPlayer.ts +2 -156
- package/src/ui/vListSystem.ts +211 -211
- package/src/viewer/creator-gl.wasm +0 -0
- package/src/viewer2d/creator2d.wasm +0 -0
- package/dist-embed/assets/createViewerLite-CinItTpO.js +0 -707
- package/dist-embed/assets/host-Vzbyo0SX.js +0 -162
- package/src/assets/banner.png +0 -0
- package/src/assets/image2.png +0 -0
- package/src/assets/landing.mp4 +0 -0
- package/src/assets/neutral_ibl256.ktx +0 -0
- package/src/assets/output.mp4 +0 -0
- package/src/assets/output2.mp4 +0 -0
- package/src/assets/texture.png +0 -0
- package/src/assets/vue.svg +0 -1
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./createViewerLite-CinItTpO.js","../embed.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
var _t=Object.defineProperty;var kt=(o,e,n)=>e in o?_t(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n;var $=(o,e,n)=>kt(o,typeof e!="symbol"?e+"":e,n);import{s as be,i as oe,c as me,e as Be,a as Lt,g as Ve,b as Tt,d as Rt,f as Ct,h as At,R as Nt,j as Mt,k as zt,o as Ot,D as Te,l as $t,m as Dt,_ as Re,n as It,p as Pt,q as Ht,r as Wt,t as jt,u as Ce,v as Ft,w as Bt,x as Ae,y as Ne,z as Vt}from"../embed.js";const Ut=`/* Base element styles for the lite UI renderer. Layout is real CSS flexbox — these classes bake
|
|
3
|
-
* the SDK's layout defaults (flexbox-only, column, no grow/shrink, stretch, clipped, border-box)
|
|
4
|
-
* so per-node inline styles only carry what the app actually set. Inline styles always win. */
|
|
5
|
-
|
|
6
|
-
.lc {
|
|
7
|
-
display: flex;
|
|
8
|
-
flex-direction: column;
|
|
9
|
-
position: relative;
|
|
10
|
-
flex-grow: 0;
|
|
11
|
-
flex-shrink: 0;
|
|
12
|
-
align-items: stretch;
|
|
13
|
-
overflow: hidden;
|
|
14
|
-
box-sizing: border-box;
|
|
15
|
-
border-width: 0;
|
|
16
|
-
border-style: solid;
|
|
17
|
-
min-width: 0;
|
|
18
|
-
min-height: 0;
|
|
19
|
-
margin: 0;
|
|
20
|
-
padding: 0;
|
|
21
|
-
background-repeat: no-repeat;
|
|
22
|
-
background-position: center;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.lc-screen {
|
|
26
|
-
position: absolute;
|
|
27
|
-
inset: 0;
|
|
28
|
-
width: 100%;
|
|
29
|
-
height: 100%;
|
|
30
|
-
pointer-events: none;
|
|
31
|
-
user-select: none;
|
|
32
|
-
-webkit-user-select: none;
|
|
33
|
-
-webkit-touch-callout: none; /* no iOS long-press callout on images/text (long-press is the app's) */
|
|
34
|
-
text-align: left;
|
|
35
|
-
/* Default text color sourced from the theme (docs/ui-theme-plan.md system defaults):
|
|
36
|
-
_creatorUI.setTheme writes --color on the app root; unset → white, as before. */
|
|
37
|
-
color: var(--color, white);
|
|
38
|
-
font-size: 14px;
|
|
39
|
-
}
|
|
40
|
-
.lc-screen.interactive {
|
|
41
|
-
pointer-events: all;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.lc-text {
|
|
45
|
-
display: block;
|
|
46
|
-
white-space: pre-wrap;
|
|
47
|
-
font-size: 14px;
|
|
48
|
-
line-height: 1.2em;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/* Per-type layout defaults (row direction, box/button centering, spacer grow, input min-height,
|
|
52
|
-
* widget position) come from the SDK — inlined into each node's own style at construction. */
|
|
53
|
-
|
|
54
|
-
button.lc {
|
|
55
|
-
border: none;
|
|
56
|
-
outline: none;
|
|
57
|
-
cursor: pointer;
|
|
58
|
-
pointer-events: all;
|
|
59
|
-
background: none;
|
|
60
|
-
text-align: left;
|
|
61
|
-
color: inherit;
|
|
62
|
-
font: inherit;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
img.lc, video.lc {
|
|
66
|
-
display: block;
|
|
67
|
-
object-fit: contain;
|
|
68
|
-
user-select: none;
|
|
69
|
-
-webkit-user-drag: none;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
input.lc, textarea.lc {
|
|
73
|
-
display: block;
|
|
74
|
-
pointer-events: all;
|
|
75
|
-
border: none;
|
|
76
|
-
outline: none;
|
|
77
|
-
background: none;
|
|
78
|
-
resize: none;
|
|
79
|
-
color: inherit;
|
|
80
|
-
font: inherit;
|
|
81
|
-
font-size: 14px;
|
|
82
|
-
user-select: text;
|
|
83
|
-
-webkit-user-select: text;
|
|
84
|
-
}
|
|
85
|
-
/* Auto-grow: a textarea with no explicit height follows its content (an inline \`height\` from an
|
|
86
|
-
app style overrides this). Safari/Firefox fall back to the scrollHeight sync in LiteScreen. */
|
|
87
|
-
textarea.lc {
|
|
88
|
-
field-sizing: content;
|
|
89
|
-
}
|
|
90
|
-
input.lc::placeholder, textarea.lc::placeholder {
|
|
91
|
-
color: var(--placeholder-color, #aaa);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.lc-scrollable {
|
|
95
|
-
overflow-y: auto;
|
|
96
|
-
overflow-x: hidden;
|
|
97
|
-
pointer-events: all;
|
|
98
|
-
}
|
|
99
|
-
.lc-scrollable.scrollable_horizontal {
|
|
100
|
-
overflow-x: auto;
|
|
101
|
-
overflow-y: hidden;
|
|
102
|
-
}
|
|
103
|
-
.lc-scrollable::-webkit-scrollbar {
|
|
104
|
-
width: 2px;
|
|
105
|
-
}
|
|
106
|
-
.lc-scrollable.scrollable_horizontal::-webkit-scrollbar {
|
|
107
|
-
height: 2px;
|
|
108
|
-
}
|
|
109
|
-
.lc-noscrollbar::-webkit-scrollbar {
|
|
110
|
-
display: none;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/* snap (ScrollStyle.snap): scroll-snap-type is set inline on the container per axis; the align of
|
|
114
|
-
each direct child rides these classes so the parent never has to stamp its children. */
|
|
115
|
-
.lc-snap-start > * { scroll-snap-align: start; }
|
|
116
|
-
.lc-snap-center > * { scroll-snap-align: center; }
|
|
117
|
-
.lc-snap-end > * { scroll-snap-align: end; }
|
|
118
|
-
|
|
119
|
-
.lc-vlist {
|
|
120
|
-
overflow-y: auto;
|
|
121
|
-
overflow-x: hidden;
|
|
122
|
-
pointer-events: all;
|
|
123
|
-
}
|
|
124
|
-
.lc-vlist::before {
|
|
125
|
-
content: "";
|
|
126
|
-
display: block;
|
|
127
|
-
height: var(--scroll-height, 0px);
|
|
128
|
-
}
|
|
129
|
-
.lc-vlist::-webkit-scrollbar {
|
|
130
|
-
width: 2px;
|
|
131
|
-
}
|
|
132
|
-
.lc-vlist-item {
|
|
133
|
-
position: absolute;
|
|
134
|
-
left: 0;
|
|
135
|
-
right: 0;
|
|
136
|
-
display: flex;
|
|
137
|
-
flex-direction: column;
|
|
138
|
-
align-items: stretch;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.lc ::-webkit-scrollbar-track {
|
|
142
|
-
background: transparent;
|
|
143
|
-
border-radius: 4px;
|
|
144
|
-
}
|
|
145
|
-
.lc ::-webkit-scrollbar-thumb {
|
|
146
|
-
background: rgba(0, 0, 0, 0.8);
|
|
147
|
-
border-radius: 4px;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.lc-widget {
|
|
151
|
-
z-index: 10;
|
|
152
|
-
/* Like .lc-screen: pointer-transparent by default, so a full-screen widget (a HUD over a scene)
|
|
153
|
-
lets taps on its empty areas fall through. Interactive children re-enable pointer-events; a
|
|
154
|
-
widget with a root onTouchStart gets .interactive to catch its whole surface. */
|
|
155
|
-
pointer-events: none;
|
|
156
|
-
}
|
|
157
|
-
.lc-widget.interactive {
|
|
158
|
-
pointer-events: all;
|
|
159
|
-
}
|
|
160
|
-
`,Yt=o=>{const e=new Map,n=(a,f)=>a.heights.get(a.keys[f])??a.estimates[f]??40,i=a=>{let f=0;for(let u=0;u<a.keys.length;u++)f+=n(a,u);return f},c=(a,f)=>{let u=0;for(let g=0;g<a.keys.length;g++){if(a.keys[g]===f)return u;u+=n(a,g)}return NaN},l=a=>{let f=0;for(let u=0;u<a.keys.length;u++){const g=a.mounted.get(a.keys[u]);g&&(g.wrap.style.top=f+"px"),f+=n(a,u)}a.el.style.setProperty("--scroll-height",f+"px")},p=a=>{const f=a.el,u=i(a),g=a.jsNode._endThreshold??0,m=a.jsNode._startThreshold??0,_=f.scrollTop+f.clientHeight>=u-g;if(_&&!a.atEnd)for(const R of a.jsNode.erl??[])R();a.atEnd=_;const L=f.scrollTop<=m;if(L&&!a.atStart)for(const R of a.jsNode.strl??[])R();a.atStart=L},w=a=>{const f=a.el,u=f.clientHeight;if(u===0)return;const g=a.jsNode._overscan===-1?u:a.jsNode._overscan??u,m=f.scrollTop-g,_=f.scrollTop+u+g,L=new Set;let R=0;for(let O=0;O<a.keys.length&&R<_;O++){const K=n(a,O);R+K>m&&L.add(a.keys[O]),R+=K}const Y=[];for(const[O,K]of a.mounted)L.has(O)||(a.mounted.delete(O),K.wrap.remove(),a.screen.releaseSubtree(K.subtree),Y.push(O));const G=[...L].filter(O=>!a.mounted.has(O));(Y.length>0||G.length>0)&&a.jsNode._syncWindow(Y,G),l(a),p(a)},E=(a,f)=>{a.el.scrollTo({top:i(a)-a.el.clientHeight,behavior:f?"smooth":"auto"})},M=(a,f,u,g)=>{const m={nodeId:g,el:u,jsNode:f,screen:a,keys:[...f._keys??[]],estimates:[...f._estimates??[]],heights:new Map,mounted:new Map,atStart:!1,atEnd:!1,pinnedToEnd:!!f._inverted,resizeObserver:new ResizeObserver(()=>{m.pinnedToEnd&&(m.pinnedToEnd=!1,w(m),E(m,!1)),w(m)})};e.set(g,m),m.resizeObserver.observe(u),u.addEventListener("scroll",()=>{w(m);for(const _ of f.sl??[])_(u.scrollTop)})},A=a=>{const f=e.get(a);if(f){f.resizeObserver.disconnect();for(const u of f.mounted.values())u.wrap.remove(),f.screen.releaseSubtree(u.subtree);f.mounted.clear(),e.delete(a)}},x=a=>a.el.scrollTop+a.el.clientHeight>=i(a)-2;return{register:M,unregister:A,api:{vlistSetKeys:(a,f,u)=>{const g=e.get(a._id);if(!g)return;const m=new Set(f);for(const _ of g.heights.keys())m.has(_)||g.heights.delete(_);g.keys=[...f],g.estimates=[...u],w(g)},vlistInsertKeys:(a,f,u,g)=>{const m=e.get(a._id);if(!m)return;const _=m.jsNode._inverted&&x(m);f<0||f>=m.keys.length?(m.keys.push(...u),m.estimates.push(...g)):(m.keys.splice(f,0,...u),m.estimates.splice(f,0,...g),f===0&&m.el.scrollTop>0&&(m.el.scrollTop+=g.reduce((L,R)=>L+(R??40),0))),w(m),_&&E(m,!0)},vlistRemoveKeys:(a,f)=>{const u=e.get(a._id);if(!u)return;const g=new Set(f),m=[],_=[];for(let L=0;L<u.keys.length;L++)g.has(u.keys[L])||(m.push(u.keys[L]),_.push(u.estimates[L]));u.keys=m,u.estimates=_;for(const L of f){u.heights.delete(L);const R=u.mounted.get(L);R&&(u.mounted.delete(L),R.wrap.remove(),u.screen.releaseSubtree(R.subtree))}w(u)},vlistInvalidate:(a,f)=>{const u=e.get(a._id);if(!u)return;const g=u.mounted.get(f);g&&(u.mounted.delete(f),g.wrap.remove(),u.screen.releaseSubtree(g.subtree),u.jsNode._syncWindow([f],[f]),l(u))},vlistMount:(a,f,u)=>{const g=e.get(a._id);if(!g)return;const m=o().doc.createElement("div");m.className="lc-vlist-item",m.appendChild(g.screen.addNodeRecursive(u)),g.el.appendChild(m),g.mounted.set(f,{wrap:m,subtree:u});const _=m.offsetHeight;_>0&&g.heights.set(f,_)},command:(a,f,...u)=>{const g=e.get(a._id);if(!g)return;const m=_=>_?"smooth":"auto";switch(f){case"scrollTo":g.el.scrollTo({top:u[0],behavior:m(u[1]??!0)});break;case"scrollToKey":{const _=c(g,u[0]);isNaN(_)||g.el.scrollTo({top:_,behavior:m(u[1]??!0)});break}case"scrollToEnd":E(g,u[0]??!0);break}}}}},ye=2,le=256,ue=257,pe=258,Gt=272,Me=60270,he=60271,Kt=61e3,Xt=/\b(?:calc|min|max|clamp)\(/,qt=o=>{if(!Xt.test(o))return o;let e="";for(let n=0;n<o.length;n++){if(o.startsWith("var(",n)){let c=0;const l=n;for(;n<o.length;n++)if(o[n]==="(")c++;else if(o[n]===")"&&--c===0)break;e+=o.slice(l,Math.min(n+1,o.length));continue}const i=o[n];if(i==="+"||i==="-"){const c=e[e.length-1]??"";if(!(i==="-"&&(c==="e"&&"btlr".includes(o[n+1]??"")||o.slice(Math.max(0,n-7),n)==="comfort"))&&/[\w%.)]/.test(c)){for(e=e.trimEnd()+" "+i+" ";o[n+1]===" ";)n++;continue}}e+=i}return e.replace(/\d*\.\d+|\d+/g,(n,i,c)=>{const l=c.slice(0,i).trimEnd(),p=c.slice(i+n.length).trimStart();return/[\w.%]$/.test(l)||/^[\w.%]/.test(p)||/[*/]$/.test(l)||/^[*/]/.test(p)?n:n+"px"})},Qt={top:"12px",bottom:"4px",left:"16px",right:"16px"},Ue=o=>`max(var(--safe-${o}), calc(var(--safe-${o}-bar, 0px) + var(--comfort-${o}, ${Qt[o]})))`,ve=o=>qt(o).replace(new RegExp("(?<!-)\\bcomfort-(top|bottom|left|right)\\b","g"),(e,n)=>Ue(n)).replace(new RegExp("(?<!-)\\bsafe-(top|bottom|left|right)\\b","g"),(e,n)=>`var(--safe-${n})`),Zt=o=>{if(typeof o=="number")return o+"px";const e=String(o);return/^\d*\.?\d+$/.test(e)?e+"px":ve(e)},ee=o=>{if(typeof o=="number")return o<=16777215&&Number.isInteger(o)?"#"+(o>>>0).toString(16).padStart(6,"0"):"#"+(o>>>0).toString(16).padStart(8,"0");const e=String(o);return e==="clear"?"transparent":e},ze={p:["top","right","bottom","left"],padding:["top","right","bottom","left"],px:["left","right"],paddingHorizontal:["left","right"],py:["top","bottom"],paddingVertical:["top","bottom"],pt:["top"],paddingTop:["top"],pr:["right"],paddingRight:["right"],pb:["bottom"],paddingBottom:["bottom"],pl:["left"],paddingLeft:["left"]},Oe={m:["top","right","bottom","left"],margin:["top","right","bottom","left"],mx:["left","right"],marginHorizontal:["left","right"],my:["top","bottom"],marginVertical:["top","bottom"],mt:["top"],marginTop:["top"],mr:["right"],marginRight:["right"],mb:["bottom"],marginBottom:["bottom"],ml:["left"],marginLeft:["left"]},$e={width:"width",height:"height",minWidth:"min-width",maxWidth:"max-width",minHeight:"min-height",maxHeight:"max-height",top:"top",left:"left",bottom:"bottom",right:"right",gap:"gap",fontSize:"font-size",lineHeight:"line-height",letterSpacing:"letter-spacing",flexBase:"flex-basis",borderWidth:"border-width",borderTopWidth:"border-top-width",borderRightWidth:"border-right-width",borderBottomWidth:"border-bottom-width",borderLeftWidth:"border-left-width",borderTopLeftRadius:"border-top-left-radius",borderTopRightRadius:"border-top-right-radius",borderBottomLeftRadius:"border-bottom-left-radius",borderBottomRightRadius:"border-bottom-right-radius"},De={flexDirection:"flex-direction",justifyContent:"justify-content",alignItems:"align-items",alignSelf:"align-self",flexWrap:"flex-wrap",position:"position",display:"display",overflow:"overflow",boxSizing:"box-sizing",textAlign:"text-align",textDecoration:"text-decoration",transform:"transform",transformOrigin:"transform-origin",backgroundSize:"background-size",bgSize:"background-size"},Ie={opacity:"opacity",flexGrow:"flex-grow",flexShrink:"flex-shrink",aspectRatio:"aspect-ratio",fontWeight:"font-weight"},Pe={color:"color",bgColor:"background-color",backgroundColor:"background-color",borderColor:"border-color",borderTopColor:"border-top-color",borderRightColor:"border-right-color",borderBottomColor:"border-bottom-color",borderLeftColor:"border-left-color",placeholderColor:"--placeholder-color"},He=new Set(["bgImage","backgroundImage","bgGradient","backgroundGradient","tintColor","objectFit","overlayColor","placeholder","type","scrollDirection","showScrollbar","keyboardDismissMode","snap","sheetDetents","sheetDetent","sheetDismissible","scrollX","scrollY","overscrollMode","rippleColor","refreshControlColor","pointerEvents"]),We=(o,e,n,i)=>{if(i==="safe-all"){for(const l of e)o.set(`${n}-${l}`,`var(--safe-${l})`);return}if(i==="comfort-all"||i==="comfort-x"||i==="comfort-y"){for(const l of e)o.set(`${n}-${l}`,Ue(l));return}const c=typeof i=="number"?i+"px":ve(String(i));for(const l of e)o.set(`${n}-${l}`,c)},je=(o,e,n)=>{if(n==null)return!0;if(e in ze)return We(o,ze[e],"padding",n),!0;if(e in Oe)return We(o,Oe[e],"margin",n),!0;if(e in $e)return o.set($e[e],Zt(n)),!0;if(e in De)return o.set(De[e],String(n)),!0;if(e in Ie)return o.set(Ie[e],String(n)),!0;if(e in Pe)return o.set(Pe[e],ee(n)),!0;switch(e){case"flex":return o.set("flex",String(n)),!0;case"fontFamily":return o.set("font-family",n==="monospaced"?"monospace":String(n)),!0;case"borderRadius":return typeof n=="number"?o.set("border-radius",n+"px"):o.set("border-radius",String(n).trim().split(/\s+/).map(i=>/^\d*\.?\d+$/.test(i)?i+"px":ve(i)).join(" ")),!0;case"border":return typeof n=="number"?o.set("border-width",n+"px"):o.set("border",String(n)),!0;case"borderTop":case"borderRight":case"borderBottom":case"borderLeft":{const i=e.slice(6).toLowerCase();return typeof n=="number"?o.set(`border-${i}-width`,n+"px"):o.set(`border-${i}`,String(n)),!0}case"fontStyle":return o.set("font-style",n===2?"italic":n===0?"normal":String(n)),!0}return!1},Ye=(o,e)=>{var n;return oe(e)?me(e.svg):typeof e=="object"&&e!==null&&"canvasSurface"in e?((n=o.canvasHost)==null?void 0:n.surfaceToDataUrl(e.canvasSurface))??"":typeof e=="object"&&e!==null?Ve(e._id):String(e??"")},we=(o,e,n)=>{const i=e.el;if(i.tagName.toLowerCase()===n)return i;const c=o.doc.createElement(n);c.setAttribute("style",i.getAttribute("style")??""),c.setAttribute("class",i.getAttribute("class")??"");for(const l of["data-viewbox","data-node-id"]){const p=i.getAttribute(l);p!==null&&c.setAttribute(l,p)}return c._lecodesNode=i._lecodesNode,c._sourceRect=i._sourceRect,c._atlasSize=i._atlasSize,e.screen.nodeMap.set(e.id,c),e.el=c,i.replaceWith(c),c},ce=(o,e,n)=>{e.layers.set(ye,{props:n})},Jt=o=>{const e=Be(o);if(!e)return{};const n=e.trim().split(/[\s,]+/).map(Number),i=n[2],c=n[3];return!i||!c?{}:{width:i,aspectRatio:i/c}},en=o=>{var n;if(o._sourceRect)return!0;const e=o._src;return oe(e)&&!!((n=o._style)!=null&&n.tintColor||be(e))},tn=(o,e)=>{var l;const n=e.node,i=n._sourceRect;if(i){e.el._sourceRect=i,ce(o,e,{width:i[2],height:i[3]}),Ke(e.el,Ye(o,n._src),null);return}const c=((l=n._style)==null?void 0:l.tintColor)??be(n._src);Ge(o,e,n._src,c===void 0?void 0:ee(c))},Ge=(o,e,n,i)=>{const c=e.el;if(c instanceof HTMLImageElement){if(c.referrerPolicy="no-referrer",c.crossOrigin="anonymous",oe(n)){c.src=me(n.svg);const l=Be(n.svg);l?c.setAttribute("data-viewbox",l):c.removeAttribute("data-viewbox")}else c.removeAttribute("data-viewbox"),c.src=Ye(o,n);return}oe(n)&&i&&(Lt(c,n.svg,i),ce(o,e,Jt(n.svg)))},nn=(o,e,n)=>{const i=e.el instanceof HTMLDivElement?e.el.style.backgroundColor:"",c=be(n)??(i||void 0),l=oe(n)&&!!c;l||e.layers.delete(ye);const p=we(o,e,l?"div":"img");p._sourceRect=void 0,Ge(o,e,n,c===void 0?void 0:ee(c)),o.computeStyle(e)},on=(o,e,n)=>{const i=e.el;if(!(i instanceof HTMLImageElement))return;const c=i.src,l=we(o,e,"div"),p=l.style;p.webkitMaskImage=p.maskImage=`url("${c}")`,p.webkitMaskRepeat=p.maskRepeat="no-repeat",p.webkitMaskPosition=p.maskPosition="center",p.maskSize||(p.webkitMaskSize=p.maskSize="contain"),l.style.backgroundColor=n;const w=l.getAttribute("data-viewbox");if(w){const E=w.trim().split(/[\s,]+/).map(Number);E[2]&&E[3]&&ce(o,e,{width:E[2],aspectRatio:E[2]/E[3]})}},sn=(o,e,n,i,c,l)=>{const p=e.el,w=p._sourceRect;if(p._sourceRect=[n,i,c,l],p instanceof HTMLImageElement){const E=we(o,e,"div");E._sourceRect=[n,i,c,l],Ke(E,p.src,p)}else ge(p);(!w||w[2]!==c||w[3]!==l)&&(ce(o,e,{width:c,height:l}),o.computeStyle(e))},Ke=(o,e,n)=>{if(o.style.backgroundRepeat="no-repeat",n&&n.naturalWidth>0){o._atlasSize=[n.naturalWidth,n.naturalHeight],o.style.backgroundImage=`url("${e}")`,ge(o);return}const i=new Image;i.crossOrigin="anonymous",i.referrerPolicy="no-referrer",i.addEventListener("load",()=>{o._atlasSize=[i.naturalWidth,i.naturalHeight],o.style.backgroundImage=`url("${e}")`,ge(o)},{once:!0}),i.src=e},ge=o=>{const e=o._sourceRect,n=o._atlasSize;if(!e||!n)return;const[i,c,l,p]=e,[w,E]=n;o.style.backgroundSize=`${w/l*100}% ${E/p*100}%`,o.style.backgroundPosition=`${w===l?0:i/(w-l)*100}% ${E===p?0:c/(E-p)*100}%`},rn=(o,e)=>{switch(e.type){case"image":return o.createElement(en(e)?"div":"img");case"video":return Rt(e);case"button":return o.createElement("button");case"input":return o.createElement("input");case"textarea":return o.createElement("textarea");default:return o.createElement("div")}},an=typeof CSS<"u"&&!!CSS.supports&&CSS.supports("field-sizing","content"),ln=(o,e)=>{if(o.type!=="textarea"||an)return;const n=()=>{var i;((i=o._style)==null?void 0:i.height)==null&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)};e._growTextArea=n,e.addEventListener("input",n),requestAnimationFrame(n)},cn={screen:"lc-screen",text:"lc-text",row:"lc-row",box:"lc-box",button:"lc-button",spacer:"lc-spacer",scrollable:"lc-scrollable",vlist:"lc-vlist",widget:"lc-widget"};class Fe{constructor(e,n){$(this,"core");$(this,"nodeMap",new Map);$(this,"root");$(this,"node");$(this,"screenId");$(this,"isWidget",!1);$(this,"deregister");$(this,"overlayElement",null);$(this,"screenWidth",0);$(this,"screenHeight",0);$(this,"firedScreenWidth",-1);$(this,"firedScreenHeight",-1);$(this,"vlistIds",[]);$(this,"insertNode",(e,n,i)=>{const c=this.nodeMap.get(e);if(!c)return;const l=this.addNodeRecursive(i);c.insertBefore(l,c.children[n]??null)});$(this,"removeNode",(e,n)=>{const i=this.nodeMap.get(e);i&&this.detachNode(i,n)});this.core=e,this.deregister=n}init(e,n){this.node=n,this.screenId=e,this.root=this.addNodeRecursive(n)}addNodeRecursive(e){var w,E,M;const n=this.core,i=rn(n.doc,e);i.classList.add("lc");const c=cn[e.type];c&&i.classList.add(c),e.type==="widget"&&i.classList.add("widget"),i._lecodesNode=e;const l=n.nextId();i.setAttribute("data-node-id",String(l));const p=n.registerNode(l,i,e,this);e._id=l,this.nodeMap.set(l,i),e._text&&(i.textContent=e._text),e.type==="screen"&&(e.scrollable&&i.classList.add("lc-scrollable"),((w=e.touchStartListeners)==null?void 0:w.length)>0&&i.classList.add("interactive")),e.type==="widget"&&((E=e.touchStartListeners)==null?void 0:E.length)>0&&i.classList.add("interactive"),e.type==="button"&&((M=e.touchStartListeners)==null?void 0:M.length)>0&&i.classList.add("interactive"),e.type==="image"&&tn(n,p),e.type==="video"&&Tt(i),this.attachListeners(e,i,p);for(const[A,x]of Object.entries(e._style??{}))n.applyStyleValue(p,le,A,x,!1);if(e._classes)for(const A of e._classes)p.active.add(n.classLayer(A));if(n.computeStyle(p),(e.type==="input"||e.type==="textarea")&&e._value&&(i.value=e._value),e.ll&&n.observeLayout(p),e.type==="vlist")n.vlist.register(this,e,i,l),this.vlistIds.push(l);else if("children"in e)for(const A of e.children)A&&i.appendChild(this.addNodeRecursive(A));return i}attachListeners(e,n,i){var l;const c=this.core.touch;if((e.type==="button"||e.type==="widget"||e.type==="screen")&&(n.addEventListener("pointerdown",c.onUIButtonTouchStart.bind(null,e)),e.type==="button"&&n.addEventListener("pointerup",c.onUIButtonTouchEnd.bind(null,e))),e.type==="input"||e.type==="textarea"){const p=n;p._lcNode=e,ln(e,p),((l=e.cl)==null?void 0:l.length)>0&&p.addEventListener("input",()=>{for(const w of e.cl)w(p.value)}),p.addEventListener("focus",()=>{this.core.setLayerEnabled(i,he,!0);for(const w of e.fl??[])w()}),p.addEventListener("blur",()=>{this.core.setLayerEnabled(i,he,!1);for(const w of e.bl??[])w()})}(e.type==="scrollable"||e.type==="screen"&&e.scrollable)&&e.sl&&n.addEventListener("scroll",()=>{const p=n.classList.contains("scrollable_horizontal")?n.scrollLeft:n.scrollTop;for(const w of e.sl)w(p)})}applyLayout(e,n){if(this.screenWidth=e,this.screenHeight=n,!this.isWidget&&!(e===this.firedScreenWidth&&n===this.firedScreenHeight)){this.firedScreenWidth=e,this.firedScreenHeight=n;for(const i of this.node.ll??[])i({left:0,top:0,width:e,height:n})}}setContent(e,n,i){const c=this.nodeMap.get(e);if(c){for(const l of n)l&&this.detachNode(c,l);for(const l of i)l&&c.appendChild(this.addNodeRecursive(l))}}detachNode(e,n){const i=this.nodeMap.get(n._id);i&&i.parentElement===e&&e.removeChild(i),this.releaseSubtree(n)}releaseSubtree(e){if(e._id){if(e.type==="vlist"){this.core.vlist.unregister(e._id);const n=this.vlistIds.indexOf(e._id);n>=0&&this.vlistIds.splice(n,1)}this.core.dropNode(e._id),this.nodeMap.delete(e._id),e._id=0}if("children"in e)for(const n of e.children)n&&this.releaseSubtree(n)}remove(){this.removeFromHTML(),this.releaseSubtree(this.node),this.nodeMap.clear(),this.deregister(this.screenId)}removeFromHTML(){var e;this.root.remove(),(e=this.overlayElement)==null||e.remove(),this.overlayElement=null,this.screenWidth=0,this.screenHeight=0,this.firedScreenWidth=-1,this.firedScreenHeight=-1}}const dn=async(o,e)=>{const n=o.ownerDocument,i=n.defaultView??window,c=n.createElement("style");c.innerHTML=Ut,o.append(c);const l=new Map;let p=1;const w=new Map;let E=0;const M=new Map;let A=1,x=null;const N=t=>{t<0?M.delete(t):w.delete(t)};let a=!1;const f=new Set;let u=Te;const g=(t,s)=>{const r=t>s,{insets:d,bars:h}=Ot(u,r),b={top:d[0],right:d[1],bottom:d[2],left:d[3]},y=o.style;for(const[P,S]of Object.entries(b))y.setProperty(`--safe-${P}`,S+"px"),h.includes(P)?y.setProperty(`--safe-${P}-bar`,S+"px"):y.removeProperty(`--safe-${P}-bar`);if(r!==a){a=r;for(const P of f)D(P)}},m=t=>{u=t??Te,Q>0&&Z>0&&g(Q,Z)},_=t=>{const s=o.style;for(const r of Object.keys(t)){if(r.startsWith("safe-")||r==="vw"||r==="vh"||r==="vmin"||r==="vmax")continue;const d=t[r];d==null?s.removeProperty(`--${r}`):s.setProperty(`--${r}`,typeof d=="number"?d+"px":String(d))}},L=new Map,R=t=>{const s=t.startsWith("$")?t.slice(1):t;let r=L.get(s);return r===void 0&&(r=Gt+L.size,L.set(s,r)),r},Y=t=>{if(t.startsWith("$"))return R(t);switch(t){case"onPressed":return Me;case"onFocused":return he;case"onLandscape":return ue;case"onPortait":case"onPortrait":return pe}return null},G=t=>t===null||typeof t!="object"?t:"_id"in t?Ve(t._id):"svg"in t?me(t.svg):"canvasSurface"in t?(e==null?void 0:e.surfaceToDataUrl(t.canvasSurface))??"":t,O=(t,s)=>{let r=t.layers.get(s);return r||(r={props:{}},t.layers.set(s,r)),r},K=(t,s)=>s===ue?a:s===pe?!a:s===le||s===ye?!0:t.active.has(s),se=t=>{const s=new Map;for(const[r,d]of Object.entries(t)){if(He.has(r)){r==="tintColor"?s.set("background-color",""):(r==="bgImage"||r==="backgroundImage"||r==="bgGradient"||r==="backgroundGradient")&&s.set("background-image","");continue}je(s,r,d??0)}return[...s.keys()]},re=t=>t.transitions?[...t.transitions.values()].join(", "):"",te=(t,s,r)=>`${t} ${s??225}ms ease-in-out${r?` ${r}ms`:""}`,v=(t,s,r,d)=>{t.transitions||(t.transitions=new Map);for(const h of se(s))t.transitions.set(h,te(h,r,d));t.el.style.transition=re(t)},k=new Set,C=t=>{k.has(t)||(k.add(t),console.warn(`[viewer-lite] unsupported style prop "${t}"`))},z=(t,s,r,d,h=!0)=>{const b=G(d);if(b!=null&&typeof b=="object"){const y=Y(r);if(y===null){C(r);return}const{duration:P,delay:S,layer:T,...j}=b,J={};for(const[ne,ae]of Object.entries(j))J[ne]=G(ae);t.layers.set(y,{props:J,duration:P,delay:S}),(y===ue||y===pe)&&f.add(t),(P!=null||S!=null)&&v(t,J,P,S)}else if(b==null){const y=Y(r);y!==null?t.layers.delete(y):delete O(t,s).props[r]}else O(t,s).props[r]=b;h&&D(t)},B=(t,s,r)=>{var P;const d=s.bgGradient??s.backgroundGradient,h=s.bgImage??s.backgroundImage;if(d||h){const S=[];d&&S.push(String(d)),h&&S.push(`url("${h}")`),r.set("background-image",S.join(", "))}if((s.bgSize??s.backgroundSize)==="tile"&&(r.set("background-size","auto"),r.set("background-repeat","repeat")),s.pointerEvents!==void 0&&r.set("pointer-events",s.pointerEvents==="none"?"none":"auto"),s.objectFit!==void 0){const S=t.el;if(S instanceof HTMLImageElement||S instanceof HTMLVideoElement)r.set("object-fit",String(s.objectFit));else if(S.hasAttribute("data-viewbox")&&!S._sourceRect){const T=s.objectFit==="cover"?"cover":s.objectFit==="fill"?"100% 100%":"contain";r.set("-webkit-mask-size",T),r.set("mask-size",T)}}s.tintColor!==void 0&&t.node.type==="image"&&(t.el instanceof HTMLImageElement&&t.el.hasAttribute("data-viewbox")&&on(X,t,ee(s.tintColor)),r.set("background-color",ee(s.tintColor)));const y=t.el;if((y instanceof HTMLInputElement||y instanceof HTMLTextAreaElement)&&(y.placeholder=s.placeholder!=null?String(s.placeholder):"",y instanceof HTMLInputElement&&s.type!==void 0&&(y.type=String(s.type))),t.node.type==="scrollable"){y.classList.toggle("scrollable_horizontal",s.scrollDirection==="horizontal");const S=s.snap,T=S!==void 0&&S!=="none",j=s.scrollDirection==="horizontal";r.set("scroll-snap-type",T?`${j?"x":"y"} mandatory`:"none"),y.classList.toggle("lc-snap-start",S==="start"),y.classList.toggle("lc-snap-center",S==="center"),y.classList.toggle("lc-snap-end",S==="end");const J=r.get(j?"padding-left":"padding-top"),ne=r.get(j?"padding-right":"padding-bottom"),ae=(Et,xt)=>r.set(`scroll-padding-${Et}`,S==="start"||S==="end"?xt??"0px":"0px");ae(j?"left":"top",J),ae(j?"right":"bottom",ne)}if(s.showScrollbar!==void 0&&y.classList.toggle("lc-noscrollbar",s.showScrollbar===!1),t.node.type==="widget"&&s.sheetDetents!==void 0){const S=String(s.sheetDetents).split(",").map(Number).filter(ne=>ne>0),T=S[S.length-1]??.5,j=Math.floor(Number(s.sheetDetent??0)),J=j>=0?S[Math.min(j,S.length-1)]??T:0;r.set("transform",`translateY(${(T-J)/T*100}%)`),r.set("transition","transform 250ms ease")}if(t._kbDismissMode=s.keyboardDismissMode,s.keyboardDismissMode==="scroll"&&!t._kbDismissBound){t._kbDismissBound=!0;const S=()=>{if(t._kbDismissMode!=="scroll")return;const T=n.activeElement;(T instanceof HTMLInputElement||T instanceof HTMLTextAreaElement)&&T.blur()};y.addEventListener("touchmove",S,{passive:!0}),y.addEventListener("wheel",S,{passive:!0})}if(s.overlayColor!==void 0&&s.overlayColor!==null){const S=t.screen;let T=S.overlayElement;T||(T=n.createElement("div"),T.style.position="absolute",T.style.inset="0",T.style.pointerEvents="auto",T.style.zIndex="9",T.addEventListener("click",()=>{for(const j of S.node.otl??[])j()}),o.appendChild(T),S.overlayElement=T),T.style.background=ee(s.overlayColor),t.hasOverlay=!0}else t.hasOverlay&&((P=t.screen.overlayElement)==null||P.remove(),t.screen.overlayElement=null,t.hasOverlay=!1);s.scrollY!==void 0&&s.scrollY!==t._lastScrollY&&(t._lastScrollY=s.scrollY,y.scrollTop=Number(s.scrollY)),s.scrollX!==void 0&&s.scrollX!==t._lastScrollX&&(t._lastScrollX=s.scrollX,y.scrollLeft=Number(s.scrollX))},D=t=>{const s={};for(const h of[...t.layers.keys()].sort((b,y)=>b-y))if(K(t,h))for(const[b,y]of Object.entries(t.layers.get(h).props))y===null?delete s[b]:y!==void 0&&(s[b]=y);const r=new Map;for(const[h,b]of Object.entries(s))He.has(h)||je(r,h,b)||C(h);B(t,s,r);const d=t.el;for(const[h,b]of r)t.applied.get(h)!==b&&d.style.setProperty(h,b);for(const h of t.applied.keys())r.has(h)||d.style.removeProperty(h);t.applied=r},V=(t,s,r)=>{r?t.active.add(s):t.active.delete(s),t.layers.has(s)&&D(t)},U=new Map,H=new ResizeObserver(t=>{for(const s of t){const r=U.get(s.target);if(!r)continue;const d=s.target,h={left:d.offsetLeft,top:d.offsetTop,width:d.offsetWidth,height:d.offsetHeight};for(const b of r.node.ll??[])b(h)}}),q=t=>{t.node.type!=="screen"&&(U.set(t.el,t),H.observe(t.el))},W=Yt(()=>X),I=Mt(o);I.onNodeStateChanged((t,s)=>{const r=l.get(t);r&&V(r,Me,s)});const X={doc:n,nodes:l,touch:I,canvasHost:e,nextId:()=>p++,registerNode(t,s,r,d){const h={id:t,el:s,node:r,screen:d,layers:new Map,active:new Set,applied:new Map,transitions:null};return l.set(t,h),h},dropNode(t){const s=l.get(t);s&&(U.delete(s.el)&&H.unobserve(s.el),f.delete(s),l.delete(t))},applyStyleValue:z,computeStyle:D,setLayerEnabled:V,classLayer:R,observeLayout:q,vlist:W},Se=()=>[o.clientWidth,o.clientHeight],ie=t=>{const s=new Fe(X,N),r=E++;return w.set(r,s),s.init(r,t),s},de=t=>{if(x!==null){for(const s of x.node.cl??[])s();t?x.removeFromHTML():x.remove(),x=null}},qe=t=>{F.show?xe():de(!1);const[s,r]=Se();g(s,r),Q=s,Z=r,x=ie(t),o.appendChild(x.root);for(const d of t.ol??[])d();return x.applyLayout(s,r),x},Qe=()=>{x==null||x.remove(),x=null};let Ee=()=>{};const F=new Nt(t=>{de(!0),x=t,o.appendChild(t.root),t.applyLayout(Q,Z),Ee(t.node);for(const s of t.node.ol??[])s()},t=>t.remove()),Ze=(t,s)=>{x!==null&&(F.stack.includes(x)?x.removeFromHTML():x.remove(),x=null);for(const h of F.stack)h.remove();F.stack=[];const[r,d]=Se();g(r,d),Q=r,Z=d,Ee=s,F.init(ie(t))},xe=()=>{F.hide(),x&&F.stack.includes(x)&&de(!0)},Je=t=>{for(const r of M.values())if(r.node===t)return;const s=new Fe(X,N);s.isWidget=!0,M.set(-A,s),s.init(-A,t),A++,o.appendChild(s.root)},et=t=>{if(!t._id)return;const s=l.get(t._id);!s||!s.screen.isWidget||s.screen.remove()},tt=(t,s,r)=>{const d=l.get(t);d&&z(d,le,s,r)},nt=(t,s)=>{const r=l.get(t);if(r){for(const[d,h]of Object.entries(s))z(r,le,d,h,!1);D(r)}},ot=(t,s,r)=>{const d=l.get(t);d&&V(d,R(s),r)},st=(t,s,r)=>{var h,b;const d=l.get(t);if(d)switch(s){case"text":d.el.textContent=r;break;case"value":d.el.value=r,(b=(h=d.el)._growTextArea)==null||b.call(h);break;case"src":nn(X,d,r);break}},rt=(t,s,r,d,h)=>{const b=l.get(t);b&&sn(X,b,s,r,d,h)},it=t=>{var r;const s=(r=l.get(t))==null?void 0:r.el;return(s==null?void 0:s.value)??""},at=t=>{var b;const s=(b=l.get(t))==null?void 0:b.el;if(!s||!s.isConnected)return null;const r=s.getBoundingClientRect();if(r.width===0&&r.height===0&&r.left===0&&r.top===0)return null;const d=o.getBoundingClientRect(),h=o.clientWidth>0&&d.width>0?d.width/o.clientWidth:1;return[(r.left-d.left)/h,(r.top-d.top)/h,r.width/h,r.height/h]},lt=(t,s,r)=>{var d;(d=l.get(s))==null||d.screen.insertNode(s,t,r)},ct=(t,s)=>{var r;(r=l.get(t))==null||r.screen.removeNode(t,s)},dt=(t,s,r)=>{var d;(d=l.get(t))==null||d.screen.setContent(t,s,r)},_e=t=>{const{duration:s,delay:r,layer:d,...h}=t,b={};for(const[y,P]of Object.entries(h))b[y]=G(P);return{duration:s,delay:r,layerNum:Kt+(d??44),props:b}},ke=(t,s,r,d)=>{t.el.style.transition=se(s).map(b=>te(b,r,d)).join(", ");const h=b=>{b.target===t.el&&(t.el.style.transition=re(t),t.el.removeEventListener("transitionend",h))};t.el.addEventListener("transitionend",h)},ft=(t,s)=>{const r=l.get(t);if(!r)return;const{duration:d,delay:h,layerNum:b,props:y}=_e(s);r.layers.set(b,{props:y}),ke(r,y,d,h),i.requestAnimationFrame(()=>{r.active.add(b),D(r)})},ut=(t,s)=>{const r=l.get(t);if(!r)return;const{duration:d,delay:h,layerNum:b,props:y}=_e(s);r.layers.set(b,{props:y}),r.active.add(b),D(r),i.requestAnimationFrame(()=>{ke(r,y,d,h),r.active.delete(b),D(r)})},fe=[],pt=(t,s,r,d,h)=>{const b=new FontFace(t,`url(${s})`,r);b.load().then(()=>{n.fonts.add(b),fe.push(b),d()}).catch(h)};let Le=()=>{},Q=0,Z=0;const ht=(t,s)=>{if(!(t===0||s===0)){g(t,s),Q=t,Z=s,x==null||x.applyLayout(t,s);for(const r of M.values())r.applyLayout(t,s);Le(t,s)}},gt=t=>{Le=t},bt=()=>[Q,Z],mt=zt(o),yt=o.style.touchAction;o.style.touchAction="pan-x pan-y";const vt=Ct(o,{scroller:".lc-scrollable,.lc-vlist"});o.addEventListener("pointerdown",I.onSceneTouchDown),o.addEventListener("pointerup",I.onSceneTouchEnd),o.addEventListener("pointercancel",I.onSceneTouchCancel);const wt=At(o),St=()=>{wt(),vt(),o.style.touchAction=yt,o.removeEventListener("pointerdown",I.onSceneTouchDown),o.removeEventListener("pointerup",I.onSceneTouchEnd),o.removeEventListener("pointercancel",I.onSceneTouchCancel),I._destroy(),H.disconnect(),U.clear();for(const t of fe)n.fonts.delete(t);fe.length=0};return{openScreen:qe,closeScreen:Qe,routerOpen:Ze,routerPush:t=>F.push(ie(t)),routerReplace:t=>F.replace(ie(t)),routerPop:t=>F.pop(t),routerHide:xe,routerRestore:()=>F.restore(),updateNode:st,setSourceRect:rt,updateStyle:tt,mergeStyle:nt,setClass:ot,registerFont:pt,fontFormat:"woff2",toast:mt,registerTouchStartEvent:I.registerTouchStartEvent,registerTouchEndEvent:I.registerTouchEndEvent,isButtonPressed:I.isButtonPressed,registerResizeEvent:gt,getDisplaySize:bt,getTextValue:it,getBoundingClientRect:at,insertNode:lt,removeNode:ct,setContent:dt,animateTo:ft,animateFrom:ut,showWidget:Je,hideWidget:et,setTheme:_,...W.api,_onResize:ht,_destroy:St,_setCreator:I.setCreator,_setSafeAreaSpec:m}},fn=async(o,e={})=>{var te;const n=e.engine??"gl-lite",i=e.preloads??new Set,c=o.ownerDocument,l=c.defaultView??window,p=e.ui===!1?void 0:$t(e.fonts,c),w=e.ui===!1?void 0:Dt(e.bootFonts??[],c),E=c.createElement("canvas");E.style.cssText="width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-drag:none;display:none",o.appendChild(E);const M=Wt(Vt,Ne),A=Bt(Ne);let x=()=>{},N;if(n==="defer")N={raycastView(){return 0},_raycastView(){return 0},_onResize(){},_dispose(){}},x=async()=>{const v=o.getBoundingClientRect();E.width=v.width,E.height=v.height;const{createViewerLite:k}=await Re(async()=>{const{createViewerLite:z}=await import("./createViewerLite-CinItTpO.js").then(B=>B.c);return{createViewerLite:z}},__vite__mapDeps([0,1]),import.meta.url),C=await k(E,{preloads:i,canvasHost:M});Object.assign(N,C)};else{const v=o.getBoundingClientRect();E.width=v.width,E.height=v.height;const{createViewerLite:k}=await Re(async()=>{const{createViewerLite:C}=await import("./createViewerLite-CinItTpO.js").then(z=>z.c);return{createViewerLite:C}},__vite__mapDeps([0,1]),import.meta.url);N=await k(E,{preloads:i,canvasHost:M}),e.methods&&Object.assign(N,e.methods)}const a=e.ui===!1?void 0:await(e.ui??dn)(o,M),f=It({launchUrl:e.launchUrl,onOrientation:e.onOrientation});a==null||a._setCreator(N),e.safeArea&&((te=a==null?void 0:a._setSafeAreaSpec)==null||te.call(a,e.safeArea));const u=new ResizeObserver(([v])=>{N==null||N._onResize(v.contentRect.width,v.contentRect.height),a==null||a._onResize(v.contentRect.width,v.contentRect.height)});u.observe(o);const m=Pt({windows:l===window?[window]:[l,window],root:o,keyboard:e.keyboard!==!1});f.inputKey=m.inputKey,f.inputRead=m.inputRead,f.inputSetPointerLock=m.inputSetPointerLock,f.registerInputEvent=m.registerInputEvent;const _=[];let L=!1;const R=(v,k,C,z)=>{var V,U;if(C.length===0&&Ae(k)){const H=typeof k=="number"||typeof k=="bigint"?`code ${k}`:k instanceof Error?k.message||k.name:String(k),q=[z,H].filter(W=>!!W).filter((W,I,X)=>X.indexOf(W)===I).join(`
|
|
161
|
-
`);console.error(`[le.codes] native engine error — ${q||H}`),(V=v.onError)==null||V.call(v,{message:"Native engine error",detail:q,frames:[],native:!0,stack:k instanceof Error?k.stack:void 0});return}const D=k instanceof Error?k.message:String(k);if(C.length>0){const H=C[0];console.error(`[le.codes] ${D}
|
|
162
|
-
at ${H.source}:${H.line}:${H.column}${H.fn?` (${H.fn})`:""}`)}else console.error(`[le.codes] ${D}`);(U=v.onError)==null||U.call(v,{message:D,frames:C,stack:k instanceof Error?k.stack:void 0})},Y=(v,k)=>{for(let C=_.length-1;C>=0;C--){const z=_[C];if(!z.sourceMap)continue;const B=Ce(v,z.sourceMap);if(B.length>0)return R(z,v,B,k)}if(Ae(v)){const C=_[_.length-1];C&&R(C,v,[],k)}},G=v=>Y(v.error??v.message,v.message),O=v=>Y(v.reason),K=()=>{L||(L=!0,window.addEventListener("error",G),window.addEventListener("unhandledrejection",O))},se=(v,k={})=>{K();const C=Ft(),z=jt(v);let B=!1;const D=()=>{if(B)return;B=!0;const W=_.indexOf(V);W>=0&&_.splice(W,1),C.disposeAll()},V={sourceMap:z,onError:k.onError,dispose:D};_.push(V);const U={_creator:N,_creator2d:void 0,_creatorUI:a,_creatorUtils:f,_creatorCanvas:M.bridge,_creatorNav:A,...C.globals,createEngine:x},H=new Function(...Object.keys(U),v);let q;try{q=H(...Object.values(U))}catch(W){throw R(V,W,z?Ce(W,z):[]),W}return{result:q,dispose:D}},re=()=>{var v;u.disconnect();for(const k of[..._])k.dispose();L&&(window.removeEventListener("error",G),window.removeEventListener("unhandledrejection",O)),N._dispose(),(v=a==null?void 0:a._destroy)==null||v.call(a),E.remove(),f._disposeWebsockets(),f._disposeServices(),f._disposeAppEvents(),m.dispose()};return await p,await w,{_creator:N,_creatorUI:a,_creatorUtils:f,canvasHost:M,run:se,destroy:re}},Xe="overflow:hidden;font-family:var(--fontFamily,'Roboto'),system-ui,-apple-system,sans-serif",un="position:absolute;inset:0;"+Xe,pn=o=>{const e=new Set(o.childNodes),n=o.getAttribute("style"),c=(o.ownerDocument.defaultView??window).getComputedStyle(o).position!=="static";return o.style.cssText=`${n?n+";":""}${c?"":"position:relative;"}${Xe}`,{root:o,remove:()=>{for(const l of Array.from(o.childNodes))e.has(l)||l.remove();n===null?o.removeAttribute("style"):o.setAttribute("style",n)}}},hn=o=>{const n=o.ownerDocument.createElement("iframe");n.style.cssText="border:none;display:block;width:100%;height:100%;background:transparent",n.allow="camera; microphone; autoplay; fullscreen",o.appendChild(n);const i=n.contentDocument,c=i.createElement("style");c.textContent="html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:transparent}canvas{display:block}",i.head.appendChild(c);const l=i.createElement("div");return l.style.cssText=un,i.body.appendChild(l),{root:l,remove:()=>n.remove()}},mn=async(o,e="",n,i={})=>{var N;const c=e.slice(0,2e3);if(c.includes("// 2d: enable")){const a="Web Lite doesn't support 2D projects — use the regular preview";return console.warn(`[viewer-lite] ${a}`),(N=i.onError)==null||N.call(i,{message:a,frames:[]}),{_creator:void 0,_creatorUI:void 0,_creatorUtils:void 0,uiRoot:void 0,result:void 0,destroy(){}}}const l=new Set,p=c.match(/\/\/ preload: (.+)/);if(p)for(const a of p[1].split(";"))l.add(a);const w=c.includes("// gl: disable")||c.includes("// gl: defer"),{root:E,remove:M}=i.frame===!1?pn(o):hn(o),A=await fn(E,{engine:w?"defer":"gl-lite",fonts:i.fonts,bootFonts:Ht(c),preloads:l,methods:n,safeArea:i.safeArea,onOrientation:i.onOrientation}),x=A.run(e,{onError:i.onError});return{_creator:A._creator,_creatorUI:A._creatorUI,_creatorUtils:A._creatorUtils,uiRoot:E,result:x.result,destroy(){x.dispose(),A.destroy(),M()}}};export{fn as createLiteHost,mn as mountCreatorLite};
|
package/src/assets/banner.png
DELETED
|
Binary file
|
package/src/assets/image2.png
DELETED
|
Binary file
|
package/src/assets/landing.mp4
DELETED
|
Binary file
|
|
Binary file
|
package/src/assets/output.mp4
DELETED
|
Binary file
|
package/src/assets/output2.mp4
DELETED
|
Binary file
|
package/src/assets/texture.png
DELETED
|
Binary file
|
package/src/assets/vue.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
|