graview 0.1.67 → 0.1.68
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.YCD4JSXD.js → chunk.2BMZPALF.js} +1 -1
- package/dist/preview/{chunk.SNHKYH72.js → chunk.2KCDLCB2.js} +1 -1
- package/dist/preview/{chunk.O2OL6RQQ.js → chunk.2ME4DVBI.js} +1 -1
- package/dist/preview/chunk.2TUEBU7X.js +8 -0
- package/dist/preview/{chunk.LYEGRY77.js → chunk.2U6HB4XU.js} +1 -1
- package/dist/preview/{chunk.7S6ZRMW4.js → chunk.32JE2WS7.js} +1 -1
- package/dist/preview/{chunk.RG5G6YQD.js → chunk.3DEWQDP7.js} +1 -1
- package/dist/preview/{chunk.GVT4UUQA.js → chunk.3JMQKANL.js} +1 -1
- package/dist/preview/{chunk.A5PSEU3W.js → chunk.3VEZ5MOC.js} +1 -1
- package/dist/preview/chunk.3WPCS6KP.js +1 -0
- package/dist/preview/{chunk.5R744JGZ.js → chunk.42C3FIKK.js} +1 -1
- package/dist/preview/{chunk.IAEGJDF3.js → chunk.42KHFGN6.js} +1 -1
- package/dist/preview/{chunk.DZMIYEHQ.js → chunk.4DXPPM6T.js} +1 -1
- package/dist/preview/chunk.4GVKKBQL.js +1 -0
- package/dist/preview/{chunk.KX5ZBHMA.js → chunk.4TT3ZHSJ.js} +1 -1
- package/dist/preview/{chunk.QXLJGHMC.js → chunk.4YAO3A5Q.js} +3 -3
- package/dist/preview/{chunk.Z4TY44CD.js → chunk.5JKUT2OM.js} +1 -1
- package/dist/preview/chunk.5L4ADKTW.js +1 -0
- package/dist/preview/{chunk.BKYZSV2Y.js → chunk.64LCHHZB.js} +1 -1
- package/dist/preview/{chunk.ZEZUKRC6.js → chunk.6AANHELP.js} +1 -1
- package/dist/preview/{chunk.ZAQ4IDX6.js → chunk.6DMCEBSO.js} +1 -1
- package/dist/preview/{chunk.NKLPL7QD.js → chunk.6IR5LBJU.js} +1 -1
- package/dist/preview/{chunk.X226YATK.js → chunk.6WB2TYK7.js} +1 -1
- package/dist/preview/chunk.6ZENHSTQ.js +1 -0
- package/dist/preview/{chunk.EJ2EZL2G.js → chunk.7K2V5FUB.js} +1 -1
- package/dist/preview/chunk.7OL6H4LF.js +1 -0
- package/dist/preview/{chunk.4W57E7AX.js → chunk.7TDML5YU.js} +1 -1
- package/dist/preview/{chunk.AJMVRFYX.js → chunk.7WPVLEX2.js} +2 -2
- package/dist/preview/{chunk.XSWSBTUO.js → chunk.7ZTGB4O7.js} +1 -1
- package/dist/preview/{chunk.FRQSLWP4.js → chunk.ACNOP2IU.js} +1 -1
- package/dist/preview/{chunk.N4ZKZ4GM.js → chunk.AENP662H.js} +1 -1
- package/dist/preview/{chunk.SFBHPYRD.js → chunk.AQ2PI6MR.js} +1 -1
- package/dist/preview/chunk.ARS4HJD2.js +1 -0
- package/dist/preview/{chunk.STPA7HBK.js → chunk.AWV57UBJ.js} +1 -1
- package/dist/preview/{chunk.D7NWMXSX.js → chunk.AYZL3LCR.js} +3 -3
- package/dist/preview/{chunk.URQTF5SY.js → chunk.BHJRT57H.js} +1 -1
- package/dist/preview/{chunk.7UHPHEH5.js → chunk.BPNW5KCP.js} +1 -1
- package/dist/preview/{chunk.TTSGCNPT.js → chunk.BQAFFEOA.js} +1 -1
- package/dist/preview/chunk.C2QKA6XY.js +1 -0
- package/dist/preview/{chunk.6KJGRM7A.js → chunk.CE3NKAF7.js} +1 -1
- package/dist/preview/{chunk.QRQ5WPZI.js → chunk.CFE3MHWZ.js} +1 -1
- package/dist/preview/{chunk.H6KIEDZN.js → chunk.CGBOPPNL.js} +1 -1
- package/dist/preview/{chunk.LP2ZMAT2.js → chunk.CNN32262.js} +1 -1
- package/dist/preview/{chunk.HJUZMOW2.js → chunk.DCLF4WWZ.js} +1 -1
- package/dist/preview/{chunk.GMLONS5L.js → chunk.DGDW54KE.js} +1 -1
- package/dist/preview/{chunk.3GNT5MKP.js → chunk.DLSS56EU.js} +1 -1
- package/dist/preview/{chunk.QAM76AXV.js → chunk.DMZRFXH7.js} +1 -1
- package/dist/preview/{chunk.Z2XUVJAL.js → chunk.DPHH5ZVL.js} +1 -1
- package/dist/preview/{chunk.Z27NSSYL.js → chunk.DZ6UDZOB.js} +2 -2
- package/dist/preview/{chunk.6W6XMLSF.js → chunk.E423JCOS.js} +1 -1
- package/dist/preview/{chunk.35KMZHB7.js → chunk.EB7PZJEO.js} +1 -1
- package/dist/preview/{chunk.V7H4BUEB.js → chunk.ECNGVD25.js} +1 -1
- package/dist/preview/{chunk.B7KZBT27.js → chunk.EGSOHTZZ.js} +1 -1
- package/dist/preview/{chunk.OCXY5DCD.js → chunk.EGVM24ND.js} +1 -1
- package/dist/preview/{chunk.UDHPMVC4.js → chunk.ENLIIZF2.js} +1 -1
- package/dist/preview/{chunk.H3EGBDW2.js → chunk.EP5JS7ZH.js} +1 -1
- package/dist/preview/{chunk.TI5FR2QQ.js → chunk.F5GNNVSQ.js} +1 -1
- package/dist/preview/chunk.FHQ25SWY.js +1 -0
- package/dist/preview/{chunk.F464JKHZ.js → chunk.FSW535EA.js} +1 -1
- package/dist/preview/{chunk.G5GVT6JY.js → chunk.FZELUSK5.js} +1 -1
- package/dist/preview/{chunk.UWS4RMM3.js → chunk.G2BDEWJC.js} +1 -1
- package/dist/preview/chunk.GF3ZCX46.js +2 -0
- package/dist/preview/{chunk.UW52CMGJ.js → chunk.GJTEV6CK.js} +1 -1
- package/dist/preview/{chunk.A7GVTE5Y.js → chunk.GKTQ5CZA.js} +2 -2
- package/dist/preview/{chunk.ZG5VGP5U.js → chunk.GONZB3J3.js} +1 -1
- package/dist/preview/{chunk.FLJXYESX.js → chunk.GRBWXTST.js} +1 -1
- package/dist/preview/{chunk.Z3O2VZAJ.js → chunk.GRTBEA7O.js} +1 -1
- package/dist/preview/{chunk.QNP5OR3P.js → chunk.H3IGXHZR.js} +2 -2
- package/dist/preview/{chunk.ILJDLBPJ.js → chunk.H3W5C3XQ.js} +1 -1
- package/dist/preview/{chunk.O5VFKVZS.js → chunk.H4VNIAHN.js} +1 -1
- package/dist/preview/{chunk.7ARRVNUR.js → chunk.HH4D3JEI.js} +1 -1
- package/dist/preview/{chunk.MUSMNKE4.js → chunk.HWFJQ42Y.js} +1 -1
- package/dist/preview/{chunk.37RFCHSS.js → chunk.HXTKBISQ.js} +1 -1
- package/dist/preview/{chunk.J2OPIS3H.js → chunk.I34BWUB4.js} +1 -1
- package/dist/preview/{chunk.ZAPS4J6G.js → chunk.I63462I3.js} +1 -1
- package/dist/preview/{chunk.6UQFV53C.js → chunk.IKKKHHRN.js} +1 -1
- package/dist/preview/{chunk.GRFD42WM.js → chunk.IPGLITWA.js} +1 -1
- package/dist/preview/{chunk.3NSV3WKM.js → chunk.IT5DVKXY.js} +2 -2
- package/dist/preview/{chunk.JQ2WNKDW.js → chunk.IXMIU4D4.js} +1 -1
- package/dist/preview/{chunk.JVB5KDSG.js → chunk.JCETQQ7J.js} +1 -1
- package/dist/preview/{chunk.M7KXQGQL.js → chunk.JGRSUTPJ.js} +1 -1
- package/dist/preview/{chunk.KFT7JIEH.js → chunk.JLDJZET2.js} +1 -1
- package/dist/preview/{chunk.JQ63N4MZ.js → chunk.JULD4XFB.js} +1 -1
- package/dist/preview/{chunk.LVOTLGJB.js → chunk.JV432T4Q.js} +1 -1
- package/dist/preview/{chunk.6SJEZWH3.js → chunk.KAM73WVF.js} +1 -1
- package/dist/preview/{chunk.AKJS2NUM.js → chunk.KUCBNMIY.js} +1 -1
- package/dist/preview/{chunk.DWM7AR5Y.js → chunk.L7XKYGV7.js} +1 -1
- package/dist/preview/{chunk.EP6Q32WT.js → chunk.LFFJB6D3.js} +1 -1
- package/dist/preview/{chunk.264PB572.js → chunk.LMTG5NPG.js} +1 -1
- package/dist/preview/{chunk.EGPCVMDU.js → chunk.LOKGUALC.js} +1 -1
- package/dist/preview/{chunk.FPHRAO3R.js → chunk.LZ6MSQ5O.js} +1 -1
- package/dist/preview/chunk.MBTEOF4R.js +1 -0
- package/dist/preview/{chunk.RJY7VJBH.js → chunk.MIOLBZBS.js} +1 -1
- package/dist/preview/{chunk.G3GFDVO2.js → chunk.MK5RPEB2.js} +1 -1
- package/dist/preview/{chunk.NSOPYIT4.js → chunk.MKL4THIV.js} +1 -1
- package/dist/preview/{chunk.FVQKSN33.js → chunk.MPWLDQOG.js} +1 -1
- package/dist/preview/chunk.MSUZAJ2K.js +4 -0
- package/dist/preview/{chunk.MSAYU25L.js → chunk.N5Z34V7U.js} +1 -1
- package/dist/preview/chunk.N64RVSH3.js +1 -0
- package/dist/preview/{chunk.HAOB6O72.js → chunk.ND3DEDWB.js} +1 -1
- package/dist/preview/{chunk.GFLH7RCI.js → chunk.NFTPJAMJ.js} +1 -1
- package/dist/preview/{chunk.QZQCQWQG.js → chunk.NRCWMYLH.js} +1 -1
- package/dist/preview/{chunk.47XEJZ3O.js → chunk.O2VXTYUJ.js} +1 -1
- package/dist/preview/{chunk.6N4PE3U5.js → chunk.O32F6LGK.js} +1 -1
- package/dist/preview/{chunk.PZ7KY6XH.js → chunk.O5FTWXA2.js} +1 -1
- package/dist/preview/{chunk.T2OUHRAA.js → chunk.ODYJEDIW.js} +1 -1
- package/dist/preview/{chunk.DKEIEH2D.js → chunk.OQ4ZO3YY.js} +1 -1
- package/dist/preview/chunk.PI4RFOBU.js +1 -0
- package/dist/preview/{chunk.E5PYNAYT.js → chunk.PIMAG4WT.js} +2 -2
- package/dist/preview/{chunk.EFVSZKB5.js → chunk.PLIV3IQK.js} +1 -1
- package/dist/preview/{chunk.77C556NM.js → chunk.PPCDPYYU.js} +1 -1
- package/dist/preview/{chunk.MW7R5G3C.js → chunk.PZQ5P6WK.js} +1 -1
- package/dist/preview/chunk.Q42R2KW4.js +1 -0
- package/dist/preview/{chunk.WEMUKZKH.js → chunk.Q4VFLLUT.js} +1 -1
- package/dist/preview/{chunk.SY5ID44D.js → chunk.Q6H5HESF.js} +1 -1
- package/dist/preview/chunk.QM54TGU6.js +3 -0
- package/dist/preview/{chunk.HN4ZJ4B4.js → chunk.QOQ26NXM.js} +1 -1
- package/dist/preview/{chunk.SJQPTDAT.js → chunk.QUETLFBJ.js} +1 -1
- package/dist/preview/{chunk.P2EKKKK2.js → chunk.QWLK3GKG.js} +1 -1
- package/dist/preview/{chunk.JEC5FDKX.js → chunk.QYPU444Y.js} +1 -1
- package/dist/preview/{chunk.TXZQEJ5T.js → chunk.QZP3ARLH.js} +1 -1
- package/dist/preview/{chunk.WALVW3KJ.js → chunk.R3GE37OI.js} +1 -1
- package/dist/preview/chunk.R66ZVMWB.js +1 -0
- package/dist/preview/{chunk.YZPESGCP.js → chunk.RQG672MJ.js} +1 -1
- package/dist/preview/chunk.RYA7A4NA.js +1 -0
- package/dist/preview/{chunk.LRNFE3UK.js → chunk.SADR3MQI.js} +1 -1
- package/dist/preview/{chunk.MJY4SLWA.js → chunk.SS6KL5NT.js} +1 -1
- package/dist/preview/chunk.SUG6LIOX.js +1 -0
- package/dist/preview/{chunk.SO6NT5K7.js → chunk.TFJA4QV4.js} +1 -1
- package/dist/preview/{chunk.D4WJ7OM5.js → chunk.TOUSIUJF.js} +1 -1
- package/dist/preview/{chunk.ARWO4WOV.js → chunk.TR4YFVZN.js} +1 -1
- package/dist/preview/{chunk.XFLGSUYO.js → chunk.TRNJKHIA.js} +1 -1
- package/dist/preview/{chunk.5AKZROMR.js → chunk.TVWK3SGD.js} +1 -1
- package/dist/preview/chunk.U7PAFLUM.js +1 -0
- package/dist/preview/{chunk.NKYWIGC7.js → chunk.UAMPR4MD.js} +1 -1
- package/dist/preview/{chunk.UGQYMN4J.js → chunk.UD7VLXPM.js} +1 -1
- package/dist/preview/{chunk.UQIPEMJ5.js → chunk.UFURYU4R.js} +1 -1
- package/dist/preview/{chunk.R6JBA7UK.js → chunk.UODTUBQ7.js} +1 -1
- package/dist/preview/{chunk.NRURQGXV.js → chunk.VES4XMZX.js} +1 -1
- package/dist/preview/{chunk.QWGWOEBZ.js → chunk.VLXLBGMY.js} +1 -1
- package/dist/preview/{chunk.IDALEKIW.js → chunk.VTDOWXCP.js} +1 -1
- package/dist/preview/{chunk.4EMKCKDB.js → chunk.VV5JAM5W.js} +1 -1
- package/dist/preview/{chunk.JU6UFWS3.js → chunk.VW632VNJ.js} +1 -1
- package/dist/preview/{chunk.25QFDTCU.js → chunk.WC5WE34A.js} +1 -1
- package/dist/preview/chunk.WN7SAAH6.js +1 -0
- package/dist/preview/{chunk.4UUJHLHR.js → chunk.WV45KLXC.js} +1 -1
- package/dist/preview/{chunk.NAXOXBOF.js → chunk.XDZDNZ7B.js} +1 -1
- package/dist/preview/{chunk.MAKCZ6B6.js → chunk.XFH6GHBQ.js} +1 -1
- package/dist/preview/{chunk.2VUX54XH.js → chunk.XRE7SHLD.js} +1 -1
- package/dist/preview/{chunk.J6HF7IRQ.js → chunk.XXCHO2A5.js} +1 -1
- package/dist/preview/{chunk.A4EZAGG7.js → chunk.Y7OGJOPA.js} +1 -1
- package/dist/preview/{chunk.6NG76MDA.js → chunk.YBQ5GVAX.js} +2 -2
- package/dist/preview/{chunk.QF5QB5YR.js → chunk.YL2RBZFE.js} +1 -1
- package/dist/preview/{chunk.RSQ432QN.js → chunk.YM6SWEUI.js} +1 -1
- package/dist/preview/{chunk.7BJRHPE3.js → chunk.Z2X7BFCB.js} +2 -2
- package/dist/preview/{chunk.VBLQJVQ5.js → chunk.Z67LBSQO.js} +1 -1
- package/dist/preview/{chunk.OHAO6KKH.js → chunk.ZKXIZBCN.js} +1 -1
- package/dist/preview/{chunk.BDNQMKDG.js → chunk.ZLEBOR5T.js} +1 -1
- package/dist/preview/{chunk.CKDCTFLU.js → chunk.ZLNUZ6LR.js} +1 -1
- package/dist/preview/chunk.ZMADWPJO.js +1 -0
- package/dist/preview/chunk.ZO6VMEPP.js +1 -0
- package/dist/preview/chunk.ZUG7U7AT.js +1 -0
- package/dist/preview/index.html +55 -55
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.2FHIINXG.js +0 -2
- package/dist/preview/chunk.3ENPWZBG.js +0 -1
- package/dist/preview/chunk.3ZODN6BW.js +0 -1
- package/dist/preview/chunk.55G4IPOO.js +0 -1
- package/dist/preview/chunk.5J6DVR7S.js +0 -1
- package/dist/preview/chunk.7WHQWLL6.js +0 -1
- package/dist/preview/chunk.B5SJMCTT.js +0 -7
- package/dist/preview/chunk.CTUJZ3IV.js +0 -1
- package/dist/preview/chunk.CY7FFKEZ.js +0 -1
- package/dist/preview/chunk.DEKRFTRN.js +0 -4
- package/dist/preview/chunk.EBKH3ILT.js +0 -1
- package/dist/preview/chunk.FOUBDGL3.js +0 -1
- package/dist/preview/chunk.HB5NWHFP.js +0 -3
- package/dist/preview/chunk.HVBKI5ZO.js +0 -1
- package/dist/preview/chunk.I3SDKMQS.js +0 -1
- package/dist/preview/chunk.J5OLYVZ4.js +0 -1
- package/dist/preview/chunk.JKFVNQY7.js +0 -1
- package/dist/preview/chunk.KGMSSXZL.js +0 -1
- package/dist/preview/chunk.NXZL5CA2.js +0 -1
- package/dist/preview/chunk.PSNMZBVS.js +0 -1
- package/dist/preview/chunk.R7CRBRD4.js +0 -1
- package/dist/preview/chunk.RR25BGWP.js +0 -1
- package/dist/preview/chunk.T27QKVKP.js +0 -1
- package/dist/preview/chunk.T3WCRS6M.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as x}from"./chunk.
|
|
1
|
+
import{b as x}from"./chunk.DMZRFXH7.js";import"./chunk.DZ6UDZOB.js";import"./chunk.6ZENHSTQ.js";import"./chunk.WVUJXDXZ.js";import"./chunk.L7XKYGV7.js";import"./chunk.CE3NKAF7.js";import"./chunk.R3GE37OI.js";import"./chunk.2KCDLCB2.js";import"./chunk.UD7VLXPM.js";import"./chunk.3DEWQDP7.js";import"./chunk.MIE4TJRW.js";import{o as R}from"./chunk.CFE3MHWZ.js";import"./chunk.RD2FSSLV.js";import"./chunk.HXTKBISQ.js";import"./chunk.TFJA4QV4.js";import"./chunk.HWFJQ42Y.js";import"./chunk.QUETLFBJ.js";import"./chunk.JULD4XFB.js";import"./chunk.GRTBEA7O.js";import"./chunk.H3IGXHZR.js";import"./chunk.7TDML5YU.js";import{G as A,W as v,fa as g}from"./chunk.3VEZ5MOC.js";import"./chunk.SDO3U72B.js";import{ra as y,sd as k,wa as c}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import{b as u}from"./chunk.AJZBJBMO.js";var f=u(A(),1);var L=u(A(),1),S=(0,L.createContext)(void 0);var i=u(v(),1),W=new WeakMap,m=new WeakMap,P=(e,n)=>`${n.kind}\0${n.id??""}\0${e}`;function b(e,n,a){let p=P(n,a),o=W.get(e);o||W.set(e,o=new Map);let t=o.get(p);return t||(t=Promise.resolve().then(()=>e(n,a)).then(r=>C(r)?r:null,()=>null).then(r=>{let s=m.get(e);return s||m.set(e,s=new Map),s.set(p,r),r}),o.set(p,t)),t}function C(e){if(e===null)return!0;if(typeof e!="object"||e===void 0)return!1;if(e.denied===!0)return!0;let n=e;return typeof n.name=="string"&&n.name.trim()!==""&&typeof n.href=="string"}function h(e){if(/^https?:\/\//i.test(e))try{return new URL(e).href}catch{return}}var N=e=>h(e)??(c(e)?e:void 0),E=e=>h(e)??(e.startsWith("/")&&c(e)?e:void 0),I={kind:"human"},w={color:"var(--graview-ink-muted)"};function M({icon:e}){if(!e)return null;let n=E(e);if(n)return(0,i.jsx)("img",{src:n,alt:"",width:20,height:20,"data-graview-app-icon":"",style:{width:20,height:20,borderRadius:5,objectFit:"cover",flex:"0 0 auto"}});let a=[...e.trim()].slice(0,2).join("");return a?(0,i.jsx)("span",{"aria-hidden":"true","data-graview-app-icon":"",style:{flex:"0 0 auto",lineHeight:"20px"},children:a}):null}function V(e){let n=g(),a=(0,f.useContext)(S)??n?.resolveApp,p=n?.principal??I,o=()=>a?m.get(a)?.get(P(e,p))??"asking":null,[t,r]=(0,f.useState)(o);return(0,f.useEffect)(()=>{let s=o();if(r(s),s!=="asking"||!a)return;let l=!0;return b(a,e,p).then(d=>l&&r(d)),()=>{l=!1}},[a,e,p.kind,p.id]),t}function D({address:e,as:n="chip",nodeId:a,field:p,style:o}){let t=V(e),r={position:"relative",zIndex:k.raised,overflowWrap:"anywhere",minWidth:0,maxWidth:"100%",...o},s;if(t==="asking")s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"asking","aria-busy":"true",style:{...w,...r},children:"Linked app"});else if(t&&"denied"in t)s=(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"denied",style:{...w,fontStyle:"italic",...r},children:"linked app (no access)"});else if(t){let l=N(t.href),d=n==="record"?t.headline?.trim():void 0;s=(0,i.jsxs)(l?"a":"span",{"data-graview-app-link":"","data-graview-app-state":"found",...l?{href:l}:{},...!d&&t.headline?{title:t.headline}:{},style:{display:"inline-flex",alignItems:d?"flex-start":"center",minHeight:24,gap:8,color:"inherit",textUnderlineOffset:3,...r},children:[(0,i.jsx)(M,{icon:t.icon}),(0,i.jsxs)("span",{style:{display:"grid",minWidth:0},children:[(0,i.jsx)("span",{"data-graview-app-name":"",style:{fontWeight:600},children:t.name}),d?(0,i.jsx)("span",{"data-graview-app-headline":"",style:{...w,fontSize:"0.8125em",fontWeight:400},children:d}):null]})]})}else{let l=h(e);s=l?(0,i.jsx)("a",{"data-graview-app-link":"","data-graview-app-state":"plain",href:l,rel:"noopener noreferrer",target:"_blank",style:{color:"var(--graview-accent)",display:"inline-flex",alignItems:"center",minHeight:24,...r},children:e}):(0,i.jsx)("span",{"data-graview-app-link":"","data-graview-app-state":"plain",style:r,children:e})}return a&&p?(0,i.jsx)(H,{nodeId:a,field:p,address:e,drawn:s}):s}function H({nodeId:e,field:n,address:a,drawn:p}){let o=R(e).fields.some(s=>s.field===n),t=g()?.store;if(!o)return p;let r=y(t?t.schema.tryDefinition(String(t.graph.getNode(e)?.kind)):void 0,n).toLowerCase();return(0,i.jsxs)("span",{style:{display:"inline-flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 12px",maxWidth:"100%",minWidth:0},children:[p,(0,i.jsx)("span",{style:{fontSize:"0.8125rem"},children:(0,i.jsx)(x,{nodeId:e,field:n,value:"Change",stored:a,said:`Change the ${r}`})})]})}var Y=e=>(0,i.jsx)(D,{...e});export{D as AppLink,Y as drawAppLink};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk.WVUJXDXZ.js";import{k as x}from"./chunk.
|
|
1
|
+
import"./chunk.WVUJXDXZ.js";import{k as x}from"./chunk.L7XKYGV7.js";import"./chunk.CE3NKAF7.js";import"./chunk.R3GE37OI.js";import"./chunk.2KCDLCB2.js";import"./chunk.UD7VLXPM.js";import"./chunk.3DEWQDP7.js";import"./chunk.JULD4XFB.js";import"./chunk.GRTBEA7O.js";import{gb as f,ib as N,la as S}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var k=(n,r,t)=>({untrusted:!0,authoredBy:t.say(r),text:n});function O(n,r){let t;for(let[a,e]of Object.entries(n)){if(typeof e!="string"||a==="id"||a==="kind")continue;let o=r.fieldBy(n.id,a);o&&(t??={...n},t[a]=k(e,o,r))}return t??n}function L(n,r,t){let a=e=>{if(Array.isArray(e))return e.map(a);if(e!==null&&typeof e=="object"&&"id"in e&&"label"in e){let o=e,i=t.recordBy(o.id);return i?{...o,label:k(o.label,i,t)}:o}if(typeof e=="string"){let o=t.recordBy(n);return o?k(e,o,t):e}return e};return Object.fromEntries(Object.entries(r).map(([e,o])=>[e,a(o)]))}function $(n,r){return n.map(t=>{let a=r.recordBy(t.id);return a?{...t,label:k(t.label,a,r)}:t})}function D(n,r){return{...n,nodes:n.nodes.map(t=>O(t,r))}}var E=n=>(JSON.stringify(n)??"null").length,R=n=>typeof n=="number"&&Number.isFinite(n)&&n>0?Math.floor(n):0;function w(n,r,t,a,e,o=""){let i=n-r-t;return i>0?`and ${i} more ${e}: call ${a} with ${o}offset ${r+t} for the next page.`:void 0}var j=({line:n,...r})=>r;function T(n){let r;for(let[t,a]of Object.entries(n))typeof a!="string"||a.length<=600||(r??={...n},r[t]=`${a.slice(0,600)}\u2026 (cut at ${600} of ${a.length} characters)`);return r??n}function B(n,r,t,a){let e=Math.min(t,Math.max(0,n.length-r)),o=n.slice(r,r+e),i=a(o);for(;e>1&&E(i)>8e3;)e=Math.max(1,Math.floor(e*.75)),o=n.slice(r,r+e),i=a(o);return{page:o,answer:i}}function C(n,r){let t=JSON.stringify(r)??"null";if(t.length<=8e3)return r;let a=`This answer was ${t.length} characters, more than the ${8e3} one read answers, so it is cut. Ask ${n} for less, or use search_graph and get_node to read one thing.`;for(let e=8e3-a.length-40;;){let o={cut:a,partial:t.slice(0,e)},i=E(o)-8e3;if(i<=0)return o;e=Math.max(0,e-i-8)}}function I(n,r){let{matched:t,later:a,...e}=r,o=n.hits.filter(i=>i.about==="node").length;return n.total>o?{...e,more:`and ${n.total-o} more records match: narrow the words, or add kind:<kind>.`}:e}function P(n,r,t){let a=N(t.archived),e={nodes:n.graph.allNodes({archived:a}),edges:n.graph.allEdges({archived:"all"})},o=R(t.offset),i=e.nodes.length,{page:h,answer:u}=B(e.nodes,o,25,d=>{let g=new Set(d.map(s=>s.id)),l=new Set(d.map(s=>s.id)),c=w(i,o,d.length,"get_graph","nodes"),p=s=>l.has(s)||(a==="all"?n.graph.has(s):n.graph.has(s)&&f(n.graph.getNode(s))===a);return{...D({nodes:d.map(T),edges:e.edges.filter(s=>g.has(s.from)&&p(s.to))},r),total:i,...c?{more:c}:{}}});return{data:u,reads:h.map(d=>d.id)}}function U(n,r,t,a){let e=n.graph.getNode(t),o=R(a.offset),i=n.graph.outEdges(t),h=n.graph.inEdges(t),u=i.slice(o,o+20),d=h.slice(o,o+20),g=(s,A)=>{let m=n.graph.getNode(A);return{kind:s,id:A,label:m?S(n.schema.tryDefinition(m.kind),m):A,...f(m)?{archived:!0}:{}}},l=x(n.schema,n.graph,e),c=n.violations().filter(s=>s.nodeIds.includes(t)),p=[w(i.length,o,u.length,"get_node","links out",`id "${t}" and `),w(h.length,o,d.length,"get_node","links in",`id "${t}" and `),c.length>20?`and ${c.length-20} more problems: get_violations lists them.`:void 0].filter(Boolean);return{data:{node:O(T(e),r),...f(e)?{archived:!0}:{},...Object.keys(l.values).length>0?{computed:L(t,l.values,r)}:{},...Object.keys(l.refused).length>0?{uncomputed:l.refused}:{},out:$(u.map(s=>g(s.kind,s.to)),r),in:$(d.map(s=>g(s.kind,s.from)),r),violations:c.slice(0,20).map(j),...p.length>0?{more:p.join(" ")}:{}},reads:[t,...u.map(s=>s.to),...d.map(s=>s.from)]}}function F(n,r){let t=R(r.offset),{page:a,answer:e}=B(n,t,20,o=>{let i=w(n.length,t,o.length,"get_violations","problems");return{violations:o.map(j),total:n.length,...i?{more:i}:{}}});return{data:e,reads:[...new Set(a.flatMap(o=>o.nodeIds))]}}export{P as graphRead,U as nodeRead,I as searchRead,F as violationsRead,C as withinReadChars};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as $}from"./chunk.
|
|
1
|
+
import{e as $}from"./chunk.64LCHHZB.js";import{a as C}from"./chunk.N5Z34V7U.js";import{l as M}from"./chunk.QUETLFBJ.js";import{Ob as x,la as k,ma as v,na as j}from"./chunk.6AANHELP.js";function N(a,s){let c=a.tryDefinition(s),r=Object.keys(c?.fields?.shape??{}),m=[c?.lifecycle?.field,...r.filter(l=>/^(status|stage|state|phase)$/i.test(l))].filter(l=>l!==void 0&&r.includes(l));return[...new Set(m)].slice(0,1)}function P(a,s){return a.tryDefinition(s)?.fieldRoles?.title??"label"}function V(a,s,c={}){let r=s.map(e=>a.graph.getNode(e)).filter(e=>e!==void 0);if(r.length===0)return{acts:[],withheld:[]};let u=c.principal??{kind:"human"},m=C(a,r.map(e=>e.id),{...c.derive,principal:u,...c.context?{context:c.context}:{}}),l=new Map(a.allMutations().map(e=>[e.name,e])),g=[...new Set(r.map(e=>e.kind))],p=new Set(g.map(e=>P(a.schema,e))),h=new Set(m.affordances.filter(e=>e.provider==="schema").map(e=>e.mutation)),o=e=>{let n=l.get(e.mutation);if(!n?.subject)return;let t=r.length===1&&e.provider==="invariant"&&!h.has(e.mutation)&&e.args[n.subject.arg]===r[0].id;if(!(e.provider!=="schema"&&!t)&&!(r.length>1&&e.batch?.length!==r.length)&&n.derived?.act!=="edit"&&!e.open.some(i=>p.has(i.name)))return n},y=[],b=new Set;for(let e of m.affordances){let n=o(e);if(!n||b.has(n.name))continue;b.add(n.name);let{[n.subject.arg]:t,...i}=e.args;y.push({id:e.id,label:v(n),mutation:n.name,subject:n.subject.arg,args:i,open:e.open,...e.destructive||e.setsAside?{more:!0}:{},...e.destructive?{destructive:!0}:{},affordance:{...e,label:v(n)}})}if(g.length===1){let e=g[0];for(let n of N(a.schema,e))for(let t of $(a.schema,[...l.values()],e,n)){if(t.by==="none"||r.every(d=>d[n]===t.value))continue;let i=r.find(d=>d[n]!==t.value),f=t.acts.find(d=>{let D=t.by==="step"?{[d.subject.arg]:i.id}:{[d.subject.arg]:i.id,[n]:t.value};return a.permits({name:d.name,args:D},u).ok});if(!f)continue;let w=t.by==="step"?{}:{[n]:t.value};if(t.by==="step"&&y.some(d=>d.mutation===f.name))continue;let R=t.by==="step"?v(f):`Move to ${t.label}`,O=`set:${n}:${t.value}`;y.push({id:O,label:R,mutation:f.name,subject:f.subject.arg,args:w,open:[],affordance:{id:O,label:R,provider:"schema",mutation:f.name,args:{[f.subject.arg]:i.id,...w},open:[],score:0,why:`every one is ${e}`,nodeIds:r.map(d=>d.id)}})}}let S=[...y.filter(e=>!e.more),...y.filter(e=>e.more)],A=m.withheld.filter(e=>{let n=l.get(e.mutation);return n?.subject!==void 0&&n.derived?.act!=="edit"&&(r.length===1||e.batch?.length===r.length)}).map(e=>({label:v(l.get(e.mutation)),message:e.refusal.message}));return{acts:S,withheld:A}}function _(a,s,c,r={}){let u=r.author,m=a.allMutations().find(e=>e.name===s.mutation),l=e=>M(a.schema,a.allMutations(),e),g=e=>{let n=a.graph.getNode(e);return n?k(a.schema.tryDefinition(n.kind),n):e},p=[],h=[],o=[];for(let e of[...new Set(c)]){let n={name:s.mutation,args:{...s.args,[s.subject]:e}};if(!m){p.push({id:e,label:g(e),message:`There is no act \u201C${s.mutation}\u201D.`,reason:"invalid"});continue}let t=a.permits(n,u);if(!t.ok){p.push({id:e,label:g(e),message:t.refusal.message,reason:"forbidden"});continue}if(!a.wouldChange(n,u)){h.push(e);continue}o.push({id:e,call:n})}let y=e=>a.previewAll(e,{...u?{author:u}:{},...r.context?{context:r.context}:{}});for(let e=0;o.length>0;e+=1)try{y(o.map(n=>n.call));break}catch(n){let t=[];for(let i of o)try{y([i.call]),t.push(i)}catch(f){p.push({id:i.id,label:g(i.id),message:l(f),reason:x(f).reason})}if(t.length===o.length||e>o.length){for(let i of t)p.push({id:i.id,label:g(i.id),message:l(n),reason:x(n).reason});o=[];break}o=t}if(o.length===0)return{applied:[],unchanged:h,refused:p};let b=s.label??(m?v(m):s.mutation),S=[...new Set(o.map(e=>a.graph.getNode(e.id)?.kind))],A=`${b} \u2014 ${S.length===1&&S[0]?j(a.schema,S[0],o.length):`${o.length} records`}`;try{let e=a.applyAll(o.map(n=>n.call),{intent:A,...u?{author:u}:{},...r.via?{via:r.via}:{}});return{batch:e.batch,intent:A,applied:o.map(n=>n.id),unchanged:h,refused:p,result:e}}catch(e){let n=l(e),t=x(e).reason;return{applied:[],unchanged:h,refused:[...p,...o.map(i=>({id:i.id,label:g(i.id),message:n,reason:t}))],allOrNothing:!0}}}export{V as a,_ as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as kn,c as bn,d as oe,e as wn,f as Y,h as Ee,i as je,n as vn,s as se,u as On}from"./chunk.RG5G6YQD.js";import{B as be,C as ue,Ea as Oe,F as _e,H as He,Ha as en,K as Ue,Ka as nn,L as We,Ma as tn,Nb as U,Qa as xe,Ra as Re,Sb as cn,Tb as ln,Uc as mn,Vb as fn,Xa as rn,_a as on,_b as pn,b as Fe,c as Ne,d as Ce,dc as un,e as K,fd as gn,g as ye,ga as Je,gd as yn,h as Z,ha as Ye,hd as Ae,i as Ie,id as hn,j as Ve,ja as Qe,jd as ze,k as he,kb as an,l as Ke,m as Ze,nb as sn,o as qe,p as fe,q as ve,sb as Se,ta as Xe,tb as dn,v as Be,x as pe,z as ke}from"./chunk.ZEZUKRC6.js";var Tn=[{where:"settings[]",was:"honoured",now:"honored",since:"0.1.16"},{where:"pages",was:"overview",now:"scene",since:"0.1.17"}],q=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function xn(e,d=Tn){if(!q(e))return{document:e,respelled:[]};let n=[],t=e;for(let a of d)t=De(t,a.where.split("."),a,"",n);return{document:t,respelled:n}}function De(e,d,n,t,a){if(d.length===0){if(!q(e)||!Object.hasOwn(e,n.was))return e;a.push(`${t}${n.was}`);let{[n.was]:ie,...B}=e;return Object.hasOwn(e,n.now)?B:{...B,[n.now]:ie}}if(!q(e))return e;let[f,...E]=d,k=f.endsWith("[]"),O=k?f.slice(0,-2):f,G=e[O],X=G;if(!k)X=De(G,E,n,`${t}${O}.`,a);else if(Array.isArray(G)){let ie=G.map((B,T)=>De(B,E,n,`${t}${O}.${T}.`,a));X=ie.some((B,T)=>B!==G[T])?ie:G}return X===G?e:{...e,[O]:X}}var Rn=new WeakMap;function Sn(e,d){Rn.set(e,d)}function Zn(e){return Rn.get(e)}function An(e){if(typeof e=="string")return{form:"string",light:e};if(typeof e!="object"||e===null)return;let d=e,n=k=>typeof d[k]=="string"?d[k]:void 0,t=n("light")??n("src");if(t===void 0)return;let[a,f,E]=[n("dark"),n("alt"),n("darkFallback")];return{form:n("light")!==void 0?"light":"src",light:t,...a!==void 0?{dark:a}:{},...f!==void 0?{alt:f}:{},...E!==void 0?{darkFallback:E}:{}}}function Qn(e,d){let n=e.brand??{},t=n.ground,a=n.accent?ze(n.accent,t):void 0;t&&hn(a?.ok?a.schemes:Ae(t),n.accent)&&(d.push(je("brand","brand.ground","words would not read on that page background, so the app keeps Graview's","pick a lighter ground for the light scheme, a darker one for the dark")),t=void 0,a=n.accent?ze(n.accent):void 0),a&&!a.ok&&d.push(je("brand","brand.accent",`that accent cannot make a readable brand, so the app keeps Graview's colors: ${a.why}`,"pick a color further from orange-red, or a darker one"));let f=An(n.logo),E=n.name??e.name,k=n.typography?Object.fromEntries(Object.entries(n.typography).filter(([,O])=>typeof O=="string"&&yn(O)===null).map(([O,G])=>[O,gn(G)])):void 0;return{name:E,schemes:a?.ok?a.schemes:t?Ae(t):mn,...n.currency?{currency:n.currency}:{},...n.locale?{locale:n.locale}:{},...n.timeZone?{timeZone:n.timeZone}:{},...f?{logo:f.dark||f.darkFallback==="invert"?{light:f.light,...f.dark?{dark:f.dark}:{darkFallback:"invert"}}:f.light,logoAlt:f.alt??E}:{},...n.favicon?{favicon:n.favicon}:{},...e.description?{subtitle:e.description}:{},...n.subtitle===!1?{subtitleDrawn:!1}:{},...k?{typography:k}:{},...n.shape?{shape:n.shape}:{},...n.accents?{accents:n.accents}:{},...n.scheme?{scheme:n.scheme}:{},...n.views&&(n.views.css||n.views.motion)?{views:{...n.views.css?{css:n.views.css}:{},...n.views.motion?{motion:n.views.motion}:{}}}:{}}}function zn(e){let{currency:d,locale:n,timeZone:t}=e.brand??{};return{...d?{currency:d}:{},...n?{locale:n}:{},...t?{timeZone:t}:{}}}var Gn=Symbol.for("@graview/core:typed-field"),En=(e,d)=>(/^(phone|place|duration)$/.test(d)&&(ue(e)[Gn]=d),e),jn=/^(?=(?:\D*\d){3})\+?[\d ()./-]+(?: *(?:ext\.?|x|#) *\d+)?$/i;function Dn(e){let d=Z().check(K(300),ke(t=>nn(t,e)!==void 0,`a record of ${e.kinds.join(" or ")} in ${e.address}, as "<kind>:<id>"`)),n=e.cardinality==="one"?d:fe(d).check(K(200));return tn(e.description?n.check(be(e.description)):n,e)}var Ln="graview-compiled@1";function Fn(e,d){return e.find(([n,t])=>n!==Q&&"ref"in t&&(t.ref==="*"||t.ref.includes(d)))?.[0]}var Q="id",me=e=>typeof e=="string"&&/^\$[A-Za-z][A-Za-z0-9]*$/.test(e)?e.slice(1):void 0;function $n(e){let d=Object.entries(e.fields),n=t=>["name","title","label"].find(a=>t.some(([f])=>f===a))??t[0]?.[0];return n(d.filter(([,t])=>t.required&&(t.type==="string"||t.type==="text")))??n(d.filter(([,t])=>t.type==="string"))}function Pn(e,d,n){let t;switch(e.type){case"string":case"place":t=Z().check(K(500));break;case"phone":t=Z().check(K(40),ye(jn,"a phone number"));break;case"text":t=Z().check(K(2e4)),e.format&&(ue(t)[Symbol.for("@graview/core:markdown")]=1);break;case"number":case"integer":case"duration":{let f=e.min??(e.type==="duration"?0:void 0),E=[...e.type==="number"?[]:[Ke()],...f===void 0?[]:[Ne(f)],...e.max===void 0?[]:[Fe(e.max)],...e.step===void 0?[]:[Ce(e.step)]];t=E.length>0?he().check(...E):he();break}case"boolean":t=Ze();break;case"date":t=Z().check(ye(He,"a date like 2026-10-02, or a month (2016-05) or a year (2006) alone"));break;case"datetime":t=Z().check(ke(Ue,"a date and time like 2026-10-02T14:30:00Z"));break;case"enum":t=Be(e.options),e.multiple&&(t=fe(t).check(K(e.options.length)));break;case"list":t=fe(e.of==="number"?he():e.of==="date"?Z().check(ye(_e)):e.of==="image"||e.of==="video"||e.of==="file"?Oe(e.of):Z().check(K(500))).check(K(200));break;case"image":case"video":case"file":t=Oe(e.type);break;case"app-link":t=en();break;case"url":t=Ve();break;case"email":t=Ie();break}let a=e.type==="number"||e.type==="integer";return En(t,a&&e.format==="duration"?"duration":e.type),e.collaborative!==void 0&&(e.type==="text"||e.type==="string")&&(ue(t)[Symbol.for("@graview/core:collaborative")]=e.collaborative?1:0),e.description&&(t=t.check(be(e.description))),a&&(e.format==="money"||e.format==="percent"||!e.format&&e.unit)&&pn(t,{...n,...e.format?{format:e.format}:{},...e.unit?{unit:e.unit}:{},...e.places===0?{places:0}:{}}),d?pe(t):t}var ge=e=>{throw new U(`there is no record "${e}"`,"invalid")},Nn=(e,d)=>"field"in e?Pn(e.field,e.optional,d):"ref"in e?un(e.ref):pe(qe()),Cn=new WeakMap;var Le=(e,d)=>q(d)&&Object.keys(e??{}).length===Object.keys(d).length&&Object.keys(e??{}).every(n=>Object.hasOwn(d,n));function xt(e,d={}){let n=q(e)?e.format:void 0;if(n!==Ln)return{ok:!1,findings:[Ee("compiled-format","format",n===void 0?"this is not a compiled Graview app":`this compiled app is ${JSON.stringify(n)}, and this build reads ${Ln}`,"compile the document instead")]};let t=e,a=xn(t.document).document,f=a===t.document?t:{...t,document:a},E=q(a)&&typeof a.name=="string"&&q(a.kinds)&&Le(a.kinds,f.kinds)&&Le(a.acts,f.acts)&&Le(a.rules,f.rules)&&Array.isArray(f.edges)&&Array.isArray(f.findings),k={ok:!1,findings:[Ee("compiled-shape","","this compiled app's parts do not match its document","compile the document instead")]};if(!E)return k;try{return In(f,d)}catch{return k}}function In(e,d={}){let{document:n}=e,t=n.brand?.timeZone,a=d.today??(()=>We(t)),f={...n.brand?.locale?{locale:n.brand.locale}:{},...t?{timeZone:t}:{}},E=new Map(e.edges.map(([p,i])=>[p,i])),k=new Map;for(let[p,i]of Object.entries(n.kinds)){let x=e.kinds[p]?.computed,w=Re(i.edges),j=new Map(Object.entries(i.fields).flatMap(([S,v])=>v.type==="enum"?[[S,v.optionLabels??{}]]:[]));k.set(p,{fields:new Set([...Object.keys(i.fields),...w.keys()]),edges:new Map(Object.entries(xe(i.edges)).map(([S,v])=>[S,v.cardinality??"many"])),...x?{computed:new Map(x)}:{},...w.size>0?{linked:w}:{},...j.size>0?{choices:j}:{}})}e.facts&&k.set(bn,{computed:new Map(e.facts)});let O=zn(n),G=p=>({from:p.from,via:p.via,sourceEnd:p.sourceEnd,back:p.back,values(i,x,w){let j={};for(let[S,v]of p.set)if("value"in v)j[S]=v.value;else try{let $=Y(v.expr,{graph:i,subject:x,kinds:k,bindings:{to:w},today:a(),...f});($===null||typeof $!="object"||Array.isArray($))&&(j[S]=$)}catch($){if(!($ instanceof oe))throw $}return j}}),X=new Map,ie=Object.entries(n.kinds).map(([p,i])=>{let x={};for(let[r,o]of Object.entries(i.fields))x[r]=Pn(o,!o.required,O),o.repeats&&(x[rn(r)]=pe(on()));for(let[r,o]of Re(i.edges))x[r]=pe(Dn(o));let{label:w,describe:j,durations:S}=e.kinds[p]??{},v=Object.entries(i.computed??{}).map(([r,o])=>[r,typeof o=="string"?{expr:o}:o]),$=Object.hasOwn(i.fields,"label")&&!i.fields.label.label&&!/\{\s*label\b/.test(i.label??`{${$n(i)??""}}`),ee=Object.fromEntries([...$?[["label","Label"]]:[],...Object.entries(i.fields).filter(([,r])=>r.label).map(([r,o])=>[r,o.label]),...v.filter(([,r])=>r.label).map(([r,o])=>[r,o.label])]),W=Object.keys(ee).length>0,L=Object.entries(i.fields).filter(([,r])=>r.type==="enum"&&(r.optionLabels&&Object.keys(r.optionLabels).length>0||r.multiple)),l=r=>o=>typeof o=="string"&&r.optionLabels&&Object.hasOwn(r.optionLabels,o)?r.optionLabels[o]:Ye(String(o)),M=Object.fromEntries(L.map(([r,o])=>[r,o.multiple?z=>Array.isArray(z)?z.map(l(o)).join(", "):l(o)(z):l(o)])),N=L.length>0,C=Object.fromEntries(Object.entries(i.fields).filter(([,r])=>r.default!==void 0).map(([r,o])=>[r,o.default]));X.set(p,C);let _=Object.fromEntries(Object.entries(xe(i.edges)).map(([r,{renamedFrom:o,...z}])=>[r,z])),I=Object.entries(i.fields).flatMap(([r,o])=>o.aliases?[[r,o.aliases]]:[]),P=r=>i[r]?{[r]:i[r]}:{};return Qe(p,{fields:ve(x),edges:_,...P("plural"),...P("noun"),...P("aliases"),...I.length>0?{fieldAliases:Object.fromEntries(I)}:{},...P("description"),...w?{label:r=>se(w,{node:r,kinds:k,today:a(),money:O})||r.id}:{},...j?{describe:r=>se(j,{node:r,kinds:k,today:a(),money:O})}:{},...P("lifecycle"),...P("figure"),...P("fieldRoles"),...P("people"),archives:i.archives,...i.tidying?{tidying:i.tidying}:{},...v.length>0?{computed:Object.fromEntries(v.map(([r,o])=>[r,Vn(o,S?.includes(r)??!1,O)??i.computed[r]]))}:{},...W||N||i.glance||i.page?{display:{...W?{labels:ee}:{},...N?{format:M}:{},...i.glance?{glance:[...i.glance]}:{},...i.page?{page:i.page}:{}}}:{},...Object.keys(C).length>0?{defaults:C}:{},...e.kinds[p]?.keptInStep?{keptInStep:e.kinds[p].keptInStep}:{},...e.kinds[p]?.derives?{derives:G(e.kinds[p].derives)}:{}})}),B=an(ie,n.computed);function T(p){return B.tryDefinition(p.kind)?.label?.(p)??p.id}let $e=p=>({id:"",kind:p,...X.get(p)}),Pe=[];for(let[p,i]of Object.entries(n.acts??{})){let x=e.acts[p],{title:w,effects:j,guard:S,refusal:v,destructive:$,idempotent:ee,creates:W,connects:L,severs:l,writes:M,writesOther:N,sets:C}=x,_={};for(let c of j)"through"in c&&(_[c.through]=[...new Set([..._[c.through]??[],...Object.keys(c.set)])]);let I=new Map(x.args),P={};for(let[c,A]of I)P[c]=Nn(A,O);let r=[i.on??[]].flat(),o=new Map(x.exprs),z=j.find(c=>"create"in c),J=(c,A,u,b=null)=>{if(q(c)&&"expr"in c)return Y(o.get(c.expr),{graph:u,subject:b,kinds:k,bindings:A,today:a(),...f});let h=me(c);return h===void 0?typeof c=="string"&&c.startsWith("$$")?c.slice(1):c:h==="now"?new Date().toISOString():h==="today"?a():A[h]},de=(c,A)=>{if(!z)return"";let u=n.kinds[z.create].fields,b=$e(z.create),h=[];for(let[R,ce]of Object.entries(z.set??{})){try{b[R]=J(ce,c,A)??b[R]}catch{}let ae=me(ce);ae&&c[ae]!==void 0&&h.push(R)}let V=T(b).trim(),ne=h.filter(R=>b[R]!==!1&&u[R].type!=="text"&&!(/[^]{41}/.test(b[R])||/ .*[.!?]$/.test(b[R])&&!/[ .][A-Z]\w{0,3}\.$/.test(b[R]))&&T({...b,[R]:void 0}).trim()===V).map(R=>b[R]===!0?u[R].label??Je(R):vn(b[R],u[R].format,a(),[],O));return V&&ne.length>0?`${V} (${ne.join(", ")})`:V};Pe.push(fn(p,{input:ve(P),title:w,...i.description?{description:i.description}:{},...i.fromTheOtherEnd?{fromTheOtherEnd:i.fromTheOtherEnd}:{},...I.has(Q)?{subject:{kinds:r.length>0?r:"*",arg:Q}}:{},...$?{destructive:!0}:{},...ee?{idempotent:!0}:{},...W.length>0?{creates:W}:{},...L.length>0?{connects:L}:{},...l.length>0?{severs:l}:{},writes:M,...Object.keys(N).length>0?{writesOther:N}:{},...Object.keys(_).length>0?{writesLinked:_}:{},...Object.keys(C).length>0?{sets:C}:{},...S?{allowedOn:(c,A)=>{let u=c.getNode(A);if(!u||r.length>0&&!r.includes(u.kind))return!1;try{return Y(S,{graph:c,subject:u,kinds:k,bindings:{},today:a(),...f})===!0}catch{return!1}}}:{},describe:(c,A)=>{let u=typeof c[Q]=="string"?A.getNode(c[Q]):void 0,b=u?T(u):de(c,A);return b?`${w}: ${b}`:w},apply(c,A){let u=c.graph,b=typeof A[Q]=="string"?A[Q]:void 0,h=b?u.getNode(b):void 0;if(b&&!h&&ge(b),h&&r.length>0&&!r.includes(h.kind))throw new U(`"${w}" acts on ${r.join(" or ")}, not on ${Xe(h.kind)}`,"invalid");let V={};for(let[s,m]of Object.entries(A))m!==void 0&&(V[s]=m);if(S&&h){let s;try{s=Y(S,{graph:u,subject:h,kinds:k,bindings:V,today:a(),...f})}catch(m){throw m instanceof oe?new U(`"${w}" could not be judged: ${m.sentence}`):m}if(s!==!0)throw new U(v?se(v,{node:h,kinds:k,graph:u,bindings:V,today:a(),money:O}):`"${w}" is not allowed for ${T(h)} right now`)}let ne=new Map,R=s=>u.has(s)||[...ne.values()].includes(s),ce=new Set,ae=s=>{let m=sn(s);ce.has(m)||(ce.add(m),c.removeEdge(s))},te=(s,m)=>{let g=me(s);if(g==="subject")return b;if(g==="me"){let y=c.me;if(y&&n.kinds[u.getNode(y)?.kind]?.people)return y;throw new U(`"${w}" is done as you, and you have no record here`)}if(ne.has(g))return ne.get(g);try{return J(s,V,u,m??h??null)}catch(y){throw y instanceof oe?new U(`"${w}" could not work out a value: ${y.sentence}`):y}};for(let s of j)if("create"in s){let m=n.kinds[s.create],g=$e(s.create);for(let[H,re]of Object.entries(s.set??{})){let Me=te(re,void 0);Me!==void 0&&(g[H]=Me)}let y=$n(m),D=String((y&&g[y])??s.create),le=ln(D,s.create,g,(H,re)=>cn(n.policy?.sees,H,re)),F=c.freshId(le?s.create:D,s.create,g);c.addNode({...g,id:F}),s.as&&ne.set(s.as,F)}else if("connect"in s||"sever"in s){let m="connect"in s?s.connect:s.sever,g=String(te(s.from,void 0)??""),y=String(te(s.to,void 0)??"");if(R(g)||ge(g),R(y)||ge(y),"connect"in s){if(E.get(m)?.cardinality==="one")for(let D of u.out(g,m))D.id!==y&&ae({kind:m,from:g,to:D.id});u.out(g,m).some(D=>D.id===y)||c.addEdge({kind:m,from:g,to:y})}else ae({kind:m,from:g,to:y})}else if("through"in s){if(!h)throw new U(`"${w}" carries a change to linked records, and has no record to start from`,"invalid");let g=E.get(s.through)?.from.includes(h.kind)??!0?u.out(h.id,s.through):u.in(h.id,s.through);for(let y of g){let D={};for(let[le,F]of Object.entries(s.set)){let H;if(me(F)==="to")H=y.id;else if(q(F)&&"expr"in F)try{H=Y(o.get(F.expr),{graph:u,subject:h,kinds:k,bindings:{...V,to:y},today:a(),...f})}catch(re){throw re instanceof oe?new U(`"${w}" could not work out a value for ${T(y)}: ${re.sentence}`):re}else H=te(F,void 0);H!==void 0&&(D[le]=H)}Object.keys(D).length>0&&c.patchNode(y.id,D)}}else if("set"in s){let m=String(te(s.target??"$subject",void 0)??""),g=u.getNode(m);!g&&!R(m)&&ge(m);let y={};for(let[D,le]of Object.entries(s.set)){let F=te(le,g);F!==void 0&&(y[D]=F)}Object.keys(y).length>0&&c.patchNode(m,y)}else if("remove"in s){let m=String(te(s.remove,void 0)??"");u.has(m)||ge(m),c.removeNode(m)}else if("replace"in s&&h){let m=A.to;for(let g of s.replace){let y=E.get(g)?.from.includes(h.kind)??!0;for(let D of y?u.out(h.id,g):u.in(h.id,g))g===s.keep&&D.id===m||ae(y?{kind:g,from:h.id,to:D.id}:{kind:g,from:D.id,to:h.id})}}}}))}let Te=[];for(let[p,i]of Object.entries(n.rules??{})){let{title:x,require:w,when:j,says:S,covers:v}=e.rules[p],$=i.repairs??[],ee=(L,l,M=a(),N)=>{let C=[],_={graph:L,subject:l,kinds:k,today:M,...f,...N?{linked:N}:{},onUnread:o=>C.push(o)},I,P=[];try{if(j&&Y(j,_)!==!0)return[];if(v&&l?(P=On(L,l,v),I=P.length===0):I=Y(w,_)===!0,!I&&C.length>0)throw new oe(`it reads ${kn(C[0])}`,0)}catch(o){throw o instanceof wn?new dn(o.sentence):o instanceof oe?new Error(o.sentence):o}if(I)return[];let r=$.flatMap(o=>{let z=n.acts?.[o.act],J={},de=l&&z?.on&&z.fromTheOtherEnd&&![z.on].flat().includes(l.kind)?Fn(e.acts[o.act].args,l.kind):void 0;de?J[de]=l.id:l&&(z?.on||/^(edit|remove|archive|unarchive|merge|skip|detach|split)-/.test(o.act))&&(J[Q]=l.id);for(let[u,b]of Object.entries(o.args??{}))J[u]=me(b)==="subject"?l?.id:b;let A=(z?e.acts[o.act].args:[]).filter(([u,b])=>b.required&&J[u]===void 0).map(([u])=>u);return[{mutation:o.act,label:o.label??(de?z.fromTheOtherEnd:z?.title)??o.act.replace(/-/g," "),args:J,...A.length>0?{missing:A}:{}}]});return v&&l?P.map(o=>({invariant:p,subjectId:l.id,label:x,message:S?se(S,{node:l,kinds:k,graph:L,today:M,money:O,bindings:{[l.kind]:l,[o.kind]:o}}):`${T(l)}: ${x} \u2014 ${T(o)}`,nodeIds:[l.id,o.id],repairs:r})):[{invariant:p,...l?{subjectId:l.id}:{},label:x,message:S?se(S,{node:l,kinds:k,graph:L,today:M,money:O}):l?`${T(l)}: ${x}`:x,nodeIds:l?[l.id]:[],repairs:r}]},W={label:x,shape:{over:i.over,require:w,...v?{covers:v}:{},when:j,says:S,declared:n.kinds,money:O,kinds:k,today:a},judgment:{...i.require?{require:i.require}:{},...i.covers?{covers:i.covers}:{},...i.when?{when:i.when}:{},...i.says?{says:i.says}:{}},...i.description?{description:i.description}:{},...$.length>0?{repairs:$.map(L=>L.act)}:{}};Te.push(i.over==="graph"?Se(p,{scope:"graph",...W,evaluate:({graph:L,today:l,context:M})=>ee(L,null,l,M?.linked)}):Se(p,{scope:{kind:i.over},...W,evaluate:({graph:L,subject:l,today:M,context:N})=>ee(L,l,M,N?.linked)}))}let Ge=n.policy&&{...n.policy,...n.roles?{roles:n.roles}:{}},we={name:n.name,schema:B,mutations:Pe,invariants:Te,...Ge?{policy:Ge}:{},...e.brand?{brand:e.brand}:{},...n.modules?{modules:n.modules}:{},...n.lenses?{lenses:n.lenses}:{},...n.pages?{pages:n.pages}:{},...n.settings?{settings:n.settings}:{},...n.connections?{connections:n.connections}:{},...n.forms?{forms:n.forms}:{},...n.publishing?{publishing:n.publishing}:{},...n.tidying?{tidying:n.tidying}:{},...n.purpose?{purpose:n.purpose}:{},...e.viewSpecs?{viewSpecs:e.viewSpecs}:{},...e.home?{home:e.home}:{},version:n.version??1};return Sn(we,n),Cn.set(we,e),{ok:!0,app:we,document:n,findings:e.findings,sights:n.policy?.sees,kinds:k}}function Vn(e,d,n){let t=d||e.format==="duration",a=e.format==="money"||e.format==="percent"||!e.format&&e.unit!==void 0;if(!(!t&&!a))return{...e,...t?{as:"duration"}:{},...a?{amount:{...n,...e.format?{format:e.format}:{},...e.unit?{unit:e.unit}:{},...e.places===0?{places:0}:{}}}:{}}}export{q as a,xn as b,Zn as c,Qn as d,Ln as e,Q as f,me as g,$n as h,xt as i,In as j};
|
|
1
|
+
import{b as kn,c as bn,d as oe,e as wn,f as Y,h as Ee,i as je,n as vn,s as se,u as On}from"./chunk.3DEWQDP7.js";import{B as be,C as ue,Ea as Oe,F as _e,H as He,Ha as en,K as Ue,Ka as nn,L as We,Ma as tn,Nb as U,Qa as xe,Ra as Re,Sb as cn,Tb as ln,Uc as mn,Vb as fn,Xa as rn,_a as on,_b as pn,b as Fe,c as Ne,d as Ce,dc as un,e as K,fd as gn,g as ye,ga as Je,gd as yn,h as Z,ha as Ye,hd as Ae,i as Ie,id as hn,j as Ve,ja as Qe,jd as ze,k as he,kb as an,l as Ke,m as Ze,nb as sn,o as qe,p as fe,q as ve,sb as Se,ta as Xe,tb as dn,v as Be,x as pe,z as ke}from"./chunk.6AANHELP.js";var Tn=[{where:"settings[]",was:"honoured",now:"honored",since:"0.1.16"},{where:"pages",was:"overview",now:"scene",since:"0.1.17"}],q=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function xn(e,d=Tn){if(!q(e))return{document:e,respelled:[]};let n=[],t=e;for(let a of d)t=De(t,a.where.split("."),a,"",n);return{document:t,respelled:n}}function De(e,d,n,t,a){if(d.length===0){if(!q(e)||!Object.hasOwn(e,n.was))return e;a.push(`${t}${n.was}`);let{[n.was]:ie,...B}=e;return Object.hasOwn(e,n.now)?B:{...B,[n.now]:ie}}if(!q(e))return e;let[f,...E]=d,k=f.endsWith("[]"),O=k?f.slice(0,-2):f,G=e[O],X=G;if(!k)X=De(G,E,n,`${t}${O}.`,a);else if(Array.isArray(G)){let ie=G.map((B,T)=>De(B,E,n,`${t}${O}.${T}.`,a));X=ie.some((B,T)=>B!==G[T])?ie:G}return X===G?e:{...e,[O]:X}}var Rn=new WeakMap;function Sn(e,d){Rn.set(e,d)}function Zn(e){return Rn.get(e)}function An(e){if(typeof e=="string")return{form:"string",light:e};if(typeof e!="object"||e===null)return;let d=e,n=k=>typeof d[k]=="string"?d[k]:void 0,t=n("light")??n("src");if(t===void 0)return;let[a,f,E]=[n("dark"),n("alt"),n("darkFallback")];return{form:n("light")!==void 0?"light":"src",light:t,...a!==void 0?{dark:a}:{},...f!==void 0?{alt:f}:{},...E!==void 0?{darkFallback:E}:{}}}function Qn(e,d){let n=e.brand??{},t=n.ground,a=n.accent?ze(n.accent,t):void 0;t&&hn(a?.ok?a.schemes:Ae(t),n.accent)&&(d.push(je("brand","brand.ground","words would not read on that page background, so the app keeps Graview's","pick a lighter ground for the light scheme, a darker one for the dark")),t=void 0,a=n.accent?ze(n.accent):void 0),a&&!a.ok&&d.push(je("brand","brand.accent",`that accent cannot make a readable brand, so the app keeps Graview's colors: ${a.why}`,"pick a color further from orange-red, or a darker one"));let f=An(n.logo),E=n.name??e.name,k=n.typography?Object.fromEntries(Object.entries(n.typography).filter(([,O])=>typeof O=="string"&&yn(O)===null).map(([O,G])=>[O,gn(G)])):void 0;return{name:E,schemes:a?.ok?a.schemes:t?Ae(t):mn,...n.currency?{currency:n.currency}:{},...n.locale?{locale:n.locale}:{},...n.timeZone?{timeZone:n.timeZone}:{},...f?{logo:f.dark||f.darkFallback==="invert"?{light:f.light,...f.dark?{dark:f.dark}:{darkFallback:"invert"}}:f.light,logoAlt:f.alt??E}:{},...n.favicon?{favicon:n.favicon}:{},...e.description?{subtitle:e.description}:{},...n.subtitle===!1?{subtitleDrawn:!1}:{},...k?{typography:k}:{},...n.shape?{shape:n.shape}:{},...n.accents?{accents:n.accents}:{},...n.scheme?{scheme:n.scheme}:{},...n.views&&(n.views.css||n.views.motion)?{views:{...n.views.css?{css:n.views.css}:{},...n.views.motion?{motion:n.views.motion}:{}}}:{}}}function zn(e){let{currency:d,locale:n,timeZone:t}=e.brand??{};return{...d?{currency:d}:{},...n?{locale:n}:{},...t?{timeZone:t}:{}}}var Gn=Symbol.for("@graview/core:typed-field"),En=(e,d)=>(/^(phone|place|duration)$/.test(d)&&(ue(e)[Gn]=d),e),jn=/^(?=(?:\D*\d){3})\+?[\d ()./-]+(?: *(?:ext\.?|x|#) *\d+)?$/i;function Dn(e){let d=Z().check(K(300),ke(t=>nn(t,e)!==void 0,`a record of ${e.kinds.join(" or ")} in ${e.address}, as "<kind>:<id>"`)),n=e.cardinality==="one"?d:fe(d).check(K(200));return tn(e.description?n.check(be(e.description)):n,e)}var Ln="graview-compiled@1";function Fn(e,d){return e.find(([n,t])=>n!==Q&&"ref"in t&&(t.ref==="*"||t.ref.includes(d)))?.[0]}var Q="id",me=e=>typeof e=="string"&&/^\$[A-Za-z][A-Za-z0-9]*$/.test(e)?e.slice(1):void 0;function $n(e){let d=Object.entries(e.fields),n=t=>["name","title","label"].find(a=>t.some(([f])=>f===a))??t[0]?.[0];return n(d.filter(([,t])=>t.required&&(t.type==="string"||t.type==="text")))??n(d.filter(([,t])=>t.type==="string"))}function Pn(e,d,n){let t;switch(e.type){case"string":case"place":t=Z().check(K(500));break;case"phone":t=Z().check(K(40),ye(jn,"a phone number"));break;case"text":t=Z().check(K(2e4)),e.format&&(ue(t)[Symbol.for("@graview/core:markdown")]=1);break;case"number":case"integer":case"duration":{let f=e.min??(e.type==="duration"?0:void 0),E=[...e.type==="number"?[]:[Ke()],...f===void 0?[]:[Ne(f)],...e.max===void 0?[]:[Fe(e.max)],...e.step===void 0?[]:[Ce(e.step)]];t=E.length>0?he().check(...E):he();break}case"boolean":t=Ze();break;case"date":t=Z().check(ye(He,"a date like 2026-10-02, or a month (2016-05) or a year (2006) alone"));break;case"datetime":t=Z().check(ke(Ue,"a date and time like 2026-10-02T14:30:00Z"));break;case"enum":t=Be(e.options),e.multiple&&(t=fe(t).check(K(e.options.length)));break;case"list":t=fe(e.of==="number"?he():e.of==="date"?Z().check(ye(_e)):e.of==="image"||e.of==="video"||e.of==="file"?Oe(e.of):Z().check(K(500))).check(K(200));break;case"image":case"video":case"file":t=Oe(e.type);break;case"app-link":t=en();break;case"url":t=Ve();break;case"email":t=Ie();break}let a=e.type==="number"||e.type==="integer";return En(t,a&&e.format==="duration"?"duration":e.type),e.collaborative!==void 0&&(e.type==="text"||e.type==="string")&&(ue(t)[Symbol.for("@graview/core:collaborative")]=e.collaborative?1:0),e.description&&(t=t.check(be(e.description))),a&&(e.format==="money"||e.format==="percent"||!e.format&&e.unit)&&pn(t,{...n,...e.format?{format:e.format}:{},...e.unit?{unit:e.unit}:{},...e.places===0?{places:0}:{}}),d?pe(t):t}var ge=e=>{throw new U(`there is no record "${e}"`,"invalid")},Nn=(e,d)=>"field"in e?Pn(e.field,e.optional,d):"ref"in e?un(e.ref):pe(qe()),Cn=new WeakMap;var Le=(e,d)=>q(d)&&Object.keys(e??{}).length===Object.keys(d).length&&Object.keys(e??{}).every(n=>Object.hasOwn(d,n));function xt(e,d={}){let n=q(e)?e.format:void 0;if(n!==Ln)return{ok:!1,findings:[Ee("compiled-format","format",n===void 0?"this is not a compiled Graview app":`this compiled app is ${JSON.stringify(n)}, and this build reads ${Ln}`,"compile the document instead")]};let t=e,a=xn(t.document).document,f=a===t.document?t:{...t,document:a},E=q(a)&&typeof a.name=="string"&&q(a.kinds)&&Le(a.kinds,f.kinds)&&Le(a.acts,f.acts)&&Le(a.rules,f.rules)&&Array.isArray(f.edges)&&Array.isArray(f.findings),k={ok:!1,findings:[Ee("compiled-shape","","this compiled app's parts do not match its document","compile the document instead")]};if(!E)return k;try{return In(f,d)}catch{return k}}function In(e,d={}){let{document:n}=e,t=n.brand?.timeZone,a=d.today??(()=>We(t)),f={...n.brand?.locale?{locale:n.brand.locale}:{},...t?{timeZone:t}:{}},E=new Map(e.edges.map(([p,i])=>[p,i])),k=new Map;for(let[p,i]of Object.entries(n.kinds)){let x=e.kinds[p]?.computed,w=Re(i.edges),j=new Map(Object.entries(i.fields).flatMap(([S,v])=>v.type==="enum"?[[S,v.optionLabels??{}]]:[]));k.set(p,{fields:new Set([...Object.keys(i.fields),...w.keys()]),edges:new Map(Object.entries(xe(i.edges)).map(([S,v])=>[S,v.cardinality??"many"])),...x?{computed:new Map(x)}:{},...w.size>0?{linked:w}:{},...j.size>0?{choices:j}:{}})}e.facts&&k.set(bn,{computed:new Map(e.facts)});let O=zn(n),G=p=>({from:p.from,via:p.via,sourceEnd:p.sourceEnd,back:p.back,values(i,x,w){let j={};for(let[S,v]of p.set)if("value"in v)j[S]=v.value;else try{let $=Y(v.expr,{graph:i,subject:x,kinds:k,bindings:{to:w},today:a(),...f});($===null||typeof $!="object"||Array.isArray($))&&(j[S]=$)}catch($){if(!($ instanceof oe))throw $}return j}}),X=new Map,ie=Object.entries(n.kinds).map(([p,i])=>{let x={};for(let[r,o]of Object.entries(i.fields))x[r]=Pn(o,!o.required,O),o.repeats&&(x[rn(r)]=pe(on()));for(let[r,o]of Re(i.edges))x[r]=pe(Dn(o));let{label:w,describe:j,durations:S}=e.kinds[p]??{},v=Object.entries(i.computed??{}).map(([r,o])=>[r,typeof o=="string"?{expr:o}:o]),$=Object.hasOwn(i.fields,"label")&&!i.fields.label.label&&!/\{\s*label\b/.test(i.label??`{${$n(i)??""}}`),ee=Object.fromEntries([...$?[["label","Label"]]:[],...Object.entries(i.fields).filter(([,r])=>r.label).map(([r,o])=>[r,o.label]),...v.filter(([,r])=>r.label).map(([r,o])=>[r,o.label])]),W=Object.keys(ee).length>0,L=Object.entries(i.fields).filter(([,r])=>r.type==="enum"&&(r.optionLabels&&Object.keys(r.optionLabels).length>0||r.multiple)),l=r=>o=>typeof o=="string"&&r.optionLabels&&Object.hasOwn(r.optionLabels,o)?r.optionLabels[o]:Ye(String(o)),M=Object.fromEntries(L.map(([r,o])=>[r,o.multiple?z=>Array.isArray(z)?z.map(l(o)).join(", "):l(o)(z):l(o)])),N=L.length>0,C=Object.fromEntries(Object.entries(i.fields).filter(([,r])=>r.default!==void 0).map(([r,o])=>[r,o.default]));X.set(p,C);let _=Object.fromEntries(Object.entries(xe(i.edges)).map(([r,{renamedFrom:o,...z}])=>[r,z])),I=Object.entries(i.fields).flatMap(([r,o])=>o.aliases?[[r,o.aliases]]:[]),P=r=>i[r]?{[r]:i[r]}:{};return Qe(p,{fields:ve(x),edges:_,...P("plural"),...P("noun"),...P("aliases"),...I.length>0?{fieldAliases:Object.fromEntries(I)}:{},...P("description"),...w?{label:r=>se(w,{node:r,kinds:k,today:a(),money:O})||r.id}:{},...j?{describe:r=>se(j,{node:r,kinds:k,today:a(),money:O})}:{},...P("lifecycle"),...P("figure"),...P("fieldRoles"),...P("people"),archives:i.archives,...i.tidying?{tidying:i.tidying}:{},...v.length>0?{computed:Object.fromEntries(v.map(([r,o])=>[r,Vn(o,S?.includes(r)??!1,O)??i.computed[r]]))}:{},...W||N||i.glance||i.page?{display:{...W?{labels:ee}:{},...N?{format:M}:{},...i.glance?{glance:[...i.glance]}:{},...i.page?{page:i.page}:{}}}:{},...Object.keys(C).length>0?{defaults:C}:{},...e.kinds[p]?.keptInStep?{keptInStep:e.kinds[p].keptInStep}:{},...e.kinds[p]?.derives?{derives:G(e.kinds[p].derives)}:{}})}),B=an(ie,n.computed);function T(p){return B.tryDefinition(p.kind)?.label?.(p)??p.id}let $e=p=>({id:"",kind:p,...X.get(p)}),Pe=[];for(let[p,i]of Object.entries(n.acts??{})){let x=e.acts[p],{title:w,effects:j,guard:S,refusal:v,destructive:$,idempotent:ee,creates:W,connects:L,severs:l,writes:M,writesOther:N,sets:C}=x,_={};for(let c of j)"through"in c&&(_[c.through]=[...new Set([..._[c.through]??[],...Object.keys(c.set)])]);let I=new Map(x.args),P={};for(let[c,A]of I)P[c]=Nn(A,O);let r=[i.on??[]].flat(),o=new Map(x.exprs),z=j.find(c=>"create"in c),J=(c,A,u,b=null)=>{if(q(c)&&"expr"in c)return Y(o.get(c.expr),{graph:u,subject:b,kinds:k,bindings:A,today:a(),...f});let h=me(c);return h===void 0?typeof c=="string"&&c.startsWith("$$")?c.slice(1):c:h==="now"?new Date().toISOString():h==="today"?a():A[h]},de=(c,A)=>{if(!z)return"";let u=n.kinds[z.create].fields,b=$e(z.create),h=[];for(let[R,ce]of Object.entries(z.set??{})){try{b[R]=J(ce,c,A)??b[R]}catch{}let ae=me(ce);ae&&c[ae]!==void 0&&h.push(R)}let V=T(b).trim(),ne=h.filter(R=>b[R]!==!1&&u[R].type!=="text"&&!(/[^]{41}/.test(b[R])||/ .*[.!?]$/.test(b[R])&&!/[ .][A-Z]\w{0,3}\.$/.test(b[R]))&&T({...b,[R]:void 0}).trim()===V).map(R=>b[R]===!0?u[R].label??Je(R):vn(b[R],u[R].format,a(),[],O));return V&&ne.length>0?`${V} (${ne.join(", ")})`:V};Pe.push(fn(p,{input:ve(P),title:w,...i.description?{description:i.description}:{},...i.fromTheOtherEnd?{fromTheOtherEnd:i.fromTheOtherEnd}:{},...I.has(Q)?{subject:{kinds:r.length>0?r:"*",arg:Q}}:{},...$?{destructive:!0}:{},...ee?{idempotent:!0}:{},...W.length>0?{creates:W}:{},...L.length>0?{connects:L}:{},...l.length>0?{severs:l}:{},writes:M,...Object.keys(N).length>0?{writesOther:N}:{},...Object.keys(_).length>0?{writesLinked:_}:{},...Object.keys(C).length>0?{sets:C}:{},...S?{allowedOn:(c,A)=>{let u=c.getNode(A);if(!u||r.length>0&&!r.includes(u.kind))return!1;try{return Y(S,{graph:c,subject:u,kinds:k,bindings:{},today:a(),...f})===!0}catch{return!1}}}:{},describe:(c,A)=>{let u=typeof c[Q]=="string"?A.getNode(c[Q]):void 0,b=u?T(u):de(c,A);return b?`${w}: ${b}`:w},apply(c,A){let u=c.graph,b=typeof A[Q]=="string"?A[Q]:void 0,h=b?u.getNode(b):void 0;if(b&&!h&&ge(b),h&&r.length>0&&!r.includes(h.kind))throw new U(`"${w}" acts on ${r.join(" or ")}, not on ${Xe(h.kind)}`,"invalid");let V={};for(let[s,m]of Object.entries(A))m!==void 0&&(V[s]=m);if(S&&h){let s;try{s=Y(S,{graph:u,subject:h,kinds:k,bindings:V,today:a(),...f})}catch(m){throw m instanceof oe?new U(`"${w}" could not be judged: ${m.sentence}`):m}if(s!==!0)throw new U(v?se(v,{node:h,kinds:k,graph:u,bindings:V,today:a(),money:O}):`"${w}" is not allowed for ${T(h)} right now`)}let ne=new Map,R=s=>u.has(s)||[...ne.values()].includes(s),ce=new Set,ae=s=>{let m=sn(s);ce.has(m)||(ce.add(m),c.removeEdge(s))},te=(s,m)=>{let g=me(s);if(g==="subject")return b;if(g==="me"){let y=c.me;if(y&&n.kinds[u.getNode(y)?.kind]?.people)return y;throw new U(`"${w}" is done as you, and you have no record here`)}if(ne.has(g))return ne.get(g);try{return J(s,V,u,m??h??null)}catch(y){throw y instanceof oe?new U(`"${w}" could not work out a value: ${y.sentence}`):y}};for(let s of j)if("create"in s){let m=n.kinds[s.create],g=$e(s.create);for(let[H,re]of Object.entries(s.set??{})){let Me=te(re,void 0);Me!==void 0&&(g[H]=Me)}let y=$n(m),D=String((y&&g[y])??s.create),le=ln(D,s.create,g,(H,re)=>cn(n.policy?.sees,H,re)),F=c.freshId(le?s.create:D,s.create,g);c.addNode({...g,id:F}),s.as&&ne.set(s.as,F)}else if("connect"in s||"sever"in s){let m="connect"in s?s.connect:s.sever,g=String(te(s.from,void 0)??""),y=String(te(s.to,void 0)??"");if(R(g)||ge(g),R(y)||ge(y),"connect"in s){if(E.get(m)?.cardinality==="one")for(let D of u.out(g,m))D.id!==y&&ae({kind:m,from:g,to:D.id});u.out(g,m).some(D=>D.id===y)||c.addEdge({kind:m,from:g,to:y})}else ae({kind:m,from:g,to:y})}else if("through"in s){if(!h)throw new U(`"${w}" carries a change to linked records, and has no record to start from`,"invalid");let g=E.get(s.through)?.from.includes(h.kind)??!0?u.out(h.id,s.through):u.in(h.id,s.through);for(let y of g){let D={};for(let[le,F]of Object.entries(s.set)){let H;if(me(F)==="to")H=y.id;else if(q(F)&&"expr"in F)try{H=Y(o.get(F.expr),{graph:u,subject:h,kinds:k,bindings:{...V,to:y},today:a(),...f})}catch(re){throw re instanceof oe?new U(`"${w}" could not work out a value for ${T(y)}: ${re.sentence}`):re}else H=te(F,void 0);H!==void 0&&(D[le]=H)}Object.keys(D).length>0&&c.patchNode(y.id,D)}}else if("set"in s){let m=String(te(s.target??"$subject",void 0)??""),g=u.getNode(m);!g&&!R(m)&&ge(m);let y={};for(let[D,le]of Object.entries(s.set)){let F=te(le,g);F!==void 0&&(y[D]=F)}Object.keys(y).length>0&&c.patchNode(m,y)}else if("remove"in s){let m=String(te(s.remove,void 0)??"");u.has(m)||ge(m),c.removeNode(m)}else if("replace"in s&&h){let m=A.to;for(let g of s.replace){let y=E.get(g)?.from.includes(h.kind)??!0;for(let D of y?u.out(h.id,g):u.in(h.id,g))g===s.keep&&D.id===m||ae(y?{kind:g,from:h.id,to:D.id}:{kind:g,from:D.id,to:h.id})}}}}))}let Te=[];for(let[p,i]of Object.entries(n.rules??{})){let{title:x,require:w,when:j,says:S,covers:v}=e.rules[p],$=i.repairs??[],ee=(L,l,M=a(),N)=>{let C=[],_={graph:L,subject:l,kinds:k,today:M,...f,...N?{linked:N}:{},onUnread:o=>C.push(o)},I,P=[];try{if(j&&Y(j,_)!==!0)return[];if(v&&l?(P=On(L,l,v),I=P.length===0):I=Y(w,_)===!0,!I&&C.length>0)throw new oe(`it reads ${kn(C[0])}`,0)}catch(o){throw o instanceof wn?new dn(o.sentence):o instanceof oe?new Error(o.sentence):o}if(I)return[];let r=$.flatMap(o=>{let z=n.acts?.[o.act],J={},de=l&&z?.on&&z.fromTheOtherEnd&&![z.on].flat().includes(l.kind)?Fn(e.acts[o.act].args,l.kind):void 0;de?J[de]=l.id:l&&(z?.on||/^(edit|remove|archive|unarchive|merge|skip|detach|split)-/.test(o.act))&&(J[Q]=l.id);for(let[u,b]of Object.entries(o.args??{}))J[u]=me(b)==="subject"?l?.id:b;let A=(z?e.acts[o.act].args:[]).filter(([u,b])=>b.required&&J[u]===void 0).map(([u])=>u);return[{mutation:o.act,label:o.label??(de?z.fromTheOtherEnd:z?.title)??o.act.replace(/-/g," "),args:J,...A.length>0?{missing:A}:{}}]});return v&&l?P.map(o=>({invariant:p,subjectId:l.id,label:x,message:S?se(S,{node:l,kinds:k,graph:L,today:M,money:O,bindings:{[l.kind]:l,[o.kind]:o}}):`${T(l)}: ${x} \u2014 ${T(o)}`,nodeIds:[l.id,o.id],repairs:r})):[{invariant:p,...l?{subjectId:l.id}:{},label:x,message:S?se(S,{node:l,kinds:k,graph:L,today:M,money:O}):l?`${T(l)}: ${x}`:x,nodeIds:l?[l.id]:[],repairs:r}]},W={label:x,shape:{over:i.over,require:w,...v?{covers:v}:{},when:j,says:S,declared:n.kinds,money:O,kinds:k,today:a},judgment:{...i.require?{require:i.require}:{},...i.covers?{covers:i.covers}:{},...i.when?{when:i.when}:{},...i.says?{says:i.says}:{}},...i.description?{description:i.description}:{},...$.length>0?{repairs:$.map(L=>L.act)}:{}};Te.push(i.over==="graph"?Se(p,{scope:"graph",...W,evaluate:({graph:L,today:l,context:M})=>ee(L,null,l,M?.linked)}):Se(p,{scope:{kind:i.over},...W,evaluate:({graph:L,subject:l,today:M,context:N})=>ee(L,l,M,N?.linked)}))}let Ge=n.policy&&{...n.policy,...n.roles?{roles:n.roles}:{}},we={name:n.name,schema:B,mutations:Pe,invariants:Te,...Ge?{policy:Ge}:{},...e.brand?{brand:e.brand}:{},...n.modules?{modules:n.modules}:{},...n.lenses?{lenses:n.lenses}:{},...n.pages?{pages:n.pages}:{},...n.settings?{settings:n.settings}:{},...n.connections?{connections:n.connections}:{},...n.forms?{forms:n.forms}:{},...n.publishing?{publishing:n.publishing}:{},...n.tidying?{tidying:n.tidying}:{},...n.purpose?{purpose:n.purpose}:{},...e.viewSpecs?{viewSpecs:e.viewSpecs}:{},...e.home?{home:e.home}:{},version:n.version??1};return Sn(we,n),Cn.set(we,e),{ok:!0,app:we,document:n,findings:e.findings,sights:n.policy?.sees,kinds:k}}function Vn(e,d,n){let t=d||e.format==="duration",a=e.format==="money"||e.format==="percent"||!e.format&&e.unit!==void 0;if(!(!t&&!a))return{...e,...t?{as:"duration"}:{},...a?{amount:{...n,...e.format?{format:e.format}:{},...e.unit?{unit:e.unit}:{},...e.places===0?{places:0}:{}}}:{}}}export{q as a,xn as b,Zn as c,Qn as d,Ln as e,Q as f,me as g,$n as h,xt as i,In as j};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as T}from"./chunk.
|
|
1
|
+
import{G as T}from"./chunk.3VEZ5MOC.js";import{b as g}from"./chunk.AJZBJBMO.js";var s=g(T(),1),m="data-graview-roving",E="data-graview-roving-item",L={ArrowDown:{column:1,both:1},ArrowUp:{column:-1,both:-1},ArrowRight:{column:0,both:1},ArrowLeft:{column:0,both:-1}},w=e=>e instanceof HTMLElement&&(e.isContentEditable||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLInputElement&&!["button","checkbox","radio","submit"].includes(e.type));function p(e){return[...e.querySelectorAll(`[${E}]`)].filter(c=>c.closest(`[${m}]`)===e&&!c.disabled&&c.getAttribute("aria-hidden")!=="true")}var M=e=>(e.textContent?.trim()||e.getAttribute("aria-label")||"").toLowerCase();function H({flow:e="column",letters:c=!1}={}){let a=(0,s.useRef)(null),i=(0,s.useRef)(null),f=(0,s.useCallback)(()=>{let t=a.current;if(!t)return;let n=p(t);if(n.length===0)return;let o=typeof document>"u"?null:document.activeElement,u=n.find(r=>r===o)??(i.current&&n.includes(i.current)?i.current:n[0]);for(let r of n){let l=r===u?"0":"-1";r.getAttribute("tabindex")!==l&&r.setAttribute("tabindex",l)}},[]);(0,s.useLayoutEffect)(f);let d=t=>{t&&(i.current=t,t.focus(),f())};return{ref:a,[m]:c?"letters":"",onFocus:t=>{let n=t.target.closest?.(`[${E}]`);n&&n.closest(`[${m}]`)===a.current&&i.current!==n&&(i.current=n,f())},onKeyDown:t=>{let n=a.current;if(!n||t.metaKey||t.ctrlKey||t.altKey||w(t.target))return;let o=p(n),u=o.findIndex(l=>l===t.target||l.contains(t.target));if(u<0)return;let r=L[t.key]?.[e];if(r){t.preventDefault(),t.stopPropagation(),d(o[Math.max(0,Math.min(o.length-1,u+r))]);return}if(t.key==="Home"||t.key==="End"){t.preventDefault(),t.stopPropagation(),d(t.key==="Home"?o[0]:o[o.length-1]);return}if(c&&t.key.length===1&&t.key.trim()!==""){let l=t.key.toLowerCase(),y=[...o.slice(u+1),...o.slice(0,u+1)].find(b=>M(b).startsWith(l));if(!y)return;t.preventDefault(),t.stopPropagation(),d(y)}}}}export{E as a,H as b};
|
|
@@ -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{a as y}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{a as y}from"./chunk.LFFJB6D3.js";import{m as g}from"./chunk.H3IGXHZR.js";import{G as R,La as m,W as c}from"./chunk.3VEZ5MOC.js";import{a as f}from"./chunk.SDO3U72B.js";import{ua as p}from"./chunk.6AANHELP.js";import{b as u}from"./chunk.AJZBJBMO.js";var o=u(R(),1);var r=u(c(),1),S,h=()=>S??=m(f(()=>(__graviewPreload(import.meta.url,["./chunk.EGSOHTZZ.js","./chunk.2KCDLCB2.js","./chunk.UD7VLXPM.js","./chunk.3DEWQDP7.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ECNGVD25.js"))));function L(e){let[n,t]=(0,o.useState)(()=>h().current);return(0,o.useEffect)(()=>{if(!e||n)return;let i=!0;return h().load().then(a=>i&&t(a),()=>{}),()=>{i=!1}},[e,n]),n}function D(e,n){let t=L(n.length>0);return(0,o.useMemo)(()=>t?t.withLines(e,n):n,[t,e,n])}function I(e,n){let t=L(n.some(i=>i.shape));return(0,o.useMemo)(()=>{let i=new Map;if(!t)return i;for(let a of n){let l=t.ruleLine(a,e);l&&i.set(a.name,l)}return i},[t,e,n])}function M(e){let n=e.line;if(!(!n||e.message.endsWith(` \u2014 ${n.text}`)||e.message===b(e)))return e.message}function b(e){let n=e.line;return n?n.record!==void 0?`${n.record} \u2014 ${n.text}`:n.text:e.message}var P={name:{},op:{color:"var(--graview-ink-muted)",fontWeight:500},value:{fontWeight:600,fontVariantNumeric:"tabular-nums"},word:{color:"var(--graview-ink-muted)"},open:{color:"var(--graview-ink-faint)"},close:{color:"var(--graview-ink-faint)"}};function w({parts:e}){return(0,r.jsx)(r.Fragment,{children:e.map((n,t)=>(0,r.jsxs)("span",{children:[n.space?" ":"",(0,r.jsx)("span",{"data-graview-rule-part":n.as,style:P[n.as],children:n.text})]},t))})}function x(e,n){let t=p(e?.tryDefinition(n),n);return t.charAt(0).toUpperCase()+t.slice(1)}function C({line:e,schema:n,brand:t,lead:i=e.record===void 0?"kind":"record",stacked:a=!1,style:l}){let d=e.kind,s=i==="kind"?d?x(n,d):void 0:i==="record"?e.record:void 0,k=i==="kind"&&s?`${s}: ${e.said}`:i==="record"&&s?`${s} \u2014 ${e.said}`:e.said;return(0,r.jsxs)("span",{"data-graview-rule-line":"",style:{overflowWrap:"anywhere",...l},children:[(0,r.jsx)("span",{style:g,children:k}),(0,r.jsxs)("span",{"aria-hidden":"true",children:[i!=="none"&&d?(0,r.jsx)("span",{style:{display:"inline-flex",verticalAlign:"-0.1em",marginRight:"0.4em"},children:(0,r.jsx)(y,{kind:d,...n?{schema:n}:{},...t?{brand:t}:{},size:13})}):null,s?(0,r.jsxs)("span",{"data-graview-rule-head":"",style:{fontWeight:600,marginRight:i==="record"||a?0:"0.6em"},children:[s,i==="record"&&!a?(0,r.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontWeight:400},children:" \u2014 "}):null]}):null,a&&s?(0,r.jsx)("br",{}):null,(0,r.jsx)(w,{parts:e.parts}),e.when&&e.when.length>0?(0,r.jsxs)("span",{"data-graview-rule-when":"",style:{color:"var(--graview-ink-faint)"},children:[", when ",(0,r.jsx)(w,{parts:e.when})]}):null]})]})}function z(e){return e.line?e.label&&e.label.trim().length>0?e.label:void 0:e.label&&e.label!==e.message&&!e.message.startsWith(e.label)?e.label:void 0}export{D as a,I as b,M as c,C as d,z as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk.WVUJXDXZ.js";import{b as P}from"./chunk.
|
|
1
|
+
import"./chunk.WVUJXDXZ.js";import{b as P}from"./chunk.L7XKYGV7.js";import"./chunk.CE3NKAF7.js";import"./chunk.R3GE37OI.js";import"./chunk.2KCDLCB2.js";import"./chunk.UD7VLXPM.js";import"./chunk.3DEWQDP7.js";import"./chunk.JULD4XFB.js";import"./chunk.GRTBEA7O.js";import{Aa as E,Ba as L,xa as M,za as T}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";function G(r,l,i){let g=r.getAttribute("data-record")??"",m=r.getAttribute("data-field")??"",c=Number(r.getAttribute("data-index")??"0"),e=[...l?.node?[l.node]:[],...l?.nodes??[]].find(p=>p.id===g);if(!g||!e)return{why:g?`names a record it was not shown ("${g.slice(0,80)}")`:"names no record (data-record)"};let h=m&&Object.hasOwn(e,m)?e[m]:void 0,f=(Array.isArray(h)?h:[h]).filter(M),o=Number.isInteger(c)&&c>=0?f[c]:void 0,v=e.label?`"${e.label}"`:"a record";return m?o?(i==="video"?!E(o):!E(o)&&!T(o))?{why:`names "${o.name}" on ${v}, which is not ${i==="video"?"a video":"a picture or a video"}`}:{file:o,on:e}:{why:f.length===0?`names "${m}" on ${v}, which holds no file it was shown`:`names file ${r.getAttribute("data-index")} of "${m}" on ${v}, which holds ${f.length}`}:{why:`names no field of ${v} (data-field)`}}var C=r=>`${r.caption?.trim()||r.name}, ${L(r)}`;function N(r,l,i,g,m,c={}){let e=r.createElement("video");e.setAttribute("data-graview-video",""),e.setAttribute("playsinline",""),e.setAttribute("aria-label",C(i)),c.autoplay?(e.setAttribute("data-graview-video-autoplay",""),e.setAttribute("muted",""),e.muted=!0,e.setAttribute("loop",""),e.setAttribute("preload",c.still?"metadata":"auto"),c.still?e.setAttribute("data-graview-video-still",""):e.setAttribute("autoplay","")):(e.setAttribute("controls",""),e.setAttribute("preload","metadata"));let h=i.poster?g(i.poster):void 0;h&&e.setAttribute("poster",h),i.width&&i.height?(e.setAttribute("width",String(i.width)),e.setAttribute("height",String(i.height)),e.style.aspectRatio=`${i.width} / ${i.height}`):e.style.aspectRatio="16 / 9",c.cover?(e.setAttribute("data-graview-video-cover",""),e.style.cssText+=";display:block;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;background:#000"):e.style.cssText+=";display:block;width:100%;height:auto;max-height:80vh;background:#000;border-radius:var(--graview-radius, 8px)";let f=i.captions?g(i.captions):void 0;if(f){let o=r.createElement("track");o.setAttribute("kind","captions"),o.setAttribute("src",f),o.setAttribute("srclang","en"),o.setAttribute("label","Captions"),o.setAttribute("default",""),e.appendChild(o)}return i.duration===void 0&&e.addEventListener("loadedmetadata",()=>Number.isFinite(e.duration)&&e.duration>0&&e.setAttribute("aria-label",C({...i,duration:e.duration}))),e.setAttribute("src",m),l.appendChild(e),e}function S(r,l){let i=r.document,g=new Set,m=t=>{g.has(t)||(g.add(t),l.onProblem?.(t))},c=t=>{let a=l.file?l.file(t):t;if(a!==void 0)try{let s=new r.URL(a,i.baseURI);return s.origin===r.location.origin&&/^https?:$/.test(s.protocol)?a:void 0}catch{return}},e=new WeakMap,h=typeof r.matchMedia=="function"?r.matchMedia("(prefers-reduced-motion: reduce)"):void 0,f=new Set,o=(t,a)=>{a?(t.removeAttribute("autoplay"),t.setAttribute("data-graview-video-still",""),t.pause()):(t.removeAttribute("data-graview-video-still"),t.setAttribute("autoplay",""),t.setAttribute("preload","auto"),t.play?.()?.catch?.(()=>{}))},v=()=>{for(let t of f)t.isConnected?o(t,h?.matches===!0):f.delete(t)};h?.addEventListener?.("change",v);let p,k=t=>{if(typeof t.close=="function")return t.close();t.removeAttribute("open"),t.dispatchEvent(new r.Event("close"))},w=(t,a)=>m(`The ${t} in the view ${l.view} was not drawn: it ${a}.`);return{refresh(t){let a=l.shown();for(let s of Array.from(t.querySelectorAll("graview-video"))){let d=s.shadowRoot??s.attachShadow({mode:"open"});if(!l.pictures){e.delete(s),d.replaceChildren(),w("video",`asks for no pictures: a view places a record's video where its manifest says "pictures": true`);continue}let u=G(s,a,"video"),n={autoplay:s.hasAttribute("autoplay"),cover:s.hasAttribute("cover"),still:h?.matches===!0},b="file"in u?JSON.stringify([u.file,n.autoplay,n.cover]):"";if(e.get(s)===b&&d.childNodes.length>0)continue;if(e.set(s,b),d.replaceChildren(),"why"in u){w("video",u.why);continue}let A=c(u.file.href);if(!A){w("video",`names "${u.file.name}", which this host does not say it serves on this page`);continue}let $=i.createElement("style");$.textContent=":host { display: block; min-width: 0; }",d.appendChild($);let y=N(i,d,u.file,c,A,n);n.autoplay&&f.add(y)}},open(t){if(!l.pictures)return w("full-screen viewer",`asks for no pictures: a view opens a record's picture or video full screen where its manifest says "pictures": true`),!1;let a=G(t,l.shown(),"any");if("why"in a)return w("full-screen viewer",a.why),!1;let s=c(a.file.href);if(!s)return w("full-screen viewer",`names "${a.file.name}", which this host does not say it serves on this page`),!1;p&&k(p);let d=a.file,u=d.caption?.trim()||d.name,n=i.createElement("dialog");n.setAttribute("data-graview-lightbox",""),n.setAttribute("aria-label",E(d)?C(d):u),n.style.cssText="padding:0;border:0;border-radius:var(--graview-radius, 8px);max-width:min(96vw, 1600px);max-height:94vh;background:var(--graview-panel, Canvas);color:var(--graview-ink, CanvasText)";let b=i.createElement("figure");if(b.style.cssText="margin:0;display:grid;gap:8px;padding:10px",E(d))N(i,b,d,c,s);else{let x=i.createElement("img");x.setAttribute("src",s),x.setAttribute("alt",u),x.style.cssText="max-width:100%;max-height:80vh;object-fit:contain;display:block;margin:0 auto",b.appendChild(x)}let A=i.createElement("figcaption");A.style.cssText="display:flex;gap:12px;align-items:center;justify-content:space-between";let $=i.createElement("span");$.textContent=E(d)&&d.duration!==void 0?`${u} \xB7 ${P(d.duration)}`:u;let y=i.createElement("button");return y.type="button",y.textContent="Close",y.addEventListener("click",()=>k(n)),A.append($,y),b.appendChild(A),n.appendChild(b),n.addEventListener("click",x=>x.target===n&&k(n)),n.addEventListener("close",()=>{n.remove(),p===n&&(p=void 0),t.focus?.()}),i.body.appendChild(n),p=n,typeof n.showModal=="function"?n.showModal():n.setAttribute("open",""),y.focus(),!0},dispose(){p&&k(p),p?.remove(),p=void 0,h?.removeEventListener?.("change",v),f.clear()}}}export{S as createGuestMedia,G as namedFile};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as c,b as d,c as e,d as f,e as g,f as h,g as i,h as j,i as k,j as l,k as m,l as n,m as o,n as p}from"./chunk.42C3FIKK.js";import{a,b}from"./chunk.2ME4DVBI.js";import"./chunk.XXCHO2A5.js";import"./chunk.SADR3MQI.js";import"./chunk.TFJA4QV4.js";import"./chunk.HWFJQ42Y.js";import"./chunk.QUETLFBJ.js";import"./chunk.JULD4XFB.js";import"./chunk.GRTBEA7O.js";import"./chunk.H3IGXHZR.js";import"./chunk.7TDML5YU.js";import"./chunk.3VEZ5MOC.js";import"./chunk.SDO3U72B.js";import"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{j as ARRANGE_NARROW,o as ArrangeBar,e as CHIP_FIELDS,d as MANY_AT_THE_FAR_END,c as TYPED_FROM,p as arrangementCaption,a as arrangementOf,i as chipOffers,m as directionWords,g as farCount,f as farCounts,l as inSentence,h as offeredFilters,n as preloadArrangeLists,k as sayCondition,b as withArrangement};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as Mt}from"./chunk.JO2X52D4.js";import{a as Ae,b as me}from"./chunk.ZRBGYXAO.js";import{a as pe}from"./chunk.CEQQIW7Z.js";import{a as St,b as At,c as Gt,d as fe,e as Ot,f as Kt,g as Pt}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{a as Mt}from"./chunk.JO2X52D4.js";import{a as Ae,b as me}from"./chunk.ZRBGYXAO.js";import{a as pe}from"./chunk.CEQQIW7Z.js";import{a as St,b as At,c as Gt,d as fe,e as Ot,f as Kt,g as Pt}from"./chunk.VES4XMZX.js";import{a as Ee,e as xt}from"./chunk.BBLIT7S7.js";import{b as wt,h as vt,i as kt,k as bt}from"./chunk.CGBOPPNL.js";import"./chunk.LMTG5NPG.js";import{h as Tt}from"./chunk.GG47EIKO.js";import"./chunk.NYLKG25K.js";import{e as Rt}from"./chunk.MK5RPEB2.js";import{c as Wt,f as We,g as Re}from"./chunk.TOUSIUJF.js";import{d as Et}from"./chunk.QDVGHI7R.js";import{b as ue,e as ce}from"./chunk.KUCBNMIY.js";import"./chunk.M5FP4Y4Q.js";import"./chunk.CNN32262.js";import{a as B}from"./chunk.SDO3U72B.js";import"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var Lt=["good","warn","bad","neutral","accent"],_t=["value","max","aria-label","placeholder","disabled"],Vt=["click","change"],Ge=["_blank","_self"],It=["section","div","span","strong","p","hr","a","button","input","progress"],ge={type:{oneOf:Lt}},Oe={"gv-card":{host:"section",properties:{tone:ge},events:{},children:"any"},"gv-group":{host:"div",properties:{direction:{type:{oneOf:["row","column"]}}},events:{},children:"any"},"gv-title":{host:"strong",properties:{},events:{},children:"text"},"gv-text":{host:"p",properties:{tone:ge},events:{},children:"text"},"gv-badge":{host:"span",properties:{tone:ge},events:{},children:"text"},"gv-field":{host:"div",properties:{label:{type:"string"}},events:{},children:"text"},"gv-progress":{host:"progress",properties:{value:{type:"number",as:"value"},max:{type:"number",as:"max"},label:{type:"string",as:"aria-label"}},events:{},children:"none"},"gv-divider":{host:"hr",properties:{},events:{},children:"none"},"gv-link":{host:"a",properties:{href:{type:"url"}},events:{},children:"text"},"gv-button":{host:"button",properties:{tone:ge,disabled:{type:"boolean",as:"disabled"}},events:{press:{from:"click"}},children:"text"},"gv-input":{host:"input",properties:{label:{type:"string",as:"aria-label"},value:{type:"string",as:"value"},placeholder:{type:"string",as:"placeholder"}},events:{change:{from:"change",detail:"value"}},children:"none"}},Ke=1e4;var fr=0,mr=1,gr=2,yr=3,Ct=1,hr=2,wr=3,vr=1,kr=3,br=8,Pe="~",Le=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),ne=t=>typeof t=="object"&&t!==null&&!Array.isArray(t);function Nt(t,e){return e.type==="url"?"href":e.as??`data-gv-${t.toLowerCase()}`}var xr=2e3;function Ht(t,e){if(e==null)return{ok:!0,value:null};let a=t.type;if(a==="boolean")return typeof e=="boolean"?{ok:!0,value:e}:{ok:!1,reason:"value"};if(a==="number")return typeof e=="number"&&Number.isFinite(e)?{ok:!0,value:String(e)}:{ok:!1,reason:"value"};if(typeof e!="string"||e.length>xr)return{ok:!1,reason:a==="url"?"url":"value"};if(typeof a=="object")return a.oneOf.includes(e)?{ok:!0,value:e}:{ok:!1,reason:"value"};if(a==="url"){let p;try{p=new URL(e)}catch{return{ok:!1,reason:"url"}}return p.protocol!=="https:"||p.hostname===""||!/^https:\/\//i.test(e)?{ok:!1,reason:"url"}:{ok:!0,value:p.href}}return{ok:!0,value:e}}function Sr(t){let e=t.host==="a";return It.includes(t.host)&&(t.target===void 0||e&&Ge.includes(t.target))&&Object.values(t.properties).every(a=>a.type!=="url"||e)&&Object.values(t.properties).every(a=>a.as===void 0||a.type!=="url"&&_t.includes(a.as))&&Object.values(t.events).every(a=>Vt.includes(a.from))}function _e(t,e){let a=e.kit??Oe,p=e.maxNodes??2e3,o=t.ownerDocument,m=[],g=new Map,w={dom:t,name:Pe,component:{host:"div",properties:{},events:{},children:"any"},children:[],listeners:new Map,id:Pe};g.set(Pe,w);let E=e.links?new Set(e.links.origins.flatMap(n=>{try{let c=new URL(n);return c.protocol==="https:"&&c.hostname!==""?[c.origin]:[]}catch{return[]}})):void 0,A=0,y=0,V=!1,f=n=>{m.push(n),m.length>200&&m.shift()},v=()=>({dom:o.createComment(""),children:[],refused:!0,listeners:new Map}),G=(n,c,h)=>{let k=n.component;if(!Le(k.properties,c))return f({reason:"property",element:n.name,name:c});let l=k.properties[c],d=Ht(l,h),b=d.ok&&l.type==="url"&&E&&typeof d.value=="string"&&!E.has(new URL(d.value).origin)?{ok:!1,reason:"url"}:d,K=n.dom,R=Nt(c,l);if(!b.ok)return K.removeAttribute(R),f({reason:b.reason,element:n.name,name:c});let P=b.value;P===null||P===!1?K.removeAttribute(R):K.setAttribute(R,P===!0?"":P),R==="value"&&"value"in K&&(K.value=typeof P=="string"?P:""),R==="disabled"&&"disabled"in K&&(K.disabled=P!==null&&P!==!1)},S=(n,c,h)=>{let k=n.component;if(!Le(k.events,c))return f({reason:"event",element:n.name,name:c});let l=n.listeners.get(c);if(l&&(l(),n.listeners.delete(c),y-=1),h==null)return;if(!ne(h)||typeof h.listener!="number")return f({reason:"value",element:n.name,name:c});let d=h.listener,b=k.events[c],K=n.dom,R=()=>e.onEvent(d,b.detail==="value"?String(K.value??""):void 0);K.addEventListener(b.from,R),n.listeners.set(c,()=>K.removeEventListener(b.from,R)),y+=1},W=n=>{if(!n.refused){A-=1,n.id!==void 0&&g.delete(n.id);for(let c of n.listeners.values())c();y-=n.listeners.size,n.listeners.clear();for(let c of n.children)W(c)}},T=(n,c)=>{if(!ne(n)||typeof n.id!="string"||g.has(n.id))return f({reason:"record"}),v();if(A>=p)return f({reason:"budget"}),V||(V=!0,e.onOverBudget?.()),v();let h=n.id,k=c.component.children;if(n.type===br)return v();if(n.type===kr){if(k==="none")return f({reason:"child",element:c.name}),v();let R={dom:o.createTextNode(String(n.data??"").slice(0,Ke)),children:[],text:!0,listeners:new Map,id:h};return g.set(h,R),A+=1,R}if(n.type!==vr)return f({reason:"record"}),v();let l=String(n.element);if(!Le(a,l)||!Sr(a[l]))return f({reason:"element",element:l}),v();if(k!=="any")return f({reason:"child",element:l}),v();let d=a[l],b=o.createElement(d.host);b.setAttribute("data-gv",l.replace(/^gv-/,"")),b.className=`graview-guest-${l.replace(/^gv-/,"")}`,d.host==="a"&&(b.setAttribute("rel","noopener noreferrer"),b.setAttribute("target",d.target??"_blank"),b.setAttribute("referrerpolicy","no-referrer")),d.host==="button"&&b.setAttribute("type","button");let K={dom:b,name:l,component:d,children:[],listeners:new Map,id:h};if(g.set(h,K),A+=1,ne(n.properties))for(let[R,P]of Object.entries(n.properties))G(K,R,P);if(ne(n.attributes))for(let R of Object.keys(n.attributes))f({reason:"attribute",element:l,name:R});if(ne(n.eventListeners))for(let[R,P]of Object.entries(n.eventListeners))S(K,R,P);if(Array.isArray(n.children))for(let R of n.children){let P=T(R,K);K.children.push(P),b.appendChild(P.dom)}return K},O=n=>{if(!Array.isArray(n))return f({reason:"record"});let[c,h]=n,k=typeof h=="string"?g.get(h):void 0;if(!k)return f({reason:"record"});switch(c){case fr:{if(k.text)return f({reason:"record"});let l=Number(n[3]),d=Number.isInteger(l)&&l>=0&&l<=k.children.length?l:k.children.length,b=T(n[2],k);k.dom.insertBefore(b.dom,k.children[d]?.dom??null),k.children.splice(d,0,b);return}case mr:{let l=Number(n[2]),d=k.children[l];if(!d)return f({reason:"record"});k.children.splice(l,1),d.dom.parentNode?.removeChild(d.dom),W(d);return}case gr:if(!k.text)return f({reason:"record"});k.dom.data=String(n[2]??"").slice(0,Ke);return;case yr:{if(k===w||k.text)return f({reason:"record"});let l=String(n[2]),d=n[4]??Ct;return d===Ct?G(k,l,n[3]):d===wr?S(k,l,n[3]):f(d===hr?{reason:"attribute",element:k.name,name:l}:{reason:"record"})}default:return f({reason:"record"})}};return{apply(n,c){if(!Array.isArray(n))return f({reason:"record"}),!0;for(let h=0;h<n.length;h+=1){if(c&&h%32===0&&c())return!1;O(n[h])}return!0},get refused(){return m},get size(){return A},get listening(){return y},dispose(){for(let n of w.children)W(n);w.children.length=0,t.replaceChildren()}}}var Ve=`
|
|
2
2
|
.graview-guest { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: var(--graview-ink, inherit); font: inherit; }
|
|
3
3
|
.graview-guest-card { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid var(--graview-edge, #d0d0d0); border-radius: 10px; background: var(--graview-panel, transparent); }
|
|
4
4
|
.graview-guest-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
|
|
@@ -18,4 +18,4 @@ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=gl
|
|
|
18
18
|
.graview-guest [data-gv-tone="warn"] { color: var(--graview-warn, inherit); }
|
|
19
19
|
.graview-guest [data-gv-tone="accent"] { color: var(--graview-accent, inherit); }
|
|
20
20
|
.graview-guest [data-gv-tone="neutral"] { color: var(--graview-ink-muted, inherit); }
|
|
21
|
-
`;var Dt=new WeakSet;function Tr(t,e){if(t.startsWith("blob:"))return"blob:";try{return new URL(t,e.location.href).origin}catch{return t}}function jt(t,e,a){let p=Tr(e,t),o=`this page's Content-Security-Policy${a?` (${a})`:""} does not allow a worker from ${p}: it needs worker-src ${p}`;return Dt.has(t)||(Dt.add(t),t.console?.warn?.(`Graview: worker views cannot start on this page, because ${o}. A host that will not allow ${p} serves each view's whole script from its own origin and passes worker: { url } (the @graview/guest README, "What the host page allows").`)),o}function Mr(t,e){return t===""?!0:e.startsWith("blob:")?t.startsWith("blob"):e.startsWith(t)||t.startsWith(e)}function ye(t,e){let a="script"in e.source?t.URL.createObjectURL(new t.Blob([e.source.script],{type:"text/javascript"})):void 0,p="script"in e.source?a:e.source.url,o,m,g=!1,w=!1,E=0,A=0,y="",V=0,f=0,v=t.performance,G=v.now(),S,W=l=>{let d=l,b=String(d.effectiveDirective||d.violatedDirective||"").split(" ")[0];/^(worker-src|script-src|script-src-elem|child-src|default-src)$/.test(b)&&Mr(String(d.blockedURI??""),p)&&(S=b)},T=t.document;T?.addEventListener("securitypolicyviolation",W);let O=()=>T?.removeEventListener("securitypolicyviolation",W),n=()=>{w||(w=!0,m?.close(),o?.terminate(),o=void 0,t.clearTimeout(E),t.clearInterval(A),O(),a&&t.URL.revokeObjectURL(a))},c=(l,d)=>{w||(n(),e.onStop(l,d))},h=()=>{t.clearTimeout(E),O(),y=St();let l=new t.MessageChannel;m=l.port1;let d=Math.max(1,e.silentMs),b=Math.max(10,Math.min(1e3,Math.floor(d/4)));G=v.now();let K=G;A=t.setInterval(()=>{let P=v.now();if(P-K>b*2&&(G+=P-K-b),K=P,P-G>=d)return c("silent");V+=1,l.port1.postMessage({type:"heartbeat",beat:V})},b);let R={graview:"host-hello",protocol:1,nonce:y,view:e.name};o.postMessage(R,[l.port2]),e.onReady(y,l.port1,v.now()-k)},k=v.now();try{o=new t.Worker(p,{name:e.name})}catch(l){o=void 0;let d=l,b=d?.name==="SecurityError"?jt(t,p,S):`the worker could not be made: ${String(d?.message??l)}`;queueMicrotask(()=>c("start",b))}return o&&(E=t.setTimeout(()=>c("start",`it never said it was ready in ${e.readyMs.toLocaleString("en-US")} ms`),e.readyMs),o.onerror=l=>{let d=typeof l.message=="string"&&l.message!==""?l.message:void 0;if(g)return void e.onError?.(d??"an error");t.clearTimeout(E),t.setTimeout(()=>!g&&c("start",S?jt(t,p,S):d?`it failed before it said ready: ${d}`:"it failed before it said ready, and the engine gave no reason (a page policy that refuses it, or a script that does not load)"),0)},o.onmessage=l=>{if(!e.limiter.message()||g||!xt(l.data)||l.data.protocol!==1){e.onDropped();return}g=!0,h()}),{get worker(){return o},answer(l){let d=l;return typeof d!="object"||d===null||d.type!=="heartbeat"||d.nonce!==y?!1:(typeof d.beat=="number"&&d.beat>f&&d.beat<=V&&(f=d.beat,G=v.now()),!0)},stop:n}}function he(t,e){let a=e(),p=0;return{draw(o){let m=e();m-a>=1e3&&(a=m,p=0);let g=t(),w=o(()=>p+(e()-m)>=g);return p+=e()-m,w&&p<g}}}function Bt(t){return!Number.isFinite(t)||t<=60?1:Math.min(4,Math.round(t/60*10)/10)}function Ft(t,e){return{...t,pushMs:Math.round(t.pushMs*e),drawMs:Math.round(t.drawMs*e)}}var $t=new WeakMap;function Ut(t,e){let a=$t.get(t);return a!==void 0?a:($t.set(t,e),e)}var Er=B(()=>(__graviewPreload(import.meta.url,["./chunk.32SHA3EY.js","./chunk.GG47EIKO.js","./chunk.NYLKG25K.js","./chunk.AJZBJBMO.js"]),import("./chunk.U6QXLNHF.js"))),Wr=B(()=>(__graviewPreload(import.meta.url,["./chunk.EFVSZKB5.js","./chunk.G3GFDVO2.js","./chunk.D4WJ7OM5.js","./chunk.QDVGHI7R.js","./chunk.AKJS2NUM.js","./chunk.M5FP4Y4Q.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.T3WCRS6M.js"))),Rr=B(()=>(__graviewPreload(import.meta.url,["./chunk.RSMCTI2N.js","./chunk.AJZBJBMO.js"]),import("./chunk.UJPX3BUV.js"))),Ar=B(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.DWM7AR5Y.js","./chunk.6KJGRM7A.js","./chunk.WALVW3KJ.js","./chunk.SNHKYH72.js","./chunk.UGQYMN4J.js","./chunk.RG5G6YQD.js","./chunk.JQ63N4MZ.js","./chunk.Z3O2VZAJ.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.DKEIEH2D.js"))),Gr=B(()=>(__graviewPreload(import.meta.url,["./chunk.D4WJ7OM5.js","./chunk.QDVGHI7R.js","./chunk.AKJS2NUM.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.RJY7VJBH.js"))),Or=B(()=>(__graviewPreload(import.meta.url,["./chunk.BBLIT7S7.js","./chunk.AJZBJBMO.js"]),import("./chunk.RRCPEHM4.js"))),Kr=B(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.DWM7AR5Y.js","./chunk.6KJGRM7A.js","./chunk.WALVW3KJ.js","./chunk.SNHKYH72.js","./chunk.UGQYMN4J.js","./chunk.RG5G6YQD.js","./chunk.JQ63N4MZ.js","./chunk.Z3O2VZAJ.js","./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.7WHQWLL6.js"))),Pr=B(()=>(__graviewPreload(import.meta.url,["./chunk.QDVGHI7R.js","./chunk.AJZBJBMO.js"]),import("./chunk.EG7OOJH5.js"))),Lr=B(()=>(__graviewPreload(import.meta.url,["./chunk.ZEZUKRC6.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.KFT7JIEH.js"))),_r='a[href^="#"], [data-sight], [data-file]';function Vr(t,e,a){switch(t){case"manifest":return a??"Its manifest names something this app does not have.";case"source":return a??`Its code is longer than the ${e.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`;case"start":return`It could not start${a?`: ${a}.`:"."}`;case"error":return`It failed before it drew anything${a?`: ${a}`:"."}`;case"silent":return`It stopped answering for ${e.silentMs.toLocaleString("en-US")} ms.`;case"nodes":return`It drew more than the ${e.maxNodes.toLocaleString("en-US")} things a view may draw.`;case"flood":return`It sent more than ${e.messages} messages in ${e.messageWindowMs.toLocaleString("en-US")} ms.`;case"slow":return`It took longer than ${e.pushMs.toLocaleString("en-US")} ms to draw what it was shown.`}}function Ir(t,e){let a=t.ownerDocument,p=a.defaultView,{manifest:o}=e,m=a.createElement("div");m.className="graview-worker-view",m.setAttribute("role","region"),m.setAttribute("aria-label",o.title??o.name),m.setAttribute("data-worker-view",o.name),m.style.cssText="display:block;position:relative;contain:layout paint style;isolation:isolate;overflow:clip;min-width:0",t.appendChild(m);let g=m.attachShadow({mode:"open"}),w=e.author?a.createElement("p"):void 0;w&&(w.className="graview-worker-view-author",w.setAttribute("data-worker-view-author",o.name),w.style.cssText="margin:4px 0 0;font-size:0.75rem;color:var(--graview-ink-muted, inherit)",w.textContent=e.author,t.appendChild(w));let E={applied:0,refused:0,dropped:0},A=ue(e.limits),y={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,messageWindowMs:e.limits?.messageWindowMs??1e3,pushMs:e.limits?.pushMs??1e3,silentMs:e.limits?.silentMs??5e3,drawMs:e.limits?.drawMs??100},V={pushMs:y.pushMs,drawMs:y.drawMs},f,v,G,S,W,T,O=!1,n={applied:0,refused:0,dropped:0},c=[],h=()=>{if(!S)return;let r=S.stats;E.applied+=r.applied-n.applied,E.refused+=r.refused-n.refused,E.dropped+=r.dropped-n.dropped,n={...r}},k=()=>{},l,d,b=()=>{let r=g.querySelector("[data-graview-view-root]"),s=p.ResizeObserver;d||!r||typeof s!="function"||(d=new s(M=>{let _=M[M.length-1]?.borderBoxSize?.[0],I=Math.ceil(_?_.blockSize:r.offsetHeight);I!==l&&(l=I,m.setAttribute("data-graview-content-height",String(I)),e.onContentHeight?.(I))}),d.observe(r))},K=()=>{d&&(d.disconnect(),d=void 0,l=void 0,m.removeAttribute("data-graview-content-height"),e.onContentHeight?.(void 0))},R=0,P=()=>{},F,Jt,q,Ie=[],Ce=()=>{P(),P=()=>{},F?.dispose(),h(),S?.dispose(),S=void 0,W?.stop(),k(),p.clearInterval(R)},H=(r,s)=>{if(O)return;O=!0,Ce(),K(),T?.dispose();let M=Vr(r,y,s);m.removeAttribute("data-worker-view-drawn"),m.setAttribute("data-worker-view-failed",r),e.fallback!==!1&&(e.fallback??Qt)(m,r,M),e.onFailure?.(r,M)},Qt=(r,s,M)=>{let _=v??(()=>{try{return Re(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},...G?{computed:G}:{}})}catch{return}})(),I=a.createElement("div");I.setAttribute("data-graview-fallback",s),I.style.cssText="padding:12px;display:grid;gap:6px;color:var(--graview-ink, inherit);font-family:var(--graview-font-body, inherit)";let u=a.createElement("strong");u.textContent=o.title??o.name;let C=a.createElement("ul");C.style.cssText="margin:0;padding-left:1.2em";for(let j of[..._?.node?[_.node]:[],..._?.nodes??[]]){let de=a.createElement("li");de.textContent=j.label??j.id,C.appendChild(de)}let N=a.createElement("p");N.style.cssText="margin:0;font-size:0.8125rem;color:var(--graview-ink-muted, inherit)",N.textContent=`This view was stopped. ${M}`,I.append(u,C,N),g.replaceChildren(I)},Ne=Wt(o,e.store);if(Ne.length>0)return queueMicrotask(()=>H("manifest",Ne.join(" "))),Se();let He=r=>{if(("source"in r?new TextEncoder().encode(r.source).length:"script"in r?new TextEncoder().encode(r.script).length:0)>y.maxSourceBytes)return["source"];let M="source"in r?pe(r.source):[];return M.length>0?["source",M.join(" ")]:void 0},X=e.worker,De=typeof X=="function"?void 0:He(X);if(De)return queueMicrotask(()=>H(...De)),Se();let je=Pt(p,()=>Fe(),"blob"),we=()=>Kt(()=>e.theme?.()??fe(m),e.brand,je),$e=()=>{let r=e.brand?.()?.views;T?.theme(r?.css),T?.motion(r?.motion??"none")},Be="",ve=()=>{Be=JSON.stringify(we()),$e(),S?.push()},Fe=()=>{S&&JSON.stringify(we())!==Be&&ve()},Zt=Ot(a,Fe),U,er=We(e.store,o)?Kr().then(({computedOn:r})=>{G=r(e.store.schema)}):Promise.resolve(),z,tr=o.pictures?Rr().then(({createGuestPictures:r})=>{O||(U=r(p,{as:"blob",view:`"${o.title??o.name}"`,pictures:o.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>S?.push(),onLeft:s=>{$?.postMessage({type:"notice",text:s}),e.onProblem?.(s)}}))}):Promise.resolve();k=()=>{Zt(),je.dispose(),U?.dispose(),ee?.dispose(),z?.dispose(),ae?.dispose()};let $,Y=r=>$?.postMessage(r),Ue=!1,ze=!1,oe=()=>m.toggleAttribute("data-worker-view-drawn",!O&&ze&&T!==void 0&&c.length===0&&Q.size===0&&!U?.waiting()&&!(z?.waiting??0)),J=p.performance,Q=new Map,se=J.now(),rr=()=>{if(R)return;let r=Math.max(10,Math.min(250,Math.floor(y.pushMs/4)));se=J.now(),R=p.setInterval(()=>{let s=J.now(),M=s-se>r*2?s-se-r:0;se=s;for(let[_,I]of Q){let u=I+M;if(Q.set(_,u),s-u>=y.pushMs)return H("slow")}},r)},nr=he(()=>y.drawMs,()=>J.now()),qe=()=>{},ke=r=>{if(O)return;if(!T)return void c.push(r);let s=T;if(!nr.draw(_=>r[0]==="render"?s.apply(r[1],_):(s.style(r[1]),!0)))return H("slow");r[0]==="render"&&qe()},Xe=()=>new Set([...e.store.kindsKeptFrom(e.principal),...e.store.modules.disabledKinds]),Ye=()=>vt(e.store.schema,Xe()),be=()=>kt(e.store.schema,e.places?.()??[],{kept:Xe(),...e.arrangement?{pages:e.arrangement()}:{}}),Z=bt({sees:r=>e.store.seenBy(e.principal).graph.has(r),places:be,lists:Ye,schema:e.store.schema,...e.onNavigate?{onNavigate:e.onNavigate}:e.goTo?{onNavigate:r=>At(e.goTo(),r)}:{},...e.hrefOf?{hrefOf:e.hrefOf}:!e.onNavigate&&e.goTo?{hrefOf:r=>Gt(e.goTo(),r)}:{},onLost:r=>{$?.postMessage({type:"notice",text:r}),e.onProblem?.(r)}}),D=new Set,Je=new Set,ee,Qe=!1,Ze=()=>{Qe||(Qe=!0,Ar().then(({createGuestMedia:r})=>{O||(ee=r(p,{view:`"${o.title??o.name}"`,pictures:o.pictures!==void 0,shown:()=>v,...e.file?{file:e.file}:{},onProblem:s=>{$?.postMessage({type:"notice",text:s}),e.onProblem?.(s)}}),ee.refresh(g))},()=>e.onProblem?.(`The view "${o.title??o.name}" places a video or a full-screen viewer, and the host's player could not be loaded.`)))},et=!1,tt=!1,ie=new Map,rt=()=>{et||!o.accepts?.length||(et=!0,Gr().then(({createGuestDrops:r})=>{O||(z=r(p,{shadow:g,manifest:o,store:e.store,principal:e.principal,files:()=>e.files?.(),shown:()=>D,hears:()=>tt,idOf:s=>T?.renderer.idOf(s),send:Y,change:(s,M)=>{if(!S)return{ok:!1,reason:"refused",message:"The view has gone."};let _=S.change(s,M);return h(),_},handed:(s,M)=>ie.set(s.href,{file:s,drop:M}),onProblem:s=>{$?.postMessage({type:"notice",text:s}),e.onProblem?.(s)},onBusy:()=>oe()}),z.refresh())},()=>e.onProblem?.(`The view "${o.title??o.name}" takes files, and the host's drop could not be loaded.`)))},ae,nt=[],ot=!1,or=r=>{nt=r,ae?.bind(r),!(ot||r.length===0)&&(ot=!0,Or().then(({createGuestGestures:s,unheardWords:M})=>{if(!O){if(o.gestures!==!0){let _=M(o.title??o.name);return $?.postMessage({type:"notice",text:_}),e.onProblem?.(_)}ae=s(g,{root:()=>g.querySelector("[data-graview-view-root]")??void 0,idOf:_=>T?.renderer.idOf(_),send:Y}),ae.bind(nt)}},()=>{}))},sr=r=>{let s=e.store.seenBy(e.principal).graph;for(let M of D){let _=s.getNode(M);for(let I of Object.values(_??{}))for(let u of Et(I))if(u.href===r)return u}},st=()=>Jt??=Pr().then(({createGuestSections:r})=>{if(!O)return F=r(p,{shadow:g,idOf:s=>T?.renderer.idOf(s),send:Y,record:s=>D.has(s)?e.store.seenBy(e.principal).graph.getNode(s):void 0,...e.file?{file:e.file}:{},onProblem:s=>{$?.postMessage({type:"notice",text:s}),e.onProblem?.(s)}}),F.refresh(),F},()=>{e.onProblem?.(`The view "${o.title??o.name}" draws a jump or a file link, and the host's part of it could not be loaded.`)}),it=r=>{if(r.localName==="graview-video")return Ze();r.hasAttribute("data-lightbox")&&(r.setAttribute("aria-haspopup","dialog"),Ze())};Promise.all([Er(),Wr()]).then(([{createOpenDrawing:r,handedLinks:s,judgeLink:M,linkRefusedWords:_},{createPressReader:I,createSaver:u,fillPrefills:C,judgePress:N,markPresses:j,prefillOf:de,quietPictures:ir}])=>{if(O)return;let te=I(),ar=i=>Ie.some(x=>{try{for(let L=i;L&&L.getRootNode()===g&&!L.hasAttribute("data-graview-view-root");L=L.parentElement)if(L.matches(x))return!0}catch{}return!1}),ut=(i,x)=>{let L=T?.renderer.idOf(i);if(L!==void 0&&Y({type:"dom-event",target:L,event:"acted",pressed:x}),x.ok)return q?.clear(i);ar(i)||Lr().then(({createRefusalNotes:re})=>{O||!i.isConnected||(q??=re(g),q.say(i,x.message??"That was not applied."))},()=>e.onProblem?.(`A press in the view "${o.title??o.name}" was refused: ${x.message??x.reason??"not applied"}`))},Te=u({reader:te,save:(i,x)=>{if(!S)return;let L=S.pressed(N(e.store,o,D,i));h(),ut(x,{as:i.as,...L})}}),ct=()=>Te.flush();p.addEventListener("pagehide",ct),P=()=>{p.removeEventListener("pagehide",ct),Te.flush()};let dr=new WeakSet;qe=()=>{Z.refresh(g),j(g),ir(g),C(g,te,dr,i=>de(e.store,e.principal,o,D,i)),ee?.refresh(g),z?.refresh(),q?.refresh(),F?F.refresh():g.querySelector(_r)&&st()};let pt,ft=new Set,lr=()=>(pt!==v&&([pt,ft]=[v,s(v)]),ft),mt=new Set;T=r(g,{origin:e.origin??p.location.origin,link:i=>M(i,{handed:lr(),...e.links?{origins:e.links.origins}:{}}),...e.asset?{asset:e.asset}:{},...e.images?{imageOrigins:e.images.origins}:{},...o.pictures?{picture:i=>U?.drawn(i)}:{},onRefused:i=>{if(i.reason==="url"&&i.element==="a"&&i.address!==void 0&&!mt.has(i.address)){mt.add(i.address);let L=_(i.address,e.links?.origins);return $?.postMessage({type:"notice",text:L}),e.onProblem?.(L)}if(i.reason!=="url"||i.element!=="img"||i.address===void 0||Je.has(i.address))return;Je.add(i.address);let x=Tt(i.address,{...e.images?{origins:e.images.origins}:{},assets:e.asset!==void 0},i.length);$?.postMessage({type:"notice",text:x}),e.onProblem?.(x)},...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>H("nodes"),send:Y,onFieldSet:i=>te.filled(i),onAttribute:(i,x)=>{(x==="data-record"||x==="data-place")&&Z.link(i),x==="data-lightbox"&&it(i),x==="data-drop"&&rt()},decorate:i=>{(i.hasAttribute("data-record")||i.hasAttribute("data-place"))&&Z.link(i),it(i),i.hasAttribute("data-drop")&&rt()},before:(i,x,L)=>{te.heard(i,x),Te.heard(i,x,L),Z.pressed(i,x,L);let re=x.closest("a[href]");re&&L.contains(re)&&!re.hasAttribute("data-graview-link")&&i.type==="click"&&i.stopPropagation();let le=x.closest("[data-lightbox]"),gt=i.type==="keydown"?i.key:void 0;if(le&&L.contains(le)&&i.isTrusted&&(i.type==="click"||(gt==="Enter"||gt===" ")&&le.localName!=="button")&&(i.preventDefault(),i.stopPropagation(),ee?.open(le)),z?.before(i,x,L))return!1;let yt=i.type==="click"&&i.isTrusted?x.closest('a[href^="#"]'):null;yt&&L.contains(yt)&&(i.preventDefault(),F?F.jump(x,L):st().then(pr=>pr?.jump(x,L)));let Me=te.press(i,x,L);if(!Me||!S)return;i.stopPropagation(),q?.clear(x.closest("[data-act]")),i.type==="keydown"&&i.preventDefault();let ur=S.pressed(N(e.store,o,D,Me));h();let ht={as:Me.as,...ur},cr=x.closest("[data-act]");return queueMicrotask(()=>ut(cr,ht)),{pressed:ht}}}),$e();for(let i of c.splice(0))ke(i);b(),oe()},()=>H("start","the view's drawing could not be loaded"));let xe=r=>W=ye(p,{source:r,name:o.name,limiter:A,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>E.dropped+=1,onStop:(s,M)=>H(s,M),onError:s=>{Ue||H("error",s)},onReady:(s,M,_)=>{$=M,f=Bt(Ut(p,_)),Object.assign(y,Ft(V,f)),rr();let I=ce({store:e.store,principal:e.principal,view:o.name,nonce:s,send:u=>{u.type==="props"&&typeof u.push=="number"&&(Q.set(u.push,J.now()),oe()),M.postMessage(u)},props:()=>{let u=Re(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},theme:we(),places:wt(be()),...G?{computed:G}:{}}),C=D;return D=new Set([...u.node?[u.node.id]:[],...(u.nodes??[]).map(N=>N.id)]),v&&(C.size!==D.size||[...D].some(N=>!C.has(N)))&&T?.fade(),v=u,u},...U?{hand:U.hand}:{},judgeAct:(u,C)=>{let N=Rt(e.store,o,u,C,{shown:D,file:j=>ie.get(j)?.file??sr(j),dropped:j=>ie.get(j)?.drop});if(N.ok)for(let j of N.spent??[])ie.delete(j);return N},onHears:u=>{u.includes("drop")&&(tt=!0)},onGestures:or,onClicks:(u,C)=>{Mt(m,u),Ie=C},onRender:u=>{Ue=!0,ke(["render",u])},onPushed:(u,C)=>{if(Q.delete(u),C>=y.pushMs)return H("slow");ze=!0,oe()},onFlood:()=>H("flood"),onStyle:u=>ke(["style",u]),places:()=>[...new Set([...be().map(u=>u.as),...Ye().map(u=>u.slug)])],...e.limits?{limits:e.limits}:{},limiter:A});S=I,M.onmessage=({data:u})=>{if(!W?.answer(u)&&(I.receive(u),h(),!O&&u?.nonce===s&&u.type==="navigate")){let C={...u.where!==void 0?{where:u.where}:{},...u.section!==void 0?{section:u.section}:{}},N=typeof u.place=="string"?{place:u.place,...C}:typeof u.to=="string"&&{record:u.to,...C};N&&Z.go(N)}},ve()}}),at=o.pictures!==void 0||We(e.store,o),dt=()=>Promise.all([tr.catch(()=>Promise.reject(new Error("the view's pictures could not be loaded"))),er.catch(()=>Promise.reject(new Error("the view's computed values could not be worked out")))]),lt=r=>{"source"in r?(at?Promise.all([Ae(r.source),dt()]).then(([s])=>s):Ae(r.source)).then(s=>{O||xe({script:s})},s=>H("start",s instanceof Error&&s.message.startsWith("the view's")?s.message:"the view's runtime could not be loaded")):at?dt().then(()=>{O||xe(r)},s=>H("start",s instanceof Error?s.message:"the view's pictures could not be loaded")):xe(r)};return typeof X=="function"?me(X).then(r=>{if(O)return;let s=He(r);s?H(...s):lt(r)},r=>H("source",`Its code did not arrive${r instanceof Error&&r.message?`: ${r.message}`:""}.`)):lt(X),Se();function Se(){return{element:m,shadow:g,get worker(){return W?.worker},update:()=>{S&&ve()},get stats(){return h(),E},get refused(){return T?.refused??[]},get contentHeight(){return l},get css(){return T?.css??""},get pace(){return f},dispose(){O=!0,Ce(),d?.disconnect(),T?.dispose(),m.remove(),w?.remove()}}}}var zt=8e3,qt=t=>({root:t?.shadow.querySelector("[data-graview-view-root]")??void 0,css:t?.css??"",height:t?.contentHeight}),Xt=t=>(t?.refused??[]).map(e=>`Refused ${e.reason==="css"?"a rule of the stylesheet":`${e.element?`<${e.element}>`:"something"}${e.name?` ${e.name}`:""}`} (${e.reason}).`);function Cr({element:t,definition:e,mounted:a,optionsFor:p,draw:o,mount:m,pressing:g}){return{name:e.manifest.name,title:e.manifest.title??e.manifest.name,source:async()=>{let w=typeof e.worker=="function"?await me(e.worker):e.worker;return"source"in w?w.source:void 0},theme:async()=>{let w=a()?.element;return w?{...fe(w)}:{}},drawing:()=>qt(a()),refused:()=>Xt(a()),check:async w=>pe(w),presses:async w=>{let E=g?.();if(!E)throw new Error("This page cannot press a view's controls.");let{pressedHere:A}=await E(),y=p({source:w}),V=await A({manifest:y.manifest,source:w,store:y.store,principal:y.principal,...y.input?{input:y.input()}:{},...y.places?{places:y.places()}:{}});if(!V.ok){let v={control:"the view",element:"",does:"nothing",ok:!1,says:V.detail};return{ok:!1,controls:[v],problems:[v]}}let f=V.presses;return f?{ok:f.ok,controls:f.controls,problems:f.problems}:{ok:!0,controls:[],problems:[]}},draft:w=>{let E=a()?.element,A=t.ownerDocument.createElement("div");A.setAttribute("data-graview-section-draft",e.manifest.name),A.style.minWidth="0",t.appendChild(A),E&&(E.style.display="none");let y=()=>{},V=new Promise(G=>y=G),f=setTimeout(()=>y({failed:`It did not draw in ${zt/1e3} seconds.`}),zt),v=m(A,{...p({source:w}),fallback:!1,onFailure:(G,S)=>y({failed:S??`It failed (${G}).`}),onContentHeight:G=>{G!==void 0&&G>0&&y({})}});return V.then(()=>clearTimeout(f)),{drawn:V,drawing:()=>qt(v),refused:()=>Xt(v),dispose:()=>{clearTimeout(f),v.dispose(),A.remove(),E&&(E.style.display="")}}},draw:o}}var Yt="graview-guest-kit";function kn(t,e){let a=t.ownerDocument,p=a.defaultView;if(!a.getElementById(Yt)){let W=a.createElement("style");W.id=Yt,W.textContent=Ve,a.head.appendChild(W)}let o=a.createElement("div");o.className="graview-guest",o.setAttribute("role","group"),o.setAttribute("aria-label",e.title??e.view),o.setAttribute("data-guest-view",e.view),t.appendChild(o);let m={applied:0,refused:0,dropped:0},g=ue(e.limits),w=he(()=>e.limits?.drawMs??100,()=>p.performance.now()),E,A,y,V=!1,f={applied:0,refused:0,dropped:0},v=()=>{if(!E)return;let W=E.stats;m.applied+=W.applied-f.applied,m.refused+=W.refused-f.refused,m.dropped+=W.dropped-f.dropped,f={...W}},G=()=>{v(),E?.dispose(),E=void 0,y?.stop()},S=(W,T)=>{V||(V=!0,G(),A?.dispose(),e.onFailure?.(W,T))};return y=ye(p,{source:e.worker,name:e.view,limiter:g,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>m.dropped+=1,onStop:(W,T)=>S(W,T),onReady:(W,T)=>{let O=_e(o,{...e.kit?{kit:e.kit}:{},...e.links?{links:e.links}:{},onEvent:(c,h)=>T.postMessage({type:"event",listener:c,...h!==void 0?{detail:h}:{}}),...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>S("budget")});A=O;let n=ce({store:e.store,principal:e.principal,view:e.view,nonce:W,send:c=>T.postMessage(c),onRender:c=>{w.draw(h=>O.apply(c,h))||S("slow")},...e.input?{input:e.input}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},onSize:e.onSize??(c=>o.style.minHeight=`${c}px`),...e.limits?{limits:e.limits}:{},limiter:g});E=n,T.onmessage=c=>{y?.answer(c.data)||(n.receive(c.data),v())},n.push()}}),{element:o,get worker(){return y?.worker},update:()=>E?.push(),get stats(){return v(),m},get refused(){return A?.refused??[]},dispose(){V=!0,G(),A?.dispose(),o.remove()}}}export{Oe as GUEST_KIT,Ve as GUEST_KIT_CSS,Ge as KIT_LINK_TARGETS,Lt as KIT_TONES,_e as createKitRenderer,Nt as hostAttribute,Ht as kitValue,kn as mountGuestWorker,Ir as mountWorkerView,Cr as viewPlaceHandle};
|
|
21
|
+
`;var Dt=new WeakSet;function Tr(t,e){if(t.startsWith("blob:"))return"blob:";try{return new URL(t,e.location.href).origin}catch{return t}}function jt(t,e,a){let p=Tr(e,t),o=`this page's Content-Security-Policy${a?` (${a})`:""} does not allow a worker from ${p}: it needs worker-src ${p}`;return Dt.has(t)||(Dt.add(t),t.console?.warn?.(`Graview: worker views cannot start on this page, because ${o}. A host that will not allow ${p} serves each view's whole script from its own origin and passes worker: { url } (the @graview/guest README, "What the host page allows").`)),o}function Mr(t,e){return t===""?!0:e.startsWith("blob:")?t.startsWith("blob"):e.startsWith(t)||t.startsWith(e)}function ye(t,e){let a="script"in e.source?t.URL.createObjectURL(new t.Blob([e.source.script],{type:"text/javascript"})):void 0,p="script"in e.source?a:e.source.url,o,m,g=!1,w=!1,E=0,A=0,y="",V=0,f=0,v=t.performance,G=v.now(),S,W=l=>{let d=l,b=String(d.effectiveDirective||d.violatedDirective||"").split(" ")[0];/^(worker-src|script-src|script-src-elem|child-src|default-src)$/.test(b)&&Mr(String(d.blockedURI??""),p)&&(S=b)},T=t.document;T?.addEventListener("securitypolicyviolation",W);let O=()=>T?.removeEventListener("securitypolicyviolation",W),n=()=>{w||(w=!0,m?.close(),o?.terminate(),o=void 0,t.clearTimeout(E),t.clearInterval(A),O(),a&&t.URL.revokeObjectURL(a))},c=(l,d)=>{w||(n(),e.onStop(l,d))},h=()=>{t.clearTimeout(E),O(),y=St();let l=new t.MessageChannel;m=l.port1;let d=Math.max(1,e.silentMs),b=Math.max(10,Math.min(1e3,Math.floor(d/4)));G=v.now();let K=G;A=t.setInterval(()=>{let P=v.now();if(P-K>b*2&&(G+=P-K-b),K=P,P-G>=d)return c("silent");V+=1,l.port1.postMessage({type:"heartbeat",beat:V})},b);let R={graview:"host-hello",protocol:1,nonce:y,view:e.name};o.postMessage(R,[l.port2]),e.onReady(y,l.port1,v.now()-k)},k=v.now();try{o=new t.Worker(p,{name:e.name})}catch(l){o=void 0;let d=l,b=d?.name==="SecurityError"?jt(t,p,S):`the worker could not be made: ${String(d?.message??l)}`;queueMicrotask(()=>c("start",b))}return o&&(E=t.setTimeout(()=>c("start",`it never said it was ready in ${e.readyMs.toLocaleString("en-US")} ms`),e.readyMs),o.onerror=l=>{let d=typeof l.message=="string"&&l.message!==""?l.message:void 0;if(g)return void e.onError?.(d??"an error");t.clearTimeout(E),t.setTimeout(()=>!g&&c("start",S?jt(t,p,S):d?`it failed before it said ready: ${d}`:"it failed before it said ready, and the engine gave no reason (a page policy that refuses it, or a script that does not load)"),0)},o.onmessage=l=>{if(!e.limiter.message()||g||!xt(l.data)||l.data.protocol!==1){e.onDropped();return}g=!0,h()}),{get worker(){return o},answer(l){let d=l;return typeof d!="object"||d===null||d.type!=="heartbeat"||d.nonce!==y?!1:(typeof d.beat=="number"&&d.beat>f&&d.beat<=V&&(f=d.beat,G=v.now()),!0)},stop:n}}function he(t,e){let a=e(),p=0;return{draw(o){let m=e();m-a>=1e3&&(a=m,p=0);let g=t(),w=o(()=>p+(e()-m)>=g);return p+=e()-m,w&&p<g}}}function Bt(t){return!Number.isFinite(t)||t<=60?1:Math.min(4,Math.round(t/60*10)/10)}function Ft(t,e){return{...t,pushMs:Math.round(t.pushMs*e),drawMs:Math.round(t.drawMs*e)}}var $t=new WeakMap;function Ut(t,e){let a=$t.get(t);return a!==void 0?a:($t.set(t,e),e)}var Er=B(()=>(__graviewPreload(import.meta.url,["./chunk.32SHA3EY.js","./chunk.GG47EIKO.js","./chunk.NYLKG25K.js","./chunk.AJZBJBMO.js"]),import("./chunk.U6QXLNHF.js"))),Wr=B(()=>(__graviewPreload(import.meta.url,["./chunk.PLIV3IQK.js","./chunk.MK5RPEB2.js","./chunk.TOUSIUJF.js","./chunk.QDVGHI7R.js","./chunk.KUCBNMIY.js","./chunk.M5FP4Y4Q.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.N64RVSH3.js"))),Rr=B(()=>(__graviewPreload(import.meta.url,["./chunk.RSMCTI2N.js","./chunk.AJZBJBMO.js"]),import("./chunk.UJPX3BUV.js"))),Ar=B(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.L7XKYGV7.js","./chunk.CE3NKAF7.js","./chunk.R3GE37OI.js","./chunk.2KCDLCB2.js","./chunk.UD7VLXPM.js","./chunk.3DEWQDP7.js","./chunk.JULD4XFB.js","./chunk.GRTBEA7O.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.OQ4ZO3YY.js"))),Gr=B(()=>(__graviewPreload(import.meta.url,["./chunk.TOUSIUJF.js","./chunk.QDVGHI7R.js","./chunk.KUCBNMIY.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.MIOLBZBS.js"))),Or=B(()=>(__graviewPreload(import.meta.url,["./chunk.BBLIT7S7.js","./chunk.AJZBJBMO.js"]),import("./chunk.RRCPEHM4.js"))),Kr=B(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.L7XKYGV7.js","./chunk.CE3NKAF7.js","./chunk.R3GE37OI.js","./chunk.2KCDLCB2.js","./chunk.UD7VLXPM.js","./chunk.3DEWQDP7.js","./chunk.JULD4XFB.js","./chunk.GRTBEA7O.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ARS4HJD2.js"))),Pr=B(()=>(__graviewPreload(import.meta.url,["./chunk.QDVGHI7R.js","./chunk.AJZBJBMO.js"]),import("./chunk.EG7OOJH5.js"))),Lr=B(()=>(__graviewPreload(import.meta.url,["./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.JLDJZET2.js"))),_r='a[href^="#"], [data-sight], [data-file]';function Vr(t,e,a){switch(t){case"manifest":return a??"Its manifest names something this app does not have.";case"source":return a??`Its code is longer than the ${e.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`;case"start":return`It could not start${a?`: ${a}.`:"."}`;case"error":return`It failed before it drew anything${a?`: ${a}`:"."}`;case"silent":return`It stopped answering for ${e.silentMs.toLocaleString("en-US")} ms.`;case"nodes":return`It drew more than the ${e.maxNodes.toLocaleString("en-US")} things a view may draw.`;case"flood":return`It sent more than ${e.messages} messages in ${e.messageWindowMs.toLocaleString("en-US")} ms.`;case"slow":return`It took longer than ${e.pushMs.toLocaleString("en-US")} ms to draw what it was shown.`}}function Ir(t,e){let a=t.ownerDocument,p=a.defaultView,{manifest:o}=e,m=a.createElement("div");m.className="graview-worker-view",m.setAttribute("role","region"),m.setAttribute("aria-label",o.title??o.name),m.setAttribute("data-worker-view",o.name),m.style.cssText="display:block;position:relative;contain:layout paint style;isolation:isolate;overflow:clip;min-width:0",t.appendChild(m);let g=m.attachShadow({mode:"open"}),w=e.author?a.createElement("p"):void 0;w&&(w.className="graview-worker-view-author",w.setAttribute("data-worker-view-author",o.name),w.style.cssText="margin:4px 0 0;font-size:0.75rem;color:var(--graview-ink-muted, inherit)",w.textContent=e.author,t.appendChild(w));let E={applied:0,refused:0,dropped:0},A=ue(e.limits),y={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,messageWindowMs:e.limits?.messageWindowMs??1e3,pushMs:e.limits?.pushMs??1e3,silentMs:e.limits?.silentMs??5e3,drawMs:e.limits?.drawMs??100},V={pushMs:y.pushMs,drawMs:y.drawMs},f,v,G,S,W,T,O=!1,n={applied:0,refused:0,dropped:0},c=[],h=()=>{if(!S)return;let r=S.stats;E.applied+=r.applied-n.applied,E.refused+=r.refused-n.refused,E.dropped+=r.dropped-n.dropped,n={...r}},k=()=>{},l,d,b=()=>{let r=g.querySelector("[data-graview-view-root]"),s=p.ResizeObserver;d||!r||typeof s!="function"||(d=new s(M=>{let _=M[M.length-1]?.borderBoxSize?.[0],I=Math.ceil(_?_.blockSize:r.offsetHeight);I!==l&&(l=I,m.setAttribute("data-graview-content-height",String(I)),e.onContentHeight?.(I))}),d.observe(r))},K=()=>{d&&(d.disconnect(),d=void 0,l=void 0,m.removeAttribute("data-graview-content-height"),e.onContentHeight?.(void 0))},R=0,P=()=>{},F,Jt,q,Ie=[],Ce=()=>{P(),P=()=>{},F?.dispose(),h(),S?.dispose(),S=void 0,W?.stop(),k(),p.clearInterval(R)},H=(r,s)=>{if(O)return;O=!0,Ce(),K(),T?.dispose();let M=Vr(r,y,s);m.removeAttribute("data-worker-view-drawn"),m.setAttribute("data-worker-view-failed",r),e.fallback!==!1&&(e.fallback??Qt)(m,r,M),e.onFailure?.(r,M)},Qt=(r,s,M)=>{let _=v??(()=>{try{return Re(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},...G?{computed:G}:{}})}catch{return}})(),I=a.createElement("div");I.setAttribute("data-graview-fallback",s),I.style.cssText="padding:12px;display:grid;gap:6px;color:var(--graview-ink, inherit);font-family:var(--graview-font-body, inherit)";let u=a.createElement("strong");u.textContent=o.title??o.name;let C=a.createElement("ul");C.style.cssText="margin:0;padding-left:1.2em";for(let j of[..._?.node?[_.node]:[],..._?.nodes??[]]){let de=a.createElement("li");de.textContent=j.label??j.id,C.appendChild(de)}let N=a.createElement("p");N.style.cssText="margin:0;font-size:0.8125rem;color:var(--graview-ink-muted, inherit)",N.textContent=`This view was stopped. ${M}`,I.append(u,C,N),g.replaceChildren(I)},Ne=Wt(o,e.store);if(Ne.length>0)return queueMicrotask(()=>H("manifest",Ne.join(" "))),Se();let He=r=>{if(("source"in r?new TextEncoder().encode(r.source).length:"script"in r?new TextEncoder().encode(r.script).length:0)>y.maxSourceBytes)return["source"];let M="source"in r?pe(r.source):[];return M.length>0?["source",M.join(" ")]:void 0},X=e.worker,De=typeof X=="function"?void 0:He(X);if(De)return queueMicrotask(()=>H(...De)),Se();let je=Pt(p,()=>Fe(),"blob"),we=()=>Kt(()=>e.theme?.()??fe(m),e.brand,je),$e=()=>{let r=e.brand?.()?.views;T?.theme(r?.css),T?.motion(r?.motion??"none")},Be="",ve=()=>{Be=JSON.stringify(we()),$e(),S?.push()},Fe=()=>{S&&JSON.stringify(we())!==Be&&ve()},Zt=Ot(a,Fe),U,er=We(e.store,o)?Kr().then(({computedOn:r})=>{G=r(e.store.schema)}):Promise.resolve(),z,tr=o.pictures?Rr().then(({createGuestPictures:r})=>{O||(U=r(p,{as:"blob",view:`"${o.title??o.name}"`,pictures:o.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>S?.push(),onLeft:s=>{$?.postMessage({type:"notice",text:s}),e.onProblem?.(s)}}))}):Promise.resolve();k=()=>{Zt(),je.dispose(),U?.dispose(),ee?.dispose(),z?.dispose(),ae?.dispose()};let $,Y=r=>$?.postMessage(r),Ue=!1,ze=!1,oe=()=>m.toggleAttribute("data-worker-view-drawn",!O&&ze&&T!==void 0&&c.length===0&&Q.size===0&&!U?.waiting()&&!(z?.waiting??0)),J=p.performance,Q=new Map,se=J.now(),rr=()=>{if(R)return;let r=Math.max(10,Math.min(250,Math.floor(y.pushMs/4)));se=J.now(),R=p.setInterval(()=>{let s=J.now(),M=s-se>r*2?s-se-r:0;se=s;for(let[_,I]of Q){let u=I+M;if(Q.set(_,u),s-u>=y.pushMs)return H("slow")}},r)},nr=he(()=>y.drawMs,()=>J.now()),qe=()=>{},ke=r=>{if(O)return;if(!T)return void c.push(r);let s=T;if(!nr.draw(_=>r[0]==="render"?s.apply(r[1],_):(s.style(r[1]),!0)))return H("slow");r[0]==="render"&&qe()},Xe=()=>new Set([...e.store.kindsKeptFrom(e.principal),...e.store.modules.disabledKinds]),Ye=()=>vt(e.store.schema,Xe()),be=()=>kt(e.store.schema,e.places?.()??[],{kept:Xe(),...e.arrangement?{pages:e.arrangement()}:{}}),Z=bt({sees:r=>e.store.seenBy(e.principal).graph.has(r),places:be,lists:Ye,schema:e.store.schema,...e.onNavigate?{onNavigate:e.onNavigate}:e.goTo?{onNavigate:r=>At(e.goTo(),r)}:{},...e.hrefOf?{hrefOf:e.hrefOf}:!e.onNavigate&&e.goTo?{hrefOf:r=>Gt(e.goTo(),r)}:{},onLost:r=>{$?.postMessage({type:"notice",text:r}),e.onProblem?.(r)}}),D=new Set,Je=new Set,ee,Qe=!1,Ze=()=>{Qe||(Qe=!0,Ar().then(({createGuestMedia:r})=>{O||(ee=r(p,{view:`"${o.title??o.name}"`,pictures:o.pictures!==void 0,shown:()=>v,...e.file?{file:e.file}:{},onProblem:s=>{$?.postMessage({type:"notice",text:s}),e.onProblem?.(s)}}),ee.refresh(g))},()=>e.onProblem?.(`The view "${o.title??o.name}" places a video or a full-screen viewer, and the host's player could not be loaded.`)))},et=!1,tt=!1,ie=new Map,rt=()=>{et||!o.accepts?.length||(et=!0,Gr().then(({createGuestDrops:r})=>{O||(z=r(p,{shadow:g,manifest:o,store:e.store,principal:e.principal,files:()=>e.files?.(),shown:()=>D,hears:()=>tt,idOf:s=>T?.renderer.idOf(s),send:Y,change:(s,M)=>{if(!S)return{ok:!1,reason:"refused",message:"The view has gone."};let _=S.change(s,M);return h(),_},handed:(s,M)=>ie.set(s.href,{file:s,drop:M}),onProblem:s=>{$?.postMessage({type:"notice",text:s}),e.onProblem?.(s)},onBusy:()=>oe()}),z.refresh())},()=>e.onProblem?.(`The view "${o.title??o.name}" takes files, and the host's drop could not be loaded.`)))},ae,nt=[],ot=!1,or=r=>{nt=r,ae?.bind(r),!(ot||r.length===0)&&(ot=!0,Or().then(({createGuestGestures:s,unheardWords:M})=>{if(!O){if(o.gestures!==!0){let _=M(o.title??o.name);return $?.postMessage({type:"notice",text:_}),e.onProblem?.(_)}ae=s(g,{root:()=>g.querySelector("[data-graview-view-root]")??void 0,idOf:_=>T?.renderer.idOf(_),send:Y}),ae.bind(nt)}},()=>{}))},sr=r=>{let s=e.store.seenBy(e.principal).graph;for(let M of D){let _=s.getNode(M);for(let I of Object.values(_??{}))for(let u of Et(I))if(u.href===r)return u}},st=()=>Jt??=Pr().then(({createGuestSections:r})=>{if(!O)return F=r(p,{shadow:g,idOf:s=>T?.renderer.idOf(s),send:Y,record:s=>D.has(s)?e.store.seenBy(e.principal).graph.getNode(s):void 0,...e.file?{file:e.file}:{},onProblem:s=>{$?.postMessage({type:"notice",text:s}),e.onProblem?.(s)}}),F.refresh(),F},()=>{e.onProblem?.(`The view "${o.title??o.name}" draws a jump or a file link, and the host's part of it could not be loaded.`)}),it=r=>{if(r.localName==="graview-video")return Ze();r.hasAttribute("data-lightbox")&&(r.setAttribute("aria-haspopup","dialog"),Ze())};Promise.all([Er(),Wr()]).then(([{createOpenDrawing:r,handedLinks:s,judgeLink:M,linkRefusedWords:_},{createPressReader:I,createSaver:u,fillPrefills:C,judgePress:N,markPresses:j,prefillOf:de,quietPictures:ir}])=>{if(O)return;let te=I(),ar=i=>Ie.some(x=>{try{for(let L=i;L&&L.getRootNode()===g&&!L.hasAttribute("data-graview-view-root");L=L.parentElement)if(L.matches(x))return!0}catch{}return!1}),ut=(i,x)=>{let L=T?.renderer.idOf(i);if(L!==void 0&&Y({type:"dom-event",target:L,event:"acted",pressed:x}),x.ok)return q?.clear(i);ar(i)||Lr().then(({createRefusalNotes:re})=>{O||!i.isConnected||(q??=re(g),q.say(i,x.message??"That was not applied."))},()=>e.onProblem?.(`A press in the view "${o.title??o.name}" was refused: ${x.message??x.reason??"not applied"}`))},Te=u({reader:te,save:(i,x)=>{if(!S)return;let L=S.pressed(N(e.store,o,D,i));h(),ut(x,{as:i.as,...L})}}),ct=()=>Te.flush();p.addEventListener("pagehide",ct),P=()=>{p.removeEventListener("pagehide",ct),Te.flush()};let dr=new WeakSet;qe=()=>{Z.refresh(g),j(g),ir(g),C(g,te,dr,i=>de(e.store,e.principal,o,D,i)),ee?.refresh(g),z?.refresh(),q?.refresh(),F?F.refresh():g.querySelector(_r)&&st()};let pt,ft=new Set,lr=()=>(pt!==v&&([pt,ft]=[v,s(v)]),ft),mt=new Set;T=r(g,{origin:e.origin??p.location.origin,link:i=>M(i,{handed:lr(),...e.links?{origins:e.links.origins}:{}}),...e.asset?{asset:e.asset}:{},...e.images?{imageOrigins:e.images.origins}:{},...o.pictures?{picture:i=>U?.drawn(i)}:{},onRefused:i=>{if(i.reason==="url"&&i.element==="a"&&i.address!==void 0&&!mt.has(i.address)){mt.add(i.address);let L=_(i.address,e.links?.origins);return $?.postMessage({type:"notice",text:L}),e.onProblem?.(L)}if(i.reason!=="url"||i.element!=="img"||i.address===void 0||Je.has(i.address))return;Je.add(i.address);let x=Tt(i.address,{...e.images?{origins:e.images.origins}:{},assets:e.asset!==void 0},i.length);$?.postMessage({type:"notice",text:x}),e.onProblem?.(x)},...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>H("nodes"),send:Y,onFieldSet:i=>te.filled(i),onAttribute:(i,x)=>{(x==="data-record"||x==="data-place")&&Z.link(i),x==="data-lightbox"&&it(i),x==="data-drop"&&rt()},decorate:i=>{(i.hasAttribute("data-record")||i.hasAttribute("data-place"))&&Z.link(i),it(i),i.hasAttribute("data-drop")&&rt()},before:(i,x,L)=>{te.heard(i,x),Te.heard(i,x,L),Z.pressed(i,x,L);let re=x.closest("a[href]");re&&L.contains(re)&&!re.hasAttribute("data-graview-link")&&i.type==="click"&&i.stopPropagation();let le=x.closest("[data-lightbox]"),gt=i.type==="keydown"?i.key:void 0;if(le&&L.contains(le)&&i.isTrusted&&(i.type==="click"||(gt==="Enter"||gt===" ")&&le.localName!=="button")&&(i.preventDefault(),i.stopPropagation(),ee?.open(le)),z?.before(i,x,L))return!1;let yt=i.type==="click"&&i.isTrusted?x.closest('a[href^="#"]'):null;yt&&L.contains(yt)&&(i.preventDefault(),F?F.jump(x,L):st().then(pr=>pr?.jump(x,L)));let Me=te.press(i,x,L);if(!Me||!S)return;i.stopPropagation(),q?.clear(x.closest("[data-act]")),i.type==="keydown"&&i.preventDefault();let ur=S.pressed(N(e.store,o,D,Me));h();let ht={as:Me.as,...ur},cr=x.closest("[data-act]");return queueMicrotask(()=>ut(cr,ht)),{pressed:ht}}}),$e();for(let i of c.splice(0))ke(i);b(),oe()},()=>H("start","the view's drawing could not be loaded"));let xe=r=>W=ye(p,{source:r,name:o.name,limiter:A,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>E.dropped+=1,onStop:(s,M)=>H(s,M),onError:s=>{Ue||H("error",s)},onReady:(s,M,_)=>{$=M,f=Bt(Ut(p,_)),Object.assign(y,Ft(V,f)),rr();let I=ce({store:e.store,principal:e.principal,view:o.name,nonce:s,send:u=>{u.type==="props"&&typeof u.push=="number"&&(Q.set(u.push,J.now()),oe()),M.postMessage(u)},props:()=>{let u=Re(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},theme:we(),places:wt(be()),...G?{computed:G}:{}}),C=D;return D=new Set([...u.node?[u.node.id]:[],...(u.nodes??[]).map(N=>N.id)]),v&&(C.size!==D.size||[...D].some(N=>!C.has(N)))&&T?.fade(),v=u,u},...U?{hand:U.hand}:{},judgeAct:(u,C)=>{let N=Rt(e.store,o,u,C,{shown:D,file:j=>ie.get(j)?.file??sr(j),dropped:j=>ie.get(j)?.drop});if(N.ok)for(let j of N.spent??[])ie.delete(j);return N},onHears:u=>{u.includes("drop")&&(tt=!0)},onGestures:or,onClicks:(u,C)=>{Mt(m,u),Ie=C},onRender:u=>{Ue=!0,ke(["render",u])},onPushed:(u,C)=>{if(Q.delete(u),C>=y.pushMs)return H("slow");ze=!0,oe()},onFlood:()=>H("flood"),onStyle:u=>ke(["style",u]),places:()=>[...new Set([...be().map(u=>u.as),...Ye().map(u=>u.slug)])],...e.limits?{limits:e.limits}:{},limiter:A});S=I,M.onmessage=({data:u})=>{if(!W?.answer(u)&&(I.receive(u),h(),!O&&u?.nonce===s&&u.type==="navigate")){let C={...u.where!==void 0?{where:u.where}:{},...u.section!==void 0?{section:u.section}:{}},N=typeof u.place=="string"?{place:u.place,...C}:typeof u.to=="string"&&{record:u.to,...C};N&&Z.go(N)}},ve()}}),at=o.pictures!==void 0||We(e.store,o),dt=()=>Promise.all([tr.catch(()=>Promise.reject(new Error("the view's pictures could not be loaded"))),er.catch(()=>Promise.reject(new Error("the view's computed values could not be worked out")))]),lt=r=>{"source"in r?(at?Promise.all([Ae(r.source),dt()]).then(([s])=>s):Ae(r.source)).then(s=>{O||xe({script:s})},s=>H("start",s instanceof Error&&s.message.startsWith("the view's")?s.message:"the view's runtime could not be loaded")):at?dt().then(()=>{O||xe(r)},s=>H("start",s instanceof Error?s.message:"the view's pictures could not be loaded")):xe(r)};return typeof X=="function"?me(X).then(r=>{if(O)return;let s=He(r);s?H(...s):lt(r)},r=>H("source",`Its code did not arrive${r instanceof Error&&r.message?`: ${r.message}`:""}.`)):lt(X),Se();function Se(){return{element:m,shadow:g,get worker(){return W?.worker},update:()=>{S&&ve()},get stats(){return h(),E},get refused(){return T?.refused??[]},get contentHeight(){return l},get css(){return T?.css??""},get pace(){return f},dispose(){O=!0,Ce(),d?.disconnect(),T?.dispose(),m.remove(),w?.remove()}}}}var zt=8e3,qt=t=>({root:t?.shadow.querySelector("[data-graview-view-root]")??void 0,css:t?.css??"",height:t?.contentHeight}),Xt=t=>(t?.refused??[]).map(e=>`Refused ${e.reason==="css"?"a rule of the stylesheet":`${e.element?`<${e.element}>`:"something"}${e.name?` ${e.name}`:""}`} (${e.reason}).`);function Cr({element:t,definition:e,mounted:a,optionsFor:p,draw:o,mount:m,pressing:g}){return{name:e.manifest.name,title:e.manifest.title??e.manifest.name,source:async()=>{let w=typeof e.worker=="function"?await me(e.worker):e.worker;return"source"in w?w.source:void 0},theme:async()=>{let w=a()?.element;return w?{...fe(w)}:{}},drawing:()=>qt(a()),refused:()=>Xt(a()),check:async w=>pe(w),presses:async w=>{let E=g?.();if(!E)throw new Error("This page cannot press a view's controls.");let{pressedHere:A}=await E(),y=p({source:w}),V=await A({manifest:y.manifest,source:w,store:y.store,principal:y.principal,...y.input?{input:y.input()}:{},...y.places?{places:y.places()}:{}});if(!V.ok){let v={control:"the view",element:"",does:"nothing",ok:!1,says:V.detail};return{ok:!1,controls:[v],problems:[v]}}let f=V.presses;return f?{ok:f.ok,controls:f.controls,problems:f.problems}:{ok:!0,controls:[],problems:[]}},draft:w=>{let E=a()?.element,A=t.ownerDocument.createElement("div");A.setAttribute("data-graview-section-draft",e.manifest.name),A.style.minWidth="0",t.appendChild(A),E&&(E.style.display="none");let y=()=>{},V=new Promise(G=>y=G),f=setTimeout(()=>y({failed:`It did not draw in ${zt/1e3} seconds.`}),zt),v=m(A,{...p({source:w}),fallback:!1,onFailure:(G,S)=>y({failed:S??`It failed (${G}).`}),onContentHeight:G=>{G!==void 0&&G>0&&y({})}});return V.then(()=>clearTimeout(f)),{drawn:V,drawing:()=>qt(v),refused:()=>Xt(v),dispose:()=>{clearTimeout(f),v.dispose(),A.remove(),E&&(E.style.display="")}}},draw:o}}var Yt="graview-guest-kit";function kn(t,e){let a=t.ownerDocument,p=a.defaultView;if(!a.getElementById(Yt)){let W=a.createElement("style");W.id=Yt,W.textContent=Ve,a.head.appendChild(W)}let o=a.createElement("div");o.className="graview-guest",o.setAttribute("role","group"),o.setAttribute("aria-label",e.title??e.view),o.setAttribute("data-guest-view",e.view),t.appendChild(o);let m={applied:0,refused:0,dropped:0},g=ue(e.limits),w=he(()=>e.limits?.drawMs??100,()=>p.performance.now()),E,A,y,V=!1,f={applied:0,refused:0,dropped:0},v=()=>{if(!E)return;let W=E.stats;m.applied+=W.applied-f.applied,m.refused+=W.refused-f.refused,m.dropped+=W.dropped-f.dropped,f={...W}},G=()=>{v(),E?.dispose(),E=void 0,y?.stop()},S=(W,T)=>{V||(V=!0,G(),A?.dispose(),e.onFailure?.(W,T))};return y=ye(p,{source:e.worker,name:e.view,limiter:g,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>m.dropped+=1,onStop:(W,T)=>S(W,T),onReady:(W,T)=>{let O=_e(o,{...e.kit?{kit:e.kit}:{},...e.links?{links:e.links}:{},onEvent:(c,h)=>T.postMessage({type:"event",listener:c,...h!==void 0?{detail:h}:{}}),...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>S("budget")});A=O;let n=ce({store:e.store,principal:e.principal,view:e.view,nonce:W,send:c=>T.postMessage(c),onRender:c=>{w.draw(h=>O.apply(c,h))||S("slow")},...e.input?{input:e.input}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},onSize:e.onSize??(c=>o.style.minHeight=`${c}px`),...e.limits?{limits:e.limits}:{},limiter:g});E=n,T.onmessage=c=>{y?.answer(c.data)||(n.receive(c.data),v())},n.push()}}),{element:o,get worker(){return y?.worker},update:()=>E?.push(),get stats(){return v(),m},get refused(){return A?.refused??[]},dispose(){V=!0,G(),A?.dispose(),o.remove()}}}export{Oe as GUEST_KIT,Ve as GUEST_KIT_CSS,Ge as KIT_LINK_TARGETS,Lt as KIT_TONES,_e as createKitRenderer,Nt as hostAttribute,Ht as kitValue,kn as mountGuestWorker,Ir as mountWorkerView,Cr as viewPlaceHandle};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as T,c as m,d as k}from"./chunk.
|
|
1
|
+
import{b as T,c as m,d as k}from"./chunk.MK5RPEB2.js";import{b as v,d as w,e as P,f as M,g as N}from"./chunk.M5FP4Y4Q.js";var j=new Set(["input","select","textarea"]),g=r=>r.namespaceURI==="http://www.w3.org/1999/xhtml"&&j.has(r.localName),R=r=>r.localName==="select"||r.type==="checkbox"||r.type==="radio",S=r=>r.type==="checkbox"||r.type==="radio"?!r.checked:r.localName!=="select"&&r.value==="";function y(r){return r.type==="checkbox"||r.type==="radio"?`checked:${r.checked}`:r.localName==="select"&&r.multiple?`selected:${[...r.selectedOptions].map(t=>t.value).join("\0")}`:`value:${r.value}`}function D(r=t=>t.isTrusted){let t=new WeakMap,s=new WeakSet,o=new WeakMap,i={heard(e,n){if(!(!g(n)||!r(e))&&(e.type==="input"||e.type==="change"&&R(n))&&((R(n)||S(n))&&s.delete(n),S(n)&&o.delete(n),t.set(n,y(n)),n.type==="radio"&&n.name)){let u=n.getRootNode();for(let c of u.querySelectorAll?.('input[type="radio"]')??[])c.name===n.name&&t.set(c,y(c))}},filled(e){t.delete(e),o.delete(e),g(e)&&!S(e)?s.add(e):s.delete(e)},press(e,n,u){if(!r(e))return;let c=n.closest("[data-act]");if(!c||!w(c))return;let l=e.type==="keydown"?e.key:void 0;if(!(e.type!=="click"&&!((l==="Enter"||l===" ")&&n===c&&!v(c))))return i.collect(c,u)},collect(e,n){if(!e.hasAttribute("data-act")||!n.contains(e))return;let u=e.closest("[data-record]"),c=e.closest("fieldset, [role='group']")??n,l=[];for(let a of c.querySelectorAll("input[name], select[name], textarea[name]")){let d=a,f=!s.has(d)&&t.get(d)===y(d);if(d.type==="radio"){if(!d.checked)continue;l.push({name:d.name,value:d.value,typed:f,empty:!1,chosen:!0});continue}if(d.localName==="select"){l.push({name:d.name,value:d.value,typed:f,empty:d.value===""&&!f,chosen:!0});continue}if(d.type==="checkbox"){l.push({name:d.name,value:d.checked,typed:f,empty:!d.checked&&!s.has(d)&&!f});continue}let O=(d.type==="number"||d.type==="range")&&d.value!==""&&Number.isFinite(d.valueAsNumber)?d.valueAsNumber:d.value,x=f?o.get(d):void 0;l.push({name:d.name,value:O,typed:f,empty:d.value===""&&!f,...x?{from:x}:{}})}return{as:e.getAttribute("data-act")??"",...u&&n.contains(u)?{record:u.getAttribute("data-record")}:{},fields:l}},prefilled(e,n){s.delete(e),o.set(e,n),t.set(e,y(e))}};return i}var b=new WeakMap,L=(r,t)=>{t.tab&&r.removeAttribute("tabindex"),t.role&&r.getAttribute("role")==="button"&&r.removeAttribute("role"),r.removeAttribute("data-graview-press"),b.delete(r)};function V(r){for(let t of r.querySelectorAll("[data-act], [data-graview-press], [role], [aria-pressed], [aria-expanded]")){let s=b.get(t),o=w(t)&&!v(t)&&!g(t),i=!o&&P(t,s?.role?null:t.getAttribute("role"));if(s&&(s.bound!==o||!(o||i))&&L(t,s),(o||i)&&!b.has(t)){let e=!M(t),n=o&&N(t);e&&t.setAttribute("tabindex","0"),n&&t.setAttribute("role","button"),t.setAttribute("data-graview-press",""),b.set(t,{tab:e,role:n,bound:o})}}}var h=new WeakSet;function z(r){for(let t of r.querySelectorAll("svg")){let s=t.hasAttribute("role")||t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||[...t.children].some(e=>e.localName==="title"),o=t.hasAttribute("tabindex")||t.hasAttribute("data-graview-link")||t.hasAttribute("data-graview-press")||t.querySelector("[tabindex], [data-graview-link], [data-graview-press], a")!==null,i=!s&&!o;i&&!h.has(t)&&!t.hasAttribute("aria-hidden")?(t.setAttribute("aria-hidden","true"),h.add(t)):!i&&h.has(t)&&(t.removeAttribute("aria-hidden"),h.delete(t))}}var I=1e3;function H(r){let t=r.getAttribute("data-debounce")?.trim(),s=t?Number(t):Number.NaN;return Number.isFinite(s)?Math.min(1e4,Math.max(250,Math.round(s))):I}function B(r){let t=r.trusted??(e=>e.isTrusted),s=r.timers??{set:(e,n)=>setTimeout(e,n),clear:e=>clearTimeout(e)},o=new Map,i=(e,n)=>{let u=o.get(e);u&&s.clear(u.handle),o.delete(e);let c=r.reader.collect(e,n);c&&r.save(c,e)};return{heard(e,n,u){if(!g(n)||!t(e)||!n.hasAttribute("data-act"))return;let c=n.getAttribute("data-save");if(e.type==="input"&&c==="input"){let l=o.get(n);l&&s.clear(l.handle),o.set(n,{root:u,handle:s.set(()=>i(n,u),H(n))})}else e.type==="change"&&(c==="change"||c==="input"&&o.has(n))&&i(n,u)},flush(){for(let[e,{root:n}]of[...o])i(e,n)},get waiting(){return o.size}}}var q=new Set(["text","search","email","url","tel","number"]);function C(r,t,s,o){for(let i of r.querySelectorAll("input[data-prefill], textarea[data-prefill]")){let e=i;if(s.has(e))continue;let n=e.getAttribute("data-prefill")??"";if(n===""||e.getAttribute("name")!==n||e.localName==="input"&&!q.has(e.type))continue;if(e.value!==""){s.add(e);continue}let c=[...(e.closest("fieldset, [role='group']")??r).querySelectorAll("[data-act]")],l=e.closest("[data-record]"),a=new Set(c.map(p=>p.closest("[data-record]")?.getAttribute("data-record")).filter(p=>typeof p=="string")),d=l&&r.contains(l)?l.getAttribute("data-record"):a.size===1?[...a][0]:void 0;if(!d)continue;let f=o({record:d,field:n,acts:c.map(p=>p.getAttribute("data-act")??"")});if(f!==void 0){if(e.value=f,s.add(e),e.value!==f){e.value="";continue}t.prefilled(e,{record:d,field:n,value:f})}}}function J(r,t,s,o){let i=k(t,o.as);if(!i)return m("undeclared",`This view may not ask for \u201C${o.as}\u201D: its manifest does not name it.`);let e=r.allMutations().find(a=>a.name===i.act);if(!e)return m("unknown-act","There is no act by that name here.");let n={};if(o.record!==void 0){let a=i.record??e.subject?.arg;if(!a)return m("unbound",`\u201C${o.as}\u201D is not done to a record.`);if(!s.has(o.record))return m("unbound","That press is bound to a record this view was not shown.");n[a]=o.record}for(let[a,d]of Object.entries(i.constants??{})){if(a in n)return m("malformed",`\u201C${a}\u201D is both the bound record and a constant.`);n[a]=d}let u=e.input?.shape??{},c=new Set(Object.keys(u)),l=new Set;for(let a of o.fields){if(!c.has(a.name)||a.name in n)continue;if(l.has(a.name))return m("malformed",`Two fields here are called \u201C${a.name}\u201D.`);l.add(a.name);let d=u[a.name];if(!a.chosen&&a.value===""&&!E(d,"")){a.typed&&a.from&&E(d,null)&&(n[a.name]=null);continue}if(a.typed&&a.chosen){let f=T(u[a.name])?.find(p=>String(p)===String(a.value));if(f!==void 0)n[a.name]=f;else if(typeof a.value=="string"&&s.has(a.value))n[a.name]=a.value;else return m("untyped",`\u201C${a.name}\u201D was a choice among the view's own words, not one this app declares, so it was not sent.`)}else{if(a.typed&&a.from&&!(o.record===a.from.record&&a.name===a.from.field&&A(r,i,a.from.record,a.from.field)))return m("untyped",`\u201C${a.name}\u201D was filled in from a record for an act that writes it back there, not for this one, so it was not sent.`);if(a.typed&&a.from&&String(a.value)===a.from.value)n[a.name]=r.graph.getNode(a.from.record)?.[a.name]??a.value;else if(a.typed)n[a.name]=a.value;else if(!a.empty)if(F(r,d,a.value,o.record!==void 0&&A(r,i,o.record,a.name)?o.record:void 0,a.name))n[a.name]=a.value;else return m("untyped",`\u201C${a.name}\u201D was filled in by the view, not typed by you, so it was not sent.`)}}return{ok:!0,name:i.act,args:n}}function E(r,t){let s=r?.safeParse;return typeof s=="function"?s.call(r,t).success:!1}function $(r){let t=r;for(let s=0;s<8&&t?._zod?.def;s+=1){let o=t._zod.def;if(o.type==="default"||o.type==="prefault"){let i=o.defaultValue;return{value:typeof i=="function"?i():i}}if(!("innerType"in o))return;t=o.innerType}}function F(r,t,s,o,i){if(!E(t,s))return!1;if(s===0||s===!1||s==="0")return!0;let e=$(t);if(e&&Object.is(e.value,s))return!0;if(o===void 0)return!1;let n=r.graph.getNode(o)?.[i];return n!=null&&String(n)===String(s)}function A(r,t,s,o){let i=r.allMutations().find(c=>c.name===t.act),e=i?.subject;if(!i||!e||(t.record??e.arg)!==e.arg||o===e.arg||Object.hasOwn(t.constants??{},o)||!Object.hasOwn(i.input.shape??{},o)||Object.keys(i.writesOther??{}).length>0)return!1;let n=r.graph.getNode(s)?.kind,u=n===void 0?void 0:r.schema.tryDefinition(n);return!u||e.kinds!=="*"&&!e.kinds.includes(n)||!Object.hasOwn(u.fields.shape??{},o)?!1:i.writes?.includes(o)??!1}function K(r,t,s,o,i){if(!o.has(i.record))return;let e=r.seenBy(t).graph.getNode(i.record);if(!e||!i.acts.some(c=>{let l=k(s,c);if(!l||!A(r,l,i.record,i.field))return!1;let a=r.allMutations().find(d=>d.name===l.act).subject;return r.permits({name:l.act,args:{[a.arg]:i.record}},t).ok}))return;let u=e[i.field];return typeof u=="string"?u:typeof u=="number"&&Number.isFinite(u)?String(u):void 0}export{D as a,V as b,z as c,I as d,H as e,B as f,C as g,J as h,E as i,A as j,K as k};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk.VBHV4TLG.js";import"./chunk.T6PU3NKP.js";import"./chunk.
|
|
1
|
+
import"./chunk.VBHV4TLG.js";import"./chunk.T6PU3NKP.js";import"./chunk.Z67LBSQO.js";import"./chunk.O2VXTYUJ.js";import{a as x,b as P,c as L}from"./chunk.BQAFFEOA.js";import{b as R}from"./chunk.AWV57UBJ.js";import"./chunk.YBQ5GVAX.js";import"./chunk.EB7PZJEO.js";import"./chunk.MSUZAJ2K.js";import"./chunk.64LCHHZB.js";import"./chunk.42KHFGN6.js";import"./chunk.RQG672MJ.js";import"./chunk.Q6H5HESF.js";import"./chunk.3JMQKANL.js";import"./chunk.42C3FIKK.js";import"./chunk.2ME4DVBI.js";import"./chunk.XXCHO2A5.js";import"./chunk.SADR3MQI.js";import"./chunk.HJCQ6I3S.js";import"./chunk.2BMZPALF.js";import"./chunk.GONZB3J3.js";import"./chunk.LFFJB6D3.js";import"./chunk.DMZRFXH7.js";import"./chunk.DZ6UDZOB.js";import"./chunk.25VJPUDH.js";import"./chunk.XDZDNZ7B.js";import"./chunk.E423JCOS.js";import"./chunk.O5FTWXA2.js";import"./chunk.Q4VFLLUT.js";import"./chunk.6ZENHSTQ.js";import"./chunk.TBY5IR7C.js";import"./chunk.BHJRT57H.js";import"./chunk.BIDL7GQD.js";import"./chunk.CNN32262.js";import"./chunk.N5Z34V7U.js";import"./chunk.LOKGUALC.js";import"./chunk.JGRSUTPJ.js";import"./chunk.XOZU4OFA.js";import"./chunk.EP5JS7ZH.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.KAM73WVF.js";import"./chunk.O32F6LGK.js";import"./chunk.YFVJUHAK.js";import"./chunk.EGSOHTZZ.js";import"./chunk.WVUJXDXZ.js";import"./chunk.L7XKYGV7.js";import"./chunk.CE3NKAF7.js";import"./chunk.R3GE37OI.js";import"./chunk.2KCDLCB2.js";import"./chunk.UD7VLXPM.js";import"./chunk.3DEWQDP7.js";import"./chunk.MIE4TJRW.js";import{s as T}from"./chunk.CFE3MHWZ.js";import"./chunk.RD2FSSLV.js";import"./chunk.HXTKBISQ.js";import"./chunk.TFJA4QV4.js";import"./chunk.HWFJQ42Y.js";import"./chunk.QUETLFBJ.js";import"./chunk.JULD4XFB.js";import"./chunk.GRTBEA7O.js";import"./chunk.H3IGXHZR.js";import"./chunk.7TDML5YU.js";import{G as S,I as $,W as p,ea as C,ga as A}from"./chunk.3VEZ5MOC.js";import"./chunk.SDO3U72B.js";import{ka as v,td as k}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import{b as i}from"./chunk.AJZBJBMO.js";var r=i(S(),1);var l=i(S(),1);var g=i(p(),1);var m={font:"inherit",fontSize:"0.875rem",minHeight:24,padding:0,border:0,borderRadius:2,background:"transparent",boxShadow:"none",color:"var(--graview-accent)",textDecoration:"underline",textUnderlineOffset:3,textAlign:"start",cursor:"pointer"};var e=i(p(),1);function Q({page:n=!1,go:E,onPick:y,onDiscard:N}){let{store:d,seatTalk:c}=C(),u=$(c),D=L(),h=E??D,{keep:M}=x(h),[H,f]=(0,r.useState)(!1);A();let t=u.draft;(0,r.useEffect)(()=>f(!1),[t]),(0,r.useEffect)(()=>{n||P(!1)},[n]);let w=(0,r.useRef)(null),b=t!==null&&!n;if((0,r.useLayoutEffect)(()=>{let s=w.current;if(!b||!s?.parentElement)return;let o=[];for(let a=s.previousElementSibling;a;a=a.previousElementSibling)a instanceof HTMLElement&&!a.inert&&a.tagName!=="STYLE"&&(a.inert=!0,o.push(a));return()=>{for(let a of o)a.inert=!1}},[b]),!t)return null;let G=R(t.drawn),F=d.schema.tryDefinition(t.kind),O=d.graph.nodesOfKind(t.kind).filter(s=>v(F,s)),q=()=>{c.setDraft(null),N?.()};return(0,e.jsxs)("section",{ref:w,"data-testid":"draft-frame","data-graview-draft-frame":n?"page":"scene","aria-label":`Draft: ${t.title}`,style:n?{display:"grid",gap:12,minWidth:0}:{position:"absolute",inset:12,zIndex:k("rail"),display:"grid",gridTemplateRows:"auto auto minmax(0, 1fr)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:12,boxShadow:"var(--graview-lift-high)",overflow:"hidden",minHeight:0},children:[(0,e.jsxs)("p",{"data-testid":"draft-line",style:{...z,...n?{}:{padding:"10px 16px"}},children:[n?(0,e.jsx)("span",{children:"Draft"}):(0,e.jsxs)("span",{children:["Draft \u2014 ",(0,e.jsx)("span",{"data-testid":"draft-title",style:{color:"var(--graview-ink)",fontWeight:600},children:t.title})]}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-keep",disabled:H,title:`Keep \u201C${t.title}\u201D as a lens: a place of its own`,onClick:()=>{f(!0),M(t).finally(()=>f(!1))},style:m,children:"Keep as a lens"}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-discard",onClick:q,style:m,children:"Discard"})]}),u.draftNote?(0,e.jsx)("p",{"data-testid":"draft-note",role:"status",style:{margin:0,padding:n?0:"0 16px 8px",fontSize:"0.8125rem",color:"var(--graview-warn)"},children:u.draftNote}):(0,e.jsx)("span",{}),(0,e.jsx)("div",{"data-testid":"draft-lens","data-graview-draft":t.lens.name,role:"group","aria-label":t.title,tabIndex:0,style:n?{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",scrollbarGutter:"stable",border:"1px solid var(--graview-edge)",borderRadius:12,background:"var(--graview-panel)"}:{minHeight:0,overflow:"auto",scrollbarGutter:"stable",display:"grid",gridTemplateRows:"minmax(0, 1fr)"},onClick:s=>{let o=s.target?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");if(!o||!d.graph.getNode(o))return;s.preventDefault();let a=d.graph.getNode(o);y?(c.setDraft(null),y(o)):h({to:"record",id:o,kind:a.kind,label:o,address:"",said:""})},children:(0,e.jsx)(T,{kind:t.kind,view:t.title,children:(0,e.jsx)(G,{nodes:O,label:t.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})]})}var z={margin:0,display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 8px",fontSize:"0.875rem",color:"var(--graview-ink-muted)",borderBottom:"1px solid var(--graview-edge)",paddingBottom:8};export{Q as DraftFrame};
|
|
@@ -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{a as U,b as V,d as b,e as B,f as C,g as W}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{a as U,b as V,d as b,e as B,f as C,g as W}from"./chunk.VES4XMZX.js";import{a as p,b as T,c as S,e as _}from"./chunk.BBLIT7S7.js";import{a as J,b as h,e as A}from"./chunk.KUCBNMIY.js";import{b as z}from"./chunk.TVWK3SGD.js";import{a as R}from"./chunk.SDO3U72B.js";import"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var Q=R(()=>(__graviewPreload(import.meta.url,["./chunk.RSMCTI2N.js","./chunk.AJZBJBMO.js"]),import("./chunk.UJPX3BUV.js")));function te(d,e){let f=d.ownerDocument,u=f.defaultView,t=f.createElement("iframe");t.setAttribute("sandbox",T),t.setAttribute("referrerpolicy","no-referrer"),t.setAttribute("allow",""),t.setAttribute("title",e.title??e.view),t.setAttribute("data-guest-view",e.view),t.setAttribute("aria-busy","true"),t.style.border="0",t.style.width="100%",t.style.display="block",t.src=e.url;let a={applied:0,refused:0,dropped:0},P=h(e.limits),i,y,o={applied:0,refused:0,dropped:0},v=()=>{if(!i)return;let r=i.stats;a.applied+=r.applied-o.applied,a.refused+=r.refused-o.refused,a.dropped+=r.dropped-o.dropped,o={...r}},O=W(u,()=>l(),"data"),g=()=>C(()=>e.theme?.()??b(d),e.brand,O),L="",l=()=>{i&&(L=JSON.stringify(g()),i.push())},k=B(f,()=>{i&&JSON.stringify(g())!==L&&l()}),n,w=!1,D=e.pictures?z(Q,({createGuestPictures:r})=>{n=r(u,{as:"data",view:`"${e.title??e.view}"`,pictures:e.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>{i?.push(),G&&E()}}),w&&x()}):()=>{},G=!1,c,N=()=>{!G||n?.waiting()||(clearTimeout(c),t.removeAttribute("data-guest-view-failed"),t.removeAttribute("aria-busy"),t.setAttribute("data-guest-view-drawn",""))},E=()=>{clearTimeout(c),c=setTimeout(N,250)},F=setTimeout(()=>{i||(t.removeAttribute("aria-busy"),t.setAttribute("data-guest-view-failed","silent"))},e.limits?.readyMs??8e3),H=()=>{v(),i?.dispose(),y?.close(),i=void 0,y=void 0,o={applied:0,refused:0,dropped:0}},M=r=>{if(!(r.source===null||r.source!==t.contentWindow)){if(r.origin!==S||!P.message()){a.dropped+=1;return}if(!_(r.data)||r.data.protocol!==1){a.dropped+=1;return}if(e.pictures&&!n){w=!0;return}x()}},x=()=>{w=!1,H();let r=U(),m=new MessageChannel;y=m.port1;let I=A({store:e.store,principal:e.principal,view:e.view,nonce:r,send:s=>m.port1.postMessage(s),...e.input?{input:e.input}:{},...e.reads?{reads:e.reads}:{},...n?{hand:n.hand}:{},theme:g,...e.places?{places:()=>[...new Set(e.places().map(s=>s.as))],placesShown:e.places}:{},...e.onNavigatePlace?{onNavigatePlace:e.onNavigatePlace}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},...e.onArrive?{onArrive:e.onArrive}:e.goTo?{onArrive:s=>V(e.goTo(),s)}:{},...e.onLost?{onLost:e.onLost}:{},onSize:s=>{e.onSize?e.onSize(s):t.style.height=`${s}px`,N()},...e.limits?{limits:e.limits}:{},limiter:P});i=I,m.port1.onmessage=s=>{I.receive(s.data),v()};let j={graview:"host-hello",protocol:1,nonce:r,view:e.view};t.contentWindow.postMessage(j,"*",[m.port2]),l(),G=!0,E()};return u.addEventListener("message",M),d.appendChild(t),d.removeAttribute("aria-busy"),{iframe:t,update:l,get stats(){return v(),a},dispose(){H(),clearTimeout(F),clearTimeout(c),k(),O.dispose(),D(),n?.dispose(),u.removeEventListener("message",M),t.remove()}}}export{p as GUEST_PROTOCOL,T as GUEST_SANDBOX,S as OPAQUE_ORIGIN,A as createGuestHost,h as createGuestLimiter,te as mountGuestView,J as readAcross,b as readTheme};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as n}from"./chunk.BPNW5KCP.js";import{c as a}from"./chunk.IKKKHHRN.js";import"./chunk.IPGLITWA.js";import"./chunk.U5P23GO7.js";import"./chunk.DCLF4WWZ.js";import"./chunk.XDZDNZ7B.js";import"./chunk.E423JCOS.js";import"./chunk.O5FTWXA2.js";import"./chunk.Q4VFLLUT.js";import"./chunk.6ZENHSTQ.js";import"./chunk.YL2RBZFE.js";import"./chunk.LOKGUALC.js";import"./chunk.MIE4TJRW.js";import"./chunk.CFE3MHWZ.js";import"./chunk.RD2FSSLV.js";import"./chunk.HXTKBISQ.js";import"./chunk.TFJA4QV4.js";import"./chunk.HWFJQ42Y.js";import"./chunk.QUETLFBJ.js";import"./chunk.JULD4XFB.js";import"./chunk.GRTBEA7O.js";import"./chunk.H3IGXHZR.js";import"./chunk.7TDML5YU.js";import{W as i}from"./chunk.3VEZ5MOC.js";import"./chunk.SDO3U72B.js";import"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import{b as o}from"./chunk.AJZBJBMO.js";var e=o(i(),1);function m({entries:d,style:l,headingStyle:p,className:r}){return(0,e.jsxs)("section",{...r?{className:r}:{},"data-testid":"record-ai","aria-label":"What AI did here",style:{display:"grid",gap:10,...l},children:[(0,e.jsx)("h2",{style:p??{margin:0,fontSize:"1rem"},children:"What AI did here"}),(0,e.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:8,fontSize:"0.875rem"},children:d.slice(0,8).map(t=>(0,e.jsx)(n,{entry:t,undo:s=>(0,e.jsx)(a,{batch:s})},t.id))})]})}export{m as RecordInteractions};
|