graview 0.1.37 → 0.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/preview/chunk.23WYWIAJ.js +1 -0
- package/dist/preview/chunk.2BJRS3YJ.js +3 -0
- package/dist/preview/{chunk.MJLUAGEV.js → chunk.2GGDOFTF.js} +1 -1
- package/dist/preview/chunk.2HF54MYG.js +1 -0
- package/dist/preview/{chunk.X2OLXTRL.js → chunk.2IX3CZNP.js} +1 -1
- package/dist/preview/chunk.2NSTEREJ.js +1 -0
- package/dist/preview/{chunk.57XTDW57.js → chunk.2RCNSHXK.js} +1 -1
- package/dist/preview/chunk.37ASLBGE.js +1 -0
- package/dist/preview/chunk.3ZNQ5YKX.js +1 -0
- package/dist/preview/{chunk.QYWBQ5NX.js → chunk.4BBJ62ZO.js} +1 -1
- package/dist/preview/chunk.4ECICQ2S.js +1 -0
- package/dist/preview/{chunk.JBRXGPPM.js → chunk.4PNFX3TX.js} +1 -1
- package/dist/preview/{chunk.6DYZBDWT.js → chunk.546WEHEX.js} +1 -1
- package/dist/preview/chunk.57OPL5WD.js +1 -0
- package/dist/preview/{chunk.5CLFTXP3.js → chunk.5JPRFXYQ.js} +1 -1
- package/dist/preview/chunk.5OJJ2TKZ.js +9 -0
- package/dist/preview/chunk.5R4E5C76.js +1 -0
- package/dist/preview/{chunk.YAXOIJVH.js → chunk.5XNVN4HE.js} +1 -1
- package/dist/preview/chunk.5ZMENPY4.js +5 -0
- package/dist/preview/{chunk.74DXEKUV.js → chunk.67USHK26.js} +1 -1
- package/dist/preview/chunk.6CFP5UYP.js +1 -0
- package/dist/preview/{chunk.JDRM6XXD.js → chunk.6DHHUBSC.js} +1 -1
- package/dist/preview/chunk.6HBEYRJU.js +1 -0
- package/dist/preview/chunk.6L7IDF3J.js +1 -0
- package/dist/preview/{chunk.UV2TSAB4.js → chunk.6XU2CXRZ.js} +1 -1
- package/dist/preview/chunk.7EFNLMKU.js +1 -0
- package/dist/preview/chunk.7WSXVXP3.js +1 -0
- package/dist/preview/chunk.ALDLAQ7V.js +1 -0
- package/dist/preview/chunk.AYHCQWSU.js +1 -0
- package/dist/preview/{chunk.FGYCYLUS.js → chunk.B2IRADR2.js} +1 -1
- package/dist/preview/{chunk.SZMWJHU2.js → chunk.B7TB6YRZ.js} +1 -1
- package/dist/preview/chunk.BCHHBGM6.js +1 -0
- package/dist/preview/chunk.BEC5ZH2L.js +1 -0
- package/dist/preview/chunk.BL4S3I2N.js +1 -0
- package/dist/preview/chunk.BS3FX4PX.js +1 -0
- package/dist/preview/chunk.BTSXYZ6Z.js +25 -0
- package/dist/preview/chunk.BYKR7NEE.js +1 -0
- package/dist/preview/chunk.BZSU4HH2.js +1 -0
- package/dist/preview/chunk.C2OAKTZX.js +1 -0
- package/dist/preview/chunk.C4CFYTCW.js +1 -0
- package/dist/preview/{chunk.QJYALCIW.js → chunk.C6X7CKU6.js} +1 -1
- package/dist/preview/chunk.CAMQ7MYJ.js +1 -0
- package/dist/preview/{chunk.LJE5J3JK.js → chunk.CC47O2DW.js} +1 -1
- package/dist/preview/{chunk.TRLVFHFT.js → chunk.CF7DHTKL.js} +2 -2
- package/dist/preview/{chunk.CV4CBHFT.js → chunk.CMN6VVK2.js} +1 -1
- package/dist/preview/chunk.CTK2P4JV.js +3 -0
- package/dist/preview/chunk.DAA7IDQ4.js +1 -0
- package/dist/preview/{chunk.TSI4O3GH.js → chunk.DYNBWIPF.js} +1 -1
- package/dist/preview/chunk.E3HXXUKY.js +1 -0
- package/dist/preview/{chunk.KAWP4RNR.js → chunk.EBHKKOPO.js} +1 -1
- package/dist/preview/chunk.EDC4EMIX.js +1 -0
- package/dist/preview/chunk.EM4Y4YAD.js +2 -0
- package/dist/preview/{chunk.GMZAQGH7.js → chunk.EWWJMS6G.js} +1 -1
- package/dist/preview/chunk.F5UVEF2R.js +1 -0
- package/dist/preview/{chunk.5JPRRV47.js → chunk.FCXBCKED.js} +1 -1
- package/dist/preview/chunk.FGDHEVH4.js +1 -0
- package/dist/preview/chunk.FILCNVGH.js +2 -0
- package/dist/preview/chunk.FJBQ4UP3.js +32 -0
- package/dist/preview/{chunk.EKUAI5YL.js → chunk.FMN5XDLE.js} +1 -1
- package/dist/preview/chunk.G23VFYGF.js +88 -0
- package/dist/preview/chunk.G46WGK5E.js +1 -0
- package/dist/preview/chunk.GAFYE37S.js +3 -0
- package/dist/preview/{chunk.TN4GY6LW.js → chunk.GP2F7TIN.js} +1 -1
- package/dist/preview/chunk.GXKECZ4S.js +19 -0
- package/dist/preview/{chunk.NOZEHLWG.js → chunk.H5CZZZLX.js} +1 -1
- package/dist/preview/{chunk.CGQLE7JW.js → chunk.HA3PPIEQ.js} +1 -1
- package/dist/preview/chunk.HFDYFPMJ.js +1 -0
- package/dist/preview/chunk.HFYUAK5Z.js +6 -0
- package/dist/preview/chunk.HGS32FT2.js +1 -0
- package/dist/preview/chunk.HHUCPVG5.js +1 -0
- package/dist/preview/chunk.I7CU2E3C.js +7 -0
- package/dist/preview/{chunk.3V2M3S4U.js → chunk.IAZRY42B.js} +1 -1
- package/dist/preview/{chunk.UPBUF7KR.js → chunk.ITEF3U2E.js} +1 -1
- package/dist/preview/{chunk.SNKOPWAD.js → chunk.IXYBIDAN.js} +1 -1
- package/dist/preview/{chunk.NZJZIYDK.js → chunk.J3M2MZHG.js} +1 -1
- package/dist/preview/{chunk.YX354FRV.js → chunk.JBTU2PJ4.js} +1 -1
- package/dist/preview/chunk.JCR3ECUM.js +1 -0
- package/dist/preview/{chunk.XS3SAH6U.js → chunk.JEZTPXEB.js} +1 -1
- package/dist/preview/chunk.KIJCOW25.js +1 -0
- package/dist/preview/{chunk.YFW5BF6J.js → chunk.KJNUZYXS.js} +1 -1
- package/dist/preview/chunk.L7DQKPJV.js +117 -0
- package/dist/preview/{chunk.UCVZG7S4.js → chunk.LCYMYLOP.js} +1 -1
- package/dist/preview/chunk.LP2DJ5ZB.js +6 -0
- package/dist/preview/chunk.LP3QUPCE.js +1 -0
- package/dist/preview/chunk.M5QFUGGG.js +1 -0
- package/dist/preview/chunk.N2SV3KX7.js +1 -0
- package/dist/preview/chunk.N7N5OFPL.js +1 -0
- package/dist/preview/{chunk.BA3REPV5.js → chunk.NG3YMQ36.js} +1 -1
- package/dist/preview/{chunk.7OLVQ2FZ.js → chunk.NSNGPQGT.js} +1 -1
- package/dist/preview/chunk.OJKS3UQS.js +1 -0
- package/dist/preview/{chunk.UR5TT4JH.js → chunk.OM5CDW2S.js} +1 -1
- package/dist/preview/chunk.ORXFUK6F.js +344 -0
- package/dist/preview/chunk.OXTUXWMU.js +1 -0
- package/dist/preview/chunk.OYMM2UWE.js +1 -0
- package/dist/preview/chunk.P3JYH6HO.js +1 -0
- package/dist/preview/{chunk.AWRS6TUN.js → chunk.P4WYBSYA.js} +1 -1
- package/dist/preview/chunk.P5325GYR.js +1 -0
- package/dist/preview/chunk.PMER4LVT.js +1 -0
- package/dist/preview/chunk.PONWLTTB.js +1 -0
- package/dist/preview/chunk.PXQVXBNG.js +1 -0
- package/dist/preview/chunk.QCF6Z2AZ.js +1 -0
- package/dist/preview/chunk.QEXXLWEU.js +6 -0
- package/dist/preview/chunk.QMFUPTR4.js +1 -0
- package/dist/preview/chunk.RM7NVN7B.js +3 -0
- package/dist/preview/{chunk.RPOYSIVQ.js → chunk.ROINZMNO.js} +1 -1
- package/dist/preview/chunk.ROKRQRID.js +35 -0
- package/dist/preview/chunk.RWB4235L.js +1 -0
- package/dist/preview/chunk.RXSHFG6S.js +1 -0
- package/dist/preview/chunk.SDO3U72B.js +1 -0
- package/dist/preview/chunk.SHNYYBNW.js +1 -0
- package/dist/preview/{chunk.HYAKRLPT.js → chunk.SK33IHL2.js} +3 -3
- package/dist/preview/chunk.STBJV6HJ.js +1 -0
- package/dist/preview/chunk.TCUB6IDY.js +1 -0
- package/dist/preview/chunk.TJCTTJWE.js +1 -0
- package/dist/preview/{chunk.WVEKYJSI.js → chunk.TU4KG22J.js} +6 -6
- package/dist/preview/chunk.U4E5GQTK.js +1 -0
- package/dist/preview/{chunk.4NCXMVPY.js → chunk.U7QMA4H7.js} +1 -1
- package/dist/preview/chunk.UB3O3QJQ.js +2 -0
- package/dist/preview/{chunk.ENJKCSNX.js → chunk.UCZR33MK.js} +1 -1
- package/dist/preview/chunk.UGCNMAPC.js +1 -0
- package/dist/preview/chunk.UIUHGA6W.js +1 -0
- package/dist/preview/chunk.VC4JPG7O.js +1 -0
- package/dist/preview/{chunk.YNJOLOFG.js → chunk.W4OX4BMP.js} +1 -1
- package/dist/preview/chunk.WJQY4E45.js +1 -0
- package/dist/preview/chunk.WQPNGBR7.js +1 -0
- package/dist/preview/chunk.WTZOOAIW.js +1 -0
- package/dist/preview/chunk.WXYUWBKX.js +1 -0
- package/dist/preview/chunk.XBOZTQQA.js +1 -0
- package/dist/preview/chunk.XLI44BBI.js +17 -0
- package/dist/preview/chunk.XLZ2QRRS.js +1 -0
- package/dist/preview/chunk.XQTMO5PW.js +1 -0
- package/dist/preview/chunk.YWVOACSX.js +5 -0
- package/dist/preview/{chunk.BXWO6ILK.js → chunk.YXGI7H4Y.js} +1 -1
- package/dist/preview/{chunk.UVLPVHID.js → chunk.Z7JRBKA7.js} +1 -1
- package/dist/preview/chunk.ZR5KVYWZ.js +21 -0
- package/dist/preview/{chunk.WNMLA4YW.js → chunk.ZTMDU3OH.js} +1 -1
- package/dist/preview/index.html +45 -42
- package/dist/preview/page.js +7 -7
- package/package.json +6 -6
- package/dist/preview/chunk.24E4R4ZH.js +0 -1
- package/dist/preview/chunk.2JF254FO.js +0 -9
- package/dist/preview/chunk.2TDB4D6Y.js +0 -1
- package/dist/preview/chunk.3IVVXVG7.js +0 -1
- package/dist/preview/chunk.3KJQXYCA.js +0 -1
- package/dist/preview/chunk.5EXYDBAL.js +0 -88
- package/dist/preview/chunk.67PVRVAC.js +0 -1
- package/dist/preview/chunk.6SK2K72G.js +0 -1
- package/dist/preview/chunk.76QUEWYD.js +0 -1
- package/dist/preview/chunk.7MMNMZLF.js +0 -1
- package/dist/preview/chunk.7UQOXYJX.js +0 -1
- package/dist/preview/chunk.AHC4EXLW.js +0 -3
- package/dist/preview/chunk.AZ333RB3.js +0 -1
- package/dist/preview/chunk.BRBY5WJT.js +0 -3
- package/dist/preview/chunk.CYPTJNES.js +0 -1
- package/dist/preview/chunk.D2ILIAND.js +0 -1
- package/dist/preview/chunk.DLCFCMKX.js +0 -1
- package/dist/preview/chunk.DMUUYZ37.js +0 -1
- package/dist/preview/chunk.DNNL7F3P.js +0 -25
- package/dist/preview/chunk.EHT4HBH5.js +0 -35
- package/dist/preview/chunk.ELY2RMGE.js +0 -19
- package/dist/preview/chunk.ENEOGGFM.js +0 -1
- package/dist/preview/chunk.FEPYKPZE.js +0 -1
- package/dist/preview/chunk.FFW6XWHB.js +0 -17
- package/dist/preview/chunk.G7S7GLDK.js +0 -1
- package/dist/preview/chunk.GXPBRYSR.js +0 -1
- package/dist/preview/chunk.H4LFJPDV.js +0 -1
- package/dist/preview/chunk.HBBVVALN.js +0 -5
- package/dist/preview/chunk.HCK4Y6C5.js +0 -1
- package/dist/preview/chunk.HSRGYZOR.js +0 -1
- package/dist/preview/chunk.IHBIRAC4.js +0 -2
- package/dist/preview/chunk.IWK5QL6P.js +0 -1
- package/dist/preview/chunk.J2HQEUYA.js +0 -1
- package/dist/preview/chunk.JFLUVZNW.js +0 -1
- package/dist/preview/chunk.LPJY6V5D.js +0 -1
- package/dist/preview/chunk.LVLAS5GL.js +0 -1
- package/dist/preview/chunk.LVNAB2BW.js +0 -27
- package/dist/preview/chunk.LYJXX6BU.js +0 -2
- package/dist/preview/chunk.MKPJKZAP.js +0 -1
- package/dist/preview/chunk.MMBMVHIG.js +0 -1
- package/dist/preview/chunk.NNNVB6RV.js +0 -1
- package/dist/preview/chunk.NV6IZJKA.js +0 -1
- package/dist/preview/chunk.NWHFFOXW.js +0 -1
- package/dist/preview/chunk.O6KNGFWH.js +0 -1
- package/dist/preview/chunk.PMK73A53.js +0 -1
- package/dist/preview/chunk.PQPZZ7ZW.js +0 -117
- package/dist/preview/chunk.QMZUKAPJ.js +0 -1
- package/dist/preview/chunk.QNGFBJWP.js +0 -1
- package/dist/preview/chunk.QOXTBRKE.js +0 -1
- package/dist/preview/chunk.QXARGANF.js +0 -341
- package/dist/preview/chunk.TX5QIZEP.js +0 -1
- package/dist/preview/chunk.TXS4I326.js +0 -1
- package/dist/preview/chunk.U4URQDC5.js +0 -1
- package/dist/preview/chunk.VUKHDZNI.js +0 -1
- package/dist/preview/chunk.VW6WGFL6.js +0 -1
- package/dist/preview/chunk.VX7MGVP5.js +0 -1
- package/dist/preview/chunk.WLV2QYTS.js +0 -1
- package/dist/preview/chunk.WNKRXL3O.js +0 -1
- package/dist/preview/chunk.XWJ2MRQF.js +0 -1
- package/dist/preview/chunk.Y44TR4WG.js +0 -1
- package/dist/preview/chunk.YW2BZ2LH.js +0 -6
- package/dist/preview/chunk.ZB7GV3IT.js +0 -1
- package/dist/preview/chunk.ZOT4V66Q.js +0 -3
- package/dist/preview/chunk.ZYPCE2LZ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk.AJZBJBMO.js";var e='"use strict";\n/*! @remote-dom/core and @remote-dom/polyfill \u2014 Copyright 2020-present, Shopify Inc. \u2014 MIT License.\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * @graview/guest\'s worker runtime \u2014 Elastic License 2.0. */\n"use strict";(()=>{var Oe=globalThis,Yr=Oe.addEventListener,Wr=Oe.removeEventListener,Xr=Oe.postMessage,$r=globalThis.queueMicrotask,an=globalThis.performance,Kr=an?an.now.bind(an):Date.now,Re={listen:t=>Yr.call(Oe,"message",t),unlisten:t=>Wr.call(Oe,"message",t),post:t=>Xr.call(Oe,t),microtask:t=>$r.call(globalThis,t),now:()=>Kr()};var w=Symbol("name"),ue=Symbol("prefix"),de=Symbol("value"),x=Symbol("ns"),F=Symbol("owner"),I=Symbol("owner_document"),te=Symbol("attributes"),M=Symbol("prev"),m=Symbol("next"),S=Symbol("child"),q=Symbol("parent"),fe=Symbol("host"),X=Symbol("data"),Ee=Symbol("listeners"),ln=Symbol("isTrusted"),Ae=Symbol("path"),_e=Symbol("stop_immediate_propagation"),Pe=Symbol("dispatching"),ie=Symbol("content"),D=Symbol("hooks"),ut=Symbol("extensions"),Ne=Symbol("hooks_dispatch"),U=Symbol("is_connected"),Ce=Symbol("create_element"),zn=0,W=1,ke=2,Ie=3,Me=8,Te=9,jn=10,me=11,_="http://www.w3.org/1999/xhtml",$="http://www.w3.org/2000/svg",Fn="http://www.w3.org/XML/1998/namespace",We="http://www.w3.org/2000/xmlns/";function dt(t){return t.split(/[\\t\\n\\f\\r ]+/).filter(Boolean)}function H(t){return t.replace(/[A-Z]/g,e=>String.fromCharCode(e.charCodeAt(0)+32))}function qn(t){return t.replace(/[a-z]/g,e=>String.fromCharCode(e.charCodeAt(0)-32))}function C(t,e){let n=globalThis.DOMException;if(typeof n=="function")return new n(t,e);let r=new Error(t);return r.name=e,r}var Yn=/^(?:[A-Za-z][^\\0\\t\\n\\f\\r\\u0020/>]*|[:_\\u0080-\\u{10FFFF}][A-Za-z0-9-.:_\\u0080-\\u{10FFFF}]*)$/u,Wn=/[\\0\\t\\n\\f\\r />=]/u,Zr=/[\\0\\t\\n\\f\\r />]/u;function se(t){if(t==null)return null;let e=String(t);return e===""?null:e}function Xn(t){Yn.test(t)||un(t)}function cn(t){(t===""||Wn.test(t))&&un(t)}function ft(t,e,n){let r=se(t),o=String(e),i=o.indexOf(":"),s=i<0?null:o.slice(0,i),a=i<0?o:o.slice(i+1);if((s!=null&&(s===""||Zr.test(s))||(n==="element"?!Yn.test(a):a===""||Wn.test(a)))&&un(o),s!=null&&r==null)throw C(`A namespace is required for the prefix in "${o}"`,"NamespaceError");if(s==="xml"&&r!==Fn)throw C("The xml prefix requires the XML namespace","NamespaceError");if((o==="xmlns"||s==="xmlns")&&r!==We)throw C("The xmlns name requires the XMLNS namespace","NamespaceError");if(r===We&&o!=="xmlns"&&s!=="xmlns")throw C("The XMLNS namespace requires the xmlns name or prefix","NamespaceError");return{namespace:r,qualifiedName:o,prefix:s,localName:a}}function un(t){throw C(`Invalid name: "${t}"`,"InvalidCharacterError")}var mt=0,pt=1,$n=2,dn=3,Qr=typeof performance>"u"?Date.now:performance.now.bind(performance),V=class{static NONE=mt;static CAPTURING_PHASE=pt;static AT_TARGET=$n;static BUBBLING_PHASE=dn;timeStamp=Qr();target=null;currentTarget=null;srcElement=null;bubbles=!1;cancelable=!1;composed=!1;defaultPrevented=!1;cancelBubble=!1;eventPhase=mt;[Ae]=[];[_e]=!1;[Pe]=!1;constructor(e,n){this.type=e,Object.defineProperty(this,ln,{writable:!0,value:!1}),n&&(n.bubbles&&(this.bubbles=n.bubbles),n.cancelable&&(this.cancelable=n.cancelable),n.composed&&(this.composed=n.composed))}get isTrusted(){return this[ln]}composedPath(){return[...this[Ae]]}stopPropagation(){this.cancelBubble=!0}stopImmediatePropagation(){this[_e]=!0,this.cancelBubble=!0}preventDefault(){this.cancelable&&(this.defaultPrevented=!0)}set returnValue(e){e||this.preventDefault()}get returnValue(){return!this.defaultPrevented}initEvent(e,n,r){this.type=e,this.bubbles=!!n,this.cancelable=!!r}};function fn(t,e,n){if(t.cancelBubble)return;let o=e[Ee]?.get(t.type)?.[n===pt?"capture":"bubble"];if(o)for(let i of[...o]){if(!o.has(i)||i.signal?.aborted)continue;t.eventPhase=t.target===e?$n:n,t.currentTarget=e;let s=i.normalizedListener;try{typeof s=="object"?s.handleEvent(t):s.call(e,t)}catch(a){setTimeout(Jr,0,a)}if(t[_e])break}}function Jr(t){throw t}var Xe=[],ht=new WeakMap;function gt(t,e){let n=ht.get(t);n?n.push(e):ht.set(t,[e]),Xe[Xe.length-1].push(t)}function B(t){let e=[];Xe.push(e);let n;try{n=t()}catch(r){Xe.pop();try{Kn(e)}catch{}throw r}return Xe.pop(),Kn(e),n}function Kn(t){let e,n=!1;for(let r of t){let o=ht.get(r);if(o){for(;o.length>0;){let i=o.shift();try{i()}catch(s){n||(e=s,n=!0)}}ht.delete(r)}}if(n)throw e}var yt=[],$e=[],mn=!1;function we(t){for(let e of t)yt.push(e),e[1]&&$e.push(e[1]);if(!mn){mn=!0;try{let e,n=!1;for(let r=0;r<yt.length;r++){let[o,i]=yt[r];i&&$e.splice($e.indexOf(i),1);try{o()}catch(s){n||(e=s,n=!0)}}if(n)throw e}finally{yt.length=0,$e.length=0,mn=!1}}}function Ke(t){let e=t;for(;e;){if($e.includes(e))return!0;e=e[q]??e[fe]}return!1}var Ze=Symbol("listenerRegistrations"),pe=class{[Ee]=void 0;[Ze]=void 0;[I]=void 0;addEventListener(e,n,r){if(n==null)return;let o=r===!0||typeof r=="object"&&r.capture===!0,i=typeof r=="object"&&r.once===!0,s=typeof r=="object"?r.signal:void 0;if(s?.aborted)return;let a=pn(o),c=this[Ze];c||(c=new Map,this[Ze]=c);let u=c.get(e);u||(u={},c.set(e,u));let f=u[a];if(f||(f=new Map,u[a]=f),f.has(n))return;let p=this,h={type:e,listener:n,capture:o,once:i,normalizedListener:n,signal:s};(i||s)&&(h.normalizedListener=function(...k){if(h.signal?.aborted){bt(p,h);return}return h.once&&bt(p,h),typeof h.listener=="object"?h.listener.handleEvent(...k):h.listener.call(this,...k)});let g=this[Ee];g||(g=new Map,this[Ee]=g);let v=g.get(e);v||(v={},g.set(e,v));let y=v[a];if(y||(y=new Set,v[a]=y),f.set(n,h),y.add(h),s){let b=()=>{bt(p,h)};h.abortListener=b,s.addEventListener("abort",b,{once:!0})}this[I]?.defaultView[Ne].addEventListener?.(this,e,n,r)}removeEventListener(e,n,r){return eo.call(this,e,n,r)}dispatchEvent(e){if(e[Pe])throw C("Failed to execute \'dispatchEvent\' on \'EventTarget\': The event is already being dispatched.","InvalidStateError");e[Pe]=!0;try{let n=[],r=this;for(;r!=null;)n.push(r),r=r.parentNode;e.target=this,e.srcElement=this,e[Ae]=n;for(let i=n.length;i--;)if(fn(e,n[i],pt),e.cancelBubble)return!e.defaultPrevented;let o=e.bubbles?n:n.slice(0,1);for(let i=0;i<o.length;i++)if(fn(e,o[i],dn),e.cancelBubble)return!e.defaultPrevented;return!e.defaultPrevented}finally{e[Pe]=!1,e.cancelBubble=!1,e[_e]=!1,e.eventPhase=mt,e.currentTarget=null,e[Ae]=[]}}};function eo(t,e,n){if(e==null)return;let r=n===!0||n&&n.capture===!0,o=pn(!!r),i=this[Ze]?.get(t)?.[o]?.get(e);i&&bt(this,i)}function pn(t){return t?"capture":"bubble"}function bt(t,e){let n=pn(e.capture),r=t[Ze],o=r?.get(e.type);if(!o)return;let i=o[n];if(!i||i.get(e.listener)!==e)return;i.delete(e.listener),i.size===0&&delete o[n],!o.bubble&&!o.capture&&r?.delete(e.type),e.signal&&e.abortListener&&e.signal.removeEventListener("abort",e.abortListener);let s=t[Ee],a=s?.get(e.type);if(!a)return;let c=a[n];c?.delete(e)&&(c.size===0&&delete a[n],!a.bubble&&!a.capture&&s?.delete(e.type),t[I]?.defaultView[Ne].removeEventListener?.(t,e.type,e.listener,e.capture))}var K=class extends Array{item(e){return this[e]??null}};var Je=0,Zn=1,yn=2,bn=3,et=4,Qn=0,Jn=1,Tt=2,wt=3,er=4,gn=5,tr=6,nr=7,Et=/^(?:--|-?[A-Za-z_\\u0080-\\u{10FFFF}])[A-Za-z0-9_\\u0080-\\u{10FFFF}-]*$/u;function to(t,e){let n=1,r=null;for(let o=e;o<t.length;o++){let i=t[o];if(r){i==="\\\\"?o++:i===r&&(r=null);continue}if(i===\'"\'||i==="\'")r=i;else if(i==="(")n++;else if(i===")"&&--n===0)return[t.slice(e,o),o+1]}return[t.slice(e),t.length]}function Y(t){throw C(`Invalid or unsupported selector: "${t}"`,"SyntaxError")}function xt(t,e){let n=typeof e=="string"?tt(e):[{combinator:et,matchers:e}],r=null,o=t[S];return o&&n[0].matchers.length&&En(o,n,i=>(r=i,!1)),r}function vt(t,e){let n=typeof e=="string"?tt(e):[{combinator:et,matchers:e}],r=new K,o=t[S];return o&&n[0].matchers.length&&En(o,n,i=>{r.push(i)}),r}function tt(t,e=!1,n=!1){let r={combinator:et,matchers:[]},o=[r],i=/[\\t\\n\\f\\r ]*?([>\\t\\n\\f\\r +~]?)[\\t\\n\\f\\r ]*?(?:(?:\\[[\\t\\n\\f\\r ]*([^\\]=\\t\\n\\f\\r ]+)[\\t\\n\\f\\r ]*(?:=[\\t\\n\\f\\r ]*(?:([\'"])(.*?)\\3|([^\\]\\t\\n\\f\\r ]+)))?[\\t\\n\\f\\r ]*(?:\\]|$))|([#.]?)([^\\t\\n\\f\\r #.[>:+~()]+)|:(\\w+)(\\()?)/gi,s=t.replace(/^[\\t\\n\\f\\r ]+|[\\t\\n\\f\\r ]+$/g,"");s===""&&Y(t);let a=0,c;for(;c=i.exec(s);){c.index!==a&&Y(t),c[1]&&(r.matchers.length===0&&!(n&&o.length===1)&&Y(t),c[1]===">"?r.combinator=Zn:c[1]==="+"?r.combinator=bn:c[1]==="~"?r.combinator=yn:r.combinator=Je,r={combinator:et,matchers:[]},o.push(r));let u=c[8]?H(c[8]):c[2]||c[7];c[7]!=null&&!c[6]&&r.matchers.length>0&&Y(t);let p,h=c[4]??c[5]??c[7];if(c[2]){Et.test(u)||Y(t);let g=c[5],v=g?.[0];if(c[3]==null&&(v===\'"\'||v==="\'")){let y=c[0].lastIndexOf(g);h=s.slice(c.index+y+1),i.lastIndex=s.length}else g!=null&&!Et.test(g)&&Y(t);p=er}else c[6]?(Et.test(u)||Y(t),p=c[6]==="#"?Tt:wt):c[8]?p=c[9]==null?gn:tr:c[7]==="*"?p=Qn:c[7]&&Et.test(c[7])?p=Jn:Y(t);c[9]?([h,i.lastIndex]=to(s,i.lastIndex),u!=="has"&&u!=="not"&&Y(t),u==="has"&&e&&Y(t),tt(h,e||u==="has",u==="has")):p===gn&&Y(t),r.matchers.push({type:p,name:u,value:h}),a=i.lastIndex}return(a!==s.length||r.matchers.length===0)&&Y(t),o}function no(t,e){let n=tt(e);return n[0]?.matchers.length?Qe(t,n):!1}function ro(t,e){let n=tt(e,!0,!0),r=n[0];if(n.length===1&&r.matchers.length===0)return!1;let o=Je,i={type:nr,name:":scope"};if(r.matchers.length===0?(o=r.combinator,r.matchers.push(i)):n.unshift({combinator:Je,matchers:[i]}),n.some(({matchers:c})=>c.length===0))return!1;let s=o===bn||o===yn?t[m]:t[S];if(!s)return!1;let a=!1;return En(s,n,()=>(a=!0,!1),t),a}function En(t,e,n,r){let o=[],i=t;for(;i;){if(z(i)){if(Qe(i,e,r)&&n(i)===!1)return!1;let s=i[S];if(s){let a=i[m];a&&o.push(a),i=s;continue}}i=i[m]??o.pop()??null}return!0}function Qe(t,e,n){let{combinator:r,matchers:o}=e[e.length-1];if(r===et){if(!Nt(t,o,n))return!1;let a=e.slice(0,-1);return a.length===0||Qe(t,a,n)}let i=r===Zn||r===Je?q:M,s=t[i];if(!s)return!1;if(r===Je||r===yn){for(;s;){if(z(s)&&Nt(s,o,n)){let a=e.slice(0,-1);if(a.length===0||Qe(s,a,n))return!0}s=s[i]}return!1}else{if(r===bn&&!z(s)){for(;s&&!z(s);)s=s[i];if(!s)return!1}if(!z(s)||!Nt(s,o,n))return!1;let a=e.slice(0,-1);return a.length===0||Qe(s,a,n)}}function hn(t,e){return t.getAttributeNS(null,t.namespaceURI===_?H(e):e)}function Nt(t,e,n){if(!t)return!1;if(Array.isArray(e)){for(let s of e)if(Nt(t,s,n)===!1)return!1;return!0}let{type:r,name:o,value:i}=e;switch(r){case Qn:return o==="*";case Jn:return t.namespaceURI===_?t.localName===H(o):t.localName===o;case Tt:return hn(t,"id")===o;case wt:let s=hn(t,"class");return s?dt(s).includes(o):!1;case er:let a=hn(t,o);return i==null?a!=null:a===i;case nr:return t===n;case gn:Y(`:${o}`);case tr:switch(o){case"has":return ro(t,i||"");case"not":return!no(t,i||"");default:Y(`:${o}(${i})`)}}return!1}function oo(t){return t.nodeType===ke}function nt(t){return X in t}function Tn(t){return t.nodeType===Ie}function io(t){return t.nodeType===Me}function z(t){return t.nodeType===W}function Nn(t){return t.nodeType===me}function sr(t){return"appendChild"in t}function St(t){let e=[],n=[t],r=new Set(n),o=new Set,i;for(;n.length>0;){let s=n.pop();if(r.delete(s),o.has(s))continue;let a=[];for(let c of ot(s)){if(o.has(c)||(o.add(c),e.push(c),a.push(c),!z(c)))continue;let u=c[te];if(u)for(let p of u)o.has(p)||(o.add(p),e.push(p));let f=c[ie];f&&!o.has(f)&&!r.has(f)&&(r.add(f),n.push(f))}i??=a}return{nodes:e,treeNodes:i}}function rt(t,e){for(let n of t)n[I]=e}function rr(t,e){let n=t.constructor,r=new n(t.name,t.value,t.namespaceURI);return r[I]=e,r}function or(t,e){if(Tn(t))return e.createTextNode(t.data);if(io(t))return e.createComment(t.data);if(oo(t))return rr(t,e);if(z(t)){let n=e[Ce](t[w],t.namespaceURI,t[ue],t.localName);if(t[te])for(let r=0;r<t[te].length;r++){let o=t[te].item(r);n.attributes.setNamedItem(rr(o,e))}return n}else{if(Nn(t))return e.createDocumentFragment();{let n=new t.constructor;return n[I]=e,n}}}function Ot(t,e,n=t.ownerDocument){if(t.nodeType===Te)throw C("Cannot clone a document node","NotSupportedError");let r=or(t,n);if(!e||!z(t)&&!Nn(t))return r;let o=new Set([t]),i=[{source:t,destination:r,childIndex:0,cloningContent:!1}];for(;i.length>0;){let s=i[i.length-1],a,c;if(s.cloningContent)if(s.contentSource&&s.contentDestination)a=s.contentSource.childNodes[s.childIndex++],c=s.contentDestination;else{i.pop(),s.appendTo&&s.appendTo.appendChild(s.destination);continue}else if(a=s.source.childNodes[s.childIndex++],c=s.destination,!a){if(s.cloningContent=!0,s.childIndex=0,z(s.source)&&s.source.namespaceURI===_&&s.source.localName==="template"){let f=s.source[ie];f&&(o.has(f)&&ir(),o.add(f),s.contentSource=f,s.contentDestination=s.destination.content)}continue}if(!a){i.pop(),s.appendTo&&s.appendTo.appendChild(s.destination);continue}o.has(a)&&ir(),o.add(a);let u=or(a,n);z(a)||Nn(a)?i.push({source:a,destination:u,appendTo:c,childIndex:0,cloningContent:!1}):c.appendChild(u)}return r}function ir(){throw new Error("Cannot clone a cyclic or repeated node graph")}function Rt(t,e){let n=String(e);return n===""?null:xt(t,[{type:Tt,name:n}])}function At(t,e){let n=[...new Set(dt(String(e)))];return vt(t,n.map(r=>({type:wt,name:r})))}function _t(t,e){let n=String(e),r=H(n),o=[];for(let i of Pt(t))z(i)&&(n==="*"||(i.namespaceURI===_?i[w]===r:i[w]===n))&&o.push(i);return o}function Pt(t){let e=[],n=[],r=t[S];for(;r;){e.push(r);let o=r[S],i=r[m];o?(i&&n.push(i),r=o):r=i??n.pop()??null}return e}function ot(t){let e=Pt(t);return e.unshift(t),e}var Z=class extends pe{nodeType=zn;[w]="";[q]=null;[fe]=null;[S]=null;[M]=null;[m]=null;[U]=!1;get[D](){return this[I].defaultView[Ne]}get localName(){return this[w]}get nodeName(){return this[w]}get ownerDocument(){return this[I]}get isConnected(){return this[U]}isDefaultNamespace(e){let n=se(e);return so(this)===n}get parentNode(){return this[q]}set parentNode(e){}get parentElement(){let e=this[q];return!e||e.nodeType!==1?null:e}set parentElement(e){}get previousSibling(){return this[M]}set previousSibling(e){}get nextSibling(){return this[m]}set nextSibling(e){}get previousElementSibling(){let e=this[M];for(;e&&e.nodeType!==1;)e=e[M];return e}set previousElementSibling(e){}get nextElementSibling(){let e=this[m];for(;e&&e.nodeType!==1;)e=e[m];return e}set nextElementSibling(e){}get firstChild(){return this[S]}set firstChild(e){}get lastChild(){let e=this[S];for(;e;){let n=e[m];if(n==null)break;e=n}return e}set lastChild(e){}get nodeValue(){return nt(this)?this.data:null}set nodeValue(e){nt(this)&&(this.data=e)}get textContent(){if(nt(this))return this.data;let e="";for(let n of Pt(this))Tn(n)&&(e+=n.data);return e}set textContent(e){if(nt(this))this.data=e;else if(sr(this)){let n=e==null?"":String(e);n===""?this.replaceChildren():this.replaceChildren(n)}}cloneNode(e){return Ot(this,e)}contains(e){let n=e;for(;n!=null;){if(n===this)return!0;n=n.parentNode}return!1}};function so(t){let e=t;for(;e;)switch(e.nodeType){case W:{let n=e;if(n.prefix==null&&n.namespaceURI!=null)return n.namespaceURI;let r=n.attributes.getNamedItemNS(We,"xmlns");if(r!=null&&r.prefix==null)return se(r.value);e=n.parentElement;break}case Te:e=e.documentElement;break;case jn:case me:return null;case ke:e=e.ownerElement;break;default:e=e.parentElement}return null}var Q=Symbol("insertNode"),vn=Symbol("preflightInsertions"),Ct=Symbol("replaceNode"),he=class extends Z{remove(){let e=this.parentNode;e&&e.removeChild(this)}replaceWith(...e){let n=xe(e),r=this.parentNode;if(r)return wn(o=>{ae(r,n);let i=this[m];for(;i&&n.includes(i);)i=i[m];let s=xn(r,n,o);this.parentNode===r?r[Ct](s,this,o):r[Q](s,i,o)})}before(...e){let n=xe(e),r=this.parentNode;if(r)return wn(o=>{ae(r,n);let i=this[M];for(;i&&n.includes(i);)i=i[M];let s=xn(r,n,o);r[Q](s,i?i[m]:r.firstChild,o)})}after(...e){let n=xe(e),r=this.parentNode;if(r)return wn(o=>{ae(r,n);let i=this[m];for(;i&&n.includes(i);)i=i[m];let s=xn(r,n,o);r[Q](s,i,o)})}};function wn(t){return B(()=>{let e=[];try{t(e)}catch(n){try{we(e)}catch{}throw n}we(e)})}function xe(t){return t.map(e=>e instanceof Z?e:String(e))}function it(t,e){return e instanceof Z?e:t.ownerDocument.createTextNode(String(e))}function ae(t,e){for(let n of e){if(!(n instanceof Z))continue;let r=t;for(;r;){if(r===n)throw C("Cannot insert a node into itself or one of its descendants","HierarchyRequestError");r=r[q]??r[fe]}}}function xn(t,e,n){let r=[];for(let i of e)r.push(it(t,i));if(r.length===1)return r[0];let o=t.ownerDocument.createDocumentFragment();o[vn](r);for(let i of r)o[Q](i,null,n);return o}var kt,Sn=0,ar=0,lr=0,cr=0,De=!1,Rn=!1,st=!1,It=class{#t;#n=[];#e=new Set;#r=!1;constructor(e){if(typeof e!="function")throw new TypeError("MutationObserver callback must be a function");this.#t=e}observe(e,n={}){let r=ao(n),o=kt??=new WeakMap,i=o.get(e);i==null&&(i=new Map,o.set(e,i));let s=i.get(this);s==null?Sn++:On(s,-1),i.set(this,r),On(r,1),this.#e.add(e)}disconnect(){let e=kt;if(e!=null){for(let n of this.#e){let r=e.get(n),o=r?.get(this);o!=null&&(r.delete(this),Sn--,On(o,-1)),r?.size===0&&e.delete(n)}this.#e.clear(),this.#n.length=0,Sn===0&&(kt=void 0)}}takeRecords(){return this.#n.splice(0)}enqueue(e){this.#n.push(e),!this.#r&&(this.#r=!0,queueMicrotask(()=>{this.#r=!1;let n=this.takeRecords();n.length>0&&this.#t.call(this,n,this)}))}};function J(t){let e=kt;if(e==null)return;let n=new Map,r=t.target;for(;r;){let o=e.get(r);if(o)for(let[i,s]of o){if(r!==t.target&&!s.subtree)continue;let a=!1;if(t.type==="attributes"){if(!s.attributes||s.attributeFilter&&!s.attributeFilter.has(t.attributeName??""))continue;a=s.attributeOldValue}else if(t.type==="characterData"){if(!s.characterData)continue;a=s.characterDataOldValue}else if(!s.childList)continue;n.set(i,n.get(i)===!0||a)}r=r.parentNode}for(let[o,i]of n)o.enqueue({addedNodes:t.addedNodes??new K,attributeName:t.attributeName??null,attributeNamespace:t.attributeNamespace??null,nextSibling:t.nextSibling??null,oldValue:i?t.oldValue??null:null,previousSibling:t.previousSibling??null,removedNodes:t.removedNodes??new K,target:t.target,type:t.type})}function Mt(...t){let e=new K;return e.push(...t),e}function ao(t){if(t.attributes===!1&&(t.attributeOldValue||t.attributeFilter!=null))throw new TypeError("attributeOldValue and attributeFilter require attributes to be enabled");if(t.characterData===!1&&t.characterDataOldValue)throw new TypeError("characterDataOldValue requires characterData to be enabled");let e=t.attributes??(t.attributeOldValue===!0||t.attributeFilter!=null),n=t.characterData??t.characterDataOldValue===!0,r=t.childList===!0;if(!e&&!n&&!r)throw new TypeError("MutationObserver options must enable childList, attributes, or characterData");return{attributes:e,attributeFilter:t.attributeFilter==null?void 0:new Set(t.attributeFilter.map(String)),attributeOldValue:t.attributeOldValue===!0,characterData:n,characterDataOldValue:t.characterDataOldValue===!0,childList:r,subtree:t.subtree===!0}}function On(t,e){t.attributes&&(ar+=e),t.characterData&&(lr+=e),t.childList&&(cr+=e),De=ar>0,Rn=lr>0,st=cr>0}var ne=class extends he{childNodes=new K;children=new K;appendChild(e){return B(()=>this[Q](e,null))}insertBefore(e,n){return B(()=>this[Q](e,n||null))}append(...e){return B(()=>{let n=xe(e.filter(r=>r!=null));n.length>1&&ae(this,n);for(let r of n)this[Q](it(this,r),null)})}prepend(...e){return B(()=>{let n=xe(e.filter(o=>o!=null));n.length>1&&ae(this,n);let r=this.firstChild;for(let o of n)this[Q](it(this,o),r)})}replaceChildren(...e){return B(()=>{let n=xe(e.filter(o=>o!=null));ae(this,n);let r;for(;r=this.firstChild;)this.removeChildImmediately(r);for(let o of n)this[Q](it(this,o),null)})}removeChild(e){return B(()=>(this.removeChildImmediately(e),e))}removeChildImmediately(e){if(e.parentNode!==this)throw C("The node is not a child of this node","NotFoundError");let n=this[U]?ot(e):void 0,r=e[M],o=e[m],i=Dt(this,e);if(n)for(let s of n)s[U]=!1;this.queueRemovalMutationRecord(this,e,r,o),n&&this.enqueueTreeReactions(n,"disconnectedCallback"),we(this.collectRemovalHookEffects(e,i))}replaceChild(e,n){return B(()=>this[Ct](e,n))}[Ct](e,n,r){if(ae(this,[e]),n.parentNode!==this)throw C("The reference node is not a child of this parent","NotFoundError");let o=n[M],i=n[m],s=this.prepareInsertion(e),a=this[U]?ot(n):void 0,c=new Set(s.map(({node:h})=>h)),u=i;for(;u&&c.has(u);)u=u[m];let f=Dt(this,n);if(a){for(let g of a)g[U]=!1;let h=new Set(a);for(let g of s)h.has(g.node)&&(g.shouldDisconnect=!1)}this.commitInsertion(s,u);let p=this[U];return this.queueRemovalMutationRecord(this,n,o,i),this.queueInsertionMutationRecords(s),a&&this.enqueueTreeReactions(a,"disconnectedCallback"),this.enqueueInsertionReactions(s,p),this.performOrCollectHookEffects([...this.collectRemovalHookEffects(n,f),...this.collectInsertionHookEffects(s)],r),n}querySelectorAll(e){return vt(this,e)}querySelector(e){return xt(this,e)}[Q](e,n,r){return this.validateInsertion(e,n),this.insertIntoValidated(e,n,r),e}[vn](e){for(let n of e)this.validateInsertion(n,null),this.prepareInsertion(n)}validateInsertion(e,n){if(ae(this,[e]),n&&n.parentNode!==this)throw C("The reference node is not a child of this parent","NotFoundError")}insertIntoValidated(e,n,r){e===n&&(n=e[m]);let o=this.prepareInsertion(e);this.commitInsertion(o,n);let i=this[U];this.queueInsertionMutationRecords(o),this.enqueueInsertionReactions(o,i),this.performOrCollectHookEffects(this.collectInsertionHookEffects(o),r)}performOrCollectHookEffects(e,n){n?n.push(...e):we(e)}prepareInsertion(e){let n=[];if(e.nodeType===me){let s=e[S];for(;s;)n.push(s),s=s[m]}else n.push(e);let r=this[U],o=this[I],i=[];for(let s of n){let a=s[U],c=a||r,u,f;if(s[I]===o)c&&(u=ot(s));else{let p=St(s);f=p.nodes,c&&(u=p.treeNodes)}i.push({node:s,nodes:u,adoption:f,shouldDisconnect:a})}return i}commitInsertion(e,n){for(let i of e){let s=i.node[q];if(s){let a=i.node[M],c=i.node[m];i.source={parent:s,index:Dt(s,i.node),previousSibling:a,nextSibling:c}}}for(let i of e){let s=this.attachChild(i.node,n);i.insertIndex=s.index,i.previousSibling=s.previousSibling,i.nextSibling=s.nextSibling}let r=this[I];for(let{adoption:i}of e)i&&rt(i,r);let o=this[U];for(let{nodes:i}of e)if(i)for(let s of i)s[U]=o}attachChild(e,n){if(n){let i=n[M];e[m]=n,e[M]=i,i?i[m]=e:this[S]=e,n[M]=e}else{e[m]=null;let i=this[S];if(i){let s;for(;s=i[m];)i=s;i[m]=e,e[M]=i}else this[S]=e,e[M]=null}let r=z(e);e[q]=this;let o;if(n){if(o=this.childNodes.indexOf(n),this.childNodes.splice(o,0,e),r){let i=n;for(;i&&!z(i);)i=i[m];i?this.children.splice(this.children.indexOf(i),0,e):this.children.push(e)}}else o=this.childNodes.length,this.childNodes.push(e),r&&this.children.push(e);return{index:o,previousSibling:e[M],nextSibling:e[m]}}queueRemovalMutationRecord(e,n,r,o){st&&J({type:"childList",target:e,removedNodes:Mt(n),previousSibling:r,nextSibling:o})}queueInsertionMutationRecords(e){if(st)for(let n of e){let{node:r,source:o}=n;o&&this.queueRemovalMutationRecord(o.parent,r,o.previousSibling,o.nextSibling),J({type:"childList",target:this,addedNodes:Mt(r),previousSibling:n.previousSibling,nextSibling:n.nextSibling})}}collectRemovalHookEffects(e,n){return this.nodeType!==W||Ke(this)?[]:[[()=>this[D].removeChild?.(this,e,n)]]}collectInsertionHookEffects(e){let n=[];for(let r of e){let{node:o,source:i}=r;i?.parent.nodeType===W&&!Ke(i.parent)&&n.push([()=>i.parent[D].removeChild?.(i.parent,o,i.index)]),this.nodeType===W&&!Ke(this)&&n.push([()=>this[D].insertChild?.(this,o,r.insertIndex),o])}return n}enqueueInsertionReactions(e,n){for(let r of e){let{nodes:o}=r;o&&(r.shouldDisconnect&&this.enqueueTreeReactions(o,"disconnectedCallback"),n&&this.enqueueTreeReactions(o,"connectedCallback"))}}enqueueTreeReactions(e,n){dr(e,n)}};function ur(t,e,n,r){if(e.parentNode!==t)throw Error("not a child of this node");let o=t[U]?n.treeNodes:void 0,i=e[M],s=e[m],a=Dt(t,e);if(o)for(let u of o)u[U]=!1;rt(n.nodes,r),st&&J({type:"childList",target:t,removedNodes:Mt(e),previousSibling:i,nextSibling:s}),o&&dr(o,"disconnectedCallback");let c=[];t.nodeType===W&&!Ke(t)&&c.push([()=>t[D].removeChild?.(t,e,a)]),we(c)}function Dt(t,e){let n=e[M],r=e[m];n?n[m]=r:t[S]=r,r&&(r[M]=n);let o=t.childNodes.indexOf(e);return t.childNodes.splice(o,1),z(e)&&t.children.splice(t.children.indexOf(e),1),e[q]=null,e[m]=null,e[M]=null,o}function dr(t,e){for(let n of t){let r=n[e];typeof r=="function"&>(n,()=>r.call(n))}}function at(t,e,n,r,o){let{observedAttributes:i}=t.constructor,{attributeChangedCallback:s}=t;s==null||i==null||!i.includes(e)||gt(t,()=>s.call(t,e,n,r,o))}var Lt=class{[S]=null;constructor(e){this[F]=e}getNamedItem(e){let n=String(e),r=this[F][x]===_?H(n):n,o=this[S];for(;o;){if(o.name===r)return o;o=o[m]}return null}getNamedItemNS(e,n){let r=se(e),o=String(n),i=this[S];for(;i;){if(i.localName===o&&i[x]===r)return i;i=i[m]}return null}item(e){let n=this[S],r=0;for(;n;){if(r++===e)return n;n=n[m]}return null}get length(){let e=0,n=this[S];for(;n;)e++,n=n[m];return e}removeNamedItem(e){let n=String(e),r=this[F][x]===_?H(n):n;return B(()=>this.removeNamedItemImmediately(o=>o.name===r))}removeNamedItemNS(e,n){let r=se(e),o=String(n);return B(()=>this.removeNamedItemImmediately(i=>i.localName===o&&i[x]===r))}removeNamedItemImmediately(e){let n=this[F],r=this[S],o=null;for(;r!=null;){if(e(r)){o&&(o[m]=r[m]),this[S]===r&&(this[S]=r[m]);let i=r.value;return r[m]=null,r[F]=null,De&&J({type:"attributes",target:n,attributeName:r.name,attributeNamespace:r[x],oldValue:i}),n[D].removeAttribute?.(n,r.name,r[x]),at(n,r.localName,i,null,r[x]),r}o=r,r=r[m]}return null}setNamedItem(e){return B(()=>this.setNamedItemImmediately(e))}setNamedItemImmediately(e){let n=this[F],r=e[F];if(r!=null&&r!==n)throw C("The attribute is already in use by another element.","InUseAttributeError");let o=null,i=this[S],s=null;for(;i;){if(i.localName===e.localName&&i[x]===e[x]){if(i===e)return i;s?s[m]=e:this[S]=e,e[m]=i[m],i[m]=null,o=i;break}s=i,i=i[m]}o==null&&(s?s[m]=e:this[S]=e),e[F]=n,e[I]=n[I],o&&(o[F]=null);let a=o==null||o.value!==e.value,c=o!=null&&o.name!==e.name;return a&&De&&J({type:"attributes",target:n,attributeName:e.name,attributeNamespace:e[x],oldValue:o?.value??null}),c&&n[D].removeAttribute?.(n,o.name,o[x]),(a||c)&&n[D].setAttribute?.(n,e.name,e.value,e[x]),a&&at(n,e.localName,o?.value??null,e.value,e[x]),o}setNamedItemNS(e){return this.setNamedItem(e)}*[Symbol.iterator](){let e=this[S];for(;e;)yield e,e=e[m]}};var ve=class extends Z{nodeType=ke;[x]=null;[m]=null;[F]=null;constructor(e,n,r){super(),this[w]=e,this[de]=n,r&&(this[x]=r)}get nodeName(){return this[w]}set nodeName(e){}get name(){return this[w]}set name(e){}get localName(){if(this[x]==null)return this[w];let e=this[w].indexOf(":");return e<0?this[w]:this[w].slice(e+1)}get prefix(){if(this[x]==null)return null;let e=this[w].indexOf(":");return e<0?null:this[w].slice(0,e)}get value(){return this[de]}set value(e){let n=String(e),r=this[F];if(!r){this[de]=n;return}B(()=>{let o=this[de];this[de]=n,De&&o!==n&&J({type:"attributes",target:r,attributeName:this[w],attributeNamespace:this[x],oldValue:o}),this[D].setAttribute?.(r,this[w],n,this[x]),at(r,this.localName,o,n,this[x])})}get nodeValue(){return this.value}set nodeValue(e){this.value=e}get ownerElement(){return this[F]}get namespaceURI(){return this[x]}get specified(){return!0}};var lo={amp:"&",AMP:"&",apos:"\'",gt:">",GT:">",lt:"<",LT:"<",quot:\'"\',QUOT:\'"\'},co=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),uo=/(?:<([a-z][a-z0-9-:]*)((?:[\\s]+[^<>\'"=/\\s]+(?:=([\'"])[^]*?\\3|=[^>\'"\\s]*|))*)[\\s]*(\\/?)\\s*>|<\\/([a-z][a-z0-9-:]*)>|<!--(.*?)-->|([^<>]+))/gi,pr=/\\s([^<>\'"=/\\n\\s]+)(?:=(["\'])([\\s\\S]*?)\\2|=([^>\'"\\n\\s]*)|)/g,fo="|b|big|blockquote|body|br|center|code|dd|div|dl|dt|em|embed|h1|h2|h3|h4|h5|h6|head|hr|i|img|li|listing|menu|meta|nobr|ol|p|pre|ruby|s|small|span|strong|strike|sub|sup|table|tt|u|ul|var|",mo=/^(?:color|face|size)$/i;function fr(t){return t.replace(/&(?:(amp|AMP|apos|gt|GT|lt|LT|quot|QUOT)|#(\\d+)|#[xX]([\\da-fA-F]+));/g,(e,n,r,o)=>{if(n)return lo[n];let i=Number.parseInt(r??o,r?10:16);try{return String.fromCodePoint(i)}catch{return e}})}function hr(t){return t.namespaceURI===_&&co.has(t.localName)}function mr(t){let e=t.localName;return t[x]===$&&(e==="foreignObject"||e==="desc"||e==="title")}function po(t,e){if(fo.includes(`|${t}|`))return!0;if(t!=="font")return!1;for(let n of e.matchAll(pr))if(mo.test(n[1]))return!0;return!1}function Ht(t,e){let n=e.ownerDocument,r=n.createDocumentFragment(),o=[],i=r;for(let s of t.matchAll(uo)){let a=s[1];if(a){let c=s[2],u=H(a),f=o[o.length-1]?.element??e,p=f[x]===$?$:_;if(u==="svg")p=$;else if(p===$){if(mr(f))p=_;else if(po(u,c)){for(;o.length>0;){let v=o[o.length-1];if(v.element[x]!==$||mr(v.element))break;o.pop(),i=v.target}p=_}}let h=p===_?u:a,g=n[Ce](h,p,null,h);for(let v of c.matchAll(pr))g.setAttribute(v[1],fr(v[3]||v[4]||""));if(i.append(g),hr(g)||p!==_&&s[4])continue;o.push({element:g,target:i}),i=p===_&&u==="template"?g.content:g}else if(s[5]){let c=H(s[5]);for(let u=o.length-1;u>=0;u--){let f=o[u],p=H(f.element[w]);if(p===c){i=f.target,o.length=u;break}if(f.element[x]===_&&p==="template")break}}else s[6]?i.append(n.createComment(s[6])):i.append(fr(s[7]))}return r}function Gt(t){return yr([{type:"content",child:t[S]}])}function gr(t){return yr([{type:"opening",node:t}])}function yr(t){let e=[],n;for(;n=t.pop();)switch(n.type){case"opening":{let r=n.node;switch(r.nodeType){case W:{let o=r;e.push(`<${o[w]}`);let i=o[te]?.[S];for(;i;){e.push(` ${i[w]}`);let a=i[de];a!==""&&(a=String(a).replace(/&/g,"&").replace(/"/g,"""),e.push(`="${a}"`)),i=i[m]}if(e.push(">"),hr(o))break;let s=o.namespaceURI===_&&o.localName==="template"?o[ie]:o;t.push({type:"closing",name:o[w]}),t.push({type:"content",child:s?.[S]??null});break}case Ie:{let o=r;e.push(o[X].replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"));break}case Me:{let o=r;e.push(`<!--${o[X]}-->`);break}}break}case"content":{let r=n.child;r&&(t.push({type:"content",child:r[m]}),t.push({type:"opening",node:r}));break}case"closing":e.push(`</${n.name}>`);break}return e.join("")}var G=class extends ne{nodeType=W;[x]=_;[ue]=null;get namespaceURI(){return this[x]}get prefix(){return this[ue]}get localName(){let e=this[ue];return e==null?this[w]:this[w].slice(e.length+1)}get nodeName(){return this[x]===_?qn(this[w]):this[w]}get tagName(){return this.nodeName}get id(){return this.getAttributeNS(null,"id")??""}set id(e){this.setAttribute("id",String(e))}get slot(){return this.getAttributeNS(null,"slot")??""}set slot(e){let n=String(e);this.getAttributeNS(null,"slot")!==n&&this.attributes.setNamedItem(new ve("slot",n))}get attributes(){let e=this[te];return e||(e=new Lt(this),this[te]=e),e}getAttributeNames(){return[...this.attributes].map(e=>e.name)}getElementsByTagName(e){return _t(this,e)}get firstElementChild(){return this.children[0]??null}getElementsByClassName(e){return At(this,e)}get lastElementChild(){return this.children[this.children.length-1]??null}get nextElementSibling(){let e=this.nextSibling;for(;e&&e.nodeType!==1;)e=e.nextSibling;return e}get previousElementSibling(){let e=this.previousSibling;for(;e&&e.nodeType!==1;)e=e.previousSibling;return e}setAttribute(e,n){let r=String(e),o=String(n);cn(r);let i=this[x]===_?H(r):r,s=this.attributes.getNamedItemNS(null,i);s?s.value=o:this.attributes.setNamedItem(new ve(i,o))}setAttributeNS(e,n,r){let o=se(e),i=String(n),s=String(r),a=ft(o,i,"attribute"),c=this.attributes.getNamedItemNS(a.namespace,a.localName);c?c.value=s:this.attributes.setNamedItemNS(new ve(a.qualifiedName,s,a.namespace))}toggleAttribute(e,n){let r=String(e);cn(r);let o=this[x]===_?H(r):r,i=this.attributes.getNamedItemNS(null,o),s=n===void 0?void 0:!!n;return i==null?s===!1?!1:(this.attributes.setNamedItem(new ve(o,"")),!0):s===!0?!0:(this.attributes.removeNamedItemNS(null,o),!1)}getAttribute(e){let n=this.attributes.getNamedItem(e);return n&&n.value}getAttributeNS(e,n){let r=this.attributes.getNamedItemNS(e,n);return r&&r.value}hasAttribute(e){return this.attributes.getNamedItem(e)!=null}hasAttributeNS(e,n){return this.attributes.getNamedItemNS(e,n)!=null}removeAttribute(e){let n=String(e),r=this[x]===_?H(n):n;this.attributes.removeNamedItemNS(null,r)}removeAttributeNS(e,n){this.attributes.removeNamedItemNS(e,n)}get outerHTML(){return gr(this)}get innerHTML(){return Gt(this)}set innerHTML(e){if(e==null||e==="")this.replaceChildren();else{let n=Ht(String(e),this);this.replaceChildren(n)}}};var Le=class t extends G{[x]=$;get ownerSVGElement(){let e=null,n=this.parentNode;for(;n instanceof t;)e=n,n=n.parentNode;return e}};var ge=class extends he{[X]="";constructor(e){super(),this[X]=e==null?"":String(e)}setData(e){let n=Rn,r=n?this[X]:null,o="";e!=null&&(o=typeof e=="string"?e:String(e)),this[X]=o,n&&r!==o&&J({type:"characterData",target:this,oldValue:r}),this[D].setText?.(this,o)}get data(){return this[X]}set data(e){this.setData(e)}};var He=class extends ge{nodeType=Ie;[w]="#text"};var Ge=class extends ge{nodeType=Me;[w]="#comment"};var Ue=class extends ne{nodeType=me;[w]="#document-fragment";[I]=typeof window<"u"?window.document:null;getElementById(e){return Rt(this,e)}};var Ve=class extends G{get content(){let e=this[ie];return e||(e=this.ownerDocument.createDocumentFragment(),e[fe]=this,this[ie]=e),e}set content(e){}set innerHTML(e){this.content.replaceChildren(Ht(String(e),this))}get innerHTML(){let e=this[ie];return e?Gt(e):""}};var Ut=class extends G{};var Vt=class extends G{};var Bt=class extends G{};var lt=class extends ne{nodeType=Te;[w]="#document";[U]=!0;constructor(e){super(),this.defaultView=e,this[I]=this,this.documentElement=jt(new Bt,this,"html"),this.body=jt(new Ut,this,"body"),this.head=jt(new Vt,this,"head"),this.appendChild(this.documentElement),this.documentElement.appendChild(this.head),this.documentElement.appendChild(this.body)}get textContent(){return null}set textContent(e){}getElementsByClassName(e){return At(this,e)}createElement(e){let n=String(e);return Xn(n),An(this,H(n))}createElementNS(e,n){let r=ft(e,n,"element");return An(this,r.qualifiedName,r.namespace,r.prefix,r.localName)}[Ce](e,n,r,o){return An(this,e,n,r,o)}createTextNode(e){let n=zt(new He(e),this);return this[D].createText?.(n,n.data),n}createComment(e){return zt(new Ge(e),this)}createDocumentFragment(){return zt(new Ue,this)}createEvent(){return new V("")}getElementById(e){return Rt(this,e)}getElementsByTagName(e){return _t(this,e)}importNode(e,n){if(e.nodeType===Te)throw C("Cannot import a document node","NotSupportedError");return Ot(e,n,this)}adoptNode(e){if(e[I]===this)return e;let n=St(e);return B(()=>{let r=e.parentNode;return r?ur(r,e,n,this):rt(n.nodes,this),e})}};function zt(t,e){return Object.defineProperty(t,I,{value:e,writable:!0,enumerable:!1}),t}function An(t,e,n=_,r=null,o=e){let i;if(n===$)i=new Le;else if(n===_&&o==="template")i=new Ve;else if(n===_){let s=t.defaultView.customElements.get(o);i=s?new s:new G}else i=new G;return jt(i,t,e,n,r)}function jt(t,e,n,r=_,o=null){return zt(t,e),Object.defineProperties(t,{[w]:{value:n},[x]:{value:r},[ue]:{value:o}}),e[D].createElement?.(t,r),t}var Ft=class extends V{constructor(e,n){super(e,n),this.detail=n?.detail??null}initCustomEvent(e,n,r,o){super.initEvent(e,n,r),this.detail=o??null}};var qt=class extends V{constructor(e,n){super(e,n),this.message=n.message,this.filename=n.filename,this.lineno=n.lineno,this.colno=n.colno,this.error=n.error}};var Yt=class extends V{constructor(e,n){super(e,n),this.promise=n.promise,this.reason=n.reason}};var Wt=class extends V{constructor(e,n){super(e,n),this.oldState=n.oldState,this.newState=n.newState}};var Xt=class extends V{constructor(e,n={}){super(e,n),this.relatedTarget=n.relatedTarget??null}};var $t=class extends V{constructor(e,n={}){super(e,n),this.clipboardData=n.clipboardData??null}};var Kt=class extends G{};var ho=/^[a-z][^A-Z\\u0000\\t\\n\\f\\r />]*-[^A-Z\\u0000\\t\\n\\f\\r />]*$/u,go=new Set(["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"]);function br(t){return ho.test(t)&&!go.has(t)}function Er(t){return C(`Invalid custom element name: "${t}"`,"SyntaxError")}var Zt=class{registry=new Map;listenersByName=new Map;define(e,n,r){if(!br(e))throw Er(e);if(this.registry.has(e))throw C(`A custom element named "${e}" has already been defined`,"NotSupportedError");if(this.getName(n)!=null)throw C("This constructor has already been registered in this custom element registry","NotSupportedError");this.registry.set(e,n);let o=this.listenersByName.get(e);if(o!=null){this.listenersByName.delete(e);for(let i of o)i(n)}}get(e){return this.registry.get(e)}getName(e){for(let[n,r]of this.registry)if(r===e)return n;return null}whenDefined(e){if(!br(e))return Promise.reject(Er(e));let n=this.registry.get(e);if(n!=null)return Promise.resolve(n);let r=this.listenersByName.get(e);return r==null&&(r=[],this.listenersByName.set(e,r)),new Promise(o=>{r.push(o)})}upgrade(e){}initialize(e){}};var yo=["onerror","onunhandledrejection"],Tr=Symbol.for("@remote-dom/polyfill/global-property");function wr(t){return Object.getOwnPropertyDescriptors(t)}function xr(t){let e={};for(let[n,r]of Object.entries(Object.getOwnPropertyDescriptors(pe.prototype)))n!=="constructor"&&typeof r.value=="function"&&(r.value=_n(r.value.bind(t)),e[n]=r);return e}function vr(t){let e={};for(let n of yo)e[n]={configurable:!0,enumerable:!0,get:_n(()=>t[n]),set:_n(r=>{t[n]=r})};return e}function bo(t){return Object.assign(wr(t),xr(t),vr(t))}function _n(t){return Object.defineProperty(t,Tr,{value:!0}),t}function Nr(t,e){for(let n of Reflect.ownKeys(e)){let r=Eo(t,n);(r==null||No(r))&&Object.defineProperty(t,n,e[n])}}function Eo(t,e){let n=t;for(;n;){let r=Object.getOwnPropertyDescriptor(n,e);if(r)return r;n=Object.getPrototypeOf(n)}}function No(t){return[t.value,t.get,t.set].some(e=>typeof e=="function"&&e[Tr]===!0)}var Se=class extends pe{[D]={};[ut]=[];[Ne]=wo(this);name="";window=this;parent=this;self=this;top=this;document=new lt(this);customElements=new Zt;location=globalThis.location;navigator=globalThis.navigator;Event=V;ErrorEvent=qt;PromiseRejectionEvent=Yt;ToggleEvent=Wt;FocusEvent=Xt;ClipboardEvent=$t;EventTarget=pe;CustomEvent=Ft;Node=Z;ParentNode=ne;ChildNode=he;DocumentFragment=Ue;Document=lt;CharacterData=ge;Comment=Ge;Text=He;Element=G;HTMLElement=Kt;SVGElement=Le;HTMLTemplateElement=Ve;MutationObserver=It;#t=null;#n=null;#e=null;static with(...e){let n=this;return class extends n{constructor(){super();for(let o of e)To(this,o)}}}get onerror(){return this.#n}set onerror(e){this.#t&&this.removeEventListener("error",this.#t),e&&typeof e=="function"?(this.#n=e,this.#t=n=>{e(n.message??"Error",n.filename,n.lineno,n.colno,n.error)},this.addEventListener("error",this.#t)):(this.#t=null,this.#n=null)}get onunhandledrejection(){return this.#e}set onunhandledrejection(e){this.#e&&this.removeEventListener("unhandledrejection",this.#e),e&&typeof e=="function"?(this.#e=e,this.addEventListener("unhandledrejection",this.#e)):this.#e=null}static setGlobal(e){let n=globalThis.self,r=globalThis.window,o=wr(e),i=Object.assign(xr(e),vr(e));delete o.self,Object.defineProperties(globalThis,o),Nr(globalThis,i),typeof n>"u"||n===r&&n!==globalThis?Object.defineProperty(globalThis,"self",{value:e,configurable:!0,writable:!0,enumerable:!0}):n!==globalThis&&(Object.defineProperties(n,o),Nr(n,i))}static setGlobalThis(e){for(let n in e)e[n]===e&&(e[n]=globalThis);Object.defineProperties(globalThis,bo(e))}};function To(t,e){t[ut].push(e(t)??{})}function wo(t){return{createElement:le.bind(null,t,"createElement"),setAttribute:le.bind(null,t,"setAttribute"),removeAttribute:le.bind(null,t,"removeAttribute"),createText:le.bind(null,t,"createText"),setText:le.bind(null,t,"setText"),insertChild:le.bind(null,t,"insertChild"),removeChild:le.bind(null,t,"removeChild"),addEventListener:le.bind(null,t,"addEventListener"),removeEventListener:le.bind(null,t,"removeEventListener")}}function le(t,e,...n){for(let i of t[ut])i[e]?.apply(i,n);let r=t[D];r[e]?.apply(r,n)}var Qt=new Se;var Pn="~";var ye=new WeakMap;function Be(t){return ye.get(t)}var Mn=new WeakMap,vo=0;function ee(t){let e=Mn.get(t);return e==null&&(e=String(vo++),Jt(t,e)),e}function Jt(t,e){Mn.set(t,e)}var kn=new WeakMap;function So(t){return kn.get(t)}var In=new WeakMap;function Oo(t){let e=In.get(t);if(e!=null)return e;if(!(!(t instanceof Element)||t.tagName.includes("-"))){e={};for(let{name:n,value:r}of t.attributes)e[n]=r;return e}}var Ro=new WeakMap;function Ao(t){return Ro.get(t)}function Dn(t,e,n){let r=kn.get(t);if(r==null&&(r={},kn.set(t,r)),r[e]===n)return;r[e]=n;let o=ye.get(t);o?.mutate([[3,ee(t),e,n,1]])}function be(t,e,n){let r=In.get(t);if(r==null&&(r={},In.set(t,r)),r[e]===n)return;n==null?delete r[e]:r[e]=String(n);let o=ye.get(t);o?.mutate([[3,ee(t),e,n,2]])}function ze(t,e){if(ye.get(t)!==e&&(ye.set(t,e),t.childNodes))for(let r=0;r<t.childNodes.length;r++)ze(t.childNodes[r],e)}function en(t){if(ye.get(t)!=null&&(ye.delete(t),t.childNodes))for(let n=0;n<t.childNodes.length;n++)en(t.childNodes[n])}function je(t){let{nodeType:e}=t;switch(e){case 1:return{id:ee(t),type:e,element:t.localName,properties:Cn(So(t)),attributes:Cn(Oo(t)),eventListeners:Cn(Ao(t)),children:Array.from(t.childNodes).map(je)};case 3:case 8:return{id:ee(t),type:e,data:t.data};default:throw new Error(`Cannot serialize node of type ${t.nodeType} (${typeof t.nodeType})`)}}function Cn(t){return t?{...t}:void 0}function Ln(t,e,...n){let r=Mn.get(t),o=ye.get(t);if(r==null||o==null)throw new Error(`Cannot call method ${e} on an unconnected node`);return o.call(r,e,...n)}var Fe=Qt[D];Fe.insertChild=(t,e,n)=>{let r=Be(t);r!=null&&(ze(e,r),r.mutate([[0,ee(t),je(e),n]]))};Fe.removeChild=(t,e,n)=>{let r=Be(t);r!=null&&(en(e),r.mutate([[1,ee(t),n]]))};Fe.setText=(t,e)=>{let n=Be(t);n?.mutate([[2,ee(t),e]])};Fe.setAttribute=(t,e,n)=>{t.tagName.includes("-")||be(t,e,n)};Fe.removeAttribute=(t,e)=>{t.tagName.includes("-")||be(t,e)};Se.setGlobal(Qt);function tn(t){if(typeof t=="string")return{type:"navigate",to:t};let{place:e,record:n,where:r,section:o}=t??{},i={...r===void 0?{}:{where:r},...o===void 0?{}:{section:String(o)}};return typeof e=="string"?{type:"navigate",place:e,...i}:typeof n=="string"?{type:"navigate",to:n,...i}:void 0}function Or(t){let e=t;return typeof t=="object"&&t!==null&&e.graview==="host-hello"&&typeof e.nonce=="string"}function Ar(t,e={}){let n,r="",o,i=0,s=new Set,a=new Map,c=[],u=y=>{n?n.postMessage({...y,nonce:r}):c.push(y)},f=y=>{let b=y.data;if(!(!b||typeof b!="object")){if(b.type==="props"){o=b.props;for(let k of s)k(b.props)}else b.type==="answer"?(a.get(b.id)?.(b),a.delete(b.id)):b.type==="event"&&typeof b.listener=="number"?e.onEvent?.(b):b.type==="heartbeat"&&typeof b.beat=="number"&&u({type:"heartbeat",beat:b.beat});e.onMessage?.(b)}},p=()=>{},h=y=>{if(n||!t.fromHost(y)||!Or(y.data)||y.data.protocol!==1)return;let b=y.ports[0];if(b){n=b,r=y.data.nonce,n.onmessage=f,n.start?.(),p();for(let k of c.splice(0))u(k)}};p=t.listen(h),t.ready({graview:"guest-ready",protocol:1});let g,v={get props(){return o},subscribe(y){return s.add(y),()=>s.delete(y)},act(y,b={}){let k=i+=1;return new Promise(L=>{a.set(k,L),u({type:"act",id:k,name:y,args:b})})},navigate(y){let b=tn(y);b&&u(b)},size(y){u({type:"size",height:y})},autoSize(y){let b=y??globalThis.document?.documentElement,k=globalThis.ResizeObserver;if(!b||!k||typeof b.getBoundingClientRect!="function")return()=>{};g?.disconnect();let L=new k(()=>v.size(Math.ceil(b.getBoundingClientRect().height)));return L.observe(b),g=L,()=>L.disconnect()},close(){g?.disconnect(),p(),n?.close(),s.clear()}};return{guest:v,send:u}}var Pr=["globalThis","Infinity","NaN","undefined","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape","Object","Function","Array","Number","Boolean","String","Symbol","BigInt","Date","Promise","RegExp","Math","JSON","Reflect","Proxy","Intl","Error","AggregateError","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","SuppressedError","Map","Set","WeakMap","WeakSet","WeakRef","FinalizationRegistry","Iterator","AsyncIterator","DisposableStack","AsyncDisposableStack","ArrayBuffer","SharedArrayBuffer","DataView","Atomics","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float16Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"],Cr=["window","parent","top","document","customElements","Event","ErrorEvent","PromiseRejectionEvent","ToggleEvent","FocusEvent","ClipboardEvent","CustomEvent","EventTarget","Node","ParentNode","ChildNode","DocumentFragment","Document","CharacterData","Comment","Text","Element","HTMLElement","SVGElement","HTMLTemplateElement","MutationObserver"],kr=["self","postMessage","setTimeout","clearTimeout","setInterval","clearInterval","queueMicrotask","structuredClone","crypto","console","DOMException"],Ir=["TEMPORARY","PERSISTENT"],nl=Object.freeze([...Pr,...Cr,...kr,...Ir]),rl=Object.freeze(["constructor","__defineGetter__","__defineSetter__","hasOwnProperty","__lookupGetter__","__lookupSetter__","isPrototypeOf","propertyIsEnumerable","toString","valueOf","__proto__","toLocaleString"]),_r=t=>typeof t=="symbol"?`[${t.description??"symbol"}]`:t;function Mr(t=globalThis,e=[],n={}){let r=[],o=[],i=new Set([...Pr,...Cr,...kr,...e,"constructor",Symbol.toStringTag]),s=(N,P)=>{let j=Reflect.getOwnPropertyDescriptor(N,P);return j===void 0||!("value"in j)||j.writable||j.configurable?!1:n.primitivesStay&&typeof P=="symbol"&&(typeof j.value!="object"||j.value===null)&&typeof j.value!="function"?!0:Ir.includes(P)&&typeof j.value=="number"},a=t,c=a.setTimeout,u=a.setInterval,f=a.crypto,p=(N,P)=>function(j,Bn,...l){if(typeof j!="function")throw new TypeError(`${P} takes a function: a guest view cannot run code from text`);return N.call(t,j,Bn,...l)},h=f?Object.freeze({getRandomValues:N=>f.getRandomValues(N)}):void 0,g=a.document?.defaultView;if(g&&g!==a)for(let N of Reflect.ownKeys(g))typeof N=="symbol"||i.has(N)||Reflect.deleteProperty(g,N)||o.push(`window.${N}`);let v=[];for(let N=t;N&&N!==Object.prototype;N=Object.getPrototypeOf(N))v.push(N);for(let N of v)for(let P of Reflect.ownKeys(N))i.has(P)||(Reflect.deleteProperty(N,P)?r.push(_r(P)):s(N,P)||o.push(_r(P)));let y=()=>function(){throw new EvalError("A guest view cannot make code from text.")},b=[Function.prototype,Object.getPrototypeOf(async function(){}),Object.getPrototypeOf(function*(){}),Object.getPrototypeOf(async function*(){})];for(let N of b){let P=y();Object.defineProperty(P,"prototype",{value:N,writable:!1,enumerable:!1,configurable:!1}),Reflect.defineProperty(N,"constructor",{value:P,writable:!1,enumerable:!1,configurable:!1})||o.push("Function.prototype.constructor"),N===Function.prototype&&Reflect.defineProperty(t,"Function",{value:P,writable:!0,enumerable:!1,configurable:!0})}let k=(N,P)=>{Reflect.defineProperty(t,N,{value:P,writable:!0,enumerable:!0,configurable:!0})||o.push(N)};k("setTimeout",p(c,"setTimeout")),k("setInterval",p(u,"setInterval")),h&&k("crypto",h);for(let N of v.slice(1))Object.freeze(N);for(let N of Reflect.ownKeys(t)){let P=Reflect.getOwnPropertyDescriptor(t,N);Reflect.defineProperty(t,N,"value"in P?{...P,writable:!1,configurable:!1}:{...P,configurable:!1})}let L;try{L=Reflect.preventExtensions(t)}catch{L=!1}return{removed:r,stuck:o,sealed:L}}var ct=class extends HTMLElement{constructor(){super(),Jt(this,Pn)}connect(e){if(Be(this)===e||(ze(this,e),this.childNodes.length===0))return;let n=[];for(let r=0;r<this.childNodes.length;r++){let o=this.childNodes[r];n.push([0,Pn,je(o),r])}e.mutate(n)}updateRemoteProperty(e,n){Dn(this,e,n)}callRemoteMethod(e,...n){return Ln(this,e,...n)}};var d={},nn={empty:!0},_o={id:"text",class:"text",title:"text",lang:"text",dir:{oneOf:["ltr","rtl","auto"]},hidden:"text",tabindex:{oneOf:["-1","0"]},role:"text",style:"style",translate:{oneOf:["yes","no"]},spellcheck:{oneOf:["true","false"]},draggable:{oneOf:["true","false"]},inert:"boolean"},Hn={div:d,section:d,article:d,aside:d,header:d,footer:d,nav:d,hgroup:d,search:d,address:d,figure:d,figcaption:d,blockquote:d,p:d,pre:d,hr:nn,br:nn,wbr:nn,h1:d,h2:d,h3:d,h4:d,h5:d,h6:d,span:d,strong:d,em:d,b:d,i:d,u:d,s:d,small:d,mark:d,abbr:d,cite:d,q:d,code:d,kbd:d,samp:d,var:d,sub:d,sup:d,dfn:d,bdi:d,bdo:d,ruby:d,rt:d,rp:d,time:{attributes:{datetime:"text"}},data:{attributes:{value:"text"}},del:{attributes:{datetime:"text"}},ins:{attributes:{datetime:"text"}},a:d,ul:d,menu:d,dl:d,dt:d,dd:d,ol:{attributes:{start:"number",reversed:"boolean",type:{oneOf:["1","a","A","i","I"]}}},li:{attributes:{value:"number"}},table:d,caption:d,thead:d,tbody:d,tfoot:d,tr:d,colgroup:{attributes:{span:"number"}},col:{attributes:{span:"number"},empty:!0},th:{attributes:{colspan:"number",rowspan:"number",headers:"text",scope:{oneOf:["row","col","rowgroup","colgroup"]},abbr:"text"}},td:{attributes:{colspan:"number",rowspan:"number",headers:"text"}},details:{attributes:{open:"boolean",name:"text"}},summary:d,button:{attributes:{type:{oneOf:["button"]},disabled:"boolean",name:"text",value:"text"}},input:{empty:!0,attributes:{type:{oneOf:["text","search","number","range","checkbox","radio","date","time","datetime-local","month","week","color","email","tel","url"]},name:"text",value:"text",placeholder:"text",min:"text",max:"text",step:"text",checked:"boolean",disabled:"boolean",readonly:"boolean",required:"boolean",maxlength:"number",minlength:"number",size:"number",pattern:"text",multiple:"boolean",inputmode:"text",enterkeyhint:"text"}},select:{attributes:{name:"text",disabled:"boolean",multiple:"boolean",required:"boolean",size:"number"}},option:{attributes:{value:"text",selected:"boolean",disabled:"boolean",label:"text"}},optgroup:{attributes:{label:"text",disabled:"boolean"}},textarea:{attributes:{name:"text",placeholder:"text",rows:"number",cols:"number",disabled:"boolean",readonly:"boolean",required:"boolean",maxlength:"number",minlength:"number",wrap:{oneOf:["soft","hard","off"]}}},label:{attributes:{for:"text"}},fieldset:{attributes:{disabled:"boolean",name:"text"}},legend:d,output:d,meter:{attributes:{value:"number",min:"number",max:"number",low:"number",high:"number",optimum:"number"}},progress:{attributes:{value:"number",max:"number"}},img:{empty:!0,attributes:{src:"image",alt:"text",width:"number",height:"number",decoding:{oneOf:["async","sync","auto"]}}},"graview-video":nn},Po=["fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","opacity","color","display","visibility","transform-origin","clip-path","clip-rule","marker-start","marker-mid","marker-end","font-family","font-size","font-weight","font-style","text-anchor","dominant-baseline","alignment-baseline","letter-spacing","text-decoration","paint-order","vector-effect","shape-rendering","pointer-events","stop-color","stop-opacity","overflow","mask"],Co={id:"text",class:"text",style:"style",lang:"text",role:"text",tabindex:{oneOf:["-1","0"]},transform:"geometry",...Object.fromEntries(Po.map(t=>[t,"css"]))},qe={x:"geometry",y:"geometry",width:"geometry",height:"geometry"},rn={viewBox:"geometry",preserveAspectRatio:"geometry"},Dr={gradientUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]},gradientTransform:"geometry",spreadMethod:{oneOf:["pad","reflect","repeat"]},href:"fragment"},Lr={svg:{attributes:{...qe,...rn}},g:d,defs:d,symbol:{attributes:{...qe,...rn,refX:"geometry",refY:"geometry"}},use:{attributes:{...qe,href:"fragment"}},title:d,desc:d,path:{attributes:{d:"geometry",pathLength:"number"}},rect:{attributes:{...qe,rx:"geometry",ry:"geometry",pathLength:"number"}},circle:{attributes:{cx:"geometry",cy:"geometry",r:"geometry",pathLength:"number"}},ellipse:{attributes:{cx:"geometry",cy:"geometry",rx:"geometry",ry:"geometry",pathLength:"number"}},line:{attributes:{x1:"geometry",y1:"geometry",x2:"geometry",y2:"geometry",pathLength:"number"}},polyline:{attributes:{points:"geometry",pathLength:"number"}},polygon:{attributes:{points:"geometry",pathLength:"number"}},text:{attributes:{x:"geometry",y:"geometry",dx:"geometry",dy:"geometry",rotate:"geometry",textLength:"geometry",lengthAdjust:{oneOf:["spacing","spacingAndGlyphs"]}}},tspan:{attributes:{x:"geometry",y:"geometry",dx:"geometry",dy:"geometry",rotate:"geometry",textLength:"geometry"}},textPath:{attributes:{href:"fragment",startOffset:"geometry",method:{oneOf:["align","stretch"]},spacing:{oneOf:["auto","exact"]},side:{oneOf:["left","right"]}}},linearGradient:{attributes:{x1:"geometry",y1:"geometry",x2:"geometry",y2:"geometry",...Dr}},radialGradient:{attributes:{cx:"geometry",cy:"geometry",r:"geometry",fx:"geometry",fy:"geometry",fr:"geometry",...Dr}},stop:{attributes:{offset:"geometry"}},clipPath:{attributes:{clipPathUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]}}},mask:{attributes:{...qe,maskUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]},maskContentUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]}}},pattern:{attributes:{...qe,...rn,patternUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]},patternContentUnits:{oneOf:["userSpaceOnUse","objectBoundingBox"]},patternTransform:"geometry",href:"fragment"}},marker:{attributes:{...rn,markerWidth:"geometry",markerHeight:"geometry",refX:"geometry",refY:"geometry",orient:"geometry",markerUnits:{oneOf:["strokeWidth","userSpaceOnUse"]}}}};var Hr={section:["aria-label","aria-labelledby","title"]};function ko(t){return/^aria-[a-z]+$/.test(t)}function Io(t){return/^data-[a-z0-9][a-z0-9_.-]*$/.test(t)}var Mo=new Map(Object.keys(Lr).map(t=>[t.toLowerCase(),t]));function Gr(t){return Mo.get(t.toLowerCase())}function Ur(t,e,n){let r=n.toLowerCase(),o=t==="html"?[Hn[e]?.attributes,_o]:[Lr[e]?.attributes,Co],i=t==="svg"&&r==="xlink:href"?"href":r;for(let s of o)if(s){for(let[a,c]of Object.entries(s))if(a.toLowerCase()===i)return{name:a,kind:c}}if(ko(r)||Io(r))return{name:r,kind:"text"}}var Vr="~",on=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),re=(t,e=0)=>{if(t===null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"||t===void 0)return t;if(!(e>64||typeof t!="object"))return Array.isArray(t)?t.map(n=>re(n,e+1)):Object.fromEntries(Object.entries(t).map(([n,r])=>[n,re(r,e+1)]))};function Br(){let t=new Map,e=new Map,n=new Map([[Vr,{children:[],listeners:new Map}]]),r=0,o=u=>{let f=e.get(u);return f===void 0&&(f=r+=1,e.set(u,f),t.set(f,{listener:u,count:0})),t.get(f).count+=1,f},i=u=>{let f=t.get(u);f&&(f.count-=1,!(f.count>0)&&(t.delete(u),e.delete(f.listener)))},s=u=>{let f=n.get(u);if(f){n.delete(u);for(let p of f.listeners.values())i(p);for(let p of f.children)s(p)}},a=(u,f,p=0)=>{if(!on(u)||p>64)return re(u);let h=typeof u.id=="string"?u.id:void 0,g=f&&h!==void 0&&h!==Vr;g&&s(h);let v={children:[],listeners:new Map};g&&n.set(h,v);let y={};for(let[b,k]of Object.entries(u))b==="children"&&Array.isArray(k)?y[b]=k.map(L=>{let N=a(L,g,p+1);return g&&on(L)&&typeof L.id=="string"&&v.children.push(L.id),N}):b==="eventListeners"&&on(k)?y[b]=Object.fromEntries(Object.entries(k).map(([L,N])=>{if(typeof N!="function"||!g)return[L,void 0];let P=o(N);return v.listeners.set(L,P),[L,{listener:P}]})):y[b]=re(k,p+1);return y},c=u=>{if(!Array.isArray(u))return re(u);let[f,p]=u,h=typeof p=="string"?n.get(p):void 0;if(f===0){let g=a(u[2],h!==void 0),v=on(u[2])?u[2].id:void 0;if(h&&typeof v=="string"&&n.has(v)){let y=Number(u[3]);h.children.splice(Number.isInteger(y)&&y>=0&&y<=h.children.length?y:h.children.length,0,v)}return[f,re(p),g,re(u[3])]}if(f===1){let g=Number(u[2]);return h&&Number.isInteger(g)&&g>=0&&g<h.children.length&&s(h.children.splice(g,1)[0]),re(u)}if(f===3&&u[4]===3){let g=String(u[2]),v=u[3],y=h&&typeof v=="function"?o(v):void 0,b=h?.listeners.get(g);return b!==void 0&&i(b),y===void 0?h?.listeners.delete(g):h.listeners.set(g,y),[f,re(p),g,y===void 0?void 0:{listener:y},3]}return re(u)};return{encode:u=>u.map(c),listener:u=>t.get(u)?.listener,get listening(){return t.size},get nodes(){return n.size-1}}}var sn="graview-view-root",Do=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/\'/g,"'"),Lo=t=>Object.freeze({html:t,toString:()=>t}),zr=t=>typeof t=="object"&&t!==null&&typeof t.html=="string"&&Object.isFrozen(t),jr=t=>t==null||t===!1?"":Array.isArray(t)?t.map(jr).join(""):zr(t)?t.html:Do(String(t));function Fr(t){customElements.get(sn)||customElements.define(sn,ct);let e=Event,n=Br(),r=new Set,o=new Set,i,s=[],a=new Set;for(let l of["closest","matches","dataset"]){let E=()=>{throw new TypeError(`A view\'s element has no ${l}: graview.on hands event.element, the element its selector matched; read event.element.getAttribute("data-\\u2026").`)};l in Element.prototype||Object.defineProperty(Element.prototype,l,l==="dataset"?{get:E}:{value:E})}let c=document.createElement(sn),u=l=>{let E=O=>{for(let T of Array.from(O.childNodes)){if(T.nodeType!==1)continue;if(ee(T)===l)return T;let R=E(T);if(R)return R}};return E(c)},f=l=>{let E=u(l.target);if(!E)return;let O=new e(l.event,{bubbles:!0});for(let T of["value","checked","key","pressed","files","refused"])l[T]!==void 0&&Object.defineProperty(O,T,{value:l[T],enumerable:!0});E.dispatchEvent(O);for(let T of o){if(T.type!==l.event)continue;let R;try{R=new Set(Array.from(c.querySelectorAll(T.selector)))}catch{continue}for(let A=E;A&&A!==c;A=A.parentNode)if(R.has(A)){T.listener(Object.freeze({type:l.event,target:E,element:A,...l.value!==void 0?{value:l.value}:{},...l.checked!==void 0?{checked:l.checked}:{},...l.key!==void 0?{key:l.key}:{},...l.pressed!==void 0?{pressed:l.pressed}:{},...l.files!==void 0?{files:l.files}:{},...l.refused!==void 0?{refused:l.refused}:{}}));break}}},p=l=>{if(l.type==="dom-event"&&typeof l.target=="string")return f(l);if(l.type==="notice")return t.warn(l.text);if(l.type!=="props")return;i=l.props;let E=t.now();for(let R of r)try{R(l.props)}catch(A){t.threw(A)}let O=t.now()-E,T=l.push;typeof T=="number"&&t.microtask(()=>t.microtask(()=>t.send({type:"pushed",push:T,ms:O})))},h;c.connect({mutate(l){h||(h=[],t.microtask(()=>{let E=h??[];h=void 0,t.send({type:"render",records:n.encode(E)})})),h.push(...l)},call:()=>{}});let g=l=>l.nodeType===1?l.getAttribute("data-key")??l.getAttribute("id"):null,v=(l,E)=>l.nodeType===E.nodeType&&(l.nodeType!==1||l.localName===E.localName&&l.namespaceURI===E.namespaceURI&&g(l)===g(E));function y(l,E){let O=Array.from(E.childNodes),T=0;for(let R of O){let A=l.childNodes[T]??null;if(A&&v(A,R)){b(A,R),T+=1;continue}if(g(R)!==null){let ce=Array.from(l.childNodes).slice(T+1).find(Ye=>v(Ye,R));if(ce){l.insertBefore(ce,A),b(ce,R),T+=1;continue}}l.insertBefore(R,A),T+=1}for(;l.childNodes.length>T;)l.removeChild(l.lastChild)}function b(l,E){if(l.nodeType!==1){l.data!==E.data&&(l.data=E.data);return}let O=l,T=E,R=k(O);for(let A of O.getAttributeNames())T.hasAttribute(A)||(O.removeAttribute(A),R&&be(O,A,void 0));for(let A of T.getAttributeNames()){let oe=T.getAttribute(A);O.getAttribute(A)!==oe&&O.setAttribute(A,oe),R&&be(O,A,oe)}y(O,T)}let k=l=>l.localName.includes("-");function L(l){for(let E of Array.from(l.childNodes)){if(E.nodeType!==1)continue;let O=E;if(k(O))for(let T of O.getAttributeNames())be(O,T,O.getAttribute(T)??void 0);L(O)}}function N(l,E,O){for(let T of Array.from(l.childNodes)){if(T.nodeType!==1)continue;let R=T,A=R.localName,oe=E||A.toLowerCase()==="svg",ce=oe?Gr(A):Object.prototype.hasOwnProperty.call(Hn,A.toLowerCase())?A.toLowerCase():void 0;if(!ce){O.add(`<${A}>`);continue}for(let Ye of R.getAttributeNames())(!Ur(oe?"svg":"html",ce,Ye)||!oe&&Hr[ce]?.includes(Ye.toLowerCase()))&&O.add(`${ce} ${Ye}`);N(R,oe,O)}}function P(l){let E=document.createElement("div"),O=Array.isArray(l)?l:[l];for(let R of O)if(R!=null)if(typeof R=="string"||zr(R)){let A=document.createElement("div");A.innerHTML=typeof R=="string"?R:R.html,E.append(...Array.from(A.childNodes))}else E.append(R);let T=new Set;N(E,!1,T),s=[...T],s.length>0&&t.warn(`The host will not draw: ${s.join(", ")}`),L(E),y(c,E)}let j;return{view:Object.freeze({get props(){return i},onProps(l){return r.add(l),i&&l(i),()=>void r.delete(l)},render:P,style(l){typeof l!="string"||l===j||(j=l,t.send({type:"style",css:l}))},on(l,E,O){let T={type:l,selector:E,listener:O};return o.add(T),typeof l=="string"&&!a.has(l)&&(a.add(l),t.send({type:"hears",events:[l]})),()=>void o.delete(T)},act:(l,E={})=>t.act(l,E),navigate(l){if(typeof l=="string")return t.navigate(l);let E=tn(l);E&&t.send(E)},html(l,...E){return Lo(l.reduce((O,T,R)=>O+T+(R<E.length?jr(E[R]):""),""))},get refused(){return s},get hardening(){return t.hardening()}}),hear:p}}var Vn={removed:[],stuck:[],sealed:!1,worker:!1},Gn=Ar({listen(t){return Re.listen(t),()=>Re.unlisten(t)},fromHost:()=>!0,ready:t=>Re.post(t)},{onMessage:t=>qr.hear(t)}),qr=Fr({send:t=>Gn.send(t),act:(t,e)=>Gn.guest.act(t,e),navigate:t=>Gn.guest.navigate(t),microtask:Re.microtask,now:Re.now,threw:t=>console.error(t),warn:t=>console.warn(t),hardening:()=>Vn}),Ho=qr.view;Object.defineProperty(globalThis,"graview",{value:Ho,enumerable:!0,configurable:!0,writable:!1});var Un="WorkerGlobalScope"in globalThis?Mr(globalThis,["graview"]):Vn;Vn=Un;if(Un.stuck.length>0)throw new Error(`The view\'s worker could not be hardened: ${Un.stuck.join(", ")} would not go.`);})();\n';export{e as VIEW_RUNTIME};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as w,b as S,c as T,d as C,e as L,f as N,h as D}from"./chunk.GAFYE37S.js";import"./chunk.AJZBJBMO.js";var H=0,V=1,U=2,G=3,I=1,z=2,F=3,X=1,K=3,Y=8,M="~",k=c=>typeof c=="object"&&c!==null&&!Array.isArray(c),_=new Set(["input","select","textarea","option"]),J=new Set(["value","checked","selected"]);function j(c,r){let b=c.ownerDocument??c,R=r.maxNodes??5e3,E=[],m=new Map,g=new WeakMap,h={dom:c,name:"div",namespace:"html",children:[],id:M};m.set(M,h);let v=0,A=!1,i=e=>{E.push(e),E.length>200&&E.shift(),r.onRefused?.(e)},s=()=>({dom:b.createComment(""),children:[],refused:!0}),o=(e,a)=>{if(e.namespace==="html"&&e.name&&_.has(e.name))return e.dom;if(a?.namespace==="html"&&a.name==="textarea")return a.dom},y=(e,a,u)=>{let t=e.dom;if(u!=null&&typeof u!="string")return i({reason:"value",element:e.name,name:a});let n=D(e.namespace,e.name,a,u??null,r);if("refused"in n){let p=D(e.namespace,e.name,a,null,r);return"refused"in p||t.removeAttribute(p.name),i(n.refused)}for(let p of n.dropped??[])i(p);let d=e.namespace==="html"&&J.has(n.name)&&_.has(e.name),l=t,f=d?n.name==="value"?l.value:n.name==="checked"?l.checked:l.selected:void 0;n.value===null?t.removeAttribute(n.name):t.setAttribute(n.name,n.value),r.onAttribute?.(t,n.name),d&&(n.name==="value"&&"value"in l?(l.value=n.value??"",f!==l.value&&r.onFieldSet?.(t)):n.name==="checked"&&"checked"in l?(l.checked=n.value!==null,f!==l.checked&&r.onFieldSet?.(t)):n.name==="selected"&&"selected"in l&&(l.selected=n.value!==null,f!==l.selected&&r.onFieldSet?.(t.parentElement?.closest("select")??t)))},O=e=>{if(!e.refused){v-=1,e.id!==void 0&&m.delete(e.id);for(let a of e.children)O(a)}},x=(e,a)=>{if(!k(e)||typeof e.id!="string"||m.has(e.id))return i({reason:"record"}),s();if(v>=R)return i({reason:"budget"}),A||(A=!0,r.onOverBudget?.()),s();let u=e.id;if(e.type===Y)return s();if(e.type===K){if(N(a.namespace,a.name))return i({reason:"child",element:a.name}),s();let f=b.createTextNode(String(e.data??"").slice(0,w)),p={dom:f,children:[],text:!0,id:u,parent:a};return m.set(u,p),g.set(f,u),v+=1,p}if(e.type!==X)return i({reason:"record"}),s();let t=String(e.element);if(N(a.namespace,a.name))return i({reason:"child",element:t}),s();let n=L(t,a.namespace);if("refused"in n)return i(n.refused),s();let d=b.createElementNS(n.namespace==="svg"?T:S,n.name);n.as&&d.setAttribute("data-graview-as",n.as),n.namespace==="html"&&n.name==="img"&&d.setAttribute("referrerpolicy","no-referrer");let l={dom:d,name:n.name,namespace:n.namespace,children:[],id:u,parent:a};if(m.set(u,l),g.set(d,u),v+=1,k(e.attributes))for(let[f,p]of Object.entries(e.attributes))y(l,f,p);if(r.decorate?.(d,n.name,n.namespace),k(e.properties))for(let f of Object.keys(e.properties))i({reason:"attribute",element:n.name,name:f});if(k(e.eventListeners))for(let f of Object.keys(e.eventListeners))e.eventListeners[f]!=null&&i({reason:"attribute",element:n.name,name:`on${f}`});if(Array.isArray(e.children))for(let f of e.children){let p=x(f,l);l.children.push(p),d.appendChild(p.dom)}return l},B=e=>{if(!Array.isArray(e))return i({reason:"record"});let[a,u]=e,t=typeof u=="string"?m.get(u):void 0;if(!t)return i({reason:"record"});switch(a){case H:{if(t.text)return i({reason:"record"});let n=Number(e[3]),d=Number.isInteger(n)&&n>=0&&n<=t.children.length?n:t.children.length,l=x(e[2],t);t.dom.insertBefore(l.dom,t.children[d]?.dom??null),t.children.splice(d,0,l),t.namespace==="html"&&t.name==="textarea"&&r.onFieldSet?.(t.dom);return}case V:{let n=Number(e[2]),d=t.children[n];if(!d)return i({reason:"record"});t.children.splice(n,1),d.dom.parentNode?.removeChild(d.dom),O(d);return}case U:{if(!t.text)return i({reason:"record"});t.dom.data=String(e[2]??"").slice(0,w);let n=o(t,t.parent);n&&r.onFieldSet?.(n);return}case G:{if(t===h||t.text)return i({reason:"record"});let n=String(e[2]),d=e[4]??I;return d===z?y(t,n,e[3]):i(d===I||d===F?{reason:"attribute",element:t.name,name:d===F?`on${n}`:n}:{reason:"record"})}default:return i({reason:"record"})}};return{apply(e,a){if(!Array.isArray(e))return i({reason:"record"}),!0;for(let u=0;u<e.length;u+=1){if(a&&u%32===0&&a())return!1;B(e[u])}return!0},get refused(){return E},get size(){return v},idOf:e=>g.get(e),elementOf(e){let a=m.get(e);return a&&!a.text&&a!==h?a.dom:void 0},dispose(){for(let e of h.children)O(e);for(h.children.length=0;c.firstChild;)c.removeChild(c.firstChild)}}}var $=`
|
|
2
|
+
:host { display: block; position: relative; contain: layout paint style; isolation: isolate; overflow: clip; min-width: 0; }
|
|
3
|
+
[data-graview-view-root] { color: var(--graview-ink, CanvasText); font-family: var(--graview-font-body, system-ui, sans-serif); line-height: 1.45; }
|
|
4
|
+
[data-graview-view-root] [data-graview-link] { cursor: pointer; }
|
|
5
|
+
`,W=new Set(["Enter"," ","Escape","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"]),P=["click","input","change","keydown"];function te(c,r){let b=c.ownerDocument,R=b.createElement("style");R.setAttribute("data-graview-region",""),R.textContent=$;let E=b.createElement("style");E.setAttribute("data-graview-view-style","");let m=b.createElement("div");m.setAttribute("data-graview-view-root",""),c.append(R,E,m);let g=j(m,{origin:r.origin,...r.asset?{asset:r.asset}:{},...r.imageOrigins?{imageOrigins:r.imageOrigins}:{},...r.picture?{picture:r.picture}:{},...r.onRefused?{onRefused:r.onRefused}:{},...r.maxNodes!==void 0?{maxNodes:r.maxNodes}:{},...r.onOverBudget?{onOverBudget:r.onOverBudget}:{},decorate:(s,o,y)=>{y==="html"&&o==="button"&&s.setAttribute("type","button"),y==="html"&&(o==="input"||o==="textarea"||o==="select")&&s.setAttribute("autocomplete","off"),r.decorate?.(s,o,y)},...r.onFieldSet?{onFieldSet:r.onFieldSet}:{},...r.onAttribute?{onAttribute:r.onAttribute}:{}}),h=[],v="",A=s=>{for(let o=s.composedPath()[0];o&&o!==m&&o!==c;o=o.parentNode)if(o.nodeType===1&&g.idOf(o)!==void 0)return o},i=s=>{let o=A(s);if(!o||s.type==="keydown"&&!W.has(s.key))return;let y=r.before?.(s,o,m);if(y===!1)return;let O=o,x=o.namespaceURI==="http://www.w3.org/1999/xhtml"&&["input","select","textarea"].includes(o.localName);r.send({type:"dom-event",target:g.idOf(o),event:s.type,...x?{value:String(O.value??"")}:{},...x&&(O.type==="checkbox"||O.type==="radio")?{checked:O.checked}:{},...s.type==="keydown"?{key:s.key}:{},...y??{}})};for(let s of P)c.addEventListener(s,i);return c.addEventListener("toggle",i,!0),{apply:(s,o)=>g.apply(s,o),style(s){let o=C(s);for(let y of o.refused)h.push({reason:"css",name:"stylesheet",css:y}),h.length>200&&h.shift();v=o.css,E.textContent=v},renderer:g,get refused(){return[...g.refused,...h]},get css(){return v},dispose(){for(let s of P)c.removeEventListener(s,i);c.removeEventListener("toggle",i,!0),g.dispose(),c.replaceChildren()}}}export{$ as REGION_CSS,te as createOpenDrawing};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as k}from"./chunk.G4JJXA63.js";import{a as Q}from"./chunk.FGYCYLUS.js";import{a as Y}from"./chunk.3V2M3S4U.js";import{a as X}from"./chunk.QYWBQ5NX.js";import{c as _}from"./chunk.X2OLXTRL.js";import{Tc as G,Uc as H,Vc as P,Wc as J,ib as q,jb as z}from"./chunk.HBBVVALN.js";var O=e=>"failed"in e;function ue(e,n){let r=e.schema.kinds,t=e.policy?.sees;if(!t?.length||z(n))return{kinds:r};let o=q(n).roles??[],i=new Set(t.filter(s=>s.roles==="*"||o.some(a=>s.roles.includes(a))).flatMap(s=>s.kinds));return{kinds:r.filter(s=>i.has(s))}}function L(e,n){if(!n)return e;let r=new Set(n.kinds.filter(i=>e.tryDefinition(i)!==void 0));if(r.size===e.kinds.length)return e;let t=new Map,o=i=>{if(r.has(i)){if(!t.has(i)){let s=e.tryDefinition(i),a=Object.fromEntries(Object.entries(s?.edges??{}).flatMap(([l,d])=>{if(d.to==="*")return[[l,d]];let c=d.to.filter(u=>r.has(u));return c.length>0?[[l,{...d,to:c}]]:[]}));t.set(i,{...s,edges:a})}return t.get(i)}};return{...e,definitions:e.definitions.filter(i=>r.has(i.kind)),kinds:e.kinds.filter(i=>r.has(i)),tryDefinition:o,definition:i=>{let s=o(i);if(!s)throw new Error(`Unknown node kind "${i}"`);return s}}}var fe=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),y=e=>fe(e).replace(/[-_]+/g," ").trim();function I(e){let n=[];for(let t of e.kinds){let o=e.tryDefinition(t);if(!o)continue;let i=o.display?.labels??{},s=Object.entries(o.fields?.shape??{}).filter(([d])=>d!=="id"&&d!=="kind").map(([d,c])=>{let u=X(c);return{name:d,type:u?.type,...u?.options?{options:u.options}:{},words:(i[d]??y(d)).toLowerCase()}}),a=Object.entries(o.edges??{}).map(([d,c])=>({name:d,from:t,to:c.to==="*"?e.kinds.filter(u=>u!==t):c.to,words:y(d)})),l=(o.plural??`${y(t)}s`).toLowerCase();n.push({kind:t,plural:l,noun:(o.noun??y(t)).toLowerCase(),fields:s,roles:o.fieldRoles??{},edges:a})}let r=new Map(n.map(t=>[t.kind,t]));return{schema:e,kinds:n,info:t=>r.get(t)}}var $=(e,n)=>n===void 0?void 0:e.fields.find(r=>r.name===n),R=e=>e?.type==="date"||e?.type==="datetime",N=e=>e?.type==="number"||e?.type==="integer"||e?.type==="duration",re=e=>` ${e.toLowerCase().replace(/[“”"’‘]/g,"'").replace(/[^\p{L}\p{N}' -]+/gu," ").replace(/\s+/g," ").trim()} `,E=(e,n)=>e.includes(` ${n} `),x=e=>e.endsWith("ies")?`${e.slice(0,-3)}y`:e.endsWith("ses")?e.slice(0,-2):e.endsWith("s")?e.slice(0,-1):e;function pe(e,n){let r=[];for(let t of n.kinds){let o=new Set([t.plural,t.noun,`${t.noun}s`,y(t.kind),`${y(t.kind)}s`]),i=-1;for(let s of o){let a=e.indexOf(` ${s} `);a>=0&&(i<0||a<i)&&(i=a)}i>=0&&r.push({info:t,at:i})}return r.sort((t,o)=>t.at-o.at).map(t=>t.info)}function v(e,n,r){let t=n.trim().toLowerCase();if(t.length===0)return;let o=e.fields.filter(i=>!r||r(i));return o.find(i=>i.words===t||y(i.name)===t||i.name.toLowerCase()===t)??o.find(i=>i.words===x(t)||y(i.name)===x(t))??o.find(i=>t.split(" ").some(s=>s.length>2&&(i.words.split(" ").includes(s)||i.words.split(" ").includes(x(s)))))}function oe(e,n,r){let t=n.trim().toLowerCase();if(t.length!==0)return e.edges.find(o=>o.words===t||o.name.toLowerCase()===t)??e.edges.find(o=>o.to.some(i=>{let s=r.info(i);return s!==void 0&&(s.noun===x(t)||s.plural===t||y(i)===x(t))}))??e.edges.find(o=>t.split(" ").some(i=>i.length>2&&o.words.split(" ").includes(i)))}function U(e){return/ (?:grouped |group |split |sorted |organi[sz]ed )?by ([\p{L}\p{N}' -]+?)(?= (?:and|with|for|in|on|only|where|from|this|that|as|sorted|grouped) |\s*$)/u.exec(e)?.[1]?.trim()}var me=/\bwho\b.*\b(covers?|cover|tends?|owns?|handles?|does|works? on|looks? after|is on|is assigned|staffs?|runs?)\b|\bcoverage\b|\bmatrix\b|\bwho covers\b/,ge=/\bcalendar\b|\bmonth\b|\bagenda\b|\bschedule\b|\bdue\b|\bdeadlines?\b|\bdates?\b|\bwhen\b/,ye=/\btimeline\b|\bover time\b|\bgantt\b|\bspans?\b|\bweek\b/,he=/\bboard\b|\bkanban\b|\bcolumns?\b|\bpipeline\b|\bstages?\b|\bstatus\b/,be=/\blaid out\b|\blayout\b|\bseating\b|\bwhere (?:they|it|each) (?:sits?|lies?|stands?)\b|\bfloor\b/,we=/\bplan\b|\bmap\b|\bregions?\b/,ke=/\blist\b|\btable\b|\bgroup(?:ed)? by\b|\bsort(?:ed)? by\b|\bonly\b|\bjust the\b/;function $e(e){let n=[];return/\blist\b|\btable\b/.test(e)&&n.push("blocks"),me.test(e)&&n.push("coverage"),be.test(e)&&n.push("board"),(/\bfloor plan\b/.test(e)||we.test(e))&&n.push("plan"),ye.test(e)&&n.push("timeline"),ge.test(e)&&n.push("calendar"),he.test(e)&&n.push("columns"),ke.test(e)&&!n.includes("blocks")&&n.push("blocks"),n.length===0&&U(e)&&n.push("columns"),n}var se=e=>{let n=r=>r?` and not ${r}`:"";if(/\boverdue\b|\blate\b|\bpast due\b/.test(e))return{cond:(r,t)=>`days(today(), ${r}) < 0${n(t)}`,says:r=>`overdue by ${r.words}`};if(/\btoday\b/.test(e))return{range:"day",cond:r=>`days(today(), ${r}) == 0`,says:r=>`with ${r.words} today`};if(/\bthis week\b|\bnext 7 days\b|\bnext week\b/.test(e))return{range:"week",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 6`,says:r=>`with ${r.words} in the next week`};if(/\bthis month\b|\bnext 30 days\b|\bnext month\b/.test(e))return{range:"month",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 30`,says:r=>`with ${r.words} in the next month`};if(/\blast month\b|\bpast month\b/.test(e))return{range:"month",cond:r=>`days(today(), ${r}) >= -30 and days(today(), ${r}) <= 0`,says:r=>`with ${r.words} in the last month`};if(/\bthis year\b/.test(e))return{range:"year",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 365`,says:r=>`with ${r.words} in the next year`};if(/\bquarter\b/.test(e))return{range:"quarter",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 91`,says:r=>`with ${r.words} in the next quarter`}},M=e=>{if(/\bagenda\b|\bin order\b/.test(e))return"agenda";if(/\btoday\b|\bday\b/.test(e))return"day";if(/\bweek\b/.test(e))return"week";if(/\bquarter\b/.test(e))return"quarter";if(/\byears\b/.test(e))return"years";if(/\byear\b/.test(e))return"year";if(/\bmonth\b/.test(e))return"month"},Z=/^(user|person|people|member|staff|gardener|volunteer|owner|agent|employee|worker|team|player|customer|client|contact|party|attendee|guest)s?$/,j=class extends Error{},h=e=>{throw new j(e)};function Se(e,n){let r=e.fields.filter(i=>i.type==="enum");if(n){let i=v(e,n);if(i&&i.type==="enum")return i;i&&h(`${e.plural}' ${i.words} is not a choice, so it has no columns`)}let t=$(e,e.roles.status??e.roles.column);if(t?.type==="enum")return t;let o=r.find(i=>/^(status|stage|state|phase)$/.test(i.name));return o||(r[0]?r[0]:h(`${e.plural} have no choice field to put in columns`))}function ee(e,n){let r=e.fields.filter(R),t=l=>{let d=$(e,e.roles[l]);return R(d)?d:void 0},i=r.find(l=>E(n,l.words)||E(n,y(l.name)))??t("start")??r.find(l=>/^(due|date|on|at|start|starts|begins|from|sown|when)/i.test(l.name))??r[0];if(!i)return h(`no date field on ${e.plural}`);let s=t("end")??r.find(l=>l!==i&&/^(end|ends|until|to|finish|finished|harvested|due|closes|through)/i.test(l.name)),a=e.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));return{start:i,...s&&s!==i?{end:s}:{},...a?{done:a}:{}}}function ie(e){let n=$(e,e.roles.start),r=$(e,e.roles.end),t=$(e,e.roles.column??e.roles.day??e.roles.columns);if(N(n)&&N(r)&&t?.type==="enum")return{start:n,end:r,column:t}}function De(e,n,r,t){let o=[];for(let s of e.kinds)for(let a of s.edges)for(let l of a.to){let d=e.info(l);if(!d||d.kind===s.kind)continue;let c=0;n.includes(s)&&(c+=4),n.includes(d)&&(c+=4),(Z.test(d.kind)||Z.test(d.noun))&&(c+=3),t&&(a.words.includes(t)||d.noun===x(t))&&(c+=5),a.words.split(" ").some(u=>u.length>2&&r.includes(` ${u}`))&&(c+=2),o.push({rows:s,across:d,link:a,score:c})}let i=o.sort((s,a)=>a.score-s.score)[0];return i||h(n[0]?`${n[0].plural} are joined to nothing else, so there is no who-covers-what to draw`:"nothing here is joined to anything else, so there is no who-covers-what to draw")}function ae(e,n,r,t,o){let i=U(t);switch(e){case"columns":{if(i){let s=v(n,i);if(!s||s.type!=="enum"){let a=oe(n,i,r);if(a){let l=r.info(a.to[0]);return{lens:"coverage",kind:n.kind,across:l.kind,link:a.name}}}}return{lens:"columns",kind:n.kind,column:Se(n,i).name}}case"calendar":{let s=ee(n,t),a=M(t);return{lens:"calendar",kind:n.kind,start:s.start.name,...s.end?{end:s.end.name}:{},...s.done?{done:s.done.name}:{},...a?{range:a}:{}}}case"timeline":{let s=ie(n);if(s&&!/\bdates?\b|\bdue\b|\bdeadlines?\b|\bmonths?\b|\byears?\b/.test(t))return{lens:"timeline",kind:n.kind,start:s.start.name,end:s.end.name,column:s.column.name};let a=ee(n,t);return{lens:"calendar",kind:n.kind,start:a.start.name,...a.end?{end:a.end.name}:{},...a.done?{done:a.done.name}:{},range:M(t)??"quarter"}}case"coverage":{let s=De(r,o,t,i);return{lens:"coverage",kind:s.rows.kind,across:s.across.kind,link:s.link.name}}case"board":{let s=$(n,n.roles.x)??n.fields.find(c=>c.name==="x"),a=$(n,n.roles.y)??n.fields.find(c=>c.name==="y");if(!N(s)||!N(a))return h(`${n.plural} have no x and y to be laid out by`);let d=r.kinds.flatMap(c=>c.edges.filter(u=>u.to.includes(n.kind)&&c.kind!==n.kind))[0]??n.edges[0];return d?{lens:"board",kind:n.kind,x:s.name,y:a.name,fill:d.name,...d.from!==n.kind?{fillFrom:"occupant"}:{}}:h(`nothing is joined to ${n.plural} to fill them`)}case"plan":{let s=$(n,n.roles.outline)??n.fields.find(a=>a.name==="outline");return s?{lens:"plan",kind:n.kind,outline:s.name}:h(`${n.plural} have no outline to draw a plan from`)}case"blocks":{let s={lens:"blocks",kind:n.kind,as:/\bcards?\b/.test(t)?"card":"row"},a=/ group(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|sorted|with)|\s*$)/u.exec(t)?.[1]??(i&&!/ sort(?:ed)? by /.test(t)?i:void 0);if(a){let c=v(n,a);if(!c||c.type!=="enum")return h(c?`${n.plural}' ${c.words} is not a choice, so they cannot be grouped by it`:`${n.plural} have nothing called ${a} to group by`);s.group=c.name}let l=/ sort(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|grouped|with)|\s*$)/u.exec(t)?.[1];if(l){let c=v(n,l);if(!c)return h(`${n.plural} have nothing called ${l} to sort by`);s.sort={by:c.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}let d=V(n,t);return d.length>0&&(s.where=d),s}}}function V(e,n){let r=[],t=se(n);if(t){let o=e.fields.filter(R),i=$(e,e.roles.start),s=o.find(l=>E(n,l.words))??(R(i)?i:void 0)??o[0];(!s||!R(s))&&h(`no date field on ${e.plural}`);let a=e.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));r.push({expr:t.cond(s.name,/\boverdue\b|\blate\b|\bpast due\b/.test(n)?a?.name:void 0),says:t.says(s)})}if(/\bonly\b|\bjust\b|\bthat are\b|\bwhich are\b/.test(n)){for(let o of e.fields){if(o.type!=="enum")continue;let i=o.options?.find(s=>E(n,s.toLowerCase())||E(n,y(s)));i&&r.push({expr:`${o.name} == '${i.replace(/'/g,"")}'`,says:`that are ${y(i)}`})}if(/\bnot done\b|\bundone\b|\bunfinished\b|\bopen ones\b|\bstill to do\b/.test(n)){let o=e.fields.find(i=>i.type==="boolean"&&/^(done|finished|complete|completed)$/.test(i.name));o&&r.push({expr:`not ${o.name}`,says:`not ${o.words}`})}}return r}var B={columns:"A board",calendar:"A calendar",timeline:"A timeline",coverage:"A grid",board:"A layout",plan:"A plan",blocks:"A list",reach:"A picture"};function Ae(e,n){let r=n.info(e.kind),t=o=>o?$(r,o)?.words??y(o):"";switch(e.lens){case"columns":return{title:`${k(r.plural)} by ${t(e.column)}`,detail:`of ${r.plural} by ${t(e.column)}`};case"calendar":{let o=e.range??"month";if(o==="agenda")return{title:`${k(r.plural)} in date order`,detail:`of ${r.plural} in order of ${t(e.start)}`};let i=o==="years"?"year":o;return{title:`${k(r.plural)} by ${i}`,detail:`of ${r.plural} by ${t(e.start)}, a ${i} at a time`}}case"timeline":return{title:`${k(r.plural)} over the ${t(e.column)}`,detail:`of ${r.plural} from ${t(e.start)} to ${t(e.end)}, by ${t(e.column)}`};case"coverage":{let o=n.info(e.across);return{title:`${k(r.plural)} by ${o.noun}`,detail:`of which ${o.noun} covers which ${r.noun}`}}case"board":return{title:`${k(r.plural)} where they stand`,detail:`of ${r.plural} where they stand`};case"plan":return{title:`${k(r.plural)} on a plan`,detail:`of ${r.plural}`};default:{let o=[e.where?.map(i=>i.says).join(" and "),e.group?`by ${t(e.group)}`:void 0,e.sort?`in order of ${t(e.sort.by)}`:void 0].filter(i=>!!i);return{title:[k(r.plural),...o].join(" "),detail:[`of ${r.plural}`,...o].join(" ")}}}}function Re(e,n){let r={title:n,on:e.kind};switch(e.lens){case"columns":return{name:"columns",...r,bindings:{[e.kind]:{column:e.column}}};case"calendar":return{name:"calendar",...r,bindings:{[e.kind]:{start:e.start,...e.end?{end:e.end}:{},...e.done?{done:e.done}:{}}},...e.range?{options:{range:e.range}}:{}};case"timeline":return{name:"timeline",...r,bindings:{[e.kind]:{start:e.start,end:e.end,column:e.column}}};case"coverage":return{name:"coverage",...r,bindings:{rows:{kind:e.kind},columns:{kind:e.across},link:{edge:e.link}}};case"board":return{name:"board",...r,bindings:{slots:{kind:e.kind},x:{field:e.x,on:"slots"},y:{field:e.y,on:"slots"},fill:{edge:e.fill}},...e.fillFrom?{options:{fillFrom:e.fillFrom}}:{}};case"plan":return{name:"plan",...r,bindings:{regions:{kind:e.kind},outline:{field:e.outline,on:"regions"}}};default:{let t=e.where?.length?` where ${e.where.map(i=>e.where.length>1?`(${i.expr})`:i.expr).join(" and ")}`:"",o={list:`all('${e.kind}')${t}`,as:e.as??"row"};return e.group&&(o.group=e.group),e.sort&&(o.sort=e.sort.direction?{by:e.sort.by,direction:e.sort.direction}:e.sort.by),o.empty="Nothing here yet.",{name:"blocks",...r,options:{blocks:[o]}}}}}function C(e,n){let r=o=>o.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,""),t=new Set(["home","overview",...Q(n).map(o=>o.slug),...(n.lenses??[]).flatMap(o=>o.title?[r(o.title)]:[])]);if(!t.has(r(e)))return e;for(let o=2;;o++)if(!t.has(r(`${e} ${o}`)))return`${e} ${o}`}var ne={title:[],headline:[],text:["tone"],figure:["as","currency","label"],list:["sort","limit","group","empty","as"],progress:["label"],group:["direction"],when:["show"],divider:[]};function Ee(e,n){if(!Array.isArray(n)||n.length===0)return"it has no blocks to draw";if(n.length>40)return"it has more blocks than a place draws";let r=(s,a)=>{if(typeof s!="string"||s.trim()==="")return`its ${a} says nothing`;try{return _(s)}catch(l){return`its ${a} does not read: ${l instanceof Error?l.message.replace(/ \(at character.*$/,""):String(l)}`}},t=s=>{if(s.t==="where")return t(s.set);if(s.t==="call"&&s.fn==="all"){let a=s.args[0];return a?.t==="lit"&&typeof a.value=="string"?e.info(a.value)??null:void 0}},o=(s,a)=>{switch(s.t){case"lit":return;case"ident":return a&&!a.fields.some(l=>l.name===s.name)&&!a.edges.some(l=>l.name===s.name)?`${a.plural} have nothing called ${s.name}`:void 0;case"member":return o(s.object,a);case"list":return s.items.map(l=>o(l,a)).find(Boolean);case"unary":return o(s.operand,a);case"binary":return o(s.left,a)??o(s.right,a);case"where":{let l=t(s.set);return l===null?"Nothing by that name here":o(s.set,a)??o(s.filter,l??void 0)}case"call":return s.fn==="all"?t(s)===null?"Nothing by that name here":void 0:s.args.map(l=>o(l,a)).find(Boolean)}},i=(s,a)=>{if(a>4)return"its blocks nest deeper than a place draws";for(let l of s){if(!w(l))return"a block is not an object";let d=Object.keys(ne).find(p=>p in l);if(!d)return`"${Object.keys(l)[0]??""}" is not a block a place draws`;let c=Object.keys(l).find(p=>p!==d&&p!=="key"&&!ne[d].includes(p));if(c)return`a ${d} block takes no "${c}"`;let u=l[d];if(d==="list"||d==="figure"||d==="when"){if(d==="figure"&&u===!0)continue;let p=r(u,d);if(typeof p=="string")return p;let g=o(p,void 0);if(g)return g;if(d==="list"){let f=t(p);if(f==null)return f===null?"Nothing by that name here":"its list does not say which records it lists, like all('task')";for(let m of["group","sort"]){let b=l[m],S=typeof b=="string"?b:w(b)&&typeof b.by=="string"?b.by:void 0;if(b===void 0)continue;let D=S?f.fields.find(ce=>ce.name===S):void 0;if(!D)return`${f.plural} have nothing called ${String(S??b)} to ${m} by`;if(m==="group"&&D.type!=="enum")return`${f.plural}' ${D.words} is not a choice, so they cannot be grouped by it`}}if(d==="when"){let f=l.show;if(!Array.isArray(f))return"a when block shows a list of blocks";let m=i(f,a+1);if(m)return m}}else if(d==="group"){if(!Array.isArray(u))return"a group block holds a list of blocks";let p=i(u,a+1);if(p)return p}else{if(d!=="divider"&&typeof u!="string")return`a ${d} block says words`;if(typeof u=="string")for(let p of u.matchAll(/\{([^{}]*)\}/g)){let g=p[1].split(/\|(?![|])/)[0],f=r(g,`${d}'s braces`);if(typeof f=="string")return f;let m=o(f,void 0);if(m)return m}}}};return i(n,1)}function T(e,n,r){let t=L(e.schema,r),o=f=>({ok:!1,failed:`Couldn't draw that: ${f.replace(/\.$/,"")}.`});if(!P(n.name)||n.name==="reach")return o(`"${String(n.name)}" is not a picture the seat can draw; it draws ${H.filter(f=>f!=="reach").join(", ")}`);if(typeof n.title!="string"||n.title.trim().length===0||n.title.length>80)return o("it needs a title of a few words");if(typeof n.on!="string"||!t.tryDefinition(n.on))return o("Nothing by that name here");let i=G[n.name],s=n.bindings??{};if(i.binds==="fields")for(let[f,m]of Object.entries(s)){if(!t.tryDefinition(f))return o("Nothing by that name here");let b=Object.keys(t.tryDefinition(f).fields?.shape??{});for(let[S,D]of Object.entries(m??{}))if(typeof D!="string"||!b.includes(D))return o(`${y(f)} has no field "${String(D)}" for its ${S}`);for(let S of i.requiredRoles)if(!(S in(m??{})))return o(`a ${n.name} needs ${y(f)}'s ${S}`)}else if(i.binds==="entities")for(let f of i.requiredRoles){let m=s[f];if(!m)return o(`a ${n.name} needs its ${f}`);if(typeof m.kind=="string"&&!t.tryDefinition(m.kind))return o("Nothing by that name here")}let a={...e,schema:t,lenses:[...e.lenses??[],n]},l=a.lenses.length-1,d=J(a),c=`lenses.${l}`,u=d.findings.find(f=>f.path===c||f.path.startsWith(`${c}.`));if(u)return o(u.message.replace(/^"[^"]*" /,"it "));let p=d.undrawn.find(f=>f.index===l);if(p)return o(p.why);let g=d.drawn.find(f=>f.index===l);if(!g)return o("its bindings name something the app does not have");if(g.as==="overview")return o(`"${n.title}" is the scene's own address; give it another title`);if(n.name==="blocks"){let f=Ee(I(t),n.options?.blocks);if(f)return o(f)}return{ok:!0,drawn:g}}function K(e){return{op:"add-lens",title:e.title,lens:e.name,on:e.on,...e.bindings?{bindings:e.bindings}:{},...e.options?{options:e.options}:{}}}function xe(e){return{op:"remove-lens",title:e.title,on:e.on}}var w=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function de(e){let n=w(e)?e:{},r=String(n.lens??n.name??""),t=n.bindings,o=typeof n.on=="string"?n.on:w(t)&&G[r]?.binds==="fields"?Object.keys(t)[0]??"":"";return{name:r,title:typeof n.title=="string"?n.title.trim():"",on:o,...w(t)?{bindings:t}:{},...w(n.options)?{options:n.options}:{}}}function ve(e){let n=o=>w(e.bindings?.[o])?e.bindings[o]:{},r=o=>typeof o=="string"?o:void 0,t=n(e.on);switch(e.name){case"columns":return r(t.column)?{lens:"columns",kind:e.on,column:t.column}:void 0;case"calendar":{let o=r(e.options?.range);return r(t.start)?{lens:"calendar",kind:e.on,start:t.start,...r(t.end)?{end:t.end}:{},...r(t.done)?{done:t.done}:{},...o?{range:o}:{}}:void 0}case"timeline":return r(t.start)&&r(t.end)&&r(t.column)?{lens:"timeline",kind:e.on,start:t.start,end:t.end,column:t.column}:void 0;case"coverage":{let o=w(e.bindings?.columns)?r(e.bindings.columns.kind):void 0,i=w(e.bindings?.link)?r(e.bindings.link.edge):void 0;return o&&i?{lens:"coverage",kind:e.on,across:o,link:i}:void 0}case"blocks":{let o=e.options?.blocks;if(!Array.isArray(o)||o.length!==1||!w(o[0]))return;let i=o[0],s=new RegExp(`^all\\('${e.on}'\\)(?: where (.+))?$`).exec(String(i.list??""));if(!s)return;let a=i.sort;return{lens:"blocks",kind:e.on,as:i.as==="card"?"card":"row",...typeof i.group=="string"?{group:i.group}:{},...typeof a=="string"?{sort:{by:a}}:w(a)&&typeof a.by=="string"?{sort:{by:a.by,...a.direction==="desc"?{direction:"desc"}:{}}}:{},...s[1]?{where:[{expr:s[1],says:"as asked"}]}:{}}}default:return}}function W(e,n,r,t,o){let i=I(L(e.schema,t)).info(n.on),s=ve(n);return{title:n.title,said:`${B[n.name]??"A picture"} of ${i?.plural??y(n.on)}.`,kind:n.on,lens:n,drawn:r,edit:K(n),by:o,asks:[],...s?{recipe:s}:{}}}function te(e){return{title:e.title,said:e.said,lens:{title:e.lens.title,lens:e.lens.name,on:e.lens.on,...e.lens.bindings?{bindings:e.lens.bindings}:{},...e.lens.options?{options:e.lens.options}:{}},edit:e.edit,by:e.by,check:"It draws, and graview check would take it."}}function F(e,n,r,t,o){let i=Ae(e,n),s=e.title??o??C(i.title,r.app),a=Re(e,s),l=T(r.app,a,r.sight);return l.ok?{title:s,said:`${B[e.lens]} ${i.detail}.`,kind:e.kind,lens:a,drawn:l.drawn,edit:K(a),by:"template",asks:t,recipe:e}:{failed:l.failed,...r.lastGood?{lastGood:r.lastGood}:{}}}function Ye(e,n){let r=I(L(n.app.schema,n.sight)),t=r.info(e.kind);if(!t)return{failed:"Couldn't draw that: Nothing by that name here."};let o=e.lens==="blocks"&&!e.group&&!e.sort&&!e.where?.length&&e.title===void 0;return F(o?{...e,title:C(`Every ${t.noun}`,n.app)}:e,r,n,[])}function Le(e,n,r,t){if(r.length>0)return r;let o=s=>{switch(e){case"columns":return s.fields.some(a=>a.type==="enum");case"calendar":return s.fields.some(R);case"timeline":return ie(s)!==void 0||s.fields.some(R);case"coverage":return s.edges.some(a=>a.to.some(l=>l!==s.kind));case"board":return s.fields.some(a=>a.name==="x")&&s.fields.some(a=>a.name==="y");case"plan":return s.fields.some(a=>a.name==="outline")||s.roles.outline!==void 0;default:return!0}};return[...n.kinds.filter(o)].sort((s,a)=>Number(a.fields.some(l=>E(t,l.words)))-Number(s.fields.some(l=>E(t,l.words))))}function Ie(e,n){let r=I(L(n.app.schema,n.sight)),t=re(e),o=$e(t);if(o.length===0)return;let i=pe(t,r),s;for(let a of o){let l=a==="coverage"?[i[0]??r.kinds[0]].filter(d=>!!d):Le(a,r,i,t);for(let d of l)try{let c=ae(a,d,r,t,i),u=F(c,r,n,[e]);if(!O(u))return u;s??=u.failed}catch(c){if(!(c instanceof j))throw c;s??=`Couldn't draw that: ${c.message}.`}l.length===0&&i.length===0&&(s??=`Couldn't draw that: nothing here has what ${B[a].toLowerCase()} needs.`)}return{failed:s??"Couldn't draw that: Nothing by that name here.",...n.lastGood?{lastGood:n.lastGood}:{}}}async function Oe(e,n){let r=n.lastGood?{lastGood:n.lastGood}:{};if(e.trim().length===0)return{failed:"Say what you would like to see, like \u201Ca board of tasks by status\u201D.",...r};let t=Ie(e,n);if(t&&!O(t))return t;if(!n.complete)return t??{failed:"Couldn't draw that: drawing freely needs AI, which isn't on here. Ask for a board, a calendar, a timeline, a list or who covers what.",...r};let o=await le(e,n,void 0);return O(o)&&t?t:o}async function je(e,n,r){let t={lastGood:e},o={...r,lastGood:e},i=I(L(r.app.schema,r.sight)),s=re(n),a=i.info(e.kind),l=[...e.asks,n];if(!a)return{failed:"Couldn't change that: Nothing by that name here.",...t};let d=e.recipe,c=/^ (?:call|name|title) (?:it|this)? ?(.+?) $/.exec(s)??/ (?:call|name) it (.+?) $/.exec(s);try{if(c){let g=n.replace(/^.*?\b(?:call|name|title)\b\s*(?:it|this)?\s*/i,"").replace(/^["“']|["”']$/g,"").trim();if(g.length===0)return{failed:"Couldn't change that: say what to call it.",...t};let f={...e.lens,title:C(g,r.app)},m=T(r.app,f,r.sight);return m.ok?{...e,title:f.title,lens:f,drawn:m.drawn,edit:K(f),asks:l,...d?{recipe:{...d,title:f.title}}:{}}:{failed:m.failed,...t}}let p=/ as (?:a |an )?(board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)\b/.exec(s);if(p){let g=p[1]==="board"||p[1]==="kanban"?"columns":p[1]==="calendar"?"calendar":p[1]==="timeline"?"timeline":p[1]==="grid"?"coverage":p[1]==="plan"?"plan":p[1]==="layout"?"board":"blocks",f=ae(g,a,i,s,[a]),m=p[1]==="cards"?"card":p[1]==="rows"?"row":void 0,b=g==="blocks"&&d?.lens==="blocks"?{...d,...m?{as:m}:{}}:g==="blocks"&&d?.lens==="columns"?{...f,group:d.column,...m?{as:m}:{}}:f;return F(A(b),i,o,l)}if(d){let g=Te(d,a,i,s);if(g)return F(g,i,o,l)}}catch(p){if(!(p instanceof j))throw p;return{failed:`Couldn't change that: ${p.message}.`,...t}}if(!r.complete)return{failed:"Couldn't change that: changing it freely needs AI, which isn't on here. Try \u201Cgroup by status\u201D, \u201Conly this month\u201D or \u201Cas a calendar\u201D.",...t};let u=await le(n,o,e);return O(u)?u:{...u,asks:l}}var A=e=>{let{title:n,...r}=e;return r};function Te(e,n,r,t){let o=/ (?:group(?:ed)?|split|organi[sz]ed?|put them|columns) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1]??(/^ by /.test(t)?U(t):void 0);if(o){let d=v(n,o);if(d?.type==="enum")return e.lens==="blocks"?{...A(e),group:d.name}:{lens:"columns",kind:e.kind,column:d.name};let c=oe(n,o,r);return c?{lens:"coverage",kind:e.kind,across:c.to[0],link:c.name}:h(d?`${n.plural}' ${d.words} is not a choice, so they cannot be grouped by it`:`${n.plural} have nothing called ${o} to group by`)}let i=/ (?:sort(?:ed)?|order(?:ed)?) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1];if(i){let d=v(n,i);return d?{...e.lens==="blocks"?A(e):{lens:"blocks",kind:e.kind,as:"row",...e.lens==="columns"?{group:e.column}:{}},sort:{by:d.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}:h(`${n.plural} have nothing called ${i} to sort by`)}if(/\b(?:all of them|everything|show all|clear the filter|no filter|without the filter)\b/.test(t)){if(e.lens!=="blocks"||!e.where)return h("it already shows all of them");let{where:d,...c}=A(e);return c}let s=se(t);if(s&&e.lens==="calendar"&&s.range)return{...A(e),range:s.range};if(s&&e.lens==="calendar"&&!s.range)return{lens:"blocks",kind:e.kind,as:"row",sort:{by:e.start},where:V(n,t)};let a=V(n,t);if(a.length>0){let d=e.lens==="blocks"?A(e):{lens:"blocks",kind:e.kind,as:"row",...e.lens==="columns"?{group:e.column}:{}};return{...d,where:[...d.where??[],...a]}}let l=e.lens==="calendar"?M(t):void 0;if(l)return{...A(e),range:l}}function Ne(e){return e.kinds.map(n=>{let r=n.fields.map(i=>`${i.name} (${i.type??"value"}${i.options?`: ${i.options.join(" | ")}`:""})`).join(", "),t=n.edges.map(i=>`${i.name} \u2192 ${i.to.join(" | ")}`).join(", "),o=Object.entries(n.roles).map(([i,s])=>`${i}=${s}`).join(", ");return`- ${n.kind} ("${n.plural}"): ${r}${t?`; relations: ${t}`:""}${o?`; roles: ${o}`:""}`}).join(`
|
|
1
|
+
import{a as k}from"./chunk.G4JJXA63.js";import{a as Q}from"./chunk.B2IRADR2.js";import{a as Y}from"./chunk.IAZRY42B.js";import{a as X}from"./chunk.4BBJ62ZO.js";import{c as _}from"./chunk.2IX3CZNP.js";import{_c as G,ad as H,bd as P,cd as J,ib as q,jb as z}from"./chunk.5ZMENPY4.js";var O=e=>"failed"in e;function ue(e,n){let r=e.schema.kinds,t=e.policy?.sees;if(!t?.length||z(n))return{kinds:r};let o=q(n).roles??[],i=new Set(t.filter(s=>s.roles==="*"||o.some(a=>s.roles.includes(a))).flatMap(s=>s.kinds));return{kinds:r.filter(s=>i.has(s))}}function L(e,n){if(!n)return e;let r=new Set(n.kinds.filter(i=>e.tryDefinition(i)!==void 0));if(r.size===e.kinds.length)return e;let t=new Map,o=i=>{if(r.has(i)){if(!t.has(i)){let s=e.tryDefinition(i),a=Object.fromEntries(Object.entries(s?.edges??{}).flatMap(([l,d])=>{if(d.to==="*")return[[l,d]];let c=d.to.filter(u=>r.has(u));return c.length>0?[[l,{...d,to:c}]]:[]}));t.set(i,{...s,edges:a})}return t.get(i)}};return{...e,definitions:e.definitions.filter(i=>r.has(i.kind)),kinds:e.kinds.filter(i=>r.has(i)),tryDefinition:o,definition:i=>{let s=o(i);if(!s)throw new Error(`Unknown node kind "${i}"`);return s}}}var fe=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),y=e=>fe(e).replace(/[-_]+/g," ").trim();function I(e){let n=[];for(let t of e.kinds){let o=e.tryDefinition(t);if(!o)continue;let i=o.display?.labels??{},s=Object.entries(o.fields?.shape??{}).filter(([d])=>d!=="id"&&d!=="kind").map(([d,c])=>{let u=X(c);return{name:d,type:u?.type,...u?.options?{options:u.options}:{},words:(i[d]??y(d)).toLowerCase()}}),a=Object.entries(o.edges??{}).map(([d,c])=>({name:d,from:t,to:c.to==="*"?e.kinds.filter(u=>u!==t):c.to,words:y(d)})),l=(o.plural??`${y(t)}s`).toLowerCase();n.push({kind:t,plural:l,noun:(o.noun??y(t)).toLowerCase(),fields:s,roles:o.fieldRoles??{},edges:a})}let r=new Map(n.map(t=>[t.kind,t]));return{schema:e,kinds:n,info:t=>r.get(t)}}var $=(e,n)=>n===void 0?void 0:e.fields.find(r=>r.name===n),A=e=>e?.type==="date"||e?.type==="datetime",N=e=>e?.type==="number"||e?.type==="integer"||e?.type==="duration",re=e=>` ${e.toLowerCase().replace(/[“”"’‘]/g,"'").replace(/[^\p{L}\p{N}' -]+/gu," ").replace(/\s+/g," ").trim()} `,E=(e,n)=>e.includes(` ${n} `),x=e=>e.endsWith("ies")?`${e.slice(0,-3)}y`:e.endsWith("ses")?e.slice(0,-2):e.endsWith("s")?e.slice(0,-1):e;function pe(e,n){let r=[];for(let t of n.kinds){let o=new Set([t.plural,t.noun,`${t.noun}s`,y(t.kind),`${y(t.kind)}s`]),i=-1;for(let s of o){let a=e.indexOf(` ${s} `);a>=0&&(i<0||a<i)&&(i=a)}i>=0&&r.push({info:t,at:i})}return r.sort((t,o)=>t.at-o.at).map(t=>t.info)}function v(e,n,r){let t=n.trim().toLowerCase();if(t.length===0)return;let o=e.fields.filter(i=>!r||r(i));return o.find(i=>i.words===t||y(i.name)===t||i.name.toLowerCase()===t)??o.find(i=>i.words===x(t)||y(i.name)===x(t))??o.find(i=>t.split(" ").some(s=>s.length>2&&(i.words.split(" ").includes(s)||i.words.split(" ").includes(x(s)))))}function oe(e,n,r){let t=n.trim().toLowerCase();if(t.length!==0)return e.edges.find(o=>o.words===t||o.name.toLowerCase()===t)??e.edges.find(o=>o.to.some(i=>{let s=r.info(i);return s!==void 0&&(s.noun===x(t)||s.plural===t||y(i)===x(t))}))??e.edges.find(o=>t.split(" ").some(i=>i.length>2&&o.words.split(" ").includes(i)))}function U(e){return/ (?:grouped |group |split |sorted |organi[sz]ed )?by ([\p{L}\p{N}' -]+?)(?= (?:and|with|for|in|on|only|where|from|this|that|as|sorted|grouped) |\s*$)/u.exec(e)?.[1]?.trim()}var me=/\bwho\b.*\b(covers?|cover|tends?|owns?|handles?|does|works? on|looks? after|is on|is assigned|staffs?|runs?)\b|\bcoverage\b|\bmatrix\b|\bwho covers\b/,ge=/\bcalendar\b|\bmonth\b|\bagenda\b|\bschedule\b|\bdue\b|\bdeadlines?\b|\bdates?\b|\bwhen\b/,ye=/\btimeline\b|\bover time\b|\bgantt\b|\bspans?\b|\bweek\b/,he=/\bboard\b|\bkanban\b|\bcolumns?\b|\bpipeline\b|\bstages?\b|\bstatus\b/,be=/\blaid out\b|\blayout\b|\bseating\b|\bwhere (?:they|it|each) (?:sits?|lies?|stands?)\b|\bfloor\b/,we=/\bplan\b|\bmap\b|\bregions?\b/,ke=/\blist\b|\btable\b|\bgroup(?:ed)? by\b|\bsort(?:ed)? by\b|\bonly\b|\bjust the\b/;function $e(e){let n=[];return/\blist\b|\btable\b/.test(e)&&n.push("blocks"),me.test(e)&&n.push("coverage"),be.test(e)&&n.push("board"),(/\bfloor plan\b/.test(e)||we.test(e))&&n.push("plan"),ye.test(e)&&n.push("timeline"),ge.test(e)&&n.push("calendar"),he.test(e)&&n.push("columns"),ke.test(e)&&!n.includes("blocks")&&n.push("blocks"),n.length===0&&U(e)&&n.push("columns"),n}var se=e=>{let n=r=>r?` and not ${r}`:"";if(/\boverdue\b|\blate\b|\bpast due\b/.test(e))return{cond:(r,t)=>`days(today(), ${r}) < 0${n(t)}`,says:r=>`overdue by ${r.words}`};if(/\btoday\b/.test(e))return{range:"day",cond:r=>`days(today(), ${r}) == 0`,says:r=>`with ${r.words} today`};if(/\bthis week\b|\bnext 7 days\b|\bnext week\b/.test(e))return{range:"week",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 6`,says:r=>`with ${r.words} in the next week`};if(/\bthis month\b|\bnext 30 days\b|\bnext month\b/.test(e))return{range:"month",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 30`,says:r=>`with ${r.words} in the next month`};if(/\blast month\b|\bpast month\b/.test(e))return{range:"month",cond:r=>`days(today(), ${r}) >= -30 and days(today(), ${r}) <= 0`,says:r=>`with ${r.words} in the last month`};if(/\bthis year\b/.test(e))return{range:"year",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 365`,says:r=>`with ${r.words} in the next year`};if(/\bquarter\b/.test(e))return{range:"quarter",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 91`,says:r=>`with ${r.words} in the next quarter`}},M=e=>{if(/\bagenda\b|\bin order\b/.test(e))return"agenda";if(/\btoday\b|\bday\b/.test(e))return"day";if(/\bweek\b/.test(e))return"week";if(/\bquarter\b/.test(e))return"quarter";if(/\byears\b/.test(e))return"years";if(/\byear\b/.test(e))return"year";if(/\bmonth\b/.test(e))return"month"},Z=/^(user|person|people|member|staff|gardener|volunteer|owner|agent|employee|worker|team|player|customer|client|contact|party|attendee|guest)s?$/,j=class extends Error{},h=e=>{throw new j(e)};function Se(e,n){let r=e.fields.filter(i=>i.type==="enum");if(n){let i=v(e,n);if(i&&i.type==="enum")return i;i&&h(`${e.plural}' ${i.words} is not a choice, so it has no columns`)}let t=$(e,e.roles.status??e.roles.column);if(t?.type==="enum")return t;let o=r.find(i=>/^(status|stage|state|phase)$/.test(i.name));return o||(r[0]?r[0]:h(`${e.plural} have no choice field to put in columns`))}function ee(e,n){let r=e.fields.filter(A),t=l=>{let d=$(e,e.roles[l]);return A(d)?d:void 0},i=r.find(l=>E(n,l.words)||E(n,y(l.name)))??t("start")??r.find(l=>/^(due|date|on|at|start|starts|begins|from|sown|when)/i.test(l.name))??r[0];if(!i)return h(`no date field on ${e.plural}`);let s=t("end")??r.find(l=>l!==i&&/^(end|ends|until|to|finish|finished|harvested|due|closes|through)/i.test(l.name)),a=e.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));return{start:i,...s&&s!==i?{end:s}:{},...a?{done:a}:{}}}function ie(e){let n=$(e,e.roles.start),r=$(e,e.roles.end),t=$(e,e.roles.column??e.roles.day??e.roles.columns);if(N(n)&&N(r)&&t?.type==="enum")return{start:n,end:r,column:t}}function De(e,n,r,t){let o=[];for(let s of e.kinds)for(let a of s.edges)for(let l of a.to){let d=e.info(l);if(!d||d.kind===s.kind)continue;let c=0;n.includes(s)&&(c+=4),n.includes(d)&&(c+=4),(Z.test(d.kind)||Z.test(d.noun))&&(c+=3),t&&(a.words.includes(t)||d.noun===x(t))&&(c+=5),a.words.split(" ").some(u=>u.length>2&&r.includes(` ${u}`))&&(c+=2),o.push({rows:s,across:d,link:a,score:c})}let i=o.sort((s,a)=>a.score-s.score)[0];return i||h(n[0]?`${n[0].plural} are joined to nothing else, so there is no who-covers-what to draw`:"nothing here is joined to anything else, so there is no who-covers-what to draw")}function ae(e,n,r,t,o){let i=U(t);switch(e){case"columns":{if(i){let s=v(n,i);if(!s||s.type!=="enum"){let a=oe(n,i,r);if(a){let l=r.info(a.to[0]);return{lens:"coverage",kind:n.kind,across:l.kind,link:a.name}}}}return{lens:"columns",kind:n.kind,column:Se(n,i).name}}case"calendar":{let s=ee(n,t),a=M(t);return{lens:"calendar",kind:n.kind,start:s.start.name,...s.end?{end:s.end.name}:{},...s.done?{done:s.done.name}:{},...a?{range:a}:{}}}case"timeline":{let s=ie(n);if(s&&!/\bdates?\b|\bdue\b|\bdeadlines?\b|\bmonths?\b|\byears?\b/.test(t))return{lens:"timeline",kind:n.kind,start:s.start.name,end:s.end.name,column:s.column.name};let a=ee(n,t);return{lens:"calendar",kind:n.kind,start:a.start.name,...a.end?{end:a.end.name}:{},...a.done?{done:a.done.name}:{},range:M(t)??"quarter"}}case"coverage":{let s=De(r,o,t,i);return{lens:"coverage",kind:s.rows.kind,across:s.across.kind,link:s.link.name}}case"board":{let s=$(n,n.roles.x)??n.fields.find(c=>c.name==="x"),a=$(n,n.roles.y)??n.fields.find(c=>c.name==="y");if(!N(s)||!N(a))return h(`${n.plural} have no x and y to be laid out by`);let d=r.kinds.flatMap(c=>c.edges.filter(u=>u.to.includes(n.kind)&&c.kind!==n.kind))[0]??n.edges[0];return d?{lens:"board",kind:n.kind,x:s.name,y:a.name,fill:d.name,...d.from!==n.kind?{fillFrom:"occupant"}:{}}:h(`nothing is joined to ${n.plural} to fill them`)}case"plan":{let s=$(n,n.roles.outline)??n.fields.find(a=>a.name==="outline");return s?{lens:"plan",kind:n.kind,outline:s.name}:h(`${n.plural} have no outline to draw a plan from`)}case"blocks":{let s={lens:"blocks",kind:n.kind,as:/\bcards?\b/.test(t)?"card":"row"},a=/ group(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|sorted|with)|\s*$)/u.exec(t)?.[1]??(i&&!/ sort(?:ed)? by /.test(t)?i:void 0);if(a){let c=v(n,a);if(!c||c.type!=="enum")return h(c?`${n.plural}' ${c.words} is not a choice, so they cannot be grouped by it`:`${n.plural} have nothing called ${a} to group by`);s.group=c.name}let l=/ sort(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|grouped|with)|\s*$)/u.exec(t)?.[1];if(l){let c=v(n,l);if(!c)return h(`${n.plural} have nothing called ${l} to sort by`);s.sort={by:c.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}let d=V(n,t);return d.length>0&&(s.where=d),s}}}function V(e,n){let r=[],t=se(n);if(t){let o=e.fields.filter(A),i=$(e,e.roles.start),s=o.find(l=>E(n,l.words))??(A(i)?i:void 0)??o[0];(!s||!A(s))&&h(`no date field on ${e.plural}`);let a=e.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));r.push({expr:t.cond(s.name,/\boverdue\b|\blate\b|\bpast due\b/.test(n)?a?.name:void 0),says:t.says(s)})}if(/\bonly\b|\bjust\b|\bthat are\b|\bwhich are\b/.test(n)){for(let o of e.fields){if(o.type!=="enum")continue;let i=o.options?.find(s=>E(n,s.toLowerCase())||E(n,y(s)));i&&r.push({expr:`${o.name} == '${i.replace(/'/g,"")}'`,says:`that are ${y(i)}`})}if(/\bnot done\b|\bundone\b|\bunfinished\b|\bopen ones\b|\bstill to do\b/.test(n)){let o=e.fields.find(i=>i.type==="boolean"&&/^(done|finished|complete|completed)$/.test(i.name));o&&r.push({expr:`not ${o.name}`,says:`not ${o.words}`})}}return r}var B={columns:"A board",calendar:"A calendar",timeline:"A timeline",coverage:"A grid",board:"A layout",plan:"A plan",blocks:"A list",reach:"A picture"};function Re(e,n){let r=n.info(e.kind),t=o=>o?$(r,o)?.words??y(o):"";switch(e.lens){case"columns":return{title:`${k(r.plural)} by ${t(e.column)}`,detail:`of ${r.plural} by ${t(e.column)}`};case"calendar":{let o=e.range??"month";if(o==="agenda")return{title:`${k(r.plural)} in date order`,detail:`of ${r.plural} in order of ${t(e.start)}`};let i=o==="years"?"year":o;return{title:`${k(r.plural)} by ${i}`,detail:`of ${r.plural} by ${t(e.start)}, a ${i} at a time`}}case"timeline":return{title:`${k(r.plural)} over the ${t(e.column)}`,detail:`of ${r.plural} from ${t(e.start)} to ${t(e.end)}, by ${t(e.column)}`};case"coverage":{let o=n.info(e.across);return{title:`${k(r.plural)} by ${o.noun}`,detail:`of which ${o.noun} covers which ${r.noun}`}}case"board":return{title:`${k(r.plural)} where they stand`,detail:`of ${r.plural} where they stand`};case"plan":return{title:`${k(r.plural)} on a plan`,detail:`of ${r.plural}`};default:{let o=[e.where?.map(i=>i.says).join(" and "),e.group?`by ${t(e.group)}`:void 0,e.sort?`in order of ${t(e.sort.by)}`:void 0].filter(i=>!!i);return{title:[k(r.plural),...o].join(" "),detail:[`of ${r.plural}`,...o].join(" ")}}}}function Ae(e,n){let r={title:n,on:e.kind};switch(e.lens){case"columns":return{name:"columns",...r,bindings:{[e.kind]:{column:e.column}}};case"calendar":return{name:"calendar",...r,bindings:{[e.kind]:{start:e.start,...e.end?{end:e.end}:{},...e.done?{done:e.done}:{}}},...e.range?{options:{range:e.range}}:{}};case"timeline":return{name:"timeline",...r,bindings:{[e.kind]:{start:e.start,end:e.end,column:e.column}}};case"coverage":return{name:"coverage",...r,bindings:{rows:{kind:e.kind},columns:{kind:e.across},link:{edge:e.link}}};case"board":return{name:"board",...r,bindings:{slots:{kind:e.kind},x:{field:e.x,on:"slots"},y:{field:e.y,on:"slots"},fill:{edge:e.fill}},...e.fillFrom?{options:{fillFrom:e.fillFrom}}:{}};case"plan":return{name:"plan",...r,bindings:{regions:{kind:e.kind},outline:{field:e.outline,on:"regions"}}};default:{let t=e.where?.length?` where ${e.where.map(i=>e.where.length>1?`(${i.expr})`:i.expr).join(" and ")}`:"",o={list:`all('${e.kind}')${t}`,as:e.as??"row"};return e.group&&(o.group=e.group),e.sort&&(o.sort=e.sort.direction?{by:e.sort.by,direction:e.sort.direction}:e.sort.by),o.empty="Nothing here yet.",{name:"blocks",...r,options:{blocks:[o]}}}}}function C(e,n){let r=o=>o.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,""),t=new Set(["home","overview",...Q(n).map(o=>o.slug),...(n.lenses??[]).flatMap(o=>o.title?[r(o.title)]:[])]);if(!t.has(r(e)))return e;for(let o=2;;o++)if(!t.has(r(`${e} ${o}`)))return`${e} ${o}`}var ne={title:[],headline:[],text:["tone"],figure:["as","currency","label"],list:["sort","limit","group","empty","as"],progress:["label"],group:["direction"],when:["show"],divider:[]};function Ee(e,n){if(!Array.isArray(n)||n.length===0)return"it has no blocks to draw";if(n.length>40)return"it has more blocks than a place draws";let r=(s,a)=>{if(typeof s!="string"||s.trim()==="")return`its ${a} says nothing`;try{return _(s)}catch(l){return`its ${a} does not read: ${l instanceof Error?l.message.replace(/ \(at character.*$/,""):String(l)}`}},t=s=>{if(s.t==="where")return t(s.set);if(s.t==="call"&&s.fn==="all"){let a=s.args[0];return a?.t==="lit"&&typeof a.value=="string"?e.info(a.value)??null:void 0}},o=(s,a)=>{switch(s.t){case"lit":return;case"ident":return a&&!a.fields.some(l=>l.name===s.name)&&!a.edges.some(l=>l.name===s.name)?`${a.plural} have nothing called ${s.name}`:void 0;case"member":return o(s.object,a);case"list":return s.items.map(l=>o(l,a)).find(Boolean);case"unary":return o(s.operand,a);case"binary":return o(s.left,a)??o(s.right,a);case"where":{let l=t(s.set);return l===null?"Nothing by that name here":o(s.set,a)??o(s.filter,l??void 0)}case"call":return s.fn==="all"?t(s)===null?"Nothing by that name here":void 0:s.args.map(l=>o(l,a)).find(Boolean)}},i=(s,a)=>{if(a>4)return"its blocks nest deeper than a place draws";for(let l of s){if(!w(l))return"a block is not an object";let d=Object.keys(ne).find(p=>p in l);if(!d)return`"${Object.keys(l)[0]??""}" is not a block a place draws`;let c=Object.keys(l).find(p=>p!==d&&p!=="key"&&!ne[d].includes(p));if(c)return`a ${d} block takes no "${c}"`;let u=l[d];if(d==="list"||d==="figure"||d==="when"){if(d==="figure"&&u===!0)continue;let p=r(u,d);if(typeof p=="string")return p;let g=o(p,void 0);if(g)return g;if(d==="list"){let f=t(p);if(f==null)return f===null?"Nothing by that name here":"its list does not say which records it lists, like all('task')";for(let m of["group","sort"]){let b=l[m],S=typeof b=="string"?b:w(b)&&typeof b.by=="string"?b.by:void 0;if(b===void 0)continue;let D=S?f.fields.find(ce=>ce.name===S):void 0;if(!D)return`${f.plural} have nothing called ${String(S??b)} to ${m} by`;if(m==="group"&&D.type!=="enum")return`${f.plural}' ${D.words} is not a choice, so they cannot be grouped by it`}}if(d==="when"){let f=l.show;if(!Array.isArray(f))return"a when block shows a list of blocks";let m=i(f,a+1);if(m)return m}}else if(d==="group"){if(!Array.isArray(u))return"a group block holds a list of blocks";let p=i(u,a+1);if(p)return p}else{if(d!=="divider"&&typeof u!="string")return`a ${d} block says words`;if(typeof u=="string")for(let p of u.matchAll(/\{([^{}]*)\}/g)){let g=p[1].split(/\|(?![|])/)[0],f=r(g,`${d}'s braces`);if(typeof f=="string")return f;let m=o(f,void 0);if(m)return m}}}};return i(n,1)}function T(e,n,r){let t=L(e.schema,r),o=f=>({ok:!1,failed:`Couldn't draw that: ${f.replace(/\.$/,"")}.`});if(!P(n.name)||n.name==="reach")return o(`"${String(n.name)}" is not a picture the seat can draw; it draws ${H.filter(f=>f!=="reach").join(", ")}`);if(typeof n.title!="string"||n.title.trim().length===0||n.title.length>80)return o("it needs a title of a few words");if(typeof n.on!="string"||!t.tryDefinition(n.on))return o("Nothing by that name here");let i=G[n.name],s=n.bindings??{};if(i.binds==="fields")for(let[f,m]of Object.entries(s)){if(!t.tryDefinition(f))return o("Nothing by that name here");let b=Object.keys(t.tryDefinition(f).fields?.shape??{});for(let[S,D]of Object.entries(m??{}))if(typeof D!="string"||!b.includes(D))return o(`${y(f)} has no field "${String(D)}" for its ${S}`);for(let S of i.requiredRoles)if(!(S in(m??{})))return o(`a ${n.name} needs ${y(f)}'s ${S}`)}else if(i.binds==="entities")for(let f of i.requiredRoles){let m=s[f];if(!m)return o(`a ${n.name} needs its ${f}`);if(typeof m.kind=="string"&&!t.tryDefinition(m.kind))return o("Nothing by that name here")}let a={...e,schema:t,lenses:[...e.lenses??[],n]},l=a.lenses.length-1,d=J(a),c=`lenses.${l}`,u=d.findings.find(f=>f.path===c||f.path.startsWith(`${c}.`));if(u)return o(u.message.replace(/^"[^"]*" /,"it "));let p=d.undrawn.find(f=>f.index===l);if(p)return o(p.why);let g=d.drawn.find(f=>f.index===l);if(!g)return o("its bindings name something the app does not have");if(g.as==="overview")return o(`"${n.title}" is the scene's own address; give it another title`);if(n.name==="blocks"){let f=Ee(I(t),n.options?.blocks);if(f)return o(f)}return{ok:!0,drawn:g}}function K(e){return{op:"add-lens",title:e.title,lens:e.name,on:e.on,...e.bindings?{bindings:e.bindings}:{},...e.options?{options:e.options}:{}}}function xe(e){return{op:"remove-lens",title:e.title,on:e.on}}var w=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function de(e){let n=w(e)?e:{},r=String(n.lens??n.name??""),t=n.bindings,o=typeof n.on=="string"?n.on:w(t)&&G[r]?.binds==="fields"?Object.keys(t)[0]??"":"";return{name:r,title:typeof n.title=="string"?n.title.trim():"",on:o,...w(t)?{bindings:t}:{},...w(n.options)?{options:n.options}:{}}}function ve(e){let n=o=>w(e.bindings?.[o])?e.bindings[o]:{},r=o=>typeof o=="string"?o:void 0,t=n(e.on);switch(e.name){case"columns":return r(t.column)?{lens:"columns",kind:e.on,column:t.column}:void 0;case"calendar":{let o=r(e.options?.range);return r(t.start)?{lens:"calendar",kind:e.on,start:t.start,...r(t.end)?{end:t.end}:{},...r(t.done)?{done:t.done}:{},...o?{range:o}:{}}:void 0}case"timeline":return r(t.start)&&r(t.end)&&r(t.column)?{lens:"timeline",kind:e.on,start:t.start,end:t.end,column:t.column}:void 0;case"coverage":{let o=w(e.bindings?.columns)?r(e.bindings.columns.kind):void 0,i=w(e.bindings?.link)?r(e.bindings.link.edge):void 0;return o&&i?{lens:"coverage",kind:e.on,across:o,link:i}:void 0}case"blocks":{let o=e.options?.blocks;if(!Array.isArray(o)||o.length!==1||!w(o[0]))return;let i=o[0],s=new RegExp(`^all\\('${e.on}'\\)(?: where (.+))?$`).exec(String(i.list??""));if(!s)return;let a=i.sort;return{lens:"blocks",kind:e.on,as:i.as==="card"?"card":"row",...typeof i.group=="string"?{group:i.group}:{},...typeof a=="string"?{sort:{by:a}}:w(a)&&typeof a.by=="string"?{sort:{by:a.by,...a.direction==="desc"?{direction:"desc"}:{}}}:{},...s[1]?{where:[{expr:s[1],says:"as asked"}]}:{}}}default:return}}function W(e,n,r,t,o){let i=I(L(e.schema,t)).info(n.on),s=ve(n);return{title:n.title,said:`${B[n.name]??"A picture"} of ${i?.plural??y(n.on)}.`,kind:n.on,lens:n,drawn:r,edit:K(n),by:o,asks:[],...s?{recipe:s}:{}}}function te(e){return{title:e.title,said:e.said,lens:{title:e.lens.title,lens:e.lens.name,on:e.lens.on,...e.lens.bindings?{bindings:e.lens.bindings}:{},...e.lens.options?{options:e.lens.options}:{}},edit:e.edit,by:e.by,check:"It draws, and graview check would take it."}}function F(e,n,r,t,o){let i=Re(e,n),s=e.title??o??C(i.title,r.app),a=Ae(e,s),l=T(r.app,a,r.sight);return l.ok?{title:s,said:`${B[e.lens]} ${i.detail}.`,kind:e.kind,lens:a,drawn:l.drawn,edit:K(a),by:"template",asks:t,recipe:e}:{failed:l.failed,...r.lastGood?{lastGood:r.lastGood}:{}}}function Ye(e,n){let r=I(L(n.app.schema,n.sight)),t=r.info(e.kind);if(!t)return{failed:"Couldn't draw that: Nothing by that name here."};let o=e.lens==="blocks"&&!e.group&&!e.sort&&!e.where?.length&&e.title===void 0;return F(o?{...e,title:C(`Every ${t.noun}`,n.app)}:e,r,n,[])}function Le(e,n,r,t){if(r.length>0)return r;let o=s=>{switch(e){case"columns":return s.fields.some(a=>a.type==="enum");case"calendar":return s.fields.some(A);case"timeline":return ie(s)!==void 0||s.fields.some(A);case"coverage":return s.edges.some(a=>a.to.some(l=>l!==s.kind));case"board":return s.fields.some(a=>a.name==="x")&&s.fields.some(a=>a.name==="y");case"plan":return s.fields.some(a=>a.name==="outline")||s.roles.outline!==void 0;default:return!0}};return[...n.kinds.filter(o)].sort((s,a)=>Number(a.fields.some(l=>E(t,l.words)))-Number(s.fields.some(l=>E(t,l.words))))}function Ie(e,n){let r=I(L(n.app.schema,n.sight)),t=re(e),o=$e(t);if(o.length===0)return;let i=pe(t,r),s;for(let a of o){let l=a==="coverage"?[i[0]??r.kinds[0]].filter(d=>!!d):Le(a,r,i,t);for(let d of l)try{let c=ae(a,d,r,t,i),u=F(c,r,n,[e]);if(!O(u))return u;s??=u.failed}catch(c){if(!(c instanceof j))throw c;s??=`Couldn't draw that: ${c.message}.`}l.length===0&&i.length===0&&(s??=`Couldn't draw that: nothing here has what ${B[a].toLowerCase()} needs.`)}return{failed:s??"Couldn't draw that: Nothing by that name here.",...n.lastGood?{lastGood:n.lastGood}:{}}}async function Oe(e,n){let r=n.lastGood?{lastGood:n.lastGood}:{};if(e.trim().length===0)return{failed:"Say what you would like to see, like \u201Ca board of tasks by status\u201D.",...r};let t=Ie(e,n);if(t&&!O(t))return t;if(!n.complete)return t??{failed:"Couldn't draw that: drawing freely needs AI, which isn't on here. Ask for a board, a calendar, a timeline, a list or who covers what.",...r};let o=await le(e,n,void 0);return O(o)&&t?t:o}async function je(e,n,r){let t={lastGood:e},o={...r,lastGood:e},i=I(L(r.app.schema,r.sight)),s=re(n),a=i.info(e.kind),l=[...e.asks,n];if(!a)return{failed:"Couldn't change that: Nothing by that name here.",...t};let d=e.recipe,c=/^ (?:call|name|title) (?:it|this)? ?(.+?) $/.exec(s)??/ (?:call|name) it (.+?) $/.exec(s);try{if(c){let g=n.replace(/^.*?\b(?:call|name|title)\b\s*(?:it|this)?\s*/i,"").replace(/^["“']|["”']$/g,"").trim();if(g.length===0)return{failed:"Couldn't change that: say what to call it.",...t};let f={...e.lens,title:C(g,r.app)},m=T(r.app,f,r.sight);return m.ok?{...e,title:f.title,lens:f,drawn:m.drawn,edit:K(f),asks:l,...d?{recipe:{...d,title:f.title}}:{}}:{failed:m.failed,...t}}let p=/ as (?:a |an )?(board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)\b/.exec(s);if(p){let g=p[1]==="board"||p[1]==="kanban"?"columns":p[1]==="calendar"?"calendar":p[1]==="timeline"?"timeline":p[1]==="grid"?"coverage":p[1]==="plan"?"plan":p[1]==="layout"?"board":"blocks",f=ae(g,a,i,s,[a]),m=p[1]==="cards"?"card":p[1]==="rows"?"row":void 0,b=g==="blocks"&&d?.lens==="blocks"?{...d,...m?{as:m}:{}}:g==="blocks"&&d?.lens==="columns"?{...f,group:d.column,...m?{as:m}:{}}:f;return F(R(b),i,o,l)}if(d){let g=Te(d,a,i,s);if(g)return F(g,i,o,l)}}catch(p){if(!(p instanceof j))throw p;return{failed:`Couldn't change that: ${p.message}.`,...t}}if(!r.complete)return{failed:"Couldn't change that: changing it freely needs AI, which isn't on here. Try \u201Cgroup by status\u201D, \u201Conly this month\u201D or \u201Cas a calendar\u201D.",...t};let u=await le(n,o,e);return O(u)?u:{...u,asks:l}}var R=e=>{let{title:n,...r}=e;return r};function Te(e,n,r,t){let o=/ (?:group(?:ed)?|split|organi[sz]ed?|put them|columns) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1]??(/^ by /.test(t)?U(t):void 0);if(o){let d=v(n,o);if(d?.type==="enum")return e.lens==="blocks"?{...R(e),group:d.name}:{lens:"columns",kind:e.kind,column:d.name};let c=oe(n,o,r);return c?{lens:"coverage",kind:e.kind,across:c.to[0],link:c.name}:h(d?`${n.plural}' ${d.words} is not a choice, so they cannot be grouped by it`:`${n.plural} have nothing called ${o} to group by`)}let i=/ (?:sort(?:ed)?|order(?:ed)?) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1];if(i){let d=v(n,i);return d?{...e.lens==="blocks"?R(e):{lens:"blocks",kind:e.kind,as:"row",...e.lens==="columns"?{group:e.column}:{}},sort:{by:d.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}:h(`${n.plural} have nothing called ${i} to sort by`)}if(/\b(?:all of them|everything|show all|clear the filter|no filter|without the filter)\b/.test(t)){if(e.lens!=="blocks"||!e.where)return h("it already shows all of them");let{where:d,...c}=R(e);return c}let s=se(t);if(s&&e.lens==="calendar"&&s.range)return{...R(e),range:s.range};if(s&&e.lens==="calendar"&&!s.range)return{lens:"blocks",kind:e.kind,as:"row",sort:{by:e.start},where:V(n,t)};let a=V(n,t);if(a.length>0){let d=e.lens==="blocks"?R(e):{lens:"blocks",kind:e.kind,as:"row",...e.lens==="columns"?{group:e.column}:{}};return{...d,where:[...d.where??[],...a]}}let l=e.lens==="calendar"?M(t):void 0;if(l)return{...R(e),range:l}}function Ne(e){return e.kinds.map(n=>{let r=n.fields.map(i=>`${i.name} (${i.type??"value"}${i.options?`: ${i.options.join(" | ")}`:""})`).join(", "),t=n.edges.map(i=>`${i.name} \u2192 ${i.to.join(" | ")}`).join(", "),o=Object.entries(n.roles).map(([i,s])=>`${i}=${s}`).join(", ");return`- ${n.kind} ("${n.plural}"): ${r}${t?`; relations: ${t}`:""}${o?`; roles: ${o}`:""}`}).join(`
|
|
2
2
|
`)}var Fe=['columns \u2014 a board, records in columns by one choice field: {"lens": "columns", "on": K, "bindings": {K: {"column": "<enum field>"}}}','calendar \u2014 records on a calendar by a date: {"lens": "calendar", "on": K, "bindings": {K: {"start": "<date field>", "end"?: "<date field>", "done"?: "<boolean field>"}}, "options": {"range"?: "day" | "week" | "month" | "quarter" | "year" | "agenda"}}','timeline \u2014 minutes of a day in columns: {"lens": "timeline", "on": K, "bindings": {K: {"start": "<number field>", "end": "<number field>", "column": "<enum field>"}}}','coverage \u2014 who covers what, a grid of two kinds joined by a relation: {"lens": "coverage", "on": K, "bindings": {"rows": {"kind": K}, "columns": {"kind": J}, "link": {"edge": "<relation of K to J>"}}}',`blocks \u2014 anything else, as blocks: {"lens": "blocks", "on": K, "options": {"blocks": [{"headline": "words"}, {"list": "all('K') where <condition>", "group"?: "<enum field>", "sort"?: "<field>" | {"by": "<field>", "direction": "desc"}, "as"?: "row" | "card", "empty"?: "words"}, {"figure": "count(all('K'))", "label": "words"}]}}. Conditions read a record's own fields: status == 'open', not done, days(today(), due) <= 7.`].join(`
|
|
3
3
|
`);function Ce(e,n,r){return["You draw a view of an app's data as JSON \u2014 never code. The app's kinds, their fields (with types) and relations:",Ne(n),"","The lenses you may use (prefer the first four; use blocks only when none of them fits):",Fe,"",r?`The view on screen now:
|
|
4
4
|
${JSON.stringify(r.lens)}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{B as y,
|
|
1
|
+
import{B as y,Db as $,Hb as x,K as h,T as g,da as m}from"./chunk.5ZMENPY4.js";function B(n,e,t){let o=n?.display?.format?.[e];return o?o(t):typeof t=="string"?m(t):String(t)}function G(n,e,t,o){let s=n.tryDefinition(e)?.edges,i=s&&Object.hasOwn(s,t)?s[t]:void 0;return(o==="out"?i?.description:i?.inverse)??m(t).toLowerCase()}var O=Symbol.for("@graview/core:markdown");function S(n){let e=y(n);return!!e&&(e[O]===1||S(e.innerType))}var w=/^ {0,3}#{1,6}(?:[ \t]+|$)/,b=/^[ \t]*(?:[-*+•]|\d{1,9}[.)])[ \t]+(?:\[[ xX]\][ \t]+)?/,k=/^ {0,3}(?:(?:-[ \t]*){3,}|(?:\*[ \t]*){3,}|(?:_[ \t]*){3,})$/,R=/^ {0,3}(?:`{3,}|~{3,})/,F=/^ {0,3}(?:>[ \t]?)+/,A=/^\|?\s*:?-{2,}:?\s*(?:\|\s*:?-{2,}:?\s*)*\|?$/,_={amp:"&",lt:"<",gt:">",quot:'"',"#39":"'",nbsp:" "};function E(n){return n.replace(/!?\[([^\]\n]{0,500})\]\([^)\n]{0,500}\)/g,"$1").replace(/<((?:https?:|mailto:)[^>\s]*)>/gi,"$1").replace(/<\/?[A-Za-z][^<>\n]*>/g,"").replace(/`+([^`\n]*)`+/g,"$1").replace(/(\*\*|__|~~)(?=\S)([^\n]{0,500}?\S)\1/g,"$2").replace(/(^|[^\w*])\*(?=\S)([^*\n]{0,500}?\S)\*(?![\w*])/g,"$1$2").replace(/(^|\W)_(?=\S)([^_\n]{0,500}?\S)_(?!\w)/g,"$1$2").replace(/\\([\\`*_{}[\]()#+\-.!>|~])/g,"$1").replace(/&(amp|lt|gt|quot|#39|nbsp);/g,(e,t)=>_[t]??"")}function N(n,e,t){let o=n.replace(/\r\n?/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),s=[],i=[],c=0,d=!1,u=()=>{let r=i.join(" ").replace(/\s+/g," ").trim();r&&(s.push(r),c+=r.length),i=[]},a=0;for(;a<o.length&&c<=t;){let r=o[a++];if(e&&R.test(r)){d=!d,d||u();continue}if(!d&&(r.trim().length===0||e&&(k.test(r)||A.test(r.trim())))){u();continue}let f=!d&&e&&w.test(r),l=!d&&b.test(r);if((f||l)&&u(),e&&!d?(r=r.replace(F,""),f&&(r=r.replace(w,"").replace(/[ \t]+#+[ \t]*$/,"")),l&&(r=r.replace(b,"")),r.includes("|")&&(r=r.replace(/^[ \t]*\||\|[ \t]*$/g,"").split("|").map(p=>p.trim()).filter(Boolean).join(" \xB7 ")),r=E(Number.isFinite(t)?r.slice(0,t*2+200):r)):l&&(r=r.replace(b,"")),i.push(r),f&&u(),i.reduce((p,T)=>p+T.length,0)>t)break}return u(),{blocks:s,more:o.slice(a).some(r=>r.trim().length>0&&!(e&&(R.test(r)||k.test(r))))}}function M(n,e){return`${(n.slice(0,e+1).replace(/\s+\S*$/,"")||n.slice(0,e)).replace(/[\s,;:.—-]+$/,"")}\u2026`}function Z(n,e={}){let t=e.most??160,{blocks:o,more:s}=N(n,e.markdown===!0,t),i=o[0]??"";if(i.length<=t)return(s||o.length>1)&&i.length>0&&!/[.!?…:]$/.test(i)?`${i}\u2026`:i;let c=x(i);return c&&c.length<=t?c:M(i,t)}var J=n=>N(n,!0,Number.POSITIVE_INFINITY).blocks.join(" ");var j={d:1440,h:60,m:1};function ne(n){if(typeof n=="number")return Number.isFinite(n)&&n>=0?Math.round(n):void 0;if(typeof n!="string")return;let e=n.trim().toLowerCase();if(/^\d+$/.test(e))return Number(e);let t=/^(\d+):([0-5]\d)(?::([0-5]\d))?$/.exec(e);if(t)return Number(t[1])*60+Number(t[2])+Math.round(Number(t[3]??0)/60);let o=0,s=!1,i=e.replace(/(\d*[.,]?\d+) *(days?|d|hours?|hrs?|hr|h|minutes?|mins?|min|m)(?![a-z])/g,(c,d,u)=>(s=!0,o+=Number(d.replace(",","."))*j[u[0]]," "));return s&&/^[\s,+]*(?:and[\s,+]*)*$/.test(i)?Math.round(o):void 0}function I(n,e){if(!Number.isFinite(n))return String(n);let t=Math.round(Math.abs(n)),o=Math.floor(t/60),s=t%60,i=[o?`${g(o,e)} h`:"",s||!o?`${g(s,e)} min`:""].filter(Boolean).join(" ");return n<0?`\u2212${i}`:i}var D=/^(\+?1[ .-]?)?\(?([2-9]\d\d)\)?[ .-]?(\d{3})[ .-]?(\d{4})(?: *(?:ext\.?|x|#) *(\d+))?$/i;function W(n,e){let t=n.trim(),o=/[-_](US|CA)\b/i.test(h(e))?D.exec(t):null;if(!o)return t;let[,s,i,c,d,u]=o;return`${s?.startsWith("+")?"+1 ":""}(${i}) ${c}-${d}${u?` ext. ${u}`:""}`}function P(n){let[,e="",t]=/^(.*?)(?: *(?:ext\.?|x|#) *(\d+))?$/i.exec(n.trim())??[],o=e.replace(/\D/g,"");return o.length<3?void 0:`tel:${e.startsWith("+")?"+":""}${o}${t?`;ext=${t}`:""}`}var L=()=>/Mac|iPhone|iPad|iPod/.test(globalThis.navigator?.userAgent??"");function q(n,e=L()){let t=encodeURIComponent(n.trim());return e?`https://maps.apple.com/?q=${t}`:`https://www.google.com/maps/search/?api=1&query=${t}`}var C=n=>n?.fields?.shape??{},U=(n,e)=>{let t=C(n);return Object.hasOwn(t,e)?$(t[e]):void 0},H=(n,e)=>{let t=n.computed,o=t&&Object.hasOwn(t,e)?t[e]:void 0;return typeof o=="object"?o.as:void 0};function te(n,e){return U(n,e)??(n&&H(n,e)==="duration"?"duration":void 0)}function re(n,e,t){return n==="duration"?typeof e=="number"?I(e,t):void 0:n==="phone"?typeof e=="string"?W(e,t):void 0:n==="place"&&typeof e=="string"?e.trim():void 0}function oe(n,e){if(!(typeof e!="string"||!e.trim()))return n==="phone"?P(e):n==="place"?q(e):void 0}export{S as a,B as b,G as c,Z as d,J as e,ne as f,te as g,re as h,oe as i};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as Qe,b as we}from"./chunk.HFYUAK5Z.js";import{g as Xe}from"./chunk.GAFYE37S.js";import{e as Je}from"./chunk.STBJV6HJ.js";import{c as qe,f as Ye,g as ve}from"./chunk.F5UVEF2R.js";import{a as he,d as Fe,e as ze,f as Ze,g as et,h as tt,i as rt,j as nt}from"./chunk.OYMM2UWE.js";import{b as ne,d as se}from"./chunk.FGDHEVH4.js";import{a as re,f as Be,h as $e}from"./chunk.M5QFUGGG.js";import"./chunk.PXQVXBNG.js";import{a as $}from"./chunk.SDO3U72B.js";import"./chunk.5ZMENPY4.js";import"./chunk.AJZBJBMO.js";var st=["good","warn","bad","neutral","accent"],ot=["value","max","aria-label","placeholder","disabled"],it=["click","change"],be=["_blank","_self"],at=["section","div","span","strong","p","hr","a","button","input","progress"],oe={type:{oneOf:st}},ke={"gv-card":{host:"section",properties:{tone:oe},events:{},children:"any"},"gv-group":{host:"div",properties:{direction:{type:{oneOf:["row","column"]}}},events:{},children:"any"},"gv-title":{host:"strong",properties:{},events:{},children:"text"},"gv-text":{host:"p",properties:{tone:oe},events:{},children:"text"},"gv-badge":{host:"span",properties:{tone:oe},events:{},children:"text"},"gv-field":{host:"div",properties:{label:{type:"string"}},events:{},children:"text"},"gv-progress":{host:"progress",properties:{value:{type:"number",as:"value"},max:{type:"number",as:"max"},label:{type:"string",as:"aria-label"}},events:{},children:"none"},"gv-divider":{host:"hr",properties:{},events:{},children:"none"},"gv-link":{host:"a",properties:{href:{type:"url"}},events:{},children:"text"},"gv-button":{host:"button",properties:{tone:oe,disabled:{type:"boolean",as:"disabled"}},events:{press:{from:"click"}},children:"text"},"gv-input":{host:"input",properties:{label:{type:"string",as:"aria-label"},value:{type:"string",as:"value"},placeholder:{type:"string",as:"placeholder"}},events:{change:{from:"change",detail:"value"}},children:"none"}},xe=1e4;var kt=0,xt=1,St=2,Tt=3,lt=1,Mt=2,Et=3,Kt=1,Rt=3,Gt=8,Se="~",Te=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),Y=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function dt(n,e){return e.type==="url"?"href":e.as??`data-gv-${n.toLowerCase()}`}var Wt=2e3;function ut(n,e){if(e==null)return{ok:!0,value:null};let o=n.type;if(o==="boolean")return typeof e=="boolean"?{ok:!0,value:e}:{ok:!1,reason:"value"};if(o==="number")return typeof e=="number"&&Number.isFinite(e)?{ok:!0,value:String(e)}:{ok:!1,reason:"value"};if(typeof e!="string"||e.length>Wt)return{ok:!1,reason:o==="url"?"url":"value"};if(typeof o=="object")return o.oneOf.includes(e)?{ok:!0,value:e}:{ok:!1,reason:"value"};if(o==="url"){let p;try{p=new URL(e)}catch{return{ok:!1,reason:"url"}}return p.protocol!=="https:"||p.hostname===""||!/^https:\/\//i.test(e)?{ok:!1,reason:"url"}:{ok:!0,value:p.href}}return{ok:!0,value:e}}function _t(n){let e=n.host==="a";return at.includes(n.host)&&(n.target===void 0||e&&be.includes(n.target))&&Object.values(n.properties).every(o=>o.type!=="url"||e)&&Object.values(n.properties).every(o=>o.as===void 0||o.type!=="url"&&ot.includes(o.as))&&Object.values(n.events).every(o=>it.includes(o.from))}function Me(n,e){let o=e.kit??ke,p=e.maxNodes??2e3,s=n.ownerDocument,g=[],k=new Map,G={dom:n,name:Se,component:{host:"div",properties:{},events:{},children:"any"},children:[],listeners:new Map,id:Se};k.set(Se,G);let E=e.links?new Set(e.links.origins.flatMap(t=>{try{let d=new URL(t);return d.protocol==="https:"&&d.hostname!==""?[d.origin]:[]}catch{return[]}})):void 0,A=0,S=0,N=!1,c=t=>{g.push(t),g.length>200&&g.shift()},T=()=>({dom:s.createComment(""),children:[],refused:!0,listeners:new Map}),M=(t,d,h)=>{let i=t.component;if(!Te(i.properties,d))return c({reason:"property",element:t.name,name:d});let r=i.properties[d],f=ut(r,h),w=f.ok&&r.type==="url"&&E&&typeof f.value=="string"&&!E.has(new URL(f.value).origin)?{ok:!1,reason:"url"}:f,y=t.dom,b=dt(d,r);if(!w.ok)return y.removeAttribute(b),c({reason:w.reason,element:t.name,name:d});let W=w.value;W===null||W===!1?y.removeAttribute(b):y.setAttribute(b,W===!0?"":W),b==="value"&&"value"in y&&(y.value=typeof W=="string"?W:""),b==="disabled"&&"disabled"in y&&(y.disabled=W!==null&&W!==!1)},x=(t,d,h)=>{let i=t.component;if(!Te(i.events,d))return c({reason:"event",element:t.name,name:d});let r=t.listeners.get(d);if(r&&(r(),t.listeners.delete(d),S-=1),h==null)return;if(!Y(h)||typeof h.listener!="number")return c({reason:"value",element:t.name,name:d});let f=h.listener,w=i.events[d],y=t.dom,b=()=>e.onEvent(f,w.detail==="value"?String(y.value??""):void 0);y.addEventListener(w.from,b),t.listeners.set(d,()=>y.removeEventListener(w.from,b)),S+=1},v=t=>{if(!t.refused){A-=1,t.id!==void 0&&k.delete(t.id);for(let d of t.listeners.values())d();S-=t.listeners.size,t.listeners.clear();for(let d of t.children)v(d)}},_=(t,d)=>{if(!Y(t)||typeof t.id!="string"||k.has(t.id))return c({reason:"record"}),T();if(A>=p)return c({reason:"budget"}),N||(N=!0,e.onOverBudget?.()),T();let h=t.id,i=d.component.children;if(t.type===Gt)return T();if(t.type===Rt){if(i==="none")return c({reason:"child",element:d.name}),T();let b={dom:s.createTextNode(String(t.data??"").slice(0,xe)),children:[],text:!0,listeners:new Map,id:h};return k.set(h,b),A+=1,b}if(t.type!==Kt)return c({reason:"record"}),T();let r=String(t.element);if(!Te(o,r)||!_t(o[r]))return c({reason:"element",element:r}),T();if(i!=="any")return c({reason:"child",element:r}),T();let f=o[r],w=s.createElement(f.host);w.setAttribute("data-gv",r.replace(/^gv-/,"")),w.className=`graview-guest-${r.replace(/^gv-/,"")}`,f.host==="a"&&(w.setAttribute("rel","noopener noreferrer"),w.setAttribute("target",f.target??"_blank"),w.setAttribute("referrerpolicy","no-referrer")),f.host==="button"&&w.setAttribute("type","button");let y={dom:w,name:r,component:f,children:[],listeners:new Map,id:h};if(k.set(h,y),A+=1,Y(t.properties))for(let[b,W]of Object.entries(t.properties))M(y,b,W);if(Y(t.attributes))for(let b of Object.keys(t.attributes))c({reason:"attribute",element:r,name:b});if(Y(t.eventListeners))for(let[b,W]of Object.entries(t.eventListeners))x(y,b,W);if(Array.isArray(t.children))for(let b of t.children){let W=_(b,y);y.children.push(W),w.appendChild(W.dom)}return y},P=t=>{if(!Array.isArray(t))return c({reason:"record"});let[d,h]=t,i=typeof h=="string"?k.get(h):void 0;if(!i)return c({reason:"record"});switch(d){case kt:{if(i.text)return c({reason:"record"});let r=Number(t[3]),f=Number.isInteger(r)&&r>=0&&r<=i.children.length?r:i.children.length,w=_(t[2],i);i.dom.insertBefore(w.dom,i.children[f]?.dom??null),i.children.splice(f,0,w);return}case xt:{let r=Number(t[2]),f=i.children[r];if(!f)return c({reason:"record"});i.children.splice(r,1),f.dom.parentNode?.removeChild(f.dom),v(f);return}case St:if(!i.text)return c({reason:"record"});i.dom.data=String(t[2]??"").slice(0,xe);return;case Tt:{if(i===G||i.text)return c({reason:"record"});let r=String(t[2]),f=t[4]??lt;return f===lt?M(i,r,t[3]):f===Et?x(i,r,t[3]):c(f===Mt?{reason:"attribute",element:i.name,name:r}:{reason:"record"})}default:return c({reason:"record"})}};return{apply(t,d){if(!Array.isArray(t))return c({reason:"record"}),!0;for(let h=0;h<t.length;h+=1){if(d&&h%32===0&&d())return!1;P(t[h])}return!0},get refused(){return g},get size(){return A},get listening(){return S},dispose(){for(let t of G.children)v(t);G.children.length=0,n.replaceChildren()}}}var Ee=`
|
|
2
|
+
.graview-guest { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: var(--graview-ink, inherit); font: inherit; }
|
|
3
|
+
.graview-guest-card { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid var(--graview-edge, #d0d0d0); border-radius: 10px; background: var(--graview-panel, transparent); }
|
|
4
|
+
.graview-guest-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
|
|
5
|
+
.graview-guest-group[data-gv-direction="row"] { flex-direction: row; flex-wrap: wrap; align-items: center; }
|
|
6
|
+
.graview-guest-title { font-weight: 600; font-size: 1rem; overflow-wrap: anywhere; }
|
|
7
|
+
.graview-guest-text { margin: 0; font-size: 0.875rem; line-height: 1.45; overflow-wrap: anywhere; }
|
|
8
|
+
.graview-guest-badge { align-self: flex-start; padding: 1px 8px; border: 1px solid currentColor; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; }
|
|
9
|
+
.graview-guest-field { font-size: 0.875rem; overflow-wrap: anywhere; }
|
|
10
|
+
.graview-guest-field[data-gv-label]::before { content: attr(data-gv-label) " "; color: var(--graview-ink-muted, inherit); }
|
|
11
|
+
.graview-guest-progress { width: 100%; }
|
|
12
|
+
.graview-guest-divider { width: 100%; margin: 2px 0; border: 0; border-top: 1px solid var(--graview-edge, #d0d0d0); }
|
|
13
|
+
.graview-guest-link { color: var(--graview-accent, inherit); text-decoration: underline; }
|
|
14
|
+
.graview-guest-button { align-self: flex-start; font: inherit; padding: 4px 12px; border-radius: 8px; border: 1px solid var(--graview-edge, #d0d0d0); background: var(--graview-panel, transparent); color: inherit; cursor: pointer; }
|
|
15
|
+
.graview-guest-input { font: inherit; padding: 4px 8px; border-radius: 6px; border: 1px solid var(--graview-edge, #d0d0d0); }
|
|
16
|
+
.graview-guest [data-gv-tone="good"] { color: var(--graview-good, inherit); }
|
|
17
|
+
.graview-guest [data-gv-tone="bad"] { color: var(--graview-bad, inherit); }
|
|
18
|
+
.graview-guest [data-gv-tone="warn"] { color: var(--graview-warn, inherit); }
|
|
19
|
+
.graview-guest [data-gv-tone="accent"] { color: var(--graview-accent, inherit); }
|
|
20
|
+
.graview-guest [data-gv-tone="neutral"] { color: var(--graview-ink-muted, inherit); }
|
|
21
|
+
`;var ct=new WeakSet;function Lt(n,e){if(n.startsWith("blob:"))return"blob:";try{return new URL(n,e.location.href).origin}catch{return n}}function pt(n,e,o){let p=Lt(e,n),s=`this page's Content-Security-Policy${o?` (${o})`:""} does not allow a worker from ${p}: it needs worker-src ${p}`;return ct.has(n)||(ct.add(n),n.console?.warn?.(`Graview: worker views cannot start on this page, because ${s}. A host that will not allow ${p} serves each view's whole script from its own origin and passes worker: { url } (the @graview/guest README, "What the host page allows").`)),s}function At(n,e){return n===""?!0:e.startsWith("blob:")?n.startsWith("blob"):e.startsWith(n)||n.startsWith(e)}function ie(n,e){let o="script"in e.source?n.URL.createObjectURL(new n.Blob([e.source.script],{type:"text/javascript"})):void 0,p="script"in e.source?o:e.source.url,s,g,k=!1,G=!1,E=0,A=0,S="",N=0,c=0,T=n.performance,M=T.now(),x,v=i=>{let r=i,f=String(r.effectiveDirective||r.violatedDirective||"").split(" ")[0];/^(worker-src|script-src|script-src-elem|child-src|default-src)$/.test(f)&&At(String(r.blockedURI??""),p)&&(x=f)},_=n.document;_?.addEventListener("securitypolicyviolation",v);let P=()=>_?.removeEventListener("securitypolicyviolation",v),t=()=>{G||(G=!0,g?.close(),s?.terminate(),s=void 0,n.clearTimeout(E),n.clearInterval(A),P(),o&&n.URL.revokeObjectURL(o))},d=(i,r)=>{G||(t(),e.onStop(i,r))},h=()=>{n.clearTimeout(E),P(),S=ze();let i=new n.MessageChannel;g=i.port1;let r=Math.max(1,e.silentMs),f=Math.max(10,Math.min(1e3,Math.floor(r/4)));M=T.now();let w=M;A=n.setInterval(()=>{let b=T.now();if(b-w>f*2&&(M+=b-w-f),w=b,b-M>=r)return d("silent");N+=1,i.port1.postMessage({type:"heartbeat",beat:N})},f);let y={graview:"host-hello",protocol:1,nonce:S,view:e.name};s.postMessage(y,[i.port2]),e.onReady(S,i.port1)};try{s=new n.Worker(p,{name:e.name})}catch(i){s=void 0;let r=i,f=r?.name==="SecurityError"?pt(n,p,x):`the worker could not be made: ${String(r?.message??i)}`;queueMicrotask(()=>d("start",f))}return s&&(E=n.setTimeout(()=>d("start",`it never said it was ready in ${e.readyMs.toLocaleString("en-US")} ms`),e.readyMs),s.onerror=i=>{let r=typeof i.message=="string"&&i.message!==""?i.message:void 0;if(k)return void e.onError?.(r??"an error");n.clearTimeout(E),n.setTimeout(()=>!k&&d("start",x?pt(n,p,x):r?`it failed before it said ready: ${r}`:"it failed before it said ready, and the engine gave no reason (a page policy that refuses it, or a script that does not load)"),0)},s.onmessage=i=>{if(!e.limiter.message()||k||!Fe(i.data)||i.data.protocol!==1){e.onDropped();return}k=!0,h()}),{get worker(){return s},answer(i){let r=i;return typeof r!="object"||r===null||r.type!=="heartbeat"||r.nonce!==S?!1:(typeof r.beat=="number"&&r.beat>c&&r.beat<=N&&(c=r.beat,M=T.now()),!0)},stop:t}}function ae(n,e){let o=e(),p=0;return{draw(s){let g=e();g-o>=1e3&&(o=g,p=0);let k=s(()=>p+(e()-g)>=n);return p+=e()-g,k&&p<n}}}var Ot=$(()=>(__graviewPreload(import.meta.url,["./chunk.GAFYE37S.js","./chunk.AJZBJBMO.js"]),import("./chunk.YWVOACSX.js"))),It=$(()=>(__graviewPreload(import.meta.url,["./chunk.STBJV6HJ.js","./chunk.F5UVEF2R.js","./chunk.FGDHEVH4.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.XBOZTQQA.js"))),Nt=$(()=>(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.SHNYYBNW.js"))),Pt=$(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.KJNUZYXS.js","./chunk.4BBJ62ZO.js","./chunk.UCZR33MK.js","./chunk.CC47O2DW.js","./chunk.2IX3CZNP.js","./chunk.6DHHUBSC.js","./chunk.Z7JRBKA7.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.WJQY4E45.js"))),Dt=$(()=>(__graviewPreload(import.meta.url,["./chunk.F5UVEF2R.js","./chunk.FGDHEVH4.js","./chunk.5ZMENPY4.js","./chunk.AJZBJBMO.js"]),import("./chunk.LP2DJ5ZB.js")));function Vt(n,e,o){switch(n){case"manifest":return o??"Its manifest names something this app does not have.";case"source":return o??`Its code is longer than the ${e.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`;case"start":return`It could not start${o?`: ${o}.`:"."}`;case"error":return`It failed before it drew anything${o?`: ${o}`:"."}`;case"silent":return`It stopped answering for ${e.silentMs.toLocaleString("en-US")} ms.`;case"nodes":return`It drew more than the ${e.maxNodes.toLocaleString("en-US")} things a view may draw.`;case"flood":return`It sent more than ${e.messages} messages in ${e.messageWindowMs.toLocaleString("en-US")} ms.`;case"slow":return`It took longer than ${e.pushMs.toLocaleString("en-US")} ms to draw what it was shown.`}}function Ct(n,e){let o=n.ownerDocument,p=o.defaultView,{manifest:s}=e,g=o.createElement("div");g.className="graview-worker-view",g.setAttribute("role","region"),g.setAttribute("aria-label",s.title??s.name),g.setAttribute("data-worker-view",s.name),g.style.cssText="display:block;position:relative;contain:layout paint style;isolation:isolate;overflow:clip;min-width:0",n.appendChild(g);let k=g.attachShadow({mode:"open"}),G=e.author?o.createElement("p"):void 0;G&&(G.className="graview-worker-view-author",G.setAttribute("data-worker-view-author",s.name),G.style.cssText="margin:4px 0 0;font-size:0.75rem;color:var(--graview-ink-muted, inherit)",G.textContent=e.author,n.appendChild(G));let E={applied:0,refused:0,dropped:0},A=ne(e.limits),S={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,messageWindowMs:e.limits?.messageWindowMs??1e3,pushMs:e.limits?.pushMs??1e3,silentMs:e.limits?.silentMs??5e3,drawMs:e.limits?.drawMs??100},N,c,T,M,x=!1,v={applied:0,refused:0,dropped:0},_=[],P=()=>{if(!c)return;let a=c.stats;E.applied+=a.applied-v.applied,E.refused+=a.refused-v.refused,E.dropped+=a.dropped-v.dropped,v={...a}},t=()=>{},d=0,h=()=>{},i=()=>{h(),h=()=>{},P(),c?.dispose(),c=void 0,T?.stop(),t(),p.clearInterval(d)},r=(a,m)=>{if(x)return;x=!0,i(),M?.dispose();let K=Vt(a,S,m);g.removeAttribute("data-worker-view-drawn"),g.setAttribute("data-worker-view-failed",a),e.fallback!==!1&&(e.fallback??f)(g,a,K),e.onFailure?.(a,K)},f=(a,m,K)=>{let O=N??(()=>{try{return ve(e.store,e.principal,{manifest:s,...e.input?{input:e.input()}:{}})}catch{return}})(),l=o.createElement("div");l.setAttribute("data-graview-fallback",m),l.style.cssText="padding:12px;display:grid;gap:6px;color:var(--graview-ink, inherit);font-family:var(--graview-font-body, inherit)";let I=o.createElement("strong");I.textContent=s.title??s.name;let L=o.createElement("ul");L.style.cssText="margin:0;padding-left:1.2em";for(let B of[...O?.node?[O.node]:[],...O?.nodes??[]]){let q=o.createElement("li");q.textContent=B.label??B.id,L.appendChild(q)}let U=o.createElement("p");U.style.cssText="margin:0;font-size:0.8125rem;color:var(--graview-ink-muted, inherit)",U.textContent=`This view was stopped. ${K}`,l.append(I,L,U),k.replaceChildren(l)},w=Ye(s,e.store);if(w.length>0)return queueMicrotask(()=>r("manifest",w.join(" "))),ee();let y=e.worker;if(("source"in y?new TextEncoder().encode(y.source).length:"script"in y?new TextEncoder().encode(y.script).length:0)>S.maxSourceBytes)return queueMicrotask(()=>r("source")),ee();let W="source"in y?Qe(y.source):[];if(W.length>0)return queueMicrotask(()=>r("source",W.join(" "))),ee();let Ke=nt(p,()=>Ge(),"blob"),le=()=>rt(()=>e.theme?.()??et(g),e.brand,Ke),Re="",de=()=>{Re=JSON.stringify(le()),c?.push()},Ge=()=>{c&&JSON.stringify(le())!==Re&&de()},mt=tt(o,Ge),H,j,We=s.pictures?Nt().then(({createGuestPictures:a})=>{x||(H=a(p,{as:"blob",view:`"${s.title??s.name}"`,pictures:s.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>c?.push(),onLeft:m=>{V?.postMessage({type:"notice",text:m}),e.onProblem?.(m)}}))}):Promise.resolve();t=()=>{mt(),Ke.dispose(),H?.dispose(),X?.dispose(),j?.dispose()};let V,ue=a=>V?.postMessage(a),_e=!1,Le=!1,J=()=>g.toggleAttribute("data-worker-view-drawn",!x&&Le&&M!==void 0&&_.length===0&&z.size===0&&!H?.waiting()&&!(j?.waiting??0)),F=p.performance,z=new Map,Q=F.now(),ce=Math.max(10,Math.min(250,Math.floor(S.pushMs/4))),gt=()=>{d||(Q=F.now(),d=p.setInterval(()=>{let a=F.now(),m=a-Q>ce*2?a-Q-ce:0;Q=a;for(let[K,O]of z){let l=O+m;if(z.set(K,l),a-l>=S.pushMs)return r("slow")}},ce))},yt=ae(S.drawMs,()=>F.now()),Ae=()=>{},pe=a=>{if(x)return;if(!M)return void _.push(a);let m=M;if(!yt.draw(O=>a[0]==="render"?m.apply(a[1],O):(m.style(a[1]),!0)))return r("slow");a[0]==="render"&&Ae()},Oe=()=>Be(e.store.schema,new Set([...e.store.kindsKeptFrom(e.principal),...e.store.modules.disabledKinds])),Z=$e({sees:a=>e.store.seenBy(e.principal).graph.has(a),places:()=>re(e.places?.()??[]),lists:Oe,schema:e.store.schema,...e.onNavigate?{onNavigate:e.onNavigate}:e.goTo?{onNavigate:a=>Ze(e.goTo(),a)}:{},onLost:a=>{V?.postMessage({type:"notice",text:a}),e.onProblem?.(a)}}),C=new Set,Ie=new Set,X,Ne=!1,Pe=()=>{Ne||(Ne=!0,Pt().then(({createGuestMedia:a})=>{x||(X=a(p,{view:`"${s.title??s.name}"`,pictures:s.pictures!==void 0,shown:()=>N,...e.file?{file:e.file}:{},onProblem:m=>{V?.postMessage({type:"notice",text:m}),e.onProblem?.(m)}}),X.refresh(k))},()=>e.onProblem?.(`The view "${s.title??s.name}" places a video or a full-screen viewer, and the host's player could not be loaded.`)))},De=!1,Ve=!1,fe=new Map,Ce=()=>{De||!s.accepts?.length||(De=!0,Dt().then(({createGuestDrops:a})=>{x||(j=a(p,{shadow:k,manifest:s,store:e.store,principal:e.principal,files:()=>e.files?.(),shown:()=>C,hears:()=>Ve,idOf:m=>M?.renderer.idOf(m),send:ue,change:(m,K)=>{if(!c)return{ok:!1,reason:"refused",message:"The view has gone."};let O=c.change(m,K);return P(),O},handed:m=>fe.set(m.href,m),onProblem:m=>{V?.postMessage({type:"notice",text:m}),e.onProblem?.(m)},onBusy:()=>J()}),j.refresh())},()=>e.onProblem?.(`The view "${s.title??s.name}" takes files, and the host's drop could not be loaded.`)))},ht=a=>{let m=e.store.seenBy(e.principal).graph;for(let K of C){let O=m.getNode(K);for(let l of Object.values(O??{}))for(let I of qe(l))if(I.href===a)return I}},He=a=>{if(a.localName==="graview-video")return Pe();a.hasAttribute("data-lightbox")&&(a.setAttribute("aria-haspopup","dialog"),Pe())};Promise.all([Ot(),It()]).then(([{createOpenDrawing:a},{createPressReader:m,createSaver:K,fillPrefills:O,judgePress:l,prefillOf:I}])=>{if(x)return;let L=m(),U=(u,R)=>{let D=M?.renderer.idOf(u);D!==void 0&&ue({type:"dom-event",target:D,event:"acted",pressed:R})},B=K({reader:L,save:(u,R)=>{if(!c)return;let D=c.pressed(l(e.store,s,C,u));P(),U(R,{as:u.as,...D})}}),q=()=>B.flush();p.addEventListener("pagehide",q),h=()=>{p.removeEventListener("pagehide",q),B.flush()};let vt=new WeakSet;Ae=()=>{O(k,L,vt,u=>I(e.store,e.principal,s,C,u)),X?.refresh(k),j?.refresh()},M=a(k,{origin:e.origin??p.location.origin,...e.asset?{asset:e.asset}:{},...e.images?{imageOrigins:e.images.origins}:{},...s.pictures?{picture:u=>H?.drawn(u)}:{},onRefused:u=>{if(u.reason!=="url"||u.element!=="img"||u.address===void 0||Ie.has(u.address))return;Ie.add(u.address);let R=Xe(u.address,{...e.images?{origins:e.images.origins}:{},assets:e.asset!==void 0},u.length);V?.postMessage({type:"notice",text:R}),e.onProblem?.(R)},...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>r("nodes"),send:ue,onFieldSet:u=>L.filled(u),onAttribute:(u,R)=>{u.localName==="a"&&(R==="data-record"||R==="data-place")&&Z.link(u),R==="data-lightbox"&&He(u),R==="data-drop"&&Ce()},decorate:u=>{u.localName==="a"&&Z.link(u),He(u),u.hasAttribute("data-drop")&&Ce()},before:(u,R,D)=>{L.heard(u,R),B.heard(u,R,D);let ge=R.closest("a[data-graview-link]");ge&&D.contains(ge)&&(u.type==="click"||u.type==="keydown"&&u.key==="Enter")&&(u.preventDefault(),u.stopPropagation(),Z.follow(ge));let te=R.closest("[data-lightbox]"),je=u.type==="keydown"?u.key:void 0;if(te&&D.contains(te)&&u.isTrusted&&(u.type==="click"||(je==="Enter"||je===" ")&&te.localName!=="button")&&(u.preventDefault(),u.stopPropagation(),X?.open(te)),j?.before(u,R,D))return!1;let ye=L.press(u,R,D);if(!ye||!c)return;u.stopPropagation();let wt=c.pressed(l(e.store,s,C,ye));P();let Ue={as:ye.as,...wt},bt=R.closest("[data-act]");return queueMicrotask(()=>U(bt,Ue)),{pressed:Ue}}});for(let u of _.splice(0))pe(u);J()},()=>r("start","the view's drawing could not be loaded"));let me=a=>T=ie(p,{source:a,name:s.name,limiter:A,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>E.dropped+=1,onStop:(m,K)=>r(m,K),onError:m=>{_e||r("error",m)},onReady:(m,K)=>{V=K,gt();let O=se({store:e.store,principal:e.principal,view:s.name,nonce:m,send:l=>{l.type==="props"&&typeof l.push=="number"&&(z.set(l.push,F.now()),J()),K.postMessage(l)},props:()=>{let l=ve(e.store,e.principal,{manifest:s,...e.input?{input:e.input()}:{},theme:le(),...e.places?{places:re(e.places())}:{}});return C=new Set([...l.node?[l.node.id]:[],...(l.nodes??[]).map(I=>I.id)]),N=l,l},...H?{hand:H.hand}:{},judgeAct:(l,I)=>Je(e.store,s,l,I,{shown:C,file:L=>fe.get(L)??ht(L),dropped:L=>fe.has(L)}),onHears:l=>{l.includes("drop")&&(Ve=!0)},onRender:l=>{_e=!0,pe(["render",l])},onPushed:(l,I)=>{if(z.delete(l),I>=S.pushMs)return r("slow");Le=!0,J()},onFlood:()=>r("flood"),onStyle:l=>pe(["style",l]),places:()=>[...new Set([...re(e.places?.()??[]).map(l=>l.as),...Oe().map(l=>l.slug)])],...e.limits?{limits:e.limits}:{},limiter:A});c=O,K.onmessage=({data:l})=>{if(!T?.answer(l)&&(O.receive(l),P(),!x&&l?.nonce===m&&l.type==="navigate")){let I={...l.where!==void 0?{where:l.where}:{},...l.section!==void 0?{section:l.section}:{}},L=typeof l.place=="string"?{place:l.place,...I}:typeof l.to=="string"&&{record:l.to,...I};L&&Z.go(L)}},de()}});return"source"in y?(s.pictures?Promise.all([we(y.source),We]).then(([a])=>a):we(y.source)).then(a=>{x||me({script:a})},()=>r("start","the view's runtime could not be loaded")):s.pictures?We.then(()=>{x||me(y)},()=>r("start","the view's pictures could not be loaded")):me(y),ee();function ee(){return{element:g,shadow:k,get worker(){return T?.worker},update:()=>{c&&de()},get stats(){return P(),E},get refused(){return M?.refused??[]},dispose(){x=!0,i(),M?.dispose(),g.remove(),G?.remove()}}}}var ft="graview-guest-kit";function fr(n,e){let o=n.ownerDocument,p=o.defaultView;if(!o.getElementById(ft)){let v=o.createElement("style");v.id=ft,v.textContent=Ee,o.head.appendChild(v)}let s=o.createElement("div");s.className="graview-guest",s.setAttribute("role","group"),s.setAttribute("aria-label",e.title??e.view),s.setAttribute("data-guest-view",e.view),n.appendChild(s);let g={applied:0,refused:0,dropped:0},k=ne(e.limits),G=ae(e.limits?.drawMs??100,()=>p.performance.now()),E,A,S,N=!1,c={applied:0,refused:0,dropped:0},T=()=>{if(!E)return;let v=E.stats;g.applied+=v.applied-c.applied,g.refused+=v.refused-c.refused,g.dropped+=v.dropped-c.dropped,c={...v}},M=()=>{T(),E?.dispose(),E=void 0,S?.stop()},x=(v,_)=>{N||(N=!0,M(),A?.dispose(),e.onFailure?.(v,_))};return S=ie(p,{source:e.worker,name:e.view,limiter:k,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>g.dropped+=1,onStop:(v,_)=>x(v,_),onReady:(v,_)=>{let P=Me(s,{...e.kit?{kit:e.kit}:{},...e.links?{links:e.links}:{},onEvent:(d,h)=>_.postMessage({type:"event",listener:d,...h!==void 0?{detail:h}:{}}),...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>x("budget")});A=P;let t=se({store:e.store,principal:e.principal,view:e.view,nonce:v,send:d=>_.postMessage(d),onRender:d=>{G.draw(h=>P.apply(d,h))||x("slow")},...e.input?{input:e.input}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},onSize:e.onSize??(d=>s.style.minHeight=`${d}px`),...e.limits?{limits:e.limits}:{},limiter:k});E=t,_.onmessage=d=>{S?.answer(d.data)||(t.receive(d.data),T())},t.push()}}),{element:s,get worker(){return S?.worker},update:()=>E?.push(),get stats(){return T(),g},get refused(){return A?.refused??[]},dispose(){N=!0,M(),A?.dispose(),s.remove()}}}export{ke as GUEST_KIT,Ee as GUEST_KIT_CSS,be as KIT_LINK_TARGETS,st as KIT_TONES,Me as createKitRenderer,dt as hostAttribute,ut as kitValue,fr as mountGuestWorker,Ct as mountWorkerView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m}from"./chunk.
|
|
1
|
+
import{m}from"./chunk.ORXFUK6F.js";import{G as N,R as f,U as y}from"./chunk.BTSXYZ6Z.js";import{b as g}from"./chunk.AJZBJBMO.js";var p=g(N(),1);var a=g(f(),1);var R={default:{background:"var(--graview-panel, #ffffff)",color:"var(--graview-ink, #1a1a1a)"},muted:{background:"var(--graview-panel-muted, #f7f5f1)",color:"var(--graview-ink, #1a1a1a)"},warning:{background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)"}},T={color:"var(--graview-ink-muted, #55514a)"},C={color:"var(--graview-ink-faint, #625d55)"};function H(e){let[l,o]=(0,p.useState)(z);return(0,p.useEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let t=()=>{let i=W(r,parseFloat(getComputedStyle(r).paddingBottom)||0);o(s=>s.overflowing===i.overflowing&&s.above===i.above&&s.below===i.below?s:i)};t();let d=new ResizeObserver(t);d.observe(r);for(let i of r.children)d.observe(i);return r.addEventListener("scroll",t,{passive:!0}),()=>{d.disconnect(),r.removeEventListener("scroll",t)}}),l}var z={overflowing:!1,above:!1,below:!1};function W(e,l=0){let o=e.scrollHeight>e.clientHeight+1,r=e.scrollWidth>e.clientWidth+1;return{overflowing:o||r,above:o&&e.scrollTop>1,below:o&&e.scrollTop+e.clientHeight<e.scrollHeight-l-1}}var A=(0,p.createContext)(null),I=(0,p.createContext)(null);function O({level:e,said:l=!0,style:o,children:r}){if(e===void 0)return(0,a.jsx)("strong",{style:o,...l?{}:{"aria-hidden":!0},children:r});let t=`h${e}`;return(0,a.jsx)(t,{style:{margin:0,...o},children:r})}function E({title:e,subtitle:l,meta:o,selected:r,tone:t="default",children:d,style:i,fit:s=!1,variant:w,heading:b}){let c=(0,p.useRef)(null),{overflowing:v,above:x,below:S}=H(c),P=y(),n=(w??(P==="fullscreen"?"page":"card"))==="page",k=(0,p.useContext)(A),u=(0,p.useContext)(I);return(0,a.jsxs)("div",{"data-graview-primitive":"panel","data-graview-variant":n?"page":"card","data-selected":r||void 0,style:{display:"flex",flexDirection:"column",gap:n?12:"var(--graview-gap, 7px)",height:n||s?"auto":"100%",maxHeight:n?"none":"100%",padding:n?0:"var(--graview-pad, 15px)",boxSizing:"border-box",borderRadius:n?0:"var(--graview-radius, 12px)",border:n?"none":`1px solid ${r?"var(--graview-accent, #2f6f5e)":"var(--graview-edge, #e4e0d8)"}`,boxShadow:n?"none":r?"0 0 0 1px var(--graview-accent-dim), var(--graview-lift-low)":"var(--graview-lift-low)",overflow:n?"visible":"hidden",...R[t],...n?{background:"transparent"}:{},...i},children:[t==="warning"?(0,a.jsx)("span",{"data-graview-broken":"",style:m,children:"Implicated in a problem."}):null,e===void 0||e===k?null:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",flexWrap:"wrap",gap:8,minWidth:0},children:[t==="warning"?(0,a.jsx)("span",{"aria-hidden":"true",title:"Implicated in a problem",style:{color:"var(--graview-warn)",flex:"0 0 auto"},children:"\u26A0"}):null,(0,a.jsx)(O,{level:b,said:u===null||e!==u,style:{fontFamily:"var(--graview-font-display, inherit)",fontSize:n?"1.5625rem":"0.9375rem",lineHeight:n?1.15:1.25,fontWeight:n?600:560,letterSpacing:n?"-0.012em":"0.005em",minWidth:0,overflowWrap:"anywhere"},children:e}),o===void 0?null:(0,a.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",letterSpacing:"0.08em",textTransform:"uppercase",minWidth:0,overflowWrap:"anywhere",...C},children:o})]}),l===void 0?null:(0,a.jsx)("div",{style:{fontSize:n?"0.90625rem":"0.8125rem",lineHeight:1.5,...T},children:l}),(0,a.jsx)("div",{ref:c,className:n?void 0:"graview-scroll",...v&&!n?{tabIndex:0,role:"region",...typeof e=="string"?{"aria-label":e}:{}}:{},style:{display:"flex",flexDirection:"column",gap:n?22:"var(--graview-gap, 7px)",flex:"1 1 auto",...n?{overflow:"visible"}:{marginBottom:"calc(-1 * var(--graview-pad, 15px))",paddingBottom:"var(--graview-pad, 15px)"},...!n&&!v?{overflow:"hidden"}:{}},"data-graview-more-above":x&&!n?"":void 0,"data-graview-more-below":S&&!n?"":void 0,children:d})]})}function h({label:e,hue:l,selected:o,title:r,pickId:t,emphasis:d}){let i=typeof e=="string"?e:void 0,s=l===void 0?void 0:Math.round(l);return(0,a.jsxs)("span",{"data-graview-primitive":"chip","data-selected":o||void 0,"data-graview-pick":t,"data-graview-emphasis":d,title:r??i,style:{cursor:t?"pointer":void 0,display:"inline-flex",alignItems:"center",alignSelf:"flex-start",minHeight:24,boxSizing:"border-box",padding:"3px 9px",borderRadius:6,fontSize:"0.8125rem",lineHeight:1.5,whiteSpace:"nowrap",maxWidth:"min(28ch, 100%)",overflow:"hidden",letterSpacing:"0.01em",border:`1px solid ${o?"var(--graview-accent)":s===void 0?"var(--graview-edge)":`hsl(${s} 55% var(--graview-tint-lightness) / 0.45)`}`,background:s===void 0?"var(--graview-panel-muted)":`hsl(${s} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * 0.65))`,color:"var(--graview-ink, #1a1a1a)",boxShadow:o?"0 0 14px -4px var(--graview-accent)":void 0},children:[s===void 0?null:(0,a.jsx)("span",{"aria-hidden":"true",style:{width:9,height:6,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",flex:"0 0 auto",marginRight:6,background:`hsl(${s} 55% var(--graview-tint-lightness) / 0.9)`}}),(0,a.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]})}function L({items:e,max:l=8,selectedIds:o=[],pick:r=!1}){let t=e.slice(0,l),d=e.length-t.length;return(0,a.jsxs)("div",{"data-graview-primitive":"roster",style:{display:"flex",flexWrap:"wrap",gap:6,alignContent:"flex-start"},children:[t.map(i=>(0,a.jsx)(h,{label:i.label,...i.hue===void 0?{}:{hue:i.hue},...r?{pickId:i.id}:{},...i.emphasis===void 0?{}:{emphasis:i.emphasis},selected:o.includes(i.id)},i.id)),d>0?(0,a.jsx)(h,{label:`+${d} more`}):null]})}function F({label:e,count:l,items:o,onExpand:r,flagged:t,problems:d}){return(0,a.jsx)(E,{title:e,meta:d?(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[d,(0,a.jsx)("span",{children:l})]}):l,tone:t?"warning":"muted",style:r?{cursor:"zoom-in"}:void 0,children:o&&o.length>0?(0,a.jsx)(L,{items:o,max:6,pick:!0}):null})}export{A as a,I as b,E as c,h as d,L as e,F as f};
|