lunchboxjs 2.0.0-beta.4 → 2.0.0-beta.6

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.
@@ -1,36 +1,36 @@
1
- (function(y,z){typeof exports=="object"&&typeof module<"u"?z(exports,require("three")):typeof define=="function"&&define.amd?define(["exports","three"],z):(y=typeof globalThis<"u"?globalThis:y||self,z(y.LunchboxJS={},y.three))})(this,function(y,z){"use strict";var ie;function oe(t){const u=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(u,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return u.default=t,Object.freeze(u)}const _=oe(z),cu=["WebGLRenderer","Scene","Group","Object3D","Mesh","Sprite","BoxGeometry","BufferGeometry","CircleGeometry","ConeGeometry","CylinderGeometry","DodecahedronGeometry","ExtrudeGeometry","IcosahedronGeometry","InstancedBufferGeometry","LatheGeometry","OctahedronGeometry","PlaneGeometry","PolyhedronGeometry","RingGeometry","ShapeGeometry","SphereGeometry","TetrahedronGeometry","TorusGeometry","TorusKnotGeometry","TubeGeometry","WireframeGeometry","PointsMaterial","ShaderMaterial","ShadowMaterial","SpriteMaterial","MeshToonMaterial","MeshBasicMaterial","MeshDepthMaterial","MeshPhongMaterial","LineBasicMaterial","RawShaderMaterial","MeshMatcapMaterial","MeshNormalMaterial","LineDashedMaterial","MeshLambertMaterial","MeshStandardMaterial","MeshDistanceMaterial","MeshPhysicalMaterial","Light","SpotLight","SpotLightHelper","PointLight","PointLightHelper","AmbientLight","RectAreaLight","HemisphereLight","HemisphereLightHelper","DirectionalLight","DirectionalLightHelper","CubeCamera","ArrayCamera","StereoCamera","PerspectiveCamera","OrthographicCamera","Texture","CubeTexture","DataTexture","DepthTexture","VideoTexture","CanvasTexture","CompressedTexture","CatmullRomCurve3","Points","Raycaster","CameraHelper","Color","TextureLoader"];/**
1
+ (function(m,V){typeof exports=="object"&&typeof module<"u"?V(exports,require("three")):typeof define=="function"&&define.amd?define(["exports","three"],V):(m=typeof globalThis<"u"?globalThis:m||self,V(m.LunchboxJS={},m.three))})(this,function(m,V){"use strict";var oe;function ce(t){const u=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(u,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return u.default=t,Object.freeze(u)}const b=ce(V),Au=["WebGLRenderer","Scene","Group","Object3D","Mesh","Sprite","BoxGeometry","BufferGeometry","CircleGeometry","ConeGeometry","CylinderGeometry","DodecahedronGeometry","ExtrudeGeometry","IcosahedronGeometry","InstancedBufferGeometry","LatheGeometry","OctahedronGeometry","PlaneGeometry","PolyhedronGeometry","RingGeometry","ShapeGeometry","SphereGeometry","TetrahedronGeometry","TorusGeometry","TorusKnotGeometry","TubeGeometry","WireframeGeometry","PointsMaterial","ShaderMaterial","ShadowMaterial","SpriteMaterial","MeshToonMaterial","MeshBasicMaterial","MeshDepthMaterial","MeshPhongMaterial","LineBasicMaterial","RawShaderMaterial","MeshMatcapMaterial","MeshNormalMaterial","LineDashedMaterial","MeshLambertMaterial","MeshStandardMaterial","MeshDistanceMaterial","MeshPhysicalMaterial","Light","SpotLight","SpotLightHelper","PointLight","PointLightHelper","AmbientLight","RectAreaLight","HemisphereLight","HemisphereLightHelper","DirectionalLight","DirectionalLightHelper","CubeCamera","ArrayCamera","StereoCamera","PerspectiveCamera","OrthographicCamera","Texture","CubeTexture","DataTexture","DepthTexture","VideoTexture","CanvasTexture","CompressedTexture","CatmullRomCurve3","Points","Raycaster","CameraHelper","Color","TextureLoader"];/**
2
2
  * @license
3
3
  * Copyright 2019 Google LLC
4
4
  * SPDX-License-Identifier: BSD-3-Clause
5
- */const eu=globalThis,Au=eu.ShadowRoot&&(eu.ShadyCSS===void 0||eu.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,hu=Symbol(),Su=new WeakMap;let Pu=class{constructor(u,e,r){if(this._$cssResult$=!0,r!==hu)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=u,this.t=e}get styleSheet(){let u=this.o;const e=this.t;if(Au&&u===void 0){const r=e!==void 0&&e.length===1;r&&(u=Su.get(e)),u===void 0&&((this.o=u=new CSSStyleSheet).replaceSync(this.cssText),r&&Su.set(e,u))}return u}toString(){return this.cssText}};const ae=t=>new Pu(typeof t=="string"?t:t+"",void 0,hu),ce=(t,...u)=>{const e=t.length===1?t[0]:u.reduce((r,s,D)=>r+(i=>{if(i._$cssResult$===!0)return i.cssText;if(typeof i=="number")return i;throw Error("Value passed to 'css' function must be a 'css' function result: "+i+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[D+1],t[0]);return new Pu(e,t,hu)},Ae=(t,u)=>{if(Au)t.adoptedStyleSheets=u.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const e of u){const r=document.createElement("style"),s=eu.litNonce;s!==void 0&&r.setAttribute("nonce",s),r.textContent=e.cssText,t.appendChild(r)}},xu=Au?t=>t:t=>t instanceof CSSStyleSheet?(u=>{let e="";for(const r of u.cssRules)e+=r.cssText;return ae(e)})(t):t;/**
5
+ */const ru=globalThis,Eu=ru.ShadowRoot&&(ru.ShadyCSS===void 0||ru.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Cu=Symbol(),Pu=new WeakMap;let Nu=class{constructor(u,e,r){if(this._$cssResult$=!0,r!==Cu)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=u,this.t=e}get styleSheet(){let u=this.o;const e=this.t;if(Eu&&u===void 0){const r=e!==void 0&&e.length===1;r&&(u=Pu.get(e)),u===void 0&&((this.o=u=new CSSStyleSheet).replaceSync(this.cssText),r&&Pu.set(e,u))}return u}toString(){return this.cssText}};const he=t=>new Nu(typeof t=="string"?t:t+"",void 0,Cu),Ae=(t,...u)=>{const e=t.length===1?t[0]:u.reduce((r,s,i)=>r+(D=>{if(D._$cssResult$===!0)return D.cssText;if(typeof D=="number")return D;throw Error("Value passed to 'css' function must be a 'css' function result: "+D+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[i+1],t[0]);return new Nu(e,t,Cu)},Ee=(t,u)=>{if(Eu)t.adoptedStyleSheets=u.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const e of u){const r=document.createElement("style"),s=ru.litNonce;s!==void 0&&r.setAttribute("nonce",s),r.textContent=e.cssText,t.appendChild(r)}},xu=Eu?t=>t:t=>t instanceof CSSStyleSheet?(u=>{let e="";for(const r of u.cssRules)e+=r.cssText;return he(e)})(t):t;/**
6
6
  * @license
7
7
  * Copyright 2017 Google LLC
8
8
  * SPDX-License-Identifier: BSD-3-Clause
9
- */const{is:he,defineProperty:Ce,getOwnPropertyDescriptor:Ee,getOwnPropertyNames:Fe,getOwnPropertySymbols:le,getPrototypeOf:de}=Object,P=globalThis,Nu=P.trustedTypes,pe=Nu?Nu.emptyScript:"",Cu=P.reactiveElementPolyfillSupport,V=(t,u)=>t,tu={toAttribute(t,u){switch(u){case Boolean:t=t?pe:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,u){let e=t;switch(u){case Boolean:e=t!==null;break;case Number:e=t===null?null:Number(t);break;case Object:case Array:try{e=JSON.parse(t)}catch{e=null}}return e}},Eu=(t,u)=>!he(t,u),Tu={attribute:!0,type:String,converter:tu,reflect:!1,hasChanged:Eu};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),P.litPropertyMetadata??(P.litPropertyMetadata=new WeakMap);class I extends HTMLElement{static addInitializer(u){this._$Ei(),(this.l??(this.l=[])).push(u)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(u,e=Tu){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(u,e),!e.noAccessor){const r=Symbol(),s=this.getPropertyDescriptor(u,r,e);s!==void 0&&Ce(this.prototype,u,s)}}static getPropertyDescriptor(u,e,r){const{get:s,set:D}=Ee(this.prototype,u)??{get(){return this[e]},set(i){this[e]=i}};return{get(){return s==null?void 0:s.call(this)},set(i){const a=s==null?void 0:s.call(this);D.call(this,i),this.requestUpdate(u,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(u){return this.elementProperties.get(u)??Tu}static _$Ei(){if(this.hasOwnProperty(V("elementProperties")))return;const u=de(this);u.finalize(),u.l!==void 0&&(this.l=[...u.l]),this.elementProperties=new Map(u.elementProperties)}static finalize(){if(this.hasOwnProperty(V("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(V("properties"))){const e=this.properties,r=[...Fe(e),...le(e)];for(const s of r)this.createProperty(s,e[s])}const u=this[Symbol.metadata];if(u!==null){const e=litPropertyMetadata.get(u);if(e!==void 0)for(const[r,s]of e)this.elementProperties.set(r,s)}this._$Eh=new Map;for(const[e,r]of this.elementProperties){const s=this._$Eu(e,r);s!==void 0&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(u){const e=[];if(Array.isArray(u)){const r=new Set(u.flat(1/0).reverse());for(const s of r)e.unshift(xu(s))}else u!==void 0&&e.push(xu(u));return e}static _$Eu(u,e){const r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof u=="string"?u.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var u;this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),(u=this.constructor.l)==null||u.forEach(e=>e(this))}addController(u){var e;(this._$EO??(this._$EO=new Set)).add(u),this.renderRoot!==void 0&&this.isConnected&&((e=u.hostConnected)==null||e.call(u))}removeController(u){var e;(e=this._$EO)==null||e.delete(u)}_$E_(){const u=new Map,e=this.constructor.elementProperties;for(const r of e.keys())this.hasOwnProperty(r)&&(u.set(r,this[r]),delete this[r]);u.size>0&&(this._$Ep=u)}createRenderRoot(){const u=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Ae(u,this.constructor.elementStyles),u}connectedCallback(){var u;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(u=this._$EO)==null||u.forEach(e=>{var r;return(r=e.hostConnected)==null?void 0:r.call(e)})}enableUpdating(u){}disconnectedCallback(){var u;(u=this._$EO)==null||u.forEach(e=>{var r;return(r=e.hostDisconnected)==null?void 0:r.call(e)})}attributeChangedCallback(u,e,r){this._$AK(u,r)}_$EC(u,e){var D;const r=this.constructor.elementProperties.get(u),s=this.constructor._$Eu(u,r);if(s!==void 0&&r.reflect===!0){const i=(((D=r.converter)==null?void 0:D.toAttribute)!==void 0?r.converter:tu).toAttribute(e,r.type);this._$Em=u,i==null?this.removeAttribute(s):this.setAttribute(s,i),this._$Em=null}}_$AK(u,e){var D;const r=this.constructor,s=r._$Eh.get(u);if(s!==void 0&&this._$Em!==s){const i=r.getPropertyOptions(s),a=typeof i.converter=="function"?{fromAttribute:i.converter}:((D=i.converter)==null?void 0:D.fromAttribute)!==void 0?i.converter:tu;this._$Em=s,this[s]=a.fromAttribute(e,i.type),this._$Em=null}}requestUpdate(u,e,r){if(u!==void 0){if(r??(r=this.constructor.getPropertyOptions(u)),!(r.hasChanged??Eu)(this[u],e))return;this.P(u,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(u,e,r){this._$AL.has(u)||this._$AL.set(u,e),r.reflect===!0&&this._$Em!==u&&(this._$Ej??(this._$Ej=new Set)).add(u)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const u=this.scheduleUpdate();return u!=null&&await u,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[D,i]of this._$Ep)this[D]=i;this._$Ep=void 0}const s=this.constructor.elementProperties;if(s.size>0)for(const[D,i]of s)i.wrapped!==!0||this._$AL.has(D)||this[D]===void 0||this.P(D,this[D],i)}let u=!1;const e=this._$AL;try{u=this.shouldUpdate(e),u?(this.willUpdate(e),(r=this._$EO)==null||r.forEach(s=>{var D;return(D=s.hostUpdate)==null?void 0:D.call(s)}),this.update(e)):this._$EU()}catch(s){throw u=!1,this._$EU(),s}u&&this._$AE(e)}willUpdate(u){}_$AE(u){var e;(e=this._$EO)==null||e.forEach(r=>{var s;return(s=r.hostUpdated)==null?void 0:s.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(u)),this.updated(u)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(u){return!0}update(u){this._$Ej&&(this._$Ej=this._$Ej.forEach(e=>this._$EC(e,this[e]))),this._$EU()}updated(u){}firstUpdated(u){}}I.elementStyles=[],I.shadowRootOptions={mode:"open"},I[V("elementProperties")]=new Map,I[V("finalized")]=new Map,Cu==null||Cu({ReactiveElement:I}),(P.reactiveElementVersions??(P.reactiveElementVersions=[])).push("2.0.4");/**
9
+ */const{is:Ce,defineProperty:Fe,getOwnPropertyDescriptor:le,getOwnPropertyNames:de,getOwnPropertySymbols:pe,getPrototypeOf:fe}=Object,N=globalThis,Tu=N.trustedTypes,Be=Tu?Tu.emptyScript:"",Fu=N.reactiveElementPolyfillSupport,W=(t,u)=>t,su={toAttribute(t,u){switch(u){case Boolean:t=t?Be:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,u){let e=t;switch(u){case Boolean:e=t!==null;break;case Number:e=t===null?null:Number(t);break;case Object:case Array:try{e=JSON.parse(t)}catch{e=null}}return e}},lu=(t,u)=>!Ce(t,u),Mu={attribute:!0,type:String,converter:su,reflect:!1,hasChanged:lu};Symbol.metadata??(Symbol.metadata=Symbol("metadata")),N.litPropertyMetadata??(N.litPropertyMetadata=new WeakMap);class I extends HTMLElement{static addInitializer(u){this._$Ei(),(this.l??(this.l=[])).push(u)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(u,e=Mu){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(u,e),!e.noAccessor){const r=Symbol(),s=this.getPropertyDescriptor(u,r,e);s!==void 0&&Fe(this.prototype,u,s)}}static getPropertyDescriptor(u,e,r){const{get:s,set:i}=le(this.prototype,u)??{get(){return this[e]},set(D){this[e]=D}};return{get(){return s==null?void 0:s.call(this)},set(D){const a=s==null?void 0:s.call(this);i.call(this,D),this.requestUpdate(u,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(u){return this.elementProperties.get(u)??Mu}static _$Ei(){if(this.hasOwnProperty(W("elementProperties")))return;const u=fe(this);u.finalize(),u.l!==void 0&&(this.l=[...u.l]),this.elementProperties=new Map(u.elementProperties)}static finalize(){if(this.hasOwnProperty(W("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(W("properties"))){const e=this.properties,r=[...de(e),...pe(e)];for(const s of r)this.createProperty(s,e[s])}const u=this[Symbol.metadata];if(u!==null){const e=litPropertyMetadata.get(u);if(e!==void 0)for(const[r,s]of e)this.elementProperties.set(r,s)}this._$Eh=new Map;for(const[e,r]of this.elementProperties){const s=this._$Eu(e,r);s!==void 0&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(u){const e=[];if(Array.isArray(u)){const r=new Set(u.flat(1/0).reverse());for(const s of r)e.unshift(xu(s))}else u!==void 0&&e.push(xu(u));return e}static _$Eu(u,e){const r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof u=="string"?u.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var u;this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),(u=this.constructor.l)==null||u.forEach(e=>e(this))}addController(u){var e;(this._$EO??(this._$EO=new Set)).add(u),this.renderRoot!==void 0&&this.isConnected&&((e=u.hostConnected)==null||e.call(u))}removeController(u){var e;(e=this._$EO)==null||e.delete(u)}_$E_(){const u=new Map,e=this.constructor.elementProperties;for(const r of e.keys())this.hasOwnProperty(r)&&(u.set(r,this[r]),delete this[r]);u.size>0&&(this._$Ep=u)}createRenderRoot(){const u=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Ee(u,this.constructor.elementStyles),u}connectedCallback(){var u;this.renderRoot??(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(u=this._$EO)==null||u.forEach(e=>{var r;return(r=e.hostConnected)==null?void 0:r.call(e)})}enableUpdating(u){}disconnectedCallback(){var u;(u=this._$EO)==null||u.forEach(e=>{var r;return(r=e.hostDisconnected)==null?void 0:r.call(e)})}attributeChangedCallback(u,e,r){this._$AK(u,r)}_$EC(u,e){var i;const r=this.constructor.elementProperties.get(u),s=this.constructor._$Eu(u,r);if(s!==void 0&&r.reflect===!0){const D=(((i=r.converter)==null?void 0:i.toAttribute)!==void 0?r.converter:su).toAttribute(e,r.type);this._$Em=u,D==null?this.removeAttribute(s):this.setAttribute(s,D),this._$Em=null}}_$AK(u,e){var i;const r=this.constructor,s=r._$Eh.get(u);if(s!==void 0&&this._$Em!==s){const D=r.getPropertyOptions(s),a=typeof D.converter=="function"?{fromAttribute:D.converter}:((i=D.converter)==null?void 0:i.fromAttribute)!==void 0?D.converter:su;this._$Em=s,this[s]=a.fromAttribute(e,D.type),this._$Em=null}}requestUpdate(u,e,r){if(u!==void 0){if(r??(r=this.constructor.getPropertyOptions(u)),!(r.hasChanged??lu)(this[u],e))return;this.P(u,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(u,e,r){this._$AL.has(u)||this._$AL.set(u,e),r.reflect===!0&&this._$Em!==u&&(this._$Ej??(this._$Ej=new Set)).add(u)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const u=this.scheduleUpdate();return u!=null&&await u,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r;if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??(this.renderRoot=this.createRenderRoot()),this._$Ep){for(const[i,D]of this._$Ep)this[i]=D;this._$Ep=void 0}const s=this.constructor.elementProperties;if(s.size>0)for(const[i,D]of s)D.wrapped!==!0||this._$AL.has(i)||this[i]===void 0||this.P(i,this[i],D)}let u=!1;const e=this._$AL;try{u=this.shouldUpdate(e),u?(this.willUpdate(e),(r=this._$EO)==null||r.forEach(s=>{var i;return(i=s.hostUpdate)==null?void 0:i.call(s)}),this.update(e)):this._$EU()}catch(s){throw u=!1,this._$EU(),s}u&&this._$AE(e)}willUpdate(u){}_$AE(u){var e;(e=this._$EO)==null||e.forEach(r=>{var s;return(s=r.hostUpdated)==null?void 0:s.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(u)),this.updated(u)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(u){return!0}update(u){this._$Ej&&(this._$Ej=this._$Ej.forEach(e=>this._$EC(e,this[e]))),this._$EU()}updated(u){}firstUpdated(u){}}I.elementStyles=[],I.shadowRootOptions={mode:"open"},I[W("elementProperties")]=new Map,I[W("finalized")]=new Map,Fu==null||Fu({ReactiveElement:I}),(N.reactiveElementVersions??(N.reactiveElementVersions=[])).push("2.0.4");/**
10
10
  * @license
11
11
  * Copyright 2017 Google LLC
12
12
  * SPDX-License-Identifier: BSD-3-Clause
13
- */const W=globalThis,ru=W.trustedTypes,Mu=ru?ru.createPolicy("lit-html",{createHTML:t=>t}):void 0,Ou="$lit$",x=`lit$${Math.random().toFixed(9).slice(2)}$`,Lu="?"+x,fe=`<${Lu}>`,T=document,q=()=>T.createComment(""),J=t=>t===null||typeof t!="object"&&typeof t!="function",ku=Array.isArray,Be=t=>ku(t)||typeof(t==null?void 0:t[Symbol.iterator])=="function",Fu=`[
14
- \f\r]`,K=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Hu=/-->/g,Iu=/>/g,M=RegExp(`>|${Fu}(?:([^\\s"'>=/]+)(${Fu}*=${Fu}*(?:[^
15
- \f\r"'\`<>=]|("|')|))|$)`,"g"),Ru=/'/g,Uu=/"/g,ju=/^(?:script|style|textarea|title)$/i,me=t=>(u,...e)=>({_$litType$:t,strings:u,values:e}),Gu=me(1),R=Symbol.for("lit-noChange"),p=Symbol.for("lit-nothing"),zu=new WeakMap,O=T.createTreeWalker(T,129);function Vu(t,u){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return Mu!==void 0?Mu.createHTML(u):u}const ye=(t,u)=>{const e=t.length-1,r=[];let s,D=u===2?"<svg>":"",i=K;for(let a=0;a<e;a++){const o=t[a];let h,E,F=-1,g=0;for(;g<o.length&&(i.lastIndex=g,E=i.exec(o),E!==null);)g=i.lastIndex,i===K?E[1]==="!--"?i=Hu:E[1]!==void 0?i=Iu:E[2]!==void 0?(ju.test(E[2])&&(s=RegExp("</"+E[2],"g")),i=M):E[3]!==void 0&&(i=M):i===M?E[0]===">"?(i=s??K,F=-1):E[1]===void 0?F=-2:(F=i.lastIndex-E[2].length,h=E[1],i=E[3]===void 0?M:E[3]==='"'?Uu:Ru):i===Uu||i===Ru?i=M:i===Hu||i===Iu?i=K:(i=M,s=void 0);const b=i===M&&t[a+1].startsWith("/>")?" ":"";D+=i===K?o+fe:F>=0?(r.push(h),o.slice(0,F)+Ou+o.slice(F)+x+b):o+x+(F===-2?a:b)}return[Vu(t,D+(t[e]||"<?>")+(u===2?"</svg>":"")),r]};class Z{constructor({strings:u,_$litType$:e},r){let s;this.parts=[];let D=0,i=0;const a=u.length-1,o=this.parts,[h,E]=ye(u,e);if(this.el=Z.createElement(h,r),O.currentNode=this.el.content,e===2){const F=this.el.content.firstChild;F.replaceWith(...F.childNodes)}for(;(s=O.nextNode())!==null&&o.length<a;){if(s.nodeType===1){if(s.hasAttributes())for(const F of s.getAttributeNames())if(F.endsWith(Ou)){const g=E[i++],b=s.getAttribute(F).split(x),H=/([.?@])?(.*)/.exec(g);o.push({type:1,index:D,name:H[2],strings:b,ctor:H[1]==="."?$e:H[1]==="?"?be:H[1]==="@"?_e:su}),s.removeAttribute(F)}else F.startsWith(x)&&(o.push({type:6,index:D}),s.removeAttribute(F));if(ju.test(s.tagName)){const F=s.textContent.split(x),g=F.length-1;if(g>0){s.textContent=ru?ru.emptyScript:"";for(let b=0;b<g;b++)s.append(F[b],q()),O.nextNode(),o.push({type:2,index:++D});s.append(F[g],q())}}}else if(s.nodeType===8)if(s.data===Lu)o.push({type:2,index:D});else{let F=-1;for(;(F=s.data.indexOf(x,F+1))!==-1;)o.push({type:7,index:D}),F+=x.length-1}D++}}static createElement(u,e){const r=T.createElement("template");return r.innerHTML=u,r}}function U(t,u,e=t,r){var i,a;if(u===R)return u;let s=r!==void 0?(i=e._$Co)==null?void 0:i[r]:e._$Cl;const D=J(u)?void 0:u._$litDirective$;return(s==null?void 0:s.constructor)!==D&&((a=s==null?void 0:s._$AO)==null||a.call(s,!1),D===void 0?s=void 0:(s=new D(t),s._$AT(t,e,r)),r!==void 0?(e._$Co??(e._$Co=[]))[r]=s:e._$Cl=s),s!==void 0&&(u=U(t,s._$AS(t,u.values),s,r)),u}class ge{constructor(u,e){this._$AV=[],this._$AN=void 0,this._$AD=u,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(u){const{el:{content:e},parts:r}=this._$AD,s=((u==null?void 0:u.creationScope)??T).importNode(e,!0);O.currentNode=s;let D=O.nextNode(),i=0,a=0,o=r[0];for(;o!==void 0;){if(i===o.index){let h;o.type===2?h=new X(D,D.nextSibling,this,u):o.type===1?h=new o.ctor(D,o.name,o.strings,this,u):o.type===6&&(h=new ve(D,this,u)),this._$AV.push(h),o=r[++a]}i!==(o==null?void 0:o.index)&&(D=O.nextNode(),i++)}return O.currentNode=T,s}p(u){let e=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(u,r,e),e+=r.strings.length-2):r._$AI(u[e])),e++}}class X{get _$AU(){var u;return((u=this._$AM)==null?void 0:u._$AU)??this._$Cv}constructor(u,e,r,s){this.type=2,this._$AH=p,this._$AN=void 0,this._$AA=u,this._$AB=e,this._$AM=r,this.options=s,this._$Cv=(s==null?void 0:s.isConnected)??!0}get parentNode(){let u=this._$AA.parentNode;const e=this._$AM;return e!==void 0&&(u==null?void 0:u.nodeType)===11&&(u=e.parentNode),u}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(u,e=this){u=U(this,u,e),J(u)?u===p||u==null||u===""?(this._$AH!==p&&this._$AR(),this._$AH=p):u!==this._$AH&&u!==R&&this._(u):u._$litType$!==void 0?this.$(u):u.nodeType!==void 0?this.T(u):Be(u)?this.k(u):this._(u)}S(u){return this._$AA.parentNode.insertBefore(u,this._$AB)}T(u){this._$AH!==u&&(this._$AR(),this._$AH=this.S(u))}_(u){this._$AH!==p&&J(this._$AH)?this._$AA.nextSibling.data=u:this.T(T.createTextNode(u)),this._$AH=u}$(u){var D;const{values:e,_$litType$:r}=u,s=typeof r=="number"?this._$AC(u):(r.el===void 0&&(r.el=Z.createElement(Vu(r.h,r.h[0]),this.options)),r);if(((D=this._$AH)==null?void 0:D._$AD)===s)this._$AH.p(e);else{const i=new ge(s,this),a=i.u(this.options);i.p(e),this.T(a),this._$AH=i}}_$AC(u){let e=zu.get(u.strings);return e===void 0&&zu.set(u.strings,e=new Z(u)),e}k(u){ku(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let r,s=0;for(const D of u)s===e.length?e.push(r=new X(this.S(q()),this.S(q()),this,this.options)):r=e[s],r._$AI(D),s++;s<e.length&&(this._$AR(r&&r._$AB.nextSibling,s),e.length=s)}_$AR(u=this._$AA.nextSibling,e){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,e);u&&u!==this._$AB;){const s=u.nextSibling;u.remove(),u=s}}setConnected(u){var e;this._$AM===void 0&&(this._$Cv=u,(e=this._$AP)==null||e.call(this,u))}}class su{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(u,e,r,s,D){this.type=1,this._$AH=p,this._$AN=void 0,this.element=u,this.name=e,this._$AM=s,this.options=D,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=p}_$AI(u,e=this,r,s){const D=this.strings;let i=!1;if(D===void 0)u=U(this,u,e,0),i=!J(u)||u!==this._$AH&&u!==R,i&&(this._$AH=u);else{const a=u;let o,h;for(u=D[0],o=0;o<D.length-1;o++)h=U(this,a[r+o],e,o),h===R&&(h=this._$AH[o]),i||(i=!J(h)||h!==this._$AH[o]),h===p?u=p:u!==p&&(u+=(h??"")+D[o+1]),this._$AH[o]=h}i&&!s&&this.j(u)}j(u){u===p?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,u??"")}}class $e extends su{constructor(){super(...arguments),this.type=3}j(u){this.element[this.name]=u===p?void 0:u}}class be extends su{constructor(){super(...arguments),this.type=4}j(u){this.element.toggleAttribute(this.name,!!u&&u!==p)}}class _e extends su{constructor(u,e,r,s,D){super(u,e,r,s,D),this.type=5}_$AI(u,e=this){if((u=U(this,u,e,0)??p)===R)return;const r=this._$AH,s=u===p&&r!==p||u.capture!==r.capture||u.once!==r.once||u.passive!==r.passive,D=u!==p&&(r===p||s);s&&this.element.removeEventListener(this.name,this,r),D&&this.element.addEventListener(this.name,this,u),this._$AH=u}handleEvent(u){var e;typeof this._$AH=="function"?this._$AH.call(((e=this.options)==null?void 0:e.host)??this.element,u):this._$AH.handleEvent(u)}}class ve{constructor(u,e,r){this.element=u,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(u){U(this,u)}}const lu=W.litHtmlPolyfillSupport;lu==null||lu(Z,X),(W.litHtmlVersions??(W.litHtmlVersions=[])).push("3.1.3");const we=(t,u,e)=>{const r=(e==null?void 0:e.renderBefore)??u;let s=r._$litPart$;if(s===void 0){const D=(e==null?void 0:e.renderBefore)??null;r._$litPart$=s=new X(u.insertBefore(q(),D),D,void 0,e??{})}return s._$AI(t),s};/**
13
+ */const q=globalThis,iu=q.trustedTypes,Ou=iu?iu.createPolicy("lit-html",{createHTML:t=>t}):void 0,Ru="$lit$",x=`lit$${Math.random().toFixed(9).slice(2)}$`,Lu="?"+x,me=`<${Lu}>`,M=document,J=()=>M.createComment(""),K=t=>t===null||typeof t!="object"&&typeof t!="function",ku=Array.isArray,ye=t=>ku(t)||typeof(t==null?void 0:t[Symbol.iterator])=="function",du=`[
14
+ \f\r]`,Z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Hu=/-->/g,Iu=/>/g,O=RegExp(`>|${du}(?:([^\\s"'>=/]+)(${du}*=${du}*(?:[^
15
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Uu=/'/g,ju=/"/g,Gu=/^(?:script|style|textarea|title)$/i,ge=t=>(u,...e)=>({_$litType$:t,strings:u,values:e}),zu=ge(1),U=Symbol.for("lit-noChange"),p=Symbol.for("lit-nothing"),Vu=new WeakMap,R=M.createTreeWalker(M,129);function Wu(t,u){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ou!==void 0?Ou.createHTML(u):u}const $e=(t,u)=>{const e=t.length-1,r=[];let s,i=u===2?"<svg>":"",D=Z;for(let a=0;a<e;a++){const o=t[a];let A,C,F=-1,g=0;for(;g<o.length&&(D.lastIndex=g,C=D.exec(o),C!==null);)g=D.lastIndex,D===Z?C[1]==="!--"?D=Hu:C[1]!==void 0?D=Iu:C[2]!==void 0?(Gu.test(C[2])&&(s=RegExp("</"+C[2],"g")),D=O):C[3]!==void 0&&(D=O):D===O?C[0]===">"?(D=s??Z,F=-1):C[1]===void 0?F=-2:(F=D.lastIndex-C[2].length,A=C[1],D=C[3]===void 0?O:C[3]==='"'?ju:Uu):D===ju||D===Uu?D=O:D===Hu||D===Iu?D=Z:(D=O,s=void 0);const _=D===O&&t[a+1].startsWith("/>")?" ":"";i+=D===Z?o+me:F>=0?(r.push(A),o.slice(0,F)+Ru+o.slice(F)+x+_):o+x+(F===-2?a:_)}return[Wu(t,i+(t[e]||"<?>")+(u===2?"</svg>":"")),r]};class X{constructor({strings:u,_$litType$:e},r){let s;this.parts=[];let i=0,D=0;const a=u.length-1,o=this.parts,[A,C]=$e(u,e);if(this.el=X.createElement(A,r),R.currentNode=this.el.content,e===2){const F=this.el.content.firstChild;F.replaceWith(...F.childNodes)}for(;(s=R.nextNode())!==null&&o.length<a;){if(s.nodeType===1){if(s.hasAttributes())for(const F of s.getAttributeNames())if(F.endsWith(Ru)){const g=C[D++],_=s.getAttribute(F).split(x),H=/([.?@])?(.*)/.exec(g);o.push({type:1,index:i,name:H[2],strings:_,ctor:H[1]==="."?be:H[1]==="?"?ve:H[1]==="@"?we:Du}),s.removeAttribute(F)}else F.startsWith(x)&&(o.push({type:6,index:i}),s.removeAttribute(F));if(Gu.test(s.tagName)){const F=s.textContent.split(x),g=F.length-1;if(g>0){s.textContent=iu?iu.emptyScript:"";for(let _=0;_<g;_++)s.append(F[_],J()),R.nextNode(),o.push({type:2,index:++i});s.append(F[g],J())}}}else if(s.nodeType===8)if(s.data===Lu)o.push({type:2,index:i});else{let F=-1;for(;(F=s.data.indexOf(x,F+1))!==-1;)o.push({type:7,index:i}),F+=x.length-1}i++}}static createElement(u,e){const r=M.createElement("template");return r.innerHTML=u,r}}function j(t,u,e=t,r){var D,a;if(u===U)return u;let s=r!==void 0?(D=e._$Co)==null?void 0:D[r]:e._$Cl;const i=K(u)?void 0:u._$litDirective$;return(s==null?void 0:s.constructor)!==i&&((a=s==null?void 0:s._$AO)==null||a.call(s,!1),i===void 0?s=void 0:(s=new i(t),s._$AT(t,e,r)),r!==void 0?(e._$Co??(e._$Co=[]))[r]=s:e._$Cl=s),s!==void 0&&(u=j(t,s._$AS(t,u.values),s,r)),u}class _e{constructor(u,e){this._$AV=[],this._$AN=void 0,this._$AD=u,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(u){const{el:{content:e},parts:r}=this._$AD,s=((u==null?void 0:u.creationScope)??M).importNode(e,!0);R.currentNode=s;let i=R.nextNode(),D=0,a=0,o=r[0];for(;o!==void 0;){if(D===o.index){let A;o.type===2?A=new Y(i,i.nextSibling,this,u):o.type===1?A=new o.ctor(i,o.name,o.strings,this,u):o.type===6&&(A=new Se(i,this,u)),this._$AV.push(A),o=r[++a]}D!==(o==null?void 0:o.index)&&(i=R.nextNode(),D++)}return R.currentNode=M,s}p(u){let e=0;for(const r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(u,r,e),e+=r.strings.length-2):r._$AI(u[e])),e++}}class Y{get _$AU(){var u;return((u=this._$AM)==null?void 0:u._$AU)??this._$Cv}constructor(u,e,r,s){this.type=2,this._$AH=p,this._$AN=void 0,this._$AA=u,this._$AB=e,this._$AM=r,this.options=s,this._$Cv=(s==null?void 0:s.isConnected)??!0}get parentNode(){let u=this._$AA.parentNode;const e=this._$AM;return e!==void 0&&(u==null?void 0:u.nodeType)===11&&(u=e.parentNode),u}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(u,e=this){u=j(this,u,e),K(u)?u===p||u==null||u===""?(this._$AH!==p&&this._$AR(),this._$AH=p):u!==this._$AH&&u!==U&&this._(u):u._$litType$!==void 0?this.$(u):u.nodeType!==void 0?this.T(u):ye(u)?this.k(u):this._(u)}S(u){return this._$AA.parentNode.insertBefore(u,this._$AB)}T(u){this._$AH!==u&&(this._$AR(),this._$AH=this.S(u))}_(u){this._$AH!==p&&K(this._$AH)?this._$AA.nextSibling.data=u:this.T(M.createTextNode(u)),this._$AH=u}$(u){var i;const{values:e,_$litType$:r}=u,s=typeof r=="number"?this._$AC(u):(r.el===void 0&&(r.el=X.createElement(Wu(r.h,r.h[0]),this.options)),r);if(((i=this._$AH)==null?void 0:i._$AD)===s)this._$AH.p(e);else{const D=new _e(s,this),a=D.u(this.options);D.p(e),this.T(a),this._$AH=D}}_$AC(u){let e=Vu.get(u.strings);return e===void 0&&Vu.set(u.strings,e=new X(u)),e}k(u){ku(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let r,s=0;for(const i of u)s===e.length?e.push(r=new Y(this.S(J()),this.S(J()),this,this.options)):r=e[s],r._$AI(i),s++;s<e.length&&(this._$AR(r&&r._$AB.nextSibling,s),e.length=s)}_$AR(u=this._$AA.nextSibling,e){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,e);u&&u!==this._$AB;){const s=u.nextSibling;u.remove(),u=s}}setConnected(u){var e;this._$AM===void 0&&(this._$Cv=u,(e=this._$AP)==null||e.call(this,u))}}class Du{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(u,e,r,s,i){this.type=1,this._$AH=p,this._$AN=void 0,this.element=u,this.name=e,this._$AM=s,this.options=i,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=p}_$AI(u,e=this,r,s){const i=this.strings;let D=!1;if(i===void 0)u=j(this,u,e,0),D=!K(u)||u!==this._$AH&&u!==U,D&&(this._$AH=u);else{const a=u;let o,A;for(u=i[0],o=0;o<i.length-1;o++)A=j(this,a[r+o],e,o),A===U&&(A=this._$AH[o]),D||(D=!K(A)||A!==this._$AH[o]),A===p?u=p:u!==p&&(u+=(A??"")+i[o+1]),this._$AH[o]=A}D&&!s&&this.j(u)}j(u){u===p?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,u??"")}}class be extends Du{constructor(){super(...arguments),this.type=3}j(u){this.element[this.name]=u===p?void 0:u}}class ve extends Du{constructor(){super(...arguments),this.type=4}j(u){this.element.toggleAttribute(this.name,!!u&&u!==p)}}class we extends Du{constructor(u,e,r,s,i){super(u,e,r,s,i),this.type=5}_$AI(u,e=this){if((u=j(this,u,e,0)??p)===U)return;const r=this._$AH,s=u===p&&r!==p||u.capture!==r.capture||u.once!==r.once||u.passive!==r.passive,i=u!==p&&(r===p||s);s&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,u),this._$AH=u}handleEvent(u){var e;typeof this._$AH=="function"?this._$AH.call(((e=this.options)==null?void 0:e.host)??this.element,u):this._$AH.handleEvent(u)}}class Se{constructor(u,e,r){this.element=u,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(u){j(this,u)}}const pu=q.litHtmlPolyfillSupport;pu==null||pu(X,Y),(q.litHtmlVersions??(q.litHtmlVersions=[])).push("3.1.3");const Pe=(t,u,e)=>{const r=(e==null?void 0:e.renderBefore)??u;let s=r._$litPart$;if(s===void 0){const i=(e==null?void 0:e.renderBefore)??null;r._$litPart$=s=new Y(u.insertBefore(J(),i),i,void 0,e??{})}return s._$AI(t),s};/**
16
16
  * @license
17
17
  * Copyright 2017 Google LLC
18
18
  * SPDX-License-Identifier: BSD-3-Clause
19
- */class j extends I{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var e;const u=super.createRenderRoot();return(e=this.renderOptions).renderBefore??(e.renderBefore=u.firstChild),u}update(u){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(u),this._$Do=we(e,this.renderRoot,this.renderOptions)}connectedCallback(){var u;super.connectedCallback(),(u=this._$Do)==null||u.setConnected(!0)}disconnectedCallback(){var u;super.disconnectedCallback(),(u=this._$Do)==null||u.setConnected(!1)}render(){return R}}j._$litElement$=!0,j.finalized=!0,(ie=globalThis.litElementHydrateSupport)==null||ie.call(globalThis,{LitElement:j});const du=globalThis.litElementPolyfillSupport;du==null||du({LitElement:j}),(globalThis.litElementVersions??(globalThis.litElementVersions=[])).push("4.0.5");/**
19
+ */class G extends I{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var e;const u=super.createRenderRoot();return(e=this.renderOptions).renderBefore??(e.renderBefore=u.firstChild),u}update(u){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(u),this._$Do=Pe(e,this.renderRoot,this.renderOptions)}connectedCallback(){var u;super.connectedCallback(),(u=this._$Do)==null||u.setConnected(!0)}disconnectedCallback(){var u;super.disconnectedCallback(),(u=this._$Do)==null||u.setConnected(!1)}render(){return U}}G._$litElement$=!0,G.finalized=!0,(oe=globalThis.litElementHydrateSupport)==null||oe.call(globalThis,{LitElement:G});const fu=globalThis.litElementPolyfillSupport;fu==null||fu({LitElement:G}),(globalThis.litElementVersions??(globalThis.litElementVersions=[])).push("4.0.5");/**
20
20
  * @license
21
21
  * Copyright 2017 Google LLC
22
22
  * SPDX-License-Identifier: BSD-3-Clause
23
- */const Se={attribute:!0,type:String,converter:tu,reflect:!1,hasChanged:Eu},Pe=(t=Se,u,e)=>{const{kind:r,metadata:s}=e;let D=globalThis.litPropertyMetadata.get(s);if(D===void 0&&globalThis.litPropertyMetadata.set(s,D=new Map),D.set(e.name,t),r==="accessor"){const{name:i}=e;return{set(a){const o=u.get.call(this);u.set.call(this,a),this.requestUpdate(i,o,t)},init(a){return a!==void 0&&this.P(i,void 0,t),a}}}if(r==="setter"){const{name:i}=e;return function(a){const o=this[i];u.call(this,a),this.requestUpdate(i,o,t)}}throw Error("Unsupported decorator location: "+r)};function pu(t){return(u,e)=>typeof e=="object"?Pe(t,u,e):((r,s,D)=>{const i=s.hasOwnProperty(D);return s.constructor.createProperty(D,i?{...r,wrapped:!0}:r),i?Object.getOwnPropertyDescriptor(s,D):void 0})(t,u,e)}const xe=(t,u,e)=>{if(!u)return;const r=Array.isArray(u)?u:u.match(/([^[.\]])+/g),s=r==null?void 0:r.reduce((D,i)=>D&&D[i],t);return s===void 0?e:s};function Ne(t){if(!t)return!1;const u=t.constructor&&t.constructor.toString().substring(0,5)==="class";if(t.prototype===void 0)return u;const e=t.prototype.constructor&&t.prototype.constructor.toString&&t.prototype.constructor.toString().substring(0,5)==="class";return u||e}const Te=(()=>{const t="[object Number]",e=Object.prototype.toString;function r(D){return!!D&&typeof D=="object"}return function(i){return typeof i=="number"||r(i)&&e.call(i)==t}})(),Me=(t,u,e)=>{const r=Array.isArray(u)?u:u.match(/([^[.\]])+/g);r==null||r.reduce((s,D,i)=>(s[D]===void 0&&(s[D]={}),i===r.length-1&&(s[D]=e),s[D]),t)},Wu="data-three-uuid",fu=(t,u,e)=>{var D,i;const r=xe(t,u);if(Te(e)&&(r!=null&&r.setScalar))r.setScalar(+e);else if(r!=null&&r.set)if(typeof e=="string"){const a=e.split(","),o=a.every(h=>!h.match(/^[^\d,]+$/));if((D=e.toLowerCase().trim().match(/^#[\dabcdef]{3,6}$/))!=null&&D.length)if(e.length===4){const h=[e[1],e[1],e[2],e[2],e[3],e[3]].join("");r.set(+`0x${h}`)}else r.set(+`0x${e.slice(1)}`);else a!=null&&a.length&&o?r.set(...a.map(h=>+h)):r.set(e)}else{const a=Array.isArray(e)?e:[e];r.set(...a)}else Me(t,u,e);const s=t;(i=s.type)!=null&&i.toLowerCase().endsWith("material")&&(s.needsUpdate=!0)},Bu={$scene:t=>{const u=t.closest("three-lunchbox");return u==null?void 0:u.three.scene},$camera:t=>{const u=t.closest("three-lunchbox");return u==null?void 0:u.three.camera},$renderer:t=>{const u=t.closest("three-lunchbox");return u==null?void 0:u.three.renderer},$domElement:t=>{const u=t.closest("three-lunchbox");return u==null?void 0:u.three.renderer.domElement}},mu=(t,u)=>{var r;return typeof t!="string"?t:t===""?!0:((r=Bu[t])==null?void 0:r.call(Bu,u))??t};var Oe=Object.defineProperty,Le=(t,u,e,r)=>{for(var s=void 0,D=t.length-1,i;D>=0;D--)(i=t[D])&&(s=i(u,e,s)||s);return s&&Oe(u,e,s),s};const qu="raycast",Ju=[qu,"args","data"],Ku=t=>t.split("-"),Zu=t=>{const u=typeof t=="string"?_[t]:t;if(!Ne(u))return null;class e extends j{constructor(){super(...arguments),this.args=[],this.instance=null,this.loaded=null,this.dispose=[],this.mutationObserver=null}connectedCallback(){var i,a;super.connectedCallback(),this.mutationObserver=new MutationObserver(o=>{o.forEach(h=>{if(!h.attributeName)return;const E=this.attributes.getNamedItem(h.attributeName);E&&this.updateProperty(E)})}),this.mutationObserver.observe(this,{attributes:!0}),this.instance=new u(...this.args.map(o=>mu(o,this))),this.getAttributeNames().forEach(o=>{const h=this.attributes.getNamedItem(o);h&&this.updateProperty(h)}),Array.from(this.attributes).forEach(this.updateProperty.bind(this));const s=this.instance;s.uuid&&this.setAttribute(Wu,s.uuid),this.dispatchEvent(new CustomEvent("instancecreated",{detail:{instance:this.instance}}));const D=this.parentElement;if(D.instance){const o=this.instance,h=this.instance,E=D.instance,F=this.instance,g=D.instance,b=this.tagName.toString().toLowerCase().endsWith("-loader");if((i=o.type)!=null&&i.toLowerCase().includes("geometry")&&E.geometry)E.geometry=o;else if((a=h.type)!=null&&a.toLowerCase().includes("material")&&E.material)E.material=h;else if(b){const au=this.getAttribute("src");if(!au)throw new Error("Loader requires a source.");F.load(au,uu=>{this.loaded=uu;const ne=this.getAttribute("attach");ne&&this.executeAttach(ne,uu),this.dispatchEvent(new CustomEvent("loaded",{detail:{loaded:uu}}))},void 0,uu=>{throw new Error(`error loading: ${au}`+uu)})}else if(g.add)try{g.add(s)}catch{throw new Error(`Error adding ${this.tagName} to ${g}`)}const H=this.getAttribute("attach");!b&&H&&this.executeAttach(H,this.instance)}}updateProperty(s){const{name:D,value:i}=s;let a=D;Object.keys(this.instance??{}).forEach(E=>{E.toLowerCase()===a&&(a=E)});const o=Ku(a);if(Ju.includes(a)||Ju.includes(o[0]))return;let h=mu(i,this);try{h=JSON.parse(i===""?"true":i)}catch{}this.instance&&fu(this.instance,o,h)}executeAttach(s,D){const i=this.parentElement;i.instance&&fu(i.instance,Ku(s),D)}disconnectedCallback(){super.disconnectedCallback(),[this.instance,this.loaded].forEach(D=>{var o,h;if(!D)return;const i=D,a=D;(o=i.dispose)==null||o.call(i),(h=a.removeFromParent)==null||h.call(a)})}render(){return Gu`<slot></slot>`}}return Le([pu({type:Array})],e.prototype,"args"),e};function ke(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Du={};Du.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,Du.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,Du.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;const yu=Du;var He={isSpaceSeparator(t){return typeof t=="string"&&yu.Space_Separator.test(t)},isIdStartChar(t){return typeof t=="string"&&(t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="$"||t==="_"||yu.ID_Start.test(t))},isIdContinueChar(t){return typeof t=="string"&&(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||t==="$"||t==="_"||t==="‌"||t==="‍"||yu.ID_Continue.test(t))},isDigit(t){return typeof t=="string"&&/[0-9]/.test(t)},isHexDigit(t){return typeof t=="string"&&/[0-9A-Fa-f]/.test(t)}};const f=He;let gu,m,v,iu,N,$,B,$u,Y;var Ie=function(u,e){gu=String(u),m="start",v=[],iu=0,N=1,$=0,B=void 0,$u=void 0,Y=void 0;do B=Re(),Ge[m]();while(B.type!=="eof");return typeof e=="function"?bu({"":Y},"",e):Y};function bu(t,u,e){const r=t[u];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let s=0;s<r.length;s++){const D=String(s),i=bu(r,D,e);i===void 0?delete r[D]:Object.defineProperty(r,D,{value:i,writable:!0,enumerable:!0,configurable:!0})}else for(const s in r){const D=bu(r,s,e);D===void 0?delete r[s]:Object.defineProperty(r,s,{value:D,writable:!0,enumerable:!0,configurable:!0})}return e.call(t,u,r)}let A,c,Q,w,C;function Re(){for(A="default",c="",Q=!1,w=1;;){C=S();const t=Xu[A]();if(t)return t}}function S(){if(gu[iu])return String.fromCodePoint(gu.codePointAt(iu))}function n(){const t=S();return t===`
24
- `?(N++,$=0):t?$+=t.length:$++,t&&(iu+=t.length),t}const Xu={default(){switch(C){case" ":case"\v":case"\f":case" ":case" ":case"\uFEFF":case`
25
- `:case"\r":case"\u2028":case"\u2029":n();return;case"/":n(),A="comment";return;case void 0:return n(),l("eof")}if(f.isSpaceSeparator(C)){n();return}return Xu[m]()},comment(){switch(C){case"*":n(),A="multiLineComment";return;case"/":n(),A="singleLineComment";return}throw d(n())},multiLineComment(){switch(C){case"*":n(),A="multiLineCommentAsterisk";return;case void 0:throw d(n())}n()},multiLineCommentAsterisk(){switch(C){case"*":n();return;case"/":n(),A="default";return;case void 0:throw d(n())}n(),A="multiLineComment"},singleLineComment(){switch(C){case`
26
- `:case"\r":case"\u2028":case"\u2029":n(),A="default";return;case void 0:return n(),l("eof")}n()},value(){switch(C){case"{":case"[":return l("punctuator",n());case"n":return n(),L("ull"),l("null",null);case"t":return n(),L("rue"),l("boolean",!0);case"f":return n(),L("alse"),l("boolean",!1);case"-":case"+":n()==="-"&&(w=-1),A="sign";return;case".":c=n(),A="decimalPointLeading";return;case"0":c=n(),A="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":c=n(),A="decimalInteger";return;case"I":return n(),L("nfinity"),l("numeric",1/0);case"N":return n(),L("aN"),l("numeric",NaN);case'"':case"'":Q=n()==='"',c="",A="string";return}throw d(n())},identifierNameStartEscape(){if(C!=="u")throw d(n());n();const t=_u();switch(t){case"$":case"_":break;default:if(!f.isIdStartChar(t))throw Yu();break}c+=t,A="identifierName"},identifierName(){switch(C){case"$":case"_":case"‌":case"‍":c+=n();return;case"\\":n(),A="identifierNameEscape";return}if(f.isIdContinueChar(C)){c+=n();return}return l("identifier",c)},identifierNameEscape(){if(C!=="u")throw d(n());n();const t=_u();switch(t){case"$":case"_":case"‌":case"‍":break;default:if(!f.isIdContinueChar(t))throw Yu();break}c+=t,A="identifierName"},sign(){switch(C){case".":c=n(),A="decimalPointLeading";return;case"0":c=n(),A="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":c=n(),A="decimalInteger";return;case"I":return n(),L("nfinity"),l("numeric",w*(1/0));case"N":return n(),L("aN"),l("numeric",NaN)}throw d(n())},zero(){switch(C){case".":c+=n(),A="decimalPoint";return;case"e":case"E":c+=n(),A="decimalExponent";return;case"x":case"X":c+=n(),A="hexadecimal";return}return l("numeric",w*0)},decimalInteger(){switch(C){case".":c+=n(),A="decimalPoint";return;case"e":case"E":c+=n(),A="decimalExponent";return}if(f.isDigit(C)){c+=n();return}return l("numeric",w*Number(c))},decimalPointLeading(){if(f.isDigit(C)){c+=n(),A="decimalFraction";return}throw d(n())},decimalPoint(){switch(C){case"e":case"E":c+=n(),A="decimalExponent";return}if(f.isDigit(C)){c+=n(),A="decimalFraction";return}return l("numeric",w*Number(c))},decimalFraction(){switch(C){case"e":case"E":c+=n(),A="decimalExponent";return}if(f.isDigit(C)){c+=n();return}return l("numeric",w*Number(c))},decimalExponent(){switch(C){case"+":case"-":c+=n(),A="decimalExponentSign";return}if(f.isDigit(C)){c+=n(),A="decimalExponentInteger";return}throw d(n())},decimalExponentSign(){if(f.isDigit(C)){c+=n(),A="decimalExponentInteger";return}throw d(n())},decimalExponentInteger(){if(f.isDigit(C)){c+=n();return}return l("numeric",w*Number(c))},hexadecimal(){if(f.isHexDigit(C)){c+=n(),A="hexadecimalInteger";return}throw d(n())},hexadecimalInteger(){if(f.isHexDigit(C)){c+=n();return}return l("numeric",w*Number(c))},string(){switch(C){case"\\":n(),c+=Ue();return;case'"':if(Q)return n(),l("string",c);c+=n();return;case"'":if(!Q)return n(),l("string",c);c+=n();return;case`
27
- `:case"\r":throw d(n());case"\u2028":case"\u2029":ze(C);break;case void 0:throw d(n())}c+=n()},start(){switch(C){case"{":case"[":return l("punctuator",n())}A="value"},beforePropertyName(){switch(C){case"$":case"_":c=n(),A="identifierName";return;case"\\":n(),A="identifierNameStartEscape";return;case"}":return l("punctuator",n());case'"':case"'":Q=n()==='"',A="string";return}if(f.isIdStartChar(C)){c+=n(),A="identifierName";return}throw d(n())},afterPropertyName(){if(C===":")return l("punctuator",n());throw d(n())},beforePropertyValue(){A="value"},afterPropertyValue(){switch(C){case",":case"}":return l("punctuator",n())}throw d(n())},beforeArrayValue(){if(C==="]")return l("punctuator",n());A="value"},afterArrayValue(){switch(C){case",":case"]":return l("punctuator",n())}throw d(n())},end(){throw d(n())}};function l(t,u){return{type:t,value:u,line:N,column:$}}function L(t){for(const u of t){if(S()!==u)throw d(n());n()}}function Ue(){switch(S()){case"b":return n(),"\b";case"f":return n(),"\f";case"n":return n(),`
28
- `;case"r":return n(),"\r";case"t":return n()," ";case"v":return n(),"\v";case"0":if(n(),f.isDigit(S()))throw d(n());return"\0";case"x":return n(),je();case"u":return n(),_u();case`
23
+ */const Ne={attribute:!0,type:String,converter:su,reflect:!1,hasChanged:lu},xe=(t=Ne,u,e)=>{const{kind:r,metadata:s}=e;let i=globalThis.litPropertyMetadata.get(s);if(i===void 0&&globalThis.litPropertyMetadata.set(s,i=new Map),i.set(e.name,t),r==="accessor"){const{name:D}=e;return{set(a){const o=u.get.call(this);u.set.call(this,a),this.requestUpdate(D,o,t)},init(a){return a!==void 0&&this.P(D,void 0,t),a}}}if(r==="setter"){const{name:D}=e;return function(a){const o=this[D];u.call(this,a),this.requestUpdate(D,o,t)}}throw Error("Unsupported decorator location: "+r)};function z(t){return(u,e)=>typeof e=="object"?xe(t,u,e):((r,s,i)=>{const D=s.hasOwnProperty(i);return s.constructor.createProperty(i,D?{...r,wrapped:!0}:r),D?Object.getOwnPropertyDescriptor(s,i):void 0})(t,u,e)}const Te=(t,u,e)=>{if(!u)return;const r=Array.isArray(u)?u:u.match(/([^[.\]])+/g),s=r==null?void 0:r.reduce((i,D)=>i&&i[D],t);return s===void 0?e:s};function Me(t){if(!t)return!1;const u=t.constructor&&t.constructor.toString().substring(0,5)==="class";if(t.prototype===void 0)return u;const e=t.prototype.constructor&&t.prototype.constructor.toString&&t.prototype.constructor.toString().substring(0,5)==="class";return u||e}const Oe=(()=>{const t="[object Number]",e=Object.prototype.toString;function r(i){return!!i&&typeof i=="object"}return function(D){return typeof D=="number"||r(D)&&e.call(D)==t}})(),Re=(t,u,e)=>{const r=Array.isArray(u)?u:u.match(/([^[.\]])+/g);r==null||r.reduce((s,i,D)=>(s[i]===void 0&&(s[i]={}),D===r.length-1&&(s[i]=e),s[i]),t)},qu="data-three-uuid",Bu=(t,u,e)=>{var i,D;const r=Te(t,u);if(Oe(e)&&(r!=null&&r.setScalar))r.setScalar(+e);else if(r!=null&&r.set)if(typeof e=="string"){const a=e.split(","),o=a.every(A=>!A.match(/^[^\d,]+$/));if((i=e.toLowerCase().trim().match(/^#[\dabcdef]{3,6}$/))!=null&&i.length)if(e.length===4){const A=[e[1],e[1],e[2],e[2],e[3],e[3]].join("");r.set(+`0x${A}`)}else r.set(+`0x${e.slice(1)}`);else a!=null&&a.length&&o?r.set(...a.map(A=>+A)):r.set(e)}else{const a=Array.isArray(e)?e:[e];r.set(...a)}else Re(t,u,e);const s=t;(D=s.type)!=null&&D.toLowerCase().endsWith("material")&&(s.needsUpdate=!0)},mu={$scene:t=>{const u=t.closest("three-lunchbox");return u==null?void 0:u.three.scene},$camera:t=>{const u=t.closest("three-lunchbox");return u==null?void 0:u.three.camera},$renderer:t=>{const u=t.closest("three-lunchbox");return u==null?void 0:u.three.renderer},$domElement:t=>{const u=t.closest("three-lunchbox");return u==null?void 0:u.three.renderer.domElement}},yu=(t,u)=>{var r;return typeof t!="string"?t:t===""?!0:((r=mu[t])==null?void 0:r.call(mu,u))??t};var Le=Object.defineProperty,ke=(t,u,e,r)=>{for(var s=void 0,i=t.length-1,D;i>=0;i--)(D=t[i])&&(s=D(u,e,s)||s);return s&&Le(u,e,s),s};const Ju="raycast",Ku=[Ju,"args","data"],Zu=t=>t.split("-"),Xu=t=>{const u=typeof t=="string"?b[t]:t;if(!Me(u))return null;class e extends G{constructor(){super(...arguments),this.args=[],this.instance=null,this.loaded=null,this.dispose=[],this.mutationObserver=null}connectedCallback(){var D,a;super.connectedCallback(),this.mutationObserver=new MutationObserver(o=>{o.forEach(A=>{if(!A.attributeName)return;const C=this.attributes.getNamedItem(A.attributeName);C&&this.updateProperty(C)})}),this.mutationObserver.observe(this,{attributes:!0}),this.instance=new u(...this.args.map(o=>yu(o,this))),this.getAttributeNames().forEach(o=>{const A=this.attributes.getNamedItem(o);A&&this.updateProperty(A)}),Array.from(this.attributes).forEach(this.updateProperty.bind(this));const s=this.instance;s.uuid&&this.setAttribute(qu,s.uuid),this.dispatchEvent(new CustomEvent("instancecreated",{detail:{instance:this.instance}}));const i=this.parentElement;if(i.instance){const o=this.instance,A=this.instance,C=i.instance,F=this.instance,g=i.instance,_=this.tagName.toString().toLowerCase().endsWith("-loader");if((D=o.type)!=null&&D.toLowerCase().includes("geometry")&&C.geometry)C.geometry=o;else if((a=A.type)!=null&&a.toLowerCase().includes("material")&&C.material)C.material=A;else if(_){const hu=this.getAttribute("src");if(!hu)throw new Error("Loader requires a source.");F.load(hu,tu=>{this.loaded=tu;const ae=this.getAttribute("attach");ae&&this.executeAttach(ae,tu),this.dispatchEvent(new CustomEvent("loaded",{detail:{loaded:tu}}))},void 0,tu=>{throw new Error(`error loading: ${hu}`+tu)})}else if(g.add)try{g.add(s)}catch{throw new Error(`Error adding ${this.tagName} to ${g}`)}const H=this.getAttribute("attach");!_&&H&&this.executeAttach(H,this.instance)}}updateProperty(s){const{name:i,value:D}=s;let a=i;Object.keys(this.instance??{}).forEach(C=>{C.toLowerCase()===a&&(a=C)});const o=Zu(a);if(Ku.includes(a)||Ku.includes(o[0]))return;let A=yu(D,this);try{A=JSON.parse(D===""?"true":D)}catch{}this.instance&&Bu(this.instance,o,A)}executeAttach(s,i){const D=this.parentElement;D.instance&&Bu(D.instance,Zu(s),i)}disconnectedCallback(){super.disconnectedCallback(),[this.instance,this.loaded].forEach(i=>{var o,A;if(!i)return;const D=i,a=i;(o=D.dispose)==null||o.call(D),(A=a.removeFromParent)==null||A.call(a)})}render(){return zu`<slot></slot>`}}return ke([z({type:Array})],e.prototype,"args"),e};function He(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var nu={};nu.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,nu.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,nu.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;const gu=nu;var Ie={isSpaceSeparator(t){return typeof t=="string"&&gu.Space_Separator.test(t)},isIdStartChar(t){return typeof t=="string"&&(t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="$"||t==="_"||gu.ID_Start.test(t))},isIdContinueChar(t){return typeof t=="string"&&(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||t==="$"||t==="_"||t==="‌"||t==="‍"||gu.ID_Continue.test(t))},isDigit(t){return typeof t=="string"&&/[0-9]/.test(t)},isHexDigit(t){return typeof t=="string"&&/[0-9A-Fa-f]/.test(t)}};const f=Ie;let $u,y,v,ou,T,$,B,_u,Q;var Ue=function(u,e){$u=String(u),y="start",v=[],ou=0,T=1,$=0,B=void 0,_u=void 0,Q=void 0;do B=je(),Ve[y]();while(B.type!=="eof");return typeof e=="function"?bu({"":Q},"",e):Q};function bu(t,u,e){const r=t[u];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let s=0;s<r.length;s++){const i=String(s),D=bu(r,i,e);D===void 0?delete r[i]:Object.defineProperty(r,i,{value:D,writable:!0,enumerable:!0,configurable:!0})}else for(const s in r){const i=bu(r,s,e);i===void 0?delete r[s]:Object.defineProperty(r,s,{value:i,writable:!0,enumerable:!0,configurable:!0})}return e.call(t,u,r)}let h,c,uu,w,E;function je(){for(h="default",c="",uu=!1,w=1;;){E=S();const t=Yu[h]();if(t)return t}}function S(){if($u[ou])return String.fromCodePoint($u.codePointAt(ou))}function n(){const t=S();return t===`
24
+ `?(T++,$=0):t?$+=t.length:$++,t&&(ou+=t.length),t}const Yu={default(){switch(E){case" ":case"\v":case"\f":case" ":case" ":case"\uFEFF":case`
25
+ `:case"\r":case"\u2028":case"\u2029":n();return;case"/":n(),h="comment";return;case void 0:return n(),l("eof")}if(f.isSpaceSeparator(E)){n();return}return Yu[y]()},comment(){switch(E){case"*":n(),h="multiLineComment";return;case"/":n(),h="singleLineComment";return}throw d(n())},multiLineComment(){switch(E){case"*":n(),h="multiLineCommentAsterisk";return;case void 0:throw d(n())}n()},multiLineCommentAsterisk(){switch(E){case"*":n();return;case"/":n(),h="default";return;case void 0:throw d(n())}n(),h="multiLineComment"},singleLineComment(){switch(E){case`
26
+ `:case"\r":case"\u2028":case"\u2029":n(),h="default";return;case void 0:return n(),l("eof")}n()},value(){switch(E){case"{":case"[":return l("punctuator",n());case"n":return n(),L("ull"),l("null",null);case"t":return n(),L("rue"),l("boolean",!0);case"f":return n(),L("alse"),l("boolean",!1);case"-":case"+":n()==="-"&&(w=-1),h="sign";return;case".":c=n(),h="decimalPointLeading";return;case"0":c=n(),h="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":c=n(),h="decimalInteger";return;case"I":return n(),L("nfinity"),l("numeric",1/0);case"N":return n(),L("aN"),l("numeric",NaN);case'"':case"'":uu=n()==='"',c="",h="string";return}throw d(n())},identifierNameStartEscape(){if(E!=="u")throw d(n());n();const t=vu();switch(t){case"$":case"_":break;default:if(!f.isIdStartChar(t))throw Qu();break}c+=t,h="identifierName"},identifierName(){switch(E){case"$":case"_":case"‌":case"‍":c+=n();return;case"\\":n(),h="identifierNameEscape";return}if(f.isIdContinueChar(E)){c+=n();return}return l("identifier",c)},identifierNameEscape(){if(E!=="u")throw d(n());n();const t=vu();switch(t){case"$":case"_":case"‌":case"‍":break;default:if(!f.isIdContinueChar(t))throw Qu();break}c+=t,h="identifierName"},sign(){switch(E){case".":c=n(),h="decimalPointLeading";return;case"0":c=n(),h="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":c=n(),h="decimalInteger";return;case"I":return n(),L("nfinity"),l("numeric",w*(1/0));case"N":return n(),L("aN"),l("numeric",NaN)}throw d(n())},zero(){switch(E){case".":c+=n(),h="decimalPoint";return;case"e":case"E":c+=n(),h="decimalExponent";return;case"x":case"X":c+=n(),h="hexadecimal";return}return l("numeric",w*0)},decimalInteger(){switch(E){case".":c+=n(),h="decimalPoint";return;case"e":case"E":c+=n(),h="decimalExponent";return}if(f.isDigit(E)){c+=n();return}return l("numeric",w*Number(c))},decimalPointLeading(){if(f.isDigit(E)){c+=n(),h="decimalFraction";return}throw d(n())},decimalPoint(){switch(E){case"e":case"E":c+=n(),h="decimalExponent";return}if(f.isDigit(E)){c+=n(),h="decimalFraction";return}return l("numeric",w*Number(c))},decimalFraction(){switch(E){case"e":case"E":c+=n(),h="decimalExponent";return}if(f.isDigit(E)){c+=n();return}return l("numeric",w*Number(c))},decimalExponent(){switch(E){case"+":case"-":c+=n(),h="decimalExponentSign";return}if(f.isDigit(E)){c+=n(),h="decimalExponentInteger";return}throw d(n())},decimalExponentSign(){if(f.isDigit(E)){c+=n(),h="decimalExponentInteger";return}throw d(n())},decimalExponentInteger(){if(f.isDigit(E)){c+=n();return}return l("numeric",w*Number(c))},hexadecimal(){if(f.isHexDigit(E)){c+=n(),h="hexadecimalInteger";return}throw d(n())},hexadecimalInteger(){if(f.isHexDigit(E)){c+=n();return}return l("numeric",w*Number(c))},string(){switch(E){case"\\":n(),c+=Ge();return;case'"':if(uu)return n(),l("string",c);c+=n();return;case"'":if(!uu)return n(),l("string",c);c+=n();return;case`
27
+ `:case"\r":throw d(n());case"\u2028":case"\u2029":We(E);break;case void 0:throw d(n())}c+=n()},start(){switch(E){case"{":case"[":return l("punctuator",n())}h="value"},beforePropertyName(){switch(E){case"$":case"_":c=n(),h="identifierName";return;case"\\":n(),h="identifierNameStartEscape";return;case"}":return l("punctuator",n());case'"':case"'":uu=n()==='"',h="string";return}if(f.isIdStartChar(E)){c+=n(),h="identifierName";return}throw d(n())},afterPropertyName(){if(E===":")return l("punctuator",n());throw d(n())},beforePropertyValue(){h="value"},afterPropertyValue(){switch(E){case",":case"}":return l("punctuator",n())}throw d(n())},beforeArrayValue(){if(E==="]")return l("punctuator",n());h="value"},afterArrayValue(){switch(E){case",":case"]":return l("punctuator",n())}throw d(n())},end(){throw d(n())}};function l(t,u){return{type:t,value:u,line:T,column:$}}function L(t){for(const u of t){if(S()!==u)throw d(n());n()}}function Ge(){switch(S()){case"b":return n(),"\b";case"f":return n(),"\f";case"n":return n(),`
28
+ `;case"r":return n(),"\r";case"t":return n()," ";case"v":return n(),"\v";case"0":if(n(),f.isDigit(S()))throw d(n());return"\0";case"x":return n(),ze();case"u":return n(),vu();case`
29
29
  `:case"\u2028":case"\u2029":return n(),"";case"\r":return n(),S()===`
30
- `&&n(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw d(n());case void 0:throw d(n())}return n()}function je(){let t="",u=S();if(!f.isHexDigit(u)||(t+=n(),u=S(),!f.isHexDigit(u)))throw d(n());return t+=n(),String.fromCodePoint(parseInt(t,16))}function _u(){let t="",u=4;for(;u-- >0;){const e=S();if(!f.isHexDigit(e))throw d(n());t+=n()}return String.fromCodePoint(parseInt(t,16))}const Ge={start(){if(B.type==="eof")throw k();vu()},beforePropertyName(){switch(B.type){case"identifier":case"string":$u=B.value,m="afterPropertyName";return;case"punctuator":nu();return;case"eof":throw k()}},afterPropertyName(){if(B.type==="eof")throw k();m="beforePropertyValue"},beforePropertyValue(){if(B.type==="eof")throw k();vu()},beforeArrayValue(){if(B.type==="eof")throw k();if(B.type==="punctuator"&&B.value==="]"){nu();return}vu()},afterPropertyValue(){if(B.type==="eof")throw k();switch(B.value){case",":m="beforePropertyName";return;case"}":nu()}},afterArrayValue(){if(B.type==="eof")throw k();switch(B.value){case",":m="beforeArrayValue";return;case"]":nu()}},end(){}};function vu(){let t;switch(B.type){case"punctuator":switch(B.value){case"{":t={};break;case"[":t=[];break}break;case"null":case"boolean":case"numeric":case"string":t=B.value;break}if(Y===void 0)Y=t;else{const u=v[v.length-1];Array.isArray(u)?u.push(t):Object.defineProperty(u,$u,{value:t,writable:!0,enumerable:!0,configurable:!0})}if(t!==null&&typeof t=="object")v.push(t),Array.isArray(t)?m="beforeArrayValue":m="beforePropertyName";else{const u=v[v.length-1];u==null?m="end":Array.isArray(u)?m="afterArrayValue":m="afterPropertyValue"}}function nu(){v.pop();const t=v[v.length-1];t==null?m="end":Array.isArray(t)?m="afterArrayValue":m="afterPropertyValue"}function d(t){return ou(t===void 0?`JSON5: invalid end of input at ${N}:${$}`:`JSON5: invalid character '${Qu(t)}' at ${N}:${$}`)}function k(){return ou(`JSON5: invalid end of input at ${N}:${$}`)}function Yu(){return $-=5,ou(`JSON5: invalid identifier character at ${N}:${$}`)}function ze(t){console.warn(`JSON5: '${Qu(t)}' in strings is not valid ECMAScript; consider escaping`)}function Qu(t){const u={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(u[t])return u[t];if(t<" "){const e=t.charCodeAt(0).toString(16);return"\\x"+("00"+e).substring(e.length)}return t}function ou(t){const u=new SyntaxError(t);return u.lineNumber=N,u.columnNumber=$,u}const Ve=ke(Ie);var We=Object.defineProperty,ue=(t,u,e,r)=>{for(var s=void 0,D=t.length-1,i;D>=0;D--)(i=t[D])&&(s=i(u,e,s)||s);return s&&We(u,e,s),s};const qe="orthographic",ee=1/0,wu=class wu extends j{constructor(){super(),this.scratchV2=new _.Vector2,this.three={scene:new _.Scene,camera:null,renderer:new _.WebGLRenderer({antialias:!0,alpha:!0})},this.background=null,this.dpr=ee,this.raycaster=new _.Raycaster,this.raycastPool=[],this.frame=1/0,this.resizeObserver=new ResizeObserver(u=>{u.forEach(({target:e,contentRect:r})=>{if(e===this&&(this.three.renderer.setSize(r.width*this.dpr,r.height*this.dpr),this.three.camera)){const s=r.width/r.height;if(this.three.camera.type.toLowerCase()==="perspectivecamera")this.three.camera.aspect=s,this.three.camera.updateProjectionMatrix();else if(this.three.camera.type.toLowerCase()==="orthographiccamera"){const D=r.height/r.width,i=10;this.three.camera.top=D*i,this.three.camera.bottom=-D*i,this.three.camera.right=i,this.three.camera.left=-i,this.three.camera.updateProjectionMatrix()}this.renderThree()}})})}connectedCallback(){super.connectedCallback(),this.dpr===ee&&(this.dpr=window.devicePixelRatio),this.getAttribute(qe)!==null?this.three.camera=new _.OrthographicCamera:this.three.camera=new _.PerspectiveCamera(75),["scene","camera","renderer"].forEach(u=>{const e=Ve(this.getAttribute(u)??"{}");Object.entries(e).forEach(([r,s])=>{this.three[u]&&fu(this.three[u],r.split("-"),mu(s,this))})}),this.resizeObserver.observe(this),this.background!==null&&(this.three.scene.background=new _.Color(this.background)),this.three.renderer.domElement.addEventListener("pointermove",this.onPointerMove.bind(this)),this.three.renderer.domElement.addEventListener("mousemove",this.onPointerMove.bind(this)),this.three.renderer.domElement.addEventListener("click",this.onClick.bind(this)),this.updateLoop()}disconnectedCallback(){this.three.renderer.domElement.removeEventListener("pointermove",this.onPointerMove.bind(this)),this.three.renderer.domElement.removeEventListener("mousemove",this.onPointerMove.bind(this)),this.three.renderer.domElement.removeEventListener("click",this.onClick.bind(this)),this.three.renderer.dispose(),this.resizeObserver.unobserve(this),cancelAnimationFrame(this.frame)}handleDefaultSlotChange(u){u.target.assignedElements().forEach(e=>{const r=e;if(r.instance instanceof _.Object3D){let s=!1;if(this.three.scene.traverse(D=>{s||D.uuid===r.instance.uuid&&(s=!0)}),s)return;this.three.scene.add(r.instance),e.getAttributeNames().includes(qu)&&this.raycastPool.push(r.instance)}}),this.renderThree()}runRaycast(u){if(!this.raycastPool.length||!this.three.camera)return[];const e=this.scratchV2.clone().set(u.clientX/(this.three.renderer.domElement.width/this.dpr)*2-1,-(u.clientY/(this.three.renderer.domElement.height/this.dpr))*2+1);return this.raycaster.setFromCamera(e,this.three.camera),this.raycaster.intersectObjects(this.raycastPool).map(D=>({intersect:D,element:this.querySelector(`[${Wu}="${D.object.uuid}"]`)}))}onPointerMove(u){this.runRaycast.bind(this)(u).forEach(r=>{var s,D,i,a;u.type==="pointermove"?((s=r.element)==null||s.dispatchEvent(new PointerEvent("pointermove")),(D=r.element)==null||D.dispatchEvent(new CustomEvent(te,{detail:r}))):u.type==="mousemove"&&((i=r.element)==null||i.dispatchEvent(new MouseEvent("mousemove")),(a=r.element)==null||a.dispatchEvent(new CustomEvent(re,{detail:r})))})}onClick(u){let e=[];if(u instanceof TouchEvent){const r=u.touches[0];e=this.runRaycast.bind(this)(r),e.forEach(s=>{var D;(D=s.element)==null||D.dispatchEvent(new TouchEvent("touchstart"))})}else e=this.runRaycast.bind(this)(u),e.forEach(r=>{var s;(s=r.element)==null||s.dispatchEvent(new MouseEvent("click"))});e.forEach(r=>{var s;(s=r.element)==null||s.dispatchEvent(new CustomEvent(se,{detail:r}))})}updateLoop(){this.renderThree(),this.frame=requestAnimationFrame(this.updateLoop.bind(this))}renderThree(){this.three.camera&&this.three.renderer.render(this.three.scene,this.three.camera)}render(){return Gu`
30
+ `&&n(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw d(n());case void 0:throw d(n())}return n()}function ze(){let t="",u=S();if(!f.isHexDigit(u)||(t+=n(),u=S(),!f.isHexDigit(u)))throw d(n());return t+=n(),String.fromCodePoint(parseInt(t,16))}function vu(){let t="",u=4;for(;u-- >0;){const e=S();if(!f.isHexDigit(e))throw d(n());t+=n()}return String.fromCodePoint(parseInt(t,16))}const Ve={start(){if(B.type==="eof")throw k();wu()},beforePropertyName(){switch(B.type){case"identifier":case"string":_u=B.value,y="afterPropertyName";return;case"punctuator":au();return;case"eof":throw k()}},afterPropertyName(){if(B.type==="eof")throw k();y="beforePropertyValue"},beforePropertyValue(){if(B.type==="eof")throw k();wu()},beforeArrayValue(){if(B.type==="eof")throw k();if(B.type==="punctuator"&&B.value==="]"){au();return}wu()},afterPropertyValue(){if(B.type==="eof")throw k();switch(B.value){case",":y="beforePropertyName";return;case"}":au()}},afterArrayValue(){if(B.type==="eof")throw k();switch(B.value){case",":y="beforeArrayValue";return;case"]":au()}},end(){}};function wu(){let t;switch(B.type){case"punctuator":switch(B.value){case"{":t={};break;case"[":t=[];break}break;case"null":case"boolean":case"numeric":case"string":t=B.value;break}if(Q===void 0)Q=t;else{const u=v[v.length-1];Array.isArray(u)?u.push(t):Object.defineProperty(u,_u,{value:t,writable:!0,enumerable:!0,configurable:!0})}if(t!==null&&typeof t=="object")v.push(t),Array.isArray(t)?y="beforeArrayValue":y="beforePropertyName";else{const u=v[v.length-1];u==null?y="end":Array.isArray(u)?y="afterArrayValue":y="afterPropertyValue"}}function au(){v.pop();const t=v[v.length-1];t==null?y="end":Array.isArray(t)?y="afterArrayValue":y="afterPropertyValue"}function d(t){return cu(t===void 0?`JSON5: invalid end of input at ${T}:${$}`:`JSON5: invalid character '${ue(t)}' at ${T}:${$}`)}function k(){return cu(`JSON5: invalid end of input at ${T}:${$}`)}function Qu(){return $-=5,cu(`JSON5: invalid identifier character at ${T}:${$}`)}function We(t){console.warn(`JSON5: '${ue(t)}' in strings is not valid ECMAScript; consider escaping`)}function ue(t){const u={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(u[t])return u[t];if(t<" "){const e=t.charCodeAt(0).toString(16);return"\\x"+("00"+e).substring(e.length)}return t}function cu(t){const u=new SyntaxError(t);return u.lineNumber=T,u.columnNumber=$,u}const qe=He(Ue);var Je=Object.defineProperty,eu=(t,u,e,r)=>{for(var s=void 0,i=t.length-1,D;i>=0;i--)(D=t[i])&&(s=D(u,e,s)||s);return s&&Je(u,e,s),s};const Ke="orthographic",ee=1/0,Su=class Su extends G{constructor(){super(),this.scratchV2=new b.Vector2,this.three={scene:new b.Scene,camera:null,renderer:new b.WebGLRenderer({antialias:!0,alpha:!0})},this.background=null,this.dpr=ee,this.manualRender=!1,this.dispatchBeforeRender=!1,this.dispatchAfterRender=!1,this.raycaster=new b.Raycaster,this.raycastPool=[],this.frame=1/0,this.resizeObserver=new ResizeObserver(u=>{u.forEach(({target:e,contentRect:r})=>{if(e===this&&(this.three.renderer.setSize(r.width*this.dpr,r.height*this.dpr),this.three.camera)){const s=r.width/r.height;if(this.three.camera.type.toLowerCase()==="perspectivecamera")this.three.camera.aspect=s,this.three.camera.updateProjectionMatrix();else if(this.three.camera.type.toLowerCase()==="orthographiccamera"){const i=r.height/r.width,D=10;this.three.camera.top=i*D,this.three.camera.bottom=-i*D,this.three.camera.right=D,this.three.camera.left=-D,this.three.camera.updateProjectionMatrix()}this.manualRender||this.renderThree()}})})}connectedCallback(){super.connectedCallback(),this.dpr===ee&&(this.dpr=window.devicePixelRatio),this.getAttribute(Ke)!==null?this.three.camera=new b.OrthographicCamera:this.three.camera=new b.PerspectiveCamera(75),["scene","camera","renderer"].forEach(u=>{const e=qe(this.getAttribute(u)??"{}");Object.entries(e).forEach(([r,s])=>{this.three[u]&&Bu(this.three[u],r.split("-"),yu(s,this))})}),this.resizeObserver.observe(this),this.background!==null&&(this.three.scene.background=new b.Color(this.background)),this.three.renderer.domElement.addEventListener("pointermove",this.onPointerMove.bind(this)),this.three.renderer.domElement.addEventListener("mousemove",this.onPointerMove.bind(this)),this.three.renderer.domElement.addEventListener("click",this.onClick.bind(this)),this.manualRender||this.updateLoop()}disconnectedCallback(){this.three.renderer.domElement.removeEventListener("pointermove",this.onPointerMove.bind(this)),this.three.renderer.domElement.removeEventListener("mousemove",this.onPointerMove.bind(this)),this.three.renderer.domElement.removeEventListener("click",this.onClick.bind(this)),this.three.renderer.dispose(),this.resizeObserver.unobserve(this),cancelAnimationFrame(this.frame)}handleDefaultSlotChange(u){u.target.assignedElements().forEach(e=>{const r=e;if(r.instance instanceof b.Object3D){let s=!1;if(this.three.scene.traverse(i=>{s||i.uuid===r.instance.uuid&&(s=!0)}),s)return;this.three.scene.add(r.instance),e.getAttributeNames().includes(Ju)&&this.raycastPool.push(r.instance)}}),this.renderThree()}runRaycast(u){if(!this.raycastPool.length||!this.three.camera)return[];const e=this.scratchV2.clone().set(u.clientX/(this.three.renderer.domElement.width/this.dpr)*2-1,-(u.clientY/(this.three.renderer.domElement.height/this.dpr))*2+1);return this.raycaster.setFromCamera(e,this.three.camera),this.raycaster.intersectObjects(this.raycastPool).map(i=>({intersect:i,element:this.querySelector(`[${qu}="${i.object.uuid}"]`)}))}onPointerMove(u){this.runRaycast.bind(this)(u).forEach(r=>{var s,i,D,a;u.type==="pointermove"?((s=r.element)==null||s.dispatchEvent(new PointerEvent("pointermove")),(i=r.element)==null||i.dispatchEvent(new CustomEvent(te,{detail:r}))):u.type==="mousemove"&&((D=r.element)==null||D.dispatchEvent(new MouseEvent("mousemove")),(a=r.element)==null||a.dispatchEvent(new CustomEvent(re,{detail:r})))})}onClick(u){let e=[];if(u instanceof TouchEvent){const r=u.touches[0];e=this.runRaycast.bind(this)(r),e.forEach(s=>{var i;(i=s.element)==null||i.dispatchEvent(new TouchEvent("touchstart"))})}else e=this.runRaycast.bind(this)(u),e.forEach(r=>{var s;(s=r.element)==null||s.dispatchEvent(new MouseEvent("click"))});e.forEach(r=>{var s;(s=r.element)==null||s.dispatchEvent(new CustomEvent(se,{detail:r}))})}updateLoop(){this.renderThree(),this.manualRender||(this.frame=requestAnimationFrame(this.updateLoop.bind(this)))}renderThree(u,e){this.dispatchBeforeRender&&this.dispatchEvent(new CustomEvent(ie,{})),this.three.camera&&(this.three.renderer.render(u??this.three.scene,e??this.three.camera),this.dispatchAfterRender&&this.dispatchEvent(new CustomEvent(De,{})))}render(){return zu`
31
31
  <slot @slotchange=${this.handleDefaultSlotChange}></slot>
32
32
  ${this.three.renderer.domElement}
33
- `}};wu.styles=ce`
33
+ `}};Su.styles=Ae`
34
34
  :host {
35
35
  width: 100%;
36
36
  height: 100%;
@@ -43,4 +43,4 @@
43
43
  max-width: 100%;
44
44
  max-height: 100%;
45
45
  }
46
- `;let G=wu;ue([pu()],G.prototype,"background"),ue([pu()],G.prototype,"dpr");const Je=({prependList:t=[]}={})=>{customElements.get("three-lunchbox")||customElements.define("three-lunchbox",G),[...t,...cu].forEach(u=>{const e=De(u);if(customElements.get(e))return;const r=Zu(u);r&&customElements.define(e,r)})},Ke=(t,u,e=window)=>{if(e.customElements.get(t)){console.log(`${t} already registered as a custom element. Try a different name if registering is still required.`);return}const r=Zu(u);if(r)e.customElements.define(t,r);else throw new Error(`Could not extend ${t}. The second paramater must be a class.`)},te="threepointermove",re="threemousemove",se="threeclick",De=t=>{let u=t.split(/\.?(?=[A-Z])/).join("-").toLowerCase().replace(/-g-l-/,"-gl-");return u.includes("-")||(u=`three-${u}`),u},Ze=cu.map(De);y.THREE_CLICK_EVENT_NAME=se,y.THREE_MOUSE_MOVE_EVENT_NAME=re,y.THREE_POINTER_MOVE_EVENT_NAME=te,y.ThreeLunchbox=G,y.autoComponents=cu,y.extend=Ke,y.initLunchbox=Je,y.webComponentNames=Ze,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})});
46
+ `;let P=Su;eu([z()],P.prototype,"background"),eu([z()],P.prototype,"dpr"),eu([z({attribute:"manual-render",type:Boolean})],P.prototype,"manualRender"),eu([z({attribute:"dispatch-before-render",type:Boolean})],P.prototype,"dispatchBeforeRender"),eu([z({attribute:"dispatch-after-render",type:Boolean})],P.prototype,"dispatchAfterRender");const Ze=({prependList:t=[]}={})=>{customElements.get("three-lunchbox")||customElements.define("three-lunchbox",P),[...t,...Au].forEach(u=>{const e=ne(u);if(customElements.get(e))return;const r=Xu(u);r&&customElements.define(e,r)})},Xe=(t,u,e=window)=>{if(e.customElements.get(t)){console.log(`${t} already registered as a custom element. Try a different name if registering is still required.`);return}const r=Xu(u);if(r)e.customElements.define(t,r);else throw new Error(`Could not extend ${t}. The second paramater must be a class.`)},te="threepointermove",re="threemousemove",se="threeclick",ie="beforerender",De="afterrender",ne=t=>{let u=t.split(/\.?(?=[A-Z])/).join("-").toLowerCase().replace(/-g-l-/,"-gl-");return u.includes("-")||(u=`three-${u}`),u},Ye=Au.map(ne);m.AFTER_RENDER_EVENT_NAME=De,m.BEFORE_RENDER_EVENT_NAME=ie,m.THREE_CLICK_EVENT_NAME=se,m.THREE_MOUSE_MOVE_EVENT_NAME=re,m.THREE_POINTER_MOVE_EVENT_NAME=te,m.ThreeLunchbox=P,m.autoComponents=Au,m.extend=Xe,m.initLunchbox=Ze,m.webComponentNames=Ye,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});
@@ -54,6 +54,8 @@ export declare const extend: (name: string, classDefinition: IsClass, targetWind
54
54
  export declare const THREE_POINTER_MOVE_EVENT_NAME = "threepointermove";
55
55
  export declare const THREE_MOUSE_MOVE_EVENT_NAME = "threemousemove";
56
56
  export declare const THREE_CLICK_EVENT_NAME = "threeclick";
57
+ export declare const BEFORE_RENDER_EVENT_NAME = "beforerender";
58
+ export declare const AFTER_RENDER_EVENT_NAME = "afterrender";
57
59
  export type ThreeIntersectEvent = {
58
60
  intersect: THREE.Intersection<THREE.Object3D<THREE.Object3DEventMap>>;
59
61
  element: Element | null;
@@ -11,6 +11,9 @@ export declare class ThreeLunchbox extends LitElement {
11
11
  };
12
12
  background: THREE.ColorRepresentation | null;
13
13
  dpr: number;
14
+ manualRender: boolean;
15
+ dispatchBeforeRender: boolean;
16
+ dispatchAfterRender: boolean;
14
17
  /** ResizeObserver to handle container sizing */
15
18
  resizeObserver: ResizeObserver;
16
19
  constructor();
@@ -36,7 +39,7 @@ export declare class ThreeLunchbox extends LitElement {
36
39
  /** Render loop */
37
40
  frame: number;
38
41
  updateLoop(): void;
39
- /** Render the 3D scene */
40
- renderThree(): void;
42
+ /** Render the 3D scene. Optional scene/camera overrides; defaults to the internal scene and camera. */
43
+ renderThree(overrideScene?: THREE.Scene, overrideCamera?: THREE.Camera): void;
41
44
  render(): import('lit-html').TemplateResult<1>;
42
45
  }
package/dist/types.d.ts CHANGED
@@ -5,6 +5,8 @@ interface ElementEventMap {
5
5
  'loaded': CustomEvent<LoadedEvent>;
6
6
  'threepointermove': CustomEvent<ThreeIntersectEvent>;
7
7
  'threeclick': CustomEvent<ThreeIntersectEvent>;
8
+ 'beforerender': CustomEvent<object>;
9
+ 'afterrender': CustomEvent<object>;
8
10
  }
9
11
  declare global {
10
12
  interface HTMLElement {
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "types": "./dist/src/index.d.ts"
13
13
  }
14
14
  },
15
- "version": "2.0.0-beta.4",
15
+ "version": "2.0.0-beta.6",
16
16
  "type": "module",
17
17
  "types": "./dist/src/index.d.ts",
18
18
  "scripts": {