@loomweaver/frame-kit 0.7.2 → 0.7.3

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,4 +1,4 @@
1
- /* @loomweaver/frame-kit 0.7.2 — lw-elements.global.js. Generated by build.mjs; do not edit. Serve the dist/ files same-origin under /frame-kit/. */
1
+ /* @loomweaver/frame-kit 0.7.3 — lw-elements.global.js. Generated by build.mjs; do not edit. Serve the dist/ files same-origin under /frame-kit/. */
2
2
  "use strict";(()=>{function B(o,t){let e=o;if(Object.prototype.hasOwnProperty.call(o,t)){let r=e[t];delete e[t],e[t]=r}}function R(o,t,e){e==null?o.removeAttribute(t):o.setAttribute(t,e)}function Oo(o,t,e){let r=["lw-btn",`lw-btn--${o}`];return t==="sm"&&r.push("lw-btn--sm"),e&&r.push("lw-btn--icon"),r}var Po="lw-button",Re=class extends HTMLElement{static observedAttributes=["variant","size","icon-only","disabled"];get variant(){return this.getAttribute("variant")??"default"}set variant(t){R(this,"variant",t)}get size(){return this.getAttribute("size")??"md"}set size(t){R(this,"size",t)}get iconOnly(){return this.hasAttribute("icon-only")}set iconOnly(t){this.toggleAttribute("icon-only",t)}get disabled(){return this.hasAttribute("disabled")}set disabled(t){this.toggleAttribute("disabled",t)}connectedCallback(){B(this,"variant"),B(this,"size"),B(this,"iconOnly"),B(this,"disabled"),this.setAttribute("role","button"),this.addEventListener("keydown",this.onKeydown),this.render()}disconnectedCallback(){this.removeEventListener("keydown",this.onKeydown)}attributeChangedCallback(){this.isConnected&&this.render()}onKeydown=t=>{(t.key==="Enter"||t.key===" ")&&!this.disabled&&(t.preventDefault(),this.click())};render(){let t=[...this.classList].filter(e=>e.startsWith("lw-btn"));this.classList.remove(...t),this.classList.add(...Oo(this.variant,this.size,this.iconOnly)),this.setAttribute("aria-disabled",String(this.disabled)),this.tabIndex=this.disabled?-1:0}};function No(){typeof customElements<"u"&&!customElements.get(Po)&&customElements.define(Po,Re)}function zo(o,t){(t==null||t>o.length)&&(t=o.length);for(var e=0,r=Array(t);e<t;e++)r[e]=o[e];return r}function Fn(o){if(Array.isArray(o))return o}function Gn(o,t){var e=o==null?null:typeof Symbol<"u"&&o[Symbol.iterator]||o["@@iterator"];if(e!=null){var r,n,i,h,a=[],d=!0,p=!1;try{if(i=(e=e.call(o)).next,t!==0)for(;!(d=(r=i.call(e)).done)&&(a.push(r.value),a.length!==t);d=!0);}catch(m){p=!0,n=m}finally{try{if(!d&&e.return!=null&&(h=e.return(),Object(h)!==h))return}finally{if(p)throw n}}return a}}function Wn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
3
3
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qn(o,t){return Fn(o)||Gn(o,t)||Yn(o,t)||Wn()}function Yn(o,t){if(o){if(typeof o=="string")return zo(o,t);var e={}.toString.call(o).slice(8,-1);return e==="Object"&&o.constructor&&(e=o.constructor.name),e==="Map"||e==="Set"?Array.from(o):e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?zo(o,t):void 0}}var rr=Object.entries,$o=Object.setPrototypeOf,Xn=Object.isFrozen,Kn=Object.getPrototypeOf,Qn=Object.getOwnPropertyDescriptor,D=Object.freeze,O=Object.seal,St=Object.create,nr=typeof Reflect<"u"&&Reflect,Oe=nr.apply,Pe=nr.construct;D||(D=function(t){return t});O||(O=function(t){return t});Oe||(Oe=function(t,e){for(var r=arguments.length,n=new Array(r>2?r-2:0),i=2;i<r;i++)n[i-2]=arguments[i];return t.apply(e,n)});Pe||(Pe=function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return new t(...r)});var Ct=H(Array.prototype.forEach),Jn=H(Array.prototype.lastIndexOf),Uo=H(Array.prototype.pop),Tt=H(Array.prototype.push),t0=H(Array.prototype.splice),dt=Array.isArray,Pt=H(String.prototype.toLowerCase),je=H(String.prototype.toString),Fo=H(String.prototype.match),Dt=H(String.prototype.replace),Go=H(String.prototype.indexOf),e0=H(String.prototype.trim),o0=H(Number.prototype.toString),r0=H(Boolean.prototype.toString),Wo=typeof BigInt>"u"?null:H(BigInt.prototype.toString),qo=typeof Symbol>"u"?null:H(Symbol.prototype.toString),Z=H(Object.prototype.hasOwnProperty),Ot=H(Object.prototype.toString),j=H(RegExp.prototype.test),vt=n0(TypeError);function H(o){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return Oe(o,t,r)}}function n0(o){return function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return Pe(o,e)}}function _(o,t){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Pt;if($o&&$o(o,null),!dt(t))return o;let r=t.length;for(;r--;){let n=t[r];if(typeof n=="string"){let i=e(n);i!==n&&(Xn(t)||(t[r]=i),n=i)}o[n]=!0}return o}function s0(o){for(let t=0;t<o.length;t++)Z(o,t)||(o[t]=null);return o}function P(o){let t=St(null);for(let r of rr(o)){var e=qn(r,2);let n=e[0],i=e[1];Z(o,n)&&(dt(i)?t[n]=s0(i):i&&typeof i=="object"&&i.constructor===Object?t[n]=P(i):t[n]=i)}return t}function i0(o){switch(typeof o){case"string":return o;case"number":return o0(o);case"boolean":return r0(o);case"bigint":return Wo?Wo(o):"0";case"symbol":return qo?qo(o):"Symbol()";case"undefined":return Ot(o);case"function":case"object":{if(o===null)return Ot(o);let t=o,e=X(t,"toString");if(typeof e=="function"){let r=e(t);return typeof r=="string"?r:Ot(r)}return Ot(o)}default:return Ot(o)}}function X(o,t){for(;o!==null;){let r=Qn(o,t);if(r){if(r.get)return H(r.get);if(typeof r.value=="function")return H(r.value)}o=Kn(o)}function e(){return null}return e}function a0(o){try{return j(o,""),!0}catch{return!1}}var Yo=D(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Ze=D(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Ve=D(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),l0=D(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Ie=D(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),h0=D(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Xo=D(["#text"]),Ko=D(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),De=D(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Qo=D(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),ne=D(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),c0=O(/{{[\w\W]*|^[\w\W]*}}/g),d0=O(/<%[\w\W]*|^[\w\W]*%>/g),u0=O(/\${[\w\W]*/g),p0=O(/^data-[\-\w.\u00B7-\uFFFF]+$/),w0=O(/^aria-[\-\w]+$/),Jo=O(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),g0=O(/^(?:\w+script|data):/i),v0=O(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),m0=O(/^html$/i),k0=O(/^[a-z][.\w]*(-[.\w]+)+$/i),tr=O(/<[/\w!]/g),er=O(/<[/\w]/g),f0=O(/<\/no(script|embed|frames)/i),x0=O(/\/>/i),W={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},_0=function(){return typeof window>"u"?null:window},M0=function(t,e){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null,n="data-tt-policy-suffix";e&&e.hasAttribute(n)&&(r=e.getAttribute(n));let i="dompurify"+(r?"#"+r:"");try{return t.createPolicy(i,{createHTML(h){return h},createScriptURL(h){return h}})}catch{return console.warn("TrustedTypes policy "+i+" could not be created."),null}},or=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},ct=function(t,e,r,n){return Z(t,e)&&dt(t[e])?_(n.base?P(n.base):{},t[e],n.transform):r};function sr(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_0(),t=u=>sr(u);if(t.version="3.4.13",t.removed=[],!o||!o.document||o.document.nodeType!==W.document||!o.Element)return t.isSupported=!1,t;let e=o.document,r=e,n=r.currentScript;o.DocumentFragment;let i=o.HTMLTemplateElement,h=o.Node,a=o.Element,d=o.NodeFilter,p=o.NamedNodeMap;p===void 0&&(o.NamedNodeMap||o.MozNamedAttrMap),o.HTMLFormElement;let m=o.DOMParser,v=o.trustedTypes,f=a.prototype,V=X(f,"cloneNode"),M=X(f,"remove"),q=X(f,"nextSibling"),Y=X(f,"childNodes"),J=X(f,"parentNode"),Bt=X(f,"shadowRoot"),Ht=X(f,"attributes"),I=h&&h.prototype?X(h.prototype,"nodeType"):null,$=h&&h.prototype?X(h.prototype,"nodeName"):null,tt=h&&h.prototype?X(h.prototype,"ownerDocument"):null;if(typeof i=="function"){let u=e.createElement("template");u.content&&u.content.ownerDocument&&(e=u.content.ownerDocument)}let U,pt="",ge,uo=!1,Rt=0,po=function(){if(Rt>0)throw vt('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},xt=function(s){po(),Rt++;try{return U.createHTML(s)}finally{Rt--}},mn=function(s){po(),Rt++;try{return U.createScriptURL(s)}finally{Rt--}},kn=function(){return uo||(ge=M0(v,n),uo=!0),ge},Gt=e,ve=Gt.implementation,wo=Gt.createNodeIterator,fn=Gt.createDocumentFragment,xn=Gt.getElementsByTagName,_n=r.importNode,A=or();t.isSupported=typeof rr=="function"&&typeof J=="function"&&ve&&ve.createHTMLDocument!==void 0;let Mn=c0,bn=d0,yn=u0,An=p0,Cn=w0,Tn=g0,go=v0,Sn=k0,vo=Jo,C=null,me=_({},[...Yo,...Ze,...Ve,...Ie,...Xo]),T=null,ke=_({},[...Ko,...De,...Qo,...ne]),E=Object.seal(St(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),jt=null,mo=null,it=Object.seal(St(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ko=!0,fe=!0,fo=!1,xo=!0,at=!1,lt=!0,wt=!1,xe=!1,Wt=null,qt=null,_e=!1,_t=!1,Yt=!1,Xt=!1,_o=!0,Mo=!1,bo="user-content-",Me=!0,Kt=!1,Mt={},et=null,be=_({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),yo=null,Ao=_({},["audio","video","img","source","image","track"]),ye=null,Co=_({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Qt="http://www.w3.org/1998/Math/MathML",Jt="http://www.w3.org/2000/svg",ot="http://www.w3.org/1999/xhtml",bt=ot,Ae=!1,Ce=null,Ln=_({},[Qt,Jt,ot],je),To=D(["mi","mo","mn","ms","mtext"]),Te=_({},To),So=D(["annotation-xml"]),Se=_({},So),En=_({},["title","style","font","a","script"]),Zt=null,Bn=["application/xhtml+xml","text/html"],Hn="text/html",S=null,yt=null,Rn=e.createElement("form"),Lo=function(s){return s instanceof RegExp||s instanceof Function},Le=function(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(yt&&yt===s)return;(!s||typeof s!="object")&&(s={}),s=P(s),Zt=Bn.indexOf(s.PARSER_MEDIA_TYPE)===-1?Hn:s.PARSER_MEDIA_TYPE,S=Zt==="application/xhtml+xml"?je:Pt,C=ct(s,"ALLOWED_TAGS",me,{transform:S}),T=ct(s,"ALLOWED_ATTR",ke,{transform:S}),Ce=ct(s,"ALLOWED_NAMESPACES",Ln,{transform:je}),ye=ct(s,"ADD_URI_SAFE_ATTR",Co,{transform:S,base:Co}),yo=ct(s,"ADD_DATA_URI_TAGS",Ao,{transform:S,base:Ao}),et=ct(s,"FORBID_CONTENTS",be,{transform:S}),jt=ct(s,"FORBID_TAGS",P({}),{transform:S}),mo=ct(s,"FORBID_ATTR",P({}),{transform:S}),Mt=Z(s,"USE_PROFILES")?s.USE_PROFILES&&typeof s.USE_PROFILES=="object"?P(s.USE_PROFILES):s.USE_PROFILES:!1,ko=s.ALLOW_ARIA_ATTR!==!1,fe=s.ALLOW_DATA_ATTR!==!1,fo=s.ALLOW_UNKNOWN_PROTOCOLS||!1,xo=s.ALLOW_SELF_CLOSE_IN_ATTR!==!1,at=s.SAFE_FOR_TEMPLATES||!1,lt=s.SAFE_FOR_XML!==!1,wt=s.WHOLE_DOCUMENT||!1,_t=s.RETURN_DOM||!1,Yt=s.RETURN_DOM_FRAGMENT||!1,Xt=s.RETURN_TRUSTED_TYPE||!1,_e=s.FORCE_BODY||!1,_o=s.SANITIZE_DOM!==!1,Mo=s.SANITIZE_NAMED_PROPS||!1,Me=s.KEEP_CONTENT!==!1,Kt=s.IN_PLACE||!1,vo=a0(s.ALLOWED_URI_REGEXP)?s.ALLOWED_URI_REGEXP:Jo,bt=typeof s.NAMESPACE=="string"?s.NAMESPACE:ot,Te=Z(s,"MATHML_TEXT_INTEGRATION_POINTS")&&s.MATHML_TEXT_INTEGRATION_POINTS&&typeof s.MATHML_TEXT_INTEGRATION_POINTS=="object"?P(s.MATHML_TEXT_INTEGRATION_POINTS):_({},To),Se=Z(s,"HTML_INTEGRATION_POINTS")&&s.HTML_INTEGRATION_POINTS&&typeof s.HTML_INTEGRATION_POINTS=="object"?P(s.HTML_INTEGRATION_POINTS):_({},So);let l=Z(s,"CUSTOM_ELEMENT_HANDLING")&&s.CUSTOM_ELEMENT_HANDLING&&typeof s.CUSTOM_ELEMENT_HANDLING=="object"?P(s.CUSTOM_ELEMENT_HANDLING):St(null);if(E=St(null),Z(l,"tagNameCheck")&&Lo(l.tagNameCheck)&&(E.tagNameCheck=l.tagNameCheck),Z(l,"attributeNameCheck")&&Lo(l.attributeNameCheck)&&(E.attributeNameCheck=l.attributeNameCheck),Z(l,"allowCustomizedBuiltInElements")&&typeof l.allowCustomizedBuiltInElements=="boolean"&&(E.allowCustomizedBuiltInElements=l.allowCustomizedBuiltInElements),O(E),at&&(fe=!1),Yt&&(_t=!0),Mt&&(C=_({},Xo),T=St(null),Mt.html===!0&&(_(C,Yo),_(T,Ko)),Mt.svg===!0&&(_(C,Ze),_(T,De),_(T,ne)),Mt.svgFilters===!0&&(_(C,Ve),_(T,De),_(T,ne)),Mt.mathMl===!0&&(_(C,Ie),_(T,Qo),_(T,ne))),it.tagCheck=null,it.attributeCheck=null,Z(s,"ADD_TAGS")&&(typeof s.ADD_TAGS=="function"?it.tagCheck=s.ADD_TAGS:dt(s.ADD_TAGS)&&(C===me&&(C=P(C)),_(C,s.ADD_TAGS,S))),Z(s,"ADD_ATTR")&&(typeof s.ADD_ATTR=="function"?it.attributeCheck=s.ADD_ATTR:dt(s.ADD_ATTR)&&(T===ke&&(T=P(T)),_(T,s.ADD_ATTR,S))),Z(s,"ADD_URI_SAFE_ATTR")&&dt(s.ADD_URI_SAFE_ATTR)&&_(ye,s.ADD_URI_SAFE_ATTR,S),Z(s,"FORBID_CONTENTS")&&dt(s.FORBID_CONTENTS)&&(et===be&&(et=P(et)),_(et,s.FORBID_CONTENTS,S)),Z(s,"ADD_FORBID_CONTENTS")&&dt(s.ADD_FORBID_CONTENTS)&&(et===be&&(et=P(et)),_(et,s.ADD_FORBID_CONTENTS,S)),Me&&(C["#text"]=!0),wt&&_(C,["html","head","body"]),C.table&&(_(C,["tbody"]),delete jt.tbody),s.TRUSTED_TYPES_POLICY){if(typeof s.TRUSTED_TYPES_POLICY.createHTML!="function")throw vt('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof s.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw vt('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let c=U;U=s.TRUSTED_TYPES_POLICY;try{pt=xt("")}catch(w){throw U=c,w}}else s.TRUSTED_TYPES_POLICY===null?(U=void 0,pt=""):(U===void 0&&(U=kn()),U&&typeof pt=="string"&&(pt=xt("")));D&&D(s),yt=s},Eo=_({},[...Ze,...Ve,...l0]),Bo=_({},[...Ie,...h0]),jn=function(s,l,c){return l.namespaceURI===ot?s==="svg":l.namespaceURI===Qt?s==="svg"&&(c==="annotation-xml"||Te[c]):!!Eo[s]},Zn=function(s,l,c){return l.namespaceURI===ot?s==="math":l.namespaceURI===Jt?s==="math"&&Se[c]:!!Bo[s]},Vn=function(s,l,c){return l.namespaceURI===Jt&&!Se[c]||l.namespaceURI===Qt&&!Te[c]?!1:!Bo[s]&&(En[s]||!Eo[s])},In=function(s){let l=J(s);(!l||!l.tagName)&&(l={namespaceURI:bt,tagName:"template"});let c=Pt(s.tagName),w=Pt(l.tagName);return Ce[s.namespaceURI]?s.namespaceURI===Jt?jn(c,l,w):s.namespaceURI===Qt?Zn(c,l,w):s.namespaceURI===ot?Vn(c,l,w):!!(Zt==="application/xhtml+xml"&&Ce[s.namespaceURI]):!1},ht=function(s){Tt(t.removed,{element:s});try{J(s).removeChild(s)}catch{if(M(s),!J(s))throw vt("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},te=function(s){Vt(s);let l=Y(s);if(l){let w=[];Ct(l,g=>{Tt(w,g)}),Ct(w,g=>{try{M(g)}catch{}})}let c=Ht(s);if(c)for(let w=c.length-1;w>=0;--w){let g=c[w],k=g&&g.name;if(typeof k=="string")try{s.removeAttribute(k)}catch{}}},gt=function(s,l){try{Tt(t.removed,{attribute:l.getAttributeNode(s),from:l})}catch{Tt(t.removed,{attribute:null,from:l})}if(l.removeAttribute(s),s==="is")if(_t||Yt)try{ht(l)}catch{}else try{l.setAttribute(s,"")}catch{}},Dn=function(s){let l=Ht(s);if(l)for(let c=l.length-1;c>=0;--c){let w=l[c],g=w&&w.name;if(!(typeof g!="string"||T[S(g)]))try{s.removeAttribute(g)}catch{}}},Vt=function(s){let l=[s];for(;l.length>0;){let c=l.pop();(I?I(c):c.nodeType)===W.element&&Dn(c);let g=Y(c);if(g)for(let k=g.length-1;k>=0;--k)l.push(g[k])}},On=function(s){if(!lt)return;let l=[s];for(;l.length>0;){let c=l.pop(),w=I?I(c):c.nodeType;if(w===W.processingInstruction||w===W.comment&&j(er,c.data)){try{M(c)}catch{}continue}if(w===W.element){let k=c,y=S($?$(c):c.nodeName);try{k.hasAttribute&&k.hasAttribute("patchsrc")&&k.removeAttribute("patchsrc"),k.hasAttribute&&k.hasAttribute("for")&&y!=="label"&&y!=="output"&&k.removeAttribute("for")}catch{}}let g=Y(c);if(g)for(let k=g.length-1;k>=0;--k)l.push(g[k])}},Ho=function(s){let l=null,c=null;if(_e)s="<remove></remove>"+s;else{let k=Fo(s,/^[\r\n\t ]+/);c=k&&k[0]}Zt==="application/xhtml+xml"&&bt===ot&&(s='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+s+"</body></html>");let w=U?xt(s):s;if(bt===ot)try{l=new m().parseFromString(w,Zt)}catch{}if(!l||!l.documentElement){l=ve.createDocument(bt,"template",null);try{l.documentElement.innerHTML=Ae?pt:w}catch{}}let g=l.body||l.documentElement;return s&&c&&g.insertBefore(e.createTextNode(c),g.childNodes[0]||null),bt===ot?xn.call(l,wt?"html":"body")[0]:wt?l.documentElement:g},Ro=function(s){let l=tt?tt(s):s.ownerDocument;return wo.call(l||s,s,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT|d.SHOW_PROCESSING_INSTRUCTION|d.SHOW_CDATA_SECTION,null)},ee=function(s){return s=Dt(s,Mn," "),s=Dt(s,bn," "),s=Dt(s,yn," "),s},Ee=function(s){var l;s.normalize();let c=tt?tt(s):s.ownerDocument,w=wo.call(c||s,s,d.SHOW_TEXT|d.SHOW_COMMENT|d.SHOW_CDATA_SECTION|d.SHOW_PROCESSING_INSTRUCTION,null),g=w.nextNode();for(;g;)g.data=ee(g.data),g=w.nextNode();let k=(l=s.querySelectorAll)===null||l===void 0?void 0:l.call(s,"template");k&&Ct(k,y=>{At(y.content)&&Ee(y.content)})},oe=function(s){let l=$?$(s):null;return typeof l!="string"||S(l)!=="form"?!1:typeof s.nodeName!="string"||typeof s.textContent!="string"||typeof s.removeChild!="function"||s.attributes!==Ht(s)||typeof s.removeAttribute!="function"||typeof s.setAttribute!="function"||typeof s.namespaceURI!="string"||typeof s.insertBefore!="function"||typeof s.hasChildNodes!="function"||s.nodeType!==I(s)||s.childNodes!==Y(s)},At=function(s){if(!I||typeof s!="object"||s===null)return!1;try{return I(s)===W.documentFragment}catch{return!1}},It=function(s){if(!I||typeof s!="object"||s===null)return!1;try{return typeof I(s)=="number"}catch{return!1}};function rt(u,s,l){u.length!==0&&Ct(u,c=>{c.call(t,s,l,yt)})}let Pn=function(s,l){return!!(lt&&s.hasChildNodes()&&!It(s.firstElementChild)&&j(tr,s.textContent)&&j(tr,s.innerHTML)||lt&&s.namespaceURI===ot&&l==="style"&&It(s.firstElementChild)||s.nodeType===W.processingInstruction||lt&&s.nodeType===W.comment&&j(er,s.data))},Nn=function(s,l,c){if(!jt[l]&&Io(l)&&(E.tagNameCheck instanceof RegExp&&j(E.tagNameCheck,l)||E.tagNameCheck instanceof Function&&E.tagNameCheck(l)))return!1;if(Me&&!et[l]){let w=J(s),g=Y(s);if(g&&w){let k=g.length;for(let y=k-1;y>=0;--y){let L=s===c?V(g[y],!0):g[y];w.insertBefore(L,q(s))}}}return ht(s),!0},jo=function(s,l,c,w){return s.length===0?l:l===c||l===w?P(l):l},Zo=function(s,l){if(rt(A.beforeSanitizeElements,s,null),s!==l&&J(s)===null)return Kt&&Vt(s),!0;if(oe(s))return ht(s),!0;let c=S($?$(s):s.nodeName);if(C=jo(A.uponSanitizeElement,C,me,Wt),rt(A.uponSanitizeElement,s,{tagName:c,allowedTags:C}),s!==l&&J(s)===null)return Kt&&Vt(s),!0;if(Pn(s,c))return ht(s),!0;if(jt[c]||!(it.tagCheck instanceof Function&&it.tagCheck(c))&&!C[c]){let g=Nn(s,c,l);return g===!1&&rt(A.afterSanitizeElements,s,null),g}if((I?I(s):s.nodeType)===W.element&&!In(s)||(c==="noscript"||c==="noembed"||c==="noframes")&&j(f0,s.innerHTML))return ht(s),!0;if(at&&s.nodeType===W.text){let g=ee(s.textContent);s.textContent!==g&&(Tt(t.removed,{element:s.cloneNode()}),s.textContent=g)}return rt(A.afterSanitizeElements,s,null),!1},Vo=function(s,l,c){if(mo[l]||lt&&l==="patchsrc"||lt&&l==="for"&&s!=="label"&&s!=="output"||_o&&(l==="id"||l==="name")&&(c in e||c in Rn))return!1;let w=T[l]||it.attributeCheck instanceof Function&&it.attributeCheck(l,s);if(!(fe&&j(An,l))){if(!(ko&&j(Cn,l))){if(w){if(!ye[l]){if(!j(vo,Dt(c,go,""))){if(!((l==="src"||l==="xlink:href"||l==="href")&&s!=="script"&&Go(c,"data:")===0&&yo[s])){if(!(fo&&!j(Tn,Dt(c,go,"")))){if(c)return!1}}}}}else if(!(Io(s)&&(E.tagNameCheck instanceof RegExp&&j(E.tagNameCheck,s)||E.tagNameCheck instanceof Function&&E.tagNameCheck(s))&&(E.attributeNameCheck instanceof RegExp&&j(E.attributeNameCheck,l)||E.attributeNameCheck instanceof Function&&E.attributeNameCheck(l,s))||l==="is"&&E.allowCustomizedBuiltInElements&&(E.tagNameCheck instanceof RegExp&&j(E.tagNameCheck,c)||E.tagNameCheck instanceof Function&&E.tagNameCheck(c))))return!1}}return!0},zn=_({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Io=function(s){return!zn[Pt(s)]&&j(Sn,s)},$n=function(s,l,c,w){if(U&&typeof v=="object"&&typeof v.getAttributeType=="function"&&!c)switch(v.getAttributeType(s,l)){case"TrustedHTML":return xt(w);case"TrustedScriptURL":return mn(w)}return w},Un=function(s,l,c,w){try{c?s.setAttributeNS(c,l,w):s.setAttribute(l,w),oe(s)?ht(s):Uo(t.removed)}catch{gt(l,s)}},Do=function(s){rt(A.beforeSanitizeAttributes,s,null);let l=s.attributes;if(!l||oe(s))return;T=jo(A.uponSanitizeAttribute,T,ke,qt);let c={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:T,forceKeepAttr:void 0},w=l.length,g=S(s.nodeName);for(;w--;){let k=l[w],y=k.name,L=k.namespaceURI,F=k.value,G=S(y),He=F,z=y==="value"?He:e0(He);if(c.attrName=G,c.attrValue=z,c.keepAttr=!0,c.forceKeepAttr=void 0,rt(A.uponSanitizeAttribute,s,c),z=c.attrValue,Mo&&(G==="id"||G==="name")&&Go(z,bo)!==0&&(gt(y,s),z=bo+z),lt&&j(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,z)){gt(y,s);continue}if(G==="attributename"&&Fo(z,"href")){gt(y,s);continue}if(!c.forceKeepAttr){if(!c.keepAttr){gt(y,s);continue}if(!xo&&j(x0,z)){gt(y,s);continue}if(at&&(z=ee(z)),!Vo(g,G,z)){gt(y,s);continue}z=$n(g,G,L,z),z!==He&&Un(s,y,L,z)}}rt(A.afterSanitizeAttributes,s,null)},re=function(s){let l=null,c=Ro(s);for(rt(A.beforeSanitizeShadowDOM,s,null);l=c.nextNode();)if(rt(A.uponSanitizeShadowNode,l,null),Zo(l,s),Do(l),At(l.content)&&re(l.content),(I?I(l):l.nodeType)===W.element){let g=Bt(l);At(g)&&(Be(g),re(g))}rt(A.afterSanitizeShadowDOM,s,null)},Be=function(s){let l=[{node:s,shadow:null}];for(;l.length>0;){let c=l.pop();if(c.shadow){re(c.shadow);continue}let w=c.node,k=(I?I(w):w.nodeType)===W.element,y=Y(w);if(y)for(let L=y.length-1;L>=0;--L)l.push({node:y[L],shadow:null});if(k){let L=$?$(w):null;if(typeof L=="string"&&S(L)==="template"){let F=w.content;At(F)&&l.push({node:F,shadow:null})}}if(k){let L=Bt(w);At(L)&&l.push({node:null,shadow:L},{node:L,shadow:null})}}};return t.sanitize=function(u){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=null,c=null,w=null,g=null;if(Ae=!u,Ae&&(u="<!-->"),typeof u!="string"&&!It(u)&&(u=i0(u),typeof u!="string"))throw vt("dirty is not a string, aborting");if(!t.isSupported)return u;xe?(C=Wt,T=qt):Le(s),(A.uponSanitizeElement.length>0||A.uponSanitizeAttribute.length>0)&&(C=P(C)),A.uponSanitizeAttribute.length>0&&(T=P(T)),t.removed=[];let k=Kt&&typeof u!="string"&&It(u);if(k){On(u);let F=$?$(u):u.nodeName;if(typeof F=="string"){let G=S(F);if(!C[G]||jt[G])throw te(u),vt("root node is forbidden and cannot be sanitized in-place")}if(oe(u))throw te(u),vt("root node is clobbered and cannot be sanitized in-place");try{Be(u)}catch(G){throw te(u),G}}else if(It(u))l=Ho("<!---->"),c=l.ownerDocument.importNode(u,!0),c.nodeType===W.element&&c.nodeName==="BODY"||c.nodeName==="HTML"?l=c:l.appendChild(c),Be(c);else{if(!_t&&!at&&!wt&&u.indexOf("<")===-1)return U&&Xt?xt(u):u;if(l=Ho(u),!l)return _t?null:Xt?pt:""}l&&_e&&ht(l.firstChild);let y=k?u:l;try{let F=Ro(y);for(;w=F.nextNode();)Zo(w,y),Do(w),At(w.content)&&re(w.content)}catch(F){throw k&&(te(u),Ct(t.removed,G=>{G.element&&Vt(G.element)})),F}if(k)return Ct(t.removed,F=>{F.element&&Vt(F.element)}),at&&Ee(u),u;if(_t){if(at&&Ee(l),Yt)for(g=fn.call(l.ownerDocument);l.firstChild;)g.appendChild(l.firstChild);else g=l;return(T.shadowroot||T.shadowrootmode)&&(g=_n.call(r,g,!0)),g}let L=wt?l.outerHTML:l.innerHTML;return wt&&C["!doctype"]&&l.ownerDocument&&l.ownerDocument.doctype&&l.ownerDocument.doctype.name&&j(m0,l.ownerDocument.doctype.name)&&(L="<!DOCTYPE "+l.ownerDocument.doctype.name+`>
4
4
  `+L),at&&(L=ee(L)),U&&Xt?xt(L):L},t.setConfig=function(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Le(u),xe=!0,Wt=C,qt=T},t.clearConfig=function(){yt=null,xe=!1,Wt=null,qt=null,U=ge,pt=""},t.isValidAttribute=function(u,s,l){yt||Le({});let c=S(u),w=S(s);return Vo(c,w,l)},t.addHook=function(u,s){typeof s=="function"&&Z(A,u)&&Tt(A[u],s)},t.removeHook=function(u,s){if(Z(A,u)){if(s!==void 0){let l=Jn(A[u],s);return l===-1?void 0:t0(A[u],l,1)[0]}return Uo(A[u])}},t.removeHooks=function(u){Z(A,u)&&(A[u]=[])},t.removeAllHooks=function(){A=or()},t}var se=sr();var ir='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"></path></svg>';var ar='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"></path></svg>';var lr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path></svg>';var hr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3"></path></svg>';var cr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25"></path></svg>',dr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"></path></svg>';var ur='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M3 7.5 7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5"></path></svg>';var Ne='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"></path></svg>';var ze='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m4.5 12.75 6 6 9-13.5"></path></svg>';var pr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m18.75 4.5-7.5 7.5 7.5 7.5m-6-15L5.25 12l7.5 7.5"></path></svg>',wr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"></path></svg>';var gr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m19.5 8.25-7.5 7.5-7.5-7.5"></path></svg>';var vr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z"></path><path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"></path></svg>';var mr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"></path></svg>';var kr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path></svg>';var fr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"></path></svg>';var xr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"></path><path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"></path></svg>';var _r='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"></path></svg>';var Mr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"></path></svg>',br='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z"></path></svg>';var yr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"></path></svg>';var Ar='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14"></path></svg>',Cr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"></path></svg>';var Tr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"></path></svg>';var Sr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15"></path></svg>';var Lr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 0 1-.657.643 48.39 48.39 0 0 1-4.163-.3c.186 1.613.293 3.25.315 4.907a.656.656 0 0 1-.658.663v0c-.355 0-.676-.186-.959-.401a1.647 1.647 0 0 0-1.003-.349c-1.036 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401v0c.31 0 .555.26.532.57a48.039 48.039 0 0 1-.642 5.056c1.518.19 3.058.309 4.616.354a.64.64 0 0 0 .657-.643v0c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.035 1.008-1.875 2.25-1.875 1.243 0 2.25.84 2.25 1.875 0 .369-.128.713-.349 1.003-.215.283-.4.604-.4.959v0c0 .333.277.599.61.58a48.1 48.1 0 0 0 5.427-.63 48.05 48.05 0 0 0 .582-4.717.532.532 0 0 0-.533-.57v0c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.035 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.37 0 .713.128 1.003.349.283.215.604.401.96.401v0a.656.656 0 0 0 .658-.663 48.422 48.422 0 0 0-.37-5.36c-1.886.342-3.81.574-5.766.689a.578.578 0 0 1-.61-.58v0Z"></path></svg>';var Er='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path></svg>';var Br='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M2.25 7.125C2.25 6.504 2.754 6 3.375 6h6c.621 0 1.125.504 1.125 1.125v3.75c0 .621-.504 1.125-1.125 1.125h-6a1.125 1.125 0 0 1-1.125-1.125v-3.75ZM14.25 8.625c0-.621.504-1.125 1.125-1.125h5.25c.621 0 1.125.504 1.125 1.125v8.25c0 .621-.504 1.125-1.125 1.125h-5.25a1.125 1.125 0 0 1-1.125-1.125v-8.25ZM3.75 16.125c0-.621.504-1.125 1.125-1.125h5.25c.621 0 1.125.504 1.125 1.125v2.25c0 .621-.504 1.125-1.125 1.125h-5.25a1.125 1.125 0 0 1-1.125-1.125v-2.25Z"></path></svg>';var Hr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"></path></svg>';var Rr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"></path></svg>';var jr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"></path></svg>',Zr='<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true" data-slot="icon" style="stroke-width:var(--ng-icon__stroke-width, 1.5)"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12"></path></svg>';var Vr={themeLight:Hr,themeDark:Cr,themeSystem:mr,chevronsLeft:pr,chevronsRight:wr,chevronDown:gr,check:ze,close:Zr,pin:'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M8 4h8M10.5 4v7M13.5 4v7M7 11h10M12 11v9"/></svg>',save:'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M17 3.75H5.25a1.5 1.5 0 0 0-1.5 1.5v13.5a1.5 1.5 0 0 0 1.5 1.5h13.5a1.5 1.5 0 0 0 1.5-1.5V7l-3.25-3.25Z"/><path stroke-linecap="round" stroke-linejoin="round" d="M8.25 3.75v4.5h6.5v-4.5M7.75 20.25v-7h8.5v7"/></svg>',splitPanes:'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M4 5.25h16a.75.75 0 0 1 .75.75v12a.75.75 0 0 1-.75.75H4a.75.75 0 0 1-.75-.75V6a.75.75 0 0 1 .75-.75ZM12 5.25v13.5"/></svg>',splitPanesDown:'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M4 5.25h16a.75.75 0 0 1 .75.75v12a.75.75 0 0 1-.75.75H4a.75.75 0 0 1-.75-.75V6a.75.75 0 0 1 .75-.75ZM3.25 12h17.5"/></svg>',workspaces:Br,menu:Ne,document:kr,navigator:Ne,outline:Mr,add:Sr,edit:Tr,trash:Rr,preview:xr,sort:ur,reset:ar,undo:hr,info:_r,lock:br,success:ze,warning:fr,error:jr,settings:vr,help:Er,search:yr,plugin:Lr,download:ir,maximize:dr,popout:lr,restore:cr,minimize:Ar};var ie=new Map(Object.entries(Vr));function Ir(o){return ie.get(o)}function Dr(o){return ie.has(o)}function $e(o){return se.sanitize(o,{USE_PROFILES:{svg:!0,svgFilters:!0}})}function Ue(o,t){ie.set(o,t)}function Or(o){ie.delete(o)}var ae="lw-icon",b0="1.25rem",Fe=class extends HTMLElement{static observedAttributes=["name","size","aria-label"];get name(){return this.getAttribute("name")??""}set name(t){R(this,"name",t)}get size(){return this.getAttribute("size")??b0}set size(t){R(this,"size",t)}connectedCallback(){B(this,"name"),B(this,"size"),this.render()}attributeChangedCallback(){this.isConnected&&this.render()}refresh(){this.isConnected&&this.render()}render(){this.innerHTML=Ir(this.name)??"";let t=this.querySelector("svg");t&&(t.setAttribute("width",this.size),t.setAttribute("height",this.size)),this.getAttribute("aria-label")?(this.setAttribute("role","img"),this.removeAttribute("aria-hidden")):(this.setAttribute("aria-hidden","true"),this.removeAttribute("role"))}};function Pr(){typeof customElements<"u"&&!customElements.get(ae)&&customElements.define(ae,Fe)}function Ye(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ft=Ye();function qr(o){ft=o}var mt={exec:()=>null};function Lt(o){let t=[];return e=>{let r=Math.max(0,Math.min(3,e-1)),n=t[r];return n||(n=o(r),t[r]=n),n}}function x(o,t=""){let e=typeof o=="string"?o:o.source,r={replace:(n,i)=>{let h=typeof i=="string"?i:i.source;return h=h.replace(N.caret,"$1"),e=e.replace(n,h),r},getRegex:()=>new RegExp(e,t)};return r}var y0=((o="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+o)}catch{return!1}})(),N={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:o=>new RegExp(`^( {0,3}${o})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Lt(o=>new RegExp(`^ {0,${o}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Lt(o=>new RegExp(`^ {0,${o}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:Lt(o=>new RegExp(`^ {0,${o}}(?:\`\`\`|~~~)`)),headingBeginRegex:Lt(o=>new RegExp(`^ {0,${o}}#`)),htmlBeginRegex:Lt(o=>new RegExp(`^ {0,${o}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:Lt(o=>new RegExp(`^ {0,${o}}>`))},A0=/^(?:[ \t]*(?:\n|$))+/,C0=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,T0=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,$t=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,S0=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Xe=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Yr=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Xr=x(Yr).replace(/bull/g,Xe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),L0=x(Yr).replace(/bull/g,Xe).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Ke=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,E0=/^[^\n]+/,Qe=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,B0=x(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Qe).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),H0=x(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Xe).getRegex(),ue="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Je=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,R0=x("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Je).replace("tag",ue).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Kr=o=>x(Ke).replace("hr",$t).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list",o).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ue).getRegex(),j0=Kr(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Z0=Kr(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),V0=x(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Z0).getRegex(),to={blockquote:V0,code:C0,def:B0,fences:T0,heading:S0,hr:$t,html:R0,lheading:Xr,list:H0,newline:A0,paragraph:j0,table:mt,text:E0},Nr=x("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",$t).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ue).getRegex(),I0={...to,lheading:L0,table:Nr,paragraph:x(Ke).replace("hr",$t).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Nr).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~~~)[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ue).getRegex()},D0={...to,html:x(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Je).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:mt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:x(Ke).replace("hr",$t).replace("heading",` *#{1,6} *[^
package/dist/lw-frame.css CHANGED
@@ -1,2 +1,2 @@
1
- /* @loomweaver/frame-kit 0.7.2 — lw-frame.css. Generated by build.mjs; do not edit. Serve the dist/ files same-origin under /frame-kit/. */
1
+ /* @loomweaver/frame-kit 0.7.3 — lw-frame.css. Generated by build.mjs; do not edit. Serve the dist/ files same-origin under /frame-kit/. */
2
2
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--spacing: .25rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-base--line-height: 1.5 ;--font-weight-normal: 400;--font-weight-medium: 500;--tracking-tight: -.025em;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--blur-xs: 4px;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--lw-font-sans);--default-mono-font-family: var(--lw-font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor;@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.relative{position:relative}.static{position:static}.prose{color:var(--tw-prose-body);max-width:65ch;:where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}:where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}:where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}:where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}:where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}:where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}:where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}:where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}:where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}:where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}:where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}:where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}:where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}:where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}:where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}:where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}:where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}:where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}:where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}:where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}:where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}:where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}:where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}:where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}:where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}:where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}:where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}:where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}:where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}:where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}:where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}:where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}:where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}:where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}:where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}:where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}:where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}:where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}:where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}:where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}:where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}:where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}:where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}:where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}:where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}:where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}:where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}:where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}:where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}:where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}:where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}:where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}:where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}:where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}:where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}:where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}:where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}:where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}:where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}:where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}:where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}--tw-prose-body: oklch(37.3% .034 259.733);--tw-prose-headings: oklch(21% .034 264.665);--tw-prose-lead: oklch(44.6% .03 256.802);--tw-prose-links: oklch(21% .034 264.665);--tw-prose-bold: oklch(21% .034 264.665);--tw-prose-counters: oklch(55.1% .027 264.364);--tw-prose-bullets: oklch(87.2% .01 258.338);--tw-prose-hr: oklch(92.8% .006 264.531);--tw-prose-quotes: oklch(21% .034 264.665);--tw-prose-quote-borders: oklch(92.8% .006 264.531);--tw-prose-captions: oklch(55.1% .027 264.364);--tw-prose-kbd: oklch(21% .034 264.665);--tw-prose-kbd-shadows: color-mix(in oklab, oklch(21% .034 264.665) 10%, transparent);--tw-prose-code: oklch(21% .034 264.665);--tw-prose-pre-code: oklch(92.8% .006 264.531);--tw-prose-pre-bg: oklch(27.8% .033 256.848);--tw-prose-th-borders: oklch(87.2% .01 258.338);--tw-prose-td-borders: oklch(92.8% .006 264.531);--tw-prose-invert-body: oklch(87.2% .01 258.338);--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: oklch(70.7% .022 261.325);--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: oklch(70.7% .022 261.325);--tw-prose-invert-bullets: oklch(44.6% .03 256.802);--tw-prose-invert-hr: oklch(37.3% .034 259.733);--tw-prose-invert-quotes: oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders: oklch(37.3% .034 259.733);--tw-prose-invert-captions: oklch(70.7% .022 261.325);--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: oklch(44.6% .03 256.802);--tw-prose-invert-td-borders: oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75;:where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}:where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}:where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}:where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}:where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}:where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}:where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}:where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}:where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}:where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}:where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}:where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}:where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}:where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}:where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}:where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}:where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}:where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}:where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}}.prose-sm{font-size:.875rem;line-height:1.7142857;:where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}:where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.1111111em}:where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}:where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}:where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}:where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}:where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}:where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}:where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}:where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}:where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;border-radius:.3125rem;padding-top:.1428571em;padding-inline-end:.3571429em;padding-bottom:.1428571em;padding-inline-start:.3571429em}:where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}:where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}:where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}:where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}:where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}:where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}:where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;margin-bottom:.2857143em}:where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}:where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}:where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}:where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}:where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}:where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}:where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}:where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}:where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}:where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}:where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-inline-start:1.5714286em}:where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.8571429em;margin-bottom:2.8571429em}:where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}:where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}:where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}:where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}:where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}:where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}:where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}:where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}:where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}:where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}:where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}:where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}}.mt-2{margin-top:calc(var(--spacing) * 2)}.block{display:block}.hidden{display:none}.inline{display:inline}.max-w-none{max-width:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.shadow{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur: blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.prose-lw{--tw-prose-body: var(--lw-content);--tw-prose-headings: var(--lw-content);--tw-prose-lead: var(--lw-content-muted);--tw-prose-links: var(--lw-brand);--tw-prose-bold: var(--lw-content);--tw-prose-counters: var(--lw-content-muted);--tw-prose-bullets: var(--lw-border);--tw-prose-hr: var(--lw-border);--tw-prose-quotes: var(--lw-content);--tw-prose-quote-borders: var(--lw-border);--tw-prose-captions: var(--lw-content-muted);--tw-prose-code: var(--lw-content);--tw-prose-pre-code: var(--lw-content);--tw-prose-pre-bg: var(--lw-surface-overlay);--tw-prose-th-borders: var(--lw-border);--tw-prose-td-borders: var(--lw-border)}}@layer lw-base,lw-plugin-theme,lw-tenant-theme;@layer lw-base{:root{color-scheme:light;--lw-brand: #2e96c9;--lw-brand-strong: #2680b0;--lw-brand-text: #256f92;--lw-brand-fill: #1d7099;--lw-on-brand: #ffffff;--lw-accent: #c59a2f;--lw-accent-strong: #a8821f;--lw-surface: #f7f9fb;--lw-surface-raised: #ffffff;--lw-surface-overlay: #eef2f6;--lw-field: #ffffff;--lw-border: #e2e8f0;--lw-content: #1f2933;--lw-content-muted: #5b6b7a;--lw-content-faint: #5f7082;--lw-tooltip: #2b3542;--lw-tooltip-content: #f7f9fb;--lw-positive: #1f7a43;--lw-on-positive: #ffffff;--lw-negative: #d14343;--lw-negative-fill: #c62d2d;--lw-on-negative: #ffffff;--lw-caution: #b8841f;--lw-on-caution: #0f1419;--lw-info: #1d7099;--lw-on-info: #ffffff;--lw-scrim: rgb(0 0 0 / .4);--lw-font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lw-font-mono: ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", monospace}:root.dark{color-scheme:dark;--lw-brand: #4aa9d6;--lw-brand-strong: #6cbce0;--lw-brand-text: #4aa9d6;--lw-brand-fill: #4aa9d6;--lw-on-brand: #0f1419;--lw-accent: #d9b250;--lw-accent-strong: #e6c878;--lw-surface: #14191f;--lw-surface-raised: #1b222a;--lw-surface-overlay: #232c36;--lw-field: #1b222a;--lw-border: #2d3743;--lw-content: #e6edf3;--lw-content-muted: #9aa7b4;--lw-content-faint: #8695a4;--lw-tooltip: #e6edf3;--lw-tooltip-content: #14191f;--lw-positive: #46c178;--lw-on-positive: #0f1419;--lw-negative: #e06464;--lw-negative-fill: #c62d2d;--lw-on-negative: #ffffff;--lw-caution: #d9b250;--lw-on-caution: #14191f;--lw-info: #4aa9d6;--lw-on-info: #0f1419;--lw-scrim: rgb(0 0 0 / .6)}}@layer components{.lw-btn{display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-md);--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));&:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}&:focus-visible{outline-offset:2px}&:focus-visible{outline-color:var(--lw-brand)}height:calc(var(--spacing) * 9);padding-inline:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.lw-btn:disabled,.lw-btn[aria-disabled=true]{pointer-events:none;opacity:50%}.lw-btn--primary{background-color:var(--lw-brand-fill);color:var(--lw-on-brand);&:hover{@media(hover:hover){opacity:90%}}}.lw-btn--default{border-style:var(--tw-border-style);border-width:1px;border-color:var(--lw-border);background-color:var(--lw-surface-raised);color:var(--lw-content);&:hover{@media(hover:hover){background-color:var(--lw-surface-overlay)}}}.lw-btn--success{background-color:var(--lw-positive);color:var(--lw-on-positive);&:hover{@media(hover:hover){opacity:90%}}}.lw-btn--danger{background-color:var(--lw-negative-fill);color:var(--lw-on-negative);&:hover{@media(hover:hover){opacity:90%}}}.lw-btn--warning{background-color:var(--lw-caution);color:var(--lw-on-caution);&:hover{@media(hover:hover){opacity:90%}}}.lw-btn--info{background-color:var(--lw-info);color:var(--lw-on-info);&:hover{@media(hover:hover){opacity:90%}}}.lw-btn--ghost{color:var(--lw-content-muted);&:hover{@media(hover:hover){background-color:var(--lw-surface-overlay)}}&:hover{@media(hover:hover){color:var(--lw-content)}}}.lw-btn--sm{height:calc(var(--spacing) * 7);padding-inline:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.lw-btn--icon{aspect-ratio:1 / 1;padding-inline:0px}.lw-icon-btn{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;color:var(--lw-content-faint);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));&:hover{@media(hover:hover){background-color:var(--lw-surface-overlay)}}&:hover{@media(hover:hover){color:var(--lw-content)}}}.lw-rail-initials{font-family:var(--lw-font-sans);font-size:.75rem;--tw-leading: 1;line-height:1;--tw-font-weight: var(--font-weight-normal);font-weight:var(--font-weight-normal);--tw-tracking: var(--tracking-tight);letter-spacing:var(--tracking-tight);text-transform:uppercase;-webkit-user-select:none;user-select:none}.lw-segmented{margin:0;display:inline-flex;height:calc(var(--spacing) * 8.5);align-items:center;gap:calc(var(--spacing) * .5);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--lw-border);background-color:var(--lw-surface-overlay);padding:calc(var(--spacing) * .5)}.lw-segmented-item{position:relative;display:flex;height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);align-items:center;justify-content:center;border-radius:.25rem;color:var(--lw-content-muted);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));&:hover{@media(hover:hover){color:var(--lw-content)}}}.lw-segmented-item[aria-pressed=true]{background-color:var(--lw-surface-raised);color:var(--lw-brand);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.lw-field{display:block;width:100%;border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--lw-border);background-color:var(--lw-field);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height));color:var(--lw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));&::placeholder{color:var(--lw-content-faint)}&:focus-visible{border-color:var(--lw-brand)}&:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}&:focus-visible{outline-offset:0px}&:focus-visible{outline-color:var(--lw-brand)}&:disabled{cursor:not-allowed}&:disabled{opacity:60%}}.lw-field--invalid{border-color:var(--lw-negative);&:focus-visible{border-color:var(--lw-negative)}&:focus-visible{outline-color:var(--lw-negative)}}textarea.lw-field{min-height:calc(var(--spacing) * 20);resize:vertical}.lw-checkbox{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);flex-shrink:0;cursor:pointer;accent-color:var(--lw-brand)}.lw-checkbox:disabled{cursor:not-allowed;opacity:60%}.lw-progress{height:calc(var(--spacing) * 2);width:100%;appearance:none;overflow:hidden;border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:0px;background:var(--lw-border)}.lw-progress::-webkit-progress-bar{background:var(--lw-border)}.lw-progress::-webkit-progress-value{background:var(--lw-brand);border-radius:9999px}.lw-progress::-moz-progress-bar{background:var(--lw-brand);border-radius:9999px}lw-progress-ring{display:inline-block;vertical-align:middle}.lw-progress-ring-svg{display:block;height:100%;width:100%}.lw-progress-ring-track{fill:none;stroke:var(--lw-border);stroke-width:3.5}.lw-progress-ring-value{fill:none;stroke:var(--lw-brand);stroke-width:3.5;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.lw-progress-ring-text{fill:var(--lw-content);font-size:10px;font-weight:600;text-anchor:middle;dominant-baseline:central}.lw-divider{border-style:var(--tw-border-style);border-width:0px;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--lw-border);margin:0}.lw-divider--vertical{height:100%;align-self:stretch;border-top-style:var(--tw-border-style);border-top-width:0px;border-left-style:var(--tw-border-style);border-left-width:1px;border-color:var(--lw-border)}.lw-collapsible{overflow:hidden;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--lw-border)}.lw-collapsible>summary{display:flex;cursor:pointer;list-style-type:none;align-items:center;gap:calc(var(--spacing) * 3);background-color:var(--lw-surface-raised);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2.5);font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height));--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--lw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));&:hover{@media(hover:hover){background-color:var(--lw-surface-overlay)}}&:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}&:focus-visible{outline-offset:-2px}&:focus-visible{outline-color:var(--lw-brand)}}.lw-collapsible>summary::-webkit-details-marker{display:none}.lw-collapsible>summary:after{content:"";margin-left:auto;height:calc(var(--spacing) * 2);width:calc(var(--spacing) * 2);flex-shrink:0;border-right-style:var(--tw-border-style);border-right-width:2px;border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--lw-content-muted);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));transform:translateY(-1px) rotate(45deg)}.lw-collapsible[open]>summary:after{transform:translateY(1px) rotate(-135deg)}.lw-collapsible-body{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--lw-border);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height));color:var(--lw-content-muted)}.lw-badge{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:var(--spacing);border-radius:calc(infinity * 1px);background-color:var(--lw-surface-overlay);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * .5);font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height));--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--lw-content-muted);min-width:1.5rem}.lw-badge--brand{background-color:var(--lw-brand-fill);color:var(--lw-on-brand)}.lw-badge--success{background-color:var(--lw-positive);color:var(--lw-on-positive)}.lw-badge--danger{background-color:var(--lw-negative-fill);color:var(--lw-on-negative)}.lw-radio{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);flex-shrink:0;cursor:pointer;accent-color:var(--lw-brand)}.lw-radio:disabled{cursor:not-allowed;opacity:60%}.lw-range{height:calc(var(--spacing) * 2);width:100%;cursor:pointer;appearance:none;border-radius:calc(infinity * 1px);background-color:var(--lw-border);&:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}&:focus-visible{outline-offset:2px}&:focus-visible{outline-color:var(--lw-brand)}}.lw-range::-webkit-slider-thumb{-webkit-appearance:none;height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);border-radius:calc(infinity * 1px);background-color:var(--lw-brand);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.lw-range::-moz-range-thumb{height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);border-radius:calc(infinity * 1px);border-style:var(--tw-border-style);border-width:0px;background-color:var(--lw-brand);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.lw-range:disabled{cursor:not-allowed;opacity:60%}.lw-switch{position:relative;height:calc(var(--spacing) * 5);width:calc(var(--spacing) * 9);flex-shrink:0;cursor:pointer;appearance:none;border-radius:calc(infinity * 1px);background-color:var(--lw-border);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));&:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}&:focus-visible{outline-offset:2px}&:focus-visible{outline-color:var(--lw-brand)}}.lw-switch:before{content:"";position:absolute;top:calc(var(--spacing) * .5);left:calc(var(--spacing) * .5);height:calc(var(--spacing) * 4);width:calc(var(--spacing) * 4);border-radius:calc(infinity * 1px);background-color:var(--lw-surface);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.lw-switch:checked{background-color:var(--lw-brand)}.lw-switch:checked:before{--tw-translate-x: calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.lw-switch:disabled{cursor:not-allowed;opacity:60%}.lw-scrim{background-color:var(--lw-scrim);--tw-backdrop-blur: blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.cdk-visually-hidden{position:absolute;left:0;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;outline:0;appearance:none}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-drag-preview{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--lw-border);background-color:var(--lw-surface-raised);--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.cdk-drag-placeholder{opacity:30%}.cdk-drag-animating,.cdk-drop-list-dragging .cdk-drag:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(0,0,.2,1)}.lw-pane-drop-preview{pointer-events:none;position:absolute;border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:1px;--tw-border-style: dashed;border-style:dashed;border-color:transparent;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.lw-pane-drop-zone.cdk-drop-list-dragging .lw-pane-drop-preview{border-color:var(--lw-brand);background-color:var(--lw-brand);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--lw-brand) 15%,transparent)}}.lw-pane-drop-preview--left{inset:0 50% 0 0}.lw-pane-drop-preview--right{inset:0 0 0 50%}.lw-pane-drop-preview--top{inset:0 0 50%}.lw-pane-drop-preview--bottom{inset:50% 0 0}.lw-pane-drop-preview--fill{inset:0}.lw-pane-animate{transition:flex-grow .16s ease,flex-basis .16s ease}.lw-pane-minimized-strip{animation:lw-fade-in .16s ease-out;overflow:hidden}lw-content-grid.fixed{animation:lw-maximize-in .14s ease-out}@keyframes lw-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lw-maximize-in{0%{opacity:.4}to{opacity:1}}lw-tooltip{position:absolute;inset:0;pointer-events:none}.lw-tooltip-bubble{border-radius:var(--radius-md);background-color:var(--lw-tooltip);padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height));--tw-font-weight: var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--lw-tooltip-content);--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);position:fixed;inset:auto;margin:0;border:0;width:max-content;white-space:normal;pointer-events:none}body.lw-menu-open .lw-tooltip-bubble{display:none!important}lw-select{position:relative;display:inline-block}lw-select>lw-option{display:none}.lw-select-trigger{display:flex;height:calc(var(--spacing) * 8.5);align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--lw-border);background-color:var(--lw-surface-overlay);padding-inline:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height));color:var(--lw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));&:hover{@media(hover:hover){background-color:var(--lw-surface-raised)}}&:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}&:focus-visible{outline-offset:2px}&:focus-visible{outline-color:var(--lw-brand)}&:disabled{cursor:not-allowed}&:disabled{opacity:50%}&:disabled{&:hover{@media(hover:hover){background-color:var(--lw-surface-overlay)}}}}.lw-select-value{display:flex;align-items:center;gap:calc(var(--spacing) * 1.5)}.lw-select-chevron{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height));color:var(--lw-content-muted)}.lw-select-listbox{z-index:50;min-width:calc(var(--spacing) * 40);overflow:auto;border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--lw-border);background-color:var(--lw-surface-overlay);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height));--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);position:fixed;position-area:block-end span-inline-end;position-try-fallbacks:flip-block,flip-inline;max-height:16rem;margin-top:.25rem}.lw-select-option{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);color:var(--lw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));outline:none}.lw-select-option:hover,.lw-select-option.is-active{background-color:var(--lw-surface-raised)}.lw-select-option[aria-selected=true]{color:var(--lw-brand-text)}.lw-select-option[aria-disabled=true]{pointer-events:none;opacity:50%}.lw-select-glyph{font-size:var(--text-base);line-height:var(--tw-leading, var(--text-base--line-height));--tw-leading: 1;line-height:1}lw-menu{z-index:50;min-width:calc(var(--spacing) * 44);overflow:auto;border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--lw-border);background-color:var(--lw-surface-overlay);padding-block:var(--spacing);font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height));--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);position:fixed;max-height:24rem;outline:none}lw-menu-item{display:flex;cursor:pointer;align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);color:var(--lw-content);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));outline:none}lw-menu-item:hover,lw-menu-item:focus{background-color:var(--lw-surface-raised)}lw-menu-item[aria-disabled=true]{pointer-events:none;opacity:50%}.lw-menu-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-menu-item-shortcut{margin-left:calc(var(--spacing) * 4);flex-shrink:0;font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height));color:var(--lw-content-muted)}.lw-menu-item-lead{display:none;width:calc(var(--spacing) * 4);flex-shrink:0;align-items:center;justify-content:center;color:var(--lw-content-muted)}.lw-menu--leading .lw-menu-item-lead{display:flex}.lw-menu-separator{margin-block:var(--spacing);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--lw-border);height:0}}@layer base{button:not(:disabled),[role=button]:not([aria-disabled=true]){cursor:pointer}}html,body{margin:0}body{font-family:var(--lw-font-sans);background:var(--lw-surface);color:var(--lw-content)}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.lw-spinner-ring{animation-duration:.8s!important;animation-iteration-count:infinite!important}}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-outline-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-backdrop-blur{syntax: "*"; inherits: false;}@property --tw-backdrop-brightness{syntax: "*"; inherits: false;}@property --tw-backdrop-contrast{syntax: "*"; inherits: false;}@property --tw-backdrop-grayscale{syntax: "*"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: "*"; inherits: false;}@property --tw-backdrop-invert{syntax: "*"; inherits: false;}@property --tw-backdrop-opacity{syntax: "*"; inherits: false;}@property --tw-backdrop-saturate{syntax: "*"; inherits: false;}@property --tw-backdrop-sepia{syntax: "*"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-outline-style: solid;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-font-weight: initial;--tw-border-style: solid;--tw-leading: initial;--tw-tracking: initial;--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial}}}
@@ -1,4 +1,4 @@
1
- /* @loomweaver/frame-kit 0.7.2 — lw-frame.d.ts. Generated by build.mjs; do not edit. Serve the dist/ files same-origin under /frame-kit/. */
1
+ /* @loomweaver/frame-kit 0.7.3 — lw-frame.d.ts. Generated by build.mjs; do not edit. Serve the dist/ files same-origin under /frame-kit/. */
2
2
  interface LwSurfaceRenderState {
3
3
  readonly theme?: 'light' | 'dark';
4
4
  readonly tokens?: Readonly<Record<string, string>>;
@@ -1,2 +1,2 @@
1
- /* @loomweaver/frame-kit 0.7.2 — penpal.global.js. Generated by build.mjs; do not edit. Serve the dist/ files same-origin under /frame-kit/. */
1
+ /* @loomweaver/frame-kit 0.7.3 — penpal.global.js. Generated by build.mjs; do not edit. Serve the dist/ files same-origin under /frame-kit/. */
2
2
  var Penpal=(()=>{var _=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var X=Object.prototype.hasOwnProperty;var q=(e,t)=>{for(var r in t)_(e,r,{get:t[r],enumerable:!0})},B=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of J(t))!X.call(e,s)&&s!==r&&_(e,s,{get:()=>t[s],enumerable:!(n=G(t,s))||n.enumerable});return e};var Q=e=>B(_({},"__esModule",{value:!0}),e);var Fe={};q(Fe,{CallOptions:()=>j,ErrorCode:()=>be,PenpalError:()=>d,PortMessenger:()=>Le,Reply:()=>F,WindowMessenger:()=>Pe,WorkerMessenger:()=>_e,connect:()=>me,debug:()=>He});var Z=class extends Error{code;constructor(e,t){super(t),this.name="PenpalError",this.code=e}},d=Z,ee=e=>({name:e.name,message:e.message,stack:e.stack,penpalCode:e instanceof d?e.code:void 0}),te=({name:e,message:t,stack:r,penpalCode:n})=>{let s=n?new d(n,t):new Error(t);return s.name=e,s.stack=r,s},re=Symbol("Reply"),se=class{value;transferables;#e=re;constructor(e,t){this.value=e,this.transferables=t?.transferables}},F=se,v="penpal",m=e=>typeof e=="object"&&e!==null,U=e=>typeof e=="function",ne=e=>m(e)&&e.namespace===v,I=e=>e.type==="SYN",R=e=>e.type==="ACK1",A=e=>e.type==="ACK2",x=e=>e.type==="CALL",$=e=>e.type==="REPLY",ae=e=>e.type==="DESTROY",V=(e,t=[])=>{let r=[];for(let n of Object.keys(e)){let s=e[n];U(s)?r.push([...t,n]):m(s)&&r.push(...V(s,[...t,n]))}return r},ie=(e,t)=>{let r=e.reduce((n,s)=>m(n)?n[s]:void 0,t);return U(r)?r:void 0},y=e=>e.join("."),D=(e,t,r)=>({namespace:v,channel:e,type:"REPLY",callId:t,isError:!0,...r instanceof Error?{value:ee(r),isSerializedErrorInstance:!0}:{value:r}}),oe=(e,t,r,n)=>{let s=!1,u=async f=>{if(s||!x(f))return;n?.(`Received ${y(f.methodPath)}() call`,f);let{methodPath:p,args:c,id:i}=f,a,M;try{let l=ie(p,t);if(!l)throw new d("METHOD_NOT_FOUND",`Method \`${y(p)}\` is not found.`);let h=await l(...c);h instanceof F&&(M=h.transferables,h=await h.value),a={namespace:v,channel:r,type:"REPLY",callId:i,value:h}}catch(l){a=D(r,i,l)}if(!s)try{n?.(`Sending ${y(p)}() reply`,a),e.sendMessage(a,M)}catch(l){throw l.name==="DataCloneError"&&(a=D(r,i,l),n?.(`Sending ${y(p)}() reply`,a),e.sendMessage(a)),l}};return e.addMessageHandler(u),()=>{s=!0,e.removeMessageHandler(u)}},de=oe,Y=crypto.randomUUID?.bind(crypto)??(()=>new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")),le=Symbol("CallOptions"),ce=class{transferables;timeout;#e=le;constructor(e){this.transferables=e?.transferables,this.timeout=e?.timeout}},j=ce,he=new Set(["apply","call","bind"]),W=(e,t,r=[])=>new Proxy(r.length?()=>{}:Object.create(null),{get(n,s){if(s!=="then")return r.length&&he.has(s)?Reflect.get(n,s):W(e,t,[...r,s])},apply(n,s,u){return e(r,u)}}),b=e=>new d("CONNECTION_DESTROYED",`Method call ${y(e)}() failed due to destroyed connection`),ue=(e,t,r)=>{let n=!1,s=new Map,u=c=>{if(!$(c))return;let{callId:i,value:a,isError:M,isSerializedErrorInstance:l}=c,h=s.get(i);h&&(s.delete(i),r?.(`Received ${y(h.methodPath)}() call`,c),M?h.reject(l?te(a):a):h.resolve(a))};return e.addMessageHandler(u),{remoteProxy:W((c,i)=>{if(n)throw b(c);let a=Y(),M=i[i.length-1],l=M instanceof j,{timeout:h,transferables:P}=l?M:{},S=l?i.slice(0,-1):i;return new Promise((N,w)=>{let T=h!==void 0?window.setTimeout(()=>{s.delete(a),w(new d("METHOD_CALL_TIMEOUT",`Method call ${y(c)}() timed out after ${h}ms`))},h):void 0;s.set(a,{methodPath:c,resolve:N,reject:w,timeoutId:T});try{let E={namespace:v,channel:t,type:"CALL",id:a,methodPath:c,args:S};r?.(`Sending ${y(c)}() call`,E),e.sendMessage(E,P)}catch(E){w(new d("TRANSMISSION_FAILED",E.message))}})},r),destroy:()=>{n=!0,e.removeMessageHandler(u);for(let{methodPath:c,reject:i,timeoutId:a}of s.values())clearTimeout(a),i(b(c));s.clear()}}},fe=ue,ve=()=>{let e,t;return{promise:new Promise((n,s)=>{e=n,t=s}),resolve:e,reject:t}},pe=ve,O="deprecated-penpal",Me=e=>m(e)&&"penpal"in e,ye=e=>e.split("."),k=e=>e.join("."),ge=e=>{try{return JSON.stringify(e)}catch{return String(e)}},z=e=>new d("TRANSMISSION_FAILED",`Unexpected message to translate: ${ge(e)}`),Ee=e=>{if(e.penpal==="syn")return{namespace:v,channel:void 0,type:"SYN",participantId:O};if(e.penpal==="ack")return{namespace:v,channel:void 0,type:"ACK2"};if(e.penpal==="call")return{namespace:v,channel:void 0,type:"CALL",id:e.id,methodPath:ye(e.methodName),args:e.args};if(e.penpal==="reply")return e.resolution==="fulfilled"?{namespace:v,channel:void 0,type:"REPLY",callId:e.id,value:e.returnValue}:{namespace:v,channel:void 0,type:"REPLY",callId:e.id,isError:!0,...e.returnValueIsError?{value:e.returnValue,isSerializedErrorInstance:!0}:{value:e.returnValue}};throw z(e)},Ie=e=>{if(R(e))return{penpal:"synAck",methodNames:e.methodPaths.map(k)};if(x(e))return{penpal:"call",id:e.id,methodName:k(e.methodPath),args:e.args};if($(e))return e.isError?{penpal:"reply",id:e.callId,resolution:"rejected",...e.isSerializedErrorInstance?{returnValue:e.value,returnValueIsError:!0}:{returnValue:e.value}}:{penpal:"reply",id:e.callId,resolution:"fulfilled",returnValue:e.value};throw z(e)},we=({messenger:e,methods:t,timeout:r,channel:n,log:s})=>{let u=Y(),f,p=[],c=!1,i=V(t),{promise:a,resolve:M,reject:l}=pe(),h=r!==void 0?setTimeout(()=>{l(new d("CONNECTION_TIMEOUT",`Connection timed out after ${r}ms`))},r):void 0,P=()=>{for(let o of p)o()},S=()=>{if(c)return;p.push(de(e,t,n,s));let{remoteProxy:o,destroy:g}=fe(e,n,s);p.push(g),clearTimeout(h),c=!0,M({remoteProxy:o,destroy:P})},N=()=>{let o={namespace:v,type:"SYN",channel:n,participantId:u};s?.("Sending handshake SYN",o);try{e.sendMessage(o)}catch(g){l(new d("TRANSMISSION_FAILED",g.message))}},w=o=>{if(s?.("Received handshake SYN",o),o.participantId===f&&f!==O||(f=o.participantId,N(),!(u>f||f===O)))return;let C={namespace:v,channel:n,type:"ACK1",methodPaths:i};s?.("Sending handshake ACK1",C);try{e.sendMessage(C)}catch(K){l(new d("TRANSMISSION_FAILED",K.message));return}},T=o=>{s?.("Received handshake ACK1",o);let g={namespace:v,channel:n,type:"ACK2"};s?.("Sending handshake ACK2",g);try{e.sendMessage(g)}catch(C){l(new d("TRANSMISSION_FAILED",C.message));return}S()},E=o=>{s?.("Received handshake ACK2",o),S()},L=o=>{I(o)&&w(o),R(o)&&T(o),A(o)&&E(o)};return e.addMessageHandler(L),p.push(()=>e.removeMessageHandler(L)),N(),a},Ae=we,Se=e=>{let t=!1,r;return(...n)=>(t||(t=!0,r=e(...n)),r)},Ne=Se,H=new WeakSet,Ce=({messenger:e,methods:t={},timeout:r,channel:n,log:s})=>{if(!e)throw new d("INVALID_ARGUMENT","messenger must be defined");if(H.has(e))throw new d("INVALID_ARGUMENT","A messenger can only be used for a single connection");H.add(e);let u=[e.destroy],f=Ne(i=>{if(i){let a={namespace:v,channel:n,type:"DESTROY"};try{e.sendMessage(a)}catch{}}for(let a of u)a();s?.("Connection destroyed")}),p=i=>ne(i)&&i.channel===n;return{promise:(async()=>{try{e.initialize({log:s,validateReceivedMessage:p}),e.addMessageHandler(M=>{ae(M)&&f(!1)});let{remoteProxy:i,destroy:a}=await Ae({messenger:e,methods:t,timeout:r,channel:n,log:s});return u.push(a),i}catch(i){throw f(!0),i}})(),destroy:()=>{f(!0)}}},me=Ce,Re=class{#e;#a;#s;#n;#r;#i=new Set;#t;#o=!1;constructor({remoteWindow:e,allowedOrigins:t}){if(!e)throw new d("INVALID_ARGUMENT","remoteWindow must be defined");this.#e=e,this.#a=t?.length?t:[window.origin]}initialize=({log:e,validateReceivedMessage:t})=>{this.#s=e,this.#n=t,window.addEventListener("message",this.#h)};sendMessage=(e,t)=>{if(I(e)){let r=this.#d(e);this.#e.postMessage(e,{targetOrigin:r,transfer:t});return}if(R(e)||this.#o){let r=this.#o?Ie(e):e,n=this.#d(e);this.#e.postMessage(r,{targetOrigin:n,transfer:t});return}if(A(e)){let{port1:r,port2:n}=new MessageChannel;this.#t=r,r.addEventListener("message",this.#l),r.start();let s=[n,...t||[]],u=this.#d(e);this.#e.postMessage(e,{targetOrigin:u,transfer:s});return}if(this.#t){this.#t.postMessage(e,{transfer:t});return}throw new d("TRANSMISSION_FAILED","Cannot send message because the MessagePort is not connected")};addMessageHandler=e=>{this.#i.add(e)};removeMessageHandler=e=>{this.#i.delete(e)};destroy=()=>{window.removeEventListener("message",this.#h),this.#c(),this.#i.clear()};#u=e=>this.#a.some(t=>t instanceof RegExp?t.test(e):t===e||t==="*");#d=e=>{if(I(e))return"*";if(!this.#r)throw new d("TRANSMISSION_FAILED","Cannot send message because the remote origin is not established");return this.#r==="null"&&this.#a.includes("*")?"*":this.#r};#c=()=>{this.#t?.removeEventListener("message",this.#l),this.#t?.close(),this.#t=void 0};#h=({source:e,origin:t,ports:r,data:n})=>{if(e===this.#e){if(Me(n)){this.#s?.("Please upgrade the child window to the latest version of Penpal."),this.#o=!0;try{n=Ee(n)}catch(s){this.#s?.(`Failed to translate deprecated message: ${s.message}`);return}}if(this.#n?.(n)){if(!this.#u(t)){this.#s?.(`Received a message from origin \`${t}\` which did not match allowed origins \`[${this.#a.join(", ")}]\``);return}if(I(n)&&(this.#c(),this.#r=t),A(n)&&!this.#o){if(this.#t=r[0],!this.#t){this.#s?.("Ignoring ACK2 because it did not include a MessagePort");return}this.#t.addEventListener("message",this.#l),this.#t.start()}for(let s of this.#i)s(n)}}};#l=({data:e})=>{if(this.#n?.(e))for(let t of this.#i)t(e)}},Pe=Re,Te=class{#e;#a;#s;#n=new Set;#r;constructor({worker:e}){if(!e)throw new d("INVALID_ARGUMENT","worker must be defined");this.#e=e}initialize=({log:e,validateReceivedMessage:t})=>{this.#a=e,this.#s=t,this.#e.addEventListener("message",this.#t)};sendMessage=(e,t)=>{if(I(e)||R(e)){this.#e.postMessage(e,{transfer:t});return}if(A(e)){let{port1:r,port2:n}=new MessageChannel;this.#r=r,r.addEventListener("message",this.#t),r.start(),this.#e.postMessage(e,{transfer:[n,...t||[]]});return}if(this.#r){this.#r.postMessage(e,{transfer:t});return}throw new d("TRANSMISSION_FAILED","Cannot send message because the MessagePort is not connected")};addMessageHandler=e=>{this.#n.add(e)};removeMessageHandler=e=>{this.#n.delete(e)};destroy=()=>{this.#e.removeEventListener("message",this.#t),this.#i(),this.#n.clear()};#i=()=>{this.#r?.removeEventListener("message",this.#t),this.#r?.close(),this.#r=void 0};#t=({ports:e,data:t})=>{if(this.#s?.(t)){if(I(t)&&this.#i(),A(t)){if(this.#r=e[0],!this.#r){this.#a?.("Ignoring ACK2 because it did not include a MessagePort");return}this.#r.addEventListener("message",this.#t),this.#r.start()}for(let r of this.#n)r(t)}}},_e=Te,Oe=class{#e;#a;#s=new Set;constructor({port:e}){if(!e)throw new d("INVALID_ARGUMENT","port must be defined");this.#e=e}initialize=({validateReceivedMessage:e})=>{this.#a=e,this.#e.addEventListener("message",this.#n),this.#e.start()};sendMessage=(e,t)=>{this.#e?.postMessage(e,{transfer:t})};addMessageHandler=e=>{this.#s.add(e)};removeMessageHandler=e=>{this.#s.delete(e)};destroy=()=>{this.#e.removeEventListener("message",this.#n),this.#e.close(),this.#s.clear()};#n=({data:e})=>{if(this.#a?.(e))for(let t of this.#s)t(e)}},Le=Oe,De={ConnectionDestroyed:"CONNECTION_DESTROYED",ConnectionTimeout:"CONNECTION_TIMEOUT",InvalidArgument:"INVALID_ARGUMENT",MethodCallTimeout:"METHOD_CALL_TIMEOUT",MethodNotFound:"METHOD_NOT_FOUND",TransmissionFailed:"TRANSMISSION_FAILED"},be=De,ke=e=>(...t)=>{console.log(`\u270D\uFE0F %c${e}%c`,"font-weight: bold;","",...t)},He=ke;return Q(Fe);})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loomweaver/frame-kit",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "LoomWeaver frame UI kit: the whole <lw-*> custom-element family, the compiled .lw-* CSS class contracts and Penpal as static assets. A distribution serves them same-origin under /frame-kit/ so frame plugins paint with the host's primitives and tokens.",
5
5
  "types": "dist/lw-frame.d.ts",
6
6
  "keywords": [