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
|
-
import{a as je,c as Ge}from"./chunk.HOCD7KIR.js";import{b as _e}from"./chunk.FDZE5LTJ.js";import{a as He,b as ze,c as Ve,d as Q}from"./chunk.LGRVEHXT.js";import"./chunk.CTASTRQN.js";import{k as qe,l as Ke}from"./chunk.DPJNGFEZ.js";import"./chunk.YNEHJWJV.js";import"./chunk.QQAZQDRW.js";import"./chunk.72ZCLEQC.js";import"./chunk.ONYBW45K.js";import{e as Pe}from"./chunk.2VR7YEJ6.js";import{m as Be}from"./chunk.FXT5CN32.js";import{a as Fe,b as Ie}from"./chunk.WVLEGCRI.js";import{h as Me}from"./chunk.LETAQTLJ.js";import{e as Re,f as Ee}from"./chunk.BUVTUAB5.js";import"./chunk.HJCQ6I3S.js";import"./chunk.OJY7VJ7D.js";import{e as de}from"./chunk.GEFXU4VO.js";import"./chunk.7VP6Y6D2.js";import"./chunk.WSO7JOW5.js";import"./chunk.XOE4KNP2.js";import{a as Ce}from"./chunk.WAB3L3ZI.js";import"./chunk.W53YNBSM.js";import"./chunk.2KFZHUAC.js";import"./chunk.V5I4GZEY.js";import{a as De,b as Te,j as Le}from"./chunk.QWNSHISU.js";import"./chunk.G4JJXA63.js";import{a as $e}from"./chunk.TBY5IR7C.js";import"./chunk.FIFUMX5X.js";import"./chunk.BIDL7GQD.js";import"./chunk.V7W5AQKL.js";import"./chunk.EMFOMSMI.js";import"./chunk.QOS5T46W.js";import"./chunk.PPSYUOH7.js";import"./chunk.XOZU4OFA.js";import"./chunk.GME63ZHI.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.4FCFNAA4.js";import"./chunk.4AC2QM7T.js";import"./chunk.JXNVNFV4.js";import"./chunk.WVUJXDXZ.js";import"./chunk.I2737CPF.js";import{a as Ne}from"./chunk.NJRLJEJY.js";import"./chunk.CVPMSPCH.js";import"./chunk.OTV5XTBB.js";import"./chunk.KBPJ7X7W.js";import"./chunk.OEIWIZCP.js";import"./chunk.MIE4TJRW.js";import{s as Ae}from"./chunk.5LJVOLKR.js";import"./chunk.OJGHDWI6.js";import"./chunk.OWFS2YDQ.js";import"./chunk.WSDJPXJD.js";import"./chunk.F4VB6Q2W.js";import{d as se,l as Se}from"./chunk.FFOD5B4B.js";import{b as xe}from"./chunk.Z7Y3R3YR.js";import"./chunk.YXEO3Y65.js";import{F as Oe,t as te}from"./chunk.U3HERHAI.js";import"./chunk.FBILPNGH.js";import{G as st,Qa as re,Ra as ee,W as be,Z as ke,ea as K,ga as oe,j as fe,l as he,m as me,r as X,ra as ye}from"./chunk.MODLZJD4.js";import"./chunk.SDO3U72B.js";import{L as ge,T as ue,Z as $,cb as J,la as W,na as ae,pa as we,ra as ve}from"./chunk.6HY6ZGEE.js";import"./chunk.FQLNBIQ5.js";import{b as ie}from"./chunk.AJZBJBMO.js";var g=ie(st(),1);var dt=300,lt=14,Z=50,pt=3,ct=2;function We(e,n,o){let s=e.tryDefinition(n)?.fields?.shape;return(s?.[o]===void 0?void 0:Ne(s[o]))?.type}var gt=(e,n)=>Object.keys(e.tryDefinition(n)?.fields?.shape??{}),ut=e=>e==="date"||e==="datetime",Qe=/^(due|dueOn|dueAt|dueDate|deadline|by)$/i,wt=/^(date|on|day|when|at|start|starts|startsOn|startsAt|begins|from|sown|scheduled|scheduledFor|planned|plannedFor)$/i,vt=/^(done|finished|complete|completed|closed)$/i;function pe(e,n){let o=e.tryDefinition(n),s=gt(e,n),a=s.filter(c=>ut(We(e,n,c)));if(a.length===0)return;let i=o?.fieldRoles??{},r=c=>i[c]!==void 0&&a.includes(i[c])?i[c]:void 0,p=r("start")??r("when")??a.find(c=>Qe.test(c))??a.find(c=>wt.test(c));if(!p)return;let k=r("end")??a.find(c=>c!==p&&/^(end|ends|until|to|finish|finished|harvested|through)$/i.test(c)),m=s.find(c=>vt.test(c)&&We(e,n,c)==="boolean");return{field:p,due:Qe.test(p),...k?{end:k}:{},...m?{done:m}:{}}}function le(e,n){return Math.round((Date.parse(`${n.slice(0,10)}T00:00:00Z`)-Date.parse(`${e.slice(0,10)}T00:00:00Z`))/864e5)}var _=e=>typeof e=="string"&&/^\d{4}-\d{2}-\d{2}/.test(e)?e.slice(0,10):void 0;function Ze(e,n,o,s){let a=de(e,n);if(a&&o.length>0&&o.length<=dt)return{shape:"board",field:a.field};let i=pe(e,n);if(i&&!i.due){let r=l=>{let v=_(l[i.field]),b=_(J(l,i.field,s));return v&&b?le(v,b):0},p=o.map(l=>({from:_(J(l,i.field,s)),to:i.end&&_(l[i.end])?H(_(l[i.end]),r(l)):void 0})).filter(l=>l.from!==void 0).map(l=>({from:l.from,to:l.to&&l.to>l.from?l.to:l.from})),k=`${s.slice(0,7)}-01`,m=H(`${H(k,31).slice(0,7)}-01`,-1),c=p.filter(l=>l.from<=m&&l.to>=k),w=p.map(l=>le(l.from,l.to)).sort((l,v)=>l-v),u=w[Math.floor(w.length/2)]??0;if(c.length>0&&u<=lt){let l=H(s,-((new Date(`${s}T00:00:00Z`).getUTCDay()+6)%7)),v=H(l,6),b=c.every(f=>f.from>=l&&f.to<=v);return{shape:"calendar",start:i.field,...i.end?{end:i.end}:{},...i.done?{done:i.done}:{},range:b?"week":"month"}}}return{shape:"table"}}function Ue(e,n){let o=pe(e,n);return o?{by:o.field,direction:o.due?"asc":"desc"}:void 0}function Ye(e,n,o={}){switch(n.shape){case"board":return{lens:"columns",kind:e,column:n.field};case"calendar":return{lens:"calendar",kind:e,start:n.start,...n.end?{end:n.end}:{},...n.done?{done:n.done}:{},range:n.range};case"table":return{lens:"blocks",kind:e,as:"row",...o.group?.by?{group:o.group.by}:{},...o.sort?{sort:{by:o.sort.by,...o.sort.direction==="desc"?{direction:"desc"}:{}}}:{}}}}var ft=60;function Je(e,n,o,s){let a=e.tryDefinition(n),i=o.slice(0,ft),r=new Map;i.forEach(w=>{let u=W(a,w);se(w,a,{glance:!0,said:[u]}).forEach((l,v)=>{if(l.long||l.files||l.app)return;let b=r.get(l.key);b?b.count++:r.set(l.key,{label:l.label,count:1,at:v})})});let p=Math.max(1,Math.ceil(i.length/3)),k=[...r.entries()].filter(([,w])=>w.count>=p).sort((w,u)=>w[1].at-u[1].at).slice(0,pt).map(([w,u])=>({about:"field",key:w,label:u.label})),m=new Map;for(let w of i){let u=new Set;for(let[l,v]of[["out",s.outEdges(w.id)],["in",s.inEdges(w.id)]])for(let b of v){let f=s.getNode(l==="out"?b.to:b.from);if(!f||f.id===w.id)continue;let x=`${b.kind}|${l}`;if(u.has(x))continue;u.add(x);let y=m.get(x);y?y.count++:m.set(x,{edge:b.kind,direction:l,far:f.kind,count:1})}}let c=[...m.entries()].sort((w,u)=>u[1].count-w[1].count).slice(0,ct).map(([w,u])=>{let l=xe(e,u.direction==="out"?n:u.far,u.edge,u.direction);return{about:"edge",key:w,label:l.charAt(0).toUpperCase()+l.slice(1),edge:u.edge,direction:u.direction}});return[...k,...c]}function Xe(e,n,o,s){if(o.about==="field"){let r=e.tryDefinition(n.kind);return{text:se(n,r,{excerpt:!0}).find(k=>k.key===o.key)?.value??""}}let i=(o.direction==="out"?s.outEdges(n.id):s.inEdges(n.id)).filter(r=>r.kind===o.edge).map(r=>s.getNode(o.direction==="out"?r.to:r.from)).filter(r=>r!==void 0).map(r=>W(e.tryDefinition(r.kind),r));return i.length===0?{text:""}:i.length===1?{text:i[0]}:{text:`${i[0]} +${i.length-1}`,title:i.join(", ")}}function et(e,n,o=()=>{}){let s=new Map;for(let a of e){let i=a.nodeIds.filter(p=>n.has(p));if(i.length===0&&!(a.subjectId!==void 0&&n.has(a.subjectId)))continue;let r=s.get(a.invariant)??{invariant:a.invariant,label:o(a.invariant)||a.label||a.message,violations:[],records:new Set};r.violations.push(a);for(let p of i)r.records.add(p);a.subjectId!==void 0&&n.has(a.subjectId)&&r.records.add(a.subjectId),s.set(a.invariant,r)}return[...s.values()].sort((a,i)=>i.violations.length-a.violations.length).map(a=>({invariant:a.invariant,label:a.label,violations:a.violations,records:[...a.records]}))}var tt=6;function nt(e,n,o,s){let a=pe(e,n);if(!a)return;let i=de(e,n),r=m=>{if(a.done!==void 0&&m[a.done]===!0)return!0;if(!i)return!1;let c=i.values.indexOf(String(m[i.field]));return c>=0&&i.tiers[c]==="done"},p=0,k=0;for(let m of o){let c=_(J(m,a.field,s));if(!c||r(m))continue;let w=le(s,c);a.due&&w<0?p++:w>=0&&w<=tt&&k++}if(!(p===0&&k===0))return{field:a.field,due:a.due,overdue:p,soon:k}}function H(e,n){return new Date(Date.parse(`${e.slice(0,10)}T00:00:00Z`)+n*864e5).toISOString().slice(0,10)}function ce(e,n,o){return n==="overdue"?[{key:e.field,value:`before:${o}`}]:[{key:e.field,value:`after:${H(o,-1)}`},{key:e.field,value:`before:${H(o,tt+1)}`}]}function it(e,n,o,s){let a=new Set,i=new Set;for(let r of e)if(!(r.at<=o))for(let p of r.primitives)p.op==="add-node"&&p.node?.kind===n?a.add(p.node.id):(p.op==="patch-node"||p.op==="splice-text")&&p.id!==void 0&&s(p.id)===n&&i.add(p.id);for(let r of a)i.delete(r);return{added:[...a].filter(r=>s(r)===n).length,changed:[...i].filter(r=>s(r)===n).length}}var t=ie(be(),1),ht=560;function mt(e,n){let[o,s]=(0,g.useState)(0);return(0,g.useEffect)(()=>{let a=e.current;if(!a||!n){s(0);return}let i=0,r=()=>{i=0;let c=a.getBoundingClientRect().bottom;s([...a.querySelectorAll('[data-testid="kind-stop-table"] tbody tr[data-graview-pick]')].filter(w=>w.getBoundingClientRect().top>c-24).length)},p=()=>{i||(i=requestAnimationFrame(r))};r(),a.addEventListener("scroll",p,{passive:!0});let k=typeof ResizeObserver>"u"?null:new ResizeObserver(p);k?.observe(a);let m=a.querySelector('[data-testid="kind-stop-body"]');return m&&k?.observe(m),()=>{a.removeEventListener("scroll",p),k?.disconnect(),i&&cancelAnimationFrame(i)}},[e,n]),o}function bt({narrow:e,at:n,children:o}){return e?(0,t.jsx)("div",{ref:n,className:"graview-kind-stop-scroll","data-testid":"kind-stop-scroll",children:o}):(0,t.jsx)(t.Fragment,{children:o})}function kt(e){let[n,o]=(0,g.useState)(!1);return(0,g.useLayoutEffect)(()=>{let s=e.current;if(!s)return;let a=()=>{let r=s.getBoundingClientRect().width;r>0&&o(r<ht)};if(a(),typeof ResizeObserver>"u")return;let i=new ResizeObserver(a);return i.observe(s),()=>i.disconnect()},[e]),n}var ot="as",yt=(e,n)=>`graview:kind-seen:${e}:${n}`;function xt(e){try{return localStorage.getItem(e)}catch{return null}}function St(e,n){try{localStorage.setItem(e,n)}catch{}}var Nt=(e,n)=>({...fe(me(e,!1),n),relation:null});function rn({kind:e,members:n,flagged:o=[],label:s,retired:a=0}){let{store:i,brand:r,principal:p,views:k,view:m}=K(),{go:c}=ee(),w=oe(),u=i.schema,l=u.tryDefinition(e),v=s??we(u,e),b=i.today()??ge(),f=n,x=(0,g.useId)(),y=(0,g.useMemo)(()=>Ze(u,e,f,b),[u,e,f,b]),N=m.within?.[ot]==="table"?{shape:"table"}:y,R=Fe(m),D=N.shape==="table"&&!R.sort?Ue(u,e):void 0,E=D?{...R,sort:D}:R,L=(0,g.useMemo)(()=>new Set(o),[o]),h=(0,g.useMemo)(()=>Me(f,E,{schema:u,graph:i.graph,flagged:L,today:b}),[f,E,u,i,L,b,w]),C=(0,g.useMemo)(()=>Ee(u,Re(u,e)),[u,e]),P=k.arrangement?.()?.lists?.[e]?.filters,q=M=>c(Ie(m,M)),j=(0,g.useMemo)(()=>({name:r?.name??"app",schema:u,...i.policy?{policy:i.policy}:{}}),[r,u,i]),U=JSON.stringify(Ye(e,N,E)),F=(0,g.useMemo)(()=>{let M=Le(JSON.parse(U),{app:j,sight:Te(j,p)});return De(M)?void 0:M},[U,j,p]),G=N.shape!=="table"&&F!==void 0,z=(0,g.useRef)(null),O=kt(z),[V,d]=(0,g.useState)(!1),A=(0,g.useId)(),I=(0,g.useMemo)(()=>$e(i,p),[i,p]),B=(f.length>1||a>0)&&!G?(0,t.jsx)(Be,{schema:u,graph:i.graph,kind:e,arrangement:E,onChange:q,offers:C,...P?{filters:P}:{},kept:{shown:h.nodes.length,of:f.length},testId:"kind-arrange",chips:{nodes:f,flagged:L,today:b},...a>0?{past:{count:a,widen:()=>c(Pe(m,!0))}}:{}}):null,T=!!E.query||(E.filter?.length??0)>0,Y=(0,g.useRef)(null),ne=mt(Y,O&&!G);return(0,t.jsxs)("section",{ref:z,"aria-labelledby":x,className:"graview-kind-stop","data-testid":"kind-stop","data-graview-kind-stop":e,"data-graview-shape":N.shape,"data-graview-narrow":O||void 0,children:[(0,t.jsx)("style",{children:Lt}),(0,t.jsxs)(bt,{narrow:O,at:Y,children:[(0,t.jsx)(At,{kind:e,plural:v,count:f.length,headingId:x,description:l?.description,...O?{tools:{open:V,id:A,toggle:()=>d(M=>!M),narrowed:T}}:{}}),O&&V?(0,t.jsxs)("div",{id:A,className:"graview-kind-stop-tools","data-testid":"kind-stop-tools",role:"group","aria-label":`Find, filter and arrange the ${v.toLowerCase()}`,children:[B,f.length>0?(0,t.jsx)(at,{derived:y,shape:N,draft:F,author:!1}):null,(0,t.jsx)(rt,{kind:e,plural:v})]}):null,(0,t.jsx)(Rt,{kind:e,plural:v,members:f,today:b,arrangement:E,onArrange:q,compact:O}),O&&T&&!V?(0,t.jsxs)("p",{className:"graview-kind-stop-narrowed","data-testid":"kind-stop-narrowed",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[$(h.nodes.length)," of ",$(f.length)," shown"]})," ",(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link",onClick:()=>q({}),children:"Show all"})]}):null,O?null:B,f.length>0&&!O?(0,t.jsx)(at,{derived:y,shape:N,draft:F,author:I}):null,(0,t.jsx)("div",{className:"graview-kind-stop-body","data-testid":"kind-stop-body",children:f.length===0?(0,t.jsx)("p",{className:"graview-kind-stop-empty","data-testid":"kind-stop-empty",children:"Nothing here yet."}):G?(0,t.jsx)(Dt,{draft:F,nodes:f}):h.nodes.length===0?(0,t.jsxs)("p",{className:"graview-kind-stop-empty","data-testid":"kind-stop-none-kept",children:["None of the ",$(f.length)," ",v.toLowerCase()," ",E.query?`says \u201C${E.query}\u201D`:"is kept by these filters","."," ",(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link",onClick:()=>q({}),children:"Show them all"})]}):(0,t.jsx)(Tt,{kind:e,nodes:h.nodes,groups:h.grouped?h.groups.map(M=>({key:M.key,label:M.label,nodes:M.nodes})):void 0,flagged:L,plural:v,arrangement:E})})]}),ne>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-below","data-testid":"kind-stop-below","data-graview-below":ne,onClick:()=>Y.current?.scrollBy({top:Math.round(Y.current.clientHeight*.8),behavior:"smooth"}),children:[ae(u,e,ne).replace(/^(\S+)\s/,"$1 more ")," below ",(0,t.jsx)("span",{"aria-hidden":"true",children:"\u2193"})]}):null]})}function rt({kind:e,plural:n}){let{setSelection:o,setMenuAt:s}=K();return(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-quiet","data-testid":"kind-stop-acts","aria-haspopup":"menu","aria-label":`What can be done with the ${n.toLowerCase()}`,onClick:a=>{let i=a.currentTarget.getBoundingClientRect();o([X(e)]),s({x:Math.round(i.left),y:Math.round(i.bottom+4),on:X(e)})},children:"Acts\u2026"})}function At({kind:e,plural:n,count:o,headingId:s,description:a,tools:i}){let{store:r}=K(),p=(0,g.useMemo)(()=>({about:[X(e)]}),[e]),{affordances:k}=qe(p),{apply:m,preview:c}=Ke(),w=(0,g.useMemo)(()=>{let S=N=>r.allMutations().find(R=>R.name===N.mutation)?.creates?.includes(e)??!1;return k.find(N=>!N.destructive&&!N.setsAside&&S(N))},[k,r,e]),[u,l]=(0,g.useState)(!1),[v,b]=(0,g.useState)(null),f=(0,g.useRef)(null),x=(0,g.useRef)(null);(0,g.useEffect)(()=>{let S=x.current;if(!S||S.closest('[data-testid="kind-stop"]')?.contains(document.activeElement))return;let N=!1;try{N=document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.matches(":focus-visible")}catch{N=!0}N?delete S.dataset.graviewQuietFocus:S.dataset.graviewQuietFocus="",S.focus({preventScroll:!0})},[e]);let y=(S,N)=>{try{c(S,N),m(S,N),b(null),l(!1),requestAnimationFrame(()=>f.current?.focus())}catch(R){return b(Se(r.schema,r.allMutations(),R)),[]}};return(0,t.jsxs)("header",{className:"graview-kind-stop-head",children:[(0,t.jsxs)("div",{className:"graview-kind-stop-title",children:[(0,t.jsx)("h2",{id:s,ref:x,tabIndex:-1,"data-testid":"kind-stop-title",onKeyDown:S=>delete S.currentTarget.dataset.graviewQuietFocus,onBlur:S=>delete S.currentTarget.dataset.graviewQuietFocus,children:n}),(0,t.jsxs)("p",{"data-testid":"kind-stop-count",children:[ae(r.schema,e,o),a?` \xB7 ${a}`:""]})]}),(0,t.jsxs)("div",{className:"graview-kind-stop-acts",children:[w?(0,t.jsx)("button",{ref:f,type:"button",className:"graview-kind-stop-primary","data-testid":"kind-stop-primary","data-affordance":w.id,"aria-expanded":w.open.length>0?u:void 0,onClick:()=>{b(null),w.open.length===0?y(w):l(S=>!S)},children:w.label}):null,i?(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-more-tools","data-testid":"kind-stop-tools-open","aria-expanded":i.open,"aria-controls":i.open?i.id:void 0,"aria-label":`Find, filter, arrange and act on the ${n.toLowerCase()}`,title:"Find, filter, arrange and acts","data-narrowed":i.narrowed||void 0,onClick:i.toggle,children:(0,t.jsx)("span",{"aria-hidden":"true",children:"\u22EF"})}):(0,t.jsx)(rt,{kind:e,plural:n})]}),u&&w?(0,t.jsx)("div",{className:"graview-kind-stop-ask","data-testid":"kind-stop-ask","aria-label":w.label,role:"group",children:(0,t.jsx)(Ce,{affordance:w,onApply:S=>y(w,S),onCancel:()=>{l(!1),f.current?.focus()}})}):null,v?(0,t.jsx)("p",{role:"alert",className:"graview-kind-stop-failed","data-testid":"kind-stop-failed",children:v}):null]})}var Ct=te.part((e,n)=>(0,t.jsx)(e.ProblemRows,{...n}),{what:"The problems",as:"li"});function Rt({kind:e,plural:n,members:o,today:s,arrangement:a,onArrange:i,compact:r=!1}){let{store:p,brand:k,setSelection:m}=K(),c=p.schema,w=re(),u=(0,g.useMemo)(()=>new Set(o.map(h=>h.id)),[o]),l=(0,g.useMemo)(()=>et(w,u,h=>p.allInvariants().find(C=>C.name===h)?.label),[w,u,p]),v=(0,g.useMemo)(()=>nt(c,e,o,s),[c,e,o,s]),b=yt(Oe(k,c),e),[f]=(0,g.useState)(()=>xt(b));(0,g.useEffect)(()=>()=>St(b,new Date().toISOString()),[b]);let x=oe(),y=(0,g.useMemo)(()=>f?it(p.log.all(),e,f,h=>p.graph.getNode(h)?.kind):null,[f,p,e,x]),[S,N]=(0,g.useState)(null),R=h=>i({...a,filter:[...(a.filter??[]).filter(C=>!h?.some(P=>P.key===C.key)),...h??[]]}),D=l.reduce((h,C)=>h+C.violations.length,0),E=[];if(v&&(v.overdue>0||v.soon>0)){let h=v.field;E.push((0,t.jsxs)("li",{"data-testid":"kind-stop-dates",children:[v.overdue>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-fact","data-tone":"warn",onClick:()=>R(ce(v,"overdue",s)),"aria-label":`${$(v.overdue)} overdue \u2014 show only these`,children:[$(v.overdue)," overdue"]}):null,v.soon>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-fact",onClick:()=>R(ce(v,"soon",s)),"aria-label":`${$(v.soon)} in the next 7 days \u2014 show only these`,children:[$(v.soon)," ",v.due?"due":""," in the next 7 days"]}):null,(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[" by ",ve(c.tryDefinition(e),h).toLowerCase()]})]},"dates"))}let L=(a.filter??[]).some(h=>h.key==="is"&&h.value==="flagged");if(l.length>0&&r){let h=l.map(C=>C.label).join(", ");E.push((0,t.jsxs)("li",{className:"graview-kind-stop-problems-line","data-testid":"kind-stop-problems","data-graview-problems":D,children:[(0,t.jsxs)("span",{className:"graview-kind-stop-warn",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0 "}),D===1?"1 problem":`${$(D)} problems`]}),(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text graview-kind-stop-rules-said",title:h,children:[" ","\xB7 ",h]}),(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-only-problems","aria-pressed":L,"aria-label":L?`Show all the ${n.toLowerCase()}`:`Show only the ${n.toLowerCase()} with a problem`,onClick:()=>L?i({...a,filter:(a.filter??[]).filter(C=>!(C.key==="is"&&C.value==="flagged"))}):R([{key:"is",value:"flagged"}]),children:L?"Show all":"Show"})]},"problems"))}else l.length>0&&E.push((0,t.jsxs)("li",{"data-testid":"kind-stop-problems","data-graview-problems":D,children:[(0,t.jsxs)("span",{className:"graview-kind-stop-warn",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0 "}),D===1?"1 problem":`${$(D)} problems`]}),(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[" in ",n.toLowerCase(),":"]}),(0,t.jsx)("ul",{className:"graview-kind-stop-rules",children:l.map(h=>(0,t.jsx)(Et,{group:h,open:S===h.invariant,onToggle:()=>N(C=>C===h.invariant?null:h.invariant),onPick:C=>m([C])},h.invariant))}),(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-only-problems",onClick:()=>R([{key:"is",value:"flagged"}]),children:["Show only the ",n.toLowerCase()," with a problem"]})]},"problems"));if(y&&(y.added>0||y.changed>0)){let h=[y.added>0?`${$(y.added)} added`:"",y.changed>0?`${$(y.changed)} changed`:""].filter(Boolean);E.push((0,t.jsxs)("li",{"data-testid":"kind-stop-since",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["Since you last looked (",ue(f.slice(0,10)),"):"]})," ",h.join(", ")]},"since"))}return E.length===0?null:(0,t.jsx)("ul",{className:"graview-kind-stop-going-on","aria-label":`What is going on in the ${n.toLowerCase()}`,"data-testid":"kind-stop-going-on",children:E})}function Et({group:e,open:n,onToggle:o,onPick:s}){let a=(0,g.useId)();return(0,t.jsxs)("li",{"data-graview-rule":e.invariant,children:[(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-rule","aria-expanded":n,"aria-controls":a,onClick:o,onPointerEnter:te.prefetch,onFocus:te.prefetch,children:[(0,t.jsx)("span",{"aria-hidden":"true",className:"graview-kind-stop-chevron","data-open":n||void 0,children:"\u203A"}),e.label," ",(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["\xB7 ",$(e.violations.length)]})]}),n?(0,t.jsx)("ol",{id:a,className:"graview-kind-stop-problem-rows","data-testid":"kind-stop-problem-rows",children:(0,t.jsx)(g.Suspense,{fallback:null,children:(0,t.jsx)(Ct,{violations:e.violations,pick:i=>{let r=i.subjectId??e.records[0]??i.nodeIds[0];r!==void 0&&s(r)}})})}):null]})}var $t={board:"Board",calendar:"Calendar",table:"Table"};function at({derived:e,shape:n,draft:o,author:s}){let{view:a}=K(),{go:i}=ee(),{keep:r}=je(Ge()),[p,k]=(0,g.useState)(!1),m=e.shape==="table"?[]:[e.shape,"table"];return!s&&m.length===0?null:(0,t.jsxs)("div",{className:"graview-kind-stop-shape","data-testid":"kind-stop-shape",children:[m.length>0?(0,t.jsx)("span",{role:"group","aria-label":"Show as",className:"graview-kind-stop-switch",children:m.map(c=>(0,t.jsx)("button",{type:"button","aria-pressed":n.shape===c,"data-testid":`kind-stop-as-${c}`,onClick:()=>i(he(a,ot,c===e.shape?null:c)),children:$t[c]},c))}):null,s?(0,t.jsx)("span",{className:"graview-kind-stop-quiet-text","data-testid":"kind-stop-derived",children:o?`${o.said.replace(/\.$/,"")}, derived from the declaration`:"Derived from the declaration"}):null,o&&s?(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-keep",disabled:p,title:`Keep \u201C${o.title}\u201D as a lens: a place of its own`,onClick:()=>{k(!0),r(o).finally(()=>k(!1))},children:"Keep as a lens"}):null]})}function Dt({draft:e,nodes:n}){let o=_e(e.drawn);return(0,t.jsx)("div",{className:"graview-kind-stop-lens","data-graview-draft":e.lens.name,children:(0,t.jsx)(ke,{mode:"scene",children:(0,t.jsx)(Ae,{kind:e.kind,view:e.title,children:(0,t.jsx)(o,{nodes:n,label:e.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})})}function Tt({kind:e,nodes:n,groups:o,flagged:s,plural:a,arrangement:i}){let{store:r,views:p,view:k,selection:m,setSelection:c,setMenuAt:w,principal:u}=K(),{go:l}=ee(),v=r.schema,b=r.graph,f=(0,g.useMemo)(()=>(o?o.flatMap(d=>d.nodes):n).map(d=>d.id),[n,o]),x=He(f),y=(0,g.useMemo)(()=>r.permittedMutations(u).some(d=>{let A=d.subject?.kinds;return A!==void 0&&(A==="*"||A.includes(e))}),[r,u,e]),S=(0,g.useRef)(null),N=d=>{x.choose(d),requestAnimationFrame(()=>{let A=x.list.current;((d[0]===void 0?null:A?.querySelector(`[data-graview-choose-box="${CSS.escape(d[0])}"]`))??A)?.focus({preventScroll:!0})})},R=x.chosen.length,D=p.lookup(e,{cardinality:"one",fidelity:"glyph"}),E=D!==void 0&&!ye(D)?D:void 0,L=d=>m.includes(d),h=re(),C=(0,g.useMemo)(()=>Je(v,e,n,b),[v,e,n,b]),[P,q]=(0,g.useState)(Z);(0,g.useEffect)(()=>q(Z),[i.query,i.filter?.length,i.sort?.by,i.group?.by]);let j=v.tryDefinition(e),U=d=>h.filter(A=>A.nodeIds.includes(d)||A.subjectId===d).map(A=>A.message),F=i.sort?.by,G=`${a}${i.sort?`, in order of ${C.find(d=>d.key===F)?.label.toLowerCase()??F}`:""}`,z=P,O=d=>{let A=W(j,d),I=s.has(d.id)?U(d.id):[];return(0,t.jsxs)("tr",{"data-graview-pick":d.id,tabIndex:-1,"data-graview-record":d.id,"data-flagged":I.length>0||void 0,...y?{"data-graview-choose":d.id}:{},children:[y?(0,t.jsx)("td",{className:"graview-choose-at",children:(0,t.jsx)("input",{...x.boxProps(d.id,A),onPointerEnter:Q,onFocus:Q})}):null,(0,t.jsxs)("th",{scope:"row",className:"graview-kind-stop-name",children:[E?(0,t.jsx)("div",{"data-graview-pick":d.id,className:"graview-kind-stop-own-row",children:(0,t.jsx)(E,{node:d,cardinality:"one",fidelity:"glyph",mode:"scene",selected:L(d.id),...I.length>0?{flagged:[d.id]}:{}})}):(0,t.jsx)("button",{type:"button","data-testid":"kind-stop-row-go",title:`Go to ${A}`,onClick:()=>l(Nt(k,d.id)),children:A}),I.length>0?(0,t.jsxs)("span",{className:"graview-kind-stop-flag",title:I.join(" \xB7 "),children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0"}),(0,t.jsx)("span",{className:"graview-kind-stop-hidden",children:`Problem: ${I.join(". ")}`})]}):null]}),C.map(B=>{let T=Xe(v,d,B,b);return(0,t.jsx)("td",{"data-label":B.label,"data-short":T.text.length>0&&T.text.length<=14||void 0,"data-empty":T.text?void 0:"",...T.title?{title:T.title}:{},children:T.text?(0,t.jsx)("span",{children:T.text}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("b",{"aria-hidden":"true",children:"\u2014"}),(0,t.jsx)("i",{className:"graview-kind-stop-hidden",children:"none"})]})},B.key)}),(0,t.jsx)("td",{className:"graview-kind-stop-row-acts",children:(0,t.jsx)("button",{type:"button","data-testid":"kind-stop-row-acts","aria-haspopup":"menu","aria-label":`What can be done with ${A}`,onClick:B=>{let T=B.currentTarget.getBoundingClientRect();c([d.id]),w({x:Math.round(T.left),y:Math.round(T.bottom+4),on:d.id})},children:(0,t.jsx)("span",{"aria-hidden":"true",children:"\u22EF"})})})]},d.id)},V=d=>{let A=d.slice(0,Math.max(0,z));return z-=A.length,A.map(O)};return(0,t.jsxs)("div",{className:"graview-kind-stop-table-at",...y?{...x.listProps,ref:d=>{S.current=d,x.list.current=d},tabIndex:-1,role:"group","aria-label":R>0?`${a}, ${R} chosen`:a,"data-graview-choosable":""}:{},children:[y?(0,t.jsx)("style",{children:ze}):null,(0,t.jsxs)("table",{className:"graview-kind-stop-table","data-testid":"kind-stop-table",children:[(0,t.jsx)("caption",{className:"graview-kind-stop-hidden",children:G}),(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{children:[y?(0,t.jsx)("td",{className:"graview-choose-at graview-choose-all",children:(0,t.jsx)("input",{type:"checkbox",className:"graview-choose-box","data-testid":"kind-stop-choose-all","aria-label":`Choose all ${$(n.length)} ${a.toLowerCase()}`,checked:R>0&&R===n.length,ref:d=>{d&&(d.indeterminate=R>0&&R<n.length)},onPointerEnter:Q,onFocus:Q,onChange:()=>R===n.length?x.clear():x.choose(f)})}):null,(0,t.jsx)("th",{scope:"col","aria-sort":F==="label"?i.sort?.direction==="desc"?"descending":"ascending":void 0,children:"Name"}),C.map(d=>(0,t.jsx)("th",{scope:"col","aria-sort":d.about==="field"&&d.key===F?i.sort?.direction==="desc"?"descending":"ascending":void 0,children:d.label},d.key)),(0,t.jsx)("th",{scope:"col",children:(0,t.jsx)("span",{className:"graview-kind-stop-hidden",children:"Acts"})})]})}),o?o.map(d=>z<=0?null:(0,t.jsxs)("tbody",{"data-graview-group":d.key,children:[(0,t.jsx)("tr",{className:"graview-kind-stop-group",children:(0,t.jsxs)("th",{scope:"rowgroup",colSpan:C.length+(y?3:2),children:[d.label," ",(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["\xB7 ",$(d.nodes.length)]})]})}),V(d.nodes)]},d.key||"-")):(0,t.jsx)("tbody",{children:V(n)})]}),y?(0,t.jsx)(Ve,{store:r,chosen:x.chosen,principal:u,anchor:()=>S.current?.closest('[data-testid="kind-stop"]')??null,of:f.length,onChooseAll:()=>x.choose(f),onClear:x.clear,onActed:N}):null,n.length>P?(0,t.jsxs)("p",{className:"graview-kind-stop-more",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text","data-testid":"kind-stop-shown",children:[$(P)," of ",$(n.length)," shown"]})," ",(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-more",onClick:()=>q(d=>d+Z),children:["Show ",$(Math.min(Z,n.length-P))," more"]})]}):null]})}var Lt=`
|
|
1
|
+
import{a as je,c as Ge}from"./chunk.BQAFFEOA.js";import{b as _e}from"./chunk.AWV57UBJ.js";import{a as He,b as ze,c as Ve,d as Q}from"./chunk.YBQ5GVAX.js";import"./chunk.EB7PZJEO.js";import{k as qe,l as Ke}from"./chunk.MSUZAJ2K.js";import"./chunk.64LCHHZB.js";import"./chunk.42KHFGN6.js";import"./chunk.RQG672MJ.js";import"./chunk.Q6H5HESF.js";import{e as Pe}from"./chunk.3JMQKANL.js";import{m as Be}from"./chunk.42C3FIKK.js";import{a as Fe,b as Ie}from"./chunk.2ME4DVBI.js";import{h as Me}from"./chunk.XXCHO2A5.js";import{e as Re,f as Ee}from"./chunk.SADR3MQI.js";import"./chunk.HJCQ6I3S.js";import"./chunk.2BMZPALF.js";import{e as de}from"./chunk.GONZB3J3.js";import"./chunk.LFFJB6D3.js";import"./chunk.DMZRFXH7.js";import"./chunk.DZ6UDZOB.js";import{a as Ce}from"./chunk.E423JCOS.js";import"./chunk.O5FTWXA2.js";import"./chunk.Q4VFLLUT.js";import"./chunk.6ZENHSTQ.js";import{a as De,b as Te,j as Le}from"./chunk.VTDOWXCP.js";import"./chunk.G4JJXA63.js";import{a as $e}from"./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.EGSOHTZZ.js";import"./chunk.WVUJXDXZ.js";import"./chunk.L7XKYGV7.js";import{a as Ne}from"./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 Ae}from"./chunk.CFE3MHWZ.js";import"./chunk.RD2FSSLV.js";import"./chunk.HXTKBISQ.js";import"./chunk.TFJA4QV4.js";import"./chunk.HWFJQ42Y.js";import{d as se,l as Se}from"./chunk.QUETLFBJ.js";import{b as xe}from"./chunk.JULD4XFB.js";import"./chunk.GRTBEA7O.js";import{F as Oe,t as te}from"./chunk.H3IGXHZR.js";import"./chunk.7TDML5YU.js";import{G as st,Qa as re,Ra as ee,W as be,Z as ke,ea as K,ga as oe,j as fe,l as he,m as me,r as X,ra as ye}from"./chunk.3VEZ5MOC.js";import"./chunk.SDO3U72B.js";import{L as ge,T as ue,Z as $,cb as J,la as W,na as ae,pa as we,ra as ve}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import{b as ie}from"./chunk.AJZBJBMO.js";var g=ie(st(),1);var dt=300,lt=14,Z=50,pt=3,ct=2;function We(e,n,o){let s=e.tryDefinition(n)?.fields?.shape;return(s?.[o]===void 0?void 0:Ne(s[o]))?.type}var gt=(e,n)=>Object.keys(e.tryDefinition(n)?.fields?.shape??{}),ut=e=>e==="date"||e==="datetime",Qe=/^(due|dueOn|dueAt|dueDate|deadline|by)$/i,wt=/^(date|on|day|when|at|start|starts|startsOn|startsAt|begins|from|sown|scheduled|scheduledFor|planned|plannedFor)$/i,vt=/^(done|finished|complete|completed|closed)$/i;function pe(e,n){let o=e.tryDefinition(n),s=gt(e,n),a=s.filter(c=>ut(We(e,n,c)));if(a.length===0)return;let i=o?.fieldRoles??{},r=c=>i[c]!==void 0&&a.includes(i[c])?i[c]:void 0,p=r("start")??r("when")??a.find(c=>Qe.test(c))??a.find(c=>wt.test(c));if(!p)return;let k=r("end")??a.find(c=>c!==p&&/^(end|ends|until|to|finish|finished|harvested|through)$/i.test(c)),m=s.find(c=>vt.test(c)&&We(e,n,c)==="boolean");return{field:p,due:Qe.test(p),...k?{end:k}:{},...m?{done:m}:{}}}function le(e,n){return Math.round((Date.parse(`${n.slice(0,10)}T00:00:00Z`)-Date.parse(`${e.slice(0,10)}T00:00:00Z`))/864e5)}var _=e=>typeof e=="string"&&/^\d{4}-\d{2}-\d{2}/.test(e)?e.slice(0,10):void 0;function Ze(e,n,o,s){let a=de(e,n);if(a&&o.length>0&&o.length<=dt)return{shape:"board",field:a.field};let i=pe(e,n);if(i&&!i.due){let r=l=>{let v=_(l[i.field]),b=_(J(l,i.field,s));return v&&b?le(v,b):0},p=o.map(l=>({from:_(J(l,i.field,s)),to:i.end&&_(l[i.end])?H(_(l[i.end]),r(l)):void 0})).filter(l=>l.from!==void 0).map(l=>({from:l.from,to:l.to&&l.to>l.from?l.to:l.from})),k=`${s.slice(0,7)}-01`,m=H(`${H(k,31).slice(0,7)}-01`,-1),c=p.filter(l=>l.from<=m&&l.to>=k),w=p.map(l=>le(l.from,l.to)).sort((l,v)=>l-v),u=w[Math.floor(w.length/2)]??0;if(c.length>0&&u<=lt){let l=H(s,-((new Date(`${s}T00:00:00Z`).getUTCDay()+6)%7)),v=H(l,6),b=c.every(f=>f.from>=l&&f.to<=v);return{shape:"calendar",start:i.field,...i.end?{end:i.end}:{},...i.done?{done:i.done}:{},range:b?"week":"month"}}}return{shape:"table"}}function Ue(e,n){let o=pe(e,n);return o?{by:o.field,direction:o.due?"asc":"desc"}:void 0}function Ye(e,n,o={}){switch(n.shape){case"board":return{lens:"columns",kind:e,column:n.field};case"calendar":return{lens:"calendar",kind:e,start:n.start,...n.end?{end:n.end}:{},...n.done?{done:n.done}:{},range:n.range};case"table":return{lens:"blocks",kind:e,as:"row",...o.group?.by?{group:o.group.by}:{},...o.sort?{sort:{by:o.sort.by,...o.sort.direction==="desc"?{direction:"desc"}:{}}}:{}}}}var ft=60;function Je(e,n,o,s){let a=e.tryDefinition(n),i=o.slice(0,ft),r=new Map;i.forEach(w=>{let u=W(a,w);se(w,a,{glance:!0,said:[u]}).forEach((l,v)=>{if(l.long||l.files||l.app)return;let b=r.get(l.key);b?b.count++:r.set(l.key,{label:l.label,count:1,at:v})})});let p=Math.max(1,Math.ceil(i.length/3)),k=[...r.entries()].filter(([,w])=>w.count>=p).sort((w,u)=>w[1].at-u[1].at).slice(0,pt).map(([w,u])=>({about:"field",key:w,label:u.label})),m=new Map;for(let w of i){let u=new Set;for(let[l,v]of[["out",s.outEdges(w.id)],["in",s.inEdges(w.id)]])for(let b of v){let f=s.getNode(l==="out"?b.to:b.from);if(!f||f.id===w.id)continue;let x=`${b.kind}|${l}`;if(u.has(x))continue;u.add(x);let y=m.get(x);y?y.count++:m.set(x,{edge:b.kind,direction:l,far:f.kind,count:1})}}let c=[...m.entries()].sort((w,u)=>u[1].count-w[1].count).slice(0,ct).map(([w,u])=>{let l=xe(e,u.direction==="out"?n:u.far,u.edge,u.direction);return{about:"edge",key:w,label:l.charAt(0).toUpperCase()+l.slice(1),edge:u.edge,direction:u.direction}});return[...k,...c]}function Xe(e,n,o,s){if(o.about==="field"){let r=e.tryDefinition(n.kind);return{text:se(n,r,{excerpt:!0}).find(k=>k.key===o.key)?.value??""}}let i=(o.direction==="out"?s.outEdges(n.id):s.inEdges(n.id)).filter(r=>r.kind===o.edge).map(r=>s.getNode(o.direction==="out"?r.to:r.from)).filter(r=>r!==void 0).map(r=>W(e.tryDefinition(r.kind),r));return i.length===0?{text:""}:i.length===1?{text:i[0]}:{text:`${i[0]} +${i.length-1}`,title:i.join(", ")}}function et(e,n,o=()=>{}){let s=new Map;for(let a of e){let i=a.nodeIds.filter(p=>n.has(p));if(i.length===0&&!(a.subjectId!==void 0&&n.has(a.subjectId)))continue;let r=s.get(a.invariant)??{invariant:a.invariant,label:o(a.invariant)||a.label||a.message,violations:[],records:new Set};r.violations.push(a);for(let p of i)r.records.add(p);a.subjectId!==void 0&&n.has(a.subjectId)&&r.records.add(a.subjectId),s.set(a.invariant,r)}return[...s.values()].sort((a,i)=>i.violations.length-a.violations.length).map(a=>({invariant:a.invariant,label:a.label,violations:a.violations,records:[...a.records]}))}var tt=6;function nt(e,n,o,s){let a=pe(e,n);if(!a)return;let i=de(e,n),r=m=>{if(a.done!==void 0&&m[a.done]===!0)return!0;if(!i)return!1;let c=i.values.indexOf(String(m[i.field]));return c>=0&&i.tiers[c]==="done"},p=0,k=0;for(let m of o){let c=_(J(m,a.field,s));if(!c||r(m))continue;let w=le(s,c);a.due&&w<0?p++:w>=0&&w<=tt&&k++}if(!(p===0&&k===0))return{field:a.field,due:a.due,overdue:p,soon:k}}function H(e,n){return new Date(Date.parse(`${e.slice(0,10)}T00:00:00Z`)+n*864e5).toISOString().slice(0,10)}function ce(e,n,o){return n==="overdue"?[{key:e.field,value:`before:${o}`}]:[{key:e.field,value:`after:${H(o,-1)}`},{key:e.field,value:`before:${H(o,tt+1)}`}]}function it(e,n,o,s){let a=new Set,i=new Set;for(let r of e)if(!(r.at<=o))for(let p of r.primitives)p.op==="add-node"&&p.node?.kind===n?a.add(p.node.id):(p.op==="patch-node"||p.op==="splice-text")&&p.id!==void 0&&s(p.id)===n&&i.add(p.id);for(let r of a)i.delete(r);return{added:[...a].filter(r=>s(r)===n).length,changed:[...i].filter(r=>s(r)===n).length}}var t=ie(be(),1),ht=560;function mt(e,n){let[o,s]=(0,g.useState)(0);return(0,g.useEffect)(()=>{let a=e.current;if(!a||!n){s(0);return}let i=0,r=()=>{i=0;let c=a.getBoundingClientRect().bottom;s([...a.querySelectorAll('[data-testid="kind-stop-table"] tbody tr[data-graview-pick]')].filter(w=>w.getBoundingClientRect().top>c-24).length)},p=()=>{i||(i=requestAnimationFrame(r))};r(),a.addEventListener("scroll",p,{passive:!0});let k=typeof ResizeObserver>"u"?null:new ResizeObserver(p);k?.observe(a);let m=a.querySelector('[data-testid="kind-stop-body"]');return m&&k?.observe(m),()=>{a.removeEventListener("scroll",p),k?.disconnect(),i&&cancelAnimationFrame(i)}},[e,n]),o}function bt({narrow:e,at:n,children:o}){return e?(0,t.jsx)("div",{ref:n,className:"graview-kind-stop-scroll","data-testid":"kind-stop-scroll",children:o}):(0,t.jsx)(t.Fragment,{children:o})}function kt(e){let[n,o]=(0,g.useState)(!1);return(0,g.useLayoutEffect)(()=>{let s=e.current;if(!s)return;let a=()=>{let r=s.getBoundingClientRect().width;r>0&&o(r<ht)};if(a(),typeof ResizeObserver>"u")return;let i=new ResizeObserver(a);return i.observe(s),()=>i.disconnect()},[e]),n}var ot="as",yt=(e,n)=>`graview:kind-seen:${e}:${n}`;function xt(e){try{return localStorage.getItem(e)}catch{return null}}function St(e,n){try{localStorage.setItem(e,n)}catch{}}var Nt=(e,n)=>({...fe(me(e,!1),n),relation:null});function rn({kind:e,members:n,flagged:o=[],label:s,retired:a=0}){let{store:i,brand:r,principal:p,views:k,view:m}=K(),{go:c}=ee(),w=oe(),u=i.schema,l=u.tryDefinition(e),v=s??we(u,e),b=i.today()??ge(),f=n,x=(0,g.useId)(),y=(0,g.useMemo)(()=>Ze(u,e,f,b),[u,e,f,b]),N=m.within?.[ot]==="table"?{shape:"table"}:y,R=Fe(m),D=N.shape==="table"&&!R.sort?Ue(u,e):void 0,E=D?{...R,sort:D}:R,L=(0,g.useMemo)(()=>new Set(o),[o]),h=(0,g.useMemo)(()=>Me(f,E,{schema:u,graph:i.graph,flagged:L,today:b}),[f,E,u,i,L,b,w]),C=(0,g.useMemo)(()=>Ee(u,Re(u,e)),[u,e]),P=k.arrangement?.()?.lists?.[e]?.filters,q=M=>c(Ie(m,M)),j=(0,g.useMemo)(()=>({name:r?.name??"app",schema:u,...i.policy?{policy:i.policy}:{}}),[r,u,i]),U=JSON.stringify(Ye(e,N,E)),F=(0,g.useMemo)(()=>{let M=Le(JSON.parse(U),{app:j,sight:Te(j,p)});return De(M)?void 0:M},[U,j,p]),G=N.shape!=="table"&&F!==void 0,z=(0,g.useRef)(null),O=kt(z),[V,d]=(0,g.useState)(!1),A=(0,g.useId)(),I=(0,g.useMemo)(()=>$e(i,p),[i,p]),B=(f.length>1||a>0)&&!G?(0,t.jsx)(Be,{schema:u,graph:i.graph,kind:e,arrangement:E,onChange:q,offers:C,...P?{filters:P}:{},kept:{shown:h.nodes.length,of:f.length},testId:"kind-arrange",chips:{nodes:f,flagged:L,today:b},...a>0?{past:{count:a,widen:()=>c(Pe(m,!0))}}:{}}):null,T=!!E.query||(E.filter?.length??0)>0,Y=(0,g.useRef)(null),ne=mt(Y,O&&!G);return(0,t.jsxs)("section",{ref:z,"aria-labelledby":x,className:"graview-kind-stop","data-testid":"kind-stop","data-graview-kind-stop":e,"data-graview-shape":N.shape,"data-graview-narrow":O||void 0,children:[(0,t.jsx)("style",{children:Lt}),(0,t.jsxs)(bt,{narrow:O,at:Y,children:[(0,t.jsx)(At,{kind:e,plural:v,count:f.length,headingId:x,description:l?.description,...O?{tools:{open:V,id:A,toggle:()=>d(M=>!M),narrowed:T}}:{}}),O&&V?(0,t.jsxs)("div",{id:A,className:"graview-kind-stop-tools","data-testid":"kind-stop-tools",role:"group","aria-label":`Find, filter and arrange the ${v.toLowerCase()}`,children:[B,f.length>0?(0,t.jsx)(at,{derived:y,shape:N,draft:F,author:!1}):null,(0,t.jsx)(rt,{kind:e,plural:v})]}):null,(0,t.jsx)(Rt,{kind:e,plural:v,members:f,today:b,arrangement:E,onArrange:q,compact:O}),O&&T&&!V?(0,t.jsxs)("p",{className:"graview-kind-stop-narrowed","data-testid":"kind-stop-narrowed",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[$(h.nodes.length)," of ",$(f.length)," shown"]})," ",(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link",onClick:()=>q({}),children:"Show all"})]}):null,O?null:B,f.length>0&&!O?(0,t.jsx)(at,{derived:y,shape:N,draft:F,author:I}):null,(0,t.jsx)("div",{className:"graview-kind-stop-body","data-testid":"kind-stop-body",children:f.length===0?(0,t.jsx)("p",{className:"graview-kind-stop-empty","data-testid":"kind-stop-empty",children:"Nothing here yet."}):G?(0,t.jsx)(Dt,{draft:F,nodes:f}):h.nodes.length===0?(0,t.jsxs)("p",{className:"graview-kind-stop-empty","data-testid":"kind-stop-none-kept",children:["None of the ",$(f.length)," ",v.toLowerCase()," ",E.query?`says \u201C${E.query}\u201D`:"is kept by these filters","."," ",(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link",onClick:()=>q({}),children:"Show them all"})]}):(0,t.jsx)(Tt,{kind:e,nodes:h.nodes,groups:h.grouped?h.groups.map(M=>({key:M.key,label:M.label,nodes:M.nodes})):void 0,flagged:L,plural:v,arrangement:E})})]}),ne>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-below","data-testid":"kind-stop-below","data-graview-below":ne,onClick:()=>Y.current?.scrollBy({top:Math.round(Y.current.clientHeight*.8),behavior:"smooth"}),children:[ae(u,e,ne).replace(/^(\S+)\s/,"$1 more ")," below ",(0,t.jsx)("span",{"aria-hidden":"true",children:"\u2193"})]}):null]})}function rt({kind:e,plural:n}){let{setSelection:o,setMenuAt:s}=K();return(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-quiet","data-testid":"kind-stop-acts","aria-haspopup":"menu","aria-label":`What can be done with the ${n.toLowerCase()}`,onClick:a=>{let i=a.currentTarget.getBoundingClientRect();o([X(e)]),s({x:Math.round(i.left),y:Math.round(i.bottom+4),on:X(e)})},children:"Acts\u2026"})}function At({kind:e,plural:n,count:o,headingId:s,description:a,tools:i}){let{store:r}=K(),p=(0,g.useMemo)(()=>({about:[X(e)]}),[e]),{affordances:k}=qe(p),{apply:m,preview:c}=Ke(),w=(0,g.useMemo)(()=>{let S=N=>r.allMutations().find(R=>R.name===N.mutation)?.creates?.includes(e)??!1;return k.find(N=>!N.destructive&&!N.setsAside&&S(N))},[k,r,e]),[u,l]=(0,g.useState)(!1),[v,b]=(0,g.useState)(null),f=(0,g.useRef)(null),x=(0,g.useRef)(null);(0,g.useEffect)(()=>{let S=x.current;if(!S||S.closest('[data-testid="kind-stop"]')?.contains(document.activeElement))return;let N=!1;try{N=document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.matches(":focus-visible")}catch{N=!0}N?delete S.dataset.graviewQuietFocus:S.dataset.graviewQuietFocus="",S.focus({preventScroll:!0})},[e]);let y=(S,N)=>{try{c(S,N),m(S,N),b(null),l(!1),requestAnimationFrame(()=>f.current?.focus())}catch(R){return b(Se(r.schema,r.allMutations(),R)),[]}};return(0,t.jsxs)("header",{className:"graview-kind-stop-head",children:[(0,t.jsxs)("div",{className:"graview-kind-stop-title",children:[(0,t.jsx)("h2",{id:s,ref:x,tabIndex:-1,"data-testid":"kind-stop-title",onKeyDown:S=>delete S.currentTarget.dataset.graviewQuietFocus,onBlur:S=>delete S.currentTarget.dataset.graviewQuietFocus,children:n}),(0,t.jsxs)("p",{"data-testid":"kind-stop-count",children:[ae(r.schema,e,o),a?` \xB7 ${a}`:""]})]}),(0,t.jsxs)("div",{className:"graview-kind-stop-acts",children:[w?(0,t.jsx)("button",{ref:f,type:"button",className:"graview-kind-stop-primary","data-testid":"kind-stop-primary","data-affordance":w.id,"aria-expanded":w.open.length>0?u:void 0,onClick:()=>{b(null),w.open.length===0?y(w):l(S=>!S)},children:w.label}):null,i?(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-more-tools","data-testid":"kind-stop-tools-open","aria-expanded":i.open,"aria-controls":i.open?i.id:void 0,"aria-label":`Find, filter, arrange and act on the ${n.toLowerCase()}`,title:"Find, filter, arrange and acts","data-narrowed":i.narrowed||void 0,onClick:i.toggle,children:(0,t.jsx)("span",{"aria-hidden":"true",children:"\u22EF"})}):(0,t.jsx)(rt,{kind:e,plural:n})]}),u&&w?(0,t.jsx)("div",{className:"graview-kind-stop-ask","data-testid":"kind-stop-ask","aria-label":w.label,role:"group",children:(0,t.jsx)(Ce,{affordance:w,onApply:S=>y(w,S),onCancel:()=>{l(!1),f.current?.focus()}})}):null,v?(0,t.jsx)("p",{role:"alert",className:"graview-kind-stop-failed","data-testid":"kind-stop-failed",children:v}):null]})}var Ct=te.part((e,n)=>(0,t.jsx)(e.ProblemRows,{...n}),{what:"The problems",as:"li"});function Rt({kind:e,plural:n,members:o,today:s,arrangement:a,onArrange:i,compact:r=!1}){let{store:p,brand:k,setSelection:m}=K(),c=p.schema,w=re(),u=(0,g.useMemo)(()=>new Set(o.map(h=>h.id)),[o]),l=(0,g.useMemo)(()=>et(w,u,h=>p.allInvariants().find(C=>C.name===h)?.label),[w,u,p]),v=(0,g.useMemo)(()=>nt(c,e,o,s),[c,e,o,s]),b=yt(Oe(k,c),e),[f]=(0,g.useState)(()=>xt(b));(0,g.useEffect)(()=>()=>St(b,new Date().toISOString()),[b]);let x=oe(),y=(0,g.useMemo)(()=>f?it(p.log.all(),e,f,h=>p.graph.getNode(h)?.kind):null,[f,p,e,x]),[S,N]=(0,g.useState)(null),R=h=>i({...a,filter:[...(a.filter??[]).filter(C=>!h?.some(P=>P.key===C.key)),...h??[]]}),D=l.reduce((h,C)=>h+C.violations.length,0),E=[];if(v&&(v.overdue>0||v.soon>0)){let h=v.field;E.push((0,t.jsxs)("li",{"data-testid":"kind-stop-dates",children:[v.overdue>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-fact","data-tone":"warn",onClick:()=>R(ce(v,"overdue",s)),"aria-label":`${$(v.overdue)} overdue \u2014 show only these`,children:[$(v.overdue)," overdue"]}):null,v.soon>0?(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-fact",onClick:()=>R(ce(v,"soon",s)),"aria-label":`${$(v.soon)} in the next 7 days \u2014 show only these`,children:[$(v.soon)," ",v.due?"due":""," in the next 7 days"]}):null,(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[" by ",ve(c.tryDefinition(e),h).toLowerCase()]})]},"dates"))}let L=(a.filter??[]).some(h=>h.key==="is"&&h.value==="flagged");if(l.length>0&&r){let h=l.map(C=>C.label).join(", ");E.push((0,t.jsxs)("li",{className:"graview-kind-stop-problems-line","data-testid":"kind-stop-problems","data-graview-problems":D,children:[(0,t.jsxs)("span",{className:"graview-kind-stop-warn",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0 "}),D===1?"1 problem":`${$(D)} problems`]}),(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text graview-kind-stop-rules-said",title:h,children:[" ","\xB7 ",h]}),(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-only-problems","aria-pressed":L,"aria-label":L?`Show all the ${n.toLowerCase()}`:`Show only the ${n.toLowerCase()} with a problem`,onClick:()=>L?i({...a,filter:(a.filter??[]).filter(C=>!(C.key==="is"&&C.value==="flagged"))}):R([{key:"is",value:"flagged"}]),children:L?"Show all":"Show"})]},"problems"))}else l.length>0&&E.push((0,t.jsxs)("li",{"data-testid":"kind-stop-problems","data-graview-problems":D,children:[(0,t.jsxs)("span",{className:"graview-kind-stop-warn",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0 "}),D===1?"1 problem":`${$(D)} problems`]}),(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:[" in ",n.toLowerCase(),":"]}),(0,t.jsx)("ul",{className:"graview-kind-stop-rules",children:l.map(h=>(0,t.jsx)(Et,{group:h,open:S===h.invariant,onToggle:()=>N(C=>C===h.invariant?null:h.invariant),onPick:C=>m([C])},h.invariant))}),(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-only-problems",onClick:()=>R([{key:"is",value:"flagged"}]),children:["Show only the ",n.toLowerCase()," with a problem"]})]},"problems"));if(y&&(y.added>0||y.changed>0)){let h=[y.added>0?`${$(y.added)} added`:"",y.changed>0?`${$(y.changed)} changed`:""].filter(Boolean);E.push((0,t.jsxs)("li",{"data-testid":"kind-stop-since",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["Since you last looked (",ue(f.slice(0,10)),"):"]})," ",h.join(", ")]},"since"))}return E.length===0?null:(0,t.jsx)("ul",{className:"graview-kind-stop-going-on","aria-label":`What is going on in the ${n.toLowerCase()}`,"data-testid":"kind-stop-going-on",children:E})}function Et({group:e,open:n,onToggle:o,onPick:s}){let a=(0,g.useId)();return(0,t.jsxs)("li",{"data-graview-rule":e.invariant,children:[(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-rule","aria-expanded":n,"aria-controls":a,onClick:o,onPointerEnter:te.prefetch,onFocus:te.prefetch,children:[(0,t.jsx)("span",{"aria-hidden":"true",className:"graview-kind-stop-chevron","data-open":n||void 0,children:"\u203A"}),e.label," ",(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["\xB7 ",$(e.violations.length)]})]}),n?(0,t.jsx)("ol",{id:a,className:"graview-kind-stop-problem-rows","data-testid":"kind-stop-problem-rows",children:(0,t.jsx)(g.Suspense,{fallback:null,children:(0,t.jsx)(Ct,{violations:e.violations,pick:i=>{let r=i.subjectId??e.records[0]??i.nodeIds[0];r!==void 0&&s(r)}})})}):null]})}var $t={board:"Board",calendar:"Calendar",table:"Table"};function at({derived:e,shape:n,draft:o,author:s}){let{view:a}=K(),{go:i}=ee(),{keep:r}=je(Ge()),[p,k]=(0,g.useState)(!1),m=e.shape==="table"?[]:[e.shape,"table"];return!s&&m.length===0?null:(0,t.jsxs)("div",{className:"graview-kind-stop-shape","data-testid":"kind-stop-shape",children:[m.length>0?(0,t.jsx)("span",{role:"group","aria-label":"Show as",className:"graview-kind-stop-switch",children:m.map(c=>(0,t.jsx)("button",{type:"button","aria-pressed":n.shape===c,"data-testid":`kind-stop-as-${c}`,onClick:()=>i(he(a,ot,c===e.shape?null:c)),children:$t[c]},c))}):null,s?(0,t.jsx)("span",{className:"graview-kind-stop-quiet-text","data-testid":"kind-stop-derived",children:o?`${o.said.replace(/\.$/,"")}, derived from the declaration`:"Derived from the declaration"}):null,o&&s?(0,t.jsx)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-keep",disabled:p,title:`Keep \u201C${o.title}\u201D as a lens: a place of its own`,onClick:()=>{k(!0),r(o).finally(()=>k(!1))},children:"Keep as a lens"}):null]})}function Dt({draft:e,nodes:n}){let o=_e(e.drawn);return(0,t.jsx)("div",{className:"graview-kind-stop-lens","data-graview-draft":e.lens.name,children:(0,t.jsx)(ke,{mode:"scene",children:(0,t.jsx)(Ae,{kind:e.kind,view:e.title,children:(0,t.jsx)(o,{nodes:n,label:e.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})})}function Tt({kind:e,nodes:n,groups:o,flagged:s,plural:a,arrangement:i}){let{store:r,views:p,view:k,selection:m,setSelection:c,setMenuAt:w,principal:u}=K(),{go:l}=ee(),v=r.schema,b=r.graph,f=(0,g.useMemo)(()=>(o?o.flatMap(d=>d.nodes):n).map(d=>d.id),[n,o]),x=He(f),y=(0,g.useMemo)(()=>r.permittedMutations(u).some(d=>{let A=d.subject?.kinds;return A!==void 0&&(A==="*"||A.includes(e))}),[r,u,e]),S=(0,g.useRef)(null),N=d=>{x.choose(d),requestAnimationFrame(()=>{let A=x.list.current;((d[0]===void 0?null:A?.querySelector(`[data-graview-choose-box="${CSS.escape(d[0])}"]`))??A)?.focus({preventScroll:!0})})},R=x.chosen.length,D=p.lookup(e,{cardinality:"one",fidelity:"glyph"}),E=D!==void 0&&!ye(D)?D:void 0,L=d=>m.includes(d),h=re(),C=(0,g.useMemo)(()=>Je(v,e,n,b),[v,e,n,b]),[P,q]=(0,g.useState)(Z);(0,g.useEffect)(()=>q(Z),[i.query,i.filter?.length,i.sort?.by,i.group?.by]);let j=v.tryDefinition(e),U=d=>h.filter(A=>A.nodeIds.includes(d)||A.subjectId===d).map(A=>A.message),F=i.sort?.by,G=`${a}${i.sort?`, in order of ${C.find(d=>d.key===F)?.label.toLowerCase()??F}`:""}`,z=P,O=d=>{let A=W(j,d),I=s.has(d.id)?U(d.id):[];return(0,t.jsxs)("tr",{"data-graview-pick":d.id,tabIndex:-1,"data-graview-record":d.id,"data-flagged":I.length>0||void 0,...y?{"data-graview-choose":d.id}:{},children:[y?(0,t.jsx)("td",{className:"graview-choose-at",children:(0,t.jsx)("input",{...x.boxProps(d.id,A),onPointerEnter:Q,onFocus:Q})}):null,(0,t.jsxs)("th",{scope:"row",className:"graview-kind-stop-name",children:[E?(0,t.jsx)("div",{"data-graview-pick":d.id,className:"graview-kind-stop-own-row",children:(0,t.jsx)(E,{node:d,cardinality:"one",fidelity:"glyph",mode:"scene",selected:L(d.id),...I.length>0?{flagged:[d.id]}:{}})}):(0,t.jsx)("button",{type:"button","data-testid":"kind-stop-row-go",title:`Go to ${A}`,onClick:()=>l(Nt(k,d.id)),children:A}),I.length>0?(0,t.jsxs)("span",{className:"graview-kind-stop-flag",title:I.join(" \xB7 "),children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"\u26A0"}),(0,t.jsx)("span",{className:"graview-kind-stop-hidden",children:`Problem: ${I.join(". ")}`})]}):null]}),C.map(B=>{let T=Xe(v,d,B,b);return(0,t.jsx)("td",{"data-label":B.label,"data-short":T.text.length>0&&T.text.length<=14||void 0,"data-empty":T.text?void 0:"",...T.title?{title:T.title}:{},children:T.text?(0,t.jsx)("span",{children:T.text}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("b",{"aria-hidden":"true",children:"\u2014"}),(0,t.jsx)("i",{className:"graview-kind-stop-hidden",children:"none"})]})},B.key)}),(0,t.jsx)("td",{className:"graview-kind-stop-row-acts",children:(0,t.jsx)("button",{type:"button","data-testid":"kind-stop-row-acts","aria-haspopup":"menu","aria-label":`What can be done with ${A}`,onClick:B=>{let T=B.currentTarget.getBoundingClientRect();c([d.id]),w({x:Math.round(T.left),y:Math.round(T.bottom+4),on:d.id})},children:(0,t.jsx)("span",{"aria-hidden":"true",children:"\u22EF"})})})]},d.id)},V=d=>{let A=d.slice(0,Math.max(0,z));return z-=A.length,A.map(O)};return(0,t.jsxs)("div",{className:"graview-kind-stop-table-at",...y?{...x.listProps,ref:d=>{S.current=d,x.list.current=d},tabIndex:-1,role:"group","aria-label":R>0?`${a}, ${R} chosen`:a,"data-graview-choosable":""}:{},children:[y?(0,t.jsx)("style",{children:ze}):null,(0,t.jsxs)("table",{className:"graview-kind-stop-table","data-testid":"kind-stop-table",children:[(0,t.jsx)("caption",{className:"graview-kind-stop-hidden",children:G}),(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{children:[y?(0,t.jsx)("td",{className:"graview-choose-at graview-choose-all",children:(0,t.jsx)("input",{type:"checkbox",className:"graview-choose-box","data-testid":"kind-stop-choose-all","aria-label":`Choose all ${$(n.length)} ${a.toLowerCase()}`,checked:R>0&&R===n.length,ref:d=>{d&&(d.indeterminate=R>0&&R<n.length)},onPointerEnter:Q,onFocus:Q,onChange:()=>R===n.length?x.clear():x.choose(f)})}):null,(0,t.jsx)("th",{scope:"col","aria-sort":F==="label"?i.sort?.direction==="desc"?"descending":"ascending":void 0,children:"Name"}),C.map(d=>(0,t.jsx)("th",{scope:"col","aria-sort":d.about==="field"&&d.key===F?i.sort?.direction==="desc"?"descending":"ascending":void 0,children:d.label},d.key)),(0,t.jsx)("th",{scope:"col",children:(0,t.jsx)("span",{className:"graview-kind-stop-hidden",children:"Acts"})})]})}),o?o.map(d=>z<=0?null:(0,t.jsxs)("tbody",{"data-graview-group":d.key,children:[(0,t.jsx)("tr",{className:"graview-kind-stop-group",children:(0,t.jsxs)("th",{scope:"rowgroup",colSpan:C.length+(y?3:2),children:[d.label," ",(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text",children:["\xB7 ",$(d.nodes.length)]})]})}),V(d.nodes)]},d.key||"-")):(0,t.jsx)("tbody",{children:V(n)})]}),y?(0,t.jsx)(Ve,{store:r,chosen:x.chosen,principal:u,anchor:()=>S.current?.closest('[data-testid="kind-stop"]')??null,of:f.length,onChooseAll:()=>x.choose(f),onClear:x.clear,onActed:N}):null,n.length>P?(0,t.jsxs)("p",{className:"graview-kind-stop-more",children:[(0,t.jsxs)("span",{className:"graview-kind-stop-quiet-text","data-testid":"kind-stop-shown",children:[$(P)," of ",$(n.length)," shown"]})," ",(0,t.jsxs)("button",{type:"button",className:"graview-kind-stop-link","data-testid":"kind-stop-more",onClick:()=>q(d=>d+Z),children:["Show ",$(Math.min(Z,n.length-P))," more"]})]}):null]})}var Lt=`
|
|
2
2
|
.graview-kind-stop{container-type:inline-size;box-sizing:border-box;height:100%;min-height:0;display:flex;flex-direction:column;gap:10px;padding:16px 18px 12px;border:1px solid var(--graview-edge);border-radius:var(--graview-radius,12px);background:var(--graview-panel);color:var(--graview-ink);box-shadow:var(--graview-lift-low);overflow:auto;overscroll-behavior:contain}
|
|
3
3
|
[data-graview-map-panel] .graview-kind-stop{height:auto;padding:4px 6px 12px;border:0;box-shadow:none;background:none;overflow:visible}
|
|
4
4
|
.graview-kind-stop :focus-visible{outline:2px solid var(--graview-accent);outline-offset:2px}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as S,e as w,f as I}from"./chunk.
|
|
1
|
+
import{d as S,e as w,f as I}from"./chunk.AQ2PI6MR.js";import{d as k,g as h,h as b}from"./chunk.H3W5C3XQ.js";import"./chunk.6WB2TYK7.js";import"./chunk.BJUUSIQY.js";import"./chunk.N5Z34V7U.js";import{a as A}from"./chunk.YL2RBZFE.js";import"./chunk.LOKGUALC.js";import"./chunk.JGRSUTPJ.js";import"./chunk.XOZU4OFA.js";import"./chunk.EP5JS7ZH.js";import"./chunk.CE3NKAF7.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 M,W as f}from"./chunk.3VEZ5MOC.js";import"./chunk.SDO3U72B.js";import"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import{b as d}from"./chunk.AJZBJBMO.js";var n=d(M(),1);var r=d(f(),1),C="several";function T({chosen:c,acts:p,onAct:N}){let t=A(),u=(0,n.useMemo)(()=>[...c].sort(),[c]),i=u.join(`
|
|
2
2
|
`),o=(0,n.useMemo)(()=>({on:"selection",ids:u}),[i]),l=(0,n.useMemo)(()=>p.filter(e=>e.open.length===0&&!e.more&&!e.destructive),[p]),g=(0,n.useMemo)(()=>new Map(l.map(e=>[h(e.id),e])),[l]),v=S(t,o,C),[y,x]=(0,n.useState)(null);(0,n.useEffect)(()=>{if(v!==void 0)return;let e=!0;return w(t,o,{by:C,ask:()=>b(t.ai,{store:t.store,target:o,principal:t.principal,interaction:k(),places:t.places,selection:t.selection,...t.place?{place:t.place}:{},shared:l.map(a=>({id:a.id,label:a.label,mutation:a.mutation,args:a.args}))})}).then(a=>{e&&x({key:i,result:a})}),()=>{e=!1}},[i]);let s=v??(y?.key===i?y.result:void 0);if(s===void 0)return(0,r.jsx)("span",{role:"status",className:"graview-several-quiet","data-testid":"several-ai-thinking",style:{textDecoration:"none"},children:"AI: thinking\u2026"});let m=s.offers.filter(e=>e.type!=="act"||g.has(e.id));if(m.length===0)return null;let E=e=>{let a=g.get(e.id);if(a){t.desk.record({...s.interaction,outcome:"accepted",accepted:[e.id]}),N(a);return}I(t,s,e)};return(0,r.jsx)("div",{role:"group","aria-label":"Suggested by AI",className:"graview-several-acts","data-testid":"several-ai",children:m.map(e=>(0,r.jsxs)("button",{type:"button",className:"graview-several-act","data-testid":"several-ai-offer","data-ai-offer":e.id,"data-ai-offer-type":e.type,onClick:()=>E(e),children:[e.label,(0,r.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontWeight:400},children:" \xB7 suggested"})]},e.id))})}export{T as SeveralAi};
|
|
@@ -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 N,g as ae,h as ie}from"./chunk.FK722SHI.js";import{a as S,b as T,c as A,d as j}from"./chunk.U5P23GO7.js";import{a as R}from"./chunk.6EHHMWPP.js";import{a as ee,b as te,c as ne}from"./chunk.TXHYGFIZ.js";import{b as k}from"./chunk.WAB3L3ZI.js";import{a as Z}from"./chunk.QOS5T46W.js";import{a as C}from"./chunk.WSDJPXJD.js";import{m as Q}from"./chunk.U3HERHAI.js";import{G,J as _,La as K,R as H,S as z,W as X,ea as b,oa as J}from"./chunk.MODLZJD4.js";import{a as Y}from"./chunk.SDO3U72B.js";import{Ce as U,Jb as x,eb as q,fb as B,ga as V,la as P}from"./chunk.6HY6ZGEE.js";import{b as D}from"./chunk.AJZBJBMO.js";var u=D(G(),1);var oe=D(G(),1);function E(){let{ai:n,aiDesk:a}=b(),{entries:o}=_(a),i=n.off===!0;return(0,oe.useEffect)(()=>{i||a.load()},[a,i]),i?[]:o}var t=D(X(),1),se=K(Y(()=>(__graviewPreload(import.meta.url,["./chunk.IAEHUSQQ.js","./chunk.U5P23GO7.js","./chunk.PSQYDCVM.js","./chunk.U3HERHAI.js","./chunk.FBILPNGH.js","./chunk.MODLZJD4.js","./chunk.SDO3U72B.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.JMXXA4YG.js")))),he=se.part((n,a)=>(0,t.jsx)(n.InteractionRow,{...a}),{quiet:!0,as:"li"}),ye=se.part((n,a)=>(0,t.jsx)(n.ActivityFilter,{...a}),{quiet:!0,as:"div"}),fe=n=>n.undoes===void 0&&n.primitives.some(a=>a.op==="remove-node"||a.op==="patch-node"&&a.after[B]===!0&&a.before[B]!==!0);function ve(n){let a=[...new Set(n.ops.filter(o=>!x(o)&&fe(o)).map(o=>o.intent))].filter(o=>o!==n.intent);return a.length===0?n.intent:`${n.intent} \u2014 ${a.join("; ")}`}var re=(n,a,o=le(n,[a]))=>({intent:ve(a),author:a.author.kind,...a.author.id?{authorId:a.author.id}:{},by:a.author,...a.ops[0]?.via?{via:a.ops[0].via}:{},...a.lineage?{basis:Z(a.lineage)}:{},touched:[...new Set(a.ops.filter(i=>!x(i)).flatMap(i=>i.writes))],...me(a.ops.filter(i=>!x(i)).flatMap(i=>i.writes),o),batch:a.id,at:a.at,...a.lineage?.interaction?{interaction:a.lineage.interaction}:{},seq:a.ops.at(-1).seq+1,...a.ops.every(x)?{withheld:!0}:{}});function de(n=4){let{store:a,principal:o}=b(),i=z(a,o),s=i.log.length;return(0,u.useMemo)(()=>{let l=i.batches(),d=le(i,l);return te(l,r=>i.log.get(r)).reverse().slice(0,n).map(r=>{if("batch"in r){let p=re(i,r.batch,d);return r.typed?{...p,intent:ee(r.typed,i.schema,i.graph),batches:r.typed.batches.filter(v=>!v.undone).map(v=>v.id)}:p}let h=[...r.digest.batches].reverse().map(p=>re(i,p,d));return{intent:ne(r.digest),author:r.digest.author.kind,...r.digest.author.id?{authorId:r.digest.author.id}:{},by:r.digest.author,touched:[...new Set(h.flatMap(p=>p.touched))],batch:"",...h[0]?.at?{at:h[0].at}:{},seq:h[0]?.seq??0,digest:h}})},[i,s,n])}function le(n,a){let o=new Map;for(let i of a)for(let s of i.ops)if(!x(s))for(let l of s.primitives)(l.op==="add-node"||l.op==="remove-node")&&l.node&&o.set(l.node.id,P(n.schema.tryDefinition(l.node.kind),l.node));return o}function me(n,a){let o={};for(let i of n){let s=a.get(i);s!==void 0&&(o[i]=s)}return Object.keys(o).length>0?{named:o}:{}}function we({change:n}){let{store:a,principal:o,seats:i,people:s}=b();return(0,t.jsxs)("strong",{style:{fontWeight:600},children:[n.author==="human"&&n.by?.onBehalfOf===void 0&&(n.authorId===void 0||o.id===void 0||n.authorId===o.id)?"you":q(n.by??{kind:n.author,id:n.authorId},{graph:a.graph,schema:a.schema,seats:i,people:s}),C(n.via)?(0,t.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-muted)"},children:[", ",C(n.via)]}):null]})}function be({change:n,goes:a}){let{store:o}=b(),[i,s]=(0,u.useState)(!1),l=n.digest??[];return(0,t.jsxs)("li",{"data-testid":"activity-digest",style:{...S,gap:5},children:[(0,t.jsxs)("div",{"data-graview-activity-head":"",style:T,children:[(0,t.jsxs)("span",{"data-graview-activity-words":"",style:A,children:[(0,t.jsx)(we,{change:n})," ",(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:n.intent})]}),(0,t.jsx)("button",{type:"button","data-testid":"digest-toggle","aria-expanded":i,onClick:()=>s(d=>!d),style:{marginLeft:"auto",flex:"0 0 auto",display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem"},children:i?"Hide":"Show each"})]}),i?(0,t.jsx)("ol",{"data-testid":"digest-changes",style:{margin:0,padding:"0 0 0 10px",listStyle:"none",display:"grid",gap:6,borderLeft:"1px solid var(--graview-edge)"},children:l.map(d=>(0,t.jsxs)("li",{"data-testid":"digest-change",style:S,children:[(0,t.jsxs)("div",{"data-graview-activity-head":"",style:T,children:[(0,t.jsxs)("span",{"data-graview-activity-words":"",style:A,children:[(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:d.intent}),d.basis?(0,t.jsxs)("span",{"data-graview-lineage":"",style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",d.basis]}):null]}),d.withheld?null:(0,t.jsx)($,{batch:d.batch})]}),d.touched.length>0?(0,t.jsx)("div",{"data-touched":d.touched.join(" "),style:j,children:d.touched.slice(0,4).map(r=>(0,t.jsx)(R,{id:r,label:o.graph.has(r)?k(o,r):d.named?.[r]??k(o,r),go:a(r),testId:"activity-record"},r))}):null]},d.batch))}):null]})}function $({batch:n}){let{store:a,principal:o,noteSeat:i}=b(),s=z(a,o),l=H()?.open??!1,d=s.log.length,[r,h]=(0,u.useState)(null),p=(0,u.useMemo)(()=>s.canUndo(n),[s,n,d]),v=(0,u.useMemo)(()=>p.ok?s.mayUndo(n,o):{ok:!0},[s,n,d,o,p]);if(l||!p.ok&&p.ops.length===0||!v.ok)return null;let m=!p.ok,W=m?p.includeBatches:[];return(0,t.jsxs)("span",{style:{marginLeft:"auto",flex:"0 0 auto",display:"grid",justifyItems:"end",gap:2},children:[(0,t.jsx)("button",{type:"button","data-testid":"undo-turn",title:m?`${p.message} \u2014 undo those too`:"Take this back, keeping everything since",onClick:()=>{h(null);try{let y=typeof n=="string"?[n]:n,L=s.log.all().find(I=>y.includes(I.batch)&&I.author.kind==="agent");s.undo(m?[...y,...W]:typeof n=="string"?n:[...n],{author:o}),L&&i({type:"home",author:L.author})}catch(y){h(y instanceof Error?y.message:String(y))}},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem",...m?{borderColor:"var(--graview-warn)",color:"var(--graview-warn)"}:{}},children:m?`undo +${W.length}`:"undo"}),r?(0,t.jsx)("span",{"data-testid":"undo-refused",role:"alert",style:{fontSize:"0.75rem",lineHeight:1.4,color:"var(--graview-warn)",maxWidth:260,textAlign:"right"},children:r}):null]})}function ke({seq:n,intent:a}){let o=H();if(!o)return null;let i=o.past?.seq===n;return(0,t.jsx)("button",{type:"button","data-testid":"show-past","aria-label":`Show the app as it was after \u201C${a}\u201D`,title:"Show the app as it was here","aria-pressed":i,onPointerEnter:N,onFocus:N,onClick:()=>o.show(n),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minHeight:24,minWidth:24,padding:"1px 6px",fontSize:"0.75rem",flex:"0 0 auto"},children:(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[(0,t.jsx)("path",{d:"M2.5 8 a5.5 5.5 0 1 0 1.6-3.9",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M2 2.5 V5.5 H5",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("path",{d:"M8 5 V8 L10 9.25",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})})}function xe(){let n=()=>U(window.location.href);return(0,t.jsx)("a",{href:"#fresh","data-testid":"start-fresh",title:"Forget every edit made in this browser and return to the example",onClick:a=>{a.preventDefault(),window.location.assign(n())},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",textDecoration:"underline",textDecorationColor:"var(--graview-edge-bright)",textUnderlineOffset:3},children:"Start fresh"})}function Ee({calls:n,seat:a,remembers:o=!1,close:i,headed:s=!0}){let l=de(),{store:d,principal:r,seats:h,people:p}=b(),v=E(),[m,W]=(0,u.useState)("all"),[y,L]=(0,u.useState)(!1),I=e=>e!==void 0&&(e.id===r.id||e.onBehalfOf?.id===r.id)&&r.id!==void 0,pe=new Set(v.map(e=>e.id)),ge=l.filter(e=>!(e.interaction!==void 0&&pe.has(e.interaction))&&(!y||I(e.by))),ce=v.filter(e=>!y||I(e.by)).slice(0,4),O=[...m==="ai"?[]:ge.map(e=>({at:e.at??"",change:e})),...m==="changes"?[]:ce.map(e=>({at:e.at,entry:e}))].sort((e,f)=>e.at<f.at?1:e.at>f.at?-1:0),w=z(d,r),ue=J(),F=H(),M=e=>w.graph.has(e)?f=>{i(),F?.past&&F.show(null),ue.record(f)}:null;return(0,t.jsxs)(t.Fragment,{children:[s?(0,t.jsx)("h2",{style:{...Q,margin:0},children:"Activity"}):null,a!==void 0?(0,t.jsxs)("div",{"data-testid":"agent-seat-row",style:{display:"grid",gap:5,paddingBottom:n.length>0||O.length>0?9:0,...n.length>0||O.length>0?{borderBottom:"1px solid var(--graview-edge)"}:{}},children:[(0,t.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"The agent's seat"}),a]}):null,n.length>0?(0,t.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:7},children:n.slice(0,6).map((e,f)=>(0,t.jsxs)("li",{style:{...S,gap:2,fontSize:"0.8125rem"},children:[(0,t.jsxs)("div",{"data-graview-activity-head":"",style:T,children:[(0,t.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:999,flex:"0 0 auto",background:e.phase==="running"?"var(--graview-accent)":e.phase==="failed"?"var(--graview-warn)":"var(--graview-edge-bright)"}}),(0,t.jsxs)("span",{"data-graview-activity-words":"",style:{...A,color:"var(--graview-ink)"},children:[e.mutating?"changed":"read"," \xB7"," ",w.allMutations().find(g=>g.name===e.name)?.title??V(e.name)]})]}),!e.mutating&&e.reads&&e.reads.length>0?(0,t.jsxs)("div",{"data-testid":"activity-reads",style:{display:"flex",flexWrap:"wrap",gap:4,paddingLeft:12},children:[[...new Set(e.reads)].slice(0,3).map(g=>(0,t.jsx)(R,{id:g,label:k(w,g),go:M(g),testId:"activity-record"},g)),new Set(e.reads).size>3?(0,t.jsxs)("span",{style:{color:"var(--graview-ink-muted)"},children:["+",new Set(e.reads).size-3]}):null]}):Object.values(e.args).some(g=>typeof g=="string")?(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,paddingLeft:12},children:Object.entries(e.args).filter(g=>typeof g[1]=="string").slice(0,3).map(([g,c])=>(0,t.jsx)(R,{id:c,label:k(w,c),go:M(c),testId:"activity-record"},g))}):null,e.error?(0,t.jsx)("div",{style:{paddingLeft:12,color:"var(--graview-warn)"},children:e.error}):null]},`${e.at}:${f}`))}):null,v.length>0?(0,t.jsx)(u.Suspense,{fallback:null,children:(0,t.jsx)(ye,{shows:m,onShows:W,mine:y,onMine:L})}):null,O.length>0?(0,t.jsx)("ol",{"data-testid":"diff-log",style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6,fontSize:"0.8125rem"},children:O.map(({change:e,entry:f},g)=>f!==void 0?(0,t.jsx)(u.Suspense,{fallback:null,children:(0,t.jsx)(he,{entry:f,undo:c=>(0,t.jsx)($,{batch:c})})},`ai:${f.id}`):e.digest?(0,t.jsx)(be,{change:e,goes:M},`digest:${e.digest[0]?.batch??g}`):e.withheld?(0,t.jsx)("li",{"data-testid":"withheld-change",style:S,children:(0,t.jsx)("span",{"data-touched":"",style:{...A,color:"var(--graview-ink-muted)",fontStyle:"italic"},children:e.intent})},`change:${g}`):(0,t.jsxs)("li",{"data-batch":e.batch,style:S,children:[(0,t.jsxs)("div",{"data-graview-activity-head":"",style:T,children:[(0,t.jsxs)("span",{"data-graview-activity-words":"",style:A,children:[(0,t.jsxs)("strong",{style:{fontWeight:600},children:[e.author==="human"&&e.by?.onBehalfOf===void 0&&(e.authorId===void 0||r.id===void 0||e.authorId===r.id)?"you":q(e.by??{kind:e.author,id:e.authorId},{graph:w.graph,schema:w.schema,seats:h,people:p}),C(e.via)?(0,t.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-muted)"},children:[", ",C(e.via)]}):null]})," ",(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:e.intent}),e.basis?(0,t.jsxs)("span",{"data-graview-lineage":"",style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.basis]}):null]}),e.batch?(0,t.jsx)(ke,{seq:e.seq,intent:e.intent}):null,e.batch?(0,t.jsx)($,{batch:e.batches&&e.batches.length>0?e.batches.length===1?e.batches[0]:e.batches:e.batch}):null]}),(0,t.jsx)("div",{"data-touched":e.touched.join(" "),style:j,children:e.touched.slice(0,4).map(c=>(0,t.jsx)(R,{id:c,label:w.graph.has(c)?k(w,c):e.named?.[c]??k(w,c),go:M(c),testId:"activity-record"},c))})]},`change:${g}`))}):null,(0,t.jsx)(ie,{style:{paddingTop:8,borderTop:"1px solid var(--graview-edge)"}}),o?(0,t.jsxs)("div",{"data-testid":"remembered",style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:10,paddingTop:8,borderTop:"1px solid var(--graview-edge)",fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:[(0,t.jsx)("span",{children:"Remembered in this browser"}),(0,t.jsx)(xe,{})]}):null]})}function $e({calls:n,seat:a,remembers:o=!1}){let i=de(),s=E(),l=ae();return{has:!(a===void 0&&n.length===0&&i.length===0&&s.length===0&&!o&&l===0),recent:i.length,running:n.some(d=>d.phase==="running")}}export{E as a,he as b,$ as c,Ee as d,$e as e};
|
|
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 N,g as ae,h as ie}from"./chunk.IPGLITWA.js";import{a as S,b as T,c as A,d as j}from"./chunk.U5P23GO7.js";import{a as R}from"./chunk.DCLF4WWZ.js";import{a as Z,b as ee,c as te}from"./chunk.XDZDNZ7B.js";import{b as k}from"./chunk.E423JCOS.js";import{a as ne}from"./chunk.LOKGUALC.js";import{a as C}from"./chunk.TFJA4QV4.js";import{m as Q}from"./chunk.H3IGXHZR.js";import{G,J as _,La as K,R as H,S as z,W as X,ea as b,oa as J}from"./chunk.3VEZ5MOC.js";import{a as Y}from"./chunk.SDO3U72B.js";import{Ce as U,Jb as x,eb as q,fb as B,ga as V,la as P}from"./chunk.6AANHELP.js";import{b as D}from"./chunk.AJZBJBMO.js";var u=D(G(),1);var oe=D(G(),1);function E(){let{ai:n,aiDesk:a}=b(),{entries:o}=_(a),i=n.off===!0;return(0,oe.useEffect)(()=>{i||a.load()},[a,i]),i?[]:o}var t=D(X(),1),se=K(Y(()=>(__graviewPreload(import.meta.url,["./chunk.BPNW5KCP.js","./chunk.U5P23GO7.js","./chunk.YL2RBZFE.js","./chunk.H3IGXHZR.js","./chunk.7TDML5YU.js","./chunk.3VEZ5MOC.js","./chunk.SDO3U72B.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.SUG6LIOX.js")))),he=se.part((n,a)=>(0,t.jsx)(n.InteractionRow,{...a}),{quiet:!0,as:"li"}),ye=se.part((n,a)=>(0,t.jsx)(n.ActivityFilter,{...a}),{quiet:!0,as:"div"}),fe=n=>n.undoes===void 0&&n.primitives.some(a=>a.op==="remove-node"||a.op==="patch-node"&&a.after[B]===!0&&a.before[B]!==!0);function ve(n){let a=[...new Set(n.ops.filter(o=>!x(o)&&fe(o)).map(o=>o.intent))].filter(o=>o!==n.intent);return a.length===0?n.intent:`${n.intent} \u2014 ${a.join("; ")}`}var re=(n,a,o=le(n,[a]))=>({intent:ve(a),author:a.author.kind,...a.author.id?{authorId:a.author.id}:{},by:a.author,...a.ops[0]?.via?{via:a.ops[0].via}:{},...a.lineage?{basis:ne(a.lineage)}:{},touched:[...new Set(a.ops.filter(i=>!x(i)).flatMap(i=>i.writes))],...me(a.ops.filter(i=>!x(i)).flatMap(i=>i.writes),o),batch:a.id,at:a.at,...a.lineage?.interaction?{interaction:a.lineage.interaction}:{},seq:a.ops.at(-1).seq+1,...a.ops.every(x)?{withheld:!0}:{}});function de(n=4){let{store:a,principal:o}=b(),i=z(a,o),s=i.log.length;return(0,u.useMemo)(()=>{let l=i.batches(),d=le(i,l);return ee(l,r=>i.log.get(r)).reverse().slice(0,n).map(r=>{if("batch"in r){let p=re(i,r.batch,d);return r.typed?{...p,intent:Z(r.typed,i.schema,i.graph),batches:r.typed.batches.filter(v=>!v.undone).map(v=>v.id)}:p}let h=[...r.digest.batches].reverse().map(p=>re(i,p,d));return{intent:te(r.digest),author:r.digest.author.kind,...r.digest.author.id?{authorId:r.digest.author.id}:{},by:r.digest.author,touched:[...new Set(h.flatMap(p=>p.touched))],batch:"",...h[0]?.at?{at:h[0].at}:{},seq:h[0]?.seq??0,digest:h}})},[i,s,n])}function le(n,a){let o=new Map;for(let i of a)for(let s of i.ops)if(!x(s))for(let l of s.primitives)(l.op==="add-node"||l.op==="remove-node")&&l.node&&o.set(l.node.id,P(n.schema.tryDefinition(l.node.kind),l.node));return o}function me(n,a){let o={};for(let i of n){let s=a.get(i);s!==void 0&&(o[i]=s)}return Object.keys(o).length>0?{named:o}:{}}function we({change:n}){let{store:a,principal:o,seats:i,people:s}=b();return(0,t.jsxs)("strong",{style:{fontWeight:600},children:[n.author==="human"&&n.by?.onBehalfOf===void 0&&(n.authorId===void 0||o.id===void 0||n.authorId===o.id)?"you":q(n.by??{kind:n.author,id:n.authorId},{graph:a.graph,schema:a.schema,seats:i,people:s}),C(n.via)?(0,t.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-muted)"},children:[", ",C(n.via)]}):null]})}function be({change:n,goes:a}){let{store:o}=b(),[i,s]=(0,u.useState)(!1),l=n.digest??[];return(0,t.jsxs)("li",{"data-testid":"activity-digest",style:{...S,gap:5},children:[(0,t.jsxs)("div",{"data-graview-activity-head":"",style:T,children:[(0,t.jsxs)("span",{"data-graview-activity-words":"",style:A,children:[(0,t.jsx)(we,{change:n})," ",(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:n.intent})]}),(0,t.jsx)("button",{type:"button","data-testid":"digest-toggle","aria-expanded":i,onClick:()=>s(d=>!d),style:{marginLeft:"auto",flex:"0 0 auto",display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem"},children:i?"Hide":"Show each"})]}),i?(0,t.jsx)("ol",{"data-testid":"digest-changes",style:{margin:0,padding:"0 0 0 10px",listStyle:"none",display:"grid",gap:6,borderLeft:"1px solid var(--graview-edge)"},children:l.map(d=>(0,t.jsxs)("li",{"data-testid":"digest-change",style:S,children:[(0,t.jsxs)("div",{"data-graview-activity-head":"",style:T,children:[(0,t.jsxs)("span",{"data-graview-activity-words":"",style:A,children:[(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:d.intent}),d.basis?(0,t.jsxs)("span",{"data-graview-lineage":"",style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",d.basis]}):null]}),d.withheld?null:(0,t.jsx)($,{batch:d.batch})]}),d.touched.length>0?(0,t.jsx)("div",{"data-touched":d.touched.join(" "),style:j,children:d.touched.slice(0,4).map(r=>(0,t.jsx)(R,{id:r,label:o.graph.has(r)?k(o,r):d.named?.[r]??k(o,r),go:a(r),testId:"activity-record"},r))}):null]},d.batch))}):null]})}function $({batch:n}){let{store:a,principal:o,noteSeat:i}=b(),s=z(a,o),l=H()?.open??!1,d=s.log.length,[r,h]=(0,u.useState)(null),p=(0,u.useMemo)(()=>s.canUndo(n),[s,n,d]),v=(0,u.useMemo)(()=>p.ok?s.mayUndo(n,o):{ok:!0},[s,n,d,o,p]);if(l||!p.ok&&p.ops.length===0||!v.ok)return null;let m=!p.ok,W=m?p.includeBatches:[];return(0,t.jsxs)("span",{style:{marginLeft:"auto",flex:"0 0 auto",display:"grid",justifyItems:"end",gap:2},children:[(0,t.jsx)("button",{type:"button","data-testid":"undo-turn",title:m?`${p.message} \u2014 undo those too`:"Take this back, keeping everything since",onClick:()=>{h(null);try{let y=typeof n=="string"?[n]:n,L=s.log.all().find(I=>y.includes(I.batch)&&I.author.kind==="agent");s.undo(m?[...y,...W]:typeof n=="string"?n:[...n],{author:o}),L&&i({type:"home",author:L.author})}catch(y){h(y instanceof Error?y.message:String(y))}},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem",...m?{borderColor:"var(--graview-warn)",color:"var(--graview-warn)"}:{}},children:m?`undo +${W.length}`:"undo"}),r?(0,t.jsx)("span",{"data-testid":"undo-refused",role:"alert",style:{fontSize:"0.75rem",lineHeight:1.4,color:"var(--graview-warn)",maxWidth:260,textAlign:"right"},children:r}):null]})}function ke({seq:n,intent:a}){let o=H();if(!o)return null;let i=o.past?.seq===n;return(0,t.jsx)("button",{type:"button","data-testid":"show-past","aria-label":`Show the app as it was after \u201C${a}\u201D`,title:"Show the app as it was here","aria-pressed":i,onPointerEnter:N,onFocus:N,onClick:()=>o.show(n),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minHeight:24,minWidth:24,padding:"1px 6px",fontSize:"0.75rem",flex:"0 0 auto"},children:(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[(0,t.jsx)("path",{d:"M2.5 8 a5.5 5.5 0 1 0 1.6-3.9",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),(0,t.jsx)("path",{d:"M2 2.5 V5.5 H5",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("path",{d:"M8 5 V8 L10 9.25",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})})}function xe(){let n=()=>U(window.location.href);return(0,t.jsx)("a",{href:"#fresh","data-testid":"start-fresh",title:"Forget every edit made in this browser and return to the example",onClick:a=>{a.preventDefault(),window.location.assign(n())},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",textDecoration:"underline",textDecorationColor:"var(--graview-edge-bright)",textUnderlineOffset:3},children:"Start fresh"})}function Ee({calls:n,seat:a,remembers:o=!1,close:i,headed:s=!0}){let l=de(),{store:d,principal:r,seats:h,people:p}=b(),v=E(),[m,W]=(0,u.useState)("all"),[y,L]=(0,u.useState)(!1),I=e=>e!==void 0&&(e.id===r.id||e.onBehalfOf?.id===r.id)&&r.id!==void 0,pe=new Set(v.map(e=>e.id)),ge=l.filter(e=>!(e.interaction!==void 0&&pe.has(e.interaction))&&(!y||I(e.by))),ce=v.filter(e=>!y||I(e.by)).slice(0,4),O=[...m==="ai"?[]:ge.map(e=>({at:e.at??"",change:e})),...m==="changes"?[]:ce.map(e=>({at:e.at,entry:e}))].sort((e,f)=>e.at<f.at?1:e.at>f.at?-1:0),w=z(d,r),ue=J(),F=H(),M=e=>w.graph.has(e)?f=>{i(),F?.past&&F.show(null),ue.record(f)}:null;return(0,t.jsxs)(t.Fragment,{children:[s?(0,t.jsx)("h2",{style:{...Q,margin:0},children:"Activity"}):null,a!==void 0?(0,t.jsxs)("div",{"data-testid":"agent-seat-row",style:{display:"grid",gap:5,paddingBottom:n.length>0||O.length>0?9:0,...n.length>0||O.length>0?{borderBottom:"1px solid var(--graview-edge)"}:{}},children:[(0,t.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"The agent's seat"}),a]}):null,n.length>0?(0,t.jsx)("ol",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:7},children:n.slice(0,6).map((e,f)=>(0,t.jsxs)("li",{style:{...S,gap:2,fontSize:"0.8125rem"},children:[(0,t.jsxs)("div",{"data-graview-activity-head":"",style:T,children:[(0,t.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:999,flex:"0 0 auto",background:e.phase==="running"?"var(--graview-accent)":e.phase==="failed"?"var(--graview-warn)":"var(--graview-edge-bright)"}}),(0,t.jsxs)("span",{"data-graview-activity-words":"",style:{...A,color:"var(--graview-ink)"},children:[e.mutating?"changed":"read"," \xB7"," ",w.allMutations().find(g=>g.name===e.name)?.title??V(e.name)]})]}),!e.mutating&&e.reads&&e.reads.length>0?(0,t.jsxs)("div",{"data-testid":"activity-reads",style:{display:"flex",flexWrap:"wrap",gap:4,paddingLeft:12},children:[[...new Set(e.reads)].slice(0,3).map(g=>(0,t.jsx)(R,{id:g,label:k(w,g),go:M(g),testId:"activity-record"},g)),new Set(e.reads).size>3?(0,t.jsxs)("span",{style:{color:"var(--graview-ink-muted)"},children:["+",new Set(e.reads).size-3]}):null]}):Object.values(e.args).some(g=>typeof g=="string")?(0,t.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4,paddingLeft:12},children:Object.entries(e.args).filter(g=>typeof g[1]=="string").slice(0,3).map(([g,c])=>(0,t.jsx)(R,{id:c,label:k(w,c),go:M(c),testId:"activity-record"},g))}):null,e.error?(0,t.jsx)("div",{style:{paddingLeft:12,color:"var(--graview-warn)"},children:e.error}):null]},`${e.at}:${f}`))}):null,v.length>0?(0,t.jsx)(u.Suspense,{fallback:null,children:(0,t.jsx)(ye,{shows:m,onShows:W,mine:y,onMine:L})}):null,O.length>0?(0,t.jsx)("ol",{"data-testid":"diff-log",style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:6,fontSize:"0.8125rem"},children:O.map(({change:e,entry:f},g)=>f!==void 0?(0,t.jsx)(u.Suspense,{fallback:null,children:(0,t.jsx)(he,{entry:f,undo:c=>(0,t.jsx)($,{batch:c})})},`ai:${f.id}`):e.digest?(0,t.jsx)(be,{change:e,goes:M},`digest:${e.digest[0]?.batch??g}`):e.withheld?(0,t.jsx)("li",{"data-testid":"withheld-change",style:S,children:(0,t.jsx)("span",{"data-touched":"",style:{...A,color:"var(--graview-ink-muted)",fontStyle:"italic"},children:e.intent})},`change:${g}`):(0,t.jsxs)("li",{"data-batch":e.batch,style:S,children:[(0,t.jsxs)("div",{"data-graview-activity-head":"",style:T,children:[(0,t.jsxs)("span",{"data-graview-activity-words":"",style:A,children:[(0,t.jsxs)("strong",{style:{fontWeight:600},children:[e.author==="human"&&e.by?.onBehalfOf===void 0&&(e.authorId===void 0||r.id===void 0||e.authorId===r.id)?"you":q(e.by??{kind:e.author,id:e.authorId},{graph:w.graph,schema:w.schema,seats:h,people:p}),C(e.via)?(0,t.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-muted)"},children:[", ",C(e.via)]}):null]})," ",(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:e.intent}),e.basis?(0,t.jsxs)("span",{"data-graview-lineage":"",style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.basis]}):null]}),e.batch?(0,t.jsx)(ke,{seq:e.seq,intent:e.intent}):null,e.batch?(0,t.jsx)($,{batch:e.batches&&e.batches.length>0?e.batches.length===1?e.batches[0]:e.batches:e.batch}):null]}),(0,t.jsx)("div",{"data-touched":e.touched.join(" "),style:j,children:e.touched.slice(0,4).map(c=>(0,t.jsx)(R,{id:c,label:w.graph.has(c)?k(w,c):e.named?.[c]??k(w,c),go:M(c),testId:"activity-record"},c))})]},`change:${g}`))}):null,(0,t.jsx)(ie,{style:{paddingTop:8,borderTop:"1px solid var(--graview-edge)"}}),o?(0,t.jsxs)("div",{"data-testid":"remembered",style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",gap:10,paddingTop:8,borderTop:"1px solid var(--graview-edge)",fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:[(0,t.jsx)("span",{children:"Remembered in this browser"}),(0,t.jsx)(xe,{})]}):null]})}function $e({calls:n,seat:a,remembers:o=!1}){let i=de(),s=E(),l=ae();return{has:!(a===void 0&&n.length===0&&i.length===0&&s.length===0&&!o&&l===0),recent:i.length,running:n.some(d=>d.phase==="running")}}export{E as a,he as b,$ as c,Ee as d,$e as e};
|
|
@@ -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{t as P}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{t as P}from"./chunk.CFE3MHWZ.js";import{G as M,La as S,R as w,W as y,ea as m,fa as I,s as b,w as T,x as A}from"./chunk.3VEZ5MOC.js";import{a as p}from"./chunk.SDO3U72B.js";import{b as f}from"./chunk.AJZBJBMO.js";var C=f(M(),1),h=f(y(),1),x=S(p(()=>(__graviewPreload(import.meta.url,["./chunk.WV45KLXC.js","./chunk.H3IGXHZR.js","./chunk.7TDML5YU.js","./chunk.3VEZ5MOC.js","./chunk.SDO3U72B.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.5JKUT2OM.js")))),O=x.part((e,n)=>(0,h.jsx)(e.Timeline,{...n}),{what:"The timeline"}),q=()=>x.prefetch();function K({face:e}){return w()?.open?(0,h.jsx)(C.Suspense,{fallback:null,children:(0,h.jsx)(O,{face:e})}):null}var i=f(M(),1),u=f(y(),1),v=new WeakMap,D=e=>{let n=v.get(e);return n||v.set(e,n={ask:null,doors:[],listeners:new Set}),n},k=e=>{for(let n of e.listeners)n()};function g(e,n){let t=D(e);t.ask=n,k(t)}var N=S(p(()=>(__graviewPreload(import.meta.url,["./chunk.SS6KL5NT.js","./chunk.WV45KLXC.js","./chunk.2KCDLCB2.js","./chunk.UD7VLXPM.js","./chunk.3DEWQDP7.js","./chunk.H3IGXHZR.js","./chunk.7TDML5YU.js","./chunk.3VEZ5MOC.js","./chunk.SDO3U72B.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.F5GNNVSQ.js")))),B=N.part((e,n)=>{let t=e.NotifySheet;return(0,u.jsx)(t,{...n})},{what:"Notify me"}),W=N.part((e,n)=>{let t=e.NotifiedList;return(0,u.jsx)(t,{...n})},{quiet:!0}),E=(e,n)=>n===void 0&&(e.onBehalfOf??e).id!==void 0;function F(e,n,t){let c=d=>t.tryDefinition(d)?.noun??d.replace(/[-_]+/g," "),o=e.on!==void 0?e.on:e.about.length===1?e.about[0]:void 0;if(e.act!==void 0){let d=o!==void 0&&n(o)!==void 0?o:void 0;return{label:"Notify me when someone does this\u2026",choices:[{on:"act",act:e.act,...d!==void 0?{record:d}:{}},...d!==void 0?[{on:"act",act:e.act}]:[]]}}if(o===void 0)return null;let s=n(o);if(s!==void 0)return{label:"Notify me when this changes\u2026",choices:[{on:"changed",record:o},{on:"act",record:o},{on:"reaches",kind:s,condition:"",record:o}]};let r=b(o)!==null?[b(o)]:T(o)?A(o):[];if(r.length!==1||!t.kinds.includes(r[0]))return null;let l=r[0],a=c(l);return{label:`Notify me when ${/^[aeiou]/i.test(a)?"an":"a"} ${a} is added\u2026`,choices:[{on:"created",kind:l},{on:"changed",kind:l},{on:"reaches",kind:l,condition:""}]}}function L(){let{store:e,principal:n,subscriptions:t,signIn:c}=m(),o=E(n,c);return(0,i.useMemo)(()=>o?s=>{let r=F(s,a=>e.graph.getNode(a)?.kind,e.schema);return r?{id:"notify",items:[{id:"notify-me",label:r.label,run:()=>g(t,{choices:r.choices,returnTo:s.element??null})}],prepare:()=>N.prefetch()}:null}:null,[o,e,t])}var z=[];function U({children:e}){let n=L(),t=(0,i.useMemo)(()=>n?[n]:z,[n]);return(0,u.jsx)(P,{sections:t,children:e})}function V(){let{subscriptions:e}=m(),n=(0,i.useId)(),t=D(e);(0,i.useEffect)(()=>(t.doors.push(n),k(t),()=>{t.doors.splice(t.doors.indexOf(n),1),k(t)}),[t,n]);let c=(0,i.useMemo)(()=>r=>(t.listeners.add(r),()=>void t.listeners.delete(r)),[t]),o=(0,i.useSyncExternalStore)(c,()=>t.ask,()=>null),s=(0,i.useSyncExternalStore)(c,()=>t.doors[0]===n,()=>!1);return!o||!s?null:(0,u.jsx)(i.Suspense,{fallback:null,children:(0,u.jsx)(B,{ask:o,close:()=>g(e,null)})})}function X({choices:e,label:n="Notify me",style:t,className:c,testId:o="notify-me"}){let{principal:s,subscriptions:r,signIn:l}=m();return E(s,l)?(0,u.jsx)("button",{type:"button","data-testid":o,className:c,onClick:a=>g(r,{choices:e,returnTo:a.currentTarget}),style:t,children:n}):null}function G(){let e=I(),n=e?.subscriptions,t=e?(e.principal.onBehalfOf??e.principal).id:void 0,[c,o]=(0,i.useState)(0);return(0,i.useEffect)(()=>{if(t===void 0||!n)return;let s=!0,r=()=>void Promise.resolve(n.list(t)).then(a=>s&&o(a.length),()=>s&&o(0));r();let l=n.onChange?.(r);return()=>{s=!1,l?.()}},[n,t]),c}function Y({style:e}){return G()===0?null:(0,u.jsx)(i.Suspense,{fallback:null,children:(0,u.jsx)(W,{...e?{style:e}:{}})})}export{q as a,K as b,L as c,U as d,V as e,X as f,G as g,Y as h};
|
|
@@ -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{b as st}from"./chunk.CEVGND3Y.js";import{a as Ye}from"./chunk.CEQQIW7Z.js";import{a as B,b as He,c as G,d as q,e as ae,g as me,h as Se,i as Fe,j as X}from"./chunk.DQFHIJFN.js";import"./chunk.BFAFCVL4.js";import{a as Ke,b as Je,c as Xe,d as Qe}from"./chunk.32SHA3EY.js";import{h as Be}from"./chunk.GG47EIKO.js";import{a as Me,b as Le}from"./chunk.NYLKG25K.js";import{h as J,i as et,k as tt}from"./chunk.DTCAUPLC.js";import{e as Ze}from"./chunk.PDDIQ6PK.js";import{b as ye,c as We,f as Ge,g as qe}from"./chunk.3PBTN7RO.js";import{d as ze}from"./chunk.QDVGHI7R.js";import{f as _e,g as Ve}from"./chunk.6P6NGZ6D.js";import{a as ie,c as ne,d as he,e as Ue,h as le,j as ge}from"./chunk.M5FP4Y4Q.js";import{d as rt,k as nt}from"./chunk.RSMCTI2N.js";import"./chunk.FIFUMX5X.js";import{a as xe,b as je,c as De}from"./chunk.V7W5AQKL.js";import"./chunk.JXNVNFV4.js";import"./chunk.F4VB6Q2W.js";import{Mb as pe,Pb as fe,Qd as Pe,la as Ie,me as Ce,ne as Re}from"./chunk.6HY6ZGEE.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var It="http://www.w3.org/1999/xhtml",se=class{constructor(t){this.ownerDocument=t}parentNode=null;childNodes=[];get firstChild(){return this.childNodes[0]??null}get parentElement(){return this.parentNode instanceof F?this.parentNode:null}get textContent(){return this.childNodes.map(t=>t.textContent).join("")}insertBefore(t,n){t.parentNode&&t.parentNode.removeChild(t);let s=n?this.childNodes.indexOf(n):-1;return s<0?this.childNodes.push(t):this.childNodes.splice(s,0,t),t.parentNode=this,t}appendChild(t){return this.insertBefore(t,null)}removeChild(t){let n=this.childNodes.indexOf(t);return n>=0&&this.childNodes.splice(n,1),t.parentNode=null,t}},Q=class extends se{constructor(n,s){super(n);this.data=s}nodeType=3;get textContent(){return this.data}},$e=class extends se{nodeType=8;get textContent(){return""}},F=class extends se{constructor(n,s,a){super(n);this.namespaceURI=s;this.localName=a}nodeType=1;attributes=new Map;value="";checked=!1;selected=!1;setAttribute(n,s){this.attributes.set(n,String(s))}removeAttribute(n){this.attributes.delete(n)}getAttribute(n){return this.attributes.get(n)??null}hasAttribute(n){return this.attributes.has(n)}closest(n){for(let s=this;s;s=s.parentElement)if(s.localName===n)return s;return null}},Ae=class extends se{nodeType=9;constructor(){super(null)}createElementNS(t,n){return new F(this,t,n)}createElement(t){return new F(this,It,t)}createTextNode(t){return new Q(this,t)}createComment(t){return new $e(this)}};function ot(){let e=new Ae,t=e.createElement("div");return t.setAttribute("data-graview-view-root",""),e.appendChild(t),{document:e,root:t}}var de=function*(e){for(let t of e.childNodes)t instanceof F&&(yield t,yield*de(t))},be=(e,t,n)=>{for(let s=e;s&&s!==t;s=s.parentElement)if(n(s))return s},at=e=>{let t=["id","class","data-record","data-place","data-act","role","name"].flatMap(n=>e.getAttribute(n)===null?[]:[` ${n}="${e.getAttribute(n).slice(0,80)}"`]);return`<${e.localName}${t.join("")}>`},it=e=>e.childNodes.map(t=>t instanceof F?it(t):t.nodeType===3?t.textContent:"").join("");function Te(e,t,n){let s=n.typed??{},a=[],l=[...de(e)].filter(u=>u.getAttribute("data-act")!==null).map(u=>u.getAttribute("data-act"));for(let u of de(e)){let i=u.getAttribute("name");if(!i||!["input","select","textarea"].includes(u.localName))continue;let f=(u.getAttribute("type")??"text").toLowerCase(),m=Object.hasOwn(s,i);if(f==="radio"){let b=u.getAttribute("value")??"on";if(m?String(s[i])!==b:!u.checked)continue;a.push({name:i,value:b,typed:m,empty:!1,chosen:!0})}else if(u.localName==="select"){let b=[...de(u)].filter(T=>T.localName==="option"),o=b.find(T=>T.selected||T.getAttribute("selected")!==null)??b[0],N=m?String(s[i]):o?o.getAttribute("value")??it(o).trim():"";a.push({name:i,value:N,typed:m,empty:N===""&&!m,chosen:!0})}else if(f==="checkbox"){let b=m?s[i]===!0||s[i]==="true"||s[i]==="on":u.checked;a.push({name:i,value:b,typed:m,empty:!b&&!m})}else{let b=be(u,e,k=>k.getAttribute("data-record")!==null)?.getAttribute("data-record")??t,o=u.value===""&&u.getAttribute("data-prefill")===i&&b?tt(n.store,n.principal,n.manifest,n.shown,{record:b,field:i,acts:l}):void 0,N=o!==void 0?{record:b,field:i,value:o}:void 0,T=m?s[i]:o??u.value,y=(f==="number"||f==="range")&&T!==""&&Number.isFinite(Number(T))?Number(T):typeof T=="boolean"?String(T):T;a.push({name:i,value:y,typed:m||N!==void 0,empty:y===""&&!m&&!N,...N?{from:N}:{}})}}return a}function lt(e,t,n,s){let a=n.asked.slice(e.asked),l=n.went.slice(e.went),u=n.renders.length>e.renders,i=e.target!==void 0?t.elementOf(e.target):void 0,f=[...a.map(y=>`its code asked for "${y.name}"`),...l.map(y=>`its code asked to go to "${"record"in y?y.record:y.place}"`),...u?["it drew again"]:[]],m=f.length>0?` When the view heard the click, ${f.join(", ")}.`:"";if(!i)return{selector:e.selector,asked:a,went:l,redrew:u,says:`"${e.selector}" matches nothing the view drew: there is nothing there to press.`};let b=t.root,o={},N=[],T=ge(i,b,y=>le(y,[...de(y)].some(ie)));if(T){let y=T.getAttribute("data-filter"),k=T.getAttribute("data-section"),v=T.getAttribute("data-record"),$={...y?{where:me(y)}:{},...k?{section:k}:{}},c=v?{record:v,...$}:{place:T.getAttribute("data-place")??"",...$},h=X(c,{sees:r=>s.shown.has(r),places:s.places,lists:s.lists,schema:s.store.schema});if(h.ok){o.opens=h.arrival;let r=h.arrival,d="filter"in r&&r.filter?`, narrowed to ${r.filter}`:"";N.push(`It opens ${"record"in r?`the record "${r.record}"`:"place"in r?`the place "${r.place}"`:`the list of ${r.list}`}${d}${r.section?`, at "${r.section}"`:""}.`)}else{let r="place"in c?c.place:c.record,d=!("record"in c&&s.shown.has(c.record))&&!B(s.places,r)&&!s.lists.some(g=>g.slug===r||g.kind===r);o.lost=s.placesUnsure&&d?`${h.says}${q}`:h.says,N.push(`It lands in a link that goes nowhere: ${o.lost}`)}}let p=be(i,b,y=>y.getAttribute("data-act")!==null);if(p){let y=p.getAttribute("data-act"),k=ne(p);if(k)N.push(`It is bound to "${y}", and is never pressed: ${k}`);else if(he(p)){let v=be(p,b,d=>d.getAttribute("data-record")!==null)?.getAttribute("data-record")??void 0,$=be(p,b,d=>d.localName==="fieldset"||d.getAttribute("role")==="group")??b,c={as:y,...v!==void 0?{record:v}:{},fields:Te($,v,s)},h=J(s.store,s.manifest,s.shown,c);if(!h.ok)o.act={as:y,ok:!1,reason:h.reason,message:h.message};else try{let d=s.store.previewAll([{name:h.name,args:h.args}],{author:s.principal,via:`view:${s.manifest.name}`});o.act={as:y,ok:!0,name:h.name,args:h.args,intent:d.intent,changes:d.ops.length>0}}catch(d){o.act=d instanceof pe?{as:y,ok:!1,reason:"refused",message:d.refusal.message}:d instanceof fe?{as:y,ok:!1,reason:"failed",message:_e(d)}:{as:y,ok:!1,reason:"failed",message:"The act could not be applied."}}let r=o.act;N.push(r.ok?`It asks for "${r.name}" with ${JSON.stringify(r.args)}: ${r.changes?`\u201C${r.intent}\u201D, applied for this seat, were it pressed.`:"applied for this seat, it would change nothing."}`:`It asks for "${y}", which the host refuses (${r.reason}): ${r.message}`)}}return N.length===0&&N.push(`It is bound to no act and lands in no link: the host does nothing there${f.length>0?"":", and the view's code does nothing either"}.`),{selector:e.selector,element:at(i),...o,asked:a,went:l,redrew:u,says:`A press on ${at(i)}: ${N.join(" ")}${m}`}}var ce=function*(e){for(let t of e.childNodes)t instanceof F&&(yield t,yield*ce(t))},we=(e,t,n)=>{for(let s=e;s&&s!==t;s=s.parentElement)if(n(s))return s},pt=e=>e.childNodes.map(t=>t instanceof F?t.getAttribute("aria-hidden")==="true"?"":pt(t):t.nodeType===3?t.textContent:"").join(""),ft=e=>{let t=["id","class","data-record","data-place","data-act","data-file","href","role","name"].flatMap(n=>e.getAttribute(n)===null?[]:[` ${n}="${e.getAttribute(n).slice(0,80)}"`]);return`<${e.localName}${t.join("")}>`},P=e=>{let t=(e.getAttribute("aria-label")??pt(e)).replace(/\s+/g," ").trim()||e.getAttribute("title")||e.getAttribute("name")||"";return t?`\u201C${t.length>60?`${t.slice(0,59)}\u2026`:t}\u201D`:ft(e)},dt={number:"1",range:"1",date:"2026-01-15","datetime-local":"2026-01-15T09:00",time:"09:00",month:"2026-01",week:"2026-W03",email:"someone@example.com",url:"https://example.com",tel:"+1 555 0100",text:"A test",search:"A test",textarea:"A test"},ct=e=>e.localName==="textarea"?dt.textarea:dt[(e.getAttribute("type")??"text").toLowerCase()],ut=new Set(["input","textarea","select"]),Pt=e=>e.localName==="button"&&e.namespaceURI==="http://www.w3.org/1999/xhtml"||Ue(e)||["link","menuitem","menuitemcheckbox","menuitemradio","option"].includes(e.getAttribute("role")??"")||e.localName==="a"&&!e.hasAttribute("href")&&!e.hasAttribute("data-record")&&!e.hasAttribute("data-place")&&!e.hasAttribute("data-file"),Ct=e=>e.localName==="summary"||e.hasAttribute("data-lightbox")||e.hasAttribute("data-drop")||e.localName==="graview-video";async function mt(e){let{drawn:t,store:n,principal:s,manifest:a}=e,l=t.root,u=[...ce(l)],i=new Set(e.clicks),f=r=>we(r,l,d=>i.has(t.idOf(d)??""))!==void 0,m=new Set(u.flatMap(r=>r.getAttribute("id")?[r.getAttribute("id")]:[])),b=[],o=(r,d,g,w)=>b.push({control:P(r),element:ft(r),does:d,ok:g,says:w}),N=`view:${a.name}`,T=(r,d)=>{try{return{ok:!0,intent:n.previewAll([{name:r,args:d}],{author:s,via:N}).intent}}catch(g){return g instanceof pe?{ok:!1,message:`this seat may not: ${g.refusal.message}`,missing:!1}:g instanceof fe?{ok:!1,message:Ve(g),missing:g.issues.some(w=>/required|received undefined/i.test(w.message))}:{ok:!1,message:`the act threw: ${g instanceof Error?g.message.slice(0,200):String(g)}`,missing:!1}}},p=(r,d)=>{let g=we(r,l,O=>O.getAttribute("data-record")!==null)?.getAttribute("data-record")??void 0,w=we(r,l,O=>O.localName==="fieldset"||O.getAttribute("role")==="group")??l;return{as:r.getAttribute("data-act"),...g!==void 0?{record:g}:{},fields:Te(w,g,{store:n,principal:s,manifest:a,shown:e.shown,places:e.places,lists:e.lists,typed:d})}},y=(r,d)=>{let g=p(r,d),w=J(n,a,e.shown,g);if(!w.ok)return{ok:!1,message:w.message,missing:!1,press:g};let O=T(w.name,w.args);return O.ok?{ok:!0,intent:O.intent,args:w.args,press:g}:{...O,press:g}},k=(r,d)=>{let g=P(r),w=r.getAttribute("data-act"),O=we(r,l,x=>x.localName==="fieldset"||x.getAttribute("role")==="group")??l,Y=[...ce(O)].filter(x=>ut.has(x.localName)&&x.getAttribute("name")),E=y(r,{}),K=!1,H=Y.filter(x=>x.value===""&&!E.press.fields.find(M=>M.name===x.getAttribute("name"))?.from&&ct(x)!==void 0),A=Object.fromEntries(H.map(x=>[x.getAttribute("name"),ct(x)]));if(H.length>0){let x=y(r,A);x.ok?[E,K]=[x,!E.ok]:(E.ok||E.missing)&&(E=x)}if(!E.ok)return o(r,d,!1,`${g} is refused: ${E.message.replace(/\.$/,"")}.`);let D=n.allMutations().find(x=>x.name===J(n,a,e.shown,E.press).name)?.input?.shape??{},V=E.press.fields.filter(x=>x.from&&Object.hasOwn(D,x.name)&&et(D[x.name],void 0)).map(x=>x.name);if(V.length>0){let x={...K?A:{},...Object.fromEntries(V.map(j=>[j,""]))},M=y(r,x);if(!M.ok)return o(r,d,!1,`${g} is refused when ${V.map(j=>`\u201C${j}\u201D`).join(" and ")} ${V.length===1?"is":"are"} emptied: ${M.message.replace(/\.$/,"")}.`)}return o(r,d,!0,`${g} asks for \u201C${w}\u201D${K?" once its fields are filled":""}${E.intent?`: \u201C${E.intent}\u201D`:", which changes nothing as it is drawn"}.`)},v=0,$=e.maxRuns??24;for(let r of u){if(Ct(r))continue;if(r.hasAttribute("data-act")){let A=ne(r);if(ut.has(r.localName)&&r.hasAttribute("data-save")){let I=r.getAttribute("data-save");I!=="input"&&I!=="change"?o(r,"save",!1,`${P(r)} saves nothing: data-save is "input" or "change", not "${I}".`):k(r,"save")}else A?o(r,"act",!1,`${P(r)} is bound to \u201C${r.getAttribute("data-act")}\u201D and is never pressed: ${A}`):he(r)&&k(r,"act");continue}if(r.localName==="a"&&(r.getAttribute("href")??"").startsWith("#")){let A=r.getAttribute("href").slice(1);o(r,"jump",m.has(A),m.has(A)?`${P(r)} jumps to #${A}.`:`${P(r)} jumps to #${A}, and the view drew no element with that id.`);continue}if(r.hasAttribute("data-file")){let A=r.getAttribute("data-file")??"",I=r.getAttribute("data-field")??"",D=e.shown.has(A)?n.seenBy(s).graph.getNode(A):void 0,V=D&&I?ze(D[I]):[],x=Number(r.getAttribute("data-index")??"0"),M=V[Number.isInteger(x)&&x>=0?x:0];r.localName!=="a"?o(r,"file",!1,`${P(r)} is a file link on a <${r.localName}>: a file link is an <a data-file>.`):D?M?o(r,"file",!0,`${P(r)} ${r.hasAttribute("data-download")?"downloads":"opens"} \u201C${M.name??"the file"}\u201D.`):o(r,"file",!1,`${P(r)} links to the file in "${I||"(no data-field)"}" of "${A}", which holds none.`):o(r,"file",!1,`${P(r)} links to a file of "${A}", which is no record this view was shown.`);continue}if(le(r,[...ce(r)].some(ie))){let A=r.getAttribute("data-filter"),I=r.getAttribute("data-section"),D=r.getAttribute("data-record"),V={...A?{where:me(A)}:{},...I?{section:I}:{}},x=D?{record:D,...V}:{place:r.getAttribute("data-place")??"",...V},M=X(x,{sees:j=>e.shown.has(j),places:e.places,lists:e.lists,schema:n.schema});if(M.ok){let j=M.arrival;o(r,"link",!0,`${P(r)} opens ${"record"in j?`the record "${j.record}"`:"place"in j?`the place "${j.place}"`:`the list of ${j.list}`}.`)}else{let j="place"in x?x.place:x.record,oe="place"in x&&!B(e.places,j)&&!e.lists.some(re=>re.slug===j||re.kind===j);e.placesUnsure&&oe?o(r,"link",!0,`${P(r)} may go nowhere: ${M.says}${q}`):o(r,"link",!1,`${P(r)} goes nowhere: ${M.says}`)}continue}let d=t.idOf(r),g=i.has(d??"");if(!Pt(r)&&!g||!g&&ge(r,l,A=>le(A,[...ce(A)].some(ie))))continue;if(!f(r)){o(r,"nothing",!1,`${P(r)} does nothing: it is bound to no act (data-act), goes nowhere (data-record, data-place), and the view hears no click on it.`);continue}if(d===void 0)continue;if(v>=$){o(r,"code",!0,`${P(r)} was not pressed: the check presses ${$} controls the view's code hears, and this is past them.`);continue}v+=1;let w=await e.rerun(d);if(!w.ok){o(r,"code",!1,w.reason==="error"?`${P(r)} throws when pressed: ${w.detail.replace(/^It threw: /,"")}`:`${P(r)}, pressed, stopped the view (${w.reason}): ${w.detail}`);continue}let O=w.transcript.pressed;if(!O||O.target===void 0){o(r,"code",!1,`${P(r)} could not be pressed in a run of its own: it was not drawn there the same way.`);continue}let Y=w.transcript.asked.slice(O.asked),E=w.transcript.went.slice(O.went),K=w.transcript.renders.length>O.renders,H=[];for(let A of Y){let I=Ze(n,a,A.name,A.args??{},{shown:e.shown,file:()=>{},dropped:()=>{}});if(!I.ok)H.push(`it asks for \u201C${A.name}\u201D from its code, which is refused: ${I.message}${I.reason==="press-only"?` Bind the button to it instead: data-act="${A.name}".`:""}`);else{let D=T(I.name,I.args);D.ok||H.push(`it asks for \u201C${A.name}\u201D, which is refused: ${D.message}`)}}for(let A of E){let I=X(A,{sees:D=>e.shown.has(D),places:e.places,lists:e.lists,schema:n.schema});I.ok||H.push(`it asks to go nowhere: ${I.says}`)}H.length>0?o(r,"code",!1,`${P(r)}, pressed: ${H.join("; ")}`):Y.length===0&&E.length===0&&!K?o(r,"code",!1,`${P(r)} does nothing when pressed: the view hears the click, and asks for no act, goes nowhere and draws nothing new.`):o(r,"code",!0,`${P(r)}, pressed, ${[...Y.length>0?[`asks for ${Y.map(A=>`\u201C${A.name}\u201D`).join(", ")}`]:[],...E.length>0?["goes where it says"]:[],...K?["draws again"]:[]].join(" and ")}.`)}let c=b.filter(r=>!r.ok),h=[`Presses: ${b.length} control${b.length===1?"":"s"} pressed, ${c.length===0?"every one does what it says":`${c.length} ${c.length===1?"fails":"fail"}`}.`];for(let r of b)h.push(` ${r.ok?"ok ":"FAILS"} ${r.says}`);return{ok:c.length===0,controls:b,problems:c,text:`${h.join(`
|
|
1
|
+
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{c as st}from"./chunk.EGVM24ND.js";import{a as Ye}from"./chunk.CEQQIW7Z.js";import{a as B,b as He,c as G,d as q,e as ae,g as me,h as Se,i as Fe,j as X}from"./chunk.CGBOPPNL.js";import"./chunk.LMTG5NPG.js";import{a as Ke,b as Je,c as Xe,d as Qe}from"./chunk.32SHA3EY.js";import{h as Be}from"./chunk.GG47EIKO.js";import{a as Me,b as Le}from"./chunk.NYLKG25K.js";import{h as J,i as et,k as tt}from"./chunk.PLIV3IQK.js";import{e as Ze}from"./chunk.MK5RPEB2.js";import{b as ye,c as We,f as Ge,g as qe}from"./chunk.TOUSIUJF.js";import{d as ze}from"./chunk.QDVGHI7R.js";import{f as _e,g as Ve}from"./chunk.KUCBNMIY.js";import{a as ie,c as ne,d as he,e as Ue,h as le,j as ge}from"./chunk.M5FP4Y4Q.js";import{d as rt,k as nt}from"./chunk.RSMCTI2N.js";import"./chunk.BHJRT57H.js";import{a as xe,b as je,c as De}from"./chunk.CNN32262.js";import"./chunk.EGSOHTZZ.js";import"./chunk.HWFJQ42Y.js";import{Mb as pe,Pb as fe,Qd as Pe,la as Ie,me as Ce,ne as Re}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var It="http://www.w3.org/1999/xhtml",se=class{constructor(t){this.ownerDocument=t}parentNode=null;childNodes=[];get firstChild(){return this.childNodes[0]??null}get parentElement(){return this.parentNode instanceof F?this.parentNode:null}get textContent(){return this.childNodes.map(t=>t.textContent).join("")}insertBefore(t,n){t.parentNode&&t.parentNode.removeChild(t);let s=n?this.childNodes.indexOf(n):-1;return s<0?this.childNodes.push(t):this.childNodes.splice(s,0,t),t.parentNode=this,t}appendChild(t){return this.insertBefore(t,null)}removeChild(t){let n=this.childNodes.indexOf(t);return n>=0&&this.childNodes.splice(n,1),t.parentNode=null,t}},Q=class extends se{constructor(n,s){super(n);this.data=s}nodeType=3;get textContent(){return this.data}},$e=class extends se{nodeType=8;get textContent(){return""}},F=class extends se{constructor(n,s,a){super(n);this.namespaceURI=s;this.localName=a}nodeType=1;attributes=new Map;value="";checked=!1;selected=!1;setAttribute(n,s){this.attributes.set(n,String(s))}removeAttribute(n){this.attributes.delete(n)}getAttribute(n){return this.attributes.get(n)??null}hasAttribute(n){return this.attributes.has(n)}closest(n){for(let s=this;s;s=s.parentElement)if(s.localName===n)return s;return null}},Ae=class extends se{nodeType=9;constructor(){super(null)}createElementNS(t,n){return new F(this,t,n)}createElement(t){return new F(this,It,t)}createTextNode(t){return new Q(this,t)}createComment(t){return new $e(this)}};function ot(){let e=new Ae,t=e.createElement("div");return t.setAttribute("data-graview-view-root",""),e.appendChild(t),{document:e,root:t}}var de=function*(e){for(let t of e.childNodes)t instanceof F&&(yield t,yield*de(t))},be=(e,t,n)=>{for(let s=e;s&&s!==t;s=s.parentElement)if(n(s))return s},at=e=>{let t=["id","class","data-record","data-place","data-act","role","name"].flatMap(n=>e.getAttribute(n)===null?[]:[` ${n}="${e.getAttribute(n).slice(0,80)}"`]);return`<${e.localName}${t.join("")}>`},it=e=>e.childNodes.map(t=>t instanceof F?it(t):t.nodeType===3?t.textContent:"").join("");function Te(e,t,n){let s=n.typed??{},a=[],l=[...de(e)].filter(u=>u.getAttribute("data-act")!==null).map(u=>u.getAttribute("data-act"));for(let u of de(e)){let i=u.getAttribute("name");if(!i||!["input","select","textarea"].includes(u.localName))continue;let f=(u.getAttribute("type")??"text").toLowerCase(),m=Object.hasOwn(s,i);if(f==="radio"){let b=u.getAttribute("value")??"on";if(m?String(s[i])!==b:!u.checked)continue;a.push({name:i,value:b,typed:m,empty:!1,chosen:!0})}else if(u.localName==="select"){let b=[...de(u)].filter(T=>T.localName==="option"),o=b.find(T=>T.selected||T.getAttribute("selected")!==null)??b[0],N=m?String(s[i]):o?o.getAttribute("value")??it(o).trim():"";a.push({name:i,value:N,typed:m,empty:N===""&&!m,chosen:!0})}else if(f==="checkbox"){let b=m?s[i]===!0||s[i]==="true"||s[i]==="on":u.checked;a.push({name:i,value:b,typed:m,empty:!b&&!m})}else{let b=be(u,e,k=>k.getAttribute("data-record")!==null)?.getAttribute("data-record")??t,o=u.value===""&&u.getAttribute("data-prefill")===i&&b?tt(n.store,n.principal,n.manifest,n.shown,{record:b,field:i,acts:l}):void 0,N=o!==void 0?{record:b,field:i,value:o}:void 0,T=m?s[i]:o??u.value,y=(f==="number"||f==="range")&&T!==""&&Number.isFinite(Number(T))?Number(T):typeof T=="boolean"?String(T):T;a.push({name:i,value:y,typed:m||N!==void 0,empty:y===""&&!m&&!N,...N?{from:N}:{}})}}return a}function lt(e,t,n,s){let a=n.asked.slice(e.asked),l=n.went.slice(e.went),u=n.renders.length>e.renders,i=e.target!==void 0?t.elementOf(e.target):void 0,f=[...a.map(y=>`its code asked for "${y.name}"`),...l.map(y=>`its code asked to go to "${"record"in y?y.record:y.place}"`),...u?["it drew again"]:[]],m=f.length>0?` When the view heard the click, ${f.join(", ")}.`:"";if(!i)return{selector:e.selector,asked:a,went:l,redrew:u,says:`"${e.selector}" matches nothing the view drew: there is nothing there to press.`};let b=t.root,o={},N=[],T=ge(i,b,y=>le(y,[...de(y)].some(ie)));if(T){let y=T.getAttribute("data-filter"),k=T.getAttribute("data-section"),v=T.getAttribute("data-record"),$={...y?{where:me(y)}:{},...k?{section:k}:{}},c=v?{record:v,...$}:{place:T.getAttribute("data-place")??"",...$},h=X(c,{sees:r=>s.shown.has(r),places:s.places,lists:s.lists,schema:s.store.schema});if(h.ok){o.opens=h.arrival;let r=h.arrival,d="filter"in r&&r.filter?`, narrowed to ${r.filter}`:"";N.push(`It opens ${"record"in r?`the record "${r.record}"`:"place"in r?`the place "${r.place}"`:`the list of ${r.list}`}${d}${r.section?`, at "${r.section}"`:""}.`)}else{let r="place"in c?c.place:c.record,d=!("record"in c&&s.shown.has(c.record))&&!B(s.places,r)&&!s.lists.some(g=>g.slug===r||g.kind===r);o.lost=s.placesUnsure&&d?`${h.says}${q}`:h.says,N.push(`It lands in a link that goes nowhere: ${o.lost}`)}}let p=be(i,b,y=>y.getAttribute("data-act")!==null);if(p){let y=p.getAttribute("data-act"),k=ne(p);if(k)N.push(`It is bound to "${y}", and is never pressed: ${k}`);else if(he(p)){let v=be(p,b,d=>d.getAttribute("data-record")!==null)?.getAttribute("data-record")??void 0,$=be(p,b,d=>d.localName==="fieldset"||d.getAttribute("role")==="group")??b,c={as:y,...v!==void 0?{record:v}:{},fields:Te($,v,s)},h=J(s.store,s.manifest,s.shown,c);if(!h.ok)o.act={as:y,ok:!1,reason:h.reason,message:h.message};else try{let d=s.store.previewAll([{name:h.name,args:h.args}],{author:s.principal,via:`view:${s.manifest.name}`});o.act={as:y,ok:!0,name:h.name,args:h.args,intent:d.intent,changes:d.ops.length>0}}catch(d){o.act=d instanceof pe?{as:y,ok:!1,reason:"refused",message:d.refusal.message}:d instanceof fe?{as:y,ok:!1,reason:"failed",message:_e(d)}:{as:y,ok:!1,reason:"failed",message:"The act could not be applied."}}let r=o.act;N.push(r.ok?`It asks for "${r.name}" with ${JSON.stringify(r.args)}: ${r.changes?`\u201C${r.intent}\u201D, applied for this seat, were it pressed.`:"applied for this seat, it would change nothing."}`:`It asks for "${y}", which the host refuses (${r.reason}): ${r.message}`)}}return N.length===0&&N.push(`It is bound to no act and lands in no link: the host does nothing there${f.length>0?"":", and the view's code does nothing either"}.`),{selector:e.selector,element:at(i),...o,asked:a,went:l,redrew:u,says:`A press on ${at(i)}: ${N.join(" ")}${m}`}}var ce=function*(e){for(let t of e.childNodes)t instanceof F&&(yield t,yield*ce(t))},we=(e,t,n)=>{for(let s=e;s&&s!==t;s=s.parentElement)if(n(s))return s},pt=e=>e.childNodes.map(t=>t instanceof F?t.getAttribute("aria-hidden")==="true"?"":pt(t):t.nodeType===3?t.textContent:"").join(""),ft=e=>{let t=["id","class","data-record","data-place","data-act","data-file","href","role","name"].flatMap(n=>e.getAttribute(n)===null?[]:[` ${n}="${e.getAttribute(n).slice(0,80)}"`]);return`<${e.localName}${t.join("")}>`},P=e=>{let t=(e.getAttribute("aria-label")??pt(e)).replace(/\s+/g," ").trim()||e.getAttribute("title")||e.getAttribute("name")||"";return t?`\u201C${t.length>60?`${t.slice(0,59)}\u2026`:t}\u201D`:ft(e)},dt={number:"1",range:"1",date:"2026-01-15","datetime-local":"2026-01-15T09:00",time:"09:00",month:"2026-01",week:"2026-W03",email:"someone@example.com",url:"https://example.com",tel:"+1 555 0100",text:"A test",search:"A test",textarea:"A test"},ct=e=>e.localName==="textarea"?dt.textarea:dt[(e.getAttribute("type")??"text").toLowerCase()],ut=new Set(["input","textarea","select"]),Pt=e=>e.localName==="button"&&e.namespaceURI==="http://www.w3.org/1999/xhtml"||Ue(e)||["link","menuitem","menuitemcheckbox","menuitemradio","option"].includes(e.getAttribute("role")??"")||e.localName==="a"&&!e.hasAttribute("href")&&!e.hasAttribute("data-record")&&!e.hasAttribute("data-place")&&!e.hasAttribute("data-file"),Ct=e=>e.localName==="summary"||e.hasAttribute("data-lightbox")||e.hasAttribute("data-drop")||e.localName==="graview-video";async function mt(e){let{drawn:t,store:n,principal:s,manifest:a}=e,l=t.root,u=[...ce(l)],i=new Set(e.clicks),f=r=>we(r,l,d=>i.has(t.idOf(d)??""))!==void 0,m=new Set(u.flatMap(r=>r.getAttribute("id")?[r.getAttribute("id")]:[])),b=[],o=(r,d,g,w)=>b.push({control:P(r),element:ft(r),does:d,ok:g,says:w}),N=`view:${a.name}`,T=(r,d)=>{try{return{ok:!0,intent:n.previewAll([{name:r,args:d}],{author:s,via:N}).intent}}catch(g){return g instanceof pe?{ok:!1,message:`this seat may not: ${g.refusal.message}`,missing:!1}:g instanceof fe?{ok:!1,message:Ve(g),missing:g.issues.some(w=>/required|received undefined/i.test(w.message))}:{ok:!1,message:`the act threw: ${g instanceof Error?g.message.slice(0,200):String(g)}`,missing:!1}}},p=(r,d)=>{let g=we(r,l,O=>O.getAttribute("data-record")!==null)?.getAttribute("data-record")??void 0,w=we(r,l,O=>O.localName==="fieldset"||O.getAttribute("role")==="group")??l;return{as:r.getAttribute("data-act"),...g!==void 0?{record:g}:{},fields:Te(w,g,{store:n,principal:s,manifest:a,shown:e.shown,places:e.places,lists:e.lists,typed:d})}},y=(r,d)=>{let g=p(r,d),w=J(n,a,e.shown,g);if(!w.ok)return{ok:!1,message:w.message,missing:!1,press:g};let O=T(w.name,w.args);return O.ok?{ok:!0,intent:O.intent,args:w.args,press:g}:{...O,press:g}},k=(r,d)=>{let g=P(r),w=r.getAttribute("data-act"),O=we(r,l,x=>x.localName==="fieldset"||x.getAttribute("role")==="group")??l,Y=[...ce(O)].filter(x=>ut.has(x.localName)&&x.getAttribute("name")),E=y(r,{}),K=!1,H=Y.filter(x=>x.value===""&&!E.press.fields.find(M=>M.name===x.getAttribute("name"))?.from&&ct(x)!==void 0),A=Object.fromEntries(H.map(x=>[x.getAttribute("name"),ct(x)]));if(H.length>0){let x=y(r,A);x.ok?[E,K]=[x,!E.ok]:(E.ok||E.missing)&&(E=x)}if(!E.ok)return o(r,d,!1,`${g} is refused: ${E.message.replace(/\.$/,"")}.`);let D=n.allMutations().find(x=>x.name===J(n,a,e.shown,E.press).name)?.input?.shape??{},V=E.press.fields.filter(x=>x.from&&Object.hasOwn(D,x.name)&&et(D[x.name],void 0)).map(x=>x.name);if(V.length>0){let x={...K?A:{},...Object.fromEntries(V.map(j=>[j,""]))},M=y(r,x);if(!M.ok)return o(r,d,!1,`${g} is refused when ${V.map(j=>`\u201C${j}\u201D`).join(" and ")} ${V.length===1?"is":"are"} emptied: ${M.message.replace(/\.$/,"")}.`)}return o(r,d,!0,`${g} asks for \u201C${w}\u201D${K?" once its fields are filled":""}${E.intent?`: \u201C${E.intent}\u201D`:", which changes nothing as it is drawn"}.`)},v=0,$=e.maxRuns??24;for(let r of u){if(Ct(r))continue;if(r.hasAttribute("data-act")){let A=ne(r);if(ut.has(r.localName)&&r.hasAttribute("data-save")){let I=r.getAttribute("data-save");I!=="input"&&I!=="change"?o(r,"save",!1,`${P(r)} saves nothing: data-save is "input" or "change", not "${I}".`):k(r,"save")}else A?o(r,"act",!1,`${P(r)} is bound to \u201C${r.getAttribute("data-act")}\u201D and is never pressed: ${A}`):he(r)&&k(r,"act");continue}if(r.localName==="a"&&(r.getAttribute("href")??"").startsWith("#")){let A=r.getAttribute("href").slice(1);o(r,"jump",m.has(A),m.has(A)?`${P(r)} jumps to #${A}.`:`${P(r)} jumps to #${A}, and the view drew no element with that id.`);continue}if(r.hasAttribute("data-file")){let A=r.getAttribute("data-file")??"",I=r.getAttribute("data-field")??"",D=e.shown.has(A)?n.seenBy(s).graph.getNode(A):void 0,V=D&&I?ze(D[I]):[],x=Number(r.getAttribute("data-index")??"0"),M=V[Number.isInteger(x)&&x>=0?x:0];r.localName!=="a"?o(r,"file",!1,`${P(r)} is a file link on a <${r.localName}>: a file link is an <a data-file>.`):D?M?o(r,"file",!0,`${P(r)} ${r.hasAttribute("data-download")?"downloads":"opens"} \u201C${M.name??"the file"}\u201D.`):o(r,"file",!1,`${P(r)} links to the file in "${I||"(no data-field)"}" of "${A}", which holds none.`):o(r,"file",!1,`${P(r)} links to a file of "${A}", which is no record this view was shown.`);continue}if(le(r,[...ce(r)].some(ie))){let A=r.getAttribute("data-filter"),I=r.getAttribute("data-section"),D=r.getAttribute("data-record"),V={...A?{where:me(A)}:{},...I?{section:I}:{}},x=D?{record:D,...V}:{place:r.getAttribute("data-place")??"",...V},M=X(x,{sees:j=>e.shown.has(j),places:e.places,lists:e.lists,schema:n.schema});if(M.ok){let j=M.arrival;o(r,"link",!0,`${P(r)} opens ${"record"in j?`the record "${j.record}"`:"place"in j?`the place "${j.place}"`:`the list of ${j.list}`}.`)}else{let j="place"in x?x.place:x.record,oe="place"in x&&!B(e.places,j)&&!e.lists.some(re=>re.slug===j||re.kind===j);e.placesUnsure&&oe?o(r,"link",!0,`${P(r)} may go nowhere: ${M.says}${q}`):o(r,"link",!1,`${P(r)} goes nowhere: ${M.says}`)}continue}let d=t.idOf(r),g=i.has(d??"");if(!Pt(r)&&!g||!g&&ge(r,l,A=>le(A,[...ce(A)].some(ie))))continue;if(!f(r)){o(r,"nothing",!1,`${P(r)} does nothing: it is bound to no act (data-act), goes nowhere (data-record, data-place), and the view hears no click on it.`);continue}if(d===void 0)continue;if(v>=$){o(r,"code",!0,`${P(r)} was not pressed: the check presses ${$} controls the view's code hears, and this is past them.`);continue}v+=1;let w=await e.rerun(d);if(!w.ok){o(r,"code",!1,w.reason==="error"?`${P(r)} throws when pressed: ${w.detail.replace(/^It threw: /,"")}`:`${P(r)}, pressed, stopped the view (${w.reason}): ${w.detail}`);continue}let O=w.transcript.pressed;if(!O||O.target===void 0){o(r,"code",!1,`${P(r)} could not be pressed in a run of its own: it was not drawn there the same way.`);continue}let Y=w.transcript.asked.slice(O.asked),E=w.transcript.went.slice(O.went),K=w.transcript.renders.length>O.renders,H=[];for(let A of Y){let I=Ze(n,a,A.name,A.args??{},{shown:e.shown,file:()=>{},dropped:()=>{}});if(!I.ok)H.push(`it asks for \u201C${A.name}\u201D from its code, which is refused: ${I.message}${I.reason==="press-only"?` Bind the button to it instead: data-act="${A.name}".`:""}`);else{let D=T(I.name,I.args);D.ok||H.push(`it asks for \u201C${A.name}\u201D, which is refused: ${D.message}`)}}for(let A of E){let I=X(A,{sees:D=>e.shown.has(D),places:e.places,lists:e.lists,schema:n.schema});I.ok||H.push(`it asks to go nowhere: ${I.says}`)}H.length>0?o(r,"code",!1,`${P(r)}, pressed: ${H.join("; ")}`):Y.length===0&&E.length===0&&!K?o(r,"code",!1,`${P(r)} does nothing when pressed: the view hears the click, and asks for no act, goes nowhere and draws nothing new.`):o(r,"code",!0,`${P(r)}, pressed, ${[...Y.length>0?[`asks for ${Y.map(A=>`\u201C${A.name}\u201D`).join(", ")}`]:[],...E.length>0?["goes where it says"]:[],...K?["draws again"]:[]].join(" and ")}.`)}let c=b.filter(r=>!r.ok),h=[`Presses: ${b.length} control${b.length===1?"":"s"} pressed, ${c.length===0?"every one does what it says":`${c.length} ${c.length===1?"fails":"fail"}`}.`];for(let r of b)h.push(` ${r.ok?"ok ":"FAILS"} ${r.says}`);return{ok:c.length===0,controls:b,problems:c,text:`${h.join(`
|
|
2
2
|
`)}
|
|
3
3
|
`}}var Rt=e=>`
|
|
4
4
|
;(function () {
|
|
@@ -18,5 +18,5 @@ ${i}`:f||i;return{root:s,refused:u,size:l.size,over:a,css:m,elementOf:b=>l.eleme
|
|
|
18
18
|
"use strict";
|
|
19
19
|
${e}
|
|
20
20
|
});
|
|
21
|
-
`}var Bt={scheme:"light",accent:"#2f7d8c",ground:"#f6f8f9",panel:"#ffffff",ink:"#14212b",inkMuted:"#4f6470",edge:"rgba(20, 33, 43, 0.14)",fontBody:"system-ui, sans-serif",fontDisplay:"system-ui, sans-serif",fontMono:"ui-monospace, monospace",radius:"12px"},z=(e,t,n)=>({ok:!1,reason:e,detail:t,...n?{transcript:n}:{}}),te=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),zt=["manifest","source","refused","error","silent","nodes","flood","slow","act","isolate"];function Wt(e){if(!te(e))return;let{renders:t,sheets:n,asked:s,went:a,ms:l,logs:u,messages:i,gestures:f,pressed:m,clicks:b}=e;if(!(!Array.isArray(t)||!t.every(Array.isArray)||!Array.isArray(s)||!Array.isArray(a)||!Array.isArray(u))&&!(typeof l!="number"||typeof i!="number"||n!==void 0&&!(Array.isArray(n)&&n.every(o=>typeof o=="string"))))return{renders:t,...Array.isArray(n)?{sheets:n}:{},asked:s.filter(te).map(o=>({name:String(o.name),args:o.args})),went:a.filter(te).flatMap(o=>{let N=typeof o.section=="string"?{section:o.section}:{},T=o.where!==void 0?{where:o.where}:{};return typeof o.record=="string"?[{record:o.record,...T,...N}]:typeof o.place=="string"?[{place:o.place,...T,...N}]:[]}),ms:l,logs:u.map(String).slice(0,50),messages:i,...Array.isArray(b)?{clicks:b.filter(o=>typeof o=="string").slice(0,2e3)}:{},...Array.isArray(f)?{gestures:f.filter(te).slice(0,32).map(o=>({event:String(o.event),selector:String(o.selector)}))}:{},...te(m)&&typeof m.selector=="string"&&[m.asked,m.went,m.renders].every(o=>typeof o=="number")?{pressed:{selector:m.selector,...typeof m.target=="string"?{target:m.target}:{},asked:m.asked,went:m.went,renders:m.renders}}:{}}}function Gt(e,t){let n=t.gestures??[];return n.length>0&&e.gestures!==!0?[{at:"gestures",says:`It listens for ${n.map(a=>`${a.event} on "${a.selector}"`).join(", ")}, and its manifest does not say "gestures": true: the host forwards no wheel, drag or pinch, and the page scrolls under it. Say "gestures": true in the manifest.`}]:n.length===0&&e.gestures===!0?[{at:"gestures",says:'Its manifest says "gestures": true, and it listens for no wheel, drag or pinch: graview.on("wheel" | "drag" | "pinch", selector, \u2026) is where the host sends one.'}]:[]}var qt=e=>e.kind==="system"?"the system":(e.roles??[]).length>0?(e.roles??[]).join(", "):e.kind,Zt=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");async function Yt(e,t){let n=f=>typeof f=="object"&&f!==null&&!(typeof f.kind=="string"&&f.kind.length>0),s=f=>{let{as:m,slug:b}=f;return typeof m=="string"&&m.length>0?m:typeof b=="string"&&b.length>0?b:void 0},a=e.filter(f=>n(f)&&![void 0,Ce,Re].includes(s(f)));if(a.length===0)return e;let l=t.app?je(t.app,{views:t.views}):De(t.schema,t.views.flatMap(f=>xe(f)??[])),u=f=>l.find(m=>m.slug===s(f)&&m.kind!==null),i=a.filter(f=>!u(f)).map(f=>`"${s(f)}"`);if(i.length>0){let f=i.length===1?"that slug":"those slugs",m=t.app?`the app declares no place by ${f}`:`no kind's list or view the run holds is at ${f}, and the app, which would say its lenses, was not handed (\`app\`)`;throw new TypeError(`runWorkerViewHeadless was handed the place${i.length===1?"":"s"} ${i.join(", ")} without ${i.length===1?"its kind":"their kinds"}, and ${m}: hand each place's \`kind\` as \`placesOf(app)\` lists it, or the app.`)}return e.map(f=>{if(!a.includes(f))return f;let m=u(f);return{...f,kind:m.kind,...m.over?{over:m.over}:{}}})}async function Oe(e){if(typeof e.run!="function")throw new TypeError("runWorkerViewHeadless runs a view only in an isolate the host supplies (`run`); it never runs one in the host's own context.");let{manifest:t,source:n,store:s,principal:a}=e,l={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,pushMs:e.limits?.pushMs??1e3,runMs:e.limits?.runMs??5e3},u=We(t,s);if(u.length>0)return z("manifest",u.join(" "));if(typeof n!="string")return z("source","A view's source is text.");if(new TextEncoder().encode(n).length>l.maxSourceBytes)return z("source",`Its code is longer than the ${l.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`);let i=Ye(n);if(i.length>0)return z("source",i.join(" "));let f=[...e.views??[],t].flatMap(S=>xe(S)??[]).map(S=>({as:S.as,title:S.title,kind:S.kind})),m=new Set([...s.kindsKeptFrom(a),...s.modules.disabledKinds]),b=await Yt(e.places??[],{schema:s.schema,...e.app?{app:e.app}:{},views:[...e.views??[],t]}),o=Fe(s.schema,[...b,...f],{kept:m}),N=e.views===void 0,T=Ge(s,t)?(await (__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"))).computedOn(s.schema):void 0,p=qe(s,a,{manifest:t,...e.input?{input:e.input}:{},theme:e.theme??Bt,places:He(o),...T?{computed:T}:{}}),y=t.pictures?nt(p,{view:`"${t.title??t.name}"`,pictures:t.pictures,standIn:rt,limits:{...e.limits?.pictureBytes!==void 0?{pictureBytes:e.limits.pictureBytes}:{},...e.limits?.picturesBytes!==void 0?{picturesBytes:e.limits.picturesBytes}:{}}}):{props:p,left:[]},k=y.props,v={props:k,acts:ye(t).map(S=>S.as??S.act),...t.accepts?{accepts:t.accepts.map(({kind:S,field:U})=>({kind:S,field:U}))}:{},places:o.map(S=>({as:S.as,title:S.title})),...N?{placesUnsure:!0}:{},...e.images?{imageOrigins:[...e.images.origins]}:{},...e.links?{linkOrigins:[...e.links.origins]}:{},...e.asset?{assets:!0}:{},...e.origin?{origin:e.origin}:{},lists:Se(s.schema,new Set([...s.kindsKeptFrom(a),...s.modules.disabledKinds])).flatMap(S=>[S.slug,S.kind]),limits:{maxNodes:l.maxNodes,messages:l.messages,pushMs:l.pushMs},...e.press!==void 0?{press:{selector:typeof e.press=="string"?e.press:e.press.selector}}:{}},$=async S=>{let U,W;try{let Z=e.run({script:Vt(n),entry:xt,input:JSON.stringify(S),timeoutMs:l.runMs}),Et=new Promise((tr,Ot)=>{W=setTimeout(()=>Ot(Object.assign(new Error("past runMs"),{reason:"slow"})),l.runMs+1e3)});U=await Promise.race([Z,Et])}catch(Z){return te(Z)&&Z.reason==="slow"?z("slow",`It ran longer than the ${l.runMs.toLocaleString("en-US")} ms a headless run may take.`):z("isolate",`The isolate could not run it: ${Z instanceof Error?Z.message:String(Z)}`)}finally{W!==void 0&&clearTimeout(W)}let L;try{L=JSON.parse(String(U))}catch{return z("isolate","The isolate answered with something that is not an outcome.")}if(!te(L))return z("isolate","The isolate answered with something that is not an outcome.");let Ne=Wt(L.transcript);if(L.ok!==!0){let Z=zt.includes(L.reason)?L.reason:"isolate";return z(Z,typeof L.detail=="string"?L.detail.slice(0,2e3):"It failed, and the isolate did not say why.",Ne)}return Ne?{ok:!0,transcript:Ne}:z("isolate","The isolate answered without what the view sent.")},c=await $(v);if(!c.ok)return c;let h=c.transcript,r=e.press!==void 0?h.pressed:void 0,d=Nt(r?{...h,renders:h.renders.slice(0,r.renders)}:h,v,e.brand?.views?.css?{theme:e.brand.views.css}:{});if(!d.ok)return z(d.reason,d.detail,h);let g=new Set([...k.node?[k.node.id]:[],...(k.nodes??[]).map(S=>S.id)]),w=Se(s.schema,new Set([...s.kindsKeptFrom(a),...s.modules.disabledKinds])),O=[];for(let S of h.went){if(!("where"in S)&&!("section"in S))continue;let U=X(S,{sees:L=>g.has(L),places:o,lists:w,schema:s.schema}),W="place"in S?B(v.places,S.place)!==void 0||(v.lists??[]).includes(S.place):!0;!U.ok&&W&&O.push({at:"navigate",says:U.says})}let Y=typeof e.press=="object"&&e.press.typed?{typed:e.press.typed}:{},E=r?lt(r,d.drawn,h,{store:s,principal:a,manifest:t,shown:g,places:o,lists:w,...N?{placesUnsure:!0}:{},...Y}):void 0,K=E&&(!E.element||E.lost)?[{at:`press "${E.selector}"`,says:E.lost??E.says}]:[],H;if(e.presses){let S=d.drawn;H=await(typeof e.presses=="function"?e.presses:e.presses.check)({store:s,principal:a,manifest:t,shown:g,places:o,lists:w,...N?{placesUnsure:!0}:{},drawn:S,clicks:h.clicks??[],...typeof e.presses=="object"&&e.presses.maxRuns!==void 0?{maxRuns:e.presses.maxRuns}:{},rerun:async W=>{let L=await $({...v,press:{selector:`[data-graview-check="${W}"]`,target:W}});return L.ok?L:{ok:!1,reason:L.reason,detail:L.detail}}})}let A=t.title??t.name,I=k.today?st(n,{today:k.today,title:t.attach==="home"?"Home":A,...k.locale?{locale:k.locale}:{}}):[],D=[...y.left.map(S=>({at:"pictures",says:S})),...d.problems,...O,...Gt(t,h),...K,...(H?.problems??[]).map(S=>({at:`press ${S.control}`,says:S.says})),...I.map(({at:S,says:U})=>({at:S,says:U}))],V=t.title?Zt(t.title):t.name,x=t.attach==="home"?null:t.attach,M={place:{slug:t.attach==="home"?"home":V,title:A,kind:x,address:t.attach==="home"?"/":`/places/${encodeURIComponent(V)}`},seat:qt(a),width:e.width??1440,variant:(e.width??1440)<640?"phone":"wide",drawnBy:`view:${t.name}`,parts:d.parts,...d.videos.length>0?{videos:d.videos}:{},problems:D},{placeText:j}=await (__graviewPreload(import.meta.url,["./chunk.YNEHJWJV.js","./chunk.V7W5AQKL.js","./chunk.GME63ZHI.js","./chunk.I2737CPF.js","./chunk.NJRLJEJY.js","./chunk.CVPMSPCH.js","./chunk.OTV5XTBB.js","./chunk.KBPJ7X7W.js","./chunk.OEIWIZCP.js","./chunk.FFOD5B4B.js","./chunk.Z7Y3R3YR.js","./chunk.YXEO3Y65.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.FBJAQPZ6.js")),oe,re;if(e.audit===!0){let{auditView:S}=await (__graviewPreload(import.meta.url,["./chunk.JO2X52D4.js","./chunk.M5FP4Y4Q.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.LINSO5PN.js")),U=(h.clicks??[]).flatMap(W=>d.drawn.elementOf(W)??[]);oe=S(d.drawn.root,{host:"pending",clicked:U}),e.drawing===!0&&(re={root:d.drawn.root,clicked:U})}return{ok:!0,description:{...M,text:j(M)},props:k,transcript:h,css:d.drawn.css,...E?{pressed:E}:{},...oe?{audit:oe}:{},...re?{drawing:re}:{},...H?{presses:H}:{}}}var Kt=6,ke=function*(e){for(let t of e.childNodes)t.nodeType===1&&(yield t,yield*ke(t))},Jt=(e,t)=>{for(let n=t;n;n=n.parentElement)if(n===e)return!0;return!1};function At(e,t){let n=[...ke(e)].filter(i=>i.getAttribute("data-record")===t);if(n.length===0)return null;let s=n[0];for(;s&&!n.every(i=>Jt(s,i));)s=s.parentElement;let a=s??e,l=[a,...ke(a)].flatMap(i=>i.getAttribute("data-act")?[i.getAttribute("data-act")]:[]),u=[a,...ke(a)].flatMap(i=>i.getAttribute("aria-pressed")||i.getAttribute("aria-checked")?[`${i.getAttribute("aria-pressed")??""}${i.getAttribute("aria-checked")??""}`]:[]);return`${a.textContent.replace(/\s+/g," ").trim()}|${l.join(",")}|${u.join(",")}`}var Tt=(e,t)=>new RegExp(`\\s${t}="([^"]*)"`).exec(e)?.[1];function Xt(e){return new Pe({schema:e.schema,mutations:e.allMutations(),invariants:e.allInvariants(),...e.policy?{policy:e.policy}:{},snapshot:e.graph.snapshot()})}var Qt=e=>JSON.stringify(Object.entries(e??{}).filter(([,t])=>typeof t=="boolean").sort(([t],[n])=>t.localeCompare(n)));async function sn(e){let t=ht(),n=await Oe({...e,run:t,presses:mt,audit:!0,drawing:!0});if(!n.ok||!n.presses||!n.drawing)return n;let s=await er(e,n.presses,n.drawing.root,t);if(s.length===0)return n;let a=[...n.presses.problems,...s];return{...n,presses:{...n.presses,ok:!1,controls:[...n.presses.controls,...s],problems:a,text:`${n.presses.text}${s.map(l=>` FAILS ${l.says}
|
|
21
|
+
`}var Bt={scheme:"light",accent:"#2f7d8c",ground:"#f6f8f9",panel:"#ffffff",ink:"#14212b",inkMuted:"#4f6470",edge:"rgba(20, 33, 43, 0.14)",fontBody:"system-ui, sans-serif",fontDisplay:"system-ui, sans-serif",fontMono:"ui-monospace, monospace",radius:"12px"},z=(e,t,n)=>({ok:!1,reason:e,detail:t,...n?{transcript:n}:{}}),te=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),zt=["manifest","source","refused","error","silent","nodes","flood","slow","act","isolate"];function Wt(e){if(!te(e))return;let{renders:t,sheets:n,asked:s,went:a,ms:l,logs:u,messages:i,gestures:f,pressed:m,clicks:b}=e;if(!(!Array.isArray(t)||!t.every(Array.isArray)||!Array.isArray(s)||!Array.isArray(a)||!Array.isArray(u))&&!(typeof l!="number"||typeof i!="number"||n!==void 0&&!(Array.isArray(n)&&n.every(o=>typeof o=="string"))))return{renders:t,...Array.isArray(n)?{sheets:n}:{},asked:s.filter(te).map(o=>({name:String(o.name),args:o.args})),went:a.filter(te).flatMap(o=>{let N=typeof o.section=="string"?{section:o.section}:{},T=o.where!==void 0?{where:o.where}:{};return typeof o.record=="string"?[{record:o.record,...T,...N}]:typeof o.place=="string"?[{place:o.place,...T,...N}]:[]}),ms:l,logs:u.map(String).slice(0,50),messages:i,...Array.isArray(b)?{clicks:b.filter(o=>typeof o=="string").slice(0,2e3)}:{},...Array.isArray(f)?{gestures:f.filter(te).slice(0,32).map(o=>({event:String(o.event),selector:String(o.selector)}))}:{},...te(m)&&typeof m.selector=="string"&&[m.asked,m.went,m.renders].every(o=>typeof o=="number")?{pressed:{selector:m.selector,...typeof m.target=="string"?{target:m.target}:{},asked:m.asked,went:m.went,renders:m.renders}}:{}}}function Gt(e,t){let n=t.gestures??[];return n.length>0&&e.gestures!==!0?[{at:"gestures",says:`It listens for ${n.map(a=>`${a.event} on "${a.selector}"`).join(", ")}, and its manifest does not say "gestures": true: the host forwards no wheel, drag or pinch, and the page scrolls under it. Say "gestures": true in the manifest.`}]:n.length===0&&e.gestures===!0?[{at:"gestures",says:'Its manifest says "gestures": true, and it listens for no wheel, drag or pinch: graview.on("wheel" | "drag" | "pinch", selector, \u2026) is where the host sends one.'}]:[]}var qt=e=>e.kind==="system"?"the system":(e.roles??[]).length>0?(e.roles??[]).join(", "):e.kind,Zt=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");async function Yt(e,t){let n=f=>typeof f=="object"&&f!==null&&!(typeof f.kind=="string"&&f.kind.length>0),s=f=>{let{as:m,slug:b}=f;return typeof m=="string"&&m.length>0?m:typeof b=="string"&&b.length>0?b:void 0},a=e.filter(f=>n(f)&&![void 0,Ce,Re].includes(s(f)));if(a.length===0)return e;let l=t.app?je(t.app,{views:t.views}):De(t.schema,t.views.flatMap(f=>xe(f)??[])),u=f=>l.find(m=>m.slug===s(f)&&m.kind!==null),i=a.filter(f=>!u(f)).map(f=>`"${s(f)}"`);if(i.length>0){let f=i.length===1?"that slug":"those slugs",m=t.app?`the app declares no place by ${f}`:`no kind's list or view the run holds is at ${f}, and the app, which would say its lenses, was not handed (\`app\`)`;throw new TypeError(`runWorkerViewHeadless was handed the place${i.length===1?"":"s"} ${i.join(", ")} without ${i.length===1?"its kind":"their kinds"}, and ${m}: hand each place's \`kind\` as \`placesOf(app)\` lists it, or the app.`)}return e.map(f=>{if(!a.includes(f))return f;let m=u(f);return{...f,kind:m.kind,...m.over?{over:m.over}:{}}})}async function Oe(e){if(typeof e.run!="function")throw new TypeError("runWorkerViewHeadless runs a view only in an isolate the host supplies (`run`); it never runs one in the host's own context.");let{manifest:t,source:n,store:s,principal:a}=e,l={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,pushMs:e.limits?.pushMs??1e3,runMs:e.limits?.runMs??5e3},u=We(t,s);if(u.length>0)return z("manifest",u.join(" "));if(typeof n!="string")return z("source","A view's source is text.");if(new TextEncoder().encode(n).length>l.maxSourceBytes)return z("source",`Its code is longer than the ${l.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`);let i=Ye(n);if(i.length>0)return z("source",i.join(" "));let f=[...e.views??[],t].flatMap(S=>xe(S)??[]).map(S=>({as:S.as,title:S.title,kind:S.kind})),m=new Set([...s.kindsKeptFrom(a),...s.modules.disabledKinds]),b=await Yt(e.places??[],{schema:s.schema,...e.app?{app:e.app}:{},views:[...e.views??[],t]}),o=Fe(s.schema,[...b,...f],{kept:m}),N=e.views===void 0,T=Ge(s,t)?(await (__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"))).computedOn(s.schema):void 0,p=qe(s,a,{manifest:t,...e.input?{input:e.input}:{},theme:e.theme??Bt,places:He(o),...T?{computed:T}:{}}),y=t.pictures?nt(p,{view:`"${t.title??t.name}"`,pictures:t.pictures,standIn:rt,limits:{...e.limits?.pictureBytes!==void 0?{pictureBytes:e.limits.pictureBytes}:{},...e.limits?.picturesBytes!==void 0?{picturesBytes:e.limits.picturesBytes}:{}}}):{props:p,left:[]},k=y.props,v={props:k,acts:ye(t).map(S=>S.as??S.act),...t.accepts?{accepts:t.accepts.map(({kind:S,field:U})=>({kind:S,field:U}))}:{},places:o.map(S=>({as:S.as,title:S.title})),...N?{placesUnsure:!0}:{},...e.images?{imageOrigins:[...e.images.origins]}:{},...e.links?{linkOrigins:[...e.links.origins]}:{},...e.asset?{assets:!0}:{},...e.origin?{origin:e.origin}:{},lists:Se(s.schema,new Set([...s.kindsKeptFrom(a),...s.modules.disabledKinds])).flatMap(S=>[S.slug,S.kind]),limits:{maxNodes:l.maxNodes,messages:l.messages,pushMs:l.pushMs},...e.press!==void 0?{press:{selector:typeof e.press=="string"?e.press:e.press.selector}}:{}},$=async S=>{let U,W;try{let Z=e.run({script:Vt(n),entry:xt,input:JSON.stringify(S),timeoutMs:l.runMs}),Et=new Promise((tr,Ot)=>{W=setTimeout(()=>Ot(Object.assign(new Error("past runMs"),{reason:"slow"})),l.runMs+1e3)});U=await Promise.race([Z,Et])}catch(Z){return te(Z)&&Z.reason==="slow"?z("slow",`It ran longer than the ${l.runMs.toLocaleString("en-US")} ms a headless run may take.`):z("isolate",`The isolate could not run it: ${Z instanceof Error?Z.message:String(Z)}`)}finally{W!==void 0&&clearTimeout(W)}let L;try{L=JSON.parse(String(U))}catch{return z("isolate","The isolate answered with something that is not an outcome.")}if(!te(L))return z("isolate","The isolate answered with something that is not an outcome.");let Ne=Wt(L.transcript);if(L.ok!==!0){let Z=zt.includes(L.reason)?L.reason:"isolate";return z(Z,typeof L.detail=="string"?L.detail.slice(0,2e3):"It failed, and the isolate did not say why.",Ne)}return Ne?{ok:!0,transcript:Ne}:z("isolate","The isolate answered without what the view sent.")},c=await $(v);if(!c.ok)return c;let h=c.transcript,r=e.press!==void 0?h.pressed:void 0,d=Nt(r?{...h,renders:h.renders.slice(0,r.renders)}:h,v,e.brand?.views?.css?{theme:e.brand.views.css}:{});if(!d.ok)return z(d.reason,d.detail,h);let g=new Set([...k.node?[k.node.id]:[],...(k.nodes??[]).map(S=>S.id)]),w=Se(s.schema,new Set([...s.kindsKeptFrom(a),...s.modules.disabledKinds])),O=[];for(let S of h.went){if(!("where"in S)&&!("section"in S))continue;let U=X(S,{sees:L=>g.has(L),places:o,lists:w,schema:s.schema}),W="place"in S?B(v.places,S.place)!==void 0||(v.lists??[]).includes(S.place):!0;!U.ok&&W&&O.push({at:"navigate",says:U.says})}let Y=typeof e.press=="object"&&e.press.typed?{typed:e.press.typed}:{},E=r?lt(r,d.drawn,h,{store:s,principal:a,manifest:t,shown:g,places:o,lists:w,...N?{placesUnsure:!0}:{},...Y}):void 0,K=E&&(!E.element||E.lost)?[{at:`press "${E.selector}"`,says:E.lost??E.says}]:[],H;if(e.presses){let S=d.drawn;H=await(typeof e.presses=="function"?e.presses:e.presses.check)({store:s,principal:a,manifest:t,shown:g,places:o,lists:w,...N?{placesUnsure:!0}:{},drawn:S,clicks:h.clicks??[],...typeof e.presses=="object"&&e.presses.maxRuns!==void 0?{maxRuns:e.presses.maxRuns}:{},rerun:async W=>{let L=await $({...v,press:{selector:`[data-graview-check="${W}"]`,target:W}});return L.ok?L:{ok:!1,reason:L.reason,detail:L.detail}}})}let A=t.title??t.name,I=k.today?st(n,{today:k.today,title:t.attach==="home"?"Home":A,...k.locale?{locale:k.locale}:{}}):[],D=[...y.left.map(S=>({at:"pictures",says:S})),...d.problems,...O,...Gt(t,h),...K,...(H?.problems??[]).map(S=>({at:`press ${S.control}`,says:S.says})),...I.map(({at:S,says:U})=>({at:S,says:U}))],V=t.title?Zt(t.title):t.name,x=t.attach==="home"?null:t.attach,M={place:{slug:t.attach==="home"?"home":V,title:A,kind:x,address:t.attach==="home"?"/":`/places/${encodeURIComponent(V)}`},seat:qt(a),width:e.width??1440,variant:(e.width??1440)<640?"phone":"wide",drawnBy:`view:${t.name}`,parts:d.parts,...d.videos.length>0?{videos:d.videos}:{},problems:D},{placeText:j}=await (__graviewPreload(import.meta.url,["./chunk.64LCHHZB.js","./chunk.CNN32262.js","./chunk.EP5JS7ZH.js","./chunk.L7XKYGV7.js","./chunk.CE3NKAF7.js","./chunk.R3GE37OI.js","./chunk.2KCDLCB2.js","./chunk.UD7VLXPM.js","./chunk.3DEWQDP7.js","./chunk.QUETLFBJ.js","./chunk.JULD4XFB.js","./chunk.GRTBEA7O.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.3WPCS6KP.js")),oe,re;if(e.audit===!0){let{auditView:S}=await (__graviewPreload(import.meta.url,["./chunk.JO2X52D4.js","./chunk.M5FP4Y4Q.js","./chunk.6AANHELP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.G2BDEWJC.js")),U=(h.clicks??[]).flatMap(W=>d.drawn.elementOf(W)??[]);oe=S(d.drawn.root,{host:"pending",clicked:U}),e.drawing===!0&&(re={root:d.drawn.root,clicked:U})}return{ok:!0,description:{...M,text:j(M)},props:k,transcript:h,css:d.drawn.css,...E?{pressed:E}:{},...oe?{audit:oe}:{},...re?{drawing:re}:{},...H?{presses:H}:{}}}var Kt=6,ke=function*(e){for(let t of e.childNodes)t.nodeType===1&&(yield t,yield*ke(t))},Jt=(e,t)=>{for(let n=t;n;n=n.parentElement)if(n===e)return!0;return!1};function At(e,t){let n=[...ke(e)].filter(i=>i.getAttribute("data-record")===t);if(n.length===0)return null;let s=n[0];for(;s&&!n.every(i=>Jt(s,i));)s=s.parentElement;let a=s??e,l=[a,...ke(a)].flatMap(i=>i.getAttribute("data-act")?[i.getAttribute("data-act")]:[]),u=[a,...ke(a)].flatMap(i=>i.getAttribute("aria-pressed")||i.getAttribute("aria-checked")?[`${i.getAttribute("aria-pressed")??""}${i.getAttribute("aria-checked")??""}`]:[]);return`${a.textContent.replace(/\s+/g," ").trim()}|${l.join(",")}|${u.join(",")}`}var Tt=(e,t)=>new RegExp(`\\s${t}="([^"]*)"`).exec(e)?.[1];function Xt(e){return new Pe({schema:e.schema,mutations:e.allMutations(),invariants:e.allInvariants(),...e.policy?{policy:e.policy}:{},snapshot:e.graph.snapshot()})}var Qt=e=>JSON.stringify(Object.entries(e??{}).filter(([,t])=>typeof t=="boolean").sort(([t],[n])=>t.localeCompare(n)));async function sn(e){let t=ht(),n=await Oe({...e,run:t,presses:mt,audit:!0,drawing:!0});if(!n.ok||!n.presses||!n.drawing)return n;let s=await er(e,n.presses,n.drawing.root,t);if(s.length===0)return n;let a=[...n.presses.problems,...s];return{...n,presses:{...n.presses,ok:!1,controls:[...n.presses.controls,...s],problems:a,text:`${n.presses.text}${s.map(l=>` FAILS ${l.says}
|
|
22
22
|
`).join("")}`}}}async function er(e,t,n,s){let{store:a,principal:l,manifest:u}=e,i=new Set(a.graph.allNodes().map(b=>b.id)),f=new Set,m=[];for(let b of t.controls){if(f.size>=Kt)break;if(b.does!=="act"||!b.ok)continue;let o=Tt(b.element,"data-act"),N=Tt(b.element,"data-record");if(!o||!N)continue;let T=a.graph.getNode(N),p=`${o}|${Qt(T)}`;if(f.has(p))continue;f.add(p);let y=J(a,u,i,{as:o,record:N,fields:[]});if(!y.ok)continue;let k={name:y.name,args:y.args},v=T?`\u201C${Ie(a.schema.tryDefinition(T.kind),T)}\u201D`:`\u201C${N}\u201D`;if(!a.wouldChange(k,l)){let h=g=>new Set(a.allMutations().find(w=>w.name===g)?.writes??[]),r=h(y.name),d=ye(u).filter(g=>g.act!==y.name&&r.size>0&&[...h(g.act)].some(w=>r.has(w))).filter(g=>{let w=J(a,u,i,{as:g.as??g.act,record:N,fields:[]});return w.ok&&a.wouldChange({name:w.name,args:w.args},l)}).map(g=>`\u201C${g.as??g.act}\u201D`);m.push({control:b.control,element:b.element,does:"act",ok:!1,says:`On ${v} it asks for \u201C${o}\u201D, which changes nothing there: it is so already.${d.length>0?` Bind its press there to ${d.join(" or ")} instead, as the page did, so a person can take it back.`:""}`});continue}let $=Xt(a);try{$.apply(k,{author:l})}catch{continue}let c=await Oe({...e,store:$,run:s,audit:!0,drawing:!0});!c.ok||!c.drawing||At(c.drawing.root,N)===At(n,N)&&m.push({control:b.control,element:b.element,does:"act",ok:!1,says:`Pressed on ${v}, it lands, and the design draws ${v} just as before it: show what it changed \u2014 its words or its control (a finished task says so and offers the act that takes it back).`})}return m}export{At as drawnRecord,sn as pressedHere};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as Ry}from"./chunk.
|
|
1
|
+
import{c as Ry}from"./chunk.7TDML5YU.js";import{G as Cy}from"./chunk.3VEZ5MOC.js";import{a as an}from"./chunk.AJZBJBMO.js";var Ti=an(J=>{"use strict";function Gf(l,a){var t=l.length;l.push(a);l:for(;0<t;){var u=t-1>>>1,n=l[u];if(0<tn(n,a))l[u]=a,l[t]=n,t=u;else break l}}function Ll(l){return l.length===0?null:l[0]}function nn(l){if(l.length===0)return null;var a=l[0],t=l.pop();if(t!==a){l[0]=t;l:for(var u=0,n=l.length,f=n>>>1;u<f;){var e=2*(u+1)-1,c=l[e],i=e+1,m=l[i];if(0>tn(c,t))i<n&&0>tn(m,c)?(l[u]=m,l[i]=t,u=i):(l[u]=c,l[e]=t,u=e);else if(i<n&&0>tn(m,t))l[u]=m,l[i]=t,u=i;else break l}}return a}function tn(l,a){var t=l.sortIndex-a.sortIndex;return t!==0?t:l.id-a.id}J.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(yi=performance,J.unstable_now=function(){return yi.now()}):(Yf=Date,mi=Yf.now(),J.unstable_now=function(){return Yf.now()-mi});var yi,Yf,mi,Il=[],Aa=[],jy=1,Bl=null,ml=3,Zf=!1,au=!1,tu=!1,Cf=!1,Si=typeof setTimeout=="function"?setTimeout:null,gi=typeof clearTimeout=="function"?clearTimeout:null,hi=typeof setImmediate<"u"?setImmediate:null;function un(l){for(var a=Ll(Aa);a!==null;){if(a.callback===null)nn(Aa);else if(a.startTime<=l)nn(Aa),a.sortIndex=a.expirationTime,Gf(Il,a);else break;a=Ll(Aa)}}function Rf(l){if(tu=!1,un(l),!au)if(Ll(Il)!==null)au=!0,ht||(ht=!0,mt());else{var a=Ll(Aa);a!==null&&jf(Rf,a.startTime-l)}}var ht=!1,uu=-1,bi=5,zi=-1;function Ai(){return Cf?!0:!(J.unstable_now()-zi<bi)}function Qf(){if(Cf=!1,ht){var l=J.unstable_now();zi=l;var a=!0;try{l:{au=!1,tu&&(tu=!1,gi(uu),uu=-1),Zf=!0;var t=ml;try{a:{for(un(l),Bl=Ll(Il);Bl!==null&&!(Bl.expirationTime>l&&Ai());){var u=Bl.callback;if(typeof u=="function"){Bl.callback=null,ml=Bl.priorityLevel;var n=u(Bl.expirationTime<=l);if(l=J.unstable_now(),typeof n=="function"){Bl.callback=n,un(l),a=!0;break a}Bl===Ll(Il)&&nn(Il),un(l)}else nn(Il);Bl=Ll(Il)}if(Bl!==null)a=!0;else{var f=Ll(Aa);f!==null&&jf(Rf,f.startTime-l),a=!1}}break l}finally{Bl=null,ml=t,Zf=!1}a=void 0}}finally{a?mt():ht=!1}}}var mt;typeof hi=="function"?mt=function(){hi(Qf)}:typeof MessageChannel<"u"?(Xf=new MessageChannel,di=Xf.port2,Xf.port1.onmessage=Qf,mt=function(){di.postMessage(null)}):mt=function(){Si(Qf,0)};var Xf,di;function jf(l,a){uu=Si(function(){l(J.unstable_now())},a)}J.unstable_IdlePriority=5;J.unstable_ImmediatePriority=1;J.unstable_LowPriority=4;J.unstable_NormalPriority=3;J.unstable_Profiling=null;J.unstable_UserBlockingPriority=2;J.unstable_cancelCallback=function(l){l.callback=null};J.unstable_forceFrameRate=function(l){0>l||125<l?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):bi=0<l?Math.floor(1e3/l):5};J.unstable_getCurrentPriorityLevel=function(){return ml};J.unstable_next=function(l){switch(ml){case 1:case 2:case 3:var a=3;break;default:a=ml}var t=ml;ml=a;try{return l()}finally{ml=t}};J.unstable_requestPaint=function(){Cf=!0};J.unstable_runWithPriority=function(l,a){switch(l){case 1:case 2:case 3:case 4:case 5:break;default:l=3}var t=ml;ml=l;try{return a()}finally{ml=t}};J.unstable_scheduleCallback=function(l,a,t){var u=J.unstable_now();switch(typeof t=="object"&&t!==null?(t=t.delay,t=typeof t=="number"&&0<t?u+t:u):t=u,l){case 1:var n=-1;break;case 2:n=250;break;case 5:n=1073741823;break;case 4:n=1e4;break;default:n=5e3}return n=t+n,l={id:jy++,callback:a,priorityLevel:l,startTime:t,expirationTime:n,sortIndex:-1},t>u?(l.sortIndex=t,Gf(Aa,l),Ll(Il)===null&&l===Ll(Aa)&&(tu?(gi(uu),uu=-1):tu=!0,jf(Rf,t-u))):(l.sortIndex=n,Gf(Il,l),au||Zf||(au=!0,ht||(ht=!0,mt()))),l};J.unstable_shouldYield=Ai;J.unstable_wrapCallback=function(l){var a=ml;return function(){var t=ml;ml=a;try{return l.apply(this,arguments)}finally{ml=t}}}});var Mi=an((dd,Ei)=>{"use strict";Ei.exports=Ti()});var Qy=an(qf=>{"use strict";var tl=Mi(),w0=Cy(),Vy=Ry();function A(l){var a="https://react.dev/errors/"+l;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)a+="&args[]="+encodeURIComponent(arguments[t])}return"Minified React error #"+l+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function F0(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}function Ku(l){var a=l,t=l;if(l.alternate)for(;a.return;)a=a.return;else{l=a;do a=l,(a.flags&4098)!==0&&(t=a.return),l=a.return;while(l)}return a.tag===3?t:null}function $0(l){if(l.tag===13){var a=l.memoizedState;if(a===null&&(l=l.alternate,l!==null&&(a=l.memoizedState)),a!==null)return a.dehydrated}return null}function k0(l){if(l.tag===31){var a=l.memoizedState;if(a===null&&(l=l.alternate,l!==null&&(a=l.memoizedState)),a!==null)return a.dehydrated}return null}function Oi(l){if(Ku(l)!==l)throw Error(A(188))}function xy(l){var a=l.alternate;if(!a){if(a=Ku(l),a===null)throw Error(A(188));return a!==l?null:l}for(var t=l,u=a;;){var n=t.return;if(n===null)break;var f=n.alternate;if(f===null){if(u=n.return,u!==null){t=u;continue}break}if(n.child===f.child){for(f=n.child;f;){if(f===t)return Oi(n),l;if(f===u)return Oi(n),a;f=f.sibling}throw Error(A(188))}if(t.return!==u.return)t=n,u=f;else{for(var e=!1,c=n.child;c;){if(c===t){e=!0,t=n,u=f;break}if(c===u){e=!0,u=n,t=f;break}c=c.sibling}if(!e){for(c=f.child;c;){if(c===t){e=!0,t=f,u=n;break}if(c===u){e=!0,u=f,t=n;break}c=c.sibling}if(!e)throw Error(A(189))}}if(t.alternate!==u)throw Error(A(190))}if(t.tag!==3)throw Error(A(188));return t.stateNode.current===t?l:a}function I0(l){var a=l.tag;if(a===5||a===26||a===27||a===6)return l;for(l=l.child;l!==null;){if(a=I0(l),a!==null)return a;l=l.sibling}return null}var L=Object.assign,py=Symbol.for("react.element"),fn=Symbol.for("react.transitional.element"),mu=Symbol.for("react.portal"),At=Symbol.for("react.fragment"),r0=Symbol.for("react.strict_mode"),Te=Symbol.for("react.profiler"),P0=Symbol.for("react.consumer"),fa=Symbol.for("react.context"),Sc=Symbol.for("react.forward_ref"),Ee=Symbol.for("react.suspense"),Me=Symbol.for("react.suspense_list"),gc=Symbol.for("react.memo"),Ta=Symbol.for("react.lazy");Symbol.for("react.scope");var Oe=Symbol.for("react.activity");Symbol.for("react.legacy_hidden");Symbol.for("react.tracing_marker");var Ky=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var Di=Symbol.iterator;function nu(l){return l===null||typeof l!="object"?null:(l=Di&&l[Di]||l["@@iterator"],typeof l=="function"?l:null)}var Ly=Symbol.for("react.client.reference");function De(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===Ly?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case At:return"Fragment";case Te:return"Profiler";case r0:return"StrictMode";case Ee:return"Suspense";case Me:return"SuspenseList";case Oe:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case mu:return"Portal";case fa:return l.displayName||"Context";case P0:return(l._context.displayName||"Context")+".Consumer";case Sc:var a=l.render;return l=l.displayName,l||(l=a.displayName||a.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case gc:return a=l.displayName||null,a!==null?a:De(l.type)||"Memo";case Ta:a=l._payload,l=l._init;try{return De(l(a))}catch{}}return null}var hu=Array.isArray,D=w0.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,X=Vy.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ka={pending:!1,data:null,method:null,action:null},Ue=[],Tt=-1;function $l(l){return{current:l}}function fl(l){0>Tt||(l.current=Ue[Tt],Ue[Tt]=null,Tt--)}function x(l,a){Tt++,Ue[Tt]=l.current,l.current=a}var Fl=$l(null),Nu=$l(null),Ba=$l(null),jn=$l(null);function Vn(l,a){switch(x(Ba,a),x(Nu,l),x(Fl,null),a.nodeType){case 9:case 11:l=(l=a.documentElement)&&(l=l.namespaceURI)?B0(l):0;break;default:if(l=a.tagName,a=a.namespaceURI)a=B0(a),l=Ty(a,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}fl(Fl),x(Fl,l)}function Ct(){fl(Fl),fl(Nu),fl(Ba)}function se(l){l.memoizedState!==null&&x(jn,l);var a=Fl.current,t=Ty(a,l.type);a!==t&&(x(Nu,l),x(Fl,t))}function xn(l){Nu.current===l&&(fl(Fl),fl(Nu)),jn.current===l&&(fl(jn),Vu._currentValue=ka)}var Vf,Ui;function Wa(l){if(Vf===void 0)try{throw Error()}catch(t){var a=t.stack.trim().match(/\n( *(at )?)/);Vf=a&&a[1]||"",Ui=-1<t.stack.indexOf(`
|
|
2
2
|
at`)?" (<anonymous>)":-1<t.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
3
3
|
`+Vf+l+Ui}var xf=!1;function pf(l,a){if(!l||xf)return"";xf=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var u={DetermineComponentFrameRoot:function(){try{if(a){var z=function(){throw Error()};if(Object.defineProperty(z.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(z,[])}catch(S){var d=S}Reflect.construct(l,[],z)}else{try{z.call()}catch(S){d=S}l.call(z.prototype)}}else{try{throw Error()}catch(S){d=S}(z=l())&&typeof z.catch=="function"&&z.catch(function(){})}}catch(S){if(S&&d&&typeof S.stack=="string")return[S.stack,d.stack]}return[null,null]}};u.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(u.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(u.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var f=u.DetermineComponentFrameRoot(),e=f[0],c=f[1];if(e&&c){var i=e.split(`
|
|
4
4
|
`),m=c.split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as H,e as R,f as k}from"./chunk.
|
|
1
|
+
import{d as H,e as R,f as k}from"./chunk.AQ2PI6MR.js";import{b as L}from"./chunk.H3W5C3XQ.js";import{b as C}from"./chunk.6WB2TYK7.js";import"./chunk.BJUUSIQY.js";import"./chunk.N5Z34V7U.js";import{a as S}from"./chunk.YL2RBZFE.js";import"./chunk.LOKGUALC.js";import"./chunk.JGRSUTPJ.js";import"./chunk.XOZU4OFA.js";import"./chunk.EP5JS7ZH.js";import"./chunk.CE3NKAF7.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 T,Va as E,W as b}from"./chunk.3VEZ5MOC.js";import"./chunk.SDO3U72B.js";import{td as x}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import{b as g}from"./chunk.AJZBJBMO.js";var t=g(T(),1);var c=g(b(),1);function N(n){if(!n||n.interaction.outcome==="failed")return null;let s=n.offers[0],o=s?n.interaction.offered.find(i=>i.id===s.id)?.confidence:void 0;return s&&o!==void 0&&o>=.6?{offer:s,confidence:o}:null}function V({rest:n,hold:s,leave:o}){let i=S(),u=(0,t.useMemo)(()=>C(n.target,e=>i.store.graph.has(e)),[n.target,i.store]),l=u.on==="record"&&L(i.ai)!==void 0,m=l?H(i,u):void 0,p=JSON.stringify(u),[y,I]=(0,t.useState)(null);(0,t.useEffect)(()=>{if(!l||m!==void 0)return;let e=!0;return R(i,u).then(r=>{e&&I({key:p,result:r})}),()=>{e=!1}},[p,l]);let w=m??(y?.key===p?y.result:void 0),f=l?N(w):null,v=f?.offer.id??null,h=(0,t.useRef)(null);if((0,t.useEffect)(()=>{if(v===null)return;let e=r=>{r.target instanceof Node&&h.current?.contains(r.target)||o(!0)};return document.addEventListener("pointerdown",e,{capture:!0,passive:!0}),document.addEventListener("contextmenu",e,{capture:!0,passive:!0}),addEventListener("scroll",e,{capture:!0,passive:!0}),addEventListener("resize",e,{passive:!0}),()=>{document.removeEventListener("pointerdown",e,{capture:!0}),document.removeEventListener("contextmenu",e,{capture:!0}),removeEventListener("scroll",e,{capture:!0}),removeEventListener("resize",e)}},[v,o]),(0,t.useLayoutEffect)(()=>{let e=h.current;if(!e)return;if(typeof e.showPopover=="function"&&!E(e))try{e.showPopover()}catch{}let r=n.element.getBoundingClientRect(),d=e.getBoundingClientRect(),O=r.top-d.height-4>=4?r.top-d.height-4:Math.min(innerHeight-d.height-4,r.top+4),A=Math.max(4,Math.min(innerWidth-d.width-4,r.right-d.width));e.style.top=`${Math.round(O)}px`,e.style.left=`${Math.round(A)}px`},[v,n.element]),!f)return null;let{offer:a,confidence:P}=f,M=a.type==="panel"?"a panel":a.type==="place"?"go there":a.type==="record"?"open it":"suggested";return(0,c.jsxs)("button",{ref:h,type:"button",popover:"manual","data-testid":"hover-chip","data-ai-offer":a.id,"data-ai-offer-type":a.type,"data-graview-overlay":"","data-graview-popover":"","aria-label":`Suggested by AI: ${a.label}`,title:`Suggested by AI, ${Math.round(P*100)}% sure`,onPointerEnter:s,onPointerLeave:()=>o(),onClick:()=>{n.element.closest("[tabindex], a[href], button")?.focus({preventScroll:!0}),o(!0),k(i,w,a)},style:$,children:[(0,c.jsxs)("span",{"aria-hidden":"true",style:{color:"var(--graview-accent)"},children:["\u2726"," "]}),a.label,(0,c.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",M]})]})}var $={position:"fixed",inset:"auto",top:0,left:0,margin:0,zIndex:x("toast"),boxSizing:"border-box",width:"max-content",maxWidth:"min(320px, calc(100vw - 8px))",height:"auto",minHeight:24,padding:"2px 10px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",borderRadius:999,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",font:"inherit",fontSize:"0.75rem",cursor:"pointer"};export{V as HoverChip};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as f}from"./chunk.
|
|
1
|
+
import{a as f}from"./chunk.EP5JS7ZH.js";import{la as d}from"./chunk.6AANHELP.js";function S(e){let o=e.indexOf("{"),a=e.indexOf("["),t=a!==-1&&(o===-1||a<o)?a:o;if(t===-1)return;let n=e[t],r=n==="["?"]":"}",i=0,u=!1,l=!1;for(let s=t;s<e.length;s++){let c=e[s];if(u){l?l=!1:c==="\\"?l=!0:c==='"'&&(u=!1);continue}if(c==='"')u=!0;else if(c===n)i+=1;else if(c===r&&(i-=1,i===0))try{return JSON.parse(e.slice(t,s+1))}catch{return}}}function w(e,o){let a;try{a=e.mutation(o.mutation)}catch{return o}let t={...o.args},n=!1;for(let r of f(a.input)){if(r.control!=="node")continue;let i=t[r.name];if(typeof i!="string"||i.length===0||e.graph.getNode(i))continue;let u=i.trim().toLowerCase(),l=[...e.graph.allNodes()].filter(s=>(r.kinds.includes("*")||r.kinds.includes(s.kind))&&d(e.schema.tryDefinition(s.kind),s).trim().toLowerCase()===u);l.length===1&&(t[r.name]=l[0].id,n=!0)}return n?{...o,args:t}:o}function x(e,o,a){let t=a===void 0?null:new Set(a),n=[];for(let r of o){if(typeof r.mutation!="string")continue;let i=!0;try{e.mutation(r.mutation)}catch{i=!1}i?t&&!t.has(r.mutation)&&n.push({proposal:r,why:"not-allowed"}):n.push({proposal:r,why:"unknown"})}return n}function v(e,o,a){let t=a===void 0?null:new Set(a);return o.filter(n=>{if(typeof n.mutation!="string"||t&&!t.has(n.mutation))return!1;try{e.mutation(n.mutation)}catch{return!1}return n.args!==null&&typeof n.args=="object"})}export{S as a,w as b,x as c,v as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{sd as d}from"./chunk.
|
|
1
|
+
import{sd as d}from"./chunk.6AANHELP.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var m="data-graview-refused-note",u=`position:absolute;z-index:${d.over};box-sizing:border-box;margin:0;padding:4px 8px;max-width:min(40ch,calc(100% - 8px));border-radius:6px;font:inherit;font-size:0.8125rem;line-height:1.35;color:var(--graview-ink,CanvasText);background:var(--graview-panel,Canvas);border:1px solid var(--graview-danger,#b42318);box-shadow:0 2px 8px rgb(0 0 0 / 0.12);pointer-events:none;overflow-wrap:anywhere`;function v(s){let n=new Map,p=0,a=(t,o)=>{let e=s.host.getBoundingClientRect(),r=t.getBoundingClientRect(),f=o.offsetWidth,i=o.offsetHeight,g=Math.max(4,Math.min(r.left-e.left,e.width-f-4)),c=r.bottom-e.top+4,h=c+i<=e.height||r.top-e.top-i-4<0?c:r.top-e.top-i-4;o.style.left=`${Math.round(g)}px`,o.style.top=`${Math.round(h)}px`},l={say(t,o){l.clear(t);let e=s.ownerDocument.createElement("p");e.setAttribute(m,""),e.setAttribute("role","status"),e.id=`graview-refused-${p+=1}`,e.setAttribute("style",u),e.textContent=o,s.appendChild(e),n.set(t,e),a(t,e)},clear(t){let o=n.get(t);o&&(o.remove(),n.delete(t))},refresh(){for(let[t,o]of n)t.isConnected?a(t,o):(o.remove(),n.delete(t))}};return l}export{v as createRefusalNotes};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{P as b,Z as g,cc as x,ga as h,gc as k,ha as $}from"./chunk.
|
|
1
|
+
import{P as b,Z as g,cc as x,ga as h,gc as k,ha as $}from"./chunk.6AANHELP.js";function z(t,n,e){let r=t?.display?.format?.[n];return r?r(e):typeof e=="string"?$(e):String(e)}function B(t,n,e,r){let s=t.tryDefinition(n)?.edges,i=s&&Object.hasOwn(s,e)?s[e]:void 0;return(r==="out"?i?.description:i?.inverse)??h(e).toLowerCase()}var w=/^ {0,3}#{1,6}(?:[ \t]+|$)/,m=/^[ \t]*(?:[-*+•]|\d{1,9}[.)])[ \t]+(?:\[[ xX]\][ \t]+)?/,R=/^ {0,3}(?:(?:-[ \t]*){3,}|(?:\*[ \t]*){3,}|(?:_[ \t]*){3,})$/,O=/^ {0,3}(?:`{3,}|~{3,})/,S=/^ {0,3}(?:>[ \t]?)+/,F=/^\|?\s*:?-{2,}:?\s*(?:\|\s*:?-{2,}:?\s*)*\|?$/,T={amp:"&",lt:"<",gt:">",quot:'"',"#39":"'",nbsp:" "};function _(t){return t.replace(/!?\[([^\]\n]{0,500})\]\([^)\n]{0,500}\)/g,"$1").replace(/<((?:https?:|mailto:)[^>\s]*)>/gi,"$1").replace(/<\/?[A-Za-z][^<>\n]*>/g,"").replace(/`+([^`\n]*)`+/g,"$1").replace(/(\*\*|__|~~)(?=\S)([^\n]{0,500}?\S)\1/g,"$2").replace(/(^|[^\w*])\*(?=\S)([^*\n]{0,500}?\S)\*(?![\w*])/g,"$1$2").replace(/(^|\W)_(?=\S)([^_\n]{0,500}?\S)_(?!\w)/g,"$1$2").replace(/\\([\\`*_{}[\]()#+\-.!>|~])/g,"$1").replace(/&(amp|lt|gt|quot|#39|nbsp);/g,(n,e)=>T[e]??"")}function N(t,n,e){let r=t.replace(/\r\n?/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),s=[],i=[],u=0,d=!1,a=()=>{let o=i.join(" ").replace(/\s+/g," ").trim();o&&(s.push(o),u+=o.length),i=[]},c=0;for(;c<r.length&&u<=e;){let o=r[c++];if(n&&O.test(o)){d=!d,d||a();continue}if(!d&&(o.trim().length===0||n&&(R.test(o)||F.test(o.trim())))){a();continue}let f=!d&&n&&w.test(o),l=!d&&m.test(o);if((f||l)&&a(),n&&!d?(o=o.replace(S,""),f&&(o=o.replace(w,"").replace(/[ \t]+#+[ \t]*$/,"")),l&&(o=o.replace(m,"")),o.includes("|")&&(o=o.replace(/^[ \t]*\||\|[ \t]*$/g,"").split("|").map(p=>p.trim()).filter(Boolean).join(" \xB7 ")),o=_(Number.isFinite(e)?o.slice(0,e*2+200):o)):l&&(o=o.replace(m,"")),i.push(o),f&&a(),i.reduce((p,A)=>p+A.length,0)>e)break}return a(),{blocks:s,more:r.slice(c).some(o=>o.trim().length>0&&!(n&&(O.test(o)||R.test(o))))}}function E(t,n){return`${(t.slice(0,n+1).replace(/\s+\S*$/,"")||t.slice(0,n)).replace(/[\s,;:.—-]+$/,"")}\u2026`}function Q(t,n={}){let e=n.most??160,{blocks:r,more:s}=N(t,n.markdown===!0,e),i=r[0]??"";if(i.length<=e)return(s||r.length>1)&&i.length>0&&!/[.!?…:]$/.test(i)?`${i}\u2026`:i;let u=k(i);return u&&u.length<=e?u:E(i,e)}var X=t=>N(t,!0,Number.POSITIVE_INFINITY).blocks.join(" ");var j={d:1440,h:60,m:1};function K(t){if(typeof t=="number")return Number.isFinite(t)&&t>=0?Math.round(t):void 0;if(typeof t!="string")return;let n=t.trim().toLowerCase();if(/^\d+$/.test(n))return Number(n);let e=/^(\d+):([0-5]\d)(?::([0-5]\d))?$/.exec(n);if(e)return Number(e[1])*60+Number(e[2])+Math.round(Number(e[3]??0)/60);let r=0,s=!1,i=n.replace(/(\d*[.,]?\d+) *(days?|d|hours?|hrs?|hr|h|minutes?|mins?|min|m)(?![a-z])/g,(u,d,a)=>(s=!0,r+=Number(d.replace(",","."))*j[a[0]]," "));return s&&/^[\s,+]*(?:and[\s,+]*)*$/.test(i)?Math.round(r):void 0}function I(t,n){if(!Number.isFinite(t))return String(t);let e=Math.round(Math.abs(t)),r=Math.floor(e/60),s=e%60,i=[r?`${g(r,n)} h`:"",s||!r?`${g(s,n)} min`:""].filter(Boolean).join(" ");return t<0?`\u2212${i}`:i}var M=/^(\+?1[ .-]?)?\(?([2-9]\d\d)\)?[ .-]?(\d{3})[ .-]?(\d{4})(?: *(?:ext\.?|x|#) *(\d+))?$/i;function W(t,n){let e=t.trim(),r=/[-_](US|CA)\b/i.test(b(n))?M.exec(e):null;if(!r)return e;let[,s,i,u,d,a]=r;return`${s?.startsWith("+")?"+1 ":""}(${i}) ${u}-${d}${a?` ext. ${a}`:""}`}function D(t){let[,n="",e]=/^(.*?)(?: *(?:ext\.?|x|#) *(\d+))?$/i.exec(t.trim())??[],r=n.replace(/\D/g,"");return r.length<3?void 0:`tel:${n.startsWith("+")?"+":""}${r}${e?`;ext=${e}`:""}`}var P=()=>/Mac|iPhone|iPad|iPod/.test(globalThis.navigator?.userAgent??"");function L(t,n=P()){let e=encodeURIComponent(t.trim());return n?`https://maps.apple.com/?q=${e}`:`https://www.google.com/maps/search/?api=1&query=${e}`}var q=t=>t?.fields?.shape??{},C=(t,n)=>{let e=q(t);return Object.hasOwn(e,n)?x(e[n]):void 0},y=(t,n)=>{let e=t?.computed,r=e&&Object.hasOwn(e,n)?e[n]:void 0;return typeof r=="object"?r:void 0},H=(t,n)=>{let e=y(t,n);return e?.as??(e?.format==="duration"?"duration":void 0)};function v(t,n){let e=y(t,n);if(!e)return;if(e.amount)return e.amount;let r=e.format==="money"||e.format==="percent"?e.format:void 0;return r||!e.format&&e.unit?{...r?{format:r}:{},...e.unit?{unit:e.unit}:{}}:void 0}function ee(t,n){return y(t,n)?.hidden===!0}function ne(t,n){return C(t,n)??(t&&H(t,n)==="duration"?"duration":void 0)}function te(t,n,e){return t==="duration"?typeof n=="number"?I(n,e):void 0:t==="phone"?typeof n=="string"?W(n,e):void 0:t==="place"&&typeof n=="string"?n.trim():void 0}function re(t,n){if(!(typeof n!="string"||!n.trim()))return t==="phone"?D(n):t==="place"?L(n):void 0}export{z as a,B as b,Q as c,X as d,K as e,v as f,ee as g,ne as h,te as i,re as j};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as h}from"./chunk.
|
|
1
|
+
import{G as h}from"./chunk.3VEZ5MOC.js";import{Qd as u,Sc as a,ed as m}from"./chunk.6AANHELP.js";import{b as l}from"./chunk.AJZBJBMO.js";function f(e){let t=[e?.typography?.body,e?.typography?.display,e?.typography?.mono],o=[];for(let i of t){let n=i?.split(",")[0]?.trim().replace(/^["']|["']$/g,"");!n||m(n)||n.toLowerCase()!==a.toLowerCase()&&(o.includes(n)||o.push(n))}return o}function g(e){let t=f(e);return t.length===0?null:`https://fonts.googleapis.com/css2?${t.map(i=>`family=${encodeURIComponent(i).replace(/%20/g,"+")}:wght@400;500;600;700`).join("&")}&display=swap`}var r=l(h(),1);function k(e,t){return new u({schema:e.schema,mutations:e.mutations??[],invariants:e.invariants??[],...t?{snapshot:t}:{},...e.policy?{policy:e.policy}:{},...e.publishing?{publishing:e.publishing}:{},...e.tidying?{tidying:e.tidying}:{},...e.intelligence?{intelligence:e.intelligence}:{},...e.brand?.timeZone?{timeZone:e.brand.timeZone}:{}})}function d(e){if(typeof document>"u")return e==="dark"?"dark":"light";let t=document.documentElement.dataset.theme;return t==="dark"||t==="light"?t:e==="dark"||e==="light"?e:typeof matchMedia=="function"&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function v(e,t){let[o,i]=(0,r.useState)(()=>d(t));return(0,r.useEffect)(()=>{if(!e||typeof document>"u")return;let n=()=>i(d(t));n();let s=new MutationObserver(n);s.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});let c=typeof matchMedia=="function"?matchMedia("(prefers-color-scheme: dark)"):null;return c?.addEventListener?.("change",n),()=>{s.disconnect(),c?.removeEventListener?.("change",n)}},[e,t]),o}export{g as a,k as b,v as c};
|