graview 0.1.70 → 0.1.72
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.2IOJNFCR.js +1 -0
- package/dist/preview/{chunk.I7CSRZC2.js → chunk.2Q4ZXP7P.js} +1 -1
- package/dist/preview/{chunk.O2XPLDMM.js → chunk.2TTKQAWQ.js} +1 -1
- package/dist/preview/chunk.2YSE3SQN.js +23 -0
- package/dist/preview/{chunk.NZFO6BM3.js → chunk.2ZPR6FRI.js} +1 -1
- package/dist/preview/chunk.3BE4SHZD.js +1 -0
- package/dist/preview/{chunk.QODVFVWE.js → chunk.43HWCHBN.js} +1 -1
- package/dist/preview/{chunk.QILGAV7H.js → chunk.45OLF6BK.js} +1 -1
- package/dist/preview/{chunk.NTAC5NNE.js → chunk.47QWCVZD.js} +1 -1
- package/dist/preview/{chunk.7HNMG6LG.js → chunk.4A7BRBEA.js} +1 -1
- package/dist/preview/chunk.4EPCI6VY.js +1 -0
- package/dist/preview/{chunk.OXXZGPJZ.js → chunk.4PB5UFUJ.js} +1 -1
- package/dist/preview/{chunk.SWY6DIE4.js → chunk.4TDYDIIM.js} +3 -3
- package/dist/preview/{chunk.6VG2LCES.js → chunk.4VX7GPFS.js} +1 -1
- package/dist/preview/{chunk.TUVPQLFL.js → chunk.523X2YEQ.js} +1 -1
- package/dist/preview/{chunk.CHG522KL.js → chunk.53GQQETN.js} +1 -1
- package/dist/preview/{chunk.NBB5ALVJ.js → chunk.5MKZTHU2.js} +1 -1
- package/dist/preview/chunk.5OS4SYHE.js +1 -0
- package/dist/preview/{chunk.ZTHZHBVN.js → chunk.5ZT4R227.js} +1 -1
- package/dist/preview/{chunk.RIP2SAQ5.js → chunk.65SI77M7.js} +1 -1
- package/dist/preview/chunk.6ESAFTWB.js +1 -0
- package/dist/preview/chunk.6GUIFP2A.js +1 -0
- package/dist/preview/{chunk.M3HLZX6Q.js → chunk.6GZYKHEN.js} +1 -1
- package/dist/preview/{chunk.UVMHC6VM.js → chunk.6YKKZI4H.js} +1 -1
- package/dist/preview/{chunk.BBLA4PSP.js → chunk.73RMM4W7.js} +1 -1
- package/dist/preview/chunk.7DCBIMOI.js +1 -0
- package/dist/preview/chunk.7JE3J7H4.js +1 -0
- package/dist/preview/{chunk.YTRUZ56A.js → chunk.7QGDWAHH.js} +1 -1
- package/dist/preview/{chunk.JEQ6CA5M.js → chunk.7VCYVCYM.js} +2 -2
- package/dist/preview/{chunk.X7HMTN3Z.js → chunk.A4TBVXHQ.js} +1 -1
- package/dist/preview/{chunk.J4NY2K2A.js → chunk.A6LJPXJ3.js} +1 -1
- package/dist/preview/chunk.AAPXF6NP.js +1 -0
- package/dist/preview/chunk.APUICV5Z.js +1 -0
- package/dist/preview/chunk.ASNVH2G4.js +25 -0
- package/dist/preview/{chunk.CM7EDQ4E.js → chunk.CJHCUHVN.js} +1 -1
- package/dist/preview/chunk.CUEPNS3Z.js +1 -0
- package/dist/preview/{chunk.U3CV227I.js → chunk.CUJRWBPX.js} +1 -1
- package/dist/preview/{chunk.7TZXDPPO.js → chunk.D5PW6YWF.js} +3 -3
- package/dist/preview/chunk.DCIYOZYP.js +1 -0
- package/dist/preview/chunk.DEBW4FH6.js +1 -0
- package/dist/preview/{chunk.MR776WQ2.js → chunk.DYPSFTRP.js} +1 -1
- package/dist/preview/{chunk.BBMX3IIO.js → chunk.E6QZUT4L.js} +1 -1
- package/dist/preview/chunk.E7QZZRAQ.js +17 -0
- package/dist/preview/chunk.EHCMBAZO.js +3 -0
- package/dist/preview/chunk.EXTD5JWD.js +1 -0
- package/dist/preview/{chunk.KOVTQCHX.js → chunk.EZF2T3XQ.js} +1 -1
- package/dist/preview/chunk.EZSST3IU.js +1 -0
- package/dist/preview/{chunk.DIVANC3G.js → chunk.F2BZ4SC4.js} +1 -1
- package/dist/preview/chunk.F2I7ERGM.js +1 -0
- package/dist/preview/{chunk.UWEFODVV.js → chunk.FCV3NX6L.js} +1 -1
- package/dist/preview/{chunk.NZ5TJKPT.js → chunk.FFTBUXKX.js} +2 -2
- package/dist/preview/chunk.FILBI7XA.js +1 -0
- package/dist/preview/{chunk.MGG5DH2S.js → chunk.FKSI5522.js} +1 -1
- package/dist/preview/{chunk.I3ADXJQW.js → chunk.FQ2QUDZS.js} +1 -1
- package/dist/preview/{chunk.A5ENJJZN.js → chunk.G2ZDDO3C.js} +1 -1
- package/dist/preview/{chunk.IPKODEOZ.js → chunk.GAVEWSXU.js} +1 -1
- package/dist/preview/chunk.GH6QX7JR.js +87 -0
- package/dist/preview/chunk.GMHBAS45.js +1 -0
- package/dist/preview/{chunk.YCMMATFK.js → chunk.GOVRX2YX.js} +1 -1
- package/dist/preview/chunk.GXK5PI7I.js +1 -0
- package/dist/preview/{chunk.RECTEAG4.js → chunk.GYP3EF6Z.js} +1 -1
- package/dist/preview/chunk.H2RVMT4Y.js +111 -0
- package/dist/preview/chunk.HCHGKI64.js +1 -0
- package/dist/preview/chunk.HE7SAJKZ.js +1 -0
- package/dist/preview/{chunk.WAIIXXVI.js → chunk.HIIYDKFC.js} +2 -2
- package/dist/preview/chunk.HPDUGKEF.js +32 -0
- package/dist/preview/{chunk.DGDOZHYK.js → chunk.HQRPOGTS.js} +1 -1
- package/dist/preview/chunk.HUJLELZ3.js +1 -0
- package/dist/preview/chunk.HVRUHRXR.js +1 -0
- package/dist/preview/{chunk.6KYTCEIH.js → chunk.I46VNAMS.js} +1 -1
- package/dist/preview/{chunk.QAERSZVB.js → chunk.ID4GOKT6.js} +1 -1
- package/dist/preview/{chunk.RJ7UV3XI.js → chunk.IZKCTF2R.js} +1 -1
- package/dist/preview/chunk.IZUAZ6EV.js +1 -0
- package/dist/preview/{chunk.ZIGW5VOT.js → chunk.J3CUBMUZ.js} +1 -1
- package/dist/preview/{chunk.3HFBHLXC.js → chunk.J4D4BIB4.js} +1 -1
- package/dist/preview/{chunk.IRPMGHZN.js → chunk.J7GH2CGV.js} +1 -1
- package/dist/preview/{chunk.SSHEFQ4R.js → chunk.JE4RBRKH.js} +1 -1
- package/dist/preview/{chunk.4BSEYZMS.js → chunk.JJSZLCNU.js} +1 -1
- package/dist/preview/{chunk.KV3N6VRG.js → chunk.JKX4J3KG.js} +1 -1
- package/dist/preview/{chunk.FUTSLXWN.js → chunk.JMXBMLKH.js} +1 -1
- package/dist/preview/chunk.JOB3EKS6.js +1 -0
- package/dist/preview/{chunk.5IM2X3VT.js → chunk.JP33TNCH.js} +1 -1
- package/dist/preview/{chunk.BZXJKWNI.js → chunk.K6EN2YR4.js} +1 -1
- package/dist/preview/chunk.K6YKXTKC.js +1 -0
- package/dist/preview/{chunk.A7JORJJL.js → chunk.KAIZDIRK.js} +1 -1
- package/dist/preview/{chunk.7LAXSQQY.js → chunk.KAQGSLC6.js} +3 -3
- package/dist/preview/{chunk.QG3LV4RH.js → chunk.KFYSKZC4.js} +1 -1
- package/dist/preview/{chunk.VBHV4TLG.js → chunk.KHRS2SKB.js} +1 -1
- package/dist/preview/chunk.KHVW6Q3T.js +1 -0
- package/dist/preview/chunk.KMFH26SS.js +1 -0
- package/dist/preview/{chunk.2T24FYAO.js → chunk.L3ST2YKI.js} +1 -1
- package/dist/preview/{chunk.HIJ72QX6.js → chunk.L6BLZJ6K.js} +1 -1
- package/dist/preview/{chunk.NCBUECIW.js → chunk.LG2BQ5LB.js} +1 -1
- package/dist/preview/{chunk.LZ3HO3HM.js → chunk.LLYHHG67.js} +1 -1
- package/dist/preview/{chunk.VKQONZKR.js → chunk.LPWANRBL.js} +1 -1
- package/dist/preview/{chunk.3MPLUSVY.js → chunk.LSS64NAA.js} +1 -1
- package/dist/preview/{chunk.SUYYDJGZ.js → chunk.MFNWHXGL.js} +1 -1
- package/dist/preview/{chunk.UJF6YTEO.js → chunk.MNH3WUAB.js} +1 -1
- package/dist/preview/chunk.MQ7AB5N4.js +1 -0
- package/dist/preview/{chunk.CZUUFO6A.js → chunk.MU5JK5TK.js} +1 -1
- package/dist/preview/{chunk.RXUL6P7Y.js → chunk.N5CACZ5F.js} +1 -1
- package/dist/preview/{chunk.S6IKR6RD.js → chunk.NFC2TYA6.js} +1 -1
- package/dist/preview/{chunk.TD2V74XU.js → chunk.NKRDVOLJ.js} +1 -1
- package/dist/preview/{chunk.SGYZM6ZU.js → chunk.NNK2E2EP.js} +1 -1
- package/dist/preview/{chunk.J65CZJIC.js → chunk.NVPKYWMF.js} +1 -1
- package/dist/preview/{chunk.DWMFLLJO.js → chunk.NWJ7ELHN.js} +1 -1
- package/dist/preview/{chunk.NKUNCQB3.js → chunk.O5P6LXHF.js} +1 -1
- package/dist/preview/{chunk.2MWEYNVH.js → chunk.OFK6673S.js} +1 -1
- package/dist/preview/{chunk.C4LC2UEU.js → chunk.OG6FEP3K.js} +1 -1
- package/dist/preview/{chunk.CZI6J5CE.js → chunk.OHGAZ3D5.js} +1 -1
- package/dist/preview/{chunk.XJ4JYROM.js → chunk.ONVYKLRX.js} +1 -1
- package/dist/preview/chunk.OQ3FKUP2.js +1 -0
- package/dist/preview/chunk.OUJV4CYS.js +1 -0
- package/dist/preview/{chunk.T552MHMU.js → chunk.OWHH7JDV.js} +1 -1
- package/dist/preview/{chunk.SCN6IYDG.js → chunk.OXDCGGZV.js} +1 -1
- package/dist/preview/{chunk.YIDNZTON.js → chunk.P3Z4ZCL3.js} +1 -1
- package/dist/preview/chunk.PF7XQ5R5.js +1 -0
- package/dist/preview/{chunk.FSZQTX3K.js → chunk.PGT4ZQDG.js} +4 -4
- package/dist/preview/chunk.PH547SON.js +1 -0
- package/dist/preview/chunk.PS765ODQ.js +3 -0
- package/dist/preview/{chunk.MZSWWMX6.js → chunk.PVAYYFT2.js} +1 -1
- package/dist/preview/{chunk.F5STM4DX.js → chunk.Q6WOIE5I.js} +1 -1
- package/dist/preview/{chunk.55C7WO4X.js → chunk.QE257AXE.js} +1 -1
- package/dist/preview/chunk.QKNC5OUC.js +1 -0
- package/dist/preview/chunk.QMGBAKX6.js +2 -0
- package/dist/preview/{chunk.4QBW46XV.js → chunk.QNFX5VHW.js} +1 -1
- package/dist/preview/chunk.QPCDAQTW.js +1 -0
- package/dist/preview/{chunk.TS5APXWC.js → chunk.QPTQIGLX.js} +1 -1
- package/dist/preview/{chunk.LZNHTROY.js → chunk.R5YGW5ZX.js} +1 -1
- package/dist/preview/{chunk.4VTUC5TF.js → chunk.RJ6KEVZC.js} +1 -1
- package/dist/preview/{chunk.6QMRDSTD.js → chunk.RKVMRP7B.js} +1 -1
- package/dist/preview/{chunk.YBQUP3KE.js → chunk.S7U2CHHG.js} +1 -1
- package/dist/preview/{chunk.CLJKQLK2.js → chunk.SD2UYSV6.js} +2 -2
- package/dist/preview/chunk.SI5GGFQR.js +1 -0
- package/dist/preview/{chunk.7QWGIGHM.js → chunk.SMF5S4DQ.js} +1 -1
- package/dist/preview/{chunk.LEZGBHPZ.js → chunk.SNDFIJVX.js} +1 -1
- package/dist/preview/{chunk.F5756PXX.js → chunk.STHWM422.js} +2 -2
- package/dist/preview/{chunk.JIEBGUCA.js → chunk.SV75TRCH.js} +1 -1
- package/dist/preview/{chunk.U2DZE7A5.js → chunk.SXGPRFA4.js} +1 -1
- package/dist/preview/{chunk.ZGJUCVT5.js → chunk.T3RFZ66S.js} +1 -1
- package/dist/preview/{chunk.I6HIVTXU.js → chunk.T6ISUVUP.js} +1 -1
- package/dist/preview/{chunk.R65YX332.js → chunk.TBLOBXZ2.js} +1 -1
- package/dist/preview/{chunk.CVVNHQPO.js → chunk.TDWJU6GW.js} +1 -1
- package/dist/preview/{chunk.2QALBEWP.js → chunk.THLT6NVO.js} +1 -1
- package/dist/preview/{chunk.7FTATAH2.js → chunk.TQCVEKPH.js} +1 -1
- package/dist/preview/{chunk.PAIBRJVZ.js → chunk.TQF5XCUS.js} +1 -1
- package/dist/preview/{chunk.F5XWYO5W.js → chunk.TRP66PHK.js} +1 -1
- package/dist/preview/chunk.TWXYI5AP.js +2 -0
- package/dist/preview/{chunk.IQCMV5WD.js → chunk.UOUQZYVD.js} +1 -1
- package/dist/preview/{chunk.FJXKQZZS.js → chunk.UPL3D3ZO.js} +1 -1
- package/dist/preview/{chunk.U5Q7EVZQ.js → chunk.UXW43HNW.js} +1 -1
- package/dist/preview/{chunk.ZOSTOVXR.js → chunk.V4GSVXSV.js} +1 -1
- package/dist/preview/chunk.VCEDSOAK.js +1 -0
- package/dist/preview/{chunk.4O3STSC4.js → chunk.VE4AQFLW.js} +1 -1
- package/dist/preview/{chunk.HMV4ILAC.js → chunk.VGQDPEB5.js} +1 -1
- package/dist/preview/{chunk.5A5DI36V.js → chunk.VMYXBFPE.js} +1 -1
- package/dist/preview/{chunk.BQWMHHAZ.js → chunk.VNI6HZEF.js} +2 -2
- package/dist/preview/chunk.VQRY2NQ6.js +1 -0
- package/dist/preview/{chunk.K6EKSURO.js → chunk.VUE6ILQV.js} +1 -1
- package/dist/preview/{chunk.3KF5RYPW.js → chunk.W2VSEEKX.js} +1 -1
- package/dist/preview/{chunk.KP7HUXH5.js → chunk.WAPY4RCS.js} +1 -1
- package/dist/preview/chunk.WFRSGGU5.js +1 -0
- package/dist/preview/{chunk.XAN7QXMQ.js → chunk.WIVNFOQR.js} +1 -1
- package/dist/preview/chunk.WRIBFLVG.js +1 -0
- package/dist/preview/{chunk.TVNY7F64.js → chunk.WWD2TS47.js} +1 -1
- package/dist/preview/{chunk.5W7EGQCQ.js → chunk.WWFOQDPR.js} +2 -2
- package/dist/preview/{chunk.FBDCHJS2.js → chunk.X45EITTK.js} +1 -1
- package/dist/preview/{chunk.5FQHZVE3.js → chunk.X5MCAUFX.js} +1 -1
- package/dist/preview/{chunk.IJVR7ZL7.js → chunk.XBWFQ54R.js} +1 -1
- package/dist/preview/{chunk.JPJHM62B.js → chunk.XMBGT6UT.js} +1 -1
- package/dist/preview/chunk.XP4IVKKR.js +1 -0
- package/dist/preview/chunk.XYBWBMNU.js +1 -0
- package/dist/preview/{chunk.MYR36HW4.js → chunk.YC2IDHQX.js} +1 -1
- package/dist/preview/{chunk.ZQSV5XVB.js → chunk.YCYJHPWS.js} +1 -1
- package/dist/preview/{chunk.BJ3G7J2Z.js → chunk.YF5GCOSZ.js} +3 -2
- package/dist/preview/{chunk.3I2SGKKF.js → chunk.YGGBGHZU.js} +1 -1
- package/dist/preview/chunk.YRC6PKXP.js +1 -0
- package/dist/preview/{chunk.6NYSB6OZ.js → chunk.YRN67Z5K.js} +1 -1
- package/dist/preview/chunk.ZDUKVXBI.js +5 -0
- package/dist/preview/index.html +55 -55
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.2QOB62XU.js +0 -1
- package/dist/preview/chunk.36FKQJFM.js +0 -2
- package/dist/preview/chunk.3A3DCALP.js +0 -1
- package/dist/preview/chunk.3GPYKWAD.js +0 -1
- package/dist/preview/chunk.3QPMFUMV.js +0 -1
- package/dist/preview/chunk.3ZP6IDUC.js +0 -1
- package/dist/preview/chunk.53HW224Y.js +0 -1
- package/dist/preview/chunk.AW74DZ5V.js +0 -17
- package/dist/preview/chunk.C67TMA4U.js +0 -111
- package/dist/preview/chunk.CCCSZRKU.js +0 -1
- package/dist/preview/chunk.CUA7F3YJ.js +0 -25
- package/dist/preview/chunk.DBSSCJQM.js +0 -1
- package/dist/preview/chunk.DW6KXAUM.js +0 -1
- package/dist/preview/chunk.DWPM7AWA.js +0 -1
- package/dist/preview/chunk.FXCKKVT5.js +0 -1
- package/dist/preview/chunk.HHQUCFN4.js +0 -1
- package/dist/preview/chunk.HPWMCS3H.js +0 -23
- package/dist/preview/chunk.HRLCDBMO.js +0 -1
- package/dist/preview/chunk.I7ODVOO5.js +0 -1
- package/dist/preview/chunk.IANOWT3Z.js +0 -1
- package/dist/preview/chunk.IFPJPJ4M.js +0 -1
- package/dist/preview/chunk.IUVRJDL3.js +0 -5
- package/dist/preview/chunk.J4CSY2D5.js +0 -2
- package/dist/preview/chunk.JJIKTTXB.js +0 -1
- package/dist/preview/chunk.KDOJC4FX.js +0 -1
- package/dist/preview/chunk.KJAOJTZZ.js +0 -1
- package/dist/preview/chunk.KLZPUTMU.js +0 -1
- package/dist/preview/chunk.LQ2PDW2M.js +0 -32
- package/dist/preview/chunk.M7DJJRFH.js +0 -1
- package/dist/preview/chunk.MNWP3TPN.js +0 -1
- package/dist/preview/chunk.MSWOETXN.js +0 -1
- package/dist/preview/chunk.NILR2BWR.js +0 -1
- package/dist/preview/chunk.NNYKLENL.js +0 -1
- package/dist/preview/chunk.PYGNO2AV.js +0 -87
- package/dist/preview/chunk.PZHCWMKT.js +0 -1
- package/dist/preview/chunk.QQUZ5RTQ.js +0 -1
- package/dist/preview/chunk.QVID5WHS.js +0 -1
- package/dist/preview/chunk.RHV73CBA.js +0 -3
- package/dist/preview/chunk.RP6C2IUM.js +0 -1
- package/dist/preview/chunk.RPHZY7N4.js +0 -1
- package/dist/preview/chunk.RSMCTI2N.js +0 -1
- package/dist/preview/chunk.S4QSZRKH.js +0 -1
- package/dist/preview/chunk.T4QRIJE4.js +0 -1
- package/dist/preview/chunk.UJM5EZDM.js +0 -3
- package/dist/preview/chunk.UJPX3BUV.js +0 -1
- package/dist/preview/chunk.UYBSVE2W.js +0 -1
- package/dist/preview/chunk.WMZ2BINI.js +0 -1
- package/dist/preview/chunk.X2RHBTJI.js +0 -1
- package/dist/preview/chunk.X3FPVFFB.js +0 -1
- package/dist/preview/chunk.X4PFLIXB.js +0 -1
- package/dist/preview/chunk.YR7DKU5T.js +0 -1
- package/dist/preview/chunk.ZBK3FCVE.js +0 -1
- package/dist/preview/chunk.ZH5L746C.js +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as U,b as X,c as Y}from"./chunk.JOB3EKS6.js";import"./chunk.GYP3EF6Z.js";import{a as E,b as Q}from"./chunk.MB7LKKUD.js";import{a as J}from"./chunk.2TTKQAWQ.js";import"./chunk.CJHCUHVN.js";import"./chunk.DCIYOZYP.js";import"./chunk.O5P6LXHF.js";import"./chunk.VGQDPEB5.js";import"./chunk.WIVNFOQR.js";import"./chunk.53GQQETN.js";import"./chunk.J7GH2CGV.js";import"./chunk.SMF5S4DQ.js";import"./chunk.XP4IVKKR.js";import"./chunk.R5YGW5ZX.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{D as F,E as _,G as ne,Qa as G,_ as K,_a as A,ja as W}from"./chunk.ASNVH2G4.js";import{a as D}from"./chunk.SDO3U72B.js";import{oa as H,zd as V}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as k}from"./chunk.AJZBJBMO.js";var r=k(ne(),1);var a=k(K(),1);function le(t){let n=[];return t.applied.length>0&&t.intent&&n.push(`${t.intent}.`),t.unchanged.length>0&&n.push(`${t.unchanged.length} already so.`),t.allOrNothing&&n.push("None of it was kept."),n.join(" ")}var ie=G(D(()=>(__graviewPreload(import.meta.url,["./chunk.GMHBAS45.js","./chunk.4VX7GPFS.js","./chunk.FQ2QUDZS.js","./chunk.BJUUSIQY.js","./chunk.VGQDPEB5.js","./chunk.6YKKZI4H.js","./chunk.WIVNFOQR.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.SMF5S4DQ.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.YCYJHPWS.js")))),oe=ie.part((t,n)=>(0,a.jsx)(t.SeveralAi,{...n}),{quiet:!0});function se(t){let n=W()?.ai;return!F(n)||!_(n)?null:(0,a.jsx)(r.Suspense,{fallback:null,children:(0,a.jsx)(oe,{...t})})}function we({store:t,chosen:n,principal:d,context:c,via:N,anchor:O,of:f,onChooseAll:P,onClear:w,onActed:Z}){let[L,ee]=(0,r.useState)(0);(0,r.useEffect)(()=>t.subscribe(()=>ee(e=>e+1)),[t]);let g=n.join(`
|
|
2
|
+
`),{acts:p,withheld:$}=(0,r.useMemo)(()=>U(t,n,{...d?{principal:d}:{},...c?{context:c}:{}}),[t,g,d,c,L]),[M,h]=(0,r.useState)(!1),[o,u]=(0,r.useState)(null),[v,C]=(0,r.useState)(null),y=(0,r.useRef)(null),R=(0,r.useId)(),b=(0,r.useMemo)(()=>[...new Set(n.map(e=>t.graph.getNode(e)?.kind))],[t,g]),s=(0,r.useMemo)(()=>n.filter(e=>t.graph.has(e)),[t,g,L]),ae=b.length===1&&b[0]?`${H(t.schema,b[0],n.length)} chosen`:`${n.length} chosen`,T=typeof matchMedia=="function"&&matchMedia("(pointer: coarse), (max-width: 599px)").matches?2:3,z=p.filter(e=>!e.more),te=z.slice(0,T),I=[...z.slice(T),...p.filter(e=>e.more)];(0,r.useEffect)(()=>{u(null),h(!1)},[g]),(0,r.useLayoutEffect)(()=>{let e=y.current;if(!e)return;if(typeof e.showPopover=="function"&&!A(e))try{e.showPopover()}catch{}let l=()=>{Q(e,O?.()??null),dispatchEvent(new Event(E))};l(),addEventListener("resize",l),addEventListener("scroll",l,!0);let i=typeof ResizeObserver=="function"?new ResizeObserver(l):null;return i?.observe(e),()=>{if(i?.disconnect(),removeEventListener("resize",l),removeEventListener("scroll",l,!0),e.isConnected&&A(e))try{e.hidePopover()}catch{}dispatchEvent(new Event(E))}},[O]);let x=(0,r.useRef)({asking:o,onClear:w});x.current={asking:o,onClear:w},(0,r.useEffect)(()=>{let e=l=>{if(l.key!=="Escape"||l.defaultPrevented)return;let i=document.activeElement;if(!(!(y.current?.contains(i)??!1)&&(i instanceof HTMLTextAreaElement||i instanceof HTMLInputElement&&i.type!=="checkbox"||i instanceof HTMLSelectElement))){if(l.preventDefault(),l.stopPropagation(),x.current.asking){u(null);return}x.current.onClear()}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[]);let q=(e,l={})=>{let i={...e.args,...l},S=e.open.length>0?X(t,{...e,args:i,open:[]},s,d).applies:e.applies,m=Y(t,{mutation:e.mutation,subject:e.subject,args:i,label:e.label},S.length>0?S:s,{...d?{author:d}:{},...N?{via:N}:{},...c?{context:c}:{}});u(null),h(!1),C(m.refused.length>0||m.applied.length===0?m:null),Z(m.refused.map(re=>re.id))},B=e=>{C(null),h(!1),e.open.length>0?u(e):q(e)},j=e=>(0,a.jsxs)("button",{type:"button",className:"graview-several-act","data-testid":"several-act","data-act":e.id,"data-mutation":e.mutation,"data-applies":e.applies.length,...e.destructive?{"data-tone":"warn"}:{},"aria-pressed":o?.id===e.id?!0:void 0,onClick:()=>B(e),children:[e.label,e.open.length>0?"\u2026":"",e.applies.length<s.length?(0,a.jsx)("span",{className:"graview-several-act-count",children:` \u2014 ${e.applies.length} of ${s.length}`}):null]},e.id);return(0,a.jsxs)("div",{ref:y,popover:"manual",role:"region","aria-label":"The chosen records",className:"graview-several-bar","data-testid":"several-bar","data-graview-foot":"","data-graview-overlay":"","data-graview-popover":"","data-graview-offstage":"",style:de,children:[(0,a.jsx)("style",{children:ve}),(0,a.jsxs)("div",{className:"graview-several-line",children:[(0,a.jsx)("span",{role:"status","aria-live":"polite",className:"graview-several-count","data-testid":"several-count",children:ae}),(0,a.jsxs)("div",{role:"group","aria-label":`What to do with the ${n.length} chosen`,className:"graview-several-acts",children:[te.map(j),I.length>0?(0,a.jsx)("button",{type:"button",className:"graview-several-act","data-testid":"several-more","aria-expanded":M,"aria-controls":R,onClick:()=>h(e=>!e),children:"More"}):null,P&&f!==void 0&&f>n.length?(0,a.jsxs)("button",{type:"button",className:"graview-several-quiet","data-testid":"several-all",onClick:P,children:["Choose all ",f]}):null,(0,a.jsx)("button",{type:"button",className:"graview-several-quiet","data-testid":"several-clear","aria-keyshortcuts":"Escape",title:"Put the choice down \u2014 Escape",onClick:w,children:"Clear"})]})]}),p.length>0&&n.length>1?(0,a.jsx)(se,{chosen:n,acts:p,onAct:B}):null,M?(0,a.jsx)("div",{id:R,role:"group","aria-label":"More",className:"graview-several-acts","data-testid":"several-more-acts",children:I.map(j)}):null,p.length===0?(0,a.jsx)("p",{className:"graview-several-said","data-testid":"several-none",children:$.length>0?`Nothing here can be done to all of them by you: ${$[0].message}`:"Nothing can be done to all of these at once."}):null,o?(0,a.jsx)("div",{className:"graview-several-ask",role:"group","aria-label":o.applies.length<s.length?`${o.label}, for ${o.applies.length} of the ${s.length}`:`${o.label}, for all ${s.length}`,"data-testid":"several-ask",children:(0,a.jsx)(J,{store:t,affordance:o.affordance,onApply:e=>q(o,e),onCancel:()=>u(null)})}):null,v?(0,a.jsxs)("div",{role:"alert",className:"graview-several-said","data-testid":"several-outcome",children:[le(v),v.refused.length>0?(0,a.jsxs)(a.Fragment,{children:[" ",v.refused.length===1?"One was not changed, and is still chosen:":`${v.refused.length} were not changed, and are still chosen:`,(0,a.jsx)("ul",{"data-testid":"several-refused",children:v.refused.map(e=>(0,a.jsxs)("li",{"data-record":e.id,children:["\u201C",e.label,"\u201D \u2014 ",e.message]},e.id))})]}):null]}):null]})}var de={position:"fixed",inset:"auto",margin:0,zIndex:V("toast"),boxSizing:"border-box",width:"max-content",height:"auto",bottom:"calc(16px + env(safe-area-inset-bottom, 0px))",left:16,overflow:"visible"},ve=`
|
|
3
|
+
.graview-several-bar{display:grid;gap:8px;padding:8px 10px;border:1px solid var(--graview-edge);border-radius:var(--graview-radius,12px);background:var(--graview-float);color:var(--graview-ink);box-shadow:var(--graview-lift-high);font-size:.875rem;line-height:1.4;max-height:70vh;overflow:auto}
|
|
4
|
+
.graview-several-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-width:0}
|
|
5
|
+
.graview-several-count{font-weight:600;white-space:nowrap}
|
|
6
|
+
.graview-several-acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
|
|
7
|
+
.graview-several-act,.graview-several-quiet{min-height:32px;padding:0 12px;border-radius:8px;font:inherit;cursor:pointer;box-shadow:none}
|
|
8
|
+
.graview-several-act{border:1px solid var(--graview-edge);background:transparent;color:var(--graview-ink);font-weight:600}
|
|
9
|
+
.graview-several-act:hover,.graview-several-act[aria-pressed=true],.graview-several-act[aria-expanded=true]{background:color-mix(in srgb,var(--graview-accent) 14%,transparent)}
|
|
10
|
+
.graview-several-act[data-tone=warn]{color:var(--graview-warn)}
|
|
11
|
+
.graview-several-quiet{border:0;background:none;color:var(--graview-ink-muted);text-decoration:underline;text-underline-offset:2px}
|
|
12
|
+
.graview-several-bar :focus-visible{outline:2px solid var(--graview-accent);outline-offset:2px}
|
|
13
|
+
.graview-several-said{margin:0;max-width:52ch;overflow-wrap:anywhere}
|
|
14
|
+
.graview-several-said ul{margin:4px 0 0;padding-left:18px}
|
|
15
|
+
.graview-several-ask{padding:8px 4px 2px;border-top:1px solid var(--graview-edge)}
|
|
16
|
+
@media (pointer: coarse){.graview-several-act,.graview-several-quiet{min-height:44px}}
|
|
17
|
+
`;export{we as SeveralBar};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import"./chunk.HIIYDKFC.js";import{a as _,b as me,c as he,e as fe}from"./chunk.F2BZ4SC4.js";import"./chunk.WAPY4RCS.js";import"./chunk.JMXBMLKH.js";import"./chunk.PVAYYFT2.js";import"./chunk.HJCQ6I3S.js";import{a as we,d as ve}from"./chunk.QNFX5VHW.js";import"./chunk.UXW43HNW.js";import{d as ye}from"./chunk.L3ST2YKI.js";import"./chunk.7VCYVCYM.js";import{a as ce}from"./chunk.MFNWHXGL.js";import"./chunk.DCIYOZYP.js";import"./chunk.JP33TNCH.js";import"./chunk.BIDL7GQD.js";import"./chunk.O5P6LXHF.js";import"./chunk.VGQDPEB5.js";import"./chunk.WIVNFOQR.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.7DCBIMOI.js";import"./chunk.GXK5PI7I.js";import"./chunk.DYPSFTRP.js";import"./chunk.WVUJXDXZ.js";import"./chunk.J7GH2CGV.js";import"./chunk.SMF5S4DQ.js";import"./chunk.XP4IVKKR.js";import"./chunk.R5YGW5ZX.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import"./chunk.MIE4TJRW.js";import{p as pe,s as K}from"./chunk.DEBW4FH6.js";import"./chunk.RD2FSSLV.js";import{a as ue}from"./chunk.OWHH7JDV.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import"./chunk.P3Z4ZCL3.js";import{b as de}from"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import{t as ge}from"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{G as Ee,K as L,Va as le,Wa as W,_ as ie,ba as se,ia as P,j as N,ka as $,l as ae,m as q,r as C,v as re,va as G,z as oe}from"./chunk.ASNVH2G4.js";import"./chunk.SDO3U72B.js";import{Z as V,la as I,ma as B,oa as F,qa as M,va as te,zd as ne}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as D}from"./chunk.AJZBJBMO.js";var p=D(Ee(),1);var e=D(ie(),1),Ae=ge.part((t,s)=>(0,e.jsx)(t.ProblemRows,{...s}),{what:"The problems",as:"li"}),R="var(--graview-gap, 8px)",Re=720;function je({showing:t}){return t.what==="lens"?(0,e.jsx)(Ne,{kind:t.kind},`lens:${t.kind}`):t.what==="record"?(0,e.jsx)(Ie,{id:t.id},`record:${t.id}`):(0,e.jsx)($e,{kind:t.kind},`district:${t.kind}`)}var U=[{height:"52%",share:.52,said:"Half of the screen"},{height:"66%",share:.66,said:"Two thirds of the screen"},{height:"calc(100% - 56px)",share:1,said:"Nearly all of the screen"}],xe=1,be=xe;function Ce(){let[t,s]=(0,p.useState)(be);return[t,n=>{be=n,s(n)}]}var Pe=t=>U.map(s=>s.share===1?t-56:t*s.share);function Te({region:t,rest:s,setRest:n,label:i}){let l=(0,p.useRef)(null),c=o=>n(Math.max(0,Math.min(2,o)));return(0,e.jsx)("div",{role:"separator","aria-orientation":"horizontal","aria-label":`How much of the screen ${i} takes`,"aria-valuemin":0,"aria-valuemax":2,"aria-valuenow":s,"aria-valuetext":U[s].said,tabIndex:0,"data-testid":"map-panel-handle","data-graview-rest":s,title:"Drag to see more or less of the map",onKeyDown:o=>{let r=o.key==="ArrowUp"?s+1:o.key==="ArrowDown"?s-1:o.key==="Home"?0:o.key==="End"?2:null;r!==null&&(o.preventDefault(),c(r))},onPointerDown:o=>{let r=t.current,u=r?.parentElement?.getBoundingClientRect().height??0;if(!(!r||u<=0||o.button!==0)){o.stopPropagation(),l.current={id:o.pointerId,from:o.clientY,height:r.getBoundingClientRect().height,rests:Pe(u)},r.style.transition="none";try{o.currentTarget.setPointerCapture(o.pointerId)}catch{}}},onPointerMove:o=>{let r=l.current,u=t.current;if(!r||!u||o.pointerId!==r.id)return;let g=r.rests;u.style.height=`${Math.round(Math.max(g[0]-24,Math.min(g[2],r.height+r.from-o.clientY)))}px`},onPointerUp:o=>{let r=l.current,u=t.current;if(l.current=null,!r||!u)return;let g=u.getBoundingClientRect().height;u.style.transition="",u.style.height="",Math.abs(o.clientY-r.from)<6?c(s===2?xe:s+1):c(r.rests.reduce((f,d,w)=>Math.abs(d-g)<Math.abs(r.rests[f]-g)?w:f,0))},onPointerCancel:()=>{let o=t.current;l.current=null,o&&(o.style.transition="",o.style.height="")},style:{flex:"0 0 auto",display:"flex",justifyContent:"center",alignItems:"center",height:22,cursor:"ns-resize",touchAction:"none"},children:(0,e.jsx)("span",{"aria-hidden":"true",style:{width:40,height:4,borderRadius:2,background:"var(--graview-edge-strong, var(--graview-edge))"}})})}function X({label:t,wide:s,testId:n,head:i,onClose:l,children:c}){let o=(0,p.useRef)(null),[r,u]=(0,p.useState)(!1),[g,f]=Ce(),d=U[g].height;(0,p.useLayoutEffect)(()=>{let v=o.current?.parentElement;if(!v)return;let S=()=>u(v.getBoundingClientRect().width<Re);if(S(),typeof ResizeObserver>"u")return;let h=new ResizeObserver(S);return h.observe(v),()=>h.disconnect()},[]);let w=(0,p.useRef)(l);return w.current=l,(0,p.useEffect)(()=>{let v=k=>{if(k.key!=="Escape"||k.defaultPrevented)return;let A=document.activeElement;A instanceof HTMLInputElement||A instanceof HTMLTextAreaElement||document.querySelector("[data-graview-popover]:popover-open")||S||w.current()},S=!1,h=()=>{S=document.querySelector('[data-testid="following-who"]')!==null};return window.addEventListener("keydown",h,!0),document.addEventListener("keydown",v),()=>{window.removeEventListener("keydown",h,!0),document.removeEventListener("keydown",v)}},[]),(0,e.jsxs)("section",{ref:o,"aria-label":t,"data-testid":n,"data-graview-map-panel":r?"sheet":"dock","data-graview-overlay":"","data-graview-offstage":"",className:"graview-map-panel",style:{position:"absolute",zIndex:ne("rail"),boxSizing:"border-box",display:"flex",flexDirection:"column",background:"var(--graview-panel)",color:"var(--graview-ink)",overflow:"hidden",border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",boxShadow:"var(--graview-lift-high)",...r?{left:R,right:R,bottom:`calc(${R} + env(safe-area-inset-bottom, 0px))`,height:d,transition:"height 180ms ease-out"}:{top:R,right:R,bottom:R,width:s}},children:[r?(0,e.jsx)("style",{children:`:has(> [data-graview-map-panel="sheet"]) { --graview-sheet: calc(${d} + 2 * ${R} + env(safe-area-inset-bottom, 0px)); }`}):(0,e.jsx)("style",{children:`:has(> [data-graview-map-panel="dock"]) { --graview-dock: calc(${s} + 2 * ${R}); }`}),r?(0,e.jsx)(Te,{region:o,rest:g,setRest:f,label:t}):null,(0,e.jsxs)("header",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:r?"4px 14px 10px 18px":"14px 14px 10px 18px",borderBottom:"1px solid var(--graview-edge)"},children:[(0,e.jsx)("div",{style:{flex:"1 1 auto",minWidth:0},children:i}),(0,e.jsx)("button",{type:"button","data-testid":"map-panel-close","aria-label":"Close",title:"Close (Escape)",onClick:l,style:{flex:"0 0 auto",minWidth:32,height:32,borderRadius:8,fontSize:"1.1rem",lineHeight:1},children:"\xD7"})]}),(0,e.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflow:"auto"},children:c})]})}var J={fontSize:"0.75rem",letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},Q={margin:"2px 0 0",fontSize:"1.125rem",fontWeight:600,lineHeight:1.3,overflowWrap:"anywhere"},Z={margin:"4px 0 0",fontSize:"0.875rem",color:"var(--graview-ink-muted)"},j={margin:"14px 18px 6px",fontSize:"0.8125rem",fontWeight:600,color:"var(--graview-ink-muted)"},z={listStyle:"none",margin:0,padding:"0 10px 6px"},Y={all:"unset",outline:"revert-layer",boxSizing:"border-box",display:"flex",alignItems:"baseline",gap:8,width:"100%",padding:"6px 8px",borderRadius:6,cursor:"pointer",fontSize:"0.875rem"},H={minHeight:30,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem"};function ee(){let{setSelection:t,setMenuAt:s}=P();return(n,i)=>{n.preventDefault(),t([i]),s({x:n.clientX,y:n.clientY,on:i})}}function Se({on:t,about:s}){let{setSelection:n,setMenuAt:i}=P();return(0,e.jsx)("button",{type:"button","data-testid":"map-panel-acts","aria-label":`What can be done with ${s}`,"aria-haspopup":"menu",style:H,onClick:l=>{let c=l.currentTarget.getBoundingClientRect();n([t]),i({x:Math.round(c.left),y:Math.round(c.bottom+4),on:t})},children:"Acts\u2026"})}var ke=(t,s)=>({...N(q(t,!1),s),relation:null});function Me(t,s){let n=`[data-graview-stage] [data-graview-view="${CSS.escape(t)}"][tabindex]`,i=null;for(let r=s?.parentElement??null;r&&!i;r=r.parentElement)i=r.querySelector(".graview-ground");i??=document.querySelector(".graview-ground");let l=i!==null&&!i.hasAttribute("tabindex");i&&l&&(i.setAttribute("tabindex","-1"),i.addEventListener("focusout",r=>{r.target===i&&i.removeAttribute("tabindex")},{once:!0})),i?.focus({preventScroll:!0});let c=performance.now()+5e3,o=()=>{let r=document.activeElement;if(!(r===null||r===document.body||r===document.documentElement||r===s||r===i))return;let g=document.querySelector(n);if(g&&g.isConnected&&!g.closest("[inert]"))return g.focus({preventScroll:!0});performance.now()<c&&requestAnimationFrame(o)};requestAnimationFrame(o)}function Ne({kind:t}){let s=ee(),{store:n,views:i,view:l,selection:c,setSelection:o}=P(),{go:r}=W(),u=$(),g=l.within?.view,f=i.places().filter(b=>b.kind===t),d=(g!==void 0?f.find(b=>b.as===g):void 0)??f.at(-1),w=i.resolve(t,{cardinality:"many",fidelity:"full"},d?.as??g),v=w?.view,S=n.schema.tryDefinition(t),h=(0,p.useMemo)(()=>n.graph.nodesOfKind(t).filter(b=>l.past===!0||I(S,b)),[n,t,u,l.past,S]),k=w?.title??d?.title??M(n.schema,t),A=v!==void 0&&G(v),m=c.filter(b=>n.graph.getNode(b)!==void 0),y=ue();return(0,e.jsxs)(X,{label:k,testId:"lens-panel",wide:"min(max(440px, 46%), 760px)",onClose:()=>r(ae(N(l,null),"view",null)),head:A?null:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:J,children:M(n.schema,t)}),(0,e.jsx)("h2",{style:Q,"data-testid":"lens-panel-title",children:k}),(0,e.jsxs)("p",{style:Z,children:[F(n.schema,t,h.length),S?.description?` \xB7 ${S.description}`:""]}),d?(0,e.jsx)("div",{style:{marginTop:10},children:(0,e.jsx)("button",{type:"button","data-testid":"lens-panel-open",style:H,title:`Open ${k} on its own`,onClick:()=>r(oe(l,t,d.as)),children:"Open \u2197"})}):null]}),children:[(0,e.jsx)("style",{children:`.graview-ground[data-graview-altitude] .graview-plot:not([data-graview-plot="${C(t)}"]) { opacity: 0.35; }
|
|
2
|
+
.graview-ground[data-graview-altitude] [data-graview-view^="kind:"]:not([data-graview-view="${C(t)}"]) { opacity: 0.4; }`}),(0,e.jsx)("div",{"data-graview-lens":d?.as??"",style:{padding:"8px 12px 16px",minHeight:"100%",boxSizing:"border-box",display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"minmax(0, 1fr)",alignItems:"start"},onClick:b=>{let a=L(b.target);if(!a||n.graph.getNode(a)===void 0)return;let x=b.target.closest("button, a, input, select, textarea, [contenteditable='true']");x&&!x.hasAttribute("data-graview-pick")||o([a])},onDoubleClick:b=>{let a=L(b.target);!a||n.graph.getNode(a)===void 0||r(ke(l,a))},onContextMenu:b=>{let a=L(b.target);!a||n.graph.getNode(a)===void 0||s(b,a)},children:v?(0,e.jsx)(ce.Provider,{value:k,children:(0,e.jsx)(se,{mode:"fullscreen",children:(0,e.jsx)(K,{kind:t,...w?.title?{view:w.title}:{},children:(0,e.jsx)(v,{nodes:h,label:k,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1,...m.length>0?{implicated:m}:{},...y.length>0?{flagged:y}:{}})})})}):null})]})}function He(t,s,n,i){let l=i(n),c=new Map;for(let o of s){let r=o.from===n;if(!r&&o.to!==n)continue;let u=r?o.to:o.from,g=i(u);if(g===void 0||l===void 0)continue;let f=`${o.kind}|${r?"out":"in"}|${g}`,d=c.get(f);if(d){d.others.includes(u)||d.others.push(u);continue}c.set(f,{key:f,edge:o.kind,words:de(t,r?l:g,o.kind,r?"out":"in"),kind:g,others:[u]})}return[...c.values()]}function Ie({id:t}){let s=ee(),{store:n,views:i,view:l,setSelection:c}=P(),{go:o}=W(),r=$(),u=n.graph.getNode(t),g=m=>n.graph.getNode(m)?.kind,f=(0,p.useMemo)(()=>He(n.schema,n.graph.allEdges(),t,g),[n,t,r]);if(!u)return null;let d=u.kind,w=m=>{let y=n.graph.getNode(m);return y?B(n.schema.tryDefinition(y.kind),y):m},v=te(n.schema.tryDefinition(d),d),h=i.resolve(d,{cardinality:"one",fidelity:"full"})?.view,k=h!==void 0&&!G(h),A=()=>l.focusId===t?o({...N(l,null),selection:[]}):c([]);return(0,e.jsxs)(X,{label:`${w(t)}: its links`,testId:"record-panel",wide:k?"min(max(440px, 46%), 760px)":"min(360px, 40%)",onClose:A,head:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:J,children:v}),(0,e.jsx)("h2",{style:Q,"data-testid":"record-panel-title",children:w(t)}),(0,e.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:10},children:[(0,e.jsx)("button",{type:"button","data-testid":"record-panel-go",style:H,onClick:m=>{o(ke(l,t)),Me(t,m.currentTarget)},children:"Go to it"}),(0,e.jsx)(Se,{on:t,about:w(t)}),(0,e.jsxs)("button",{type:"button","data-testid":"record-panel-district",style:H,onClick:()=>c([C(d)]),children:["All ",M(n.schema,d).toLowerCase()]})]})]}),children:[(0,e.jsx)("div",{"data-graview-record-card":t,style:{padding:"8px 18px 0"},children:k?(0,e.jsx)(K,{kind:d,children:(0,e.jsx)(h,{node:u,fidelity:"full",cardinality:"one",mode:"fullscreen",selected:!1})}):(0,e.jsx)(ye,{id:t,shown:[w(t)]})}),f.length===0?(0,e.jsx)("p",{style:{...Z,margin:"14px 18px"},children:"No links yet."}):null,f.map(m=>(0,e.jsxs)("section",{"aria-label":m.words,"data-graview-links":m.edge,children:[(0,e.jsxs)("h3",{style:j,children:[m.words.charAt(0).toUpperCase()+m.words.slice(1)," ",(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-faint)"},children:["\xB7 ",m.others.length]})]}),(0,e.jsx)("ul",{style:z,children:m.others.map(y=>(0,e.jsx)("li",{children:(0,e.jsxs)("button",{type:"button",className:"graview-map-panel-row","data-graview-record":y,style:Y,onClick:()=>c([y]),onContextMenu:T=>s(T,y),children:[(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflowWrap:"anywhere"},children:w(y)}),m.kind!==d?null:(0,e.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:v})]})},y))})]},m.key))]})}var Le=24;function $e({kind:t}){let s=ee(),{store:n,view:i,setSelection:l,setEmphasis:c}=P(),{go:o}=W(),r=$(),[u,g]=(0,p.useState)(""),f=n.schema.tryDefinition(t),d=(0,p.useMemo)(()=>n.graph.nodesOfKind(t).filter(a=>i.past===!0||I(f,a)).map(a=>({id:a.id,name:B(f,a)})).sort((a,x)=>a.name.localeCompare(x.name)),[n,t,r,i.past,f]),w=(0,p.useMemo)(()=>{let a=E=>{let O=n.graph.getNode(E);return O!==void 0&&(i.past===!0||I(n.schema.tryDefinition(O.kind),O))},x=n.graph.allEdges().filter(E=>a(E.from)&&a(E.to));return we(x,E=>n.graph.getNode(E)?.kind).filter(E=>E.from===t||E.to===t)},[n,t,r,i.past]);(0,p.useEffect)(()=>()=>c(null),[c]);let v=le(),S=pe().marks.flag,h=(0,p.useMemo)(()=>{let a=new Set(d.map(x=>x.id));return v.filter(x=>x.nodeIds.some(E=>a.has(E)))},[v,d]),k=(0,p.useMemo)(()=>[...new Set(h.flatMap(a=>a.nodeIds))].filter(a=>n.graph.getNode(a)?.kind===t).slice(0,300),[h,n,t]),A=(0,p.useRef)(null),m=(0,p.useSyncExternalStore)(me,_,_);(0,p.useEffect)(()=>{m?.kind!==t||h.length===0||(A.current?.scrollIntoView?.({block:"start"}),A.current?.focus({preventScroll:!0}))},[m?.n,m?.kind,t,h.length>0]),(0,p.useEffect)(()=>()=>{he(),setTimeout(()=>{let a=document.activeElement;if(a&&a!==document.body)return;let x=CSS.escape(t);document.querySelector(`[data-testid="district-problems-${x}"]`)?.focus({preventScroll:!0})??document.querySelector(`[data-graview-view="${C(t).replace(/["\\]/g,"\\$&")}"]`)?.focus({preventScroll:!0})},0)},[t]);let y=M(n.schema,t),T=u.trim().toLowerCase(),b=T?d.filter(a=>a.name.toLowerCase().includes(T)):d;return(0,e.jsxs)(X,{label:y,testId:"district-panel",wide:"min(360px, 40%)",onClose:()=>l([]),head:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:J,children:"District"}),(0,e.jsx)("h2",{style:Q,"data-testid":"district-panel-title",children:y}),(0,e.jsxs)("p",{style:Z,children:[F(n.schema,t,d.length),f?.description?` \xB7 ${f.description}`:""]}),(0,e.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:10},children:[(0,e.jsx)("button",{type:"button","data-testid":"district-panel-go",style:H,onClick:()=>o({...N(q(i,!1),re(t)),relation:null}),children:"Go in"}),(0,e.jsx)(Se,{on:C(t),about:`the ${y.toLowerCase()}`})]})]}),children:[h.length>0?(0,e.jsxs)("section",{"aria-label":"Problems","data-testid":"district-problems","data-graview-problems":h.length,children:[(0,e.jsx)("style",{children:`${k.map(a=>`.graview-ground[data-graview-altitude] .graview-building[data-graview-building="${CSS.escape(a)}"] polygon`).join(`,
|
|
3
|
+
`)} { stroke: var(--graview-accent); stroke-width: 2.2; stroke-opacity: 1; }`}),(0,e.jsxs)("h3",{ref:A,tabIndex:-1,"data-testid":"district-problems-heading",style:{display:"flex",alignItems:"baseline",gap:8,margin:0,padding:"14px 18px 8px",fontSize:"0.9375rem",fontWeight:600,color:"var(--graview-warn)",borderTop:"1px solid var(--graview-edge)",scrollMarginTop:0,outlineOffset:-2},children:[(0,e.jsx)("span",{"aria-hidden":"true",children:S}),(0,e.jsx)("span",{style:{color:"var(--graview-ink)"},children:fe(h.length,y)})]}),(0,e.jsx)("ol",{style:z,"data-testid":"district-problem-rows",children:(0,e.jsx)(p.Suspense,{fallback:null,children:(0,e.jsx)(Ae,{violations:h,pick:a=>{let x=a.subjectId??a.nodeIds[0];x!==void 0&&l([x])}})})})]}):null,w.length>0?(0,e.jsxs)("section",{"aria-label":"Relations",children:[(0,e.jsx)("h3",{style:j,children:"Relations"}),(0,e.jsx)("ul",{style:z,children:w.map(a=>(0,e.jsx)("li",{children:(0,e.jsxs)("div",{"data-graview-relation-said":a.edge,tabIndex:0,style:{...Y,cursor:"default"},onPointerEnter:()=>c(a.edge),onPointerLeave:()=>c(null),onFocus:()=>c(a.edge),onBlur:()=>c(null),children:[(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0},children:ve(n.schema,a)}),(0,e.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},title:`${V(a.links)} links`,children:V(a.links)})]})},a.key))})]}):null,(0,e.jsxs)("div",{role:"group","aria-label":y,children:[(0,e.jsxs)("h3",{style:j,children:[y," ",(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-faint)"},children:["\xB7 ",d.length]})]}),d.length>Le?(0,e.jsx)("div",{style:{padding:"0 18px 6px"},children:(0,e.jsx)("input",{type:"search","data-testid":"district-panel-narrow","aria-label":`Narrow the ${y.toLowerCase()} by name`,placeholder:"Narrow by name",value:u,onChange:a=>g(a.target.value),style:{width:"100%",boxSizing:"border-box",minHeight:32}})}):null,(0,e.jsx)("ul",{style:z,children:b.map(a=>(0,e.jsx)("li",{children:(0,e.jsx)("button",{type:"button",className:"graview-map-panel-row","data-graview-record":a.id,style:Y,onClick:()=>l([a.id]),onContextMenu:x=>s(x,a.id),children:(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflowWrap:"anywhere"},children:a.name})})},a.id))})]})]})}export{je as MapPanelFor};
|
|
@@ -0,0 +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 J,b as Q,d as I,e as X,f as q,g as K}from"./chunk.KAIZDIRK.js";import{a as A,b as R,c as _,f as D}from"./chunk.ONAH6MC4.js";import{a as ne,b as E,e as x}from"./chunk.AAPXF6NP.js";import{b as Y}from"./chunk.TBLOBXZ2.js";import{a as M}from"./chunk.SDO3U72B.js";import"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var ae=M(()=>(__graviewPreload(import.meta.url,["./chunk.OQ3FKUP2.js","./chunk.AJZBJBMO.js"]),import("./chunk.WRIBFLVG.js"))),oe=M(()=>(__graviewPreload(import.meta.url,["./chunk.TRP66PHK.js","./chunk.PGT4ZQDG.js","./chunk.AJZBJBMO.js"]),import("./chunk.HE7SAJKZ.js"))),Z=2e3;function ge(g,e){let b=g.ownerDocument,c=b.defaultView,t=b.createElement("iframe");t.setAttribute("sandbox",R),t.setAttribute("referrerpolicy","no-referrer"),t.setAttribute("allow",""),t.setAttribute("title",e.title??e.view),t.setAttribute("data-guest-view",e.view),t.setAttribute("aria-busy","true"),t.style.border="0",t.style.width="100%",t.style.display="block",t.src=e.url;let d={applied:0,refused:0,dropped:0},$=E(e.limits),n,y,p={applied:0,refused:0,dropped:0},S=()=>{if(!n)return;let s=n.stats;d.applied+=s.applied-p.applied,d.refused+=s.refused-p.refused,d.dropped+=s.dropped-p.dropped,p={...s}},F=K(c,()=>v(),"data"),P=()=>q(()=>e.theme?.()??I(g),e.brand,F),C="[[],null]",f=[],i,h,O=()=>y?.postMessage({type:"fonts",fonts:f}),W=()=>{let s=e.brand?.(),a=s?.views?.fonts??[],u=s?.typography,G=JSON.stringify([a,u??null]);if(G===C)return;if(C=G,i&&(i.stopped=!0),i=void 0,clearTimeout(h),a.length===0){f.length>0&&(f=[],O());return}let r={stopped:!1};i=r;let T=()=>{clearTimeout(h),i===r&&(i=void 0),m()};oe().then(({readFrameFonts:se})=>{if(r.stopped)return;let j=se(c,a,{...e.asset?{asset:e.asset}:{},...e.fonts?{origins:e.fonts.origins}:{},...u?{typography:u}:{}});return h=setTimeout(()=>{if(r.stopped||i!==r)return;let o=j.waiting();o.length>0&&e.onProblem?.(`The app's ${o.length===1?"face":"faces"} ${o.map(H=>`"${H}"`).join(", ")} for its views did not arrive in ${Z/1e3} seconds, so the frame is drawn without ${o.length===1?"it":"them"} and handed ${o.length===1?"it":"them"} once ${o.length===1?"it arrives":"they arrive"}.`),i=void 0,m()},Z),j.read.then(({fonts:o,said:H})=>{if(!r.stopped){for(let ie of H)e.onProblem?.(ie);f=o,O(),T()}})}).catch(()=>{r.stopped||T()})},k="",v=()=>{W(),n&&(k=JSON.stringify(P()),n.push())},ee=X(b,()=>{n&&JSON.stringify(P())!==k&&v()}),l,L=!1,te=e.pictures?Y(ae,({createGuestPictures:s})=>{l=s(c,{as:"data",view:`"${e.title??e.view}"`,pictures:e.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>{n?.push(),N&&U()}}),L&&z()}):()=>{},N=!1,w,m=()=>{!N||l?.waiting()||i||(clearTimeout(w),t.removeAttribute("data-guest-view-failed"),t.removeAttribute("aria-busy"),t.setAttribute("data-guest-view-drawn",""))},U=()=>{clearTimeout(w),w=setTimeout(m,250)},re=setTimeout(()=>{n||(t.removeAttribute("aria-busy"),t.setAttribute("data-guest-view-failed","silent"))},e.limits?.readyMs??8e3),V=()=>{S(),n?.dispose(),y?.close(),n=void 0,y=void 0,p={applied:0,refused:0,dropped:0}},B=s=>{if(!(s.source===null||s.source!==t.contentWindow)){if(s.origin!==_||!$.message()){d.dropped+=1;return}if(!D(s.data)||s.data.protocol!==1){d.dropped+=1;return}if(e.pictures&&!l){L=!0;return}z()}},z=()=>{L=!1,V();let s=J(),a=new MessageChannel;y=a.port1;let u=x({store:e.store,principal:e.principal,view:e.view,nonce:s,send:r=>a.port1.postMessage(r),...e.input?{input:e.input}:{},...e.reads?{reads:e.reads}:{},...l?{hand:l.hand}:{},theme:P,...e.places?{places:()=>[...new Set(e.places().map(r=>r.as))],placesShown:e.places}:{},...e.onNavigatePlace?{onNavigatePlace:e.onNavigatePlace}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},...e.onArrive?{onArrive:e.onArrive}:e.goTo?{onArrive:r=>Q(e.goTo(),r)}:{},...e.onLost?{onLost:e.onLost}:{},onSize:r=>{e.onSize?e.onSize(r):t.style.height=`${r}px`,m()},onHeld:(r,T)=>{t.setAttribute("data-guest-view-held",`${T}px`),e.onProblem?.(r),m()},...e.limits?{limits:e.limits}:{},limiter:$});n=u,a.port1.onmessage=r=>{u.receive(r.data),S()};let G={graview:"host-hello",protocol:1,nonce:s,view:e.view};t.contentWindow.postMessage(G,"*",[a.port2]),v(),f.length>0&&O(),N=!0,U()};return c.addEventListener("message",B),W(),g.appendChild(t),g.removeAttribute("aria-busy"),{iframe:t,update:v,get stats(){return S(),d},dispose(){V(),clearTimeout(re),clearTimeout(w),ee(),i&&(i.stopped=!0),clearTimeout(h),F.dispose(),te(),l?.dispose(),c.removeEventListener("message",B),t.remove()}}}export{Z as FACES_WAIT_MS,A as GUEST_PROTOCOL,R as GUEST_SANDBOX,_ as OPAQUE_ORIGIN,x as createGuestHost,E as createGuestLimiter,ge as mountGuestView,ne as readAcross,I as readTheme};
|
|
@@ -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 A,b as $,c as S}from"./chunk.U5P23GO7.js";import{a as I}from"./chunk.
|
|
1
|
+
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as A,b as $,c as S}from"./chunk.U5P23GO7.js";import{a as I}from"./chunk.6YKKZI4H.js";import{D as k,G as T,_ as b,ia as y}from"./chunk.ASNVH2G4.js";import{pb as w}from"./chunk.ZDUKVXBI.js";import{b as u}from"./chunk.AJZBJBMO.js";var x=u(T(),1);var o=u(b(),1),l={display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem"};function L({shows:t,onShows:i,mine:a,onMine:e}){let s={all:"All",changes:"Changes",ai:"AI"};return(0,o.jsxs)("div",{"data-testid":"activity-filter",role:"group","aria-label":"Show",style:{display:"flex",flexWrap:"wrap",gap:4,alignItems:"center"},children:[["all","changes","ai"].map(n=>(0,o.jsx)("button",{type:"button","data-shows":n,"aria-pressed":t===n,onClick:()=>i(n),style:{...l,...t===n?{borderColor:"var(--graview-accent)",color:"var(--graview-ink)"}:{}},children:s[n]},n)),(0,o.jsx)("button",{type:"button","data-testid":"activity-mine","aria-pressed":a,onClick:()=>e(!a),style:{...l,marginLeft:"auto",...a?{borderColor:"var(--graview-accent)",color:"var(--graview-ink)"}:{}},children:"Just mine"})]})}var j=t=>t.ask.kind==="suggest"?"suggest":t.ask.kind==="fill"?"fill in":t.ask.kind==="record"?"add one":t.ask.kind==="panel"?"draw a panel":t.ask.kind==="section"?t.ask.said.replace(/^M/,"m"):`answer \u201C${t.ask.said}\u201D`;function O(t){let i=t.offered.filter(a=>t.accepted?.includes(a.id)).map(a=>a.label);switch(t.outcome){case"accepted":return i.length>0?`Took ${i.join(", ")}`:"Taken";case"partly":return`Took ${i.length} of ${t.offered.length}: ${i.join(", ")}`;case"dismissed":return"Dismissed";case"drawn":return t.panel?`Drew \u201C${t.panel.title}\u201D`:"Drew a panel";case"failed":return t.failed??"Failed";default:return"Offered, not yet taken"}}function R(t){let i=[...new Set((t.usage??[]).map(s=>s.model))];if(i.length===0)return null;let a=(t.usage??[]).flatMap(s=>s.costUsd===void 0?[]:[s.costUsd]),e=a.length>0?a.reduce((s,n)=>s+n,0):void 0;return`${i.join(", ")}${e!==void 0?` \xB7 $${e<.01?e.toPrecision(2):e.toFixed(2)}`:""}`}function D(t){let i=t.context;if(!i)return null;let a=(n,c,d)=>`${n===0?"no":n} ${n===1?c:d}`,e=`${a(i.candidates.length,"thing it could do","things it could do")} and ${a(i.records.length,"record","records")}`,s=i.model===void 0?"the Fast slot":/^jev\b|^jev-/i.test(i.model)?"Jev":i.model;return i.by==="fast"?`Told the model of ${e}, as ${s} picked them`:`Told the model of ${e} around it`}function P(t){let i=t.stages??[];if(i.length===0)return null;let a=e=>e.stage==="compose"?"composed":e.model?/^jev\b|^jev-/i.test(e.model)?"Jev":e.model:e.stage;return i.map(e=>`${a(e)} ${e.ms<1e3?`${Math.round(e.ms)} ms`:`${(e.ms/1e3).toFixed(1)} s`}`).join(" \xB7 ")}function V({entry:t,undo:i}){let{store:a,principal:e,seats:s,people:n,ai:c}=y(),d=I(),[m,p]=(0,x.useState)(!1),C=t.by.kind==="human"&&t.by.onBehalfOf===void 0&&(t.by.id===void 0||e.id===void 0||t.by.id===e.id)?"you":w(t.by,{graph:a.graph,schema:a.schema,seats:s,people:n}),f=R(t),g=D(t),v=P(t),W=k(c),h=r=>{p(!0),(__graviewPreload(import.meta.url,["./chunk.GMHBAS45.js","./chunk.4VX7GPFS.js","./chunk.FQ2QUDZS.js","./chunk.BJUUSIQY.js","./chunk.VGQDPEB5.js","./chunk.6YKKZI4H.js","./chunk.WIVNFOQR.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.SMF5S4DQ.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.QKNC5OUC.js")).then(r).finally(()=>p(!1))};return(0,o.jsxs)("li",{"data-testid":"activity-interaction","data-interaction":t.id,"data-outcome":t.outcome,style:A,children:[(0,o.jsx)("div",{"data-graview-activity-head":"",style:$,children:(0,o.jsxs)("span",{"data-graview-activity-words":"",style:S,children:[(0,o.jsx)("strong",{style:{fontWeight:600},children:C})," ",(0,o.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:t.ask.kind==="ask"?`told Graview \u201C${t.ask.said}\u201D`:`asked AI to ${j(t)}`}),(0,o.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",t.targetLabel]})]})}),t.offered.length>0&&t.outcome!=="accepted"&&t.outcome!=="partly"?(0,o.jsxs)("div",{"data-testid":"interaction-offered",style:{color:"var(--graview-ink-muted)"},children:["Offered ",t.offered.map(r=>r.label).join(", ")]}):null,(0,o.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6,flexWrap:"wrap"},children:[(0,o.jsx)("span",{"data-testid":"interaction-outcome",style:{color:t.outcome==="failed"?"var(--graview-warn)":"var(--graview-ink)"},children:O(t)}),(t.batches??[]).map(r=>(0,o.jsx)("span",{"data-interaction-batch":r,style:{marginLeft:"auto"},children:i(r)},r))]}),f?(0,o.jsx)("div",{"data-testid":"interaction-model",style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:f}):null,g?(0,o.jsx)("div",{"data-testid":"interaction-context","data-context-by":t.context?.by,style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:g}):null,v?(0,o.jsxs)("details",{"data-testid":"interaction-stages",style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:[(0,o.jsx)("summary",{children:"How long it took"}),v]}):null,W?(0,o.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[t.panel?(0,o.jsx)("button",{type:"button","data-testid":"interaction-reopen",disabled:m,onClick:()=>h(r=>r.drawPanel(d,t.panel)),style:l,children:"Show the panel"}):null,(0,o.jsx)("button",{type:"button","data-testid":"interaction-again",disabled:m,onClick:()=>h(r=>r.askAgain(d,t)),style:l,children:"Again"})]}):null]})}export{L as a,V as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i}from"./chunk.KMFH26SS.js";import"./chunk.YF5GCOSZ.js";import"./chunk.F2BZ4SC4.js";import"./chunk.WAPY4RCS.js";import"./chunk.JKX4J3KG.js";import"./chunk.JMXBMLKH.js";import"./chunk.PVAYYFT2.js";import"./chunk.LG2BQ5LB.js";import"./chunk.L3ST2YKI.js";import"./chunk.7VCYVCYM.js";import"./chunk.MFNWHXGL.js";import"./chunk.DCIYOZYP.js";import"./chunk.WVUJXDXZ.js";import{e as l}from"./chunk.J7GH2CGV.js";import"./chunk.SMF5S4DQ.js";import"./chunk.XP4IVKKR.js";import"./chunk.R5YGW5ZX.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import"./chunk.MIE4TJRW.js";import"./chunk.DEBW4FH6.js";import"./chunk.RD2FSSLV.js";import"./chunk.OWHH7JDV.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{_ as m}from"./chunk.ASNVH2G4.js";import"./chunk.SDO3U72B.js";import"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as g}from"./chunk.AJZBJBMO.js";var a=g(m(),1),r=new WeakMap;function c(n){let o=r.get(n);if(!o){let t=l(n);o=e=>e.mode==="fullscreen"?(0,a.jsx)(i,{blocks:t,slot:"home",heading:2,firstHeading:1,...e.flagged?{flagged:e.flagged}:{}}):(0,a.jsx)(i,{blocks:t,slot:"home",heading:3,firstHeading:2,...e.flagged?{flagged:e.flagged}:{}}),r.set(n,o)}return o}export{c as homeView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Ua as y,Wa as k,_ as w,j as c,l as h,m as b,r as f}from"./chunk.ASNVH2G4.js";import{Z as i}from"./chunk.ZDUKVXBI.js";import{b as g}from"./chunk.AJZBJBMO.js";var s=null,a=new Set,v=e=>{s={kind:e,n:(s?.n??0)+1};for(let t of a)t()},A=()=>s,C=e=>(a.add(e),()=>a.delete(e)),V=()=>{s=null};var d=g(w(),1);function T(e,t){if(e.length===0||t.length===0)return[];let o=new Set(t.map(n=>n.id));return e.filter(n=>n.nodeIds.some(l=>o.has(l)))}var x=(e,t)=>`${i(e)} ${e===1?"problem":"problems"} in ${t}`;function q({kind:e,plural:t,problems:o,flag:n,listed:l=!1}){let{view:p,go:P}=k(),{set:$}=y();if(o.length===0)return null;let u=x(o.length,t),m=o.length===1?"it":"them";return(0,d.jsx)("button",{type:"button",className:"graview-district-problems","data-testid":`district-problems-${e}`,"data-graview-problems":o.length,"aria-expanded":l,"aria-label":u,title:`${u} \u2014 ${o[0].message}${o.length>1?` (and ${i(o.length-1)} more)`:""}. Press to see ${m} and how to fix ${m}.`,onClick:r=>{r.stopPropagation(),p.overview||P(h(c(b(p,!0),null),"view",null)),$([f(e)]),v(e)},onDoubleClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:(0,d.jsx)("span",{"aria-hidden":"true",children:`${n} ${i(o.length)}`})})}export{A as a,C as b,V as c,T as d,x as e,q as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as b,b as c,c as d,d as e,e as f}from"./chunk.7DCBIMOI.js";import"./chunk.GXK5PI7I.js";import"./chunk.XP4IVKKR.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import{Xb as a}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{a as ActRefusal,e as compileDocumentWithoutCheck,d as effectsOf,f as inDocumentWords,c as kindShapes,b as readDocument};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk.
|
|
1
|
+
import"./chunk.KHRS2SKB.js";import"./chunk.T6PU3NKP.js";import"./chunk.YRC6PKXP.js";import"./chunk.JOB3EKS6.js";import{a as x,b as P,c as L}from"./chunk.V4GSVXSV.js";import{b as R}from"./chunk.L6BLZJ6K.js";import"./chunk.VNI6HZEF.js";import"./chunk.THLT6NVO.js";import"./chunk.HIIYDKFC.js";import"./chunk.GYP3EF6Z.js";import"./chunk.KMFH26SS.js";import"./chunk.YF5GCOSZ.js";import"./chunk.F2BZ4SC4.js";import"./chunk.WAPY4RCS.js";import"./chunk.JJSZLCNU.js";import"./chunk.JKX4J3KG.js";import"./chunk.JMXBMLKH.js";import"./chunk.PVAYYFT2.js";import"./chunk.HJCQ6I3S.js";import"./chunk.QNFX5VHW.js";import"./chunk.UXW43HNW.js";import"./chunk.LG2BQ5LB.js";import"./chunk.L3ST2YKI.js";import"./chunk.7VCYVCYM.js";import"./chunk.25VJPUDH.js";import"./chunk.OXDCGGZV.js";import"./chunk.2TTKQAWQ.js";import"./chunk.CJHCUHVN.js";import"./chunk.MFNWHXGL.js";import"./chunk.DCIYOZYP.js";import"./chunk.7QGDWAHH.js";import"./chunk.TBY5IR7C.js";import"./chunk.JP33TNCH.js";import"./chunk.BIDL7GQD.js";import"./chunk.O5P6LXHF.js";import"./chunk.VGQDPEB5.js";import"./chunk.WIVNFOQR.js";import"./chunk.ONVYKLRX.js";import"./chunk.XOZU4OFA.js";import"./chunk.53GQQETN.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.7DCBIMOI.js";import"./chunk.GXK5PI7I.js";import"./chunk.YFVJUHAK.js";import"./chunk.DYPSFTRP.js";import"./chunk.WVUJXDXZ.js";import"./chunk.J7GH2CGV.js";import"./chunk.SMF5S4DQ.js";import"./chunk.XP4IVKKR.js";import"./chunk.R5YGW5ZX.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import"./chunk.MIE4TJRW.js";import{s as T}from"./chunk.DEBW4FH6.js";import"./chunk.RD2FSSLV.js";import"./chunk.OWHH7JDV.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{G as S,I as $,_ as p,ia as C,ka as A}from"./chunk.ASNVH2G4.js";import"./chunk.SDO3U72B.js";import{la as v,zd as k}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as i}from"./chunk.AJZBJBMO.js";var r=i(S(),1);var l=i(S(),1);var g=i(p(),1);var m={font:"inherit",fontSize:"0.875rem",minHeight:24,padding:0,border:0,borderRadius:2,background:"transparent",boxShadow:"none",color:"var(--graview-accent)",textDecoration:"underline",textUnderlineOffset:3,textAlign:"start",cursor:"pointer"};var e=i(p(),1);function Q({page:n=!1,go:E,onPick:y,onDiscard:N}){let{store:d,seatTalk:c}=C(),u=$(c),D=L(),h=E??D,{keep:M}=x(h),[H,f]=(0,r.useState)(!1);A();let t=u.draft;(0,r.useEffect)(()=>f(!1),[t]),(0,r.useEffect)(()=>{n||P(!1)},[n]);let w=(0,r.useRef)(null),b=t!==null&&!n;if((0,r.useLayoutEffect)(()=>{let s=w.current;if(!b||!s?.parentElement)return;let o=[];for(let a=s.previousElementSibling;a;a=a.previousElementSibling)a instanceof HTMLElement&&!a.inert&&a.tagName!=="STYLE"&&(a.inert=!0,o.push(a));return()=>{for(let a of o)a.inert=!1}},[b]),!t)return null;let G=R(t.drawn),F=d.schema.tryDefinition(t.kind),O=d.graph.nodesOfKind(t.kind).filter(s=>v(F,s)),q=()=>{c.setDraft(null),N?.()};return(0,e.jsxs)("section",{ref:w,"data-testid":"draft-frame","data-graview-draft-frame":n?"page":"scene","aria-label":`Draft: ${t.title}`,style:n?{display:"grid",gap:12,minWidth:0}:{position:"absolute",inset:12,zIndex:k("rail"),display:"grid",gridTemplateRows:"auto auto minmax(0, 1fr)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:12,boxShadow:"var(--graview-lift-high)",overflow:"hidden",minHeight:0},children:[(0,e.jsxs)("p",{"data-testid":"draft-line",style:{...z,...n?{}:{padding:"10px 16px"}},children:[n?(0,e.jsx)("span",{children:"Draft"}):(0,e.jsxs)("span",{children:["Draft \u2014 ",(0,e.jsx)("span",{"data-testid":"draft-title",style:{color:"var(--graview-ink)",fontWeight:600},children:t.title})]}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-keep",disabled:H,title:`Keep \u201C${t.title}\u201D as a lens: a place of its own`,onClick:()=>{f(!0),M(t).finally(()=>f(!1))},style:m,children:"Keep as a lens"}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-discard",onClick:q,style:m,children:"Discard"})]}),u.draftNote?(0,e.jsx)("p",{"data-testid":"draft-note",role:"status",style:{margin:0,padding:n?0:"0 16px 8px",fontSize:"0.8125rem",color:"var(--graview-warn)"},children:u.draftNote}):(0,e.jsx)("span",{}),(0,e.jsx)("div",{"data-testid":"draft-lens","data-graview-draft":t.lens.name,role:"group","aria-label":t.title,tabIndex:0,style:n?{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",scrollbarGutter:"stable",border:"1px solid var(--graview-edge)",borderRadius:12,background:"var(--graview-panel)"}:{minHeight:0,overflow:"auto",scrollbarGutter:"stable",display:"grid",gridTemplateRows:"minmax(0, 1fr)"},onClick:s=>{let o=s.target?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");if(!o||!d.graph.getNode(o))return;s.preventDefault();let a=d.graph.getNode(o);y?(c.setDraft(null),y(o)):h({to:"record",id:o,kind:a.kind,label:o,address:"",said:""})},children:(0,e.jsx)(T,{kind:t.kind,view:t.title,children:(0,e.jsx)(G,{nodes:O,label:t.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})]})}var z={margin:0,display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 8px",fontSize:"0.875rem",color:"var(--graview-ink-muted)",borderBottom:"1px solid var(--graview-edge)",paddingBottom:8};export{Q as DraftFrame};
|
|
@@ -1,2 +1,2 @@
|
|
|
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 Ve,d as ue,g as Ke}from"./chunk.
|
|
2
|
-
`)}function ut(n,r){let{store:o}=n,i=c=>Object.fromEntries(Object.entries(c).filter(([,l])=>l!==void 0&&typeof l!="object").map(([l,s])=>[l,typeof s=="string"?s.slice(0,80):s]));return{kinds:(r.kind?[r.kind]:o.schema.kinds.slice(0,6)).map(c=>{let l=o.graph.nodesOfKind(c),s=o.schema.tryDefinition(c);return{kind:c,count:l.length,fields:Object.keys(s?.fields?.shape??{}),relations:Object.keys(s?.edges??{}),some:(r.record?l.filter(u=>u.id===r.record):l.slice(0,3)).map(i)}})}}function ft(n,r){let o=n.store.schema,i=new Set,d=new Set;for(let c of o.definitions)for(let[l,s]of Object.entries(c.edges??{})){let u=Array.isArray(s?.to)?s.to:[];if(r.kind===void 0||c.kind===r.kind||u.includes(r.kind)){d.add(l);for(let P of[c.kind,...u])P!==r.kind&&o.tryDefinition(P)&&i.add(P)}}if(r.kind===void 0)for(let c of o.kinds)i.add(c);return{kinds:[...i],edges:[...d]}}var Ue={manifest:"The view could not start: what it reads is not this app's.",source:"The script is too long: make it shorter.",start:"The script did not start: it must be one plain script, with no syntax errors, that calls graview.onProps and graview.render.",error:"The script threw while drawing: read only what props gives (props.nodes for a list, props.node for one record), guard each value that may be missing, and call no function that does not exist."};async function We(n,r,o=15e3){let i=Date.now()+o;for(;Date.now()<i;){for(let c of document.querySelectorAll("[data-worker-view-place]")){let l=$e(c),s=l?.name===n?l.drawing().root:void 0;if(l&&c.isConnected&&s?.isConnected&&s.childElementCount>0&&(r===void 0||await l.source()===r))return{element:c,handle:l}}let d=document.querySelector(`[data-worker-view-fell-back="${CSS.escape(n)}"]`);if(d)return{failed:Ue[d.getAttribute("data-worker-view-failed")??""]??Ue.error};await dt(80)}return{failed:"The view did not draw in time: keep it simple and quick to draw."}}var pe=new Map,pt=(n,r)=>{let o=pe.get(n);return o||pe.set(n,o={phase:r(),steps:[],before:!1,putBack:null,began:!1,original:null,markup:null,talk:[],events:[],since:Date.now(),stop:null,covering:!1,pointed:null,about:null,kept:null,pressed:null,version:0,heard:new Set}),o};function he(n,r){return r.record?[n.graph.getNode(r.record)].filter(o=>o!==void 0):r.kind?n.graph.nodesOfKind(r.kind):n.schema.kinds.flatMap(o=>n.graph.nodesOfKind(o))}var Y=(n,r)=>r?Re(n.schema.tryDefinition(r.kind),r):"";function gt(n,r,o){let i=T(o).toLowerCase();return he(n,r).map(d=>Y(n,d)).filter(d=>d.length>1&&i.includes(T(d).toLowerCase())).slice(0,40)}function ze(n,r){let o=r.kind?[r.kind]:n.schema.kinds,i=[...new Set(o.flatMap(c=>Object.keys(n.schema.tryDefinition(c)?.fields?.shape??{})))],d={};for(let c of he(n,r).slice(0,400))for(let l of i){let s=c[l];if(s==null||typeof s=="object")continue;let u=d[l]??=[];u.length<60&&!u.includes(s)&&u.push(s)}return{fields:i,values:d}}function Ct({ask:n,close:r}){let o=Ce(),{ai:i,aiDesk:d,aiHere:c,session:l,principal:s,keptViews:u,store:D,onProposeChange:P,composeChange:w,onDraftChange:O,app:q}=o,a=n.part,e=(0,g.useMemo)(()=>pt(n.at,()=>n.mode==="highlight"?{at:"highlighting"}:{at:"open"}),[n]),H=(0,g.useCallback)(t=>(e.heard.add(t),()=>void e.heard.delete(t)),[e]),S=(0,g.useSyncExternalStore)(H,()=>e.phase,()=>e.phase),Ye=(0,g.useSyncExternalStore)(H,()=>e.version,()=>e.version),A=(0,g.useCallback)(()=>{e.version+=1,e.heard.forEach(t=>t())},[e]),k=(0,g.useCallback)(t=>{e.phase=t,A()},[e,A]),x=(0,g.useCallback)(async()=>{let t=e.putBack;e.putBack=null,t&&await t()},[e]),Z=(0,g.useCallback)(()=>{e.stop?.abort(),e.stop=null,x(),pe.delete(n.at),r()},[x,n.at,r,e]),b=(0,g.useCallback)(()=>a.main?.isConnected?a.main:yt(),[a]),G={name:a.name,slot:a.slot,...a.kind?{kind:a.kind}:{},...a.group?{group:a.group}:{}},me=a.place??(a.kind?`${a.kind}-${a.slot}`:"home"),Ze=n.fromScene?`From the scene: Better UI changes how \u201C${a.name}\u201D looks on its page here, for everyone in this app.`:`This changes how ${a.name} looks for everyone in this app.`,M=(0,g.useCallback)((t,f,p,h={})=>({id:De(),at:new Date().toISOString(),by:s,target:{on:"place",place:me},targetLabel:a.name,ask:{kind:"section",said:t},offered:[],outcome:f,stages:p.map(m=>({stage:m.stage,ms:m.ms,model:m.model})),usage:p.flatMap(m=>m.usage?[{tier:m.stage==="light"?"fast":"thinking",model:m.model,inputTokens:m.usage.inputTokens,outputTokens:m.usage.outputTokens}]:[]),...h}),[s,me,a.name]),we=P!==void 0&&w!==void 0&&Ee(D,s),B=(0,g.useMemo)(()=>kt(o,a),[o,a]),C=Le(G,ft(o,a),B.map(t=>t.act)),ke=C!==void 0&&typeof u?.fork=="function"&&typeof u.draftFork=="function"&&u.current().may.views===!0,ye=a.slot==="record"?{page:"record",kind:a.kind}:a.slot==="home"?{page:"home"}:{page:"list",kind:a.kind??""},V=(0,g.useCallback)(t=>({manifest:C,source:t,from:ye,said:""}),[C,ye]),ve=S.at==="working";(0,g.useEffect)(()=>{if(!ve)return;let t=a.record??(a.kind?`kind:${a.kind}`:null);return c({participant:`agent:graview-for-${s.id??"anyone"}:${l}`,kind:"agent",name:"Graview",...s.id?{onBehalfOf:s.id}:{},over:t,robot:{at:t,mode:"thinking"}}),()=>c(null)},[ve]);let $=(0,g.useCallback)(()=>{if(e.original)return e.original;let t=b(),f=t?.innerText??"";return e.original=Q(X(t),gt(o.store,a,f||(t?.textContent??""))),e.original},[e,b,o,a]),I=(0,g.useCallback)(()=>Q(X(b()),$().records.map(t=>t.label)),[b,$]),K=(0,g.useCallback)(async t=>{if(await x(),t.kind==="spec"){let f=await O(Je(t.edits,t.said,i.name));e.putBack=f.undo}else u.draftFork(V(t.source)),e.putBack=()=>u.draftFork(null)},[x,O,e,u,V,i.name]),L=(0,g.useCallback)(async()=>{let t=e.steps.at(-1);e.before=!1,t?await K(t):await x()},[e,K,x]),v=(0,g.useCallback)((t,f)=>{e.talk.push({who:t,said:f}),A()},[e,A]),F=(0,g.useCallback)(t=>{e.events.at(-1)?.kind==="streaming"&&e.events.pop(),e.events.push(t),A()},[e,A]),U=()=>e.talk.filter(t=>t.who==="person").map(t=>t.said).join(" "),be=(0,g.useCallback)(async t=>{if(!we||!O)return!1;let p=(await (__graviewPreload(import.meta.url,["./chunk.3I2SGKKF.js","./chunk.TBY5IR7C.js","./chunk.BIDL7GQD.js","./chunk.Q5WEOX3Q.js","./chunk.ZBK3FCVE.js","./chunk.DW6KXAUM.js","./chunk.HRLCDBMO.js","./chunk.LZNHTROY.js","./chunk.36FKQJFM.js","./chunk.RHV73CBA.js","./chunk.IUVRJDL3.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.I7ODVOO5.js"))).documentOfApp(q??{});if(!p)return!1;let h=e.steps.at(-1);if(h&&h.kind!=="spec")return!1;let m=h?.edits??[],y=m.length>0?w({document:p,edits:m}):void 0,j=y?.ok?y.document:p;if(!(t.mode==="just"?{can:!0}:await Ne(i,t.words,G)).can)return!1;F({kind:"look",text:`Looking at how ${a.name} is set up`});let E=[],ne=await Ie({ai:i,document:j,part:G,mode:t.mode==="choose"?"just":t.mode,...t.words?{words:t.words}:{},...t.pointed?{highlighted:[t.pointed.name,...t.pointed.lines]}:{},shows:lt(b(),30),judge:async W=>{let _=w({document:p,edits:[...m,...W]});return _.ok?(E=_.said,[]):[_.refused]}});if(!ne.ok)return!1;let at=[...m,...ne.edits],Oe=M(`Make \u201C${a.name}\u201D better: ${t.words}`,"offered",ne.stages),oe=_e(b()),re={kind:"spec",edits:at,said:E[E.length-1]??E[0]??`${a.name} changed.`,entry:Oe};e.covering=!0,A();try{await K(re);let W=oe;for(let st=Date.now()+1500;Date.now()<st&&W===oe;)await fe(),W=_e(b());let _=W===oe?["nothing changed"]:se($(),I(),{...ze(o.store,a),asked:U()});if(_.length>0)return await L(),d.record({...Oe,outcome:"failed",failed:_.join(" ")}),!1}catch{return await L(),!1}finally{e.covering=!1,A()}return e.steps.push(re),e.before=!1,F({kind:"passed",text:"Changed its settings \u2014 it's on the page"}),v("graview",`Done: ${re.said.replace(/\.$/,"")}.`),!0},[i,d,q,w,M,e,o,b,O,$,I,a,G,K,L,we,F,v,A]),Se=(0,g.useCallback)(async t=>{if(!C||!u?.draftFork)return{findings:["This page cannot be drawn anew here."],drew:void 0};let f=$();e.covering=!0,A();try{u.draftFork(V(t)),e.putBack=()=>u.draftFork(null);let p=await We(C.name,t),h;if("failed"in p)h=[p.failed];else{let y=[...await p.handle.check(t),...p.handle.refused().filter(j=>!/^Refused a rule of the stylesheet\b/.test(j))];if(y.length>0)h=y;else{await fe(),await fe();let j=p.element.closest("[data-graview-page-main], main")??X(b());h=se(f,Q(j,f.records.map(E=>E.label)),{...ze(o.store,a),asked:U()});let R=p.handle.presses?await p.handle.presses(t).catch(()=>{}):void 0;R&&(e.pressed=R,h=[...h,...ie(R,Xe(f,ge(o,a,f)),B.filter(E=>E.toggle).map(E=>E.act),z(a))])}}let m=le(I());if(h.length===0){let y=M(`Draw \u201C${a.name}\u201D anew: ${U()}`,"offered",[]);e.steps.push({kind:"view",source:t,said:Be(a.name,f,I())??`${a.name} has a new design. Compare Before and After.`,entry:y}),e.before=!1}else await L();return{findings:h,drew:m}}finally{e.covering=!1,A()}},[C,u,$,e,A,V,I,o,a,M,L]),Pe=(0,g.useCallback)(async(t=[])=>{if(!C||!ke){v("graview","Its settings can't do that, and a new design can't be drawn for it here.");return}let f=new AbortController;e.stop=f,e.markup??=Qe(b());let p=e.steps.length,h=[...e.steps].reverse().find(y=>y.kind==="view"),m=await He({ai:i,part:G,manifest:C,talk:e.talk,keep:ht($(),b(),a.name,o,a),...e.markup?{markup:e.markup}:{},...h?{current:h.source}:e.kept?{current:e.kept}:{},host:{look:()=>le(I()),read:()=>ut(o,a),draft:Se},onEvent:y=>F(y),...e.about?{about:e.about}:{},acts:B,...t.length>0?{pressed:t}:{},noun:z(a),signal:f.signal});if(e.stop===f){if(e.stop=null,e.events.at(-1)?.kind==="streaming"&&e.events.pop(),d.record(M(`Draw \u201C${a.name}\u201D anew: ${U()}`,e.steps.length>p?"offered":"failed",m.stages,e.steps.length>p?{}:{failed:m.last?.findings.join(" ")??m.said})),m.passed){let y=e.pressed?de(e.pressed,B,z(a)):void 0,j=Fe.test(m.said)?void 0:m.said;v("graview",[j??(y?void 0:"Here it is on the page."),y].filter(Boolean).join(" "))}else v("graview",m.said);m.ended==="stuck"&&k({at:"stuck",...m.keepable&&m.last?{source:m.last.source}:{}})}},[i,d,B,I,M,ke,e,o,Se,b,C,$,a,G,v,k,F]),Ae=(0,g.useCallback)(async()=>{let f=[...e.steps].reverse().find(R=>R.kind==="view")?.source??e.kept;if(!f||!C)return[];F({kind:"look",text:"Pressing every control on the page"});let p=await We(C.name);if("failed"in p||!p.handle.presses)return[];let h=await p.handle.presses(f).catch(()=>{});if(!h)return[];e.pressed=h;let m=$(),y=ie(h,Xe(m,ge(o,a,m)),B.filter(R=>R.toggle).map(R=>R.act),z(a)),j=y.length>0?y:h.controls.slice(0,8).map(R=>`${R.control}: ${R.says}`);return F(y.length>0?{kind:"check",text:`Check: ${y.length} ${y.length===1?"control doesn't":"controls don't"} work \u2014 fixing`}:{kind:"passed",text:"Check: every control works"}),v("graview",y.length>0?`I pressed every control: ${y.join(" ")}`:`I pressed every control. ${de(h,B,z(a))??"Each one did what it says."}`),j},[B,e,o,C,$,a,v,F]),J=(0,g.useCallback)(async(t,f="describe")=>{if(e.phase.at==="working")return;let p=e.pointed;e.pointed=null;let h={mode:f,words:t,...p?{pointed:p}:{}};e.about=p??e.about,v("person",t),e.events=[],e.since=Date.now(),k({at:"working"}),$(),e.markup??=Qe(b());let m=ce.test(t)?await Ae().catch(()=>[]):[];!ce.test(t)&&await be(h).catch(()=>!1)||await Pe(m),e.phase.at==="working"&&k(e.steps.length>0?{at:"draft"}:{at:"open"})},[Pe,be,e,b,$,Ae,v,k]),ee=(0,g.useCallback)(()=>{if(e.phase.at!=="working")return;let t=e.stop;e.stop=null,t?.abort(),e.covering=!1,e.steps=e.steps.filter(f=>f.entry.at<new Date(e.since).toISOString()),L(),v("graview","Stopped. The page is as it was."),k(e.steps.length>0?{at:"draft"}:{at:"open"})},[e,v,k,L]),et=(0,g.useCallback)(async t=>{let f=e.steps.at(-1);!f||t===e.before||(e.before=t,A(),t?await x():await K(f))},[e,x,K,A]),te=(0,g.useCallback)(async()=>{let t=e.steps.at(-1);if(!(!t||e.phase.at!=="draft")){k({at:"keeping"});try{let f,p;if(t.kind==="spec"){await x();let h=await P(Je(t.edits,t.said,i.name));if(h==="declined")return v("graview","It wasn't kept."),k({at:"draft"});typeof h=="object"&&([f,p]=[h.undo,h.note])}else{let h=await u.fork(V(t.source));e.putBack=null,u.draftFork?.(null),e.kept=t.source,h&&([f,p]=[h.undo,h.note])}d.record({...t.entry,outcome:"accepted"}),e.steps=[],e.before=!1,k({at:"kept",...f?{undo:f}:{},...p?{note:p}:{}})}catch{v("graview","It couldn't be kept."),k({at:"draft"})}}},[e,k,x,P,i.name,u,V,d,v]),tt=(0,g.useCallback)(async t=>{if(e.phase.at!=="stuck")return;let f={kind:"view",source:t,said:`${a.name} kept as it was last drafted.`,entry:M(`Draw \u201C${a.name}\u201D anew: ${U()}`,"offered",[])};e.steps.push(f),e.phase={at:"draft"},await te(),e.steps.at(-1)===f&&(e.steps.pop(),k(e.steps.length>0?{at:"draft"}:{at:"open"}))},[e,a.name,M,te,k]),nt=(0,g.useCallback)(()=>{v("graview","Stopped. The page is as it was."),k(e.steps.length>0?{at:"draft"}:{at:"open"})},[e,v,k]),ot=(0,g.useCallback)(()=>{let t=e.steps.at(-1);t&&d.record({...t.entry,outcome:"dismissed"}),e.steps=[],e.before=!1,x(),v("graview","Put back as it was."),k({at:"open"})},[e,d,x,v,k]),rt=(0,g.useCallback)(async()=>{if(!(e.phase.at!=="kept"||!e.phase.undo))try{await e.phase.undo(),e.kept=null,v("graview","Undone. The page is as it was."),k({at:"undone"})}catch{v("graview","It couldn't be put back.")}},[e,v,k]);if((0,g.useEffect)(()=>{e.began||!(n.mode==="just"||n.mode==="describe"&&n.words)||(e.began=!0,J(n.mode==="just"?"Make it easier to read at a glance":n.words,n.mode))},[e,n.mode,n.words,J]),(0,g.useEffect)(()=>{let t=f=>{if(f.key!=="Escape"||e.phase.at==="highlighting")return;if(f.preventDefault(),e.phase.at==="working")return ee();Z();let p=n.returnTo?.isConnected?n.returnTo:document.querySelector("[data-graview-page-title], main h1");p&&!p.hasAttribute("tabindex")&&!p.matches("a[href], button, input, select, textarea")&&p.setAttribute("tabindex","-1"),p?.focus?.()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e,Z,ee,n.returnTo]),S.at==="highlighting")return(0,N.jsx)(Ke,{box:b(),root:b(),whole:a.elements,wholeSaid:"The whole page",cancel:()=>k({at:"open"}),chose:t=>{e.pointed={name:Me(t)??je(t.map(ue)),lines:qe(t.map(ue))},k({at:"open"})}});let Te=e.steps.at(-1);return(0,N.jsxs)(N.Fragment,{children:[e.covering?(0,N.jsx)(Ge,{over:b(),name:a.name,said:`Graview is drafting \u201C${a.name}\u201D\u2026`}):null,(0,N.jsx)(Ve,{name:a.name,scope:Ze,phase:S.at,talk:e.talk,steps:e.events,since:e.since,working:S.at==="working"||S.at==="keeping",...Te&&S.at==="draft"?{draft:{said:Te.said,before:e.before}}:{},...S.at==="kept"?{kept:{...S.note?{note:S.note}:{},...S.undo?{undo:()=>void rt()}:{}}}:{},...S.at==="stuck"?{stuck:{...S.source!==void 0?{keepAnyway:()=>void tt(S.source)}:{},stop:nt}}:{},about:(e.pointed??e.about)?.name??a.name,ask:t=>void J(t),just:()=>void J("Make it easier to read at a glance","just"),point:()=>k({at:"highlighting"}),stop:ee,compare:t=>void et(t),keep:()=>void te(),discard:ot,close:Z})]})}function Je(n,r,o){return{said:r,add:[],drop:[],card:{said:r,adds:[],keeps:[],drops:[],breaking:[]},edits:n,via:`ai:${o??"model"}`}}function ht(n,r,o,i,d){let c=X(r),l=d.slot==="home"?[...r?.querySelectorAll("h1")??[]].find(w=>c!==r&&!c?.contains(w)):void 0,s=T(l?.textContent)||T(c?.querySelector("[data-graview-page-title]")?.textContent)||(d.slot==="home"?"":T(c?.querySelector("h1")?.textContent))||(d.record?T(Y(i.store,i.store.graph.getNode(d.record))):"")||o,u=ge(i,d,n),D=Object.fromEntries(n.records.flatMap(w=>w.facts?.length||w.under&&w.under!==s?[[w.label,{...u[w.label]?{id:u[w.label]}:{},...w.facts?.length?{shows:w.facts}:{},...w.under&&w.under!==s?{under:w.under}:{}}]]:[])),P=wt(i,n,u,s);return{title:s,headings:n.headings.filter(w=>w!==s),records:n.records.map(w=>w.label),...Object.keys(D).length>0?{says:D}:{},...P?{grouping:P}:{}}}function mt(n,r,o){let i=he(n,r),d={};for(let c of o.records){let l=i.find(s=>T(Y(n,s))===T(c.label));l&&(d[c.label]=l.id)}return d}var ge=(n,r,o)=>mt(n.store,r,o);function wt(n,r,o,i){let{store:d}=n,c=r.records.filter(O=>O.under&&O.under!==i&&o[O.label]);if(c.length<2)return;let l=d.graph.allEdges(),s=new Map;for(let O of c){let q=o[O.label];for(let a of l){let e=a.from===q?a.to:a.to===q?a.from:void 0,H=e!==void 0?d.graph.getNode(e):void 0;if(!H||T(Y(d,H))!==T(O.under))continue;let S=`${a.kind}\0${H.kind}\0${a.from===q?"from":"to"}`;s.set(S,(s.get(S)??0)+1)}}let u=[...s].sort((O,q)=>q[1]-O[1])[0];if(!u||u[1]<c.length/2)return;let[D,P,w]=u[0].split("\0");return{edge:D,kind:P,record:w}}var X=n=>n?.querySelector("main")??n;function Qe(n){if(!n?.isConnected)return null;let r=(n.querySelector("main")??n).cloneNode(!0);for(let i of r.querySelectorAll("[data-graview-listed], [data-graview-record]")){let d=i.querySelector("a[href]");d&&d.setAttribute("data-record",i.getAttribute("data-graview-listed")??i.getAttribute("data-graview-record")??"")}for(let i of r.querySelectorAll("a[aria-label]"))T(i.textContent)||(i.textContent=i.getAttribute("aria-label"));for(let i of r.querySelectorAll("script, style, svg, button, input, select, textarea, [hidden], [aria-hidden='true'], [data-graview-popover]"))i.remove();for(let i of[r,...r.querySelectorAll("*")])for(let d of[...i.getAttributeNames()])d==="data-record"&&i.localName==="a"||i.removeAttribute(d);let o=r.outerHTML.replace(/\s+/g," ").replace(/<(div|span)>\s*<\/\1>/g,"").trim();return o.length>6e3?o.slice(0,6e3):o}var z=n=>n.slot==="list"||n.slot==="group"?n.name.toLowerCase():n.slot==="record"?"parts":"records";function Xe(n,r){return n.records.flatMap(o=>r[o.label]?[{label:o.label,id:r[o.label],...o.presses?{presses:!0}:{},...o.opens?{opens:!0}:{}}]:[])}function kt(n,r){let{store:o}=n,i=r.kind?[r.kind]:o.schema.kinds,d=l=>o.schema.tryDefinition(l)?.fields?.shape??{},c=l=>{let s=l?._zod?.def;for(let u=0;u<6&&s&&s.type!=="boolean"&&s.innerType!==void 0;u++)s=s.innerType._zod?.def;return s?.type==="boolean"};return o.allMutations().flatMap(l=>{let s=l.subject;if(!s||l.creates?.length)return[];let u=i.find(w=>s.kinds==="*"||s.kinds.includes(w));if(!u)return[];let D=l.writes??[],P=D.length===1&&c(d(u)[D[0]])?D[0]:void 0;return[{act:l.name,title:String(l.title??l.name),record:s.arg,...P?{toggle:P}:{}}]}).slice(0,24)}function yt(){return document.querySelector("[data-graview-page-main], main")??document.querySelector("[data-graview-face]")}export{Ct as PageCard,_e as drawnSignature,ze as fieldsShownOf,gt as labelsShown,Qe as markupOf,lt as outlineOf,mt as recordIdsOf};
|
|
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 Ve,d as ue,g as Ke}from"./chunk.X5MCAUFX.js";import"./chunk.SXGPRFA4.js";import{c as Q,d as Ge}from"./chunk.XMBGT6UT.js";import{b as je,c as qe,d as Me}from"./chunk.DOJCYXIJ.js";import{b as se,c as Be,d as ie,e as de,f as Fe,g as ce,i as Ne,j as Ie,k as Le,l as He,m as le}from"./chunk.NVPKYWMF.js";import"./chunk.PGT4ZQDG.js";import{a as Ee}from"./chunk.TBY5IR7C.js";import{d as De}from"./chunk.4VX7GPFS.js";import"./chunk.FQ2QUDZS.js";import"./chunk.BJUUSIQY.js";import"./chunk.ONVYKLRX.js";import"./chunk.XOZU4OFA.js";import"./chunk.53GQQETN.js";import"./chunk.SMF5S4DQ.js";import"./chunk.MIE4TJRW.js";import{x as $e}from"./chunk.DEBW4FH6.js";import"./chunk.RD2FSSLV.js";import"./chunk.OWHH7JDV.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{G as it,_ as xe,ia as Ce}from"./chunk.ASNVH2G4.js";import"./chunk.SDO3U72B.js";import{ma as Re}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as ae}from"./chunk.AJZBJBMO.js";var g=ae(it(),1);var N=ae(xe(),1),T=n=>(n??"").replace(/\s+/g," ").trim(),fe=()=>new Promise(n=>requestAnimationFrame(()=>n())),dt=n=>new Promise(r=>setTimeout(r,n));function ct(n){let r=n.cloneNode(!0);for(let o of r.querySelectorAll("span"))o.remove();return T(r.textContent).replace(/^[▸▾]\s*/,"")}function _e(n){if(!n||!n.isConnected)return"";let r=n.innerText??n.textContent??"";return`${n.querySelectorAll("*").length}|${T(r)}`}function lt(n,r=80){if(!n)return"";let o=[],i=new Set,d="li, tr, article, [data-graview-listed], [data-graview-record], [data-graview-field]";for(let c of n.querySelectorAll(`h1, h2, h3, h4, ${d}`)){if(o.length>=r)break;if([...i].some(u=>u.contains(c))||c.closest("[data-graview-popover], [hidden], nav, [aria-hidden='true']"))continue;let l=/^h([1-4])$/i.exec(c.localName),s=(l?ct(c):T(c.innerText??c.textContent)).slice(0,140);if(s)if(l)o.push(`${"#".repeat(Number(l[1]))} ${s}`);else{let u=c.getAttribute("data-graview-field");o.push(u?`${u}: ${s}`:`- ${s}`),i.add(c)}}return o.join(`
|
|
2
|
+
`)}function ut(n,r){let{store:o}=n,i=c=>Object.fromEntries(Object.entries(c).filter(([,l])=>l!==void 0&&typeof l!="object").map(([l,s])=>[l,typeof s=="string"?s.slice(0,80):s]));return{kinds:(r.kind?[r.kind]:o.schema.kinds.slice(0,6)).map(c=>{let l=o.graph.nodesOfKind(c),s=o.schema.tryDefinition(c);return{kind:c,count:l.length,fields:Object.keys(s?.fields?.shape??{}),relations:Object.keys(s?.edges??{}),some:(r.record?l.filter(u=>u.id===r.record):l.slice(0,3)).map(i)}})}}function ft(n,r){let o=n.store.schema,i=new Set,d=new Set;for(let c of o.definitions)for(let[l,s]of Object.entries(c.edges??{})){let u=Array.isArray(s?.to)?s.to:[];if(r.kind===void 0||c.kind===r.kind||u.includes(r.kind)){d.add(l);for(let P of[c.kind,...u])P!==r.kind&&o.tryDefinition(P)&&i.add(P)}}if(r.kind===void 0)for(let c of o.kinds)i.add(c);return{kinds:[...i],edges:[...d]}}var Ue={manifest:"The view could not start: what it reads is not this app's.",source:"The script is too long: make it shorter.",start:"The script did not start: it must be one plain script, with no syntax errors, that calls graview.onProps and graview.render.",error:"The script threw while drawing: read only what props gives (props.nodes for a list, props.node for one record), guard each value that may be missing, and call no function that does not exist."};async function We(n,r,o=15e3){let i=Date.now()+o;for(;Date.now()<i;){for(let c of document.querySelectorAll("[data-worker-view-place]")){let l=$e(c),s=l?.name===n?l.drawing().root:void 0;if(l&&c.isConnected&&s?.isConnected&&s.childElementCount>0&&(r===void 0||await l.source()===r))return{element:c,handle:l}}let d=document.querySelector(`[data-worker-view-fell-back="${CSS.escape(n)}"]`);if(d)return{failed:Ue[d.getAttribute("data-worker-view-failed")??""]??Ue.error};await dt(80)}return{failed:"The view did not draw in time: keep it simple and quick to draw."}}var pe=new Map,pt=(n,r)=>{let o=pe.get(n);return o||pe.set(n,o={phase:r(),steps:[],before:!1,putBack:null,began:!1,original:null,markup:null,talk:[],events:[],since:Date.now(),stop:null,covering:!1,pointed:null,about:null,kept:null,pressed:null,version:0,heard:new Set}),o};function he(n,r){return r.record?[n.graph.getNode(r.record)].filter(o=>o!==void 0):r.kind?n.graph.nodesOfKind(r.kind):n.schema.kinds.flatMap(o=>n.graph.nodesOfKind(o))}var Y=(n,r)=>r?Re(n.schema.tryDefinition(r.kind),r):"";function gt(n,r,o){let i=T(o).toLowerCase();return he(n,r).map(d=>Y(n,d)).filter(d=>d.length>1&&i.includes(T(d).toLowerCase())).slice(0,40)}function ze(n,r){let o=r.kind?[r.kind]:n.schema.kinds,i=[...new Set(o.flatMap(c=>Object.keys(n.schema.tryDefinition(c)?.fields?.shape??{})))],d={};for(let c of he(n,r).slice(0,400))for(let l of i){let s=c[l];if(s==null||typeof s=="object")continue;let u=d[l]??=[];u.length<60&&!u.includes(s)&&u.push(s)}return{fields:i,values:d}}function Ct({ask:n,close:r}){let o=Ce(),{ai:i,aiDesk:d,aiHere:c,session:l,principal:s,keptViews:u,store:D,onProposeChange:P,composeChange:w,onDraftChange:O,app:q}=o,a=n.part,e=(0,g.useMemo)(()=>pt(n.at,()=>n.mode==="highlight"?{at:"highlighting"}:{at:"open"}),[n]),H=(0,g.useCallback)(t=>(e.heard.add(t),()=>void e.heard.delete(t)),[e]),S=(0,g.useSyncExternalStore)(H,()=>e.phase,()=>e.phase),Ye=(0,g.useSyncExternalStore)(H,()=>e.version,()=>e.version),A=(0,g.useCallback)(()=>{e.version+=1,e.heard.forEach(t=>t())},[e]),k=(0,g.useCallback)(t=>{e.phase=t,A()},[e,A]),x=(0,g.useCallback)(async()=>{let t=e.putBack;e.putBack=null,t&&await t()},[e]),Z=(0,g.useCallback)(()=>{e.stop?.abort(),e.stop=null,x(),pe.delete(n.at),r()},[x,n.at,r,e]),b=(0,g.useCallback)(()=>a.main?.isConnected?a.main:yt(),[a]),G={name:a.name,slot:a.slot,...a.kind?{kind:a.kind}:{},...a.group?{group:a.group}:{}},me=a.place??(a.kind?`${a.kind}-${a.slot}`:"home"),Ze=n.fromScene?`From the scene: Better UI changes how \u201C${a.name}\u201D looks on its page here, for everyone in this app.`:`This changes how ${a.name} looks for everyone in this app.`,M=(0,g.useCallback)((t,f,p,h={})=>({id:De(),at:new Date().toISOString(),by:s,target:{on:"place",place:me},targetLabel:a.name,ask:{kind:"section",said:t},offered:[],outcome:f,stages:p.map(m=>({stage:m.stage,ms:m.ms,model:m.model})),usage:p.flatMap(m=>m.usage?[{tier:m.stage==="light"?"fast":"thinking",model:m.model,inputTokens:m.usage.inputTokens,outputTokens:m.usage.outputTokens}]:[]),...h}),[s,me,a.name]),we=P!==void 0&&w!==void 0&&Ee(D,s),B=(0,g.useMemo)(()=>kt(o,a),[o,a]),C=Le(G,ft(o,a),B.map(t=>t.act)),ke=C!==void 0&&typeof u?.fork=="function"&&typeof u.draftFork=="function"&&u.current().may.views===!0,ye=a.slot==="record"?{page:"record",kind:a.kind}:a.slot==="home"?{page:"home"}:{page:"list",kind:a.kind??""},V=(0,g.useCallback)(t=>({manifest:C,source:t,from:ye,said:""}),[C,ye]),ve=S.at==="working";(0,g.useEffect)(()=>{if(!ve)return;let t=a.record??(a.kind?`kind:${a.kind}`:null);return c({participant:`agent:graview-for-${s.id??"anyone"}:${l}`,kind:"agent",name:"Graview",...s.id?{onBehalfOf:s.id}:{},over:t,robot:{at:t,mode:"thinking"}}),()=>c(null)},[ve]);let $=(0,g.useCallback)(()=>{if(e.original)return e.original;let t=b(),f=t?.innerText??"";return e.original=Q(X(t),gt(o.store,a,f||(t?.textContent??""))),e.original},[e,b,o,a]),I=(0,g.useCallback)(()=>Q(X(b()),$().records.map(t=>t.label)),[b,$]),K=(0,g.useCallback)(async t=>{if(await x(),t.kind==="spec"){let f=await O(Je(t.edits,t.said,i.name));e.putBack=f.undo}else u.draftFork(V(t.source)),e.putBack=()=>u.draftFork(null)},[x,O,e,u,V,i.name]),L=(0,g.useCallback)(async()=>{let t=e.steps.at(-1);e.before=!1,t?await K(t):await x()},[e,K,x]),v=(0,g.useCallback)((t,f)=>{e.talk.push({who:t,said:f}),A()},[e,A]),F=(0,g.useCallback)(t=>{e.events.at(-1)?.kind==="streaming"&&e.events.pop(),e.events.push(t),A()},[e,A]),U=()=>e.talk.filter(t=>t.who==="person").map(t=>t.said).join(" "),be=(0,g.useCallback)(async t=>{if(!we||!O)return!1;let p=(await (__graviewPreload(import.meta.url,["./chunk.YGGBGHZU.js","./chunk.TBY5IR7C.js","./chunk.BIDL7GQD.js","./chunk.Q5WEOX3Q.js","./chunk.7DCBIMOI.js","./chunk.GXK5PI7I.js","./chunk.XP4IVKKR.js","./chunk.R5YGW5ZX.js","./chunk.QMGBAKX6.js","./chunk.PS765ODQ.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.KHVW6Q3T.js"))).documentOfApp(q??{});if(!p)return!1;let h=e.steps.at(-1);if(h&&h.kind!=="spec")return!1;let m=h?.edits??[],y=m.length>0?w({document:p,edits:m}):void 0,j=y?.ok?y.document:p;if(!(t.mode==="just"?{can:!0}:await Ne(i,t.words,G)).can)return!1;F({kind:"look",text:`Looking at how ${a.name} is set up`});let E=[],ne=await Ie({ai:i,document:j,part:G,mode:t.mode==="choose"?"just":t.mode,...t.words?{words:t.words}:{},...t.pointed?{highlighted:[t.pointed.name,...t.pointed.lines]}:{},shows:lt(b(),30),judge:async W=>{let _=w({document:p,edits:[...m,...W]});return _.ok?(E=_.said,[]):[_.refused]}});if(!ne.ok)return!1;let at=[...m,...ne.edits],Oe=M(`Make \u201C${a.name}\u201D better: ${t.words}`,"offered",ne.stages),oe=_e(b()),re={kind:"spec",edits:at,said:E[E.length-1]??E[0]??`${a.name} changed.`,entry:Oe};e.covering=!0,A();try{await K(re);let W=oe;for(let st=Date.now()+1500;Date.now()<st&&W===oe;)await fe(),W=_e(b());let _=W===oe?["nothing changed"]:se($(),I(),{...ze(o.store,a),asked:U()});if(_.length>0)return await L(),d.record({...Oe,outcome:"failed",failed:_.join(" ")}),!1}catch{return await L(),!1}finally{e.covering=!1,A()}return e.steps.push(re),e.before=!1,F({kind:"passed",text:"Changed its settings \u2014 it's on the page"}),v("graview",`Done: ${re.said.replace(/\.$/,"")}.`),!0},[i,d,q,w,M,e,o,b,O,$,I,a,G,K,L,we,F,v,A]),Se=(0,g.useCallback)(async t=>{if(!C||!u?.draftFork)return{findings:["This page cannot be drawn anew here."],drew:void 0};let f=$();e.covering=!0,A();try{u.draftFork(V(t)),e.putBack=()=>u.draftFork(null);let p=await We(C.name,t),h;if("failed"in p)h=[p.failed];else{let y=[...await p.handle.check(t),...p.handle.refused().filter(j=>!/^Refused a rule of the stylesheet\b/.test(j))];if(y.length>0)h=y;else{await fe(),await fe();let j=p.element.closest("[data-graview-page-main], main")??X(b());h=se(f,Q(j,f.records.map(E=>E.label)),{...ze(o.store,a),asked:U()});let R=p.handle.presses?await p.handle.presses(t).catch(()=>{}):void 0;R&&(e.pressed=R,h=[...h,...ie(R,Xe(f,ge(o,a,f)),B.filter(E=>E.toggle).map(E=>E.act),z(a))])}}let m=le(I());if(h.length===0){let y=M(`Draw \u201C${a.name}\u201D anew: ${U()}`,"offered",[]);e.steps.push({kind:"view",source:t,said:Be(a.name,f,I())??`${a.name} has a new design. Compare Before and After.`,entry:y}),e.before=!1}else await L();return{findings:h,drew:m}}finally{e.covering=!1,A()}},[C,u,$,e,A,V,I,o,a,M,L]),Pe=(0,g.useCallback)(async(t=[])=>{if(!C||!ke){v("graview","Its settings can't do that, and a new design can't be drawn for it here.");return}let f=new AbortController;e.stop=f,e.markup??=Qe(b());let p=e.steps.length,h=[...e.steps].reverse().find(y=>y.kind==="view"),m=await He({ai:i,part:G,manifest:C,talk:e.talk,keep:ht($(),b(),a.name,o,a),...e.markup?{markup:e.markup}:{},...h?{current:h.source}:e.kept?{current:e.kept}:{},host:{look:()=>le(I()),read:()=>ut(o,a),draft:Se},onEvent:y=>F(y),...e.about?{about:e.about}:{},acts:B,...t.length>0?{pressed:t}:{},noun:z(a),signal:f.signal});if(e.stop===f){if(e.stop=null,e.events.at(-1)?.kind==="streaming"&&e.events.pop(),d.record(M(`Draw \u201C${a.name}\u201D anew: ${U()}`,e.steps.length>p?"offered":"failed",m.stages,e.steps.length>p?{}:{failed:m.last?.findings.join(" ")??m.said})),m.passed){let y=e.pressed?de(e.pressed,B,z(a)):void 0,j=Fe.test(m.said)?void 0:m.said;v("graview",[j??(y?void 0:"Here it is on the page."),y].filter(Boolean).join(" "))}else v("graview",m.said);m.ended==="stuck"&&k({at:"stuck",...m.keepable&&m.last?{source:m.last.source}:{}})}},[i,d,B,I,M,ke,e,o,Se,b,C,$,a,G,v,k,F]),Ae=(0,g.useCallback)(async()=>{let f=[...e.steps].reverse().find(R=>R.kind==="view")?.source??e.kept;if(!f||!C)return[];F({kind:"look",text:"Pressing every control on the page"});let p=await We(C.name);if("failed"in p||!p.handle.presses)return[];let h=await p.handle.presses(f).catch(()=>{});if(!h)return[];e.pressed=h;let m=$(),y=ie(h,Xe(m,ge(o,a,m)),B.filter(R=>R.toggle).map(R=>R.act),z(a)),j=y.length>0?y:h.controls.slice(0,8).map(R=>`${R.control}: ${R.says}`);return F(y.length>0?{kind:"check",text:`Check: ${y.length} ${y.length===1?"control doesn't":"controls don't"} work \u2014 fixing`}:{kind:"passed",text:"Check: every control works"}),v("graview",y.length>0?`I pressed every control: ${y.join(" ")}`:`I pressed every control. ${de(h,B,z(a))??"Each one did what it says."}`),j},[B,e,o,C,$,a,v,F]),J=(0,g.useCallback)(async(t,f="describe")=>{if(e.phase.at==="working")return;let p=e.pointed;e.pointed=null;let h={mode:f,words:t,...p?{pointed:p}:{}};e.about=p??e.about,v("person",t),e.events=[],e.since=Date.now(),k({at:"working"}),$(),e.markup??=Qe(b());let m=ce.test(t)?await Ae().catch(()=>[]):[];!ce.test(t)&&await be(h).catch(()=>!1)||await Pe(m),e.phase.at==="working"&&k(e.steps.length>0?{at:"draft"}:{at:"open"})},[Pe,be,e,b,$,Ae,v,k]),ee=(0,g.useCallback)(()=>{if(e.phase.at!=="working")return;let t=e.stop;e.stop=null,t?.abort(),e.covering=!1,e.steps=e.steps.filter(f=>f.entry.at<new Date(e.since).toISOString()),L(),v("graview","Stopped. The page is as it was."),k(e.steps.length>0?{at:"draft"}:{at:"open"})},[e,v,k,L]),et=(0,g.useCallback)(async t=>{let f=e.steps.at(-1);!f||t===e.before||(e.before=t,A(),t?await x():await K(f))},[e,x,K,A]),te=(0,g.useCallback)(async()=>{let t=e.steps.at(-1);if(!(!t||e.phase.at!=="draft")){k({at:"keeping"});try{let f,p;if(t.kind==="spec"){await x();let h=await P(Je(t.edits,t.said,i.name));if(h==="declined")return v("graview","It wasn't kept."),k({at:"draft"});typeof h=="object"&&([f,p]=[h.undo,h.note])}else{let h=await u.fork(V(t.source));e.putBack=null,u.draftFork?.(null),e.kept=t.source,h&&([f,p]=[h.undo,h.note])}d.record({...t.entry,outcome:"accepted"}),e.steps=[],e.before=!1,k({at:"kept",...f?{undo:f}:{},...p?{note:p}:{}})}catch{v("graview","It couldn't be kept."),k({at:"draft"})}}},[e,k,x,P,i.name,u,V,d,v]),tt=(0,g.useCallback)(async t=>{if(e.phase.at!=="stuck")return;let f={kind:"view",source:t,said:`${a.name} kept as it was last drafted.`,entry:M(`Draw \u201C${a.name}\u201D anew: ${U()}`,"offered",[])};e.steps.push(f),e.phase={at:"draft"},await te(),e.steps.at(-1)===f&&(e.steps.pop(),k(e.steps.length>0?{at:"draft"}:{at:"open"}))},[e,a.name,M,te,k]),nt=(0,g.useCallback)(()=>{v("graview","Stopped. The page is as it was."),k(e.steps.length>0?{at:"draft"}:{at:"open"})},[e,v,k]),ot=(0,g.useCallback)(()=>{let t=e.steps.at(-1);t&&d.record({...t.entry,outcome:"dismissed"}),e.steps=[],e.before=!1,x(),v("graview","Put back as it was."),k({at:"open"})},[e,d,x,v,k]),rt=(0,g.useCallback)(async()=>{if(!(e.phase.at!=="kept"||!e.phase.undo))try{await e.phase.undo(),e.kept=null,v("graview","Undone. The page is as it was."),k({at:"undone"})}catch{v("graview","It couldn't be put back.")}},[e,v,k]);if((0,g.useEffect)(()=>{e.began||!(n.mode==="just"||n.mode==="describe"&&n.words)||(e.began=!0,J(n.mode==="just"?"Make it easier to read at a glance":n.words,n.mode))},[e,n.mode,n.words,J]),(0,g.useEffect)(()=>{let t=f=>{if(f.key!=="Escape"||e.phase.at==="highlighting")return;if(f.preventDefault(),e.phase.at==="working")return ee();Z();let p=n.returnTo?.isConnected?n.returnTo:document.querySelector("[data-graview-page-title], main h1");p&&!p.hasAttribute("tabindex")&&!p.matches("a[href], button, input, select, textarea")&&p.setAttribute("tabindex","-1"),p?.focus?.()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e,Z,ee,n.returnTo]),S.at==="highlighting")return(0,N.jsx)(Ke,{box:b(),root:b(),whole:a.elements,wholeSaid:"The whole page",cancel:()=>k({at:"open"}),chose:t=>{e.pointed={name:Me(t)??je(t.map(ue)),lines:qe(t.map(ue))},k({at:"open"})}});let Te=e.steps.at(-1);return(0,N.jsxs)(N.Fragment,{children:[e.covering?(0,N.jsx)(Ge,{over:b(),name:a.name,said:`Graview is drafting \u201C${a.name}\u201D\u2026`}):null,(0,N.jsx)(Ve,{name:a.name,scope:Ze,phase:S.at,talk:e.talk,steps:e.events,since:e.since,working:S.at==="working"||S.at==="keeping",...Te&&S.at==="draft"?{draft:{said:Te.said,before:e.before}}:{},...S.at==="kept"?{kept:{...S.note?{note:S.note}:{},...S.undo?{undo:()=>void rt()}:{}}}:{},...S.at==="stuck"?{stuck:{...S.source!==void 0?{keepAnyway:()=>void tt(S.source)}:{},stop:nt}}:{},about:(e.pointed??e.about)?.name??a.name,ask:t=>void J(t),just:()=>void J("Make it easier to read at a glance","just"),point:()=>k({at:"highlighting"}),stop:ee,compare:t=>void et(t),keep:()=>void te(),discard:ot,close:Z})]})}function Je(n,r,o){return{said:r,add:[],drop:[],card:{said:r,adds:[],keeps:[],drops:[],breaking:[]},edits:n,via:`ai:${o??"model"}`}}function ht(n,r,o,i,d){let c=X(r),l=d.slot==="home"?[...r?.querySelectorAll("h1")??[]].find(w=>c!==r&&!c?.contains(w)):void 0,s=T(l?.textContent)||T(c?.querySelector("[data-graview-page-title]")?.textContent)||(d.slot==="home"?"":T(c?.querySelector("h1")?.textContent))||(d.record?T(Y(i.store,i.store.graph.getNode(d.record))):"")||o,u=ge(i,d,n),D=Object.fromEntries(n.records.flatMap(w=>w.facts?.length||w.under&&w.under!==s?[[w.label,{...u[w.label]?{id:u[w.label]}:{},...w.facts?.length?{shows:w.facts}:{},...w.under&&w.under!==s?{under:w.under}:{}}]]:[])),P=wt(i,n,u,s);return{title:s,headings:n.headings.filter(w=>w!==s),records:n.records.map(w=>w.label),...Object.keys(D).length>0?{says:D}:{},...P?{grouping:P}:{}}}function mt(n,r,o){let i=he(n,r),d={};for(let c of o.records){let l=i.find(s=>T(Y(n,s))===T(c.label));l&&(d[c.label]=l.id)}return d}var ge=(n,r,o)=>mt(n.store,r,o);function wt(n,r,o,i){let{store:d}=n,c=r.records.filter(O=>O.under&&O.under!==i&&o[O.label]);if(c.length<2)return;let l=d.graph.allEdges(),s=new Map;for(let O of c){let q=o[O.label];for(let a of l){let e=a.from===q?a.to:a.to===q?a.from:void 0,H=e!==void 0?d.graph.getNode(e):void 0;if(!H||T(Y(d,H))!==T(O.under))continue;let S=`${a.kind}\0${H.kind}\0${a.from===q?"from":"to"}`;s.set(S,(s.get(S)??0)+1)}}let u=[...s].sort((O,q)=>q[1]-O[1])[0];if(!u||u[1]<c.length/2)return;let[D,P,w]=u[0].split("\0");return{edge:D,kind:P,record:w}}var X=n=>n?.querySelector("main")??n;function Qe(n){if(!n?.isConnected)return null;let r=(n.querySelector("main")??n).cloneNode(!0);for(let i of r.querySelectorAll("[data-graview-listed], [data-graview-record]")){let d=i.querySelector("a[href]");d&&d.setAttribute("data-record",i.getAttribute("data-graview-listed")??i.getAttribute("data-graview-record")??"")}for(let i of r.querySelectorAll("a[aria-label]"))T(i.textContent)||(i.textContent=i.getAttribute("aria-label"));for(let i of r.querySelectorAll("script, style, svg, button, input, select, textarea, [hidden], [aria-hidden='true'], [data-graview-popover]"))i.remove();for(let i of[r,...r.querySelectorAll("*")])for(let d of[...i.getAttributeNames()])d==="data-record"&&i.localName==="a"||i.removeAttribute(d);let o=r.outerHTML.replace(/\s+/g," ").replace(/<(div|span)>\s*<\/\1>/g,"").trim();return o.length>6e3?o.slice(0,6e3):o}var z=n=>n.slot==="list"||n.slot==="group"?n.name.toLowerCase():n.slot==="record"?"parts":"records";function Xe(n,r){return n.records.flatMap(o=>r[o.label]?[{label:o.label,id:r[o.label],...o.presses?{presses:!0}:{},...o.opens?{opens:!0}:{}}]:[])}function kt(n,r){let{store:o}=n,i=r.kind?[r.kind]:o.schema.kinds,d=l=>o.schema.tryDefinition(l)?.fields?.shape??{},c=l=>{let s=l?._zod?.def;for(let u=0;u<6&&s&&s.type!=="boolean"&&s.innerType!==void 0;u++)s=s.innerType._zod?.def;return s?.type==="boolean"};return o.allMutations().flatMap(l=>{let s=l.subject;if(!s||l.creates?.length)return[];let u=i.find(w=>s.kinds==="*"||s.kinds.includes(w));if(!u)return[];let D=l.writes??[],P=D.length===1&&c(d(u)[D[0]])?D[0]:void 0;return[{act:l.name,title:String(l.title??l.name),record:s.arg,...P?{toggle:P}:{}}]}).slice(0,24)}function yt(){return document.querySelector("[data-graview-page-main], main")??document.querySelector("[data-graview-face]")}export{Ct as PageCard,_e as drawnSignature,ze as fieldsShownOf,gt as labelsShown,Qe as markupOf,lt as outlineOf,mt as recordIdsOf};
|
|
@@ -0,0 +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 $,b as j,c as v,d as M,e as D,f as J}from"./chunk.SI5GGFQR.js";import{a as q}from"./chunk.DOJCYXIJ.js";import{h as F,o as W}from"./chunk.NVPKYWMF.js";import"./chunk.PGT4ZQDG.js";import"./chunk.JMXBMLKH.js";import"./chunk.PVAYYFT2.js";import{a as G}from"./chunk.TBY5IR7C.js";import"./chunk.BIDL7GQD.js";import"./chunk.4VX7GPFS.js";import"./chunk.FQ2QUDZS.js";import"./chunk.BJUUSIQY.js";import"./chunk.ONVYKLRX.js";import"./chunk.XOZU4OFA.js";import"./chunk.53GQQETN.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.7DCBIMOI.js";import"./chunk.GXK5PI7I.js";import"./chunk.SMF5S4DQ.js";import"./chunk.XP4IVKKR.js";import"./chunk.R5YGW5ZX.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import"./chunk.MIE4TJRW.js";import{x as _}from"./chunk.DEBW4FH6.js";import"./chunk.RD2FSSLV.js";import"./chunk.OWHH7JDV.js";import"./chunk.T3RFZ66S.js";import"./chunk.TDWJU6GW.js";import"./chunk.P3Z4ZCL3.js";import"./chunk.45OLF6BK.js";import"./chunk.T6ISUVUP.js";import{B as K}from"./chunk.GH6QX7JR.js";import"./chunk.J4D4BIB4.js";import{G as Q,Qa as E,_ as R,ia as V,sa as L}from"./chunk.ASNVH2G4.js";import{a as O}from"./chunk.SDO3U72B.js";import{la as N,qa as A}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import{b as C}from"./chunk.AJZBJBMO.js";var p=C(Q(),1);var g=C(R(),1),Y=new WeakMap,x=new Set,z=e=>{let n=Y.get(e);return n||Y.set(e,n={ask:null,doors:[],heard:new Set}),n},P=e=>e.heard.forEach(n=>n()),X=0,k=null,Z=6e4;function S(e,n){let l=z(e);l.ask=n?{...n,at:++X}:null,P(l)}var T=E(O(()=>(__graviewPreload(import.meta.url,["./chunk.X5MCAUFX.js","./chunk.SXGPRFA4.js","./chunk.XMBGT6UT.js","./chunk.DOJCYXIJ.js","./chunk.NVPKYWMF.js","./chunk.PGT4ZQDG.js","./chunk.TBY5IR7C.js","./chunk.4VX7GPFS.js","./chunk.FQ2QUDZS.js","./chunk.BJUUSIQY.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.SMF5S4DQ.js","./chunk.MIE4TJRW.js","./chunk.DEBW4FH6.js","./chunk.RD2FSSLV.js","./chunk.OWHH7JDV.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.6GUIFP2A.js")))),ee=T.part((e,n)=>{let l=e.SectionDrawn;return(0,g.jsx)(l,{...n})},{what:"Make this better"}),B=E(O(()=>(__graviewPreload(import.meta.url,["./chunk.SI5GGFQR.js","./chunk.XMBGT6UT.js","./chunk.NVPKYWMF.js","./chunk.YGGBGHZU.js","./chunk.PGT4ZQDG.js","./chunk.FKSI5522.js","./chunk.L6BLZJ6K.js","./chunk.VNI6HZEF.js","./chunk.THLT6NVO.js","./chunk.HIIYDKFC.js","./chunk.GYP3EF6Z.js","./chunk.KMFH26SS.js","./chunk.YF5GCOSZ.js","./chunk.F2BZ4SC4.js","./chunk.WAPY4RCS.js","./chunk.JJSZLCNU.js","./chunk.JKX4J3KG.js","./chunk.JMXBMLKH.js","./chunk.PVAYYFT2.js","./chunk.HJCQ6I3S.js","./chunk.QNFX5VHW.js","./chunk.UXW43HNW.js","./chunk.LG2BQ5LB.js","./chunk.L3ST2YKI.js","./chunk.7VCYVCYM.js","./chunk.MFNWHXGL.js","./chunk.DCIYOZYP.js","./chunk.IZKCTF2R.js","./chunk.G4JJXA63.js","./chunk.TBY5IR7C.js","./chunk.JP33TNCH.js","./chunk.BIDL7GQD.js","./chunk.O5P6LXHF.js","./chunk.4VX7GPFS.js","./chunk.FQ2QUDZS.js","./chunk.BJUUSIQY.js","./chunk.VGQDPEB5.js","./chunk.WIVNFOQR.js","./chunk.ONVYKLRX.js","./chunk.XOZU4OFA.js","./chunk.53GQQETN.js","./chunk.Q5WEOX3Q.js","./chunk.7DCBIMOI.js","./chunk.GXK5PI7I.js","./chunk.DYPSFTRP.js","./chunk.WVUJXDXZ.js","./chunk.J7GH2CGV.js","./chunk.SMF5S4DQ.js","./chunk.XP4IVKKR.js","./chunk.R5YGW5ZX.js","./chunk.QMGBAKX6.js","./chunk.PS765ODQ.js","./chunk.MIE4TJRW.js","./chunk.DEBW4FH6.js","./chunk.RD2FSSLV.js","./chunk.OWHH7JDV.js","./chunk.T3RFZ66S.js","./chunk.TDWJU6GW.js","./chunk.P3Z4ZCL3.js","./chunk.45OLF6BK.js","./chunk.T6ISUVUP.js","./chunk.GH6QX7JR.js","./chunk.J4D4BIB4.js","./chunk.ASNVH2G4.js","./chunk.SDO3U72B.js","./chunk.ZDUKVXBI.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.APUICV5Z.js")))),ne=B.part((e,n)=>(0,g.jsx)(e.DisplaySwitch,{...n}),{what:"Other ways to show this"}),H=(e,n,l,u,i)=>({id:"make-better",at:"start",mode:{id:"better",label:"Better UI",mark:"\u2728",claims:async t=>(await F(e.ai,t,n)).about==="look",open:l,nudges:u},prepare:i}),I="graview.better.from-scene",te=3e4;function oe(e,n){let l=n.store.schema,u=n.views.places?.()??[],i=s=>u.find(d=>d.as===s),t=e.on??(e.about.length===1?e.about[0]:void 0),a=t?.startsWith("aggregate:")?t.slice(10):void 0,f=t&&!a?n.store.graph.getNode(t):void 0,c=e.place!==void 0?i(e.place):a&&!a.includes("+")?u.find(s=>s.kind===a):void 0;if(c)return{name:c.title,to:{place:c.as},part:{name:c.title,slot:"place",kind:c.kind,place:c.as,elements:[],main:null}};let r=a&&!a.includes("+")&&l.tryDefinition(a)?a:f?.kind;if(!r)return;let o=A(l,r);return{name:o,to:{list:r},part:{name:o,slot:"list",kind:r,elements:[],main:null}}}function ge(e,n){let{aiDesk:l,keptViews:u}=n,i=e.section,t=e.element??null;if(!i&&e.face==="scene"){let c=typeof document>"u"?null:document.querySelector('[data-testid="app-menu-open"][data-pages]'),r=c?{click:()=>c.dispatchEvent(new CustomEvent(K,{detail:"pages"}))}:null,o=oe(e,n);if(!r||!o||!D(o.part,n))return null;let s=d=>{try{sessionStorage.setItem(I,JSON.stringify({to:o.to,mode:d?"describe":"choose",...d?{words:d}:{},at:Date.now()}))}catch{return}r.click()};return H(n,o.name,s,()=>[`Make \u201C${o.name}\u201D easier to read at a glance`],()=>T.prefetch())}if(i){if(!u?.revise||u.current().may.views!==!0||!_(q(i)))return null;let c=r=>S(l,r?{section:i,mode:"describe",words:r,returnTo:t}:{section:i,mode:"choose",returnTo:t});return H(n,i.name,c,()=>[`Make \u201C${i.name}\u201D easier to read at a glance`],()=>T.prefetch())}let a=e.page&&e.face==="pages"?M(e.page,n):void 0;if(!a||!D(a,n))return null;v.set(e.page.at,a);let f=c=>S(l,c?{part:a,mode:"describe",words:c,returnTo:t}:{part:a,mode:"choose",returnTo:t});return H(n,a.name,f,()=>J(a,n),()=>T.prefetch())}function ye(e,n,l,u){let{aiDesk:i,app:t,composeChange:a,onProposeChange:f,principal:c,store:r}=n;if(e.face!=="pages"||e.section||!e.page||f===void 0||a===void 0||!G(r,c))return null;let o=M(e.page,n);if(!o?.kind||o.slot!=="list"&&o.slot!=="group"&&o.slot!=="place"||o.slot!=="place"&&l?.(o.kind))return null;if(o.slot==="place"){let m=(t?.lenses??[]).find(y=>y.title===o.name);if(!m||$(m,o.kind))return null}let s=r.schema.tryDefinition(o.kind),d=r.graph.nodesOfKind(o.kind).filter(m=>N(s,m));if(d.length===0||u&&j(r.schema,r.graph,o.kind,d,u,new Set(r.violations().flatMap(m=>m.nodeIds))).length===0)return null;let h={...o.slot==="group"?{name:A(r.schema,o.kind),slot:"list",kind:o.kind,elements:o.main?[o.main]:[],main:o.main}:o,...u?{filter:u}:{}},w=e.element??null;return{id:"display-options",items:[{id:"other-ways",label:"Other ways to show this",run:()=>S(i,{part:h,mode:"options",returnTo:w})}],prepare:()=>B.prefetch()}}var re=e=>v.get(e.at)?.elements;function ke(){let e=V(),{aiDesk:n,menuAt:l}=e,u=L(),i=(0,p.useRef)({here:e,goTo:u});i.current={here:e,goTo:u},(0,p.useEffect)(()=>{let s=null;try{s=JSON.parse(sessionStorage.getItem(I)??"null")}catch{return}if(!s||Date.now()-s.at>te)return;let d=s.to;try{sessionStorage.removeItem(I)}catch{}"list"in d?i.current.goTo.list(d.list):i.current.goTo.place(d.place);let h=0,w=setInterval(()=>{h+=1;let m=document.querySelector("[data-graview-page-title]"),y=document.querySelector("[data-graview-page-main]")??m?.closest("main")??m?.parentElement?.parentElement??null;if(!y||h<4){h>150&&clearInterval(w);return}clearInterval(w);let U="place"in d?{at:y,place:d.place}:{at:y,about:[`aggregate:${d.list}`]},b=M(U,i.current.here);!b||!D(b,i.current.here)||(v.set(y,b),S(i.current.here.aiDesk,s.words?{part:b,mode:"describe",words:s.words,fromScene:!0}:{part:b,mode:s.mode,fromScene:!0}))},120);return()=>clearInterval(w)},[]);let t=z(n),a=(0,p.useId)(),f=(0,p.useMemo)(()=>s=>(t.heard.add(s),()=>void t.heard.delete(s)),[t]);(0,p.useEffect)(()=>(t.doors.push(a),x.add(t),!t.ask&&k&&k.ask.part&&Date.now()-k.at<Z&&(t.ask=k.ask),k=null,P(t),()=>{if(t.doors.splice(t.doors.indexOf(a),1),t.doors.length===0&&(x.delete(t),t.ask?.part)){let s=[...x].find(d=>!d.ask);s?(s.ask=t.ask,P(s)):k={ask:t.ask,at:Date.now()}}P(t)}),[t,a]);let c=(0,p.useSyncExternalStore)(f,()=>t.doors[0]===a,()=>!1),r=(0,p.useSyncExternalStore)(f,()=>t.ask,()=>null),o=l?.section?.elements??(l?.page?re(l.page):void 0);return!c||!r&&!o?null:r?r.mode==="options"&&r.part?(0,g.jsx)(p.Suspense,{fallback:null,children:(0,g.jsx)(ne,{ask:r,close:()=>S(n,null)})}):(0,g.jsx)(p.Suspense,{fallback:null,children:(0,g.jsx)(ee,{ask:r,close:()=>S(n,null)})}):(0,g.jsx)(W,{elements:o})}export{ke as SectionDoor,S as askSection,ye as displayOptionsSection,ge as sectionFor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as D}from"./chunk.
|
|
1
|
+
import{e as D}from"./chunk.UXW43HNW.js";import{a as T}from"./chunk.SMF5S4DQ.js";import{d as A}from"./chunk.P3Z4ZCL3.js";import{b as O}from"./chunk.45OLF6BK.js";import{db as x,ma as S}from"./chunk.ZDUKVXBI.js";var _=300,F=14,W=50,M=3,j=2;function N(t,e,d){let s=t.tryDefinition(e)?.fields?.shape;return(s?.[d]===void 0?void 0:T(s[d]))?.type}var C=(t,e)=>Object.keys(t.tryDefinition(e)?.fields?.shape??{}),I=t=>t==="date"||t==="datetime",R=/^(due|dueOn|dueAt|dueDate|deadline|by)$/i,L=/^(date|on|day|when|at|start|starts|startsOn|startsAt|begins|from|sown|scheduled|scheduledFor|planned|plannedFor)$/i,B=/^(done|finished|complete|completed|closed)$/i;function E(t,e){let d=t.tryDefinition(e),s=C(t,e),n=s.filter(l=>I(N(t,e,l)));if(n.length===0)return;let o=d?.fieldRoles??{},i=l=>o[l]!==void 0&&n.includes(o[l])?o[l]:void 0,a=i("start")??i("when")??n.find(l=>R.test(l))??n.find(l=>L.test(l));if(!a)return;let g=i("end")??n.find(l=>l!==a&&/^(end|ends|until|to|finish|finished|harvested|through)$/i.test(l)),u=s.find(l=>B.test(l)&&N(t,e,l)==="boolean");return{field:a,due:R.test(a),...g?{end:g}:{},...u?{done:u}:{}}}function w(t,e){return Math.round((Date.parse(`${e.slice(0,10)}T00:00:00Z`)-Date.parse(`${t.slice(0,10)}T00:00:00Z`))/864e5)}var h=t=>typeof t=="string"&&/^\d{4}-\d{2}-\d{2}/.test(t)?t.slice(0,10):void 0;function Y(t,e,d,s){let n=D(t,e);if(n&&d.length>0&&d.length<=_)return{shape:"board",field:n.field};let o=E(t,e);if(o&&!o.due){let i=r=>{let p=h(r[o.field]),y=h(x(r,o.field,s));return p&&y?w(p,y):0},a=d.map(r=>({from:h(x(r,o.field,s)),to:o.end&&h(r[o.end])?b(h(r[o.end]),i(r)):void 0})).filter(r=>r.from!==void 0).map(r=>({from:r.from,to:r.to&&r.to>r.from?r.to:r.from})),g=`${s.slice(0,7)}-01`,u=b(`${b(g,31).slice(0,7)}-01`,-1),l=a.filter(r=>r.from<=u&&r.to>=g),c=a.map(r=>w(r.from,r.to)).sort((r,p)=>r-p),f=c[Math.floor(c.length/2)]??0;if(l.length>0&&f<=F){let r=b(s,-((new Date(`${s}T00:00:00Z`).getUTCDay()+6)%7)),p=b(r,6),y=l.every(m=>m.from>=r&&m.to<=p);return{shape:"calendar",start:o.field,...o.end?{end:o.end}:{},...o.done?{done:o.done}:{},range:y?"week":"month"}}}return{shape:"table"}}function H(t,e){let d=E(t,e);return d?{by:d.field,direction:d.due?"asc":"desc"}:void 0}function q(t,e,d={}){switch(e.shape){case"board":return{lens:"columns",kind:t,column:e.field};case"calendar":return{lens:"calendar",kind:t,start:e.start,...e.end?{end:e.end}:{},...e.done?{done:e.done}:{},range:e.range};case"table":return{lens:"blocks",kind:t,as:"row",...d.group?.by?{group:d.group.by}:{},...d.sort?{sort:{by:d.sort.by,...d.sort.direction==="desc"?{direction:"desc"}:{}}}:{}}}}var G=60;function z(t,e,d,s){let n=t.tryDefinition(e),o=d.slice(0,G),i=new Map;o.forEach(c=>{let f=S(n,c);A(c,n,{glance:!0,said:[f]}).forEach((r,p)=>{if(r.long||r.files||r.app)return;let y=i.get(r.key);y?y.count++:i.set(r.key,{label:r.label,count:1,at:p})})});let a=Math.max(1,Math.ceil(o.length/3)),g=[...i.entries()].filter(([,c])=>c.count>=a).sort((c,f)=>c[1].at-f[1].at).slice(0,M).map(([c,f])=>({about:"field",key:c,label:f.label})),u=new Map;for(let c of o){let f=new Set;for(let[r,p]of[["out",s.outEdges(c.id)],["in",s.inEdges(c.id)]])for(let y of p){let m=s.getNode(r==="out"?y.to:y.from);if(!m||m.id===c.id)continue;let v=`${y.kind}|${r}`;if(f.has(v))continue;f.add(v);let k=u.get(v);k?k.count++:u.set(v,{edge:y.kind,direction:r,far:m.kind,count:1})}}let l=[...u.entries()].sort((c,f)=>f[1].count-c[1].count).slice(0,j).map(([c,f])=>{let r=O(t,f.direction==="out"?e:f.far,f.edge,f.direction);return{about:"edge",key:c,label:r.charAt(0).toUpperCase()+r.slice(1),edge:f.edge,direction:f.direction}});return[...g,...l]}function J(t,e,d,s){if(d.about==="field"){let i=t.tryDefinition(e.kind);return{text:A(e,i,{excerpt:!0}).find(g=>g.key===d.key)?.value??""}}let o=(d.direction==="out"?s.outEdges(e.id):s.inEdges(e.id)).filter(i=>i.kind===d.edge).map(i=>s.getNode(d.direction==="out"?i.to:i.from)).filter(i=>i!==void 0).map(i=>S(t.tryDefinition(i.kind),i));return o.length===0?{text:""}:o.length===1?{text:o[0]}:{text:`${o[0]} +${o.length-1}`,title:o.join(", ")}}function Q(t,e,d=()=>{}){let s=new Map;for(let n of t){let o=n.nodeIds.filter(a=>e.has(a));if(o.length===0&&!(n.subjectId!==void 0&&e.has(n.subjectId)))continue;let i=s.get(n.invariant)??{invariant:n.invariant,label:d(n.invariant)||n.label||n.message,violations:[],records:new Set};i.violations.push(n);for(let a of o)i.records.add(a);n.subjectId!==void 0&&e.has(n.subjectId)&&i.records.add(n.subjectId),s.set(n.invariant,i)}return[...s.values()].sort((n,o)=>o.violations.length-n.violations.length).map(n=>({invariant:n.invariant,label:n.label,violations:n.violations,records:[...n.records]}))}var $=6;function X(t,e,d,s){let n=E(t,e);if(!n)return;let o=D(t,e),i=u=>{if(n.done!==void 0&&u[n.done]===!0)return!0;if(!o)return!1;let l=o.values.indexOf(String(u[o.field]));return l>=0&&o.tiers[l]==="done"},a=0,g=0;for(let u of d){let l=h(x(u,n.field,s));if(!l||i(u))continue;let c=w(s,l);n.due&&c<0?a++:c>=0&&c<=$&&g++}if(!(a===0&&g===0))return{field:n.field,due:n.due,overdue:a,soon:g}}function b(t,e){return new Date(Date.parse(`${t.slice(0,10)}T00:00:00Z`)+e*864e5).toISOString().slice(0,10)}function ee(t,e,d){return e==="overdue"?[{key:t.field,value:`before:${d}`}]:[{key:t.field,value:`after:${b(d,-1)}`},{key:t.field,value:`before:${b(d,$+1)}`}]}function ne(t,e,d,s){let n=new Set,o=new Set;for(let i of t)if(!(i.at<=d))for(let a of i.primitives)a.op==="add-node"&&a.node?.kind===e?n.add(a.node.id):(a.op==="patch-node"||a.op==="splice-text")&&a.id!==void 0&&s(a.id)===e&&o.add(a.id);for(let i of n)o.delete(i);return{added:[...n].filter(i=>s(i)===e).length,changed:[...o].filter(i=>s(i)===e).length}}export{_ as a,W as b,N as c,E as d,Y as e,H as f,q as g,z as h,J as i,Q as j,X as k,ee as l,ne as m};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Ae}from"./chunk.BJUUSIQY.js";import{a as X}from"./chunk.
|
|
1
|
+
import{a as Ae}from"./chunk.BJUUSIQY.js";import{a as X}from"./chunk.SMF5S4DQ.js";import{Bc as Se,Jd as $e,Tb as be,ha as B,ma as he,pa as W,pc as we,sa as ke,va as _,zc as Q}from"./chunk.ZDUKVXBI.js";import{j as H}from"./chunk.FQLNBIQ5.js";var M=e=>e.trim().toLowerCase(),U=e=>e.charAt(0).toUpperCase()+e.slice(1),le=e=>/^(?:[aeio]|u(?![sn]i|se|ser))/i.test(e),ee=e=>`${le(e)?"an":"a"} ${e}`,xe=e=>M(e).replace(/[^a-z0-9]+([a-z0-9])/g,(n,r)=>r.toUpperCase()).replace(/[^A-Za-z0-9]/g,""),se=e=>M(e).replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),ae=new Set(["person","people","someone","somebody","user","users","member","members"]);function de(e,n){let r=M(n);return Object.entries(e.kinds).find(([f,d])=>[f,d.noun,d.plural].some(c=>c!==void 0&&M(c)===r))?.[0]}function K(e,n){if(!e(n))return n;for(let r=2;;r++)if(!e(`${n}${r}`))return`${n}${r}`}function Fe(e,n){let r=e.acts??{},f=m=>m in r;if("link"in n){let m=de(e,n.link.on);if(!m)return{refused:`This app has no ${n.link.on} to give it to.`};let k=e.kinds[m],C=M(k.noun??m),v=M(n.link.called)||"linked to",u=de(e,n.link.to)??(ae.has(M(n.link.to))?(Object.entries(e.kinds).find(([,T])=>T.people)??Object.entries(e.kinds).find(([T,P])=>[T,P.noun,P.plural].some(t=>t!==void 0&&ae.has(M(t)))))?.[0]:void 0),A=[],j=[],$,F=u===void 0;if(!u){let T=M(n.link.to)||"person",P=ae.has(T),t=P?"person":T.replace(/s$/,""),a=P?"people":`${t}s`;u=K(b=>b in e.kinds,se(t)),A.push({op:"add-kind",kind:u,noun:t,plural:a,fields:{name:{type:"string",required:!0}},label:"{name}"}),$=K(f,`add-${u}`),j.push(`Add ${ee(U(a))} list.`)}let i=u in e.kinds?e.kinds[u]:A[0],y=M(i.noun??u),S=K(T=>T in(k.edges??{})||T in(k.fields??{}),xe(v)||"linkedTo");A.push({op:"add-relation",kind:m,relation:S,to:[u],cardinality:"one",description:U(v)});let R=K(f,`set-${se(v)}`);return A.push({op:"add-act",act:R,title:`Set \u201C${U(v)}\u201D`,on:m,connects:S,description:`Say who ${ee(C)} is ${v}.`}),j.push(`Give each ${C} ${le(v)?"an":"a"} \u201C${U(v)}\u201D field that points to ${ee(y)}.`),{edits:A,steps:j,on:m,relation:S,to:u,made:F,act:R,arg:"to",...$?{makes:$}:{},called:v}}let d=de(e,n.field.on);if(!d)return{refused:`This app has no ${n.field.on} to give it to.`};let c=e.kinds[d],g=M(c.noun??d),p=M(n.field.called)||"note",l=n.field.type??"string",s=K(m=>m in(c.fields??{})||m in(c.edges??{}),xe(p)||"note"),o=K(f,`set-${se(p)}`);return{edits:[{op:"add-field",kind:d,field:s,spec:{type:l}},{op:"add-act",act:o,title:`Set \u201C${U(p)}\u201D`,on:d,args:{value:{type:l,required:!0}},sets:{[s]:"$value"},description:`Say ${ee(g)}'s ${p}.`}],steps:[`Give each ${g} ${le(p)?"an":"a"} \u201C${U(p)}\u201D field.`],on:d,field:s,act:o,arg:"value",called:p}}var Re=["search-miss","unanswered","refused","tool-invalid"];var qe=new RegExp("[\\u0000-\\u001f\\u007f-\\u009f\\u200b-\\u200f\\u2028-\\u202e\\u2066-\\u2069]","g");var G=e=>e.onBehalfOf?G(e.onBehalfOf):e.id!==void 0?`${e.kind}:${e.id}`:`${e.kind}:?`,ce=e=>e.toLowerCase().replace(/\s+/g," ").replace(/^[\s\p{P}]+|[\s\p{P}]+$/gu,"");var Ce=new Set("a an and are at be by can do does for from has have how i in is it me my of on or our the their there this to was we what when where which who why will with you your".split(" "));function J(e,n,r,f,d){let c=new Map;for(let g of e){let p=n(g);if(p===void 0)continue;let l=c.get(p)??{first:g,people:new Set,times:0,last:g};l.people.add(G(g.by)),l.times+=1,l.last=g,c.set(p,l)}return[...c.entries()].filter(([,g])=>g.people.size>=f).sort(([g,p],[l,s])=>s.people.size-p.people.size||s.times-p.times||g.localeCompare(l)).slice(0,d).map(([g,p])=>({...r(p.last,g),people:p.people.size,times:p.times}))}function je(e,n={}){let r=Math.max(1,n.minPeople??2),f=n.most??12,d=n.reader?G(n.reader):void 0,c=e.filter(s=>!$e(s.by)&&(d===void 0||G(s.by)!==d)),g=Object.fromEntries(Re.map(s=>{let o=c.filter(m=>m.type===s);return[s,{events:o.length,people:new Set(o.map(m=>G(m.by))).size}]})),p=[],l=new Map;for(let s of c){let o=s.type==="search-miss"?s.words:s.type==="unanswered"?s.question:void 0;if(o!==void 0)for(let m of new Set(ce(o).split(/[^\p{L}\p{N}]+/u))){if(m.length<3||Ce.has(m))continue;let k={...s,id:`${s.id}:${m}`};p.push(k),l.set(k,m)}}return{events:c.length,people:new Set(c.map(s=>G(s.by))).size,byType:g,searches:J(c,s=>s.type==="search-miss"&&ce(s.words)||void 0,(s,o)=>({words:o}),r,f),questions:J(c,s=>s.type==="unanswered"&&ce(s.question)||void 0,(s,o)=>({question:o,...s.lacks?{lacks:s.lacks}:{}}),r,f),words:J(p,s=>l.get(s),(s,o)=>({word:o}),r,f),refusals:J(c,s=>s.type==="refused"?`${s.act}|${s.code}`:void 0,s=>({act:s.act,code:s.code}),r,f),tools:J(c,s=>s.type==="tool-invalid"?`${s.tool}|${s.act??""}`:void 0,s=>{let o=s;return{tool:o.tool,...o.act?{act:o.act}:{},...o.then?{then:o.then}:{}}},1,f)}}var ve=e=>e.length>3&&e.endsWith("s")&&!e.endsWith("ss")?e.slice(0,-1):e;function Ee(e){let n=new Set,r=f=>{for(let d of f.toLowerCase().split(/[^\p{L}\p{N}]+/u))d.length>0&&n.add(ve(d))};for(let f of e.kinds){let d=e.tryDefinition(f);r(f),r(_(d,f)),r(W(e,f));for(let c of[...d?.aliases??[],...Object.values(d?.fieldAliases??{}).flat()])r(c);for(let c of Object.keys(d?.fields?.shape??{}))r(c),r(B(c))}return n}function Oe(e,n,r={}){let f=je(e,{most:8,...r}),d=Ee(n),c=f.searches.filter(o=>!o.words.split(/[^\p{L}\p{N}]+/u).some(m=>m.length>0&&d.has(ve(m)))).map(o=>({words:o.words,people:o.people})),g=f.questions.map(o=>({question:o.question,people:o.people,...o.lacks?{lacks:o.lacks}:{}})),p=f.tools.map(o=>({tool:o.tool,...o.act?{act:o.act}:{},...o.then?{then:o.then}:{},times:o.times})),l=o=>`${o} ${o===1?"person":"people"}`;return{said:[...c.length>0?[`Searched for, found nothing, and nothing here is called it: ${c.map(o=>`\u201C${o.words}\u201D (${l(o.people)})`).join(", ")}.`]:[],...g.length>0?[`Asked and not answered: ${g.map(o=>`\u201C${o.question}\u201D (${l(o.people)}${o.lacks?`; ${o.lacks.replace(/[.!]$/,"")}`:""})`).join(", ")}.`]:[],...p.length>0?[`Tool calls refused as invalid: ${p.map(o=>`${o.tool}${o.act?` (${o.act})`:""} ${o.times===1?"once":`${o.times} times`}${o.then?`, then worked as ${o.then}`:""}`).join("; ")}.`]:[]].join(`
|
|
2
2
|
`),unknownWords:c,questions:g,toolMistakes:p}}var Te=e=>/^(?:aggregate|kind):([^,]+)$/.exec(e)?.[1];function Ze(e,n){let r=e.about??[];if(e.field!==void 0&&e.on!==void 0&&n(e.on))return{on:"field",id:e.on,field:e.field};let f=r.filter(n);if(f.length>1)return{on:"selection",ids:f};if(e.on!==void 0&&n(e.on))return{on:"record",id:e.on};if(f.length===1)return{on:"record",id:f[0]};let d=[e.on,...r].map(c=>c===void 0?void 0:Te(c)).find(c=>c!==void 0);return e.place!==void 0?{on:"lens",place:e.place,...d?{kind:d}:{}}:d!==void 0?{on:"list",kind:d}:{on:"place",place:"home"}}var ne=e=>e.on==="record"||e.on==="field"?[e.id]:e.on==="selection"?e.ids:e.on==="act"&&e.id!==void 0?[e.id]:[],te=(e,n)=>e.tryDefinition(n)?.fields?.shape??{},Y=(e,n)=>e.tryDefinition(n)?.edges??{},ie=(e,n)=>new Set(e.tryDefinition(n)?.display?.hide??[]),N=(e,n)=>he(e.tryDefinition(n.kind),n),fe=(e,n,r)=>ke(e.tryDefinition(n),r)||B(r),ye=e=>typeof e=="boolean"?e?"yes":"no":String(e);function oe(e,n){let r=e.kindsKeptFrom(n);return new Set(e.schema.kinds.filter(f=>!r.has(f)))}function pe(e,n,r,f){if(!e.permits(n,r).ok)return!1;if(!f)return!0;try{return e.previewAll([n],{author:r}).ops.length>0}catch{return!1}}function Qe(e,n,r){let f=e,{principal:d}=r,c=r.each??8,g=H(f)?.store??f,p=g.seenBy(d),l=g.schema,s=oe(g,d),o=t=>{let a=p.graph.getNode(t);return a&&s.has(a.kind)?a:void 0},m=g.allMutations(),k=new Map(m.map(t=>[t.name,t])),C=[],v=new Set,u=t=>{v.has(t.id)||(v.add(t.id),C.push(t))},A=t=>t.slice(0,c),j=ne(n).filter(t=>o(t)!==void 0);if(ne(n).length>0&&j.length===0)return{target:n,candidates:[]};let $=j.length===1?o(j[0]):void 0,F=$?.kind??(n.on==="list"?n.kind:n.on==="lens"?n.kind??r.places?.find(t=>t.as===n.place)?.kind:void 0)??(n.on==="selection"?o(j[0])?.kind:void 0);if(F!==void 0&&!s.has(F))return{target:n,candidates:[]};let i=(t,a)=>`act:${t}${Object.keys(a).length>0?`:${Object.values(a).map(b=>String(b)).join(",")}`:""}`,y=(t,a,b,O,h)=>{t.destructive||Object.values(a).some(I=>typeof I=="string"&&g.graph.has(I)&&o(I)===void 0)||pe(g,{name:t.name,args:{...a}},d,O.length===0)&&u({type:"act",id:i(t.name,a),label:b,description:h??t.description??b,mutation:t.name,args:a,asks:O})};if(n.on!=="place"||r.acts)if(r.acts)for(let t of r.acts){let a=k.get(t.mutation);!a||t.destructive||n.on==="act"&&t.mutation!==n.act||y(a,t.args,t.label,(t.open??[]).filter(b=>!b.optional).map(b=>b.name),t.why)}else{let t=$?[$]:[];for(let a of m){if(n.on==="act"&&a.name!==n.act)continue;let b=a.input.shape??{},O=h=>Object.entries(b).filter(([I,w])=>I!==h&&w.safeParse?.(void 0).success===!1).map(([I])=>I);if(a.subject)for(let h of t)Q(l,a).includes(h.kind)&&y(a,{[a.subject.arg]:h.id},`${a.title??B(a.name)}: ${N(l,h)}`,O(a.subject.arg));else F!==void 0&&(a.creates??[]).includes(F)&&y(a,{},a.title??B(a.name),O(void 0))}}let S=C.filter(t=>t.type==="act");C.splice(0,C.length,...A(S));let R=(t,a)=>{let b=Se(l,m).get(t.kind),O=te(l,t.kind),h=ie(l,t.kind),I=[];for(let[w,D]of Object.entries(O)){if(a!==void 0?w!==a:h.has(w)||t[w]!==void 0)continue;let z=X(D),q=z?.type==="enum"&&!z.multiple?z.options??[]:z?.type==="boolean"?[!0,!1]:[];if(q.length===0)continue;let L=(b?.get(w)??[]).map(E=>k.get(E)).find(E=>E?.subject!==void 0&&pe(g,{name:E.name,args:{[E.subject.arg]:t.id,[w]:q.find(re=>re!==t[w])??q[0]}},d,!0));if(L?.subject)for(let E of q)t[w]!==E&&I.push({type:"fill",id:`fill:${t.id}:${w}:${ye(E)}`,label:`${fe(l,t.kind,w)}: ${ye(E)}`,description:`Set ${fe(l,t.kind,w).toLowerCase()} of ${N(l,t)} to ${ye(E)}`,record:t.id,field:w,value:E,call:{name:L.name,args:{[L.subject.arg]:t.id,[w]:E}}})}for(let[w,D]of Object.entries(Y(l,t.kind))){if(a!==void 0&&w!==a)continue;let z=D.to==="*"?[...s]:D.to.filter(x=>s.has(x)),q=new Set(p.graph.out(t.id,w).map(x=>x.id)),L=m.find(x=>(x.connects??[]).includes(w)&&x.subject!==void 0&&Q(l,x).includes(t.kind));if(!L?.subject)continue;let E=we(L.input).find(x=>x.name!==L.subject.arg);if(!E)continue;let re=z.flatMap(x=>E.kinds.length===0||E.kinds.includes(x)?p.graph.nodesOfKind(x):[]).filter(x=>x.id!==t.id&&!q.has(x.id)&&o(x.id)!==void 0);for(let x of A(re)){let me={name:L.name,args:{[L.subject.arg]:t.id,[E.name]:x.id}};pe(g,me,d,!0)&&I.push({type:"fill",id:`fill:${t.id}:${w}:${x.id}`,label:`${B(w)}: ${N(l,x)}`,description:`Link ${N(l,t)} to ${N(l,x)}${D.description?` as ${D.description}`:""}`,record:t.id,field:w,value:x.id,call:me})}}return I};if(n.on==="field"&&$)for(let t of R($,n.field))u(t);else if($&&n.on==="record")for(let t of A(R($)))u(t);let T=t=>{let a=W(l,t).toLowerCase(),b=[{type:"panel",id:`panel:${t}:list`,label:`A list of ${a}`,description:`Every ${_(l.tryDefinition(t),t).toLowerCase()} this viewer may see, as a list`,panel:{lens:"blocks",kind:t}}],O=ie(l,t);for(let[h,I]of Object.entries(te(l,t))){if(O.has(h))continue;let w=X(I),D=fe(l,t,h).toLowerCase();if(w?.type==="enum")b.push({type:"panel",id:`panel:${t}:group:${h}`,label:`${V(a)} by ${D}`,description:`A list of ${a} grouped by ${D}`,panel:{lens:"blocks",kind:t,group:h}}),b.push({type:"panel",id:`panel:${t}:columns:${h}`,label:`Columns of ${a} by ${D}`,description:`${V(a)} in a column for each ${D}`,panel:{lens:"columns",kind:t,column:h}});else if(w?.type==="number"||w?.type==="integer"||w?.type==="date"||w?.type==="datetime"){let z=w.type==="date"||w.type==="datetime";b.push({type:"panel",id:`panel:${t}:sort:${h}`,label:`${V(a)} by ${D}`,description:`A list of ${a}, the ${z?"latest":"highest"} ${D} first`,panel:{lens:"blocks",kind:t,sort:{by:h,direction:"desc"}}}),z&&b.push({type:"panel",id:`panel:${t}:calendar:${h}`,label:`A calendar of ${a}`,description:`${V(a)} on a calendar by ${D}`,panel:{lens:"calendar",kind:t,start:h}})}}return b},P=n.on==="place"?[...s]:F!==void 0?[F]:[];for(let t of P)for(let a of A(T(t)))u(a);for(let t of A((r.places??[]).filter(a=>!a.hidden&&(a.kind===void 0?n.on==="place":s.has(a.kind)&&(n.on==="place"||a.kind===F)))))n.on==="lens"&&t.as===n.place||u({type:"place",id:`place:${t.as}`,label:t.title,description:`Go to ${t.title}`,place:t.as});if($){let t=[];for(let[a,b]of Object.entries(Y(l,$.kind)))for(let O of p.graph.out($.id,a))o(O.id)&&t.push({type:"record",id:`record:${O.id}`,label:N(l,O),description:`${V(b.description??B(a))}: ${N(l,O)}`,record:O.id,relation:a});for(let a of l.kinds)for(let[b,O]of Object.entries(Y(l,a)))if(!(O.to!=="*"&&!O.to.includes($.kind)))for(let h of p.graph.in($.id,b))h.kind===a&&o(h.id)&&t.push({type:"record",id:`record:${h.id}`,label:N(l,h),description:`${V(O.inverse??B(b))}: ${N(l,h)}`,record:h.id,relation:b});for(let a of A(t))u(a)}else if(n.on==="list"||n.on==="lens")for(let t of A(F!==void 0?p.graph.nodesOfKind(F):[]))o(t.id)&&u({type:"record",id:`record:${t.id}`,label:N(l,t),description:`Open ${N(l,t)}`,record:t.id});else if(n.on==="selection")for(let t of j){let a=o(t);u({type:"record",id:`record:${t}`,label:N(l,a),description:`Open ${N(l,a)}`,record:t})}return{target:n,candidates:C}}var V=e=>e&&`${e[0].toUpperCase()}${e.slice(1)}`,Pe={columns:["board","kanban","column","lane","pipeline","stage","funnel"],board:["board","map","floor","layout","seat","slot"],calendar:["calendar","schedule","date","due","month","week","agenda","deadline","day"],timeline:["timeline","gantt","schedule","roadmap","span"],coverage:["coverage","matrix","grid","gap"],plan:["plan","floor","map","region","area"],blocks:["list","table","summary","overview","dashboard","card"]},De=new Set(["a","an","the","of","for","my","our","me","us","to","with","and","in","on","by","that","which","i","we","want","need","show","open","go","draw","make","new","view","views","panel","panels","page","lens","please","all","every","some","see","can","could","would","like","one","what","is","are","do","does","here","there","how","it","this","these","those"]),Z=e=>e.length>3&&e.endsWith("ies")?`${e.slice(0,-3)}y`:e.length>3&&e.endsWith("s")&&!e.endsWith("ss")?e.slice(0,-1):e,ue=e=>e.toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,"").split(/[^a-z0-9]+/).filter(Boolean);function Xe(e,n,r){let f=e,d=H(f)?.store??f,c=d.schema,g=oe(d,r.principal),p=d.seenBy(r.principal),l=ne(n),s=new Set;for(let i of l){let y=p.graph.getNode(i)?.kind;y!==void 0&&g.has(y)&&s.add(y)}if(l.length>0&&s.size===0)return[];if(n.on==="list"&&s.add(n.kind),n.on==="lens"){let i=n.kind??r.places.find(y=>y.as===n.place)?.kind;i!==void 0&&s.add(i)}let o=new Map;for(let i of c.kinds){if(!g.has(i))continue;let y=c.tryDefinition(i);for(let S of[i,_(y,i),W(c,i)])for(let R of ue(S))o.set(Z(R),i)}let m=ue(r.said??"").filter(i=>!De.has(i)),k=new Set,C=[];for(let i of m){let y=o.get(Z(i));y!==void 0?k.add(y):C.push(Z(i))}let v=k.size>0?k:s;if((r.said??"").trim()!==""&&m.length===0)return[];if(v.size===0&&m.length===0)return[];let u=[];r.places.forEach((i,y)=>{if(i.hidden||n.on==="lens"&&i.as===n.place)return;let S=i.over??(i.kind!==void 0?[i.kind]:[]);if(S.length>0&&!S.some(P=>g.has(P)))return;let R=S.some(P=>v.has(P)),T=!R&&(i.reads??[]).some(P=>v.has(P));v.size>0&&!R&&!T||u.push({place:i,own:R,reads:T,at:y})});let A=i=>new Set(ue(i.title).map(Z)),j=new Set(C.filter(i=>u.some(({place:y})=>A(y).has(i)))),$=[];for(let{place:i,own:y,reads:S,at:R}of u){let T=A(i),P=new Set((Pe[i.lens??""]??[]).map(Z)),t=C.filter(h=>T.has(h)||P.has(h)&&!j.has(h)).length,a=C.length-t;if(C.length>0&&t===0)continue;let b=!S&&a===0?"full":"partial",O=(y?4:S?2:1)+t*2-a+(b==="full"?1:0);$.push({view:{place:i.as,title:i.title,...i.kind!==void 0?{kind:i.kind}:{},fit:b},score:O,at:R})}return $.filter((i,y)=>!$.slice(0,y).some(S=>S.view.place===i.view.place&&S.view.title===i.view.title)).sort((i,y)=>y.score-i.score||i.at-y.at).slice(0,r.most??3).map(i=>i.view)}var ge=new WeakMap;function Ne(e){let n=2166136261;for(let r=0;r<e.length;r++)n^=e.charCodeAt(r),n=Math.imul(n,16777619)>>>0;return n.toString(36)}function Ie(e,n){let r=e,f=H(r)?.store??r,d=f.schema,c=oe(f,n),p=f.allMutations().filter(u=>!u.destructive&&f.permits({name:u.name,args:{}},n).ok!==!1),l=`${[...c].join(",")}|${p.map(u=>u.name).join(",")}`,s=ge.get(d)?.get(l);if(s)return s;let o=[...c].map(u=>{let A=ie(d,u),j={};for(let[y,S]of Object.entries(te(d,u))){if(A.has(y))continue;let R=X(S);R&&(j[y]=R.type==="enum"?`enum:${(R.options??[]).join("|")}`:R.type)}let $={};for(let[y,S]of Object.entries(Y(d,u)))$[y]=S.to==="*"?[...c]:S.to.filter(R=>c.has(R));let F=d.tryDefinition(u),i=Object.entries(F?.fieldAliases??{}).filter(([y,S])=>y in j&&S.length>0);return{kind:u,noun:_(d.tryDefinition(u),u),plural:W(d,u),fields:j,relations:$,...F?.aliases&&F.aliases.length>0?{aliases:F.aliases}:{},...i.length>0?{fieldAliases:Object.fromEntries(i)}:{}}}),m=p.map(u=>({name:u.name,title:u.title??B(u.name),...u.subject?{on:Q(d,u).filter(A=>c.has(A))}:{}})),k={kinds:o,acts:m},C={version:Ne(JSON.stringify(k)),...k},v=ge.get(d)??new Map;return v.set(l,C),ge.set(d,v),C}var Me=e=>e.name??e.id??e.kind;function en(e,n,r){let f=e,{principal:d}=r,c=H(f)?.store??f,g=c.seenBy(d),p=c.schema,l=oe(c,d),s=i=>{let y=g.graph.getNode(i);return y&&l.has(y.kind)?y:void 0},o=i=>({id:i.id,kind:i.kind,label:N(p,i)}),m=ne(n),k=m.length===1?s(m[0]):void 0,C=k?Object.fromEntries(Object.keys(te(p,k.kind)).filter(i=>!ie(p,k.kind).has(i)&&k[i]!==void 0&&i!=="label").map(i=>[i,k[i]])):{},v={on:n.on,...k?{record:{...o(k),fields:C}}:{},...n.on==="field"&&k?{field:n.field}:{},...n.on==="list"&&l.has(n.kind)?{kind:n.kind}:{},...n.on==="lens"?{place:n.place,...n.kind&&l.has(n.kind)?{kind:n.kind}:{}}:{},...n.on==="place"?{place:n.place}:{},...n.on==="act"?{act:n.act}:{}},u=[...new Set([...n.on==="selection"?n.ids:[],...r.selection??[]])].flatMap(i=>{let y=s(i);return y?[o(y)]:[]}),A=[];if(k){for(let i of Object.keys(Y(p,k.kind)))for(let y of g.graph.out(k.id,i))s(y.id)&&A.push({...o(y),relation:i,direction:"out"});for(let i of p.kinds)for(let y of Object.keys(Y(p,i)))for(let S of g.graph.in(k.id,y))S.kind===i&&s(S.id)&&A.push({...o(S),relation:y,direction:"in"})}let j=g.batches().filter(i=>!i.ops.every(be)).slice(-(r.recent??6)).reverse().map(i=>({intent:i.intent,at:i.at,by:Me(i.author)})),$=(r.purpose?.jobs??[]).filter(i=>Ae(i,d.roles)&&l.has(i.kind)).map(i=>({name:i.name,ask:i.ask,kind:i.kind})),F=r.purpose&&(r.purpose.for!==void 0||$.length>0)?{...r.purpose.for!==void 0?{for:r.purpose.for}:{},jobs:$}:void 0;return{...r.place!==void 0?{place:r.place}:{},target:v,selection:u,neighbors:A.slice(0,24),recent:j,schema:Ie(c,d),...F?{purpose:F}:{},...r.friction?{friction:Oe(r.friction,p,{reader:d})}:{}}}export{Fe as a,Ze as b,ne as c,Qe as d,Xe as e,en as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as y,b as h}from"./chunk.
|
|
1
|
+
import{a as y,b as h}from"./chunk.NKRDVOLJ.js";import"./chunk.YC2IDHQX.js";import"./chunk.R5YGW5ZX.js";import"./chunk.QMGBAKX6.js";import"./chunk.PS765ODQ.js";import{Hd as b}from"./chunk.ZDUKVXBI.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var k=(d,i)=>({id:i.id,said:h(d,i),when:i.when,...i.alsoMine?{alsoMine:!0}:{}});async function A(d,i,t){let a=b(t.principal);if(a.id===void 0)return{ok:!1,error:"This seat acts for nobody the app knows by id, so there is nobody to tell. Nothing was kept."};let r=t.store.seenBy(a),p=async()=>(await t.subscriptions.list(a.id)).filter(n=>n.app===t.app);if(d==="list_subscriptions")return{ok:!0,data:{subscriptions:(await p()).map(n=>k(r,n))}};if(d==="unsubscribe"){let n=String(i.id??"");return(await p()).some(g=>g.id===n)?(await t.subscriptions.remove(n),{ok:!0,data:{removed:n}}):{ok:!1,error:`No subscription "${n}" of yours. list_subscriptions says which there are.`}}let o=String(i.on??""),c=n=>typeof i[n]=="string"&&i[n].trim()!==""?i[n].trim():void 0,e=c("record");if(e!==void 0&&!r.graph.getNode(e)){let n=t.store.resolveRef({name:"record",kinds:["*"]},e,a);if(!n.ok)return{ok:!1,error:`${n.message} Nothing was kept.`};e=n.id}let s=c("kind")??(e!==void 0&&o!=="act"?r.graph.getNode(e)?.kind:void 0),f=c("act"),m=c("condition"),u=o==="act"?{on:o,...f!==void 0?{act:f}:{},...e!==void 0?{record:e}:{}}:o==="created"&&s!==void 0?{on:o,kind:s}:o==="changed"?{on:o,...s!==void 0&&e===void 0?{kind:s}:{},...e!==void 0?{record:e}:{}}:o==="reaches"&&s!==void 0?{on:o,kind:s,condition:m??"",...e!==void 0?{record:e}:{}}:void 0;if(!u)return{ok:!1,error:'Say what to be told of: on is "act", "created", "changed" or "reaches", with a kind (or a record) for all but act. Nothing was kept.'};let l=y({schema:r.schema,allMutations:()=>t.store.allMutations(),graph:r.graph},u);if(l)return{ok:!1,error:`${l} Nothing was kept.`};let S=await t.subscriptions.add({who:a,app:t.app,when:u,...i.alsoMine===!0?{alsoMine:!0}:{}});return{ok:!0,data:{subscription:k(r,S)}}}export{A as runSubscriptionTool};
|