graview 0.1.60 → 0.1.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/preview/{chunk.QDSEVPF3.js → chunk.22BZU7ME.js} +1 -1
- package/dist/preview/chunk.2AT3GRXM.js +1 -0
- package/dist/preview/chunk.2B6P4GPS.js +1 -0
- package/dist/preview/chunk.2GEJNG2U.js +1 -0
- package/dist/preview/{chunk.7N32AVIJ.js → chunk.2N4Z5K5S.js} +1 -1
- package/dist/preview/{chunk.NHUQ2N6J.js → chunk.3FON2Y72.js} +1 -1
- package/dist/preview/chunk.3L37FY3G.js +4 -0
- package/dist/preview/{chunk.ZYM2SSGW.js → chunk.4HEFUOLV.js} +1 -1
- package/dist/preview/chunk.4HRYB7HF.js +1 -0
- package/dist/preview/{chunk.YZ7FUKAL.js → chunk.4TX6VCBT.js} +1 -1
- package/dist/preview/{chunk.IGJZ4UH3.js → chunk.5HGD6OWL.js} +2 -2
- package/dist/preview/{chunk.2USDHXB4.js → chunk.5J3O2FVG.js} +1 -1
- package/dist/preview/{chunk.H45Q3O4F.js → chunk.5MZYCELA.js} +1 -1
- package/dist/preview/{chunk.SRVQJZRT.js → chunk.5ODHHH35.js} +1 -1
- package/dist/preview/{chunk.HDUO2USQ.js → chunk.5STU3KYG.js} +1 -1
- package/dist/preview/{chunk.TFWIG6LL.js → chunk.5YAOKOGV.js} +1 -1
- package/dist/preview/{chunk.BQIHNT7C.js → chunk.66P5IDTH.js} +1 -1
- package/dist/preview/{chunk.M4UD4ARP.js → chunk.6AKW7TXM.js} +1 -1
- package/dist/preview/{chunk.URWAFZHF.js → chunk.6JO5HQDR.js} +1 -1
- package/dist/preview/{chunk.HUJ6YTWE.js → chunk.75GVFX7L.js} +1 -1
- package/dist/preview/{chunk.A3ZXDG6V.js → chunk.7KVUUEZA.js} +1 -1
- package/dist/preview/{chunk.FFTYMBBT.js → chunk.7M4HNKDR.js} +1 -1
- package/dist/preview/chunk.7OBIBPYH.js +1 -0
- package/dist/preview/chunk.7V56P2A7.js +1 -0
- package/dist/preview/chunk.7XLS6XTY.js +1 -0
- package/dist/preview/chunk.7YOAW7ED.js +1 -0
- package/dist/preview/{chunk.FBJARKDT.js → chunk.A3OL2BI2.js} +1 -1
- package/dist/preview/{chunk.NGTRL5U4.js → chunk.A3ZC2JBO.js} +1 -1
- package/dist/preview/{chunk.A5PDXNY6.js → chunk.ACTXR2MI.js} +1 -1
- package/dist/preview/chunk.AFNSAQEQ.js +1 -0
- package/dist/preview/chunk.AI34V6WV.js +74 -0
- package/dist/preview/{chunk.3XGA65Y3.js → chunk.AJSUHPBE.js} +1 -1
- package/dist/preview/chunk.AQRB7LDA.js +1 -0
- package/dist/preview/{chunk.GNBIVVL3.js → chunk.B23WZQXQ.js} +1 -1
- package/dist/preview/chunk.BIDL7GQD.js +0 -0
- package/dist/preview/chunk.BLUKSGI4.js +1 -0
- package/dist/preview/chunk.BZMQDEIY.js +1 -0
- package/dist/preview/chunk.CAKFNKN5.js +1 -0
- package/dist/preview/chunk.CGALLZ54.js +1 -0
- package/dist/preview/{chunk.LSY256J4.js → chunk.CHHYIMB7.js} +1 -1
- package/dist/preview/chunk.CXDGE5ZS.js +1 -0
- package/dist/preview/{chunk.CC5BJH5A.js → chunk.CY3ELWCM.js} +1 -1
- package/dist/preview/chunk.DC35FJAB.js +1 -0
- package/dist/preview/{chunk.AVBTPSQF.js → chunk.DD2NKFDX.js} +1 -1
- package/dist/preview/{chunk.6HF6POIX.js → chunk.DDO3GLEJ.js} +1 -1
- package/dist/preview/{chunk.TLJOZSDD.js → chunk.DDUCIUVW.js} +1 -1
- package/dist/preview/chunk.DEAP3H2L.js +1 -0
- package/dist/preview/chunk.DHJ3FQTR.js +1 -0
- package/dist/preview/{chunk.P6RORYOT.js → chunk.DNVWSWL2.js} +1 -1
- package/dist/preview/chunk.DPEIT3TW.js +1 -0
- package/dist/preview/chunk.DVSTLVIH.js +15 -0
- package/dist/preview/chunk.DZZL5IDD.js +5 -0
- package/dist/preview/{chunk.IGVASEZU.js → chunk.ELOFPE25.js} +1 -1
- package/dist/preview/{chunk.MVWC3VR3.js → chunk.ELTV44HU.js} +2 -2
- package/dist/preview/chunk.EVBCEEQ4.js +1 -0
- package/dist/preview/{chunk.TKVLNBRD.js → chunk.F7YXLYLX.js} +1 -1
- package/dist/preview/{chunk.DCHQHKSA.js → chunk.FULEUL34.js} +1 -1
- package/dist/preview/{chunk.VNDKKTED.js → chunk.G4ULQK64.js} +14 -14
- package/dist/preview/{chunk.Y7G3OGDE.js → chunk.GX4G4BX3.js} +1 -1
- package/dist/preview/chunk.H24OC6OE.js +1 -0
- package/dist/preview/chunk.H5S7OL2U.js +1 -0
- package/dist/preview/chunk.H73ZPYUX.js +1 -0
- package/dist/preview/{chunk.GTKJJYQH.js → chunk.H7N7WN4U.js} +1 -1
- package/dist/preview/chunk.HANJZ6FA.js +1 -0
- package/dist/preview/chunk.HIMQ65QT.js +1 -0
- package/dist/preview/chunk.I77ZGIFE.js +1 -0
- package/dist/preview/{chunk.MJVYWLQQ.js → chunk.ILIIBSGA.js} +1 -1
- package/dist/preview/chunk.IQ3PRWGO.js +104 -0
- package/dist/preview/{chunk.NC7FXY2H.js → chunk.IQMD7DG3.js} +1 -1
- package/dist/preview/chunk.IQPILSV3.js +18 -0
- package/dist/preview/chunk.IYBEXENQ.js +1 -0
- package/dist/preview/{chunk.ULL6ZIJJ.js → chunk.J7Q2WAF4.js} +1 -1
- package/dist/preview/{chunk.TLWT67ON.js → chunk.JT3MFPRD.js} +1 -1
- package/dist/preview/chunk.JYFZCJ4N.js +2 -0
- package/dist/preview/chunk.K2HDEL7I.js +1 -0
- package/dist/preview/chunk.KDXU5DT3.js +1 -0
- package/dist/preview/chunk.KL7E4YHJ.js +1 -0
- package/dist/preview/{chunk.FRYBMS3W.js → chunk.KMV6PJFL.js} +1 -1
- package/dist/preview/{chunk.RXYNW5QB.js → chunk.L3WTKQQL.js} +1 -1
- package/dist/preview/chunk.LAYQ5PFS.js +1 -0
- package/dist/preview/{chunk.KBVTLNS5.js → chunk.LGRLVJGS.js} +3 -3
- package/dist/preview/chunk.LTZUF5VG.js +1 -0
- package/dist/preview/{chunk.OLFJH4RK.js → chunk.M4AYA2PL.js} +1 -1
- package/dist/preview/chunk.M7RESZB6.js +25 -0
- package/dist/preview/{chunk.WXUFATY5.js → chunk.MAKODQO3.js} +1 -1
- package/dist/preview/{chunk.F6V7RWDK.js → chunk.MDEX6ZVE.js} +1 -1
- package/dist/preview/chunk.MGALQLRW.js +1 -0
- package/dist/preview/{chunk.7OPM55I2.js → chunk.MYNMBOLD.js} +1 -1
- package/dist/preview/chunk.N6EJXXQK.js +2 -0
- package/dist/preview/chunk.NAD7ZXYP.js +1 -0
- package/dist/preview/chunk.NHTGAP3G.js +3 -0
- package/dist/preview/{chunk.5IEFTFKQ.js → chunk.NJSK3UO2.js} +1 -1
- package/dist/preview/{chunk.VFOON3Z3.js → chunk.NOGGSLVG.js} +1 -1
- package/dist/preview/chunk.NUWDMH47.js +1 -0
- package/dist/preview/chunk.NUYA4BWI.js +1 -0
- package/dist/preview/{chunk.VUBNBTJP.js → chunk.O2BHPYA4.js} +2 -2
- package/dist/preview/chunk.O75HWF3F.js +1 -0
- package/dist/preview/chunk.OFWNMTGB.js +21 -0
- package/dist/preview/chunk.OKZT2QBM.js +2 -0
- package/dist/preview/{chunk.EL5ICOOM.js → chunk.OUDATENL.js} +1 -1
- package/dist/preview/chunk.OUPURRDE.js +1 -0
- package/dist/preview/{chunk.Y5C4RXG7.js → chunk.OWOOKLIU.js} +2 -1
- package/dist/preview/{chunk.PI44XMY2.js → chunk.OWT3VVOT.js} +1 -1
- package/dist/preview/{chunk.VDMDPZ6U.js → chunk.PCDUV3WP.js} +1 -1
- package/dist/preview/chunk.PD2DECOP.js +1 -0
- package/dist/preview/{chunk.ZXOT3IXJ.js → chunk.PKWQKFPE.js} +1 -1
- package/dist/preview/{chunk.ENL2JJ47.js → chunk.PLTH2LW5.js} +1 -1
- package/dist/preview/{chunk.ZP5RT2EK.js → chunk.PZQNR4KZ.js} +1 -1
- package/dist/preview/chunk.Q5WEOX3Q.js +1 -0
- package/dist/preview/chunk.QDWSU47A.js +1 -0
- package/dist/preview/{chunk.VADQ7ZGA.js → chunk.QGU5QTR6.js} +1 -1
- package/dist/preview/chunk.QHY5NVYH.js +1 -0
- package/dist/preview/{chunk.6ZQAR5ZA.js → chunk.QIPASE42.js} +1 -1
- package/dist/preview/{chunk.7MHCGVGM.js → chunk.RD2X25XB.js} +1 -1
- package/dist/preview/chunk.RMR24LFJ.js +4 -0
- package/dist/preview/chunk.ROZTJ6IY.js +6 -0
- package/dist/preview/{chunk.RQOX5YDW.js → chunk.RPDH32XV.js} +1 -1
- package/dist/preview/chunk.RRKI24WY.js +1 -0
- package/dist/preview/{chunk.HDP3PS7N.js → chunk.RYRQ66JN.js} +1 -1
- package/dist/preview/chunk.SEHRPTNA.js +7 -0
- package/dist/preview/chunk.SGCW2XRC.js +1 -0
- package/dist/preview/{chunk.JPONLMU7.js → chunk.SS7234R6.js} +1 -1
- package/dist/preview/{chunk.BXDM3UMN.js → chunk.SVPKUWZU.js} +1 -1
- package/dist/preview/{chunk.LQVAABPS.js → chunk.SWMDFXUX.js} +1 -1
- package/dist/preview/{chunk.6WHAWOO7.js → chunk.T3UQ7ZQK.js} +1 -1
- package/dist/preview/chunk.T6PU3NKP.js +1 -0
- package/dist/preview/{chunk.6C2MHWSX.js → chunk.T6WHGKWR.js} +1 -1
- package/dist/preview/{chunk.QBLKTFF4.js → chunk.THVC2BEC.js} +1 -1
- package/dist/preview/{chunk.KDRLUBVF.js → chunk.TIALD6SC.js} +1 -1
- package/dist/preview/{chunk.Z2ERZ4S6.js → chunk.TM4EPUNO.js} +1 -1
- package/dist/preview/chunk.U5P23GO7.js +1 -0
- package/dist/preview/chunk.U6ZRJKVM.js +1 -0
- package/dist/preview/chunk.UFDJXQQQ.js +32 -0
- package/dist/preview/{chunk.IOK4GVJC.js → chunk.UKQUUPKE.js} +1 -1
- package/dist/preview/{chunk.TAT2IQUR.js → chunk.UQQKDBIH.js} +1 -1
- package/dist/preview/{chunk.QHDCTAD7.js → chunk.UVA7AALY.js} +1 -1
- package/dist/preview/chunk.UXMPFPFH.js +20 -0
- package/dist/preview/chunk.VACKSKGJ.js +1 -0
- package/dist/preview/{chunk.3UOKUF5Z.js → chunk.VC3V7HLL.js} +1 -1
- package/dist/preview/chunk.VIH5AX7S.js +5 -0
- package/dist/preview/{chunk.4LR64TPU.js → chunk.VJBBVLGZ.js} +1 -1
- package/dist/preview/chunk.VN23AGIY.js +1 -0
- package/dist/preview/{chunk.VZJWJ5XM.js → chunk.W4BKYSZX.js} +1 -1
- package/dist/preview/{chunk.CQT3W2SF.js → chunk.WEOVK2T4.js} +1 -1
- package/dist/preview/chunk.WKI5INH7.js +1 -0
- package/dist/preview/chunk.WPXPVD33.js +88 -0
- package/dist/preview/chunk.X6KYRBL6.js +1 -0
- package/dist/preview/chunk.Y2YYH3JN.js +1 -0
- package/dist/preview/chunk.Y4FZKUOK.js +1 -0
- package/dist/preview/chunk.Y4S7CDRB.js +1 -0
- package/dist/preview/{chunk.YFSBVZTG.js → chunk.YP2QSPXU.js} +1 -1
- package/dist/preview/{chunk.VWJGQDCE.js → chunk.Z2TDZSMN.js} +1 -1
- package/dist/preview/chunk.ZN3PUM2I.js +1 -0
- package/dist/preview/index.html +53 -51
- package/dist/preview/page.js +2 -2
- package/dist/preview/splash.js +57 -0
- package/package.json +6 -6
- package/dist/preview/chunk.2K4TT2BV.js +0 -1
- package/dist/preview/chunk.37TVS7CA.js +0 -1
- package/dist/preview/chunk.3IZ3ABII.js +0 -1
- package/dist/preview/chunk.3MOJF7BA.js +0 -1
- package/dist/preview/chunk.3V4WP7RY.js +0 -18
- package/dist/preview/chunk.3ZT5WQYL.js +0 -1
- package/dist/preview/chunk.4MP72LPR.js +0 -25
- package/dist/preview/chunk.4TCKEG6I.js +0 -1
- package/dist/preview/chunk.5DD62IOW.js +0 -21
- package/dist/preview/chunk.5YOLUDVO.js +0 -1
- package/dist/preview/chunk.644FUGSX.js +0 -1
- package/dist/preview/chunk.67U6M7OV.js +0 -1
- package/dist/preview/chunk.7TFLRR7D.js +0 -1
- package/dist/preview/chunk.7VKSXGTX.js +0 -1
- package/dist/preview/chunk.BF6S5UE4.js +0 -1
- package/dist/preview/chunk.BLPYNNR4.js +0 -1
- package/dist/preview/chunk.BRT27WON.js +0 -1
- package/dist/preview/chunk.BYKD5RLA.js +0 -1
- package/dist/preview/chunk.C7OLSEWK.js +0 -1
- package/dist/preview/chunk.CFKZXLXS.js +0 -1
- package/dist/preview/chunk.CMN6BBAD.js +0 -1
- package/dist/preview/chunk.D7YSL3NK.js +0 -2
- package/dist/preview/chunk.EQXB7LKI.js +0 -1
- package/dist/preview/chunk.ERFT54HT.js +0 -1
- package/dist/preview/chunk.FLUK3UXF.js +0 -1
- package/dist/preview/chunk.G3R4BTI7.js +0 -1
- package/dist/preview/chunk.G4YJPKRG.js +0 -5
- package/dist/preview/chunk.GLWSVSQL.js +0 -1
- package/dist/preview/chunk.I4XQBQRC.js +0 -1
- package/dist/preview/chunk.IBOKXVWN.js +0 -1
- package/dist/preview/chunk.IHBUBZQT.js +0 -2
- package/dist/preview/chunk.JEYQBH33.js +0 -32
- package/dist/preview/chunk.JJGCTGWA.js +0 -1
- package/dist/preview/chunk.KGW75Z5L.js +0 -3
- package/dist/preview/chunk.KI37ZEV3.js +0 -1
- package/dist/preview/chunk.KNYLY7MH.js +0 -1
- package/dist/preview/chunk.L6AWE76F.js +0 -1
- package/dist/preview/chunk.LGEA5257.js +0 -6
- package/dist/preview/chunk.LLYRFVIN.js +0 -104
- package/dist/preview/chunk.LZIBQ3VX.js +0 -1
- package/dist/preview/chunk.MDJWK5W2.js +0 -1
- package/dist/preview/chunk.MSWWWLEA.js +0 -1
- package/dist/preview/chunk.PFSYXD6Q.js +0 -1
- package/dist/preview/chunk.PHC2MI4C.js +0 -1
- package/dist/preview/chunk.PHJ6WPWH.js +0 -1
- package/dist/preview/chunk.PNW5K7BW.js +0 -1
- package/dist/preview/chunk.PXQVXBNG.js +0 -1
- package/dist/preview/chunk.QFUMFQJU.js +0 -1
- package/dist/preview/chunk.QI4SLPQ4.js +0 -4
- package/dist/preview/chunk.QUJS63OJ.js +0 -13
- package/dist/preview/chunk.SB2PZKN5.js +0 -88
- package/dist/preview/chunk.T7LQD67N.js +0 -20
- package/dist/preview/chunk.TY4GQJKC.js +0 -1
- package/dist/preview/chunk.UDCDK7XJ.js +0 -4
- package/dist/preview/chunk.UITT6JWW.js +0 -2
- package/dist/preview/chunk.UJTE7UAP.js +0 -1
- package/dist/preview/chunk.UQWTZJBV.js +0 -1
- package/dist/preview/chunk.VMV464JK.js +0 -1
- package/dist/preview/chunk.VSCIXAHN.js +0 -5
- package/dist/preview/chunk.W3W54DSX.js +0 -1
- package/dist/preview/chunk.WC3DENU4.js +0 -67
- package/dist/preview/chunk.WQ6RCEUQ.js +0 -1
- package/dist/preview/chunk.X6A4VSSD.js +0 -1
- package/dist/preview/chunk.XGASJAV2.js +0 -7
- package/dist/preview/chunk.XR6YR6RV.js +0 -1
- package/dist/preview/chunk.XZPKBHJT.js +0 -1
- package/dist/preview/chunk.YEBGI6ED.js +0 -1
- package/dist/preview/chunk.YH63KQ2G.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as ee,b as H,c as ne}from"./chunk.XR6YR6RV.js";import{B as J,F as Q,H as X,K as Y,g as K,i as G,m as q,p as z,q as W,u as j,v as Z,x as _,z as U}from"./chunk.WC3DENU4.js";import{a as O}from"./chunk.VNDKKTED.js";import{G as ae,Ha as D,Qa as $,T as M,ba as T,da as N,ua as I}from"./chunk.4MP72LPR.js";import{Kc as C}from"./chunk.VSCIXAHN.js";import{b as k}from"./chunk.AJZBJBMO.js";var o=k(ae(),1);var y=k(M(),1),fe=e=>typeof e=="object"?e:{};function he({rootRef:e,firstLook:r,app:n}){let t=(0,o.useCallback)(()=>e.current,[e]);return r?(0,y.jsx)(Y,{firstLook:r,root:t,app:n}):null}function ge(e,r,n){let{app:t}=e,a=(0,o.useMemo)(()=>{let i=Q(r(t.schema,t.viewSpecs),t),d=n?ie(i,n):i,s=e.views?e.views(t.schema,d):i,c=s===d?i:I(i,s);return X(c,t.schema,U(e.brand??t.brand,t.schema)),n?n.register(c):c},[e.views,t.schema,t.viewSpecs,t.lenses,t.pages,t.home,n]);return D(a,e.keptViews)}function ie(e,r){let n={...e,register(t,a,i,d){return d?.name!==r.name&&e.register(t,a,i,d),n},...e.home?{home:(t,a)=>(r.home||e.home(t,a),n)}:{}};return n}var F=e=>e?e.getBoundingClientRect().height:0;function be(e,r,n){let t=(0,o.useRef)(n);t.current=n;let a=n!==void 0;(0,o.useLayoutEffect)(()=>{let i=e.current;if(!i||!a)return;let d=()=>{let m=[...i.children],h=m.find(b=>b.hasAttribute("data-graview-app-bar")),p=m.find(b=>b.hasAttribute("data-embed-content")),g=p?.querySelector("[data-embed-measure]")??null,l=m.find(b=>b.hasAttribute("data-graview-place-line"));return{strip:h,line:l,content:p,measure:g}},s=-1,c=()=>{let{strip:m,line:h,content:p,measure:g}=d(),l=Math.ceil(F(m)+F(h)+F(g||p));l!==s&&(s=l,t.current?.(l))};if(c(),typeof ResizeObserver>"u")return;let u=new ResizeObserver(c),E=()=>{u.disconnect();let{strip:m,line:h,content:p,measure:g}=d();for(let l of[i,m,h,p,g])l&&u.observe(l)};E();let w=new MutationObserver(()=>{E(),c()});return w.observe(i,{childList:!0}),()=>{u.disconnect(),w.disconnect()}},[e,r,a])}var we=480,se=0;function Se(e){let{app:r,seed:n,scheme:t="auto",brand:a=r.brand,fonts:i=!0,height:d="100%",label:s}=e,c=(0,o.useRef)(null);$(c);let u=d==="viewport"?"100dvh":d,E=G(typeof u=="string"&&/vh\b/.test(u)),w=(0,o.useMemo)(()=>`graview-embed-${++se}`,[]),m=(0,o.useMemo)(()=>e.store??e.remote?.store??H(r,n),[e.store,e.remote,r,n]),h=e.presence??e.remote?.presence,p=e.hostContext?.theme,g=ne(t==="auto"&&p===void 0,a?.scheme),l=t==="auto"?p??g:t,b=(0,o.useMemo)(()=>O(l,a,{scope:`.${w}`}),[l,a,w]);K(e.favicon?C(a):void 0),(0,o.useEffect)(()=>{if(!i||typeof document>"u")return;let v=ee(a);if(!v||document.querySelector(`link[href="${v}"]`))return;let f=document.createElement("link");f.rel="stylesheet",f.href=v,document.head.appendChild(f)},[a,i]);let A=(0,o.useRef)(void 0);(0,o.useLayoutEffect)(()=>{let v=c.current,f=A.current;if(A.current=s,!v||!s)return;let oe=S=>{let R=S.getAttribute("aria-label")??"",x=f&&f!==s?R.startsWith(`${f} \xB7 `)?R.slice(f.length+3):R===f?"":R:R;x===s&&(S.getAttribute("role")==="region"||S.tagName==="SECTION"&&!S.hasAttribute("role"))&&S.setAttribute("role","group");let V=x.startsWith(`${s} \xB7 `)||x===s?x:x?`${s} \xB7 ${x}`:s;V!==R&&S.setAttribute("aria-label",V)},B=()=>v.querySelectorAll("aside, nav, main, header, footer, section[aria-label]:not([role]), [role=region], [role=complementary], [role=navigation], [role=search]").forEach(S=>{S.hasAttribute("data-graview-named-by-lens")||oe(S)});B();let P=new MutationObserver(B);return P.observe(v,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["aria-label"]}),()=>P.disconnect()},[s]);let re=E?`${u}`.replace(/([\d.]+)[sdl]?vh\b/g,(v,f)=>`${+f*E/100}px`):u;return{rootRef:c,scope:w,css:b,scheme:l,store:m,presence:h,brand:a,auto:d==="auto",height:re}}function ve({rootRef:e,board:r}){let n=(0,o.useCallback)(()=>e.current?.querySelector("[data-embed-content]")??e.current,[e]);return(0,y.jsx)(q,{board:r,anchor:n})}function Ee(e,r,n){return{brand:n,locale:e.locale,timeZone:e.timeZone,principal:e.principal,seats:e.seats,presence:r,typing:e.remote?.typing,people:e.people,memory:e.memory,presenceTtlMs:e.presenceTtlMs,onKeepLens:e.onKeepLens,ai:e.ai,files:e.files,resolveApp:e.resolveApp,history:e.history,linkedRecords:e.linkedRecords,subscriptions:e.subscriptions,dismissals:e.dismissals,whileAway:e.whileAway,keptViews:e.keptViews,onExport:e.onExport,signIn:e.signIn,menuSections:e.menuSections,app:e.app}}function Re({name:e,heading:r,faces:n,at:t,without:a,home:i,reach:d,standing:s,hostActions:c,keeping:u,onFind:E,switch:w,named:m=!0}){let{brand:h,store:p,principal:g,views:l}=T();N();let b=a?.has("places")?[]:z({store:p,principal:g,views:l}),A=_();return(0,y.jsx)(j,{brand:h,name:e,named:m,description:h?.subtitle,heading:r,faces:n,home:i,places:b,current:t===null?null:W(b,t),reach:d,onFind:E,...w?{switch:w}:{},...n||t===null?{scenePlaces:A}:{},tools:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(J,{clean:s}),(0,y.jsx)(Z,{...c?{hostActions:c}:{},...u?{keeping:u}:{}})]})})}var xe=e=>e===!1?2:Math.min(e+1,6);function Ae(e){let[r,n]=(0,o.useState)(e),t=(0,o.useRef)(void 0),a=(0,o.useRef)(void 0),i=(0,o.useMemo)(()=>({go:t,at:n,pending:a}),[]),d=(0,o.useCallback)(s=>{if(t.current){t.current(s);return}a.current=s,n(s)},[]);return{at:r,setAt:n,steering:i,steer:d}}function de(e){let r=typeof e=="object"&&e!==null?e.name:void 0;return{name:typeof r=="string"&&r.length>0?r:typeof e=="object"?"Error":typeof e}}var L=()=>typeof performance<"u"?performance.now():Date.now();function Fe(e,r){let n=(0,o.useRef)({onError:e,face:r});return n.current={onError:e,face:r},(0,o.useCallback)((t,a)=>n.current.onError?.(de(t),{module:a.module,face:n.current.face}),[])}function ke(e,r){let n=(0,o.useRef)(null);n.current===null&&(n.current=L());let t=(0,o.useRef)({onReady:e,face:r});t.current={onReady:e,face:r};let a=(0,o.useRef)(!1);return(0,o.useCallback)(i=>{a.current||(a.current=!0,t.current.onReady?.({ms:Math.max(0,L()-(n.current??L())),face:i}))},[])}var te=class extends o.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(r,n){console.error(`[graview] ${this.props.module} threw while rendering`,r,n.componentStack),this.props.report(r,{module:this.props.module})}render(){return this.state.failed?(0,y.jsxs)("div",{role:"alert","data-graview-face-error":this.props.module,...this.props.content?{"data-embed-content":""}:{},style:this.props.content?{flex:"1 1 auto",display:"grid",alignContent:"center",justifyItems:"center",gap:8,padding:24,background:"var(--graview-ground)",color:"var(--graview-ink)",fontSize:"0.9375rem"}:{display:"inline-flex",alignItems:"center",gap:6,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,y.jsx)("span",{children:this.props.content?"This part of the app could not draw.":"Could not draw."}),(0,y.jsx)("button",{type:"button",onClick:()=>this.setState({failed:!1}),style:{padding:"3px 11px",fontSize:"0.8125rem"},children:"Try again"})]}):this.props.children}};export{fe as a,he as b,ge as c,be as d,we as e,Se as f,ve as g,Ee as h,Re as i,xe as j,Ae as k,Fe as l,ke as m,te as n};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{F as j,Fa as X,H as J,I as B,K as F,Na as v,Q as G,Sb as z,T as C,U as Q,V as U,W as P,Ya as nn,Zb as tn,aa as I,ab as en,ca as K,na as Z}from"./chunk.VSCIXAHN.js";var fn=1e4,y=class{constructor(a){this.nodes=a}},on=Symbol.for("@graview/core:far-record"),cn=e=>typeof e=="object"&&e!==null&&e[on]===!0;function pn(e){let a={...e.fields,id:`@${e.address}/${e.kind}:${e.id}`,kind:`@${e.address}/${e.kind}`,label:e.label};return Object.defineProperty(a,on,{value:!0}),a}function Rn(e){let a=`the linked record in ${e.ref.address}`;return e.reason==="denied"?`${a} is not one this viewer may open`:`${a} has not been read`}var gn="",u=class extends Error{constructor(f,c){super(f);this.sentence=f;this.at=c}},W=class extends u{},M=e=>e!==null&&typeof e=="object"&&!Array.isArray(e)&&!(e instanceof y)&&typeof e.id=="string",rn=e=>{let a=new Set;return new y(e.filter(f=>!a.has(f.id)&&a.add(f.id)))},w=e=>e===null?"nothing":e instanceof y?"a set of records":Array.isArray(e)?"a list":M(e)?"a record":typeof e=="string"?"a word":typeof e;function an(e,a){let f=a.budget??fn,c=(n,s)=>{if(f-=n,f<0)throw new W("this rule looks at too much of the graph to judge in one go",s)},d=a.today??F(),b=a.now??new Date().toISOString(),k=new Map,x=new Set,A=a.bindings,H=(n,s,t,o)=>{let l=`${n?.id}\0${s}`;if(k.has(l))return k.get(l);if(x.has(l))throw new u(`"${s}"${n?` of ${Z(n.kind)}`:""} depends on itself`,o);x.add(l);let r=A;A=void 0;try{let i=$(t,n);return k.set(l,i),i}finally{A=r,x.delete(l)}},E=(n,s,t)=>{c(1,t);let o=a.kinds.get(n.kind),l=o?.computed?.get(s);if(l)return H(n,s,l,t);let r=o?.linked?.get(s);if(r){let g=X(Object.hasOwn(n,s)?n[s]:void 0,r);c(g.length,t);let m=a.linked??v(a.graph),h=g.flatMap(N=>{let _=m?m(N):{unread:!0};return"record"in _?[pn(_.record)]:(a.onUnread?.({relation:s,ref:N,reason:"denied"in _?"denied":"unread"}),[])});return r.cardinality==="one"?h[0]??null:new y(h)}let i=Object.hasOwn(n,s);if(o?.fields.has(s)||i){let g=i?nn(n,s,d):void 0;return g===void 0?null:g}let p=o?.edges.get(s);if(p){let g=a.graph.out(n.id,s);return c(g.length,t),p==="one"?g[0]??null:new y(g)}if(s==="id")return n.id;if(cn(n))return null;throw new u(`${Z(n.kind)} has no field or relation called "${s}"`,t)},S=(n,s,t)=>{if(n instanceof y)return n;if(n===null)return new y([]);if(M(n))return new y([n]);throw new u(`${t}(\u2026) needs a set of records, and was given ${w(n)}`,s)},V=(n,s,t)=>{if(n===null)return null;if(typeof n=="string")return n;if(typeof n=="number"||typeof n=="boolean")return String(n);throw new u(`${t}(\u2026) needs a word, and was given ${w(n)}`,s)},D=(n,s,t)=>{let o=V(n,s,t);if(o===null)return null;let l=Date.parse(o.length===10?`${o}T00:00:00Z`:o);if(Number.isNaN(l))throw new u(`${t}(\u2026) needs a date, and "${o}" is not one`,s);return l},O=(n,s)=>M(n)&&M(s)?n.id===s.id:M(n)&&typeof s=="string"?n.id===s:typeof n=="string"&&M(s)?n===s.id:Array.isArray(n)&&Array.isArray(s)?n.length===s.length&&n.every((t,o)=>O(t,s[o])):n===s,R=(n,s,t)=>{if(n===null)return!1;if(typeof n=="boolean")return n;throw new u(`${t} must be true or false, and was ${w(n)}`,s)},T=(n,s)=>$(s,n);function $(n,s){switch(c(1,n.at),n.t){case"lit":return n.value;case"list":return n.items.map(t=>$(t,s));case"ident":{let t=A&&Object.hasOwn(A,n.name)?A[n.name]:void 0;if(t!==void 0)return t;if(s)return E(s,n.name,n.at);throw new u(`"${n.name}" means nothing in a rule over the whole graph`,n.at)}case"member":{let t=$(n.object,s);if(t===null)return null;if(M(t))return E(t,n.name,n.at);throw new u(`".${n.name}" needs a record before it, and was given ${w(t)}`,n.at)}case"unary":{let t=$(n.operand,s);if(n.op==="!")return!R(t,n.at,"what follows not");if(t===null)return null;if(typeof t!="number")throw new u(`"-" needs a number, and was given ${w(t)}`,n.at);return-t}case"where":{let t=S($(n.set,s),n.at,"where");return c(t.nodes.length,n.at),new y(t.nodes.filter(o=>R(T(o,n.filter),n.at,"a where condition")))}case"binary":return ln(n,s);case"call":return un(n,s)}}function ln(n,s){if(n.op==="&&")return R($(n.left,s),n.at,"each side of and")&&R($(n.right,s),n.at,"each side of and");if(n.op==="||")return R($(n.left,s),n.at,"each side of or")||R($(n.right,s),n.at,"each side of or");let t=$(n.left,s),o=$(n.right,s);if(n.op==="&"||n.op==="|"||n.op==="-"&&(t instanceof y||o instanceof y)){let l=S(t,n.at,n.op).nodes,r=S(o,n.at,n.op).nodes;c(l.length+r.length,n.at);let i=new Set(r.map(p=>p.id));return rn(n.op==="|"?[...l,...r]:l.filter(p=>i.has(p.id)===(n.op==="&")))}switch(n.op){case"==":return O(t,o);case"!=":return!O(t,o);case"in":{if(o===null)return!1;if(o instanceof y)return o.nodes.some(l=>O(t,l));if(Array.isArray(o))return o.some(l=>O(t,l));if(typeof o=="string"&&typeof t=="string")return o.includes(t);throw new u(`"in" needs a list or a set on its right, and was given ${w(o)}`,n.at)}case"<":case"<=":case">":case">=":{if(t===null||o===null)return!1;if(!(typeof t=="number"&&typeof o=="number"||typeof t=="string"&&typeof o=="string"))throw new u(`cannot compare ${w(t)} with ${w(o)}`,n.at);return n.op==="<"?t<o:n.op==="<="?t<=o:n.op===">"?t>o:t>=o}default:{if(t===null||o===null)return null;if(n.op==="+"&&(typeof t=="string"||typeof o=="string")){let l=`${V(t,n.at,"+")}${V(o,n.at,"+")}`;if(l.length>1e4)throw new u("that makes a word too long",n.at);return l}if(typeof t!="number"||typeof o!="number")throw new u(`"${n.op}" needs numbers, and was given ${w(t)} and ${w(o)}`,n.at);return(n.op==="/"||n.op==="%")&&o===0?null:n.op==="+"?t+o:n.op==="-"?t-o:n.op==="*"?t*o:n.op==="/"?t/o:t%o}}}function un(n,s){let t=(r,i=r)=>{if(n.args.length<r||n.args.length>i)throw new u(`${n.fn}(\u2026) takes ${r===i?r:`${r} to ${i}`} argument${i===1?"":"s"}`,n.at)},o=r=>$(n.args[r],s),l=r=>{let i=o(r);if(typeof i!="string")throw new u(`${n.fn}(\u2026) needs a quoted name, like ${n.fn}('name')`,n.at);return i};switch(n.fn){case"out":case"in":{t(1,2);let r=(g,m)=>n.fn==="out"?a.graph.out(g,m):a.graph.in(g,m);if(n.args.length===2){let g=S(o(0),n.at,n.fn).nodes,m=l(1);return rn(g.flatMap(h=>{let N=r(h.id,m);return c(N.length+1,n.at),N}))}let i=l(0);if(!s)throw new u(`${n.fn}('${i}') needs a record to start from`,n.at);let p=r(s.id,i);return c(p.length,n.at),new y(p)}case"all":{t(1,2);let r=a.graph.nodesOfKind(l(0),{archived:n.args.length===2?o(1):!1});return c(r.length,n.at),new y(r)}case"archived":return t(0,1),en(n.args.length===1?o(0):s);case"count":return t(1),S(o(0),n.at,"count").nodes.length;case"exists":return t(1),S(o(0),n.at,"exists").nodes.length>0;case"every":case"some":{t(2);let r=S(o(0),n.at,n.fn);c(r.nodes.length,n.at);let i=p=>R(T(p,n.args[1]),n.at,`the condition in ${n.fn}(\u2026)`);return n.fn==="every"?r.nodes.every(i):r.nodes.some(i)}case"sum":case"min":case"max":{t(2);let r=S(o(0),n.at,n.fn);c(r.nodes.length,n.at);let i=n.args[1],p=i.t==="lit"&&typeof i.value=="string"?i.value:void 0,g=i.t==="ident"?`'${i.name}'`:p!==void 0?`'${p}'`:"\u2026",m=r.nodes.map(h=>i.t==="ident"?E(h,i.name,n.at):p!==void 0?E(h,p,n.at):T(h,i)).filter(h=>{if(h===null)return!1;if(typeof h!="number")throw new u(`${n.fn}(\u2026, ${g}) needs a number for each member, and found ${w(h)}`,n.at);return!0});return n.fn==="sum"?m.reduce((h,N)=>h+N,0):m.length===0?null:n.fn==="min"?Math.min(...m):Math.max(...m)}case"fact":{t(1);let r=l(0),i=a.kinds.get(gn)?.computed?.get(r);if(!i)throw new u(`no fact is called "${r}"`,n.at);return H(null,r,i,n.at)}case"first":return t(1),S(o(0),n.at,"first").nodes[0]??null;case"sort":{t(2,3);let r=S(o(0),n.at,"sort"),i=n.args.length===3?o(2):"asc";if(i!=="asc"&&i!=="desc")throw new u("sort(\u2026) goes 'asc' or 'desc'",n.at);let p=r.nodes.length;c(p+p*Math.ceil(Math.log2(p+1)),n.at);let g=r.nodes.map((h,N)=>({node:h,i:N,key:T(h,n.args[1])})),m=i==="desc"?-1:1;return g.sort((h,N)=>Y(h.key,N.key,m,n.at)||h.i-N.i),new y(g.map(h=>h.node))}case"either":{if(n.args.length<1)throw new u("either(\u2026) takes at least one argument",n.at);for(let r=0;r<n.args.length;r++){let i=o(r);if(i!==null&&!(i instanceof y&&i.nodes.length===0))return i}return null}case"present":{t(1);let r=o(0);return r===null||r===""?!1:Array.isArray(r)?r.length>0:r instanceof y?r.nodes.length>0:!0}case"len":{t(1);let r=o(0);if(r===null)return 0;if(typeof r=="string"||Array.isArray(r))return r.length;if(r instanceof y)return r.nodes.length;throw new u(`len(\u2026) needs a word or a list, and was given ${w(r)}`,n.at)}case"contains":case"startsWith":{t(2);let r=o(0),i=o(1);if(r===null||i===null)return!1;if(n.fn==="contains"&&Array.isArray(r))return r.some(m=>O(m,i));let p=V(r,n.at,n.fn),g=V(i,n.at,n.fn);return n.fn==="contains"?p.toLowerCase().includes(g.toLowerCase()):p.startsWith(g)}case"lower":{t(1);let r=V(o(0),n.at,"lower");return r===null?null:r.toLowerCase()}case"today":return t(0),d;case"now":return t(0),b;case"date":{t(1);let r=D(o(0),n.at,"date");return r===null?null:new Date(r).toISOString().slice(0,10)}case"days":case"hours":{t(2);let r=D(o(0),n.at,n.fn),i=D(o(1),n.at,n.fn);if(r===null||i===null)return null;let p=(i-r)/(n.fn==="days"?864e5:36e5);return n.fn==="days"?Math.round(p):p}case"round":{t(1,2);let r=o(0);if(r===null)return null;if(typeof r!="number")throw new u(`round(\u2026) needs a number, and was given ${w(r)}`,n.at);let i=n.args.length===2?o(1):0;if(typeof i!="number"||!Number.isInteger(i)||i<0||i>12)throw new u("round(\u2026, places) takes a whole number of places from 0 to 12",n.at);let p=10**i,g=Math.sign(r)*Math.round(Math.abs(r)*p*(1+Number.EPSILON))/p;return Object.is(g,-0)?0:g}case"if":return t(3),R(o(0),n.at,"the condition in if(\u2026)")?o(1):o(2);default:throw new u(`"${n.fn}" is not a function the rule language knows`,n.at)}}function Y(n,s,t,o){if(n===null||s===null)return n===s?0:n===null?1:-1;if(Array.isArray(n)&&Array.isArray(s)){for(let r=0;r<Math.max(n.length,s.length);r++){let i=Y(n[r]??null,s[r]??null,t,o);if(i!==0)return i}return 0}let l=r=>typeof r=="number"||typeof r=="string"||typeof r=="boolean"?typeof r:w(r);if(l(n)!==l(s)||typeof n=="object"||typeof s=="object")throw new u(`sort(\u2026) cannot put ${w(n)} and ${w(s)} in order`,o);return typeof n=="string"?t*(n<s?-1:n>s?1:0):t*(Number(n)-Number(s))}return $(e,a.subject)}var Mn=["out","in","all","count","exists","every","some","sum","min","max","present","len","contains","startsWith","lower","today","now","date","days","hours","if","first","sort","either","fact","archived","round"];var On=(e,a,f,c)=>({severity:"error",code:e,path:a,message:f,...c?{fix:c}:{}}),Gn=(e,a,f,c,d)=>({severity:"warning",code:e,path:a,message:f,...c?{fix:c}:{},...d&&d.length>0?{edits:d}:{}}),En=e=>e.some(a=>a.severity==="error");function Tn(e){return e.map(a=>`${a.severity==="error"?"\u2717":a.severity==="warning"?"!":"\xB7"} ${a.path||"(document)"}: ${a.message}${a.fix?` \u2014 ${a.fix}`:""}${(a.edits??[]).map(f=>`
|
|
2
|
-
edit: ${JSON.stringify(f)}`).join("")}`).join(`
|
|
3
|
-
`)}var Un=["money","percent","date","time","datetime","relative","upper","lower","count","words","and","plural","excerpt"],yn={getNode:()=>{},allNodes:()=>[],allEdges:()=>[],nodesOfKind:()=>[],edgesOfKind:()=>[],out:()=>[],in:()=>[],neighbors:()=>[],has:()=>!1};function Pn(e,a,f,c=[],d,b=L){return q(e,a,f,c,d,b)}var hn=(e,a)=>e.capital?I(a):a,mn=new Set(["words","plural","relative"]);function In(e,a){let f=e[0];return!f||f.text!==void 0||!f.format||!mn.has(f.format)?a:/^[a-z][a-z'’-]*(?=\s|$|[,.;:!?])/.test(a)?I(a):a}function wn(e){return e?a=>{let f=e.tryDefinition(a.kind)?.label;return f?f(a):L(a)}:L}var sn=["zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],dn=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"];function $n(e,a){return!Number.isInteger(e)||e<0||e>99?P(e,a):e<20?sn[e]:e%10===0?dn[e/10]:`${dn[Math.floor(e/10)]}-${sn[e%10]}`}function bn(e){return/[^aeiou]y$/i.test(e)?`${e.slice(0,-1)}ies`:/(s|x|z|ch|sh)$/i.test(e)?`${e}es`:`${e}s`}var L=e=>String(e.name??e.title??e.label??e.id);function q(e,a,f,c=[],d,b=L){if(a==="plural"){let k=e instanceof y?e.nodes.length:Array.isArray(e)?e.length:typeof e=="number"?e:null;return k===null||c[0]===void 0?"\u2014":k===1?c[0]:c[1]??bn(c[0])}if(e===null)return"\u2014";if(e instanceof y)return a==="count"?String(e.nodes.length):a==="and"?K(e.nodes.map(b)):e.nodes.map(b).join(", ");if(Array.isArray(e)){if(a==="count")return String(e.length);let k=e.map(x=>q(x,void 0,f,[],d,b));return a==="and"?K(k):k.join(", ")}if(typeof e=="object")return b(e);switch(a){case"words":return typeof e=="number"?$n(e,d?.locale):String(e);case"money":return typeof e=="number"?z(e,d):String(e);case"percent":return typeof e=="number"?P(e,d?.locale,{style:"percent",maximumFractionDigits:0}):String(e);case"upper":return String(e).toUpperCase();case"lower":return String(e).toLowerCase();case"excerpt":return tn(String(e),Number(c[0])||void 0);case"date":return G(U(String(e),d?.timeZone)??String(e).slice(0,10),d?.locale);case"time":return typeof e=="string"&&j.test(e)?G(e,d?.locale):Q(String(e),d?.locale,d?.timeZone);case"datetime":return typeof e=="string"&&j.test(e)?G(e,d?.locale):C(String(e),d?.locale,d?.timeZone);case"relative":{let k=U(String(e),d?.timeZone),x=k===void 0?Date.parse(String(e)):Date.parse(`${k}T00:00:00Z`);if(Number.isNaN(x))return String(e);let A=Math.round((x-Date.parse(`${f}T00:00:00Z`))/864e5);return A===0?"today":A===1?"tomorrow":A===-1?"yesterday":A>0?`in ${A} days`:`${-A} days ago`}default:return typeof e=="string"&&J.test(e)?G(e,d?.locale):typeof e=="string"&&B.test(e)?C(e,d?.locale,d?.timeZone):String(e)}}function Kn(e,a){let f=a.today??F(),c=a.name??wn(a.graph?.schema);return e.map(d=>{if(d.text!==void 0)return d.text;try{let b=an(d.expr,{graph:a.graph??yn,subject:a.node,kinds:a.kinds,today:f,budget:a.budget??500,...a.bindings?{bindings:a.bindings}:{}});return hn(d,q(b,d.format,f,d.formatArgs,a.money,c))}catch(b){if(b instanceof u)return"\u2014";throw b}}).join("")}export{y as a,Rn as b,gn as c,u as d,W as e,an as f,Mn as g,On as h,Gn as i,En as j,Tn as k,Un as l,yn as m,Pn as n,hn as o,In as p,wn as q,Kn as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as v,b as y,c as m}from"./chunk.MB7LKKUD.js";import"./chunk.WC3DENU4.js";import"./chunk.VNDKKTED.js";import{G as N,Sa as c,T as u,Ua as b}from"./chunk.4MP72LPR.js";import"./chunk.SDO3U72B.js";import{ad as f}from"./chunk.VSCIXAHN.js";import"./chunk.FQLNBIQ5.js";import{b as p}from"./chunk.AJZBJBMO.js";var l=p(N(),1);var t=p(u(),1);function z({notices:o,anchor:n,board:a}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(w,{notices:o.filter(i=>i.kind==="banner"),at:"top",anchor:n,board:a}),(0,t.jsx)(w,{notices:o.filter(i=>i.kind==="toast"),at:"foot",anchor:n,board:a})]})}var h={info:"var(--graview-accent)",good:"var(--graview-good)",warn:"var(--graview-warn)",bad:"var(--graview-bad)"};function w({notices:o,at:n,anchor:a,board:i}){let d=(0,l.useRef)(null),e=o.length>0;return(0,l.useLayoutEffect)(()=>{let r=d.current;if(!e||!r)return;if(typeof r.showPopover=="function"&&!c(r))try{r.showPopover()}catch{}let s=()=>(n==="top"?m:y)(r,a());s(),n==="foot"&&i.hold?.(()=>r.matches(":hover, :focus-within"));let S=b(r);addEventListener("resize",s),addEventListener("scroll",s,!0),n==="foot"&&addEventListener(v,s);let g=typeof ResizeObserver=="function"?new ResizeObserver(s):null;return g?.observe(r),()=>{if(S(),g?.disconnect(),removeEventListener("resize",s),removeEventListener("scroll",s,!0),removeEventListener(v,s),r.isConnected&&c(r))try{r.hidePopover()}catch{}}},[e,n,a,i]),e?(0,t.jsx)("div",{ref:d,popover:"manual",role:"region","aria-label":n==="top"?"Notices":"Messages","data-testid":n==="top"?"notices-banners":"notices-toasts","data-graview-offstage":"",style:{position:"fixed",inset:"auto",margin:0,padding:0,border:"none",background:"none",overflow:"visible",zIndex:f("toast"),width:"max-content",height:"auto",maxWidth:"min(560px, calc(100vw - 32px))",display:"grid",gap:8,color:"var(--graview-ink)"},children:o.map(r=>(0,t.jsx)(C,{notice:r,board:i},r.id))}):null}var T=o=>o.split(/\s+/).filter(Boolean).map(n=>n.replace(/^Meta\+/,"\u2318").replace(/^Control\+/,"Ctrl+").replace(/^Alt\+/,"Alt+")).join(" or ");function C({notice:o,board:n}){let a=o.tone??"info",i=[...o.action?[o.action]:[],...o.actions??[]],d=()=>n.dismiss(o.id);return(0,t.jsxs)("div",{"data-testid":"notice","data-kind":o.kind,"data-tone":a,style:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"8px 12px",padding:o.kind==="banner"?"8px 10px 8px 14px":"10px 12px 10px 14px",borderRadius:"var(--graview-radius, 12px)",borderTop:"1px solid var(--graview-edge)",borderRight:"1px solid var(--graview-edge)",borderBottom:"1px solid var(--graview-edge)",borderLeft:`3px solid ${h[a]}`,background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",fontSize:"0.875rem",lineHeight:1.45},children:[(0,t.jsx)("span",{"aria-hidden":"true",style:{width:7,height:7,borderRadius:999,flex:"0 0 auto",background:h[a]}}),(0,t.jsx)("span",{style:{flex:"1 1 16rem",minWidth:0},children:o.sentence}),i.length>0?(0,t.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:6},children:i.map((e,r)=>e.href!==void 0?(0,t.jsx)("a",{href:e.href,...e.target?{target:e.target,rel:"noopener"}:{},"data-testid":"notice-action",onClick:()=>{e.onSelect?.(),d()},style:{...x,...r===0?k:{}},children:e.label},e.label):(0,t.jsx)("button",{type:"button","data-testid":"notice-action",...e.keys?{"aria-keyshortcuts":e.keys,title:`${e.label} \u2014 ${T(e.keys)}`}:{},onClick:()=>{d(),e.onSelect?.()},style:{...x,...r===0?k:{}},children:e.label},e.label))}):null,(0,t.jsx)("button",{type:"button","data-testid":"notice-dismiss","aria-label":`Dismiss: ${o.sentence}`,title:"Dismiss",onClick:d,style:E,children:"\xD7"})]})}var x={display:"inline-flex",alignItems:"center",minHeight:28,padding:"2px 12px",borderRadius:9,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)",font:"inherit",fontWeight:500,textDecoration:"none",cursor:"pointer"},k={background:"var(--graview-accent)",borderColor:"var(--graview-accent)",color:"var(--graview-accent-ink)"},E={minWidth:28,minHeight:28,padding:0,border:"none",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",fontSize:"1rem",cursor:"pointer"};export{z as NoticeStacks};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk.AJZBJBMO.js";var O=e=>Array.isArray(e);function q(e){return e===!0||O(e)||typeof e.width!="number"?Y:e.width}function Q(e){if(e===!0)return()=>!0;if(O(e)){let a=new Set(e);return s=>a.has(s)}let t=new Map;for(let[a,s]of Object.entries(e))typeof s=="string"?t.set(a,new Set([s])):Array.isArray(s)&&t.set(a,new Set(s));return t.size===0?()=>!0:(a,s)=>t.get(a)?.has(s)??!1}var Y=1200,ee="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",J=100,I=4e7,B=e=>/^image\//i.test(e.type)&&!/^image\/svg/i.test(e.type);function P(e,t={}){let a={name:e.name,type:e.type,bytes:e.bytes};return/^video\//i.test(e.type)?{...a,...e.width!==void 0?{width:e.width}:{},...e.height!==void 0?{height:e.height}:{},...e.caption!==void 0?{caption:e.caption}:{},...e.duration!==void 0?{duration:e.duration}:{}}:B(e)?{...a,...e.width!==void 0?{width:e.width}:{},...e.height!==void 0?{height:e.height}:{},...e.caption!==void 0?{caption:e.caption}:{},...t.src!==void 0?{src:t.src}:{},...t.left!==void 0?{left:t.left}:{}}:a}var X=new Set(["id","kind","label"]),N=e=>{let t=e;return typeof t=="object"&&t!==null&&typeof t.href=="string"&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.bytes=="number"};function L(e,t){let a=s=>{let l;for(let[h,u]of Object.entries(s)){if(X.has(h))continue;let m=N(u)?t(u,s,h):Array.isArray(u)&&u.length>0&&u.every(N)?u.map(d=>t(d,s,h)):void 0;m!==void 0&&((l??={...s})[h]=m)}return l??s};return{...e,...e.node?{node:a(e.node)}:{},...e.nodes?{nodes:e.nodes.map(a)}:{}}}var F=e=>e.toLocaleString("en-US"),S=(e,t)=>`The picture "${e.name}" on ${t.label?`"${t.label}"`:"a record"}`;function U(e,t,a){let s=q(e),l=t?.pictureBytes??15e5,h=t?.picturesBytes??12e6,u=Math.round(s*Math.min(2,Math.max(1,a||1)));return{width:s,perFile:l,perView:h,need:u,reckon:d=>Math.min(l,Math.ceil(d.bytes*(d.width&&d.width>u?(u/d.width)**2:1))),chosen:Q(e)}}var j=(e,t)=>`${S(e,t)} is left out: at ${F(e.bytes)} bytes it is more than the host fetches for a view.`,C=(e,t,a,s)=>`${S(e,t)} is left out: the view ${a} is handed at most ${F(s)} bytes of pictures, and the pictures before it, in the order its records are handed, took them. A view that draws only some kinds' pictures says which ("pictures": ["<kind>"]).`;function te(e,t){let{perView:a,reckon:s,chosen:l}=U(t.pictures,t.limits,2),h=[],u=0;return{props:L(e,(d,f,b)=>{if(!B(d)||!l(f.kind,b))return P(d);let v=y=>(h.includes(y)||h.push(y),P(d,{left:y}));if(d.bytes>I)return v(j(d,f));let g=s(d);return u+g>a?v(C(d,f,t.view,a)):(u+=g,P(d,{src:t.standIn}))}),left:h}}function ne(e,t){let{width:a,perFile:s,perView:l,need:h,reckon:u,chosen:m}=U(t.pictures,t.limits,e.devicePixelRatio),d=t.shrink??((n,r,i)=>Z(e,n,r,i)),f=new Map,b=new Map,v=new Set,g=!1,y,k=-1/0,z=()=>{if(y!==void 0||g)return;let n=()=>{y=void 0,!g&&(k=e.performance.now(),t.moved())},r=k+J-e.performance.now();r<=0?(y=!0,queueMicrotask(n)):y=e.setTimeout(n,r)},$=n=>{v.has(n)||(v.add(n),t.onLeft?.(n))},x=n=>{n?.state==="ready"&&(b.delete(n.url),n.url.startsWith("blob:")&&e.URL.revokeObjectURL(n.url))},T=S,V,H=n=>new Promise(r=>{let i=new e.Image;i.onload=()=>r(!0),i.onerror=()=>r(!1),e.setTimeout(()=>r(!1),2e3),i.src=n}),M=n=>new Promise((r,i)=>{let w=new e.FileReader;w.onload=()=>r(String(w.result)),w.onerror=i,w.readAsDataURL(n)}),W=async n=>{if(t.as==="blob"){let i=e.URL.createObjectURL(n);return V??=H(i),await V?{url:i,drawn:i}:{url:i,drawn:await M(n)}}let r=await M(n);return{url:r,drawn:r}},E=(n,r,i)=>({state:"left",said:`${T(n,r)} could not be loaded for the view ${t.view}${i?`: the host answered ${i}.`:"."}${i&&!t.file?" A host that serves the app under a base says where a record's files are (file, on the view's definition).":""}`}),D=async(n,r)=>{let i=E(n,r),w=t.file?t.file(n.href):n.href;if(w===void 0)return i;let o=new e.URL(w,e.document.baseURI);if(o.origin!==e.location.origin||!/^https?:$/.test(o.protocol))return i;let p=await e.fetch(o.href,{credentials:"same-origin"}),A=(p.headers.get("content-type")??"").split(";")[0].trim();if(!p.ok)return E(n,r,String(p.status));if(!B({type:A}))return E(n,r,`${A||"no type"}, not a picture`);let c=new e.Blob([await p.arrayBuffer()],{type:A});if(c.size>I)return i;if(!(n.width!==void 0&&n.width<=h)||c.size>s){let G=await d(c,h,s).catch(()=>{});if(G)c=G;else if(c.size>s)return i}return c.size>s?{state:"left",said:`${T(n,r)} is left out: made as small as the ${F(a)} pixels across the view ${t.view} draws a picture at, it is still more than the ${F(s)} bytes one picture is handed.`}:{state:"ready",...await W(c)}},K=(n,r)=>{f.set(n.href,{state:"pending"}),D(n,r).then(i=>_(n.href,i),()=>_(n.href,{state:"left",said:`${T(n,r)} could not be loaded for the view ${t.view}.`}))},_=(n,r)=>{if(g||f.get(n)?.state!=="pending")return x(r);f.set(n,r),r.state==="ready"&&b.set(r.url,r.drawn),r.state==="left"&&$(r.said),z()};return{hand(n){if(g)return L(n,o=>P(o));let r=0,i=new Set,w=L(n,(o,p,A)=>{if(!B(o)||!m(p.kind,A))return P(o);i.add(o.href);let c=f.get(o.href);if(c?.state==="left")return P(o,{left:c.said});if(!c&&o.bytes>I)return c={state:"left",said:j(o,p)},f.set(o.href,c),$(c.said),P(o,{left:c.said});let R=u(o);if(r+R>l){let G=C(o,p,t.view,l);return $(G),P(o,{left:G})}return r+=R,c||K(o,p),P(o,c?.state==="ready"?{src:c.url}:{})});for(let[o,p]of f)i.has(o)||(x(p),f.delete(o));return w},drawn:n=>b.get(n),waiting:()=>y!==void 0||[...f.values()].some(n=>n.state==="pending"),dispose(){g=!0,y!==void 0&&y!==!0&&e.clearTimeout(y);for(let n of f.values())x(n);f.clear(),b.clear()}}}async function Z(e,t,a,s){if(typeof e.createImageBitmap!="function")return;let l=await e.createImageBitmap(t);try{if(l.width<=a&&t.size<=s)return t;let h=Math.min(1,a/l.width),u=Math.max(1,Math.round(l.width*h)),m=Math.max(1,Math.round(l.height*h)),d=e.document.createElement("canvas");d.width=u,d.height=m;let f=d.getContext("2d");if(!f)return;f.drawImage(l,0,0,u,m);let b=y=>new Promise(k=>d.toBlob(k,y,.85)),v=/^image\/(jpeg|webp|png)$/i.test(t.type)?t.type:"image/png",g=await b(v);return g&&g.size<=s?g:await b("image/jpeg")??g??void 0}finally{l.close()}}export{J as PICTURES_SETTLE_MS,I as PICTURE_FETCH_BYTES,ee as PICTURE_STAND_IN,Y as PICTURE_WIDTH,ne as createGuestPictures,P as guestFileOf,L as handFiles,B as isGuestPicture,U as pictureBudget,q as pictureWidthOf,Q as picturesChosen,te as standInPictures};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as f}from"./chunk.3V4WP7RY.js";import"./chunk.LLYRFVIN.js";import"./chunk.YFSBVZTG.js";import"./chunk.G4YJPKRG.js";import{l as g}from"./chunk.3UOKUF5Z.js";import"./chunk.Q355UPFG.js";import"./chunk.PXQVXBNG.js";import"./chunk.MVWC3VR3.js";import"./chunk.CC5BJH5A.js";import"./chunk.CFKZXLXS.js";import"./chunk.Y5C4RXG7.js";import"./chunk.7MHCGVGM.js";import"./chunk.FRYBMS3W.js";import"./chunk.LQVAABPS.js";import"./chunk.NGTRL5U4.js";import"./chunk.3MOJF7BA.js";import"./chunk.LZIBQ3VX.js";import"./chunk.YZ7FUKAL.js";import"./chunk.KDRLUBVF.js";import"./chunk.BQIHNT7C.js";import"./chunk.TAT2IQUR.js";import"./chunk.3XGA65Y3.js";import"./chunk.BYKD5RLA.js";import"./chunk.2K4TT2BV.js";import"./chunk.VUBNBTJP.js";import"./chunk.BJUUSIQY.js";import"./chunk.ZP5RT2EK.js";import"./chunk.VZJWJ5XM.js";import"./chunk.XOZU4OFA.js";import"./chunk.GLWSVSQL.js";import"./chunk.MB7LKKUD.js";import"./chunk.WVUJXDXZ.js";import"./chunk.7VKSXGTX.js";import"./chunk.TY4GQJKC.js";import"./chunk.6ZQAR5ZA.js";import"./chunk.W3W54DSX.js";import"./chunk.PI44XMY2.js";import"./chunk.KGW75Z5L.js";import"./chunk.GZHZLJBF.js";import"./chunk.IOK4GVJC.js";import"./chunk.OJGHDWI6.js";import"./chunk.TLJOZSDD.js";import"./chunk.MSWWWLEA.js";import"./chunk.UITT6JWW.js";import"./chunk.A5PDXNY6.js";import"./chunk.WC3DENU4.js";import"./chunk.VNDKKTED.js";import{G as b,T as h}from"./chunk.4MP72LPR.js";import"./chunk.SDO3U72B.js";import{Zd as n}from"./chunk.VSCIXAHN.js";import"./chunk.FQLNBIQ5.js";import{b as t}from"./chunk.AJZBJBMO.js";var m=t(b(),1),a=t(h(),1);function P({store:c,auto:y,brand:i,views:u,presence:s,steering:r,overview:o,scope:d,titleLevel:w=2,quickAsk:l,props:e}){let v=(0,m.useMemo)(()=>g({scope:`.${d}`}),[d]);return(0,a.jsxs)("div",{"data-embed-content":"",style:y?{flex:"0 0 auto",background:"var(--graview-ground)"}:{flex:"1 1 auto",minHeight:0,overflow:"auto",background:"var(--graview-ground)"},children:[(0,a.jsx)("style",{children:v}),(0,a.jsx)("div",{"data-embed-measure":"",style:{display:"flow-root"},children:(0,a.jsx)(f,{context:{store:c,embedded:!0,...e.bar!==!1?{barAbove:!0}:{},...o?{overview:o}:{},titleLevel:w,views:u,settings:e.app.settings??[],app:e.app,...s?{presence:s}:{},...i?{brand:i}:{},...e.locale?{locale:e.locale}:{},...e.timeZone?{timeZone:e.timeZone}:{},...e.principal?{principal:e.principal}:{},...e.seats?{seats:e.seats}:{},...e.people?{people:e.people}:{},...e.subscriptions?{subscriptions:e.subscriptions}:{},dismissals:e.dismissals,whileAway:e.whileAway,...e.signIn?{signIn:e.signIn}:{},...l!==void 0?{quickAsk:l}:{}},...e.pages?{registry:e.pages}:{},...r?{steering:r}:{},...e.routing==="address"?n(e.basePath)===""?{}:{basename:n(e.basePath)}:{initialPath:e.path??"/"},...e.path!==void 0?{path:e.path}:{},...e.hrefOf?{hrefOf:e.hrefOf}:e.routing==="address"?{}:{hrefOf:!1},...e.onNavigate?{onNavigate:e.onNavigate}:{}})})]})}export{P as PagesContent};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{a as k}from"./chunk.G4JJXA63.js";import{a as Z}from"./chunk.67U6M7OV.js";import{a as Y}from"./chunk.6C2MHWSX.js";import{a as X}from"./chunk.TY4GQJKC.js";import{c as _}from"./chunk.PI44XMY2.js";import{Kd as T,Md as H,Nd as P,Od as V,rb as J,sb as U}from"./chunk.VSCIXAHN.js";var O=n=>"failed"in n;function fn(n,e){let r=n.schema.kinds,t=n.policy?.sees;if(!t?.length||U(e))return{kinds:r};let o=J(e).roles??[],s=new Set(t.filter(i=>i.roles==="*"||o.some(a=>i.roles.includes(a))).flatMap(i=>i.kinds));return{kinds:r.filter(i=>s.has(i))}}function E(n,e){if(!e)return n;let r=new Set(e.kinds.filter(s=>n.tryDefinition(s)!==void 0));if(r.size===n.kinds.length)return n;let t=new Map,o=s=>{if(r.has(s)){if(!t.has(s)){let i=n.tryDefinition(s),a=Object.fromEntries(Object.entries(i?.edges??{}).flatMap(([l,d])=>{if(d.to==="*")return[[l,d]];let c=d.to.filter(u=>r.has(u));return c.length>0?[[l,{...d,to:c}]]:[]}));t.set(s,{...i,edges:a})}return t.get(s)}};return{...n,definitions:n.definitions.filter(s=>r.has(s.kind)),kinds:n.kinds.filter(s=>r.has(s)),tryDefinition:o,definition:s=>{let i=o(s);if(!i)throw new Error(`Unknown node kind "${s}"`);return i}}}var gn=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),p=n=>gn(n).replace(/[-_]+/g," ").trim();function x(n){let e=[];for(let t of n.kinds){let o=n.tryDefinition(t);if(!o)continue;let s=o.display?.labels??{},i=Object.entries(o.fields?.shape??{}).filter(([d])=>d!=="id"&&d!=="kind").map(([d,c])=>{let u=X(c);return{name:d,type:u?.type,...u?.options?{options:u.options}:{},words:(s[d]??p(d)).toLowerCase()}}),a=Object.entries(o.edges??{}).map(([d,c])=>({name:d,from:t,to:c.to==="*"?n.kinds.filter(u=>u!==t):c.to,words:p(d)})),l=(o.plural??`${p(t)}s`).toLowerCase();e.push({kind:t,plural:l,noun:(o.noun??p(t)).toLowerCase(),fields:i,roles:o.fieldRoles??{},edges:a})}let r=new Map(e.map(t=>[t.kind,t]));return{schema:n,kinds:e,info:t=>r.get(t)}}var $=(n,e)=>e===void 0?void 0:n.fields.find(r=>r.name===e),R=n=>n?.type==="date"||n?.type==="datetime",K=n=>n?.type==="number"||n?.type==="integer"||n?.type==="duration",rn=n=>` ${n.toLowerCase().replace(/[“”"’‘]/g,"'").replace(/[^\p{L}\p{N}' -]+/gu," ").replace(/\s+/g," ").trim()} `,A=(n,e)=>n.includes(` ${e} `),L=n=>n.endsWith("ies")?`${n.slice(0,-3)}y`:n.endsWith("ses")?n.slice(0,-2):n.endsWith("s")?n.slice(0,-1):n;function yn(n,e){let r=[];for(let t of e.kinds){let o=new Set([t.plural,t.noun,`${t.noun}s`,p(t.kind),`${p(t.kind)}s`]),s=-1;for(let i of o){let a=n.indexOf(` ${i} `);a>=0&&(s<0||a<s)&&(s=a)}s>=0&&r.push({info:t,at:s})}return r.sort((t,o)=>t.at-o.at).map(t=>t.info)}function I(n,e,r){let t=e.trim().toLowerCase();if(t.length===0)return;let o=n.fields.filter(s=>!r||r(s));return o.find(s=>s.words===t||p(s.name)===t||s.name.toLowerCase()===t)??o.find(s=>s.words===L(t)||p(s.name)===L(t))??o.find(s=>t.split(" ").some(i=>i.length>2&&(s.words.split(" ").includes(i)||s.words.split(" ").includes(L(i)))))}function sn(n,e,r){let t=e.trim().toLowerCase();if(t.length!==0)return n.edges.find(o=>o.words===t||o.name.toLowerCase()===t)??n.edges.find(o=>o.to.some(s=>{let i=r.info(s);return i!==void 0&&(i.noun===L(t)||i.plural===t||p(s)===L(t))}))??n.edges.find(o=>t.split(" ").some(s=>s.length>2&&o.words.split(" ").includes(s)))}function z(n){return/ (?:grouped |group |split |sorted |organi[sz]ed )?by ([\p{L}\p{N}' -]+?)(?= (?:and|with|for|in|on|only|where|from|this|that|as|sorted|grouped) |\s*$)/u.exec(n)?.[1]?.trim()}var mn=/\bwho\b.*\b(covers?|cover|tends?|owns?|handles?|does|works? on|looks? after|is on|is assigned|staffs?|runs?)\b|\bcoverage\b|\bmatrix\b|\bwho covers\b/,pn=/\bcalendar\b|\bmonth\b|\bagenda\b|\bschedule\b|\bdue\b|\bdeadlines?\b|\bdates?\b|\bwhen\b/,bn=/\btimeline\b|\bover time\b|\bgantt\b|\bspans?\b|\bweek\b/,hn=/\bboard\b|\bkanban\b|\bcolumns?\b|\bpipeline\b|\bstages?\b|\bstatus\b/,wn=/\blaid out\b|\blayout\b|\bseating\b|\bwhere (?:they|it|each) (?:sits?|lies?|stands?)\b|\bfloor\b/,kn=/\bplan\b|\bmap\b|\bregions?\b/,$n=/\blist\b|\btable\b|\bgroup(?:ed)? by\b|\bsort(?:ed)? by\b|\bonly\b|\bjust the\b/;function Sn(n){let e=[];return/\blist\b|\btable\b/.test(n)&&e.push("blocks"),mn.test(n)&&e.push("coverage"),wn.test(n)&&e.push("board"),(/\bfloor plan\b/.test(n)||kn.test(n))&&e.push("plan"),bn.test(n)&&e.push("timeline"),pn.test(n)&&e.push("calendar"),hn.test(n)&&e.push("columns"),$n.test(n)&&!e.includes("blocks")&&e.push("blocks"),e.length===0&&z(n)&&e.push("columns"),e}var on=n=>{let e=r=>r?` and not ${r}`:"";if(/\boverdue\b|\blate\b|\bpast due\b/.test(n))return{cond:(r,t)=>`days(today(), ${r}) < 0${e(t)}`,says:r=>`overdue by ${r.words}`};if(/\btoday\b/.test(n))return{range:"day",cond:r=>`days(today(), ${r}) == 0`,says:r=>`with ${r.words} today`};if(/\bthis week\b|\bnext 7 days\b|\bnext week\b/.test(n))return{range:"week",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 6`,says:r=>`with ${r.words} in the next week`};if(/\bthis month\b|\bnext 30 days\b|\bnext month\b/.test(n))return{range:"month",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 30`,says:r=>`with ${r.words} in the next month`};if(/\blast month\b|\bpast month\b/.test(n))return{range:"month",cond:r=>`days(today(), ${r}) >= -30 and days(today(), ${r}) <= 0`,says:r=>`with ${r.words} in the last month`};if(/\bthis year\b/.test(n))return{range:"year",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 365`,says:r=>`with ${r.words} in the next year`};if(/\bquarter\b/.test(n))return{range:"quarter",cond:r=>`days(today(), ${r}) >= 0 and days(today(), ${r}) <= 91`,says:r=>`with ${r.words} in the next quarter`}},M=n=>{if(/\bagenda\b|\bin order\b/.test(n))return"agenda";if(/\btoday\b|\bday\b/.test(n))return"day";if(/\bweek\b/.test(n))return"week";if(/\bquarter\b/.test(n))return"quarter";if(/\byears\b/.test(n))return"years";if(/\byear\b/.test(n))return"year";if(/\bmonth\b/.test(n))return"month"},Q=/^(user|person|people|member|staff|gardener|volunteer|owner|agent|employee|worker|team|player|customer|client|contact|party|attendee|guest)s?$/,j=class extends Error{},b=n=>{throw new j(n)};function Dn(n,e){let r=n.fields.filter(s=>s.type==="enum");if(e){let s=I(n,e);if(s&&s.type==="enum")return s;s&&b(`${n.plural}' ${s.words} is not a choice, so it has no columns`)}let t=$(n,n.roles.status??n.roles.column);if(t?.type==="enum")return t;let o=r.find(s=>/^(status|stage|state|phase)$/.test(s.name));return o||(r[0]?r[0]:b(`${n.plural} have no choice field to put in columns`))}function nn(n,e){let r=n.fields.filter(R),t=l=>{let d=$(n,n.roles[l]);return R(d)?d:void 0},s=r.find(l=>A(e,l.words)||A(e,p(l.name)))??t("start")??r.find(l=>/^(due|date|on|at|start|starts|begins|from|sown|when)/i.test(l.name))??r[0];if(!s)return b(`no date field on ${n.plural}`);let i=t("end")??r.find(l=>l!==s&&/^(end|ends|until|to|finish|finished|harvested|due|closes|through)/i.test(l.name)),a=n.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));return{start:s,...i&&i!==s?{end:i}:{},...a?{done:a}:{}}}function an(n){let e=$(n,n.roles.start),r=$(n,n.roles.end),t=$(n,n.roles.column??n.roles.day??n.roles.columns);if(K(e)&&K(r)&&t?.type==="enum")return{start:e,end:r,column:t}}function vn(n,e,r,t){let o=[];for(let i of n.kinds)for(let a of i.edges)for(let l of a.to){let d=n.info(l);if(!d||d.kind===i.kind)continue;let c=0;e.includes(i)&&(c+=4),e.includes(d)&&(c+=4),(Q.test(d.kind)||Q.test(d.noun))&&(c+=3),t&&(a.words.includes(t)||d.noun===L(t))&&(c+=5),a.words.split(" ").some(u=>u.length>2&&r.includes(` ${u}`))&&(c+=2),o.push({rows:i,across:d,link:a,score:c})}let s=o.sort((i,a)=>a.score-i.score)[0];return s||b(e[0]?`${e[0].plural} are joined to nothing else, so there is no who-covers-what to draw`:"nothing here is joined to anything else, so there is no who-covers-what to draw")}function dn(n,e,r,t,o){let s=z(t);switch(n){case"columns":{if(s){let i=I(e,s);if(!i||i.type!=="enum"){let a=sn(e,s,r);if(a){let l=r.info(a.to[0]);return{lens:"coverage",kind:e.kind,across:l.kind,link:a.name}}}}return{lens:"columns",kind:e.kind,column:Dn(e,s).name}}case"calendar":{let i=nn(e,t),a=M(t);return{lens:"calendar",kind:e.kind,start:i.start.name,...i.end?{end:i.end.name}:{},...i.done?{done:i.done.name}:{},...a?{range:a}:{}}}case"timeline":{let i=an(e);if(i&&!/\bdates?\b|\bdue\b|\bdeadlines?\b|\bmonths?\b|\byears?\b/.test(t))return{lens:"timeline",kind:e.kind,start:i.start.name,end:i.end.name,column:i.column.name};let a=nn(e,t);return{lens:"calendar",kind:e.kind,start:a.start.name,...a.end?{end:a.end.name}:{},...a.done?{done:a.done.name}:{},range:M(t)??"quarter"}}case"coverage":{let i=vn(r,o,t,s);return{lens:"coverage",kind:i.rows.kind,across:i.across.kind,link:i.link.name}}case"board":{let i=$(e,e.roles.x)??e.fields.find(c=>c.name==="x"),a=$(e,e.roles.y)??e.fields.find(c=>c.name==="y");if(!K(i)||!K(a))return b(`${e.plural} have no x and y to be laid out by`);let d=r.kinds.flatMap(c=>c.edges.filter(u=>u.to.includes(e.kind)&&c.kind!==e.kind))[0]??e.edges[0];return d?{lens:"board",kind:e.kind,x:i.name,y:a.name,fill:d.name,...d.from!==e.kind?{fillFrom:"occupant"}:{}}:b(`nothing is joined to ${e.plural} to fill them`)}case"plan":{let i=$(e,e.roles.outline)??e.fields.find(a=>a.name==="outline");return i?{lens:"plan",kind:e.kind,outline:i.name}:b(`${e.plural} have no outline to draw a plan from`)}case"blocks":{let i={lens:"blocks",kind:e.kind,as:/\bcards?\b/.test(t)?"card":"row"},a=/ group(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|sorted|with)|\s*$)/u.exec(t)?.[1]??(s&&!/ sort(?:ed)? by /.test(t)?s:void 0);if(a){let c=I(e,a);if(!c||c.type!=="enum")return b(c?`${e.plural}' ${c.words} is not a choice, so they cannot be grouped by it`:`${e.plural} have nothing called ${a} to group by`);i.group=c.name}let l=/ sort(?:ed)? by ([\p{L}\p{N} -]+?)(?= (?:and|only|grouped|with)|\s*$)/u.exec(t)?.[1];if(l){let c=I(e,l);if(!c)return b(`${e.plural} have nothing called ${l} to sort by`);i.sort={by:c.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}let d=q(e,t);return d.length>0&&(i.where=d),i}}}function q(n,e){let r=[],t=on(e);if(t){let o=n.fields.filter(R),s=$(n,n.roles.start),i=o.find(l=>A(e,l.words))??(R(s)?s:void 0)??o[0];(!i||!R(i))&&b(`no date field on ${n.plural}`);let a=n.fields.find(l=>l.type==="boolean"&&/^(done|finished|complete|completed|closed)$/.test(l.name));r.push({expr:t.cond(i.name,/\boverdue\b|\blate\b|\bpast due\b/.test(e)?a?.name:void 0),says:t.says(i)})}if(/\bonly\b|\bjust\b|\bthat are\b|\bwhich are\b/.test(e)){for(let o of n.fields){if(o.type!=="enum")continue;let s=o.options?.find(i=>A(e,i.toLowerCase())||A(e,p(i)));s&&r.push({expr:`${o.name} == '${s.replace(/'/g,"")}'`,says:`that are ${p(s)}`})}if(/\bnot done\b|\bundone\b|\bunfinished\b|\bopen ones\b|\bstill to do\b/.test(e)){let o=n.fields.find(s=>s.type==="boolean"&&/^(done|finished|complete|completed)$/.test(s.name));o&&r.push({expr:`not ${o.name}`,says:`not ${o.words}`})}}return r}var B={columns:"A board",calendar:"A calendar",timeline:"A timeline",coverage:"A grid",board:"A layout",plan:"A plan",blocks:"A list",reach:"A picture"};function Rn(n,e){let r=e.info(n.kind),t=o=>o?$(r,o)?.words??p(o):"";switch(n.lens){case"columns":return{title:`${k(r.plural)} by ${t(n.column)}`,detail:`of ${r.plural} by ${t(n.column)}`};case"calendar":{let o=n.range??"month";if(o==="agenda")return{title:`${k(r.plural)} in date order`,detail:`of ${r.plural} in order of ${t(n.start)}`};let s=o==="years"?"year":o;return{title:`${k(r.plural)} by ${s}`,detail:`of ${r.plural} by ${t(n.start)}, a ${s} at a time`}}case"timeline":return{title:`${k(r.plural)} over the ${t(n.column)}`,detail:`of ${r.plural} from ${t(n.start)} to ${t(n.end)}, by ${t(n.column)}`};case"coverage":{let o=e.info(n.across);return{title:`${k(r.plural)} by ${o.noun}`,detail:`of which ${o.noun} covers which ${r.noun}`}}case"board":return{title:`${k(r.plural)} where they stand`,detail:`of ${r.plural} where they stand`};case"plan":return{title:`${k(r.plural)} on a plan`,detail:`of ${r.plural}`};default:{let o=[n.where?.map(s=>s.says).join(" and "),n.group?`by ${t(n.group)}`:void 0,n.sort?`in order of ${t(n.sort.by)}`:void 0].filter(s=>!!s);return{title:[k(r.plural),...o].join(" "),detail:[`of ${r.plural}`,...o].join(" ")}}}}function An(n,e){let r={title:e,on:n.kind};switch(n.lens){case"columns":return{name:"columns",...r,bindings:{[n.kind]:{column:n.column}}};case"calendar":return{name:"calendar",...r,bindings:{[n.kind]:{start:n.start,...n.end?{end:n.end}:{},...n.done?{done:n.done}:{}}},...n.range?{options:{range:n.range}}:{}};case"timeline":return{name:"timeline",...r,bindings:{[n.kind]:{start:n.start,end:n.end,column:n.column}}};case"coverage":return{name:"coverage",...r,bindings:{rows:{kind:n.kind},columns:{kind:n.across},link:{edge:n.link}}};case"board":return{name:"board",...r,bindings:{slots:{kind:n.kind},x:{field:n.x,on:"slots"},y:{field:n.y,on:"slots"},fill:{edge:n.fill}},...n.fillFrom?{options:{fillFrom:n.fillFrom}}:{}};case"plan":return{name:"plan",...r,bindings:{regions:{kind:n.kind},outline:{field:n.outline,on:"regions"}}};default:{let t=n.where?.length?` where ${n.where.map(s=>n.where.length>1?`(${s.expr})`:s.expr).join(" and ")}`:"",o={list:`all('${n.kind}')${t}`,as:n.as??"row"};return n.group&&(o.group=n.group),n.sort&&(o.sort=n.sort.direction?{by:n.sort.by,direction:n.sort.direction}:n.sort.by),o.empty="Nothing here yet.",{name:"blocks",...r,options:{blocks:[o]}}}}}function F(n,e){let{app:r}=e,t=s=>s.toLowerCase().replace(/[^\p{L}\p{N}]+/gu,"-").replace(/^-+|-+$/g,""),o=new Set(["home","overview",...Z(r,e.views?{views:e.views}:{}).map(s=>s.slug),...(r.lenses??[]).flatMap(s=>s.title?[t(s.title)]:[])]);if(!o.has(t(n)))return n;for(let s=2;;s++)if(!o.has(t(`${n} ${s}`)))return`${n} ${s}`}var en={title:[],headline:[],text:["tone"],figure:["as","currency","label"],list:["sort","limit","group","empty","as"],progress:["label"],group:["direction"],when:["show"],divider:[]};function Ln(n,e){if(!Array.isArray(e)||e.length===0)return"it has no blocks to draw";if(e.length>40)return"it has more blocks than a place draws";let r=(i,a)=>{if(typeof i!="string"||i.trim()==="")return`its ${a} says nothing`;try{return _(i)}catch(l){return`its ${a} does not read: ${l instanceof Error?l.message.replace(/ \(at character.*$/,""):String(l)}`}},t=i=>{if(i.t==="where")return t(i.set);if(i.t==="call"&&i.fn==="all"){let a=i.args[0];return a?.t==="lit"&&typeof a.value=="string"?n.info(a.value)??null:void 0}},o=(i,a)=>{switch(i.t){case"lit":return;case"ident":return a&&!a.fields.some(l=>l.name===i.name)&&!a.edges.some(l=>l.name===i.name)?`${a.plural} have nothing called ${i.name}`:void 0;case"member":return o(i.object,a);case"list":return i.items.map(l=>o(l,a)).find(Boolean);case"unary":return o(i.operand,a);case"binary":return o(i.left,a)??o(i.right,a);case"where":{let l=t(i.set);return l===null?"Nothing by that name here":o(i.set,a)??o(i.filter,l??void 0)}case"call":return i.fn==="all"?t(i)===null?"Nothing by that name here":void 0:i.args.map(l=>o(l,a)).find(Boolean)}},s=(i,a)=>{if(a>4)return"its blocks nest deeper than a place draws";for(let l of i){if(!w(l))return"a block is not an object";let d=Object.keys(en).find(g=>g in l);if(!d)return`"${Object.keys(l)[0]??""}" is not a block a place draws`;let c=Object.keys(l).find(g=>g!==d&&g!=="key"&&!en[d].includes(g));if(c)return`a ${d} block takes no "${c}"`;let u=l[d];if(d==="list"||d==="figure"||d==="when"){if(d==="figure"&&u===!0)continue;let g=r(u,d);if(typeof g=="string")return g;let m=o(g,void 0);if(m)return m;if(d==="list"){let f=t(g);if(f==null)return f===null?"Nothing by that name here":"its list does not say which records it lists, like all('task')";for(let y of["group","sort"]){let h=l[y],S=typeof h=="string"?h:w(h)&&typeof h.by=="string"?h.by:void 0;if(h===void 0)continue;let D=S?f.fields.find(un=>un.name===S):void 0;if(!D)return`${f.plural} have nothing called ${String(S??h)} to ${y} by`;if(y==="group"&&D.type!=="enum")return`${f.plural}' ${D.words} is not a choice, so they cannot be grouped by it`}}if(d==="when"){let f=l.show;if(!Array.isArray(f))return"a when block shows a list of blocks";let y=s(f,a+1);if(y)return y}}else if(d==="group"){if(!Array.isArray(u))return"a group block holds a list of blocks";let g=s(u,a+1);if(g)return g}else{if(d!=="divider"&&typeof u!="string")return`a ${d} block says words`;if(typeof u=="string")for(let g of u.matchAll(/\{([^{}]*)\}/g)){let m=g[1].split(/\|(?![|])/)[0],f=r(m,`${d}'s braces`);if(typeof f=="string")return f;let y=o(f,void 0);if(y)return y}}}};return s(e,1)}function N(n,e,r){let t=E(n.schema,r),o=f=>({ok:!1,failed:`Couldn't draw that: ${f.replace(/\.$/,"")}.`});if(!P(e.name)||e.name==="reach")return o(`"${String(e.name)}" is not a picture the seat can draw; it draws ${H.filter(f=>f!=="reach").join(", ")}`);if(typeof e.title!="string"||e.title.trim().length===0||e.title.length>80)return o("it needs a title of a few words");if(typeof e.on!="string"||!t.tryDefinition(e.on))return o("Nothing by that name here");let s=T[e.name],i=e.bindings??{};if(s.binds==="fields")for(let[f,y]of Object.entries(i)){if(!t.tryDefinition(f))return o("Nothing by that name here");let h=Object.keys(t.tryDefinition(f).fields?.shape??{});for(let[S,D]of Object.entries(y??{}))if(typeof D!="string"||!h.includes(D))return o(`${p(f)} has no field "${String(D)}" for its ${S}`);for(let S of s.requiredRoles)if(!(S in(y??{})))return o(`a ${e.name} needs ${p(f)}'s ${S}`)}else if(s.binds==="entities")for(let f of s.requiredRoles){let y=i[f];if(!y)return o(`a ${e.name} needs its ${f}`);if(typeof y.kind=="string"&&!t.tryDefinition(y.kind))return o("Nothing by that name here")}let a={...n,schema:t,lenses:[...n.lenses??[],e]},l=a.lenses.length-1,d=V(a),c=`lenses.${l}`,u=d.findings.find(f=>f.path===c||f.path.startsWith(`${c}.`));if(u)return o(u.message.replace(/^"[^"]*" /,"it "));let g=d.undrawn.find(f=>f.index===l);if(g)return o(g.why);let m=d.drawn.find(f=>f.index===l);if(!m)return o("its bindings name something the app does not have");if(m.as==="overview")return o(`"${e.title}" is the scene's own address; give it another title`);if(e.name==="blocks"){let f=Ln(x(t),e.options?.blocks);if(f)return o(f)}return{ok:!0,drawn:m}}function G(n){return{op:"add-lens",title:n.title,lens:n.name,on:n.on,...n.bindings?{bindings:n.bindings}:{},...n.options?{options:n.options}:{}}}function In(n){return{op:"remove-lens",title:n.title,on:n.on}}var w=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function ln(n){let e=w(n)?n:{},r=String(e.lens??e.name??""),t=e.bindings,o=typeof e.on=="string"?e.on:w(t)&&T[r]?.binds==="fields"?Object.keys(t)[0]??"":"";return{name:r,title:typeof e.title=="string"?e.title.trim():"",on:o,...w(t)?{bindings:t}:{},...w(e.options)?{options:e.options}:{}}}function En(n){let e=o=>w(n.bindings?.[o])?n.bindings[o]:{},r=o=>typeof o=="string"?o:void 0,t=e(n.on);switch(n.name){case"columns":return r(t.column)?{lens:"columns",kind:n.on,column:t.column}:void 0;case"calendar":{let o=r(n.options?.range);return r(t.start)?{lens:"calendar",kind:n.on,start:t.start,...r(t.end)?{end:t.end}:{},...r(t.done)?{done:t.done}:{},...o?{range:o}:{}}:void 0}case"timeline":return r(t.start)&&r(t.end)&&r(t.column)?{lens:"timeline",kind:n.on,start:t.start,end:t.end,column:t.column}:void 0;case"coverage":{let o=w(n.bindings?.columns)?r(n.bindings.columns.kind):void 0,s=w(n.bindings?.link)?r(n.bindings.link.edge):void 0;return o&&s?{lens:"coverage",kind:n.on,across:o,link:s}:void 0}case"blocks":{let o=n.options?.blocks;if(!Array.isArray(o)||o.length!==1||!w(o[0]))return;let s=o[0],i=new RegExp(`^all\\('${n.on}'\\)(?: where (.+))?$`).exec(String(s.list??""));if(!i)return;let a=s.sort;return{lens:"blocks",kind:n.on,as:s.as==="card"?"card":"row",...typeof s.group=="string"?{group:s.group}:{},...typeof a=="string"?{sort:{by:a}}:w(a)&&typeof a.by=="string"?{sort:{by:a.by,...a.direction==="desc"?{direction:"desc"}:{}}}:{},...i[1]?{where:[{expr:i[1],says:"as asked"}]}:{}}}default:return}}function W(n,e,r,t,o){let s=x(E(n.schema,t)).info(e.on),i=En(e);return{title:e.title,said:`${B[e.name]??"A picture"} of ${s?.plural??p(e.on)}.`,kind:e.on,lens:e,drawn:r,edit:G(e),by:o,asks:[],...i?{recipe:i}:{}}}function tn(n){return{title:n.title,said:n.said,lens:{title:n.lens.title,lens:n.lens.name,on:n.lens.on,...n.lens.bindings?{bindings:n.lens.bindings}:{},...n.lens.options?{options:n.lens.options}:{}},edit:n.edit,by:n.by,check:"It draws, and graview check would take it."}}function C(n,e,r,t,o){let s=Rn(n,e),i=n.title??o??F(s.title,r),a=An(n,i),l=N(r.app,a,r.sight);return l.ok?{title:i,said:`${B[n.lens]} ${s.detail}.`,kind:n.kind,lens:a,drawn:l.drawn,edit:G(a),by:"template",asks:t,recipe:n}:{failed:l.failed,...r.lastGood?{lastGood:r.lastGood}:{}}}function Hn(n,e){let r=x(E(e.app.schema,e.sight)),t=r.info(n.kind);if(!t)return{failed:"Couldn't draw that: Nothing by that name here."};let o=n.lens==="blocks"&&!n.group&&!n.sort&&!n.where?.length&&n.title===void 0;return C(o?{...n,title:F(`Every ${t.noun}`,e)}:n,r,e,[])}function xn(n,e,r,t){if(r.length>0)return r;let o=i=>{switch(n){case"columns":return i.fields.some(a=>a.type==="enum");case"calendar":return i.fields.some(R);case"timeline":return an(i)!==void 0||i.fields.some(R);case"coverage":return i.edges.some(a=>a.to.some(l=>l!==i.kind));case"board":return i.fields.some(a=>a.name==="x")&&i.fields.some(a=>a.name==="y");case"plan":return i.fields.some(a=>a.name==="outline")||i.roles.outline!==void 0;default:return!0}};return[...e.kinds.filter(o)].sort((i,a)=>Number(a.fields.some(l=>A(t,l.words)))-Number(i.fields.some(l=>A(t,l.words))))}function On(n,e){let r=x(E(e.app.schema,e.sight)),t=rn(n),o=Sn(t);if(o.length===0)return;let s=yn(t,r),i;for(let a of o){let l=a==="coverage"?[s[0]??r.kinds[0]].filter(d=>!!d):xn(a,r,s,t);for(let d of l)try{let c=dn(a,d,r,t,s),u=C(c,r,e,[n]);if(!O(u))return u;i??=u.failed}catch(c){if(!(c instanceof j))throw c;i??=`Couldn't draw that: ${c.message}.`}l.length===0&&s.length===0&&(i??=`Couldn't draw that: nothing here has what ${B[a].toLowerCase()} needs.`)}return{failed:i??"Couldn't draw that: Nothing by that name here.",...e.lastGood?{lastGood:e.lastGood}:{}}}async function jn(n,e){let r=e.lastGood?{lastGood:e.lastGood}:{};if(n.trim().length===0)return{failed:"Say what you would like to see, like \u201Ca board of tasks by status\u201D.",...r};let t=On(n,e);if(t&&!O(t))return t;if(!e.complete)return t??{failed:"Couldn't draw that: drawing freely needs AI, which isn't on here. Ask for a board, a calendar, a timeline, a list or who covers what.",...r};let o=await cn(n,e,void 0);return O(o)&&t?t:o}async function Nn(n,e,r){let t={lastGood:n},o={...r,lastGood:n},s=x(E(r.app.schema,r.sight)),i=rn(e),a=s.info(n.kind),l=[...n.asks,e];if(!a)return{failed:"Couldn't change that: Nothing by that name here.",...t};let d=n.recipe,c=/^ (?:call|name|title) (?:it|this)? ?(.+?) $/.exec(i)??/ (?:call|name) it (.+?) $/.exec(i);try{if(c){let m=e.replace(/^.*?\b(?:call|name|title)\b\s*(?:it|this)?\s*/i,"").replace(/^["“']|["”']$/g,"").trim();if(m.length===0)return{failed:"Couldn't change that: say what to call it.",...t};let f={...n.lens,title:F(m,r)},y=N(r.app,f,r.sight);return y.ok?{...n,title:f.title,lens:f,drawn:y.drawn,edit:G(f),asks:l,...d?{recipe:{...d,title:f.title}}:{}}:{failed:y.failed,...t}}let g=/ as (?:a |an )?(board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)\b/.exec(i);if(g){let m=g[1]==="board"||g[1]==="kanban"?"columns":g[1]==="calendar"?"calendar":g[1]==="timeline"?"timeline":g[1]==="grid"?"coverage":g[1]==="plan"?"plan":g[1]==="layout"?"board":"blocks",f=dn(m,a,s,i,[a]),y=g[1]==="cards"?"card":g[1]==="rows"?"row":void 0,h=m==="blocks"&&d?.lens==="blocks"?{...d,...y?{as:y}:{}}:m==="blocks"&&d?.lens==="columns"?{...f,group:d.column,...y?{as:y}:{}}:f;return C(v(h),s,o,l)}if(d){let m=Kn(d,a,s,i);if(m)return C(m,s,o,l)}}catch(g){if(!(g instanceof j))throw g;return{failed:`Couldn't change that: ${g.message}.`,...t}}if(!r.complete)return{failed:"Couldn't change that: changing it freely needs AI, which isn't on here. Try \u201Cgroup by status\u201D, \u201Conly this month\u201D or \u201Cas a calendar\u201D.",...t};let u=await cn(e,o,n);return O(u)?u:{...u,asks:l}}var v=n=>{let{title:e,...r}=n;return r};function Kn(n,e,r,t){let o=/ (?:group(?:ed)?|split|organi[sz]ed?|put them|columns) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1]??(/^ by /.test(t)?z(t):void 0);if(o){let d=I(e,o);if(d?.type==="enum")return n.lens==="blocks"?{...v(n),group:d.name}:{lens:"columns",kind:n.kind,column:d.name};let c=sn(e,o,r);return c?{lens:"coverage",kind:n.kind,across:c.to[0],link:c.name}:b(d?`${e.plural}' ${d.words} is not a choice, so they cannot be grouped by it`:`${e.plural} have nothing called ${o} to group by`)}let s=/ (?:sort(?:ed)?|order(?:ed)?) by ([\p{L}\p{N} -]+?)(?= (?:and|only|with)|\s*$)/u.exec(t)?.[1];if(s){let d=I(e,s);return d?{...n.lens==="blocks"?v(n):{lens:"blocks",kind:n.kind,as:"row",...n.lens==="columns"?{group:n.column}:{}},sort:{by:d.name,.../\b(newest|latest|desc|descending|most)\b/.test(t)?{direction:"desc"}:{}}}:b(`${e.plural} have nothing called ${s} to sort by`)}if(/\b(?:all of them|everything|show all|clear the filter|no filter|without the filter)\b/.test(t)){if(n.lens!=="blocks"||!n.where)return b("it already shows all of them");let{where:d,...c}=v(n);return c}let i=on(t);if(i&&n.lens==="calendar"&&i.range)return{...v(n),range:i.range};if(i&&n.lens==="calendar"&&!i.range)return{lens:"blocks",kind:n.kind,as:"row",sort:{by:n.start},where:q(e,t)};let a=q(e,t);if(a.length>0){let d=n.lens==="blocks"?v(n):{lens:"blocks",kind:n.kind,as:"row",...n.lens==="columns"?{group:n.column}:{}};return{...d,where:[...d.where??[],...a]}}let l=n.lens==="calendar"?M(t):void 0;if(l)return{...v(n),range:l}}function Cn(n){return n.kinds.map(e=>{let r=e.fields.map(s=>`${s.name} (${s.type??"value"}${s.options?`: ${s.options.join(" | ")}`:""})`).join(", "),t=e.edges.map(s=>`${s.name} \u2192 ${s.to.join(" | ")}`).join(", "),o=Object.entries(e.roles).map(([s,i])=>`${s}=${i}`).join(", ");return`- ${e.kind} ("${e.plural}"): ${r}${t?`; relations: ${t}`:""}${o?`; roles: ${o}`:""}`}).join(`
|
|
2
|
-
`)}var Fn=['columns \u2014 a board, records in columns by one choice field: {"lens": "columns", "on": K, "bindings": {K: {"column": "<enum field>"}}}','calendar \u2014 records on a calendar by a date: {"lens": "calendar", "on": K, "bindings": {K: {"start": "<date field>", "end"?: "<date field>", "done"?: "<boolean field>"}}, "options": {"range"?: "day" | "week" | "month" | "quarter" | "year" | "agenda"}}','timeline \u2014 minutes of a day in columns: {"lens": "timeline", "on": K, "bindings": {K: {"start": "<number field>", "end": "<number field>", "column": "<enum field>"}}}','coverage \u2014 who covers what, a grid of two kinds joined by a relation: {"lens": "coverage", "on": K, "bindings": {"rows": {"kind": K}, "columns": {"kind": J}, "link": {"edge": "<relation of K to J>"}}}',`blocks \u2014 anything else, as blocks: {"lens": "blocks", "on": K, "options": {"blocks": [{"headline": "words"}, {"list": "all('K') where <condition>", "group"?: "<enum field>", "sort"?: "<field>" | {"by": "<field>", "direction": "desc"}, "as"?: "row" | "card", "empty"?: "words"}, {"figure": "count(all('K'))", "label": "words"}]}}. Conditions read a record's own fields: status == 'open', not done, days(today(), due) <= 7.`].join(`
|
|
3
|
-
`);function Gn(n,e,r){return["You draw a view of an app's data as JSON \u2014 never code. The app's kinds, their fields (with types) and relations:",Cn(e),"","The lenses you may use (prefer the first four; use blocks only when none of them fits):",Fn,"",r?`The view on screen now:
|
|
4
|
-
${JSON.stringify(r.lens)}
|
|
5
|
-
Change it as asked, and keep everything not asked about.`:"",`Asked: ${JSON.stringify(n)}`,'Answer with ONE JSON object: {"title": "<a few words, like Deliverables by status>", "lens": \u2026, "on": \u2026, "bindings"?: \u2026, "options"?: \u2026}. Name only the kinds, fields and relations listed above. If it cannot be drawn from them, answer {"failed": "<one sentence saying why>"}.'].filter(t=>t!=="").join(`
|
|
6
|
-
`)}async function cn(n,e,r){let t=e.lastGood?{lastGood:e.lastGood}:{},o=x(E(e.app.schema,e.sight)),s;try{s=(await e.complete({prompt:Gn(n,o,r)})).text}catch{return{failed:"Couldn't draw that: the model did not answer.",...t}}let i=Y(s);if(typeof i!="object"||i===null||Array.isArray(i))return{failed:"Couldn't draw that: the model's answer was not a view.",...t};let a=i;if(typeof a.failed=="string")return{failed:`Couldn't draw that: ${a.failed.replace(/^Couldn't draw that:\s*/i,"").replace(/\.$/,"")}.`,...t};let l=ln(a);if(!P(l.name))return{failed:`Couldn't draw that: "${l.name}" is not a picture the seat can draw.`,...t};let d=l.title?l.title.slice(0,80):r?.title??k(n.trim()).slice(0,80),c={...l,title:r&&r.title===d?d:F(d,e)},u=N(e.app,c,e.sight);return u.ok?{...W(e.app,c,u.drawn,e.sight,"model"),asks:[n]}:{failed:u.failed,...t}}function Vn(n,e,r){let t=[...n.lenses??[]];for(let o of e){let s={name:o.lens,title:o.title,on:o.on,...o.bindings?{bindings:o.bindings}:{},...o.options?{options:o.options}:{}};if(t.some(a=>a.title===s.title))continue;N({...n,lenses:t},s,r).ok&&(t=[...t,s])}return t.length===(n.lenses??[]).length?n:{...n,lenses:t}}async function Xn(n,e,r){let{app:t,drafts:o}=r,s=fn(t,r.principal),i=c=>{let u=ln(c);return{lens:u,verdict:N(t,u,s)}};if(n==="keep_lens"){let{lens:c,verdict:u}=i(e);if(!u.ok)return{ok:!1,error:u.failed,reason:"invalid"};if(!o?.keep)return{ok:!1,error:"This app's declaration cannot be written from here."};let g=G(c),m=await o.keep(g);return m.ok?{ok:!0,data:{kept:g,said:m.said??`Adds \u201C${g.title}\u201D to the places.`,undo:In(g)}}:{ok:!1,error:m.error}}if(e.lens!==void 0){let{lens:c,verdict:u}=i(e.lens);return u.ok?{ok:!0,data:tn(W(t,c,u.drawn,s,"model"))}:{ok:!1,error:u.failed,reason:"invalid"}}let a={app:t,sight:s,...o?.complete?{complete:o.complete}:{},...o?.views?{views:o.views}:{}},l=String(e.ask??""),d;if(e.current!==void 0){let{lens:c,verdict:u}=i(e.current);if(!u.ok)return{ok:!1,error:u.failed,reason:"invalid"};d=await Nn(W(t,c,u.drawn,s,"model"),l,a)}else d=await jn(l,a);return O(d)?{ok:!1,error:d.failed,reason:"invalid"}:{ok:!0,data:tn(d)}}export{O as a,fn as b,N as c,G as d,In as e,ln as f,En as g,W as h,tn as i,Hn as j,On as k,jn as l,Nn as m,Vn as n,Xn as o};
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import{a as L,c as O,d as W,f as I}from"./chunk.2K4TT2BV.js";import{a as ae,b as te}from"./chunk.XOZU4OFA.js";import{b as Z,c as ee,d as ne}from"./chunk.GLWSVSQL.js";import{b as J,c as Q,d as N,j as U,k as X}from"./chunk.MSWWWLEA.js";import{b as V,k as Y,l as _}from"./chunk.UITT6JWW.js";import{G as de,T as B}from"./chunk.4MP72LPR.js";import{Eb as K,da as E,ga as z,md as $,oa as G}from"./chunk.VSCIXAHN.js";import{b as T}from"./chunk.AJZBJBMO.js";var y=T(de(),1),a=T(B(),1),se=`
|
|
2
|
-
form:where([data-graview-part="form"]) {
|
|
3
|
-
/* A grid item of the section above it and a grid container for the
|
|
4
|
-
fields below: both halves are allowed to be narrower than what is in
|
|
5
|
-
them, or a big enough text size pushes the page sideways. See the note
|
|
6
|
-
on \`column\` in pages.tsx. */
|
|
7
|
-
display: grid;
|
|
8
|
-
grid-template-columns: minmax(0, 1fr);
|
|
9
|
-
min-width: 0;
|
|
10
|
-
gap: 12px;
|
|
11
|
-
}
|
|
12
|
-
label:where([data-graview-part="field"]),
|
|
13
|
-
div:where([data-graview-part="field"][data-graview-field="date"]) {
|
|
14
|
-
display: grid;
|
|
15
|
-
/* A track the width it was given: see the note on \`column\` in pages.tsx. */
|
|
16
|
-
grid-template-columns: minmax(0, 1fr);
|
|
17
|
-
min-width: 0;
|
|
18
|
-
gap: 4px;
|
|
19
|
-
}
|
|
20
|
-
label:where([data-graview-part="field"][data-graview-field="boolean"]) {
|
|
21
|
-
grid-auto-flow: column;
|
|
22
|
-
justify-content: start;
|
|
23
|
-
align-items: center;
|
|
24
|
-
}
|
|
25
|
-
span:where([data-graview-part="label"]),
|
|
26
|
-
legend:where([data-graview-part="label"]),
|
|
27
|
-
p:where([data-graview-part="unasked"]) {
|
|
28
|
-
font-size: 0.8125rem;
|
|
29
|
-
color: var(--graview-ink-muted);
|
|
30
|
-
}
|
|
31
|
-
p:where([data-graview-part="unasked"]) { margin: 0; }
|
|
32
|
-
input:where([data-graview-part="control"]:not([type="checkbox"])),
|
|
33
|
-
select:where([data-graview-part="control"]) {
|
|
34
|
-
font: inherit;
|
|
35
|
-
/* A TARGET IN EVERY ENGINE, not only in the one it was measured in.
|
|
36
|
-
Padding and line height alone came to 24 in Chromium and to 22 in
|
|
37
|
-
WebKit, which has its own intrinsic metrics for a \`select\` and rounds
|
|
38
|
-
nothing up for anybody. So every picker on the routed face was under
|
|
39
|
-
the WCAG 2.2 minimum in the browser iOS ships, and the check that says
|
|
40
|
-
so (\`verify-pages\`' \`bigEnoughToHit\`) only ever ran there through
|
|
41
|
-
\`pnpm engines\`. */
|
|
42
|
-
min-height: 24px;
|
|
43
|
-
/* NEVER WIDER THAN ITS FIELD. A select is as wide as its longest option,
|
|
44
|
-
and a picker over 320 vehicles ("2027 Mercedes-Benz GLE AMG 53 4MATIC+
|
|
45
|
-
Coupe") was 618 pixels on a 390 phone, and the whole page scrolled
|
|
46
|
-
sideways. It shrinks to its track and cuts the option inside its box. */
|
|
47
|
-
min-width: 0;
|
|
48
|
-
max-width: 100%;
|
|
49
|
-
text-overflow: ellipsis;
|
|
50
|
-
box-sizing: border-box;
|
|
51
|
-
padding: 7px 10px;
|
|
52
|
-
border-radius: 8px;
|
|
53
|
-
border: 1px solid var(--graview-edge);
|
|
54
|
-
background: var(--graview-panel);
|
|
55
|
-
color: var(--graview-ink);
|
|
56
|
-
}
|
|
57
|
-
/* A PICKER THAT STILL LOOKS LIKE ONE.
|
|
58
|
-
WebKit ignores an author's padding and minimum height on a \`select\`
|
|
59
|
-
while the native appearance is on \u2014 so every picker on the routed face
|
|
60
|
-
came out 22 pixels tall in the browser iOS ships, under the 24 WCAG 2.2
|
|
61
|
-
asks for, while the same element measured 35 in Chromium. Turning the
|
|
62
|
-
appearance off is what makes the box the size it was asked to be, and it
|
|
63
|
-
takes the platform's chevron with it; the chevron is put back, in the ink
|
|
64
|
-
the scheme is already using. */
|
|
65
|
-
span:where([data-graview-part="picker"]) {
|
|
66
|
-
position: relative;
|
|
67
|
-
display: grid;
|
|
68
|
-
min-width: 0;
|
|
69
|
-
}
|
|
70
|
-
span:where([data-graview-part="picker"]) > select:where([data-graview-part="control"]) {
|
|
71
|
-
appearance: none;
|
|
72
|
-
padding-right: 28px;
|
|
73
|
-
}
|
|
74
|
-
span:where([data-graview-part="chevron"]) {
|
|
75
|
-
position: absolute;
|
|
76
|
-
right: 10px;
|
|
77
|
-
top: 50%;
|
|
78
|
-
transform: translateY(-50%);
|
|
79
|
-
font-size: 0.75rem;
|
|
80
|
-
line-height: 1;
|
|
81
|
-
color: var(--graview-ink-muted);
|
|
82
|
-
pointer-events: none;
|
|
83
|
-
}
|
|
84
|
-
fieldset:where([data-graview-part="group"]) {
|
|
85
|
-
display: grid;
|
|
86
|
-
gap: 10px;
|
|
87
|
-
border: 1px solid var(--graview-edge);
|
|
88
|
-
border-radius: 10px;
|
|
89
|
-
padding: 12px;
|
|
90
|
-
}
|
|
91
|
-
fieldset:where([data-graview-part="group"][data-graview-field="list"]) { gap: 8px; }
|
|
92
|
-
div:where([data-graview-part="item"]) {
|
|
93
|
-
display: flex;
|
|
94
|
-
gap: 8px;
|
|
95
|
-
align-items: end;
|
|
96
|
-
}
|
|
97
|
-
button:where([data-graview-part="add"]),
|
|
98
|
-
button:where([data-graview-part="submit"]) { justify-self: start; }
|
|
99
|
-
p:where([data-graview-part="refused"]) {
|
|
100
|
-
margin: 0;
|
|
101
|
-
color: var(--graview-warn);
|
|
102
|
-
font-size: 0.875rem;
|
|
103
|
-
}
|
|
104
|
-
`;function pe({title:r,name:e,optional:t,amount:o,value:v,onChange:f}){let s=J(o),[S,g]=(0,y.useState)(()=>typeof v=="number"?Q(v,o):""),A=S.trim()!==""&&N(S,o)===void 0;return(0,a.jsxs)("label",{"data-graview-part":"field","data-graview-field":"number","data-graview-amount":o.format??"unit",children:[(0,a.jsx)("span",{"data-graview-part":"label",children:r}),(0,a.jsxs)("span",{"data-graview-part":"amount",style:{display:"flex",alignItems:"center",gap:6},children:[s.prefix?(0,a.jsx)("span",{"data-graview-part":"amount-symbol","aria-hidden":"true",children:s.prefix}):null,(0,a.jsx)("input",{type:"text",inputMode:"decimal",name:e,required:!t,placeholder:s.placeholder,title:s.hint,"aria-invalid":A||void 0,value:S,onChange:u=>{g(u.target.value),f(N(u.target.value,o))},"data-graview-part":"control",style:{flex:1,minWidth:0}}),s.suffix?(0,a.jsx)("span",{"data-graview-part":"amount-symbol","aria-hidden":"true",children:s.suffix}):null]}),A?(0,a.jsxs)("span",{"data-graview-part":"hint",role:"status",children:["Not an amount ",s.hint,": write it like ",s.prefix??"",s.placeholder,s.suffix?` ${s.suffix}`:""]}):null]})}function re({children:r}){return(0,a.jsxs)("span",{"data-graview-part":"picker",children:[r,(0,a.jsx)("span",{"aria-hidden":"true","data-graview-part":"chevron",children:"\u25BE"})]})}var ue=r=>({label:E(r),option:e=>e}),me={phone:"+1 555 123 4567",place:"An address or a place's name",duration:"1h 30m, 90 or 1:30"};function M({store:r,spec:e,value:t,onChange:o,prefilled:v,open:f,words:s=ue,values:S}){if(e.name in v&&e.control!=="group"&&e.control!=="variant")return null;let g=e.control==="node"&&!e.kinds.includes("*")?e.kinds.map(n=>E(G(r.schema.tryDefinition(n),n))).join(" or "):s(e.name).label,A=!(e.optional||e.control==="boolean"),u=A?(0,a.jsxs)(a.Fragment,{children:[g,(0,a.jsx)("span",{"aria-hidden":"true",children:" *"})]}):g;switch(e.control){case"text":case"date":return e.control==="text"&&e.long?(0,a.jsxs)("label",{"data-graview-part":"field","data-graview-field":"text",children:[(0,a.jsxs)("span",{"data-graview-part":"label",children:[u,e.markdown?(0,a.jsx)("span",{style:{fontWeight:"normal",color:"var(--graview-ink-faint)"},children:" \xB7 Markdown"}):null]}),(0,a.jsx)("textarea",{name:e.name,required:!e.optional,rows:6,value:typeof t=="string"?t:"",onChange:n=>o(n.target.value),"data-graview-part":"control",style:{fieldSizing:"content",minHeight:"7.5em",resize:"vertical",font:"inherit",lineHeight:1.5}})]}):e.control==="date"?(0,a.jsxs)("div",{"data-graview-part":"field","data-graview-field":"date",children:[(0,a.jsx)("span",{"data-graview-part":"label",children:u}),(0,a.jsx)(I,{name:e.name,label:s(e.name).label,required:!e.optional,value:typeof t=="string"&&t!==""?t:void 0,time:e.time===!0,instant:e.instant===!0,partial:e.partial===!0,onChange:o})]}):(0,a.jsxs)("label",{"data-graview-part":"field","data-graview-field":e.control==="text"&&e.holds?e.holds:e.control,children:[(0,a.jsx)("span",{"data-graview-part":"label",children:u}),(0,a.jsx)("input",{type:e.control==="text"&&e.holds==="phone"?"tel":"text",name:e.name,required:!e.optional,...e.control==="text"&&e.app?{placeholder:"@owner/app or https://\u2026"}:{},...e.control==="text"&&e.holds?{placeholder:me[e.holds]}:{},...e.control==="text"&&e.holds==="phone"?{autoComplete:"tel"}:{},value:typeof t=="string"?t:typeof t=="number"?String(t):"",onChange:n=>o(n.target.value),"data-graview-part":"control"})]});case"number":return e.amount?(0,a.jsx)(pe,{title:u,name:e.name,optional:e.optional,amount:e.amount,value:t,onChange:o}):(0,a.jsxs)("label",{"data-graview-part":"field","data-graview-field":e.control,children:[(0,a.jsx)("span",{"data-graview-part":"label",children:u}),(0,a.jsx)("input",{type:"number",name:e.name,required:!e.optional,...e.min===void 0?{}:{min:e.min},...e.max===void 0?{}:{max:e.max},...e.step===void 0?{}:{step:e.step},value:typeof t=="number"?t:"",onChange:n=>o(n.target.value===""?void 0:Number(n.target.value)),"data-graview-part":"control"})]});case"boolean":return(0,a.jsxs)("label",{"data-graview-part":"field","data-graview-field":"boolean",children:[(0,a.jsx)("input",{type:"checkbox",name:e.name,checked:t===!0,onChange:n=>o(n.target.checked),"data-graview-part":"control"}),(0,a.jsx)("span",{"data-graview-part":"label",children:u})]});case"choice":return(0,a.jsxs)("label",{"data-graview-part":"field","data-graview-field":e.control,children:[(0,a.jsx)("span",{"data-graview-part":"label",children:u}),(0,a.jsx)(re,{children:(0,a.jsxs)("select",{name:e.name,required:!e.optional,value:typeof t=="string"?t:"",onChange:n=>o(n.target.value||void 0),"data-graview-part":"control",children:[(0,a.jsx)("option",{value:"",children:"\u2014"}),(e.options??[]).map(n=>(0,a.jsx)("option",{value:n,children:s(e.name).option(n)},n))]})})]});case"node":{let n=f.find(i=>i.name===e.name)?.candidates,m=new Set(Object.values(v).filter(i=>typeof i=="string")),w=(e.kinds.includes("*")?[...r.graph.allNodes()]:e.kinds.flatMap(i=>r.graph.nodesOfKind(i))).filter(i=>!m.has(i.id)),d=n?n.map(i=>r.graph.getNode(i)).filter(i=>i!==void 0):w,b=V(d,i=>r.schema.tryDefinition(i));return(0,a.jsxs)("label",{"data-graview-part":"field","data-graview-field":e.control,children:[(0,a.jsx)("span",{"data-graview-part":"label",children:u}),(0,a.jsx)(re,{children:(0,a.jsxs)("select",{name:e.name,required:!e.optional,value:typeof t=="string"?t:"",onChange:i=>o(i.target.value||void 0),"data-graview-part":"control",children:[(0,a.jsx)("option",{value:"",children:"\u2014"}),d.map(i=>{let F=b.get(i.id);return(0,a.jsxs)("option",{value:i.id,children:[z(r.schema.tryDefinition(i.kind),i),F?` \xB7 ${F}`:""]},i.id)})]})})]})}case"group":{let n=t??{};return(0,a.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.control,children:[(0,a.jsx)("legend",{"data-graview-part":"label",children:u}),e.fields.map(m=>(0,a.jsx)(M,{store:r,spec:m,value:n[m.name],onChange:w=>o({...n,[m.name]:w}),prefilled:v,open:f,words:s},m.name))]})}case"variant":{let n=t??{},m=typeof n[e.tag]=="string"?n[e.tag]:"",w=e.options.find(d=>d.value===m);return(0,a.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.control,children:[(0,a.jsx)("legend",{"data-graview-part":"label",children:u}),(0,a.jsxs)("label",{"data-graview-part":"field","data-graview-field":"choice",children:[(0,a.jsx)("span",{"data-graview-part":"label",children:E(e.tag)}),(0,a.jsxs)("select",{value:m,onChange:d=>o({[e.tag]:d.target.value}),"data-graview-part":"control",children:[(0,a.jsx)("option",{value:"",children:"\u2014"}),e.options.map(d=>(0,a.jsx)("option",{value:d.value,children:E(d.value)},d.value))]})]}),w?.fields.map(d=>(0,a.jsx)(M,{store:r,spec:d,value:n[d.name],onChange:b=>o({...n,[d.name]:b}),prefilled:v,open:f,words:s},d.name))]})}case"file":case"list":{let n=e.control==="file"?e:e.item.control==="file"?e.item:void 0;if(n||e.control==="file")return(0,a.jsx)(L,{as:"control",title:A?`${g} *`:g,value:t,onChange:o,several:n!==e,image:n?.image===!0,video:n?.video===!0,label:g});let m=Array.isArray(t)?t:[];return(0,a.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":"list",children:[(0,a.jsx)("legend",{"data-graview-part":"label",children:u}),m.map((w,d)=>(0,a.jsxs)("div",{"data-graview-part":"item",children:[(0,a.jsx)("div",{style:{flex:1},children:(0,a.jsx)(M,{store:r,spec:{...e.item,optional:!1},value:w,onChange:b=>o(m.map((i,F)=>F===d?b:i)),prefilled:v,open:f,words:s})}),(0,a.jsx)("button",{type:"button","data-graview-part":"remove",onClick:()=>o(m.filter((b,i)=>i!==d)),children:"remove"})]},d)),(0,a.jsx)("button",{type:"button","data-graview-part":"add",onClick:()=>o([...m,void 0]),children:"add another"})]})}case"linked":return(0,a.jsx)("div",{"data-graview-part":"field","data-graview-field":"linked",children:(0,a.jsx)(O,{relation:e.relation,value:t,onChange:o,label:g})});case"repeat":return(0,a.jsx)(W,{value:t,onChange:o,start:e.of?S?.[e.of]:void 0,label:`${e.of?s(e.of).label:g} repeats`,name:e.name});case"opaque":return(0,a.jsxs)("p",{"data-graview-part":"unasked",children:["\u201C",E(e.name),"\u201D needs a structured answer this form cannot ask for yet."]})}}function ge(r){let e=[...r.querySelectorAll("input:not([type=hidden]), select, textarea")].filter(t=>!t.disabled&&!t.closest("[hidden], [inert], [aria-hidden='true']"));return e.find(t=>t.required&&t.value==="")??e[0]??r.querySelector('button[type="submit"]')}function Fe({store:r,mutation:e,prefilled:t={},open:o=[],onDone:v,principal:f,initial:s,label:S,only:g,autoFocus:A=!1}){let u=()=>ae(e,r.graph,t),[n,m]=(0,y.useState)(u),[w,d]=(0,y.useState)(()=>({...n,...s})),[b,i]=(0,y.useState)(null),F=f??r.seenFor,q=e.subject&&t[e.subject.arg],ie=F?ne(r,F,e,typeof q=="string"?q:void 0):void 0,j=ee(r.schema,e),C=(g===void 0?j:g.flatMap(l=>j.find(p=>p.name===l)??[])).filter(l=>!ie?.has(l.name)),oe=l=>Y(r.schema,e,l),P=X(C.filter(l=>l.control==="date").map(l=>l.name)),D=(0,y.useRef)(void 0),le=(l,p)=>d(c=>{let x={...c,[l.name]:p};if(P&&l.name===P.start&&l.control==="date"){let h=k=>typeof k=="string"&&k!==""?k:void 0,R=h(c[P.start])??D.current;if(h(p)){D.current=h(p);let k=U(R,h(p),h(c[P.end]),{time:l.time===!0,instant:l.instant===!0});k!==void 0&&(x[P.end]=k)}}return x}),H=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!A)return;let l=document.activeElement,p=0,c=0,x=()=>{let h=H.current;if(!h)return;let R=document.activeElement;if(R!==l&&R!==document.body&&R!==null&&!h.contains(R)||h.contains(R))return;let k=h.querySelector("[data-graview-when-arriving]")&&c<30?null:ge(h);if(k){k.focus();return}c+=1,c<=30&&(p=requestAnimationFrame(x))};return p=requestAnimationFrame(x),()=>cancelAnimationFrame(p)},[]),(0,a.jsxs)("form",{ref:H,"data-testid":`form-${e.name}`,onSubmit:l=>{l.preventDefault();try{r.apply({name:e.name,args:{...te(Z(C,w),n),...t}},f?{author:f}:{}),i(null);let p=u();m(p),d({...p}),v?.()}catch(p){i(_(r.schema,r.allMutations(),p));let c=e.subject?t[e.subject.arg]:void 0,x=typeof c=="string"?r.graph.getNode(c)?.kind:void 0;$(r,{type:"refused",act:e.name,code:K(p).reason,...x?{kind:x}:{}},f)}},"data-graview-part":"form",children:[(0,a.jsx)("style",{children:se}),C.map(l=>(0,a.jsx)(M,{store:r,spec:l,value:w[l.name],values:w,onChange:p=>le(l,p),prefilled:t,open:o,words:oe},l.name)),b?(0,a.jsx)("p",{"data-testid":"refused","data-graview-part":"refused",role:"alert",children:b}):null,(0,a.jsx)("button",{type:"submit","data-graview-part":"submit",children:S??e.title??e.name})]})}export{Fe as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as Ce,d as $e,i as ae}from"./chunk.UITT6JWW.js";import{e as Te}from"./chunk.A5PDXNY6.js";import{Ad as Re,Dd as De,Fd as We,Gb as ie,Gd as Me,K as ke,Ya as Se,_d as je,aa as M,ab as G,ca as xe,da as W,dd as ve,ed as Oe,fa as _,ga as z,ha as Ae,ja as we,ka as Ne,wc as oe}from"./chunk.VSCIXAHN.js";function se(n,e){return n.display?.labels?.[e]??W(e)}function de(n){let e=ae(n);switch(e.type){case"text":case"date":case"number":case"boolean":case"choice":return e.type;default:return}}function Je(n,e){let t=new Map,i=n.tryDefinition(e);for(let[r,a]of Object.entries(i?.edges??{}))t.set(r,{key:r,label:a.description?M(a.description):W(r),about:"edge",far:a.to==="*"?[...n.kinds]:[...a.to]});for(let r of n.definitions)if(r.kind!==e)for(let[a,s]of Object.entries(r.edges??{}))t.has(a)||s.to!=="*"&&!s.to.includes(e)||t.set(a,{key:a,label:s.inverse?M(s.inverse):W(a),about:"edge",far:[r.kind]});return[...t.values()]}var Ze=["current","past","any","flagged","clear"];function Fe(n,e){let t=n?.lifecycle;if(!t||t.retired==="date")return!1;let i=t.retired.map(String);return e.some(r=>r.key===t.field&&i.includes(r.value))}function Be(n,e){let t=n.tryDefinition(e);if(!t)return{kind:e,sorts:[],filters:[],groups:[]};let i=new Set(t.display?.hide??[]),r=t.fields.shape??{},a=[{key:"label",label:"Name",about:"label",type:"text"}],s=[],f=[];for(let[y,x]of Object.entries(r)){if(y==="id"||y==="kind"||y==="label"||i.has(y))continue;let p=de(x);if(!p)continue;let O=se(t,y),w=p==="choice"?Le(x):p==="boolean"?["true","false"]:void 0,N={key:y,label:O,about:"field",type:p,...w?{options:w}:{}};a.push(N),s.push(N),(p==="boolean"||p==="choice")&&f.push(N),p==="date"&&f.push({...N,buckets:["day","week","month","year","decade"]})}for(let y of Je(n,e))a.push(y),s.push(y),f.push(y);let l={key:"is",label:t.lifecycle?"Standing and currency":"Standing",about:"is",type:"choice",options:t.lifecycle?[...Ze]:["flagged","clear"]};s.push(l);let u=t.fieldRoles?.order,g=u&&(u in r||u==="label")?{by:u,direction:"asc"}:void 0;return{kind:e,sorts:a,filters:s,groups:f,...g?{natural:g}:{}}}function vn(n,e){let t=[];for(let r of e.filters){let a=r.about==="edge"&&r.far?.length===1?n.tryDefinition(r.far[0]):void 0;if(!(!a||a.kind===e.kind))for(let[s,f]of Object.entries(a.fields.shape??{}))de(f)!=="choice"||a.display?.hide?.includes(s)||t.push({key:`${r.key}.${s}`,label:`${r.label} \xB7 ${se(a,s)}`,about:"via",type:"choice",options:Le(f),far:[a.kind]})}if(t.length===0)return e;let i=e.filters.filter(r=>r.about!=="is");return{...e,filters:[...i,...t,...e.filters.filter(r=>r.about==="is")]}}function On(n,e){let t=n.tryDefinition(e.kind),i=Object.entries(t?.computed??{});if(!t||i.length===0)return e;let r=i.filter(([a])=>!e.sorts.some(s=>s.key===a)).map(([a,s])=>({key:a,label:(typeof s=="object"?s.label:void 0)??se(t,a),about:"field",type:"number"}));return{...e,sorts:[...e.sorts,...r]}}function Le(n){let e=ae(n);return e.type==="choice"?e.options:[]}var Ie=n=>n,Pe=n=>n;function en(n,e,t){let i=new Map;for(let r of[...n.out(e,t),...n.in(e,t)])i.set(r.id,r);return[...i.values()]}function le(n,e,t){let i=n.schema.tryDefinition(e.kind);if(t.key==="is")switch(t.value){case"current":return _(i,Pe(e),n.today);case"past":return!_(i,Pe(e),n.today);case"any":return!0;case"flagged":return n.flagged?.has(e.id)??!1;case"clear":return!(n.flagged?.has(e.id)??!1);default:return!0}let r=i?.fields.shape??{};if(t.key in r){let l=Se(Ie(e),t.key,n.today??ke()),u=de(r[t.key]);if(u==="date"){let[g,y]=t.value.split(":");if(typeof l!="string"||!y)return!1;let x=l.slice(0,10);return g==="before"?x<y:g==="after"?x>y:x===y}if(u==="boolean")return String(l)===t.value;if(u==="number"){let g=t.value.lastIndexOf(":"),y=g>0?t.value.slice(0,g):"",x=Number(t.value.slice(g+1));if(y==="at-most"||y==="at-least")return typeof l!="number"||!Number.isFinite(x)?!1:y==="at-most"?l<=x:l>=x}return String(l)===t.value}let[a,s]=t.key.split("."),f=en(n.graph,e.id,a);return s?f.some(l=>String(Ie(l)[s])===t.value):t.value==="*"?f.length>0:t.value==="none"?f.length===0:f.some(l=>l.id===t.value)}var nn=5;function ze(n){return n.normalize("NFD").replace(/\p{M}+/gu,"").toLowerCase().replace(/[^\p{L}\p{N}]+/gu," ").trim()}function ce(n){return ze(n).replace(/ /g,"")}var U=new Map,tn=5e4;function $(n){let e=U.get(n);if(e===void 0){U.size>=tn&&U.clear();let t=ze(n);e={tokens:t.split(" ").filter(Boolean),whole:t.replace(/ /g,"")},U.set(n,e)}return e}var T=n=>[...$(n).tokens];function j(n,e){if(e.length===0)return;let{whole:t,tokens:i}=$(n),r=e.join("");if(t.length===0)return;if(t===r)return"exact";if(e.every(s=>i.some(f=>f.startsWith(s))))return t.startsWith(r)?"prefix":e.every(s=>i.includes(s))?"word":"part"}function q(n,e,t=48){let i=n.replace(/\s+/g," ").trim();if(i.length<=t)return i;let r=e[0],a=i.normalize("NFD").replace(/\p{M}/gu,"").toLowerCase(),s=r?a.search(new RegExp(`(^|[^\\p{L}\\p{N}])${rn(r)}`,"u")):-1,f=s<0?0:s+(a[s]&&/[\p{L}\p{N}]/u.test(a[s])?0:1),l=Math.max(0,f-Math.floor(t/3));if(l>0){let g=i.lastIndexOf(" ",l);l=g<0?0:g+1}let u=Math.min(i.length,l+t);if(u<i.length){let g=i.indexOf(" ",u);u=g<0||g-u>16?u:g}return`${l>0?"\u2026":""}${i.slice(l,u).trim()}${u<i.length?"\u2026":""}`}var rn=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),on=/^([\p{L}][\p{L}\p{N}_-]*):(\S+)$/u;function an(n){let e=[],t=[];for(let i of n.trim().split(/\s+/).filter(Boolean)){let r=on.exec(i);r?t.push({key:r[1],value:r[2]}):e.push(i)}return{words:e.join(" "),conditions:t}}var Ee=new WeakMap;function Q(n,e){let t=Ee.get(e);if(t&&t.definition===n)return t.texts;let i=sn(n,e);return Ee.set(e,{definition:n,texts:i}),i}function sn(n,e){let t=z(n,e),i=[{field:"label",reading:"Name",text:t}];for(let r of $e(e,n,{limit:Number.POSITIVE_INFINITY}))r.key==="label"||r.value===t||typeof e[r.key]!="boolean"&&i.push({field:r.key,reading:r.label,text:r.markdown?Te(r.value):r.value});return i}var I={exact:0,prefix:1,word:2,part:3,field:4,near:5},Ge=new Set(["a","an","the","of","and","or","for","to","in","on","at","by","with","my","our","is"]);function Ke(n){let e=n;e.length>4&&e.endsWith("ies")?e=`${e.slice(0,-3)}y`:e.length>4&&/(ss|x|ch|sh|z)es$/.test(e)?e=e.slice(0,-2):e.length>3&&e.endsWith("s")&&!/(ss|us|is)$/.test(e)&&(e=e.slice(0,-1));for(let t of["ing","ed"])if(e.length>t.length+2&&e.endsWith(t)){e=e.slice(0,-t.length),/([b-df-hj-km-np-rtv-z])\1$/.test(e)&&(e=e.slice(0,-1));break}return e.length>3&&e.endsWith("e")?e.slice(0,-1):e}function He(n,e,t){if(Math.abs(n.length-e.length)>t)return t+1;let i=[],r=Array.from({length:e.length+1},(a,s)=>s);for(let a=1;a<=n.length;a++){let s=[a],f=a;for(let l=1;l<=e.length;l++){let u=Math.min(r[l]+1,s[l-1]+1,r[l-1]+(n[a-1]===e[l-1]?0:1));a>1&&l>1&&n[a-1]===e[l-2]&&n[a-2]===e[l-1]&&(u=Math.min(u,i[l-2]+1)),s[l]=u,u<f&&(f=u)}if(f>t)return t+1;i=r,r=s}return r[e.length]}var V=new Map;function dn(n,e){let t=V.get(n);t||(V.size>=64&&V.clear(),V.set(n,t=new Map));let i=t.get(e);return i===void 0&&(i=ln(n,e)??null,t.set(e,i)),i??void 0}function ln(n,e){if(/\d/.test(n))return;let t=Ke(n);if(t.length>=3&&(Ke(e)===t||t.length>=4&&e.startsWith(t)))return"stem";let i=n.length<4?0:n.length<=7?1:2;if(i!==0){if(He(n,e,i)<=i)return"spelling";if(n.length>=5){for(let r=n.length-i;r<=n.length+i;r++)if(r<e.length&&He(n,e.slice(0,r),i)<=i)return"spelling"}}}function cn(n,e){let t=e.length>1?e.filter(r=>!Ge.has(r)):e;if(t.length===0)return;let i;for(let r of t){let a;for(let s of n){for(let f of $(s.text).tokens){if(f.startsWith(r)){a={text:s,matched:f};break}let l=a?void 0:dn(r,f);l&&(a={text:s,matched:f,by:l})}if(a&&!a.by)break}if(!a)return;a.by&&!i&&(i={text:a.text,asked:r,matched:a.matched,by:a.by})}if(i)return{field:i.text.field,reading:i.text.reading,fragment:q(i.text.text,[i.matched]),strength:"near",asked:i.asked,matched:i.matched,by:i.by}}var fn=80;function gn(n,e,t){let i=T(e).filter(s=>!Ge.has(s)).join(" ")||e,r=t===void 0?[]:T(t),a=r.length>0&&n.find(s=>r.every(f=>$(s.text).tokens.some(l=>l.startsWith(f))))||n[0];return{field:a.field,reading:a.reading,fragment:q(a.text,r),strength:"near",asked:i,matched:(t??a.text).slice(0,fn),by:"meaning"}}function _e(n,e,t,i){let r=T(t);if(r.length===0)return;if(i){let p=Q(n,e),O=i.includes("label")||i.some(v=>typeof e[v]=="string"&&e[v]===p[0].text),w=p.filter((v,D)=>D===0?O:i.includes(v.field)),N=v=>D=>$(D.text).tokens.some(P=>P.startsWith(v));if(!r.every(v=>w.some(N(v))))return;let S=w.find(N(r[0]));return{field:S.field,reading:S.reading,fragment:q(S.text,r),strength:S.field==="label"?j(S.text,r)??"field":"field"}}let a=Q(n,e),[s,...f]=a,l=j(s.text,r);if(l)return{field:"label",reading:s.reading,fragment:q(s.text,r),strength:l};let u=p=>O=>$(O.text).tokens.some(w=>w.startsWith(p));if(!r.every(p=>a.some(u(p))))return;let g=T(s.text),y=r.find(p=>!g.some(O=>O.startsWith(p)))??r[0],x=f.find(u(y));return{field:x.field,reading:x.reading,fragment:q(x.text,[y]),strength:"field"}}var un=512,yn=64;function hn(n){let e=new Map;if(n.length===0)return e;let t=n.slice(-un),i=n[n.length-1].seq;for(let r of t){let a=Math.pow(.5,(i-r.seq)/yn);for(let s of r.writes)e.set(s,(e.get(s)??0)+a)}return e}var ge=(n,e)=>we({tryDefinition:()=>n},e),fe=(n,e)=>De({tryDefinition:()=>n},e);function pn(n,e,t){let i=n.tryDefinition(e),r=[{field:"plural",text:ge(i,e)},{field:"kind",text:W(e)},...i?.noun?[{field:"noun",text:i.noun}]:[],...(i?.aliases??[]).map(s=>({field:"alias",text:s}))],a;for(let s of r){let f=j(s.text,t);f&&(!a||I[f]<I[a.strength])&&(a={strength:f,...s})}return a}var mn,bn=(n,e)=>(mn??=new Intl.Collator(void 0,{sensitivity:"base",numeric:!0})).compare(n,e),qe=(n,e)=>(n.nearly??0)-(e.nearly??0)||(n.archived??0)-(e.archived??0)||n.tier-e.tier||n.inKind-e.inKind||n.near-e.near||n.past-e.past||n.touched-e.touched||n.flagged-e.flagged||bn(n.name,e.name)||(n.id<e.id?-1:n.id>e.id?1:0);function Ln(n,e,t={}){let i=n.schema,r=an(e),a=T(r.words),s=t.principal??{kind:"human"},f=n.kindsKeptFrom(s),l=n.modules.disabledKinds,u=r.conditions.filter(o=>o.key==="kind").map(o=>o.value),g=r.conditions.filter(o=>o.key==="is").map(o=>o.value),y=g.includes("any")||g.includes("past"),x=g.includes("past")&&!g.includes("any")&&!g.includes("current"),p=g.includes("archived")?!0:t.archived??"all",O=(o,d)=>{let c=ce(d),h=i.tryDefinition(o);return ce(o)===c||ce(ge(h,o))===c},w=i.kinds.filter(o=>!f.has(o)&&!l.has(o)&&(t.kinds===void 0||t.kinds.includes(o))&&(u.length===0||u.some(d=>O(o,d)))),S=r.conditions.filter(o=>o.key!=="kind").map(o=>({...o,admittedBy:w.filter(d=>Be(i,d).filters.some(c=>c.key===o.key))})),v=S.filter(o=>o.key!=="is"),D=g.filter(o=>o==="flagged"||o==="clear"||o==="past"||o==="archived"),P={kinds:w,past:y},Qe={hits:[],words:r.words,conditions:S,searched:P,byKind:{},total:0,matched:[]};if(a.length===0&&v.length===0&&D.length===0)return Qe;let X=t.today,F=t.flagged??new Set(n.violations().flatMap(o=>o.nodeIds)),Ue=t.touched??hn(n.log.all()),Y=new Set;for(let o of t.from??[]){Y.add(o);for(let d of n.graph.neighbors(o))Y.add(d.id)}let ue=ve(n,s)?Oe(n,s):void 0,J=ie.keptFrom?.(n,s)&&n.seenBy(s).graph,Z=o=>je(o,t.basePath===void 0?{}:{basePath:t.basePath}),ye={schema:i,graph:n.graph,flagged:F,...X?{today:X}:{}},R=[],B={},L=[],E=[],K=(o,d,c,h,m,b)=>{let A=z(c,o);B[d]=(B[d]??0)+1,R.push({hit:{about:"node",id:o.id,kind:d,label:A,why:m,current:h,flagged:F.has(o.id),address:Z(`${fe(c,d)}/${encodeURIComponent(o.id)}`),...b===void 0?{}:{near:!0},...G(o)?{archived:!0}:{}},...b===void 0?{}:{nearly:2-b},tier:I[m.strength],inKind:d===t.inKind?0:1,near:Y.has(o.id)?0:1,past:h?0:1,archived:G(o)?1:0,touched:-(Ue.get(o.id)??0),flagged:F.has(o.id)?0:1,name:A,id:o.id})};for(let o of w){let d=i.tryDefinition(o),c=S.filter(m=>m.key!=="is"&&m.admittedBy.includes(o));if(a.length===0&&c.length===0&&D.length===0)continue;let h=Fe(d,c);for(let m of n.graph.nodesOfKind(o,{archived:p})){if(ue&&!ue(m.id))continue;let b=J?J.getNode(m.id):m;if(!b)continue;let A=_(d,b,X);if(!y&&!h&&!A){if(a.length>0&&g.length===0&&c.every(k=>le(ye,b,k))){let k=_e(d,b,r.words);k&&E.push({node:b,kind:o,definition:d,why:k})}continue}if(x&&A||!c.every(k=>le(ye,b,k))||g.includes("flagged")&&!F.has(b.id)||g.includes("clear")&&F.has(b.id))continue;let C=a.length>0?_e(d,b,r.words):c[0]?{field:c[0].key,reading:W(c[0].key),fragment:`${c[0].key}:${c[0].value}`,strength:"field"}:{field:"is",reading:"Is",fragment:`is:${D[0]}`,strength:"field"};C?K(b,o,d,A,C):a.length>0&&L.push({node:b,kind:o,definition:d,current:A})}}let ee=o=>o.strength!=="field",ne=!1;if(E.length>0&&R.length===0){ne=!0;for(let o of E)K(o.node,o.kind,o.definition,!1,o.why)}else if(E.some(o=>ee(o.why))&&!R.some(o=>ee(o.hit.why))){ne=!0;for(let o of E)ee(o.why)&&K(o.node,o.kind,o.definition,!1,o.why)}let he=t.near!==!1&&a.length>0&&R.length<nn&&L.length>0,te=new Set;if(he)for(let o of L){let d=cn(Q(o.definition,o.node),a);d&&(te.add(o.node.id),K(o.node,o.kind,o.definition,o.current,d,d.by==="stem"?.9:.8))}let Ve=o=>o==="exact"||o==="prefix"?-1:I[o],re=(o,d,c,h)=>({hit:o,tier:Ve(d),inKind:1,near:1,past:0,touched:0,flagged:1,name:c,id:h});if(a.length>0){for(let d of w){let c=pn(i,d,a);if(!c)continue;let h=Ne(i,d),m={field:c.field,reading:c.field==="plural"?"Plural":"Kind",fragment:c.text,strength:c.strength};R.push(re({about:"kind",kind:d,label:h,why:m,count:B[d]??0,address:Z(fe(i.tryDefinition(d),d))},c.strength,h,`kind:${d}`))}let o=t.places??[];for(let d of Re(o.filter(c=>w.includes(c.kind)))){if(d.across&&f.has(d.across))continue;let c=j(d.title,a);if(!c)continue;let h={field:"title",reading:"Title",fragment:d.title,strength:c},m=Me(d,o)?fe(i.tryDefinition(d.kind),d.kind).slice(1):void 0,b=Z(We(d.as,m));R.push(re({about:"place",kind:d.kind,title:d.title,as:d.as,why:h,address:b},c,d.title,`place:${d.kind}:${d.as}`))}for(let d of n.allInvariants()){let c=d.scope==="graph"?void 0:d.scope.kind;if(c&&!w.includes(c))continue;let h=d.label??W(d.name),m=j(h,a),b=m?void 0:j(W(d.name),a),A=m??b;if(!A)continue;let C={field:m?"label":"name",reading:m?"Rule":"Name",fragment:m?h:d.name,strength:A};R.push(re({about:"rule",name:d.name,label:h,...c?{kind:c}:{},why:C},A,h,`rule:${d.name}`))}}let pe=()=>{R.sort(qe);let o=t.limit??50,d=R.slice(0,o).map(k=>k.hit),c=d.flatMap(k=>k.about==="node"?[(J||n.graph).getNode(k.id)]:[]).filter(Boolean),h=Ce(c,k=>i.tryDefinition(k)),m=d.map(k=>k.about==="node"&&h.has(k.id)?{...k,apart:h.get(k.id)}:k),b=Object.values(B).reduce((k,Ye)=>k+Ye,0),A=R.flatMap(k=>k.hit.about==="node"?[k.hit.id]:[]),C=t.subject&&w.includes(String(n.graph.getNode(t.subject)?.kind))?kn(n,t.subject,r.words,{principal:s}):[];return{hits:[...m,...C],words:r.words,conditions:S,searched:ne?{...P,past:!0}:P,byKind:{...B},total:b,matched:A}},H=pe(),me=t.rank;if(!he||!me)return H;let be=L.filter(o=>!te.has(o.node.id)).map(({node:o,kind:d,definition:c})=>({id:o.id,kind:d,label:z(c,o),texts:Q(c,o)}));if(be.length===0)return H;let Xe=(async()=>{let o;try{o=await me(r.words,be)}catch{return H}let d=new Map(L.filter(h=>!te.has(h.node.id)).map(h=>[h.node.id,h])),c=!1;for(let{id:h,score:m,matched:b}of Array.isArray(o)?o:[]){let A=d.get(h);!A||!(m>0)||(d.delete(h),c=!0,K(A.node,A.kind,A.definition,A.current,gn(Q(A.definition,A.node),r.words,typeof b=="string"?b:void 0),Math.min(1,m)))}return c?pe():H})();return{...H,later:Xe}}function kn(n,e,t,i={}){let r=i.principal??{kind:"human"},a=(ie.keptFrom?.(n,r)?n.seenBy(r):n).graph.getNode(e);if(!a)return[];if(n.kindsKeptFrom(r).has(a.kind))return[];let s=T(t),f=z(n.schema.tryDefinition(a.kind),a),l=[];for(let g of n.allMutations()){let y=g.subject;if(!y||y.kinds!=="*"&&!y.kinds.includes(a.kind))continue;let x=g.derived?.act;if((x==="archive"||x==="merge")&&G(a)||x==="unarchive"&&!G(a)||x==="leave-alone"&&oe(a)||x==="allow-tidying"&&!oe(a)||!n.permits({name:g.name,args:{[y.arg]:a.id}},r).ok)continue;let p=Ae(g),O=T(p),w=s.filter(v=>O.some(D=>D.startsWith(v))),N=w.length>0?j(p,w):void 0,S=N?{field:"title",reading:"Act",fragment:p,strength:N}:{field:"subject",reading:"On",fragment:f,strength:"field"};l.push({hit:{about:"act",name:g.name,title:p,subject:a.id,why:S,destructive:g.destructive===!0},tier:N?I[N]:I.field+1,inKind:0,near:0,past:g.destructive?1:0,touched:0,flagged:g.pinned?0:1,name:p,id:`act:${g.name}`})}l.sort(qe);let u=l.map(g=>g.hit);return i.limit===void 0?u:u.slice(0,i.limit)}function En(n,e){let t=e.kinds.map((a,s)=>{let f=ge(n.tryDefinition(a),a);return s===0?f:f.toLowerCase()}),i=xe(t)||"Nothing";return e.kinds.some(a=>n.tryDefinition(a)?.lifecycle)?e.past?`${M(i)}, past ones included.`:`${M(i)}, current ones; add is:any for past ones.`:`${M(i)}.`}export{se as a,de as b,Je as c,Fe as d,Be as e,vn as f,On as g,Le as h,Ie as i,Pe as j,en as k,le as l,ze as m,ce as n,an as o,_e as p,hn as q,Ln as r,kn as s,En as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as n}from"./chunk.3V4WP7RY.js";import"./chunk.LLYRFVIN.js";import"./chunk.YFSBVZTG.js";import"./chunk.G4YJPKRG.js";import{l as s}from"./chunk.3UOKUF5Z.js";import"./chunk.Q355UPFG.js";import"./chunk.PXQVXBNG.js";import"./chunk.MVWC3VR3.js";import"./chunk.CC5BJH5A.js";import"./chunk.CFKZXLXS.js";import"./chunk.Y5C4RXG7.js";import"./chunk.7MHCGVGM.js";import"./chunk.FRYBMS3W.js";import"./chunk.LQVAABPS.js";import"./chunk.NGTRL5U4.js";import"./chunk.3MOJF7BA.js";import"./chunk.LZIBQ3VX.js";import"./chunk.YZ7FUKAL.js";import"./chunk.KDRLUBVF.js";import"./chunk.BQIHNT7C.js";import"./chunk.TAT2IQUR.js";import"./chunk.3XGA65Y3.js";import"./chunk.BYKD5RLA.js";import"./chunk.2K4TT2BV.js";import"./chunk.VUBNBTJP.js";import"./chunk.BJUUSIQY.js";import"./chunk.ZP5RT2EK.js";import"./chunk.VZJWJ5XM.js";import"./chunk.XOZU4OFA.js";import"./chunk.GLWSVSQL.js";import"./chunk.MB7LKKUD.js";import"./chunk.WVUJXDXZ.js";import"./chunk.7VKSXGTX.js";import"./chunk.TY4GQJKC.js";import"./chunk.6ZQAR5ZA.js";import"./chunk.W3W54DSX.js";import"./chunk.PI44XMY2.js";import"./chunk.KGW75Z5L.js";import"./chunk.GZHZLJBF.js";import"./chunk.IOK4GVJC.js";import"./chunk.OJGHDWI6.js";import"./chunk.TLJOZSDD.js";import"./chunk.MSWWWLEA.js";import"./chunk.UITT6JWW.js";import"./chunk.A5PDXNY6.js";import"./chunk.WC3DENU4.js";import"./chunk.VNDKKTED.js";import{G as y,T as i}from"./chunk.4MP72LPR.js";import"./chunk.SDO3U72B.js";import"./chunk.VSCIXAHN.js";import"./chunk.FQLNBIQ5.js";import{b as r}from"./chunk.AJZBJBMO.js";var c=r(y(),1),e=r(i(),1);function v({store:d,views:t,as:a,scope:o}){let l=(0,c.useMemo)(()=>s({scope:`.${o}`}),[o]);return(0,e.jsxs)("div",{"data-testid":"embed-picture","data-embed-content":"",tabIndex:0,"aria-label":t.places().find(m=>m.as===a)?.title??"The picture",style:{flex:"1 1 auto",minHeight:0,display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",background:"var(--graview-ground)",color:"var(--graview-ink)",fontFamily:"var(--graview-font-body, system-ui)"},children:[(0,e.jsx)("style",{children:l}),(0,e.jsx)(n,{store:d,views:t,as:a})]})}export{v as PictureFace};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as b,N as w,O as N,P as S,R as O,S as W,W as m}from"./chunk.VSCIXAHN.js";var x=864e5,L=/^(\d{4})-(\d{2})-(\d{2})/,g=e=>String(e).padStart(2,"0"),A=e=>new Date(e).toISOString().slice(0,10),a=e=>Date.UTC(+e.slice(0,4),+e.slice(5,7)-1,+e.slice(8,10)),p=(e,n)=>A(a(e)+n*x),F=e=>new Date(a(e)).getUTCDay();function c(e,n,r){if(!(n>=1&&n<=12&&r>=1&&r<=31))return;let i=`${String(e).padStart(4,"0")}-${g(n)}-${g(r)}`;return A(a(i))===i?i:void 0}function I(e=new Date){let n=N();return n?O(e.getTime(),n):{day:`${e.getFullYear()}-${g(e.getMonth()+1)}-${g(e.getDate())}`,minutes:e.getHours()*60+e.getMinutes()}}var h=e=>/T\d\d:\d\d(:[\d.]+)?(Z|[+-]\d\d:?\d\d)$/.test(e);function l(e){if(typeof e!="string")return;if(h(e)){let i=new Date(e);return Number.isNaN(i.getTime())?void 0:I(i)}let n=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2}))?/.exec(e);if(!n||!c(Number(n[1]),Number(n[2]),Number(n[3])))return;let r=e.slice(0,10);return n[4]===void 0?{day:r}:{day:r,minutes:Number(n[4])*60+Number(n[5])}}function D(e,n){if(!n.time)return e.day;let r=e.minutes??9*60;if(!n.instant)return`${e.day}T${g(Math.floor(r/60))}:${g(r%60)}`;let i=N(),[,t,o,d]=L.exec(e.day);return(i?new Date(W(e.day,r,i)):new Date(Number(t),Number(o)-1,Number(d),Math.floor(r/60),r%60)).toISOString().replace(/\.\d{3}Z$/,"Z")}function P(e,n=new Date){let r=S(),i=r;try{i=new Intl.DateTimeFormat(e??b,{timeZoneName:"short",timeZone:r}).formatToParts(n).find(t=>t.type==="timeZoneName")?.value??r}catch{i=r}return{zone:r,short:i}}function z(e,n,r,i){let t=l(n);if(!t)return r;let o=e===void 0?void 0:l(e),d=r===void 0?void 0:l(r),u=s=>a(s.day)+(s.minutes??0)*6e4,f=(s,$)=>{let y=u(s)+$;return{day:A(y),...i.time?{minutes:Math.round(y%x/6e4)}:{}}};return o&&d?D(f(d,u(t)-u(o)),i):d&&u(d)>=u(t)?r:i.time?D(f(t,36e5),i):r}var Y=/^(start|starts|startsAt|startsOn|startAt|begins|from|opens|checkIn)$/i,B=/^(end|ends|endsAt|endsOn|endAt|until|to|finish|finishes|closes|through|checkOut)$/i;function Z(e,n={}){let r=(n.start&&e.includes(n.start)?n.start:void 0)??e.find(t=>Y.test(t)),i=(n.end&&e.includes(n.end)?n.end:void 0)??e.find(t=>t!==r&&B.test(t));return r&&i?{start:r,end:i}:void 0}var C=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],H=["sun","mon","tue","wed","thu","fri","sat"],T="(jan(?:uary)?|feb(?:ruary)?|mar(?:ch)?|apr(?:il)?|may|june?|july?|aug(?:ust)?|sept?(?:ember)?|oct(?:ober)?|nov(?:ember)?|dec(?:ember)?)",E="(sun(?:day)?|mon(?:day)?|tue(?:s|sday)?|wed(?:nesday)?|thu(?:r|rs|rsday)?|fri(?:day)?|sat(?:urday)?)",_=e=>C.indexOf(e.slice(0,3))+1,M=e=>e===void 0?void 0:e.length===2?2e3+Number(e):Number(e);function U(e){try{let n=new Intl.DateTimeFormat(e,{month:"numeric",day:"numeric"}).formatToParts(0).map(r=>r.type);return n.indexOf("month")<n.indexOf("day")}catch{return!0}}function v(e){let n=(t,o)=>({minutes:o,rest:`${e.slice(0,t.index)} ${e.slice(t.index+t[0].length)}`}),r=/\b(noon|midday)\b/.exec(e);if(r)return n(r,12*60);if(r=/\bmidnight\b/.exec(e),r)return n(r,0);if(r=/\b(\d{1,2})(?::(\d{2}))?\s*([ap])\.?m?\.?(?=\s|$)/.exec(e),r){let t=Number(r[1]),o=Number(r[2]??0);return t<1||t>12||o>59?{rest:e,bad:!0}:n(r,(t%12+(r[3]==="p"?12:0))*60+o)}if(r=/\b(\d{1,2}):(\d{2})\b/.exec(e),r){let t=Number(r[1]),o=Number(r[2]);return t>23||o>59?{rest:e,bad:!0}:n(r,t*60+o)}if(r=/\bat\s+(\d{1,2})\b/.exec(e),r){let t=Number(r[1]);return t>23?{rest:e,bad:!0}:n(r,(t>=1&&t<=7?t+12:t)*60)}let i=/\b(morning|afternoon|evening|tonight)\b/.exec(e);return i?{minutes:{morning:9,afternoon:15,evening:18,tonight:20}[i[1]]*60,rest:i[1]==="tonight"?`${e.slice(0,i.index)} today ${e.slice(i.index+i[0].length)}`:`${e.slice(0,i.index)} ${e.slice(i.index+i[0].length)}`}:{rest:e}}function K(e,n,r){let i=e.replace(/\b(on|at|the|of|this)\b/g," ").replace(/\s+/g," ").trim();if(i==="")return null;if(i==="today"||i==="now")return n;if(i==="tomorrow"||i==="tmrw"||i==="tmr")return p(n,1);if(i==="yesterday")return p(n,-1);if(i==="next week")return p(n,7);let t=/^in (\d{1,3}) (day|days|week|weeks)$/.exec(i);if(t)return p(n,Number(t[1])*(t[2].startsWith("week")?7:1));if(t=new RegExp(`^(next )?${E}$`).exec(i),t){let s=(H.indexOf(t[2].slice(0,3))-F(n)+7)%7;return p(n,t[1]&&s===0?7:s)}if(t=/^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(i),t)return c(Number(t[1]),Number(t[2]),Number(t[3]));let o=i.replace(new RegExp(`^${E} `),"");t=new RegExp(`^(\\d{1,2})(?:st|nd|rd|th)? ${T}(?: (\\d{4}))?$`).exec(o);let d=t?{date:t[1],month:t[2],year:t[3]}:void 0;t=new RegExp(`^${T} (\\d{1,2})(?:st|nd|rd|th)?(?: (\\d{4}))?$`).exec(o);let u=d??(t?{date:t[2],month:t[1],year:t[3]}:void 0);if(u)return R(n,M(u.year),_(u.month),Number(u.date));if(t=/^(\d{1,2})[/.-](\d{1,2})(?:[/.-](\d{2}|\d{4}))?$/.exec(o),t){let[f,s]=[Number(t[1]),Number(t[2])],[$,y]=U(r)?[f,s]:[s,f];return R(n,M(t[3]),$,y)}}function R(e,n,r,i){if(n!==void 0)return c(n,r,i);let t=Number(e.slice(0,4)),o=c(t,r,i);return o===void 0?c(t+1,r,i):a(e)-a(o)>183*x?c(t+1,r,i):o}function q(e){if(typeof e=="number")return Number.isInteger(e)&&e>=1e3&&e<=9999?String(e):void 0;let n=String(e).trim().toLowerCase().replace(/,/g," ").replace(/\s+/g," ");if(/^\d{4}$/.test(n))return Number(n)>=1e3?n:void 0;let r=(t,o)=>o>=1&&o<=12&&Number(t)>=1e3?`${t}-${String(o).padStart(2,"0")}`:void 0,i=/^(\d{4})[-/](\d{1,2})$/.exec(n);if(i)return r(i[1],Number(i[2]));if(i=/^(\d{1,2})\/(\d{4})$/.exec(n),i)return r(i[2],Number(i[1]));if(i=new RegExp(`^${T}\\.? (\\d{4})$`).exec(n),i)return r(i[2],_(i[1]))}function G(e,n){let r=e.trim();if(h(r)){let u=l(r);if(u)return n.time?u:{day:u.day}}let i=e.toLowerCase().replace(/,/g," ").replace(/(\d{4}-\d{2}-\d{2})t(\d\d:\d\d)(:\d\d(\.\d+)?)?/,"$1 $2").replace(/\s+/g," ").trim();if(i==="")return;let t=v(i);if(t.bad)return;let o=K(t.rest,n.today,n.locale??b);if(o===void 0||o===null&&t.minutes===void 0)return;let d=o??n.base?.day??n.today;return n.time?{day:d,minutes:t.minutes??n.base?.minutes??9*60}:{day:d}}function J(e){if(e===void 0||e==="web"||e.startsWith("ai:")||e.startsWith("app:"))return;if(e==="api")return"via the API";if(e==="cli")return"via the command line";let[n,...r]=e.split(":"),i=r.join(":");return(n==="mcp"||n==="view")&&i?`via ${i}`:n==="mcp"?"via an agent's tools":`via ${e}`}var j=e=>{if(!e.currency)return{before:!0};try{let n=w(e.locale),r=new Intl.NumberFormat(n,{style:"currency",currency:e.currency}).formatToParts(1),i=r.findIndex(d=>d.type==="currency"),t=r.findIndex(d=>d.type==="integer"),o;try{o=new Intl.DisplayNames([n],{type:"currency"}).of(e.currency)}catch{}return{...i>=0?{symbol:r[i].value}:{},before:i<t,...o?{name:o}:{}}}catch{return{symbol:e.currency,before:!0}}};function Q(e){let n=e.locale;if(e.format==="money"){let{symbol:r,before:i,name:t}=j(e),o=m(1250,n,{minimumFractionDigits:2,maximumFractionDigits:2});return{...r?i?{prefix:r}:{suffix:r}:{},placeholder:o,hint:t?`in ${t}`:e.currency?`in ${e.currency}`:"an amount of money"}}return e.format==="percent"?{suffix:"%",placeholder:m(15,n),hint:"as a percent"}:{...e.unit?{suffix:e.unit}:{},placeholder:"",hint:e.unit?`in ${e.unit}`:"a number"}}function V(e,n){return e===void 0||!Number.isFinite(e)?"":n.format==="money"?m(e,n.locale,Number.isInteger(e)?{maximumFractionDigits:0}:{minimumFractionDigits:2,maximumFractionDigits:2}):n.format==="percent"?m(e*100,n.locale,{maximumFractionDigits:4}):m(e,n.locale,{maximumFractionDigits:6})}function X(e){try{let n=new Intl.NumberFormat(w(e)).formatToParts(12345.6);return{group:n.find(r=>r.type==="group")?.value??",",decimal:n.find(r=>r.type==="decimal")?.value??"."}}catch{return{group:",",decimal:"."}}}function k(e,n){let{group:r,decimal:i}=X(n),t=e.replace(/[\s ']/g,"").replace(/[−–]/g,"-");if(i!=="."&&!t.includes(i)&&/^-?\d+\.\d{1,2}$/.test(t))return Number(t);if(r&&(t=t.split(r).join("")),i!=="."&&(t=t.replace(i,".")),!/^-?(\d+\.?\d*|\.\d+)$/.test(t))return;let o=Number(t);return Number.isFinite(o)?o:void 0}function ee(e,n){let r=e.trim();if(r==="")return;let i=n?.format==="money"&&n.currency?j(n).symbol:void 0,t=r;i&&(t=t.split(i).join("")),n?.currency&&(t=t.replace(new RegExp(n.currency,"gi"),"")),t=t.replace(/^[$€£¥₹]|[$€£¥₹]$/g,""),/%\s*$/.test(t)&&(t=t.replace(/%\s*$/,"")),n?.unit&&n.format!=="money"&&(t=t.replace(new RegExp(`\\s*${n.unit.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*$`),""));let d=k(t,n?.locale);if(d!==void 0)return n?.format==="percent"?d/100:d}export{J as a,Q as b,V as c,ee as d,I as e,h as f,l as g,D as h,P as i,z as j,Z as k,q as l,G as m};
|
|
@@ -1 +0,0 @@
|
|
|
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{Cb as L,N as H,P as N,Wc as j}from"./chunk.VSCIXAHN.js";var D=()=>(__graviewPreload(import.meta.url,["./chunk.I4XQBQRC.js","./chunk.PXQVXBNG.js","./chunk.B3WVCSW5.js","./chunk.VSCIXAHN.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.VMV464JK.js"));function W(n,l,c){let i=new Map;for(let u of c?.kinds??[])for(let o of n.nodesOfKind(u))l.has(o.id)||i.set(o.id,o);let t=new Set([...l,...i.keys()]),p=new Set(c?.edges??[]),k=new Set;if(p.size>0&&l.size>0){for(let u of l)for(let o of n.outEdges(u))p.has(o.kind)&&i.has(o.to)&&k.add(o.to);for(let u of i.keys())n.outEdges(u).some(o=>p.has(o.kind)&&l.has(o.to))&&k.add(u)}let S=new Map([...[...i].filter(([u])=>k.has(u)),...[...i].filter(([u])=>!k.has(u))]),h=[];if(p.size>0)for(let u of t)for(let o of n.outEdges(u))p.has(o.kind)&&t.has(o.to)&&h.push({kind:o.kind,from:o.from,to:o.to});return{nodes:[...S.values()],edges:h}}function E(n,l,c){let i=[];return()=>{let t=c();for(;i.length>0&&i[0]<=t-l;)i.shift();return i.length>=n?!1:(i.push(t),!0)}}function C(n={},l=Date.now){return{act:E(n.acts??30,n.actWindowMs??6e4,l),message:E(n.messages??120,n.messageWindowMs??1e3,l)}}var A=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function K(n,l){let c=l.flatMap(t=>A(t)&&typeof t.kind=="string"?[t.kind]:[]),i=j(n,c);return Object.keys(i).length>0?{choices:i}:{}}function J(n,l){let c=structuredClone(l),i=n.schema.tryDefinition(c.kind),t=c.label;return{...c,label:i?.label?i.label(c):typeof t=="string"&&t.length>0?t:c.id}}function I(n){let l=n.limiter??C(n.limits,n.now),c=n.limits?.maxHeight??4e3,i=`view:${n.view}`,t={applied:0,refused:0,dropped:0},p=()=>n.store.seenBy(n.principal),k=e=>J(n.store,e),S=()=>{if(n.props)return n.props();let e=p(),d=e.graph,r=n.input?.()??{},y=r.node?d.getNode(r.node.id):void 0,a=r.nodes?.flatMap(s=>{let m=d.getNode(s.id);return m?[m]:[]}),g=new Set([...y?[y.id]:[],...(a??[]).map(s=>s.id)]),f=[];for(let s of g)for(let m of d.outEdges(s))g.has(m.to)&&f.push({kind:m.kind,from:m.from,to:m.to});let G=W(d,g,n.reads),b=new Set(f.map(s=>`${s.kind} ${s.from} ${s.to}`));for(let s of G.edges)b.has(`${s.kind} ${s.from} ${s.to}`)||f.push(s);let v=G.nodes.length>0?[...a??[],...G.nodes]:a,M=s=>s?.filter(m=>d.has(m)),$=e.permittedMutations(n.principal).map(s=>({name:s.name,title:s.title??s.name,...s.description!==void 0?{description:s.description}:{},...s.subject?{subject:{kinds:s.subject.kinds,arg:s.subject.arg}}:{}}));return{view:n.view,...y?{node:k(y)}:{},...v?{nodes:v.map(k)}:{},edges:f,...r.label!==void 0?{label:r.label}:{},...r.fidelity!==void 0?{fidelity:r.fidelity}:{},...r.cardinality!==void 0?{cardinality:r.cardinality}:{},...r.mode!==void 0?{mode:r.mode}:{},...r.selected!==void 0?{selected:r.selected}:{},...r.implicated?{implicated:M(r.implicated)}:{},...r.flagged?{flagged:M(r.flagged)}:{},acts:$,...n.theme?{theme:n.theme()}:{},locale:H(),timeZone:N(),...K(n.store.schema,[...y?[y]:[],...v??[]]),...n.placesShown?{places:n.placesShown().map(({as:s,title:m,kind:F})=>({as:s,title:m,kind:F}))}:{}}},h=!1,u=0,o=new Set,x=()=>{if(h)return;u+=1,o.add(u),o.size>100&&o.delete(o.values().next().value);let e=S();n.send({type:"props",props:n.hand?n.hand(e):e,push:u})},R=!1,O=n.store.subscribe(()=>{R||(R=!0,queueMicrotask(()=>{R=!1,x()}))}),w=(e,d)=>(t.refused+=1,{ok:!1,reason:e,message:d}),z=(e,d,r)=>P([{name:e,args:d}],r),P=(e,d,r)=>{if(!l.act())return w("rate-limited","Too many acts asked for at once; this one was not applied.");let y=[];for(let{name:a,args:g}of e){if(d){let f=d(a,g);if(!f.ok)return w(f.reason,f.message);a=f.name,g=f.args}if(!n.store.allMutations().some(f=>f.name===a))return w("unknown-act","There is no act by that name here.");y.push({name:a,args:g})}try{let a=n.store.applyAll(y,{author:n.principal,via:i,...r?{intent:r}:{}});return t.applied+=1,{ok:!0,intent:a.intent}}catch(a){return a instanceof L?w("refused",a.refusal.message):w("failed","The act could not be applied.")}},T=(e,d,r)=>{let y=Array.isArray(r);if(typeof d!="string"||(y?r.length===0||r.length>100||!r.every(A):!A(r)))return t.refused+=1,n.send({type:"answer",id:e,ok:!1,reason:"malformed",message:"An act is asked for by name, with its arguments as an object, or a list of 1 to 100 of them for several as one change."});let a=P((y?r:[r]).map(g=>({name:d,args:g})),n.judgeAct);n.send(a.ok?{type:"answer",id:e,ok:!0,intent:a.intent}:{type:"answer",id:e,ok:!1,reason:a.reason,message:a.message})};return{receive(e){if(h)return;if(!(A(e)&&e.nonce===n.nonce&&e.type==="pushed"&&typeof e.push=="number"&&o.delete(e.push))&&!l.message()){t.dropped+=1,n.onFlood?.();return}if(!A(e)||e.nonce!==n.nonce){t.dropped+=1;return}if(e.type==="act"&&(typeof e.id=="string"||typeof e.id=="number"))return T(e.id,e.name,e.args);if(e.type==="navigate"&&n.onArrive&&(typeof e.place=="string"||typeof e.to=="string")){let r={...e.where!==void 0?{where:e.where}:{},...e.section!==void 0?{section:e.section}:{}},y=typeof e.place=="string"?{place:e.place,...r}:{record:e.to,...r},a=n.onArrive;D().then(({judgeDestination:g,listsOf:f})=>{if(h)return;let G=new Set([...n.store.kindsKeptFrom(n.principal),...n.store.modules.disabledKinds]),b=g(y,{sees:v=>p().graph.has(v),places:n.placesShown?.()??[],lists:f(n.store.schema,G),schema:n.store.schema});b.ok?a(b.arrival):(t.dropped+=1,n.onLost?.(b.says))});return}if(e.type==="navigate"&&typeof e.place=="string"){n.places?.().includes(e.place)?n.onNavigatePlace?.(e.place):t.dropped+=1;return}if(e.type==="navigate"&&typeof e.to=="string"){p().graph.has(e.to)?n.onNavigate?.(e.to):t.dropped+=1;return}if(e.type==="render"&&Array.isArray(e.records)&&n.onRender){n.onRender(e.records);return}if(e.type==="style"&&Array.isArray(e.sheets)&&e.sheets.every(r=>typeof r=="string")&&n.onStyle){n.onStyle(e.sheets);return}if(e.type==="hears"&&Array.isArray(e.events)&&n.onHears){n.onHears(e.events.filter(r=>typeof r=="string").slice(0,20));return}if(e.type==="clicks"&&Array.isArray(e.selectors)){n.onClicks?.(e.selectors.filter(r=>typeof r=="string"&&r.length<=500).slice(0,200));return}if(e.type==="gestures"&&Array.isArray(e.bound)&&n.onGestures){n.onGestures(e.bound.slice(0,32));return}if(e.type==="pushed"&&typeof e.push=="number"&&typeof e.ms=="number"&&n.onPushed){n.onPushed(e.push,e.ms);return}if(e.type==="size"&&typeof e.height=="number"&&Number.isFinite(e.height)){n.onSize?.(Math.max(0,Math.min(c,Math.round(e.height))));return}t.dropped+=1},push:x,pressed(e){return h?{ok:!1,reason:"refused",message:"The view has gone."}:e.ok?z(e.name,e.args):(t.refused+=1,e)},change(e,d){return h?{ok:!1,reason:"refused",message:"The view has gone."}:P(e,void 0,d)},get stats(){return t},dispose(){h=!0,O()}}}export{W as a,C as b,K as c,J as d,I as e};
|