graview 0.1.66 → 0.1.67
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.LSN2IPAI.js → chunk.25QFDTCU.js} +1 -1
- package/dist/preview/{chunk.BFAFCVL4.js → chunk.264PB572.js} +1 -1
- package/dist/preview/chunk.2FHIINXG.js +2 -0
- package/dist/preview/{chunk.HSSIMVVM.js → chunk.2VUX54XH.js} +1 -1
- package/dist/preview/{chunk.CTASTRQN.js → chunk.35KMZHB7.js} +1 -1
- package/dist/preview/{chunk.OWFS2YDQ.js → chunk.37RFCHSS.js} +1 -1
- package/dist/preview/chunk.3ENPWZBG.js +1 -0
- package/dist/preview/{chunk.XMQG2PSM.js → chunk.3GNT5MKP.js} +1 -1
- package/dist/preview/{chunk.BXBEGMPO.js → chunk.3NSV3WKM.js} +2 -2
- package/dist/preview/chunk.3ZODN6BW.js +1 -0
- package/dist/preview/{chunk.OPTYYIGC.js → chunk.47XEJZ3O.js} +1 -1
- package/dist/preview/{chunk.5FNFRVTL.js → chunk.4EMKCKDB.js} +1 -1
- package/dist/preview/{chunk.B6JRTW3A.js → chunk.4UUJHLHR.js} +1 -1
- package/dist/preview/{chunk.FBILPNGH.js → chunk.4W57E7AX.js} +1 -1
- package/dist/preview/chunk.55G4IPOO.js +1 -0
- package/dist/preview/{chunk.72XP2ARZ.js → chunk.5AKZROMR.js} +1 -1
- package/dist/preview/chunk.5J6DVR7S.js +1 -0
- package/dist/preview/{chunk.FXT5CN32.js → chunk.5R744JGZ.js} +1 -1
- package/dist/preview/{chunk.NJRLJEJY.js → chunk.6KJGRM7A.js} +1 -1
- package/dist/preview/{chunk.4AC2QM7T.js → chunk.6N4PE3U5.js} +1 -1
- package/dist/preview/{chunk.LGRVEHXT.js → chunk.6NG76MDA.js} +2 -2
- package/dist/preview/{chunk.4FCFNAA4.js → chunk.6SJEZWH3.js} +1 -1
- package/dist/preview/{chunk.7VADSNPZ.js → chunk.6UQFV53C.js} +1 -1
- package/dist/preview/{chunk.WAB3L3ZI.js → chunk.6W6XMLSF.js} +1 -1
- package/dist/preview/{chunk.4JULYKGD.js → chunk.77C556NM.js} +1 -1
- package/dist/preview/{chunk.IGK7EZCX.js → chunk.7ARRVNUR.js} +1 -1
- package/dist/preview/{chunk.CBXS23YH.js → chunk.7BJRHPE3.js} +2 -2
- package/dist/preview/{chunk.ZQR2SN65.js → chunk.7S6ZRMW4.js} +1 -1
- package/dist/preview/{chunk.IAEHUSQQ.js → chunk.7UHPHEH5.js} +1 -1
- package/dist/preview/chunk.7WHQWLL6.js +1 -0
- package/dist/preview/{chunk.KACSYPEV.js → chunk.A4EZAGG7.js} +1 -1
- package/dist/preview/chunk.A5PSEU3W.js +25 -0
- package/dist/preview/{chunk.VKZIEZ5C.js → chunk.A7GVTE5Y.js} +2 -2
- package/dist/preview/{chunk.45JP6VGJ.js → chunk.AJMVRFYX.js} +2 -2
- package/dist/preview/{chunk.6P6NGZ6D.js → chunk.AKJS2NUM.js} +1 -1
- package/dist/preview/{chunk.CU2WCYMK.js → chunk.ARWO4WOV.js} +1 -1
- package/dist/preview/chunk.B5SJMCTT.js +7 -0
- package/dist/preview/{chunk.JXNVNFV4.js → chunk.B7KZBT27.js} +1 -1
- package/dist/preview/{chunk.E3UL4MCD.js → chunk.BDNQMKDG.js} +1 -1
- package/dist/preview/{chunk.YNEHJWJV.js → chunk.BKYZSV2Y.js} +1 -1
- package/dist/preview/{chunk.5BX66FBP.js → chunk.CKDCTFLU.js} +1 -1
- package/dist/preview/chunk.CTUJZ3IV.js +1 -0
- package/dist/preview/chunk.CY7FFKEZ.js +1 -0
- package/dist/preview/{chunk.3PBTN7RO.js → chunk.D4WJ7OM5.js} +1 -1
- package/dist/preview/{chunk.C2C3AXGI.js → chunk.D7NWMXSX.js} +3 -3
- package/dist/preview/chunk.DEKRFTRN.js +4 -0
- package/dist/preview/{chunk.E7EWNWAN.js → chunk.DKEIEH2D.js} +1 -1
- package/dist/preview/{chunk.I2737CPF.js → chunk.DWM7AR5Y.js} +1 -1
- package/dist/preview/{chunk.ANS2IEEV.js → chunk.DZMIYEHQ.js} +1 -1
- package/dist/preview/{chunk.BMENTGDC.js → chunk.E5PYNAYT.js} +2 -2
- package/dist/preview/chunk.EBKH3ILT.js +1 -0
- package/dist/preview/{chunk.DTCAUPLC.js → chunk.EFVSZKB5.js} +1 -1
- package/dist/preview/{chunk.QOS5T46W.js → chunk.EGPCVMDU.js} +1 -1
- package/dist/preview/{chunk.7ZKBYXUM.js → chunk.EJ2EZL2G.js} +1 -1
- package/dist/preview/{chunk.7VP6Y6D2.js → chunk.EP6Q32WT.js} +1 -1
- package/dist/preview/{chunk.OOSIKCOS.js → chunk.F464JKHZ.js} +1 -1
- package/dist/preview/{chunk.VGHO3VCB.js → chunk.FLJXYESX.js} +1 -1
- package/dist/preview/chunk.FOUBDGL3.js +1 -0
- package/dist/preview/chunk.FPHRAO3R.js +1 -0
- package/dist/preview/{chunk.4FDVINRJ.js → chunk.FRQSLWP4.js} +1 -1
- package/dist/preview/{chunk.2MHNPBHC.js → chunk.FVQKSN33.js} +1 -1
- package/dist/preview/{chunk.PDDIQ6PK.js → chunk.G3GFDVO2.js} +1 -1
- package/dist/preview/{chunk.ZD7T234N.js → chunk.G5GVT6JY.js} +1 -1
- package/dist/preview/{chunk.3L4JMM3P.js → chunk.GFLH7RCI.js} +1 -1
- package/dist/preview/{chunk.OO2OP76C.js → chunk.GMLONS5L.js} +1 -1
- package/dist/preview/{chunk.FK722SHI.js → chunk.GRFD42WM.js} +1 -1
- package/dist/preview/{chunk.2VR7YEJ6.js → chunk.GVT4UUQA.js} +1 -1
- package/dist/preview/{chunk.GME63ZHI.js → chunk.H3EGBDW2.js} +1 -1
- package/dist/preview/{chunk.DQFHIJFN.js → chunk.H6KIEDZN.js} +1 -1
- package/dist/preview/{chunk.5B5SRTUK.js → chunk.HAOB6O72.js} +1 -1
- package/dist/preview/chunk.HB5NWHFP.js +3 -0
- package/dist/preview/{chunk.6EHHMWPP.js → chunk.HJUZMOW2.js} +1 -1
- package/dist/preview/{chunk.6MQ5NT7S.js → chunk.HN4ZJ4B4.js} +1 -1
- package/dist/preview/chunk.HVBKI5ZO.js +1 -0
- package/dist/preview/chunk.I3SDKMQS.js +1 -0
- package/dist/preview/{chunk.QQAZQDRW.js → chunk.IAEGJDF3.js} +1 -1
- package/dist/preview/{chunk.QWNSHISU.js → chunk.IDALEKIW.js} +1 -1
- package/dist/preview/{chunk.QFHWG4LN.js → chunk.ILJDLBPJ.js} +1 -1
- package/dist/preview/{chunk.ZR2TP3BF.js → chunk.J2OPIS3H.js} +1 -1
- package/dist/preview/chunk.J5OLYVZ4.js +1 -0
- package/dist/preview/{chunk.LETAQTLJ.js → chunk.J6HF7IRQ.js} +1 -1
- package/dist/preview/{chunk.RWIN3POV.js → chunk.JEC5FDKX.js} +1 -1
- package/dist/preview/chunk.JKFVNQY7.js +1 -0
- package/dist/preview/{chunk.LLIURXFP.js → chunk.JQ2WNKDW.js} +1 -1
- package/dist/preview/{chunk.Z7Y3R3YR.js → chunk.JQ63N4MZ.js} +1 -1
- package/dist/preview/{chunk.DZFM6GSY.js → chunk.JU6UFWS3.js} +1 -1
- package/dist/preview/{chunk.INHS3KTK.js → chunk.JVB5KDSG.js} +1 -1
- package/dist/preview/{chunk.4U4D7WOI.js → chunk.KFT7JIEH.js} +1 -1
- package/dist/preview/chunk.KGMSSXZL.js +1 -0
- package/dist/preview/{chunk.5CXIEYHY.js → chunk.KX5ZBHMA.js} +2 -2
- package/dist/preview/{chunk.V7W5AQKL.js → chunk.LP2ZMAT2.js} +1 -1
- package/dist/preview/{chunk.BUVTUAB5.js → chunk.LRNFE3UK.js} +1 -1
- package/dist/preview/{chunk.PAGEGBUD.js → chunk.LVOTLGJB.js} +1 -1
- package/dist/preview/{chunk.QHMHUL6B.js → chunk.LYEGRY77.js} +1 -1
- package/dist/preview/{chunk.PPSYUOH7.js → chunk.M7KXQGQL.js} +1 -1
- package/dist/preview/{chunk.7BIPZTJB.js → chunk.MAKCZ6B6.js} +1 -1
- package/dist/preview/{chunk.EQ4OODGO.js → chunk.MJY4SLWA.js} +1 -1
- package/dist/preview/{chunk.EMFOMSMI.js → chunk.MSAYU25L.js} +1 -1
- package/dist/preview/{chunk.F4VB6Q2W.js → chunk.MUSMNKE4.js} +1 -1
- package/dist/preview/{chunk.BGAC3B7X.js → chunk.MW7R5G3C.js} +1 -1
- package/dist/preview/{chunk.AK7NGFEX.js → chunk.N4ZKZ4GM.js} +1 -1
- package/dist/preview/{chunk.TXHYGFIZ.js → chunk.NAXOXBOF.js} +1 -1
- package/dist/preview/{chunk.IWYMKGZZ.js → chunk.NKLPL7QD.js} +1 -1
- package/dist/preview/{chunk.QU52E5RG.js → chunk.NKYWIGC7.js} +1 -1
- package/dist/preview/{chunk.KSIEO5W7.js → chunk.NRURQGXV.js} +1 -1
- package/dist/preview/{chunk.FV72U33M.js → chunk.NSOPYIT4.js} +1 -1
- package/dist/preview/chunk.NXZL5CA2.js +1 -0
- package/dist/preview/{chunk.WVLEGCRI.js → chunk.O2OL6RQQ.js} +1 -1
- package/dist/preview/{chunk.TGEL6EUA.js → chunk.O5VFKVZS.js} +1 -1
- package/dist/preview/{chunk.CEVGND3Y.js → chunk.OCXY5DCD.js} +3 -3
- package/dist/preview/chunk.OHAO6KKH.js +1 -0
- package/dist/preview/{chunk.DSYP43NN.js → chunk.P2EKKKK2.js} +1 -1
- package/dist/preview/chunk.PSNMZBVS.js +1 -0
- package/dist/preview/{chunk.W53YNBSM.js → chunk.PZ7KY6XH.js} +1 -1
- package/dist/preview/{chunk.WSO7JOW5.js → chunk.QAM76AXV.js} +1 -1
- package/dist/preview/{chunk.PSQYDCVM.js → chunk.QF5QB5YR.js} +1 -1
- package/dist/preview/chunk.QNP5OR3P.js +93 -0
- package/dist/preview/{chunk.5LJVOLKR.js → chunk.QRQ5WPZI.js} +1 -1
- package/dist/preview/chunk.QWGWOEBZ.js +90 -0
- package/dist/preview/{chunk.OMT4QUZY.js → chunk.QXLJGHMC.js} +4 -4
- package/dist/preview/{chunk.J2MM6BUW.js → chunk.QZQCQWQG.js} +1 -1
- package/dist/preview/{chunk.6FQW6FNL.js → chunk.R6JBA7UK.js} +1 -1
- package/dist/preview/chunk.R7CRBRD4.js +1 -0
- package/dist/preview/chunk.RD2FSSLV.js +1 -0
- package/dist/preview/{chunk.OEIWIZCP.js → chunk.RG5G6YQD.js} +1 -1
- package/dist/preview/{chunk.PFQBCHQA.js → chunk.RJY7VJBH.js} +1 -1
- package/dist/preview/chunk.RR25BGWP.js +1 -0
- package/dist/preview/{chunk.BZ7QWHAE.js → chunk.RSQ432QN.js} +1 -1
- package/dist/preview/{chunk.MWGZKZD6.js → chunk.SFBHPYRD.js} +1 -1
- package/dist/preview/{chunk.FFOD5B4B.js → chunk.SJQPTDAT.js} +1 -1
- package/dist/preview/{chunk.OTV5XTBB.js → chunk.SNHKYH72.js} +1 -1
- package/dist/preview/{chunk.WSDJPXJD.js → chunk.SO6NT5K7.js} +1 -1
- package/dist/preview/{chunk.FDZE5LTJ.js → chunk.STPA7HBK.js} +2 -2
- package/dist/preview/{chunk.ONYBW45K.js → chunk.SY5ID44D.js} +1 -1
- package/dist/preview/chunk.T27QKVKP.js +1 -0
- package/dist/preview/{chunk.U6TEW6YD.js → chunk.T2OUHRAA.js} +1 -1
- package/dist/preview/chunk.T3WCRS6M.js +1 -0
- package/dist/preview/{chunk.QGIM2WAY.js → chunk.TI5FR2QQ.js} +1 -1
- package/dist/preview/{chunk.HOCD7KIR.js → chunk.TTSGCNPT.js} +1 -1
- package/dist/preview/{chunk.ES63XSIM.js → chunk.TXZQEJ5T.js} +1 -1
- package/dist/preview/{chunk.6LXIEM6B.js → chunk.UDHPMVC4.js} +1 -1
- package/dist/preview/{chunk.KBPJ7X7W.js → chunk.UGQYMN4J.js} +1 -1
- package/dist/preview/{chunk.M6ZN2KUO.js → chunk.UQIPEMJ5.js} +1 -1
- package/dist/preview/{chunk.FIFUMX5X.js → chunk.URQTF5SY.js} +1 -1
- package/dist/preview/{chunk.J7W2OFHY.js → chunk.UW52CMGJ.js} +1 -1
- package/dist/preview/{chunk.LINSO5PN.js → chunk.UWS4RMM3.js} +1 -1
- package/dist/preview/{chunk.QPF4KSAW.js → chunk.V7H4BUEB.js} +1 -1
- package/dist/preview/{chunk.KHRS2SKB.js → chunk.VBHV4TLG.js} +1 -1
- package/dist/preview/{chunk.U3ED7W2U.js → chunk.VBLQJVQ5.js} +1 -1
- package/dist/preview/{chunk.CVPMSPCH.js → chunk.WALVW3KJ.js} +1 -1
- package/dist/preview/{chunk.2KFZHUAC.js → chunk.WEMUKZKH.js} +1 -1
- package/dist/preview/{chunk.YIPXZUTT.js → chunk.X226YATK.js} +1 -1
- package/dist/preview/{chunk.GNEOSHQ6.js → chunk.XFLGSUYO.js} +1 -1
- package/dist/preview/{chunk.W4YDPHCQ.js → chunk.XSWSBTUO.js} +1 -1
- package/dist/preview/{chunk.OJY7VJ7D.js → chunk.YCD4JSXD.js} +1 -1
- package/dist/preview/{chunk.72ZCLEQC.js → chunk.YZPESGCP.js} +1 -1
- package/dist/preview/{chunk.XOE4KNP2.js → chunk.Z27NSSYL.js} +2 -2
- package/dist/preview/{chunk.DEHIR4EG.js → chunk.Z2XUVJAL.js} +1 -1
- package/dist/preview/{chunk.YXEO3Y65.js → chunk.Z3O2VZAJ.js} +1 -1
- package/dist/preview/{chunk.M2JCFNHJ.js → chunk.Z4TY44CD.js} +1 -1
- package/dist/preview/{chunk.EXYCN4WI.js → chunk.ZAPS4J6G.js} +1 -1
- package/dist/preview/{chunk.6TLXFMX2.js → chunk.ZAQ4IDX6.js} +1 -1
- package/dist/preview/{chunk.6HY6ZGEE.js → chunk.ZEZUKRC6.js} +1 -1
- package/dist/preview/{chunk.GEFXU4VO.js → chunk.ZG5VGP5U.js} +1 -1
- package/dist/preview/index.html +56 -56
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.4WGYUYWU.js +0 -2
- package/dist/preview/chunk.5EMIWORS.js +0 -1
- package/dist/preview/chunk.6EVMXBNB.js +0 -1
- package/dist/preview/chunk.BCQWAFGD.js +0 -1
- package/dist/preview/chunk.BOCVLC7X.js +0 -1
- package/dist/preview/chunk.DPJNGFEZ.js +0 -4
- package/dist/preview/chunk.E4VRRWFP.js +0 -1
- package/dist/preview/chunk.EUAO4QNV.js +0 -1
- package/dist/preview/chunk.F7672TKJ.js +0 -1
- package/dist/preview/chunk.FA42HCPW.js +0 -1
- package/dist/preview/chunk.FBJAQPZ6.js +0 -1
- package/dist/preview/chunk.GAFMWOME.js +0 -1
- package/dist/preview/chunk.I4Z7HVRT.js +0 -1
- package/dist/preview/chunk.JMXXA4YG.js +0 -1
- package/dist/preview/chunk.JMYUQNXN.js +0 -6
- package/dist/preview/chunk.K6DFXDPZ.js +0 -1
- package/dist/preview/chunk.KF27ME27.js +0 -1
- package/dist/preview/chunk.L25DCT5S.js +0 -1
- package/dist/preview/chunk.MODLZJD4.js +0 -25
- package/dist/preview/chunk.OJGHDWI6.js +0 -1
- package/dist/preview/chunk.SSF47GUY.js +0 -1
- package/dist/preview/chunk.T6DPWW2K.js +0 -3
- package/dist/preview/chunk.TA36WBHK.js +0 -1
- package/dist/preview/chunk.TTGKX7LT.js +0 -1
- package/dist/preview/chunk.U3HERHAI.js +0 -88
- package/dist/preview/chunk.V5I4GZEY.js +0 -1
- package/dist/preview/chunk.VT2YGDK2.js +0 -1
- package/dist/preview/chunk.XK65Y2KX.js +0 -1
- package/dist/preview/chunk.Z274CL7J.js +0 -1
- package/dist/preview/chunk.ZBVYD4OX.js +0 -90
|
@@ -0,0 +1,93 @@
|
|
|
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{c as Ar}from"./chunk.4W57E7AX.js";import{G as O,La as R,P as On,Pa as Vn,Qa as $n,Ra as Dn,Ua as D,W as x,Ya as I,a as ke,e as xe,ea as Se,fa as te,j as Tn,l as De,m as Ie,qa as Rn,s as Hn,v as de,x as Cn,ya as Fn,z as Mn}from"./chunk.A5PSEU3W.js";import{a as M}from"./chunk.SDO3U72B.js";import{$d as xn,Oc as mn,Rc as hn,Vd as ve,Wd as le,Xd as kn,Yc as G,Zc as yn,Zd as $e,_c as wn,ad as vn,ae as Sn,be as re,cd as bn,dd as Ve,eb as gn,ie as Pn,je as Ln,ke as En,la as ye,le as An,ne as Nn,oe as be,pa as we,qa as un,se as Bn,wb as fn}from"./chunk.ZEZUKRC6.js";import{b as w}from"./chunk.AJZBJBMO.js";var We=w(O(),1),Ut=e=>{let n=e??null;for(;n?.parentElement?.closest('[data-testid="context-menu"]');)n=n.parentElement.closest('[data-testid="context-menu"]');let r=n?.getBoundingClientRect();return r&&r.width>0?{left:r.left,top:r.top}:void 0},_e=new WeakMap,Pe=e=>{let n=_e.get(e);return n||_e.set(e,n={open:null,drawn:0,listeners:new Set}),n},Jt=e=>{let n=_e.get(e);n?.preload&&(typeof performance<"u"&&typeof performance.mark=="function"&&performance.mark("graview:quick-ask-preload"),n.preload(),n.preload=void 0)},Nr=e=>{for(let n of[...e.listeners])n()},Br=0;function Xt(e,n){let r=Pe(e);r.open=n?{...n,at:++Br}:null,Nr(r)}var In=e=>n=>{let r=Pe(e);return r.listeners.add(n),()=>void r.listeners.delete(n)};function _n(e){let n=()=>e?Pe(e).drawn>0:!1;return(0,We.useSyncExternalStore)(e?In(e):Tr,n,n)}var Tr=()=>()=>{};function Zt(e){let n=()=>Pe(e).open;return(0,We.useSyncExternalStore)(In(e),n,n)}var _=w(O(),1),Wn=w(Ar(),1);function Hr(e){let[n,r]=(0,_.useState)(null),[t,o]=(0,_.useState)(null);return(0,_.useLayoutEffect)(()=>{e.current!==t&&o(e.current)}),(0,_.useLayoutEffect)(()=>{if(!t||typeof ResizeObserver>"u")return;let i=()=>Math.round(t.getBoundingClientRect().width),s=i();r(s);let p=new ResizeObserver(()=>{let l=i();l!==s&&(s=l,(0,Wn.flushSync)(()=>r(l)))});return p.observe(t),()=>p.disconnect()},[t]),n}function Cr(e=!0){let[n,r]=(0,_.useState)();return(0,_.useEffect)(()=>{if(!e)return r(void 0);let t=0,o=()=>r(innerHeight),i=()=>{o(),clearTimeout(t),t=window.setTimeout(o,300)},s=p=>{for(let[l,d]of[[window,"resize"],[window,"orientationchange"],[window.visualViewport,"resize"]])l?.[p](d,i)};return s("addEventListener"),o(),()=>{clearTimeout(t),s("removeEventListener")}},[e]),n}var Le={position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap"};var L=w(O(),1);var N=w(x(),1),zn=6e3;function Mr(e){return{...e,notify:n=>e.notify({...n,from:"framework"})}}var Or=e=>({place:"overview",...e&&!/^(aggregate|kind):/.test(e)?{record:e}:{}});function Rr(){let e=[],n=0,r=new Set,t=new Map,o,i=()=>{for(let d of[...r])d()},s=d=>{if(clearTimeout(t.get(d.id)),t.delete(d.id),d.kind!=="toast")return;let u=(d.actions?.length??0)+(d.action?1:0),g=d.timeout??(u>0?!1:zn);g!==!1&&t.set(d.id,setTimeout(()=>o?.()?s(d):p(d.id),g))},p=d=>{clearTimeout(t.get(d)),t.delete(d),e.some(u=>u.id===d)&&(e=e.filter(u=>u.id!==d),i())},l=d=>{e=e.some(u=>u.id===d.id)?e.map(u=>u.id===d.id?d:u):[...e,d],s(d),i()};return{notify(d){let u=d.id??`notice-${++n}`;return l({...d,id:u,said:++n}),{id:u,dismiss:()=>p(u),update:g=>{let c=e.find(y=>y.id===u);c&&l({...c,...g,id:u,kind:c.kind,said:g.sentence!==void 0&&g.sentence!==c.sentence?++n:c.said})}}},dismiss:p,hold(d){o=d},list:()=>e,subscribe(d){return r.add(d),()=>r.delete(d)}}}function Fr({notices:e}){let n=e.reduce((p,l)=>!p||l.said>p.said?l:p,void 0),[r,t]=(0,L.useState)(""),[o,i]=(0,L.useState)(""),s=(0,L.useRef)(0);return(0,L.useEffect)(()=>{if(!n||n.said===s.current)return;s.current=n.said;let p=n.tone==="bad";(p?i:t)("");let l=setTimeout(()=>(p?i:t)(n.sentence),50);return()=>clearTimeout(l)},[n]),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("div",{role:"status","aria-live":"polite","data-testid":"notices-said",style:Le,children:r}),(0,N.jsx)("div",{role:"alert","data-testid":"notices-alarm",style:Le,children:o})]})}var Vr=(0,L.createContext)(null);function $r({board:e,anchor:n,report:r}){let t=(0,L.useSyncExternalStore)(e.subscribe,e.list,e.list);return(0,L.useEffect)(()=>_r(ze.prefetch),[]),(0,N.jsxs)(N.Fragment,{children:[t.length>0?(0,N.jsx)(L.Suspense,{fallback:null,children:(0,N.jsx)(Ir,{notices:t,anchor:n,board:e,...r?{report:r}:{}})}):null,(0,N.jsx)(Fr,{notices:t})]})}var ze=R(M(()=>(__graviewPreload(import.meta.url,["./chunk.MB7LKKUD.js","./chunk.QNP5OR3P.js","./chunk.4W57E7AX.js","./chunk.A5PSEU3W.js","./chunk.SDO3U72B.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.JU6UFWS3.js")))),Dr=()=>ze.load().then(()=>{},()=>{}),Ir=ze.part((e,n)=>(0,N.jsx)(e.NoticeStacks,{...n}),{quiet:!0});function _r(e){let n=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},r=globalThis;if(r.requestIdleCallback){let o=r.requestIdleCallback(n,{timeout:5e3});return()=>r.cancelIdleCallback?.(o)}let t=setTimeout(n,2500);return()=>clearTimeout(t)}var E=R(M(()=>(__graviewPreload(import.meta.url,["./chunk.NKYWIGC7.js","./chunk.6UQFV53C.js","./chunk.T2OUHRAA.js","./chunk.GRFD42WM.js","./chunk.EP6Q32WT.js","./chunk.U5P23GO7.js","./chunk.HJUZMOW2.js","./chunk.NAXOXBOF.js","./chunk.6W6XMLSF.js","./chunk.PZ7KY6XH.js","./chunk.WEMUKZKH.js","./chunk.T27QKVKP.js","./chunk.EGPCVMDU.js","./chunk.MIE4TJRW.js","./chunk.QRQ5WPZI.js","./chunk.RD2FSSLV.js","./chunk.37RFCHSS.js","./chunk.SO6NT5K7.js","./chunk.MUSMNKE4.js","./chunk.SJQPTDAT.js","./chunk.JQ63N4MZ.js","./chunk.Z3O2VZAJ.js","./chunk.QNP5OR3P.js","./chunk.4W57E7AX.js","./chunk.A5PSEU3W.js","./chunk.SDO3U72B.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.7BJRHPE3.js"))));var h=w(O(),1);var Ke=e=>Math.round(e).toString(16).padStart(2,"0");function Kn(e){let n=r=>{let t=e?.schemes?.[r]?.ground,o=t?mn(t)[0]:void 0;return o?`#${Ke(o.r)}${Ke(o.g)}${Ke(o.b)}`:void 0};if(e?.scheme==="light"||e?.scheme==="dark"){let r=n(e.scheme);return r?[{color:r}]:[]}return["light","dark"].flatMap(r=>{let t=n(r);return t?[{color:t,media:`(prefers-color-scheme: ${r})`}]:[]})}var je=w(O(),1);var jn=w(O(),1);function ce(e){return(0,jn.useMemo)(()=>e===void 0||e===""?void 0:{__html:e},[e])}var q=w(x(),1);function Ge({brand:e,size:n=22}){let r=On(),t=vn(e),o=Gn(t?.light),i=o?Gn(t?.dark):void 0,s=ce(o!==void 0&&G(o)?o:void 0),p=ce(i!==void 0&&G(i)?i:void 0),l={display:"inline-flex",flex:"0 0 auto",height:n,color:"var(--graview-accent)"},d=bn(e);if(d)return(0,q.jsx)("span",{className:"graview-logo graview-emoji-mark","data-testid":"app-mark","aria-hidden":!0,style:{...l,alignItems:"center",fontSize:`${n*.86/16}rem`,lineHeight:1},children:d});if(!o)return null;let u=e?.logoAlt??e?.name??"",g=u!==""&&u!==e?.name,c=g?{role:"img","aria-label":u}:{"aria-hidden":!0};if(i){let b=(S,v,T)=>G(S)?(0,q.jsx)("span",{className:"graview-logo-face","data-graview-scheme-only":T,dangerouslySetInnerHTML:v}):(0,q.jsx)("img",{className:"graview-logo-face","data-graview-scheme-only":T,src:Ve(r,S),alt:""});return(0,q.jsxs)("span",{className:"graview-logo","data-testid":"app-mark",style:l,...c,children:[b(o,s,"light"),b(i,p,"dark")]})}let y=t?.darkFallback==="invert"?{"data-graview-logo-fallback":"invert"}:{};return G(o)?(0,q.jsx)("span",{className:"graview-logo","data-testid":"app-mark",style:l,...y,...c,dangerouslySetInnerHTML:s}):(0,q.jsx)("img",{className:"graview-logo","data-testid":"app-mark",src:Ve(r,o),alt:g?u:"",...y,style:{...l,width:"auto"}})}function Gn(e){if(!(!e||!wn(e)))return G(e)&&yn(e)!==null?void 0:e}function Wr(e){(0,je.useEffect)(()=>{if(!e||typeof document>"u")return;let n=[...document.querySelectorAll('link[rel~="icon"]')],r=n.map(o=>o.getAttribute("href")),t;n.length===0&&(t=document.createElement("link"),t.rel="icon",t.setAttribute("data-graview-favicon",""),document.head.appendChild(t),n.push(t));for(let o of n)o.href=e;return()=>{t&&t.remove(),n.forEach((o,i)=>{o!==t&&r[i]!==null&&r[i]!==void 0&&o.setAttribute("href",r[i])})}},[e])}function zr(e){let n=e?JSON.stringify(Kn(e)):"[]";(0,je.useEffect)(()=>{let r=JSON.parse(n);if(r.length===0||typeof document>"u")return;let t=[...document.head.querySelectorAll('meta[name="theme-color"]:not([data-graview-theme-color])')];t.forEach(i=>i.setAttribute("name","graview-theme-color-held"));let o=r.map(({color:i,media:s})=>{let p=document.createElement("meta");return p.name="theme-color",p.content=i,s&&(p.media=s),p.setAttribute("data-graview-theme-color",""),document.head.appendChild(p),p});return()=>{o.forEach(i=>i.remove()),t.forEach(i=>i.setAttribute("name","theme-color"))}},[n])}var a=w(x(),1),Kr=E.part((e,n)=>(0,a.jsx)(e.TidyFoot,{...n}),{quiet:!0}),jr=E.part((e,n)=>(0,a.jsx)(e.AppMenuPane,{...n}),{what:"The app menu"}),Gr=E.part((e,n)=>(0,a.jsx)(e.Here,{...n}),{quiet:!0});function qr(){let e=te(),[n,r]=(0,h.useState)("");return(0,h.useEffect)(()=>e?.store.subscribe((t,o)=>{o.some(i=>i.author.id!==e.principal.id)&&E.load().then(i=>i.sayTheirChange(o,e,r),String)}),[e]),(0,a.jsx)("span",{role:"status",className:"graview-bar-said",children:n})}var Qn="home",Un="/",Z="scene:whole";function Yr(e){let{store:n,principal:r,views:t}=e,o=n.kindsKeptFrom(r),i=n.schema.kinds.filter(f=>!n.modules.disabledKinds.has(f)&&!o.has(f)),s=t?.arrangement?.(),p=t?.places()??[],l=An(s,n.schema,p),d=En(n.schema,s,[...n.modules.administered.values()].flatMap(f=>f.kinds??[])),u=(f,P)=>(!n.graph.size.nodes||n.graph.count(f)>0)&&(l?P?l.places.has(`${f}|${P}`):l.kinds.has(f):!d.has(f)),g=[{key:Qn,label:"Home",path:Un,group:"home",primary:!0}],c=p.filter(f=>i.includes(f.kind)&&f.as!==Nn),y=c.filter(f=>!f.hidden),b=new Set(le(y).map(f=>re(f,p,n.schema).toLowerCase())),S=f=>xn(f.as,Sn(f,p)?$e(n.schema,f.kind).slice(1):void 0),v=new Set(s?.hide??[]),T=Bn(i,s?.order,y);for(let{kind:f,view:P}of T){if(P){g.push({key:`place:${P.kind}:${P.as}`,label:re(P,p,n.schema),path:S(P),group:"lists",kind:f,primary:l?l.places.has(`${f}|${P.as}`):!0});continue}let z=we(n.schema,f),B=b.has(z.toLowerCase());g.push({key:`kind:${f}`,label:B?un(n.schema,f):z,path:$e(n.schema,f),group:"lists",kind:f,primary:B||v.has(f)?!1:u(f),...v.has(f)?{hidden:!0}:{}})}for(let f of le(c)){if(T.some(B=>B.view&&ve(B.view,f)))continue;let P=S(f),z=[f.kind,...f.over??[]].some(B=>i.includes(B)&&u(B,f.as));g.some(B=>B.path===P)||g.push({key:`place:${f.kind}:${f.as}`,label:re(f,p,n.schema),path:P,group:"pictures",kind:f.kind,primary:z,hidden:f.hidden})}return i.some(f=>Object.keys(n.schema.tryDefinition(f)?.edges??{}).length>0)&&g.push({key:"connections",label:"Connections",path:"/map",group:"pictures",primary:!1}),g}function Qr(e,n){let[r="/",t=""]=n.split("?"),o=e.find(s=>s.path===(t?`${r}?${t}`:r))??e.find(s=>s.path===r);if(o)return o.key;let i=`/${r.split("/").filter(Boolean)[0]??""}`;return e.find(s=>s.group==="lists"&&s.path===i)?.key??null}var Jn=(0,h.createContext)(null),Ur=()=>(0,h.useContext)(Jn),V=30,Xn=48,pe=640,Zn=900,Qe=4,qe=2;function er(e){let{widths:n,current:r,room:t,more:o,gap:i=Qe,primary:s,most:p=Ln}=e;if(n.length===0||!(t>0)||!(o>0)||n.some(g=>!(g>0)))return null;let l=(g,c)=>g.reduce((y,b)=>y+n[b],0)+i*Math.max(0,g.length-1)+(c?i+o:0),d=(g,c)=>r<0||!g.includes(r)||g.slice(0,c).includes(r)?g.slice(0,c):[...g.filter(y=>y!==r).slice(0,c-1),r].sort((y,b)=>y-b),u=d(n.map((g,c)=>c).filter(g=>s?.[g]!==!1||g===r),p);if(l(u,u.length<n.length)<=t)return u.length>=qe?u:null;for(let g=u.length-1;g>=qe;g--){let c=d(u,g);if(l(c,!0)<=t)return c}return null}var Jr=`
|
|
2
|
+
.graview-bar{display:block;margin:0;padding:0;container:graview-bar/inline-size;flex:0 0 auto;position:relative;background:var(--graview-bar);border-bottom:1px solid var(--graview-edge);color:var(--graview-ink);font-family:var(--graview-font-body,system-ui)}
|
|
3
|
+
.graview-bar-row{display:flex;flex-wrap:nowrap;align-items:center;gap:16px;height:${Xn-1}px;margin:0;padding:0 16px}
|
|
4
|
+
.graview-bar-home,.graview-bar-place,.graview-bar-item,.graview-bar-at{display:inline-flex;align-items:center;box-sizing:border-box;min-width:0;margin:0;border:0;background:none;box-shadow:none;font:inherit;letter-spacing:normal;text-transform:none;text-decoration:none;color:var(--graview-ink);cursor:pointer;text-align:left}
|
|
5
|
+
.graview-bar-app{display:flex;align-items:center;gap:2px;flex:0 1 auto;max-width:50%}
|
|
6
|
+
.graview-bar-app::after{content:"";flex:0 100000 auto;width:2px;min-width:0}
|
|
7
|
+
.graview-bar-name{margin:0;display:flex;font-family:var(--graview-font-display,var(--graview-font-body,system-ui));font-size:.9375rem;font-weight:600;line-height:1.25}
|
|
8
|
+
.graview-bar-home{gap:8px;min-width:auto;min-height:30px;padding:0;letter-spacing:-.005em}
|
|
9
|
+
.graview-bar-app-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal}
|
|
10
|
+
.graview-bar-said{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
|
|
11
|
+
.graview-bar-menu-open{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;box-sizing:border-box;width:24px;height:30px;margin:0;padding:0;border:1px solid transparent;border-radius:6px;background:none;box-shadow:none;color:var(--graview-ink-muted);cursor:pointer}
|
|
12
|
+
.graview-bar-menu-open:is(:hover,[aria-expanded=true]){border-color:var(--graview-edge);color:var(--graview-ink)}
|
|
13
|
+
.graview-bar-tool{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;box-sizing:border-box;min-width:${V}px;height:${V}px;margin:0;padding:0;border-radius:8px;border:1px solid transparent;background:none;box-shadow:none;font:inherit;font-size:.875rem;font-weight:500;letter-spacing:normal;text-transform:none;white-space:nowrap;color:var(--graview-ink-muted);cursor:pointer;text-decoration:none}
|
|
14
|
+
.graview-bar-tool:is(:hover,[aria-expanded=true]){border-color:var(--graview-edge);color:var(--graview-ink)}
|
|
15
|
+
.graview-bar-tool[data-running]{color:var(--graview-accent)}
|
|
16
|
+
.graview-bar-badge{position:absolute;top:-3px;right:-5px;box-sizing:border-box;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--graview-accent);color:var(--graview-accent-ink);font-size:.625rem;font-weight:700;line-height:16px;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--graview-bar);pointer-events:none}
|
|
17
|
+
.graview-bar-badge[data-dot]{min-width:8px;width:8px;height:8px;padding:0;top:2px;right:2px}
|
|
18
|
+
.graview-bar-badge[data-tone=warn]{background:var(--graview-warn)}
|
|
19
|
+
.graview-bar-share{gap:6px;padding:0 10px}
|
|
20
|
+
.graview-bar-share-pane{display:grid;gap:10px;width:min(300px,calc(100vw - 24px));padding:14px;border-radius:10px;border:1px solid var(--graview-edge);background:var(--graview-float);box-shadow:var(--graview-lift-high);color:var(--graview-ink);font-size:.875rem;line-height:1.45}
|
|
21
|
+
.graview-bar-share-pane[hidden]{display:none}
|
|
22
|
+
.graview-bar-share-pane p{margin:0}
|
|
23
|
+
.graview-bar-share-links{display:flex;flex-wrap:wrap;gap:4px 16px}
|
|
24
|
+
.graview-bar-share-pane a,.graview-bar-share-pane button{justify-self:start;display:inline-flex;align-items:center;min-height:28px;padding:0;border:0;background:none;box-shadow:none;font:inherit;font-weight:600;color:var(--graview-accent);text-decoration:none;cursor:pointer}
|
|
25
|
+
.graview-bar-status{gap:6px;padding:0 8px;cursor:default;font-weight:400}
|
|
26
|
+
a.graview-bar-status{cursor:pointer}
|
|
27
|
+
.graview-bar-mid{display:flex;flex:1 100 0;min-width:0}
|
|
28
|
+
.graview-bar-mid[data-place]{min-width:9em;flex-basis:auto}
|
|
29
|
+
.graview-bar-place-at{position:relative;display:inline-flex;min-width:0;max-width:100%}
|
|
30
|
+
.graview-bar-place{gap:6px;height:30px;max-width:100%;padding:0 8px;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:600}
|
|
31
|
+
.graview-bar-place:hover{border-color:var(--graview-edge);color:var(--graview-ink)}
|
|
32
|
+
.graview-bar-place-words{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
33
|
+
.graview-bar-mid[data-places=standing]{flex:0 0 auto}
|
|
34
|
+
.graview-bar-places{display:flex;align-items:center;gap:${Qe}px;min-width:0;margin:0;padding:0}
|
|
35
|
+
.graview-bar-at{gap:6px;flex:0 0 auto;height:30px;padding:0 8px;border-block:2px solid transparent;border-radius:0;font-size:.875rem;font-weight:500;white-space:nowrap;color:var(--graview-ink-muted)}
|
|
36
|
+
.graview-bar-at:is(:hover,[aria-current],[aria-expanded=true]){color:var(--graview-ink)}
|
|
37
|
+
.graview-bar-at[aria-current]{font-weight:600;border-bottom-color:var(--graview-accent)}
|
|
38
|
+
.graview-bar-ruler{position:absolute;left:0;top:0;display:flex;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none}
|
|
39
|
+
.graview-bar-ruler .graview-bar-at{font-weight:600}
|
|
40
|
+
.graview-bar-ruler>.graview-bar-name{flex:none;white-space:nowrap;letter-spacing:-.005em}
|
|
41
|
+
.graview-bar-list{display:grid;align-content:start;width:min(320px,calc(100vw - 24px));height:auto;max-height:min(70vh,560px);overflow:auto;margin:0;padding:6px;border-radius:10px;border:1px solid var(--graview-edge);background:var(--graview-float);box-shadow:var(--graview-lift-high);color:var(--graview-ink)}
|
|
42
|
+
.graview-bar-list[hidden]{display:none}
|
|
43
|
+
.graview-bar-list p{margin:8px 8px 2px;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--graview-ink-muted)}
|
|
44
|
+
.graview-bar-list ul,.graview-bar-list li{display:grid;margin:0;padding:0;list-style:none}
|
|
45
|
+
.graview-bar-item{align-items:flex-start;gap:10px;width:100%;padding:7px 8px;border-radius:7px;font-size:.875rem;line-height:1.3;overflow-wrap:anywhere}
|
|
46
|
+
.graview-bar-item:hover{background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
|
|
47
|
+
.graview-bar-item[aria-current]{font-weight:600;background:color-mix(in srgb,var(--graview-accent) 14%,transparent)}
|
|
48
|
+
.graview-bar-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:14px;height:1.3em;color:var(--graview-ink-muted)}
|
|
49
|
+
.graview-bar :focus-visible{outline:2px solid var(--graview-accent);outline-offset:1px}
|
|
50
|
+
.graview-bar-tools{display:contents}
|
|
51
|
+
.graview-bar-tools>*{margin-left:-8px}
|
|
52
|
+
.graview-bar-tools>:is(.graview-bar-find,.graview-bar-find-open){margin-left:auto}
|
|
53
|
+
.graview-bar-own{display:flex;align-items:center;flex:0 0 auto}
|
|
54
|
+
.graview-bar-own:empty{display:none}
|
|
55
|
+
.graview-bar-host{display:flex;align-items:center;gap:2px;flex:0 0 auto}
|
|
56
|
+
.graview-bar-host-action{display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;min-width:${V}px;height:${V}px;margin:0;padding:0 10px;border-radius:8px;border:1px solid transparent;background:none;box-shadow:none;font:inherit;font-size:.875rem;font-weight:500;letter-spacing:normal;text-transform:none;white-space:nowrap;color:var(--graview-ink-muted);cursor:pointer}
|
|
57
|
+
.graview-bar-host-action:is(:hover,[aria-expanded=true]){border-color:var(--graview-edge);color:var(--graview-ink)}
|
|
58
|
+
.graview-bar-host-action:is([data-folded],[data-icon-only]){padding:0;justify-content:center}
|
|
59
|
+
.graview-bar-host-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px;font-size:.9375rem;line-height:1}
|
|
60
|
+
.graview-bar-host-mark svg{width:16px;height:16px}
|
|
61
|
+
.graview-bar-list .graview-bar-host-action{width:100%;justify-content:flex-start;white-space:normal;overflow-wrap:anywhere}
|
|
62
|
+
.graview-bar-host-action[data-icon-only]>.graview-bar-host-words{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
|
|
63
|
+
.graview-bar-find{position:relative;display:flex;min-width:7.5rem;flex:0 600 9rem;--graview-bar-find-end:3.25em}
|
|
64
|
+
.graview-bar-find-slot{display:flex;flex:1;min-width:0}
|
|
65
|
+
.graview-bar-find-keys{position:absolute;right:10px;line-height:30px;pointer-events:none;font-size:.75rem;color:var(--graview-ink-faint)}
|
|
66
|
+
.graview-bar-find:is(:focus-within,:has(input:not(:placeholder-shown))){flex-basis:16rem;--graview-bar-find-end:10px}
|
|
67
|
+
:is(:focus-within,:has(input:not(:placeholder-shown)))>.graview-bar-find-keys,.graview-bar-find-open{display:none}
|
|
68
|
+
.graview-bar-line{display:flex;flex:0 0 auto;padding:6px 8px;background:var(--graview-ground);border-bottom:1px solid var(--graview-edge);font-family:var(--graview-font-body,system-ui)}
|
|
69
|
+
.graview-bar-line .graview-bar-place{height:auto;min-height:32px}
|
|
70
|
+
.graview-bar-line .graview-bar-place-words{white-space:normal}
|
|
71
|
+
@media (pointer:coarse){.graview-bar-find-keys{display:none}}
|
|
72
|
+
@container graview-bar (max-width: ${Zn-1}px){
|
|
73
|
+
.graview-bar-find{display:none}
|
|
74
|
+
.graview-bar-find-open{display:inline-flex}
|
|
75
|
+
.graview-bar-tools>.graview-bar-find-open{margin-left:auto}
|
|
76
|
+
.graview-bar[data-finding] :is(.graview-bar-app,.graview-bar-mid,.graview-bar-find-open){display:none}
|
|
77
|
+
.graview-bar[data-finding] .graview-bar-find{display:flex;flex:1 1 auto;min-width:0;margin-left:0}
|
|
78
|
+
}
|
|
79
|
+
@container graview-bar (max-width: ${pe-1}px){
|
|
80
|
+
.graview-bar-row{gap:10px;padding:0 12px}
|
|
81
|
+
.graview-bar-app{max-width:none;flex:1 1 auto;min-width:28px}
|
|
82
|
+
.graview-bar-home{min-width:28px}
|
|
83
|
+
.graview-bar-name,.graview-bar-app-name{min-width:0}
|
|
84
|
+
.graview-bar-mid{display:none}
|
|
85
|
+
.graview-bar-share{padding:0}
|
|
86
|
+
.graview-bar-share>.graview-bar-share-words{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
|
|
87
|
+
.graview-bar-status[data-icon]{padding:0}
|
|
88
|
+
.graview-bar-status[data-icon]>.graview-bar-status-words{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
|
|
89
|
+
}
|
|
90
|
+
@container graview-bar (max-width: 300px){
|
|
91
|
+
.graview-bar-row{gap:4px;padding:0 10px}
|
|
92
|
+
}`,ae={display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,minWidth:V,height:V,padding:0,borderRadius:8,border:"1px solid transparent",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",font:"inherit",fontSize:"0.875rem",cursor:"pointer",flex:"0 0 auto"};function Xr({brand:e,name:n,heading:r=1,home:t,faces:o,places:i,current:s,reach:p,tools:l,find:d=!0,description:u,findBox:g,onFind:c,scenePlaces:y,skips:b,named:S=!0,actions:v,appMenu:T=Zr,scheme:ge,share:f,status:P}){let z=(0,h.useRef)(null),B=te()?.who.size,[ie,ur]=(0,h.useState)(null),[tn,gr]=(0,h.useState)(null),[K,fr]=(0,h.useState)(!1),[ee,mr]=(0,h.useState)(!1),[hr,an]=(0,h.useState)(!1),[on,yr]=(0,h.useState)(null),[wr,vr]=(0,h.useState)(!0),fe=o?o.pages.current:!y,se=fe?{places:i,current:s,reach:p}:y,Me=se&&{...se,places:kn(se.places),here:se.places.find(m=>m.key===se.current)?.label},k=Me&&Me.places.length>0?Me:null,Oe=k?k.places.findIndex(m=>m.key===k.current):-1,sn=k?k.places.map(m=>m.primary===!1?"0":"1").join(""):"",j=(0,h.useCallback)(()=>{let m=z.current;if(!m)return;let H=ft(m,Oe,sn);H!==void 0&&yr(H)},[Oe,sn]);(0,h.useLayoutEffect)(()=>{let m=z.current;if(!m)return;let H=()=>{let C=m.getBoundingClientRect().width;fr(C<pe),mr(C<Zn);let Er=m.querySelector("[data-graview-bar-host-ruler]");vr(C>=pe+(Er?.getBoundingClientRect().width??0)),m.style.setProperty("--graview-bar-width",`${Math.round(C)}px`),j()};H();let J=typeof document>"u"?void 0:document.fonts;if(J?.ready.then(j),J?.addEventListener?.("loadingdone",j),typeof ResizeObserver>"u")return()=>J?.removeEventListener?.("loadingdone",j);let X=new ResizeObserver(H);X.observe(m);for(let C of m.querySelectorAll(".graview-bar-tools > *"))X.observe(C);let ne=m.querySelector(".graview-bar-tools"),$=typeof MutationObserver>"u"||!ne?null:new MutationObserver(()=>{for(let C of ne.children)X.observe(C)});return $?.observe(ne,{childList:!0}),()=>{$?.disconnect(),X.disconnect(),J?.removeEventListener?.("loadingdone",j)}},[j]);let Re=(0,h.useRef)(c);Re.current=c,(0,h.useLayoutEffect)(()=>{Re.current?.(d&&ie?{slot:ie,compact:ee,own:tn}:null)},[d,ie,ee,tn]),(0,h.useLayoutEffect)(()=>()=>Re.current?.(null),[]);let br=(0,h.useCallback)(()=>{an(!0),requestAnimationFrame(()=>ie?.querySelector("input")?.focus())},[ie]),ln=(0,h.useRef)(null),me=(0,h.useRef)(!1),Fe=(0,h.useCallback)(()=>{an(!1),me.current&&(me.current=!1,requestAnimationFrame(()=>ln.current?.focus()))},[]),dn=(0,h.useRef)(null);(0,h.useEffect)(()=>{let m=dn.current;if(!m||!ee)return;let H=()=>!!m.querySelector("input")?.value,J=$=>{let C=$.relatedTarget;C instanceof Node&&m.contains(C)||H()||Fe()},X=$=>{$.key==="Escape"&&(me.current=!0)},ne=$=>{$.key==="Escape"&&queueMicrotask(()=>{!$.defaultPrevented||!H()?Fe():me.current=!1})};return m.addEventListener("focusout",J),m.addEventListener("keydown",X,!0),m.addEventListener("keydown",ne),()=>{m.removeEventListener("focusout",J),m.removeEventListener("keydown",X,!0),m.removeEventListener("keydown",ne)}},[ee,Fe]);let kr=r===!1?"span":`h${r}`,xr=t.href!==void 0?"a":"button",Sr=m=>H=>{!m||!rr(H)||(H.preventDefault(),m())},Pr=!fe,cn=k&&!K&&on!==null&&!(Oe<0&&k.here)?on.split(",").map(Number).filter(m=>m<k.places.length):null,he=k?(0,a.jsx)(ut,{places:k.places,current:k.current,here:k.here,reach:k.reach,scene:Pr,stands:cn}):null,Lr=k?k.places.map(m=>m.label).join(`
|
|
93
|
+
`):"";(0,h.useLayoutEffect)(j,[j,n,e,Lr,k?.current,fe,K,ee,d]);let pn=!!o||T.length>0||!!ge;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("header",{ref:z,className:"graview-bar","data-testid":"app-bar","data-graview-app-bar":"",...hr&&ee?{"data-finding":""}:{},children:[(0,a.jsx)("style",{children:Jr}),b,(0,a.jsxs)("div",{className:"graview-bar-row",children:[S?(0,a.jsxs)("div",{className:"graview-bar-app",children:[(0,a.jsx)(kr,{className:"graview-bar-name",children:(0,a.jsxs)(xr,{...t.href!==void 0?{href:t.href,onClick:Sr(t.go)}:{type:"button",onClick:t.go},"data-testid":"app-home",...t.current?{"aria-current":"page"}:{},title:u?`${n} \u2014 ${u}`:`${n} \u2014 home`,className:"graview-bar-home",children:[(0,a.jsx)(Ge,{brand:e,size:20}),(0,a.jsx)("span",{className:"graview-bar-app-name","data-testid":"app-name",children:n})]})}),pn?(0,a.jsx)(qn,{name:n,faces:o,rows:T,scheme:ge}):null]}):pn?(0,a.jsx)(qn,{name:n,faces:o,rows:T,scheme:ge}):null,(0,a.jsx)("div",{className:"graview-bar-mid",...cn?{"data-places":"standing"}:!K&&he?{"data-place":""}:{},children:K?null:he}),!K&&k&&k.places.length>1?(0,a.jsxs)("span",{className:"graview-bar-ruler","aria-hidden":"true","data-graview-bar-ruler":"",children:[k.places.map(m=>(0,a.jsx)("span",{className:"graview-bar-at",children:m.label},m.key)),(0,a.jsxs)("span",{className:"graview-bar-at",children:[Ee,(0,a.jsx)(Ue,{})]})]}):null,v&&v.length>0?(0,a.jsx)("span",{className:"graview-bar-ruler","aria-hidden":"true","data-graview-bar-host-ruler":"",children:(0,a.jsx)("span",{className:"graview-bar-host",children:v.map(m=>(0,a.jsxs)("span",{className:"graview-bar-host-action",...m.iconOnly&&m.icon?{"data-icon-only":""}:{},children:[m.icon?(0,a.jsx)(Je,{icon:m.icon}):null,(0,a.jsx)("span",{className:"graview-bar-host-words",children:m.label})]},m.label))})}):null,S?(0,a.jsx)("span",{className:"graview-bar-ruler","aria-hidden":"true",children:(0,a.jsx)("span",{className:"graview-bar-name",children:n})}):null,(0,a.jsxs)("div",{className:"graview-bar-tools",children:[d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",className:"graview-bar-find-open",ref:ln,"data-testid":"app-find-open","aria-label":"Find",title:"Find",onClick:br,style:{...ae,display:void 0},children:(0,a.jsx)(st,{})}),(0,a.jsxs)("div",{ref:dn,className:"graview-bar-find","data-testid":"app-find",children:[(0,a.jsx)("div",{ref:ur,className:"graview-bar-find-slot",children:g}),(0,a.jsx)(ot,{})]})]}):null,(0,a.jsx)("div",{ref:gr,className:"graview-bar-own","data-graview-bar-own":""}),v&&v.length>0?(0,a.jsx)(ct,{actions:v,folded:!(v.length<=2&&v.every(m=>m.iconOnly&&m.icon))&&(K||!wr)}):null,P?(0,a.jsx)(nt,{status:P}):null,B?(0,a.jsx)(h.Suspense,{fallback:null,children:(0,a.jsx)(Gr,{scene:!fe,compact:K})}):null,f?(0,a.jsx)(et,{share:f}):null,(0,a.jsx)(qr,{}),l]})]})]}),K&&he?(0,a.jsx)("div",{className:"graview-bar-line","data-graview-place-line":"","data-testid":"app-place-line",children:he}):null]})}var Zr=[],Ye="graview:go-to-face";function qn({name:e,faces:n,rows:r,scheme:t}){let o=I("app-menu",{align:"start"}),i=()=>E.prefetch(),s=(0,h.useRef)(null),p=(0,h.useRef)(n);return p.current=n,(0,h.useEffect)(()=>{let l=s.current;if(!l)return;let d=u=>{let g=p.current?.[u.detail];!g||g.current||(g.reach?.(),g.go())};return l.addEventListener(Ye,d),()=>l.removeEventListener(Ye,d)},[]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{type:"button",className:"graview-bar-menu-open","data-testid":"app-menu-open",...o.trigger,ref:l=>{o.trigger.ref(l),s.current=l},onClick:o.toggle,onPointerEnter:i,onFocus:i,"aria-label":`${e} \u2014 app menu`,title:"App menu",...n?{"data-scene":n.scene.label,"data-pages":n.pages.label}:{},children:(0,a.jsx)(Ue,{})}),(0,a.jsx)("div",{...o.pane,"data-testid":"app-menu",hidden:!o.open,className:"graview-bar-list graview-app-menu",style:D,"aria-label":`${e} \u2014 app menu`,role:"group",children:o.open?(0,a.jsx)(h.Suspense,{fallback:null,children:(0,a.jsx)(jr,{faces:n,rows:r,scheme:t,close:()=>o.setOpen(!1)})}):null})]})}function nr({mark:e="lock"}){return e==="lock"?(0,a.jsxs)(Y,{size:14,children:[(0,a.jsx)("rect",{x:"2.75",y:"6.25",width:"8.5",height:"6",rx:"1.25",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),(0,a.jsx)("path",{d:"M4.75 6.25 V4.5 a2.25 2.25 0 0 1 4.5 0 V6.25",fill:"none",stroke:"currentColor",strokeWidth:"1.3"})]}):e==="globe"?(0,a.jsxs)(Y,{size:14,children:[(0,a.jsx)("circle",{cx:"7",cy:"7",r:"5.25",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),(0,a.jsx)("path",{d:"M1.75 7 H12.25 M7 1.75 C4.75 4.5 4.75 9.5 7 12.25 M7 1.75 C9.25 4.5 9.25 9.5 7 12.25",fill:"none",stroke:"currentColor",strokeWidth:"1.1"})]}):e==="people"?(0,a.jsxs)(Y,{size:14,children:[(0,a.jsx)("circle",{cx:"5",cy:"5",r:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),(0,a.jsx)("path",{d:"M1.5 12 a3.5 3.5 0 0 1 7 0",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),(0,a.jsx)("circle",{cx:"10",cy:"5.5",r:"1.6",fill:"none",stroke:"currentColor",strokeWidth:"1.2"}),(0,a.jsx)("path",{d:"M9.5 9 a3 3 0 0 1 3.5 3",fill:"none",stroke:"currentColor",strokeWidth:"1.2"})]}):(0,a.jsx)(Je,{icon:e})}function et({share:e}){let n=I("share"),r=`graview-share-said-${(0,h.useId)().replace(/:/g,"")}`,t=e.label??"Share",o=e.link;return(0,a.jsxs)("div",{className:"graview-bar-share-at",children:[(0,a.jsxs)("button",{type:"button",className:"graview-bar-tool graview-bar-share","data-testid":"app-share-open",...n.trigger,onClick:n.toggle,"aria-describedby":r,title:e.description,children:[(0,a.jsx)(nr,{mark:e.mark}),(0,a.jsx)("span",{className:"graview-bar-share-words",children:t})]}),(0,a.jsx)("span",{id:r,className:"graview-bar-said",children:e.description}),(0,a.jsxs)("div",{...n.pane,"data-testid":"app-share",hidden:!n.open,className:"graview-bar-share-pane",style:D,role:"group","aria-label":t,children:[(0,a.jsx)("p",{"data-testid":"app-share-said",children:e.description}),o||e.secondLink?(0,a.jsxs)("div",{className:"graview-bar-share-links",children:[o?(0,a.jsx)(Yn,{link:o,testId:"app-share-link",close:()=>n.setOpen(!1)}):null,e.secondLink?(0,a.jsx)(Yn,{link:e.secondLink,testId:"app-share-second-link",close:()=>n.setOpen(!1)}):null]}):null]})]})}function nt({status:e}){let n=`graview-status-said-${(0,h.useId)().replace(/:/g,"")}`,r=(0,a.jsxs)(a.Fragment,{children:[e.icon?(0,a.jsx)(nr,{mark:e.icon}):null,(0,a.jsx)("span",{className:"graview-bar-status-words",children:e.label})]}),t={className:"graview-bar-tool graview-bar-status","data-testid":"app-status",title:e.description,"aria-describedby":n,...e.icon?{"data-icon":""}:{}};return(0,a.jsxs)(a.Fragment,{children:[e.href!==void 0?(0,a.jsx)("a",{...t,href:e.href,...e.target?{target:e.target,rel:"noopener"}:{},children:r}):(0,a.jsx)("span",{...t,tabIndex:0,children:r}),(0,a.jsx)("span",{id:n,className:"graview-bar-said",children:e.description})]})}function Yn({link:e,testId:n,close:r}){return e.href!==void 0?(0,a.jsx)("a",{href:e.href,"data-testid":n,...e.target?{target:e.target,rel:"noopener"}:{},onClick:()=>{e.onSelect?.(),r()},children:e.label}):(0,a.jsx)("button",{type:"button","data-testid":n,onClick:()=>{r(),e.onSelect?.()},children:e.label})}function rt(e){let n=e.querySelector(".graview-bar-row"),r=e.getBoundingClientRect();if(!n||!(r.width>0))return 0;let t=r.right-(parseFloat(getComputedStyle(n).paddingRight)||0),o=t;for(let i of n.querySelectorAll(":scope > *, .graview-bar-tools > *")){if(i.classList.contains("graview-bar-tools")||i.classList.contains("graview-bar-ruler")||i.classList.contains("graview-bar-said"))continue;let s=i.getBoundingClientRect();s.width>0&&(o=Math.max(o,s.right))}return Math.max(0,o-t)}function tt(e){let n=e.querySelector(".graview-bar-app"),r=e.querySelector(".graview-bar-ruler>.graview-bar-name");if(!n||!r)return 0;let t=s=>s?.getBoundingClientRect().width??0,o=t(n.firstElementChild)-t(e.querySelector(".graview-bar-app-name"))+t(r)+2,i=parseFloat(getComputedStyle(n).maxWidth)/100*(n.parentElement.clientWidth-2*n.offsetLeft)||1/0;return o>i+.5?null:Math.max(0,o-t(n))}var rr=e=>e.button===0&&!(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey);function at(){let e=globalThis.navigator?.platform??"";return/Mac|iPhone|iPad|iPod/.test(e)?"\u2318K":"Ctrl K"}function ot(){let e=_n(te()?.aiDesk);return(0,a.jsx)("span",{className:"graview-bar-find-keys","data-testid":"app-find-keys","aria-hidden":"true",children:e?"/":at()})}function Y({size:e,box:n=e,children:r}){return(0,a.jsx)("svg",{width:e,height:e,viewBox:`0 0 ${n} ${n}`,"aria-hidden":"true",focusable:"false",style:{flex:"0 0 auto"},children:r})}function it(){return(0,a.jsxs)(Y,{size:14,children:[(0,a.jsx)("path",{d:"M7 1.5 L12.5 4.5 L7 7.5 L1.5 4.5 Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"}),(0,a.jsx)("path",{d:"M1.5 7.5 L7 10.5 L12.5 7.5",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round",strokeLinecap:"round"})]})}function Ue(){return(0,a.jsx)(Y,{size:10,children:(0,a.jsx)("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}function st(){return(0,a.jsxs)(Y,{size:16,children:[(0,a.jsx)("circle",{cx:"7",cy:"7",r:"4.75",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,a.jsx)("path",{d:"M10.5 10.5 L14 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}function lt({place:e}){if(e.key===Z)return(0,a.jsx)(it,{});if(e.group==="home")return(0,a.jsx)(Y,{size:13,box:14,children:(0,a.jsx)("path",{d:"M2 6.5 L7 2 L12 6.5 V12 H2 Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})});let n=e.kind?`hsl(${Math.round(hn(e.kind))} 55% 52%`:"rgb(128 128 128";return(0,a.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:12,height:8,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",background:e.group==="lists"?`${n})`:`linear-gradient(${n}), ${n})) center / 6px 4px no-repeat, ${n} / 0.35)`}})}var dt=[{group:"home"},{group:"lists",heading:"Lists"},{group:"pictures",heading:"Pictures"}],Ee="More";function ct({actions:e,folded:n}){let r=I("host-actions",{popover:n}),t=e.map(i=>i.label).join(", "),o=i=>e.map(s=>(0,a.jsxs)("button",{type:"button",className:n?"graview-bar-host-action graview-bar-item":"graview-bar-host-action","data-testid":"host-bar-action",...!n&&s.iconOnly&&s.icon?{"data-icon-only":"",title:s.label}:{},onClick:()=>{i(),s.onSelect()},children:[s.icon?(0,a.jsx)(Je,{icon:s.icon}):null,(0,a.jsx)("span",{className:"graview-bar-host-words",children:s.label})]},s.label));return n?(0,a.jsxs)("div",{className:"graview-bar-host",children:[(0,a.jsx)("button",{type:"button",className:"graview-bar-host-action","data-testid":"host-bar-actions-open","data-folded":"",...r.trigger,onClick:r.toggle,"aria-label":`${Ee} \u2014 ${t}`,title:t,children:(0,a.jsxs)(Y,{size:16,children:[(0,a.jsx)("circle",{cx:"3",cy:"8",r:"1.4",fill:"currentColor"}),(0,a.jsx)("circle",{cx:"8",cy:"8",r:"1.4",fill:"currentColor"}),(0,a.jsx)("circle",{cx:"13",cy:"8",r:"1.4",fill:"currentColor"})]})}),(0,a.jsx)("div",{...r.pane,"data-testid":"host-bar-actions",hidden:!r.open,className:"graview-bar-list",style:D,"aria-label":"From the host",children:o(()=>r.setOpen(!1))})]}):(0,a.jsx)("div",{className:"graview-bar-host","data-testid":"host-bar-actions-standing",role:"group","aria-label":"From the host",children:o(()=>{})})}function Je({icon:e}){let n=ce(G(e)?e:void 0);return n?(0,a.jsx)("span",{className:"graview-bar-host-mark","aria-hidden":"true",dangerouslySetInnerHTML:n}):(0,a.jsx)("span",{className:"graview-bar-host-mark","aria-hidden":"true",children:e})}function tr({place:e,current:n,reach:r,standing:t,done:o}){let i=e.key===n,s=r.href?.(e.path);return(0,a.jsxs)(s!==void 0?"a":"button",{className:t?"graview-bar-at":"graview-bar-item","data-testid":`app-place-${e.key}`,"data-place-path":e.path,...i?{"aria-current":"page"}:{},...s!==void 0?{href:s}:{type:"button"},onClick:l=>{o(),r.go&&(s!==void 0&&!rr(l)||(l.preventDefault(),r.go(e)))},children:[t?null:(0,a.jsx)("span",{className:"graview-bar-mark",children:(0,a.jsx)(lt,{place:e})}),t&&i?(0,a.jsx)("span",{"data-testid":"app-place-current",children:e.label}):(0,a.jsx)("span",{children:e.label})]})}function pt({places:e,current:n,reach:r,id:t,done:o}){return(0,a.jsx)(a.Fragment,{children:dt.map(({group:i,heading:s})=>{let p=e.filter(d=>d.group===i);if(p.length===0)return null;let l=`${t}-${i}`;return(0,a.jsxs)("div",{role:"group",...s?{"aria-labelledby":l}:{"aria-label":p[0].label},"data-place-group":i,children:[s?(0,a.jsx)("p",{id:l,children:s}):null,(0,a.jsx)("ul",{children:p.map(d=>(0,a.jsx)("li",{children:(0,a.jsx)(tr,{place:d,current:n,reach:r,standing:!1,done:o})},d.key))})]},i)})})}function ut({places:e,current:n,here:r,reach:t,scene:o,stands:i}){let s=I("places"),p=(0,h.useRef)(i);s.open||(p.current=i);let l=p.current,u=e.find(v=>v.key===n)?.label??r??"Places",g=l?e.filter((v,T)=>!l.includes(T)):e,c=gt(e,n,o),y=te(),b=y?.keptViews?.current(),S=!!(b&&(b.removed.length>0||y.views.places().some(v=>v.hidden)||b.may.lenses&&(y.views.arrangement?.()?.hide?.length??0)>0));return(0,a.jsxs)("nav",{className:l?"graview-bar-places":"graview-bar-place-at","aria-label":o?"What the scene shows":"The app\u2019s places",...l?{"data-testid":"app-places-standing"}:{},...c,children:[l?.map(v=>(0,a.jsx)(tr,{place:e[v],current:n,reach:t,standing:!0,done:()=>{}},e[v].key)),g.length>0||S?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{type:"button",className:l?"graview-bar-at":"graview-bar-place","data-testid":"app-places-open",...s.trigger,onClick:s.toggle,"aria-label":l?`${Ee} \u2014 ${g.length} more ${o?"pictures":"places"}`:`${u} \u2014 ${o?"what the scene shows":"every place"}`,title:l?g.map(v=>v.label).join(", "):u,children:[l?Ee:(0,a.jsx)("span",{className:"graview-bar-place-words","data-testid":"app-place-current",children:u}),(0,a.jsx)(Ue,{})]}),(0,a.jsxs)("div",{...s.pane,"data-testid":"app-places",hidden:!s.open,className:"graview-bar-list",style:D,children:[(0,a.jsx)(pt,{places:g,current:n,reach:t,id:s.pane.id,done:()=>s.setOpen(!1)}),S&&s.open?(0,a.jsx)(h.Suspense,{fallback:null,children:(0,a.jsx)(Kr,{id:s.pane.id,scene:o,reach:t,done:()=>s.setOpen(!1)})}):null]})]}):null]})}function gt(e,n,r){let t=te()?.setMenuAt,o=i=>{let s=i.target.closest?.("[data-place-path],[data-testid=app-places-open]");if(!s||!t)return;let p={at:0};i.type==="pointerdown"?document.addEventListener("pointerup",()=>p.at||=Date.now(),{once:!0}):i.preventDefault();let l=i.nativeEvent;E.load().then(d=>d.placeGesture(l,s,e,n,r,t,p),String)};return{onContextMenu:i=>i.shiftKey||o(i),onKeyDown:i=>(i.key==="ContextMenu"||i.key==="F10"&&i.shiftKey)&&o(i),onPointerDown:i=>i.pointerType!=="mouse"&&i.isPrimary&&o(i)}}function ft(e,n,r){let t=e.querySelector("[data-graview-bar-ruler]"),o=e.querySelector(".graview-bar-mid");if(!t||!o)return null;let i=e.querySelector(".graview-bar-find");if(i?.matches(":focus-within"))return;if(e.getBoundingClientRect().width<pe)return null;let s=tt(e);if(s===null)return null;let p=[...t.children].map(y=>y.getBoundingClientRect().width),l=p.pop()??0,d=o.getBoundingClientRect().left+s,u=i&&getComputedStyle(i).display!=="none"?i.getBoundingClientRect():void 0,g=(u&&u.width>0?u.right-d-(parseFloat(getComputedStyle(i).minWidth)||0)-16:o.getBoundingClientRect().width-s)-rt(e),c=[...r].map(y=>y!=="0");return er({widths:p,current:n,room:Math.floor(g),more:l,primary:c})?.join(",")??null}var mt=e=>`graview:lenses:${e}`,ht=(e,n)=>e?.name??n.kinds.join(",");function Xe(e){try{let n=JSON.parse(localStorage.getItem(mt(e))??"[]");return Array.isArray(n)?n.filter(r=>typeof r?.title=="string"&&typeof r.lens=="string"):[]}catch{return[]}}var Q=w(O(),1);var A=w(x(),1);function yt({profileHref:e,keeping:n,hostActions:r=wt,signature:t=!1}){let{store:o,principal:i,seats:s,people:p}=Se(),l=I("profile"),d=l.open,[u,g]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>kt(Ae),[]),d&&!u&&g(!0),(0,Q.useEffect)(()=>{d&&Ae()},[d]);let c=i.id===void 0?void 0:o.graph.getNode(i.id),y=c===void 0?i.id===void 0?"Nobody in particular":gn(i,{graph:o.graph,schema:o.schema,seats:s,people:p}):ye(o.schema.tryDefinition(c.kind),c);return(0,A.jsxs)("div",{style:{position:"relative"},children:[(0,A.jsx)("button",{type:"button","data-testid":"profile-button",...l.trigger,onClick:l.toggle,onPointerEnter:Ae,onFocus:Ae,"aria-label":`${y} \u2014 you, your seat and your settings`,title:`${y} \u2014 you, your seat and your settings`,style:{...ae,borderRadius:999},children:(0,A.jsx)("span",{"aria-hidden":"true","data-testid":"profile-mark",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:V-4,height:V-4,borderRadius:999,fontSize:"0.8125rem",fontWeight:600,background:"var(--graview-panel-muted)",color:"var(--graview-ink)",border:"1px solid var(--graview-edge)"},children:xt(y)})}),(0,A.jsxs)("section",{...l.pane,"aria-label":"Profile","data-testid":"profile","data-graview-offstage":"",hidden:!d,style:{...D,width:280,maxWidth:"calc(100vw - 32px)",maxHeight:"min(62cqh, 520px)",overflowY:"auto",overflowX:"hidden",display:d?"grid":"none",gap:12,padding:12,borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[u?(0,A.jsx)(Q.Suspense,{fallback:null,children:(0,A.jsx)(vt,{part:"top",name:y,me:c,profileHref:e,hostActions:r,close:()=>l.setOpen(!1)})}):null,(0,A.jsxs)("div",{className:"graview-profile-keeping","data-testid":"profile-keeping",style:Pt,children:[(0,A.jsx)("span",{style:St,children:"Keeping this app"}),n]}),u?(0,A.jsx)(Q.Suspense,{fallback:null,children:(0,A.jsx)(bt,{part:"rest",name:y,me:c,hostActions:r,signature:t,close:()=>l.setOpen(!1)})}):null]})]})}var wt=[],Ae=()=>E.prefetch(),vt=E.part((e,n)=>(0,A.jsx)(e.ProfilePane,{...n}),{what:"The rest of your menu"}),bt=E.part((e,n)=>(0,A.jsx)(e.ProfilePane,{...n}),{quiet:!0});function kt(e){let n=()=>{(typeof navigator>"u"||navigator.onLine!==!1)&&e()},r=globalThis;if(r.requestIdleCallback){let o=r.requestIdleCallback(n,{timeout:5e3});return()=>r.cancelIdleCallback?.(o)}let t=setTimeout(n,2500);return()=>clearTimeout(t)}function xt(e){return(e.trim()[0]??"?").toUpperCase()}var St={fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},Pt={paddingTop:10,borderTop:"1px solid var(--graview-edge)"};function Lt(e){return!(e==="hidden"||e===!1)}var ue=w(O(),1);var ar="Everything",Be="scene:district:",Ne=e=>`scene:${e.kind}:${e.as}`;function or(e){let{view:n}=e,r=e.places.filter(c=>!e.hidden.has(c.kind)),t=le(r),o=(c,y)=>{if(c===Z)return De(Ie(y,!0),"view",null);if(c.startsWith(Be))return Tn(De(Ie(y,!1),"view",null),c.slice(Be.length));let b=t.find(S=>Ne(S)===c);return b?Mn(y,b.over?.find(S=>y.focusId===de(S))??b.kind,b.as):null},i=n.within?.view,s=c=>n.focusId===de(c.kind)&&(i===void 0?r.filter(y=>y.kind===c.kind).at(-1)===c:i===c.as),p=r.find(c=>s(c)&&(i!==void 0||!n.overview)),l=p?t.find(c=>ve(c,p)):void 0,d=t.filter(c=>!c.hidden||c===l),u=l||n.overview||!n.focusId?void 0:Et(n.focusId,e);return{places:[{key:Z,label:ar,path:`${be}${xe(o(Z,ke))}`,group:"home"},...d.map(c=>({key:Ne(c),label:re(c,r,e.schema),path:`${be}${xe(o(Ne(c),ke))}`,group:"pictures",kind:c.kind,hidden:c.hidden})),...u?[{...u,path:`${be}${xe(o(u.key,ke))}`}]:[]],current:l?Ne(l):u?.key??Z,to:o}}function Et(e,n){let r=Cn(e);if(r.length>0)return r.some(o=>n.hidden.has(o))?void 0:{key:`${Be}${e}`,label:r.map(o=>we(n.schema,o)).join(" and "),group:"lists",kind:r[0],hidden:!0};let t=n.nameOf?.(e);return t?{key:`${Be}${e}`,label:t,group:"lists",hidden:!0}:void 0}function At(){let{store:e,views:n,hiddenKinds:r,principal:t}=Se(),{view:o,go:i}=Dn(),s=n.places(),p=(0,ue.useMemo)(()=>e.kindsKeptFrom(t),[e,t]),l=(0,ue.useMemo)(()=>g=>{let c=e.graph.getNode(g);if(!(!c||r.has(c.kind)||p.has(c.kind)))return ye(e.schema.tryDefinition(c.kind),c)},[e,r,p]),d=(0,ue.useMemo)(()=>or({places:s,hidden:r,view:o,schema:e.schema,nameOf:l}),[s,r,o,e.schema,l]),u=(0,ue.useMemo)(()=>({go:g=>{let c=d.to(g.key,o);c&&i(c)}}),[d,o,i]);return{places:d.places,current:d.current,reach:u}}var oe=w(O(),1);var F=w(x(),1),Nt=E.part((e,n)=>(0,F.jsx)(e.ProblemRows,{...n}),{what:"The problems",as:"li"}),Ze=()=>E.prefetch();function Bt({clean:e="All rules hold"}){let n=$n(),{set:r}=Vn(),t=n.length,[o,i]=(0,oe.useState)(!1),s=I("problems",{open:o&&t>0,onOpenChange:i}),p=s.open,l=ir(n,e);return(0,oe.useEffect)(()=>{if(t===0)return;let d=setTimeout(Ze,1500);return()=>clearTimeout(d)},[t>0]),(0,F.jsxs)("div",{style:{position:"relative",display:"inline-flex"},children:[(0,F.jsxs)("button",{type:"button","data-testid":"standing",...s.trigger,"aria-disabled":t===0?!0:void 0,"aria-label":l,onClick:t===0?void 0:s.toggle,onPointerEnter:t===0?void 0:Ze,onFocus:t===0?void 0:Ze,title:l,style:{...ae,position:"relative",cursor:t===0?"default":"pointer",color:t===0?"var(--graview-ink-muted)":en(n)},children:[(0,F.jsx)(sr,{tone:t===0?"var(--graview-good)":en(n)}),t>0?(0,F.jsx)("span",{className:"graview-bar-badge","data-testid":"standing-count","aria-hidden":"true",style:{background:en(n)},children:t>99?"99+":t}):null]}),p?(0,F.jsx)("ol",{...s.pane,"data-testid":"problems",style:{...D,width:300,maxHeight:"min(48cqh, 420px)",overflow:"auto",margin:0,padding:4,listStyle:"none",display:"grid",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:(0,F.jsx)(oe.Suspense,{fallback:null,children:(0,F.jsx)(Nt,{violations:n,pick:d=>{r(d.nodeIds),s.setOpen(!1)}})})}):null]})}function ir(e,n){return e.length===0?n:`${fn(e)} \u2014 open what is broken, and what would fix it`}var en=e=>e.some(n=>n.status==="could-not-judge"||n.status==="over-budget")?"var(--graview-bad)":"var(--graview-warn)";function sr({tone:e}){return(0,F.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,borderRadius:999,flex:"0 0 auto",background:e}})}function Tt(e,n,r=[]){if(e.focusId)return e.focusId;let o=(e.selection??[]).map(Hn).find(i=>i!==null)??r.find(i=>n.includes(i))??n[0]??null;return o===null?null:de(o)}var He=w(x(),1),Te=R(M(()=>(__graviewPreload(import.meta.url,["./chunk.IAEGJDF3.js","./chunk.YZPESGCP.js","./chunk.SY5ID44D.js","./chunk.GVT4UUQA.js","./chunk.O2OL6RQQ.js","./chunk.J6HF7IRQ.js","./chunk.LRNFE3UK.js","./chunk.EP6Q32WT.js","./chunk.QAM76AXV.js","./chunk.Z27NSSYL.js","./chunk.WEMUKZKH.js","./chunk.T27QKVKP.js","./chunk.WVUJXDXZ.js","./chunk.DWM7AR5Y.js","./chunk.6KJGRM7A.js","./chunk.WALVW3KJ.js","./chunk.SNHKYH72.js","./chunk.UGQYMN4J.js","./chunk.RG5G6YQD.js","./chunk.MIE4TJRW.js","./chunk.QRQ5WPZI.js","./chunk.RD2FSSLV.js","./chunk.37RFCHSS.js","./chunk.SO6NT5K7.js","./chunk.MUSMNKE4.js","./chunk.SJQPTDAT.js","./chunk.JQ63N4MZ.js","./chunk.Z3O2VZAJ.js","./chunk.QNP5OR3P.js","./chunk.4W57E7AX.js","./chunk.A5PSEU3W.js","./chunk.SDO3U72B.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.JKFVNQY7.js"))));function Ht(){return Te.load().then(()=>{})}var Ct=[{cardinality:"one",fidelity:"full",slot:"page"},{cardinality:"one",fidelity:"summary",slot:"card"},{cardinality:"one",fidelity:"glyph",slot:"row"},{cardinality:"many",fidelity:"full"},{cardinality:"many",fidelity:"summary"},{cardinality:"many",fidelity:"glyph"}];function Mt({schema:e,specs:n,kind:r,view:t}){let o=Te.current.frameworkViews(e,n).lookup(r,{cardinality:t.cardinality,fidelity:t.fidelity});return o?(0,He.jsx)(o,{...t}):null}var Ot=Te.part((e,n)=>(0,He.jsx)(Mt,{...n}),{what:"This view"});function lr(e,n,r){for(let t of n.kinds){let o=r?.[t];for(let i of Ct){let s=l=>(0,He.jsx)(Ot,{schema:n,specs:r,kind:t,view:l}),p=i.slot!==void 0&&o?.[i.slot]!==void 0;p&&(s.says=(l,d)=>Te.current?.frameworkViews(n,r).lookup(t,{cardinality:i.cardinality,fidelity:i.fidelity})?.says?.(l,d)),e.register(t,{cardinality:i.cardinality,fidelity:i.fidelity},p?s:Rn(s))}}return e}function Rt(e,n){return lr(Fn(e),e,n)}var nn=w(O(),1);var W=w(x(),1),dr=R(M(()=>(__graviewPreload(import.meta.url,["./chunk.STPA7HBK.js","./chunk.6NG76MDA.js","./chunk.35KMZHB7.js","./chunk.DEKRFTRN.js","./chunk.BKYZSV2Y.js","./chunk.IAEGJDF3.js","./chunk.YZPESGCP.js","./chunk.SY5ID44D.js","./chunk.GVT4UUQA.js","./chunk.5R744JGZ.js","./chunk.O2OL6RQQ.js","./chunk.J6HF7IRQ.js","./chunk.LRNFE3UK.js","./chunk.HJCQ6I3S.js","./chunk.YCD4JSXD.js","./chunk.ZG5VGP5U.js","./chunk.EP6Q32WT.js","./chunk.QAM76AXV.js","./chunk.Z27NSSYL.js","./chunk.WEMUKZKH.js","./chunk.T27QKVKP.js","./chunk.URQTF5SY.js","./chunk.BIDL7GQD.js","./chunk.LP2ZMAT2.js","./chunk.MSAYU25L.js","./chunk.EGPCVMDU.js","./chunk.H3EGBDW2.js","./chunk.Q5WEOX3Q.js","./chunk.6SJEZWH3.js","./chunk.6N4PE3U5.js","./chunk.B7KZBT27.js","./chunk.WVUJXDXZ.js","./chunk.DWM7AR5Y.js","./chunk.6KJGRM7A.js","./chunk.WALVW3KJ.js","./chunk.SNHKYH72.js","./chunk.UGQYMN4J.js","./chunk.RG5G6YQD.js","./chunk.MIE4TJRW.js","./chunk.QRQ5WPZI.js","./chunk.RD2FSSLV.js","./chunk.37RFCHSS.js","./chunk.SO6NT5K7.js","./chunk.MUSMNKE4.js","./chunk.SJQPTDAT.js","./chunk.JQ63N4MZ.js","./chunk.Z3O2VZAJ.js","./chunk.QNP5OR3P.js","./chunk.4W57E7AX.js","./chunk.A5PSEU3W.js","./chunk.SDO3U72B.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.NXZL5CA2.js"))));function Ft({lens:e,view:n}){let r=dr.current.declaredLensView(e);return(0,W.jsx)(r,{...n})}var Vt=dr.part((e,n)=>(0,W.jsx)(Ft,{...n}),{what:"This picture"});function $t(e){let n=t=>(0,W.jsx)(nn.Suspense,{fallback:null,children:(0,W.jsx)(Vt,{lens:e,view:t})});e.lens==="blocks"&&(n.flows=!0);let r=e.lens==="blocks"?e.options.blocks?.[0]:void 0;return typeof r?.headline=="string"&&(n.lede=r),e.create===!1&&(n.creates=!1),n}var cr=R(M(()=>(__graviewPreload(import.meta.url,["./chunk.IAEGJDF3.js","./chunk.YZPESGCP.js","./chunk.SY5ID44D.js","./chunk.GVT4UUQA.js","./chunk.O2OL6RQQ.js","./chunk.J6HF7IRQ.js","./chunk.LRNFE3UK.js","./chunk.EP6Q32WT.js","./chunk.QAM76AXV.js","./chunk.Z27NSSYL.js","./chunk.WEMUKZKH.js","./chunk.T27QKVKP.js","./chunk.WVUJXDXZ.js","./chunk.DWM7AR5Y.js","./chunk.6KJGRM7A.js","./chunk.WALVW3KJ.js","./chunk.SNHKYH72.js","./chunk.UGQYMN4J.js","./chunk.RG5G6YQD.js","./chunk.MIE4TJRW.js","./chunk.QRQ5WPZI.js","./chunk.RD2FSSLV.js","./chunk.37RFCHSS.js","./chunk.SO6NT5K7.js","./chunk.MUSMNKE4.js","./chunk.SJQPTDAT.js","./chunk.JQ63N4MZ.js","./chunk.Z3O2VZAJ.js","./chunk.QNP5OR3P.js","./chunk.4W57E7AX.js","./chunk.A5PSEU3W.js","./chunk.SDO3U72B.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.3ZODN6BW.js"))));function Dt({blocks:e,view:n}){let r=cr.current.homeView(e);return(0,W.jsx)(r,{...n})}var It=cr.part((e,n)=>(0,W.jsx)(Dt,{...n}),{what:"The home"});function _t(e){let n=r=>(0,W.jsx)(nn.Suspense,{fallback:null,children:(0,W.jsx)(It,{blocks:e,view:r})});return Object.defineProperty(n,Symbol.for("graview.home-blocks"),{value:!0}),n}function Wt(e,n){return n.home&&n.home.length>0&&e.home?.(_t(n.home)),pr(e,n),e.arrange?.(n.pages),e}function pr(e,n,r){for(let t of Pn(n).drawn){if(r&&e.places().some(s=>s.title===t.title))continue;let o=$t(t),i={title:t.title,lens:t.lens,...t.across?{across:t.across}:{},...r?{beside:r}:{},...t.hidden?{hidden:!0}:{},over:t.kinds,...r?{}:{declared:!0}};for(let s of t.kinds)e.register(s,{cardinality:"many",fidelity:"full"},o,i),e.register(s,{cardinality:"many",fidelity:"summary"},o,i)}}function zt(e,n,r){r.length>0&&pr(e,{schema:n,lenses:r.map(({lens:t,...o})=>({...o,name:t}))},!0)}function Kt(e,n,r){zt(e,n,Xe(r))}var U=w(O(),1),Ce=w(x(),1);var rn=e=>`graview:first-look:${e}`;function jt(e,n){if(e.seen!==void 0)try{return typeof e.seen=="function"?e.seen():e.seen}catch{return!0}try{return window.localStorage.getItem(rn(n))!==null}catch{return!1}}function Gt(e,n){if(e.seen===void 0)try{window.localStorage.setItem(rn(n),"seen")}catch{}}var qt=R(M(()=>(__graviewPreload(import.meta.url,["./chunk.A5PSEU3W.js","./chunk.SDO3U72B.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.P2EKKKK2.js")))),Yt=qt.part((e,n)=>{let r=e.FirstLookHints;return(0,Ce.jsx)(r,{...n})},{quiet:!0});function Qt({firstLook:e,root:n,app:r}){let t=(0,U.useRef)(null);t.current=e===!0?{}:e||null;let[o,i]=(0,U.useState)(()=>t.current!==null&&typeof window<"u"&&!jt(t.current,r)),s=(0,U.useCallback)(p=>{if(i(!1),p===null)return;let l=t.current??{};Gt(l,r),l.onDone?.(p)},[r]);return!o||t.current===null?null:(0,Ce.jsx)(U.Suspense,{fallback:null,children:(0,Ce.jsx)(Yt,{root:n,steps:t.current.steps??[],onEnd:s})})}export{Ut as a,Pe as b,Jt as c,Nr as d,Xt as e,_n as f,Zt as g,ce as h,Wr as i,zr as j,Hr as k,Cr as l,Le as m,Mr as n,Or as o,Rr as p,Vr as q,$r as r,Dr as s,E as t,Yr as u,Qr as v,Jn as w,Ur as x,ae as y,Xr as z,Ye as A,yt as B,Lt as C,At as D,mt as E,ht as F,Xe as G,Bt as H,ir as I,sr as J,Tt as K,Wt as L,zt as M,Kt as N,Ht as O,Rt as P,Qt as Q};
|
|
@@ -1 +1 @@
|
|
|
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{l as C}from"./chunk.
|
|
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{l as C}from"./chunk.RD2FSSLV.js";import{j as T}from"./chunk.SJQPTDAT.js";import{G as b,Oa as Y,W as R,c as K,ea as v,fa as z,ga as q,x as $}from"./chunk.A5PSEU3W.js";import{C as L,Qb as j,Zb as B,fc as H,od as G,pd as U,qc as I,yb as W}from"./chunk.ZEZUKRC6.js";import{b as m}from"./chunk.AJZBJBMO.js";function Q(e,n,t={}){let o=e.graph.getNode(n);if(!o)return[];let i=t.principal?new Set(e.permittedMutations(t.principal).map(s=>s.name)):void 0,c=o.kind,p=e.schema.tryDefinition(c);if(!p)return[];let r=e.seenFor,a=r?j.keptFrom?.(e,r)?.(o):void 0,d=new Map;for(let s of e.allMutations()){let l=s.subject;if(!l||!(l.kinds==="*"||l.kinds.includes(c))||i&&!i.has(s.name))continue;let h=s.input.shape??{};for(let u of I(s,p)){if(a?.(u)||!B(s,e.schema,e.graph,n,u,r&&W(r).id))continue;let M=u in h,_=[];for(let g of Object.keys(h)){if(g===l.arg||g===u||ie(h[g]))continue;let S=H(s.input).find(E=>E.name===g);_.push({name:g,...S?{kinds:S.kinds}:{},...S?{candidates:S.kinds.includes("*")?e.graph.allNodes().map(E=>E.id):S.kinds.flatMap(E=>e.graph.nodesOfKind(E).map(oe=>oe.id))}:{},shape:T(s.input,g)})}let re={field:u,mutation:s.name,title:s.title??s.name,shape:M?T(s.input,u):{type:"unknown"},takesValue:M,alternatives:[],open:_,clearable:M&&(s.clearable?.includes(u)??!1),call:g=>({name:s.name,args:M?{[l.arg]:n,[u]:g}:{[l.arg]:n}})};d.set(u,[...d.get(u)??[],re])}}return[...d.values()].map(s=>{let l=[...s.filter(u=>u.takesValue),...s.filter(u=>!u.takesValue)],[w,...h]=l;return{...w,alternatives:h}})}function ie(e){let n=L(e)?.type;return n==="optional"||n==="default"||n==="nullable"}var O=m(b(),1);function Oe(e){let{store:n,principal:t}=v(),o=q(),i=(0,O.useMemo)(()=>e===null?[]:Q(n,e,{principal:t}),[n,e,o,t]),c=(0,O.useCallback)((p,r,a={})=>{let d=p.call(r);n.apply({name:d.name,args:{...d.args,...a}},{author:t})},[n,t]);return{fields:i,commit:c}}var J=m(b(),1);function ln(){let{brand:e}=v(),n=e?.kit;return(0,J.useMemo)(()=>G(n),[n])}function un(e,n){let t=U(e,n),o={...t.color!==void 0?{color:t.color}:{},...t.pattern!==void 0?{pattern:t.pattern}:{},...t.width!==void 0?{width:t.width}:{},...t.cap!==void 0?{cap:t.cap}:{},...t.opacity!==void 0?{opacity:t.opacity}:{}};return{connector:t,style:C(n,{[n]:o})}}var Z=m(b(),1);var x=m(R(),1);function ae(e){let n=e?.hint;return typeof n=="string"&&n.length>0?n:void 0}function se(e){if(e instanceof Error&&e.message)return e.message;let n=String(e);return n==="[object Object]"?"The view threw without a message.":n}var X=class extends Z.Component{static contextType=Y;state={};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,t){console.error(`[graview] the ${this.props.view??"view"} of ${this.props.kind} threw while rendering`,n,t.componentStack),this.context?.(n,{module:"@graview/react"})}render(){let{error:n}=this.state;if(!n)return this.props.children;let t=ae(n);return(0,x.jsxs)("div",{role:"alert","data-graview-view-error":this.props.kind,style:{display:"flex",flexDirection:"column",gap:"0.375rem",padding:"var(--graview-pad, 12px)",height:"100%",overflow:"auto",boxSizing:"border-box",borderRadius:"var(--graview-radius-sm, 6px)",background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)",font:"var(--graview-font-body, 13px/1.45 system-ui)",fontSize:"0.875rem",lineHeight:1.45},children:[(0,x.jsx)("strong",{style:{color:"var(--graview-warn, #b4462a)"},children:this.props.view?`${this.props.view} could not draw`:"This view could not draw"}),(0,x.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:this.props.kind}),(0,x.jsx)("span",{children:se(n)}),t?(0,x.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:t}):null]})}};var y=m(b(),1);var ne=m(R(),1),D=(0,y.createContext)([]);function gn({sections:e,children:n}){let t=(0,y.useContext)(D),o=(0,y.useMemo)(()=>[...t,...e.filter(i=>!t.includes(i))],[t,e]);return(0,ne.jsx)(D.Provider,{value:o,children:n})}function ee(){let e=(0,y.useContext)(D),n=z()?.menuSections;return(0,y.useMemo)(()=>n?[...e,...n.filter(t=>!e.includes(t))]:e,[e,n])}function hn(){let e=ee();return(0,y.useCallback)(n=>{for(let t of e)try{t(n)?.prepare?.()}catch{}},[e])}function xn(e){let n=ee();if(e===null||n.length===0)return{start:[],end:[]};let t=n.flatMap(o=>{try{let i=o(e);return i&&((i.items?.length??0)>0||i.render||i.mode)?[i]:[]}catch{return[]}});return{start:t.filter(o=>o.at==="start"),end:t.filter(o=>o.at!=="start")}}var V=new WeakMap;function bn(e,n){n?V.set(e,n):V.delete(e)}function vn(e){return e?V.get(e):void 0}var k,de,N=new Set;function Sn(e){N.add(e)}function En(){return de??=Promise.all([(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.Y7QDQ3WF.js")),...[...N].map(e=>e())]).then(([e])=>void(k=e.sectionUnder))}function kn(e){return e&&k?k(e):void 0}var Pn=()=>k===void 0&&N.size>0,Mn=e=>k===void 0&&e?.getRootNode()?.host?.hasAttribute("data-worker-view")===!0;var ce=m(b(),1);function An(){return v().activity}var A=(e,n)=>e.length*n*.58;var le=156,ue=2,P=le-18,pe=7.1,fe=16;function me(e,n){let t=0,o=P;for(let i of e.split(" ")){let c=n(i),p=o+n(" ")+c;if(p<=P)o=p;else{let r=Math.ceil(c/P)||1;t+=r,o=c-(r-1)*P}}return t}var ye=16.25,te=27,ge=(e,n)=>{let t=Math.ceil(e.length*pe/P);return n?Math.max(te,Math.ceil(Math.max(t,me(e,n))*ye)+6):Math.max(te,t*fe+6)};function Dn(e,n,t){return e.length===0?0:10+e.reduce((o,i)=>o+ge(i,t),0)+(e.length-1)*ue}var he=27,xe=8,Vn=4,we=64,Nn=e=>Math.max(1,Math.min(xe,e)),Fn=e=>e*he+we;var f=m(b(),1);function jn(e,{units:n,target:t=0,legibleAt:o=260}){let[i,c]=(0,f.useState)(n);(0,f.useEffect)(()=>{let r=e.current;if(r===null||typeof ResizeObserver>"u")return;let a=new ResizeObserver(([d])=>{let s=d?.contentRect.width??0;s>0&&c(s)});return a.observe(r),()=>a.disconnect()},[e]);let p=i/n;return{scale:p,width:i,touchable:p*t>=24,legible:i>=o}}function Bn(e="--graview-font-body",n="sans-serif"){let t=(0,f.useRef)(void 0),o=(0,f.useMemo)(()=>{if(typeof getComputedStyle!="function"||typeof document>"u")return n;let i=getComputedStyle(document.documentElement).getPropertyValue(e).trim();return i.length>0?i:n},[e,n]);return(0,f.useMemo)(()=>{t.current===void 0&&(t.current=typeof document>"u"?null:document.createElement("canvas").getContext("2d")??null);let i=t.current;return i===null?A:(c,p)=>{i.font=`${p}px ${o}`;let r=i.measureText(c).width;return r>0?r:A(c,p)}},[o])}var Hn=(0,f.createContext)(void 0);var F=3;function be(e){let n=K(e),t=n.focusId;if(!t)return null;if(n.within?.view){let[i]=$(t);if(i)return{at:`screen:${i}`,audience:!0}}return{at:t,audience:!1}}var ve=102,Se=32;function Un(e,n,t){let o=[],i=new Map,c=new Map,p=0;for(let r of e){let a=be(r.stop),d=a?n(a.at):null;if(!a||!d){r.name&&o.push({kind:"edge",presence:r,point:{x:t-8,y:ve+p++*Se}});continue}if(!r.name){let u=c.get(a.at);c.set(a.at,{n:(u?.n??0)+1,box:d});continue}let s=i.get(a.at)??[];if(s.push(r),i.set(a.at,s),s.length>F)continue;let l=d,w=s.length-1,h=a.audience?{x:l.x+l.width*.5+(w-1)*26,y:l.y+Math.min(l.height,24)}:{x:l.x+l.width*.5-26-w*26,y:l.y+l.height-4};o.push({kind:"person",presence:r,point:h,at:a.at,index:w,of:s.length,audience:a.audience})}for(let[r,a]of i){if(a.length<=F)continue;let d=n(r);d&&o.push({kind:"count",at:r,point:{x:d.x+d.width*.5+2*26+18,y:d.y+d.height-4},n:a.length-F})}for(let[r,{n:a,box:d}]of c)o.push({kind:"count",at:r,point:{x:d.x+d.width*.5+40,y:d.y+d.height-4},n:a});for(let r of e)if(r.name){if(r.robot?.at&&r.robot.mode!=="docked"){let a=n(r.robot.at);a&&o.push({kind:"robot",presence:r,point:{x:a.x+a.width/2+22,y:a.y+a.height-4},mode:r.robot.mode})}if(r.over){let a=n(r.over);a&&o.push({kind:"over",presence:r,box:a})}}return o}export{An as a,A as b,le as c,ue as d,te as e,Dn as f,he as g,Vn as h,we as i,Nn as j,Fn as k,jn as l,Bn as m,Q as n,Oe as o,ln as p,un as q,Un as r,X as s,gn as t,hn as u,xn as v,bn as w,vn as x,Sn as y,En as z,kn as A,Pn as B,Mn as C};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import{a as L,b as _,c as B,d as V,e as E,r as G,t as H,u as S,v as N,w as q,x as W,y as z,z as Q}from"./chunk.RD2FSSLV.js";import"./chunk.ZEZUKRC6.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var j=["drawElementImageToTexture","copyElementImageToTexture"],T=null,M=(r,e)=>r==="texture"?{texture:e}:{destination:{texture:e}};function ne(){return typeof globalThis>"u"?void 0:globalThis}function v(r,e){let t=[],n=ne(),s=!!(n?.navigator&&"gpu"in n.navigator);s||t.push("navigator.gpu is absent \u2014 WebGPU is unavailable.");let o=r??n?.GPUQueue?.prototype??void 0,i=null;if(o){for(let d of j)if(typeof o[d]=="function"){i=d;break}}i||t.push("No element-capture method on GPUQueue. Run Chromium 147+ with --enable-blink-features=CanvasDrawElement.");let c=e??n?.HTMLCanvasElement?.prototype??void 0,l=typeof c?.updateElementGeometry=="function";l||t.push("canvas.updateElementGeometry is absent \u2014 geometry cannot be reported.");let p=typeof c?.requestPaint=="function";p||t.push("canvas.requestPaint is absent \u2014 there is no capture-safe moment to hook.");let y=!1,h="unknown";if(typeof document<"u"){let d=document.createElement("canvas");y="layoutSubtree"in d||typeof d.captureElementImage=="function","layoutSubtree"in d?h="no":typeof d.captureElementImage=="function"&&(h="yes")}return{available:i!==null,captureMethod:i,geometrySync:l,hitTestFollowsGeometry:l?h:"no",layoutSubtree:y,paintEvents:p,webgpu:s,usable:s&&i!==null,notes:t}}var w=class extends Error{constructor(t){super(`HTML-in-Canvas is unavailable:
|
|
2
|
+
${t.notes.join(`
|
|
3
|
+
`)}`);this.capabilities=t;this.name="PlatformUnavailableError"}};function O(r,e,t){let n=r;for(let s of j){let o=n[s];if(typeof o=="function"){if(T){o.call(n,{source:e},M(T,t));return}try{o.call(n,{source:e},M("texture",t)),T="texture"}catch(i){if(!(i instanceof TypeError)||!/texture/i.test(i.message))throw i;o.call(n,{source:e},M("destination",t)),T="destination"}return}}throw new w(v(r))}function F(r,e=!0){e?r.setAttribute("drawable",""):r.removeAttribute("drawable")}function D(r){let e=r.changedElements;return e?new Set(Array.from(e)):null}function re(r,e){let t=r;if(typeof t.captureElementImage!="function")throw new w(v(void 0,r));return t.captureElementImage(e)}function U(r,e,t){let n=r;if(typeof n.updateElementGeometry!="function")throw new w(v(void 0,r));n.updateElementGeometry(e,t)}function ie(r,e){r.clearElementGeometry?.(e)}function m(r){r.requestPaint?.()}function I(r,e=!0){let t=r;e?t.setAttribute("content","drawable"):t.removeAttribute("content"),"layoutSubtree"in t?t.layoutSubtree=e:e?t.setAttribute("layoutsubtree",""):t.removeAttribute("layoutsubtree")}var R=`
|
|
4
|
+
struct Plane {
|
|
5
|
+
// x, y, width, height in canvas pixels, after the plane transform.
|
|
6
|
+
rect: vec4f,
|
|
7
|
+
// blur radius in texels, contrast falloff 0..1, shadow strength (cast by
|
|
8
|
+
// the view's own panel, so unused here), and the view's own opacity \u2014 which is how a node entering or leaving the scene
|
|
9
|
+
// fades rather than popping.
|
|
10
|
+
style: vec4f,
|
|
11
|
+
// canvas size in pixels, and the ground color's rgb packed as xyz.
|
|
12
|
+
canvas: vec4f,
|
|
13
|
+
ground: vec4f,
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@group(0) @binding(0) var<uniform> plane: Plane;
|
|
17
|
+
@group(0) @binding(1) var view_texture: texture_2d<f32>;
|
|
18
|
+
@group(0) @binding(2) var view_sampler: sampler;
|
|
19
|
+
|
|
20
|
+
struct VertexOut {
|
|
21
|
+
@builtin(position) position: vec4f,
|
|
22
|
+
@location(0) uv: vec2f,
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@vertex
|
|
26
|
+
fn vs_main(@builtin(vertex_index) index: u32) -> VertexOut {
|
|
27
|
+
// Two triangles, no vertex buffer: the quad is entirely a function of the
|
|
28
|
+
// plane rect, so nothing has to be uploaded per frame except the uniform.
|
|
29
|
+
var corners = array<vec2f, 6>(
|
|
30
|
+
vec2f(0.0, 0.0), vec2f(1.0, 0.0), vec2f(0.0, 1.0),
|
|
31
|
+
vec2f(0.0, 1.0), vec2f(1.0, 0.0), vec2f(1.0, 1.0),
|
|
32
|
+
);
|
|
33
|
+
let corner = corners[index];
|
|
34
|
+
let pixel = plane.rect.xy + corner * plane.rect.zw;
|
|
35
|
+
// Canvas pixels to clip space, y down.
|
|
36
|
+
let ndc = vec2f(
|
|
37
|
+
pixel.x / plane.canvas.x * 2.0 - 1.0,
|
|
38
|
+
1.0 - pixel.y / plane.canvas.y * 2.0,
|
|
39
|
+
);
|
|
40
|
+
var out: VertexOut;
|
|
41
|
+
out.position = vec4f(ndc, 0.0, 1.0);
|
|
42
|
+
out.uv = corner;
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
fn blurred(uv: vec2f, radius: f32) -> vec4f {
|
|
47
|
+
if (radius <= 0.0) {
|
|
48
|
+
return textureSample(view_texture, view_sampler, uv);
|
|
49
|
+
}
|
|
50
|
+
let size = vec2f(textureDimensions(view_texture, 0));
|
|
51
|
+
let step = radius / size;
|
|
52
|
+
var sum = vec4f(0.0);
|
|
53
|
+
var weight = 0.0;
|
|
54
|
+
// A 9-tap kernel: enough to read as depth-of-field at plane scale, cheap
|
|
55
|
+
// enough to run on every capture every frame.
|
|
56
|
+
for (var y = -1; y <= 1; y = y + 1) {
|
|
57
|
+
for (var x = -1; x <= 1; x = x + 1) {
|
|
58
|
+
let offset = vec2f(f32(x), f32(y)) * step;
|
|
59
|
+
let w = select(1.0, 2.0, x == 0 && y == 0);
|
|
60
|
+
sum = sum + textureSample(view_texture, view_sampler, uv + offset) * w;
|
|
61
|
+
weight = weight + w;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return sum / weight;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@fragment
|
|
68
|
+
fn fs_main(in: VertexOut) -> @location(0) vec4f {
|
|
69
|
+
let radius = plane.style.x;
|
|
70
|
+
let falloff = plane.style.y;
|
|
71
|
+
let opacity = plane.style.w;
|
|
72
|
+
|
|
73
|
+
let color = blurred(in.uv, radius);
|
|
74
|
+
|
|
75
|
+
// Recession dims the view toward whatever is under it \u2014 the ground \u2014 by
|
|
76
|
+
// the same share the DOM path's \`opacity\` does (\`recededOpacity\`), and
|
|
77
|
+
// the plane's shadow is the view's own panel, captured with it. Mixing
|
|
78
|
+
// toward a fixed ground color and darkening the quad's edges here drew a
|
|
79
|
+
// different picture from the DOM path's: gray bands down a light card,
|
|
80
|
+
// and haze of the wrong color in the other scheme.
|
|
81
|
+
let alpha = opacity * (1.0 - falloff * 0.55);
|
|
82
|
+
|
|
83
|
+
// A capture arrives with STRAIGHT alpha and the canvas composites
|
|
84
|
+
// premultiplied, so the color is multiplied by its own alpha here, once.
|
|
85
|
+
// Without it a panel's soft shadow \u2014 dark at a low alpha \u2014 came out
|
|
86
|
+
// lighter than the ground it fell on.
|
|
87
|
+
let a = color.a * alpha;
|
|
88
|
+
return vec4f(color.rgb * a, a);
|
|
89
|
+
}
|
|
90
|
+
`;var X=64,C=256,Y=C/4,$=64,b=class{constructor(e,t,n={}){this.canvas=e;this.deps=t;this.options=n;I(e,!0),this.blur=n.blur??!0,this.scheme=n.scheme??"dark",this.capabilities=v(t.gpu.device.gpu.queue,e);let s=n.platformHandlesHitTesting??this.capabilities.hitTestFollowsGeometry==="yes";this.router=new z(e,{platformHandlesHitTesting:s}),e.setAttribute("data-graview-hit",s?"platform":"router")}views=new Map;idOf=new WeakMap;resources=new Map;capturedAt={};uniforms=null;staging=new Float32Array(0);slotCount=0;nextSlot=0;freeSlots=[];reported=new Map;router;pipeline=null;sampler=null;frame=0;detachRouter=null;connectors=[];lastPlan=null;lastPlacements=[];blur;scheme;capabilities;attach(){return this.detachRouter=this.router.attach(),()=>this.detach()}detach(){this.detachRouter?.(),this.detachRouter=null}reconcile(e){let t=new Map(e.map(n=>[n.id,n]));for(let n of[...this.views.keys()])t.has(n)||this.remove(n);for(let n of e){let s=this.views.get(n.id);if(!s){this.add(n);continue}let[o,i]=[S(s),S(n)],c=o.width!==i.width||o.height!==i.height,l=s.element!==n.element||(s.dom??!1)!==(n.dom??!1);l&&this.track(n);let p=(s.opacity??1)!==(n.opacity??1),y=s.dirty||n.dirty===!0||c||l||p;this.views.set(n.id,{...n,dirty:y}),(l||c)&&delete this.capturedAt[n.id]}}add(e){if(!e.dom&&e.element.parentElement!==this.canvas)throw new Error(`View "${e.id}" must be an immediate child of the scene canvas \u2014 the capture API rejects deeper descendants. Nest inside a view, never between views.`);this.track(e),this.views.set(e.id,{...e,dirty:!0})}track(e){this.idOf.set(e.element,e.id),e.dom||F(e.element)}remove(e){let t=this.resources.get(e);t?.texture.destroy(),t&&this.freeSlots.push(t.slot),this.resources.delete(e),this.reported.delete(e),this.views.delete(e),delete this.capturedAt[e]}setBlur(e){this.blur=e}setScheme(e){this.scheme=e}setConnectors(e){this.connectors=e}invalidate(e){let t=this.views.get(e);t&&this.views.set(e,{...t,dirty:!0})}all(){return[...this.views.values()]}plan(){return this.lastPlan}placements(){return this.lastPlacements}deviceForProbe(){return this.deps.gpu.device.gpu}scheduleFrame(){m(this.canvas)}paint(e){return this.render(D(e))}render(e){let t=this.deps.gpu.device.gpu,n=t.queue;this.frame+=1;let s=this.canvas.width,o=this.canvas.height,i;if(e){i=new Set;for(let u of e){let a=this.idOf.get(u);a!==void 0&&i.add(a)}}let c=i?new Set(i):null,l=q([...this.views.values()],this.connectors,{canvasWidth:s,canvasHeight:o,capturedAt:this.capturedAt,captureBudget:this.options.captureBudget??N,scheme:this.scheme,...i?{changed:i}:{},...this.options.connectorOverrides?{connectorOverrides:this.options.connectorOverrides}:{}});this.lastPlan=l;let p=[];for(let u of l.captures){let a=this.views.get(u.viewId);if(!a)continue;let g=this.ensureResources(t,a);try{O(n,a.element,g.texture)}catch(f){if(!(f instanceof DOMException&&f.name==="InvalidStateError"))throw f;this.capturedAt[a.id]===void 0&&p.push(a.id),a.dirty||this.views.set(a.id,{...a,dirty:!0});continue}this.capturedAt[a.id]=this.frame,this.views.set(a.id,{...a,dirty:!1}),i?.delete(a.id)}for(let u of[...i??[],...l.deferred]){let a=this.views.get(u);a&&!a.dirty&&this.views.set(u,{...a,dirty:!0})}let y=t.createCommandEncoder({label:"graview-compositor"}),h=y.beginRenderPass({colorAttachments:[{view:this.deps.surface.context.getCurrentTexture().createView(),clearValue:this.options.transparent?{r:0,g:0,b:0,a:0}:this.groundColor(),loadOp:"clear",storeOp:"store"}]});h.setPipeline(this.ensurePipeline(t));let d=this.options.ground??[.957,.949,.933],A=[],x=-1;for(let u of l.draws){if(p.includes(u.viewId))continue;let a=this.resources.get(u.viewId);!a||!this.views.has(u.viewId)||(J(this.staging,a.slot*Y,u,s,o,d,this.blur),a.slot>x&&(x=a.slot),A.push(a))}x>=0&&this.uniforms&&n.writeBuffer(this.uniforms,0,this.staging.buffer,0,(x+1)*C);for(let u of A)h.setBindGroup(0,this.ensureBindGroup(t,u)),h.draw(6);let P=[];for(let u of l.placements){let a=this.views.get(u.viewId);a&&P.push({element:a.element,transform:u.transform,width:u.width,height:u.height,depth:u.depth})}if(h.end(),n.submit([y.finish()]),this.capabilities.geometrySync){let u=[];for(let a of[...l.geometry,...l.offCanvas]){let g=this.views.get(a.viewId);if(!g)continue;let f=a.transform.join(",");this.reported.get(a.viewId)!==f&&u.push({element:g.element,id:a.viewId,key:f,transform:a.transform})}for(let{element:a,id:g,key:f,transform:te}of u.slice(0,$))U(this.canvas,a,{canvasTransform:E(te)}),this.reported.set(g,f);u.length>$&&m(this.canvas)}return this.lastPlacements=P,this.router.setPlacements(P),p.length===0?{...l,missed:p,changed:c}:{...l,draws:l.draws.filter(u=>!p.includes(u.viewId)),missed:p,changed:c}}groundColor(){let[e,t,n]=this.options.ground??[.957,.949,.933];return{r:e,g:t,b:n,a:1}}ensurePipeline(e){if(this.pipeline)return this.pipeline;let t=e.createShaderModule({code:R,label:"graview-compositor"});return this.pipeline=e.createRenderPipeline({layout:"auto",vertex:{module:t,entryPoint:"vs_main"},fragment:{module:t,entryPoint:"fs_main",targets:[{format:navigator.gpu.getPreferredCanvasFormat(),blend:{color:{srcFactor:"one",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha"}}}]},primitive:{topology:"triangle-list"}}),this.pipeline}ensureResources(e,t){let n=S(t),s=Math.max(1,Math.ceil(n.width)),o=Math.max(1,Math.ceil(n.height)),i=this.resources.get(t.id);if(i&&i.width===s&&i.height===o)return i;i?.texture.destroy();let c=i?.slot??this.takeSlot(e),p={texture:e.createTexture({size:[s,o],format:"rgba8unorm",usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT,label:`graview-view-${t.id}`}),width:s,height:o,bindGroup:null,slot:c};return this.resources.set(t.id,p),p}takeSlot(e){let t=this.freeSlots.pop();if(t!==void 0)return t;let n=this.nextSlot++;if(n>=this.slotCount){let s=Math.max(64,this.slotCount*2);this.uniforms?.destroy(),this.uniforms=e.createBuffer({size:s*C,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,label:"graview-planes"});let o=new Float32Array(s*Y);o.set(this.staging),this.staging=o,this.slotCount=s;for(let i of this.resources.values())i.bindGroup=null}return n}ensureBindGroup(e,t){return t.bindGroup||(this.sampler??=e.createSampler({magFilter:"linear",minFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}),t.bindGroup=e.createBindGroup({layout:this.ensurePipeline(e).getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.uniforms,offset:t.slot*C,size:X}},{binding:1,resource:t.texture.createView()},{binding:2,resource:this.sampler}]})),t.bindGroup}dispose(){this.detach(),this.canvas.removeAttribute("data-graview-hit");for(let e of[...this.resources.keys()])this.remove(e);this.uniforms?.destroy(),this.uniforms=null}};function oe(r,e,t,n,s=!0){let o=new Float32Array(X/4);return J(o,0,r,e,t,n,s),o}function J(r,e,t,n,s,o,i){r[e]=t.transform[12],r[e+1]=t.transform[13],r[e+2]=t.width,r[e+3]=t.height,r[e+4]=i?t.blur:0,r[e+5]=t.style.falloff,r[e+6]=t.style.shadow,r[e+7]=t.opacity,r[e+8]=n,r[e+9]=s,r[e+10]=0,r[e+11]=0,r[e+12]=o[0],r[e+13]=o[1],r[e+14]=o[2],r[e+15]=1}var se=3,K=4,Z=1500,ee=Q*.75;function ae(r={}){let e=new WeakMap;return t=>{let n=e.get(t.canvas);(!n||n.disposed)&&(n=new k(t.canvas,r),e.set(t.canvas,n)),n.show(t);let s=n;return()=>s.release()}}var k=class{constructor(e,t){this.canvas=e;this.options=t;let n=()=>{this.stale=!0,m(this.canvas)};this.observer=typeof MutationObserver>"u"?null:new MutationObserver(n),this.observer?.observe(e,{childList:!0}),this.outsets=typeof MutationObserver>"u"?null:new MutationObserver(n),this.outsets?.observe(e,{subtree:!0,attributeFilter:[G]}),this.start()}disposed=!1;scene=null;compositor=null;ownDevice=null;stale=!0;onDom=new Set;lateFor=new Map;releasing=null;waiting=null;firstFrames=[];gone=!1;observer;outsets;onPaint=e=>this.paint(e);show(e){if(this.releasing&&clearTimeout(this.releasing),this.releasing=null,this.scene=e,this.stale=!0,this.compositor?.setBlur(e.blur??!0),e.scheme&&this.compositor?.setScheme(e.scheme),this.gone){e.fallBack?.();return}m(this.canvas)}release(){this.releasing&&clearTimeout(this.releasing),this.releasing=setTimeout(()=>this.dispose(),0)}async start(){try{let e=this.options.gpu;if(!e){let s=await navigator.gpu?.requestAdapter();if(!s)throw new Error("No WebGPU adapter.");let o=await s.requestDevice();this.ownDevice=o,o.lost.then(()=>{this.disposed||this.fallBack()}),e={device:{gpu:o}}}if(this.disposed)return;let t=e.device.gpu;if(!v(t.queue,this.canvas).usable)throw new Error("No element capture.");let n=this.canvas.getContext("webgpu");if(!n)throw new Error("No WebGPU context on the scene canvas.");n.configure({device:t,format:navigator.gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),this.compositor=new b(this.canvas,{gpu:e,surface:{context:n}},{transparent:!0,...this.options,blur:this.scene?.blur??this.options.blur??!0,...this.scene?.scheme?{scheme:this.scene.scheme}:{}}),this.compositor.attach(),this.canvas.addEventListener("paint",this.onPaint),this.stale=!0,this.waiting=setTimeout(()=>this.fallBack(),Z),m(this.canvas)}catch{this.fallBack()}}fallBack(){if(this.gone)return;this.gone=!0,this.waiting&&clearTimeout(this.waiting),this.waiting=null,this.canvas.removeEventListener("paint",this.onPaint),this.compositor?.dispose(),this.compositor=null;let e=this.scene;e&&(e.fallBack?e.fallBack():e.drawOnDom?.(new Set(e.layout.nodes.map(t=>t.id))))}checkFirstFrame(e){let t=this.firstFrames;if(!t||(this.waiting&&clearTimeout(this.waiting),this.waiting=null,t.push(e),t.length<K))return;let n=[...t].sort((s,o)=>s-o)[Math.floor(t.length/2)];this.firstFrames=null,n>ee&&this.fallBack()}paint(e){let t=this.compositor,n=this.scene;if(!t||!n)return;let s=performance.now(),o;try{this.stale&&(this.stale=!1,t.reconcile(this.views(n))),o=t.paint(e)}catch{this.fallBack();return}if(this.checkFirstFrame(performance.now()-s),this.gone)return;this.options.onFrame?.(o,t);let i=!1,c=new Set(o.deferred);for(let l of[...this.lateFor.keys()])c.has(l)||this.lateFor.delete(l);for(let l of c){if(o.changed&&!o.changed.has(l))continue;let p=(this.lateFor.get(l)??0)+1;this.lateFor.set(l,p),p>=se&&!this.onDom.has(l)&&(this.onDom.add(l),this.lateFor.delete(l),i=!0)}i&&n.drawOnDom?.(new Set(this.onDom)),(o.deferred.length>0||o.missed.length>0)&&m(this.canvas)}views(e){let t=new Map;for(let i of this.canvas.children){let c=i.getAttribute("data-graview-view");c!==null&&t.set(c,i)}let n=new Set,s=[];for(let i of W(e.layout,e.dirty).views){n.add(i.id);let c=t.get(i.id)??e.hostOf(i.id);if(!c)continue;let l=H(c.getAttribute(G));s.push({...i,element:c,...l?{outset:l}:{},...c.parentElement===this.canvas?{}:{dom:!0}})}let o=!1;for(let i of this.onDom)n.has(i)||(this.onDom.delete(i),o=!0);return o&&e.drawOnDom?.(new Set(this.onDom)),s}dispose(){this.disposed=!0,this.waiting&&clearTimeout(this.waiting),this.waiting=null,this.observer?.disconnect(),this.outsets?.disconnect(),this.canvas.removeEventListener("paint",this.onPaint),this.compositor?.dispose(),this.compositor=null,this.ownDevice?.destroy(),this.ownDevice=null}};export{R as COMPOSITOR_WGSL,b as Compositor,K as FIRST_FRAMES,ee as FIRST_FRAME_BUDGET_MS,Z as FIRST_PAINT_WAIT_MS,_ as IDENTITY,w as PlatformUnavailableError,ae as attachGpu,O as captureElement,re as captureElementImage,D as changedElementsOf,ie as clearElementGeometry,v as detectCapabilities,L as isAffine,F as markDrawable,oe as packUniform,V as perspectiveProbeMatrix,B as planeTransform,m as requestPaint,I as setLayoutSubtree,E as toDOMMatrix,U as updateElementGeometry};
|