graview 0.1.46 → 0.1.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/preview/{chunk.L2PI7V4R.js → chunk.24OZGU7J.js} +1 -1
- package/dist/preview/{chunk.FGR7KCI6.js → chunk.2CLANQHZ.js} +1 -1
- package/dist/preview/{chunk.P4O5DGLN.js → chunk.2L3VFGHX.js} +1 -1
- package/dist/preview/chunk.2MCZ4CU5.js +1 -0
- package/dist/preview/{chunk.R2AG4NHQ.js → chunk.2W22AWSL.js} +1 -1
- package/dist/preview/chunk.3LDYUO77.js +1 -0
- package/dist/preview/{chunk.6OPI4WWO.js → chunk.47RTA6M3.js} +1 -1
- package/dist/preview/{chunk.N7VNEUJR.js → chunk.4YS7547F.js} +1 -1
- package/dist/preview/{chunk.W45NKVSV.js → chunk.4YXJPKXD.js} +1 -1
- package/dist/preview/{chunk.UNCS63AM.js → chunk.52VGZBO3.js} +1 -1
- package/dist/preview/{chunk.X25KXCWI.js → chunk.57ZSMK3R.js} +1 -1
- package/dist/preview/{chunk.6MADC6DM.js → chunk.5AGW4NRZ.js} +1 -1
- package/dist/preview/chunk.5G53VDOC.js +1 -0
- package/dist/preview/chunk.5M4TMZXC.js +1 -0
- package/dist/preview/{chunk.GEPNIMXW.js → chunk.5TM5VA2H.js} +1 -1
- package/dist/preview/{chunk.Y5ARSVH4.js → chunk.63MS2LOP.js} +1 -1
- package/dist/preview/{chunk.LKVXSC5O.js → chunk.6QVXXQCW.js} +1 -1
- package/dist/preview/{chunk.RNBPDB37.js → chunk.6TIEX67B.js} +1 -1
- package/dist/preview/{chunk.JF3GD4H5.js → chunk.76GF5US2.js} +1 -1
- package/dist/preview/{chunk.55D33E5A.js → chunk.7ELB37JU.js} +1 -1
- package/dist/preview/chunk.7N2GXZYI.js +3 -0
- package/dist/preview/{chunk.ATDU5Y7V.js → chunk.7NNI7YH4.js} +1 -1
- package/dist/preview/{chunk.MWONSI3P.js → chunk.A3RNSSUQ.js} +1 -1
- package/dist/preview/{chunk.CICGAEBW.js → chunk.A7RKTSOH.js} +2 -2
- package/dist/preview/{chunk.T7O6K3IN.js → chunk.AWXDZUKH.js} +1 -1
- package/dist/preview/{chunk.FXTBMW3S.js → chunk.BBS5C2BY.js} +1 -1
- package/dist/preview/{chunk.IJABD7SI.js → chunk.C3NHNYA6.js} +1 -1
- package/dist/preview/{chunk.S5MQVPLF.js → chunk.C44MC5X3.js} +1 -1
- package/dist/preview/{chunk.O24DD2VF.js → chunk.CMOXKRWT.js} +1 -1
- package/dist/preview/{chunk.HBD7FBZS.js → chunk.COYLGLTI.js} +1 -1
- package/dist/preview/{chunk.6SOUQNXR.js → chunk.CTQULC5F.js} +1 -1
- package/dist/preview/{chunk.PLWVLW22.js → chunk.DNROW6LX.js} +1 -1
- package/dist/preview/{chunk.JLEC3USG.js → chunk.DQS7D2W2.js} +1 -1
- package/dist/preview/{chunk.UR3XYOQ6.js → chunk.ETPKXUAN.js} +1 -1
- package/dist/preview/{chunk.XXEYRHRG.js → chunk.ETR6AV47.js} +1 -1
- package/dist/preview/{chunk.6QYJ2K6K.js → chunk.EUPSAYEI.js} +1 -1
- package/dist/preview/{chunk.I3GP5JW7.js → chunk.EYI3Y2DY.js} +1 -1
- package/dist/preview/chunk.F2VMMCVK.js +1 -0
- package/dist/preview/{chunk.SS27NH5O.js → chunk.F67F6QZ6.js} +1 -1
- package/dist/preview/chunk.FOJDVK2Q.js +1 -0
- package/dist/preview/{chunk.VC3BX2ZF.js → chunk.FOQ27RAR.js} +1 -1
- package/dist/preview/{chunk.EPUBSKKL.js → chunk.FWSCBHZ5.js} +1 -1
- package/dist/preview/chunk.G446PWV6.js +1 -0
- package/dist/preview/{chunk.WP5W44Y4.js → chunk.GCKZ2YRJ.js} +2 -2
- package/dist/preview/{chunk.WO3DDFFY.js → chunk.GQHAAKJG.js} +1 -1
- package/dist/preview/{chunk.F37DHXA2.js → chunk.I6JLOEJU.js} +1 -1
- package/dist/preview/chunk.IJNOT4S4.js +4 -0
- package/dist/preview/{chunk.ONEYVLC2.js → chunk.IPAZOKMQ.js} +1 -1
- package/dist/preview/{chunk.5ESCD57M.js → chunk.IQ2HKGJS.js} +1 -1
- package/dist/preview/{chunk.DEUTHHGI.js → chunk.IROYMLER.js} +1 -1
- package/dist/preview/chunk.ISNEX772.js +1 -0
- package/dist/preview/{chunk.R4OU7O6C.js → chunk.IXOQQBJE.js} +1 -1
- package/dist/preview/{chunk.NWA7Q6CI.js → chunk.IYIN6VSN.js} +1 -1
- package/dist/preview/{chunk.FO5BOBYV.js → chunk.JUWWRRHA.js} +1 -1
- package/dist/preview/{chunk.JNIGZEOF.js → chunk.K2NCGPCL.js} +1 -1
- package/dist/preview/{chunk.4KNEBLB7.js → chunk.KSM6NVAT.js} +1 -1
- package/dist/preview/{chunk.BFKV4GKP.js → chunk.L4YNDNX7.js} +1 -1
- package/dist/preview/{chunk.A5VGTO3E.js → chunk.MBETS27C.js} +1 -1
- package/dist/preview/{chunk.3OSGN463.js → chunk.MCB26YCQ.js} +1 -1
- package/dist/preview/chunk.MCCUVGTE.js +1 -0
- package/dist/preview/{chunk.BCWPV4WR.js → chunk.MF73YBJL.js} +1 -1
- package/dist/preview/{chunk.UOXFALRL.js → chunk.N7JT6MG2.js} +1 -1
- package/dist/preview/{chunk.V5Z2OED6.js → chunk.NDWW5EER.js} +1 -1
- package/dist/preview/{chunk.LVEFQLGQ.js → chunk.NEEOVRB7.js} +1 -1
- package/dist/preview/{chunk.NMIXBH37.js → chunk.NFIGGSMJ.js} +1 -1
- package/dist/preview/{chunk.JBW3DI7E.js → chunk.O2WWYZI7.js} +1 -1
- package/dist/preview/{chunk.XSNAG4JT.js → chunk.O4WEJ47H.js} +3 -3
- package/dist/preview/{chunk.LUNATPAB.js → chunk.OCTOGZVJ.js} +2 -2
- package/dist/preview/{chunk.BAMPYMUE.js → chunk.OJGUIWDD.js} +1 -1
- package/dist/preview/{chunk.VDVJCLGS.js → chunk.OONCUAOH.js} +1 -1
- package/dist/preview/{chunk.VBPK6ARF.js → chunk.P4KCZRIG.js} +1 -1
- package/dist/preview/{chunk.4Y6VGQVQ.js → chunk.PBKO5CKD.js} +1 -1
- package/dist/preview/{chunk.JLYNMAME.js → chunk.PYE3WZM7.js} +1 -1
- package/dist/preview/{chunk.F5PBK4TF.js → chunk.QGG6ZRJ5.js} +2 -2
- package/dist/preview/{chunk.LETJC5TD.js → chunk.QZEZHCOI.js} +1 -1
- package/dist/preview/{chunk.DQOCBKC3.js → chunk.R6V37SR7.js} +1 -1
- package/dist/preview/{chunk.NGIPVTTE.js → chunk.RBJAPOZ3.js} +1 -1
- package/dist/preview/{chunk.RZXPBOGT.js → chunk.RG6WNOBW.js} +1 -1
- package/dist/preview/{chunk.LKN734RR.js → chunk.RUPRZDN3.js} +1 -1
- package/dist/preview/{chunk.S6WHA4CW.js → chunk.RVJXO5GG.js} +1 -1
- package/dist/preview/chunk.RX2M4C5W.js +2 -0
- package/dist/preview/{chunk.EAJB2PJZ.js → chunk.RZF3QM4E.js} +1 -1
- package/dist/preview/{chunk.JLIUUFK2.js → chunk.S5IQFZ5Z.js} +1 -1
- package/dist/preview/{chunk.TOZJZXWQ.js → chunk.SD6N4DGF.js} +1 -1
- package/dist/preview/{chunk.URO2EGY7.js → chunk.SGKK4UKP.js} +1 -1
- package/dist/preview/{chunk.OHSJQYJN.js → chunk.SWWAEOZ7.js} +1 -1
- package/dist/preview/chunk.SZR3Z43B.js +1 -0
- package/dist/preview/{chunk.RTI3FEDD.js → chunk.T42S2WMB.js} +1 -1
- package/dist/preview/chunk.T7RJCEJB.js +18 -0
- package/dist/preview/{chunk.3MMLRSRC.js → chunk.TCXKPILZ.js} +1 -1
- package/dist/preview/{chunk.TFVFJFXC.js → chunk.TJEV5ZAM.js} +3 -3
- package/dist/preview/{chunk.Z5IGHCZX.js → chunk.UV3YU64Z.js} +1 -1
- package/dist/preview/{chunk.WQONZBA3.js → chunk.V7XHNRQM.js} +2 -2
- package/dist/preview/{chunk.M5GJHVWZ.js → chunk.VC3UGFHY.js} +1 -1
- package/dist/preview/{chunk.NIVTK2W5.js → chunk.VSNHCGKC.js} +1 -1
- package/dist/preview/{chunk.UVNVDLV5.js → chunk.VXVWUIGO.js} +1 -1
- package/dist/preview/chunk.W6COSBO2.js +21 -0
- package/dist/preview/{chunk.3VFYSXMQ.js → chunk.WHEUTAXA.js} +1 -1
- package/dist/preview/{chunk.ITYQUSZI.js → chunk.WJS6P7GI.js} +1 -1
- package/dist/preview/chunk.X5G7FOPY.js +12 -0
- package/dist/preview/{chunk.6WA6ASQB.js → chunk.XYEFZ2OO.js} +1 -1
- package/dist/preview/chunk.Y4ZUJUUT.js +25 -0
- package/dist/preview/{chunk.HZCA3UWJ.js → chunk.YHH4TWZ2.js} +1 -1
- package/dist/preview/{chunk.4RJZVTW7.js → chunk.YVONXFKE.js} +1 -1
- package/dist/preview/{chunk.5R2R364Q.js → chunk.Z4UM4CMT.js} +1 -1
- package/dist/preview/{chunk.4HYJHGI4.js → chunk.ZCYGUP3I.js} +1 -1
- package/dist/preview/{chunk.FVOJCVRX.js → chunk.ZL7ZBJUU.js} +1 -1
- package/dist/preview/{chunk.JT3IZIU5.js → chunk.ZQY6ODXC.js} +1 -1
- package/dist/preview/{chunk.SL2FZ54V.js → chunk.ZWVN75EY.js} +1 -1
- package/dist/preview/index.html +33 -33
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.2JJYGYT2.js +0 -1
- package/dist/preview/chunk.5K6KX3UC.js +0 -1
- package/dist/preview/chunk.6BDM2XRX.js +0 -1
- package/dist/preview/chunk.6UIW664O.js +0 -6
- package/dist/preview/chunk.AQQZY6OY.js +0 -3
- package/dist/preview/chunk.GVY5UQTJ.js +0 -1
- package/dist/preview/chunk.JHIUG25Q.js +0 -1
- package/dist/preview/chunk.JQLR6KO2.js +0 -1
- package/dist/preview/chunk.NITU5H4J.js +0 -1
- package/dist/preview/chunk.UPQZU7UO.js +0 -21
- package/dist/preview/chunk.V3QUTJR2.js +0 -2
- package/dist/preview/chunk.WM2LWHTJ.js +0 -1
- package/dist/preview/chunk.WSTBCWW7.js +0 -4
- package/dist/preview/chunk.X233NILF.js +0 -1
- package/dist/preview/chunk.XWAMQPUM.js +0 -25
- package/dist/preview/chunk.XXDBZQNY.js +0 -18
- package/dist/preview/chunk.ZTIF23VF.js +0 -1
|
@@ -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 Se,b as $e,c as ze,d as $a,e as za,h as Ee,i as Ce,k as Ae,l as Te,m as Ea}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 Se,b as $e,c as ze,d as $a,e as za,h as Ee,i as Ce,k as Ae,l as Te,m as Ea}from"./chunk.IYIN6VSN.js";import{c as ke}from"./chunk.VC3UGFHY.js";import{g as ya,h as ka}from"./chunk.IJNOT4S4.js";import"./chunk.AGIO2GRV.js";import{b as ma,c as fa,d as ye,e as ha}from"./chunk.VSNHCGKC.js";import{a as ba}from"./chunk.HJCQ6I3S.js";import{b as xa}from"./chunk.BNPQUI3F.js";import"./chunk.6RY6OSE6.js";import{b as la}from"./chunk.CTQULC5F.js";import{b as fe,d as xe,e as be}from"./chunk.TCXKPILZ.js";import"./chunk.64WM4IBI.js";import{b as he}from"./chunk.IQ2HKGJS.js";import"./chunk.R6V37SR7.js";import"./chunk.IROYMLER.js";import"./chunk.7NNI7YH4.js";import"./chunk.PKUDIWIF.js";import{p as va,q as wa,r as ua}from"./chunk.VW2VCPJX.js";import"./chunk.WBHM5I3I.js";import"./chunk.FOQ27RAR.js";import"./chunk.UKAPFIPJ.js";import"./chunk.UT6642FC.js";import{e as Sa}from"./chunk.FOJDVK2Q.js";import"./chunk.C44MC5X3.js";import"./chunk.TI4OSTQV.js";import"./chunk.Q7RQC3F7.js";import"./chunk.GZHZLJBF.js";import{c as oa,d as da,e as Z,o as sa}from"./chunk.5AGW4NRZ.js";import"./chunk.OJGHDWI6.js";import"./chunk.DQS7D2W2.js";import"./chunk.HDRD33II.js";import"./chunk.DX357TZ3.js";import"./chunk.H7KCWCB4.js";import{H as ca,b as Ye,e as ta,f as ia,j as Wa,m as na,o as pa,v as ga}from"./chunk.O4WEJ47H.js";import{Da as pe,G as O,Ka as ea,La as K,Oa as aa,R as f,Sa as ra,X as Xe,Z as Je,_ as S,aa as le,ha as Ze,i as ue,j as ne,m as Q,n as oe,o as me,r as de,x as je,y as se,z as Qe}from"./chunk.Y4ZUJUUT.js";import{a as j}from"./chunk.SDO3U72B.js";import{$b as Ve,U as _e,fa as Ue,ha as ie,uc as H,wc as P}from"./chunk.AS4CQBOQ.js";import"./chunk.2AZTW66C.js";import{b as p}from"./chunk.AJZBJBMO.js";function qa(e){return`
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
.graview-altitude-control {
|
|
@@ -1067,7 +1067,7 @@ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=gl
|
|
|
1067
1067
|
pointer-events: auto;
|
|
1068
1068
|
}
|
|
1069
1069
|
|
|
1070
|
-
[data-graview-record-focus] > :not(.graview-kind-tag) {
|
|
1070
|
+
[data-graview-record-focus] > :not(.graview-kind-tag):not([data-graview-preview]) {
|
|
1071
1071
|
min-height: 0;
|
|
1072
1072
|
max-height: 100%;
|
|
1073
1073
|
overflow-y: auto;
|
|
@@ -1123,5 +1123,5 @@ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=gl
|
|
|
1123
1123
|
}
|
|
1124
1124
|
[data-graview-connector][data-graview-activity] {
|
|
1125
1125
|
animation: graview-relation 1200ms cubic-bezier(0.22, 1, 0.36, 1);
|
|
1126
|
-
}`}function Me(e="dark",n={}){let s=qa(e);return n.scope===void 0?s:Ye(s,n.scope)}var B=p(O(),1);var W=p(f(),1),Fa=pe(j(()=>(__graviewPreload(import.meta.url,["./chunk.XSNAG4JT.js","./chunk.XWAMQPUM.js","./chunk.SDO3U72B.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.I3GP5JW7.js")))).part(e=>(0,W.jsx)(e.MapKey,{}),{quiet:!0});function Ie(){let{store:e}=S(),{view:n}=K(),s=le(),o=(0,B.useMemo)(()=>e.graph.allEdges().length>0,[e,s]),[r,v]=(0,B.useState)(!1),g=(0,B.useId)(),c=(0,B.useRef)(null),M=(0,B.useRef)(null);return(0,B.useEffect)(()=>{if(!r)return;let z=x=>{let I=x.target;I&&(M.current?.contains(I)||c.current?.contains(I))||v(!1)};return document.addEventListener("pointerdown",z,!0),()=>document.removeEventListener("pointerdown",z,!0)},[r]),o?(0,W.jsxs)("div",{style:{display:"contents"},onKeyDown:z=>{z.key!=="Escape"||!r||(z.preventDefault(),z.stopPropagation(),v(!1),c.current?.focus({preventScroll:!0}))},children:[(0,W.jsx)("button",{ref:c,type:"button","data-testid":"lines-key","aria-expanded":r,"aria-controls":g,title:"What the lines mean",onClick:()=>v(z=>!z),style:{position:"absolute",top:60,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("overview"),height:30,padding:"0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.8125rem",color:r?"var(--graview-accent)":"var(--graview-ink-muted)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)"},children:"Key"}),r?(0,W.jsxs)("div",{ref:M,id:g,"data-testid":"lines-key-pane","data-graview-offstage":"",style:{position:"absolute",top:98,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("rail"),width:za,maxHeight:"calc(100cqh - 120px)",overflowY:"auto",boxSizing:"border-box",padding:"8px 8px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[n.overview?(0,W.jsx)(Fa,{}):null,(0,W.jsx)($a,{inside:!0,widthOf:ba})]}):null]}):null}var ce=p(O(),1),ge=p(f(),1);function Ca(e){return e.lens!==null?{what:"lens",kind:e.lens}:e.records.length===1&&e.districts.length===0?{what:"record",id:e.records[0]}:e.districts.length===1&&e.records.length===0?{what:"district",kind:e.districts[0]}:null}var Ga=pe(j(()=>(__graviewPreload(import.meta.url,["./chunk.WSTBCWW7.js","./chunk.JBW3DI7E.js","./chunk.NIVTK2W5.js","./chunk.HJCQ6I3S.js","./chunk.BNPQUI3F.js","./chunk.6RY6OSE6.js","./chunk.DEUTHHGI.js","./chunk.EPUBSKKL.js","./chunk.ATDU5Y7V.js","./chunk.AQQZY6OY.js","./chunk.PKUDIWIF.js","./chunk.VW2VCPJX.js","./chunk.WBHM5I3I.js","./chunk.VC3BX2ZF.js","./chunk.UKAPFIPJ.js","./chunk.UT6642FC.js","./chunk.Q7RQC3F7.js","./chunk.WVUJXDXZ.js","./chunk.ZIEHF67C.js","./chunk.UHX4WTM7.js","./chunk.IKX4VDTW.js","./chunk.RNEJYIQ7.js","./chunk.TBQOSI4J.js","./chunk.KWQ7QOHD.js","./chunk.GZHZLJBF.js","./chunk.6MADC6DM.js","./chunk.OJGHDWI6.js","./chunk.JLEC3USG.js","./chunk.HDRD33II.js","./chunk.DX357TZ3.js","./chunk.H7KCWCB4.js","./chunk.XSNAG4JT.js","./chunk.XWAMQPUM.js","./chunk.SDO3U72B.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.EAJB2PJZ.js")))),_a=Ga.part((e,n)=>(0,ge.jsx)(e.MapPanelFor,{showing:n.showing}),{what:"This panel",quiet:!0});function Re(){let{store:e,view:n,selection:s,hiddenKinds:o,seatTalk:r}=S();le();let v=(0,ce.useSyncExternalStore)(r.subscribe,()=>r.get().draft!==null,()=>!1);if(!n.overview||v)return null;let g=Ca(xa(s,{...n,beside:!0},c=>e.graph.getNode(c)?.kind));return!g||g.what!=="record"&&(o.has(g.kind)||!e.schema.kinds.includes(g.kind))?null:(0,ge.jsx)(ce.Suspense,{fallback:null,children:(0,ge.jsx)(_a,{showing:g})})}var Ua=p(O(),1);var D=p(f(),1);function Le(){let{view:e,go:n}=K(),{store:s,views:o,hiddenKinds:r}=S(),v=e.overview??!1,g=o.places().map($=>$.kind).filter($=>!r.has($)),c=ca(e,s.schema.kinds,g),M=()=>{n(ne(Q(e,!1),c))},z=(()=>{if(!c)return null;let $=je(c)[0],y=e.within?.view,C=(y?o.places().find(R=>R.as===y):void 0)??($?o.places().filter(R=>R.kind===$).at(-1):void 0);return C?C.title:$?ie(s.schema,$):s.graph.getNode(c)?.label??null})(),x=v?"Close the map":"Up",I=v&&z?`Close the map, down to ${z}`:x;return(0,D.jsxs)("button",{type:"button","data-testid":"overview",className:"graview-altitude-control","aria-pressed":v,"aria-label":I,title:v?I:"Up \u2014 the whole thing, from above",onClick:()=>v?M():n(Q(e,!0)),style:{position:"absolute",top:14,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("overview"),display:"inline-flex",alignItems:"center",justifyContent:"center",gap:7,height:38,padding:"0 13px 0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.875rem",whiteSpace:"nowrap",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)","--graview-altitude":v?1:0,...v?{color:"var(--graview-accent)"}:{}},children:[(0,D.jsxs)("svg",{className:"graview-altitude-mark",width:"16",height:"16",viewBox:"0 0 12 12","aria-hidden":"true",children:[(0,D.jsx)("ellipse",{className:"graview-altitude-mark-ring",cx:"6",cy:"6.6",rx:"5",ry:"2.6",fill:"none",stroke:"currentColor",strokeWidth:"0.9"}),(0,D.jsx)("circle",{className:"graview-altitude-mark-apex",cx:"6",cy:"4",r:"1.5",fill:"currentColor"}),(0,D.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"left",cx:"1.6",cy:"7.4",r:"1.2",fill:"currentColor"}),(0,D.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"right",cx:"10.4",cy:"7.4",r:"1.2",fill:"currentColor"})]}),(0,D.jsx)("span",{className:"graview-altitude-label",children:x})]})}var Ne=p(f(),1);function He(){let{administered:e}=S(),{view:n,go:s}=K(),o=e.filter(r=>r.canShow);return o.length===0?null:(0,Ne.jsx)("div",{role:"group","aria-label":"Administered","data-testid":"administered",style:{display:"flex",gap:6},children:o.map(r=>(0,Ne.jsx)("button",{type:"button","aria-pressed":r.shown,"data-testid":`show-${r.name}`,title:r.shown?`Hide the ${r.name}'s own districts again`:r.description??`Show the ${r.name}'s own districts beside the domain`,onClick:()=>s(ma(n,r.name,!r.shown)),style:{padding:"3px 11px",borderRadius:999,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:r.shown?"var(--graview-accent)":"var(--graview-edge)",color:r.shown?"var(--graview-accent)":"var(--graview-ink-muted)",background:r.shown?"var(--graview-panel)":"transparent"},children:r.shown?`Hide the ${r.name}`:`Show the ${r.name}`},r.name))})}var h=p(O(),1);var l=p(f(),1);Xe({search:wa,touchWeights:va});var Va=e=>e.about==="rule"?"rule:":e.about==="act"?"act:":e.kind;function Ia({compact:e=!1}){let{store:n,view:s,setView:o,principal:r,setMenuAt:v,brand:g,aiDesk:c,selection:M}=S(),z=ia(c),x=Je(),I=ea(),$=sa().marks.flag,y=(0,h.useRef)(null),C=(0,h.useId)(),[R,m]=(0,h.useState)(!1),[F,ee]=(0,h.useState)(null),[J,ae]=(0,h.useState)(null),A=s.q??"";(0,h.useEffect)(()=>{let a=t=>{if(t.defaultPrevented)return;let i=t.key.toLowerCase()==="k"&&(t.metaKey||t.ctrlKey)&&!t.altKey&&!t.shiftKey,w=t.key==="/"&&!t.metaKey&&!t.ctrlKey&&!t.altKey;if(!i&&!w)return;let d=y.current;if(!d)return;let _=d.closest("[data-graview-embed]"),L=t.target,U=L===document.body||L===document.documentElement||L===window;if(_&&!(i&&U||L instanceof Node&&_.contains(L)))return;let V=document.activeElement,Ka=V instanceof HTMLInputElement||V instanceof HTMLTextAreaElement||V instanceof HTMLSelectElement||V instanceof HTMLElement&&V.isContentEditable;w&&Ka||(t.preventDefault(),d.getClientRects().length===0&&d.closest("[data-graview-app-bar]")?.querySelector('[data-testid="app-find-open"]')?.click(),d.focus({preventScroll:!0}),d.select(),m(!0))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]);let We=(0,h.useMemo)(()=>J&&A.trim()?ua(n,J,x?.words??A,{principal:r,limit:4}):[],[n,A,x,J,r]),ve=(0,h.useMemo)(()=>{let a=new Map;for(let[t,i]of(x?.hits??[]).entries()){if(i.about==="act")continue;let w=Va(i),d=a.get(w)??[];if(d.push({id:`${C}-${t}`,hit:i}),a.set(w,d),i.about==="node"&&i.id===J)for(let[_,L]of We.entries())d.push({id:`${C}-${t}-act-${_}`,hit:L})}return[...a.entries()]},[x,We,J,C]),N=z&&A.trim()?{id:`${C}-ask`,ask:A.trim()}:null,k=(0,h.useMemo)(()=>[...ve.flatMap(([,a])=>a),...N?[N]:[]],[ve,N?.ask]),T=k.find(a=>a.id===F)??k[0],qe=(x?.hits??[]).filter(a=>a.about==="node").length;(0,h.useEffect)(()=>{ee(null),ae(null)},[A]);let re=(0,h.useRef)(null);(0,h.useEffect)(()=>{let a=re.current;if(!a)return;re.current=null;let t=0,i=()=>{let w=document.querySelector(`[data-graview-view="aggregate:${CSS.escape(a)}"]`),d=document.activeElement;if(!(!d||d===document.body||d===document.documentElement||d===y.current||d===w))return;let L=[...w?.querySelectorAll('[role="group"][aria-label="Arrange"] :is(button, input)')??[]].find(U=>U.checkVisibility?.()??!0);if(L)return L.focus({preventScroll:!0});w&&w.tabIndex>=0&&d!==w&&t>30&&w.focus({preventScroll:!0}),++t<240&&requestAnimationFrame(i)};requestAnimationFrame(i)},[s]);let G=a=>{if(a){if(ee(a.id),"ask"in a){ae(null);return}a.hit.about==="node"?ae(a.hit.id):a.hit.about!=="act"&&ae(null)}},Fe=a=>{let t=document.getElementById(C),i=t?.querySelector('[role="option"]')?.getBoundingClientRect().height??0,w=t?.clientHeight??0;return Math.min(a,i>0&&w>0?Math.max(1,Math.floor(w/i)-1):Xa)};(0,h.useEffect)(()=>{F&&document.getElementById(F)?.scrollIntoView?.({block:"nearest"})},[F]);let we=a=>{if(!a)return;if("ask"in a){ta(c,{pointed:{...M[0]!==void 0?{on:M[0]}:{},about:M},asked:a.ask}),o(i=>ye(i)),m(!1);return}let t=a.hit;switch(t.about){case"node":o(i=>oe(ne(Q(i,!1),t.id),[t.id]));break;case"kind":o(i=>se(Q(i,!1),de(t.kind),{ownPicture:!0})),re.current=t.kind;break;case"place":o(i=>Qe(i,t.kind,t.as)),re.current=t.kind;break;case"rule":{let i=I.filter(w=>w.invariant===t.name).flatMap(w=>w.nodeIds);o(w=>oe(w,[...new Set(i)]));break}case"act":{o(w=>oe(w,[t.subject]));let i=y.current?.getBoundingClientRect();v({x:i?.left??0,y:(i?.bottom??0)+6,on:t.subject});break}}m(!1),y.current?.blur()},Da=x?Ya(x.byKind,x.hits,n.schema):"",te=R&&A.trim().length>0,Oa=(0,h.useCallback)(()=>{let a=y.current?.closest("[data-graview-app-bar]")?.getBoundingClientRect();if(a)return{x:a.right,y:a.bottom-Za};let t=y.current?.getBoundingClientRect();return t?{x:t.right,y:t.bottom}:null},[]),Ge=ra("find",{open:te,onOpenChange:a=>{a||m(!1)},...e?{at:Oa}:{}});return(0,l.jsxs)("div",{style:{position:"relative",minWidth:0,flex:"1 1 auto"},"data-testid":"find",children:[(0,l.jsx)("input",{ref:a=>{y.current=a,Ge.trigger.ref(a)},"data-graview-popover-trigger":"find",type:"search",role:"combobox","aria-label":"Find anything","aria-expanded":te,"aria-controls":C,"aria-autocomplete":"list",...te&&T?{"aria-activedescendant":T.id}:{},"data-testid":"find-box",placeholder:"Find\u2026","aria-keyshortcuts":"/ Meta+K Control+K",value:A,onChange:a=>{let t=a.target.value;m(!0),o(i=>fa(i,t.length>0?t:null))},onFocus:()=>m(!0),onBlur:()=>m(!1),onKeyDown:a=>{let t=F!==null&&T?k.indexOf(T):-1,i=d=>d!==void 0&&!("ask"in d)&&d.hit.about==="act",w=t>=0&&T!==void 0&&!("ask"in T)&&T.hit.about==="node";if(a.key==="ArrowDown"){a.preventDefault(),m(!0);let d=t+1;if(w)for(;d<k.length-1&&i(k[d]);)d+=1;G(k[Math.min(k.length-1,d)])}else if(a.key==="ArrowUp")a.preventDefault(),G(k[Math.max(0,t-1)]);else if((a.key==="PageDown"||a.key==="PageUp")&&k.length>0){a.preventDefault(),m(!0);let d=k.flatMap((U,V)=>i(U)?[]:[V]),_=Math.max(0,d.findIndex(U=>U>=Math.max(t,0))),L=a.key==="PageDown"?Fe(k.length):-Fe(k.length);G(k[d[Math.min(d.length-1,Math.max(0,(t<0?-1:_)+L))]])}else if(a.key==="ArrowRight"&&w&&i(k[t+1]))a.preventDefault(),G(k[t+1]);else if(a.key==="ArrowLeft"&&i(T)){a.preventDefault();let d=t-1;for(;d>0&&i(k[d]);)d-=1;G(k[d])}else a.key==="Enter"?(a.preventDefault(),we(T)):a.key==="Escape"&&(a.preventDefault(),A?o(d=>ye(d)):y.current?.blur())},style:{width:"100%",boxSizing:"border-box",minWidth:0,height:30,padding:"0 var(--graview-bar-find-end, 10px) 0 10px",font:"inherit",fontSize:"0.875rem",color:"var(--graview-ink)",background:"var(--graview-panel)",border:`1px solid ${A?"var(--graview-accent)":"var(--graview-edge)"}`,borderRadius:8}}),(0,l.jsx)("span",{role:"status","aria-live":"polite",style:na,"data-testid":"find-count",children:A.trim()?Da:""}),(0,l.jsxs)("div",{...Ge.pane,id:C,role:"listbox","aria-label":A?`What \u201C${A}\u201D finds`:"What the words find","data-testid":"find-strip",hidden:!te,onMouseDown:a=>a.preventDefault(),style:e?{...Ta,...er}:Ta,children:[k.every(a=>"ask"in a)?(0,l.jsxs)("p",{role:"presentation",style:{margin:0,padding:"10px 12px",color:"var(--graview-ink-muted)",fontSize:"0.875rem"},"data-testid":"find-nothing",children:["Nothing here is called \u201C",x?.words||A,"\u201D."]}):ve.map(([a,t])=>(0,l.jsxs)("div",{role:"group","aria-label":Aa(a,n.schema),children:[(0,l.jsxs)("div",{role:"presentation",style:ar,children:[a!=="rule:"?(0,l.jsx)(Qa,{kind:a,accents:g?.accents}):null,Aa(a,n.schema)]}),t.map(i=>(0,l.jsx)("div",{id:i.id,role:"option","aria-selected":i===T,"data-testid":"find-hit","data-about":i.hit.about,...i.hit.about==="node"&&i.hit.near?{"data-near":""}:{},onMouseEnter:()=>G(i),onClick:()=>we(i),style:{...Ma,...i.hit.about==="act"?{paddingLeft:30}:{},background:i===T?"var(--graview-panel-muted)":"transparent"},children:(0,l.jsx)(ja,{hit:i.hit,flag:$})},i.id))]},a)),N?(0,l.jsx)("div",{id:N.id,role:"option","aria-selected":N===T||T?.id===N.id,"data-testid":"find-ask",onMouseEnter:()=>G(N),onClick:()=>we(N),style:{...Ma,borderTop:"1px solid var(--graview-edge)",marginTop:4,background:T?.id===N.id?"var(--graview-panel-muted)":"transparent"},children:(0,l.jsxs)("span",{children:["Ask: ",(0,l.jsxs)("span",{style:{fontWeight:600},children:["\u2018",N.ask,"\u2019"]})]})}):null,qe>Ja?(0,l.jsxs)("p",{role:"presentation",style:{margin:0,padding:"6px 12px 2px",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},"data-testid":"find-more-words",children:[_e(qe)," found: another word of the name narrows them."]}):null,x&&x.searched.past===!1&&x.searched.kinds.some(a=>n.schema.tryDefinition(a)?.lifecycle)?(0,l.jsx)("p",{role:"presentation",style:{margin:0,padding:"6px 12px 8px",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:"Current ones; add is:any for the past."}):null]})]})}function ja({hit:e,flag:n}){switch(e.about){case"node":return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("span",{style:{fontWeight:600,overflowWrap:"anywhere"},children:[e.flagged?(0,l.jsxs)("span",{style:{color:"var(--graview-warn)"},children:[n," "]}):null,e.label,e.apart?(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.apart]}):null,e.current?null:(0,l.jsx)("span",{style:Y,children:" \xB7 past"})]}),e.near?(0,l.jsxs)("span",{style:Y,"data-testid":"find-near",children:["Near \u201C",e.why.asked,"\u201D",e.why.field!=="label"?` \u2014 ${e.why.reading.toLowerCase()}: ${e.why.fragment}`:""]}):e.why.field!=="label"?(0,l.jsxs)("span",{style:Y,children:[e.why.reading.toLowerCase(),": ",e.why.fragment]}):null]});case"kind":return(0,l.jsxs)("span",{children:[e.label,(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.count," match"]})]});case"place":return(0,l.jsxs)("span",{children:["Go to ",e.title]});case"rule":return(0,l.jsxs)("span",{children:["The rule \u201C",e.label,"\u201D"]});case"act":return(0,l.jsxs)("span",{style:e.destructive?{color:"var(--graview-warn)"}:void 0,children:[e.title,(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.why.field==="title"?"act":`on ${e.why.fragment}`]})]})}}function Qa({kind:e,accents:n}){let s=Math.round(Ve(e,n));return(0,l.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,borderRadius:2,flex:"0 0 auto",background:`hsl(${s} 55% 52%)`}})}function Aa(e,n){return e==="rule:"?"Rules":e==="act:"?"Acts":n.tryDefinition(e)?.plural??`${e}s`}function Ya(e,n,s){let o=Object.entries(e).map(([g,c])=>Ue(s,g,c)),r=n.filter(g=>g.about==="kind"||g.about==="place"||g.about==="rule").length;r>0&&o.push(`${r} ${r===1?"place or rule":"places and rules"}`);let v=n.filter(g=>g.about==="node"&&g.near).length;return o.length===0?"Nothing found":`${o.join(", ")} found${v>0?`, ${v} of them near`:""}`}var Xa=10,Ja=12,Ta={...aa,width:"min(26rem, calc(100vw - 24px))",maxHeight:"min(60vh, 28rem)",overflowY:"auto",boxSizing:"border-box",background:"var(--graview-panel)",borderTop:"1px solid var(--graview-edge)",borderRight:"1px solid var(--graview-edge)",borderBottom:"1px solid var(--graview-edge)",borderLeft:"1px solid var(--graview-edge)",borderRadius:10,boxShadow:"0 10px 28px rgb(0 0 0 / 0.18)",padding:"4px 0"},Za=6,er={width:"var(--graview-bar-width, 100vw)",maxHeight:"55vh",borderRadius:0,borderLeft:"none",borderRight:"none"},ar={display:"flex",alignItems:"center",gap:6,padding:"8px 12px 2px",fontSize:"0.6875rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},Ma={display:"grid",gap:1,minHeight:32,padding:"5px 12px",alignContent:"center",cursor:"pointer",fontSize:"0.875rem",lineHeight:1.35,color:"var(--graview-ink)"},Y={color:"var(--graview-ink-muted)",fontSize:"0.8125rem",fontWeight:400};var X=p(O(),1);var Be=p(Wa(),1);var La=p(f(),1);function Ra(){let{following:e,follow:n}=S();return e?(0,La.jsxs)("button",{type:"button","data-testid":"following-who",onClick:()=>n(null),title:"Press, or Escape, to stop following",style:{display:"inline-flex",alignItems:"center",gap:6,minHeight:24,padding:"2px 9px",borderRadius:999,border:"1px solid var(--graview-accent)",background:"transparent",color:"var(--graview-accent)",fontSize:"0.875rem",whiteSpace:"nowrap"},children:["following ",e.name]}):null}var Na=p(O(),1);var b=p(f(),1);function Ha({home:e,homeLabel:n,children:s,onPicture:o=!1}){let{view:r,focus:v,show:g,go:c}=K(),{store:M}=S(),{movedByHand:z}=S(),x=z&&(r.pan!==void 0||Object.keys(r.pins).length>0),I=r.focusId&&r.focusId!==e?M.graph.getNode(r.focusId):void 0,$=m=>ie(M.schema,m),y={display:"inline-flex",alignItems:"center",gap:6,minHeight:26,padding:"2px 6px",fontSize:"0.8125rem",borderRadius:6,border:"1px solid transparent",boxShadow:"none",background:"transparent",color:"var(--graview-ink-muted)",whiteSpace:"nowrap"},C=n!==void 0&&I!==void 0,R=[];if(I&&!o&&R.push({key:"focused",node:(0,b.jsxs)("button",{type:"button","data-testid":"focused",onClick:()=>c(me({...r,focusId:e},!1)),title:he(M,I.id),style:{...y,maxWidth:"min(14rem, 15vw)"},children:[(0,b.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:he(M,I.id)}),(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),r.past&&R.push({key:"past",node:(0,b.jsxs)("button",{type:"button","data-testid":"past",onClick:()=>c(ha(r,!1)),title:"Back to now \u2014 retired things leave the picture again",style:y,children:["the past",(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),r.zoom&&R.push({key:"zoomed",node:(0,b.jsxs)("button",{type:"button","data-testid":"zoomed",onClick:()=>c(me(r,!1)),title:"Zoom back out",style:y,children:["zoomed in",(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),x&&R.push({key:"moved",node:(0,b.jsx)("button",{type:"button","data-testid":"moved",onClick:()=>c(ue(r)),title:"Put the camera and everything you dragged back where the layout wanted them",style:y,children:"Reset view"})}),r.relation){let m=r.relation;R.push({key:"raised",node:(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center"},children:[(0,b.jsxs)("button",{type:"button","data-testid":"raised-into",onClick:()=>c(se(r,de(m),{ownPicture:!0})),title:`Go into the ${$(m).toLowerCase()}`,"aria-label":`Go into the ${$(m).toLowerCase()}`,style:{...y,color:"var(--graview-ink)"},children:[$(m),(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\u2198"})]}),(0,b.jsx)("button",{type:"button","data-testid":"raised",onClick:()=>g(null),title:`Stop showing ${$(m).toLowerCase()}`,"aria-label":`Stop showing ${$(m).toLowerCase()}`,style:{...y,minWidth:26,justifyContent:"center"},children:(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})})]})})}return o&&!C&&R.length===0&&s===void 0?null:(0,b.jsxs)("nav",{"aria-label":"View","data-testid":"trail",style:{display:"flex",alignItems:"center",gap:8,fontSize:"0.875rem",minWidth:0,...o?{pointerEvents:"auto",padding:"4px 6px",borderRadius:8,background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",overflow:"hidden"}:{}},children:[C?(0,b.jsx)("button",{type:"button",onClick:()=>v(e),style:{border:"none",background:"none",padding:"3px 0",minHeight:24,whiteSpace:"nowrap",color:"var(--graview-ink-muted)"},children:n}):null,R.map(({key:m,node:F},ee)=>(0,b.jsxs)(Na.Fragment,{children:[C||ee>0?(0,b.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:"\u203A"}):null,F]},m)),s]})}var E=p(f(),1);function Pe(){let[e,n]=(0,X.useState)([]),s=(0,X.useCallback)(o=>{n(r=>{let v=o.phase!=="running"&&r[0]?.name===o.name&&r[0]?.at===o.at;return[o,...v?r.slice(1):r].slice(0,12)})},[]);return[e,s]}function De({find:e,calls:n,seat:s,remembers:o=!1}){return e?(0,E.jsxs)(E.Fragment,{children:[(0,Be.createPortal)((0,E.jsx)(Ia,{compact:e.compact}),e.slot),e.own?(0,Be.createPortal)((0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(X.Suspense,{fallback:null,children:(0,E.jsx)(Ea,{})}),(0,E.jsx)(la,{calls:n,remembers:o,...s!==void 0?{seat:s}:{}})]}),e.own):null]}):null}function Oe({home:e=null}){return(0,E.jsxs)("div",{"data-graview-scene-trail":"",style:{position:"absolute",top:14,left:14,maxWidth:"calc(100% - 150px - var(--graview-dock, 0px))",zIndex:P("overview"),display:"flex",alignItems:"center",gap:6,minWidth:0,pointerEvents:"none"},children:[(0,E.jsx)(Ha,{home:e,onPicture:!0}),(0,E.jsx)("span",{style:{pointerEvents:"auto"},children:(0,E.jsx)(Ra,{})})]})}var q=p(O(),1);var Ba=p(f(),1),rr=j(()=>(__graviewPreload(import.meta.url,["./chunk.UGFDSE37.js","./chunk.XSNAG4JT.js","./chunk.XWAMQPUM.js","./chunk.SDO3U72B.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.JLIUUFK2.js")));function Ke(){let{store:e,principal:n}=S(),s=(0,q.useContext)(pa),o=(0,q.useRef)(null),r=(0,q.useRef)(!1);return(0,q.useEffect)(()=>()=>void(r.current=!0),[]),(0,q.useEffect)(()=>{let v=e.batches().length,g=rr().then(c=>c.sceneWay(e,n,s,v,o.current),()=>{});return()=>void g.then(c=>c?.(r.current))},[e,n,s]),(0,Ba.jsx)("span",{ref:o,hidden:!0})}var Pa=p(O(),1);var u=p(f(),1);function Ht({address:e=!1,auto:n,quickAsk:s=!0,scheme:o,scope:r}){let v=(0,Pa.useMemo)(()=>`${Te({scope:`.${r}`})}
|
|
1126
|
+
}`}function Me(e="dark",n={}){let s=qa(e);return n.scope===void 0?s:Ye(s,n.scope)}var B=p(O(),1);var W=p(f(),1),Fa=pe(j(()=>(__graviewPreload(import.meta.url,["./chunk.O4WEJ47H.js","./chunk.Y4ZUJUUT.js","./chunk.SDO3U72B.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.EYI3Y2DY.js")))).part(e=>(0,W.jsx)(e.MapKey,{}),{quiet:!0});function Ie(){let{store:e}=S(),{view:n}=K(),s=le(),o=(0,B.useMemo)(()=>e.graph.allEdges().length>0,[e,s]),[r,v]=(0,B.useState)(!1),g=(0,B.useId)(),c=(0,B.useRef)(null),M=(0,B.useRef)(null);return(0,B.useEffect)(()=>{if(!r)return;let z=x=>{let I=x.target;I&&(M.current?.contains(I)||c.current?.contains(I))||v(!1)};return document.addEventListener("pointerdown",z,!0),()=>document.removeEventListener("pointerdown",z,!0)},[r]),o?(0,W.jsxs)("div",{style:{display:"contents"},onKeyDown:z=>{z.key!=="Escape"||!r||(z.preventDefault(),z.stopPropagation(),v(!1),c.current?.focus({preventScroll:!0}))},children:[(0,W.jsx)("button",{ref:c,type:"button","data-testid":"lines-key","aria-expanded":r,"aria-controls":g,title:"What the lines mean",onClick:()=>v(z=>!z),style:{position:"absolute",top:60,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("overview"),height:30,padding:"0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.8125rem",color:r?"var(--graview-accent)":"var(--graview-ink-muted)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)"},children:"Key"}),r?(0,W.jsxs)("div",{ref:M,id:g,"data-testid":"lines-key-pane","data-graview-offstage":"",style:{position:"absolute",top:98,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("rail"),width:za,maxHeight:"calc(100cqh - 120px)",overflowY:"auto",boxSizing:"border-box",padding:"8px 8px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[n.overview?(0,W.jsx)(Fa,{}):null,(0,W.jsx)($a,{inside:!0,widthOf:ba})]}):null]}):null}var ce=p(O(),1),ge=p(f(),1);function Ca(e){return e.lens!==null?{what:"lens",kind:e.lens}:e.records.length===1&&e.districts.length===0?{what:"record",id:e.records[0]}:e.districts.length===1&&e.records.length===0?{what:"district",kind:e.districts[0]}:null}var Ga=pe(j(()=>(__graviewPreload(import.meta.url,["./chunk.IJNOT4S4.js","./chunk.O2WWYZI7.js","./chunk.VSNHCGKC.js","./chunk.HJCQ6I3S.js","./chunk.BNPQUI3F.js","./chunk.6RY6OSE6.js","./chunk.IROYMLER.js","./chunk.FWSCBHZ5.js","./chunk.7NNI7YH4.js","./chunk.7N2GXZYI.js","./chunk.PKUDIWIF.js","./chunk.VW2VCPJX.js","./chunk.WBHM5I3I.js","./chunk.FOQ27RAR.js","./chunk.UKAPFIPJ.js","./chunk.UT6642FC.js","./chunk.Q7RQC3F7.js","./chunk.WVUJXDXZ.js","./chunk.ZIEHF67C.js","./chunk.UHX4WTM7.js","./chunk.IKX4VDTW.js","./chunk.RNEJYIQ7.js","./chunk.TBQOSI4J.js","./chunk.KWQ7QOHD.js","./chunk.GZHZLJBF.js","./chunk.5AGW4NRZ.js","./chunk.OJGHDWI6.js","./chunk.DQS7D2W2.js","./chunk.HDRD33II.js","./chunk.DX357TZ3.js","./chunk.H7KCWCB4.js","./chunk.O4WEJ47H.js","./chunk.Y4ZUJUUT.js","./chunk.SDO3U72B.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.RZF3QM4E.js")))),_a=Ga.part((e,n)=>(0,ge.jsx)(e.MapPanelFor,{showing:n.showing}),{what:"This panel",quiet:!0});function Re(){let{store:e,view:n,selection:s,hiddenKinds:o,seatTalk:r}=S();le();let v=(0,ce.useSyncExternalStore)(r.subscribe,()=>r.get().draft!==null,()=>!1);if(!n.overview||v)return null;let g=Ca(xa(s,{...n,beside:!0},c=>e.graph.getNode(c)?.kind));return!g||g.what!=="record"&&(o.has(g.kind)||!e.schema.kinds.includes(g.kind))?null:(0,ge.jsx)(ce.Suspense,{fallback:null,children:(0,ge.jsx)(_a,{showing:g})})}var Ua=p(O(),1);var D=p(f(),1);function Le(){let{view:e,go:n}=K(),{store:s,views:o,hiddenKinds:r}=S(),v=e.overview??!1,g=o.places().map($=>$.kind).filter($=>!r.has($)),c=ca(e,s.schema.kinds,g),M=()=>{n(ne(Q(e,!1),c))},z=(()=>{if(!c)return null;let $=je(c)[0],y=e.within?.view,C=(y?o.places().find(R=>R.as===y):void 0)??($?o.places().filter(R=>R.kind===$).at(-1):void 0);return C?C.title:$?ie(s.schema,$):s.graph.getNode(c)?.label??null})(),x=v?"Close the map":"Up",I=v&&z?`Close the map, down to ${z}`:x;return(0,D.jsxs)("button",{type:"button","data-testid":"overview",className:"graview-altitude-control","aria-pressed":v,"aria-label":I,title:v?I:"Up \u2014 the whole thing, from above",onClick:()=>v?M():n(Q(e,!0)),style:{position:"absolute",top:14,right:"calc(14px + var(--graview-dock, 0px))",zIndex:P("overview"),display:"inline-flex",alignItems:"center",justifyContent:"center",gap:7,height:38,padding:"0 13px 0 11px",borderRadius:8,borderColor:"transparent",fontSize:"0.875rem",whiteSpace:"nowrap",background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)","--graview-altitude":v?1:0,...v?{color:"var(--graview-accent)"}:{}},children:[(0,D.jsxs)("svg",{className:"graview-altitude-mark",width:"16",height:"16",viewBox:"0 0 12 12","aria-hidden":"true",children:[(0,D.jsx)("ellipse",{className:"graview-altitude-mark-ring",cx:"6",cy:"6.6",rx:"5",ry:"2.6",fill:"none",stroke:"currentColor",strokeWidth:"0.9"}),(0,D.jsx)("circle",{className:"graview-altitude-mark-apex",cx:"6",cy:"4",r:"1.5",fill:"currentColor"}),(0,D.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"left",cx:"1.6",cy:"7.4",r:"1.2",fill:"currentColor"}),(0,D.jsx)("circle",{className:"graview-altitude-mark-wing","data-side":"right",cx:"10.4",cy:"7.4",r:"1.2",fill:"currentColor"})]}),(0,D.jsx)("span",{className:"graview-altitude-label",children:x})]})}var Ne=p(f(),1);function He(){let{administered:e}=S(),{view:n,go:s}=K(),o=e.filter(r=>r.canShow);return o.length===0?null:(0,Ne.jsx)("div",{role:"group","aria-label":"Administered","data-testid":"administered",style:{display:"flex",gap:6},children:o.map(r=>(0,Ne.jsx)("button",{type:"button","aria-pressed":r.shown,"data-testid":`show-${r.name}`,title:r.shown?`Hide the ${r.name}'s own districts again`:r.description??`Show the ${r.name}'s own districts beside the domain`,onClick:()=>s(ma(n,r.name,!r.shown)),style:{padding:"3px 11px",borderRadius:999,fontSize:"0.875rem",borderWidth:1,borderStyle:"solid",borderColor:r.shown?"var(--graview-accent)":"var(--graview-edge)",color:r.shown?"var(--graview-accent)":"var(--graview-ink-muted)",background:r.shown?"var(--graview-panel)":"transparent"},children:r.shown?`Hide the ${r.name}`:`Show the ${r.name}`},r.name))})}var h=p(O(),1);var l=p(f(),1);Xe({search:wa,touchWeights:va});var Va=e=>e.about==="rule"?"rule:":e.about==="act"?"act:":e.kind;function Ia({compact:e=!1}){let{store:n,view:s,setView:o,principal:r,setMenuAt:v,brand:g,aiDesk:c,selection:M}=S(),z=ia(c),x=Je(),I=ea(),$=sa().marks.flag,y=(0,h.useRef)(null),C=(0,h.useId)(),[R,m]=(0,h.useState)(!1),[F,ee]=(0,h.useState)(null),[J,ae]=(0,h.useState)(null),A=s.q??"";(0,h.useEffect)(()=>{let a=t=>{if(t.defaultPrevented)return;let i=t.key.toLowerCase()==="k"&&(t.metaKey||t.ctrlKey)&&!t.altKey&&!t.shiftKey,w=t.key==="/"&&!t.metaKey&&!t.ctrlKey&&!t.altKey;if(!i&&!w)return;let d=y.current;if(!d)return;let _=d.closest("[data-graview-embed]"),L=t.target,U=L===document.body||L===document.documentElement||L===window;if(_&&!(i&&U||L instanceof Node&&_.contains(L)))return;let V=document.activeElement,Ka=V instanceof HTMLInputElement||V instanceof HTMLTextAreaElement||V instanceof HTMLSelectElement||V instanceof HTMLElement&&V.isContentEditable;w&&Ka||(t.preventDefault(),d.getClientRects().length===0&&d.closest("[data-graview-app-bar]")?.querySelector('[data-testid="app-find-open"]')?.click(),d.focus({preventScroll:!0}),d.select(),m(!0))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]);let We=(0,h.useMemo)(()=>J&&A.trim()?ua(n,J,x?.words??A,{principal:r,limit:4}):[],[n,A,x,J,r]),ve=(0,h.useMemo)(()=>{let a=new Map;for(let[t,i]of(x?.hits??[]).entries()){if(i.about==="act")continue;let w=Va(i),d=a.get(w)??[];if(d.push({id:`${C}-${t}`,hit:i}),a.set(w,d),i.about==="node"&&i.id===J)for(let[_,L]of We.entries())d.push({id:`${C}-${t}-act-${_}`,hit:L})}return[...a.entries()]},[x,We,J,C]),N=z&&A.trim()?{id:`${C}-ask`,ask:A.trim()}:null,k=(0,h.useMemo)(()=>[...ve.flatMap(([,a])=>a),...N?[N]:[]],[ve,N?.ask]),T=k.find(a=>a.id===F)??k[0],qe=(x?.hits??[]).filter(a=>a.about==="node").length;(0,h.useEffect)(()=>{ee(null),ae(null)},[A]);let re=(0,h.useRef)(null);(0,h.useEffect)(()=>{let a=re.current;if(!a)return;re.current=null;let t=0,i=()=>{let w=document.querySelector(`[data-graview-view="aggregate:${CSS.escape(a)}"]`),d=document.activeElement;if(!(!d||d===document.body||d===document.documentElement||d===y.current||d===w))return;let L=[...w?.querySelectorAll('[role="group"][aria-label="Arrange"] :is(button, input)')??[]].find(U=>U.checkVisibility?.()??!0);if(L)return L.focus({preventScroll:!0});w&&w.tabIndex>=0&&d!==w&&w.focus({preventScroll:!0}),++t<240&&requestAnimationFrame(i)};requestAnimationFrame(i)},[s]);let G=a=>{if(a){if(ee(a.id),"ask"in a){ae(null);return}a.hit.about==="node"?ae(a.hit.id):a.hit.about!=="act"&&ae(null)}},Fe=a=>{let t=document.getElementById(C),i=t?.querySelector('[role="option"]')?.getBoundingClientRect().height??0,w=t?.clientHeight??0;return Math.min(a,i>0&&w>0?Math.max(1,Math.floor(w/i)-1):Xa)};(0,h.useEffect)(()=>{F&&document.getElementById(F)?.scrollIntoView?.({block:"nearest"})},[F]);let we=a=>{if(!a)return;if("ask"in a){ta(c,{pointed:{...M[0]!==void 0?{on:M[0]}:{},about:M},asked:a.ask}),o(i=>ye(i)),m(!1);return}let t=a.hit;switch(t.about){case"node":o(i=>oe(ne(Q(i,!1),t.id),[t.id]));break;case"kind":o(i=>se(Q(i,!1),de(t.kind),{ownPicture:!0})),re.current=t.kind;break;case"place":o(i=>Qe(i,t.kind,t.as)),re.current=t.kind;break;case"rule":{let i=I.filter(w=>w.invariant===t.name).flatMap(w=>w.nodeIds);o(w=>oe(w,[...new Set(i)]));break}case"act":{o(w=>oe(w,[t.subject]));let i=y.current?.getBoundingClientRect();v({x:i?.left??0,y:(i?.bottom??0)+6,on:t.subject});break}}m(!1),y.current?.blur()},Da=x?Ya(x.byKind,x.hits,n.schema):"",te=R&&A.trim().length>0,Oa=(0,h.useCallback)(()=>{let a=y.current?.closest("[data-graview-app-bar]")?.getBoundingClientRect();if(a)return{x:a.right,y:a.bottom-Za};let t=y.current?.getBoundingClientRect();return t?{x:t.right,y:t.bottom}:null},[]),Ge=ra("find",{open:te,onOpenChange:a=>{a||m(!1)},...e?{at:Oa}:{}});return(0,l.jsxs)("div",{style:{position:"relative",minWidth:0,flex:"1 1 auto"},"data-testid":"find",children:[(0,l.jsx)("input",{ref:a=>{y.current=a,Ge.trigger.ref(a)},"data-graview-popover-trigger":"find",type:"search",role:"combobox","aria-label":"Find anything","aria-expanded":te,"aria-controls":C,"aria-autocomplete":"list",...te&&T?{"aria-activedescendant":T.id}:{},"data-testid":"find-box",placeholder:"Find\u2026","aria-keyshortcuts":"/ Meta+K Control+K",value:A,onChange:a=>{let t=a.target.value;m(!0),o(i=>fa(i,t.length>0?t:null))},onFocus:()=>m(!0),onBlur:()=>m(!1),onKeyDown:a=>{let t=F!==null&&T?k.indexOf(T):-1,i=d=>d!==void 0&&!("ask"in d)&&d.hit.about==="act",w=t>=0&&T!==void 0&&!("ask"in T)&&T.hit.about==="node";if(a.key==="ArrowDown"){a.preventDefault(),m(!0);let d=t+1;if(w)for(;d<k.length-1&&i(k[d]);)d+=1;G(k[Math.min(k.length-1,d)])}else if(a.key==="ArrowUp")a.preventDefault(),G(k[Math.max(0,t-1)]);else if((a.key==="PageDown"||a.key==="PageUp")&&k.length>0){a.preventDefault(),m(!0);let d=k.flatMap((U,V)=>i(U)?[]:[V]),_=Math.max(0,d.findIndex(U=>U>=Math.max(t,0))),L=a.key==="PageDown"?Fe(k.length):-Fe(k.length);G(k[d[Math.min(d.length-1,Math.max(0,(t<0?-1:_)+L))]])}else if(a.key==="ArrowRight"&&w&&i(k[t+1]))a.preventDefault(),G(k[t+1]);else if(a.key==="ArrowLeft"&&i(T)){a.preventDefault();let d=t-1;for(;d>0&&i(k[d]);)d-=1;G(k[d])}else a.key==="Enter"?(a.preventDefault(),we(T)):a.key==="Escape"&&(a.preventDefault(),A?o(d=>ye(d)):y.current?.blur())},style:{width:"100%",boxSizing:"border-box",minWidth:0,height:30,padding:"0 var(--graview-bar-find-end, 10px) 0 10px",font:"inherit",fontSize:"0.875rem",color:"var(--graview-ink)",background:"var(--graview-panel)",border:`1px solid ${A?"var(--graview-accent)":"var(--graview-edge)"}`,borderRadius:8}}),(0,l.jsx)("span",{role:"status","aria-live":"polite",style:na,"data-testid":"find-count",children:A.trim()?Da:""}),(0,l.jsxs)("div",{...Ge.pane,id:C,role:"listbox","aria-label":A?`What \u201C${A}\u201D finds`:"What the words find","data-testid":"find-strip",hidden:!te,onMouseDown:a=>a.preventDefault(),style:e?{...Ta,...er}:Ta,children:[k.every(a=>"ask"in a)?(0,l.jsxs)("p",{role:"presentation",style:{margin:0,padding:"10px 12px",color:"var(--graview-ink-muted)",fontSize:"0.875rem"},"data-testid":"find-nothing",children:["Nothing here is called \u201C",x?.words||A,"\u201D."]}):ve.map(([a,t])=>(0,l.jsxs)("div",{role:"group","aria-label":Aa(a,n.schema),children:[(0,l.jsxs)("div",{role:"presentation",style:ar,children:[a!=="rule:"?(0,l.jsx)(Qa,{kind:a,accents:g?.accents}):null,Aa(a,n.schema)]}),t.map(i=>(0,l.jsx)("div",{id:i.id,role:"option","aria-selected":i===T,"data-testid":"find-hit","data-about":i.hit.about,...i.hit.about==="node"&&i.hit.near?{"data-near":""}:{},onMouseEnter:()=>G(i),onClick:()=>we(i),style:{...Ma,...i.hit.about==="act"?{paddingLeft:30}:{},background:i===T?"var(--graview-panel-muted)":"transparent"},children:(0,l.jsx)(ja,{hit:i.hit,flag:$})},i.id))]},a)),N?(0,l.jsx)("div",{id:N.id,role:"option","aria-selected":N===T||T?.id===N.id,"data-testid":"find-ask",onMouseEnter:()=>G(N),onClick:()=>we(N),style:{...Ma,borderTop:"1px solid var(--graview-edge)",marginTop:4,background:T?.id===N.id?"var(--graview-panel-muted)":"transparent"},children:(0,l.jsxs)("span",{children:["Ask: ",(0,l.jsxs)("span",{style:{fontWeight:600},children:["\u2018",N.ask,"\u2019"]})]})}):null,qe>Ja?(0,l.jsxs)("p",{role:"presentation",style:{margin:0,padding:"6px 12px 2px",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},"data-testid":"find-more-words",children:[_e(qe)," found: another word of the name narrows them."]}):null,x&&x.searched.past===!1&&x.searched.kinds.some(a=>n.schema.tryDefinition(a)?.lifecycle)?(0,l.jsx)("p",{role:"presentation",style:{margin:0,padding:"6px 12px 8px",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:"Current ones; add is:any for the past."}):null]})]})}function ja({hit:e,flag:n}){switch(e.about){case"node":return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("span",{style:{fontWeight:600,overflowWrap:"anywhere"},children:[e.flagged?(0,l.jsxs)("span",{style:{color:"var(--graview-warn)"},children:[n," "]}):null,e.label,e.apart?(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.apart]}):null,e.current?null:(0,l.jsx)("span",{style:Y,children:" \xB7 past"})]}),e.near?(0,l.jsxs)("span",{style:Y,"data-testid":"find-near",children:["Near \u201C",e.why.asked,"\u201D",e.why.field!=="label"?` \u2014 ${e.why.reading.toLowerCase()}: ${e.why.fragment}`:""]}):e.why.field!=="label"?(0,l.jsxs)("span",{style:Y,children:[e.why.reading.toLowerCase(),": ",e.why.fragment]}):null]});case"kind":return(0,l.jsxs)("span",{children:[e.label,(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.count," match"]})]});case"place":return(0,l.jsxs)("span",{children:["Go to ",e.title]});case"rule":return(0,l.jsxs)("span",{children:["The rule \u201C",e.label,"\u201D"]});case"act":return(0,l.jsxs)("span",{style:e.destructive?{color:"var(--graview-warn)"}:void 0,children:[e.title,(0,l.jsxs)("span",{style:Y,children:[" \xB7 ",e.why.field==="title"?"act":`on ${e.why.fragment}`]})]})}}function Qa({kind:e,accents:n}){let s=Math.round(Ve(e,n));return(0,l.jsx)("span",{"aria-hidden":"true",style:{width:8,height:8,borderRadius:2,flex:"0 0 auto",background:`hsl(${s} 55% 52%)`}})}function Aa(e,n){return e==="rule:"?"Rules":e==="act:"?"Acts":n.tryDefinition(e)?.plural??`${e}s`}function Ya(e,n,s){let o=Object.entries(e).map(([g,c])=>Ue(s,g,c)),r=n.filter(g=>g.about==="kind"||g.about==="place"||g.about==="rule").length;r>0&&o.push(`${r} ${r===1?"place or rule":"places and rules"}`);let v=n.filter(g=>g.about==="node"&&g.near).length;return o.length===0?"Nothing found":`${o.join(", ")} found${v>0?`, ${v} of them near`:""}`}var Xa=10,Ja=12,Ta={...aa,width:"min(26rem, calc(100vw - 24px))",maxHeight:"min(60vh, 28rem)",overflowY:"auto",boxSizing:"border-box",background:"var(--graview-panel)",borderTop:"1px solid var(--graview-edge)",borderRight:"1px solid var(--graview-edge)",borderBottom:"1px solid var(--graview-edge)",borderLeft:"1px solid var(--graview-edge)",borderRadius:10,boxShadow:"0 10px 28px rgb(0 0 0 / 0.18)",padding:"4px 0"},Za=6,er={width:"var(--graview-bar-width, 100vw)",maxHeight:"55vh",borderRadius:0,borderLeft:"none",borderRight:"none"},ar={display:"flex",alignItems:"center",gap:6,padding:"8px 12px 2px",fontSize:"0.6875rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)"},Ma={display:"grid",gap:1,minHeight:32,padding:"5px 12px",alignContent:"center",cursor:"pointer",fontSize:"0.875rem",lineHeight:1.35,color:"var(--graview-ink)"},Y={color:"var(--graview-ink-muted)",fontSize:"0.8125rem",fontWeight:400};var X=p(O(),1);var Be=p(Wa(),1);var La=p(f(),1);function Ra(){let{following:e,follow:n}=S();return e?(0,La.jsxs)("button",{type:"button","data-testid":"following-who",onClick:()=>n(null),title:"Press, or Escape, to stop following",style:{display:"inline-flex",alignItems:"center",gap:6,minHeight:24,padding:"2px 9px",borderRadius:999,border:"1px solid var(--graview-accent)",background:"transparent",color:"var(--graview-accent)",fontSize:"0.875rem",whiteSpace:"nowrap"},children:["following ",e.name]}):null}var Na=p(O(),1);var b=p(f(),1);function Ha({home:e,homeLabel:n,children:s,onPicture:o=!1}){let{view:r,focus:v,show:g,go:c}=K(),{store:M}=S(),{movedByHand:z}=S(),x=z&&(r.pan!==void 0||Object.keys(r.pins).length>0),I=r.focusId&&r.focusId!==e?M.graph.getNode(r.focusId):void 0,$=m=>ie(M.schema,m),y={display:"inline-flex",alignItems:"center",gap:6,minHeight:26,padding:"2px 6px",fontSize:"0.8125rem",borderRadius:6,border:"1px solid transparent",boxShadow:"none",background:"transparent",color:"var(--graview-ink-muted)",whiteSpace:"nowrap"},C=n!==void 0&&I!==void 0,R=[];if(I&&!o&&R.push({key:"focused",node:(0,b.jsxs)("button",{type:"button","data-testid":"focused",onClick:()=>c(me({...r,focusId:e},!1)),title:he(M,I.id),style:{...y,maxWidth:"min(14rem, 15vw)"},children:[(0,b.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:he(M,I.id)}),(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),r.past&&R.push({key:"past",node:(0,b.jsxs)("button",{type:"button","data-testid":"past",onClick:()=>c(ha(r,!1)),title:"Back to now \u2014 retired things leave the picture again",style:y,children:["the past",(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),r.zoom&&R.push({key:"zoomed",node:(0,b.jsxs)("button",{type:"button","data-testid":"zoomed",onClick:()=>c(me(r,!1)),title:"Zoom back out",style:y,children:["zoomed in",(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})]})}),x&&R.push({key:"moved",node:(0,b.jsx)("button",{type:"button","data-testid":"moved",onClick:()=>c(ue(r)),title:"Put the camera and everything you dragged back where the layout wanted them",style:y,children:"Reset view"})}),r.relation){let m=r.relation;R.push({key:"raised",node:(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center"},children:[(0,b.jsxs)("button",{type:"button","data-testid":"raised-into",onClick:()=>c(se(r,de(m),{ownPicture:!0})),title:`Go into the ${$(m).toLowerCase()}`,"aria-label":`Go into the ${$(m).toLowerCase()}`,style:{...y,color:"var(--graview-ink)"},children:[$(m),(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\u2198"})]}),(0,b.jsx)("button",{type:"button","data-testid":"raised",onClick:()=>g(null),title:`Stop showing ${$(m).toLowerCase()}`,"aria-label":`Stop showing ${$(m).toLowerCase()}`,style:{...y,minWidth:26,justifyContent:"center"},children:(0,b.jsx)("span",{"aria-hidden":"true",style:{opacity:.7},children:"\xD7"})})]})})}return o&&!C&&R.length===0&&s===void 0?null:(0,b.jsxs)("nav",{"aria-label":"View","data-testid":"trail",style:{display:"flex",alignItems:"center",gap:8,fontSize:"0.875rem",minWidth:0,...o?{pointerEvents:"auto",padding:"4px 6px",borderRadius:8,background:"var(--graview-float)",boxShadow:"var(--graview-lift-low)",overflow:"hidden"}:{}},children:[C?(0,b.jsx)("button",{type:"button",onClick:()=>v(e),style:{border:"none",background:"none",padding:"3px 0",minHeight:24,whiteSpace:"nowrap",color:"var(--graview-ink-muted)"},children:n}):null,R.map(({key:m,node:F},ee)=>(0,b.jsxs)(Na.Fragment,{children:[C||ee>0?(0,b.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:"\u203A"}):null,F]},m)),s]})}var E=p(f(),1);function Pe(){let[e,n]=(0,X.useState)([]),s=(0,X.useCallback)(o=>{n(r=>{let v=o.phase!=="running"&&r[0]?.name===o.name&&r[0]?.at===o.at;return[o,...v?r.slice(1):r].slice(0,12)})},[]);return[e,s]}function De({find:e,calls:n,seat:s,remembers:o=!1}){return e?(0,E.jsxs)(E.Fragment,{children:[(0,Be.createPortal)((0,E.jsx)(Ia,{compact:e.compact}),e.slot),e.own?(0,Be.createPortal)((0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(X.Suspense,{fallback:null,children:(0,E.jsx)(Ea,{})}),(0,E.jsx)(la,{calls:n,remembers:o,...s!==void 0?{seat:s}:{}})]}),e.own):null]}):null}function Oe({home:e=null}){return(0,E.jsxs)("div",{"data-graview-scene-trail":"",style:{position:"absolute",top:14,left:14,maxWidth:"calc(100% - 150px - var(--graview-dock, 0px))",zIndex:P("overview"),display:"flex",alignItems:"center",gap:6,minWidth:0,pointerEvents:"none"},children:[(0,E.jsx)(Ha,{home:e,onPicture:!0}),(0,E.jsx)("span",{style:{pointerEvents:"auto"},children:(0,E.jsx)(Ra,{})})]})}var q=p(O(),1);var Ba=p(f(),1),rr=j(()=>(__graviewPreload(import.meta.url,["./chunk.UGFDSE37.js","./chunk.O4WEJ47H.js","./chunk.Y4ZUJUUT.js","./chunk.SDO3U72B.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.S5IQFZ5Z.js")));function Ke(){let{store:e,principal:n}=S(),s=(0,q.useContext)(pa),o=(0,q.useRef)(null),r=(0,q.useRef)(!1);return(0,q.useEffect)(()=>()=>void(r.current=!0),[]),(0,q.useEffect)(()=>{let v=e.batches().length,g=rr().then(c=>c.sceneWay(e,n,s,v,o.current),()=>{});return()=>void g.then(c=>c?.(r.current))},[e,n,s]),(0,Ba.jsx)("span",{ref:o,hidden:!0})}var Pa=p(O(),1);var u=p(f(),1);function Ht({address:e=!1,auto:n,quickAsk:s=!0,scheme:o,scope:r}){let v=(0,Pa.useMemo)(()=>`${Te({scope:`.${r}`})}
|
|
1127
1127
|
${Me(o,{scope:`.${r}`})}`,[o,r]),g=ga(),[c]=Pe();return(0,u.jsx)(Ze.Provider,{value:!0,children:(0,u.jsxs)("div",{"data-embed-content":"",style:{position:"relative",flex:n?`0 0 ${Sa}px`:"1 1 auto",minHeight:0,containerType:"size"},children:[(0,u.jsx)("style",{children:v}),e?(0,u.jsx)(ka,{}):null,(0,u.jsx)(ya,{}),(0,u.jsx)(Oe,{}),(0,u.jsx)(Le,{}),(0,u.jsx)(Ie,{}),(0,u.jsx)($e,{}),(0,u.jsx)(ze,{face:"scene",on:s}),(0,u.jsx)(Re,{}),(0,u.jsx)(xe,{children:(0,u.jsx)(ke,{children:(0,u.jsx)(Ee,{children:(0,u.jsx)(Ae,{children:(0,u.jsx)(Se,{placement:"menu"})})})})}),(0,u.jsx)(be,{}),(0,u.jsx)(Ce,{}),(0,u.jsx)(De,{find:g,calls:c}),(0,u.jsx)(Ke,{}),(0,u.jsx)(fe,{face:"scene"})]})})}function Bt(){return(0,u.jsx)(He,{})}export{Ht as SceneFace,Bt as SceneKeeping};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as I,c as x}from"./chunk.
|
|
1
|
+
import{a as I,c as x}from"./chunk.WHEUTAXA.js";import"./chunk.O4WEJ47H.js";import{b,c as A,j as v,q as w,s as O,v as G}from"./chunk.Y4ZUJUUT.js";import"./chunk.SDO3U72B.js";import{Xc as k,ld as E,sd as S,td as W}from"./chunk.AS4CQBOQ.js";import"./chunk.2AZTW66C.js";import"./chunk.AJZBJBMO.js";var F=(e,i)=>k(e,i).slice(1);function j(e,i){let l=e.split("/").filter(Boolean);return l.length===i.length&&l.every((s,h)=>s.startsWith(":")||s==="*"||s===i[h])}var $=["problems","search","map","places"];function R(e,i,l,s,h=[]){let{schema:r}=i,o=r.kinds,f=t=>{if(t.startsWith(w))return(t.slice(w.length).split("|")[0]??"").split("+").every(V=>o.includes(V));let y=O(t);return y!==null?o.includes(y):t.startsWith("edge:")||l.graph.getNode(t)!==void 0},[p="/",u]=e.path.split("?"),n=p.split("/").filter(Boolean),m=u?`?${u}`:"",d=n.length>0&&!$.includes(n[0])?o.find(t=>F(r,t)===n[0]):void 0,c=e.path;if(n[0]==="places"&&n.length===2)`/places/${n[1]}`!==E&&!s.some(t=>t.as===decodeURIComponent(n[1]))&&(c="/");else if(d){let t=n[1]===void 0?void 0:decodeURIComponent(n[1]);c=`/${F(r,d)}${t!==void 0&&l.graph.getNode(t)?.kind===d?`/${n[1]}`:""}${m}`}else n.length>0&&n.length<=2&&!$.includes(n[0])&&!h.some(t=>j(t.path,n))&&(c="/");let g=A(e.stop),P=g.within?.view,U=P!==void 0&&!s.some(t=>t.as===P),a=g;if(U){let{view:t,...y}=g.within??{};a={...a,within:y}}if(g.focusId&&!f(g.focusId)){let t=e.kind&&o.includes(e.kind)?G(e.kind):null;a={...v(a,t),zoom:!1}}return a={...a,relation:a.relation&&(o.includes(a.relation)||r.edgeKinds.includes(a.relation))?a.relation:null,expanded:a.expanded.filter(f),pins:Object.fromEntries(Object.entries(a.pins).filter(([t])=>f(t))),...a.selection?{selection:a.selection.filter(f)}:{}},{face:e.face,path:c,stop:b(a),...e.kind?{kind:e.kind}:{}}}function B(e,i,l){let s=e.at,h=e.pages?.routes()??[];if(e.routing!=="address"||typeof window>"u")return R(s,e.app,i,l,h);let{pathname:r,search:o,hash:f}=window.location,p=W(r,e.basePath),u=I({routing:"address",...e.basePath===void 0?{}:{basePath:e.basePath},face:s.face}),n=u==="pages",m={...s,face:u,...p===null?{}:n?{path:p+o}:{stop:x(e.basePath)??s.stop}},d=R(m,e.app,i,l,h),c=n?d.path===m.path?null:S(d.path,e.basePath===void 0?{}:{basePath:e.basePath}):d.stop===b(A(m.stop))?null:r+o+d.stop;return p!==null&&c!==null&&c!==r+o+f&&window.history.replaceState(window.history.state,"",c),d}export{R as settle,B as settleAt};
|
|
@@ -1,5 +1,5 @@
|
|
|
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 v}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{r as v}from"./chunk.O4WEJ47H.js";import{Da as w,G as B,J as h,R as n,_ as S}from"./chunk.Y4ZUJUUT.js";import{a as y}from"./chunk.SDO3U72B.js";import{wc as k}from"./chunk.AS4CQBOQ.js";import{b as s}from"./chunk.AJZBJBMO.js";var b=s(n(),1),R=v.part(e=>(0,b.jsx)(e.ActivityRail,{calls:[]}),{quiet:!0});var p=s(n(),1),A=e=>e.tabIndex>=0&&!e.disabled&&e.getClientRects().length>0;function T(e){if(!e)return!1;if(A(e))return e.focus({preventScroll:!1}),!0;let o=[...e.querySelectorAll("a[href], button, input, select, textarea, [tabindex]")].find(A);return o?(o.focus(),!0):(e.hasAttribute("tabindex")||e.setAttribute("tabindex","-1"),e.focus(),!0)}var I=`.graview-skips{display:contents}
|
|
2
2
|
.graview-skip{position:absolute;width:0;height:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
|
|
3
3
|
.graview-skip:focus{width:auto;height:auto;overflow:visible;clip-path:none;padding:6px 12px;border-radius:8px;border:1px solid var(--graview-accent);background:var(--graview-float,var(--graview-panel));color:var(--graview-ink);font:inherit;font-size:.875rem;font-weight:600;box-shadow:var(--graview-lift-high);outline:2px solid var(--graview-accent);outline-offset:1px}
|
|
4
4
|
.graview-skips[data-place=bar] .graview-skip:focus{position:fixed;left:8px;top:6px;z-index:${k("toast")}}
|
|
5
|
-
.graview-skips[data-place=here] .graview-skip:focus{position:static;justify-self:start}`;function O({to:e,place:o="bar"}){return e.length===0?null:(0,p.jsxs)("span",{className:"graview-skips","data-place":o,children:[(0,p.jsx)("style",{children:I}),e.map(r=>(0,p.jsx)("button",{type:"button",className:"graview-skip","data-graview-skip":r.testid,"data-testid":`skip-${r.testid}`,...r.opens?{"data-graview-skip-opens":""}:{},onClick:r.go,children:r.label},r.testid))]})}var a=s(B(),1),f=s(n(),1),C=w(y(()=>(__graviewPreload(import.meta.url,["./chunk.
|
|
5
|
+
.graview-skips[data-place=here] .graview-skip:focus{position:static;justify-self:start}`;function O({to:e,place:o="bar"}){return e.length===0?null:(0,p.jsxs)("span",{className:"graview-skips","data-place":o,children:[(0,p.jsx)("style",{children:I}),e.map(r=>(0,p.jsx)("button",{type:"button",className:"graview-skip","data-graview-skip":r.testid,"data-testid":`skip-${r.testid}`,...r.opens?{"data-graview-skip-opens":""}:{},onClick:r.go,children:r.label},r.testid))]})}var a=s(B(),1),f=s(n(),1),C=w(y(()=>(__graviewPreload(import.meta.url,["./chunk.CTQULC5F.js","./chunk.TCXKPILZ.js","./chunk.64WM4IBI.js","./chunk.IQ2HKGJS.js","./chunk.R6V37SR7.js","./chunk.IROYMLER.js","./chunk.7NNI7YH4.js","./chunk.UT6642FC.js","./chunk.OONCUAOH.js","./chunk.2W22AWSL.js","./chunk.TI4OSTQV.js","./chunk.GZHZLJBF.js","./chunk.5AGW4NRZ.js","./chunk.OJGHDWI6.js","./chunk.DQS7D2W2.js","./chunk.HDRD33II.js","./chunk.DX357TZ3.js","./chunk.H7KCWCB4.js","./chunk.O4WEJ47H.js","./chunk.Y4ZUJUUT.js","./chunk.SDO3U72B.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.BBS5C2BY.js")))),F=C.part((e,o)=>{let r=e.RecordInteractions;return(0,f.jsx)(r,{...o})},{quiet:!0});function D(e,o,r){let t=e.target;return(t.on==="record"||t.on==="field"?t.id===o:t.on==="selection"?t.ids.includes(o):t.on==="act"?t.id===o:!1)||e.offered.some(i=>i.id===`record:${o}`||i.id.startsWith(`fill:${o}:`))||(e.batches??[]).some(i=>r(i).includes(o))}function E({id:e,style:o,headingStyle:r,className:t}){let{ai:m,aiDesk:i,store:l}=S(),{entries:u}=h(i),c=m.off===!0;(0,a.useEffect)(()=>{c||i.load()},[i,c]);let L=l.log.length,x=(0,a.useMemo)(()=>{let P=d=>l.log.all().flatMap(g=>g.batch===d?g.writes:[]);return u.filter(d=>D(d,e,P))},[u,e,l,L]);return c||x.length===0?null:(0,f.jsx)(a.Suspense,{fallback:null,children:(0,f.jsx)(F,{entries:x,...o?{style:o}:{},...r?{headingStyle:r}:{},...t?{className:t}:{}})})}export{R as a,T as b,O as c,E as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as a}from"./chunk.
|
|
1
|
+
import{s as a}from"./chunk.5AGW4NRZ.js";import{G as f,R as s,_ as l}from"./chunk.Y4ZUJUUT.js";import{b as i}from"./chunk.AJZBJBMO.js";var d=i(f(),1),p=i(s(),1),c=new Set;function B(e){return c.add(e),()=>void c.delete(e)}function S(){let{store:e,principal:o}=l();return(0,d.useMemo)(()=>n=>{let t=n.on===void 0?void 0:e.graph.getNode(n.on);if(!t)return null;let u=[...c].filter(r=>r.store===e&&r.kind===t.kind);return(n.element?u.find(r=>r.root()?.contains(n.element)??!1):u[0])?.section(t.id,o)??null},[e,o])}function v({children:e}){let o=S(),n=(0,d.useMemo)(()=>[o],[o]);return(0,p.jsx)(a,{sections:n,children:e})}export{B as a,S as b,v as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as o,l as u}from"./chunk.
|
|
1
|
+
import{g as o,l as u}from"./chunk.Y4ZUJUUT.js";function c(t,n,i){let e=r=>encodeURIComponent(r);return`${o}${e(t)}:${e(n)}:${e(i)}`}function S(t,n,i){let e=new Set(t.shown??[]);if(i?e.add(n):e.delete(n),e.size===0){let{shown:r,...w}=t;return w}return{...t,shown:[...e].sort()}}function l(t,n){if(n===null||n.trim().length===0){let{q:i,...e}=t;return e}return{...t,q:n}}function p(t){let n=t.q!==void 0&&t.within?.q===t.q;return l(n?u(t,"q",null):t,null)}function h(t,n){if(!n){let{past:i,...e}=t;return e}return{...t,past:!0}}function f(t,n){if(n===null||n.x===0&&n.y===0){let{pan:i,...e}=t;return e}return{...t,pan:n}}function d(t,n,i){let e={...t.pins};return i===null?delete e[n]:e[n]=i,{...t,pins:e}}export{c as a,S as b,l as c,p as d,h as e,f,d as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as k,d as x,e as H}from"./chunk.64WM4IBI.js";import{b as A}from"./chunk.
|
|
1
|
+
import{c as k,d as x,e as H}from"./chunk.64WM4IBI.js";import{b as A}from"./chunk.IQ2HKGJS.js";import"./chunk.R6V37SR7.js";import{d as E}from"./chunk.IROYMLER.js";import"./chunk.7NNI7YH4.js";import{a as b}from"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.js";import"./chunk.HDRD33II.js";import"./chunk.DX357TZ3.js";import"./chunk.H7KCWCB4.js";import{m as S}from"./chunk.O4WEJ47H.js";import{G as L,Oa as v,R as h,Sa as w,_ as p,aa as f}from"./chunk.Y4ZUJUUT.js";import"./chunk.SDO3U72B.js";import{Wa as m}from"./chunk.AS4CQBOQ.js";import"./chunk.2AZTW66C.js";import{b as g}from"./chunk.AJZBJBMO.js";var l=g(L(),1);var e=g(h(),1);function I(){let{store:t,principal:r}=p(),a=f(),i=(0,l.useMemo)(()=>k(t,r),[t,r,a]),n=w("suggested");return i.length===0?null:(0,e.jsxs)("div",{style:{position:"relative"},children:[(0,e.jsxs)("button",{type:"button","data-testid":"suggested-button",...n.trigger,onClick:n.toggle,title:"What tidying suggests, waiting for you",style:{display:"inline-flex",alignItems:"center",gap:6,minHeight:30,padding:"0 8px",borderRadius:8,border:"1px solid transparent",background:"transparent",boxShadow:"none",fontSize:"0.875rem",whiteSpace:"nowrap",color:"var(--graview-ink-muted)"},children:[i.length,(0,e.jsxs)("svg",{className:"graview-activity-mark",width:"15",height:"15",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",style:{display:"var(--graview-activity-mark, none)"},children:[(0,e.jsx)("path",{d:"M3 4.5 H13 M3 8 H10 M3 11.5 H8",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"}),(0,e.jsx)("circle",{cx:"12.25",cy:"11.5",r:"1.6",fill:"none",stroke:"currentColor",strokeWidth:"1.3"})]}),(0,e.jsx)("span",{className:"graview-activity-word",children:" Suggested"})]}),n.open?(0,e.jsxs)("section",{...n.pane,"aria-label":"Suggested","data-testid":"suggested","data-graview-offstage":"",style:{...v,width:320,maxHeight:"min(52cqh, 460px)",overflow:"auto",display:"flex",flexDirection:"column",gap:9,padding:12,borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},children:[(0,e.jsx)("h2",{style:{...S,margin:0},children:"Suggested"}),(0,e.jsx)("p",{style:{margin:0,fontSize:"0.75rem",lineHeight:1.45,color:"var(--graview-ink-faint)"},children:"Not made yet: each waits for you."}),(0,e.jsx)("ol",{"data-testid":"suggestions",style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:10,fontSize:"0.8125rem"},children:i.map(s=>(0,e.jsx)(O,{suggestion:s,...i.length===1?{settled:()=>{n.setOpen(!1),document.querySelector('[data-testid="activity-button"]')?.focus()}}:{}},s.id))})]}):null]})}function O({suggestion:t,settled:r}){let{store:a,principal:i,seats:n,people:s}=p(),[c,u]=(0,l.useState)(null),T=m(t.author,{graph:a.graph,schema:a.schema,seats:n,people:s}),y=o=>{u(null);try{o==="accept"?x(a,t.id,{author:i}):H(a,t.id,{author:i}),r?.()}catch(d){u(d instanceof Error?d.message:String(d))}};return(0,e.jsxs)("li",{"data-testid":"suggestion","data-suggestion":t.id,style:{display:"grid",gap:5,lineHeight:1.45},children:[(0,e.jsxs)("span",{children:[(0,e.jsx)("strong",{style:{fontWeight:600},children:T})," ",(0,e.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:"suggests"})," ",t.intent]}),t.lineage?(0,e.jsx)("span",{"data-graview-lineage":"",style:{color:"var(--graview-ink-faint)"},children:b(t.lineage)}):null,t.about.length>0?(0,e.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:t.about.slice(0,4).map(o=>(0,e.jsx)(E,{label:A(a,o),pickId:o},o))}):null,(0,e.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,e.jsx)("button",{type:"button","data-testid":"suggestion-accept",onClick:()=>y("accept"),style:{minHeight:24,padding:"1px 10px",fontSize:"0.75rem"},children:"Accept"}),(0,e.jsx)("button",{type:"button","data-testid":"suggestion-decline",onClick:()=>y("decline"),style:{minHeight:24,padding:"1px 10px",fontSize:"0.75rem"},children:"Decline"})]}),c?(0,e.jsx)("span",{"data-testid":"suggestion-refused",role:"alert",style:{fontSize:"0.75rem",color:"var(--graview-warn)"},children:c}):null]})}export{I as SuggestedTray};
|
|
@@ -0,0 +1,21 @@
|
|
|
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 dt,b as gt,c as mt,d as yt,e as ht,f as wt,g as vt}from"./chunk.3LDYUO77.js";import{a as ft,b as Se,c as bt}from"./chunk.ETR6AV47.js";import{g as lt}from"./chunk.BRDAO2OF.js";import{e as pt}from"./chunk.7ELB37JU.js";import{c as ut,f as ct,g as xe}from"./chunk.F2VMMCVK.js";import{b as ie,d as ae}from"./chunk.NFIGGSMJ.js";import{a as ke,e as at}from"./chunk.BBLIT7S7.js";import{a as oe,f as ot,h as it}from"./chunk.2MCZ4CU5.js";import"./chunk.PXQVXBNG.js";import"./chunk.G446PWV6.js";import{a as D}from"./chunk.SDO3U72B.js";import"./chunk.AS4CQBOQ.js";import"./chunk.2AZTW66C.js";import"./chunk.AJZBJBMO.js";var kt=["good","warn","bad","neutral","accent"],xt=["value","max","aria-label","placeholder","disabled"],St=["click","change"],Te=["_blank","_self"],Tt=["section","div","span","strong","p","hr","a","button","input","progress"],de={type:{oneOf:kt}},Me={"gv-card":{host:"section",properties:{tone:de},events:{},children:"any"},"gv-group":{host:"div",properties:{direction:{type:{oneOf:["row","column"]}}},events:{},children:"any"},"gv-title":{host:"strong",properties:{},events:{},children:"text"},"gv-text":{host:"p",properties:{tone:de},events:{},children:"text"},"gv-badge":{host:"span",properties:{tone:de},events:{},children:"text"},"gv-field":{host:"div",properties:{label:{type:"string"}},events:{},children:"text"},"gv-progress":{host:"progress",properties:{value:{type:"number",as:"value"},max:{type:"number",as:"max"},label:{type:"string",as:"aria-label"}},events:{},children:"none"},"gv-divider":{host:"hr",properties:{},events:{},children:"none"},"gv-link":{host:"a",properties:{href:{type:"url"}},events:{},children:"text"},"gv-button":{host:"button",properties:{tone:de,disabled:{type:"boolean",as:"disabled"}},events:{press:{from:"click"}},children:"text"},"gv-input":{host:"input",properties:{label:{type:"string",as:"aria-label"},value:{type:"string",as:"value"},placeholder:{type:"string",as:"placeholder"}},events:{change:{from:"change",detail:"value"}},children:"none"}},Ee=1e4;var Dt=0,jt=1,Bt=2,Ut=3,Mt=1,$t=2,Ft=3,zt=1,qt=3,Xt=8,Ke="~",Re=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),J=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function Et(n,e){return e.type==="url"?"href":e.as??`data-gv-${n.toLowerCase()}`}var Yt=2e3;function Kt(n,e){if(e==null)return{ok:!0,value:null};let d=n.type;if(d==="boolean")return typeof e=="boolean"?{ok:!0,value:e}:{ok:!1,reason:"value"};if(d==="number")return typeof e=="number"&&Number.isFinite(e)?{ok:!0,value:String(e)}:{ok:!1,reason:"value"};if(typeof e!="string"||e.length>Yt)return{ok:!1,reason:d==="url"?"url":"value"};if(typeof d=="object")return d.oneOf.includes(e)?{ok:!0,value:e}:{ok:!1,reason:"value"};if(d==="url"){let m;try{m=new URL(e)}catch{return{ok:!1,reason:"url"}}return m.protocol!=="https:"||m.hostname===""||!/^https:\/\//i.test(e)?{ok:!1,reason:"url"}:{ok:!0,value:m.href}}return{ok:!0,value:e}}function Jt(n){let e=n.host==="a";return Tt.includes(n.host)&&(n.target===void 0||e&&Te.includes(n.target))&&Object.values(n.properties).every(d=>d.type!=="url"||e)&&Object.values(n.properties).every(d=>d.as===void 0||d.type!=="url"&&xt.includes(d.as))&&Object.values(n.events).every(d=>St.includes(d.from))}function Ge(n,e){let d=e.kit??Me,m=e.maxNodes??2e3,s=n.ownerDocument,y=[],w=new Map,W={dom:n,name:Ke,component:{host:"div",properties:{},events:{},children:"any"},children:[],listeners:new Map,id:Ke};w.set(Ke,W);let R=e.links?new Set(e.links.origins.flatMap(r=>{try{let l=new URL(r);return l.protocol==="https:"&&l.hostname!==""?[l.origin]:[]}catch{return[]}})):void 0,_=0,E=0,O=!1,p=r=>{y.push(r),y.length>200&&y.shift()},K=()=>({dom:s.createComment(""),children:[],refused:!0,listeners:new Map}),M=(r,l,h)=>{let u=r.component;if(!Re(u.properties,l))return p({reason:"property",element:r.name,name:l});let o=u.properties[l],g=Kt(o,h),v=g.ok&&o.type==="url"&&R&&typeof g.value=="string"&&!R.has(new URL(g.value).origin)?{ok:!1,reason:"url"}:g,T=r.dom,f=Et(l,o);if(!v.ok)return T.removeAttribute(f),p({reason:v.reason,element:r.name,name:l});let L=v.value;L===null||L===!1?T.removeAttribute(f):T.setAttribute(f,L===!0?"":L),f==="value"&&"value"in T&&(T.value=typeof L=="string"?L:""),f==="disabled"&&"disabled"in T&&(T.disabled=L!==null&&L!==!1)},k=(r,l,h)=>{let u=r.component;if(!Re(u.events,l))return p({reason:"event",element:r.name,name:l});let o=r.listeners.get(l);if(o&&(o(),r.listeners.delete(l),E-=1),h==null)return;if(!J(h)||typeof h.listener!="number")return p({reason:"value",element:r.name,name:l});let g=h.listener,v=u.events[l],T=r.dom,f=()=>e.onEvent(g,v.detail==="value"?String(T.value??""):void 0);T.addEventListener(v.from,f),r.listeners.set(l,()=>T.removeEventListener(v.from,f)),E+=1},x=r=>{if(!r.refused){_-=1,r.id!==void 0&&w.delete(r.id);for(let l of r.listeners.values())l();E-=r.listeners.size,r.listeners.clear();for(let l of r.children)x(l)}},A=(r,l)=>{if(!J(r)||typeof r.id!="string"||w.has(r.id))return p({reason:"record"}),K();if(_>=m)return p({reason:"budget"}),O||(O=!0,e.onOverBudget?.()),K();let h=r.id,u=l.component.children;if(r.type===Xt)return K();if(r.type===qt){if(u==="none")return p({reason:"child",element:l.name}),K();let f={dom:s.createTextNode(String(r.data??"").slice(0,Ee)),children:[],text:!0,listeners:new Map,id:h};return w.set(h,f),_+=1,f}if(r.type!==zt)return p({reason:"record"}),K();let o=String(r.element);if(!Re(d,o)||!Jt(d[o]))return p({reason:"element",element:o}),K();if(u!=="any")return p({reason:"child",element:o}),K();let g=d[o],v=s.createElement(g.host);v.setAttribute("data-gv",o.replace(/^gv-/,"")),v.className=`graview-guest-${o.replace(/^gv-/,"")}`,g.host==="a"&&(v.setAttribute("rel","noopener noreferrer"),v.setAttribute("target",g.target??"_blank"),v.setAttribute("referrerpolicy","no-referrer")),g.host==="button"&&v.setAttribute("type","button");let T={dom:v,name:o,component:g,children:[],listeners:new Map,id:h};if(w.set(h,T),_+=1,J(r.properties))for(let[f,L]of Object.entries(r.properties))M(T,f,L);if(J(r.attributes))for(let f of Object.keys(r.attributes))p({reason:"attribute",element:o,name:f});if(J(r.eventListeners))for(let[f,L]of Object.entries(r.eventListeners))k(T,f,L);if(Array.isArray(r.children))for(let f of r.children){let L=A(f,T);T.children.push(L),v.appendChild(L.dom)}return T},N=r=>{if(!Array.isArray(r))return p({reason:"record"});let[l,h]=r,u=typeof h=="string"?w.get(h):void 0;if(!u)return p({reason:"record"});switch(l){case Dt:{if(u.text)return p({reason:"record"});let o=Number(r[3]),g=Number.isInteger(o)&&o>=0&&o<=u.children.length?o:u.children.length,v=A(r[2],u);u.dom.insertBefore(v.dom,u.children[g]?.dom??null),u.children.splice(g,0,v);return}case jt:{let o=Number(r[2]),g=u.children[o];if(!g)return p({reason:"record"});u.children.splice(o,1),g.dom.parentNode?.removeChild(g.dom),x(g);return}case Bt:if(!u.text)return p({reason:"record"});u.dom.data=String(r[2]??"").slice(0,Ee);return;case Ut:{if(u===W||u.text)return p({reason:"record"});let o=String(r[2]),g=r[4]??Mt;return g===Mt?M(u,o,r[3]):g===Ft?k(u,o,r[3]):p(g===$t?{reason:"attribute",element:u.name,name:o}:{reason:"record"})}default:return p({reason:"record"})}};return{apply(r,l){if(!Array.isArray(r))return p({reason:"record"}),!0;for(let h=0;h<r.length;h+=1){if(l&&h%32===0&&l())return!1;N(r[h])}return!0},get refused(){return y},get size(){return _},get listening(){return E},dispose(){for(let r of W.children)x(r);W.children.length=0,n.replaceChildren()}}}var We=`
|
|
2
|
+
.graview-guest { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: var(--graview-ink, inherit); font: inherit; }
|
|
3
|
+
.graview-guest-card { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid var(--graview-edge, #d0d0d0); border-radius: 10px; background: var(--graview-panel, transparent); }
|
|
4
|
+
.graview-guest-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
|
|
5
|
+
.graview-guest-group[data-gv-direction="row"] { flex-direction: row; flex-wrap: wrap; align-items: center; }
|
|
6
|
+
.graview-guest-title { font-weight: 600; font-size: 1rem; overflow-wrap: anywhere; }
|
|
7
|
+
.graview-guest-text { margin: 0; font-size: 0.875rem; line-height: 1.45; overflow-wrap: anywhere; }
|
|
8
|
+
.graview-guest-badge { align-self: flex-start; padding: 1px 8px; border: 1px solid currentColor; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; }
|
|
9
|
+
.graview-guest-field { font-size: 0.875rem; overflow-wrap: anywhere; }
|
|
10
|
+
.graview-guest-field[data-gv-label]::before { content: attr(data-gv-label) " "; color: var(--graview-ink-muted, inherit); }
|
|
11
|
+
.graview-guest-progress { width: 100%; }
|
|
12
|
+
.graview-guest-divider { width: 100%; margin: 2px 0; border: 0; border-top: 1px solid var(--graview-edge, #d0d0d0); }
|
|
13
|
+
.graview-guest-link { color: var(--graview-accent, inherit); text-decoration: underline; }
|
|
14
|
+
.graview-guest-button { align-self: flex-start; font: inherit; padding: 4px 12px; border-radius: 8px; border: 1px solid var(--graview-edge, #d0d0d0); background: var(--graview-panel, transparent); color: inherit; cursor: pointer; }
|
|
15
|
+
.graview-guest-input { font: inherit; padding: 4px 8px; border-radius: 6px; border: 1px solid var(--graview-edge, #d0d0d0); }
|
|
16
|
+
.graview-guest [data-gv-tone="good"] { color: var(--graview-good, inherit); }
|
|
17
|
+
.graview-guest [data-gv-tone="bad"] { color: var(--graview-bad, inherit); }
|
|
18
|
+
.graview-guest [data-gv-tone="warn"] { color: var(--graview-warn, inherit); }
|
|
19
|
+
.graview-guest [data-gv-tone="accent"] { color: var(--graview-accent, inherit); }
|
|
20
|
+
.graview-guest [data-gv-tone="neutral"] { color: var(--graview-ink-muted, inherit); }
|
|
21
|
+
`;var Rt=new WeakSet;function Qt(n,e){if(n.startsWith("blob:"))return"blob:";try{return new URL(n,e.location.href).origin}catch{return n}}function Gt(n,e,d){let m=Qt(e,n),s=`this page's Content-Security-Policy${d?` (${d})`:""} does not allow a worker from ${m}: it needs worker-src ${m}`;return Rt.has(n)||(Rt.add(n),n.console?.warn?.(`Graview: worker views cannot start on this page, because ${s}. A host that will not allow ${m} serves each view's whole script from its own origin and passes worker: { url } (the @graview/guest README, "What the host page allows").`)),s}function Zt(n,e){return n===""?!0:e.startsWith("blob:")?n.startsWith("blob"):e.startsWith(n)||n.startsWith(e)}function le(n,e){let d="script"in e.source?n.URL.createObjectURL(new n.Blob([e.source.script],{type:"text/javascript"})):void 0,m="script"in e.source?d:e.source.url,s,y,w=!1,W=!1,R=0,_=0,E="",O=0,p=0,K=n.performance,M=K.now(),k,x=u=>{let o=u,g=String(o.effectiveDirective||o.violatedDirective||"").split(" ")[0];/^(worker-src|script-src|script-src-elem|child-src|default-src)$/.test(g)&&Zt(String(o.blockedURI??""),m)&&(k=g)},A=n.document;A?.addEventListener("securitypolicyviolation",x);let N=()=>A?.removeEventListener("securitypolicyviolation",x),r=()=>{W||(W=!0,y?.close(),s?.terminate(),s=void 0,n.clearTimeout(R),n.clearInterval(_),N(),d&&n.URL.revokeObjectURL(d))},l=(u,o)=>{W||(r(),e.onStop(u,o))},h=()=>{n.clearTimeout(R),N(),E=dt();let u=new n.MessageChannel;y=u.port1;let o=Math.max(1,e.silentMs),g=Math.max(10,Math.min(1e3,Math.floor(o/4)));M=K.now();let v=M;_=n.setInterval(()=>{let f=K.now();if(f-v>g*2&&(M+=f-v-g),v=f,f-M>=o)return l("silent");O+=1,u.port1.postMessage({type:"heartbeat",beat:O})},g);let T={graview:"host-hello",protocol:1,nonce:E,view:e.name};s.postMessage(T,[u.port2]),e.onReady(E,u.port1)};try{s=new n.Worker(m,{name:e.name})}catch(u){s=void 0;let o=u,g=o?.name==="SecurityError"?Gt(n,m,k):`the worker could not be made: ${String(o?.message??u)}`;queueMicrotask(()=>l("start",g))}return s&&(R=n.setTimeout(()=>l("start",`it never said it was ready in ${e.readyMs.toLocaleString("en-US")} ms`),e.readyMs),s.onerror=u=>{let o=typeof u.message=="string"&&u.message!==""?u.message:void 0;if(w)return void e.onError?.(o??"an error");n.clearTimeout(R),n.setTimeout(()=>!w&&l("start",k?Gt(n,m,k):o?`it failed before it said ready: ${o}`:"it failed before it said ready, and the engine gave no reason (a page policy that refuses it, or a script that does not load)"),0)},s.onmessage=u=>{if(!e.limiter.message()||w||!at(u.data)||u.data.protocol!==1){e.onDropped();return}w=!0,h()}),{get worker(){return s},answer(u){let o=u;return typeof o!="object"||o===null||o.type!=="heartbeat"||o.nonce!==E?!1:(typeof o.beat=="number"&&o.beat>p&&o.beat<=O&&(p=o.beat,M=K.now()),!0)},stop:r}}function ue(n,e){let d=e(),m=0;return{draw(s){let y=e();y-d>=1e3&&(d=y,m=0);let w=s(()=>m+(e()-y)>=n);return m+=e()-y,w&&m<n}}}var er=D(()=>(__graviewPreload(import.meta.url,["./chunk.BRDAO2OF.js","./chunk.AJZBJBMO.js"]),import("./chunk.X5G7FOPY.js"))),tr=D(()=>(__graviewPreload(import.meta.url,["./chunk.7ELB37JU.js","./chunk.F2VMMCVK.js","./chunk.NFIGGSMJ.js","./chunk.G446PWV6.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.SZR3Z43B.js"))),rr=D(()=>(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.SHNYYBNW.js"))),nr=D(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.ZIEHF67C.js","./chunk.UHX4WTM7.js","./chunk.IKX4VDTW.js","./chunk.RNEJYIQ7.js","./chunk.TBQOSI4J.js","./chunk.KWQ7QOHD.js","./chunk.H7KCWCB4.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.VAFSSSSI.js"))),sr=D(()=>(__graviewPreload(import.meta.url,["./chunk.F2VMMCVK.js","./chunk.NFIGGSMJ.js","./chunk.AS4CQBOQ.js","./chunk.2AZTW66C.js","./chunk.AJZBJBMO.js"]),import("./chunk.PYE3WZM7.js"))),or=D(()=>(__graviewPreload(import.meta.url,["./chunk.BBLIT7S7.js","./chunk.AJZBJBMO.js"]),import("./chunk.RRCPEHM4.js")));function ir(n,e,d){switch(n){case"manifest":return d??"Its manifest names something this app does not have.";case"source":return d??`Its code is longer than the ${e.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`;case"start":return`It could not start${d?`: ${d}.`:"."}`;case"error":return`It failed before it drew anything${d?`: ${d}`:"."}`;case"silent":return`It stopped answering for ${e.silentMs.toLocaleString("en-US")} ms.`;case"nodes":return`It drew more than the ${e.maxNodes.toLocaleString("en-US")} things a view may draw.`;case"flood":return`It sent more than ${e.messages} messages in ${e.messageWindowMs.toLocaleString("en-US")} ms.`;case"slow":return`It took longer than ${e.pushMs.toLocaleString("en-US")} ms to draw what it was shown.`}}function ar(n,e){let d=n.ownerDocument,m=d.defaultView,{manifest:s}=e,y=d.createElement("div");y.className="graview-worker-view",y.setAttribute("role","region"),y.setAttribute("aria-label",s.title??s.name),y.setAttribute("data-worker-view",s.name),y.style.cssText="display:block;position:relative;contain:layout paint style;isolation:isolate;overflow:clip;min-width:0",n.appendChild(y);let w=y.attachShadow({mode:"open"}),W=e.author?d.createElement("p"):void 0;W&&(W.className="graview-worker-view-author",W.setAttribute("data-worker-view-author",s.name),W.style.cssText="margin:4px 0 0;font-size:0.75rem;color:var(--graview-ink-muted, inherit)",W.textContent=e.author,n.appendChild(W));let R={applied:0,refused:0,dropped:0},_=ie(e.limits),E={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,messageWindowMs:e.limits?.messageWindowMs??1e3,pushMs:e.limits?.pushMs??1e3,silentMs:e.limits?.silentMs??5e3,drawMs:e.limits?.drawMs??100},O,p,K,M,k=!1,x={applied:0,refused:0,dropped:0},A=[],N=()=>{if(!p)return;let t=p.stats;R.applied+=t.applied-x.applied,R.refused+=t.refused-x.refused,R.dropped+=t.dropped-x.dropped,x={...t}},r=()=>{},l,h,u=()=>{let t=w.querySelector("[data-graview-view-root]"),c=m.ResizeObserver;h||!t||typeof c!="function"||(h=new c(b=>{let S=b[b.length-1]?.borderBoxSize?.[0],i=Math.ceil(S?S.blockSize:t.offsetHeight);i!==l&&(l=i,y.setAttribute("data-graview-content-height",String(i)),e.onContentHeight?.(i))}),h.observe(t))},o=()=>{h&&(h.disconnect(),h=void 0,l=void 0,y.removeAttribute("data-graview-content-height"),e.onContentHeight?.(void 0))},g=0,v=()=>{},T=()=>{v(),v=()=>{},N(),p?.dispose(),p=void 0,K?.stop(),r(),m.clearInterval(g)},f=(t,c)=>{if(k)return;k=!0,T(),o(),M?.dispose();let b=ir(t,E,c);y.removeAttribute("data-worker-view-drawn"),y.setAttribute("data-worker-view-failed",t),e.fallback!==!1&&(e.fallback??L)(y,t,b),e.onFailure?.(t,b)},L=(t,c,b)=>{let S=O??(()=>{try{return xe(e.store,e.principal,{manifest:s,...e.input?{input:e.input()}:{}})}catch{return}})(),i=d.createElement("div");i.setAttribute("data-graview-fallback",c),i.style.cssText="padding:12px;display:grid;gap:6px;color:var(--graview-ink, inherit);font-family:var(--graview-font-body, inherit)";let I=d.createElement("strong");I.textContent=s.title??s.name;let V=d.createElement("ul");V.style.cssText="margin:0;padding-left:1.2em";for(let re of[...S?.node?[S.node]:[],...S?.nodes??[]]){let ne=d.createElement("li");ne.textContent=re.label??re.id,V.appendChild(ne)}let U=d.createElement("p");U.style.cssText="margin:0;font-size:0.8125rem;color:var(--graview-ink-muted, inherit)",U.textContent=`This view was stopped. ${b}`,i.append(I,V,U),w.replaceChildren(i)},Oe=ct(s,e.store);if(Oe.length>0)return queueMicrotask(()=>f("manifest",Oe.join(" "))),he();let Ae=t=>{if(("source"in t?new TextEncoder().encode(t.source).length:"script"in t?new TextEncoder().encode(t.script).length:0)>E.maxSourceBytes)return["source"];let b="source"in t?ft(t.source):[];return b.length>0?["source",b.join(" ")]:void 0},$=e.worker,Le=typeof $=="function"?void 0:Ae($);if(Le)return queueMicrotask(()=>f(...Le)),he();let _e=vt(m,()=>Ne(),"blob"),ce=()=>wt(()=>e.theme?.()??yt(y),e.brand,_e),Ie="",pe=()=>{Ie=JSON.stringify(ce()),p?.push()},Ne=()=>{p&&JSON.stringify(ce())!==Ie&&pe()},Ot=ht(d,Ne),j,B,Pe=s.pictures?rr().then(({createGuestPictures:t})=>{k||(j=t(m,{as:"blob",view:`"${s.title??s.name}"`,pictures:s.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>p?.push(),onLeft:c=>{C?.postMessage({type:"notice",text:c}),e.onProblem?.(c)}}))}):Promise.resolve();r=()=>{Ot(),_e.dispose(),j?.dispose(),X?.dispose(),B?.dispose(),te?.dispose()};let C,Q=t=>C?.postMessage(t),Ve=!1,Ce=!1,Z=()=>y.toggleAttribute("data-worker-view-drawn",!k&&Ce&&M!==void 0&&A.length===0&&z.size===0&&!j?.waiting()&&!(B?.waiting??0)),F=m.performance,z=new Map,ee=F.now(),fe=Math.max(10,Math.min(250,Math.floor(E.pushMs/4))),At=()=>{g||(ee=F.now(),g=m.setInterval(()=>{let t=F.now(),c=t-ee>fe*2?t-ee-fe:0;ee=t;for(let[b,S]of z){let i=S+c;if(z.set(b,i),t-i>=E.pushMs)return f("slow")}},fe))},Lt=ue(E.drawMs,()=>F.now()),He=()=>{},ge=t=>{if(k)return;if(!M)return void A.push(t);let c=M;if(!Lt.draw(S=>t[0]==="render"?c.apply(t[1],S):(c.style(t[1]),!0)))return f("slow");t[0]==="render"&&He()},De=()=>ot(e.store.schema,new Set([...e.store.kindsKeptFrom(e.principal),...e.store.modules.disabledKinds])),q=it({sees:t=>e.store.seenBy(e.principal).graph.has(t),places:()=>oe(e.places?.()??[]),lists:De,schema:e.store.schema,...e.onNavigate?{onNavigate:e.onNavigate}:e.goTo?{onNavigate:t=>gt(e.goTo(),t)}:{},...e.hrefOf?{hrefOf:e.hrefOf}:!e.onNavigate&&e.goTo?{hrefOf:t=>mt(e.goTo(),t)}:{},onLost:t=>{C?.postMessage({type:"notice",text:t}),e.onProblem?.(t)}}),H=new Set,je=new Set,X,Be=!1,Ue=()=>{Be||(Be=!0,nr().then(({createGuestMedia:t})=>{k||(X=t(m,{view:`"${s.title??s.name}"`,pictures:s.pictures!==void 0,shown:()=>O,...e.file?{file:e.file}:{},onProblem:c=>{C?.postMessage({type:"notice",text:c}),e.onProblem?.(c)}}),X.refresh(w))},()=>e.onProblem?.(`The view "${s.title??s.name}" places a video or a full-screen viewer, and the host's player could not be loaded.`)))},$e=!1,Fe=!1,me=new Map,ze=()=>{$e||!s.accepts?.length||($e=!0,sr().then(({createGuestDrops:t})=>{k||(B=t(m,{shadow:w,manifest:s,store:e.store,principal:e.principal,files:()=>e.files?.(),shown:()=>H,hears:()=>Fe,idOf:c=>M?.renderer.idOf(c),send:Q,change:(c,b)=>{if(!p)return{ok:!1,reason:"refused",message:"The view has gone."};let S=p.change(c,b);return N(),S},handed:c=>me.set(c.href,c),onProblem:c=>{C?.postMessage({type:"notice",text:c}),e.onProblem?.(c)},onBusy:()=>Z()}),B.refresh())},()=>e.onProblem?.(`The view "${s.title??s.name}" takes files, and the host's drop could not be loaded.`)))},te,qe=[],Xe=!1,_t=t=>{qe=t,te?.bind(t),!(Xe||t.length===0)&&(Xe=!0,or().then(({createGuestGestures:c,unheardWords:b})=>{if(!k){if(s.gestures!==!0){let S=b(s.title??s.name);return C?.postMessage({type:"notice",text:S}),e.onProblem?.(S)}te=c(w,{root:()=>w.querySelector("[data-graview-view-root]")??void 0,idOf:S=>M?.renderer.idOf(S),send:Q}),te.bind(qe)}},()=>{}))},It=t=>{let c=e.store.seenBy(e.principal).graph;for(let b of H){let S=c.getNode(b);for(let i of Object.values(S??{}))for(let I of ut(i))if(I.href===t)return I}},Ye=t=>{if(t.localName==="graview-video")return Ue();t.hasAttribute("data-lightbox")&&(t.setAttribute("aria-haspopup","dialog"),Ue())};Promise.all([er(),tr()]).then(([{createOpenDrawing:t,handedLinks:c,judgeLink:b,linkRefusedWords:S},{createPressReader:i,createSaver:I,fillPrefills:V,judgePress:U,markPresses:re,prefillOf:ne,quietPictures:Nt}])=>{if(k)return;let Y=i(),Qe=(a,G)=>{let P=M?.renderer.idOf(a);P!==void 0&&Q({type:"dom-event",target:P,event:"acted",pressed:G})},we=I({reader:Y,save:(a,G)=>{if(!p)return;let P=p.pressed(U(e.store,s,H,a));N(),Qe(G,{as:a.as,...P})}}),Ze=()=>we.flush();m.addEventListener("pagehide",Ze),v=()=>{m.removeEventListener("pagehide",Ze),we.flush()};let Pt=new WeakSet;He=()=>{q.refresh(w),re(w),Nt(w),V(w,Y,Pt,a=>ne(e.store,e.principal,s,H,a)),X?.refresh(w),B?.refresh()};let et,tt=new Set,Vt=()=>(et!==O&&([et,tt]=[O,c(O)]),tt),rt=new Set;M=t(w,{origin:e.origin??m.location.origin,link:a=>b(a,{handed:Vt(),...e.links?{origins:e.links.origins}:{}}),...e.asset?{asset:e.asset}:{},...e.images?{imageOrigins:e.images.origins}:{},...s.pictures?{picture:a=>j?.drawn(a)}:{},onRefused:a=>{if(a.reason==="url"&&a.element==="a"&&a.address!==void 0&&!rt.has(a.address)){rt.add(a.address);let P=S(a.address,e.links?.origins);return C?.postMessage({type:"notice",text:P}),e.onProblem?.(P)}if(a.reason!=="url"||a.element!=="img"||a.address===void 0||je.has(a.address))return;je.add(a.address);let G=lt(a.address,{...e.images?{origins:e.images.origins}:{},assets:e.asset!==void 0},a.length);C?.postMessage({type:"notice",text:G}),e.onProblem?.(G)},...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>f("nodes"),send:Q,onFieldSet:a=>Y.filled(a),onAttribute:(a,G)=>{(G==="data-record"||G==="data-place")&&q.link(a),G==="data-lightbox"&&Ye(a),G==="data-drop"&&ze()},decorate:a=>{(a.hasAttribute("data-record")||a.hasAttribute("data-place"))&&q.link(a),Ye(a),a.hasAttribute("data-drop")&&ze()},before:(a,G,P)=>{Y.heard(a,G),we.heard(a,G,P),q.pressed(a,G,P);let ve=G.closest("a[href]");ve&&P.contains(ve)&&!ve.hasAttribute("data-graview-link")&&a.type==="click"&&a.stopPropagation();let se=G.closest("[data-lightbox]"),nt=a.type==="keydown"?a.key:void 0;if(se&&P.contains(se)&&a.isTrusted&&(a.type==="click"||(nt==="Enter"||nt===" ")&&se.localName!=="button")&&(a.preventDefault(),a.stopPropagation(),X?.open(se)),B?.before(a,G,P))return!1;let be=Y.press(a,G,P);if(!be||!p)return;a.stopPropagation(),a.type==="keydown"&&a.preventDefault();let Ct=p.pressed(U(e.store,s,H,be));N();let st={as:be.as,...Ct},Ht=G.closest("[data-act]");return queueMicrotask(()=>Qe(Ht,st)),{pressed:st}}});for(let a of A.splice(0))ge(a);u(),Z()},()=>f("start","the view's drawing could not be loaded"));let ye=t=>K=le(m,{source:t,name:s.name,limiter:_,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>R.dropped+=1,onStop:(c,b)=>f(c,b),onError:c=>{Ve||f("error",c)},onReady:(c,b)=>{C=b,At();let S=ae({store:e.store,principal:e.principal,view:s.name,nonce:c,send:i=>{i.type==="props"&&typeof i.push=="number"&&(z.set(i.push,F.now()),Z()),b.postMessage(i)},props:()=>{let i=xe(e.store,e.principal,{manifest:s,...e.input?{input:e.input()}:{},theme:ce(),...e.places?{places:oe(e.places())}:{}});return H=new Set([...i.node?[i.node.id]:[],...(i.nodes??[]).map(I=>I.id)]),O=i,i},...j?{hand:j.hand}:{},judgeAct:(i,I)=>pt(e.store,s,i,I,{shown:H,file:V=>me.get(V)??It(V),dropped:V=>me.has(V)}),onHears:i=>{i.includes("drop")&&(Fe=!0)},onGestures:_t,onRender:i=>{Ve=!0,ge(["render",i])},onPushed:(i,I)=>{if(z.delete(i),I>=E.pushMs)return f("slow");Ce=!0,Z()},onFlood:()=>f("flood"),onStyle:i=>ge(["style",i]),places:()=>[...new Set([...oe(e.places?.()??[]).map(i=>i.as),...De().map(i=>i.slug)])],...e.limits?{limits:e.limits}:{},limiter:_});p=S,b.onmessage=({data:i})=>{if(!K?.answer(i)&&(S.receive(i),N(),!k&&i?.nonce===c&&i.type==="navigate")){let I={...i.where!==void 0?{where:i.where}:{},...i.section!==void 0?{section:i.section}:{}},V=typeof i.place=="string"?{place:i.place,...I}:typeof i.to=="string"&&{record:i.to,...I};V&&q.go(V)}},pe()}}),Je=t=>{"source"in t?(s.pictures?Promise.all([Se(t.source),Pe]).then(([c])=>c):Se(t.source)).then(c=>{k||ye({script:c})},()=>f("start","the view's runtime could not be loaded")):s.pictures?Pe.then(()=>{k||ye(t)},()=>f("start","the view's pictures could not be loaded")):ye(t)};return typeof $=="function"?bt($).then(t=>{if(k)return;let c=Ae(t);c?f(...c):Je(t)},t=>f("source",`Its code did not arrive${t instanceof Error&&t.message?`: ${t.message}`:""}.`)):Je($),he();function he(){return{element:y,shadow:w,get worker(){return K?.worker},update:()=>{p&&pe()},get stats(){return N(),R},get refused(){return M?.refused??[]},get contentHeight(){return l},dispose(){k=!0,T(),h?.disconnect(),M?.dispose(),y.remove(),W?.remove()}}}}var Wt="graview-guest-kit";function Ir(n,e){let d=n.ownerDocument,m=d.defaultView;if(!d.getElementById(Wt)){let x=d.createElement("style");x.id=Wt,x.textContent=We,d.head.appendChild(x)}let s=d.createElement("div");s.className="graview-guest",s.setAttribute("role","group"),s.setAttribute("aria-label",e.title??e.view),s.setAttribute("data-guest-view",e.view),n.appendChild(s);let y={applied:0,refused:0,dropped:0},w=ie(e.limits),W=ue(e.limits?.drawMs??100,()=>m.performance.now()),R,_,E,O=!1,p={applied:0,refused:0,dropped:0},K=()=>{if(!R)return;let x=R.stats;y.applied+=x.applied-p.applied,y.refused+=x.refused-p.refused,y.dropped+=x.dropped-p.dropped,p={...x}},M=()=>{K(),R?.dispose(),R=void 0,E?.stop()},k=(x,A)=>{O||(O=!0,M(),_?.dispose(),e.onFailure?.(x,A))};return E=le(m,{source:e.worker,name:e.view,limiter:w,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>y.dropped+=1,onStop:(x,A)=>k(x,A),onReady:(x,A)=>{let N=Ge(s,{...e.kit?{kit:e.kit}:{},...e.links?{links:e.links}:{},onEvent:(l,h)=>A.postMessage({type:"event",listener:l,...h!==void 0?{detail:h}:{}}),...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>k("budget")});_=N;let r=ae({store:e.store,principal:e.principal,view:e.view,nonce:x,send:l=>A.postMessage(l),onRender:l=>{W.draw(h=>N.apply(l,h))||k("slow")},...e.input?{input:e.input}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},onSize:e.onSize??(l=>s.style.minHeight=`${l}px`),...e.limits?{limits:e.limits}:{},limiter:w});R=r,A.onmessage=l=>{E?.answer(l.data)||(r.receive(l.data),K())},r.push()}}),{element:s,get worker(){return E?.worker},update:()=>R?.push(),get stats(){return K(),y},get refused(){return _?.refused??[]},dispose(){O=!0,M(),_?.dispose(),s.remove()}}}export{Me as GUEST_KIT,We as GUEST_KIT_CSS,Te as KIT_LINK_TARGETS,kt as KIT_TONES,Ge as createKitRenderer,Et as hostAttribute,Kt as kitValue,Ir as mountGuestWorker,ar as mountWorkerView};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{H as $}from"./chunk.
|
|
1
|
+
import{H as $}from"./chunk.O4WEJ47H.js";import{G as L,La as U,a as I,b as R,c as E,d as f,e as k,j as W,m as F,v as j}from"./chunk.Y4ZUJUUT.js";import{ld as s,sd as b,td as r}from"./chunk.AS4CQBOQ.js";import{b as H}from"./chunk.AJZBJBMO.js";var u=H(L(),1),_=e=>typeof e=="object"&&e!==null&&"idx"in e;function S(e){let n=r(window.location.pathname,e);return n===null?null:n!==s&&n!=="/"?"pages":n===s||window.location.href.includes("#")?f(window.location.hash).overview?"graview":"scene":_(window.history.state)?"pages":null}function K(e){let n=e.face??(e.stop&&E(e.stop).overview?"graview":"scene");return e.routing!=="address"||typeof window>"u"?n:S(e.basePath)??n}function Q(e){return e.routing!=="address"||typeof window>"u"?!1:r(window.location.pathname,e.basePath)==="/"&&S(e.basePath)===null}function X(e){if(typeof window>"u")return;let n=r(window.location.pathname,e);return n===s||n==="/"&&window.location.href.includes("#")?R(f(window.location.hash)):void 0}function Z({basePath:e,pagesWere:n,shown:t,onFace:i,toggle:l,kinds:N,places:w,opens:B,landed:V}){let{view:O,go:p}=U(),g=(0,u.useRef)({shown:t,view:O,onFace:i,landed:V});g.current={shown:t,view:O,onFace:i,landed:V};let m=(0,u.useRef)(n??"/"),P=()=>{m.current=`${r(window.location.pathname,e)??"/"}${window.location.search}`};return l.current=(o,c,a)=>{let{shown:d,view:h,onFace:A}=g.current;if(o==="pages"&&d!=="pages")window.history.pushState(null,"",b(c??m.current,{basePath:e}));else if(o!=="pages"&&d==="pages"){P();let y=a===void 0?h:M(E(a),w),v=q(y)?z(B):y,T=v!==y&&v.overview?"graview":o,x=Y(T,v,N);p(x),window.history.pushState(null,"",`${b(s,{basePath:e})}${k(x)}`),A?.(T);return}A?.(o)},(0,u.useEffect)(()=>{let o=()=>{if(r(window.location.pathname,e)===null)return;let c=S(e)??"pages",{shown:a,onFace:d,landed:h}=g.current;if(c==="pages"){P(),h?.(m.current),a!=="pages"&&d?.("pages");return}a==="pages"&&(p(M(f(window.location.hash),w)),d?.(c))};return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[e,p,w]),null}function M(e,n){let t=e.within?.view,i=t!==void 0&&!e.focusId?n.find(l=>l.as===t):void 0;return i?{...e,focusId:j(i.kind)}:e}function Y(e,n,t){return e==="graview"?F(n,!0):n.overview?W(F(n,!1),$(n,t)):n}function q(e){return e.focusId===null&&e.overview!==!0}function z(e){return e??{...I,overview:!0}}export{K as a,Q as b,X as c,Z as d,M as e,Y as f,q as g,z as h};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as z,e as D,f as H}from"./chunk.
|
|
1
|
+
import{d as z,e as D,f as H}from"./chunk.IPAZOKMQ.js";import"./chunk.V7XHNRQM.js";import{a as P,b as A,c as p,d as W}from"./chunk.UGFDSE37.js";import"./chunk.IYIN6VSN.js";import"./chunk.GCKZ2YRJ.js";import"./chunk.VC3UGFHY.js";import"./chunk.YHH4TWZ2.js";import"./chunk.O2WWYZI7.js";import"./chunk.AGIO2GRV.js";import"./chunk.VSNHCGKC.js";import"./chunk.EUPSAYEI.js";import"./chunk.TCXKPILZ.js";import"./chunk.R6V37SR7.js";import"./chunk.SWWAEOZ7.js";import"./chunk.IROYMLER.js";import"./chunk.FWSCBHZ5.js";import"./chunk.7NNI7YH4.js";import"./chunk.7N2GXZYI.js";import"./chunk.MF73YBJL.js";import"./chunk.63MS2LOP.js";import"./chunk.PKUDIWIF.js";import"./chunk.VW2VCPJX.js";import{a as C,b as O}from"./chunk.MB7LKKUD.js";import"./chunk.WVUJXDXZ.js";import"./chunk.ZIEHF67C.js";import"./chunk.UHX4WTM7.js";import"./chunk.IKX4VDTW.js";import"./chunk.RNEJYIQ7.js";import"./chunk.TBQOSI4J.js";import"./chunk.KWQ7QOHD.js";import"./chunk.GZHZLJBF.js";import"./chunk.5AGW4NRZ.js";import"./chunk.OJGHDWI6.js";import"./chunk.DQS7D2W2.js";import"./chunk.HDRD33II.js";import"./chunk.DX357TZ3.js";import"./chunk.H7KCWCB4.js";import"./chunk.O4WEJ47H.js";import{G as B,Pa as k,R as L}from"./chunk.Y4ZUJUUT.js";import"./chunk.SDO3U72B.js";import{wc as R}from"./chunk.AS4CQBOQ.js";import"./chunk.2AZTW66C.js";import{b as E}from"./chunk.AJZBJBMO.js";var r=E(B(),1);var s=E(L(),1);function M(c){let e=document.activeElement;if(e!==null&&e!==document.body&&e!==document.documentElement&&e.isConnected)return;let n=c??document,o=n.querySelector("main")??n.querySelector("[data-graview-page]")??null,t=n.querySelector("[data-graview-page-title]")??o?.querySelector("h1, h2")??o;t instanceof HTMLElement&&(t.hasAttribute("tabindex")||t.setAttribute("tabindex","-1"),t.focus({preventScroll:!0}))}var I=1500;function N(c,e,n){let{store:o,principal:t}=c,l=z(o),g=(0,r.useMemo)(()=>P(o,t),[o,t,l]),w=(0,r.useRef)(n),[b,d]=(0,r.useState)(),[y,u]=(0,r.useState)("");(0,r.useEffect)(()=>{let a=A(o,t,w.current);w.current=o.batches().length,a&&(d({batch:a.batch,at:e,when:Date.now()}),u(""))},[o,t,l]),(0,r.useEffect)(()=>{d(a=>!a||a.at===e?a:Date.now()-a.when<I?{...a,at:e}:void 0)},[e]);let[x,i]=(0,r.useState)(null),v=(0,r.useCallback)(()=>{d(void 0),i(null)},[]),f=(0,r.useCallback)(()=>{i(null);try{let a=W(o,t);a&&u(`Took back \u201C${a.intent}\u201D`)}catch(a){i(a instanceof Error?a.message:String(a))}},[o,t]),S=g&&b?.batch===g.batch&&b.at===e?g:void 0;return{change:g,offered:S,close:v,takeBack:f,refused:x,said:y}}function ee({context:c,docked:e,at:n,since:o,compact:t=!1,className:l,size:g}){let{change:w,offered:b,close:d,takeBack:y,refused:u,said:x}=N(c,n,o),i=e?b:w,v=(0,r.useRef)(null),f=e&&(i!==void 0||u!==null);j(v,f),(0,r.useEffect)(()=>{if(!f)return;let m,h=()=>m=setTimeout(()=>v.current?.matches(":hover, :focus-within")?h():d(),1e4);return h(),()=>clearTimeout(m)},[f,i?.batch,u,d]);let S=x||(e&&i?p(i):""),a=e?{position:"fixed",inset:"auto",margin:0,padding:0,border:"none",background:"none",overflow:"visible",zIndex:R("toast"),width:"max-content",height:"auto",bottom:"calc(16px + env(safe-area-inset-bottom, 0px))",left:16,justifyItems:"start",color:"var(--graview-ink)",...f?{}:{display:"none"}}:{},T=i?(0,s.jsxs)("button",{type:"button","data-testid":"page-undo",title:`${p(i)} \u2014 \u2318Z or Ctrl+Z`,"aria-keyshortcuts":"Meta+Z Control+Z",onClick:m=>{let h=m.currentTarget.closest("[data-graview-face]");y(),requestAnimationFrame(()=>M(h))},...e?{style:U}:{className:H("graview-undo",l),...D(g),...t?{"data-compact":"","aria-label":p(i)}:{}},children:[(0,s.jsx)("span",{"aria-hidden":"true",children:"\u21B6"}),e?(0,s.jsx)("span",{style:K,children:p(i)}):(0,s.jsx)("span",{className:"graview-undo-words",children:t?"Undo":p(i)})]}):null;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{role:"status","aria-live":"polite",style:V,children:S}),(0,s.jsxs)("div",{ref:v,...e?{popover:"manual","data-graview-foot":"","data-graview-offstage":""}:{},"data-testid":e?"face-undo-dock":"page-undo-place",...e?{style:{...F,...a}}:{className:"graview-undo-place"},children:[e?null:(0,s.jsx)("style",{children:q}),e&&i?(0,s.jsxs)("div",{"data-testid":"page-undo-notice",style:Z,children:[T,(0,s.jsx)("button",{type:"button","data-testid":"page-undo-dismiss","aria-label":`Dismiss: ${p(i)}`,title:"Dismiss",onClick:m=>{let h=m.currentTarget.closest("[data-graview-face]");d(),requestAnimationFrame(()=>M(h))},style:$,children:"\xD7"})]}):T,u?(0,s.jsx)("span",{"data-testid":"page-undo-refused",role:"alert",className:"graview-undo-refused",...e?{style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-warn)",borderRadius:6,background:"var(--graview-float)",padding:"4px 8px"}}:{},children:u}):null]})]})}function j(c,e){(0,r.useLayoutEffect)(()=>{let n=c.current;if(!n||!e)return;if(typeof n.showPopover=="function"&&!k(n))try{n.showPopover()}catch{}let o=()=>n.parentElement?.closest("[data-embed-content]")??null,t=()=>{O(n,o()),dispatchEvent(new Event(C))};t(),addEventListener("resize",t),addEventListener("scroll",t,!0);let l=typeof ResizeObserver=="function"?new ResizeObserver(t):null;return l?.observe(n),()=>{if(l?.disconnect(),removeEventListener("resize",t),removeEventListener("scroll",t,!0),n.isConnected&&k(n))try{n.hidePopover()}catch{}dispatchEvent(new Event(C))}},[c,e])}var q=`:where(.graview-undo-place){display:grid;justify-items:end;gap:4px;max-width:100%;min-width:0}
|
|
2
2
|
:where(.graview-undo){box-sizing:border-box;display:inline-flex;align-items:center;gap:6px;min-height:var(--graview-control-height,36px);max-width:min(100%,var(--graview-undo-widest,18rem));min-width:0;padding:0 14px;border-radius:999px;border:1px solid var(--graview-edge);background:var(--graview-float);color:var(--graview-ink);font:inherit;font-size:.875rem;cursor:pointer}
|
|
3
3
|
:where(.graview-undo[data-size=sm]){--graview-control-height:30px}
|
|
4
4
|
:where(.graview-undo[data-compact]){padding:0 10px}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{a as D,b as L,c as C,d as M,e as j,f as S,h as T}from"./chunk.BRDAO2OF.js";import"./chunk.AJZBJBMO.js";var $=0,W=1,K=2,z=3,I=1,X=2,_=3,Y=1,J=3,q=8,P="~",R=o=>typeof o=="object"&&o!==null&&!Array.isArray(o),F=new Set(["input","select","textarea","option"]),Q=new Set(["value","checked","selected"]);function H(o,t){let l=o.ownerDocument??o,v=t.maxNodes??5e3,g=[],m=new Map,b=new WeakMap,k={dom:o,name:"div",namespace:"html",children:[],id:P};m.set(P,k);let x=0,A=!1,O=new Map,n=e=>{g.push(e),g.length>200&&g.shift(),t.onRefused?.(e)},i=()=>({dom:l.createComment(""),children:[],refused:!0}),p=(e,d)=>{if(e.namespace==="html"&&e.name&&F.has(e.name))return e.dom;if(d?.namespace==="html"&&d.name==="textarea")return d.dom},y=(e,d,u)=>{let s=e.dom;if(u!=null&&typeof u!="string")return n({reason:"value",element:e.name,name:d});let r=T(e.namespace,e.name,d,u??null,t);if("refused"in r){let h=T(e.namespace,e.name,d,null,t);return"refused"in h||s.removeAttribute(h.name),n(r.refused)}for(let h of r.dropped??[])n(h);let a=e.namespace==="html"&&Q.has(r.name)&&F.has(e.name),c=s,f=a?r.name==="value"?c.value:r.name==="checked"?c.checked:c.selected:void 0;r.value===null?s.removeAttribute(r.name):s.setAttribute(r.name,r.value),t.onAttribute?.(s,r.name),a&&(r.name==="value"&&"value"in c?(c.value=r.value??"",f!==c.value&&t.onFieldSet?.(s)):r.name==="checked"&&"checked"in c?(c.checked=r.value!==null,f!==c.checked&&t.onFieldSet?.(s)):r.name==="selected"&&"selected"in c&&(c.selected=r.value!==null,f!==c.selected&&t.onFieldSet?.(s.parentElement?.closest("select")??s)))},w=e=>{if(!e.refused){x-=1,e.id!==void 0&&m.delete(e.id);for(let d of e.children)w(d)}},E=(e,d)=>{if(!R(e)||typeof e.id!="string"||m.has(e.id))return n({reason:"record"}),i();if(x>=v)return n({reason:"budget"}),A||(A=!0,t.onOverBudget?.()),i();let u=e.id;if(e.type===q)return i();if(e.type===J){if(S(d.namespace,d.name))return n({reason:"child",element:d.name}),i();let f=l.createTextNode(String(e.data??"").slice(0,D)),h={dom:f,children:[],text:!0,id:u,parent:d};return m.set(u,h),b.set(f,u),x+=1,h}if(e.type!==Y)return n({reason:"record"}),i();let s=String(e.element);if(S(d.namespace,d.name))return n({reason:"child",element:s}),i();let r=j(s,d.namespace);if("refused"in r)return n(r.refused),i();let a=l.createElementNS(r.namespace==="svg"?C:L,r.name);r.as&&a.setAttribute("data-graview-as",r.as),r.namespace==="html"&&r.name==="img"&&a.setAttribute("referrerpolicy","no-referrer"),r.namespace==="html"&&r.name==="a"&&(a.setAttribute("target","_blank"),a.setAttribute("rel","noopener noreferrer"),a.setAttribute("referrerpolicy","no-referrer"));let c={dom:a,name:r.name,namespace:r.namespace,children:[],id:u,parent:d};if(m.set(u,c),b.set(a,u),x+=1,R(e.attributes))for(let[f,h]of Object.entries(e.attributes))y(c,f,h);if(t.decorate?.(a,r.name,r.namespace),R(e.properties))for(let f of Object.keys(e.properties))n({reason:"attribute",element:r.name,name:f});if(R(e.eventListeners))for(let f of Object.keys(e.eventListeners))e.eventListeners[f]!=null&&n({reason:"attribute",element:r.name,name:`on${f}`});if(Array.isArray(e.children))for(let f of e.children){let h=E(f,c);c.children.push(h),a.appendChild(h.dom)}return c},N=e=>{if(!Array.isArray(e))return n({reason:"record"});let[d,u]=e,s=typeof u=="string"?m.get(u):void 0;if(!s)return n({reason:"record"});switch(d){case $:{if(s.text)return n({reason:"record"});let r=Number(e[3]),a=Number.isInteger(r)&&r>=0&&r<=s.children.length?r:s.children.length,c=e[2],f=R(c)&&typeof c.id=="string"?O.get(c.id):void 0,h;f&&f.parent?.namespace===s.namespace&&!S(s.namespace,s.name)?(O.delete(c.id),f.parent=s,h=f):h=E(c,s),s.dom.insertBefore(h.dom,s.children[a]?.dom??null),s.children.splice(a,0,h),s.namespace==="html"&&s.name==="textarea"&&t.onFieldSet?.(s.dom);return}case W:{let r=Number(e[2]),a=s.children[r];if(!a)return n({reason:"record"});s.children.splice(r,1),a.dom.parentNode?.removeChild(a.dom),a.id!==void 0&&!a.refused?O.set(a.id,a):w(a);return}case K:{if(!s.text)return n({reason:"record"});s.dom.data=String(e[2]??"").slice(0,D);let r=p(s,s.parent);r&&t.onFieldSet?.(r);return}case z:{if(s===k||s.text)return n({reason:"record"});let r=String(e[2]),a=e[4]??I;return a===X?y(s,r,e[3]):n(a===I||a===_?{reason:"attribute",element:s.name,name:a===_?`on${r}`:r}:{reason:"record"})}default:return n({reason:"record"})}};return{apply(e,d){if(!Array.isArray(e))return n({reason:"record"}),!0;try{for(let u=0;u<e.length;u+=1){if(d&&u%32===0&&d())return!1;N(e[u])}return!0}finally{for(let u of O.values())w(u);O.clear()}},get refused(){return g},get size(){return x},idOf:e=>b.get(e),elementOf(e){let d=m.get(e);return d&&!d.text&&d!==k?d.dom:void 0},dispose(){for(let e of k.children)w(e);for(k.children.length=0;o.firstChild;)o.removeChild(o.firstChild)}}}var B=["https:","mailto:","tel:"];function U(o){if(!(typeof o!="string"||o.length>2e3||/[\s<>"]/.test(o.trim())||o.trim()!==o))try{let t=new URL(o);return!B.includes(t.protocol)||t.protocol==="https:"&&(t.hostname===""||t.username!==""||t.password!=="")?void 0:t.href}catch{return}}function Z(o){let t=new Set,l=v=>{if(typeof v!="string"||!/^(https|mailto|tel):/i.test(v))return;let g=U(v);g&&t.add(g)};for(let v of[...o?.node?[o.node]:[],...o?.nodes??[]])for(let[g,m]of Object.entries(v))g==="id"||g==="kind"||(Array.isArray(m)?m.forEach(l):l(m));return t}function G(o){return(o??[]).flatMap(t=>{try{let l=new URL(t);return l.protocol==="https:"&&l.hostname!==""&&l.username===""&&l.password===""?[l.origin]:[]}catch{return[]}})}function ee(o,t){let l=U(o);if(l&&(t.handed.has(l)||l.startsWith("https:")&&G(t.origins).includes(new URL(l).origin)))return l}function te(o,t){let l=o.length>120?`${o.slice(0,119)}\u2026`:o,v="";try{v=new URL(o).protocol}catch{v=""}if(!B.includes(v))return`The link "${l}" was not drawn: a view links only to an https:, mailto: or tel: address.`;let g=G(t);return`The link "${l}" was not drawn: it is no address this view was handed. A view links out only to an address a record it was shown holds (a url field), as the record holds it${g.length>0?`, or an https: address on ${g.join(", ")}`:""}; a record or a place of this app is <a data-record> or <a data-place>.`}var ne=`
|
|
2
|
+
:host { display: block; position: relative; contain: layout paint style; isolation: isolate; overflow: clip; min-width: 0; }
|
|
3
|
+
:host(:focus-within) { overflow-clip-margin: 4px; }
|
|
4
|
+
[data-graview-view-root] { display: flow-root; color: var(--graview-ink, CanvasText); font-family: var(--graview-font-body, system-ui, sans-serif); line-height: 1.45; }
|
|
5
|
+
:where([data-graview-view-root]) :where(button) { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; text-align: inherit; appearance: none; cursor: pointer; }
|
|
6
|
+
:where([data-graview-view-root]) :where(a[data-graview-link]) { color: inherit; text-decoration: none; }
|
|
7
|
+
[data-graview-view-root] :is([data-graview-link], [data-graview-press]) { cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: rgb(128 128 128 / 0.16); }
|
|
8
|
+
[data-graview-view-root] :focus-visible { outline: max(2px, var(--graview-focus-width, 2px)) solid var(--graview-focus-color, var(--graview-accent, Highlight)) !important; outline-offset: var(--graview-focus-offset, 2px) !important; }
|
|
9
|
+
[data-graview-view-root] [data-graview-ring-inside]:focus-visible { outline-offset: calc(-1 * max(2px, var(--graview-focus-width, 2px))) !important; }
|
|
10
|
+
[data-graview-view-root] .graview-sr { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
|
|
11
|
+
[data-graview-view-root] a[href]:not([data-graview-link])::after { content: " \u2197" !important; content: " \u2197" / " (opens in a new tab)" !important; }
|
|
12
|
+
`,re=4,oe=new Set(["Enter"," ","Escape","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"]),V=["click","input","change","keydown"];function ue(o,t){let l=o.ownerDocument,v=l.createElement("style");v.setAttribute("data-graview-region",""),v.textContent=ne;let g=l.createElement("style");g.setAttribute("data-graview-view-style","");let m=l.createElement("div");m.setAttribute("data-graview-view-root",""),o.append(v,g,m);let b=H(m,{origin:t.origin,...t.asset?{asset:t.asset}:{},...t.imageOrigins?{imageOrigins:t.imageOrigins}:{},...t.picture?{picture:t.picture}:{},...t.link?{link:t.link}:{},...t.onRefused?{onRefused:t.onRefused}:{},...t.maxNodes!==void 0?{maxNodes:t.maxNodes}:{},...t.onOverBudget?{onOverBudget:t.onOverBudget}:{},decorate:(n,i,p)=>{p==="html"&&i==="button"&&n.setAttribute("type","button"),p==="html"&&(i==="input"||i==="textarea"||i==="select")&&n.setAttribute("autocomplete","off"),t.decorate?.(n,i,p)},...t.onFieldSet?{onFieldSet:t.onFieldSet}:{},...t.onAttribute?{onAttribute:t.onAttribute}:{}}),k=[],x="",A=n=>{for(let i=n.composedPath()[0];i&&i!==m&&i!==o;i=i.parentNode)if(i.nodeType===1&&b.idOf(i)!==void 0)return i},O=n=>{let i=A(n);if(!i||n.type==="keydown"&&!oe.has(n.key))return;let p=t.before?.(n,i,m);if(p===!1)return;let y=i,w=i.namespaceURI==="http://www.w3.org/1999/xhtml"&&["input","select","textarea"].includes(i.localName);t.send({type:"dom-event",target:b.idOf(i),event:n.type,...w?{value:String(y.value??"")}:{},...w&&(y.type==="checkbox"||y.type==="radio")?{checked:y.checked}:{},...n.type==="keydown"?{key:n.key}:{},...p??{}});let E=n.type==="keydown"?n.key:void 0;(E==="Enter"||E===" ")&&i.hasAttribute("data-graview-press")&&n.composedPath()[0]===i&&(n.preventDefault(),t.send({type:"dom-event",target:b.idOf(i),event:"click"}))};for(let n of V)o.addEventListener(n,O);return o.addEventListener("toggle",O,!0),(typeof CSS>"u"||typeof CSS.supports!="function"||!CSS.supports("overflow-clip-margin","4px"))&&o.addEventListener("focusin",n=>{let i=n.composedPath()[0],p=o.host;if(!i||i.nodeType!==1||!m.contains(i))return;let y=p.getBoundingClientRect(),w=i.getBoundingClientRect(),E=re*(p.offsetWidth>0?y.width/p.offsetWidth:1),N=w.left-y.left<E||y.right-w.right<E||w.top-y.top<E||y.bottom-w.bottom<E;i.toggleAttribute("data-graview-ring-inside",N)}),{apply(n,i){let p=o.activeElement,y=p?b.idOf(p):void 0,w=b.apply(n,i);if(y!==void 0&&o.activeElement!==p){let E=b.elementOf(y);E?.isConnected&&typeof E.focus=="function"&&E.focus({preventScroll:!0})}return w},style(n){let i=M(n);k.length=0;for(let p of i.refused)k.push({reason:"css",name:"stylesheet",css:p}),k.length>200&&k.shift();x=i.css,g.textContent=x},renderer:b,get refused(){return[...b.refused,...k]},get css(){return x},dispose(){for(let n of V)o.removeEventListener(n,O);o.removeEventListener("toggle",O,!0),b.dispose(),o.replaceChildren()}}}export{ne as REGION_CSS,ue as createOpenDrawing,Z as handedLinks,ee as judgeLink,te as linkRefusedWords};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ot}from"./chunk.KSXB4LDF.js";import"./chunk.PKUDIWIF.js";import{e as V,l as ue,m as G,q as st}from"./chunk.VW2VCPJX.js";import{a as ee}from"./chunk.G4JJXA63.js";import"./chunk.WBHM5I3I.js";import{b as nt}from"./chunk.VC3BX2ZF.js";import{d as tt}from"./chunk.WAB7UDHU.js";import"./chunk.IW7YFPGG.js";import"./chunk.Q7RQC3F7.js";import"./chunk.HDRD33II.js";import{d as et}from"./chunk.DX357TZ3.js";import{c as Ze}from"./chunk.H7KCWCB4.js";import{I as ze,V as Je,Xc as Ne,Yc as Xe,ca as Ye,ga as qe,gb as Ve,hb as Qe,ka as Ae,la as F}from"./chunk.AS4CQBOQ.js";import"./chunk.2AZTW66C.js";import"./chunk.AJZBJBMO.js";var At="Nothing by that name here.",$=o=>o.normalize("NFD").replace(/\p{M}+/gu,"").toLowerCase().replace(/[’']/g,"'").replace(/[^\p{L}\p{N}' ]+/gu," ").replace(/\s+/g," ").trim(),Nt=/^(?:(?:can you |could you |please )?(?:go|take me|bring me|head|jump|navigate|switch|get me)(?: back)? to|(?:please )?(?:open|show(?: me)?|bring up|let me see|view)) (.+)$/,St=/^(?:(?:can you |could you |please )?tell me (?:about|of)|what(?: is|'s| are) (?:in |on )?|describe|explain|who(?: is|'s)) (.+)$/,Ot=/^(?:what(?: is|'s| am i looking at| do i see)(?: (?:here|this|on (?:this|the) (?:page|screen)|in view|this place|this page))?|where am i|describe (?:this|here|this place|this page)|tell me about (?:this|here|this place|this page))$/,rt=new Set(["here","this","this place","this page","on this page","on the page","on this screen","in view"]),Ct=/^(?:date|day|when|on|at|the date|the day)$/,jt=/^(?:what(?: is|'s) (?:wrong|broken|the (?:problem|matter|trouble))|what needs (?:fixing|attention|doing)|any (?:problems|issues|trouble)|(?:show(?: me)? |go to |open )?(?:the )?(?:problems|issues|trouble|standing|what's wrong)|is (?:anything|something) (?:wrong|broken)|are there (?:any )?(?:problems|issues))(?: (?:with|about|on|in) (.+))?$/,z=o=>o.replace(/^(?:the|a|an|my|our) /,""),te=new Set(["the","a","an","my","our","all","any","of","that","which","who","are","is","be","what","whats","what's","with","me","show","list","every","there","do","i","have","we","due","for","please","were","was","by","from","in","on"]),ft=864e5,he=o=>Date.UTC(Number(o.slice(0,4)),Number(o.slice(5,7))-1,Number(o.slice(8,10))),xe=o=>new Date(o).toISOString().slice(0,10),C=(o,i)=>xe(he(o)+i*ft),xt=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Mt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Wt="(monday|tuesday|tues|wednesday|thursday|thurs|friday|saturday|sunday)",it="(january|february|march|april|may|june|july|august|september|october|november|december|jan|feb|mar|apr|jun|jul|aug|sept|sep|oct|nov|dec)",at="(\\d{1,2})(?:st|nd|rd|th)?",Dt=o=>xt.findIndex(i=>i.startsWith(o.slice(0,3))),dt=o=>Mt.findIndex(i=>o.startsWith(i.toLowerCase()));function Rt(o,i){return Je(o,{year:o.slice(0,4)!==i.slice(0,4)})}function Se(o,i,y){if(o<0||i<1||i>31)return;let f=Number(y.slice(0,4)),c=k=>{let j=Date.UTC(k,o,i);return new Date(j).getUTCMonth()===o?xe(j):void 0},p=c(f);if(p)return he(p)<he(y)-183*ft?c(f+1):p}function Oe(o,i,y){let f=new Date(he(i)).getUTCDay(),c=u=>{let S=(f-y+7)%7,w=C(i,-S+u*7);return{from:w,to:C(w,6)}},p=()=>{let u=`${i.slice(0,8)}01`,S=new Date(Date.UTC(Number(i.slice(0,4)),Number(i.slice(5,7)),1));return{from:u,to:C(xe(S.getTime()),-1)}},k=u=>u?{from:u,to:u,day:Rt(u,i)}:void 0,j=(u,S)=>{let w=Dt(S);return k(u==="this"||u==="next"?C(c(u==="next"?1:0).from,(w-y+7)%7):u==="last"?C(i,-((f-w+6)%7+1)):C(i,(w-f+7)%7))},J=u=>{let S=C(i,f===0?-1:6-f);return{from:C(S,u*7),to:C(S,u*7+1)}},B="\\b(?:(?:due |for |on |by )(?:the )?)?",P=[[/\b(?:overdue|past due|late)\b/,()=>({overdue:!0,to:C(i,-1)})],[/\b(?:due |for |on )?today\b/,()=>({from:i,to:i})],[/\b(?:due |for |on )?tomorrow\b/,()=>k(C(i,1))],[/\b(?:due |for |on )?yesterday\b/,()=>k(C(i,-1))],[/\b(?:due |for |on )?this week\b/,()=>c(0)],[/\b(?:due |for |on )?next week\b/,()=>c(1)],[/\b(?:due |for |on )?(?:last|previous) week\b/,()=>c(-1)],[/\b(?:due |for |on )?next weekend\b/,()=>J(1)],[/\b(?:due |for |on )?(?:this |the )?weekend\b/,()=>J(0)],[/\b(?:due |for |on )?this month\b/,()=>p()],[new RegExp(`${B}(\\d{4}) (\\d{2}) (\\d{2})\\b`),u=>k(Se(Number(u[2])-1,Number(u[3]),`${u[1]}-01-01`))],[new RegExp(`${B}${at} (?:of )?${it}\\b`),u=>k(Se(dt(u[2]),Number(u[1]),i))],[new RegExp(`${B}${it} (?:the )?${at}\\b`),u=>k(Se(dt(u[1]),Number(u[2]),i))],[new RegExp(`${B}(?:(this|next|last|coming) )?${Wt}\\b`),u=>j(u[1],u[2])]];for(let[u,S]of P){let w=o.match(u);if(!w)continue;let N=S(w);if(N)return{ask:{words:w[0],...N},rest:o.replace(w[0]," ").replace(/\s+/g," ").trim()}}}function ht(o,i,y={}){let f=y.principal??{kind:"human"},c=o.seenBy(f),p=c.schema,k=y.today??o.today?.()??ze(),j=y.weekStartsOn??1,J=o.kindsKeptFrom(f),B=o.modules.disabledKinds,P=p.kinds.filter(e=>!J.has(e)&&!B.has(e)),u=new Set(P),S=(y.places??[]).filter(e=>e.kind===null||u.has(e.kind)),w=c.graph,N=$(i).replace(/[?.!]+$/,"").trim();if(N.length===0)return{unresolved:!0};let M=e=>p.tryDefinition(e),H=e=>Ye(M(e.kind),e),I=e=>qe(p,e),se=e=>S.find(t=>t.kind===e&&t.address===Ne(p,e))?.address??Ne(p,e),ge=e=>Xe(p,e.kind,e.id),Me=e=>({to:"record",id:e.id,kind:e.kind,label:H(e),address:ge(e),said:`Went to ${H(e)}.`}),We=e=>{let t=`Went to ${e.title}.`;return e.kind===null?{to:"place",slug:e.slug,title:e.title,address:e.address,...e.slug==="overview"?{face:"scene"}:{},said:t}:e.lens||e.address.startsWith("/places/")?{to:"picture",kind:e.kind,as:e.slug,title:e.title,address:e.address,said:t}:{to:"kind",kind:e.kind,title:e.title,address:e.address,said:t}},De=()=>({unresolved:!0,say:At}),oe=e=>{let t=M(e.kind),s=et(e,t,{limit:3,excerpt:!0}).map(r=>r.alone.startsWith(r.label)?r.alone:`${r.label.toLowerCase()} ${r.alone}`).join(", "),n=c.violations().filter(r=>r.nodeIds.includes(e.id));return[`${H(e)} \u2014 ${Ae(F(t,e.kind))}${s?` (${s})`:""}.`,n.length>0?`Trouble: ${n.map(r=>r.message).join("; ")}.`:""].filter(Boolean).join(" ")},re=e=>{let t=new Set([G(e),G(z(e))]);for(let n of[" page"," view"," lens"," place"," picture"," list"])e.endsWith(n)&&(t.add(G(e.slice(0,-n.length))),t.add(G(z(e.slice(0,-n.length)))));t.delete("");let s=n=>t.has(G(n.title))||t.has(G(z($(n.title))))||t.has(G(n.slug));return S.find(n=>n.kind!==null&&n.address.startsWith("/places/")&&s(n))??S.find(s)},pe=e=>{let t=st(o,e,{principal:f,today:k,limit:6,near:!1,...y.selection?{from:y.selection}:{}}),s=t.hits.filter(r=>r.about==="node"&&u.has(r.kind)&&w.getNode(r.id)!==void 0),n=s.filter(r=>r.why.field==="label"&&r.why.strength==="exact");return n.length===1?{one:w.getNode(n[0].id),picks:s}:n.length>1?{picks:n}:s.length===1&&t.total===1?{one:w.getNode(s[0].id),picks:s}:{picks:s}},Re=e=>{let t=e.map(s=>`${s.label} (${F(M(s.kind),s.kind)})`);return`${e.length===1?"One thing matches":`${e.length} things match`}: ${t.join("; ")}.`},Ee=(e,t)=>{if(rt.has(e))return Le();let s=t?pe(z(e)||e):void 0,n=s?.one&&$(H(s.one))===$(z(e)||e)?void 0:re(e);if(n){let l=We(n);return{about:"place",say:t?`${l.said} ${me(n)}`:l.said,moves:[l],subject:n.slug}}let r=pe(z(e)||e);if(r.one){let l=Me(r.one);return{about:t?"describe":"record",say:t?`${l.said} ${oe(r.one)}`:l.said,moves:[l],subject:r.one.id}}if(r.picks.length>0)return{about:"picks",say:Re(r.picks),moves:[],picks:r.picks};let h=ae(e);if(h)return h;let d=Pe(e);if(d){if(d.rest.split(" ").every(l=>l===""||te.has(l))){let l=I(d.kind),v={to:"kind",kind:d.kind,title:l,address:se(d.kind),said:`Went to the ${l.toLowerCase()}.`};return{about:"kind",say:v.said,moves:[v]}}return{unresolved:!0}}return De()},me=e=>{if(e.kind===null){let h=P.map(l=>({kind:l,count:w.nodesOfKind(l).length})).filter(l=>l.count>0).map(l=>`${l.count} ${(l.count===1?F(M(l.kind),l.kind):I(l.kind)).toLowerCase()}`),d=c.violations().length;return[h.length>0?`It holds ${fe(h)}.`:"It holds nothing yet.",d>0?`${d===1?"One problem":`${d} problems`} to see to.`:""].filter(Boolean).join(" ")}let t=w.nodesOfKind(e.kind).length,s=I(e.kind).toLowerCase(),n=new Set(c.violations().flatMap(h=>h.nodeIds)),r=w.nodesOfKind(e.kind).filter(h=>n.has(h.id)).length;return[e.lens?`It draws the ${s} as ${Ae(e.lens)}${t>0?` \u2014 ${t} of them`:""}.`:`${t===0?"No":t} ${t===1?F(M(e.kind),e.kind):s} ${t===1?"is":"are"} here.`,r>0?`${r} ${r===1?"has":"have"} a problem.`:""].filter(Boolean).join(" ")},Le=()=>{let e=(y.selection??[]).map(s=>w.getNode(s)).find(s=>s!==void 0);if(e)return{about:"here",say:oe(e),moves:[],subject:e.id};let t=S.find(s=>s.slug===y.place)??S.find(s=>s.slug==="home");return t?{about:"here",say:`${t.title}. ${me(t)}`,moves:[],subject:t.slug}:{about:"here",say:me({slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#"}),moves:[]}},Pe=e=>{let t=P.flatMap(s=>[I(s),F(M(s),s),s].map(n=>({kind:s,name:$(n)}))).filter(s=>s.name.length>0).sort((s,n)=>n.name.length-s.name.length);for(let{kind:s,name:n}of t)if(!(` ${e} `.indexOf(` ${n} `)<0))return{kind:s,rest:` ${e} `.replace(` ${n} `," ").replace(/\s+/g," ").trim()}},ie=(e,t)=>{let s=V(p,e).filters.filter(d=>d.about==="field"&&d.type==="date");if(s.length===0)return;let n=s.find(d=>t.some(l=>$(d.key)===l||$(d.label)===l));if(n)return n;let r=M(e)?.fieldRoles??{};for(let d of["due","deadline","date","when","start","end"]){let l=r[d],v=l?s.find(x=>x.key===l):void 0;if(v)return v}return s.find(d=>["due","deadline","date","when","on","at"].includes(d.key.toLowerCase()))??(s.length===1?s[0]:void 0)},He=e=>{let t=M(e),s=V(p,e).filters;if(t?.lifecycle)return{conditions:[{key:"is",value:"current"}],holds:d=>ue(be,d,{key:"is",value:"current"})};let r=s.find(d=>d.about==="field"&&d.type==="boolean"&&ne.has($(d.key)));if(r)return{conditions:[{key:r.key,value:"false"}],holds:d=>d[r.key]!==!0};let h=s.find(d=>d.about==="field"&&d.type==="choice"&&(d.options??[]).some(l=>ne.has($(l))));if(h){let d=new Set((h.options??[]).filter(v=>ne.has($(v)))),l=(h.options??[]).filter(v=>!d.has(v));return l.length===1?{conditions:[{key:h.key,value:l[0]}],holds:v=>v[h.key]===l[0]}:"unsayable"}return{conditions:[],holds:()=>!0}},Ie=(e,t)=>{let s=e.words.startsWith("due")||$(t.key)==="due",n=Ct.test($(t.label));if(e.day)return s?`due ${e.day}`:n?`on ${e.day}`:`${t.label.toLowerCase()} on ${e.day}`;let r=e.words.replace(/^(?:due|for|on|by) (?:the )?/,"");return s?`due ${r}`:n?r:`${t.label.toLowerCase()} ${r}`},ye=new Set(c.violations().flatMap(e=>e.nodeIds)),be={schema:p,graph:c.graph,flagged:ye,today:k},ae=e=>{let t=Oe(e,k,j),s=Pe(t?.rest??e),n=s?.kind,r=(s?.rest??t?.rest??e).split(" ").filter(Boolean);if(!n&&t){let g=e.split(" "),m=P.filter(L=>ie(L,g)!==void 0),E=m.filter(L=>{let b=ie(L,g);return g.some(O=>$(b.key)===O||$(b.label)===O)}),U=m.length===1?m:E;if(U.length!==1)return;n=U[0]}if(!n)return;let h=V(p,n).filters,d=[],l=[],v=[],x=[],q=!1,de=[];for(let g=0;g<r.length;g++){let m=r[g],E=g>0&&(r[g-1]==="not"||r[g-1]==="un"),U=h.find(b=>b.about==="field"&&b.type==="choice"&&(b.options??[]).some(O=>$(O)===m));if(U&&!E){let b=(U.options??[]).find(O=>$(O)===m);d.push({key:U.key,value:b}),l.push(b);continue}let L=h.find(b=>b.about==="field"&&b.type==="boolean"&&[$(b.key),$(b.label)].some(O=>O===m||O===m.replace(/^un/,"")));if(L){let b=!E&&!(m.startsWith("un")&&!$(L.key).startsWith("un"));d.push({key:L.key,value:String(b)}),l.push(b?m:`not ${m.replace(/^un/,"")}`);continue}if(Pt.has(m)&&!E){let b=He(n);b==="unsayable"?(q=!0,x.push(O=>!ut(p,O))):(d.push(...b.conditions),x.push(b.holds)),l.push(m);continue}m==="not"||m==="un"||t&&h.some(b=>b.type==="date"&&($(b.key)===m||$(b.label)===m))||de.push(m)}if(r=de,r.some(g=>!te.has(g))||!t&&d.length===0&&x.length===0)return;let T=I(n).toLowerCase(),Q=I(n);if(t){let g=ie(n,e.split(" "));if(!g){let m={to:"kind",kind:n,title:Q,address:se(n),said:`Went to the ${T}.`};return{about:"kind",say:`${ee(Q)} carry no date, so I can't tell which are ${/^(?:due|for|on|overdue|past due|late)\b/.test(t.ask.words)?t.ask.words:`due ${t.ask.words}`}. ${m.said}`,moves:[m]}}if(t.ask.from&&d.push({key:g.key,value:`after:${C(t.ask.from,-1)}`}),t.ask.to&&d.push({key:g.key,value:`before:${C(t.ask.to,1)}`}),t.ask.overdue){let m=He(n);m==="unsayable"?(q=!0,x.push(E=>!ut(p,E))):(d.push(...m.conditions),x.push(m.holds))}t.ask.overdue?l.push("overdue"):v.push(Ie(t.ask,g))}let R=w.nodesOfKind(n).filter(g=>d.every(m=>ue(be,g,m))&&x.every(m=>m(g))),K=[...l,...v].join(" and "),Y=[...l,T,...v].join(" "),W=R.slice(0,6).map(g=>({about:"node",id:g.id,kind:n,label:H(g),why:{field:d[0]?.key??"label",reading:d[0]?.key??"Name",fragment:K,strength:"field"},current:!0,flagged:ye.has(g.id),address:ge(g)})),X=R.length===0?`No ${T} are ${K}.`:`${R.length===1?`One ${F(M(n),n)} is`:`${R.length} ${T} are`} ${K}: ${fe(R.slice(0,6).map(H))}${R.length>6?`, and ${R.length-6} more`:""}.`;if(q)return{about:"kind",say:X,moves:[],picks:W,offer:{draft:Y,label:"Show as a view"}};let Z=d.map(g=>`${g.key}:${g.value}`).join(","),we=`${se(n)}?${new URLSearchParams({filter:Z}).toString()}`,_={to:"kind",kind:n,title:ee(Y),filter:Z,address:we,said:`Went to the ${Y}.`};return{about:"kind",say:`${_.said} ${X}`,moves:[_],picks:W}},Te=e=>M(e)?.figure==="person"?!0:[e,F(M(e),e),I(e)].some(s=>$(s).split(" ").some(n=>Et.has(n))),pt=e=>{let t=[],s=n=>M(n)?.edges??{};for(let[n,r]of Object.entries(s(e)))for(let h of r.to??[])u.has(h)&&t.push({key:n,direction:"out",far:h,words:ct(`${r.description??""} ${n}`)});for(let n of P)for(let[r,h]of Object.entries(s(n)))(h.to??[]).includes(e)&&t.push({key:r,direction:"in",far:n,words:ct(`${h.inverse??""} ${r}`)});return t},mt=e=>{let t=e.match(/^(who|which|what)\b/)?.[1];if(!t)return;let s=Oe(e,k,j);if(!s||s.ask.overdue)return;let n=s.rest.split(" ").filter(Boolean),r=P.flatMap(a=>[I(a),F(M(a),a),a].map(A=>({kind:a,name:$(A)}))).filter(a=>a.name.length>0).sort((a,A)=>A.name.length-a.name.length),h=` ${n.join(" ")} `,d=[];for(let{kind:a,name:A}of r)h.includes(` ${A} `)&&(h=h.replace(` ${A} `," "),d.includes(a)||d.push(a));let l=h.match(/\b(?:is|are|was|were)\b|'s\b/)?.[0],v=h.replace(/'s\b/g," ").split(" ").filter(a=>a.length>0&&!te.has(a)&&!Ce.has(a)),x=t==="who"?d.find(Te):d[0];if(!x&&t!=="who")return;let q=d.find(a=>a!==x),de=v.flatMap(a=>[je(a),...lt.has(je(a))?[...lt]:[]]),T=P.filter(a=>q?a===q:a!==x).flatMap(a=>{let A=ie(a,e.split(" "))??V(p,a).filters.find(D=>D.about==="field"&&D.type==="date");return A?pt(a).filter(D=>(x?D.far===x:Te(D.far))&&D.far!==a).map(D=>({kind:a,field:A,relation:D,said:v.length===0||de.some(ve=>D.words.some(vt=>Lt(vt,ve)))})):[]}).filter(a=>a.said);if(T.length===0)return;let Q=T.filter(a=>n.some(A=>$(a.field.key)===A||$(a.field.label)===A)),R=T.length===1?T[0]:Q.length===1?Q[0]:void 0;if(!R)return;let{kind:K,field:Y,relation:W}=R,X=[...s.ask.from?[{key:Y.key,value:`after:${C(s.ask.from,-1)}`}]:[],...s.ask.to?[{key:Y.key,value:`before:${C(s.ask.to,1)}`}]:[]],Z=w.nodesOfKind(K).filter(a=>X.every(A=>ue(be,a,A))),we=a=>(W.direction==="out"?c.graph.out(a.id,W.key):c.graph.in(a.id,W.key)).filter(A=>A.kind===W.far&&u.has(W.far)),_=[],g=[];for(let a of Z){let A=we(a);A.length===0&&g.push(a);for(let D of A)_.some(ve=>ve.id===D.id)||_.push(D)}let m=Ie(s.ask,Y),E=s.ask.day?`On ${s.ask.day}`:ee(s.ask.words.replace(/^(?:due|for|on|by) (?:the )?/,"")),U=I(K).toLowerCase(),L=X.map(a=>`${a.key}:${a.value}`).join(","),b=`${U} ${m}`,O={to:"kind",kind:K,title:ee(b),filter:L,address:`${se(K)}?${new URLSearchParams({filter:L}).toString()}`,said:`Went to the ${b}.`};if(Z.length===0)return{about:"related",say:`No ${b}. ${O.said}`,moves:[O]};let le=v.join(" "),yt=l==="was"||l==="were",Ge=a=>yt?a===1?"was":"were":a===1?"is":"are",ce=_.map(H),bt=ce.length>8?[...ce.slice(0,8),`${ce.length-8} more`]:ce,kt=_.length===0?`${E}: nobody ${Ge(1)}${le?` ${le}`:""}.`:`${E}: ${fe(bt)}${le?` ${Ge(_.length)} ${le}`:""}.`,$t=t==="who"&&g.length>0?`${fe(g.slice(0,4).map(H))}${g.length>4?` and ${g.length-4} more`:""} ${g.length===1?"has":"have"} nobody.`:"",wt=_.slice(0,8).map(a=>({about:"node",id:a.id,kind:a.kind,label:H(a),why:{field:W.key,reading:Ze(p,W.direction==="out"?K:W.far,W.key,W.direction==="out"?"out":"in"),fragment:m,strength:"field"},current:!0,flagged:ye.has(a.id),address:ge(a)}));return{about:"related",say:[kt,$t,O.said].filter(Boolean).join(" "),moves:[O],picks:wt}},Ke=N.match(jt);if(Ke){let e=Ke[1];if(e&&!rt.has(e)&&!/^(?:it|this|that)$/.test(e)){let n=re(e),r=n?void 0:pe(z(e)||e);if(r?.one){let h=Me(r.one);return{about:"describe",say:`${h.said} ${oe(r.one)}`,moves:[h],subject:r.one.id}}if(!n)return r&&r.picks.length>0?{about:"picks",say:Re(r.picks),moves:[],picks:r.picks}:De()}if(e&&/^(?:it|this|that)$|^(?:here|this place|this page)$/.test(e)){let n=(y.selection??[]).map(r=>w.getNode(r)).find(r=>r!==void 0);if(n)return{about:"describe",say:oe(n),moves:[],subject:n.id}}let t=c.violations();if(t.length===0)return{about:"problems",say:"Nothing is wrong \u2014 every rule holds.",moves:[]};let s={to:"problems",address:"/problems",said:"Went to the problems."};return{about:"problems",say:`${s.said} ${Qe(t)}: ${t.slice(0,4).map(n=>n.message).join("; ")}${t.length>4?"\u2026":"."}`,moves:[s]}}if(Ot.test(N))return Le();let _e=mt(N);if(_e)return _e;let ke=Oe(N,k,j);if(ke&&!re(z(ke.ask.words))&&ke.rest.replace(/'s\b/g,"").split(" ").every(e=>e===""||te.has(e)||Ce.has(e))){let e=ae(N);if(e)return e}if(/^open /.test(N)){let e=ae(N);if(e)return e}let Fe=N.match(Nt)??N.match(/^(?:go|take me|head|get me)(?: back)? (home)$/);if(Fe)return Ee(Fe[1].trim(),!1);let Be=N.match(St);if(Be){let e=Ee(Be[1].trim(),!0);return"unresolved"in e&&e.unresolved&&!/^tell me|^describe/.test(N)?{unresolved:!0}:e}let $e=re(N);if($e){let e=We($e);return{about:"place",say:e.said,moves:[e],subject:$e.slug}}let Ue=ae(N);return Ue||{unresolved:!0}}var Ce=new Set(["who","whom","whose","which","what","whats","what's","who's"]),Et=new Set(["person","people","user","users","member","members","volunteer","volunteers","gardener","gardeners","player","players","staff","worker","workers","employee","employees","owner","owners","assignee","assignees","helper","helpers","student","students","teacher","teachers","customer","customers","client","clients","contact","contacts","author","authors"]),lt=new Set(["work","cover","staff","assign","do","run","schedul","roster","book","duty","serv","help"]);function je(o){let i=o.toLowerCase().replace(/'s$/,"");for(let y of["ing","ed","es","s"])if(i.length>y.length+2&&i.endsWith(y)){let f=i.slice(0,-y.length);return f.length>3&&f[f.length-1]===f[f.length-2]?f.slice(0,-1):f}return i}function ct(o){return o.toLowerCase().split(/[^a-z']+/).filter(i=>i.length>1&&!te.has(i)&&!Ce.has(i)&&!["it","they","them","their","its","this","here","to","at"].includes(i)).map(je)}var Lt=(o,i)=>o===i||o.length>=4&&i.length>=4&&(o.startsWith(i)||i.startsWith(o)),ne=new Set(["done","finished","complete","completed","closed","resolved","agreed","canceled","archived","shipped","delivered"]),Pt=new Set(["open","unfinished","outstanding","pending","remaining","undone","incomplete"]);function ut(o,i){return V(o,i.kind).filters.some(f=>f.about==="field"&&(f.type==="boolean"&&ne.has(f.key.toLowerCase())&&i[f.key]===!0||f.type==="choice"&&typeof i[f.key]=="string"&&ne.has(String(i[f.key]).toLowerCase())))}function fe(o){return o.length<=1?o[0]??"":`${o.slice(0,-1).join(", ")} and ${o[o.length-1]}`}function zt(o,i,y={}){let f=y.scene!==void 0?{...y.pages,scene:y.scene}:y.pages;return[...nt(o,i,f?{pages:f}:{})].map(({first:c,hidden:p,lens:k,...j})=>j)}function gt(o,i){return{...o.principal?{principal:o.principal}:{},...o.places?{places:o.places}:{},...o.selection?{selection:o.selection}:{},...o.place?{place:o.place}:{},...i??o.today?{today:i??o.today}:{},...o.weekStartsOn!==void 0?{weekStartsOn:o.weekStartsOn}:{}}}function Jt(o,i,y,f){let c=ht(o,i,gt(y,f));if(c.unresolved)return c.say?{reply:{say:c.say,proposals:[],grounded:!0}}:{};if(c.about==="picks")return{};let p=c.moves.length>0?{moves:c.moves}:{},k=c.subject?o.graph.getNode(c.subject):void 0;if(c.about==="problems")return{...p,problems:!0};if(k&&(c.about==="describe"||c.about==="here"))return{...p,told:k.id};let j=k?tt(o,ot(Ve(o.violations(),[k.id])).slice(0,3)):[];return{reply:{say:c.say,proposals:j,grounded:!0,...p,...c.picks&&c.picks.length>0?{picks:c.picks}:{},...c.offer?{offer:c.offer}:{}}}}function Yt(o,i,y={}){let f=gt(y),c=[];for(let p of i){let k=typeof p=="string"?p:typeof p=="object"&&p!==null&&typeof p.to=="string"?p.to:void 0;if(!k||k.trim().length===0)continue;let j=ht(o,/^(?:go|take me|open|show)\b/i.test(k.trim())?k:`go to ${k}`,f);if("moves"in j)for(let J of j.moves)c.some(B=>B.address===J.address)||c.push(J)}return c}export{At as NOTHING_BY_THAT_NAME,gt as askContextOf,Jt as goingFrom,Yt as movesFromNames,zt as placesFromViews,ht as resolveAsk};
|
|
1
|
+
import{a as ot}from"./chunk.KSXB4LDF.js";import"./chunk.PKUDIWIF.js";import{e as V,l as ue,m as G,q as st}from"./chunk.VW2VCPJX.js";import{a as ee}from"./chunk.G4JJXA63.js";import"./chunk.WBHM5I3I.js";import{b as nt}from"./chunk.FOQ27RAR.js";import{d as tt}from"./chunk.WAB7UDHU.js";import"./chunk.IW7YFPGG.js";import"./chunk.Q7RQC3F7.js";import"./chunk.HDRD33II.js";import{d as et}from"./chunk.DX357TZ3.js";import{c as Ze}from"./chunk.H7KCWCB4.js";import{I as ze,V as Je,Xc as Ne,Yc as Xe,ca as Ye,ga as qe,gb as Ve,hb as Qe,ka as Ae,la as F}from"./chunk.AS4CQBOQ.js";import"./chunk.2AZTW66C.js";import"./chunk.AJZBJBMO.js";var At="Nothing by that name here.",$=o=>o.normalize("NFD").replace(/\p{M}+/gu,"").toLowerCase().replace(/[’']/g,"'").replace(/[^\p{L}\p{N}' ]+/gu," ").replace(/\s+/g," ").trim(),Nt=/^(?:(?:can you |could you |please )?(?:go|take me|bring me|head|jump|navigate|switch|get me)(?: back)? to|(?:please )?(?:open|show(?: me)?|bring up|let me see|view)) (.+)$/,St=/^(?:(?:can you |could you |please )?tell me (?:about|of)|what(?: is|'s| are) (?:in |on )?|describe|explain|who(?: is|'s)) (.+)$/,Ot=/^(?:what(?: is|'s| am i looking at| do i see)(?: (?:here|this|on (?:this|the) (?:page|screen)|in view|this place|this page))?|where am i|describe (?:this|here|this place|this page)|tell me about (?:this|here|this place|this page))$/,rt=new Set(["here","this","this place","this page","on this page","on the page","on this screen","in view"]),Ct=/^(?:date|day|when|on|at|the date|the day)$/,jt=/^(?:what(?: is|'s) (?:wrong|broken|the (?:problem|matter|trouble))|what needs (?:fixing|attention|doing)|any (?:problems|issues|trouble)|(?:show(?: me)? |go to |open )?(?:the )?(?:problems|issues|trouble|standing|what's wrong)|is (?:anything|something) (?:wrong|broken)|are there (?:any )?(?:problems|issues))(?: (?:with|about|on|in) (.+))?$/,z=o=>o.replace(/^(?:the|a|an|my|our) /,""),te=new Set(["the","a","an","my","our","all","any","of","that","which","who","are","is","be","what","whats","what's","with","me","show","list","every","there","do","i","have","we","due","for","please","were","was","by","from","in","on"]),ft=864e5,he=o=>Date.UTC(Number(o.slice(0,4)),Number(o.slice(5,7))-1,Number(o.slice(8,10))),xe=o=>new Date(o).toISOString().slice(0,10),C=(o,i)=>xe(he(o)+i*ft),xt=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Mt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Wt="(monday|tuesday|tues|wednesday|thursday|thurs|friday|saturday|sunday)",it="(january|february|march|april|may|june|july|august|september|october|november|december|jan|feb|mar|apr|jun|jul|aug|sept|sep|oct|nov|dec)",at="(\\d{1,2})(?:st|nd|rd|th)?",Dt=o=>xt.findIndex(i=>i.startsWith(o.slice(0,3))),dt=o=>Mt.findIndex(i=>o.startsWith(i.toLowerCase()));function Rt(o,i){return Je(o,{year:o.slice(0,4)!==i.slice(0,4)})}function Se(o,i,y){if(o<0||i<1||i>31)return;let f=Number(y.slice(0,4)),c=k=>{let j=Date.UTC(k,o,i);return new Date(j).getUTCMonth()===o?xe(j):void 0},p=c(f);if(p)return he(p)<he(y)-183*ft?c(f+1):p}function Oe(o,i,y){let f=new Date(he(i)).getUTCDay(),c=u=>{let S=(f-y+7)%7,w=C(i,-S+u*7);return{from:w,to:C(w,6)}},p=()=>{let u=`${i.slice(0,8)}01`,S=new Date(Date.UTC(Number(i.slice(0,4)),Number(i.slice(5,7)),1));return{from:u,to:C(xe(S.getTime()),-1)}},k=u=>u?{from:u,to:u,day:Rt(u,i)}:void 0,j=(u,S)=>{let w=Dt(S);return k(u==="this"||u==="next"?C(c(u==="next"?1:0).from,(w-y+7)%7):u==="last"?C(i,-((f-w+6)%7+1)):C(i,(w-f+7)%7))},J=u=>{let S=C(i,f===0?-1:6-f);return{from:C(S,u*7),to:C(S,u*7+1)}},B="\\b(?:(?:due |for |on |by )(?:the )?)?",P=[[/\b(?:overdue|past due|late)\b/,()=>({overdue:!0,to:C(i,-1)})],[/\b(?:due |for |on )?today\b/,()=>({from:i,to:i})],[/\b(?:due |for |on )?tomorrow\b/,()=>k(C(i,1))],[/\b(?:due |for |on )?yesterday\b/,()=>k(C(i,-1))],[/\b(?:due |for |on )?this week\b/,()=>c(0)],[/\b(?:due |for |on )?next week\b/,()=>c(1)],[/\b(?:due |for |on )?(?:last|previous) week\b/,()=>c(-1)],[/\b(?:due |for |on )?next weekend\b/,()=>J(1)],[/\b(?:due |for |on )?(?:this |the )?weekend\b/,()=>J(0)],[/\b(?:due |for |on )?this month\b/,()=>p()],[new RegExp(`${B}(\\d{4}) (\\d{2}) (\\d{2})\\b`),u=>k(Se(Number(u[2])-1,Number(u[3]),`${u[1]}-01-01`))],[new RegExp(`${B}${at} (?:of )?${it}\\b`),u=>k(Se(dt(u[2]),Number(u[1]),i))],[new RegExp(`${B}${it} (?:the )?${at}\\b`),u=>k(Se(dt(u[1]),Number(u[2]),i))],[new RegExp(`${B}(?:(this|next|last|coming) )?${Wt}\\b`),u=>j(u[1],u[2])]];for(let[u,S]of P){let w=o.match(u);if(!w)continue;let N=S(w);if(N)return{ask:{words:w[0],...N},rest:o.replace(w[0]," ").replace(/\s+/g," ").trim()}}}function ht(o,i,y={}){let f=y.principal??{kind:"human"},c=o.seenBy(f),p=c.schema,k=y.today??o.today?.()??ze(),j=y.weekStartsOn??1,J=o.kindsKeptFrom(f),B=o.modules.disabledKinds,P=p.kinds.filter(e=>!J.has(e)&&!B.has(e)),u=new Set(P),S=(y.places??[]).filter(e=>e.kind===null||u.has(e.kind)),w=c.graph,N=$(i).replace(/[?.!]+$/,"").trim();if(N.length===0)return{unresolved:!0};let M=e=>p.tryDefinition(e),H=e=>Ye(M(e.kind),e),I=e=>qe(p,e),se=e=>S.find(t=>t.kind===e&&t.address===Ne(p,e))?.address??Ne(p,e),ge=e=>Xe(p,e.kind,e.id),Me=e=>({to:"record",id:e.id,kind:e.kind,label:H(e),address:ge(e),said:`Went to ${H(e)}.`}),We=e=>{let t=`Went to ${e.title}.`;return e.kind===null?{to:"place",slug:e.slug,title:e.title,address:e.address,...e.slug==="overview"?{face:"scene"}:{},said:t}:e.lens||e.address.startsWith("/places/")?{to:"picture",kind:e.kind,as:e.slug,title:e.title,address:e.address,said:t}:{to:"kind",kind:e.kind,title:e.title,address:e.address,said:t}},De=()=>({unresolved:!0,say:At}),oe=e=>{let t=M(e.kind),s=et(e,t,{limit:3,excerpt:!0}).map(r=>r.alone.startsWith(r.label)?r.alone:`${r.label.toLowerCase()} ${r.alone}`).join(", "),n=c.violations().filter(r=>r.nodeIds.includes(e.id));return[`${H(e)} \u2014 ${Ae(F(t,e.kind))}${s?` (${s})`:""}.`,n.length>0?`Trouble: ${n.map(r=>r.message).join("; ")}.`:""].filter(Boolean).join(" ")},re=e=>{let t=new Set([G(e),G(z(e))]);for(let n of[" page"," view"," lens"," place"," picture"," list"])e.endsWith(n)&&(t.add(G(e.slice(0,-n.length))),t.add(G(z(e.slice(0,-n.length)))));t.delete("");let s=n=>t.has(G(n.title))||t.has(G(z($(n.title))))||t.has(G(n.slug));return S.find(n=>n.kind!==null&&n.address.startsWith("/places/")&&s(n))??S.find(s)},pe=e=>{let t=st(o,e,{principal:f,today:k,limit:6,near:!1,...y.selection?{from:y.selection}:{}}),s=t.hits.filter(r=>r.about==="node"&&u.has(r.kind)&&w.getNode(r.id)!==void 0),n=s.filter(r=>r.why.field==="label"&&r.why.strength==="exact");return n.length===1?{one:w.getNode(n[0].id),picks:s}:n.length>1?{picks:n}:s.length===1&&t.total===1?{one:w.getNode(s[0].id),picks:s}:{picks:s}},Re=e=>{let t=e.map(s=>`${s.label} (${F(M(s.kind),s.kind)})`);return`${e.length===1?"One thing matches":`${e.length} things match`}: ${t.join("; ")}.`},Ee=(e,t)=>{if(rt.has(e))return Le();let s=t?pe(z(e)||e):void 0,n=s?.one&&$(H(s.one))===$(z(e)||e)?void 0:re(e);if(n){let l=We(n);return{about:"place",say:t?`${l.said} ${me(n)}`:l.said,moves:[l],subject:n.slug}}let r=pe(z(e)||e);if(r.one){let l=Me(r.one);return{about:t?"describe":"record",say:t?`${l.said} ${oe(r.one)}`:l.said,moves:[l],subject:r.one.id}}if(r.picks.length>0)return{about:"picks",say:Re(r.picks),moves:[],picks:r.picks};let h=ae(e);if(h)return h;let d=Pe(e);if(d){if(d.rest.split(" ").every(l=>l===""||te.has(l))){let l=I(d.kind),v={to:"kind",kind:d.kind,title:l,address:se(d.kind),said:`Went to the ${l.toLowerCase()}.`};return{about:"kind",say:v.said,moves:[v]}}return{unresolved:!0}}return De()},me=e=>{if(e.kind===null){let h=P.map(l=>({kind:l,count:w.nodesOfKind(l).length})).filter(l=>l.count>0).map(l=>`${l.count} ${(l.count===1?F(M(l.kind),l.kind):I(l.kind)).toLowerCase()}`),d=c.violations().length;return[h.length>0?`It holds ${fe(h)}.`:"It holds nothing yet.",d>0?`${d===1?"One problem":`${d} problems`} to see to.`:""].filter(Boolean).join(" ")}let t=w.nodesOfKind(e.kind).length,s=I(e.kind).toLowerCase(),n=new Set(c.violations().flatMap(h=>h.nodeIds)),r=w.nodesOfKind(e.kind).filter(h=>n.has(h.id)).length;return[e.lens?`It draws the ${s} as ${Ae(e.lens)}${t>0?` \u2014 ${t} of them`:""}.`:`${t===0?"No":t} ${t===1?F(M(e.kind),e.kind):s} ${t===1?"is":"are"} here.`,r>0?`${r} ${r===1?"has":"have"} a problem.`:""].filter(Boolean).join(" ")},Le=()=>{let e=(y.selection??[]).map(s=>w.getNode(s)).find(s=>s!==void 0);if(e)return{about:"here",say:oe(e),moves:[],subject:e.id};let t=S.find(s=>s.slug===y.place)??S.find(s=>s.slug==="home");return t?{about:"here",say:`${t.title}. ${me(t)}`,moves:[],subject:t.slug}:{about:"here",say:me({slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#"}),moves:[]}},Pe=e=>{let t=P.flatMap(s=>[I(s),F(M(s),s),s].map(n=>({kind:s,name:$(n)}))).filter(s=>s.name.length>0).sort((s,n)=>n.name.length-s.name.length);for(let{kind:s,name:n}of t)if(!(` ${e} `.indexOf(` ${n} `)<0))return{kind:s,rest:` ${e} `.replace(` ${n} `," ").replace(/\s+/g," ").trim()}},ie=(e,t)=>{let s=V(p,e).filters.filter(d=>d.about==="field"&&d.type==="date");if(s.length===0)return;let n=s.find(d=>t.some(l=>$(d.key)===l||$(d.label)===l));if(n)return n;let r=M(e)?.fieldRoles??{};for(let d of["due","deadline","date","when","start","end"]){let l=r[d],v=l?s.find(x=>x.key===l):void 0;if(v)return v}return s.find(d=>["due","deadline","date","when","on","at"].includes(d.key.toLowerCase()))??(s.length===1?s[0]:void 0)},He=e=>{let t=M(e),s=V(p,e).filters;if(t?.lifecycle)return{conditions:[{key:"is",value:"current"}],holds:d=>ue(be,d,{key:"is",value:"current"})};let r=s.find(d=>d.about==="field"&&d.type==="boolean"&&ne.has($(d.key)));if(r)return{conditions:[{key:r.key,value:"false"}],holds:d=>d[r.key]!==!0};let h=s.find(d=>d.about==="field"&&d.type==="choice"&&(d.options??[]).some(l=>ne.has($(l))));if(h){let d=new Set((h.options??[]).filter(v=>ne.has($(v)))),l=(h.options??[]).filter(v=>!d.has(v));return l.length===1?{conditions:[{key:h.key,value:l[0]}],holds:v=>v[h.key]===l[0]}:"unsayable"}return{conditions:[],holds:()=>!0}},Ie=(e,t)=>{let s=e.words.startsWith("due")||$(t.key)==="due",n=Ct.test($(t.label));if(e.day)return s?`due ${e.day}`:n?`on ${e.day}`:`${t.label.toLowerCase()} on ${e.day}`;let r=e.words.replace(/^(?:due|for|on|by) (?:the )?/,"");return s?`due ${r}`:n?r:`${t.label.toLowerCase()} ${r}`},ye=new Set(c.violations().flatMap(e=>e.nodeIds)),be={schema:p,graph:c.graph,flagged:ye,today:k},ae=e=>{let t=Oe(e,k,j),s=Pe(t?.rest??e),n=s?.kind,r=(s?.rest??t?.rest??e).split(" ").filter(Boolean);if(!n&&t){let g=e.split(" "),m=P.filter(L=>ie(L,g)!==void 0),E=m.filter(L=>{let b=ie(L,g);return g.some(O=>$(b.key)===O||$(b.label)===O)}),U=m.length===1?m:E;if(U.length!==1)return;n=U[0]}if(!n)return;let h=V(p,n).filters,d=[],l=[],v=[],x=[],q=!1,de=[];for(let g=0;g<r.length;g++){let m=r[g],E=g>0&&(r[g-1]==="not"||r[g-1]==="un"),U=h.find(b=>b.about==="field"&&b.type==="choice"&&(b.options??[]).some(O=>$(O)===m));if(U&&!E){let b=(U.options??[]).find(O=>$(O)===m);d.push({key:U.key,value:b}),l.push(b);continue}let L=h.find(b=>b.about==="field"&&b.type==="boolean"&&[$(b.key),$(b.label)].some(O=>O===m||O===m.replace(/^un/,"")));if(L){let b=!E&&!(m.startsWith("un")&&!$(L.key).startsWith("un"));d.push({key:L.key,value:String(b)}),l.push(b?m:`not ${m.replace(/^un/,"")}`);continue}if(Pt.has(m)&&!E){let b=He(n);b==="unsayable"?(q=!0,x.push(O=>!ut(p,O))):(d.push(...b.conditions),x.push(b.holds)),l.push(m);continue}m==="not"||m==="un"||t&&h.some(b=>b.type==="date"&&($(b.key)===m||$(b.label)===m))||de.push(m)}if(r=de,r.some(g=>!te.has(g))||!t&&d.length===0&&x.length===0)return;let T=I(n).toLowerCase(),Q=I(n);if(t){let g=ie(n,e.split(" "));if(!g){let m={to:"kind",kind:n,title:Q,address:se(n),said:`Went to the ${T}.`};return{about:"kind",say:`${ee(Q)} carry no date, so I can't tell which are ${/^(?:due|for|on|overdue|past due|late)\b/.test(t.ask.words)?t.ask.words:`due ${t.ask.words}`}. ${m.said}`,moves:[m]}}if(t.ask.from&&d.push({key:g.key,value:`after:${C(t.ask.from,-1)}`}),t.ask.to&&d.push({key:g.key,value:`before:${C(t.ask.to,1)}`}),t.ask.overdue){let m=He(n);m==="unsayable"?(q=!0,x.push(E=>!ut(p,E))):(d.push(...m.conditions),x.push(m.holds))}t.ask.overdue?l.push("overdue"):v.push(Ie(t.ask,g))}let R=w.nodesOfKind(n).filter(g=>d.every(m=>ue(be,g,m))&&x.every(m=>m(g))),K=[...l,...v].join(" and "),Y=[...l,T,...v].join(" "),W=R.slice(0,6).map(g=>({about:"node",id:g.id,kind:n,label:H(g),why:{field:d[0]?.key??"label",reading:d[0]?.key??"Name",fragment:K,strength:"field"},current:!0,flagged:ye.has(g.id),address:ge(g)})),X=R.length===0?`No ${T} are ${K}.`:`${R.length===1?`One ${F(M(n),n)} is`:`${R.length} ${T} are`} ${K}: ${fe(R.slice(0,6).map(H))}${R.length>6?`, and ${R.length-6} more`:""}.`;if(q)return{about:"kind",say:X,moves:[],picks:W,offer:{draft:Y,label:"Show as a view"}};let Z=d.map(g=>`${g.key}:${g.value}`).join(","),we=`${se(n)}?${new URLSearchParams({filter:Z}).toString()}`,_={to:"kind",kind:n,title:ee(Y),filter:Z,address:we,said:`Went to the ${Y}.`};return{about:"kind",say:`${_.said} ${X}`,moves:[_],picks:W}},Te=e=>M(e)?.figure==="person"?!0:[e,F(M(e),e),I(e)].some(s=>$(s).split(" ").some(n=>Et.has(n))),pt=e=>{let t=[],s=n=>M(n)?.edges??{};for(let[n,r]of Object.entries(s(e)))for(let h of r.to??[])u.has(h)&&t.push({key:n,direction:"out",far:h,words:ct(`${r.description??""} ${n}`)});for(let n of P)for(let[r,h]of Object.entries(s(n)))(h.to??[]).includes(e)&&t.push({key:r,direction:"in",far:n,words:ct(`${h.inverse??""} ${r}`)});return t},mt=e=>{let t=e.match(/^(who|which|what)\b/)?.[1];if(!t)return;let s=Oe(e,k,j);if(!s||s.ask.overdue)return;let n=s.rest.split(" ").filter(Boolean),r=P.flatMap(a=>[I(a),F(M(a),a),a].map(A=>({kind:a,name:$(A)}))).filter(a=>a.name.length>0).sort((a,A)=>A.name.length-a.name.length),h=` ${n.join(" ")} `,d=[];for(let{kind:a,name:A}of r)h.includes(` ${A} `)&&(h=h.replace(` ${A} `," "),d.includes(a)||d.push(a));let l=h.match(/\b(?:is|are|was|were)\b|'s\b/)?.[0],v=h.replace(/'s\b/g," ").split(" ").filter(a=>a.length>0&&!te.has(a)&&!Ce.has(a)),x=t==="who"?d.find(Te):d[0];if(!x&&t!=="who")return;let q=d.find(a=>a!==x),de=v.flatMap(a=>[je(a),...lt.has(je(a))?[...lt]:[]]),T=P.filter(a=>q?a===q:a!==x).flatMap(a=>{let A=ie(a,e.split(" "))??V(p,a).filters.find(D=>D.about==="field"&&D.type==="date");return A?pt(a).filter(D=>(x?D.far===x:Te(D.far))&&D.far!==a).map(D=>({kind:a,field:A,relation:D,said:v.length===0||de.some(ve=>D.words.some(vt=>Lt(vt,ve)))})):[]}).filter(a=>a.said);if(T.length===0)return;let Q=T.filter(a=>n.some(A=>$(a.field.key)===A||$(a.field.label)===A)),R=T.length===1?T[0]:Q.length===1?Q[0]:void 0;if(!R)return;let{kind:K,field:Y,relation:W}=R,X=[...s.ask.from?[{key:Y.key,value:`after:${C(s.ask.from,-1)}`}]:[],...s.ask.to?[{key:Y.key,value:`before:${C(s.ask.to,1)}`}]:[]],Z=w.nodesOfKind(K).filter(a=>X.every(A=>ue(be,a,A))),we=a=>(W.direction==="out"?c.graph.out(a.id,W.key):c.graph.in(a.id,W.key)).filter(A=>A.kind===W.far&&u.has(W.far)),_=[],g=[];for(let a of Z){let A=we(a);A.length===0&&g.push(a);for(let D of A)_.some(ve=>ve.id===D.id)||_.push(D)}let m=Ie(s.ask,Y),E=s.ask.day?`On ${s.ask.day}`:ee(s.ask.words.replace(/^(?:due|for|on|by) (?:the )?/,"")),U=I(K).toLowerCase(),L=X.map(a=>`${a.key}:${a.value}`).join(","),b=`${U} ${m}`,O={to:"kind",kind:K,title:ee(b),filter:L,address:`${se(K)}?${new URLSearchParams({filter:L}).toString()}`,said:`Went to the ${b}.`};if(Z.length===0)return{about:"related",say:`No ${b}. ${O.said}`,moves:[O]};let le=v.join(" "),yt=l==="was"||l==="were",Ge=a=>yt?a===1?"was":"were":a===1?"is":"are",ce=_.map(H),bt=ce.length>8?[...ce.slice(0,8),`${ce.length-8} more`]:ce,kt=_.length===0?`${E}: nobody ${Ge(1)}${le?` ${le}`:""}.`:`${E}: ${fe(bt)}${le?` ${Ge(_.length)} ${le}`:""}.`,$t=t==="who"&&g.length>0?`${fe(g.slice(0,4).map(H))}${g.length>4?` and ${g.length-4} more`:""} ${g.length===1?"has":"have"} nobody.`:"",wt=_.slice(0,8).map(a=>({about:"node",id:a.id,kind:a.kind,label:H(a),why:{field:W.key,reading:Ze(p,W.direction==="out"?K:W.far,W.key,W.direction==="out"?"out":"in"),fragment:m,strength:"field"},current:!0,flagged:ye.has(a.id),address:ge(a)}));return{about:"related",say:[kt,$t,O.said].filter(Boolean).join(" "),moves:[O],picks:wt}},Ke=N.match(jt);if(Ke){let e=Ke[1];if(e&&!rt.has(e)&&!/^(?:it|this|that)$/.test(e)){let n=re(e),r=n?void 0:pe(z(e)||e);if(r?.one){let h=Me(r.one);return{about:"describe",say:`${h.said} ${oe(r.one)}`,moves:[h],subject:r.one.id}}if(!n)return r&&r.picks.length>0?{about:"picks",say:Re(r.picks),moves:[],picks:r.picks}:De()}if(e&&/^(?:it|this|that)$|^(?:here|this place|this page)$/.test(e)){let n=(y.selection??[]).map(r=>w.getNode(r)).find(r=>r!==void 0);if(n)return{about:"describe",say:oe(n),moves:[],subject:n.id}}let t=c.violations();if(t.length===0)return{about:"problems",say:"Nothing is wrong \u2014 every rule holds.",moves:[]};let s={to:"problems",address:"/problems",said:"Went to the problems."};return{about:"problems",say:`${s.said} ${Qe(t)}: ${t.slice(0,4).map(n=>n.message).join("; ")}${t.length>4?"\u2026":"."}`,moves:[s]}}if(Ot.test(N))return Le();let _e=mt(N);if(_e)return _e;let ke=Oe(N,k,j);if(ke&&!re(z(ke.ask.words))&&ke.rest.replace(/'s\b/g,"").split(" ").every(e=>e===""||te.has(e)||Ce.has(e))){let e=ae(N);if(e)return e}if(/^open /.test(N)){let e=ae(N);if(e)return e}let Fe=N.match(Nt)??N.match(/^(?:go|take me|head|get me)(?: back)? (home)$/);if(Fe)return Ee(Fe[1].trim(),!1);let Be=N.match(St);if(Be){let e=Ee(Be[1].trim(),!0);return"unresolved"in e&&e.unresolved&&!/^tell me|^describe/.test(N)?{unresolved:!0}:e}let $e=re(N);if($e){let e=We($e);return{about:"place",say:e.said,moves:[e],subject:$e.slug}}let Ue=ae(N);return Ue||{unresolved:!0}}var Ce=new Set(["who","whom","whose","which","what","whats","what's","who's"]),Et=new Set(["person","people","user","users","member","members","volunteer","volunteers","gardener","gardeners","player","players","staff","worker","workers","employee","employees","owner","owners","assignee","assignees","helper","helpers","student","students","teacher","teachers","customer","customers","client","clients","contact","contacts","author","authors"]),lt=new Set(["work","cover","staff","assign","do","run","schedul","roster","book","duty","serv","help"]);function je(o){let i=o.toLowerCase().replace(/'s$/,"");for(let y of["ing","ed","es","s"])if(i.length>y.length+2&&i.endsWith(y)){let f=i.slice(0,-y.length);return f.length>3&&f[f.length-1]===f[f.length-2]?f.slice(0,-1):f}return i}function ct(o){return o.toLowerCase().split(/[^a-z']+/).filter(i=>i.length>1&&!te.has(i)&&!Ce.has(i)&&!["it","they","them","their","its","this","here","to","at"].includes(i)).map(je)}var Lt=(o,i)=>o===i||o.length>=4&&i.length>=4&&(o.startsWith(i)||i.startsWith(o)),ne=new Set(["done","finished","complete","completed","closed","resolved","agreed","canceled","archived","shipped","delivered"]),Pt=new Set(["open","unfinished","outstanding","pending","remaining","undone","incomplete"]);function ut(o,i){return V(o,i.kind).filters.some(f=>f.about==="field"&&(f.type==="boolean"&&ne.has(f.key.toLowerCase())&&i[f.key]===!0||f.type==="choice"&&typeof i[f.key]=="string"&&ne.has(String(i[f.key]).toLowerCase())))}function fe(o){return o.length<=1?o[0]??"":`${o.slice(0,-1).join(", ")} and ${o[o.length-1]}`}function zt(o,i,y={}){let f=y.scene!==void 0?{...y.pages,scene:y.scene}:y.pages;return[...nt(o,i,f?{pages:f}:{})].map(({first:c,hidden:p,lens:k,...j})=>j)}function gt(o,i){return{...o.principal?{principal:o.principal}:{},...o.places?{places:o.places}:{},...o.selection?{selection:o.selection}:{},...o.place?{place:o.place}:{},...i??o.today?{today:i??o.today}:{},...o.weekStartsOn!==void 0?{weekStartsOn:o.weekStartsOn}:{}}}function Jt(o,i,y,f){let c=ht(o,i,gt(y,f));if(c.unresolved)return c.say?{reply:{say:c.say,proposals:[],grounded:!0}}:{};if(c.about==="picks")return{};let p=c.moves.length>0?{moves:c.moves}:{},k=c.subject?o.graph.getNode(c.subject):void 0;if(c.about==="problems")return{...p,problems:!0};if(k&&(c.about==="describe"||c.about==="here"))return{...p,told:k.id};let j=k?tt(o,ot(Ve(o.violations(),[k.id])).slice(0,3)):[];return{reply:{say:c.say,proposals:j,grounded:!0,...p,...c.picks&&c.picks.length>0?{picks:c.picks}:{},...c.offer?{offer:c.offer}:{}}}}function Yt(o,i,y={}){let f=gt(y),c=[];for(let p of i){let k=typeof p=="string"?p:typeof p=="object"&&p!==null&&typeof p.to=="string"?p.to:void 0;if(!k||k.trim().length===0)continue;let j=ht(o,/^(?:go|take me|open|show)\b/i.test(k.trim())?k:`go to ${k}`,f);if("moves"in j)for(let J of j.moves)c.some(B=>B.address===J.address)||c.push(J)}return c}export{At as NOTHING_BY_THAT_NAME,gt as askContextOf,Jt as goingFrom,Yt as movesFromNames,zt as placesFromViews,ht as resolveAsk};
|