graview 0.1.66 → 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.OJY7VJ7D.js → chunk.2BMZPALF.js} +1 -1
- package/dist/preview/{chunk.OTV5XTBB.js → chunk.2KCDLCB2.js} +1 -1
- package/dist/preview/{chunk.WVLEGCRI.js → chunk.2ME4DVBI.js} +1 -1
- package/dist/preview/chunk.2TUEBU7X.js +8 -0
- package/dist/preview/{chunk.QHMHUL6B.js → chunk.2U6HB4XU.js} +1 -1
- package/dist/preview/{chunk.ZQR2SN65.js → chunk.32JE2WS7.js} +1 -1
- package/dist/preview/{chunk.OEIWIZCP.js → chunk.3DEWQDP7.js} +1 -1
- package/dist/preview/{chunk.2VR7YEJ6.js → chunk.3JMQKANL.js} +1 -1
- package/dist/preview/chunk.3VEZ5MOC.js +25 -0
- package/dist/preview/chunk.3WPCS6KP.js +1 -0
- package/dist/preview/{chunk.FXT5CN32.js → chunk.42C3FIKK.js} +1 -1
- package/dist/preview/{chunk.QQAZQDRW.js → chunk.42KHFGN6.js} +1 -1
- package/dist/preview/{chunk.ANS2IEEV.js → chunk.4DXPPM6T.js} +1 -1
- package/dist/preview/chunk.4GVKKBQL.js +1 -0
- package/dist/preview/{chunk.5CXIEYHY.js → chunk.4TT3ZHSJ.js} +2 -2
- package/dist/preview/{chunk.OMT4QUZY.js → chunk.4YAO3A5Q.js} +4 -4
- package/dist/preview/{chunk.M2JCFNHJ.js → chunk.5JKUT2OM.js} +1 -1
- package/dist/preview/chunk.5L4ADKTW.js +1 -0
- package/dist/preview/{chunk.YNEHJWJV.js → chunk.64LCHHZB.js} +1 -1
- package/dist/preview/{chunk.6HY6ZGEE.js → chunk.6AANHELP.js} +1 -1
- package/dist/preview/{chunk.6TLXFMX2.js → chunk.6DMCEBSO.js} +1 -1
- package/dist/preview/{chunk.IWYMKGZZ.js → chunk.6IR5LBJU.js} +1 -1
- package/dist/preview/{chunk.YIPXZUTT.js → chunk.6WB2TYK7.js} +1 -1
- package/dist/preview/chunk.6ZENHSTQ.js +1 -0
- package/dist/preview/{chunk.7ZKBYXUM.js → chunk.7K2V5FUB.js} +1 -1
- package/dist/preview/chunk.7OL6H4LF.js +1 -0
- package/dist/preview/{chunk.FBILPNGH.js → chunk.7TDML5YU.js} +1 -1
- package/dist/preview/{chunk.45JP6VGJ.js → chunk.7WPVLEX2.js} +2 -2
- package/dist/preview/{chunk.W4YDPHCQ.js → chunk.7ZTGB4O7.js} +1 -1
- package/dist/preview/{chunk.4FDVINRJ.js → chunk.ACNOP2IU.js} +1 -1
- package/dist/preview/{chunk.AK7NGFEX.js → chunk.AENP662H.js} +1 -1
- package/dist/preview/{chunk.MWGZKZD6.js → chunk.AQ2PI6MR.js} +1 -1
- package/dist/preview/chunk.ARS4HJD2.js +1 -0
- package/dist/preview/{chunk.FDZE5LTJ.js → chunk.AWV57UBJ.js} +2 -2
- package/dist/preview/{chunk.C2C3AXGI.js → chunk.AYZL3LCR.js} +3 -3
- package/dist/preview/{chunk.FIFUMX5X.js → chunk.BHJRT57H.js} +1 -1
- package/dist/preview/{chunk.IAEHUSQQ.js → chunk.BPNW5KCP.js} +1 -1
- package/dist/preview/{chunk.HOCD7KIR.js → chunk.BQAFFEOA.js} +1 -1
- package/dist/preview/chunk.C2QKA6XY.js +1 -0
- package/dist/preview/{chunk.NJRLJEJY.js → chunk.CE3NKAF7.js} +1 -1
- package/dist/preview/{chunk.5LJVOLKR.js → chunk.CFE3MHWZ.js} +1 -1
- package/dist/preview/{chunk.DQFHIJFN.js → chunk.CGBOPPNL.js} +1 -1
- package/dist/preview/{chunk.V7W5AQKL.js → chunk.CNN32262.js} +1 -1
- package/dist/preview/{chunk.6EHHMWPP.js → chunk.DCLF4WWZ.js} +1 -1
- package/dist/preview/{chunk.OO2OP76C.js → chunk.DGDW54KE.js} +1 -1
- package/dist/preview/{chunk.XMQG2PSM.js → chunk.DLSS56EU.js} +1 -1
- package/dist/preview/{chunk.WSO7JOW5.js → chunk.DMZRFXH7.js} +1 -1
- package/dist/preview/{chunk.DEHIR4EG.js → chunk.DPHH5ZVL.js} +1 -1
- package/dist/preview/{chunk.XOE4KNP2.js → chunk.DZ6UDZOB.js} +2 -2
- package/dist/preview/{chunk.WAB3L3ZI.js → chunk.E423JCOS.js} +1 -1
- package/dist/preview/{chunk.CTASTRQN.js → chunk.EB7PZJEO.js} +1 -1
- package/dist/preview/{chunk.QPF4KSAW.js → chunk.ECNGVD25.js} +1 -1
- package/dist/preview/{chunk.JXNVNFV4.js → chunk.EGSOHTZZ.js} +1 -1
- package/dist/preview/{chunk.CEVGND3Y.js → chunk.EGVM24ND.js} +3 -3
- package/dist/preview/{chunk.6LXIEM6B.js → chunk.ENLIIZF2.js} +1 -1
- package/dist/preview/{chunk.GME63ZHI.js → chunk.EP5JS7ZH.js} +1 -1
- package/dist/preview/{chunk.QGIM2WAY.js → chunk.F5GNNVSQ.js} +1 -1
- package/dist/preview/chunk.FHQ25SWY.js +1 -0
- package/dist/preview/{chunk.OOSIKCOS.js → chunk.FSW535EA.js} +1 -1
- package/dist/preview/{chunk.ZD7T234N.js → chunk.FZELUSK5.js} +1 -1
- package/dist/preview/{chunk.LINSO5PN.js → chunk.G2BDEWJC.js} +1 -1
- package/dist/preview/chunk.GF3ZCX46.js +2 -0
- package/dist/preview/{chunk.J7W2OFHY.js → chunk.GJTEV6CK.js} +1 -1
- package/dist/preview/{chunk.VKZIEZ5C.js → chunk.GKTQ5CZA.js} +2 -2
- package/dist/preview/{chunk.GEFXU4VO.js → chunk.GONZB3J3.js} +1 -1
- package/dist/preview/{chunk.VGHO3VCB.js → chunk.GRBWXTST.js} +1 -1
- package/dist/preview/{chunk.YXEO3Y65.js → chunk.GRTBEA7O.js} +1 -1
- package/dist/preview/chunk.H3IGXHZR.js +93 -0
- package/dist/preview/{chunk.QFHWG4LN.js → chunk.H3W5C3XQ.js} +1 -1
- package/dist/preview/{chunk.TGEL6EUA.js → chunk.H4VNIAHN.js} +1 -1
- package/dist/preview/{chunk.IGK7EZCX.js → chunk.HH4D3JEI.js} +1 -1
- package/dist/preview/{chunk.F4VB6Q2W.js → chunk.HWFJQ42Y.js} +1 -1
- package/dist/preview/{chunk.OWFS2YDQ.js → chunk.HXTKBISQ.js} +1 -1
- package/dist/preview/{chunk.ZR2TP3BF.js → chunk.I34BWUB4.js} +1 -1
- package/dist/preview/{chunk.EXYCN4WI.js → chunk.I63462I3.js} +1 -1
- package/dist/preview/{chunk.7VADSNPZ.js → chunk.IKKKHHRN.js} +1 -1
- package/dist/preview/{chunk.FK722SHI.js → chunk.IPGLITWA.js} +1 -1
- package/dist/preview/{chunk.BXBEGMPO.js → chunk.IT5DVKXY.js} +2 -2
- package/dist/preview/{chunk.LLIURXFP.js → chunk.IXMIU4D4.js} +1 -1
- package/dist/preview/{chunk.INHS3KTK.js → chunk.JCETQQ7J.js} +1 -1
- package/dist/preview/{chunk.PPSYUOH7.js → chunk.JGRSUTPJ.js} +1 -1
- package/dist/preview/{chunk.4U4D7WOI.js → chunk.JLDJZET2.js} +1 -1
- package/dist/preview/{chunk.Z7Y3R3YR.js → chunk.JULD4XFB.js} +1 -1
- package/dist/preview/{chunk.PAGEGBUD.js → chunk.JV432T4Q.js} +1 -1
- package/dist/preview/{chunk.4FCFNAA4.js → chunk.KAM73WVF.js} +1 -1
- package/dist/preview/{chunk.6P6NGZ6D.js → chunk.KUCBNMIY.js} +1 -1
- package/dist/preview/{chunk.I2737CPF.js → chunk.L7XKYGV7.js} +1 -1
- package/dist/preview/{chunk.7VP6Y6D2.js → chunk.LFFJB6D3.js} +1 -1
- package/dist/preview/{chunk.BFAFCVL4.js → chunk.LMTG5NPG.js} +1 -1
- package/dist/preview/{chunk.QOS5T46W.js → chunk.LOKGUALC.js} +1 -1
- package/dist/preview/chunk.LZ6MSQ5O.js +1 -0
- package/dist/preview/chunk.MBTEOF4R.js +1 -0
- package/dist/preview/{chunk.PFQBCHQA.js → chunk.MIOLBZBS.js} +1 -1
- package/dist/preview/{chunk.PDDIQ6PK.js → chunk.MK5RPEB2.js} +1 -1
- package/dist/preview/{chunk.FV72U33M.js → chunk.MKL4THIV.js} +1 -1
- package/dist/preview/{chunk.2MHNPBHC.js → chunk.MPWLDQOG.js} +1 -1
- package/dist/preview/chunk.MSUZAJ2K.js +4 -0
- package/dist/preview/{chunk.EMFOMSMI.js → chunk.N5Z34V7U.js} +1 -1
- package/dist/preview/chunk.N64RVSH3.js +1 -0
- package/dist/preview/{chunk.5B5SRTUK.js → chunk.ND3DEDWB.js} +1 -1
- package/dist/preview/{chunk.3L4JMM3P.js → chunk.NFTPJAMJ.js} +1 -1
- package/dist/preview/{chunk.J2MM6BUW.js → chunk.NRCWMYLH.js} +1 -1
- package/dist/preview/{chunk.OPTYYIGC.js → chunk.O2VXTYUJ.js} +1 -1
- package/dist/preview/{chunk.4AC2QM7T.js → chunk.O32F6LGK.js} +1 -1
- package/dist/preview/{chunk.W53YNBSM.js → chunk.O5FTWXA2.js} +1 -1
- package/dist/preview/{chunk.U6TEW6YD.js → chunk.ODYJEDIW.js} +1 -1
- package/dist/preview/{chunk.E7EWNWAN.js → chunk.OQ4ZO3YY.js} +1 -1
- package/dist/preview/chunk.PI4RFOBU.js +1 -0
- package/dist/preview/{chunk.BMENTGDC.js → chunk.PIMAG4WT.js} +2 -2
- package/dist/preview/{chunk.DTCAUPLC.js → chunk.PLIV3IQK.js} +1 -1
- package/dist/preview/{chunk.4JULYKGD.js → chunk.PPCDPYYU.js} +1 -1
- package/dist/preview/{chunk.BGAC3B7X.js → chunk.PZQ5P6WK.js} +1 -1
- package/dist/preview/chunk.Q42R2KW4.js +1 -0
- package/dist/preview/{chunk.2KFZHUAC.js → chunk.Q4VFLLUT.js} +1 -1
- package/dist/preview/{chunk.ONYBW45K.js → chunk.Q6H5HESF.js} +1 -1
- package/dist/preview/chunk.QM54TGU6.js +3 -0
- package/dist/preview/{chunk.6MQ5NT7S.js → chunk.QOQ26NXM.js} +1 -1
- package/dist/preview/{chunk.FFOD5B4B.js → chunk.QUETLFBJ.js} +1 -1
- package/dist/preview/{chunk.DSYP43NN.js → chunk.QWLK3GKG.js} +1 -1
- package/dist/preview/{chunk.RWIN3POV.js → chunk.QYPU444Y.js} +1 -1
- package/dist/preview/{chunk.ES63XSIM.js → chunk.QZP3ARLH.js} +1 -1
- package/dist/preview/{chunk.CVPMSPCH.js → chunk.R3GE37OI.js} +1 -1
- package/dist/preview/chunk.R66ZVMWB.js +1 -0
- package/dist/preview/chunk.RD2FSSLV.js +1 -0
- package/dist/preview/{chunk.72ZCLEQC.js → chunk.RQG672MJ.js} +1 -1
- package/dist/preview/chunk.RYA7A4NA.js +1 -0
- package/dist/preview/{chunk.BUVTUAB5.js → chunk.SADR3MQI.js} +1 -1
- package/dist/preview/{chunk.EQ4OODGO.js → chunk.SS6KL5NT.js} +1 -1
- package/dist/preview/chunk.SUG6LIOX.js +1 -0
- package/dist/preview/{chunk.WSDJPXJD.js → chunk.TFJA4QV4.js} +1 -1
- package/dist/preview/{chunk.3PBTN7RO.js → chunk.TOUSIUJF.js} +1 -1
- package/dist/preview/{chunk.CU2WCYMK.js → chunk.TR4YFVZN.js} +1 -1
- package/dist/preview/{chunk.GNEOSHQ6.js → chunk.TRNJKHIA.js} +1 -1
- package/dist/preview/{chunk.72XP2ARZ.js → chunk.TVWK3SGD.js} +1 -1
- package/dist/preview/chunk.U7PAFLUM.js +1 -0
- package/dist/preview/{chunk.QU52E5RG.js → chunk.UAMPR4MD.js} +1 -1
- package/dist/preview/{chunk.KBPJ7X7W.js → chunk.UD7VLXPM.js} +1 -1
- package/dist/preview/{chunk.M6ZN2KUO.js → chunk.UFURYU4R.js} +1 -1
- package/dist/preview/{chunk.6FQW6FNL.js → chunk.UODTUBQ7.js} +1 -1
- package/dist/preview/{chunk.KHRS2SKB.js → chunk.VBHV4TLG.js} +1 -1
- package/dist/preview/{chunk.KSIEO5W7.js → chunk.VES4XMZX.js} +1 -1
- package/dist/preview/chunk.VLXLBGMY.js +90 -0
- package/dist/preview/{chunk.QWNSHISU.js → chunk.VTDOWXCP.js} +1 -1
- package/dist/preview/{chunk.5FNFRVTL.js → chunk.VV5JAM5W.js} +1 -1
- package/dist/preview/{chunk.DZFM6GSY.js → chunk.VW632VNJ.js} +1 -1
- package/dist/preview/{chunk.LSN2IPAI.js → chunk.WC5WE34A.js} +1 -1
- package/dist/preview/chunk.WN7SAAH6.js +1 -0
- package/dist/preview/{chunk.B6JRTW3A.js → chunk.WV45KLXC.js} +1 -1
- package/dist/preview/{chunk.TXHYGFIZ.js → chunk.XDZDNZ7B.js} +1 -1
- package/dist/preview/{chunk.7BIPZTJB.js → chunk.XFH6GHBQ.js} +1 -1
- package/dist/preview/{chunk.HSSIMVVM.js → chunk.XRE7SHLD.js} +1 -1
- package/dist/preview/{chunk.LETAQTLJ.js → chunk.XXCHO2A5.js} +1 -1
- package/dist/preview/{chunk.KACSYPEV.js → chunk.Y7OGJOPA.js} +1 -1
- package/dist/preview/{chunk.LGRVEHXT.js → chunk.YBQ5GVAX.js} +2 -2
- package/dist/preview/{chunk.PSQYDCVM.js → chunk.YL2RBZFE.js} +1 -1
- package/dist/preview/{chunk.BZ7QWHAE.js → chunk.YM6SWEUI.js} +1 -1
- package/dist/preview/{chunk.CBXS23YH.js → chunk.Z2X7BFCB.js} +2 -2
- package/dist/preview/{chunk.U3ED7W2U.js → chunk.Z67LBSQO.js} +1 -1
- package/dist/preview/chunk.ZKXIZBCN.js +1 -0
- package/dist/preview/{chunk.E3UL4MCD.js → chunk.ZLEBOR5T.js} +1 -1
- package/dist/preview/{chunk.5BX66FBP.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 +56 -56
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.4WGYUYWU.js +0 -2
- package/dist/preview/chunk.5EMIWORS.js +0 -1
- package/dist/preview/chunk.6EVMXBNB.js +0 -1
- package/dist/preview/chunk.BCQWAFGD.js +0 -1
- package/dist/preview/chunk.BOCVLC7X.js +0 -1
- package/dist/preview/chunk.DPJNGFEZ.js +0 -4
- package/dist/preview/chunk.E4VRRWFP.js +0 -1
- package/dist/preview/chunk.EUAO4QNV.js +0 -1
- package/dist/preview/chunk.F7672TKJ.js +0 -1
- package/dist/preview/chunk.FA42HCPW.js +0 -1
- package/dist/preview/chunk.FBJAQPZ6.js +0 -1
- package/dist/preview/chunk.GAFMWOME.js +0 -1
- package/dist/preview/chunk.I4Z7HVRT.js +0 -1
- package/dist/preview/chunk.JMXXA4YG.js +0 -1
- package/dist/preview/chunk.JMYUQNXN.js +0 -6
- package/dist/preview/chunk.K6DFXDPZ.js +0 -1
- package/dist/preview/chunk.KF27ME27.js +0 -1
- package/dist/preview/chunk.L25DCT5S.js +0 -1
- package/dist/preview/chunk.MODLZJD4.js +0 -25
- package/dist/preview/chunk.OJGHDWI6.js +0 -1
- package/dist/preview/chunk.SSF47GUY.js +0 -1
- package/dist/preview/chunk.T6DPWW2K.js +0 -3
- package/dist/preview/chunk.TA36WBHK.js +0 -1
- package/dist/preview/chunk.TTGKX7LT.js +0 -1
- package/dist/preview/chunk.U3HERHAI.js +0 -88
- package/dist/preview/chunk.V5I4GZEY.js +0 -1
- package/dist/preview/chunk.VT2YGDK2.js +0 -1
- package/dist/preview/chunk.XK65Y2KX.js +0 -1
- package/dist/preview/chunk.Z274CL7J.js +0 -1
- package/dist/preview/chunk.ZBVYD4OX.js +0 -90
|
@@ -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.DTCAUPLC.js","./chunk.PDDIQ6PK.js","./chunk.3PBTN7RO.js","./chunk.QDVGHI7R.js","./chunk.6P6NGZ6D.js","./chunk.M5FP4Y4Q.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.XK65Y2KX.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.I2737CPF.js","./chunk.NJRLJEJY.js","./chunk.CVPMSPCH.js","./chunk.OTV5XTBB.js","./chunk.KBPJ7X7W.js","./chunk.OEIWIZCP.js","./chunk.Z7Y3R3YR.js","./chunk.YXEO3Y65.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.E7EWNWAN.js"))),Gr=B(()=>(__graviewPreload(import.meta.url,["./chunk.3PBTN7RO.js","./chunk.QDVGHI7R.js","./chunk.6P6NGZ6D.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.PFQBCHQA.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.I2737CPF.js","./chunk.NJRLJEJY.js","./chunk.CVPMSPCH.js","./chunk.OTV5XTBB.js","./chunk.KBPJ7X7W.js","./chunk.OEIWIZCP.js","./chunk.Z7Y3R3YR.js","./chunk.YXEO3Y65.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.5EMIWORS.js"))),Pr=B(()=>(__graviewPreload(import.meta.url,["./chunk.QDVGHI7R.js","./chunk.AJZBJBMO.js"]),import("./chunk.EG7OOJH5.js"))),Lr=B(()=>(__graviewPreload(import.meta.url,["./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.4U4D7WOI.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.
|
|
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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m}from"./chunk.
|
|
1
|
+
import{m}from"./chunk.H3IGXHZR.js";import{G as N,W as f,_ as y}from"./chunk.3VEZ5MOC.js";import{b as g}from"./chunk.AJZBJBMO.js";var p=g(N(),1);var a=g(f(),1);var R={default:{background:"var(--graview-panel, #ffffff)",color:"var(--graview-ink, #1a1a1a)"},muted:{background:"var(--graview-panel-muted, #f7f5f1)",color:"var(--graview-ink, #1a1a1a)"},warning:{background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)"}},T={color:"var(--graview-ink-muted, #55514a)"},C={color:"var(--graview-ink-faint, #625d55)"};function H(e){let[l,o]=(0,p.useState)(z);return(0,p.useEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let t=()=>{let i=W(r,parseFloat(getComputedStyle(r).paddingBottom)||0);o(s=>s.overflowing===i.overflowing&&s.above===i.above&&s.below===i.below?s:i)};t();let d=new ResizeObserver(t);d.observe(r);for(let i of r.children)d.observe(i);return r.addEventListener("scroll",t,{passive:!0}),()=>{d.disconnect(),r.removeEventListener("scroll",t)}}),l}var z={overflowing:!1,above:!1,below:!1};function W(e,l=0){let o=e.scrollHeight>e.clientHeight+1,r=e.scrollWidth>e.clientWidth+1;return{overflowing:o||r,above:o&&e.scrollTop>1,below:o&&e.scrollTop+e.clientHeight<e.scrollHeight-l-1}}var A=(0,p.createContext)(null),I=(0,p.createContext)(null);function O({level:e,said:l=!0,style:o,children:r}){if(e===void 0)return(0,a.jsx)("strong",{style:o,...l?{}:{"aria-hidden":!0},children:r});let t=`h${e}`;return(0,a.jsx)(t,{style:{margin:0,...o},children:r})}function E({title:e,subtitle:l,meta:o,selected:r,tone:t="default",children:d,style:i,fit:s=!1,variant:w,heading:b}){let c=(0,p.useRef)(null),{overflowing:v,above:x,below:S}=H(c),P=y(),n=(w??(P==="fullscreen"?"page":"card"))==="page",k=(0,p.useContext)(A),u=(0,p.useContext)(I);return(0,a.jsxs)("div",{"data-graview-primitive":"panel","data-graview-variant":n?"page":"card","data-selected":r||void 0,style:{display:"flex",flexDirection:"column",gap:n?12:"var(--graview-gap, 7px)",height:n||s?"auto":"100%",maxHeight:n?"none":"100%",padding:n?0:"var(--graview-pad, 15px)",boxSizing:"border-box",borderRadius:n?0:"var(--graview-radius, 12px)",border:n?"none":`1px solid ${r?"var(--graview-accent, #2f6f5e)":"var(--graview-edge, #e4e0d8)"}`,boxShadow:n?"none":r?"0 0 0 1px var(--graview-accent-dim), var(--graview-lift-low)":"var(--graview-lift-low)",overflow:n?"visible":"hidden",...R[t],...n?{background:"transparent"}:{},...i},children:[t==="warning"?(0,a.jsx)("span",{"data-graview-broken":"",style:m,children:"Implicated in a problem."}):null,e===void 0||e===k?null:(0,a.jsxs)("div",{style:{display:"flex",alignItems:"baseline",flexWrap:"wrap",gap:8,minWidth:0},children:[t==="warning"?(0,a.jsx)("span",{"aria-hidden":"true",title:"Implicated in a problem",style:{color:"var(--graview-warn)",flex:"0 0 auto"},children:"\u26A0"}):null,(0,a.jsx)(O,{level:b,said:u===null||e!==u,style:{fontFamily:"var(--graview-font-display, inherit)",fontSize:n?"1.5625rem":"0.9375rem",lineHeight:n?1.15:1.25,fontWeight:n?600:560,letterSpacing:n?"-0.012em":"0.005em",minWidth:0,overflowWrap:"anywhere"},children:e}),o===void 0?null:(0,a.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",letterSpacing:"0.08em",textTransform:"uppercase",minWidth:0,overflowWrap:"anywhere",...C},children:o})]}),l===void 0?null:(0,a.jsx)("div",{style:{fontSize:n?"0.90625rem":"0.8125rem",lineHeight:1.5,...T},children:l}),(0,a.jsx)("div",{ref:c,className:n?void 0:"graview-scroll",...v&&!n?{tabIndex:0,role:"region",...typeof e=="string"?{"aria-label":e}:{}}:{},style:{display:"flex",flexDirection:"column",gap:n?22:"var(--graview-gap, 7px)",flex:"1 1 auto",...n?{overflow:"visible"}:{marginBottom:"calc(-1 * var(--graview-pad, 15px))",paddingBottom:"var(--graview-pad, 15px)"},...!n&&!v?{overflow:"hidden"}:{}},"data-graview-more-above":x&&!n?"":void 0,"data-graview-more-below":S&&!n?"":void 0,children:d})]})}function h({label:e,hue:l,selected:o,title:r,pickId:t,emphasis:d}){let i=typeof e=="string"?e:void 0,s=l===void 0?void 0:Math.round(l);return(0,a.jsxs)("span",{"data-graview-primitive":"chip","data-selected":o||void 0,"data-graview-pick":t,"data-graview-emphasis":d,title:r??i,style:{cursor:t?"pointer":void 0,display:"inline-flex",alignItems:"center",alignSelf:"flex-start",minHeight:24,boxSizing:"border-box",padding:"3px 9px",borderRadius:6,fontSize:"0.8125rem",lineHeight:1.5,whiteSpace:"nowrap",maxWidth:"min(28ch, 100%)",overflow:"hidden",letterSpacing:"0.01em",border:`1px solid ${o?"var(--graview-accent)":s===void 0?"var(--graview-edge)":`hsl(${s} 55% var(--graview-tint-lightness) / 0.45)`}`,background:s===void 0?"var(--graview-panel-muted)":`hsl(${s} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * 0.65))`,color:"var(--graview-ink, #1a1a1a)",boxShadow:o?"0 0 14px -4px var(--graview-accent)":void 0},children:[s===void 0?null:(0,a.jsx)("span",{"aria-hidden":"true",style:{width:9,height:6,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",flex:"0 0 auto",marginRight:6,background:`hsl(${s} 55% var(--graview-tint-lightness) / 0.9)`}}),(0,a.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})]})}function L({items:e,max:l=8,selectedIds:o=[],pick:r=!1}){let t=e.slice(0,l),d=e.length-t.length;return(0,a.jsxs)("div",{"data-graview-primitive":"roster",style:{display:"flex",flexWrap:"wrap",gap:6,alignContent:"flex-start"},children:[t.map(i=>(0,a.jsx)(h,{label:i.label,...i.hue===void 0?{}:{hue:i.hue},...r?{pickId:i.id}:{},...i.emphasis===void 0?{}:{emphasis:i.emphasis},selected:o.includes(i.id)},i.id)),d>0?(0,a.jsx)(h,{label:`+${d} more`}):null]})}function F({label:e,count:l,items:o,onExpand:r,flagged:t,problems:d}){return(0,a.jsx)(E,{title:e,meta:d?(0,a.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[d,(0,a.jsx)("span",{children:l})]}):l,tone:t?"warning":"muted",style:r?{cursor:"zoom-in"}:void 0,children:o&&o.length>0?(0,a.jsx)(L,{items:o,max:6,pick:!0}):null})}export{A as a,I as b,E as c,h as d,L as e,F as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Pa as y,Ra as k,W as w,j as c,l as h,m as b,r as f}from"./chunk.
|
|
1
|
+
import{Pa as y,Ra as k,W as w,j as c,l as h,m as b,r as f}from"./chunk.3VEZ5MOC.js";import{Z as i}from"./chunk.6AANHELP.js";import{b as g}from"./chunk.AJZBJBMO.js";var s=null,a=new Set,v=e=>{s={kind:e,n:(s?.n??0)+1};for(let t of a)t()},A=()=>s,C=e=>(a.add(e),()=>a.delete(e)),V=()=>{s=null};var d=g(w(),1);function T(e,t){if(e.length===0||t.length===0)return[];let o=new Set(t.map(n=>n.id));return e.filter(n=>n.nodeIds.some(l=>o.has(l)))}var x=(e,t)=>`${i(e)} ${e===1?"problem":"problems"} in ${t}`;function q({kind:e,plural:t,problems:o,flag:n,listed:l=!1}){let{view:p,go:P}=k(),{set:$}=y();if(o.length===0)return null;let u=x(o.length,t),m=o.length===1?"it":"them";return(0,d.jsx)("button",{type:"button",className:"graview-district-problems","data-testid":`district-problems-${e}`,"data-graview-problems":o.length,"aria-expanded":l,"aria-label":u,title:`${u} \u2014 ${o[0].message}${o.length>1?` (and ${i(o.length-1)} more)`:""}. Press to see ${m} and how to fix ${m}.`,onClick:r=>{r.stopPropagation(),p.overview||P(h(c(b(p,!0),null),"view",null)),$([f(e)]),v(e)},onDoubleClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:(0,d.jsx)("span",{"aria-hidden":"true",children:`${n} ${i(o.length)}`})})}export{A as a,C as b,V as c,T as d,x as e,q as f};
|
|
@@ -0,0 +1,3 @@
|
|
|
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 Ze,b as et}from"./chunk.EGVM24ND.js";import{a as _e,b as Ve,c as je,d as Ye,e as Ke,f as Ge,g as Xe,j as Qe,p as Je,q as xe,r as de,s as Ce}from"./chunk.2TUEBU7X.js";import{d as Ue}from"./chunk.H3W5C3XQ.js";import{A as qe,x as Fe}from"./chunk.CFE3MHWZ.js";import{m as ze}from"./chunk.H3IGXHZR.js";import{G as ke,La as Se,W as Y,ea as We}from"./chunk.3VEZ5MOC.js";import{a as ve}from"./chunk.SDO3U72B.js";import{la as $e,td as W}from"./chunk.6AANHELP.js";import{b as O}from"./chunk.AJZBJBMO.js";var f=O(ke(),1);var G=O(ke(),1);var K=O(Y(),1),N=e=>(e??"").replace(/\s+/g," ").trim();function Et(e){let t=[e];e.shadowRoot&&t.push(e.shadowRoot);for(let a of e.querySelectorAll("[data-worker-view]"))a.shadowRoot&&t.push(a.shadowRoot);return t}function Pt(e){return e instanceof HTMLElement?e.innerText??e.textContent??"":[...e.children].map(t=>t instanceof HTMLElement?t.innerText??t.textContent??"":t.textContent??"").join(" ")}var Tt="li, tr, article, [data-graview-listed], [data-graview-record], [data-record], [data-key]",Rt=/^[\s·•|,:;–—\-+…✓✔×↓↑▸▾☆★⋯]*$/u;function Dt(e,t,a=[]){let c=[],p=(e.ownerDocument??document).createTreeWalker(e,NodeFilter.SHOW_TEXT),l=new Map,i=[...e.querySelectorAll(Tt)].filter(o=>!o.contains(t)&&a.some(s=>o.contains(s)));for(let o=p.nextNode();o;o=p.nextNode()){let s=o.parentElement;if(!s||t.contains(s)||i.some(d=>d.contains(s))||s.closest("button, input, select, textarea, [role='button'], nav, [hidden], [aria-hidden='true'], script, style"))continue;let r=s.closest("a[href]");r&&!r.contains(t)||l.set(s,(l.get(s)??"")+(o.textContent??""))}for(let[o,s]of[...l].flatMap(([r,d])=>d.split(/\s+·\s+/).map(n=>[r,n]))){let r=N(s);if(!(!r||r.length>40||Rt.test(r)||!/[\p{L}\p{N}]/u.test(r)||o.getClientRects().length===0)&&(c.includes(r)||c.push(r),c.length>=6))break}return c}var Mt=/^[\s\p{So}\p{Sk}\p{Sm}\uFE0F·•|–—✓✔×▸▾…-]+|[\s\p{So}\p{Sk}\p{Sm}\uFE0F·•|–—✓✔×▸▾…-]+$/gu,tt=e=>N(e).replace(Mt,"").toLowerCase();function At(e){let t=[],a=(e.ownerDocument??document).createTreeWalker(e,NodeFilter.SHOW_TEXT);for(let c=a.nextNode();c;c=a.nextNode()){let p=N(c.textContent);p&&!c.parentElement?.closest("button, script, style, [hidden], [aria-hidden='true']")&&t.push(p)}return t}function nt(e,t){if(!e)return[];let a=[],c=p=>{let l=N(p);l.length>1&&l.length<80&&!a.some(i=>i.toLowerCase()===l.toLowerCase())&&a.push(l)};for(let p of e.querySelectorAll("[data-key], [data-record]")){let l=p.getAttribute("data-record")??p.getAttribute("data-key")??"",i=At(p),o=l&&t?t(l):void 0;if(o&&i.join(" ").toLowerCase().includes(N(o).toLowerCase()))c(o);else{if(!p.hasAttribute("data-record")&&p.querySelector("[data-record]"))continue;i.length===1&&c(i[0])}}return a.slice(0,40)}function rt(e){let t=[];for(let a of e)for(let c of[a,...a.querySelectorAll("*")]){if(!c.matches("h1, h2, h3, h4, h5, h6, [role='heading']"))continue;let p=c.cloneNode(!0);for(let i of p.querySelectorAll("span"))/^[\s·\d]+$/.test(i.textContent??"")&&i.remove();let l=N(p.textContent).replace(/^[▸▾]\s*/,"");l&&!t.includes(l)&&t.push(l)}return t}function ce(e,t){if(!e?.isConnected)return{headings:[],records:[],text:""};let a=Et(e),c=[],p=[];for(let r of a)for(let d of r.querySelectorAll("h1, h2, h3, [role='heading']")){if(d.closest("[data-graview-popover], [hidden], [aria-hidden='true'], nav"))continue;let n=d.cloneNode(!0);for(let b of n.querySelectorAll("span"))/^[\s·\d]+$/.test(b.textContent??"")&&b.remove();let h=N(n.textContent).replace(/^[▸▾]\s*/,"");h&&(c.push(h),p.push({element:d,said:h}))}let l=new Map,i=new Map;for(let r of t){let d=tt(r);if(!d||l.has(r))continue;let n,h=[];for(let b of a)for(let u of b.querySelectorAll("a, li, p, span, h2, h3, h4, h5, h6, strong, div, button, td"))tt(u.textContent)===d&&(h.push(u),(!n||n.contains(u))&&(n=u));n&&(l.set(r,n),i.set(r,h))}let o=[...l.values()],s=[];for(let[r,d]of l){let n=d;for(let w=d.parentElement;w&&w!==e&&!(w instanceof HTMLBodyElement)&&!(o.some(D=>D!==d&&w.contains(D))||w.matches("main, section, ul, ol, table, tbody, [data-graview-page]"));w=w.parentElement)n=w;let h,b=new Set(t.map(w=>N(w).toLowerCase()));for(let w of p)w.element.getRootNode()!==d.getRootNode()||n.contains(w.element)||w.element.contains(d)||b.has(w.said.toLowerCase())||w.element.compareDocumentPosition(d)&Node.DOCUMENT_POSITION_FOLLOWING&&(h=w.said);let u=d.getBoundingClientRect(),E=Number.parseFloat(getComputedStyle(d).fontSize)||16,q=[...i].flatMap(([w,D])=>w===r?[]:D),B=n;for(let w=n.parentElement;w&&w!==e&&!(w instanceof HTMLBodyElement)&&!(q.some(D=>w.contains(D))||w.matches("main, [data-graview-page], [data-graview-view-root]"));w=w.parentElement)B=w;let te=B instanceof HTMLElement?B.innerText??B.textContent??"":B.textContent??"",v=d.matches("h1, [data-graview-page-title]")||d.closest("h1, [data-graview-page-title]")!==null,$=!v&&n!==d&&[...n.querySelectorAll("button, [role='button'], [role='checkbox'], [aria-pressed], input[type='checkbox'], [data-act]")].some(w=>!w.contains(d)&&!d.contains(w)),A=!v&&d.closest("a[href], [data-record]")!==null;s.push({label:r,top:Math.round(u.top),left:Math.round(u.left),size:E,facts:v?[]:Dt(n,d,q),row:N(te),...h?{under:h}:{},...$?{presses:$}:{},...A?{opens:A}:{}})}return s.sort((r,d)=>r.top-d.top||r.left-d.left),{headings:c,records:s,text:a.map(Pt).join(" ")}}function Ht(e,t,a=0){(0,G.useLayoutEffect)(()=>{let c=0,p=()=>{let l=t.current,i=e?.isConnected?de([e]):null;if(l&&i){let o=Math.max(i.top,0),s=Math.min(i.bottom,innerHeight);l.style.display=s>o?"grid":"none",l.style.left=`${Math.round(i.left-a)}px`,l.style.top=`${Math.round(o-a)}px`,l.style.width=`${Math.round(i.width+2*a)}px`,l.style.height=`${Math.round(s-o+2*a)}px`}c=requestAnimationFrame(p)};return p(),()=>cancelAnimationFrame(c)},[e,t,a])}var It=`@keyframes graview-redesign{0%{background-position:100% 0}100%{background-position:-100% 0}}
|
|
2
|
+
[data-graview-redesigning]{background:linear-gradient(90deg,var(--graview-ground) 0%,color-mix(in srgb,var(--graview-panel) 70%,var(--graview-accent) 6%) 50%,var(--graview-ground) 100%);background-size:200% 100%;animation:graview-redesign 1.6s linear infinite}
|
|
3
|
+
@media (prefers-reduced-motion: reduce){[data-graview-redesigning]{animation:none}}`;function ot({over:e,name:t,said:a}){let c=(0,G.useRef)(null);return Ht(e,c,2),(0,K.jsxs)("div",{ref:c,"data-graview-redesigning":"","data-testid":"redesigning","data-graview-popover":"",style:Lt,children:[(0,K.jsx)("style",{children:It}),(0,K.jsxs)("p",{role:"status","aria-live":"polite",style:Ot,children:[(0,K.jsx)("span",{"aria-hidden":"true",style:Nt,children:"\u2726"})," ",a??`Graview is redesigning \u201C${t}\u201D\u2026`]})]})}var Lt={position:"fixed",display:"none",placeItems:"center",boxSizing:"border-box",borderRadius:12,zIndex:W("popover"),pointerEvents:"auto",overflow:"hidden"},Ot={margin:0,padding:"8px 14px",borderRadius:999,fontSize:"0.9375rem",color:"var(--graview-ink)",background:"var(--graview-float, var(--graview-panel))",border:"1px solid var(--graview-edge)",boxShadow:"var(--graview-lift-low)",position:"sticky",top:16},Nt={color:"var(--graview-accent)"},Pn={position:"fixed",left:"max(12px, calc(50% - 440px))",right:"max(12px, calc(50% - 440px))",bottom:12,zIndex:W("popover"),boxSizing:"border-box",display:"grid",gap:8,padding:"10px 12px",borderRadius:14,border:"1px solid var(--graview-edge)",background:"var(--graview-float, var(--graview-panel))",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",fontSize:"0.875rem"};var ue={minHeight:34,padding:"0 12px",font:"inherit",borderRadius:8,cursor:"pointer"},Tn={...ue,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},Rn={...ue,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"};var Dn={...ue,minHeight:28,padding:"0 10px",borderRadius:999,border:0,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)"},Mn={...ue,minHeight:28,padding:"0 10px",borderRadius:999,border:0,color:"var(--graview-ink)",background:"transparent"};var P=O(ke(),1);var m=O(Y(),1),Bt=640,Ee=372,$t=1100,at=()=>typeof innerWidth!="number"||innerWidth>=$t?"side":innerWidth>=Bt?"drawer":"sheet";function Wt(){let e=document.querySelector('[data-testid="app-bar"]');return e||([...document.querySelectorAll("header")].find(t=>{let a=t.getBoundingClientRect();return a.top<=1&&a.width>=innerWidth*.8&&a.height>0})??null)}function zt(e){let t=document.querySelector("[data-graview-page-main], main");for(;t?.parentElement&&t.parentElement!==document.body&&!(e&&t.parentElement.contains(e));)t=t.parentElement;return t}function Ft(e){let[t,a]=(0,P.useState)(at);return(0,P.useLayoutEffect)(()=>{let c=document.body.style,p=c.paddingBottom,l=null,i="",o=0,s=(d,n)=>{l&&l!==d&&(l.style.paddingRight=i),d&&d!==l&&(i=d.style.paddingRight),l=d,l&&(l.style.paddingRight=n?`${Ee}px`:i)},r=()=>{let d=at();a(d);let n=Wt(),h=Math.max(0,Math.round(n?.getBoundingClientRect().bottom??0));e.current&&d!=="sheet"&&(e.current.style.top=`${h}px`),s(zt(n),d==="side"),c.paddingBottom=d==="sheet"?`${Math.round((e.current?.getBoundingClientRect().height??0)+16)}px`:p,o=requestAnimationFrame(r)};return r(),()=>{cancelAnimationFrame(o),s(null,!1),c.paddingBottom=p}},[e]),t}var qt=e=>`${Math.floor(e/6e4)}:${String(Math.floor(e%6e4/1e3)).padStart(2,"0")}`;function lt(e){let t=(0,P.useRef)(null),a=(0,P.useRef)(null),c=(0,P.useRef)(null),[p,l]=(0,P.useState)(""),[,i]=(0,P.useState)(0),o=Ft(t);(0,P.useEffect)(()=>{if(!e.working)return;let n=setInterval(()=>i(h=>h+1),1e3);return()=>clearInterval(n)},[e.working]),(0,P.useEffect)(()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},[e.talk.length,e.steps.length]),(0,P.useEffect)(()=>{e.working||c.current?.focus({preventScroll:!0})},[e.working,e.phase]);let s=e.talk.map(n=>n.who).lastIndexOf("person"),r=e.steps.length>0?(0,m.jsx)("li",{"data-testid":"better-steps",style:Xt,children:(0,m.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:3},children:e.steps.map((n,h)=>{let b=e.working&&h===e.steps.length-1;return(0,m.jsxs)("li",{"data-testid":"better-step","data-step-kind":n.kind,style:{display:"flex",gap:6,alignItems:"baseline",color:b?"var(--graview-ink)":"var(--graview-ink-muted)"},children:[(0,m.jsx)("span",{"aria-hidden":"true",style:{width:14,flex:"none",color:n.kind==="check"||n.kind==="stuck"?"var(--graview-warn)":"var(--graview-accent)"},children:b?"\u2026":n.kind==="check"||n.kind==="stuck"?"!":"\u2713"}),(0,m.jsx)("span",{children:n.text})]},`s${h}`)})})}):null,d=e.talk.length===0;return(0,m.jsxs)("aside",{ref:t,role:"complementary","aria-label":`Change how \u201C${e.name}\u201D looks`,"data-testid":"better-panel","data-better-phase":e.phase,"data-better-dock":o,"data-graview-popover":"",style:o==="sheet"?_t:o==="drawer"?Ut:ct,children:[(0,m.jsxs)("header",{style:jt,children:[(0,m.jsxs)("p",{style:{margin:0,fontWeight:600},children:["Change how \u201C",e.name,"\u201D looks"]}),(0,m.jsx)("button",{type:"button","data-testid":"better-close","aria-label":"Close",onClick:e.close,style:Qt,children:"\xD7"})]}),(0,m.jsx)("p",{"data-testid":"better-scope",style:it,children:e.scope}),e.about?(0,m.jsxs)("p",{"data-testid":"better-about",style:Vt,children:["About: ",e.about]}):null,(0,m.jsxs)("ol",{ref:a,"data-testid":"better-talk",style:Yt,children:[e.talk.map((n,h)=>(0,m.jsxs)(P.Fragment,{children:[(0,m.jsx)("li",{"data-testid":"better-message","data-who":n.who,style:n.who==="person"?Kt:Gt,children:n.said}),h===s?r:null]},`t${h}`)),s<0?r:null]}),e.working?(0,m.jsxs)("div",{style:ee,children:[(0,m.jsxs)("p",{role:"status","aria-live":"polite","data-testid":"better-working",style:{margin:0,flex:1,color:"var(--graview-ink-muted)"},children:["Graview is working on \u201C",e.name,"\u201D \xB7 ",(0,m.jsx)("span",{"data-testid":"better-time",children:qt(Date.now()-e.since)})]}),(0,m.jsx)("button",{type:"button","data-testid":"better-stop",onClick:e.stop,style:z,children:"Stop"})]}):null,e.draft&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-draft",style:{flexShrink:0,display:"grid",gap:6},children:[(0,m.jsx)("p",{"data-testid":"better-changed",style:{margin:0},children:e.draft.said}),(0,m.jsxs)("div",{style:ee,children:[(0,m.jsx)("div",{role:"group","aria-label":"Compare",style:Zt,children:["Before","After"].map(n=>{let h=n==="Before"?e.draft.before:!e.draft.before;return(0,m.jsx)("button",{type:"button","data-testid":`better-${n.toLowerCase()}`,"aria-pressed":h,onClick:()=>e.compare(n==="Before"),style:h?en:tn,children:n},n)})}),(0,m.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",gap:6},children:[(0,m.jsx)("button",{type:"button","data-testid":"better-keep",onClick:e.keep,style:st,children:"Keep"}),(0,m.jsx)("button",{type:"button","data-testid":"better-discard",onClick:e.discard,style:z,children:"Discard"})]})]})]}):null,e.stuck&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-stuck",style:ee,children:[e.stuck.keepAnyway?(0,m.jsx)("button",{type:"button","data-testid":"better-keep-anyway",onClick:e.stuck.keepAnyway,style:z,children:"Keep anyway"}):null,(0,m.jsx)("button",{type:"button","data-testid":"better-stuck-stop",onClick:e.stuck.stop,style:z,children:"Stop"})]}):null,e.children,e.kept&&!e.working?(0,m.jsxs)("div",{"data-testid":"better-kept",style:ee,children:[(0,m.jsx)("p",{style:{margin:0,flex:1},children:e.kept.note?/^kept\b/i.test(e.kept.note.trim())?e.kept.note.trim():`Kept. ${e.kept.note}`:"Kept."}),e.kept.undo?(0,m.jsx)("button",{type:"button","data-testid":"better-undo",onClick:e.kept.undo,style:z,children:"Undo"}):null]}):null,d&&!e.working?(0,m.jsxs)("div",{style:ee,children:[(0,m.jsx)("button",{type:"button","data-testid":"better-just",onClick:e.just,style:z,children:"Make it easier to read"}),(0,m.jsx)("button",{type:"button","data-testid":"better-point",onClick:e.point,style:z,children:"Point at a part\u2026"})]}):null,e.pointed&&!e.working?(0,m.jsxs)("p",{"data-testid":"better-pointed",style:it,children:["You pointed at ",e.pointed,"."]}):null,(0,m.jsxs)("form",{onSubmit:n=>{n.preventDefault(),!(!p.trim()||e.working)&&(e.ask(p.trim()),l(""))},style:{flexShrink:0,display:"flex",gap:6},children:[(0,m.jsx)("label",{htmlFor:"graview-better-panel-words",style:ze,children:"Tell Graview what to change"}),(0,m.jsx)("input",{id:"graview-better-panel-words",ref:c,"data-testid":"better-words",value:p,disabled:e.working,onChange:n=>l(n.target.value),placeholder:d?"What should change?":"Tell Graview what to change\u2026",style:Jt}),(0,m.jsx)("button",{type:"submit",disabled:e.working||!p.trim(),"data-testid":"better-send",style:st,children:"Send"})]})]})}var dt={position:"fixed",zIndex:W("popover"),boxSizing:"border-box",display:"flex",flexDirection:"column",gap:10,padding:14,margin:0,fontSize:"0.875rem",lineHeight:1.45,color:"var(--graview-ink)",background:"var(--graview-panel)",overflow:"hidden"},ct={...dt,top:0,right:0,bottom:0,width:Ee,borderLeft:"1px solid var(--graview-edge)"},Ut={...ct,width:`min(${Ee}px, 86vw)`,boxShadow:"var(--graview-lift-high, -12px 0 32px rgba(0,0,0,0.18))"},_t={...dt,left:0,right:0,bottom:0,maxHeight:"55vh",borderTop:"1px solid var(--graview-edge)",borderRadius:"14px 14px 0 0",boxShadow:"var(--graview-lift-high, 0 -12px 32px rgba(0,0,0,0.18))"},Vt={flexShrink:0,margin:0,justifySelf:"start",alignSelf:"flex-start",padding:"2px 10px",borderRadius:999,fontSize:"0.8125rem",color:"var(--graview-ink)",background:"var(--graview-ground)",border:"1px solid var(--graview-edge)"},jt={flexShrink:0,display:"flex",alignItems:"center",gap:8,justifyContent:"space-between"},it={flexShrink:0,margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},Yt={margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:8,overflowY:"auto",flex:"1 1 0",minHeight:0},ut={padding:"7px 10px",borderRadius:10,maxWidth:"88%",whiteSpace:"pre-wrap",flex:"none"},Kt={...ut,alignSelf:"flex-end",background:"color-mix(in srgb, var(--graview-accent) 12%, var(--graview-panel))"},Gt={...ut,alignSelf:"flex-start",background:"var(--graview-ground)"},Xt={flex:"none",padding:"6px 10px",borderRadius:10,border:"1px dashed var(--graview-edge)",fontSize:"0.8125rem"},ee={flexShrink:0,display:"flex",flexWrap:"wrap",alignItems:"center",gap:6},ge={minHeight:32,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem",cursor:"pointer"},st={...ge,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},z={...ge,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"},Qt={...z,minHeight:28,padding:"0 9px",fontSize:"1rem",lineHeight:1},Jt={flex:"1 1 auto",minWidth:0,minHeight:34,padding:"0 10px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",fontSize:"0.875rem"},Zt={display:"inline-flex",border:"1px solid var(--graview-edge)",borderRadius:999,padding:2},en={...ge,minHeight:28,borderRadius:999,border:"none",color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)"},tn={...ge,minHeight:28,borderRadius:999,border:"none",color:"var(--graview-ink)",background:"transparent"};var C=O(Y(),1);var Pe=Se(ve(()=>(__graviewPreload(import.meta.url,["./chunk.6WB2TYK7.js","./chunk.BJUUSIQY.js","./chunk.CE3NKAF7.js","./chunk.GRTBEA7O.js","./chunk.H3IGXHZR.js","./chunk.7TDML5YU.js","./chunk.3VEZ5MOC.js","./chunk.SDO3U72B.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ZLNUZ6LR.js")))),nn=Pe.part((e,t)=>(0,C.jsx)(e.RateTelling,{...t}),{quiet:!0});function Yn({ask:e,open:t,close:a}){return e?.part?(0,C.jsx)(on,{ask:e,close:a},e.at):e?.section?(0,C.jsx)(un,{ask:e,close:a},e.at):t?(0,C.jsx)(Ce,{elements:t}):null}var rn=Se(ve(()=>(__graviewPreload(import.meta.url,["./chunk.QM54TGU6.js","./chunk.EGVM24ND.js","./chunk.2TUEBU7X.js","./chunk.NYLKG25K.js","./chunk.TBY5IR7C.js","./chunk.H3W5C3XQ.js","./chunk.6WB2TYK7.js","./chunk.BJUUSIQY.js","./chunk.JGRSUTPJ.js","./chunk.XOZU4OFA.js","./chunk.EP5JS7ZH.js","./chunk.CE3NKAF7.js","./chunk.MIE4TJRW.js","./chunk.CFE3MHWZ.js","./chunk.RD2FSSLV.js","./chunk.HXTKBISQ.js","./chunk.TFJA4QV4.js","./chunk.HWFJQ42Y.js","./chunk.QUETLFBJ.js","./chunk.JULD4XFB.js","./chunk.GRTBEA7O.js","./chunk.H3IGXHZR.js","./chunk.7TDML5YU.js","./chunk.3VEZ5MOC.js","./chunk.SDO3U72B.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.GF3ZCX46.js")))),on=rn.part((e,t)=>(0,C.jsx)(e.PageCard,{...t}),{what:"Make this better"}),an=360,R=12;function Kn(e,t){let a={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},c=Math.min(an,a.width-2*R),p=e.getBoundingClientRect().height,l=s=>Math.max(R,Math.min(s,a.height-p-R)),i=(a.width-c)/2,o=l(72);t&&t.width>0&&(t.right+R+c<=a.width-R?[i,o]=[t.right+R,l(t.top)]:t.left-R-c>=R?[i,o]=[t.left-R-c,l(t.top)]:(i=Math.max(R,Math.min(t.left,a.width-c-R)),o=t.bottom+R+p<=a.height-R?t.bottom+R:l(t.top-R-p))),e.style.left=`${Math.round(i)}px`,e.style.top=`${Math.round(o)}px`,e.style.width=`${Math.round(c)}px`}var sn=e=>e.map(t=>t.innerText??t.textContent??"").join(" ").replace(/\s+/g," ").trim(),gt=e=>{let t=e.getBoundingClientRect();return{tag:(e.getAttribute("data-graview-as")??e.localName).toLowerCase(),classes:[...e.classList],text:e.textContent??"",box:{left:t.left,top:t.top,width:t.width,height:t.height}}};function ln(e,t,a){let c=[...e.querySelectorAll("*")].filter(i=>{let o=i.getBoundingClientRect();return o.width>0&&o.height>0});if(a){let i=c.filter(r=>{let d=r.getBoundingClientRect();return t.left>=d.left&&t.left<=d.right&&t.top>=d.top&&t.top<=d.bottom}),s=i.filter(r=>!i.some(d=>d!==r&&r.contains(d)))[0];if(!s)return[];for(let r=s;r&&r!==e;r=r.parentElement)if(r.classList.length>0||/^(h[1-6]|li|a|button|img|p|article|section)$/.test(r.localName))return[r];return[s]}let p=c.filter(i=>{let o=i.getBoundingClientRect();return o.left>=t.left-2&&o.right<=t.right+2&&o.top>=t.top-2&&o.bottom<=t.bottom+2}),l=p.filter(i=>!p.some(o=>o!==i&&o.contains(i)));for(;l.length===1;){let i=[...l[0].children].filter(o=>p.includes(o));if(i.length<2)break;l=i}return l}function dn(e,t,a={}){let c=s=>({source:s.source,css:s.css,...s.root?{drawing:s.root}:{},...s.height!==void 0?{height:s.height}:{}}),p=et(c(e),c(t)),l=[];for(let s of p.unstyled)l.push(`The class \u201C${s.class}\u201D is still drawn and no rule styles it now.`);let i=s=>s.root?Ze(s.root).map(r=>r.name):[],o=e.root&&t.root?Ke(p.sectionsMissing.map(s=>s.name),i(e),i(t),a):p.sectionsMissing.map(s=>s.name);for(let s of o)l.push(`\u201C${s}\u201D is not drawn any more.`);return l}function cn(e,t,a,c,p,l){let i=c.drawing(),o=dn({source:e,css:t.css,root:t.root,height:t.height},{source:p,css:i.css,root:i.root,height:i.height},l);for(let s of c.refused())a.includes(s)||o.push(s);return o}function un({ask:e,close:t}){let{ai:a,aiDesk:c,aiHere:p,session:l,principal:i,keptViews:o,store:s}=We(),[r,d]=(0,f.useState)(e.section),n=_e(e.section),h=(0,f.useRef)(Fe(n)),b=(0,f.useRef)(null),[u,E]=(0,f.useState)(e.mode==="highlight"?{at:"highlighting"}:{at:"open"}),q=(0,f.useRef)(void 0),B=(0,f.useRef)(null),te=(0,f.useRef)(null),v=(0,f.useRef)([]),$=(0,f.useRef)([]),A=(0,f.useRef)([]),w=(0,f.useRef)(Date.now()),D=(0,f.useRef)(null),ne=(0,f.useRef)(null),re=(0,f.useRef)(null),[mt,fe]=(0,f.useState)(!1),[me,oe]=(0,f.useState)(!1),[,ht]=(0,f.useState)(0),ae=(0,f.useCallback)(()=>ht(g=>g+1),[]),[Te,yt]=(0,f.useState)(null),Re=(0,f.useRef)(null),I=(0,f.useCallback)(g=>{let y=Re.current;y&&a.told&&Pe.load().then(k=>k.changeTelling(a.told,y.id,{outcome:g}),()=>{})},[a.told]),De=(0,f.useCallback)((g,y,k,H,S,ye)=>{let se=a.told;se&&Pe.load().then(L=>{let Z=L.keepTelling(se,{words:g,target:{on:"place",place:y.view},decided:k?{type:"refusal"}:{type:"view",section:y.name},slot:"full",stages:H.map(F=>({stage:F.stage==="thinking"?"full":"light",ms:F.ms,model:F.model})),ms:S,outcome:k?"abandoned":"previewed",interaction:ye},i);Re.current=Z??null,yt(Z??null)},()=>{})},[a.told,i]);(0,f.useEffect)(()=>()=>{D.current?.abort(),b.current?.dispose(),b.current=null},[]);let Me=u.at==="working";(0,f.useEffect)(()=>{if(Me)return p({participant:`agent:graview-for-${i.id??"anyone"}:${l}`,kind:"agent",name:"Graview",...i.id?{onBehalfOf:i.id}:{},over:null,robot:{at:null,mode:"thinking"}}),()=>p(null)},[Me]);let X=(0,f.useCallback)((g,y,k,H={})=>({id:Ue(),at:new Date().toISOString(),by:i,target:{on:"place",place:r.view},targetLabel:h.current?.title??r.view,ask:{kind:"section",said:g},offered:[],outcome:y,stages:k.map(S=>({stage:S.stage,ms:S.ms,model:S.model})),usage:k.flatMap(S=>S.usage?[{tier:S.stage==="light"?"fast":"thinking",model:S.model,inputTokens:S.usage.inputTokens,outputTokens:S.usage.outputTokens}]:[]),...H}),[i,r.view]),U=(0,f.useCallback)(async g=>{b.current?.dispose();let k=h.current.draft(g);return b.current=k,await k.drawn,k},[]),_=(0,f.useCallback)(async()=>{let g=v.current.at(-1);oe(!1),g?await U(g.source):(b.current?.dispose(),b.current=null)},[U]),T=(0,f.useCallback)((g,y)=>{$.current.push({who:g,said:y}),ae()},[ae]),Q=()=>$.current.filter(g=>g.who==="person").map(g=>g.said).join(" "),ie=(0,f.useCallback)(async g=>{let y=h.current;if(!y||u.at==="working")return;let k=ne.current;ne.current=null,k&&(re.current=k),T("person",g),A.current=[],w.current=Date.now(),E({at:"working"});let H=await y.source();if(H===void 0)return T("graview","This view can't be changed here."),E({at:"open"});q.current??=H;let S=y.drawing(),ye=y.refused(),se=x=>{let V=s.graph.getNode(x);return V?$e(s.schema.tryDefinition(V.kind),V):void 0};B.current??=ce(S.root?.parentElement??S.root??n,nt(S.root,se)),te.current??=rt(r.elements);let L=B.current,Z=te.current,F=new AbortController;D.current=F;let St=Date.now(),xt=v.current.length,M=await Je({ai:a,part:{name:r.name,slot:"place"},manifest:{name:y.name,attach:"view",cardinality:"many"},talk:$.current,keep:{title:"",headings:L.headings,records:L.records.map(x=>x.label),says:Object.fromEntries(L.records.flatMap(x=>x.facts?.length||x.under?[[x.label,{...x.facts?.length?{shows:x.facts}:{},...x.under?{under:x.under}:{}}]]:[]))},current:v.current.at(-1)?.source??H,section:r.name,rewordable:Z,noun:"records",...re.current?{about:re.current}:{},host:{look:()=>xe(ce(y.drawing().root?.parentElement??n,L.records.map(x=>x.label))),read:()=>({shows:sn(r.elements)}),draft:async x=>{fe(!0);try{let V=await y.check(x);if(V.length>0)return await _(),{findings:V,drew:void 0};let we=await U(x),{failed:Le}=await we.drawn;if(Le)return await _(),{findings:[`The view did not draw: ${Le}`],drew:void 0};await new Promise(j=>requestAnimationFrame(()=>requestAnimationFrame(j)));let Oe=we.drawing().root,be=ce(Oe?.parentElement??Oe,L.records.map(j=>j.label)),Ct=y.presses?await y.presses(x).catch(()=>{}):void 0,Ne={asked:Q(),mayReword:Z},Be=[...cn(q.current,S,ye,we,x,Ne),...Ge(L,be,Ne),...(Ct?.problems??[]).slice(0,5).map(j=>`${j.control}: ${j.says}`)];return Be.length>0?await _():(v.current.push({source:x,said:Xe(r.name,L,be)??`\u201C${r.name}\u201D has changed. Compare Before and After.`,entry:X(`Make \u201C${r.name}\u201D better: ${Q()}`,"offered",[])}),oe(!1)),{findings:Be,drew:xe(be)}}finally{fe(!1)}}},onEvent:x=>{A.current.at(-1)?.kind==="streaming"&&A.current.pop(),A.current.push(x),ae()},signal:F.signal});if(D.current!==F)return;D.current=null,A.current.at(-1)?.kind==="streaming"&&A.current.pop();let le=v.current.length>xt,Ie=X(`Make \u201C${r.name}\u201D better: ${Q()}`,le?"offered":"failed",M.stages,le?{}:{failed:M.last?.findings.join(" ")??M.said});if(c.record(Ie),De(Q(),r,!le,M.stages,Date.now()-St,Ie.id),T("graview",M.passed&&Qe.test(M.said)?"Here it is on the page.":M.said),M.ended==="stuck"&&!le)return E({at:"stuck",...M.keepable&&M.last?{source:M.last.source}:{}});E(v.current.length>0?{at:"draft"}:{at:"open"})},[a,c,U,X,u.at,n,ae,T,r,_,s,De]),he=(0,f.useCallback)(()=>{if(u.at!=="working")return;let g=D.current;D.current=null,g?.abort(),fe(!1);let y=new Date(w.current).toISOString();v.current=v.current.filter(k=>k.entry.at<y),_(),T("graview","Stopped. The view is as it was."),E(v.current.length>0?{at:"draft"}:{at:"open"})},[u.at,T,_]),Ae=(0,f.useRef)(!1);(0,f.useEffect)(()=>{Ae.current||!(e.mode==="just"||e.mode==="describe"&&e.words)||(Ae.current=!0,ie(e.mode==="just"?"Make it easier to read at a glance":e.words))},[e.mode,e.words,ie]);let J=v.current.at(-1),wt=(0,f.useCallback)(async g=>{!J||g===me||(oe(g),g?(b.current?.dispose(),b.current=null):await U(J.source))},[J,me,U]),He=(0,f.useCallback)(async g=>{g!==void 0&&u.at==="stuck"&&v.current.push({source:g,said:`\u201C${r.name}\u201D kept as it was last drafted.`,entry:X(`Make \u201C${r.name}\u201D better: ${Q()}`,"offered",[])});let y=v.current.at(-1);if(u.at!=="draft"&&!(g!==void 0&&u.at==="stuck")||!y||!o?.revise||!h.current)return;let k=h.current,H=await k.source()??"";E({at:"keeping"});try{let S=await o.revise({name:k.name,title:k.title,source:y.source,before:H,section:r.name,said:y.said});b.current?.dispose(),b.current=null,k.draw(y.source),c.record({...y.entry,outcome:"accepted"}),I("accepted"),v.current=[],E({at:"kept",source:H,...S&&S.note?{note:S.note}:{},answer:S,entry:y.entry})}catch{if(T("graview","It couldn't be kept."),g!==void 0)return v.current.pop(),E(v.current.length>0?{at:"draft"}:{at:"open"});E({at:"draft"})}},[u,o,c,r.name,I,T,X]),bt=(0,f.useCallback)(()=>{T("graview","Stopped. The view is as it was."),E(v.current.length>0?{at:"draft"}:{at:"open"})},[T]),vt=(0,f.useCallback)(()=>{b.current?.dispose(),b.current=null;let g=v.current.at(-1);g&&(c.record({...g.entry,outcome:"dismissed"}),I("declined")),v.current=[],oe(!1),T("graview","Put back as it was."),E({at:"open"})},[c,I,T]),kt=(0,f.useCallback)(async()=>{if(u.at!=="kept"||!h.current)return;let g=h.current,y=await g.source()??"";try{u.answer&&typeof u.answer.undo=="function"?await u.answer.undo():await o?.revise?.({name:g.name,title:g.title,source:u.source,before:y,section:r.name,said:"Put back as it was.",undoes:!0}),g.draw(u.source===q.current?void 0:u.source),c.record({...u.entry,outcome:"dismissed"}),I("undone"),T("graview","Undone. The view is as it was."),E({at:"undone"})}catch{T("graview","It couldn't be put back.")}},[u,o,c,r.name,I,T]);return(0,f.useEffect)(()=>{let g=y=>{if(!(y.key!=="Escape"||u.at==="highlighting")){if(y.preventDefault(),u.at==="working")return he();v.current.length>0&&I("declined"),t(),e.returnTo?.focus?.()}};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[u.at,he,t,I,e.returnTo]),u.at==="highlighting"?(0,C.jsx)(gn,{box:n,root:n?.querySelector("[data-worker-view]")?.shadowRoot?.querySelector("[data-graview-view-root]")??void 0,whole:r.elements,cancel:()=>E({at:"open"}),chose:g=>{let y=g[0],k=y?qe(y):void 0;d(k??r),ne.current={name:Ye(g)??Ve(g.map(gt)),lines:je(g.map(gt))},E({at:"open"})}}):(0,C.jsxs)(C.Fragment,{children:[r.elements.length>0&&u.at==="open"&&$.current.length===0?(0,C.jsx)(Ce,{elements:r.elements}):null,mt?(0,C.jsx)(ot,{over:n,name:r.name,said:`Graview is drafting \u201C${r.name}\u201D\u2026`}):null,(0,C.jsx)(lt,{name:r.name,scope:`This changes how \u201C${r.name}\u201D looks for everyone in this app.`,phase:u.at,talk:$.current,steps:A.current,since:w.current,working:u.at==="working"||u.at==="keeping",...J&&u.at==="draft"?{draft:{said:J.said,before:me}}:{},...u.at==="kept"?{kept:{...u.note?{note:u.note}:{},undo:()=>void kt()}}:{},...u.at==="stuck"?{stuck:{...u.source!==void 0?{keepAnyway:()=>void He(u.source)}:{},stop:bt}}:{},about:(ne.current??re.current)?.name??r.name,ask:g=>void ie(g),just:()=>void ie("Make it easier to read at a glance"),point:()=>E({at:"highlighting"}),stop:he,compare:g=>void wt(g),keep:()=>void He(),discard:vt,close:()=>{D.current?.abort(),v.current.length>0&&I("declined"),t()},children:Te&&a.told&&u.at!=="working"?(0,C.jsx)(nn,{told:a.told,telling:Te}):null})]})}function gn({box:e,root:t,whole:a,wholeSaid:c="The whole section",cancel:p,chose:l}){let i=(0,f.useRef)(null),[o,s]=(0,f.useState)(null);(0,f.useLayoutEffect)(()=>{let n=0,h=()=>{let b=e?de([e]):null,u=i.current;u&&b&&(u.style.left=`${Math.round(b.left-pe)}px`,u.style.top=`${Math.round(b.top-pe)}px`,u.style.width=`${Math.round(b.width+2*pe)}px`,u.style.height=`${Math.round(b.height+2*pe)}px`),n=requestAnimationFrame(h)};return h(),()=>cancelAnimationFrame(n)},[e]),(0,f.useEffect)(()=>{i.current?.focus()},[]);let r=n=>{if(!o||!t)return s(null);let h=Math.hypot(n.clientX-o.x0,n.clientY-o.y0)>4,b={left:Math.min(o.x0,n.clientX),top:Math.min(o.y0,n.clientY),right:Math.max(o.x0,n.clientX),bottom:Math.max(o.y0,n.clientY)};s(null);let u=ln(t,b,!h);u.length>0&&l(u)},d=o?{left:Math.min(o.x0,o.x1),top:Math.min(o.y0,o.y1),width:Math.abs(o.x1-o.x0),height:Math.abs(o.y1-o.y0)}:null;return(0,C.jsxs)("div",{ref:i,tabIndex:-1,role:"application","aria-label":"Highlight the area to change: drag over it, or click one part","data-testid":"section-highlighter","data-graview-popover":"",onKeyDown:n=>{n.key==="Escape"&&(n.preventDefault(),n.stopPropagation(),p())},onMouseDown:n=>n.preventDefault(),onPointerDown:n=>{n.preventDefault(),n.currentTarget.setPointerCapture?.(n.pointerId),s({x0:n.clientX,y0:n.clientY,x1:n.clientX,y1:n.clientY})},onPointerMove:n=>s(h=>h&&{...h,x1:n.clientX,y1:n.clientY}),onPointerUp:r,onPointerCancel:()=>s(null),style:kn,children:[(0,C.jsxs)("p",{style:Sn,children:["Drag over the part to change, or click one \xB7"," ",(0,C.jsx)("button",{type:"button",onPointerDown:n=>n.stopPropagation(),onClick:()=>l(a),style:pt,children:c})," ","\xB7"," ",(0,C.jsx)("button",{type:"button",onPointerDown:n=>n.stopPropagation(),onClick:p,style:pt,children:"Cancel"})]}),d?(0,C.jsx)("div",{"data-testid":"section-drag",style:{...xn,left:d.left-(i.current?.getBoundingClientRect().left??0),top:d.top-(i.current?.getBoundingClientRect().top??0),width:d.width,height:d.height}}):null]})}var pn={position:"fixed",zIndex:W("popover"),boxSizing:"border-box",display:"grid",gap:10,padding:12,borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-float, var(--graview-panel))",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",maxHeight:"calc(100dvh - 24px)",overflowY:"auto",fontSize:"0.875rem"},fn={margin:0,fontSize:"0.9375rem"},mn={margin:0,color:"var(--graview-ink-muted)"},hn={margin:0,color:"var(--graview-ink)",fontStyle:"italic"},yn={display:"flex",flexWrap:"wrap",gap:8},wn={boxSizing:"border-box",width:"100%",height:36,padding:"0 10px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8},ft={minHeight:36,padding:"0 14px",font:"inherit",borderRadius:8,cursor:"pointer"},bn={...ft,color:"var(--graview-accent-ink, #fff)",background:"var(--graview-accent)",border:"1px solid var(--graview-accent)"},vn={...ft,color:"var(--graview-ink)",background:"transparent",border:"1px solid var(--graview-edge)"},pt={font:"inherit",color:"inherit",background:"none",border:0,padding:0,textDecoration:"underline",cursor:"pointer"},pe=12,kn={userSelect:"none",WebkitUserSelect:"none",position:"fixed",zIndex:W("popover"),boxSizing:"border-box",cursor:"crosshair",touchAction:"none",outline:"2px dashed var(--graview-accent)",background:"color-mix(in srgb, var(--graview-accent) 6%, transparent)"},Sn={position:"absolute",left:8,top:8,margin:0,padding:"4px 10px",borderRadius:999,fontSize:"0.8125rem",color:"var(--graview-ink)",background:"var(--graview-float, var(--graview-panel))",border:"1px solid var(--graview-edge)",boxShadow:"var(--graview-lift-low)",cursor:"default"},xn={position:"absolute",border:"2px solid var(--graview-accent)",background:"color-mix(in srgb, var(--graview-accent) 14%, transparent)",borderRadius:4,pointerEvents:"none"},Gn={CARD:pn,HEAD:fn,MUTED:mn,THINKING:hn,ROW:yn,FIELD:wn,PRIMARY:bn,QUIET:vn};export{ce as a,ot as b,lt as c,Yn as d,Kn as e,gt as f,dn as g,un as h,gn as i,Gn as j};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk.WVUJXDXZ.js";import{a as F,b as K,c as pe}from"./chunk.I2737CPF.js";import"./chunk.NJRLJEJY.js";import"./chunk.CVPMSPCH.js";import"./chunk.OTV5XTBB.js";import"./chunk.KBPJ7X7W.js";import"./chunk.OEIWIZCP.js";import"./chunk.MIE4TJRW.js";import{o as me}from"./chunk.5LJVOLKR.js";import"./chunk.OJGHDWI6.js";import"./chunk.OWFS2YDQ.js";import"./chunk.WSDJPXJD.js";import"./chunk.F4VB6Q2W.js";import"./chunk.FFOD5B4B.js";import"./chunk.Z7Y3R3YR.js";import"./chunk.YXEO3Y65.js";import"./chunk.U3HERHAI.js";import"./chunk.FBILPNGH.js";import{G as Te,N as C,R as ue,W as ce,ea as ge,ha as he}from"./chunk.MODLZJD4.js";import"./chunk.SDO3U72B.js";import{Aa as E,Ba as se,Ca as Y,ra as oe,sd as de,va as x,xa as le,za as W}from"./chunk.6HY6ZGEE.js";import"./chunk.FQLNBIQ5.js";import{b as q}from"./chunk.AJZBJBMO.js";var g=q(Te(),1);async function ye(e,t){let a=await createImageBitmap(e);try{let i=Math.min(1,t/Math.max(a.width,a.height)),r=document.createElement("canvas");r.width=Math.max(1,Math.round(a.width*i)),r.height=Math.max(1,Math.round(a.height*i));let l=r.getContext("2d");if(l===null)throw new Error("This browser will not give us a canvas to resize with.");return l.drawImage(a,0,0,r.width,r.height),r}finally{a.close()}}var n=q(ce(),1),He=2048,Ie=.85;function T(e){return e<1e3?`${e} bytes`:e<1e6?`${Math.round(e/1e3)} KB`:`${(e/1e6).toFixed(e<1e7?1:0)} MB`}function H(e){if(e.type==="application/pdf")return"PDF";let t=/\.([a-z0-9]{2,5})$/i.exec(e.name??"")?.[1];return t?t.toUpperCase():(e.type.split("/")[1]??e.type).replace(/^x-|^vnd\./,"").split(/[.+-]/)[0].toUpperCase()}function ke(e){let t=[...new Set(e.map(a=>a==="image/*"?"pictures":a==="video/*"?"videos":a==="*/*"||a==="*"?"any file":`${H({type:a})} files`))];return t.length<=1?t[0]??"no files":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}function xe(e,t){if(e.length===0)return!0;let a=`${t.split("/")[0]}/*`;return e.some(i=>i==="*"||i==="*/*"||i===t||i===a)}var fe=/^image\/hei[cf]$|\.hei[cf]$/i,be=e=>fe.test(e.type)||fe.test(e.name),De={mov:"video/quicktime",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg"},Be=e=>De[/\.([a-z0-9]{2,4})$/i.exec(e)?.[1]?.toLowerCase()??""];async function je(e,t,a){let i=e.name||(a.camera?"photo.jpg":"file"),r=e.type||(be({type:"",name:i})?"image/heic":Be(i)??"application/octet-stream"),l=be({type:r,name:i}),u=r.startsWith("image/")||l;if(a.image&&!u)return{refused:`\u201C${i}\u201D isn\u2019t a picture.`};if(a.video)return r.startsWith("video/")?J({blob:e,name:i,type:r},t):{refused:`\u201C${i}\u201D isn\u2019t a video.`};if(l||u&&/^image\/(jpeg|webp)$/.test(r)&&(a.camera||e.size>t.maxBytes||e.size>15e5))try{let c=await ye(e,He),b=await new Promise(m=>c.toBlob(m,"image/jpeg",Ie));if(b)return J({blob:b,name:l?i.replace(/\.hei[cf]$/i,"")+".jpg":i,type:"image/jpeg",width:c.width,height:c.height},t)}catch{if(l&&!xe(t.kinds,r))return{refused:`\u201C${i}\u201D is a HEIC photo, which this browser can\u2019t turn into a JPEG and this host doesn\u2019t take. Save it as a JPEG and try again.`}}let p={};if(u&&!l)try{let c=await createImageBitmap(e);p={width:c.width,height:c.height},c.close()}catch{}return J({blob:e,name:i,type:r,...p},t)}function J(e,t){return xe(t.kinds,e.type)?e.blob.size>t.maxBytes?{refused:`\u201C${e.name}\u201D is ${T(e.blob.size)}; this host takes files up to ${T(t.maxBytes)}.`}:e:{refused:`\u201C${e.name}\u201D is a ${H(e)} file; this host takes ${ke(t.kinds)}.`}}async function _e(e,t,a,i=!1){let r;try{r=await t.upload(e.blob,e.name)}catch(u){let s=u instanceof Error&&u.message.trim()?u.message.trim():"the host refused it";return{refused:`\u201C${e.name}\u201D wasn\u2019t kept: ${s}`}}return le(r)?a&&!W(r)?{refused:`\u201C${e.name}\u201D isn\u2019t a picture.`}:i&&!E(r)?{refused:`The host kept \u201C${e.name}\u201D as ${H(r)}, not as a video.`}:{...r,...r.width===void 0&&e.width?{width:e.width}:{},...r.height===void 0&&e.height?{height:e.height}:{}}:{refused:`The host\u2019s answer for \u201C${e.name}\u201D isn\u2019t a file a record can keep.`}}var $="var(--graview-radius, 8px)",P={color:"var(--graview-ink-muted)",fontSize:"0.8125rem"};function ee(e){let t=C(),a=ue()?.past!=null,[i,r]=(0,g.useState)(!1),l=t?.kept?ze(t,e.href):!0,[,u]=(0,g.useState)(0);return(0,g.useEffect)(()=>{if(typeof l!="object")return;let s=!0;return l.then(()=>s&&u(p=>p+1)),()=>void(s=!1)},[l]),[l===!1||a&&i,()=>r(!0)]}var Q=new WeakMap;function ze(e,t){let a=Q.get(e)?.get(t);if(a!==void 0)return a;let i;try{i=e.kept(t)}catch{return!0}if(typeof i=="boolean")return i;let r=Q.get(e)??new Map;Q.set(e,r);let l=Promise.resolve(i).then(u=>u!==!1,()=>!0);return r.set(t,l),l.then(u=>r.set(t,u)),l}function te({file:e,style:t}){return(0,n.jsx)("span",{role:"img","aria-label":`${F(e)}, removed later`,"data-graview-removed-later":e.href,style:{display:"grid",placeItems:"center",textAlign:"center",padding:4,boxSizing:"border-box",fontSize:"0.6875rem",lineHeight:1.2,color:"var(--graview-ink-muted)",border:"1px dashed var(--graview-edge-bright)",borderRadius:$,...t},children:"removed later"})}function X({file:e,size:t=56,style:a}){let i=C(),[r,l]=ee(e);return r?(0,n.jsx)(te,{file:e,style:{width:t,height:t,flex:"none",...a}}):E(e)?(0,n.jsx)(Ae,{file:e,size:t,...a?{style:a}:{},onError:l}):(0,n.jsx)("img",{onError:l,src:x(i,e.href),alt:F(e),width:t,height:t,loading:"lazy",decoding:"async","data-graview-thumb":e.href,style:{width:t,height:t,objectFit:"cover",borderRadius:$,display:"block",flex:"none",background:"var(--graview-edge)",...a}})}function Fe(e){let[t,a]=(0,g.useState)({}),i=e.duration??t.duration;return[{...i!==void 0?{duration:i}:{},width:e.width??t.width,height:e.height??t.height},u=>{let s=u.currentTarget;a({...Number.isFinite(s.duration)&&s.duration>0?{duration:s.duration}:{},...s.videoWidth>0&&s.videoHeight>0?{width:s.videoWidth,height:s.videoHeight}:{}})}]}var Ne=320,$e=(e,t)=>`${F(e)}, ${se({...t!==void 0?{duration:t}:{}})}`,Oe=(0,n.jsx)("span",{"data-graview-play-glyph":"","aria-hidden":"true",style:{position:"absolute",inset:0,display:"grid",placeItems:"center",pointerEvents:"none"},children:(0,n.jsxs)("svg",{viewBox:"0 0 24 24",width:"40%",height:"40%",style:{maxWidth:40,maxHeight:40,filter:"drop-shadow(0 1px 2px rgb(0 0 0 / 0.5))"},children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"11",fill:"rgb(0 0 0 / 0.55)"}),(0,n.jsx)("path",{d:"M9.5 7.5v9l7-4.5z",fill:"#fff"})]})});function Ae({file:e,size:t,style:a,onError:i}){let r=C(),[l,u]=Fe(e),s={width:t,height:t,objectFit:"cover",display:"block",borderRadius:$,background:"var(--graview-edge)"};return(0,n.jsxs)("span",{role:"img","aria-label":$e(e,l.duration),"data-graview-thumb":e.href,"data-graview-video-thumb":"",style:{position:"relative",display:"block",width:t,height:t,flex:"none",...a},children:[e.poster?(0,n.jsx)("img",{src:x(r,e.poster),alt:"",width:t,height:t,loading:"lazy",decoding:"async",onError:i,style:s}):(0,n.jsx)("video",{src:x(r,e.href),preload:"metadata",muted:!0,playsInline:!0,"aria-hidden":"true",tabIndex:-1,width:t,height:t,onLoadedMetadata:u,onError:i,style:s}),Oe,l.duration!==void 0?(0,n.jsx)("span",{"data-graview-video-clock":"","aria-hidden":"true",style:{position:"absolute",right:3,bottom:3,padding:"0 4px",borderRadius:4,background:"rgb(0 0 0 / 0.65)",color:"#fff",fontSize:"0.6875rem",lineHeight:"16px",fontVariantNumeric:"tabular-nums"},children:K(l.duration)}):null]})}function Ge(){let e=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia("(prefers-reduced-motion: reduce)"):void 0,[t,a]=(0,g.useState)(()=>e()?.matches===!0);return(0,g.useEffect)(()=>{let i=e();if(!i)return;let r=()=>a(i.matches);return r(),i.addEventListener?.("change",r),()=>i.removeEventListener?.("change",r)},[]),t}function Ue({file:e,autoplay:t=!1,cover:a=!1}){let i=C(),[r,l]=ee(e),[u,s]=Fe(e),p=Ge(),c=t&&p,b=(0,g.useRef)(null),m=(0,g.useRef)(c);if((0,g.useEffect)(()=>{let d=b.current;!d||!t||(c?d.pause():m.current&&d.play?.()?.catch?.(()=>{}),m.current=c)},[t,c]),r)return(0,n.jsx)(te,{file:e,style:{width:"100%",aspectRatio:"16 / 9"}});let v=u.width!==void 0&&u.height!==void 0,w=a?{display:"block",width:"100%",height:"100%",objectFit:"cover",background:"#000"}:{display:"block",width:"100%",maxWidth:v?Math.max(u.width,Ne):"100%",height:"auto",maxHeight:"80vh",aspectRatio:v?`${u.width} / ${u.height}`:"16 / 9",borderRadius:$,background:"#000"};return(0,n.jsxs)("figure",{"data-graview-video-figure":e.href,style:{margin:0,display:"grid",gap:4,minWidth:0,...a?{height:"100%"}:{}},children:[(0,n.jsx)("video",{ref:b,"data-graview-video":e.href,...t?{"data-graview-video-autoplay":""}:{},...a?{"data-graview-video-cover":""}:{},...c?{"data-graview-video-still":""}:{},src:x(i,e.href),...e.poster?{poster:x(i,e.poster)}:{},...t?{muted:!0,loop:!0,...c?{}:{autoPlay:!0}}:{controls:!0},preload:t&&!c?"auto":"metadata",playsInline:!0,...v?{width:u.width,height:u.height}:{},"aria-label":$e(e,u.duration),onLoadedMetadata:s,onError:l,style:w,children:e.captions?(0,n.jsx)("track",{kind:"captions",src:x(i,e.captions),srcLang:"en",label:"Captions",default:!0}):null}),t?null:(0,n.jsx)("figcaption",{"data-graview-video-said":"",style:P,children:[e.caption??e.name,...u.duration!==void 0?[K(u.duration)]:[]].join(" \xB7 ")})]})}function qe({file:e,onOpen:t}){let a=C(),[i,r]=ee(e);return i?(0,n.jsx)(te,{file:e,style:{width:"100%",aspectRatio:"1"}}):(0,n.jsx)("button",{type:"button","aria-label":`Open ${F(e)} full size`,onClick:l=>t(l.currentTarget),style:{padding:0,border:0,background:"none",cursor:"zoom-in",display:"block",width:"100%",borderRadius:$},children:(0,n.jsx)("img",{src:x(a,e.href),alt:F(e),loading:"lazy",decoding:"async",onError:r,style:{width:"100%",aspectRatio:"1",objectFit:"cover",borderRadius:$,display:"block",background:"var(--graview-edge)"}})})}function Ye({src:e,file:t}){let[a,i]=(0,g.useState)(!1);return(0,n.jsx)("object",{data:e,type:"application/pdf","aria-label":F(t),"data-graview-pdf":a?"shown":"waiting",onLoad:()=>i(!0),style:a?{width:"100%",height:420,border:"1px solid var(--graview-edge)",borderRadius:$}:{width:"100%",height:0,display:"block"}})}function Z({files:e,label:t,autoplay:a,cover:i}){let r=C(),l=d=>x(r,d.href),u=e.filter(W),s=e.filter(E),p=e.filter(d=>!W(d)&&!E(d)),[c,b]=(0,g.useState)(null),m=(0,g.useRef)(null),v=(0,g.useRef)(null);(0,g.useEffect)(()=>{let d=m.current;c!==null&&d&&!d.open&&d.showModal?.()},[c]);let w=c===null?void 0:u[c];return(0,n.jsxs)("div",{style:{display:"grid",gap:10,minWidth:0},children:[u.length>0?(0,n.jsx)("ul",{"data-graview-gallery":"","aria-label":t,style:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(96px, 1fr))",gap:8},children:u.map((d,I)=>(0,n.jsx)("li",{style:{minWidth:0},children:(0,n.jsx)(qe,{file:d,onOpen:M=>{v.current=M,b(I)}})},d.href))}):null,s.length>0?(0,n.jsx)("ul",{"data-graview-videos":"","aria-label":t,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:12},children:s.map(d=>(0,n.jsx)("li",{style:{minWidth:0},children:(0,n.jsx)(Ue,{file:d,...a?{autoplay:a}:{},...i?{cover:i}:{}})},d.href))}):null,p.length>0?(0,n.jsx)("ul",{"data-graview-documents":"",style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:10},children:p.map(d=>(0,n.jsxs)("li",{"data-graview-document":d.type,style:{display:"grid",gap:6,minWidth:0},children:[d.type==="application/pdf"?(0,n.jsx)(Ye,{src:l(d),file:d}):null,d.type==="application/pdf"?(0,n.jsxs)("span",{"data-graview-file-line":"",style:{minWidth:0,overflowWrap:"anywhere",lineHeight:1.5},children:[d.name," ",(0,n.jsxs)("span",{style:P,children:["\xB7 ",H(d)," \xB7 ",T(d.bytes)," \u2014"]})," ",(0,n.jsx)("a",{href:l(d),target:"_blank",rel:"noopener",children:"Open"})," ",(0,n.jsx)("span",{style:P,"aria-hidden":"true",children:"/"})," ",(0,n.jsx)("a",{href:l(d),download:d.name,children:"Download"})]}):(0,n.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",gap:"2px 10px",alignItems:"baseline",minWidth:0,overflowWrap:"anywhere"},children:[(0,n.jsx)("a",{href:l(d),download:d.name,children:d.name}),(0,n.jsxs)("span",{style:P,children:[H(d)," \xB7 ",T(d.bytes)]})]}),d.caption?(0,n.jsx)("span",{style:P,children:d.caption}):null]},d.href))}):null,w?(0,n.jsx)("dialog",{ref:m,"data-graview-full":w.href,"aria-label":F(w),onClose:()=>{b(null),v.current?.focus()},onClick:d=>{d.target===d.currentTarget&&d.currentTarget.close()},style:{padding:0,border:0,borderRadius:$,maxWidth:"min(96vw, 1600px)",maxHeight:"94vh",background:"var(--graview-panel)",color:"var(--graview-ink)"},children:(0,n.jsxs)("figure",{style:{margin:0,display:"grid",gap:8,padding:10},children:[(0,n.jsx)("img",{src:l(w),alt:F(w),style:{maxWidth:"100%",maxHeight:"80vh",objectFit:"contain",display:"block",margin:"0 auto"}}),(0,n.jsxs)("figcaption",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)("span",{children:w.caption??w.name}),(0,n.jsx)("form",{method:"dialog",style:{margin:0},children:(0,n.jsx)("button",{type:"submit",autoFocus:!0,children:"Close"})})]})]})}):null]})}function Se({value:e,onChange:t,several:a,image:i,video:r=!1,label:l,thumbs:u=!0}){let s=C(),p=(0,g.useId)(),c=(0,g.useRef)(null),b=(0,g.useRef)(null),[m,v]=(0,g.useState)(null),[w,d]=(0,g.useState)(null),[I,M]=(0,g.useState)([]),[O,A]=(0,g.useState)(!1),L=i?"image/":r?"video/":void 0,R=s?L?s.kinds.filter(o=>o.startsWith(L)||o==="*"||o==="*/*"):s.kinds:[],Pe=s?s.kinds.length===0||R.length>0:!1,We=!r&&(s?s.kinds.length===0||(i?R:s.kinds).some(o=>o.startsWith("image/")||o.startsWith("*")):!1),ne=!!s&&s.maxBytes>0,D=ne&&(!L||Pe),B=i?"picture":r?"video":"file",ae=a?`${B}s`:`a ${B}`,ie=L?R.length>0?R.join(","):`${L}*`:s?.kinds.join(",")||void 0,Me=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,G=(0,g.useRef)(e);G.current=e;let re=(0,g.useRef)(null),j=(0,g.useRef)(null);(0,g.useEffect)(()=>{let o=j.current;if(!o||o.from===e)return;j.current=null;let h=re.current?.children,f=h?.[Math.min(o.at,h.length-1)];((o.what==="move"?f?.querySelector("[data-graview-file-move]"):null)??f?.querySelector("[data-graview-file-remove]")??c.current?.parentElement?.querySelector("[data-graview-file-choose]"))?.focus()});let _=async(o,h)=>{if(!s||o.length===0)return;let f=a?o:o.slice(0,1),y=[],S=[];f.length<o.length&&S.push(`${l} holds one ${B}, so ${o.slice(1).map(k=>`\u201C${k.name||"the photo"}\u201D`).join(", ")} ${o.length>2?"were":"was"} left out.`),M([]),d(null);for(let k of f){v(`Sending ${k.name||"the photo"}\u2026`);let U=await je(k,s,{image:i,video:r,camera:h==="camera"});if("refused"in U){S.push(U.refused);continue}let V=await _e(U,s,i,r);"refused"in V?S.push(V.refused):[...a?G.current:[],...y].some(Ve=>Ve.href===V.href)?S.push(`\u201C${V.name}\u201D is already here.`):y.push(V)}if(v(null),M(S),y.length!==0)try{t(a?[...G.current,...y]:y.slice(-1)),d(`Added ${y.map(k=>k.name).join(", ")}.`)}catch(k){M([...S,k instanceof Error?k.message:String(k)])}},z=(o,h,f)=>{try{j.current=f?{...f,from:e}:null,t(o),d(h)}catch(y){j.current=null,M([y instanceof Error?y.message:String(y)])}},N=o=>o?Array.from(o):[],Re=o=>{let h=N(o.clipboardData?.files);!D||h.length===0||(o.preventDefault(),_(h,"pasted"))},Le=o=>{A(!1),D&&(o.preventDefault(),_(N(o.dataTransfer?.files),"dropped"))};return(0,n.jsxs)("div",{role:"group","aria-labelledby":`${p}-label`,"data-graview-file-editor":"","data-graview-dropping":O?"":void 0,onPaste:Re,onDragOver:o=>{D&&(o.preventDefault(),A(!0))},onDragLeave:()=>A(!1),onDrop:Le,style:{display:"grid",gap:8,minWidth:0,padding:O?6:0,outline:O?"2px dashed var(--graview-accent)":"none",borderRadius:$},children:[(0,n.jsx)("span",{id:`${p}-label`,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap"},children:l}),e.length>0&&(a||e.length>1)?(0,n.jsx)("ul",{ref:re,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:6},children:e.map((o,h)=>(0,n.jsxs)("li",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",minWidth:0},children:[u&&(W(o)||E(o))?(0,n.jsx)(X,{file:o,size:40}):null,(0,n.jsx)("span",{style:{flex:"1 1 8rem",minWidth:0,overflowWrap:"anywhere"},children:o.name}),(0,n.jsx)(we,{file:o,onCaption:f=>z(e.map((y,S)=>S===h?ve(y,f):y),f?`${o.name} now says \u201C${f}\u201D.`:`${o.name} says its name again.`)}),a&&h>0?(0,n.jsx)("button",{type:"button","data-graview-file-move":"","aria-label":`Move ${o.name} earlier`,onClick:()=>z(e.map((f,y)=>y===h-1?o:y===h?e[h-1]:f),`Moved ${o.name} earlier.`,{at:h-1,what:"move"}),children:"\u2191"}):null,a?(0,n.jsx)("button",{type:"button","data-graview-file-remove":"","aria-label":`Remove ${o.name}`,onClick:()=>z(e.filter((f,y)=>y!==h),`Removed ${o.name}.`,{at:h,what:"remove"}),children:"Remove"}):null]},`${h}:${o.href}`))}):e.length===1?(0,n.jsx)(we,{file:e[0],onCaption:o=>z([ve(e[0],o)],o?`${e[0].name} now says \u201C${o}\u201D.`:`${e[0].name} says its name again.`)}):null,D?(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center"},children:[(0,n.jsx)("input",{ref:c,type:"file",hidden:!0,multiple:a,...ie?{accept:ie}:{},"data-graview-file-input":"","aria-label":`Choose ${ae}`,onChange:o=>{let h=N(o.currentTarget.files);o.currentTarget.value="",_(h,"picked")}}),(0,n.jsx)("button",{type:"button",disabled:m!==null,onClick:()=>c.current?.click(),"data-graview-file-choose":"",children:e.length>0&&!a?`Replace the ${B}`:`Choose ${ae}`}),We?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{ref:b,type:"file",hidden:!0,accept:"image/*",capture:"environment","data-graview-photo-input":"","aria-label":"Take a photo",onChange:o=>{let h=N(o.currentTarget.files);o.currentTarget.value="",_(h,"camera")}}),Me?(0,n.jsx)("button",{type:"button",disabled:m!==null,onClick:()=>b.current?.click(),children:"Take a photo"}):null]}):null,(0,n.jsxs)("span",{style:P,"data-graview-file-takes":"",children:["or drop or paste ",a?"them":"it"," here \xB7 ",s.kinds.length>0?ke(R.length>0?R:s.kinds):"any file",", up to ",T(s.maxBytes)]})]}):(0,n.jsx)("p",{style:{...P,margin:0},"data-graview-file-none":"",children:ne?`This host doesn\u2019t take ${r?"videos":"pictures"}, so none can be added here.`:"This host doesn\u2019t take files, so none can be added here."}),(0,n.jsx)("p",{"aria-live":"polite",style:{...P,margin:0,minHeight:m||w?void 0:0},"data-graview-file-status":"",children:m??w??""}),I.length>0?(0,n.jsx)("div",{role:"alert","data-graview-file-refused":"",style:{color:"var(--graview-warn)",fontSize:"0.875rem",display:"grid",gap:2},children:I.map((o,h)=>(0,n.jsx)("p",{style:{margin:0},children:o},h))}):null]})}var ve=(e,t)=>{let{caption:a,...i}=e;return t?{...i,caption:t}:i};function we({file:e,onCaption:t}){let[a,i]=(0,g.useState)(e.caption??"");(0,g.useEffect)(()=>i(e.caption??""),[e.caption]);let r=()=>{let l=a.trim().slice(0,500);l!==(e.caption??"")&&t(l)};return(0,n.jsx)("input",{type:"text",value:a,placeholder:W(e)||E(e)?"What it shows":"What it is","aria-label":`What ${e.name} ${W(e)||E(e)?"shows":"is"}`,"data-graview-file-caption":e.href,onChange:l=>i(l.target.value),onBlur:r,onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),r())},style:{flex:"1 1 10rem",minWidth:0,font:"inherit",fontSize:"0.875rem",minHeight:24}})}function Ee({field:e,label:t,labelStyle:a,valueStyle:i,style:r,children:l}){return(0,n.jsxs)("div",{"data-graview-files":e,style:{display:"grid",gap:6,minWidth:0,gridColumn:"1 / -1",...r},children:[(0,n.jsx)("dt",{style:a,children:t}),(0,n.jsx)("dd",{style:{margin:0,minWidth:0,display:"grid",gap:10,...i},children:l})]})}function Ce(e){let{nodeId:t,field:a,label:i,files:r}=e,{fields:l,commit:u}=me(t),s=l.find(m=>m.field===a&&m.takesValue),p=s?.shape,c=p?.type==="several"?p.of:p,b=p?.type==="several";return r.length===0&&c?.type!=="file"?null:(0,n.jsxs)(Ee,{...e,children:[(0,n.jsx)(Z,{files:r,label:i}),s&&c?.type==="file"?(0,n.jsx)(Se,{value:r,thumbs:!1,several:b,image:c.image===!0,video:c.video===!0,label:i,onChange:m=>{let v=b?m:m[m.length-1];v!==void 0&&u(s,v)}}):null]})}function nt(e){switch(e.as){case"field":{if(!e.read)return(0,n.jsx)(Ce,{...e});let{autoplay:t,cover:a,...i}=e;return e.files.length>0?(0,n.jsx)(Ee,{...i,children:(0,n.jsx)(Z,{files:e.files,label:e.label,...t?{autoplay:t}:{},...a?{cover:a}:{}})}):null}case"unfilled":return(0,n.jsx)(Ke,{...e});case"thumb":return(0,n.jsx)(X,{...e});case"block":return e.files.length>0?(0,n.jsx)("span",{className:"graview-spec-image","data-graview-field":e.field,"data-graview-image":e.view,style:{display:"block",minWidth:0,...e.view==="gallery"?{position:"relative",zIndex:de.raised}:{}},children:e.view==="thumb"?(0,n.jsx)(X,{file:e.files[0],size:72}):(0,n.jsx)(Z,{files:e.files,label:e.label,...e.autoplay?{autoplay:!0}:{},...e.cover?{cover:!0}:{}})}):null;case"control":{let t=(0,n.jsx)(Se,{value:Y(e.value),several:e.several,image:e.image,video:e.video===!0,label:e.label,onChange:a=>e.onChange(e.several?a:a[a.length-1])});return e.title===void 0?t:(0,n.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.several?"files":"file",children:[(0,n.jsx)("legend",{"data-graview-part":"label",children:e.title}),t]})}}}function Ke({nodeId:e,skip:t,labels:a,labelStyle:i,style:r}){let{store:l}=ge(),u=he(e),s=u?l.schema.tryDefinition(u.kind):void 0,p=pe(s).filter(c=>!t.includes(c)&&!(s?.display?.hide??[]).includes(c)&&Y(u?.[c]).length===0);return p.length===0?null:(0,n.jsx)("dl",{style:{margin:0,display:"grid",gap:14,minWidth:0},children:p.map(c=>(0,n.jsx)(Ce,{nodeId:e,field:c,label:a?.[c]??oe(s,c),files:[],...i?{labelStyle:i}:{},...r?{style:r}:{}},c))})}export{Se as FilesEditor,He as SEND_EDGE,nt as drawFiles,ke as kindsWords,je as prepare,_e as send,T as sizeWords,xe as takes,H as typeWords};
|
|
1
|
+
import"./chunk.WVUJXDXZ.js";import{a as F,b as K,c as pe}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.MIE4TJRW.js";import{o as me}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 Te,N as C,R as ue,W as ce,ea as ge,ha as he}from"./chunk.3VEZ5MOC.js";import"./chunk.SDO3U72B.js";import{Aa as E,Ba as se,Ca as Y,ra as oe,sd as de,va as x,xa as le,za as W}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import{b as q}from"./chunk.AJZBJBMO.js";var g=q(Te(),1);async function ye(e,t){let a=await createImageBitmap(e);try{let i=Math.min(1,t/Math.max(a.width,a.height)),r=document.createElement("canvas");r.width=Math.max(1,Math.round(a.width*i)),r.height=Math.max(1,Math.round(a.height*i));let l=r.getContext("2d");if(l===null)throw new Error("This browser will not give us a canvas to resize with.");return l.drawImage(a,0,0,r.width,r.height),r}finally{a.close()}}var n=q(ce(),1),He=2048,Ie=.85;function T(e){return e<1e3?`${e} bytes`:e<1e6?`${Math.round(e/1e3)} KB`:`${(e/1e6).toFixed(e<1e7?1:0)} MB`}function H(e){if(e.type==="application/pdf")return"PDF";let t=/\.([a-z0-9]{2,5})$/i.exec(e.name??"")?.[1];return t?t.toUpperCase():(e.type.split("/")[1]??e.type).replace(/^x-|^vnd\./,"").split(/[.+-]/)[0].toUpperCase()}function ke(e){let t=[...new Set(e.map(a=>a==="image/*"?"pictures":a==="video/*"?"videos":a==="*/*"||a==="*"?"any file":`${H({type:a})} files`))];return t.length<=1?t[0]??"no files":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}function xe(e,t){if(e.length===0)return!0;let a=`${t.split("/")[0]}/*`;return e.some(i=>i==="*"||i==="*/*"||i===t||i===a)}var fe=/^image\/hei[cf]$|\.hei[cf]$/i,be=e=>fe.test(e.type)||fe.test(e.name),De={mov:"video/quicktime",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg"},Be=e=>De[/\.([a-z0-9]{2,4})$/i.exec(e)?.[1]?.toLowerCase()??""];async function je(e,t,a){let i=e.name||(a.camera?"photo.jpg":"file"),r=e.type||(be({type:"",name:i})?"image/heic":Be(i)??"application/octet-stream"),l=be({type:r,name:i}),u=r.startsWith("image/")||l;if(a.image&&!u)return{refused:`\u201C${i}\u201D isn\u2019t a picture.`};if(a.video)return r.startsWith("video/")?J({blob:e,name:i,type:r},t):{refused:`\u201C${i}\u201D isn\u2019t a video.`};if(l||u&&/^image\/(jpeg|webp)$/.test(r)&&(a.camera||e.size>t.maxBytes||e.size>15e5))try{let c=await ye(e,He),b=await new Promise(m=>c.toBlob(m,"image/jpeg",Ie));if(b)return J({blob:b,name:l?i.replace(/\.hei[cf]$/i,"")+".jpg":i,type:"image/jpeg",width:c.width,height:c.height},t)}catch{if(l&&!xe(t.kinds,r))return{refused:`\u201C${i}\u201D is a HEIC photo, which this browser can\u2019t turn into a JPEG and this host doesn\u2019t take. Save it as a JPEG and try again.`}}let p={};if(u&&!l)try{let c=await createImageBitmap(e);p={width:c.width,height:c.height},c.close()}catch{}return J({blob:e,name:i,type:r,...p},t)}function J(e,t){return xe(t.kinds,e.type)?e.blob.size>t.maxBytes?{refused:`\u201C${e.name}\u201D is ${T(e.blob.size)}; this host takes files up to ${T(t.maxBytes)}.`}:e:{refused:`\u201C${e.name}\u201D is a ${H(e)} file; this host takes ${ke(t.kinds)}.`}}async function _e(e,t,a,i=!1){let r;try{r=await t.upload(e.blob,e.name)}catch(u){let s=u instanceof Error&&u.message.trim()?u.message.trim():"the host refused it";return{refused:`\u201C${e.name}\u201D wasn\u2019t kept: ${s}`}}return le(r)?a&&!W(r)?{refused:`\u201C${e.name}\u201D isn\u2019t a picture.`}:i&&!E(r)?{refused:`The host kept \u201C${e.name}\u201D as ${H(r)}, not as a video.`}:{...r,...r.width===void 0&&e.width?{width:e.width}:{},...r.height===void 0&&e.height?{height:e.height}:{}}:{refused:`The host\u2019s answer for \u201C${e.name}\u201D isn\u2019t a file a record can keep.`}}var $="var(--graview-radius, 8px)",P={color:"var(--graview-ink-muted)",fontSize:"0.8125rem"};function ee(e){let t=C(),a=ue()?.past!=null,[i,r]=(0,g.useState)(!1),l=t?.kept?ze(t,e.href):!0,[,u]=(0,g.useState)(0);return(0,g.useEffect)(()=>{if(typeof l!="object")return;let s=!0;return l.then(()=>s&&u(p=>p+1)),()=>void(s=!1)},[l]),[l===!1||a&&i,()=>r(!0)]}var Q=new WeakMap;function ze(e,t){let a=Q.get(e)?.get(t);if(a!==void 0)return a;let i;try{i=e.kept(t)}catch{return!0}if(typeof i=="boolean")return i;let r=Q.get(e)??new Map;Q.set(e,r);let l=Promise.resolve(i).then(u=>u!==!1,()=>!0);return r.set(t,l),l.then(u=>r.set(t,u)),l}function te({file:e,style:t}){return(0,n.jsx)("span",{role:"img","aria-label":`${F(e)}, removed later`,"data-graview-removed-later":e.href,style:{display:"grid",placeItems:"center",textAlign:"center",padding:4,boxSizing:"border-box",fontSize:"0.6875rem",lineHeight:1.2,color:"var(--graview-ink-muted)",border:"1px dashed var(--graview-edge-bright)",borderRadius:$,...t},children:"removed later"})}function X({file:e,size:t=56,style:a}){let i=C(),[r,l]=ee(e);return r?(0,n.jsx)(te,{file:e,style:{width:t,height:t,flex:"none",...a}}):E(e)?(0,n.jsx)(Ae,{file:e,size:t,...a?{style:a}:{},onError:l}):(0,n.jsx)("img",{onError:l,src:x(i,e.href),alt:F(e),width:t,height:t,loading:"lazy",decoding:"async","data-graview-thumb":e.href,style:{width:t,height:t,objectFit:"cover",borderRadius:$,display:"block",flex:"none",background:"var(--graview-edge)",...a}})}function Fe(e){let[t,a]=(0,g.useState)({}),i=e.duration??t.duration;return[{...i!==void 0?{duration:i}:{},width:e.width??t.width,height:e.height??t.height},u=>{let s=u.currentTarget;a({...Number.isFinite(s.duration)&&s.duration>0?{duration:s.duration}:{},...s.videoWidth>0&&s.videoHeight>0?{width:s.videoWidth,height:s.videoHeight}:{}})}]}var Ne=320,$e=(e,t)=>`${F(e)}, ${se({...t!==void 0?{duration:t}:{}})}`,Oe=(0,n.jsx)("span",{"data-graview-play-glyph":"","aria-hidden":"true",style:{position:"absolute",inset:0,display:"grid",placeItems:"center",pointerEvents:"none"},children:(0,n.jsxs)("svg",{viewBox:"0 0 24 24",width:"40%",height:"40%",style:{maxWidth:40,maxHeight:40,filter:"drop-shadow(0 1px 2px rgb(0 0 0 / 0.5))"},children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"11",fill:"rgb(0 0 0 / 0.55)"}),(0,n.jsx)("path",{d:"M9.5 7.5v9l7-4.5z",fill:"#fff"})]})});function Ae({file:e,size:t,style:a,onError:i}){let r=C(),[l,u]=Fe(e),s={width:t,height:t,objectFit:"cover",display:"block",borderRadius:$,background:"var(--graview-edge)"};return(0,n.jsxs)("span",{role:"img","aria-label":$e(e,l.duration),"data-graview-thumb":e.href,"data-graview-video-thumb":"",style:{position:"relative",display:"block",width:t,height:t,flex:"none",...a},children:[e.poster?(0,n.jsx)("img",{src:x(r,e.poster),alt:"",width:t,height:t,loading:"lazy",decoding:"async",onError:i,style:s}):(0,n.jsx)("video",{src:x(r,e.href),preload:"metadata",muted:!0,playsInline:!0,"aria-hidden":"true",tabIndex:-1,width:t,height:t,onLoadedMetadata:u,onError:i,style:s}),Oe,l.duration!==void 0?(0,n.jsx)("span",{"data-graview-video-clock":"","aria-hidden":"true",style:{position:"absolute",right:3,bottom:3,padding:"0 4px",borderRadius:4,background:"rgb(0 0 0 / 0.65)",color:"#fff",fontSize:"0.6875rem",lineHeight:"16px",fontVariantNumeric:"tabular-nums"},children:K(l.duration)}):null]})}function Ge(){let e=()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia("(prefers-reduced-motion: reduce)"):void 0,[t,a]=(0,g.useState)(()=>e()?.matches===!0);return(0,g.useEffect)(()=>{let i=e();if(!i)return;let r=()=>a(i.matches);return r(),i.addEventListener?.("change",r),()=>i.removeEventListener?.("change",r)},[]),t}function Ue({file:e,autoplay:t=!1,cover:a=!1}){let i=C(),[r,l]=ee(e),[u,s]=Fe(e),p=Ge(),c=t&&p,b=(0,g.useRef)(null),m=(0,g.useRef)(c);if((0,g.useEffect)(()=>{let d=b.current;!d||!t||(c?d.pause():m.current&&d.play?.()?.catch?.(()=>{}),m.current=c)},[t,c]),r)return(0,n.jsx)(te,{file:e,style:{width:"100%",aspectRatio:"16 / 9"}});let v=u.width!==void 0&&u.height!==void 0,w=a?{display:"block",width:"100%",height:"100%",objectFit:"cover",background:"#000"}:{display:"block",width:"100%",maxWidth:v?Math.max(u.width,Ne):"100%",height:"auto",maxHeight:"80vh",aspectRatio:v?`${u.width} / ${u.height}`:"16 / 9",borderRadius:$,background:"#000"};return(0,n.jsxs)("figure",{"data-graview-video-figure":e.href,style:{margin:0,display:"grid",gap:4,minWidth:0,...a?{height:"100%"}:{}},children:[(0,n.jsx)("video",{ref:b,"data-graview-video":e.href,...t?{"data-graview-video-autoplay":""}:{},...a?{"data-graview-video-cover":""}:{},...c?{"data-graview-video-still":""}:{},src:x(i,e.href),...e.poster?{poster:x(i,e.poster)}:{},...t?{muted:!0,loop:!0,...c?{}:{autoPlay:!0}}:{controls:!0},preload:t&&!c?"auto":"metadata",playsInline:!0,...v?{width:u.width,height:u.height}:{},"aria-label":$e(e,u.duration),onLoadedMetadata:s,onError:l,style:w,children:e.captions?(0,n.jsx)("track",{kind:"captions",src:x(i,e.captions),srcLang:"en",label:"Captions",default:!0}):null}),t?null:(0,n.jsx)("figcaption",{"data-graview-video-said":"",style:P,children:[e.caption??e.name,...u.duration!==void 0?[K(u.duration)]:[]].join(" \xB7 ")})]})}function qe({file:e,onOpen:t}){let a=C(),[i,r]=ee(e);return i?(0,n.jsx)(te,{file:e,style:{width:"100%",aspectRatio:"1"}}):(0,n.jsx)("button",{type:"button","aria-label":`Open ${F(e)} full size`,onClick:l=>t(l.currentTarget),style:{padding:0,border:0,background:"none",cursor:"zoom-in",display:"block",width:"100%",borderRadius:$},children:(0,n.jsx)("img",{src:x(a,e.href),alt:F(e),loading:"lazy",decoding:"async",onError:r,style:{width:"100%",aspectRatio:"1",objectFit:"cover",borderRadius:$,display:"block",background:"var(--graview-edge)"}})})}function Ye({src:e,file:t}){let[a,i]=(0,g.useState)(!1);return(0,n.jsx)("object",{data:e,type:"application/pdf","aria-label":F(t),"data-graview-pdf":a?"shown":"waiting",onLoad:()=>i(!0),style:a?{width:"100%",height:420,border:"1px solid var(--graview-edge)",borderRadius:$}:{width:"100%",height:0,display:"block"}})}function Z({files:e,label:t,autoplay:a,cover:i}){let r=C(),l=d=>x(r,d.href),u=e.filter(W),s=e.filter(E),p=e.filter(d=>!W(d)&&!E(d)),[c,b]=(0,g.useState)(null),m=(0,g.useRef)(null),v=(0,g.useRef)(null);(0,g.useEffect)(()=>{let d=m.current;c!==null&&d&&!d.open&&d.showModal?.()},[c]);let w=c===null?void 0:u[c];return(0,n.jsxs)("div",{style:{display:"grid",gap:10,minWidth:0},children:[u.length>0?(0,n.jsx)("ul",{"data-graview-gallery":"","aria-label":t,style:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(96px, 1fr))",gap:8},children:u.map((d,I)=>(0,n.jsx)("li",{style:{minWidth:0},children:(0,n.jsx)(qe,{file:d,onOpen:M=>{v.current=M,b(I)}})},d.href))}):null,s.length>0?(0,n.jsx)("ul",{"data-graview-videos":"","aria-label":t,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:12},children:s.map(d=>(0,n.jsx)("li",{style:{minWidth:0},children:(0,n.jsx)(Ue,{file:d,...a?{autoplay:a}:{},...i?{cover:i}:{}})},d.href))}):null,p.length>0?(0,n.jsx)("ul",{"data-graview-documents":"",style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:10},children:p.map(d=>(0,n.jsxs)("li",{"data-graview-document":d.type,style:{display:"grid",gap:6,minWidth:0},children:[d.type==="application/pdf"?(0,n.jsx)(Ye,{src:l(d),file:d}):null,d.type==="application/pdf"?(0,n.jsxs)("span",{"data-graview-file-line":"",style:{minWidth:0,overflowWrap:"anywhere",lineHeight:1.5},children:[d.name," ",(0,n.jsxs)("span",{style:P,children:["\xB7 ",H(d)," \xB7 ",T(d.bytes)," \u2014"]})," ",(0,n.jsx)("a",{href:l(d),target:"_blank",rel:"noopener",children:"Open"})," ",(0,n.jsx)("span",{style:P,"aria-hidden":"true",children:"/"})," ",(0,n.jsx)("a",{href:l(d),download:d.name,children:"Download"})]}):(0,n.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",gap:"2px 10px",alignItems:"baseline",minWidth:0,overflowWrap:"anywhere"},children:[(0,n.jsx)("a",{href:l(d),download:d.name,children:d.name}),(0,n.jsxs)("span",{style:P,children:[H(d)," \xB7 ",T(d.bytes)]})]}),d.caption?(0,n.jsx)("span",{style:P,children:d.caption}):null]},d.href))}):null,w?(0,n.jsx)("dialog",{ref:m,"data-graview-full":w.href,"aria-label":F(w),onClose:()=>{b(null),v.current?.focus()},onClick:d=>{d.target===d.currentTarget&&d.currentTarget.close()},style:{padding:0,border:0,borderRadius:$,maxWidth:"min(96vw, 1600px)",maxHeight:"94vh",background:"var(--graview-panel)",color:"var(--graview-ink)"},children:(0,n.jsxs)("figure",{style:{margin:0,display:"grid",gap:8,padding:10},children:[(0,n.jsx)("img",{src:l(w),alt:F(w),style:{maxWidth:"100%",maxHeight:"80vh",objectFit:"contain",display:"block",margin:"0 auto"}}),(0,n.jsxs)("figcaption",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)("span",{children:w.caption??w.name}),(0,n.jsx)("form",{method:"dialog",style:{margin:0},children:(0,n.jsx)("button",{type:"submit",autoFocus:!0,children:"Close"})})]})]})}):null]})}function Se({value:e,onChange:t,several:a,image:i,video:r=!1,label:l,thumbs:u=!0}){let s=C(),p=(0,g.useId)(),c=(0,g.useRef)(null),b=(0,g.useRef)(null),[m,v]=(0,g.useState)(null),[w,d]=(0,g.useState)(null),[I,M]=(0,g.useState)([]),[O,A]=(0,g.useState)(!1),L=i?"image/":r?"video/":void 0,R=s?L?s.kinds.filter(o=>o.startsWith(L)||o==="*"||o==="*/*"):s.kinds:[],Pe=s?s.kinds.length===0||R.length>0:!1,We=!r&&(s?s.kinds.length===0||(i?R:s.kinds).some(o=>o.startsWith("image/")||o.startsWith("*")):!1),ne=!!s&&s.maxBytes>0,D=ne&&(!L||Pe),B=i?"picture":r?"video":"file",ae=a?`${B}s`:`a ${B}`,ie=L?R.length>0?R.join(","):`${L}*`:s?.kinds.join(",")||void 0,Me=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,G=(0,g.useRef)(e);G.current=e;let re=(0,g.useRef)(null),j=(0,g.useRef)(null);(0,g.useEffect)(()=>{let o=j.current;if(!o||o.from===e)return;j.current=null;let h=re.current?.children,f=h?.[Math.min(o.at,h.length-1)];((o.what==="move"?f?.querySelector("[data-graview-file-move]"):null)??f?.querySelector("[data-graview-file-remove]")??c.current?.parentElement?.querySelector("[data-graview-file-choose]"))?.focus()});let _=async(o,h)=>{if(!s||o.length===0)return;let f=a?o:o.slice(0,1),y=[],S=[];f.length<o.length&&S.push(`${l} holds one ${B}, so ${o.slice(1).map(k=>`\u201C${k.name||"the photo"}\u201D`).join(", ")} ${o.length>2?"were":"was"} left out.`),M([]),d(null);for(let k of f){v(`Sending ${k.name||"the photo"}\u2026`);let U=await je(k,s,{image:i,video:r,camera:h==="camera"});if("refused"in U){S.push(U.refused);continue}let V=await _e(U,s,i,r);"refused"in V?S.push(V.refused):[...a?G.current:[],...y].some(Ve=>Ve.href===V.href)?S.push(`\u201C${V.name}\u201D is already here.`):y.push(V)}if(v(null),M(S),y.length!==0)try{t(a?[...G.current,...y]:y.slice(-1)),d(`Added ${y.map(k=>k.name).join(", ")}.`)}catch(k){M([...S,k instanceof Error?k.message:String(k)])}},z=(o,h,f)=>{try{j.current=f?{...f,from:e}:null,t(o),d(h)}catch(y){j.current=null,M([y instanceof Error?y.message:String(y)])}},N=o=>o?Array.from(o):[],Re=o=>{let h=N(o.clipboardData?.files);!D||h.length===0||(o.preventDefault(),_(h,"pasted"))},Le=o=>{A(!1),D&&(o.preventDefault(),_(N(o.dataTransfer?.files),"dropped"))};return(0,n.jsxs)("div",{role:"group","aria-labelledby":`${p}-label`,"data-graview-file-editor":"","data-graview-dropping":O?"":void 0,onPaste:Re,onDragOver:o=>{D&&(o.preventDefault(),A(!0))},onDragLeave:()=>A(!1),onDrop:Le,style:{display:"grid",gap:8,minWidth:0,padding:O?6:0,outline:O?"2px dashed var(--graview-accent)":"none",borderRadius:$},children:[(0,n.jsx)("span",{id:`${p}-label`,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap"},children:l}),e.length>0&&(a||e.length>1)?(0,n.jsx)("ul",{ref:re,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:6},children:e.map((o,h)=>(0,n.jsxs)("li",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",minWidth:0},children:[u&&(W(o)||E(o))?(0,n.jsx)(X,{file:o,size:40}):null,(0,n.jsx)("span",{style:{flex:"1 1 8rem",minWidth:0,overflowWrap:"anywhere"},children:o.name}),(0,n.jsx)(we,{file:o,onCaption:f=>z(e.map((y,S)=>S===h?ve(y,f):y),f?`${o.name} now says \u201C${f}\u201D.`:`${o.name} says its name again.`)}),a&&h>0?(0,n.jsx)("button",{type:"button","data-graview-file-move":"","aria-label":`Move ${o.name} earlier`,onClick:()=>z(e.map((f,y)=>y===h-1?o:y===h?e[h-1]:f),`Moved ${o.name} earlier.`,{at:h-1,what:"move"}),children:"\u2191"}):null,a?(0,n.jsx)("button",{type:"button","data-graview-file-remove":"","aria-label":`Remove ${o.name}`,onClick:()=>z(e.filter((f,y)=>y!==h),`Removed ${o.name}.`,{at:h,what:"remove"}),children:"Remove"}):null]},`${h}:${o.href}`))}):e.length===1?(0,n.jsx)(we,{file:e[0],onCaption:o=>z([ve(e[0],o)],o?`${e[0].name} now says \u201C${o}\u201D.`:`${e[0].name} says its name again.`)}):null,D?(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center"},children:[(0,n.jsx)("input",{ref:c,type:"file",hidden:!0,multiple:a,...ie?{accept:ie}:{},"data-graview-file-input":"","aria-label":`Choose ${ae}`,onChange:o=>{let h=N(o.currentTarget.files);o.currentTarget.value="",_(h,"picked")}}),(0,n.jsx)("button",{type:"button",disabled:m!==null,onClick:()=>c.current?.click(),"data-graview-file-choose":"",children:e.length>0&&!a?`Replace the ${B}`:`Choose ${ae}`}),We?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{ref:b,type:"file",hidden:!0,accept:"image/*",capture:"environment","data-graview-photo-input":"","aria-label":"Take a photo",onChange:o=>{let h=N(o.currentTarget.files);o.currentTarget.value="",_(h,"camera")}}),Me?(0,n.jsx)("button",{type:"button",disabled:m!==null,onClick:()=>b.current?.click(),children:"Take a photo"}):null]}):null,(0,n.jsxs)("span",{style:P,"data-graview-file-takes":"",children:["or drop or paste ",a?"them":"it"," here \xB7 ",s.kinds.length>0?ke(R.length>0?R:s.kinds):"any file",", up to ",T(s.maxBytes)]})]}):(0,n.jsx)("p",{style:{...P,margin:0},"data-graview-file-none":"",children:ne?`This host doesn\u2019t take ${r?"videos":"pictures"}, so none can be added here.`:"This host doesn\u2019t take files, so none can be added here."}),(0,n.jsx)("p",{"aria-live":"polite",style:{...P,margin:0,minHeight:m||w?void 0:0},"data-graview-file-status":"",children:m??w??""}),I.length>0?(0,n.jsx)("div",{role:"alert","data-graview-file-refused":"",style:{color:"var(--graview-warn)",fontSize:"0.875rem",display:"grid",gap:2},children:I.map((o,h)=>(0,n.jsx)("p",{style:{margin:0},children:o},h))}):null]})}var ve=(e,t)=>{let{caption:a,...i}=e;return t?{...i,caption:t}:i};function we({file:e,onCaption:t}){let[a,i]=(0,g.useState)(e.caption??"");(0,g.useEffect)(()=>i(e.caption??""),[e.caption]);let r=()=>{let l=a.trim().slice(0,500);l!==(e.caption??"")&&t(l)};return(0,n.jsx)("input",{type:"text",value:a,placeholder:W(e)||E(e)?"What it shows":"What it is","aria-label":`What ${e.name} ${W(e)||E(e)?"shows":"is"}`,"data-graview-file-caption":e.href,onChange:l=>i(l.target.value),onBlur:r,onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),r())},style:{flex:"1 1 10rem",minWidth:0,font:"inherit",fontSize:"0.875rem",minHeight:24}})}function Ee({field:e,label:t,labelStyle:a,valueStyle:i,style:r,children:l}){return(0,n.jsxs)("div",{"data-graview-files":e,style:{display:"grid",gap:6,minWidth:0,gridColumn:"1 / -1",...r},children:[(0,n.jsx)("dt",{style:a,children:t}),(0,n.jsx)("dd",{style:{margin:0,minWidth:0,display:"grid",gap:10,...i},children:l})]})}function Ce(e){let{nodeId:t,field:a,label:i,files:r}=e,{fields:l,commit:u}=me(t),s=l.find(m=>m.field===a&&m.takesValue),p=s?.shape,c=p?.type==="several"?p.of:p,b=p?.type==="several";return r.length===0&&c?.type!=="file"?null:(0,n.jsxs)(Ee,{...e,children:[(0,n.jsx)(Z,{files:r,label:i}),s&&c?.type==="file"?(0,n.jsx)(Se,{value:r,thumbs:!1,several:b,image:c.image===!0,video:c.video===!0,label:i,onChange:m=>{let v=b?m:m[m.length-1];v!==void 0&&u(s,v)}}):null]})}function nt(e){switch(e.as){case"field":{if(!e.read)return(0,n.jsx)(Ce,{...e});let{autoplay:t,cover:a,...i}=e;return e.files.length>0?(0,n.jsx)(Ee,{...i,children:(0,n.jsx)(Z,{files:e.files,label:e.label,...t?{autoplay:t}:{},...a?{cover:a}:{}})}):null}case"unfilled":return(0,n.jsx)(Ke,{...e});case"thumb":return(0,n.jsx)(X,{...e});case"block":return e.files.length>0?(0,n.jsx)("span",{className:"graview-spec-image","data-graview-field":e.field,"data-graview-image":e.view,style:{display:"block",minWidth:0,...e.view==="gallery"?{position:"relative",zIndex:de.raised}:{}},children:e.view==="thumb"?(0,n.jsx)(X,{file:e.files[0],size:72}):(0,n.jsx)(Z,{files:e.files,label:e.label,...e.autoplay?{autoplay:!0}:{},...e.cover?{cover:!0}:{}})}):null;case"control":{let t=(0,n.jsx)(Se,{value:Y(e.value),several:e.several,image:e.image,video:e.video===!0,label:e.label,onChange:a=>e.onChange(e.several?a:a[a.length-1])});return e.title===void 0?t:(0,n.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.several?"files":"file",children:[(0,n.jsx)("legend",{"data-graview-part":"label",children:e.title}),t]})}}}function Ke({nodeId:e,skip:t,labels:a,labelStyle:i,style:r}){let{store:l}=ge(),u=he(e),s=u?l.schema.tryDefinition(u.kind):void 0,p=pe(s).filter(c=>!t.includes(c)&&!(s?.display?.hide??[]).includes(c)&&Y(u?.[c]).length===0);return p.length===0?null:(0,n.jsx)("dl",{style:{margin:0,display:"grid",gap:14,minWidth:0},children:p.map(c=>(0,n.jsx)(Ce,{nodeId:e,field:c,label:a?.[c]??oe(s,c),files:[],...i?{labelStyle:i}:{},...r?{style:r}:{}},c))})}export{Se as FilesEditor,He as SEND_EDGE,nt as drawFiles,ke as kindsWords,je as prepare,_e as send,T as sizeWords,xe as takes,H as typeWords};
|