graview 0.1.65 → 0.1.66
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/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/preview/{chunk.6RZHKQP3.js → chunk.2KFZHUAC.js} +1 -1
- package/dist/preview/chunk.2MHNPBHC.js +1 -0
- package/dist/preview/{chunk.2PK335JQ.js → chunk.2VR7YEJ6.js} +1 -1
- package/dist/preview/chunk.32SHA3EY.js +1 -0
- package/dist/preview/chunk.3L4JMM3P.js +1 -0
- package/dist/preview/chunk.3PBTN7RO.js +1 -0
- package/dist/preview/chunk.45JP6VGJ.js +5 -0
- package/dist/preview/{chunk.INTJD5WG.js → chunk.4AC2QM7T.js} +1 -1
- package/dist/preview/chunk.4FCFNAA4.js +1 -0
- package/dist/preview/chunk.4FDVINRJ.js +1 -0
- package/dist/preview/chunk.4JULYKGD.js +1 -0
- package/dist/preview/chunk.4U4D7WOI.js +1 -0
- package/dist/preview/chunk.4WGYUYWU.js +2 -0
- package/dist/preview/chunk.5B5SRTUK.js +1 -0
- package/dist/preview/chunk.5BX66FBP.js +1 -0
- package/dist/preview/chunk.5CXIEYHY.js +2 -0
- package/dist/preview/chunk.5EMIWORS.js +1 -0
- package/dist/preview/{chunk.KIQXTQDU.js → chunk.5FNFRVTL.js} +1 -1
- package/dist/preview/chunk.5LJVOLKR.js +1 -0
- package/dist/preview/{chunk.GPCKOYSF.js → chunk.6EHHMWPP.js} +1 -1
- package/dist/preview/chunk.6EVMXBNB.js +1 -0
- package/dist/preview/chunk.6FQW6FNL.js +1 -0
- package/dist/preview/chunk.6HY6ZGEE.js +5 -0
- package/dist/preview/{chunk.DICM56FT.js → chunk.6LXIEM6B.js} +1 -1
- package/dist/preview/chunk.6MQ5NT7S.js +1 -0
- package/dist/preview/chunk.6P6NGZ6D.js +1 -0
- package/dist/preview/{chunk.F2TWV4TX.js → chunk.6TLXFMX2.js} +1 -1
- package/dist/preview/chunk.72XP2ARZ.js +1 -0
- package/dist/preview/{chunk.QSDBF7VL.js → chunk.72ZCLEQC.js} +1 -1
- package/dist/preview/{chunk.LY5CY7GE.js → chunk.7BIPZTJB.js} +1 -1
- package/dist/preview/chunk.7VADSNPZ.js +1 -0
- package/dist/preview/{chunk.IR4OW67N.js → chunk.7VP6Y6D2.js} +1 -1
- package/dist/preview/{chunk.C437FVD7.js → chunk.7ZKBYXUM.js} +1 -1
- package/dist/preview/chunk.AK7NGFEX.js +6 -0
- package/dist/preview/{chunk.FHHVW2WB.js → chunk.ANS2IEEV.js} +1 -1
- package/dist/preview/{chunk.LKK5YF2H.js → chunk.B6JRTW3A.js} +1 -1
- package/dist/preview/chunk.BCQWAFGD.js +1 -0
- package/dist/preview/{chunk.SOMRYDDH.js → chunk.BFAFCVL4.js} +1 -1
- package/dist/preview/chunk.BGAC3B7X.js +1 -0
- package/dist/preview/chunk.BMENTGDC.js +21 -0
- package/dist/preview/chunk.BOCVLC7X.js +1 -0
- package/dist/preview/{chunk.IMKD6QQG.js → chunk.BUVTUAB5.js} +1 -1
- package/dist/preview/chunk.BXBEGMPO.js +22 -0
- package/dist/preview/{chunk.ZYNC73DJ.js → chunk.BZ7QWHAE.js} +1 -1
- package/dist/preview/{chunk.AB4RZSYW.js → chunk.C2C3AXGI.js} +16 -16
- package/dist/preview/chunk.CBXS23YH.js +23 -0
- package/dist/preview/chunk.CEQQIW7Z.js +1 -0
- package/dist/preview/chunk.CEVGND3Y.js +6 -0
- package/dist/preview/{chunk.ZDUTEM3Z.js → chunk.CTASTRQN.js} +1 -1
- package/dist/preview/chunk.CU2WCYMK.js +1 -0
- package/dist/preview/{chunk.SPCAMQJE.js → chunk.CVPMSPCH.js} +1 -1
- package/dist/preview/chunk.DEHIR4EG.js +1 -0
- package/dist/preview/chunk.DPJNGFEZ.js +4 -0
- package/dist/preview/chunk.DQFHIJFN.js +1 -0
- package/dist/preview/chunk.DSYP43NN.js +1 -0
- package/dist/preview/chunk.DTCAUPLC.js +1 -0
- package/dist/preview/{chunk.7Q43N5JS.js → chunk.DZFM6GSY.js} +1 -1
- package/dist/preview/chunk.E3UL4MCD.js +35 -0
- package/dist/preview/chunk.E4VRRWFP.js +1 -0
- package/dist/preview/{chunk.6YDC6IDA.js → chunk.E7EWNWAN.js} +1 -1
- package/dist/preview/chunk.EG7OOJH5.js +1 -0
- package/dist/preview/{chunk.J6KNEI5R.js → chunk.EMFOMSMI.js} +1 -1
- package/dist/preview/{chunk.5THLLSS4.js → chunk.EQ4OODGO.js} +1 -1
- package/dist/preview/{chunk.P6TZGR3A.js → chunk.ES63XSIM.js} +1 -1
- package/dist/preview/chunk.EUAO4QNV.js +1 -0
- package/dist/preview/{chunk.O2W5JTWA.js → chunk.EXYCN4WI.js} +1 -1
- package/dist/preview/chunk.F4VB6Q2W.js +1 -0
- package/dist/preview/chunk.F7672TKJ.js +1 -0
- package/dist/preview/chunk.FA42HCPW.js +1 -0
- package/dist/preview/{chunk.L6FGKJ5H.js → chunk.FBILPNGH.js} +1 -1
- package/dist/preview/chunk.FBJAQPZ6.js +1 -0
- package/dist/preview/{chunk.FDWRH5P2.js → chunk.FDZE5LTJ.js} +2 -2
- package/dist/preview/{chunk.FOSY7MZF.js → chunk.FFOD5B4B.js} +1 -1
- package/dist/preview/{chunk.XSWR5LI4.js → chunk.FIFUMX5X.js} +1 -1
- package/dist/preview/{chunk.RFVOXX3P.js → chunk.FK722SHI.js} +1 -1
- package/dist/preview/chunk.FV72U33M.js +1 -0
- package/dist/preview/chunk.FXT5CN32.js +19 -0
- package/dist/preview/chunk.GAFMWOME.js +1 -0
- package/dist/preview/{chunk.PTQPS2FJ.js → chunk.GEFXU4VO.js} +1 -1
- package/dist/preview/chunk.GG47EIKO.js +1 -0
- package/dist/preview/{chunk.5M34BJIQ.js → chunk.GME63ZHI.js} +1 -1
- package/dist/preview/{chunk.IJ3YDBWI.js → chunk.GNEOSHQ6.js} +1 -1
- package/dist/preview/{chunk.N2FNHRI2.js → chunk.HOCD7KIR.js} +1 -1
- package/dist/preview/chunk.HSSIMVVM.js +1 -0
- package/dist/preview/{chunk.S2DOVJRL.js → chunk.I2737CPF.js} +1 -1
- package/dist/preview/chunk.I4Z7HVRT.js +1 -0
- package/dist/preview/{chunk.F5VEHAP2.js → chunk.IAEHUSQQ.js} +1 -1
- package/dist/preview/{chunk.7E4CSXBT.js → chunk.IGK7EZCX.js} +1 -1
- package/dist/preview/chunk.INHS3KTK.js +1 -0
- package/dist/preview/{chunk.LGRQDILY.js → chunk.IWYMKGZZ.js} +1 -1
- package/dist/preview/{chunk.3RFAUIGT.js → chunk.J2MM6BUW.js} +1 -1
- package/dist/preview/{chunk.7IGD2K4M.js → chunk.J7W2OFHY.js} +1 -1
- package/dist/preview/chunk.JMXXA4YG.js +1 -0
- package/dist/preview/chunk.JMYUQNXN.js +6 -0
- package/dist/preview/chunk.JO2X52D4.js +1 -0
- package/dist/preview/{chunk.2QQ37RCZ.js → chunk.JXNVNFV4.js} +1 -1
- package/dist/preview/chunk.K6DFXDPZ.js +1 -0
- package/dist/preview/{chunk.NSO6RUKW.js → chunk.KACSYPEV.js} +1 -1
- package/dist/preview/{chunk.ZMWAZACO.js → chunk.KBPJ7X7W.js} +1 -1
- package/dist/preview/chunk.KF27ME27.js +1 -0
- package/dist/preview/{chunk.35E75QJ7.js → chunk.KSIEO5W7.js} +1 -1
- package/dist/preview/chunk.L25DCT5S.js +1 -0
- package/dist/preview/{chunk.3KUYB5ZT.js → chunk.LETAQTLJ.js} +1 -1
- package/dist/preview/{chunk.44ZHHPPJ.js → chunk.LGRVEHXT.js} +2 -2
- package/dist/preview/chunk.LINSO5PN.js +1 -0
- package/dist/preview/{chunk.LVD3V77M.js → chunk.LLIURXFP.js} +1 -1
- package/dist/preview/{chunk.3IZEZPJB.js → chunk.LSN2IPAI.js} +1 -1
- package/dist/preview/chunk.M2JCFNHJ.js +1 -0
- package/dist/preview/{chunk.B3WVCSW5.js → chunk.M5FP4Y4Q.js} +1 -1
- package/dist/preview/{chunk.CPYBJNHP.js → chunk.M6ZN2KUO.js} +1 -1
- package/dist/preview/chunk.MODLZJD4.js +25 -0
- package/dist/preview/chunk.MWGZKZD6.js +1 -0
- package/dist/preview/{chunk.64FCAUAJ.js → chunk.NJRLJEJY.js} +1 -1
- package/dist/preview/chunk.NYLKG25K.js +4 -0
- package/dist/preview/{chunk.CD6YWH6T.js → chunk.OEIWIZCP.js} +1 -1
- package/dist/preview/{chunk.ZJFXM3LE.js → chunk.OJY7VJ7D.js} +1 -1
- package/dist/preview/chunk.OMT4QUZY.js +23 -0
- package/dist/preview/{chunk.R2TSTDS3.js → chunk.ONYBW45K.js} +1 -1
- package/dist/preview/chunk.OO2OP76C.js +1 -0
- package/dist/preview/{chunk.G3Q5IMM3.js → chunk.OOSIKCOS.js} +1 -1
- package/dist/preview/{chunk.7VQ3C7F4.js → chunk.OPTYYIGC.js} +1 -1
- package/dist/preview/{chunk.TUCSUZNO.js → chunk.OTV5XTBB.js} +1 -1
- package/dist/preview/{chunk.74B6KQF4.js → chunk.OWFS2YDQ.js} +1 -1
- package/dist/preview/{chunk.CXDGE5ZS.js → chunk.OWO3OV62.js} +1 -1
- package/dist/preview/{chunk.BUQKRXI6.js → chunk.PAGEGBUD.js} +1 -1
- package/dist/preview/{chunk.CGQ6KXVK.js → chunk.PDDIQ6PK.js} +1 -1
- package/dist/preview/{chunk.T3KNLP7C.js → chunk.PFQBCHQA.js} +1 -1
- package/dist/preview/{chunk.MH46V556.js → chunk.PPSYUOH7.js} +1 -1
- package/dist/preview/{chunk.HJS3LTSR.js → chunk.PSQYDCVM.js} +1 -1
- package/dist/preview/chunk.QDVGHI7R.js +1 -0
- package/dist/preview/chunk.QFHWG4LN.js +1 -0
- package/dist/preview/chunk.QGIM2WAY.js +1 -0
- package/dist/preview/chunk.QHMHUL6B.js +3 -0
- package/dist/preview/chunk.QOS5T46W.js +1 -0
- package/dist/preview/{chunk.KHAVEYT7.js → chunk.QPF4KSAW.js} +1 -1
- package/dist/preview/chunk.QQAZQDRW.js +1 -0
- package/dist/preview/chunk.QU52E5RG.js +3 -0
- package/dist/preview/{chunk.CS72MISN.js → chunk.QWNSHISU.js} +1 -1
- package/dist/preview/chunk.RSMCTI2N.js +1 -0
- package/dist/preview/chunk.RWIN3POV.js +1 -0
- package/dist/preview/chunk.SSF47GUY.js +1 -0
- package/dist/preview/chunk.T6DPWW2K.js +3 -0
- package/dist/preview/chunk.TA36WBHK.js +1 -0
- package/dist/preview/chunk.TGEL6EUA.js +1 -0
- package/dist/preview/chunk.TTGKX7LT.js +1 -0
- package/dist/preview/chunk.TXHYGFIZ.js +1 -0
- package/dist/preview/chunk.U3ED7W2U.js +1 -0
- package/dist/preview/chunk.U3HERHAI.js +88 -0
- package/dist/preview/chunk.U6QXLNHF.js +15 -0
- package/dist/preview/{chunk.FXG5AJF6.js → chunk.U6TEW6YD.js} +1 -1
- package/dist/preview/chunk.UJPX3BUV.js +1 -0
- package/dist/preview/chunk.V5I4GZEY.js +1 -0
- package/dist/preview/{chunk.XTTESA7X.js → chunk.V7W5AQKL.js} +1 -1
- package/dist/preview/{chunk.IFBGYFS4.js → chunk.VGHO3VCB.js} +1 -1
- package/dist/preview/{chunk.2TZSLREX.js → chunk.VKZIEZ5C.js} +2 -2
- package/dist/preview/chunk.VT2YGDK2.js +1 -0
- package/dist/preview/{chunk.ZTN7BS5O.js → chunk.W4YDPHCQ.js} +1 -1
- package/dist/preview/{chunk.NKYYDFIX.js → chunk.W53YNBSM.js} +1 -1
- package/dist/preview/chunk.WAB3L3ZI.js +1 -0
- package/dist/preview/chunk.WSDJPXJD.js +1 -0
- package/dist/preview/chunk.WSO7JOW5.js +1 -0
- package/dist/preview/{chunk.BU5PVRX7.js → chunk.WVLEGCRI.js} +1 -1
- package/dist/preview/chunk.XK65Y2KX.js +1 -0
- package/dist/preview/chunk.XMQG2PSM.js +50 -0
- package/dist/preview/{chunk.QO5RXOCS.js → chunk.XOE4KNP2.js} +2 -2
- package/dist/preview/chunk.YIPXZUTT.js +2 -0
- package/dist/preview/chunk.YNEHJWJV.js +2 -0
- package/dist/preview/{chunk.S3EEY7T3.js → chunk.YXEO3Y65.js} +1 -1
- package/dist/preview/chunk.Z274CL7J.js +1 -0
- package/dist/preview/{chunk.NBVPWLRY.js → chunk.Z7Y3R3YR.js} +1 -1
- package/dist/preview/{chunk.DJMSXXP4.js → chunk.ZBVYD4OX.js} +1 -1
- package/dist/preview/{chunk.4O3C2LJF.js → chunk.ZD7T234N.js} +1 -1
- package/dist/preview/{chunk.TY74U3EI.js → chunk.ZQR2SN65.js} +1 -1
- package/dist/preview/chunk.ZR2TP3BF.js +111 -0
- package/dist/preview/chunk.ZRBGYXAO.js +6 -0
- package/dist/preview/index.html +56 -54
- package/dist/preview/page.js +2 -2
- package/dist/preview/splash.js +17 -14
- package/package.json +6 -6
- package/dist/preview/chunk.2P34ML3O.js +0 -111
- package/dist/preview/chunk.2UW5CRHF.js +0 -1
- package/dist/preview/chunk.2YMO7ZVX.js +0 -1
- package/dist/preview/chunk.33ULA3CG.js +0 -1
- package/dist/preview/chunk.3CJLAJXP.js +0 -25
- package/dist/preview/chunk.3IJSB5ET.js +0 -1
- package/dist/preview/chunk.3KO35VN4.js +0 -1
- package/dist/preview/chunk.3L37FY3G.js +0 -4
- package/dist/preview/chunk.3WP66LB5.js +0 -1
- package/dist/preview/chunk.4GJ7F4SP.js +0 -35
- package/dist/preview/chunk.4IJTPV5X.js +0 -1
- package/dist/preview/chunk.4JFBLVXJ.js +0 -1
- package/dist/preview/chunk.4PCVQEVI.js +0 -1
- package/dist/preview/chunk.5FQSYMAE.js +0 -1
- package/dist/preview/chunk.5NCLZ4NZ.js +0 -1
- package/dist/preview/chunk.5YNLFOBJ.js +0 -5
- package/dist/preview/chunk.77XQEDT5.js +0 -1
- package/dist/preview/chunk.7HPQI5SY.js +0 -1
- package/dist/preview/chunk.A4VA3DU5.js +0 -1
- package/dist/preview/chunk.ABSY3UZF.js +0 -1
- package/dist/preview/chunk.ARHAD5IS.js +0 -1
- package/dist/preview/chunk.BOC2EOGB.js +0 -9
- package/dist/preview/chunk.BR6TINGU.js +0 -1
- package/dist/preview/chunk.CDEAAWPS.js +0 -1
- package/dist/preview/chunk.CXJJB3MK.js +0 -1
- package/dist/preview/chunk.CXLQPE4J.js +0 -1
- package/dist/preview/chunk.DA4RSHLW.js +0 -1
- package/dist/preview/chunk.DJPNVXBQ.js +0 -6
- package/dist/preview/chunk.DJVHKBEI.js +0 -1
- package/dist/preview/chunk.DVSTLVIH.js +0 -15
- package/dist/preview/chunk.E5WJSTOV.js +0 -1
- package/dist/preview/chunk.FEGSYSA7.js +0 -1
- package/dist/preview/chunk.HJUXC5GM.js +0 -1
- package/dist/preview/chunk.HNMSYQRA.js +0 -1
- package/dist/preview/chunk.HWLRKOI3.js +0 -1
- package/dist/preview/chunk.IHUMKFYH.js +0 -10
- package/dist/preview/chunk.IQ54QTA5.js +0 -1
- package/dist/preview/chunk.IQC3GOXO.js +0 -1
- package/dist/preview/chunk.ISN2QTVL.js +0 -2
- package/dist/preview/chunk.J24YPQ5I.js +0 -5
- package/dist/preview/chunk.J545NAMY.js +0 -1
- package/dist/preview/chunk.K2HDEL7I.js +0 -1
- package/dist/preview/chunk.K3JARAWU.js +0 -1
- package/dist/preview/chunk.KROR65KD.js +0 -2
- package/dist/preview/chunk.KV7GZBJ6.js +0 -50
- package/dist/preview/chunk.L7NJLZWV.js +0 -1
- package/dist/preview/chunk.LON75VHP.js +0 -1
- package/dist/preview/chunk.LQWVJQ5X.js +0 -18
- package/dist/preview/chunk.M5W2RHC6.js +0 -1
- package/dist/preview/chunk.M6BTLH24.js +0 -1
- package/dist/preview/chunk.MAGKI4PD.js +0 -1
- package/dist/preview/chunk.MD36ZSM5.js +0 -74
- package/dist/preview/chunk.MFZJVHWP.js +0 -1
- package/dist/preview/chunk.MHTA4HYB.js +0 -19
- package/dist/preview/chunk.N2YM247R.js +0 -1
- package/dist/preview/chunk.N35SJWAM.js +0 -1
- package/dist/preview/chunk.NJSK3UO2.js +0 -6
- package/dist/preview/chunk.OHMHPTEW.js +0 -1
- package/dist/preview/chunk.PV2I4UPH.js +0 -1
- package/dist/preview/chunk.QFQSSZN7.js +0 -1
- package/dist/preview/chunk.RSS6OHXG.js +0 -1
- package/dist/preview/chunk.SBCAYTMT.js +0 -1
- package/dist/preview/chunk.SMTGRCMG.js +0 -3
- package/dist/preview/chunk.TCZIZ2PU.js +0 -1
- package/dist/preview/chunk.U74PTRHJ.js +0 -1
- package/dist/preview/chunk.UAORKZLO.js +0 -1
- package/dist/preview/chunk.UDVTPI2W.js +0 -1
- package/dist/preview/chunk.UETLP5KC.js +0 -1
- package/dist/preview/chunk.UHI3X2YD.js +0 -1
- package/dist/preview/chunk.UL62ELNR.js +0 -1
- package/dist/preview/chunk.VRYSZYAD.js +0 -1
- package/dist/preview/chunk.VUZFLDOX.js +0 -1
- package/dist/preview/chunk.X2NGFOAF.js +0 -1
- package/dist/preview/chunk.XE762VL2.js +0 -2
- package/dist/preview/chunk.Y2RZ5B4U.js +0 -1
- package/dist/preview/chunk.YKMBXMZE.js +0 -1
- package/dist/preview/chunk.Z34KASY7.js +0 -1
- package/dist/preview/chunk.ZMGKWMID.js +0 -1
- package/dist/preview/chunk.ZT5YQSSP.js +0 -21
- package/dist/preview/chunk.ZZM75ZTN.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as Ft,b as _t,c as Kt,d as Gn}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 Ft,b as _t,c as Kt,d as Gn}from"./chunk.LGRVEHXT.js";import{a as qt}from"./chunk.CTASTRQN.js";import{a as Hn,b as It,c as Vn,d as Bt,e as Wt,f as Ht}from"./chunk.DPJNGFEZ.js";import{a as Vt,b as tn,c as Gt,d as jt}from"./chunk.YNEHJWJV.js";import{c as Ut,g as Yt,h as Qt,i as Jt}from"./chunk.QQAZQDRW.js";import{e as Tt}from"./chunk.2VR7YEJ6.js";import{m as zt}from"./chunk.FXT5CN32.js";import{a as Nt,b as Dt}from"./chunk.WVLEGCRI.js";import{f as Lt,h as Pt}from"./chunk.LETAQTLJ.js";import{e as Mt}from"./chunk.BUVTUAB5.js";import{b as $t,c as me,d as ke,e as ze}from"./chunk.2KFZHUAC.js";import{e as At,l as Rt}from"./chunk.I2737CPF.js";import{l as Et,m as Wn}from"./chunk.5LJVOLKR.js";import{g as In,h as Bn}from"./chunk.F4VB6Q2W.js";import{d as Ot}from"./chunk.FFOD5B4B.js";import{k as Fe,m as Ct}from"./chunk.U3HERHAI.js";import{G as Ee,Qa as kt,Ra as nn,W as te,Z as bt,ea as oe,fa as xt,ga as St,l as en}from"./chunk.MODLZJD4.js";import{$ as ct,$a as pt,Bb as Dn,G as st,Gd as zn,I as lt,Rc as be,Xa as mt,Z as cn,_ as dt,aa as Tn,ab as ft,ba as ut,bb as ht,ca as Xe,fe as vt,ka as Ge,la as xe,ld as Ze,md as wt,na as qe,oa as un,pa as gn,ra as Nn,rc as yt,sd as Te,ta as gt,ua as mn}from"./chunk.6HY6ZGEE.js";import{b as q}from"./chunk.AJZBJBMO.js";var Qr=q(Ee(),1);var jn=q(te(),1);function Ie(e,t,n){let r=e.nodes?.length??0;if(e.total===void 0||e.total<=r)return n;let a=e.nodes?.[0]?.kind,i=a?un(t,a).toLowerCase():"more";return(0,jn.jsxs)("div",{style:{display:"grid",gridTemplateRows:"minmax(0, 1fr) auto",height:"100%",minHeight:0},children:[n,(0,jn.jsxs)("p",{"data-testid":"lens-more",style:{margin:"4px 0 0",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["+",e.total-r," more ",i]})]})}var ar=q(Ee(),1);var rn=q(Ee(),1);var Xt=e=>`place:${e}`;function Zt(e,t){(0,rn.useEffect)(()=>{if(e===void 0)return;let n=globalThis[Symbol.for("graview.shown-lists")]??=new Map;return n.set(e,()=>t),()=>void n.delete(e)})}var er=e=>(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.6YGRRXJB.js")).then(t=>t.saveShownList(e.read()));function nr(e,t,n){let r={off:e,about:t,read:n,menu:(a,i,s)=>[...e?[]:[{id:"export-csv",label:"Export CSV",run:()=>void er(r)}],...a&&i?[{id:e?"export-on":"export-off",label:e?"Turn on export":"Turn off export",run:()=>void (__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.6YGRRXJB.js")).then(p=>p.switchExport(r,i,e,s))}]:[]]};return r}function tr({said:e}){return(0,rn.createElement)("button",{type:"button",className:"graview-arrange-open","data-testid":"arrange-export","aria-label":"Export CSV",title:"Export CSV",onClick:()=>void er(e)},(0,rn.createElement)("span",{"aria-hidden":"true"},"\u2193"),"CSV")}var rr=q(Ee(),1),pn=(0,rr.createContext)(null);var qn=q(te(),1),Xr=(e,t)=>{if(e===!1||t===!1)return!1;let n=e===void 0||e===!0?{}:e,r=t===void 0||t===!0?{}:t;return{sort:n.sort!==!1&&r.sort!==!1,filter:n.filter!==!1&&r.filter!==!1,group:n.group!==!1&&r.group!==!1}},Zr=["sort","filter","group","q","archived"];function Ne(e,t={}){let{store:n,onExport:r}=oe(),a=(0,ar.useContext)(pn),{view:i,go:s}=nn(),c=Zr.some(E=>i.within?.[E]!==void 0)?Nt(i):t.arrangedBy??{},b=e.nodes??[],u=t.kind??b[0]?.kind??e.node?.kind,w=c.archived!==void 0&&c.archived!==!1&&u!==void 0&&!t.subject?n.graph.nodesOfKind(u,{archived:c.archived}):b,h=t.subject??(t.only?w.filter(t.only):w),o=t.subject?[]:t.only?w.filter(E=>!t.only(E)):[],l=t.kind??h[0]?.kind,C=Xr(t.allow,t.lensAllows),g=l?Mt(n.schema,String(l)):void 0,S=g?Lt(c,g).arrangement:{},A=Pt(h,C===!1?{}:S,{schema:n.schema,graph:n.graph,flagged:new Set(e.flagged??[]),...t.search?{searchIn:t.search}:{}}),L=e.retired!==void 0&&e.retired>0&&(b[0]?.kind??l)===l?e.retired:0,T=e.fidelity==="full"&&e.budget===void 0,v=l!==void 0&&T&&t.exportable!==!1,O=nr(a?.export===!1,{lens:a?.title??"",...a?.on!==void 0?{on:a.on}:{}},()=>({title:a?.title??gn(n.schema,String(l)),schema:n.schema,graph:n.graph,kind:String(l),groups:A.groups,grouped:A.grouped,onExport:r,words:{labelOf:xe,readableFields:Ot,withComputed:Rt}}));Zt(a&&v?Xt(a.as):void 0,O);let m=l&&C!==!1&&T&&(h.length>1||L>0)?(0,qn.jsx)(zt,{schema:n.schema,graph:n.graph,kind:String(l),arrangement:S,allow:C,query:t.query!==!1,...t.filters?{filters:t.filters,chips:{nodes:h,flagged:new Set(e.flagged??[])}}:{},onChange:E=>s(Dt(i,E)),kept:{shown:A.nodes.length,of:h.length},...L>0?{past:{count:L,widen:()=>s(Tt(i,!0))}}:{},...v&&!O.off?{end:(0,qn.jsx)(tr,{said:O})}:{}}):null;return{nodes:[...o,...A.nodes],arranged:A,arrangement:S,bar:m}}function _e(e,t,n){let r=new Set((n??[]).map(i=>i.kind)),a=new Set((n??[]).map(i=>i.id));return e.allNodes().filter(i=>r.has(i.kind)?a.has(i.id):Ge(t.tryDefinition(i.kind),i))}var Be=q(Ee(),1);var j=q(te(),1),ea=["slots","x","y","fill"],fn=class extends Error{constructor(n,r){super(`${n}
|
|
2
2
|
${r}`);this.hint=r;this.name="BoardBindingError"}},ir=e=>Math.max(0,Math.min(1,e));function Fn(e,t,n,r){let a=l=>l,i=l=>r?xe(r.tryDefinition(l.kind),l):String(a(l).label??l.id);if(r&&r.tryDefinition(n.slots)===void 0)throw new fn(`No kind is declared for "${n.slots}".`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let s=e.filter(l=>l.kind===n.slots);if(!r&&s.length===0)throw new fn(`Nothing to arrange: no "${n.slots}" nodes.`,'Check the lens bindings: { slots: "<kind>", x: "<field>", y: "<field>", fill: "<edge kind>" }');let p=t.filter(l=>l.kind===n.fill),c=new Map(e.map(l=>[l.id,l])),b=new Map(e.map((l,C)=>[l.id,C])),u=s.map(l=>{let C=a(l),g=n.fillFrom==="occupant",S=p.filter(A=>(g?A.to:A.from)===l.id).map(A=>c.get(g?A.from:A.to)).filter(A=>A!==void 0).sort((A,L)=>(b.get(A.id)??0)-(b.get(L.id)??0)).map(A=>({id:A.id,label:i(A)}));return{id:l.id,code:String(C[n.slotCode??""]??"").trim()||i(l),label:i(l),x:ir(Number(C[n.x]??.5)),y:ir(Number(C[n.y]??.5)),occupants:S}}).sort((l,C)=>l.y-C.y||l.x-C.x),w=new Set(u.flatMap(l=>l.occupants.map(C=>C.id))),h=new Set([...w].map(l=>c.get(l)?.kind).filter(l=>l!==void 0)),o=e.filter(l=>h.has(l.kind)&&!w.has(l.id)).map(l=>({id:l.id,label:i(l)})).sort((l,C)=>l.label<C.label?-1:l.label>C.label?1:0);return{slots:u,empty:u.filter(l=>l.occupants.length===0).map(l=>l.id),spare:o}}function na({nodes:e,occupants:t,label:n,fidelity:r,mode:a,options:i,schema:s,implicated:p=[],flagged:c=[]}){let{store:b}=oe(),u=_e(b.graph,b.schema,e),w=t?[...u.filter(d=>d.kind===i.slots),...t.map(d=>b.graph.getNode(d)).filter(d=>d!==void 0)]:u,h=Fn(w,b.graph.allEdges(),i,s),o=new Set(p),l=new Set(c),C=kt(),g=new Map;for(let d of C)for(let y of d.nodeIds)g.set(y,[...g.get(y)??[],d.message]);let S=d=>d?g.get(d)??[]:[];if(r==="glyph")return(0,j.jsx)(ke,{label:`${n??"Board"} \xB7 ${h.slots.length-h.empty.length}/${h.slots.length}`,hue:be("board")});if(r==="summary"){let d=h.slots.filter(y=>h.empty.includes(y.id));return(0,j.jsx)(me,{title:n??"Board",meta:`${h.slots.length-h.empty.length}/${h.slots.length}`,tone:d.length>0?"warning":"muted",fit:!0,children:d.length>0?(0,j.jsx)(ze,{pick:!0,max:5,items:d.map(y=>({id:y.id,label:y.code}))}):(0,j.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"Every slot filled."})})}let A=i.aspect??.68,L=(0,Be.useRef)(null),[T,v]=(0,Be.useState)(!1),[O,m]=(0,Be.useState)(null),E=160,[D,G]=(0,Be.useState)(!1);(0,Be.useEffect)(()=>{let d=L.current;if(!d||typeof ResizeObserver>"u")return;let y=new ResizeObserver(x=>{let R=x[0]?.contentRect;if(!R)return;let f=R.height<E;G(f),v(!f&&A<1&&R.width/R.height>1.3),m(f?null:R.height)});return y.observe(d),()=>y.disconnect()},[A]);let k=(d,y)=>T?{x:1-y,y:d}:{x:d,y},_=(()=>{let d=new Map,y=(x,R,f)=>{let $=d.get(f)??{ids:[],codes:[]};$.ids.includes(x)||($.ids.push(x),$.codes.includes(R)||$.codes.push(R)),d.set(f,$)};for(let x of h.slots){for(let R of S(x.id))y(x.id,x.code,R);for(let R of x.occupants)for(let f of S(R.id))y(R.id,R.label,f)}return[...d.entries()].map(([x,R])=>({id:R.ids[0],code:R.codes.join(", "),text:x}))})(),W=a==="fullscreen",le=_.length===0?null:(0,j.jsxs)("ul",{"data-graview-primitive":"board-key",style:{margin:"2px 0 0",padding:0,listStyle:"none",display:"grid",gap:3,flex:"0 0 auto"},children:[_.slice(0,W?6:2).map(d=>(0,j.jsxs)("li",{"data-graview-pick":d.id,"data-graview-emphasis":o.size===0?"plain":o.has(d.id)?"lit":"dimmed",title:d.text,style:{display:W?"grid":"flex",gap:W?1:7,alignItems:W?"start":"baseline",fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)",minHeight:24,width:"fit-content",maxWidth:"100%",padding:W?"2px 0":"3px 6px",marginLeft:W?0:-6,borderRadius:7,cursor:"pointer"},children:[(0,j.jsxs)("span",{style:{flex:"0 0 auto",fontWeight:600,color:"var(--graview-warn)",letterSpacing:"0.02em"},children:["\u26A0 ",d.code]}),(0,j.jsx)("span",{style:{minWidth:0,...W?{}:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},children:d.text})]},d.id)),_.length>(W?6:2)?(0,j.jsxs)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:["+",_.length-(W?6:2)," more"]}):null]}),ee=i.arrange==="shelf",ie=h.slots.every(d=>d.code.length<=3&&!/\s/.test(d.code)),N=(d,y)=>{let x=d.occupants.length===0,R=o.size>0&&!o.has(d.id)&&!d.occupants.some(Q=>o.has(Q.id)),f=l.has(d.id),$=d.occupants.some(Q=>l.has(Q.id)),P=f,ne=[...S(d.id),...d.occupants.flatMap(Q=>S(Q.id))],H=d.occupants.length===1?d.occupants[0]:null,K=i.pickTarget==="slot"?d.id:H?H.id:d.id,J=Q=>H?{}:{"data-graview-pick":Q.id,"data-graview-emphasis":o.size===0?"plain":R?"dimmed":"lit"},Y=Q=>l.has(Q.id)?"var(--graview-warn)":"var(--graview-ink-muted)",ue=i.emptyLabel??"empty";return(0,j.jsxs)("div",{"data-graview-pick":K,"data-graview-slot":d.id,"data-graview-mark":ie?"disc":"token","data-graview-flagged":f&&$?"both":f?"slot":$?"occupant":void 0,"data-graview-emphasis":o.size===0?"plain":R?"dimmed":"lit",title:[x?`${d.label} \u2014 nobody in it`:`${d.occupants.map(Q=>Q.label).join(", ")} at ${d.label}`,...ne].join(`
|
|
3
3
|
`),style:{...y,display:"grid",justifyItems:ie?"center":"start",gap:3,opacity:R?.5:1,transition:"opacity 160ms ease"},children:[ie?(0,j.jsxs)("span",{style:{position:"relative",width:34,height:34,borderRadius:999,display:"grid",placeItems:"center",fontSize:"0.75rem",letterSpacing:"0.02em",border:x?"1.5px dashed var(--graview-warn)":`1px solid ${P?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:x?"transparent":P?"var(--graview-panel-warning)":"var(--graview-panel)",color:x||P?"var(--graview-warn)":"var(--graview-ink)",boxShadow:x?void 0:"var(--graview-lift-low)"},children:[d.code,f&&!x?(0,j.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:-3,right:-3,fontSize:"0.6875rem",lineHeight:1,color:"var(--graview-warn)"},children:"\u26A0"}):null]}):(0,j.jsxs)("span",{style:{display:"grid",gap:1,minWidth:0,maxWidth:180,padding:"5px 10px 6px",borderRadius:8,border:x?"1.5px dashed var(--graview-warn)":`1px solid ${P?"var(--graview-warn)":"var(--graview-edge-bright)"}`,background:x?"transparent":P?"var(--graview-panel-warning)":"var(--graview-panel)",boxShadow:x?void 0:"var(--graview-lift-low)"},children:[(0,j.jsxs)("span",{style:{fontSize:"0.8125rem",fontWeight:550,lineHeight:1.25,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:x||P?"var(--graview-warn)":"var(--graview-ink)"},children:[d.code,f&&!x?" \u26A0":null]}),x?(0,j.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.3,color:"var(--graview-warn)"},children:ue}):(0,j.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:"0 8px",fontSize:"0.75rem",lineHeight:1.3},children:d.occupants.map(Q=>(0,j.jsxs)("span",{...J(Q),style:{whiteSpace:"nowrap",color:Y(Q)},children:[Q.label,l.has(Q.id)?" \u26A0":""]},Q.id))})]}),ie?x?(0,j.jsx)("span",{style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:"var(--graview-warn)"},children:ue}):d.occupants.map(Q=>(0,j.jsxs)("span",{...J(Q),style:{fontSize:"0.75rem",whiteSpace:"nowrap",color:Y(Q)},children:[Q.label,l.has(Q.id)?" \u26A0":""]},Q.id)):null]},d.id)},U=i.zones??[],de=U.map((d,y)=>({label:d.label,slots:h.slots.filter(x=>x.y>=d.from&&(x.y<d.to||y===U.length-1&&x.y<=d.to))})),B=new Set(de.flatMap(d=>d.slots.map(y=>y.id))),we=h.slots.filter(d=>!B.has(d.id));(we.length>0||de.length===0)&&de.push({label:"",slots:we});let M={boxSizing:"border-box",borderRadius:12,border:"1px solid var(--graview-edge)",background:"linear-gradient(var(--graview-panel-muted), var(--graview-panel-muted)), var(--graview-panel)",overflow:"hidden"};return(0,j.jsxs)(me,{title:n??"Board",meta:h.slots.length===0?void 0:h.empty.length===0?`all ${h.slots.length} filled`:`${h.empty.length} unfilled`,...W?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:[(0,j.jsxs)("div",{ref:L,style:{display:"flex",gap:28,alignItems:"stretch",justifyContent:"center",flex:"1 1 auto",minHeight:0},children:[W&&le?(0,j.jsxs)("div",{style:{width:260,flex:"0 0 auto",alignSelf:"center",display:"grid",gap:8},children:[(0,j.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"What is marked"}),le]}):null,ee?(0,j.jsx)("div",{"data-graview-primitive":"board","data-graview-arrange":"shelf",style:{...M,overflow:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"stretch",display:"grid",alignContent:"start"},children:de.map((d,y)=>(0,j.jsxs)("section",{"data-graview-zone":d.label||void 0,style:{display:"grid",gap:8,padding:"10px 14px 14px",...y>0?{borderTop:"1px dashed var(--graview-edge)"}:{}},children:[d.label?(0,j.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:d.label}):null,d.slots.length>0?(0,j.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 12px",alignItems:"flex-start"},children:d.slots.map(x=>N(x,{}))}):(0,j.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"nothing here"})]},d.label||`band-${y}`))}):(0,j.jsxs)("div",{style:{display:"flex",gap:5,alignItems:"stretch",minWidth:0,...D?{flex:"1 1 auto",alignSelf:"flex-start"}:{}},children:[!T&&U.length>0?(0,j.jsx)("div",{"aria-hidden":"true",style:{position:"relative",width:15,flex:"0 0 auto",alignSelf:"stretch"},children:U.map(d=>(0,j.jsx)("span",{title:d.label,style:{position:"absolute",top:`${d.from*100}%`,height:`${(d.to-d.from)*100}%`,right:0,writingMode:"vertical-rl",transform:"rotate(180deg)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:d.label},d.label))}):null,(0,j.jsxs)("div",{"data-graview-primitive":"board","data-graview-arrange":"exact",style:{...M,position:"relative",aspectRatio:`${T?1/A:A}`,...D?{width:"100%",height:"auto",flex:"1 1 auto",minWidth:0,alignSelf:"flex-start"}:{height:"100%",flex:"0 1 auto",...O!==null?{width:Math.round(O*(T?1/A:A))}:{}},maxWidth:"100%"},children:[U.map(d=>(0,j.jsx)("div",{"aria-hidden":"true",style:{position:"absolute",...T?{top:0,bottom:0,left:`${(1-d.to)*100}%`,width:`${(d.to-d.from)*100}%`,borderLeft:"1px dashed var(--graview-edge)"}:{left:0,right:0,top:`${d.from*100}%`,height:`${(d.to-d.from)*100}%`,borderBottom:"1px dashed var(--graview-edge)"}}},d.label)),T?U.map(d=>(0,j.jsx)("span",{"aria-hidden":"true",title:d.label,style:{position:"absolute",bottom:3,left:`${(1-d.to)*100}%`,width:`${(d.to-d.from)*100}%`,textAlign:"center",fontSize:"0.6875rem",letterSpacing:"0.14em",textTransform:"uppercase",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",color:"var(--graview-ink-faint)"},children:d.label},`label-${d.label}`)):null,h.slots.map(d=>N(d,{position:"absolute",left:`${k(d.x,d.y).x*100}%`,top:`${k(d.x,d.y).y*100}%`,transform:"translate(-50%, -50%)",width:"max-content",maxWidth:"100%"}))]})]}),h.spare.length>0?(0,j.jsxs)("div",{style:{display:"grid",gap:6,alignContent:"start",minWidth:0},children:[(0,j.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"Not in"}),(0,j.jsx)(ze,{pick:!0,max:10,items:h.spare.map(d=>({...d,emphasis:o.size===0?"plain":o.has(d.id)?"lit":"dimmed"}))})]}):null]}),W?null:le]})}function or(e){function t(n){let{store:r}=oe(),a=Fn(_e(r.graph,r.schema,n.nodes),r.graph.allEdges(),e,r.schema),s=[...a.slots.flatMap(u=>u.occupants.map(w=>w.id)),...a.spare.map(u=>u.id)].map(u=>r.graph.getNode(u)).filter(u=>u!==void 0),{arranged:p,bar:c}=Ne(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},subject:s}),b=(0,j.jsx)(na,{schema:r.schema,...n,options:e,...e.arranging===!1?{}:{occupants:p.nodes.map(u=>u.id)}});return Ie(n,r.schema,c?(0,j.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[c,b]}):b)}return{name:"board",requiredRoles:[...ea],options:e,View:t,build(n,r,a){return Fn(n,r,e,a)}}}var Cn=q(Ee(),1);var sr=864e5;function ta(e){if(typeof e!="string")return null;if(In(e))return Bn(e)?.day??null;let t=/^(\d{4}-\d{2}-\d{2})/.exec(e);return t?t[1]:null}function _n(e){if(typeof e=="string"&&st.test(e))return e.length===4?null:lt(e)??null;let t=ta(e);return t===null?null:{from:t,to:t}}var lr=e=>typeof e=="string"&&/^\d{4}$/.test(e);function yn(e){if(typeof e!="string")return null;if(In(e))return Bn(e)?.minutes??null;let t=/^\d{4}-\d{2}-\d{2}[T ](\d{2}):(\d{2})/.exec(e);return t?Number(t[1])*60+Number(t[2]):null}var hn=e=>Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),wn=e=>new Date(e).toISOString().slice(0,10);function Ae(e,t){return wn(hn(e)+t*sr)}function je(e,t){let n=Number(e.slice(0,4)),r=Number(e.slice(5,7))-1+t,a=Number(e.slice(8,10)),i=new Date(Date.UTC(n,r+1,0)).getUTCDate();return wn(Date.UTC(n,r,Math.min(a,i)))}var Kn=e=>new Date(hn(e)).getUTCDay();function Ke(e,t=1){let n=(Kn(e)-t+7)%7;return Ae(e,-n)}var Un=e=>`${e.slice(0,7)}-01`;function ye(e,t){return Math.round((hn(t)-hn(e))/sr)}function Ue(e,t){return Array.from({length:t},(n,r)=>Ae(e,r))}var dr=e=>ut(e,"short"),De=e=>dt(e,{weekday:"short"}),Yn=e=>Xe(e);function We(e,t){let n=t?.fieldRoles?.when;return e&&!e.start&&n?{...e,start:n}:e}function cr(e,t){return t===void 0?!1:typeof t=="string"?e[t]===!0:t.is.includes(e[t.field])}var vn=["start"],ra=["day","week","month","quarter","year","agenda"];function bn(e){return e.horizon?["day","week","month","quarter","year","years","agenda"]:ra}function ur(e,t){return e==="years"?t?.title??"Years":`The ${e}`}function gr(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}var Qn=class extends Error{constructor(n,r){super(`The calendar lens has no binding for ${r.map(a=>`"${a}"`).join(", ")} on "${n}". Bind them in the lens declaration: bindings: { ${n}: { start: "<field>" } }.`);this.kind=n;this.missing=r;this.name="CalendarBindingError"}};function xn(e,t,n){let r=We(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=vn.filter(h=>{let o=r[h];return o?i?!(o in i):!(o in a):!0});if(s.length>0)throw new Qn(e.kind,s);let p=_n(a[r.start]);if(p===null)return null;let c=p.from,b=(r.end?_n(a[r.end])?.to:null)??p.to,u=yn(a[r.start]),w=r.label?a[r.label]:void 0;return{id:e.id,kind:e.kind,label:typeof w=="string"&&w.length>0?w:xe(n?.tryDefinition(e.kind),e),from:c,to:ye(c,b)<0?c:b,at:r.allDay&&a[r.allDay]===!0?null:u,allDay:r.allDay&&a[r.allDay]===!0||u===null,done:cr(a,r.done)}}function mr(e,t,n,r){let a=xn(e,t,n);if(!a)return[];let i=We(t[e.kind],n?.tryDefinition(e.kind)).start,s=e,p=s[i],c=s[mt(i)];if(typeof p!="string"||!pt(c))return[a];let b=ye(a.from,a.to);return("next"in r?[ht(p,c,r.next)]:ft(p,c,{from:Ae(r.from,-b),to:r.to,limit:400})).map(w=>({...a,from:w.slice(0,10),to:Ae(w.slice(0,10),b),repeats:!0}))}function Sn(e,t){return e.filter(n=>ye(n.from,t)>=0&&ye(t,n.to)>=0).sort((n,r)=>n.allDay!==r.allDay?n.allDay?-1:1:n.at!==r.at?(n.at??0)-(r.at??0):n.label.localeCompare(r.label))}function pr(e,t,n){let r=yt(e.schema,e.allMutations()).get(t)?.get(n)??[],a=new Map(e.allMutations().map(s=>[s.name,s]));for(let s of r){let p=a.get(s),c=p?.subject;if(!p||!c)continue;let b=p.input?.shape??{};if(n in b)return{name:p.name,arg:c.arg}}let i=e.allMutations().find(s=>s.derived?.act==="edit"&&s.derived.kind===t);return i?.subject?{name:i.name,arg:i.subject.arg}:null}var fr=(e,t)=>({from:Un(e),to:hr(e),label:Tn(e,{short:!0,year:t})});function hr(e){return wn(Date.UTC(Number(e.slice(0,4)),Number(e.slice(5,7)),0))}function aa(e){let t=Math.floor((Number(e.slice(5,7))-1)/3);return`${e.slice(0,4)}-${String(t*3+1).padStart(2,"0")}-01`}function yr(e,t,n={}){let r=n.weekStartsOn??1,a=(c,b)=>({from:c,to:c,label:String(Number(c.slice(8,10))),...b?{outside:!0}:{}});if(e==="day")return{title:De(t),grain:"day",columns:1,cells:[a(t)]};if(e==="week"){let c=Ke(t,r);return{title:`${De(c)} \u2013 ${De(Ae(c,6))}`,grain:"day",columns:7,cells:Ue(c,7).map(b=>a(b))}}if(e==="agenda")return{title:`From ${De(t)}`,grain:"day",columns:1,cells:Ue(t,42).map(c=>a(c))};if(e==="quarter"){let c=aa(t),b=hr(je(c,2)),u=[];for(let w=Ke(c,r);ye(w,b)>=0;w=Ae(w,7))u.push({from:w,to:Ae(w,6),label:ct(w),...ye(w,c)>0&&ye(Ae(w,6),c)>0?{outside:!0}:{}});return{title:`Q${Math.floor((Number(t.slice(5,7))-1)/3)+1} ${t.slice(0,4)}`,grain:"week",columns:4,cells:u}}if(e==="year"){let c=t.slice(0,4);return{title:c,grain:"month",columns:4,cells:Array.from({length:12},(b,u)=>fr(`${c}-${String(u+1).padStart(2,"0")}-01`,!1))}}if(e==="years"){let c=Number(t.slice(0,4)),b=c+Math.max(1,n.horizon?.years??1)-1,u=n.horizon?.from!==void 0||n.horizon?.to!==void 0,w=u?n.horizon?.from??c:Math.min(c,n.fit?.first??c),o=(u?Math.max(w,n.horizon?.to??w+Math.max(1,n.horizon?.years??1)-1):Math.max(b,n.fit?.last??b))-w+1,l=Array.from({length:o},(C,g)=>String(w+g));return o>ia?{title:`${n.horizon?.title??"Years"} \xB7 ${l[0]}\u2013${l[l.length-1]}`,grain:"year",columns:5,years:l,cells:l.map(C=>({from:`${C}-01-01`,to:`${C}-12-31`,label:C}))}:{title:`${n.horizon?.title??"Years"} \xB7 ${l[0]}\u2013${l[l.length-1]}`,grain:"month",columns:4,years:l,cells:l.flatMap(C=>Array.from({length:12},(g,S)=>fr(`${C}-${String(S+1).padStart(2,"0")}-01`,!0)))}}let i=Un(t),s=Ke(i,r),p=t.slice(0,7);return{title:Tn(t),grain:"day",columns:7,cells:Ue(s,42).map(c=>a(c,c.slice(0,7)!==p))}}function wr(e,t,n){return e.filter(r=>ye(r.from,n)>=0&&ye(t,r.to)>=0).sort((r,a)=>r.allDay!==a.allDay?r.allDay?-1:1:r.from!==a.from?r.from.localeCompare(a.from):r.at!==a.at?(r.at??0)-(a.at??0):r.label.localeCompare(a.label))}var ia=10;function vr(e){return e==="year"?"year":e==="month"?"month":e==="week"?"week":"day"}var br=q(Ee(),1);var ae=q(te(),1);function Jn({label:e,glyph:t,onPress:n}){return(0,ae.jsx)("button",{type:"button","aria-label":e,title:e,onClick:n,style:Ye,children:t})}var Ye={minHeight:24,minWidth:24,padding:"2px 9px",borderRadius:6,fontSize:"0.8125rem",borderWidth:1,borderStyle:"solid",borderColor:"transparent",color:"var(--graview-ink-muted)",background:"transparent"},xr={day:12,week:4,month:3,year:5};function Sr({span:e,weekStartsOn:t,entries:n,today:r,perCell:a,emphasisOf:i,broken:s,hue:p,onOpen:c,onMove:b}){let u=(0,br.useRef)(null),w=Fe(u),h=w===null?e.columns:Math.max(1,Math.floor(w/44)),o=h<e.columns,l=o?h:e.columns,C=!o&&e.grain==="day"&&e.columns===7?Ue(Ke(e.cells[0]?.from??r,t),7):e.grain==="day"&&e.columns===1?e.cells.map(g=>g.from):null;return o&&e.grain==="day"&&e.columns>1?(0,ae.jsx)("div",{ref:u,"data-calendar-shape":"agenda",style:{display:"grid",minHeight:0,flex:1},children:(0,ae.jsx)(kn,{days:e.cells.map(g=>g.from),entries:n,today:r,emphasisOf:i,broken:s,hue:p,onMove:(g,S)=>b(g,{from:S,to:S,label:S},"day")})}):(0,ae.jsxs)("div",{ref:u,"data-calendar-shape":o?"wrapped":"grid",style:{display:"grid",gap:4,gridTemplateRows:C?"auto 1fr":"1fr",minHeight:0,flex:1},children:[C?(0,ae.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`,gap:4},children:C.map(g=>(0,ae.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-muted)",textAlign:"center"},children:e.columns===7?dr(Kn(g)):De(g)},g))}):null,(0,ae.jsx)("div",{tabIndex:0,"aria-label":`The days of ${e.title}`,style:{display:"grid",gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`,gridAutoRows:"max-content",gap:4,minHeight:0,overflow:"auto"},children:e.cells.map((g,S)=>{let A=wr(n,g.from,g.to),L=A.slice(0,a),T=A.slice(a),v=T.filter(m=>s.has(m.id)).length,O=ye(g.from,r)>=0&&ye(r,g.to)>=0;return(0,ae.jsxs)("div",{"data-calendar-day":e.grain==="day"?g.from:void 0,"data-calendar-cell":g.from,"data-calendar-grain":e.grain,"data-calendar-count":A.length,"data-calendar-outside":g.outside||void 0,onDragOver:m=>{m.dataTransfer.types.includes("text/graview-node")&&(m.preventDefault(),m.dataTransfer.dropEffect="move")},onDrop:m=>{let E=m.dataTransfer.getData("text/graview-node");E&&(m.preventDefault(),m.stopPropagation(),b(E,g,e.grain))},style:{minHeight:62,display:"flex",flexDirection:"column",gap:2,padding:4,borderRadius:7,border:"1px solid var(--graview-edge)",background:O?"var(--graview-panel)":g.outside?"var(--graview-panel-muted)":"transparent"},children:[(0,ae.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:4},children:[(0,ae.jsx)("span",{style:{fontSize:"0.75rem",fontVariantNumeric:"tabular-nums",color:O?"var(--graview-accent)":"var(--graview-ink-faint)"},children:g.label}),e.grain!=="day"&&A.length>0?(0,ae.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",marginLeft:"auto"},children:A.length}):null]}),L.map(m=>(0,ae.jsx)(kr,{entry:m,cell:g,rowStart:S%l===0,emphasis:i(m.id),flagged:s.has(m.id),hue:p(m)},`${m.id}:${m.from}:${g.from}`)),T.length>0?(0,ae.jsxs)("button",{type:"button","data-testid":`calendar-more-${g.from}`,onClick:()=>c(g),title:`Open ${g.label}`,style:{minHeight:24,padding:"1px 5px",fontSize:"0.75rem",borderRadius:5,border:"1px dashed var(--graview-edge)",background:"transparent",color:v>0?"var(--graview-warn)":"var(--graview-ink-muted)",textAlign:"left"},children:["+",T.length," more",v>0?` \xB7 ${v} flagged`:""]}):null]},g.from)})})]})}function kn({days:e,entries:t,today:n,emphasisOf:r,broken:a,hue:i,onMove:s}){let p=e.map(c=>({day:c,here:Sn(t,c)})).filter(({here:c})=>c.length>0);return p.length===0?(0,ae.jsx)("p",{"data-testid":"calendar-empty",style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-muted)"},children:"Nothing is scheduled in the next six weeks."}):(0,ae.jsx)("ol",{tabIndex:0,"aria-label":"What is scheduled",style:{margin:0,padding:0,listStyle:"none",display:"grid",alignContent:"start",gap:10,overflow:"auto",minHeight:0},children:p.map(({day:c,here:b})=>(0,ae.jsxs)("li",{"data-calendar-day":c,onDragOver:u=>{u.dataTransfer.types.includes("text/graview-node")&&(u.preventDefault(),u.dataTransfer.dropEffect="move")},onDrop:u=>{let w=u.dataTransfer.getData("text/graview-node");w&&(u.preventDefault(),u.stopPropagation(),s(w,c))},style:{display:"grid",gap:4},children:[(0,ae.jsxs)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.16em",textTransform:"uppercase",color:c===n?"var(--graview-accent)":"var(--graview-ink-muted)"},children:[De(c),c===n?" \xB7 today":""]}),b.map(u=>(0,ae.jsx)(kr,{entry:u,cell:{from:c,to:c,label:c},emphasis:r(u.id),flagged:a.has(u.id),hue:i(u)},`${u.id}:${u.from}:${c}`))]},c))})}function kr({entry:e,cell:t,emphasis:n,flagged:r,hue:a,rowStart:i=!1}){let s=ye(t.from,e.from)>=0,p=ye(e.to,t.to)>=0,c=!(s&&p),b=e.at!==null&&s&&e.from===t.from?`${Yn(e.at)} ${e.label}`:e.label;return(0,ae.jsx)("span",{"data-graview-pick":e.id,"data-calendar-entry":e.id,"data-calendar-repeat":e.repeats?e.from:void 0,draggable:!e.repeats,onDragStart:u=>{u.dataTransfer.setData("text/graview-node",e.id),u.dataTransfer.effectAllowed="move"},"data-graview-emphasis":n,"data-calendar-part":c?s?"opens":p?"closes":"through":void 0,"data-calendar-in":t.from,title:c?`${e.label} \xB7 ${e.from} \u2013 ${e.to}`:`${e.label}${e.at===null?" \xB7 all day":` \xB7 ${Yn(e.at)}`}${e.repeats?" \xB7 repeats":""}`,style:{display:"block",minHeight:24,boxSizing:"border-box",padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.35,borderRadius:c?s?"5px 0 0 5px":p?"0 5px 5px 0":0:5,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",textDecoration:e.done?"line-through":"none",opacity:n==="dimmed"?.35:e.done?.6:1,background:`color-mix(in oklab, hsl(${Math.round(a)} 70% 55%) ${n==="lit"?38:20}%, transparent)`,color:"var(--graview-ink)",...n==="lit"?{outline:"1px solid var(--graview-accent)"}:{},...r?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:s||i?e.repeats?(0,ae.jsxs)(ae.Fragment,{children:[(0,ae.jsx)("span",{"aria-hidden":"true",children:"\u21BB "}),b]}):b:" "})}var Z=q(te(),1);function oa(e){let t=1/0,n=-1/0;for(let r of e)r&&(t=Math.min(t,Number(r.from.slice(0,4))),n=Math.max(n,Number(r.to.slice(0,4))));return Number.isFinite(t)&&Number.isFinite(n)?{first:t,last:n}:void 0}function Cr(e){let t=n=>function(a){let{store:i}=oe(),{view:s}=nn(),p=n?{...e,range:n}:e,c=s.within?.range??p.range??"month",b=Object.keys(e.bindings),{nodes:u,arranged:w,arrangement:h,bar:o}=Ne(a,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{sort:!1,group:c==="agenda"},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{},...b[0]?{kind:(a.nodes??[]).find(A=>b.includes(String(A.kind)))?.kind??b[0]}:{}}),l=c==="agenda"&&w.grouped&&h.group?w.groups.map(A=>({label:A.label,ids:new Set(A.nodes.map(L=>L.id))})):void 0,C=new Set((a.nodes??[]).map(A=>String(A.kind))),g=b.filter(A=>!C.has(A)&&i.schema.tryDefinition(A)!==void 0).flatMap(A=>{let L=i.schema.tryDefinition(A);return i.graph.nodesOfKind(A).filter(T=>s.past===!0||Ge(L,T))}),S=g.length===0?u:[...u,...a.budget!==void 0?g.slice(0,a.budget):g];return Ie(a,i.schema,(0,Z.jsx)(sa,{schema:i.schema,...a,nodes:S,options:{...p,today:p.today??i.today()??gr()},...o?{bar:o}:{},...l?{groups:l}:{}}))};return{name:"calendar",requiredRoles:[...vn],bindings:e.bindings,options:e,View:t(),at:n=>t(n),ranges:()=>bn(e).map(n=>({range:n,title:ur(n,e.horizon)})),place:(n,r)=>n.map(a=>xn(a,e.bindings,r)).filter(a=>a!==null)}}function sa({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:p=[],flagged:c=[],bar:b,groups:u}){let{view:w,go:h}=nn(),{store:o,principal:l}=oe(),C=w.within?.at??a.today,g=w.within?.range??a.range??"month",S=a.weekStartsOn??1,A=new Set([...p,...s]),L=M=>A.size===0?"plain":A.has(M)?"lit":"dimmed",T=new Set(c),v=g==="years"&&w.within?.at===void 0?oa((e??[]).map(M=>xn(M,a.bindings,i))):void 0,O=yr(g,C,{weekStartsOn:S,...a.horizon?{horizon:a.horizon}:{},...v?{fit:v}:{}}),E=n==="glyph"||n==="summary"?{next:a.today}:{from:O.cells[0]?.from??C,to:O.cells[O.cells.length-1]?.to??C},D=(e??[]).flatMap(M=>mr(M,a.bindings,i,E)),G=a.hueOf??(M=>be(M.kind)),k=(e??[]).filter(M=>{let d=We(a.bindings[M.kind],i?.tryDefinition(M.kind));return d!==void 0&&lr(M[d.start])}).length;if(n==="glyph")return(0,Z.jsx)(ke,{label:`${t??"Calendar"} \xB7 ${D.length}`,hue:be("calendar")});if(n==="summary"){let M=Sn(D,a.today);return(0,Z.jsx)(me,{title:t??"Calendar",meta:`${D.length} dated`,tone:"muted",children:(0,Z.jsx)(ze,{max:6,items:M.length>0?M.map(d=>({id:d.id,label:d.label,hue:G(d)})):D.filter(d=>ye(a.today,d.from)>=0).sort((d,y)=>d.from.localeCompare(y.from)).slice(0,6).map(d=>({id:d.id,label:`${d.from.slice(5)} ${d.label}`,hue:G(d)}))})})}let _=r==="fullscreen",[W,le]=(0,Cn.useState)(null),ee=(M,d,y)=>{let x=o.graph.getNode(M);if(!x)return;let R=We(a.bindings[x.kind],o.schema.tryDefinition(x.kind));if(!R)return;let f=pr(o,x.kind,R.start);if(!f){le({text:`Nothing declared writes the ${Nn(o.schema.definitions.find(Y=>Y.kind===x.kind),R.start).toLowerCase()}, so this cannot be moved from here.`,tone:"refused"});return}let $=d.from,P=x[R.start],H=yn(P)===null?$:`${$}${String(P).slice(10)}`,K={name:f.name,args:{[f.arg]:M,[R.start]:H}},J=o.permits(K,l);if(!J.ok){le({text:J.refusal.message,tone:"refused"});return}try{o.apply(K,{author:l}),le(y==="day"?null:{text:`Moved to ${De($)} \u2014 a ${y} is coarser than the ${Nn(o.schema.definitions.find(Y=>Y.kind===x.kind),R.start).toLowerCase()} holds, so it takes the first day of the cell. Undo puts it back.`,tone:"rounded"})}catch(Y){le({text:Y instanceof Error?Y.message:String(Y),tone:"refused"})}},ie=M=>{let d=g==="years"?je(`${O.years?.[0]??C.slice(0,4)}${C.slice(4)}`,M*12*Math.max(1,O.years?.length??a.horizon?.years??1)):g==="year"?je(C,M*12):g==="quarter"?je(C,M*3):g==="month"?je(C,M):g==="week"?Ae(C,M*7):Ae(C,M);h(en(w,"at",d))},N=(M,d)=>{let y=en(w,"range",M);d!==void 0&&(y=en(y,"at",d)),h(y)},U=(0,Cn.useRef)(null),de=Fe(U),B=de!==null&&de<420,we=M=>M==="years"?a.horizon?.title??"years":M.charAt(0).toUpperCase()+M.slice(1);return(0,Z.jsx)(me,{title:t??"Calendar",meta:O.title,style:{gap:10,..._?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,Z.jsxs)("div",{ref:U,"data-testid":"calendar","data-calendar-range":g,"data-calendar-at":C,style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,gap:8},children:[(0,Z.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6},children:[(0,Z.jsxs)("nav",{"aria-label":"When",style:{display:"flex",gap:4},children:[(0,Z.jsx)(Jn,{label:"Previous",glyph:"\u2039",onPress:()=>ie(-1)}),(0,Z.jsx)("button",{type:"button","data-testid":"calendar-today",onClick:()=>h(en(w,"at",a.today)),style:Ye,children:"Today"}),(0,Z.jsx)(Jn,{label:"Next",glyph:"\u203A",onPress:()=>ie(1)})]}),B?(0,Z.jsx)("select",{"aria-label":"Range","data-testid":"calendar-ranges",value:g,onChange:M=>N(M.target.value),style:{...Ye,borderRadius:999,borderColor:"var(--graview-edge)",background:void 0,backgroundColor:"transparent",marginLeft:"auto",maxWidth:"50%",paddingRight:24,appearance:"none",WebkitAppearance:"none",backgroundImage:"linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%)",backgroundPosition:"calc(100% - 13px) 55%, calc(100% - 9px) 55%",backgroundSize:"4px 4px, 4px 4px",backgroundRepeat:"no-repeat"},children:bn(a).map(M=>(0,Z.jsx)("option",{value:M,children:we(M)},M))}):(0,Z.jsx)("div",{role:"group","aria-label":"Range","data-testid":"calendar-ranges",style:{display:"flex",flexWrap:"wrap",gap:4,marginLeft:"auto"},children:bn(a).map(M=>(0,Z.jsx)("button",{type:"button","aria-pressed":M===g,"data-testid":`calendar-range-${M}`,onClick:()=>N(M),style:{...Ye,borderRadius:999,borderColor:"var(--graview-edge)",...M==="years"?{}:{textTransform:"capitalize"},...M===g?{borderColor:"var(--graview-accent)",color:"var(--graview-accent)",background:"var(--graview-panel)"}:{}},children:M==="years"?a.horizon?.title??"years":M},M))})]}),k>0?(0,Z.jsx)("p",{"data-testid":"calendar-year-only",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:k===1?"1 knows only its year, so it is not placed.":`${k} know only their year, so they are not placed.`}):null,W?(0,Z.jsx)("p",{"data-testid":W.tone==="refused"?"calendar-refused":"calendar-rounded",role:"status",style:{margin:0,fontSize:"0.8125rem",color:W.tone==="refused"?"var(--graview-warn)":"var(--graview-ink-muted)"},children:W.text}):null,O.years?(0,Z.jsx)("nav",{"aria-label":"Years","data-testid":"calendar-years",style:{display:"flex",flexWrap:"wrap",gap:4},children:O.years.map(M=>(0,Z.jsx)("button",{type:"button","data-testid":`calendar-year-${M}`,onClick:()=>N("year",`${M}-01-01`),style:Ye,children:M},M))}):null,b,g==="agenda"&&u?(0,Z.jsx)("div",{"data-testid":"calendar-groups",style:{display:"grid",gap:10,minHeight:0,overflow:"auto"},children:u.map(M=>(0,Z.jsxs)("section",{"data-testid":"calendar-group",style:{display:"grid",gap:4},children:[(0,Z.jsxs)("h3",{style:{margin:0,fontSize:"0.8125rem",letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},children:[M.label," ",(0,Z.jsx)("span",{style:{fontWeight:400},children:M.ids.size})]}),(0,Z.jsx)(kn,{days:O.cells.map(d=>d.from),entries:D.filter(d=>M.ids.has(d.id)),today:a.today,emphasisOf:L,broken:T,hue:G,onMove:(d,y)=>ee(d,{from:y,to:y,label:y},"day")})]},M.label))}):g==="agenda"?(0,Z.jsx)(kn,{days:O.cells.map(M=>M.from),entries:D,today:a.today,emphasisOf:L,broken:T,hue:G,onMove:(M,d)=>ee(M,{from:d,to:d,label:d},"day")}):(0,Z.jsx)(Sr,{span:O,weekStartsOn:S,entries:D,today:a.today,perCell:a.perCell??xr[O.grain],emphasisOf:L,broken:T,hue:G,onOpen:M=>N(vr(O.grain),M.from),onMove:ee})]})})}var re=q(Ee(),1);var Qe=q(Ee(),1),Re=q(te(),1),$n={padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:"transparent",background:"none",boxShadow:"none"};function $r({choices:e,close:t}){let[n,r]=(0,Qe.useState)(!1),a=(0,Qe.useRef)(null);return(0,Qe.useLayoutEffect)(()=>{n&&a.current?.querySelector("button:not([disabled])")?.focus()},[n]),(0,Re.jsxs)("div",{children:[(0,Re.jsxs)("button",{type:"button","data-menu-item":"move-to","aria-expanded":n,onClick:()=>r(i=>!i),style:$n,children:["Move to ",(0,Re.jsx)("span",{"aria-hidden":"true",children:"\u203A"})]}),n?(0,Re.jsx)("ul",{ref:a,"aria-label":"Move to","data-testid":"move-to",style:{margin:"2px 0 0 12px",padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:2},children:e.map(i=>i.run?(0,Re.jsx)("li",{children:(0,Re.jsx)("button",{type:"button","data-move-to":i.to,onClick:()=>{t(),i.run()},style:$n,children:i.label})},i.to):(0,Re.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,Re.jsx)("button",{type:"button",disabled:!0,"data-move-to":i.to,"data-withheld":"",style:{...$n,borderStyle:"dashed"},children:(0,Re.jsx)("s",{children:i.label})}),(0,Re.jsx)("span",{"data-testid":"move-to-why",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-ink-muted)",padding:"0 10px"},children:i.why})]},i.to))}):null]})}function Or({choose:e,close:t}){return(0,Re.jsx)("button",{type:"button","data-menu-item":"choose-several",onClick:()=>{t(),e()},style:$n,children:"Choose several"})}var z=q(te(),1),la=`
|
|
4
4
|
.graview-columns { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
|
|
@@ -27,6 +27,6 @@ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=gl
|
|
|
27
27
|
.graview-columns-card .graview-choose-at { position: absolute; top: 6px; right: 6px; z-index: ${Te.raised}; display: flex; }
|
|
28
28
|
[data-graview-choosable] { outline: none; }
|
|
29
29
|
@media (pointer: coarse) { [data-graview-choosable]:not([data-graview-choosing]) .graview-columns-card .graview-choose-at { display: none; } }
|
|
30
|
-
`;function Ar(e){function t(n){let{store:r}=oe();St();let a=Object.keys(e.bindings).filter(v=>r.schema.tryDefinition(v)!==void 0),i=n.nodes??[],s=new Set(i.map(v=>String(v.kind))),p=v=>r.graph.nodesOfKind(v).filter(O=>Ge(r.schema.tryDefinition(v),O)),c=n.total!==void 0&&n.total>i.length,b=a[0],u=b===void 0?[]:s.has(b)?i.filter(v=>v.kind===b):p(b),{arranged:w,arrangement:h,bar:o}=Ne(n,{lensAllows:{group:!1},subject:u,...b===void 0?{}:{kind:b},query:e.search!==void 0||u.length>vt,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),l=o?new Map(w.nodes.map((v,O)=>[v.id,O])):void 0,C=(v,O)=>{if(!l||v!==b)return O;let m=O.filter(E=>l.has(E.id));return h.sort===void 0?m:[...m].sort((E,D)=>l.get(E.id)-l.get(D.id))},g=a.map(v=>{let O=e.bindings[v].column,m=Vt(r.schema,v,O),E=(N,U)=>U==="label"?xe(r.schema.tryDefinition(N.kind),N):N[U],D=C(v,Ze(s.has(v)?i.filter(N=>N.kind===v):p(v).slice(0,n.budget??1/0),e.sort,E)),G=p(v),k=s.has(v)&&!c?D:C(v,G),_=new Set(e.hidden??[]),W=r.schema.tryDefinition(v),le=!!h.query||(h.filter?.length??0)>0,ee=new Set([...G,...s.has(v)?i.filter(N=>N.kind===v):[]].map(N=>N.id)),ie=W?.lifecycle&&n.budget===void 0&&n.fidelity==="full"&&!le?r.graph.nodesOfKind(v).filter(N=>!ee.has(N.id)&&!Ge(W,N)):[];return{kind:v,field:O,all:m,born:new Map(G.map((N,U)=>[N.id,U])),columns:m.filter(N=>N.value===null||!_.has(N.value)).map(N=>({column:N,cards:D.filter(U=>tn(U,O,m)===N.value),count:k.filter(U=>tn(U,O,m)===N.value).length,past:ie.filter(U=>tn(U,O,m)===N.value)})).filter(N=>N.column.value!==null||N.count>0||N.past.length>0)}}),S=g.reduce((v,O)=>v+O.columns.reduce((m,E)=>m+E.count,0),0),A=n.label??"Board";if(n.fidelity==="glyph")return(0,z.jsx)(ke,{label:`${A} \xB7 ${S}`,hue:be("columns")});if(n.fidelity==="summary")return(0,z.jsx)(me,{title:A,meta:b?qe(r.schema,b,S):String(S),tone:"muted",children:(0,z.jsx)("p",{style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},"data-testid":"columns-summary",children:g.flatMap(v=>v.columns.map(O=>`${O.column.label} ${O.count}`)).join(" \xB7 ")})});let L=(0,z.jsx)(da,{boards:g,title:A,options:e}),T=o?(0,z.jsxs)("div",{style:{display:"grid",gap:6},children:[o,L]}):L;return Ie(n,r.schema,n.mode==="fullscreen"?(0,z.jsx)("div",{style:{padding:"14px 16px"},children:T}):(0,z.jsx)(me,{title:A,meta:b?qe(r.schema,b,S):void 0,children:T}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function da({boards:e,title:t,options:n}){let{store:r,principal:a}=oe(),i=(0,re.useRef)(null),[s,p]=(0,re.useState)(null),[c,b]=(0,re.useState)(null),[u,w]=(0,re.useState)(null),[h,o]=(0,re.useState)(null),[l,C]=(0,re.useState)(""),[g,S]=(0,re.useState)(()=>new Set),[A,L]=(0,re.useState)(()=>new Set(n.collapsed??[])),[T,v]=(0,re.useState)(()=>new Set),[O,m]=(0,re.useState)(null),E=(0,re.useId)();(0,re.useLayoutEffect)(()=>{if(!O)return;i.current?.querySelector(O)?.focus(),m(null)});let D=y=>{let x=r.graph.getNode(y);return x?xe(r.schema.tryDefinition(x.kind),x):y},G=(0,re.useMemo)(()=>e.flatMap(y=>y.columns.flatMap(x=>x.cards.map(R=>R.id))),[e]),k=Ft(G),_=(0,re.useMemo)(()=>r.permittedMutations(a).some(y=>{let x=y.subject?.kinds;return x!==void 0&&(x==="*"||e.some(R=>x.includes(R.kind)))}),[r,a,e]),W=y=>{k.choose(y),requestAnimationFrame(()=>{((y[0]===void 0?null:i.current?.querySelector(`[data-graview-choose-box="${an(y[0])}"]`))??i.current)?.focus({preventScroll:!0})})},le=(y,x)=>Gt(r,a,y,x.field,x.columns.map(R=>R.column)),ee=y=>n.move?`[data-columns-move="${an(y)}"] > button`:`[data-graview-listed="${an(y)}"] .graview-spec-item-link`,ie=(y,x,R,f)=>{try{let $=r.apply(x.call,{author:a});p({text:`Moved \u201C${D(y)}\u201D to ${R}.`,tone:"moved",batch:$.batch,id:y}),f==="keyboard"&&m(ee(y)),f==="carry"&&m(`[data-graview-listed="${an(y)}"] .graview-spec-item-link`),f==="menu"&&ca(()=>i.current?.querySelector(`[data-graview-listed="${an(y)}"] .graview-spec-item-link`)??null)}catch($){p({text:$ instanceof Error?$.message:String($),tone:"refused"})}},N=()=>{if(s?.batch)try{r.undo(s.batch,{author:a}),p({text:`\u201C${D(s.id??"")}\u201D is back where it was.`,tone:"moved"}),s.id&&m(ee(s.id))}catch(y){p({text:y instanceof Error?y.message:String(y),tone:"refused"})}},U=(0,re.useRef)({move:ie,boards:e,choosing:k,choosable:_});U.current={move:ie,boards:e,choosing:k,choosable:_},(0,re.useEffect)(()=>{let x=[...new Set(e.map(R=>R.kind))].map(R=>qt({store:r,kind:R,root:()=>i.current,section:(f,$)=>{let P=U.current.boards.find(ue=>ue.kind===R),ne=r.graph.getNode(f);if(!P||!ne)return null;let H=jt(r,$,ne,P.field,P.all).map(ue=>({to:ue.to,label:ue.label,...ue.why!==void 0?{why:ue.why}:{},...ue.move?{run:()=>U.current.move(f,ue.move,ue.label,"menu")}:{}})),{choosing:K,choosable:J}=U.current,Y=J&&K.chosen.length===0&&typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches?()=>K.toggle(f):void 0;return H.length===0&&!Y?null:{id:"move-to",at:"start",render:ue=>(0,z.jsxs)(z.Fragment,{children:[H.length>0?(0,z.jsx)($r,{choices:H,close:ue}):null,Y?(0,z.jsx)(Or,{choose:Y,close:ue}):null]})}}}));return()=>x.forEach(R=>R())},[r,e]);let de=(y,x)=>y.all.find(R=>R.value===x)?.label??y.columns.find(R=>R.column.value===x)?.column.label??String(x),B=(y,x,R)=>y.columns.find(f=>f.column.value===x)?.cards.filter(f=>f.id!==R)??[],we=(y,x,R,f)=>{let $=B(y,x,f).length+1;return`${de(y,x)}, ${Math.min(R,$-1)+1} of ${$}.`},M=(y,x,R,f)=>{let $=D(x.id),P=()=>{y.preventDefault(),y.stopPropagation()};if(h?.id!==x.id){if(y.key!==" "||f.length===0||!(y.target instanceof HTMLElement)||!y.target.classList.contains("graview-spec-item-link"))return;P();let H=tn(x,R.field,R.all),K=Math.max(0,R.columns.find(J=>J.column.value===H)?.cards.findIndex(J=>J.id===x.id)??0);o({id:x.id,from:H,to:H,at:K}),C(`${$}, picked up. ${we(R,H,K,x.id)} Arrow keys move it, Space drops it, Escape puts it back.`);return}let ne=R.columns.map(H=>H.column.value).filter(H=>H===h.from||f.some(K=>K.to===H));if(y.key==="ArrowLeft"||y.key==="ArrowRight"){P();let H=ne[ne.indexOf(h.to)+(y.key==="ArrowLeft"?-1:1)];if(H===void 0)return C(`No column further ${y.key==="ArrowLeft"?"left":"right"} takes ${$}. ${we(R,h.to,h.at,x.id)}`);let K=Math.min(h.at,B(R,H,x.id).length);return o({...h,to:H,at:K}),C(we(R,H,K,x.id))}if(y.key==="ArrowUp"||y.key==="ArrowDown"){P();let H=Math.max(0,Math.min(B(R,h.to,x.id).length,h.at+(y.key==="ArrowUp"?-1:1)));return o({...h,at:H}),C(we(R,h.to,H,x.id))}if(y.key===" "||y.key==="Enter"){P(),o(null);let H=h.to===h.from?void 0:f.find(K=>K.to===h.to);return H?(C(`${$}, dropped in ${de(R,h.to)}.`),ie(x.id,H,de(R,h.to),"carry")):C(`${$}, dropped back in ${de(R,h.from)}.`)}if(y.key==="Escape")return P(),o(null),C(`${$}, put back in ${de(R,h.from)}.`)},d=y=>{if(h?.id!==y)return;let x=e.find(R=>R.kind===r.graph.getNode(y)?.kind);o(null),x&&C(`${D(y)}, put back in ${de(x,h.from)}.`)};return(0,z.jsxs)("div",{"data-testid":"columns-lens",..._?{...k.listProps,tabIndex:-1,role:"group","aria-label":k.chosen.length>0?`${t}, ${k.chosen.length} chosen`:t,"data-graview-choosable":""}:{},ref:y=>{i.current=y,k.list.current=y},children:[(0,z.jsx)("style",{children:la}),_?(0,z.jsx)("style",{children:_t}):null,(0,z.jsxs)("p",{className:"graview-columns-said",role:"status","data-tone":s?.tone,"data-testid":"columns-said",style:s?void 0:{position:"absolute",width:1,height:1,overflow:"hidden",clipPath:"inset(50%)"},children:[s?(0,z.jsx)("span",{children:s.text}):null,s?.batch?(0,z.jsx)("button",{type:"button","data-testid":"columns-undo",onClick:N,children:"Undo"}):null]}),(0,z.jsx)("p",{"aria-live":"assertive","data-testid":"columns-announce",style:Ct,children:l}),(0,z.jsx)("span",{id:E,hidden:!0,children:"Space picks it up; the arrow keys carry it between and along the columns; Space drops it and Escape puts it back. Its menu moves it too."}),e.map(y=>(0,z.jsx)("section",{"data-columns-kind":y.kind,"data-columns-field":y.field,"aria-label":`${gn(r.schema,y.kind)} by ${y.field}`,children:(0,z.jsx)("div",{className:"graview-columns",children:y.columns.map(({column:x,cards:R,count:f,past:$})=>{let P=x.value??"",ne=`${y.kind}\0${P}`,H=$.length>0&&T.has(ne),K=H?[...R,...$]:R,J=H?f+$.length:f,Y=$.length>0&&!H?$.length:0,ue=c!==null&&x.value!==null&&c.to.includes(x.value)||h!==null&&h.to!==h.from&&h.to===x.value&&y.columns.some(V=>V.cards.some(ge=>ge.id===h.id)),Q=x.value!==null&&(n.collapsed??[]).includes(x.value),Ve=Q&&A.has(P),pe=n.cap!==void 0&&!g.has(P)&&K.length>n.cap,X=pe?new Set([...K].sort((V,ge)=>(y.born.get(ge.id)??0)-(y.born.get(V.id)??0)).slice(0,n.cap).map(V=>V.id)):null,he=X?K.filter(V=>X.has(V.id)||V.id===h?.id):K,Ce=h!==null&&h.to===x.value&&h.to!==h.from&&y.columns.some(V=>V.cards.some(ge=>ge.id===h.id)),$e=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{children:x.label}),(0,z.jsx)("span",{className:"graview-columns-count","data-testid":"columns-count",children:J})]});return(0,z.jsxs)("section",{className:"graview-columns-column","data-graview-column":P,...x.value!==null?{"data-column":`${y.field}:${x.value}`,"data-column-kind":y.kind,"data-column-label":x.label}:{},"data-droppable":ue||void 0,"data-over":ue&&(u===P||Ce)||void 0,"aria-label":`${t} \xB7 ${x.label}, ${J}${Y>0?`, ${cn(Y)} past`:""}`,"data-graview-named-by-lens":"",onDragOver:V=>{ue&&(V.preventDefault(),V.dataTransfer.dropEffect="move",w(P))},onDragLeave:()=>w(V=>V===P?null:V),onDrop:V=>{let ge=V.dataTransfer.getData("text/graview-node"),Se=r.graph.getNode(ge);if(w(null),b(null),!Se||x.value===null)return;let ce=le(Se,y).find(ve=>ve.to===x.value);ce&&(V.preventDefault(),V.stopPropagation(),ie(ge,ce,x.label,"drag"))},children:[(0,z.jsx)("h3",{className:"graview-columns-heading",children:Q?(0,z.jsx)("button",{type:"button",className:"graview-columns-toggle","aria-expanded":!Ve,"data-testid":"columns-toggle",onClick:()=>L(V=>V.has(P)?new Set([...V].filter(ge=>ge!==P)):new Set([...V,P])),children:$e}):$e}),Ve?null:he.length===0&&!Ce?Y>0?null:(0,z.jsx)("p",{className:"graview-columns-empty",children:"Nothing here."}):(0,z.jsx)("ul",{className:"graview-columns-cards",children:(0,z.jsx)(Ut.Provider,{value:x.value===null?null:{field:y.field,values:[x.value,x.label]},children:(()=>{let V=he.map(Se=>{let ce=le(Se,y);return(0,z.jsx)(ua,{card:Se,moves:ce,button:n.move===!0,carried:h?.id===Se.id,...ce.length>0?{describedBy:E}:{},..._?{choosing:k}:{},labelOf:ve=>de(y,ve),onMove:(ve,Oe)=>ie(Se.id,ve,Oe,"keyboard"),onDrag:ve=>b(ve?{id:Se.id,to:ce.map(Oe=>Oe.to)}:null),onCarryKey:ve=>M(ve,Se,y,ce),onLeave:()=>d(Se.id)},Se.id)});if(!Ce)return V;let ge=(0,z.jsx)("li",{className:"graview-columns-slot","data-testid":"columns-slot","aria-hidden":"true",children:D(h.id)},"graview-carried-slot");return[...V.slice(0,h.at),ge,...V.slice(h.at)]})()})}),!Ve&&Y>0?(0,z.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-past",title:`${cn(Y)} more behind the horizon \u2014 press to show them here`,onClick:()=>v(V=>new Set([...V,ne])),children:["+",cn(Y)," past"]}):null,!Ve&&pe?(0,z.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-rest",onClick:()=>S(V=>new Set([...V,P])),children:["Show ",K.length-he.length," more"]}):null]},P)})})},y.kind)),_?(0,z.jsx)(Kt,{store:r,chosen:k.chosen,principal:a,anchor:()=>i.current?.closest('[data-testid="kind-stop"], [data-embed-content]')??null,of:G.length,onChooseAll:()=>k.choose(G),onClear:k.clear,onActed:W}):null]})}var an=e=>typeof globalThis.CSS?.escape=="function"?globalThis.CSS.escape(e):e.replace(/["\\]/g,"\\$&");function ca(e){let t=0,n=()=>{let r=e(),a=typeof document>"u"?null:document.activeElement;r&&a!==r&&(a===null||a===document.body||a.closest("[data-graview-menu-home], [data-graview-page-title], h1, main")!==null||!a.isConnected)&&r.focus({preventScroll:!0}),++t<6&&requestAnimationFrame(n)};requestAnimationFrame(n)}function ua({card:e,moves:t,button:n,carried:r,describedBy:a,labelOf:i,onMove:s,onDrag:p,onCarryKey:c,onLeave:b,choosing:u}){let{store:w,views:h}=oe(),[o,l]=(0,re.useState)(!1),C=(0,re.useRef)(null),g=(0,re.useRef)(null),S=xe(w.schema.tryDefinition(e.kind),e),A=h.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,re.useLayoutEffect)(()=>{o&&C.current?.querySelector("button")?.focus()},[o]);let L=()=>{l(!1),g.current?.focus()},T=v=>{let O=[...C.current?.querySelectorAll("button")??[]],m=O.indexOf(document.activeElement);v.key==="Escape"?(v.preventDefault(),v.stopPropagation(),L()):(v.key==="ArrowDown"||v.key==="ArrowUp")&&(v.preventDefault(),v.stopPropagation(),O[(m+(v.key==="ArrowDown"?1:O.length-1))%O.length]?.focus())};return(0,z.jsxs)("li",{className:"graview-spec-item graview-columns-card","data-graview-listed":e.id,"data-as":"card","data-carried":r||void 0,...u&&u.chosen.length>0?{"data-graview-choose":e.id}:{},draggable:t.length>0||void 0,onKeyDown:c,onKeyUp:v=>{v.key===" "&&v.target instanceof HTMLElement&&v.target.classList.contains("graview-spec-item-link")&&v.preventDefault()},onBlur:v=>{r&&!v.currentTarget.contains(v.relatedTarget)&&b()},onDragStart:v=>{t.length!==0&&(v.dataTransfer.setData("text/graview-node",e.id),v.dataTransfer.effectAllowed="move",p(!0))},onDragEnd:()=>p(!1),children:[(0,z.jsx)(Qt,{node:e,label:S,...a?{describedBy:a}:{}}),A?(0,z.jsx)(bt,{mode:"scene",children:(0,z.jsx)(Ot.Provider,{value:S,children:(0,z.jsx)(A,{node:e,cardinality:"one",fidelity:"summary",mode:"scene",selected:!1})})}):(0,z.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:S}),u?(0,z.jsx)("span",{className:"graview-choose-at",children:(0,z.jsx)("input",{...u.boxProps(e.id,S),onPointerEnter:Gn,onFocus:Gn})}):null,n&&t.length>0?(0,z.jsxs)("div",{className:"graview-columns-move","data-columns-move":e.id,"data-open":o||void 0,onBlur:v=>{v.currentTarget.contains(v.relatedTarget)||l(!1)},children:[(0,z.jsx)("button",{ref:g,type:"button","aria-haspopup":"menu","aria-expanded":o,"aria-label":`Move \u201C${S}\u201D to another column`,"data-testid":"columns-move",onClick:()=>l(v=>!v),children:"Move\u2026"}),o?(0,z.jsx)("div",{ref:C,role:"menu","aria-label":`Move \u201C${S}\u201D to`,className:"graview-columns-menu",onKeyDown:T,onMouseDown:v=>v.preventDefault(),children:t.map(v=>(0,z.jsx)("button",{type:"button",role:"menuitem","data-columns-to":v.to,title:v.title,onClick:()=>{l(!1),s(v,i(v.to))},children:i(v.to)},v.to))}):null]}):null]})}var Me=q(Ee(),1);var F=q(te(),1),ga=["rows","columns","link"],on=class extends Error{constructor(n,r){super(`${n}
|
|
30
|
+
`;function Ar(e){function t(n){let{store:r}=oe();St();let a=Object.keys(e.bindings).filter(v=>r.schema.tryDefinition(v)!==void 0),i=n.nodes??[],s=new Set(i.map(v=>String(v.kind))),p=v=>r.graph.nodesOfKind(v).filter(O=>Ge(r.schema.tryDefinition(v),O)),c=n.total!==void 0&&n.total>i.length,b=a[0],u=b===void 0?[]:s.has(b)?i.filter(v=>v.kind===b):p(b),{arranged:w,arrangement:h,bar:o}=Ne(n,{lensAllows:{group:!1},subject:u,...b===void 0?{}:{kind:b},query:e.search!==void 0||u.length>vt,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),l=o?new Map(w.nodes.map((v,O)=>[v.id,O])):void 0,C=(v,O)=>{if(!l||v!==b)return O;let m=O.filter(E=>l.has(E.id));return h.sort===void 0?m:[...m].sort((E,D)=>l.get(E.id)-l.get(D.id))},g=a.map(v=>{let O=e.bindings[v].column,m=Vt(r.schema,v,O),E=(N,U)=>U==="label"?xe(r.schema.tryDefinition(N.kind),N):N[U],D=C(v,Ze(s.has(v)?i.filter(N=>N.kind===v):p(v).slice(0,n.budget??1/0),e.sort,E)),G=p(v),k=s.has(v)&&!c?D:C(v,G),_=new Set(e.hidden??[]),W=r.schema.tryDefinition(v),le=!!h.query||(h.filter?.length??0)>0,ee=new Set([...G,...s.has(v)?i.filter(N=>N.kind===v):[]].map(N=>N.id)),ie=W?.lifecycle&&n.budget===void 0&&n.fidelity==="full"&&!le?r.graph.nodesOfKind(v).filter(N=>!ee.has(N.id)&&!Ge(W,N)):[];return{kind:v,field:O,all:m,born:new Map(G.map((N,U)=>[N.id,U])),columns:m.filter(N=>N.value===null||!_.has(N.value)).map(N=>({column:N,cards:D.filter(U=>tn(U,O,m)===N.value),count:k.filter(U=>tn(U,O,m)===N.value).length,past:ie.filter(U=>tn(U,O,m)===N.value)})).filter(N=>N.column.value!==null||N.count>0||N.past.length>0)}}),S=g.reduce((v,O)=>v+O.columns.reduce((m,E)=>m+E.count,0),0),A=n.label??"Board";if(n.fidelity==="glyph")return(0,z.jsx)(ke,{label:`${A} \xB7 ${S}`,hue:be("columns")});if(n.fidelity==="summary")return(0,z.jsx)(me,{title:A,meta:b?qe(r.schema,b,S):String(S),tone:"muted",children:(0,z.jsx)("p",{style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},"data-testid":"columns-summary",children:g.flatMap(v=>v.columns.map(O=>`${O.column.label} ${O.count}`)).join(" \xB7 ")})});let L=(0,z.jsx)(da,{boards:g,title:A,options:e}),T=o?(0,z.jsxs)("div",{style:{display:"grid",gap:6},children:[o,L]}):L;return Ie(n,r.schema,n.mode==="fullscreen"?(0,z.jsx)("div",{style:{padding:"14px 16px"},children:T}):(0,z.jsx)(me,{title:A,meta:b?qe(r.schema,b,S):void 0,children:T}))}return{name:"columns",requiredRoles:["column"],bindings:e.bindings,View:t}}function da({boards:e,title:t,options:n}){let{store:r,principal:a}=oe(),i=(0,re.useRef)(null),[s,p]=(0,re.useState)(null),[c,b]=(0,re.useState)(null),[u,w]=(0,re.useState)(null),[h,o]=(0,re.useState)(null),[l,C]=(0,re.useState)(""),[g,S]=(0,re.useState)(()=>new Set),[A,L]=(0,re.useState)(()=>new Set(n.collapsed??[])),[T,v]=(0,re.useState)(()=>new Set),[O,m]=(0,re.useState)(null),E=(0,re.useId)();(0,re.useLayoutEffect)(()=>{if(!O)return;i.current?.querySelector(O)?.focus(),m(null)});let D=y=>{let x=r.graph.getNode(y);return x?xe(r.schema.tryDefinition(x.kind),x):y},G=(0,re.useMemo)(()=>e.flatMap(y=>y.columns.flatMap(x=>x.cards.map(R=>R.id))),[e]),k=Ft(G),_=(0,re.useMemo)(()=>r.permittedMutations(a).some(y=>{let x=y.subject?.kinds;return x!==void 0&&(x==="*"||e.some(R=>x.includes(R.kind)))}),[r,a,e]),W=y=>{k.choose(y),requestAnimationFrame(()=>{((y[0]===void 0?null:i.current?.querySelector(`[data-graview-choose-box="${an(y[0])}"]`))??i.current)?.focus({preventScroll:!0})})},le=(y,x)=>Gt(r,a,y,x.field,x.columns.map(R=>R.column)),ee=y=>n.move?`[data-columns-move="${an(y)}"] > button`:`[data-graview-listed="${an(y)}"] .graview-spec-item-link`,ie=(y,x,R,f)=>{try{let $=r.apply(x.call,{author:a});p({text:`Moved \u201C${D(y)}\u201D to ${R}.`,tone:"moved",batch:$.batch,id:y}),f==="keyboard"&&m(ee(y)),f==="carry"&&m(`[data-graview-listed="${an(y)}"] .graview-spec-item-link`),f==="menu"&&ca(()=>i.current?.querySelector(`[data-graview-listed="${an(y)}"] .graview-spec-item-link`)??null)}catch($){p({text:$ instanceof Error?$.message:String($),tone:"refused"})}},N=()=>{if(s?.batch)try{r.undo(s.batch,{author:a}),p({text:`\u201C${D(s.id??"")}\u201D is back where it was.`,tone:"moved"}),s.id&&m(ee(s.id))}catch(y){p({text:y instanceof Error?y.message:String(y),tone:"refused"})}},U=(0,re.useRef)({move:ie,boards:e,choosing:k,choosable:_});U.current={move:ie,boards:e,choosing:k,choosable:_},(0,re.useEffect)(()=>{let x=[...new Set(e.map(R=>R.kind))].map(R=>qt({store:r,kind:R,root:()=>i.current,section:(f,$)=>{let P=U.current.boards.find(ue=>ue.kind===R),ne=r.graph.getNode(f);if(!P||!ne)return null;let H=jt(r,$,ne,P.field,P.all).map(ue=>({to:ue.to,label:ue.label,...ue.why!==void 0?{why:ue.why}:{},...ue.move?{run:()=>U.current.move(f,ue.move,ue.label,"menu")}:{}})),{choosing:K,choosable:J}=U.current,Y=J&&K.chosen.length===0&&typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches?()=>K.toggle(f):void 0;return H.length===0&&!Y?null:{id:"move-to",at:"start",render:ue=>(0,z.jsxs)(z.Fragment,{children:[H.length>0?(0,z.jsx)($r,{choices:H,close:ue}):null,Y?(0,z.jsx)(Or,{choose:Y,close:ue}):null]})}}}));return()=>x.forEach(R=>R())},[r,e]);let de=(y,x)=>y.all.find(R=>R.value===x)?.label??y.columns.find(R=>R.column.value===x)?.column.label??String(x),B=(y,x,R)=>y.columns.find(f=>f.column.value===x)?.cards.filter(f=>f.id!==R)??[],we=(y,x,R,f)=>{let $=B(y,x,f).length+1;return`${de(y,x)}, ${Math.min(R,$-1)+1} of ${$}.`},M=(y,x,R,f)=>{let $=D(x.id),P=()=>{y.preventDefault(),y.stopPropagation()};if(h?.id!==x.id){if(y.key!==" "||f.length===0||!(y.target instanceof HTMLElement)||!y.target.classList.contains("graview-spec-item-link"))return;P();let H=tn(x,R.field,R.all),K=Math.max(0,R.columns.find(J=>J.column.value===H)?.cards.findIndex(J=>J.id===x.id)??0);o({id:x.id,from:H,to:H,at:K}),C(`${$}, picked up. ${we(R,H,K,x.id)} Arrow keys move it, Space drops it, Escape puts it back.`);return}let ne=R.columns.map(H=>H.column.value).filter(H=>H===h.from||f.some(K=>K.to===H));if(y.key==="ArrowLeft"||y.key==="ArrowRight"){P();let H=ne[ne.indexOf(h.to)+(y.key==="ArrowLeft"?-1:1)];if(H===void 0)return C(`No column further ${y.key==="ArrowLeft"?"left":"right"} takes ${$}. ${we(R,h.to,h.at,x.id)}`);let K=Math.min(h.at,B(R,H,x.id).length);return o({...h,to:H,at:K}),C(we(R,H,K,x.id))}if(y.key==="ArrowUp"||y.key==="ArrowDown"){P();let H=Math.max(0,Math.min(B(R,h.to,x.id).length,h.at+(y.key==="ArrowUp"?-1:1)));return o({...h,at:H}),C(we(R,h.to,H,x.id))}if(y.key===" "||y.key==="Enter"){P(),o(null);let H=h.to===h.from?void 0:f.find(K=>K.to===h.to);return H?(C(`${$}, dropped in ${de(R,h.to)}.`),ie(x.id,H,de(R,h.to),"carry")):C(`${$}, dropped back in ${de(R,h.from)}.`)}if(y.key==="Escape")return P(),o(null),C(`${$}, put back in ${de(R,h.from)}.`)},d=y=>{if(h?.id!==y)return;let x=e.find(R=>R.kind===r.graph.getNode(y)?.kind);o(null),x&&C(`${D(y)}, put back in ${de(x,h.from)}.`)};return(0,z.jsxs)("div",{"data-testid":"columns-lens",..._?{...k.listProps,tabIndex:-1,role:"group","aria-label":k.chosen.length>0?`${t}, ${k.chosen.length} chosen`:t,"data-graview-choosable":""}:{},ref:y=>{i.current=y,k.list.current=y},children:[(0,z.jsx)("style",{children:la}),_?(0,z.jsx)("style",{children:_t}):null,(0,z.jsxs)("p",{className:"graview-columns-said",role:"status","data-tone":s?.tone,"data-testid":"columns-said",style:s?void 0:{position:"absolute",width:1,height:1,overflow:"hidden",clipPath:"inset(50%)"},children:[s?(0,z.jsx)("span",{children:s.text}):null,s?.batch?(0,z.jsx)("button",{type:"button","data-testid":"columns-undo",onClick:N,children:"Undo"}):null]}),(0,z.jsx)("p",{"aria-live":"assertive","data-testid":"columns-announce",style:Ct,children:l}),(0,z.jsx)("span",{id:E,hidden:!0,children:"Space picks it up; the arrow keys carry it between and along the columns; Space drops it and Escape puts it back. Its menu moves it too."}),e.map(y=>(0,z.jsx)("section",{"data-columns-kind":y.kind,"data-columns-field":y.field,"aria-label":`${gn(r.schema,y.kind)} by ${y.field}`,children:(0,z.jsx)("div",{className:"graview-columns",children:y.columns.map(({column:x,cards:R,count:f,past:$})=>{let P=x.value??"",ne=`${y.kind}\0${P}`,H=$.length>0&&T.has(ne),K=H?[...R,...$]:R,J=H?f+$.length:f,Y=$.length>0&&!H?$.length:0,ue=c!==null&&x.value!==null&&c.to.includes(x.value)||h!==null&&h.to!==h.from&&h.to===x.value&&y.columns.some(V=>V.cards.some(ge=>ge.id===h.id)),Q=x.value!==null&&(n.collapsed??[]).includes(x.value),Ve=Q&&A.has(P),pe=n.cap!==void 0&&!g.has(P)&&K.length>n.cap,X=pe?new Set([...K].sort((V,ge)=>(y.born.get(ge.id)??0)-(y.born.get(V.id)??0)).slice(0,n.cap).map(V=>V.id)):null,he=X?K.filter(V=>X.has(V.id)||V.id===h?.id):K,Ce=h!==null&&h.to===x.value&&h.to!==h.from&&y.columns.some(V=>V.cards.some(ge=>ge.id===h.id)),$e=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)("span",{children:x.label}),(0,z.jsx)("span",{className:"graview-columns-count","data-testid":"columns-count",children:J})]});return(0,z.jsxs)("section",{className:"graview-columns-column","data-graview-column":P,...x.value!==null?{"data-column":`${y.field}:${x.value}`,"data-column-kind":y.kind,"data-column-label":x.label}:{},"data-droppable":ue||void 0,"data-over":ue&&(u===P||Ce)||void 0,"aria-label":`${t} \xB7 ${x.label}, ${J}${Y>0?`, ${cn(Y)} past`:""}`,"data-graview-named-by-lens":"",onDragOver:V=>{ue&&(V.preventDefault(),V.dataTransfer.dropEffect="move",w(P))},onDragLeave:()=>w(V=>V===P?null:V),onDrop:V=>{let ge=V.dataTransfer.getData("text/graview-node"),Se=r.graph.getNode(ge);if(w(null),b(null),!Se||x.value===null)return;let ce=le(Se,y).find(ve=>ve.to===x.value);ce&&(V.preventDefault(),V.stopPropagation(),ie(ge,ce,x.label,"drag"))},children:[(0,z.jsx)("h3",{className:"graview-columns-heading",children:Q?(0,z.jsx)("button",{type:"button",className:"graview-columns-toggle","aria-expanded":!Ve,"data-testid":"columns-toggle",onClick:()=>L(V=>V.has(P)?new Set([...V].filter(ge=>ge!==P)):new Set([...V,P])),children:$e}):$e}),Ve?null:he.length===0&&!Ce?Y>0?null:(0,z.jsx)("p",{className:"graview-columns-empty",children:"Nothing here."}):(0,z.jsx)("ul",{className:"graview-columns-cards",children:(0,z.jsx)(Ut.Provider,{value:x.value===null?null:{field:y.field,values:[x.value,x.label]},children:(()=>{let V=he.map(Se=>{let ce=le(Se,y);return(0,z.jsx)(ua,{card:Se,moves:ce,button:n.move===!0,carried:h?.id===Se.id,...ce.length>0?{describedBy:E}:{},..._?{choosing:k}:{},labelOf:ve=>de(y,ve),onMove:(ve,Oe)=>ie(Se.id,ve,Oe,"keyboard"),onDrag:ve=>b(ve?{id:Se.id,to:ce.map(Oe=>Oe.to)}:null),onCarryKey:ve=>M(ve,Se,y,ce),onLeave:()=>d(Se.id)},Se.id)});if(!Ce)return V;let ge=(0,z.jsx)("li",{className:"graview-columns-slot","data-testid":"columns-slot","aria-hidden":"true",children:D(h.id)},"graview-carried-slot");return[...V.slice(0,h.at),ge,...V.slice(h.at)]})()})}),!Ve&&Y>0?(0,z.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-past",title:`${cn(Y)} more behind the horizon \u2014 press to show them here`,onClick:()=>v(V=>new Set([...V,ne])),children:["+",cn(Y)," past"]}):null,!Ve&&pe?(0,z.jsxs)("button",{type:"button",className:"graview-columns-rest","data-testid":"columns-rest",onClick:()=>S(V=>new Set([...V,P])),children:["Show ",K.length-he.length," more"]}):null]},P)})})},y.kind)),_?(0,z.jsx)(Kt,{store:r,chosen:k.chosen,principal:a,anchor:()=>i.current?.closest('[data-testid="kind-stop"], [data-embed-content]')??null,of:G.length,onChooseAll:()=>k.choose(G),onClear:k.clear,onActed:W}):null]})}var an=e=>typeof globalThis.CSS?.escape=="function"?globalThis.CSS.escape(e):e.replace(/["\\]/g,"\\$&");function ca(e){let t=0,n=()=>{let r=e(),a=typeof document>"u"?null:document.activeElement;r&&a!==r&&(a===null||a===document.body||a.closest("[data-graview-menu-home], [data-graview-page-title], h1, main")!==null||!a.isConnected)&&r.focus({preventScroll:!0}),++t<6&&requestAnimationFrame(n)};requestAnimationFrame(n)}function ua({card:e,moves:t,button:n,carried:r,describedBy:a,labelOf:i,onMove:s,onDrag:p,onCarryKey:c,onLeave:b,choosing:u}){let{store:w,views:h}=oe(),[o,l]=(0,re.useState)(!1),C=(0,re.useRef)(null),g=(0,re.useRef)(null),S=xe(w.schema.tryDefinition(e.kind),e),A=h.lookup(e.kind,{cardinality:"one",fidelity:"summary"});(0,re.useLayoutEffect)(()=>{o&&C.current?.querySelector("button")?.focus()},[o]);let L=()=>{l(!1),g.current?.focus()},T=v=>{let O=[...C.current?.querySelectorAll("button")??[]],m=O.indexOf(document.activeElement);v.key==="Escape"?(v.preventDefault(),v.stopPropagation(),L()):(v.key==="ArrowDown"||v.key==="ArrowUp")&&(v.preventDefault(),v.stopPropagation(),O[(m+(v.key==="ArrowDown"?1:O.length-1))%O.length]?.focus())};return(0,z.jsxs)("li",{className:"graview-spec-item graview-columns-card","data-graview-listed":e.id,"data-as":"card","data-carried":r||void 0,...u&&u.chosen.length>0?{"data-graview-choose":e.id}:{},draggable:t.length>0||void 0,onKeyDown:c,onKeyUp:v=>{v.key===" "&&v.target instanceof HTMLElement&&v.target.classList.contains("graview-spec-item-link")&&v.preventDefault()},onBlur:v=>{r&&!v.currentTarget.contains(v.relatedTarget)&&b()},onDragStart:v=>{t.length!==0&&(v.dataTransfer.setData("text/graview-node",e.id),v.dataTransfer.effectAllowed="move",p(!0))},onDragEnd:()=>p(!1),children:[(0,z.jsx)(Qt,{node:e,label:S,...a?{describedBy:a}:{}}),A?(0,z.jsx)(bt,{mode:"scene",children:(0,z.jsx)($t.Provider,{value:S,children:(0,z.jsx)(A,{node:e,cardinality:"one",fidelity:"summary",mode:"scene",selected:!1})})}):(0,z.jsx)("span",{className:"graview-spec-item-name","aria-hidden":"true",children:S}),u?(0,z.jsx)("span",{className:"graview-choose-at",children:(0,z.jsx)("input",{...u.boxProps(e.id,S),onPointerEnter:Gn,onFocus:Gn})}):null,n&&t.length>0?(0,z.jsxs)("div",{className:"graview-columns-move","data-columns-move":e.id,"data-open":o||void 0,onBlur:v=>{v.currentTarget.contains(v.relatedTarget)||l(!1)},children:[(0,z.jsx)("button",{ref:g,type:"button","aria-haspopup":"menu","aria-expanded":o,"aria-label":`Move \u201C${S}\u201D to another column`,"data-testid":"columns-move",onClick:()=>l(v=>!v),children:"Move\u2026"}),o?(0,z.jsx)("div",{ref:C,role:"menu","aria-label":`Move \u201C${S}\u201D to`,className:"graview-columns-menu",onKeyDown:T,onMouseDown:v=>v.preventDefault(),children:t.map(v=>(0,z.jsx)("button",{type:"button",role:"menuitem","data-columns-to":v.to,title:v.title,onClick:()=>{l(!1),s(v,i(v.to))},children:i(v.to)},v.to))}):null]}):null]})}var Me=q(Ee(),1);var F=q(te(),1),ga=["rows","columns","link"],on=class extends Error{constructor(n,r){super(`${n}
|
|
31
31
|
${r}`);this.hint=r;this.name="CoverageBindingError"}},Xn=(e,t)=>t&&e[t]!==void 0?String(e[t]):"",ma=40,pa=24;function fa(e,t={}){let n=t.rows??ma,r=t.columns??pa;if(e.rows.length<=n&&e.columns.length<=r)return e;let a=new Map;for(let u of e.cells)a.set(u.rowId,(a.get(u.rowId)??0)+1),a.set(`col:${u.columnId}`,(a.get(`col:${u.columnId}`)??0)+1);let i=(u,w,h)=>{if(u.length<=w)return u;let o=new Set(u.map((l,C)=>({item:l,index:C,count:a.get(h(l))??0})).sort((l,C)=>C.count-l.count||l.index-C.index).slice(0,w).map(l=>l.item.id));return u.filter(l=>o.has(l.id))},s=i(e.rows,n,u=>u.id),p=i(e.columns,r,u=>`col:${u.id}`),c=new Set(s.map(u=>u.id)),b=new Set(p.map(u=>u.id));return{...e,rows:s,columns:p,cells:e.cells.filter(u=>c.has(u.rowId)&&b.has(u.columnId)),of:{rows:e.rows.length,columns:e.columns.length}}}function Pr(e,t,n,r){let a=m=>m,i=m=>r?xe(r.tryDefinition(m.kind),m):String(a(m).label??m.id),s=r?[n.rows,n.columns].filter(m=>r.tryDefinition(m)===void 0):[];if(s.length>0)throw new on(`No kind is declared for ${s.map(m=>`"${m}"`).join(" or ")}.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');if(r&&typeof n.link!="string"){let m=zn(r,n.columns,n.link.path);if(!m.ok||!m.reached.has(n.rows)){let E=zn(r,n.columns,[...n.link.path].reverse());throw new on(E.ok&&E.reached.has(n.rows)?`The path runs from the ${n.rows} to the ${n.columns}; it is walked from the columns.`:`The path [${n.link.path.join(", ")}] cannot get from a ${n.columns} to a ${n.rows}.`,`Name it column end first: link: { path: [${[...n.link.path].reverse().map(D=>JSON.stringify(D)).join(", ")}] }`)}}let p=e.filter(m=>m.kind===n.rows),c=e.filter(m=>m.kind===n.columns);if(!r&&p.length===0&&c.length===0)throw new on(`Nothing to lay out: no "${n.rows}" and no "${n.columns}" nodes.`,'Check the lens bindings: { rows: "<kind>", columns: "<kind>", link: "<edge kind>" }');let b=n.groupOrder??[],u=m=>{let E=b.indexOf(m);return E===-1?b.length:E},w=n.badge?t.filter(m=>m.kind===n.badge.edge):[],h=new Set(p.map(m=>m.id)),o=new Set(c.map(m=>m.id)),l=[];if(typeof n.link=="string"){let m=n.link,E=t.filter(W=>W.kind===m),D=W=>r?.tryDefinition?.(W)?.edges?.[m]?.to,G=(D(n.columns)??[]).some(W=>W===n.rows||W==="*"),k=(D(n.rows)??[]).some(W=>W===n.columns||W==="*"),_=G||!k;for(let W of E){let le=_?W.to:W.from,ee=_?W.from:W.to;h.has(le)&&o.has(ee)&&l.push({rowId:le,columnId:ee})}}else{let m=new Map;for(let D of new Set(n.link.path))m.set(D,new Map);for(let D of t){let G=m.get(D.kind);if(!G)continue;let k=G.get(D.from);k?k.push(D.to):G.set(D.from,[D.to]);let _=G.get(D.to);_?_.push(D.from):G.set(D.to,[D.from])}let E=new Set;for(let D of c){let G=[{id:D.id,via:[]}];for(let k of n.link.path){let _=[],W=new Set,le=m.get(k);for(let ee of G)for(let ie of le.get(ee.id)??[])W.has(`${ee.id}|${ie}`)||(W.add(`${ee.id}|${ie}`),_.push({id:ie,via:[...ee.via,ee.id]}));G=_}for(let k of G){if(!h.has(k.id))continue;let _=`${k.id}|${D.id}`;E.has(_)||(E.add(_),l.push({rowId:k.id,columnId:D.id,via:k.via.slice(1)}))}}}let C=new Set(n.requiredGroups??[]),g=n.requiredVia?new Set(t.filter(m=>m.kind===n.requiredVia.edge).map(m=>m.to)):null,S=new Set(l.map(m=>m.rowId)),A=new Set(l.map(m=>m.columnId)),L=new Set(w.map(m=>m.to)),T=(m,E)=>E==="label"?i(m):a(m)[E],v=Ze(p,n.sort,T).map(m=>{let E=a(m),D=Xn(E,n.rowGroup);return{id:m.id,ref:Xn(E,n.rowRef),label:i(m),group:D,required:g?g.has(m.id):C.size===0||C.has(D),covered:S.has(m.id),badged:L.has(m.id)}}).sort((m,E)=>u(m.group)-u(E.group)||(n.sort!==void 0?0:m.ref<E.ref?-1:m.ref>E.ref?1:0)),O=Ze(c,n.columnSort,T).map(m=>({id:m.id,label:i(m),used:A.has(m.id),group:Xn(a(m),n.columnGroup)})).sort((m,E)=>m.group<E.group?-1:m.group>E.group?1:n.columnSort!==void 0?0:m.id<E.id?-1:m.id>E.id?1:0).map(({group:m,...E})=>E);return{rows:v,columns:O,cells:l,gaps:v.filter(m=>m.required&&!m.covered).map(m=>m.id),unasked:O.filter(m=>!m.used).map(m=>m.id)}}var Rr=316,Zn=58,et=176,ha=Math.sin(Zn*Math.PI/180),ya=Math.cos(Zn*Math.PI/180),wa=e=>{let t=e.reduce((r,a)=>Math.max(r,a.length),0),n=Math.min(et,Math.max(46,t*5.4+12));return Math.ceil(n*ha)+8},Er=Math.ceil(et*ya),Mr=(e,t)=>un(e,t).toLowerCase(),Tr=(e,t)=>mn(e.tryDefinition(t),t);function va(e,t,n){return t.rows===t.columns?`${e} with none across`:`${qe(n,t.rows,e)} with no ${Tr(n,t.columns)}`}function ba(e,t,n){return t.rows===t.columns?`${e} with none down`:`${qe(n,t.columns,e)} on no ${Tr(n,t.rows)}`}function xa({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,implicated:s=[],flagged:p=[],budget:c,rowsKept:b}){let{store:u}=oe(),w=Aa(),h=(0,Me.useRef)(null),o=Fe(h),[l,C]=(0,Me.useState)(null),g=Pr(_e(u.graph,u.schema,e).filter(k=>k.kind===a.rows||k.kind===a.columns).filter(k=>b===void 0||a.rows===a.columns||k.kind!==a.rows||b.has(k.id)),u.graph.allEdges(),a,i),S=n==="full"?fa(g,c!==void 0?{rows:c,columns:c}:{}):g,A=typeof a.link=="string"?a.link:void 0,L=b!==void 0&&g.cells.length===0&&g.columns.length>0&&(A===void 0||u.graph.allEdges().some(k=>k.kind===A))?void 0:wt(u.schema,a,{rows:g.rows.length,columns:g.columns.length,cells:g.cells.length});if(n==="glyph")return(0,F.jsx)(ke,{label:`${t??"Coverage"} \xB7 ${L?"nothing linked":S.gaps.length===0?"complete":`${S.gaps.length} missing`}`,hue:be("coverage")});if(L)return(0,F.jsx)(me,{title:t??"Coverage",tone:"muted",fit:!0,...r==="fullscreen"?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},children:(0,F.jsx)("p",{"data-coverage-unlinked":"",style:{margin:0,color:"var(--graview-ink-muted)"},children:L})});if(n==="summary"){let k=S.rows.filter(_=>S.gaps.includes(_.id));return(0,F.jsxs)(me,{title:t??"Coverage",meta:`${S.rows.length-S.gaps.length}/${S.rows.length}`,tone:S.gaps.length>0?"warning":"muted",fit:!0,children:[(0,F.jsx)(Oa,{grid:S}),k.length>0?(0,F.jsx)(ze,{pick:!0,max:4,items:k.map(_=>({id:_.id,label:_.ref||_.label}))}):null]})}let T=new Set(s),v=new Set(p),O=l!==null&&l.every(k=>T.has(k))?l:null,m=r==="fullscreen",E=wa(S.columns.map(k=>k.label)),D=o===null?Rr:Math.max(96,Math.min(Rr,Math.round(o*.36))),G=o!==null&&(o<420||D+S.columns.length*28+Er>o);return(0,F.jsx)(me,{title:t??"Coverage",...m?{style:{flex:"1 1 auto",minHeight:0,height:"100%"}}:{},meta:S.rows.length===0||S.columns.length===0?void 0:S.gaps.length===0&&S.unasked.length===0?"complete":[S.gaps.length>0?va(S.gaps.length,a,u.schema):"",S.unasked.length>0?ba(S.unasked.length,a,u.schema):""].filter(Boolean).join(" \xB7 "),selected:!1,fit:!0,children:(0,F.jsxs)("div",{ref:h,"data-coverage-shape":G?"stacked":"matrix",onClick:k=>C(Lr(k.target)),onKeyDown:k=>{(k.key==="Enter"||k.key===" ")&&C(Lr(k.target))},style:{position:"relative",display:"flex",flexDirection:"column",flex:"1 1 auto",minHeight:0,paddingRight:G?0:Er},children:[G?null:(0,F.jsxs)("div",{style:{display:"flex",alignItems:"flex-end",flex:"0 0 auto",position:"sticky",top:0,zIndex:Te.over,background:"var(--graview-panel)",paddingTop:6},children:[(0,F.jsx)("div",{ref:w.corner,style:{width:D,flex:"0 0 auto",alignSelf:"stretch",position:"sticky",left:0,zIndex:Te.raised,background:"var(--graview-panel)"}}),(0,F.jsx)("div",{ref:w.heads,style:{display:"flex",flex:1,minWidth:0,height:E},children:S.columns.map(k=>(0,F.jsx)("div",{"data-graview-pick":k.id,"data-graview-emphasis":T.size===0?"plain":T.has(k.id)?"lit":"dimmed",title:k.label,"data-graview-column":k.id,style:{flex:1,minWidth:28,boxSizing:"border-box",borderLeft:"1px solid transparent",pointerEvents:"none",position:"relative",display:"flex",alignItems:"flex-end",justifyContent:"center"},children:(0,F.jsxs)("span",{style:{position:"absolute",bottom:3,padding:"3px 0",pointerEvents:"auto",cursor:"pointer",left:"50%",visibility:w.hidden.has(k.id)?"hidden":"visible",transformOrigin:"left bottom",transform:`rotate(-${Zn}deg)`,whiteSpace:"nowrap",maxWidth:et,overflow:"hidden",textOverflow:"ellipsis",fontSize:"0.75rem",letterSpacing:"0.005em",color:k.used?T.size>0&&!T.has(k.id)?"var(--graview-ink-faint)":"var(--graview-ink)":"var(--graview-warn)"},children:[k.used?"":"\u26A0 ",k.label]})},k.id))})]}),S.of?(0,F.jsxs)("p",{"data-testid":"coverage-more",style:{margin:"4px 0 6px",fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[[S.of.rows>S.rows.length?`the ${S.rows.length} most connected of ${S.of.rows} ${Mr(u.schema,a.rows)}`:null,S.of.columns>S.columns.length?`${S.columns.length} of ${S.of.columns} ${Mr(u.schema,a.columns)} across`:null].filter(Boolean).join(" \xB7 ").replace(/^./,k=>k.toUpperCase())," ","\u2014 what is missing is still counted over all of them."]}):null,(0,F.jsx)("div",{children:S.rows.map((k,_)=>{let W=S.rows[_-1],le=W===void 0||W.group!==k.group,ee=k.required&&!k.covered,ie=T.size>0&&!T.has(k.id);return(0,F.jsxs)("div",{children:[le&&k.group?(0,F.jsx)("div",{style:{fontSize:"0.6875rem",letterSpacing:"0.16em",textTransform:"uppercase",color:"var(--graview-ink-faint)",padding:"9px 0 3px"},children:(0,F.jsx)("span",{style:{position:"sticky",left:0,display:"inline-block",paddingRight:8,background:"var(--graview-panel)"},children:k.group})}):null,(0,F.jsxs)("div",{style:{display:"flex",flexDirection:G?"column":"row",alignItems:"stretch",borderTop:"1px solid var(--graview-edge)",opacity:ie?.72:1},children:[(0,F.jsxs)("div",{"data-graview-pick":k.id,"data-graview-emphasis":T.size===0?"plain":ie?"dimmed":"lit",title:k.label,style:{width:G?"auto":D,flex:"0 0 auto",position:G?"static":"sticky",left:0,zIndex:Te.raised,background:"var(--graview-panel)",display:"flex",alignItems:"center",gap:7,padding:"6px 10px 6px 0",boxSizing:"border-box",fontSize:"0.8125rem",minWidth:0,color:ee||v.has(k.id)?"var(--graview-warn)":"var(--graview-ink)"},children:[k.ref?(0,F.jsx)("span",{style:{flex:"0 0 auto",fontVariantNumeric:"tabular-nums",color:"var(--graview-ink-faint)"},children:k.ref}):null,(0,F.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k.label}),a.badge?(0,F.jsx)("span",{title:k.badged?a.badge.title:a.badge.missingTitle,style:{marginLeft:"auto",flex:"0 0 auto",fontSize:"0.75rem",color:k.badged?"var(--graview-ink-faint)":"var(--graview-warn)"},children:k.badged?a.badge.symbol:"\u25CB"}):null]}),(0,F.jsx)("div",{style:{display:"flex",flex:1,minWidth:0,...G?{flexWrap:"wrap",gap:6,padding:"0 0 8px"}:{}},children:S.columns.map(N=>{let U=S.cells.find(B=>B.rowId===k.id&&B.columnId===N.id),de=U!==void 0;return(0,F.jsxs)("div",{"data-graview-mark":"",...de?{"data-graview-pick":N.id,"data-graview-emphasis":T.size===0?"plain":T.has(N.id)&&T.has(k.id)?"lit":"dimmed","data-graview-joins":JSON.stringify(Sa(U))}:{},title:de?`${N.label} answers ${k.ref||k.label}`:`${N.label} does not answer ${k.ref||k.label}`,style:G?{flex:"0 0 auto",minHeight:24,boxSizing:"border-box",display:"inline-flex",alignItems:"center",gap:6,padding:"2px 9px 2px 7px",borderRadius:6,border:"1px solid var(--graview-edge)",fontSize:"0.75rem",color:de?"var(--graview-ink)":"var(--graview-ink-faint)"}:{flex:1,minWidth:28,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",borderLeft:"1px solid var(--graview-edge)"},children:[(0,F.jsx)("span",{style:$a(de,ee,T.has(N.id)&&T.has(k.id),T.size>0)}),G?(0,F.jsx)("span",{children:N.label}):null]},N.id)})})]})]},k.id)})}),O?(0,F.jsx)(Ca,{box:h,joins:O,shape:`${G?"stacked":"matrix"} ${o??""}`}):null]})})}var Sa=e=>[e.rowId,e.columnId,...e.via??[]];function Lr(e){let t=e?.closest?.("[data-graview-joins]")?.getAttribute("data-graview-joins");if(!t)return null;try{let n=JSON.parse(t);return Array.isArray(n)&&n.every(r=>typeof r=="string")?n:null}catch{return null}}var On=(e,t,n)=>Math.min(n,Math.max(t,e));function ka(e){let t=e.getBoundingClientRect(),n=typeof document.createRange=="function"?document.createRange():null;n?.selectNodeContents(e);let r=typeof n?.getBoundingClientRect=="function"?n.getBoundingClientRect():null;return r&&r.width>0&&r.height>0?r:t}function Ca({box:e,joins:t,shape:n}){let[r,a]=(0,Me.useState)([]),i=JSON.stringify(t);return(0,Me.useLayoutEffect)(()=>{let s=e.current;if(!s||typeof window>"u")return;let p=()=>{let u=s.getBoundingClientRect(),w=s.offsetWidth>0&&u.width>0?u.width/s.offsetWidth:1,h=[...s.querySelectorAll("[data-graview-joins]")].find(C=>C.getAttribute("data-graview-joins")===i);if(!h){a([]);return}let o=h.getBoundingClientRect(),l=[];for(let C of JSON.parse(i)){let g=[...s.querySelectorAll("[data-graview-pick]")].find(O=>O.getAttribute("data-graview-pick")===C&&!O.closest("[data-graview-mark]"));if(!g)continue;let S=ka(g),A=On(o.left+o.width/2,S.left,S.right),L=On(o.top+o.height/2,S.top,S.bottom),T=On(A,o.left,o.right),v=On(L,o.top,o.bottom);l.push({id:C,x1:(T-u.left)/w,y1:(v-u.top)/w,x2:(A-u.left)/w,y2:(L-u.top)/w})}a(l)};p();let c=0,b=()=>{c===0&&(c=requestAnimationFrame(()=>{c=0,p()}))};return document.addEventListener("scroll",b,{capture:!0,passive:!0}),window.addEventListener("resize",b,{passive:!0}),()=>{document.removeEventListener("scroll",b,{capture:!0}),window.removeEventListener("resize",b),c!==0&&cancelAnimationFrame(c)}},[e,i,n]),(0,F.jsx)("svg",{"aria-hidden":"true","data-coverage-join":i,style:{position:"absolute",left:0,top:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none",zIndex:Te.over},children:r.map(s=>(0,F.jsxs)("g",{"data-coverage-join-to":s.id,children:[(0,F.jsx)("line",{x1:s.x1,y1:s.y1,x2:s.x2,y2:s.y2,stroke:"var(--graview-accent)",strokeWidth:1.6,strokeLinecap:"round"}),(0,F.jsx)("circle",{cx:s.x2,cy:s.y2,r:2.6,fill:"var(--graview-accent)"})]},s.id))})}function $a(e,t,n,r){return e?{width:13,height:13,borderRadius:4,background:n||!r?"var(--graview-accent)":"var(--graview-accent-dim)",boxShadow:n&&r?"0 0 12px -2px var(--graview-accent)":void 0}:{width:5,height:5,borderRadius:1,background:t?"var(--graview-warn)":"var(--graview-edge)",opacity:t?.5:1}}function Oa({grid:e}){let t=e.rows.filter(a=>a.required),n=t.filter(a=>a.covered).length,r=t.length===0?1:n/t.length;return(0,F.jsx)("div",{role:"img","aria-label":`${n} of ${t.length} covered`,style:{height:6,borderRadius:999,overflow:"hidden",background:"var(--graview-edge)"},children:(0,F.jsx)("div",{style:{width:`${Math.round(r*100)}%`,height:"100%",background:r===1?"var(--graview-accent)":"var(--graview-warn)"}})})}function Nr(e){function t(n){let{store:r}=oe(),a=_e(r.graph,r.schema,n.nodes).filter(c=>c.kind===e.rows),{arranged:i,bar:s}=Ne(n,{lensAllows:{sort:!1,group:!1},subject:a,kind:e.rows,...e.search?{search:e.search}:{},...e.filters?{filters:e.filters}:{}}),p=(0,F.jsx)(xa,{schema:r.schema,...n,options:e,...s?{rowsKept:new Set(i.nodes.map(c=>c.id))}:{}});return s?(0,F.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,p]}):p}return{name:"coverage",requiredRoles:[...ga],options:e,View:t,build(n,r,a){return Pr(n,r,e,a)}}}function Aa(){let e=(0,Me.useRef)(null),t=(0,Me.useRef)(null),[n,r]=(0,Me.useState)(new Set);return(0,Me.useEffect)(()=>{let a=t.current;if(!a||typeof window>"u")return;let i=a.parentElement;for(;i&&!/(auto|scroll)/.test(getComputedStyle(i).overflowX);)i=i.parentElement;if(!i)return;let s=0,p=()=>{s=0;let b=e.current?.getBoundingClientRect().right??0,u=new Set;for(let w of a.querySelectorAll("[data-graview-column]")){let h=w.getBoundingClientRect();h.left+h.width/2<b&&u.add(w.dataset.graviewColumn)}r(w=>w.size===u.size&&[...u].every(h=>w.has(h))?w:u)},c=()=>{s===0&&(s=requestAnimationFrame(p))};return p(),i.addEventListener("scroll",c,{passive:!0}),()=>{i.removeEventListener("scroll",c),s!==0&&cancelAnimationFrame(s)}},[]),{corner:e,heads:t,hidden:n}}var zr=["regions","outline"],Je=class extends Error{constructor(n,r){super(`${n}
|
|
32
32
|
${r}`);this.hint=r;this.name="PlanBindingError"}},An='Check the lens bindings: { regions: "<kind>", outline: "<field>", markers?: "<kind>", at?: "<field>", within?: "<edge>" }',Dr=e=>typeof e=="object"&&e!==null&&typeof e.x=="number"&&typeof e.y=="number";function Rn(e,t,n,r){let a=g=>g,i=g=>r?xe(r.tryDefinition(g.kind),g):String(a(g).label??g.id);if(r&&r.tryDefinition(n.regions)===void 0)throw new Je(`No kind is declared for "${n.regions}".`,An);if(n.markers&&r&&r.tryDefinition(n.markers)===void 0)throw new Je(`No kind is declared for "${n.markers}".`,An);let s=e.filter(g=>g.kind===n.regions);if(!r&&s.length===0)throw new Je(`Nothing to draw: no "${n.regions}" nodes.`,An);let c=r?.tryDefinition(n.regions)?.fields?.shape;if(c!==void 0&&!(n.outline in c))throw new Je(`"${n.regions}" has no field called "${n.outline}".`,An);let b=(()=>{let g=new Map;if(n.nests)for(let S of t)S.kind===n.nests&&g.set(S.from,S.to);return S=>{let A=0,L=g.get(S),T=new Set([S]);for(;L!==void 0&&!T.has(L)&&A<s.length;)T.add(L),A+=1,L=g.get(L);return A}})(),u=n.markers?e.filter(g=>g.kind===n.markers):[],w=new Map;if(n.within)for(let g of t)g.kind===n.within&&w.set(g.from,g.to);let h=[],o=new Map;for(let g of u){let S=n.at===void 0?void 0:a(g)[n.at],A=w.get(g.id);if(!Dr(S)||A===void 0){h.push({id:g.id,label:i(g)});continue}let L=n.markerKind===void 0?void 0:a(g)[n.markerKind],T=o.get(A)??[];T.push({id:g.id,label:i(g),at:S,...typeof L=="string"?{what:L}:{}}),o.set(A,T)}let l=[],C=[];for(let g of s){let S=a(g)[n.outline];if(!Array.isArray(S)||S.length<3||!S.every(Dr)){l.push({id:g.id,label:i(g)});continue}let A=n.regionKind===void 0?void 0:a(g)[n.regionKind];C.push({id:g.id,label:i(g),outline:S,center:Bt(S),depth:b(g.id),markers:o.get(g.id)??[],...typeof A=="string"?{what:A}:{}})}return C.sort((g,S)=>g.depth-S.depth),{regions:C,undrawn:l,strays:h}}var He=q(Ee(),1);var I=q(te(),1);function Ir({map:e,options:t,implicated:n,flagged:r}){return(0,I.jsxs)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:".25rem"},children:[e.regions.map(a=>{let i=En(a.id,n,r);return(0,I.jsxs)("li",{"data-graview-pick":a.id,...i?{"data-graview-emphasis":i}:{},style:{display:"flex",flexWrap:"wrap",gap:".5rem",justifyContent:"space-between",minWidth:0,padding:".25rem .4rem",borderRadius:".35rem",background:i==="flagged"?tt(a.what,i,t.hues):void 0},children:[(0,I.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,I.jsxs)("span",{style:{opacity:.7,whiteSpace:"nowrap"},children:[a.what?`${a.what} \xB7 `:"",a.markers.length]})]},a.id)}),e.undrawn.map(a=>(0,I.jsxs)("li",{"data-graview-pick":a.id,style:{display:"flex",gap:".5rem",opacity:.7,padding:".25rem .4rem"},children:[(0,I.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:a.label}),(0,I.jsx)("span",{style:{whiteSpace:"nowrap"},children:t.undrawnLabel??"not drawn"})]},a.id))]})}var nt=1e3,Br=.022,sn={minHeight:"1.9rem",padding:".25rem .65rem",borderRadius:".35rem",border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",font:"inherit",fontSize:"0.9375rem",cursor:"pointer"},En=(e,t,n)=>{if(n?.includes(e))return"flagged";if(t?.includes(e))return"implicated"},Mn=(e,t)=>(e===void 0?void 0:t?.[e])??be(e??"region"),tt=(e,t,n)=>t==="flagged"?"color-mix(in oklab, var(--graview-warn) 26%, var(--graview-panel))":`color-mix(in oklab, hsl(${Mn(e,n)} 52% 48%) 24%, var(--graview-panel))`,Wr=(e,t,n)=>t==="flagged"?"var(--graview-warn)":`color-mix(in oklab, hsl(${Mn(e,n)} 48% 42%) 78%, var(--graview-ink))`;function Ra(e){let t=e.currentTarget.getBoundingClientRect(),n=r=>Math.round(Math.max(0,Math.min(1,r))*1e3)/1e3;return{x:n(t.width===0?0:(e.clientX-t.left)/t.width),y:n(t.height===0?0:(e.clientY-t.top)/t.height)}}function Hr({schema:e,options:t,nodes:n,label:r,fidelity:a,selected:i,implicated:s,flagged:p}){let{store:c}=oe(),b=c.graph.allEdges(),u=c.graph.allNodes(),w=n===void 0?void 0:new Set(n.map(f=>f.id)),h=w===void 0?u:u.filter(f=>f.kind!==t.regions||w.has(f.id)),o=Rn(h,b,t,e),l=o.regions.length,C=o.regions.reduce((f,$)=>f+$.markers.length,0);if(a==="glyph")return(0,I.jsx)(ke,{label:`${r??"Ground"} \xB7 ${l}`,...o.undrawn.length>0?{meta:`+${o.undrawn.length} undrawn`}:{},selected:i});if(a==="summary")return(0,I.jsx)(me,{title:r??"The plan",subtitle:`${l} drawn \xB7 ${C} standing in them`,children:(0,I.jsx)(Ir,{map:o,options:t,...s?{implicated:s}:{},...p?{flagged:p}:{}})});let g=(0,He.useMemo)(()=>{let f=1/0,$=1/0,P=-1/0,ne=-1/0,H=J=>{J.x<f&&(f=J.x),J.x>P&&(P=J.x),J.y<$&&($=J.y),J.y>ne&&(ne=J.y)};for(let J of o.regions){for(let Y of J.outline)H(Y);for(let Y of J.markers)H(Y.at)}if(!Number.isFinite(f)||P-f<=0||ne-$<=0)return{x0:0,y0:0,x1:1,y1:1};let K=Math.max(P-f,ne-$)*.04;return{x0:f-K,y0:$-K,x1:P+K,y1:ne+K}},[o.regions]),S=(g.x1-g.x0)/(g.y1-g.y0),A=t.aspect??Math.min(3.2,Math.max(.55,S)),L=Math.round(nt/(g.x1-g.x0)),T=Math.round(L*(g.x1-g.x0)),v=Math.round(T/A),O={x:g.x0*L,y:g.y0*L-(v-L*(g.y1-g.y0))/2,w:T,h:v},m=L,E=O.w,D=(s?.length??0)>0||(p?.length??0)>0,G=(0,He.useRef)(null),{touchable:k,legible:_}=Et(G,{units:O.w,target:E*Br*2}),W=Wn("--graview-font-display","serif"),le=Wn("--graview-font-body","sans-serif"),{named:ee,placed:ie,tagged:N}=(0,He.useMemo)(()=>{let f=[],$=E*.012,P=nt*.004,ne=(pe,X)=>!f.some(he=>he!==X&&Ht({x0:pe.x0-P,y0:pe.y0-P,x1:pe.x1+P,y1:pe.y1+P},he)),H=[...o.regions].sort((pe,X)=>Vn(X.outline)-Vn(pe.outline)),K=new Map,J=new Map;for(let pe of H){let X=It(pe.outline),he=Math.max(0,(X.bottom-X.top)*m*.55),Ce=null;for(let $e of[.12,.26,.42,.6,.78]){let V=X.top+$e*(X.bottom-X.top),ge=Hn(pe.outline,V),Se=Math.max(0,(ge.x1-ge.x0)*L-$*2),ce=Wt(pe.label,{room:Se,height:he,size:E*.023,floor:E*.015,measure:W});if(ce===null)continue;let ve=Math.max(...ce.lines.map(Jr=>W(Jr,ce.fontSize))),Oe=ce.lines.length*ce.fontSize*1.15,at=X.top*m+$+Oe/2,it=X.bottom*m-$-Oe/2,dn=it<at?(X.top+X.bottom)*m/2:Math.min(Math.max(V*m,at),it),Ln=Hn(pe.outline,dn/m),Pn=Ln.x0*L+$;if(ve>(Ln.x1-Ln.x0)*L-$*2)continue;let ot={x0:Pn,y0:dn-Oe/2,x1:Pn+ve,y1:dn+Oe/2};if(ne(ot)){f.push(ot),Ce={fitted:ce,x:Pn,y:dn};break}}K.set(pe.id,Ce?.fitted??null),Ce!==null&&J.set(pe.id,{x:Ce.x,y:Ce.y})}let Y=E*.018,ue=new Map,Q=E*.011+E*.004,Ve=new Map;for(let pe of o.regions)for(let X of pe.markers){let he={x0:X.at.x*L-Q,y0:X.at.y*m-Q,x1:X.at.x*L+Q,y1:X.at.y*m+Q};Ve.set(X.id,he),f.push(he)}for(let pe of k?o.regions:[])for(let X of pe.markers){let he=E*.018,Ce=le(X.label,Y),$e=X.at.x*L,V=X.at.y*m,ge=Y*1.15,Se=[{x:$e+he,y:V,anchor:"start"},{x:$e-he,y:V,anchor:"end"},{x:$e+he*.7,y:V-ge,anchor:"start"},{x:$e-he*.7,y:V-ge,anchor:"end"},{x:$e+he*.7,y:V+ge,anchor:"start"},{x:$e-he*.7,y:V+ge,anchor:"end"},{x:$e,y:V-ge*1.1,anchor:"start"},{x:$e,y:V+ge*1.1,anchor:"start"}];for(let ce of Se){let ve=ce.anchor==="start"?ce.x:ce.x-Ce,Oe={x0:ve,y0:ce.y-Y*.62,x1:ve+Ce,y1:ce.y+Y*.62};if(!(ve<O.x+4||ve+Ce>O.x+O.w-4)&&!(Oe.y0<O.y+2||Oe.y1>O.y+O.h-2)&&ne(Oe,Ve.get(X.id))){f.push(Oe),ue.set(X.id,{at:{x:ce.x,y:ce.y},anchor:ce.anchor,size:Y});break}}}return{named:K,placed:J,tagged:ue}},[o.regions,nt,m,k,W,le]),U=(0,He.useMemo)(()=>{let f=[];for(let $ of o.regions)(ee.get($.id)?.whole??!1)===!1&&f.push({id:$.id,label:$.label,what:$.what,round:!1});for(let $ of o.regions)for(let P of $.markers)(!k||!N.has(P.id))&&f.push({id:P.id,label:P.label,what:P.what,round:!0});return f},[o.regions,ee,N,k]),{principal:de}=oe(),[B,we]=(0,He.useState)(null),M=t.draw!==void 0,d=t.place!==void 0,y=f=>{if(B===null)return;f.stopPropagation();let $=Ra(f);if(B.kind==="marker"){c.apply({name:t.place.act,args:{[t.place.id]:B.id,[t.place.at]:$}},{author:de,intent:`Placed ${B.label} on the map`}),we(null);return}we({...B,corners:[...B.corners,$]})},x=()=>{B===null||B.kind!=="region"||B.corners.length<3||(c.apply({name:t.draw.act,args:{[t.draw.id]:B.id,[t.draw.outline]:B.corners}},{author:de,intent:`Drew ${B.label} on the map \u2014 ${B.corners.length} corners`}),we(null))},R=B===null?o.regions.length===0?"Nothing drawn yet. Choose an area below, then click its corners here.":null:B.kind==="marker"?`Click where ${B.label} stands.`:B.corners.length<3?`Click the corners of ${B.label} \u2014 ${3-B.corners.length} more to make an area.`:`${B.corners.length} corners. Keep clicking, or press Done.`;return _?(0,I.jsxs)(me,{title:r??"The plan",subtitle:`${l} drawn \xB7 ${C} standing in them`,...o.undrawn.length>0?{meta:`${o.undrawn.length} ${t.undrawnLabel??"not drawn yet"}`}:{},selected:i,fit:!0,children:[(0,I.jsx)("div",{style:{position:"relative",width:"100%",aspectRatio:`${O.w} / ${O.h}`,overflow:"hidden"},children:(0,I.jsxs)("svg",{ref:G,viewBox:`${O.x} ${O.y} ${O.w} ${O.h}`,width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",role:B!==null?"application":k?"group":"img","aria-label":B===null?`${r??"The plan"}: ${l} drawn, ${C} standing in them`:R??"Drawing",onClick:y,"data-testid":"plan-canvas",style:{display:"block",position:"absolute",inset:0,cursor:B===null?void 0:"crosshair",border:"1px dashed color-mix(in oklab, var(--graview-edge) 80%, transparent)",borderRadius:".4rem",backgroundImage:"linear-gradient(color-mix(in oklab, var(--graview-edge) 35%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in oklab, var(--graview-edge) 35%, transparent) 1px, transparent 1px)",backgroundSize:"10% 10%"},children:[(0,I.jsx)("text",{x:O.x+O.w-E*.028,y:O.y+E*.034,fontSize:E*.022,textAnchor:"middle",fill:"var(--graview-ink)",opacity:.55,children:"N"}),R!==null&&o.regions.length===0?(0,I.jsx)("text",{x:O.x+O.w/2,y:O.y+O.h/2,textAnchor:"middle",dominantBaseline:"middle",fontSize:E*.026,fill:"var(--graview-ink)",opacity:.7,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:R}):null,B!==null&&B.kind==="region"&&B.corners.length>0?(0,I.jsxs)("g",{style:{pointerEvents:"none"},children:[(0,I.jsx)("polyline",{points:B.corners.map(f=>`${f.x*L},${f.y*m}`).join(" "),fill:B.corners.length>=3?"color-mix(in oklab, var(--graview-accent) 22%, transparent)":"none",stroke:"var(--graview-accent)",strokeWidth:3,strokeDasharray:"8 6"}),B.corners.map((f,$)=>(0,I.jsx)("circle",{cx:f.x*L,cy:f.y*m,r:E*.008,fill:"var(--graview-accent)"},$))]}):null,o.regions.map(f=>{let $=En(f.id,s,p),P=D&&$===void 0?.34:1,ne=f.outline.map(H=>`${H.x*L},${H.y*m}`).join(" ");return(0,I.jsx)("g",{"data-graview-pick":f.id,...$?{"data-graview-emphasis":$}:{},role:"button","aria-label":`${f.label}${f.what?`, ${f.what}`:""}, ${f.markers.length} standing in it`,style:{opacity:P,cursor:"pointer"},children:(0,I.jsx)("polygon",{points:ne,fill:tt(f.what,$,t.hues),stroke:Wr(f.what,$,t.hues),strokeWidth:$==="flagged"?5:2.5,strokeLinejoin:"round"})},f.id)}),o.regions.flatMap(f=>f.markers.map($=>{let P=En($.id,s,p),ne=D&&P===void 0?.34:1;return(0,I.jsxs)("g",{...k?{"data-graview-pick":$.id,role:"button","aria-label":`${$.label}${$.what?`, ${$.what}`:""}, in ${f.label}`}:{"aria-hidden":!0},...P?{"data-graview-emphasis":P}:{},style:{opacity:ne,cursor:k?"pointer":"default"},children:[k?(0,I.jsx)("circle",{cx:$.at.x*L,cy:$.at.y*m,r:E*Br,fill:"transparent"}):null,(0,I.jsx)("circle",{cx:$.at.x*L,cy:$.at.y*m,r:E*.011,fill:P==="flagged"?"var(--graview-warn)":`hsl(${Mn($.what,t.hues)} 55% 45%)`,stroke:"var(--graview-panel)",strokeWidth:E*.004}),N.has($.id)?(0,I.jsx)("text",{x:N.get($.id).at.x,y:N.get($.id).at.y,textAnchor:N.get($.id).anchor,dominantBaseline:"middle",fontSize:N.get($.id).size,fill:"var(--graview-ink)",stroke:"var(--graview-panel)",strokeWidth:Math.max(2,N.get($.id).size*.3),paintOrder:"stroke","data-testid":`marker-label-${$.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-body)"},children:$.label}):null]},$.id)})),o.regions.map(f=>{let $=ee.get(f.id),P=ie.get(f.id);if(!$||P===void 0)return null;let ne=En(f.id,s,p);return(0,I.jsx)("text",{x:P.x,y:P.y-($.lines.length-1)*$.fontSize*1.15/2,textAnchor:"start",dominantBaseline:"middle",fontSize:$.fontSize,fill:"var(--graview-ink)",opacity:D&&ne===void 0?.34:1,stroke:"var(--graview-panel)",strokeWidth:Math.max(2,$.fontSize*.26),paintOrder:"stroke","data-testid":`region-label-${f.id}`,style:{pointerEvents:"none",fontFamily:"var(--graview-font-display)"},children:$.lines.map((H,K)=>(0,I.jsx)("tspan",{x:P.x,dy:K===0?0:$.fontSize*1.15,children:H},H+String(K)))},`label-${f.id}`)})]})}),U.length>0?(0,I.jsx)("ul",{"data-testid":"map-key",style:{margin:".5rem 0 0",padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:".2rem .75rem",fontSize:"0.875rem"},children:U.map(f=>(0,I.jsxs)("li",{"data-graview-pick":f.id,style:{display:"flex",alignItems:"center",gap:".35rem",minWidth:0,minHeight:"max(1.5rem, 24px)",padding:"0 .15rem",cursor:"pointer"},children:[(0,I.jsx)("span",{"aria-hidden":"true",style:{width:f.round?".55rem":".7rem",height:f.round?".55rem":".7rem",flex:"0 0 auto",borderRadius:f.round?"50%":".15rem",background:f.round?`hsl(${Mn(f.what,t.hues)} 55% 45%)`:tt(f.what,void 0,t.hues),border:f.round?void 0:`1px solid ${Wr(f.what,void 0,t.hues)}`}}),(0,I.jsx)("span",{style:{minWidth:0,overflowWrap:"anywhere"},children:f.label})]},f.id))}):null,B!==null?(0,I.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".5rem",marginTop:".5rem",alignItems:"center"},children:[o.regions.length>0&&R!==null?(0,I.jsx)("span",{style:{fontSize:"0.9375rem",opacity:.8,flexBasis:"100%"},"aria-live":"polite",children:R}):null,B.kind==="region"?(0,I.jsxs)("button",{type:"button",onClick:x,disabled:B.corners.length<3,"data-testid":"draw-done",style:{...sn,background:"var(--graview-accent)",color:"var(--graview-accent-ink)",borderColor:"transparent"},children:["Done \u2014 keep ",B.label]}):null,B.kind==="region"&&B.corners.length>0?(0,I.jsx)("button",{type:"button",onClick:()=>we({...B,corners:B.corners.slice(0,-1)}),style:sn,children:"Undo a corner"}):null,(0,I.jsx)("button",{type:"button",onClick:()=>we(null),style:sn,"data-testid":"draw-cancel",children:"Stop"})]}):(0,I.jsxs)(I.Fragment,{children:[M&&o.undrawn.length>0?(0,I.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,I.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.undrawnLabel??"Not drawn yet",":"]}),o.undrawn.map(f=>(0,I.jsxs)("button",{type:"button",style:sn,onClick:()=>we({kind:"region",id:f.id,label:f.label,corners:[]}),"data-testid":`draw-${f.id}`,children:["Draw ",f.label]},f.id))]}):null,d&&o.strays.length>0?(0,I.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:".4rem",marginTop:".5rem",alignItems:"center"},children:[(0,I.jsxs)("span",{style:{fontSize:"0.875rem",opacity:.75},children:[t.strayLabel??"Not placed",":"]}),o.strays.map(f=>(0,I.jsxs)("button",{type:"button",style:sn,onClick:()=>we({kind:"marker",id:f.id,label:f.label}),"data-testid":`place-${f.id}`,children:["Place ",f.label]},f.id))]}):null,t.help!==void 0&&(o.undrawn.length>0||o.strays.length>0)?(0,I.jsx)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem"},children:(0,I.jsx)("a",{href:t.help.href,"data-testid":"map-help",children:t.help.label})}):null,!M&&(o.undrawn.length>0||o.strays.length>0)?(0,I.jsxs)("p",{style:{margin:".5rem 0 0",fontSize:"0.875rem",opacity:.75},children:[o.undrawn.map(f=>f.label).join(", "),o.undrawn.length>0?` \u2014 ${t.undrawnLabel??"not drawn yet"}. `:"",o.strays.map(f=>f.label).join(", "),o.strays.length>0?` \u2014 ${t.strayLabel??"not placed"}.`:""]}):null]})]}):(0,I.jsx)(me,{title:r??"The plan",subtitle:`${l} drawn \xB7 ${C} standing in them`,selected:i,children:(0,I.jsx)(Ir,{map:o,options:t,...s?{implicated:s}:{},...p?{flagged:p}:{}})})}var Gr=q(te(),1);function Vr(e){function t(n){let{store:r}=oe();return(0,Gr.jsx)(Hr,{schema:r.schema,...n,options:e})}return{name:"plan",requiredRoles:[...zr],options:e,View:t,build(n,r,a){return Rn(n,r,e,a)}}}var fe=q(te(),1);function Ea(e,t,n){let r=t.flatMap(i=>(i.subject&&i.subject.kinds!=="*"?i.subject.kinds:[null]).map(p=>({name:i.name,title:i.title??i.name,kind:p}))),a=[];for(let i of n){let s={kind:"human",id:"themselves",roles:[i]};for(let p of r){let c=p.kind??void 0,b=Dn(e,s,p.name,c).ok,u=!b&&Dn(e,s,p.name,c,void 0,"themselves").ok;a.push({role:i,act:p.name,kind:p.kind,may:b?"yes":u?"self":"no"})}}return{roles:n,acts:r,cells:a}}function Ma({label:e,fidelity:t,mode:n}){let{store:r}=oe(),a=r.policy,i=a?.roles??[],s=r.allMutations().filter(w=>!w.derived).map(w=>({name:w.name,...w.title?{title:w.title}:{},...w.subject?{subject:w.subject}:{}})),p=Ea(a,s,i),c=e??"Who may do what";if(!a||i.length===0)return(0,fe.jsxs)("div",{"data-testid":"reach-lens",style:{padding:14,color:"var(--graview-ink-muted)",fontSize:"0.875rem"},children:[c,": this installation has no policy, so everyone may do everything."]});if(t==="glyph")return(0,fe.jsx)(ke,{label:`${c} \xB7 ${i.length} ${i.length===1?"role":"roles"}`,hue:be("role")});let b=n==="fullscreen",u=w=>w==="yes"?"\u25CF":w==="self"?"\u25D0":"\xB7";return(0,fe.jsxs)("div",{"data-testid":"reach-lens",style:{display:"grid",gap:10,padding:b?0:14,borderRadius:"var(--graview-radius, 12px)",background:b?"transparent":"var(--graview-panel)",border:b?"none":"1px solid var(--graview-edge)",color:"var(--graview-ink)",minWidth:0},children:[(0,fe.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:10},children:[(0,fe.jsx)("span",{style:{fontFamily:"var(--graview-font-display)",fontSize:"1.125rem",fontWeight:600},children:c}),(0,fe.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:"\u25CF may \xB7 \u25D0 on their own record \xB7 read from the policy"})]}),(0,fe.jsx)("div",{"data-scroller":!0,style:{overflowX:"auto"},children:(0,fe.jsxs)("table",{style:{borderCollapse:"collapse",fontSize:"0.875rem",minWidth:"100%"},children:[(0,fe.jsx)("thead",{children:(0,fe.jsxs)("tr",{children:[(0,fe.jsx)("th",{scope:"col",style:{textAlign:"left",padding:"4px 10px 6px 0",fontWeight:500,color:"var(--graview-ink-faint)",fontSize:"0.75rem",letterSpacing:"0.12em",textTransform:"uppercase"},children:"Role"}),p.acts.map(w=>(0,fe.jsxs)("th",{scope:"col",title:w.kind?`${w.title}, on ${gt(mn(r.schema.tryDefinition(w.kind),w.kind))}`:w.title,style:{textAlign:"left",padding:"4px 10px 6px",fontWeight:500,whiteSpace:"nowrap",color:"var(--graview-ink-muted)",fontSize:"0.8125rem"},children:[w.title,w.kind?(0,fe.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",w.kind]}):null]},`${w.name}|${w.kind??""}`))]})}),(0,fe.jsx)("tbody",{children:p.roles.map(w=>(0,fe.jsxs)("tr",{children:[(0,fe.jsx)("th",{scope:"row",style:{textAlign:"left",padding:"6px 10px 6px 0",fontWeight:600,whiteSpace:"nowrap",borderTop:"1px solid var(--graview-edge)"},children:w}),p.acts.map(h=>{let o=p.cells.find(l=>l.role===w&&l.act===h.name&&l.kind===h.kind);return(0,fe.jsx)("td",{"data-graview-reach":o.may,title:`${w} ${o.may==="yes"?"may":o.may==="self"?"may, on their own record,":"may not"} ${h.title.toLowerCase()}`,style:{padding:"6px 10px",textAlign:"center",borderTop:"1px solid var(--graview-edge)",color:o.may==="no"?"var(--graview-ink-faint)":"var(--graview-accent)",fontSize:o.may==="no"?"0.875rem":"0.8125rem"},children:u(o.may)},`${h.name}|${h.kind??""}`)})]},w))})]})})]})}var jr={name:"reach",requiredRoles:[],View:Ma};var Le=q(Ee(),1);var se=q(te(),1),Fr=["start","end"];function La(e,t,{pad:n=45,minimum:r=480}={}){if(e.length===0)return{start:0,end:t};let a=Math.min(...e.map(b=>b.start)),i=Math.max(...e.map(b=>b.end)),s=Math.max(0,a-n),p=Math.min(t,i+n),c=r-(p-s);return c>0&&(s=Math.max(0,s-c/2),p=Math.min(t,s+r)),{start:Math.floor(s),end:Math.ceil(p)}}function Pa(e){let t=[...e].sort((i,s)=>i.start-s.start||i.end-s.end||i.id.localeCompare(s.id)),n=[],r=t.map(i=>{let s=n.findIndex(p=>p<=i.start);return s===-1?(s=n.length,n.push(i.end)):n[s]=i.end,{...i,lane:s,lanes:1}}),a=Math.max(1,n.length);return r.map(i=>({...i,lanes:a}))}var rt=class extends Error{constructor(t,n){super(`The timeline lens needs ${n.join(" and ")} for "${t}". Add them to the lens bindings: { ${t}: { ${n.map(r=>`${r}: "<field name>"`).join(", ")} } }.`),this.name="TimelineBindingError"}};function _r(e,t,n){let r=We(t[e.kind],n?.tryDefinition(e.kind));if(!r)return null;let a=e,i=n?.tryDefinition(e.kind)?.fields.shape,s=Fr.filter(u=>{let w=r[u];return w?i?!(w in i):!(w in a):!0});if(s.length>0)throw new rt(e.kind,s);let p=Number(a[r.start]??Number.NaN),c=Number(a[r.end]??p);if(!Number.isFinite(p))return null;let b=[];if(r.columns){let u=a[r.columns];Array.isArray(u)&&b.push(...u.map(String))}if(r.column){let u=a[r.column];u!=null&&b.push(String(u))}return{id:e.id,kind:e.kind,label:xe(n?.tryDefinition(e.kind),e),columnIds:b,start:p,end:Number.isFinite(c)?Math.max(c,p):p}}function Ta(e,t){let n=Math.round(t),r=a=>`linear-gradient(hsl(${n} 55% var(--graview-tint-lightness) / ${a}), hsl(${n} 55% var(--graview-tint-lightness) / ${a})), var(--graview-panel)`;return e==="lit"?{border:"1px solid var(--graview-accent)",background:r("calc(var(--graview-tint-alpha) * 1.15)"),color:"var(--graview-ink)",boxShadow:"0 0 16px -4px var(--graview-accent)"}:e==="dimmed"?{border:"1px solid var(--graview-edge)",background:r("calc(var(--graview-tint-alpha) * 0.25)"),color:"var(--graview-ink-muted)"}:{border:`1px solid hsl(${n} 50% var(--graview-tint-lightness) / 0.42)`,background:r("var(--graview-tint-alpha)"),color:"var(--graview-ink)"}}var Na=.045,ln=52,Kr=4,Da=44,za=240;function Ia({nodes:e,label:t,fidelity:n,mode:r,options:a,schema:i,selectedIds:s=[],implicated:p=[],flagged:c=[]}){let b=new Set([...p,...s]),u=v=>b.size===0?"plain":b.has(v)?"lit":"dimmed",w=new Set(c),h=(e??[]).map(v=>_r(v,a.bindings,i)).filter(v=>v!==null),o=a.hueOf??(v=>be(v.kind));if(n==="glyph")return(0,se.jsx)(ke,{label:`${t??"Timeline"} \xB7 ${h.length}`,hue:be("timeline")});if(n==="summary")return(0,se.jsx)(me,{title:t??"Timeline",meta:`${h.length} items`,tone:"muted",children:(0,se.jsx)(ze,{max:a.columns.length,items:a.columns.map(v=>({id:v.id,label:`${v.label} ${h.filter(O=>O.columnIds.includes(v.id)).length}`,hue:be(v.id)}))})});let l=a.format??String,C=La(h,a.extent,{...a.minWindow===void 0?{}:{minimum:a.minWindow}}),g=C.end-C.start,S=v=>(v-C.start)/g*100,A=a.tick??Math.max(60,Math.round(g/8/60)*60),L=[];for(let v=Math.ceil(C.start/A)*A;v<=C.end;v+=A)L.push(v);let T=r==="fullscreen";return(0,se.jsx)(me,{title:t??"Timeline",meta:`${l(C.start)} \u2013 ${l(C.end)}`,style:{gap:12,...T?{flex:"1 1 auto",minHeight:0,height:"100%"}:{}},children:(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[(0,se.jsx)(Ha,{columns:a.columns}),(0,se.jsxs)("div",{"data-graview-timeline-grid":"",style:{position:"relative",flex:1,minHeight:Math.max(za,Math.ceil(g/A)*Da)},children:[L.map((v,O)=>(0,se.jsx)("div",{style:{position:"absolute",left:ln-8,right:0,top:O===L.length-1?"calc(100% - 1px)":`${S(v)}%`,height:1,background:"var(--graview-edge)"},children:(0,se.jsx)("span",{style:{position:"absolute",left:-(ln-8),...O===L.length-1?{bottom:2}:{top:-7},width:ln-16,textAlign:"right",fontSize:"0.75rem",letterSpacing:"0.06em",color:"var(--graview-ink-faint)"},children:l(v)})},v)),(0,se.jsx)("div",{style:{position:"absolute",inset:0,left:ln,display:"flex",gap:Kr},children:a.columns.map(v=>(0,se.jsx)(Va,{spans:h.filter(O=>O.columnIds.includes(v.id)),window:C,format:l,hue:o,emphasisOf:u,brokenIds:w},v.id))})]})]})})}function Ba(){let e=(0,Le.useRef)(null),[t,n]=(0,Le.useState)(new Set);return(0,Le.useLayoutEffect)(()=>{let r=e.current;if(!r)return;let a=[...r.querySelectorAll("[data-graview-span-name]")].filter(i=>i.scrollWidth>i.clientWidth+.5).map(i=>i.getAttribute("data-graview-span-name")).filter(i=>!t.has(i));a.length>0&&n(new Set([...t,...a]))}),(0,Le.useLayoutEffect)(()=>{let r=e.current;if(!r||typeof ResizeObserver>"u")return;let a=Math.round(r.clientWidth),i=new ResizeObserver(()=>{let s=Math.round(r.clientWidth);s!==a&&(a=s,n(new Set))});return i.observe(r),()=>i.disconnect()},[]),{column:e,oneLine:t}}var Wa=(e,t)=>t===0?e:e.slice(0,t),qr=[0,3,1];function Ha({columns:e}){let t=(0,Le.useRef)(null),[n,r]=(0,Le.useState)(0);(0,Le.useLayoutEffect)(()=>{let i=t.current;if(!i)return;[...i.children].some(p=>p.scrollWidth>p.clientWidth+.5)&&n<qr.length-1&&r(n+1)}),(0,Le.useLayoutEffect)(()=>{let i=t.current;if(!i||typeof ResizeObserver>"u")return;let s=i.clientWidth,p=new ResizeObserver(()=>{i.clientWidth!==s&&(s=i.clientWidth,r(0))});return p.observe(i),()=>p.disconnect()},[]);let a=qr[n];return(0,se.jsx)("div",{ref:t,style:{display:"flex",gap:Kr,paddingLeft:ln,paddingBottom:10},children:e.map(i=>{let s=Wa(i.label,a);return(0,se.jsx)("div",{"data-graview-day-head":i.id,title:s===i.label?void 0:i.label,...s===i.label?{}:{"aria-label":i.label},style:{flex:1,minWidth:0,overflow:"hidden",whiteSpace:"nowrap",fontSize:"0.75rem",letterSpacing:a===1?0:"0.18em",textTransform:"uppercase",textAlign:"center",color:"var(--graview-ink-muted)"},children:s},i.id)})})}function Va({spans:e,window:t,format:n,hue:r,emphasisOf:a,brokenIds:i}){let s=t.end-t.start,p=o=>(o-t.start)/s*100,c=o=>(o.end-o.start)/s<Na,b=Pa(e.filter(o=>!c(o))),u=[...e.filter(c)].sort((o,l)=>o.start-l.start),w=Math.max(1,...b.map(o=>o.lanes)),h=Ba();return(0,se.jsxs)("div",{ref:h.column,"data-graview-day-column":"",style:{position:"relative",flex:1,minWidth:0},children:[b.map(o=>{let l=100/w,C=Math.max(1.6,p(o.end)-p(o.start));return(0,se.jsx)("div",{"data-graview-span":o.id,"data-graview-pick":o.id,"data-graview-emphasis":a(o.id),"data-graview-flagged":i.has(o.id)?"":void 0,title:`${o.label} \xB7 ${n(o.start)}\u2013${n(o.end)}`,style:{position:"absolute",top:`${p(o.start)}%`,height:`${C}%`,left:`${o.lane*l}%`,width:`${l}%`,padding:"0 2px 2px 0",boxSizing:"border-box"},children:(0,se.jsx)("div",{"data-graview-span-name":o.id,style:{height:"100%",minHeight:15,borderRadius:6,padding:"3px 6px",fontSize:"0.75rem",lineHeight:1.25,overflow:"hidden",overflowWrap:"normal",wordBreak:"normal",...h.oneLine.has(o.id)?{display:"block",whiteSpace:"nowrap",textOverflow:"ellipsis"}:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},...Ta(a(o.id),r(o)),...i.has(o.id)?{borderLeft:"3px solid var(--graview-warn)",paddingLeft:4}:{}},children:C>=3.4?o.label:null})},o.id)}),u.map(o=>{let l=a(o.id);return(0,se.jsxs)("div",{"data-graview-span":o.id,"data-graview-pick":o.id,"data-graview-emphasis":l,"data-graview-moment":"",title:`${o.label} \xB7 ${n(o.start)}`,style:{position:"absolute",top:`${p(o.start)}%`,right:0,maxWidth:"100%",boxSizing:"border-box",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"flex-end",gap:5,minHeight:24,padding:"0 4px 0 8px",borderRadius:999,background:"linear-gradient(90deg, transparent, var(--graview-ground) 35%)"},children:[(0,se.jsx)("span",{style:{fontSize:"0.6875rem",letterSpacing:"0.04em",whiteSpace:"nowrap",color:l==="lit"?"var(--graview-accent)":"var(--graview-ink-faint)"},children:n(o.start)}),(0,se.jsx)("span",{style:{fontSize:"0.75rem",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:l==="dimmed"?"var(--graview-ink-faint)":"var(--graview-ink)"},children:o.label}),(0,se.jsx)("span",{style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:i.has(o.id)?"var(--graview-warn)":l==="dimmed"?"var(--graview-edge)":`hsl(${Math.round(r(o))} 60% var(--graview-tint-lightness))`,boxShadow:i.has(o.id)?"0 0 0 3px var(--graview-warn)":l==="lit"?"0 0 0 3px var(--graview-accent-dim)":l==="dimmed"?void 0:`0 0 8px hsl(${Math.round(r(o))} 60% var(--graview-tint-lightness) / 0.45)`}})]},o.id)})]})}function Ur(e){function t(n){let{store:r}=oe(),a=Object.keys(e.bindings),{nodes:i,bar:s}=Ne(n,{...e.arranging!==void 0?{allow:e.arranging}:{},lensAllows:{group:!1},...e.arrangedBy?{arrangedBy:e.arrangedBy}:{},...a[0]?{kind:(n.nodes??[]).find(c=>a.includes(String(c.kind)))?.kind??a[0]}:{}}),p=(0,se.jsx)(Ia,{schema:r.schema,...n,nodes:i,options:e});return Ie(n,r.schema,s?(0,se.jsxs)("div",{style:{display:"grid",gap:6,height:"100%",minHeight:0,gridTemplateRows:"auto 1fr"},children:[s,p]}):p)}return{name:"timeline",requiredRoles:[...Fr],bindings:e.bindings,options:e,View:t,place(n,r){return n.map(a=>_r(a,e.bindings,r)).filter(a=>a!==null)}}}var Pe=q(te(),1),Yr=new WeakMap;function Ga(e){return e===1440?t=>Xe(Math.floor(t/60)*60+Math.round(t%60)):e===24?t=>Xe(Math.floor(t)*60):t=>String(t)}function ja(e){let t=e.options;switch(e.lens){case"timeline":{let n=typeof t.extent=="number"?t.extent:1440;return Ur({...t,extent:n,format:Ga(n)}).View}case"calendar":return Cr({...t,...typeof t.today=="string"?{today:t.today}:{}}).View;case"coverage":return Nr(t).View;case"board":return or(t).View;case"plan":return Vr(t).View;case"reach":return jr.View;case"columns":return Ar(t).View;case"blocks":return qa(At(Array.isArray(t.blocks)?t.blocks:[]),e.as)}}function qa(e,t){return n=>{let r=(0,Pe.jsx)(Jt,{blocks:e,slot:"place",view:t,heading:n.mode==="fullscreen"?2:3});return n.fidelity==="glyph"?(0,Pe.jsx)("span",{className:"graview-spec-title",children:n.label}):n.mode!=="fullscreen"?(0,Pe.jsx)(me,{title:n.label??"",children:r}):(0,Pe.jsx)(Fa,{children:r})}}function Fa({children:e}){return(0,Qr.useContext)(Yt)?(0,Pe.jsx)(Pe.Fragment,{children:e}):(0,Pe.jsx)("div",{style:{padding:"12px 16px"},children:e})}function rs(e){let t=Yr.get(e);if(!t){let n=ja(e),r={title:e.title,as:e.as,...e.kinds[0]!==void 0?{on:e.kinds[0]}:{}},a={...r,export:!1},i=s=>{let p=xt()?.app?.lenses?.find(c=>c.title===e.title&&c.name===e.lens);return(0,Pe.jsx)(pn.Provider,{value:p?.export===!1?a:r,children:(0,Pe.jsx)(n,{...s,label:e.title})})};Yr.set(e,t=i)}return t}export{Ga as a,rs as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as P,c as pe,f as me,g as ge,h as he,i as ke,j as be}from"./chunk.
|
|
1
|
+
import{a as P,c as pe,f as me,g as ge,h as he,i as ke,j as be}from"./chunk.Z7Y3R3YR.js";import{a as ue}from"./chunk.YXEO3Y65.js";import{$ as C,$a as le,$b as O,Aa as oe,Ba as re,C as W,Ca as ie,Da as se,Ga as U,H as v,J as E,K as Y,L as q,La as de,Na as V,Pb as ce,T as S,Va as G,W as J,X as Q,Za as ae,ba as ee,bb as fe,bc as ye,cc as K,ea as ne,ha as I,la as M,ra as R,ua as te}from"./chunk.6HY6ZGEE.js";var ve=t=>`${t}${t%100>=11&&t%100<=13?"th":["th","st","nd","rd"][t%10]??"th"}`,Se={day:"day",week:"week",month:"month",year:"year"},N=t=>t.length<2?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`;function Oe(t,e,n){let r=e.interval??1,d=Se[e.every],a=t.slice(0,10),l=r===1?`Every ${d}`:r===2?`Every other ${d}`:`Every ${r} ${d}s`,s;if(e.every==="week"){let c=(e.on?.length?e.on:[G[new Date(`${a}T00:00:00Z`).getUTCDay()]]).map(i=>ee(G.indexOf(i),"long",n));s=r===1?`Every ${N(c)}`:r===2?`Every other ${N(c)}`:`${l} on ${N(c)}`}else if(e.every==="month"){let c=(e.on?.length?e.on:[+a.slice(8,10)]).map(i=>i===-1?"the last day":`the ${ve(Number(i))}`);s=`${l} on ${N(c)}`}else e.every==="year"?s=`${l} on ${C(a,n)}`:s=l;return E.test(t)&&(s+=` at ${Q(t,n)}`),e.until&&(s+=`, until ${S(e.until,n)}`),e.count&&(s+=`, ${e.count===1?"once":`${e.count} times`}`),s}function we(t,e,n={}){if(!le(e)||typeof t!="string")return;let r=n.today??q(),d=fe(t,e,r),a=Oe(t,e,n.locale),l=d.slice(0,4)===r.slice(0,4)?C(d.slice(0,10),n.locale):S(d.slice(0,10),n.locale);return d.slice(0,10)<r?`${a}, last ${l}`:`${a}, next ${l}`}function ln(t,e){let n=new Map,r=new Map;for(let d of t){let a=M(e(d.kind),d).trim().toLowerCase();r.set(a,[...r.get(a)??[],d])}for(let d of r.values()){if(d.length<2)continue;let a=new Map;for(let l of d)a.set(l.kind,[...a.get(l.kind)??[],l]);for(let[l,s]of a){if(s.length===1){n.set(s[0].id,te(e(l),l));continue}let c=s.map(o=>new Map(Ne(o,e(o.kind)).map(p=>[p.key,p.alone]))),i=[...new Set(c.flatMap(o=>[...o.keys()]))],u=o=>c.every(p=>!/\d/.test(p.get(o)??"")),g=[...i.filter(u),...i.filter(o=>!u(o))],h=(o,p)=>p.map(y=>c[o].get(y)??"").filter(Boolean).join(" \xB7 "),z=o=>new Set(s.map((p,y)=>h(y,o))).size===s.length&&s.every((p,y)=>h(y,o)!==""),$=g.find(o=>z([o])),f=$?void 0:g.flatMap((o,p)=>g.slice(p+1).map(y=>[o,y])).find(o=>z(o));s.forEach((o,p)=>{if($||f)return void n.set(o.id,h(p,$?[$]:f));let y=g.find(k=>{let b=c[p].get(k);return b!==void 0&&b!==""&&c.every((_,x)=>x===p||_.get(k)!==b)});n.set(o.id,y?c[p].get(y):`${p+1} of ${s.length}`)})}}return n}function fn(t,e){return t?.describe?t.describe(e):`${e.kind} ${M(t,e)}`}var Ee=new Set(["id","kind","label"]);function Me(t,e){if(e.length===0)return!1;let n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[\\s\xB7,(/])${n}($|[\\s\xB7,)/])`).test(t)}function Ne(t,e,n={}){let r=e?.display,d=new Set([...Ee,...r?.hide??[]]);typeof t.label=="string"&&e?.label&&!M(e,t).includes(t.label)&&d.delete("label");let a=(n.said??[]).filter(f=>!!f),l=a.filter(f=>f.endsWith("\u2026")).map(f=>f.replace(/…$/,"").trim()).filter(f=>f.length>12),s=[],c=e?.fields?.shape,i=e?.fieldRoles,u=n.glance?r?.glance??[i?.who,i?.when].filter(f=>!!f):Ae(r?.page),g=n.glance&&r?.glance!==void 0,h=new Set(n.glance?[]:n.blanks??[]),$=[...new Set(g?u:[...u,...je(e),...Object.keys(t)])].filter(f=>Object.hasOwn(t,f)||h.has(f)).map(f=>[f,t[f]]);for(let[f,o]of $){if(d.has(f)||ge(e,f))continue;let p=c?.[f];if(h.has(f)&&!U(p)&&!V(p)&&(o==null||o===""||Array.isArray(o)&&o.length===0)){s.push({key:f,label:R(e,f),value:"",stored:"",alone:"",long:!1,blank:!0});continue}if(o==null)continue;let y=r?.format?.[f],k=y?[]:ie(o);if(k[0]&&n.glance)continue;let b=e?.fields?.shape?.[f],_=!y&&typeof o=="string"&&U(b)?o:void 0,x=!y&&typeof o=="string"&&ue(b);if(_&&n.glance)continue;let D=y?void 0:V(b),w=D?{relation:D,refs:de(o,D)}:void 0;if(w&&(n.glance||w.refs.length===0)||!k[0]&&typeof o=="object"&&(!Array.isArray(o)||o.some(m=>typeof m=="object"&&m!==null))&&y===void 0)continue;let Z=typeof o=="string"&&!y?we(o,t[`${f}Repeat`],{locale:n.locale}):void 0,F=k[0]?k.map(m=>`${m.caption?`${m.name} \u2014 ${m.caption}`:m.name}${oe(m)?` (${re(m)})`:""}`).join(", "):Array.isArray(o)?o.join(", "):typeof o=="boolean"?o?"Yes":"No":String(o),T=y?void 0:he(e,f),B=be(T,o),H=!y&&!T&&typeof o=="number"?O(e?.fields?.shape?.[f])??me(e,f):void 0,j=w?w.refs.length>1?`${w.refs.length} linked records`:"linked record":y?y(o):H?ye(o,H):ke(T,o,n.locale)??(Array.isArray(o)||typeof o=="boolean"?F:typeof o=="string"&&Z!==void 0?Z:typeof o=="string"&&v.test(o)&&(o.length===10||Fe(e,f))?S(o,n.locale):typeof o=="string"&&E.test(o)?J(o,n.locale,n.timeZone):typeof o=="string"&&Te(e,f)?P(e,f,o):F),X=typeof o=="string"&&Ie(e,f,j),A=(n.glance||n.excerpt)&&!y&&(X||x)?pe(j,{markdown:x}):j;if(a.includes(A)||l.some(m=>A.startsWith(m))||n.glance&&(typeof o=="string"||typeof o=="number")&&a.some(m=>Me(m,A)))continue;let L=R(e,f),xe=typeof o=="number"?`${L} ${A}`:typeof o=="boolean"&&!y?`${L}: ${A.toLowerCase()}`:A;if(s.push({key:f,label:L,value:A,stored:F,alone:xe,long:X,...x?{markdown:!0}:{},...k[0]?{files:k}:{},..._?{app:_}:{},...w?{linked:w}:{},...B?{href:B}:{},...ae(c?.[`${f}Repeat`])?{repeats:!0}:{}}),n.limit!==void 0&&s.length>=n.limit)break}return ze(s,e)}function ze(t,e){let n=new Map;for(let r of t){let d=De(e,r.key);d&&n.set(r.key,new Set(d.map(a=>P(e,r.key,a).toLowerCase())))}return n.size<2?t:t.map(r=>{let d=n.get(r.key);return d!==void 0&&[...n].some(([l,s])=>l!==r.key&&[...d].some(c=>s.has(c)))?{...r,alone:`${r.label}: ${r.value.toLowerCase()}`}:r})}function De(t,e){let n=t?.fields?.shape?.[e];for(let r=0;r<6&&n?._zod?.def?.innerType!==void 0;r++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"&&n._zod.def.entries?Object.values(n._zod.def.entries).map(String):void 0}function Fe(t,e){let n=t?.fields?.shape?.[e]?._zod?.def;for(let r=0;r<6&&n?.innerType!==void 0;r++)n=n.innerType._zod?.def;return n?.type==="string"&&(n.checks??[]).some(r=>r._zod?.def?.pattern?.source===v.source)}function Te(t,e){let n=t?.fields?.shape?.[e];for(let r=0;r<6&&n?._zod?.def?.innerType!==void 0;r++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"}function je(t){let e=t?.fields?.shape;return[...Object.keys(e??{}),...Object.keys(t?.computed??{})]}function Ae(t){return[...t?.fields??[],...(t?.groups??[]).flatMap(e=>e.fields)]}var Le=500,We=160;function Ce(t){let e=t;for(let n=0;n<6&&e?._zod?.def?.innerType!==void 0;n++)e=e._zod.def.innerType;return e?._zod?.def?.type==="string"?e._zod.def:void 0}function Ie(t,e,n){return Ce(t?.fields?.shape?.[e])?.checks?.some(d=>d._zod?.def?.check==="max_length"&&(d._zod.def.maximum??0)>Le)?!0:typeof n=="string"&&(n.includes(`
|
|
2
2
|
`)||n.length>We)}function un(t,e){let n=t?.display?.page,r=n?.groups??[],d=new Map(e.map(i=>[i.key,i])),a=new Set(Ae(n)),l=i=>i.flatMap(u=>d.has(u)?[d.get(u)]:[]),s=e.filter(i=>!a.has(i.key));return[{fields:[...l(n?.fields??[]),...r.length>0?[]:s]},...r.map(i=>({title:i.title,fields:l(i.fields)})),...r.length>0?[{title:"Details",fields:s}]:[]].filter(i=>i.fields.length>0)}function Ue(t,e,n){let r=[...e?.creates??[],...e?.subject&&e.subject.kinds!=="*"?e.subject.kinds:[]];for(let d of r){let a=t.tryDefinition(d),l=a?.fields?.shape??{};if(!a||!(n in l))continue;let s=a.display?.format?.[n];return{label:a.display?.labels?.[n]??R(a,n),option:i=>s?s(i):I(i)}}return{label:R(void 0,n),option:d=>I(d)}}function gn(t,e,n){if(n instanceof ce){let r=e.find(a=>a.name===n.mutation);return`Not yet: ${n.issues.map(a=>{let l=a.path.length>0?Ue(t,r,String(a.path[0])).label:void 0;return l?`${l} \u2014 ${ne(a.message)}`:a.message}).join("; ")}.`}return n instanceof Error?n.message:String(n)}var Ve=t=>/^[A-Z]{3}$/.test(t??"");function $e(t){let{format:e,unit:n,currency:r,locale:d,places:a}=t,l=Ve(n),s=e==="money"||!e&&l,c=s?l?n:r:void 0;return{...s?{format:"money"}:e?{format:e}:{},...n&&!(s&&l)?{unit:n}:{},...c?{currency:c}:{},...d?{locale:d}:{},...s&&a===0?{places:a}:{}}}function kn(t){switch(t.format){case"money":return t.currency?`An amount of money in ${t.currency}: a plain number, 1250.5 for 1,250.50 ${t.currency}.`:"An amount of money, in no named currency: a plain number.";case"percent":return"A fraction said as a percent: 0.15 is 15%.";default:return t.unit?`A number of ${t.unit}.`:"A number."}}function Re(t){let e=W(t)?.innerType;return e===void 0?t:Re(e)}var Ge={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Ke=t=>(t?._zod?.def?.checks??[]).map(e=>e._zod?.def).filter(e=>e!==void 0);function _e(t){let e=Re(t),n=W(e),r=n?.type,d=Ke(e);if(r==="enum")return{type:"choice",options:Object.keys(n?.entries??{})};let a=se(e);if(a)return a==="image"?{type:"file",image:!0}:a==="video"?{type:"file",video:!0}:{type:"file"};if(r==="boolean")return{type:"boolean"};if(r==="array"){let l=_e(n?.element);return l.type==="unknown"?{type:"unknown"}:{type:"several",of:l}}if(r==="number"){let l,s,c;for(let i of d){i.check==="multiple_of"&&typeof i.value=="number"?c=i.value:i.check==="number_format"&&(i.format==="safeint"||i.format==="int32"||i.format==="uint32")&&(c??=1);let u=i.check==="number_format"&&i.format?Ge[i.format]:void 0,g=u?u[0]:i.check==="greater_than"&&i.inclusive&&typeof i.value=="number"?i.value:void 0,h=u?u[1]:i.check==="less_than"&&i.inclusive&&typeof i.value=="number"?i.value:void 0;g!==void 0&&(l=l===void 0?g:Math.max(l,g)),h!==void 0&&(s=s===void 0?h:Math.min(s,h))}return{type:"number",...l===void 0?{}:{min:l},...s===void 0?{}:{max:s},...c===void 0?{}:{step:c},...K(e)==="duration"?{duration:!0}:{},...O(t)?{amount:$e(O(t))}:{}}}if(r==="string"){if(d.some(u=>u.fn===Y||u.format==="datetime")||n?.format==="datetime")return{type:"date",time:!0,instant:!0};let s=[n?.pattern,...d.map(u=>u.pattern)].filter(u=>u instanceof RegExp).map(u=>u.source);if(s.some(u=>u.includes("\\d{4}")))return s.some(u=>u.includes("\\d{2}:\\d{2}"))?{type:"date",time:!0}:s.includes(v.source)?{type:"date",partial:!0}:{type:"date"};let c=d.some(u=>u.check==="max_length"&&typeof u.maximum=="number"&&u.maximum>500),i=K(e);return c?{type:"text",long:!0}:i==="phone"||i==="place"?{type:"text",holds:i}:{type:"text"}}return{type:"unknown"}}function vn(t,e){let n=t?.shape;return!n||!(e in n)?{type:"unknown"}:_e(n[e])}export{Oe as a,ln as b,fn as c,Ne as d,un as e,$e as f,kn as g,Re as h,_e as i,vn as j,Ue as k,gn as l};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{fc as w,sc as S}from"./chunk.6HY6ZGEE.js";function v(s){return[...s.mutations??[],...S(s.schema,s.mutations??[])]}function B(s){let i=[...s.schema.kinds],a=v(s),d=new Map,c=new Map;for(let e of a){c.set(e.name,e.creates??[]);let n=w(e.input).filter(t=>!t.optional&&!t.kinds.includes("*")).flatMap(t=>t.kinds);d.set(e.name,[...new Set(n)])}let g=new Map;for(let e of i)g.set(e,[]);for(let e of a)for(let n of c.get(e.name)??[])g.get(n)?.push(e.name);let p=new Map,l=new Set;for(let e=0;;e+=1){let n=[];for(let t of a)if((d.get(t.name)??[]).every(o=>l.has(o)))for(let o of c.get(t.name)??[])l.has(o)||n.push(o);if(n.length===0)break;for(let t of n)l.add(t),p.set(t,e)}let h=e=>{let n=g.get(e)??[];if(n.length===0)return[];let t=n.map(r=>d.get(r)??[]).sort((r,o)=>r.length-o.length)[0];return[...new Set(t)].filter(r=>r!==e)},y=new Map,u=e=>{let n=y.get(e);if(n)return n;let t=new Set;y.set(e,t);for(let r of h(e)){t.add(r);for(let o of u(r))t.add(o)}return t.delete(e),t},f=new Map(i.map(e=>[e,0]));for(let e of i)for(let n of u(e))f.set(n,(f.get(n)??0)+1);let m=i.map(e=>({kind:e,madeBy:[...g.get(e)??[]].sort(),needs:[...h(e)].sort(),depth:p.get(e)??null})).sort((e,n)=>(e.depth??Number.MAX_SAFE_INTEGER)-(n.depth??Number.MAX_SAFE_INTEGER)||(f.get(n.kind)??0)-(f.get(e.kind)??0)||e.kind.localeCompare(n.kind)),k=m.filter(e=>e.depth===0).map(e=>e.kind),A=[...new Set(a.filter(e=>(d.get(e.name)??[]).length===0).filter(e=>(c.get(e.name)??[]).length>0).map(e=>e.name))].sort(),M=m.filter(e=>e.depth===null).map(e=>({kind:e.kind,why:e.madeBy.length===0?"no act declares that it creates this kind":`every act that makes it needs ${e.needs.map(n=>`"${n}"`).join(", ")}, which nothing can make first`}));return{order:m,roots:k,doors:A,unreachable:M}}export{B as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{t as P}from"./chunk.
|
|
1
|
+
var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{t as P}from"./chunk.5LJVOLKR.js";import{G as M,La as S,R as w,W as y,ea as m,fa as I,s as b,w as T,x as A}from"./chunk.MODLZJD4.js";import{a as p}from"./chunk.SDO3U72B.js";import{b as f}from"./chunk.AJZBJBMO.js";var C=f(M(),1),h=f(y(),1),x=S(p(()=>(__graviewPreload(import.meta.url,["./chunk.B6JRTW3A.js","./chunk.U3HERHAI.js","./chunk.FBILPNGH.js","./chunk.MODLZJD4.js","./chunk.SDO3U72B.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.M2JCFNHJ.js")))),O=x.part((e,n)=>(0,h.jsx)(e.Timeline,{...n}),{what:"The timeline"}),q=()=>x.prefetch();function K({face:e}){return w()?.open?(0,h.jsx)(C.Suspense,{fallback:null,children:(0,h.jsx)(O,{face:e})}):null}var i=f(M(),1),u=f(y(),1),v=new WeakMap,D=e=>{let n=v.get(e);return n||v.set(e,n={ask:null,doors:[],listeners:new Set}),n},k=e=>{for(let n of e.listeners)n()};function g(e,n){let t=D(e);t.ask=n,k(t)}var N=S(p(()=>(__graviewPreload(import.meta.url,["./chunk.EQ4OODGO.js","./chunk.B6JRTW3A.js","./chunk.OTV5XTBB.js","./chunk.KBPJ7X7W.js","./chunk.OEIWIZCP.js","./chunk.U3HERHAI.js","./chunk.FBILPNGH.js","./chunk.MODLZJD4.js","./chunk.SDO3U72B.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.QGIM2WAY.js")))),B=N.part((e,n)=>{let t=e.NotifySheet;return(0,u.jsx)(t,{...n})},{what:"Notify me"}),W=N.part((e,n)=>{let t=e.NotifiedList;return(0,u.jsx)(t,{...n})},{quiet:!0}),E=(e,n)=>n===void 0&&(e.onBehalfOf??e).id!==void 0;function F(e,n,t){let c=d=>t.tryDefinition(d)?.noun??d.replace(/[-_]+/g," "),o=e.on!==void 0?e.on:e.about.length===1?e.about[0]:void 0;if(e.act!==void 0){let d=o!==void 0&&n(o)!==void 0?o:void 0;return{label:"Notify me when someone does this\u2026",choices:[{on:"act",act:e.act,...d!==void 0?{record:d}:{}},...d!==void 0?[{on:"act",act:e.act}]:[]]}}if(o===void 0)return null;let s=n(o);if(s!==void 0)return{label:"Notify me when this changes\u2026",choices:[{on:"changed",record:o},{on:"act",record:o},{on:"reaches",kind:s,condition:"",record:o}]};let r=b(o)!==null?[b(o)]:T(o)?A(o):[];if(r.length!==1||!t.kinds.includes(r[0]))return null;let l=r[0],a=c(l);return{label:`Notify me when ${/^[aeiou]/i.test(a)?"an":"a"} ${a} is added\u2026`,choices:[{on:"created",kind:l},{on:"changed",kind:l},{on:"reaches",kind:l,condition:""}]}}function L(){let{store:e,principal:n,subscriptions:t,signIn:c}=m(),o=E(n,c);return(0,i.useMemo)(()=>o?s=>{let r=F(s,a=>e.graph.getNode(a)?.kind,e.schema);return r?{id:"notify",items:[{id:"notify-me",label:r.label,run:()=>g(t,{choices:r.choices,returnTo:s.element??null})}],prepare:()=>N.prefetch()}:null}:null,[o,e,t])}var z=[];function U({children:e}){let n=L(),t=(0,i.useMemo)(()=>n?[n]:z,[n]);return(0,u.jsx)(P,{sections:t,children:e})}function V(){let{subscriptions:e}=m(),n=(0,i.useId)(),t=D(e);(0,i.useEffect)(()=>(t.doors.push(n),k(t),()=>{t.doors.splice(t.doors.indexOf(n),1),k(t)}),[t,n]);let c=(0,i.useMemo)(()=>r=>(t.listeners.add(r),()=>void t.listeners.delete(r)),[t]),o=(0,i.useSyncExternalStore)(c,()=>t.ask,()=>null),s=(0,i.useSyncExternalStore)(c,()=>t.doors[0]===n,()=>!1);return!o||!s?null:(0,u.jsx)(i.Suspense,{fallback:null,children:(0,u.jsx)(B,{ask:o,close:()=>g(e,null)})})}function X({choices:e,label:n="Notify me",style:t,className:c,testId:o="notify-me"}){let{principal:s,subscriptions:r,signIn:l}=m();return E(s,l)?(0,u.jsx)("button",{type:"button","data-testid":o,className:c,onClick:a=>g(r,{choices:e,returnTo:a.currentTarget}),style:t,children:n}):null}function G(){let e=I(),n=e?.subscriptions,t=e?(e.principal.onBehalfOf??e.principal).id:void 0,[c,o]=(0,i.useState)(0);return(0,i.useEffect)(()=>{if(t===void 0||!n)return;let s=!0,r=()=>void Promise.resolve(n.list(t)).then(a=>s&&o(a.length),()=>s&&o(0));r();let l=n.onChange?.(r);return()=>{s=!1,l?.()}},[n,t]),c}function Y({style:e}){return G()===0?null:(0,u.jsx)(i.Suspense,{fallback:null,children:(0,u.jsx)(W,{...e?{style:e}:{}})})}export{q as a,K as b,L as c,U as d,V as e,X as f,G as g,Y as h};
|
|
@@ -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{r as We}from"./chunk.BUVTUAB5.js";import{a as ae,b as Oe,f as Ne,i as ze}from"./chunk.MWGZKZD6.js";import{a as Le,e as Re,l as De}from"./chunk.QFHWG4LN.js";import{b as $e,c as O,d as qe,e as Ee}from"./chunk.YIPXZUTT.js";import"./chunk.BJUUSIQY.js";import{a as He,b as Ie,c as Pe}from"./chunk.EMFOMSMI.js";import{a as Me}from"./chunk.PSQYDCVM.js";import"./chunk.QOS5T46W.js";import"./chunk.PPSYUOH7.js";import"./chunk.XOZU4OFA.js";import"./chunk.GME63ZHI.js";import"./chunk.NJRLJEJY.js";import"./chunk.WSDJPXJD.js";import"./chunk.F4VB6Q2W.js";import"./chunk.FFOD5B4B.js";import"./chunk.Z7Y3R3YR.js";import"./chunk.YXEO3Y65.js";import{e as Te,m as Ce}from"./chunk.U3HERHAI.js";import"./chunk.FBILPNGH.js";import{G as Je,J as be,La as xe,W as Se,ea as Ae}from"./chunk.MODLZJD4.js";import{a as ve}from"./chunk.SDO3U72B.js";import{eb as ke,oa as ye,td as we}from"./chunk.6HY6ZGEE.js";import"./chunk.FQLNBIQ5.js";import{b as ie}from"./chunk.AJZBJBMO.js";var s=ie(Je(),1);var r=ie(Se(),1),N=xe(ve(()=>(__graviewPreload(import.meta.url,["./chunk.YIPXZUTT.js","./chunk.BJUUSIQY.js","./chunk.NJRLJEJY.js","./chunk.YXEO3Y65.js","./chunk.U3HERHAI.js","./chunk.FBILPNGH.js","./chunk.MODLZJD4.js","./chunk.SDO3U72B.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.5BX66FBP.js")))),Xe=N.part((a,i)=>(0,r.jsx)(a.RateTelling,{...i}),{quiet:!0}),Ze=a=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(()=>setTimeout(a,0)):setTimeout(a,0)},et=()=>`tl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,tt=/^(yes|yep|yeah|sure|ok(ay)?|do it|go ahead|please do)\b/i,nt=/^(no|nope|don'?t|not now|never ?mind)\b/i;function it(a,i,o){let t=i.on==="list"||i.on==="lens"?i.kind:void 0;if(i.on==="selection")return i.ids;if(i.on!=="list"&&i.on!=="lens")return[];if(o==="pages"&&typeof document<"u"){let y=new Set;for(let u of document.querySelectorAll("main [data-graview-listed], main [data-graview-record], main [data-graview-pick]")){let m=u.getAttribute("data-graview-listed")??u.getAttribute("data-graview-record")??u.getAttribute("data-graview-pick"),b=m?a.graph.getNode(m):void 0;m&&b&&(t===void 0||b.kind===t)&&y.add(m)}if(y.size>0)return[...y]}return t?a.graph.allNodes().filter(y=>y.kind===t).map(y=>y.id):[]}var at=new Set(["show","go","to","open","the","a","an","me"]),Fe=a=>a.toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,""),oe=(a,i)=>{let o=Fe(a);return i.every(t=>o.includes(t))},Ge=a=>a&&!/^.\p{Lu}/u.test(a)?`${a[0].toLowerCase()}${a.slice(1)}`:a,X={act:4,show:3,place:3,record:4},Ke=360,f=12;function $t({face:a,opening:i,close:o}){let t=Me(),{setMenuAt:y,aiHere:u,session:m,people:b,seats:E,onProposeChange:C,composeChange:$}=Ae(),[g,q]=(0,s.useState)({state:"offered"}),l=(0,s.useMemo)(()=>i.target??$e(i.pointed??{about:[]},e=>t.store.graph.has(e)),[i,t.store]),z=(0,s.useMemo)(()=>Re(t.store,l,t.places),[t.store,l,t.places]),[A,Q]=(0,s.useState)(""),[B,F]=(0,s.useState)(-1),[p,re]=(0,s.useState)(null),[se,ee]=(0,s.useState)(null),K=(0,s.useRef)(null),le=(0,s.useRef)(null),Y=(0,s.useRef)(null),j=(0,s.useId)(),I=(0,s.useRef)(!0),{ghost:de}=be(t.desk),[te,Qe]=(0,s.useState)(null),P=(0,s.useRef)(null),H=(0,s.useCallback)(e=>{let n=P.current;!n||!t.ai.told||(n.kept&&N.current?N.current.changeTelling(t.ai.told,n.id,e):n.queued={...n.queued,...e})},[t.ai.told]);(0,s.useEffect)(()=>{let e=t.ai.told;if(!e)return;let n=globalThis,d=()=>void N.load().then(w=>w.toldListed(e),()=>{});if(n.requestIdleCallback){let w=n.requestIdleCallback(d,{timeout:1500});return()=>n.cancelIdleCallback?.(w)}let T=setTimeout(d,200);return()=>clearTimeout(T)},[t.ai.told]),(0,s.useEffect)(()=>()=>{I.current=!1;let e=P.current,n=t.desk.get().ghost;e&&!(n&&n.ghost.interaction===e.interaction&&n.batch===void 0)&&H({outcome:"abandoned"});let d=t.desk.get().ghost;d?.onCard&&t.desk.setGhost({...d,onCard:!1})},[t.desk]);let ce=p!==null;(0,s.useEffect)(()=>{if(!ce)return;let e=O(l)[0]??(l.on==="list"?`kind:${l.kind}`:l.on==="lens"&&l.kind?`kind:${l.kind}`:null),n=t.principal,d=n.id?ke(n,{graph:t.store.graph,schema:t.store.schema,...E?{seats:E}:{},...b?{people:b}:{}}):void 0;return u({participant:`agent:graview-for-${n.id??"anyone"}:${m}`,kind:"agent",name:"Graview",...n.id?{onBehalfOf:n.id,...d?{onBehalfOfName:d}:{}}:{},over:e,robot:{at:e,mode:"thinking"}}),()=>u(null)},[ce]);let U=(0,s.useMemo)(()=>{let e=ae(t,l);return qe(t.store,l,{principal:t.principal,places:t.places,...e.acts?{acts:e.acts}:{}})},[t,l]),ue=(0,s.useMemo)(()=>{let e=O(l);if(e.length===0)return[];let n=new Set(U.candidates.flatMap(d=>d.type==="act"?[d.mutation]:[]));return He(t.store,e,{principal:t.principal,...e.length===1?{focus:e[0]}:{}}).affordances.filter(d=>!d.destructive&&n.has(d.mutation))},[t.store,t.principal,l,U]),V=(0,s.useCallback)(()=>{let e=i.returnTo,n=Be(K.current,l,a);o(),requestAnimationFrame(()=>{if(e?.isConnected&&!e.closest("[inert]"))return e.focus({preventScroll:!0});let d=(n&&n.tabIndex>=0?n:null)??document.querySelector("[data-graview-page-title]")??document.querySelector("main");d&&d.tabIndex<0&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","-1"),d?.focus({preventScroll:!0})})},[i.returnTo,l,a,o]),pe=(0,s.useCallback)(e=>{if(e.open.length>0){let n=K.current?.getBoundingClientRect();o(),y({x:n?.left??0,y:n?.top??0,on:e.args.id??O(l)[0],about:O(l)});return}try{Pe(t.store,e,{},{pressed:t.principal?{author:t.principal}:{}}),Ie(t.store,e,{},{author:t.principal}),V()}catch(n){ee(n instanceof Error?n.message:String(n))}},[t.store,t.principal,o,V,y,l]),_=(0,s.useCallback)(async e=>{let n=e.trim();if(!n)return;let d=p?.result?.answer?{said:p.said,answer:p.result.answer,...p.result.reading?{reading:p.result.reading.which}:{}}:void 0,T=l.on==="lens"?t.places.find(M=>M.as===l.place)?.title:(l.on==="list",void 0);Q(""),F(-1),ee(null),re({said:n,result:null}),q({state:"offered"});let w=it(t.store,l,a),S=P.current;S&&H({outcome:"abandoned"});let c=Date.now(),k=t.ai.told?N.current??await Promise.race([N.load().catch(()=>{}),new Promise(M=>setTimeout(M,50))]):void 0,R=t.ai.told&&k?k.examplesHere(t.ai.told,t.store,t.principal,n,l):{examples:[],ids:[]},Ve=[...new Set([...S?[]:i.suggested?[i.suggested]:[],...R.ids])],v=await De(t.ai,{...ae(t,l,n),said:n,...d?{follows:d}:{},...w.length>0?{members:w}:{},...T?{where:T}:{},...R.examples.length>0?{examples:R.examples}:{}});t.desk.record(v.interaction),v.ghost&&v.ghost.proposals.length>0&&t.desk.setGhost({ghost:v.ghost,onCard:!0});let W;if(v.missing)try{let{planFor:M}=await (__graviewPreload(import.meta.url,["./chunk.YIPXZUTT.js","./chunk.BJUUSIQY.js","./chunk.NJRLJEJY.js","./chunk.YXEO3Y65.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.IGK7EZCX.js")),G=Date.now(),me=T??(v.reading&&v.reading.which==="held"&&l.on==="record"?v.reading.words.replace(/^the \d+ \S+ in /,""):void 0);W=await M(t,{said:n,missing:v.missing,members:v.reading?.records??w,host:C!==void 0,...$?{compose:$}:{},...me?{where:me}:{}}),t.desk.record({...v.interaction,stages:[...v.interaction.stages??[],{stage:"compose",ms:Date.now()-G}]})}catch{W={refused:`${v.missing.said} That change could not be made here.`}}I.current&&re({said:n,result:v,...W?{plan:W}:{}});let J=t.ai.told;if(!J)return;let _e=Date.now()-c;P.current?.stop?.();let ne={id:et(),conversation:S?.conversation??"",interaction:v.interaction.id};P.current={...ne,conversation:ne.conversation||ne.id};let D=P.current;Ze(()=>void N.load().then(M=>{let G=M.keepTelling(J,{...M.tellingDraftOf(t.store,{words:n,target:l,result:v,...W?{plan:W}:{},ms:_e,...S?{conversation:S.conversation,follows:S.id}:{},examples:Ve}),id:D.id,conversation:D.conversation},t.principal);G&&(D.kept=!0,D.queued&&M.changeTelling(J,G.id,D.queued),D.stop=M.watchTelling(t.desk,J,G),I.current&&P.current===D&&Qe(G))},()=>{}))},[p,t,l,a,C,$,i.suggested,H]),L=p?.plan&&"question"in p.plan?p.plan:void 0,ge=(0,s.useCallback)(async()=>{let e=L?.proposal;if(!(!e||!C||g.state!=="offered")){q({state:"applying"});try{let n=await C(e);if(!I.current)return;H({outcome:n==="declined"?"declined":"accepted"}),q(n==="declined"?{state:"declined",said:"The host declined this change to the app."}:{state:"applied",...typeof n=="object"?{undo:n.undo,...n.note?{note:n.note}:{}}:{}})}catch(n){I.current&&q({state:"declined",said:n instanceof Error?n.message:String(n)})}}},[L,C,g,H]),fe=(0,s.useCallback)(()=>{H({outcome:"declined"}),q({state:"declined",said:"Left as it is."})},[H]),Ye=(0,s.useCallback)(async()=>{g.state!=="applied"||!g.undo||(await g.undo(),H({outcome:"undone"}),I.current&&q({state:"undone"}))},[g,H]),he=(0,s.useRef)(i.asked);(0,s.useEffect)(()=>{let e=he.current;he.current=void 0,e&&_(e)},[]);let x=(0,s.useMemo)(()=>{let e=A.trim();if(!e&&p)return[];let n=Fe(e).split(/\s+/).filter(c=>c&&!at.has(c)),d=/^show\b/i.test(e),T=/^(go|open)\b/i.test(e),w=[];if(!d&&!T)for(let c of ue.filter(k=>oe(k.label,n)).slice(0,X.act))w.push({id:`act:${c.id}`,kind:"act",label:c.label,hint:c.open.length>0?"asks more":"do it",take:()=>pe(c)});let S=e&&!/\?\s*$/.test(e)?Ee(t.store,l,{principal:t.principal,places:t.places,said:e}):[];for(let c of S)w.push({id:`place:${c.place}`,kind:"place",label:c.fit==="full"?`Open ${c.title}`:`Open and adjust ${c.title}`,hint:c.fit==="full"?"a view you have":"adjust it",take:()=>{o(),t.goTo.place(c.place),c.fit==="partial"&&Te(t.desk,{target:{on:"lens",place:c.place,...c.kind?{kind:c.kind}:{}},asked:e})}});if(!T){let c=U.candidates.filter(k=>k.type==="panel");for(let k of c.filter(R=>oe(`show ${R.label}`,n)).slice(0,X.show))w.push({id:k.id,kind:"show",label:`Show ${Ge(k.label)}`,hint:"a panel",take:()=>{o(),Oe(t,{title:k.label,recipe:{...k.panel,title:k.label}})}})}if(!d){for(let c of t.places.filter(k=>oe(k.title,n)&&!S.some(R=>R.place===k.as)).slice(0,X.place))w.push({id:`place:${c.as}`,kind:"place",label:`Go to ${c.title}`,take:()=>(o(),t.goTo.place(c.as))});if(n.length>0){let c=We(t.store,e.replace(/^(go to|open)\s+/i,""),{principal:t.principal,from:O(l),limit:X.record}).hits;for(let k of c)k.about==="node"&&w.push({id:`record:${k.id}`,kind:"record",label:k.label,hint:ye(t.store.schema,k.kind),take:()=>(o(),t.goTo.record(k.id))})}}return e&&w.push({id:"ask",kind:"ask",label:e,take:()=>void _(e)}),w},[A,ue,U,t,l,pe,_,o,p]);(0,s.useEffect)(()=>F(A.trim()?0:-1),[A]),(0,s.useLayoutEffect)(()=>{let e=K.current;if(!e)return;if(typeof e.showPopover=="function")try{e.showPopover()}catch{}le.current?.focus({preventScroll:!0});let n=0,d=null,T=i.from;T&&rt(e,T);let w=()=>{let S=Be(e,l,a);T?st(e,S):ot(e,S);let c=Y.current?S:null;d!==c&&(d?.removeAttribute("data-graview-ai-thinking"),c?.setAttribute("data-graview-ai-thinking",""),d=c),Y.current&<(Y.current,c),n=requestAnimationFrame(w)};return w(),()=>{cancelAnimationFrame(n),d?.removeAttribute("data-graview-ai-thinking")}},[l,a,i.from]),(0,s.useEffect)(()=>{if(p)return;let e=n=>{n.target instanceof Node&&K.current?.contains(n.target)||o()};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[p,o]);let je=e=>{if(e.key==="ArrowDown"&&x.length>0)e.preventDefault(),F(n=>Math.min(x.length-1,n+1));else if(e.key==="ArrowUp"&&x.length>0)e.preventDefault(),F(n=>Math.max(0,n-1));else if(e.key==="Enter"){e.preventDefault();let n=x[B];n?n.take():L?.proposal&&g.state==="offered"&&tt.test(A.trim())?(Q(""),ge()):L&&g.state==="offered"&&nt.test(A.trim())?(Q(""),fe()):A.trim()&&_(A)}},h=p?.result??null,Ue=x[B];return(0,r.jsxs)("section",{ref:K,popover:"manual",role:"region","aria-label":p?`Answer about ${z}`:`Tell Graview about ${z}`,"data-testid":"quick-ask","data-quick-ask":p?"answer":"bar","data-quick-ask-face":a,"data-graview-offstage":"","data-graview-overlay":"",onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),V())},onMouseDown:e=>e.stopPropagation(),style:pt,children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,r.jsxs)("p",{"data-testid":"quick-ask-about",style:{margin:0,flex:"1 1 auto",minWidth:0,fontSize:"0.75rem",color:"var(--graview-ink-muted)",overflowWrap:"anywhere"},children:["About ",z]}),(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-close","aria-label":"Close",title:"Close",onClick:V,style:gt,children:(0,r.jsx)("span",{"aria-hidden":"true",children:"\u2715"})})]}),p?(0,r.jsxs)("div",{"data-testid":"quick-answer",style:{display:"grid",gap:8},children:[(0,r.jsxs)("p",{"data-testid":"quick-answer-asked",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",fontStyle:"italic",overflowWrap:"anywhere"},children:["\u201C",p.said,"\u201D"]}),(0,r.jsx)("p",{"data-testid":"quick-answer-text","aria-live":"polite",style:{margin:0,fontSize:"0.9375rem",lineHeight:1.45,color:h?.interaction.outcome==="failed"?"var(--graview-warn)":"var(--graview-ink)",overflowWrap:"anywhere"},children:h===null?"Thinking\u2026":h.interaction.outcome==="failed"?h.interaction.failed??"The AI could not answer that here.":Le(p.plan?"question"in p.plan?p.plan.question:p.plan.refused:h.answer,h.ghost&&h.ghost.proposals.length>0?"Here is what I would change.":h.offers.length>0?"These may help.":void 0)}),h?.taken?(0,r.jsxs)("p",{"data-testid":"quick-ask-taken",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Taking \u201C",h.taken.said,"\u201D as ",h.taken.as,"."]}):null,h?.reading?.close?(0,r.jsxs)("p",{"data-testid":"quick-ask-reading",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:["Taking this as ",h.reading.words,"."]}):null,L?(0,r.jsxs)("section",{"data-testid":"quick-ask-plan","data-plan-state":g.state,"aria-label":"What I would do",style:ut,children:[(0,r.jsx)("ol",{style:{margin:0,paddingInlineStart:18,display:"grid",gap:2},children:L.parts.map((e,n)=>(0,r.jsx)("li",{"data-plan-part":e.part,style:{fontStyle:g.state==="applied"?"normal":"italic"},children:e.said},n))}),L.proposal&&C?g.state==="offered"||g.state==="applying"?(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-yes",disabled:g.state==="applying",onClick:()=>void ge(),style:Z,children:"Yes"}),(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-no",disabled:g.state==="applying",onClick:fe,style:Z,children:"No"})]}):g.state==="applied"?(0,r.jsxs)("div",{role:"status",style:{display:"flex",gap:6,alignItems:"center"},children:[(0,r.jsxs)("span",{"data-testid":"quick-ask-plan-done",children:["Done, as one change.",g.note?` ${g.note}`:""]}),g.undo?(0,r.jsx)("button",{type:"button","data-testid":"quick-ask-plan-undo",onClick:()=>void Ye(),style:Z,children:"Undo"}):null]}):(0,r.jsx)("p",{role:"status",style:{margin:0,color:"var(--graview-ink-muted)"},children:g.state==="undone"?"Taken back.":g.said}):null]}):null,h&&h.offers.length>0?(0,r.jsx)("ul",{"aria-label":"What acts on it",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:6},children:h.offers.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)("button",{type:"button","data-testid":"quick-answer-offer","data-ai-offer":e.id,"data-ai-offer-type":e.type,onClick:()=>{Ne(t,h,e,o,{onCard:e.type==="act"||e.type==="fill"}).then(n=>{n&&I.current&&ee(n)})},style:Z,children:e.type==="panel"?`Show ${Ge(e.label)}`:e.type==="place"?`Go to ${e.label}`:e.type==="act"||e.type==="fill"?`${e.label.replace(/[.?]$/,"")}?`:e.label})},e.id))}):null,de?.onCard&&de.ghost.interaction===h?.interaction.id?(0,r.jsx)(ze,{placement:"card"}):null,h&&te&&t.ai.told&&te.interaction===h.interaction.id?(0,r.jsx)(Xe,{told:t.ai.told,telling:te}):null]}):null,(0,r.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,r.jsx)("input",{ref:le,type:"text",role:"combobox","data-testid":"quick-ask-input","aria-label":p?`Reply about ${z}`:`Tell Graview about ${z}, or go somewhere`,"aria-expanded":x.length>0,"aria-controls":j,"aria-autocomplete":"list",...Ue?{"aria-activedescendant":`${j}-${B}`}:{},autoComplete:"off",enterKeyHint:"go",placeholder:p?"Reply\u2026":"Tell Graview, or go to\u2026",value:A,readOnly:p!==null&&h===null,"aria-busy":p!==null&&h===null,onChange:e=>Q(e.target.value),onKeyDown:je,style:ft}),(0,r.jsx)("div",{id:j,role:"listbox","aria-label":A.trim()?`What \u201C${A.trim()}\u201D finds here`:"What can be done here",hidden:x.length===0,style:{display:x.length===0?"none":"grid",gap:1,maxHeight:280,overflowY:"auto"},children:x.map((e,n)=>(0,r.jsx)("div",{id:`${j}-${n}`,role:"option","aria-selected":n===B,"data-testid":"quick-ask-option","data-quick-ask-kind":e.kind,"data-quick-ask-row":e.id,onMouseEnter:()=>F(n),onMouseDown:d=>d.preventDefault(),onClick:e.take,style:{...ht,background:n===B?"var(--graview-panel-muted)":"transparent",...e.kind==="ask"?{borderTop:"1px solid var(--graview-edge)",marginTop:2}:{}},children:e.kind==="ask"?(0,r.jsxs)("span",{children:["Tell Graview: ",(0,r.jsxs)("span",{style:{fontWeight:600},children:["\u2018",e.label,"\u2019"]})]}):(0,r.jsxs)("span",{children:[e.label,e.hint?(0,r.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.hint]}):null]})},e.id))})]}),se?(0,r.jsx)("p",{role:"alert","data-testid":"quick-ask-refused",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-warn)"},children:se}):null,(0,r.jsx)("span",{style:Ce,"aria-live":"polite",children:x.length>0&&A.trim()?`${x.length} ${x.length===1?"way":"ways"} to go on`:""}),p!==null&&h===null?(0,r.jsxs)("span",{ref:Y,role:"status","data-testid":"ai-thinking-mark",style:dt,children:[(0,r.jsx)("style",{children:"@keyframes graview-thinking{from{opacity:.35}to{opacity:1}}@media (prefers-reduced-motion:reduce){[data-testid=ai-thinking-mark]>span{animation:none!important}}"}),(0,r.jsx)("span",{"aria-hidden":"true",style:ct}),(0,r.jsxs)("span",{children:["Thinking about ",z,"\u2026"]})]}):null]})}function Be(a,i,o){let t=a?.closest("[data-graview-embed]")??document,y=i.on==="list"?[`aggregate:${i.kind}`,`kind:${i.kind}`]:i.on==="lens"&&i.kind?[`aggregate:${i.kind}`]:O(i);for(let u of y)for(let m of t.querySelectorAll(`[data-graview-view="${CSS.escape(u)}"], [data-graview-pick="${CSS.escape(u)}"], [data-graview-record="${CSS.escape(u)}"], [data-graview-listed="${CSS.escape(u)}"]`)){if(a?.contains(m))continue;let b=m.getBoundingClientRect();if(b.width>0&&b.height>0)return m}return o==="pages"?t.querySelector("main [data-graview-page-title]")??t.querySelector("main h1"):null}function ot(a,i){let o={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},t=Math.min(Ke,o.width-2*f),y=a.getBoundingClientRect().height,u=i?.getBoundingClientRect(),m,b,E,C=l=>Math.max(f,Math.min(l,o.height-y-f));if(u&&u.width>0&&u.bottom>0&&u.top<o.height)if(u.right+f+t<=o.width-f)m=u.right+f,b=C(u.top),E="right";else if(u.left-f-t>=f)m=u.left-f-t,b=C(u.top),E="left";else{m=Math.max(f,Math.min(u.left,o.width-t-f));let l=u.bottom+f;b=l+y<=o.height-f?l:C(u.top-f-y),E=l+y<=o.height-f?"below":"above"}else m=(o.width-t)/2,b=C(72),E="top";let $=a.style,g={left:`${Math.round(m)}px`,top:`${Math.round(b)}px`,width:`${Math.round(t)}px`};$.left!==g.left&&($.left=g.left),$.top!==g.top&&($.top=g.top),$.width!==g.width&&($.width=g.width);let q=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");a.getAttribute("data-quick-ask-beside")!==q&&a.setAttribute("data-quick-ask-beside",q),a.getAttribute("data-quick-ask-side")!==E&&a.setAttribute("data-quick-ask-side",E)}function rt(a,i){let o={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},t=Math.min(Ke,o.width-2*f),y=i.left+t>o.width-f?Math.max(f,o.width-f-t):Math.max(f,i.left),u=240,m=i.top+u>o.height-f?Math.max(f,o.height-f-u):Math.max(f,i.top);a.style.left=`${Math.round(y)}px`,a.style.top=`${Math.round(m)}px`,a.style.width=`${Math.round(t)}px`,a.style.maxHeight=`${Math.round(o.height-m-f)}px`,a.setAttribute("data-quick-ask-side","where-the-menu-stood"),a.setAttribute("data-quick-ask-from",`${Math.round(i.left)},${Math.round(i.top)}`)}function st(a,i){let o=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");a.getAttribute("data-quick-ask-beside")!==o&&a.setAttribute("data-quick-ask-beside",o)}function lt(a,i){let o=i?.getBoundingClientRect(),t=i?.getAttribute("data-graview-view")??i?.getAttribute("data-graview-pick")??i?.getAttribute("data-graview-record")??i?.getAttribute("data-graview-listed")??(i?"page":"");if(a.getAttribute("data-thinking-on")!==t&&a.setAttribute("data-thinking-on",t),!o||o.width===0){a.style.visibility!=="hidden"&&(a.style.visibility="hidden");return}let y=a.getBoundingClientRect().width,u=`${Math.round(Math.max(f/2,o.right-y-6))}px`,m=`${Math.round(Math.max(f/2,o.top-10))}px`;a.style.left!==u&&(a.style.left=u),a.style.top!==m&&(a.style.top=m),a.style.visibility!=="visible"&&(a.style.visibility="visible")}var dt={position:"fixed",visibility:"hidden",display:"inline-flex",alignItems:"center",gap:6,padding:"2px 8px",borderRadius:999,fontSize:"0.75rem",lineHeight:1.4,whiteSpace:"nowrap",color:"var(--graview-ink)",background:"var(--graview-float)",border:"1px dashed var(--graview-accent)",boxShadow:"var(--graview-lift-low)",pointerEvents:"none"},ct={width:7,height:7,borderRadius:999,background:"var(--graview-accent)",animation:"graview-thinking 1s ease-in-out infinite alternate"},ut={display:"grid",gap:8,padding:10,borderRadius:10,border:"1px dashed var(--graview-accent)",fontSize:"0.875rem"},pt={position:"fixed",inset:"auto",height:"auto",margin:0,zIndex:we("popover"),boxSizing:"border-box",display:"grid",gap:10,padding:12,borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",maxHeight:"calc(100dvh - 24px)",overflowY:"auto",fontSize:"0.875rem"},gt={display:"inline-grid",placeItems:"center",width:28,height:28,padding:0,font:"inherit",fontSize:"0.875rem",lineHeight:1,color:"var(--graview-ink-muted)",background:"transparent",border:"1px solid transparent",borderRadius:6,boxShadow:"none",cursor:"pointer"},ft={boxSizing:"border-box",width:"100%",height:36,padding:"0 10px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8},ht={display:"flex",alignItems:"center",minHeight:30,padding:"4px 8px",borderRadius:6,cursor:"pointer",overflowWrap:"anywhere"},Z={display:"inline-flex",alignItems:"center",minHeight:30,padding:"2px 10px",font:"inherit",fontSize:"0.8125rem",borderRadius:8};export{$t as QuickAskCard};
|
|
@@ -0,0 +1,19 @@
|
|
|
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{d as C,e as re}from"./chunk.LETAQTLJ.js";import{e as ee}from"./chunk.BUVTUAB5.js";import{a as S}from"./chunk.Z7Y3R3YR.js";import{m as X}from"./chunk.U3HERHAI.js";import{G as se,La as V,Ua as J,W as Z,Ya as Q}from"./chunk.MODLZJD4.js";import{a as K}from"./chunk.SDO3U72B.js";import{T as Y,Z as M,la as U}from"./chunk.6HY6ZGEE.js";import{b as D}from"./chunk.AJZBJBMO.js";var h=D(se(),1);var n=D(Z(),1),Re=9,le=40,ge=2;function de(e){let r=new Map;for(let i of e.allNodes())r.set(i.kind,(r.get(i.kind)??0)+1);return r}var ue=(e,r)=>(e.far??[]).reduce((i,a)=>i+(r.get(a)??0),0);function ce(e,r,i){if(i)return i.flatMap(s=>e.filters.filter(u=>u.key===s));let a=de(r),o=new Set(e.filters.filter(s=>s.about==="edge"&&ue(s,a)>le).map(s=>s.key));return e.filters.filter(s=>s.about==="edge"?!o.has(s.key):s.about==="via"?o.has(s.key.split(".")[0]):!0)}function pe(e,r){let i=e.filter(a=>a.about==="field"&&a.type==="choice"&&(a.options?.length??0)>0);return r?i:i.slice(0,ge)}var fe=520;function ye(e,r,i,a){let o=i.filters.find(s=>s.key===a.key);if(!o)return`${a.key}: ${a.value}`;if(o.about==="is")return a.value.charAt(0).toUpperCase()+a.value.slice(1);if(o.about==="via")return`${o.label}: ${S(e.tryDefinition(o.far?.[0]??""),o.key.split(".")[1],a.value)}`;if(o.about==="edge"){if(a.value==="*")return`${o.label}: anything`;if(a.value==="none")return`${o.label}: nothing`;let s=r.getNode(a.value);return`${o.label}: ${s?U(e.tryDefinition(s.kind),s):a.value}`}if(o.type==="date"){let[s,u]=a.value.split(":");return`${o.label} ${s} ${u?Y(u):""}`.trim()}if(o.type==="boolean")return`${o.label}: ${a.value==="true"?"yes":"no"}`;if(o.type==="number"){let s=a.value.lastIndexOf(":"),u=a.value.slice(0,Math.max(0,s));if(u==="at-most"||u==="at-least")return`${o.label}: ${u==="at-most"?"at most":"at least"} ${S(e.tryDefinition(i.kind),o.key,Number(a.value.slice(s+1)))}`}return o.type==="text"?`${o.label}: ${a.value}`:`${o.label}: ${S(e.tryDefinition(i.kind),o.key,a.value)}`}var P=e=>/^[A-Z][a-z]/.test(e)?e.charAt(0).toLowerCase()+e.slice(1):e;function me(e){return e?.type==="date"?{asc:"Earliest first",desc:"Latest first"}:e?.type==="number"?{asc:"Lowest first",desc:"Highest first"}:e?.type==="boolean"?{asc:"No first",desc:"Yes first"}:e?.type==="choice"?{asc:"In their order",desc:"In reverse order"}:{asc:"A to Z",desc:"Z to A"}}var x=V(K(()=>(__graviewPreload(import.meta.url,["./chunk.FXT5CN32.js","./chunk.WVLEGCRI.js","./chunk.LETAQTLJ.js","./chunk.BUVTUAB5.js","./chunk.WSDJPXJD.js","./chunk.F4VB6Q2W.js","./chunk.FFOD5B4B.js","./chunk.Z7Y3R3YR.js","./chunk.YXEO3Y65.js","./chunk.U3HERHAI.js","./chunk.FBILPNGH.js","./chunk.MODLZJD4.js","./chunk.SDO3U72B.js","./chunk.6HY6ZGEE.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.E3UL4MCD.js")))),N=x.part((e,r)=>(0,n.jsx)(e.ArrangeLists,{...r}),{what:"This list",quiet:!0}),he=x.part((e,r)=>(0,n.jsx)(e.ArrangeChips,{...r}),{what:"This list",quiet:!0}),Oe=()=>x.load(),q=new Map;function Te(e){let{schema:r,graph:i,kind:a,arrangement:o,onChange:s}=e,u=e.offers??ee(r,a),g=e.testId??"arrange",y=C(e.allow,"sort")&&u.sorts.length>1,m=C(e.allow,"group")&&u.groups.length>0,F=C(e.allow,"filter")?ce(u,i,e.filters):[],L=e.chips?pe(F,e.filters):[],H=F.filter(t=>!L.includes(t)),G=H.length>0,_=e.query!==!1&&e.allow!==!1,w=we(e.noun,e.kept),v=e.past&&e.past.count>0?e.past:null;if(!y&&!m&&!G&&!_&&!w&&!v)return null;let z=t=>JSON.stringify(re(t)),R=`${g}|${a}`,p={current:q.get(R)??{words:new Set,latest:null,at:0}};q.set(R,p.current),p.current.latest&&Date.now()-p.current.at>1500&&!p.current.words.has(z(o))&&(p.current={words:new Set,latest:null,at:0},q.set(R,p.current));let d=p.current.latest??o,b=t=>{let l={...p.current.latest??o,...t};for(let c of Object.keys(l))l[c]===void 0&&delete l[c];p.current.latest=l,p.current.at=Date.now(),p.current.words.add(z(l)),s(l)},f=d.filter??[],O=t=>{let l=f.filter((c,I)=>I!==t);b({filter:l.length>0?l:void 0})},A=t=>f.some(l=>l.key===t.key&&l.value===t.value),te=t=>A(t)?O(f.findIndex(l=>l.key===t.key&&l.value===t.value)):b({filter:[...f,t]}),T=d.sort?u.sorts.find(t=>t.key===d.sort.by):void 0,j=d.group?u.groups.find(t=>t.key===d.group.by):void 0,ne=me(T),k={schema:r,graph:i,offers:{...u,filters:H},arrangement:d,set:b,toggle:te,has:A,testId:g},ae=(t,l)=>A({key:t,value:l})?O(f.findIndex(c=>c.key===t&&c.value===l)):b({filter:[...f.filter(c=>c.key!==t),{key:t,value:l}]}),oe=d.sort?(0,n.jsxs)(n.Fragment,{children:["Sorted by ",P(T?.label??d.sort.by),(0,n.jsx)("span",{"aria-hidden":"true",children:d.sort.direction==="desc"?" \u2193":" \u2191"})]}):"Sort",ie=d.group?.bucket&&j?.buckets?`, a ${d.group.bucket} each`:"",B=d.group?`Grouped by ${P(j?.label??d.group.by)}${ie}`:"Group";return(0,n.jsxs)("div",{"data-testid":`${g}-bar`,role:"group","aria-label":"Arrange",className:"graview-arrange",style:e.style,onPointerEnter:x.prefetch,onFocus:x.prefetch,children:[(0,n.jsx)("style",{children:xe}),(0,n.jsxs)("div",{className:"graview-arrange-line",children:[w?(0,n.jsxs)("span",{className:"graview-arrange-count","data-testid":`${g}-count`,children:[w.kept?(0,n.jsx)("span",{"data-testid":`${g}-kept`,children:w.kept}):null,w.words]}):null,v?(0,n.jsxs)("button",{type:"button",className:"graview-arrange-open","data-testid":`${g}-past`,title:`${M(v.count)} more behind the horizon \u2014 press to widen the view to the past`,onClick:t=>{let l=t.currentTarget.closest("[data-graview-view]"),c=t.currentTarget;v.widen();let I=0,W=()=>{if(document.activeElement!==c&&document.activeElement!==document.body&&c.isConnected)return;let $=l?.querySelector('[role="group"][aria-label="Arrange"] :is(button, input)');if($&&$!==c&&$.isConnected)return $.focus({preventScroll:!0});++I<120&&requestAnimationFrame(W)};requestAnimationFrame(W)},children:["+",M(v.count)," past"]}):null,f.map((t,l)=>{let c=ye(r,i,u,t);return(0,n.jsxs)("span",{className:"graview-arrange-token","data-testid":`${g}-condition`,children:[c,(0,n.jsx)("button",{type:"button","aria-label":`Remove: ${c}`,title:"Remove",onClick:()=>O(l),children:"\xD7"})]},`${t.key}:${t.value}`)}),y?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-one",children:(0,n.jsx)(E,{testId:`${g}-sort`,value:d.sort?.by??"",set:d.sort!==void 0,label:"Sort",name:d.sort?`Sorted by ${P(T?.label??d.sort.by)}, ${ne[d.sort.direction].toLowerCase()}`:"Sort",list:t=>(0,n.jsx)(N,{which:"sort",done:t,...k}),children:oe})}):null,m?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-one",children:(0,n.jsx)(E,{testId:`${g}-group`,value:d.group?.by??"",set:d.group!==void 0,label:"Group",name:B,list:t=>(0,n.jsx)(N,{which:"group",done:t,...k}),children:B})}):null,G?(0,n.jsx)("span",{className:"graview-arrange-part",children:(0,n.jsx)(E,{testId:`${g}-add`,value:"",set:!1,label:"Filter",name:f.length>0?`Filter \u2014 ${f.length} on`:"Filter",list:t=>(0,n.jsx)(N,{which:"filter",done:t,...k}),children:"Filter"})}):null,y||m?(0,n.jsx)("span",{className:"graview-arrange-part graview-arrange-all",children:(0,n.jsx)(E,{testId:`${g}-all`,value:"",set:!1,label:"Arrange",name:"Arrange: sort and group",list:t=>(0,n.jsx)(N,{which:"all",done:t,parts:{sort:y,group:m,filter:!1},...k}),children:"Arrange"})}):null,_?(0,n.jsxs)("label",{className:"graview-arrange-words-at",children:[(0,n.jsx)("span",{style:X,children:"Find"}),(0,n.jsx)("input",{type:"search",className:"graview-arrange-words","data-testid":`${g}-query`,value:d.query??"",placeholder:"Find\u2026",onChange:t=>b({query:t.target.value.length>0?t.target.value:void 0})})]}):null,L.length>0&&e.chips?(0,n.jsx)(h.Suspense,{fallback:null,children:(0,n.jsx)(he,{offers:L,chips:e.chips,schema:r,graph:i,kind:a,arrangement:d,has:A,choose:ae,testId:g})}):null,e.end]})]})}function we(e,r){if(!r)return null;let i=r.shown!==r.of;if(!e)return i?{words:"",kept:`${r.shown} of ${r.of}`}:null;let a=r.of===1?e.one:e.many;return i?{words:` ${a}`,kept:`${r.shown} of ${r.of}`}:{words:`${r.of} ${a}`}}function E({testId:e,value:r,set:i,label:a,name:o,list:s,children:u}){let g=Q("arrange",{align:"start"}),y=(0,h.useRef)(null);return(0,h.useEffect)(()=>{g.open&&y.current?.querySelector('[aria-pressed="true"]')?.focus({preventScroll:!0})},[g.open]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",className:"graview-arrange-open","data-testid":e,"data-set":i?"":void 0,value:r,"aria-label":o,...g.trigger,onClick:g.toggle,children:[u,(0,n.jsx)(be,{})]}),g.open?(0,n.jsx)("div",{...g.pane,ref:m=>{g.pane.ref(m),y.current=m},role:"group","aria-label":a,"data-testid":"arrange-list","data-arrange":e,className:"graview-arrange-list",style:J,onKeyDown:ve,children:s(()=>g.setOpen(!1))}):null]})}function ve(e){if(!["ArrowDown","ArrowUp","Home","End"].includes(e.key))return;let r=[...e.currentTarget.querySelectorAll("button:not([disabled]), input")];if(r.length===0)return;let i=r.indexOf(document.activeElement);if(document.activeElement instanceof HTMLInputElement&&document.activeElement.type==="date"&&(e.key==="ArrowUp"||e.key==="ArrowDown"))return;e.preventDefault();let a=e.key==="Home"?0:e.key==="End"?r.length-1:e.key==="ArrowDown"?(i+1)%r.length:(i-1+r.length)%r.length;r[a].focus()}function be(){return(0,n.jsx)("svg",{width:"9",height:"9",viewBox:"0 0 10 10","aria-hidden":"true",focusable:"false",style:{flex:"0 0 auto",opacity:.7},children:(0,n.jsx)("path",{d:"M2 3.5 L5 6.5 L8 3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}var xe=`
|
|
2
|
+
.graview-arrange{container-type:inline-size;box-sizing:border-box;width:100%;min-width:0;max-width:100%}
|
|
3
|
+
.graview-arrange-line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0;font-size:.875rem;line-height:1.35;color:var(--graview-ink-muted)}
|
|
4
|
+
.graview-arrange-count{margin-right:2px;color:var(--graview-ink-muted)}
|
|
5
|
+
.graview-arrange-part{display:inline-flex;align-items:center;min-width:0}
|
|
6
|
+
.graview-arrange-count~.graview-arrange-part::before{content:"\xB7" / "";margin-right:6px;color:var(--graview-ink-muted)}
|
|
7
|
+
.graview-arrange-open{display:inline-flex;align-items:center;gap:5px;min-height:28px;min-width:0;max-width:100%;margin:0;padding:0 6px;border:1px solid transparent;border-radius:7px;background:none;box-shadow:none;font:inherit;letter-spacing:normal;text-transform:none;text-align:left;color:var(--graview-ink-muted);cursor:pointer}
|
|
8
|
+
.graview-arrange-open[data-set]{color:var(--graview-ink)}
|
|
9
|
+
.graview-arrange-open:hover,.graview-arrange-open[aria-expanded=true]{border-color:var(--graview-edge);color:var(--graview-ink)}
|
|
10
|
+
.graview-arrange :focus-visible,.graview-arrange-list :focus-visible{outline:2px solid var(--graview-accent);outline-offset:1px}
|
|
11
|
+
.graview-arrange-all{display:none}
|
|
12
|
+
@container (max-width: ${fe-1}px){.graview-arrange-one{display:none}.graview-arrange-all{display:inline-flex}}
|
|
13
|
+
.graview-arrange-token{display:inline-flex;align-items:center;gap:0;min-width:0;min-height:26px;box-sizing:border-box;padding:0 2px 0 10px;border:1px solid var(--graview-edge);border-radius:999px;background:var(--graview-panel);color:var(--graview-ink);overflow-wrap:anywhere}
|
|
14
|
+
.graview-arrange-token button{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin:0;padding:0;border:0;border-radius:6px;background:none;font:inherit;line-height:1;color:var(--graview-ink-muted);cursor:pointer}
|
|
15
|
+
.graview-arrange-token button:hover{color:var(--graview-ink);background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
|
|
16
|
+
.graview-arrange-words-at{display:inline-flex;min-width:0;max-width:100%}
|
|
17
|
+
.graview-arrange-words{box-sizing:border-box;width:min(100%,12rem);min-height:28px;margin:0;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;font:inherit;color:var(--graview-ink)}
|
|
18
|
+
.graview-arrange-words:hover,.graview-arrange-words:focus{border-color:var(--graview-edge)}
|
|
19
|
+
`;function Ie(e){let r=[];return e.query&&r.push(`\u201C${e.query}\u201D`),e.filter?.length&&r.push(`${e.filter.length} condition${e.filter.length===1?"":"s"}`),e.group&&r.push(`by ${e.group.by}`),e.sort&&r.push(`sorted by ${e.sort.by}`),r.length>0?r.join(" \xB7 "):null}export{Re as a,le as b,ge as c,de as d,ue as e,ce as f,pe as g,fe as h,ye as i,P as j,me as k,Oe as l,Te as m,Ie as n};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b}from"./chunk.FDZE5LTJ.js";import"./chunk.LGRVEHXT.js";import"./chunk.CTASTRQN.js";import"./chunk.DPJNGFEZ.js";import"./chunk.YNEHJWJV.js";import"./chunk.QQAZQDRW.js";import"./chunk.72ZCLEQC.js";import"./chunk.ONYBW45K.js";import"./chunk.2VR7YEJ6.js";import"./chunk.FXT5CN32.js";import"./chunk.WVLEGCRI.js";import"./chunk.LETAQTLJ.js";import"./chunk.BUVTUAB5.js";import"./chunk.HJCQ6I3S.js";import"./chunk.OJY7VJ7D.js";import"./chunk.GEFXU4VO.js";import"./chunk.7VP6Y6D2.js";import"./chunk.WSO7JOW5.js";import"./chunk.XOE4KNP2.js";import"./chunk.2KFZHUAC.js";import"./chunk.V5I4GZEY.js";import"./chunk.FIFUMX5X.js";import"./chunk.BIDL7GQD.js";import"./chunk.V7W5AQKL.js";import"./chunk.EMFOMSMI.js";import"./chunk.QOS5T46W.js";import"./chunk.GME63ZHI.js";import"./chunk.Q5WEOX3Q.js";import"./chunk.4FCFNAA4.js";import"./chunk.4AC2QM7T.js";import"./chunk.JXNVNFV4.js";import"./chunk.WVUJXDXZ.js";import"./chunk.I2737CPF.js";import"./chunk.NJRLJEJY.js";import"./chunk.CVPMSPCH.js";import"./chunk.OTV5XTBB.js";import"./chunk.KBPJ7X7W.js";import"./chunk.OEIWIZCP.js";import"./chunk.MIE4TJRW.js";import"./chunk.5LJVOLKR.js";import"./chunk.OJGHDWI6.js";import"./chunk.OWFS2YDQ.js";import"./chunk.WSDJPXJD.js";import"./chunk.F4VB6Q2W.js";import"./chunk.FFOD5B4B.js";import"./chunk.Z7Y3R3YR.js";import"./chunk.YXEO3Y65.js";import"./chunk.U3HERHAI.js";import"./chunk.FBILPNGH.js";import"./chunk.MODLZJD4.js";import"./chunk.SDO3U72B.js";import"./chunk.6HY6ZGEE.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";export{b as declaredLensView,a as formatFor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as O}from"./chunk.
|
|
1
|
+
import{C as O}from"./chunk.6HY6ZGEE.js";var k=3,A=k+1,P=A+1,z=(o,r)=>o<r?-1:o>r?1:0;function L(o){return(o??0)>4?k:2}function N(o,r,a){let n=[];for(let d of Object.values(o.tryDefinition(r)?.edges??{}))if(d.to!=="*")for(let i of d.to)i!==r&&a.includes(i)&&!n.includes(i)&&n.push(i);return n}function W(o,r={}){let a=[...o.kinds],n=[...(r.order??[]).filter(e=>a.includes(e)),...a.filter(e=>!(r.order??[]).includes(e)).sort(z)].filter((e,t,s)=>s.indexOf(e)===t),d=e=>n.indexOf(e),i=new Map,g=[],h=(e,t,s)=>{i.set(e,{col:t,row:s,side:L(r.counts?.[e])}),g.push({col:t,row:s})};for(let e of n){let t=o.tryDefinition(e)?.plot??r.plots?.[e];t&&h(e,t.col,t.row)}let l=new Map(n.map(e=>[e,N(o,e,a)])),b=new Set(n.filter(e=>l.get(e).length>0||n.some(t=>l.get(t).includes(e)))),v=new Map,C=new Set,D=e=>{let t=v.get(e);if(t!==void 0)return t;if(C.has(e))return-1;C.add(e);let s=0;for(let c of l.get(e))s=Math.max(s,D(c)+1);return C.delete(e),v.set(e,s),s};for(let e of n)b.has(e)&&D(e);let f=[];for(let e of n)b.has(e)&&(f[v.get(e)]??=[]).push(e);let I=new Map,T=Math.max(1,Math.ceil(Math.sqrt(f.length))),H=Math.max(1,...f.map(e=>e?.length??0)),w=Math.max(P,Math.round(r.pitch??P)),R=(e,t)=>r.upright?{col:e%T*w,row:(Math.floor(e/T)*(H+1)+t)*w}:{col:t*w,row:e===0?0:-e*w},$=e=>!g.some(t=>V(t,e)),S=(e,t,s)=>{let c=s;for(;!$(R(t,c))&&c<s+64;)c++;return i.has(e)||h(e,R(t,c).col,R(t,c).row),c},x=0;f.forEach((e=[],t)=>{let s=u=>{let m=l.get(u).map(p=>I.get(p)).filter(p=>p!==void 0);return m.length>0?m.reduce((p,q)=>p+q,0)/m.length:1/0},c=[...e].sort((u,m)=>s(u)-s(m)||d(u)-d(m)),y=0;for(let u of c)i.has(u)||(y=S(u,t,y),I.set(u,y),x=Math.max(x,y+1),y++)});let j=n.filter(e=>!b.has(e)&&!i.has(e)),M=Math.max(r.upright?x:f.length,Math.ceil(Math.sqrt(j.length*2)),1),E=b.size>0?1:0;return j.forEach((e,t)=>{r.upright?S(e,f.length+E+Math.floor(t/M),t%M):S(e,t%M,x+E+Math.floor(t/M))}),i}function V(o,r){return Math.abs(o.col-r.col)<A&&Math.abs(o.row-r.row)<A}function X(o,r,a,n=.5){return{x:(o-r)*a/2,y:(o+r)*a*n/2}}var G=1,B=/^(done|completed?|closed|finished|shipped|sent|won|lost|passed|declined|dropped|answered|resolved|fixed|archived|cancell?ed|retired|released|published|delivered|paid|merged|rejected|written[-_ ]?up|out)$/i,F=/^(doing|in[-_ ]?progress|active|building|started|working|in[-_ ]?review|review(ing)?|fixing|ongoing|underway|testing|drafting|writing|running)$/i;function _(o,r,a){let n=O(o.tryDefinition(r)?.fields.shape?.[a]);for(;n&&n.innerType!==void 0&&n.type!=="enum";)n=O(n.innerType);if(n?.type!=="enum")return;let d=(n.entries?Object.values(n.entries):n.values??[]).filter(i=>typeof i=="string");return d.length>0?d:void 0}function J(o,r){let a=o.tryDefinition(r);if(!a)return;let n=a.lifecycle,d=Object.keys(a.fields.shape??{}),i=[n?.field,...d.filter(l=>/^(status|stage|state|phase)$/i.test(l))].find(l=>l!==void 0&&_(o,r,l)!==void 0);if(!i)return;let g=_(o,r,i),h=n?.field===i&&Array.isArray(n.retired)?n.retired:[];return{field:i,values:g,tiers:g.map(l=>h.includes(l)||B.test(l)?"done":F.test(l)?"active":"waiting")}}export{P as a,W as b,X as c,G as d,J as e};
|