graview 0.1.29 → 0.1.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/preview/{chunk.X53HI436.js → chunk.26CZTUY4.js} +1 -1
- package/dist/preview/chunk.2CIBWZJG.js +1 -0
- package/dist/preview/chunk.2EXGG6BB.js +1 -0
- package/dist/preview/chunk.2NBYNZRD.js +1 -0
- package/dist/preview/chunk.2XAONC66.js +1 -0
- package/dist/preview/chunk.34ZMMURV.js +27 -0
- package/dist/preview/{chunk.44FVJOK4.js → chunk.3ADPAGPY.js} +1 -1
- package/dist/preview/chunk.3JGGBLRB.js +1 -0
- package/dist/preview/chunk.3JNMSOFG.js +1 -0
- package/dist/preview/chunk.3R4W2P5X.js +1 -0
- package/dist/preview/chunk.3SKKIHU3.js +4 -0
- package/dist/preview/{chunk.OGXE2RHC.js → chunk.3URFMWXZ.js} +2 -2
- package/dist/preview/chunk.3VL5WECB.js +1 -0
- package/dist/preview/chunk.42YX6NOY.js +2 -0
- package/dist/preview/{chunk.XAXJHEMD.js → chunk.4ALKPNXM.js} +1 -1
- package/dist/preview/chunk.4HP7UWA2.js +1 -0
- package/dist/preview/{chunk.ZBXOX3W3.js → chunk.4SJUTBDV.js} +1 -1
- package/dist/preview/chunk.5U5J3ISK.js +1 -0
- package/dist/preview/{chunk.YCA7P5MK.js → chunk.6T2Q6NLO.js} +1 -1
- package/dist/preview/chunk.6V2RG5JG.js +5 -0
- package/dist/preview/chunk.6XMEU2Q2.js +1 -0
- package/dist/preview/chunk.7BWT5L2L.js +1 -0
- package/dist/preview/chunk.AK3IHFCF.js +1 -0
- package/dist/preview/chunk.BPWNWE7N.js +1 -0
- package/dist/preview/{chunk.YRQZZH5V.js → chunk.C5CYZNSJ.js} +1 -1
- package/dist/preview/chunk.CM6LOIQE.js +88 -0
- package/dist/preview/{chunk.IPBXAAQV.js → chunk.D3IECJ2S.js} +1 -1
- package/dist/preview/chunk.DT7LHWU2.js +1 -0
- package/dist/preview/chunk.DZRTOURR.js +1 -0
- package/dist/preview/{chunk.JNGUSAWX.js → chunk.ERXSYPYL.js} +17 -3
- package/dist/preview/chunk.FDELO7NY.js +116 -0
- package/dist/preview/chunk.FGVKJWNS.js +6 -0
- package/dist/preview/{chunk.7D77HEIJ.js → chunk.FWCOJDOD.js} +1 -1
- package/dist/preview/chunk.GFF2FB2J.js +25 -0
- package/dist/preview/chunk.GLBHQFJ2.js +1 -0
- package/dist/preview/{chunk.ZSKP6UQS.js → chunk.HHI65WFZ.js} +1 -1
- package/dist/preview/chunk.HHPGWJDO.js +2 -0
- package/dist/preview/chunk.HSCTWAUV.js +1 -0
- package/dist/preview/chunk.INZUEWC5.js +1 -0
- package/dist/preview/{chunk.QNHECGMH.js → chunk.J2ITFGN3.js} +1 -1
- package/dist/preview/chunk.JH6MU6TX.js +2 -0
- package/dist/preview/chunk.JISMMIMX.js +1 -0
- package/dist/preview/chunk.JN7DIFR3.js +1 -0
- package/dist/preview/chunk.JPHNKWTY.js +1 -0
- package/dist/preview/chunk.JTNWD2CN.js +1 -0
- package/dist/preview/chunk.K75FUIZI.js +1 -0
- package/dist/preview/chunk.K776HO42.js +2 -0
- package/dist/preview/chunk.KN3ULTGF.js +1 -0
- package/dist/preview/chunk.KOB6N3SL.js +1 -0
- package/dist/preview/chunk.KQT7WAQE.js +1 -0
- package/dist/preview/chunk.L4DECHXR.js +327 -0
- package/dist/preview/{chunk.J46KDTEZ.js → chunk.L6OMEYL6.js} +1 -1
- package/dist/preview/chunk.LQ7V6KEE.js +1 -0
- package/dist/preview/{chunk.AVUS5LMG.js → chunk.MD74YVRN.js} +2 -2
- package/dist/preview/chunk.MGNP4LAM.js +1 -0
- package/dist/preview/chunk.NCTOBUCT.js +1 -0
- package/dist/preview/chunk.NDADLJE6.js +1 -0
- package/dist/preview/{chunk.64P76WK4.js → chunk.NO52VON3.js} +1 -1
- package/dist/preview/{chunk.5AT4O4BN.js → chunk.O2LK2AO7.js} +1 -1
- package/dist/preview/chunk.OAF7TUMI.js +1 -0
- package/dist/preview/{chunk.WLRTPFAC.js → chunk.OQ4KFN6W.js} +1 -1
- package/dist/preview/chunk.OXQMNIRO.js +1 -0
- package/dist/preview/chunk.OZNW5W4Z.js +1 -0
- package/dist/preview/{chunk.HV6I74DF.js → chunk.PAVR5TK5.js} +1 -1
- package/dist/preview/chunk.PKK6FRZR.js +2 -0
- package/dist/preview/chunk.QIAKO27D.js +1 -0
- package/dist/preview/{chunk.CK7QWLMX.js → chunk.QNGWEV47.js} +1 -1
- package/dist/preview/{chunk.3G5MQFZK.js → chunk.QTA4ROAK.js} +1 -1
- package/dist/preview/chunk.QTMWHE5O.js +1 -0
- package/dist/preview/chunk.R26DREVU.js +1 -0
- package/dist/preview/chunk.RI3PYG5T.js +19 -0
- package/dist/preview/{chunk.ONGVH3ZM.js → chunk.RIEHYQLK.js} +44 -19
- package/dist/preview/chunk.RRVIXV7W.js +1 -0
- package/dist/preview/{chunk.BZ5OJYHU.js → chunk.RYT5U3QM.js} +1 -1
- package/dist/preview/chunk.SE5SKFQH.js +1 -0
- package/dist/preview/chunk.SHPXD6FC.js +1 -0
- package/dist/preview/chunk.SOBC3CTN.js +47 -0
- package/dist/preview/chunk.SOD3PBJM.js +1 -0
- package/dist/preview/{chunk.QSDT2RLY.js → chunk.T3VPD7JQ.js} +1 -1
- package/dist/preview/chunk.TI4OSTQV.js +1 -0
- package/dist/preview/chunk.UDSEJKCY.js +1 -0
- package/dist/preview/chunk.UGFDSE37.js +1 -0
- package/dist/preview/{chunk.IZW7DBK4.js → chunk.UWGWXFWZ.js} +1 -1
- package/dist/preview/{chunk.T4LY5QXO.js → chunk.UZWWDAGM.js} +1 -1
- package/dist/preview/chunk.V5ZYUVMH.js +1 -0
- package/dist/preview/chunk.V7BDAGDE.js +35 -0
- package/dist/preview/chunk.VG56IUIQ.js +9 -0
- package/dist/preview/chunk.VOAZBHCG.js +1 -0
- package/dist/preview/{chunk.O4QPITBD.js → chunk.VS7K3SCD.js} +1 -1
- package/dist/preview/{chunk.Z5V23DQN.js → chunk.VSZQXB4Q.js} +2 -2
- package/dist/preview/chunk.W3S6UXNA.js +1 -0
- package/dist/preview/chunk.WAFDCOOG.js +3 -0
- package/dist/preview/chunk.WYTIOLPP.js +1 -0
- package/dist/preview/chunk.X37L5TN5.js +1 -0
- package/dist/preview/{chunk.GZH6PTXN.js → chunk.XRJBLH4N.js} +1 -1
- package/dist/preview/{chunk.D4GOVA25.js → chunk.XS7YFNDU.js} +1 -1
- package/dist/preview/{chunk.V6TK4LHW.js → chunk.XSTXV6FP.js} +4 -4
- package/dist/preview/chunk.Y4UXEL6Y.js +1 -0
- package/dist/preview/chunk.YJUB4OD7.js +1 -0
- package/dist/preview/chunk.YLQB3KBA.js +1 -0
- package/dist/preview/{chunk.XXHNV24G.js → chunk.YNQDVGZM.js} +1 -1
- package/dist/preview/chunk.YV2LJFGS.js +1 -0
- package/dist/preview/chunk.Z2YUYZT4.js +1 -0
- package/dist/preview/chunk.ZYKAS4BT.js +1 -0
- package/dist/preview/page.js +6 -6
- package/package.json +6 -6
- package/dist/preview/chunk.2643W7FT.js +0 -1
- package/dist/preview/chunk.2CLPRG3I.js +0 -1
- package/dist/preview/chunk.2IZFIORK.js +0 -1
- package/dist/preview/chunk.2NCTM5K2.js +0 -2
- package/dist/preview/chunk.3JM2TNDD.js +0 -2
- package/dist/preview/chunk.4GGAPOMK.js +0 -2
- package/dist/preview/chunk.5JXUAMKI.js +0 -1
- package/dist/preview/chunk.5R66YTET.js +0 -2
- package/dist/preview/chunk.7DNFXJH3.js +0 -1
- package/dist/preview/chunk.7PRFYYVM.js +0 -1
- package/dist/preview/chunk.AE5GKL4C.js +0 -1
- package/dist/preview/chunk.ARR75WBP.js +0 -35
- package/dist/preview/chunk.BKPGDEES.js +0 -1
- package/dist/preview/chunk.COTG2IG5.js +0 -1
- package/dist/preview/chunk.DAA6XWLF.js +0 -1
- package/dist/preview/chunk.DKTCRFMS.js +0 -1
- package/dist/preview/chunk.DLGTFXGM.js +0 -1
- package/dist/preview/chunk.DN7SN6ZR.js +0 -1
- package/dist/preview/chunk.G4WQGTZR.js +0 -3
- package/dist/preview/chunk.GDA3G4U2.js +0 -6
- package/dist/preview/chunk.GS4T26WW.js +0 -328
- package/dist/preview/chunk.HFKMHLJ3.js +0 -1
- package/dist/preview/chunk.HGAMNIST.js +0 -1
- package/dist/preview/chunk.HKBKH7EK.js +0 -1
- package/dist/preview/chunk.HLLWKSZB.js +0 -5
- package/dist/preview/chunk.HONUT6OG.js +0 -1
- package/dist/preview/chunk.HRWLR7T4.js +0 -1
- package/dist/preview/chunk.IWYUFYDJ.js +0 -1
- package/dist/preview/chunk.JU2ZVKMT.js +0 -2
- package/dist/preview/chunk.K4ZUVH2G.js +0 -1
- package/dist/preview/chunk.KC6UZHBM.js +0 -1
- package/dist/preview/chunk.KLITC55P.js +0 -1
- package/dist/preview/chunk.KZ2376BD.js +0 -19
- package/dist/preview/chunk.LYJAVUST.js +0 -1
- package/dist/preview/chunk.MOUGB4H6.js +0 -1
- package/dist/preview/chunk.MYFWM572.js +0 -1
- package/dist/preview/chunk.N4FBDA2W.js +0 -1
- package/dist/preview/chunk.O42YET3W.js +0 -1
- package/dist/preview/chunk.ONDILMIX.js +0 -1
- package/dist/preview/chunk.OWBEV6FR.js +0 -1
- package/dist/preview/chunk.OWE6OJ4P.js +0 -1
- package/dist/preview/chunk.OYJSFO3A.js +0 -1
- package/dist/preview/chunk.P62SKNJS.js +0 -27
- package/dist/preview/chunk.PA5HYAEO.js +0 -1
- package/dist/preview/chunk.PMEDLEZY.js +0 -9
- package/dist/preview/chunk.PTXQHHKF.js +0 -1
- package/dist/preview/chunk.R2D373VG.js +0 -1
- package/dist/preview/chunk.RB4RTBRZ.js +0 -1
- package/dist/preview/chunk.RCLJ4H52.js +0 -116
- package/dist/preview/chunk.RKRSRKF3.js +0 -1
- package/dist/preview/chunk.RWGLKDWH.js +0 -1
- package/dist/preview/chunk.SIL4KD3K.js +0 -1
- package/dist/preview/chunk.SS76EIMI.js +0 -1
- package/dist/preview/chunk.UIIVEQAT.js +0 -1
- package/dist/preview/chunk.UTHHX2TJ.js +0 -1
- package/dist/preview/chunk.UWNYT7PF.js +0 -1
- package/dist/preview/chunk.VNBO2RXD.js +0 -1
- package/dist/preview/chunk.VPPUTA74.js +0 -1
- package/dist/preview/chunk.WKXNBHTL.js +0 -4
- package/dist/preview/chunk.XDZSTIS6.js +0 -88
- package/dist/preview/chunk.YUWRZWGX.js +0 -1
- package/dist/preview/chunk.Z2RGLFLS.js +0 -1
- package/dist/preview/chunk.Z56B2JR2.js +0 -25
- package/dist/preview/chunk.ZEGSQCSD.js +0 -1
- package/dist/preview/chunk.ZEVVWWNA.js +0 -44
- package/dist/preview/chunk.ZS4DJ76C.js +0 -1
- /package/dist/preview/{chunk.OHE5AMHH.js → chunk.EYZ7MHBZ.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "graview",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.30",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The Graview command line: start a product, check its declaration, write its agent docs, serve its store, preview a document with no product and photograph its places, say whether a product is on one release, host it for an agent over MCP, apply an act to it, sync its seed, install the authoring skills. The tool; @graview/* is the framework.",
|
|
6
6
|
"keywords": [
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@graview/
|
|
33
|
-
"@graview/
|
|
34
|
-
"@graview/
|
|
35
|
-
"@graview/
|
|
36
|
-
"@graview/
|
|
32
|
+
"@graview/ship": "0.1.30",
|
|
33
|
+
"@graview/skills": "0.1.30",
|
|
34
|
+
"@graview/tools": "0.1.30",
|
|
35
|
+
"@graview/core": "0.1.30",
|
|
36
|
+
"@graview/guest": "0.1.30"
|
|
37
37
|
},
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=22"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as a,j as o}from"./chunk.BKPGDEES.js";import"./chunk.JNGUSAWX.js";import"./chunk.CK7QWLMX.js";import"./chunk.QNHECGMH.js";import"./chunk.IZW7DBK4.js";import"./chunk.RKRSRKF3.js";import"./chunk.KC6UZHBM.js";import"./chunk.3G5MQFZK.js";import"./chunk.2CLPRG3I.js";import"./chunk.O42YET3W.js";import"./chunk.Z5V23DQN.js";import"./chunk.OHE5AMHH.js";import"./chunk.OYJSFO3A.js";import"./chunk.HV6I74DF.js";import"./chunk.WVUJXDXZ.js";import"./chunk.DAA6XWLF.js";import"./chunk.7DNFXJH3.js";import"./chunk.7PRFYYVM.js";import"./chunk.2NCTM5K2.js";import"./chunk.JU2ZVKMT.js";import"./chunk.HGAMNIST.js";import"./chunk.OQDETV4X.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.GS4T26WW.js";import{ca as n}from"./chunk.Z56B2JR2.js";import"./chunk.HLLWKSZB.js";import"./chunk.AJZBJBMO.js";var w=new WeakMap;function s(e,i){let t=w.get(e);t||w.set(e,t=new Map);let r=t.get(i);return r||t.set(i,r=a(o(e,n(e)),e,i)),r}export{s as frameworkViews};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h}from"./chunk.GS4T26WW.js";import{F as P,M as u,O as f}from"./chunk.Z56B2JR2.js";import{b as g}from"./chunk.AJZBJBMO.js";var s=g(P(),1);var e=g(u(),1);var y={default:{background:"var(--graview-panel, #ffffff)",color:"var(--graview-ink, #1a1a1a)"},muted:{background:"var(--graview-panel-muted, #f7f5f1)",color:"var(--graview-ink, #1a1a1a)"},warning:{background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)"}},k={color:"var(--graview-ink-muted, #55514a)"},R={color:"var(--graview-ink-faint, #625d55)"};function N(r){let[t,i]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{let a=r.current;if(!a||typeof ResizeObserver>"u")return;let o=()=>i(a.scrollHeight>a.clientHeight+1||a.scrollWidth>a.clientWidth+1);o();let d=new ResizeObserver(o);d.observe(a);for(let l of a.children)d.observe(l);return()=>d.disconnect()}),t}var C=(0,s.createContext)(null);function T({level:r,style:t,children:i}){if(r===void 0)return(0,e.jsx)("strong",{style:t,children:i});let a=`h${r}`;return(0,e.jsx)(a,{style:{margin:0,...t},children:i})}function z({title:r,subtitle:t,meta:i,selected:a,tone:o="default",children:d,style:l,fit:p=!1,variant:w,heading:x}){let c=(0,s.useRef)(null),v=N(c),b=f(),n=(w??(b==="fullscreen"?"page":"card"))==="page",S=(0,s.useContext)(C);return(0,e.jsxs)("div",{"data-graview-primitive":"panel","data-graview-variant":n?"page":"card","data-selected":a||void 0,style:{display:"flex",flexDirection:"column",gap:n?12:"var(--graview-gap, 7px)",height:n||p?"auto":"100%",maxHeight:n?"none":"100%",padding:n?0:"var(--graview-pad, 15px)",boxSizing:"border-box",borderRadius:n?0:"var(--graview-radius, 12px)",border:n?"none":`1px solid ${a?"var(--graview-accent, #2f6f5e)":"var(--graview-edge, #e4e0d8)"}`,boxShadow:n?"none":a?"0 0 0 1px var(--graview-accent-dim), var(--graview-lift-low)":"var(--graview-lift-low)",overflow:n?"visible":"hidden",...y[o],...n?{background:"transparent"}:{},"--graview-panel-bg":y[o].background,...l},children:[o==="warning"?(0,e.jsx)("span",{"data-graview-broken":"",style:h,children:"Implicated in a problem."}):null,r===void 0||r===S?null:(0,e.jsxs)("div",{style:{display:"flex",alignItems:"baseline",flexWrap:"wrap",gap:8,minWidth:0},children:[o==="warning"?(0,e.jsx)("span",{"aria-hidden":"true",title:"Implicated in a problem",style:{color:"var(--graview-warn)",flex:"0 0 auto"},children:"\u26A0"}):null,(0,e.jsx)(T,{level:x,style:{fontFamily:"var(--graview-font-display, inherit)",fontSize:n?"1.5625rem":"0.9375rem",lineHeight:n?1.15:1.25,fontWeight:n?600:560,letterSpacing:n?"-0.012em":"0.005em",minWidth:0,overflowWrap:"anywhere"},children:r}),i===void 0?null:(0,e.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",letterSpacing:"0.08em",textTransform:"uppercase",minWidth:0,overflowWrap:"anywhere",...R},children:i})]}),t===void 0?null:(0,e.jsx)("div",{style:{fontSize:n?"0.90625rem":"0.8125rem",lineHeight:1.5,...k},children:t}),(0,e.jsx)("div",{ref:c,className:n?void 0:"graview-scroll",...v&&!n?{tabIndex:0,role:"region",...typeof r=="string"?{"aria-label":r}:{}}:{},style:{display:"flex",flexDirection:"column",gap:n?22:"var(--graview-gap, 7px)",flex:"1 1 auto",...n?{overflow:"visible"}:{}},"data-graview-overflowing":v&&!n?"":void 0,children:d})]})}function m({label:r,hue:t,selected:i,title:a,pickId:o,emphasis:d}){let l=typeof r=="string"?r:void 0,p=t===void 0?void 0:Math.round(t);return(0,e.jsxs)("span",{"data-graview-primitive":"chip","data-selected":i||void 0,"data-graview-pick":o,"data-graview-emphasis":d,title:a??l,style:{cursor:o?"pointer":void 0,display:"inline-flex",alignItems:"center",alignSelf:"flex-start",minHeight:24,boxSizing:"border-box",padding:"3px 9px",borderRadius:6,fontSize:"0.8125rem",lineHeight:1.5,whiteSpace:"nowrap",maxWidth:"min(28ch, 100%)",overflow:"hidden",letterSpacing:"0.01em",border:`1px solid ${i?"var(--graview-accent)":p===void 0?"var(--graview-edge)":`hsl(${p} 55% var(--graview-tint-lightness) / 0.45)`}`,background:p===void 0?"var(--graview-panel-muted)":`hsl(${p} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * 0.65))`,color:"var(--graview-ink, #1a1a1a)",boxShadow:i?"0 0 14px -4px var(--graview-accent)":void 0},children:[p===void 0?null:(0,e.jsx)("span",{"aria-hidden":"true",style:{width:9,height:6,clipPath:"polygon(50% 0, 100% 50%, 50% 100%, 0 50%)",flex:"0 0 auto",marginRight:6,background:`hsl(${p} 55% var(--graview-tint-lightness) / 0.9)`}}),(0,e.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r})]})}function H({items:r,max:t=8,selectedIds:i=[],pick:a=!1}){let o=r.slice(0,t),d=r.length-o.length;return(0,e.jsxs)("div",{"data-graview-primitive":"roster",style:{display:"flex",flexWrap:"wrap",gap:6,alignContent:"flex-start"},children:[o.map(l=>(0,e.jsx)(m,{label:l.label,...l.hue===void 0?{}:{hue:l.hue},...a?{pickId:l.id}:{},...l.emphasis===void 0?{}:{emphasis:l.emphasis},selected:i.includes(l.id)},l.id)),d>0?(0,e.jsx)(m,{label:`+${d} more`}):null]})}function E({label:r,count:t,items:i,onExpand:a,flagged:o,problems:d}){return(0,e.jsx)(z,{title:r,meta:d?(0,e.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[d,(0,e.jsx)("span",{children:t})]}):t,tone:o?"warning":"muted",style:a?{cursor:"zoom-in"}:void 0,children:i&&i.length>0?(0,e.jsx)(H,{items:i,max:6,pick:!0}):null})}export{C as a,z as b,m as c,H as d,E as e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as r,b as m,d as k,e as h}from"./chunk.ONDILMIX.js";import"./chunk.GS4T26WW.js";import"./chunk.Z56B2JR2.js";import"./chunk.HLLWKSZB.js";import"./chunk.AJZBJBMO.js";var c="way-back",S='[data-testid="notices-toasts"]';function g(n){let o=document.activeElement;o!==null&&o!==document.body&&!o.closest(S)||(n??document).querySelector('[data-graview-app-bar] [data-testid="app-home"]')?.focus({preventScroll:!0})}function w(n,o,a,d,y){let s=y?.closest("[data-graview-embed]"),i,f=e=>{if(e!==void 0&&r(n,o)?.batch!==e)return!1;try{let t=k(n,o);return t&&a?.notify({kind:"toast",id:c,sentence:`Took back \u201C${t.intent}\u201D`}),t!==void 0}catch(t){return a?.notify({kind:"toast",id:c,tone:"warn",sentence:t instanceof Error?t.message:String(t)}),!0}},u=()=>{let e=m(n,o,d);if(d=n.batches().length,e){let t=i=e.batch;a?.notify({kind:"toast",id:c,sentence:e.intent,timeout:1e4,action:{label:"Take back",onSelect:()=>(g(s),f(t))}})}else i&&r(n,o)?.batch!==i&&(i=void 0,a?.dismiss(c))},l=e=>{h(e)&&(!s||s.contains(e.target))&&f()&&e.preventDefault()};u();let b=n.subscribe(u);return document.addEventListener("keydown",l),(e=!1)=>{b(),document.removeEventListener("keydown",l),e&&i&&a?.dismiss(c)}}export{w as sceneWay};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{f as O,k as b}from"./chunk.JU2ZVKMT.js";function K(n,s){return s===1&&["every","some","sum","min","max","sort"].includes(n.fn)}function S(n){let s=new Set,e=new Set,r=[],a=[],o=new Set(O),i=(l,f)=>{switch(l.t){case"lit":return;case"ident":f||s.add(l.name);return;case"list":l.items.forEach(c=>i(c,f));return;case"member":i(l.object,f);return;case"unary":i(l.operand,f);return;case"binary":i(l.left,f),i(l.right,f);return;case"where":i(l.set,f),i(l.filter,!0);return;case"call":{e.add(l.fn);let c=(l.fn==="out"||l.fn==="in")&&l.args.length===2?l.args[1]:l.args[0],m=c?.t==="lit"&&typeof c.value=="string"?c.value:void 0;l.fn==="all"&&m&&r.push(m),(l.fn==="out"||l.fn==="in")&&m&&a.push(m),l.args.forEach((k,x)=>i(k,f||K(l,x)));return}}};return i(n,!1),{names:s,functions:e,unknownFunctions:[...e].filter(l=>!o.has(l)),sweeps:r,edges:a}}var p=class extends Error{constructor(e,r,a){super(`${e} (at character ${r+1} of "${a}")`);this.sentence=e;this.at=r;this.source=a}},q=["||","&&","==","!=","<=",">=","<",">","!","|","&","+","-","*","/","%","(",")","[","]",",","."],F={and:"&&",or:"||",not:"!"},M=2e3;function I(n){let s=[],e=0;for(;e<n.length;){let r=n[e];if(r===" "||r===" "||r===`
|
|
2
|
-
`||r==="\r"){e++;continue}if(r>="0"&&r<="9"){let o=e;for(;e<n.length&&/[0-9.]/.test(n[e]);)e++;let i=n.slice(o,e),l=Number(i);if(!Number.isFinite(l)||i.split(".").length>2)throw new p(`"${i}" is not a number`,o,n);s.push({k:"num",v:l,at:o});continue}if(r==="'"||r==='"'){let o=e++,i="";for(;e<n.length&&n[e]!==r;)n[e]==="\\"&&e+1<n.length&&e++,i+=n[e++];if(e>=n.length)throw new p("a quoted word is never closed",o,n);e++,s.push({k:"str",v:i,at:o});continue}if(/[A-Za-z_]/.test(r)){let o=e;for(;e<n.length&&/[A-Za-z0-9_]/.test(n[e]);)e++;let i=n.slice(o,e),l=Object.hasOwn(F,i)?F[i]:void 0;s.push(l?{k:"op",v:l,at:o}:{k:"id",v:i,at:o});continue}let a=q.find(o=>n.startsWith(o,e));if(!a)throw new p(`"${r}" is not part of the rule language`,e,n);s.push({k:"op",v:a,at:e}),e+=a.length}return s.push({k:"end",at:n.length}),s}function w(n){if(n.length>M)throw new p(`an expression may be at most ${M} characters`,0,n.slice(0,40));let s=I(n),e=0,r=()=>s[e],a=t=>{let d=r();return d.k==="op"&&d.v===t},o=t=>{let d=r();return d.k==="id"&&d.v===t},i=(t,d)=>{if(!a(t))throw new p(`expected ${d}`,r().at,n);e++},l=0,f=(t,d)=>{if(++l>64)throw new p("the expression nests too deeply",t,n);try{return d()}finally{l--}},c=(t,d)=>()=>{let u=d();for(;;){let y=r(),R=y.k==="op"?t.find(B=>B===y.v):y.k==="id"&&y.v==="in"&&t.includes("in")?"in":void 0;if(!R)return u;e++,u={t:"binary",op:R,left:u,right:d(),at:y.at}}},m=()=>{let t=r();if(t.k==="num")return e++,{t:"lit",value:t.v,at:t.at};if(t.k==="str")return e++,{t:"lit",value:t.v,at:t.at};if(t.k==="id"){if(e++,t.v==="true"||t.v==="false")return{t:"lit",value:t.v==="true",at:t.at};if(t.v==="null")return{t:"lit",value:null,at:t.at};if(a("(")){e++;let d=[];if(!a(")"))for(;;){if(d.push(h()),a(",")){e++;continue}break}return i(")",`")" to close ${t.v}(\u2026)`),{t:"call",fn:t.v,args:d,at:t.at}}return{t:"ident",name:t.v,at:t.at}}if(t.k==="op"&&t.v==="("){e++;let d=f(t.at,h);return i(")",'a ")"'),d}if(t.k==="op"&&t.v==="["){e++;let d=[];if(!a("]"))for(;;){if(d.push(h()),a(",")){e++;continue}break}return i("]",'a "]" to close the list'),{t:"list",items:d,at:t.at}}throw t.k==="end"?new p("the expression ends too soon",t.at,n):new p(`"${t.k==="op"?t.v:""}" cannot start a value here`,t.at,n)},k=()=>{let t=m();for(;;){if(a(".")){let d=r();e++;let u=r();if(u.k!=="id")throw new p('expected a field name after "."',u.at,n);e++,t={t:"member",object:t,name:u.v,at:d.at};continue}if(o("where")){let d=r().at;e++,t={t:"where",set:t,filter:f(d,h),at:d};continue}return t}},x=()=>{let t=r();return t.k==="op"&&(t.v==="!"||t.v==="-")?(e++,{t:"unary",op:t.v,operand:f(t.at,x),at:t.at}):k()},T=c(["*","/","%"],x),C=c(["+","-"],T),A=c(["&"],C),v=c(["|"],A),P=()=>{let t=v(),d=r(),u=d.k==="op"&&["==","!=","<","<=",">",">="].includes(d.v)?d.v:d.k==="id"&&d.v==="in"?"in":void 0;return u?(e++,{t:"binary",op:u,left:t,right:v(),at:d.at}):t},$=()=>{let t=r();return t.k==="op"&&t.v==="!"?(e++,{t:"unary",op:"!",operand:f(t.at,$),at:t.at}):P()},z=c(["&&"],$),N=c(["||"],z);function h(){return N()}let _=h();if(r().k!=="end")throw new p("there is more after the end of the expression",r().at,n);return _}function D(n){let s,e=-1,r=0;for(let a=0;a<n.length;a++){let o=n[a];if(s){o==="\\"?a++:o===s&&(s=void 0);continue}o==="'"||o==='"'?s=o:o==="("||o==="["?r++:o===")"||o==="]"?r--:o==="|"&&r===0&&(n[a+1]==="|"?a++:e=a)}return e}var E=/\s*(?:'((?:[^'\\]|\\.)*)'|"((?:[^"\\]|\\.)*)")\s*(,|$)/y;function H(n){let s=n.indexOf(":"),e=(s>=0?n.slice(0,s):n).trim();if(!b.includes(e))throw new g(`"${e}" is not a formatter; use one of ${b.join(", ")}`);let r=[];if(s>=0&&e==="excerpt"){let a=n.slice(s+1).trim();if(!/^\d+$/.test(a)||Number(a)<20||Number(a)>1e3)throw new g("excerpt is told at most how many characters, 20 to 1000: {summary | excerpt: 80}");r.push(a)}else if(s>=0){let a=n.slice(s+1),o=0;for(;o<a.length;){E.lastIndex=o;let i=E.exec(a);if(!i)throw new g(`"${e}" is told quoted words, like ${e}: 'offer'`);if(r.push((i[1]??i[2]??"").replace(/\\(.)/g,"$1")),o=E.lastIndex,i[3]==="")break}}if(e==="plural"&&(r.length<1||r.length>2))throw new g("plural is told its noun, like {count | plural: 'offer'}, and its plural where English does not make it: plural: 'person', 'people'");if(e!=="plural"&&e!=="excerpt"&&r.length>0)throw new g(`"${e}" takes nothing after it`);return{format:e,args:r}}var g=class extends Error{constructor(e){super(e);this.sentence=e}};function J(n){let s=[],e=0;for(;e<n.length;){let r=n.indexOf("{",e);if(r<0){s.push({text:n.slice(e)});break}r>e&&s.push({text:n.slice(e,r)});let a=n.indexOf("}",r);if(a<0)throw new g(`a "{" at character ${r+1} is never closed`);let o=n.slice(r+1,a),i=D(o),l=(i>=0?o.slice(0,i):o).trim(),f=i>=0?H(o.slice(i+1)):void 0;s.push({expr:w(l),source:l,...f?{format:f.format}:{},...f&&f.args.length>0?{formatArgs:f.args}:{}}),e=a+1}return s}function j(n){let s=new Map;for(let[e,r]of Object.entries(n?.computed??{}))s.set(e,typeof r=="string"?{expr:r}:r);return s}function te(n){let s=j(n);if(s.size===0)return;let e=new Map;for(let[r,a]of s)try{e.set(r,w(a.expr))}catch(o){if(!(o instanceof p))throw o}return e}function L(n,s,e=new Set){let r=j(n).get(s);if(!r||e.has(s))return!1;let a;try{a=w(r.expr)}catch{return!1}let o=S(a);if(o.edges.length>0||o.sweeps.length>0||[...o.functions].some(c=>c==="out"||c==="in"||c==="all"))return!1;let i=n.fields,l=c=>i instanceof Set?i.has(c):Object.hasOwn(i,c),f=new Set([...e,s]);return[...o.names].every(c=>l(c)||L(n,c,f))}export{S as a,p as b,w as c,g as d,J as e,j as f,te as g,L as h};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as xe}from"./chunk.COTG2IG5.js";import{e as ye,f as he,i as be,j as J,k as we}from"./chunk.DAA6XWLF.js";import{f as pe}from"./chunk.2NCTM5K2.js";import{d as E,e as ge}from"./chunk.5R66YTET.js";import{b as me,e as fe}from"./chunk.G4WQGTZR.js";import{B as z,G as ne,Rb as le,V as W,W as K,Y as te,Z as X,_ as re,_a as oe,aa as _,ac as de,hb as q,ib as se,jc as ce,rc as ue,vb as ie,xb as ae}from"./chunk.HLLWKSZB.js";function Ae(t,r,n){let s=t.tryDefinition(r)?.fields.shape,e=z(s?.[n]),l=!1,i=!1;for(;e&&(e.type==="optional"||e.type==="default"||e.type==="nullable"||e.type==="prefault");)(e.type==="optional"||e.type==="nullable")&&(l=!0),(e.type==="default"||e.type==="prefault")&&(i=!0),e=z(e.innerType);if(e?.type!=="enum")return;let y=(e.entries?Object.values(e.entries):e.values??[]).filter(u=>typeof u=="string");return y.length>0?{values:y,empty:l&&!i}:void 0}function H(t,r,n){let s=Ae(t,r,n);if(!s)return[];let e=t.tryDefinition(r),l=s.values.map(i=>({value:i,label:me(e,n,i)}));return s.empty&&l.push({value:null,label:`No ${_(e,n).toLowerCase()}`}),l}function U(t,r,n){let s=t[r];return typeof s=="string"&&n.some(e=>e.value===s)?s:null}function Q(t,r,n,s,e=H(t.schema,n.kind,s)){let l=ke(t.schema,t.allMutations(),n.kind,s,e),i=U(n,s,e),y=[];for(let{value:u,by:A,acts:O}of l)if(u!==i)for(let v of O){let B=A==="step"?{[v.subject.arg]:n.id}:{[v.subject.arg]:n.id,[s]:u},R={name:v.name,args:B};if(v.input.safeParse(B).success&&t.permits(R,r).ok){try{oe(t.graph,v,B)}catch{continue}y.push({to:u,call:R,title:v.title??v.name});break}}return y}function ke(t,r,n,s,e=H(t,n,s)){let l=ve(t,r,n,s),i=$e(t,r,n,s);return e.flatMap(y=>{if(y.value===null)return[];let u=l.filter(A=>A.sets?.[s]===y.value);return[{value:y.value,label:y.label,by:u.length>0?"step":i.length>0?"value":"none",acts:u.length>0?u:i}]})}function ve(t,r,n,s){return r.filter(e=>e.subject!==void 0&&e.derived===void 0&&typeof e.sets?.[s]=="string"&&q(t,e).includes(n))}function $e(t,r,n,s){let e=t.tryDefinition(n);return e?r.filter(l=>{if(!l.subject||!q(t,l).includes(n)||!se(l,e).includes(s))return!1;let i=l.input.shape;return i!==void 0&&s in i}).sort((l,i)=>+(l.derived!==void 0)-+(i.derived!==void 0)):[]}var Y=(t,r)=>r&&t[r]!==void 0?String(t[r]):"";function Ce(t,r,n){let s=d=>t.tryDefinition(d)?r.nodesOfKind(d).filter($=>W(t.tryDefinition(d),$)):[],e=s(n.rows),l=s(n.columns),i=new Set(e.map(d=>d.id)),y=new Set(l.map(d=>d.id)),u=r.allEdges(),A=[],O=n.link;if(typeof O=="string"){let d=p=>t.tryDefinition(p)?.edges?.[O]?.to,$=(d(n.columns)??[]).some(p=>p===n.rows||p==="*"),k=(d(n.rows)??[]).some(p=>p===n.columns||p==="*"),D=$||!k;for(let p of u){if(p.kind!==O)continue;let m=D?p.to:p.from,o=D?p.from:p.to;i.has(m)&&y.has(o)&&A.push({rowId:m,columnId:o,via:[]})}}else{let d=new Map(O.path.map(k=>[k,new Map]));for(let k of u){let D=d.get(k.kind);if(!D)continue;let p=D.get(k.from);p?p.push(k.to):D.set(k.from,[k.to]);let m=D.get(k.to);m?m.push(k.from):D.set(k.to,[k.from])}let $=new Set;for(let k of l){let D=[{id:k.id,via:[]}];for(let p of O.path){let m=[],o=new Set;for(let f of D)for(let P of d.get(p).get(f.id)??[])o.has(`${f.id}|${P}`)||(o.add(`${f.id}|${P}`),m.push({id:P,via:[...f.via,f.id]}));D=m}for(let p of D){let m=`${p.id}|${k.id}`;!i.has(p.id)||$.has(m)||($.add(m),A.push({rowId:p.id,columnId:k.id,via:p.via.slice(1)}))}}}let v=n.groupOrder??[],B=d=>v.indexOf(d)===-1?v.length:v.indexOf(d),R=e.map(d=>{let $=d;return{node:d,label:String($.label??K(t.tryDefinition(d.kind),d)),group:Y($,n.rowGroup),ref:Y($,n.rowRef)}}).sort((d,$)=>B(d.group)-B($.group)||(d.ref<$.ref?-1:d.ref>$.ref?1:0)),F=l.map(d=>({node:d,label:K(t.tryDefinition(d.kind),d),group:Y(d,n.columnGroup)})).sort((d,$)=>d.group<$.group?-1:d.group>$.group?1:d.node.id<$.node.id?-1:d.node.id>$.node.id?1:0);return{rows:R,columns:F,cells:A}}function Se(t,r,n){let{rows:s,columns:e,cells:l}=Ce(t,r,n),i=(o,f)=>X(t,o,f),y=o=>X(t,o,1).replace(/^1 /,""),u=o=>({id:o.id,kind:o.kind,title:K(t.tryDefinition(o.kind),o),parts:[]}),A=o=>{let f=r.getNode(o);if(!f)return null;let P=t.tryDefinition(f.kind),M=K(P,f),N=E(f,P,{limit:3,said:[M],glance:!0}).map(G=>G.alone.startsWith(G.label)?`${G.label.toLowerCase()}${G.alone.slice(G.label.length)}`:G.alone);return[M,...N].join(", ")},O=typeof n.link=="string"?[]:n.link.path.slice(0,-1).flatMap((o,f,P)=>{let M=le(t,n.columns,P.slice(0,f+1));return M.ok?[...M.reached]:[]}),v=[{t:"text",text:`${i(n.rows,s.length)} against ${i(n.columns,e.length)}${O.length>0?`, through ${[...new Set(O)].map(o=>i(o,2).replace(/^2 /,"")).join(" and ")}`:""}${e.length>0?`: ${e.map(o=>o.label).join(", ")}`:""}.`}],B=new Map(e.map(o=>[o.node.id,o.label])),R=new Map(e.map((o,f)=>[o.node.id,f])),F=new Map,d=new Map;for(let o of l){let f=F.get(o.rowId);f?f.push(o):F.set(o.rowId,[o]);let P=d.get(o.columnId);P?P.add(o.rowId):d.set(o.columnId,new Set([o.rowId]))}for(let o of s){let P=[...F.get(o.node.id)??[]].sort((M,N)=>R.get(M.columnId)-R.get(N.columnId)).map(M=>{let N=M.via.map(A).filter(G=>G!==null);return`${B.get(M.columnId)}${N.length>0?` (${N.join("; ")})`:""}`});v.push({t:"field",label:o.label,text:P.length>0?P.join(", "):"none"})}v.push({t:"list",as:"name",columns:1,groups:e.map(o=>{let f=d.get(o.node.id)??new Set,P=s.filter(M=>f.has(M.node.id)).map(M=>u(M.node));return{heading:`${o.label} (${P.length})`,items:P}})});let $=new Set(l.map(o=>o.rowId)),k=new Set(l.map(o=>o.columnId)),D=s.filter(o=>!$.has(o.node.id)),p=e.filter(o=>!k.has(o.node.id)),m=n.rows===n.columns;return D.length>0&&v.push({t:"text",text:`${m?`${D.length} with none across`:`${i(n.rows,D.length)} with no ${y(n.columns)}`}: ${D.map(o=>o.label).join(", ")}.`}),p.length>0&&v.push({t:"text",text:`${m?`${p.length} with none down`:`${i(n.columns,p.length)} on no ${y(n.rows)}`}: ${p.map(o=>o.label).join(", ")}.`}),v}function Z(t,r,n,s={}){let{app:e,blocks:l=n?e?.viewSpecs?.[n.kind]?.[s.slot??"page"]:e?.home}=s;if(!l?.length)return[];let i=s.firstHeading??(n||s.blocks?void 0:1),y=we(t,r,n,{...s,money:s.money??e?.brand,firstHeading:i});return n&&!y.node?[]:he(typeof l[0]?.t=="string"?l:ye(l),y)}var je=240,De=10,Me=1160,Oe=40,Be=640,Ie=3,Ge=t=>Math.max(1,Math.floor((Math.min(t,Me)-Oe+De)/(je+De)));function Fe(t,r,n,s){let{app:e}=s,l=s.width??1440,i=s.today??t.today()??ne(),y=t.seenBy(r),u=y.schema,A=y.graph,O=xe(e),v=typeof n=="string"?n.trim():n.slug,B=typeof n=="string"?O.find(a=>a.slug===v||a.title===v||a.address===v):O.find(a=>a.slug===n.slug&&a.kind===n.kind)??n,R=!B&&typeof n=="string"?A.getNode(v):void 0;if(!B&&!R)return{ok:!1,error:`"${v}" is not a place this app has, nor a record this seat can see.`,places:O.map(a=>a.slug)};let F=[],d=e.viewSpecs??{},$=Ge(l),k=(a,h)=>Z(y,null,a,{app:e,today:i,...h}),D=(a,h,b)=>{let g=u.tryDefinition(a.kind),S=K(g,a);if(h==="name")return{id:a.id,kind:a.kind,title:S,parts:[]};if(d[a.kind]?.[h]){let C=k(a,{slot:h}),[I,...x]=C,j=I?.t==="title";return{id:a.id,kind:a.kind,title:j?I.text:S,parts:p(j?x:C,b,`views.${a.kind}.${h}`,` (${a.id})`,j?1:0)}}if(h==="row")return{id:a.id,kind:a.kind,title:S,parts:[]};let c=g?.computed?J(u,A,a):a,T=E(c,g,{limit:3,said:[S],glance:!0,locale:e.brand?.locale});return{id:a.id,kind:a.kind,title:S,parts:T.map(C=>({t:"text",text:C.alone}))}};function p(a,h,b,g="",S=0){let w=[];return a.forEach((c,T)=>{let C=`${b}.${T+S}`;switch("problem"in c&&c.problem&&F.push({at:`${C}${g}`,says:c.problem}),c.t){case"title":w.push({t:"heading",level:3,text:c.text});return;case"text":w.push({t:"text",text:c.markdown?fe(c.text):c.text,...c.tone?{tone:c.tone}:{}});return;case"badge":w.push({t:"badge",text:c.text});return;case"field":case"image":w.push({t:"field",label:c.label,text:c.text});return;case"progress":w.push({t:"progress",label:c.label,text:c.text});return;case"group":w.push(...p(c.blocks,h,`${C}.group`,g));return;case"when":w.push(...p(c.blocks,h,`${C}.show`,g));return;case"divider":case"figure":return;case"headline":w.push({t:"heading",level:c.level,text:c.text});return;case"number":w.push({t:"figure",text:c.text,...c.label?{label:c.label}:{}});return;case"list":{if(c.failed){w.push({t:"text",text:"\u2014"});return}if(c.members.length===0){c.empty&&w.push({t:"list",as:c.as,columns:1,groups:[],empty:c.empty});return}let I=h+1,x=I>Ie?"name":c.as,j=(c.groups??[{value:null,members:c.members}]).map(V=>({..."heading"in V&&V.heading?{heading:V.heading}:{},items:V.members.map(Re=>D(Re,x,I))}));w.push({t:"list",as:x,columns:x==="card"?$:1,groups:j,...c.more>0?{more:c.more}:{}});return}}}),w}let m=[],o,f,P;if(R){f="record";let a=u.tryDefinition(R.kind),h=K(a,R);P={slug:R.id,title:h,kind:R.kind,address:de(u,R.kind,R.id)},d[R.kind]?.page&&m.push(...p(k(R,{slot:"page"}),1,`views.${R.kind}.page`));let g=a?.computed?J(u,A,R):R;for(let S of ge(a,E(g,a,{said:[h],locale:e.brand?.locale}))){S.title&&m.push({t:"heading",level:2,text:S.title});for(let w of S.fields)m.push({t:"field",label:w.label,text:w.value,...w.long?{long:!0}:{},...w.markdown?{markdown:!0}:{}})}}else{let a=B;P={slug:a.slug,title:a.title,kind:a.kind,address:a.address};let h=a.lens?ce(e).drawn.find(b=>b.as===a.slug&&(a.kind===null||b.kinds.includes(a.kind))):void 0;if(a.kind===null){let b=e.brand,g=b?.name??e.name,S=b?.logo&&ae(b.logo)?b.logo:void 0;if(o={name:g,...b?.subtitle?{subtitle:b.subtitle}:{},...S?{logo:{alt:b?.logoAlt??g,...ie(S)?{drawn:"inline SVG"}:{drawn:"image",src:S}}}:{}},e.home)f="blocks",m=p(k(null,{}),0,"views.home");else{f="derived";let w=t.kindsKeptFrom(r),c=new Set([...e.pages?.hide??[],...w,...t.modules.disabledKinds]),T=ue(u.kinds,e.pages?.order).filter(C=>!c.has(C));m.push({t:"heading",level:1,text:e.name??"Home"});for(let C of T){let I=A.nodesOfKind(C).filter(x=>W(u.tryDefinition(C),x)).length;I>0&&m.push({t:"text",text:`${I} ${L(u,C,I)}`})}}}else if(h?.lens==="blocks")f="lens:blocks",m=p(k(null,{blocks:h.options.blocks??[]}),0,`lenses.${h.index}.options.blocks`);else if(h?.lens==="columns"){f="lens:columns";let b=h.options.bindings??{};for(let g of Object.keys(b)){let S=b[g]?.column;if(!S)continue;let w=H(u,g,S),c=A.nodesOfKind(g).filter(x=>W(u.tryDefinition(g),x));Object.keys(b).length>1&&m.push({t:"heading",level:2,text:L(u,g,2).replace(/^./,x=>x.toUpperCase())}),m.push({t:"text",text:`${c.length} ${L(u,g,c.length)} in columns by ${_(u.tryDefinition(g),S).toLowerCase()}.`});let T=w.map(x=>({column:x,items:c.filter(j=>U(j,S,w)===x.value).map(j=>D(j,"card",1))})).filter(({column:x,items:j})=>x.value!==null||j.length>0).map(({column:x,items:j})=>({heading:`${x.label} (${j.length})`,items:j}));m.push({t:"list",as:"card",columns:1,groups:T});let C=new Map;for(let x of c)for(let j of Q(t,r,x,S,w))C.set(j.to,(C.get(j.to)??new Set).add(`"${j.title}"`));let I=w.filter(x=>x.value!==null&&C.has(x.value)).map(x=>`to ${x.label} by ${[...C.get(x.value)].join(" or ")}`);m.push({t:"text",text:I.length>0?`Moves: ${I.join("; ")}.`:"Moves: none for this seat."})}}else if(h?.lens==="coverage")f="lens:coverage",m=Se(u,A,h.options);else if(h){f=`lens:${h.lens}`;let b=h.kinds.flatMap(g=>A.nodesOfKind(g).filter(S=>W(u.tryDefinition(g),S)));m.push({t:"text",text:`A ${h.lens} of ${b.length} ${h.kinds.map(g=>L(u,g,b.length)).join(" and ")}.`}),m.push({t:"list",as:"name",columns:1,groups:[{items:b.map(g=>D(g,"name",1))}]})}else{f="derived";let b=A.nodesOfKind(a.kind).filter(g=>W(u.tryDefinition(a.kind),g));m.push({t:"heading",level:1,text:a.title}),b.length===0?m.push({t:"list",as:"row",columns:1,groups:[],empty:`No ${L(u,a.kind,0)} yet.`}):m.push({t:"list",as:"row",columns:1,groups:[{items:b.map(g=>D(g,"row",1))}]})}}let M=r.kind==="system"?"the system":(r.roles??[]).length>0?(r.roles??[]).join(", "):r.kind,N=l<Be?"phone":"wide",G=P.kind===null?Ne(u,A):[],ee={...o?{masthead:o}:{},...G.length>0?{facts:G}:{},place:P,seat:M,width:l,variant:N,drawnBy:f,parts:m,problems:F};return{ok:!0,description:{...ee,text:Pe(ee)}}}function Ne(t,r){let n=be(t,r,null),s=e=>Array.isArray(e)?e.map(s).join(", "):e===null?"nothing":typeof e=="boolean"?e?"yes":"no":typeof e=="object"?e.label:String(e);return[...pe(t)].map(([e,l])=>{let i=l.label??te(e);return Object.hasOwn(n.values,e)?{name:e,label:i,value:s(n.values[e])}:{name:e,label:i,refused:n.refused[e]??"it could not be worked out"}})}function L(t,r,n){let s=t.tryDefinition(r);if(n===1)return s?.noun??r;let e=re(t,r);return e.charAt(0).toLowerCase()+e.slice(1)}function Pe(t){let r=[`${t.place.title} (${t.place.address}) \u2014 as ${t.seat}, ${t.width} wide (${t.variant}).`],n=t.masthead;n&&r.push(`Masthead: ${n.logo?`the logo ("${n.logo.alt}", ${n.logo.drawn==="image"?n.logo.src:"inline SVG"}), `:""}${n.name}${n.subtitle?` \u2014 ${n.subtitle}`:""}`);let s=(e,l)=>{for(let i of e)switch(i.t){case"heading":r.push(`${l}${"#".repeat(i.level)} ${i.text}`);break;case"text":r.push(`${l}${i.text}`);break;case"badge":r.push(`${l}[${i.text}]`);break;case"field":case"progress":r.push(`${l}${i.label}: ${i.text}`);break;case"figure":r.push(`${l}${i.text}${i.label?` \u2014 ${i.label}`:""}`);break;case"list":if(i.groups.length===0){i.empty&&r.push(`${l}(${i.empty})`);break}for(let y of i.groups){y.heading&&r.push(`${l}${y.heading}:`);for(let u of y.items)r.push(`${l}${y.heading?" ":""}- ${u.title}`),s(u.parts,`${l}${y.heading?" ":" "}`)}i.as==="card"&&i.columns>1&&r.push(`${l}(cards, ${i.columns} across)`),i.more&&r.push(`${l}and ${i.more} more`);break}};if(s(t.parts,""),t.facts){r.push("Facts of the whole graph (what fact('<name>') reads):");for(let e of t.facts)r.push(`- ${e.label} (${e.name}): ${e.value??`not worked out \u2014 ${e.refused}`}`)}if(t.problems.length>0){r.push("Problems:");for(let e of t.problems)r.push(`- ${e.at}: ${e.says}`)}return r.join(`
|
|
2
|
-
`)}export{H as a,U as b,Q as c,ke as d,ve as e,$e as f,Z as g,Fe as h,Pe as i};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as Ee,b as Ae}from"./chunk.WLRTPFAC.js";import"./chunk.XXHNV24G.js";import"./chunk.RWGLKDWH.js";import"./chunk.GZH6PTXN.js";import{j as ke,k as Se}from"./chunk.WKXNBHTL.js";import"./chunk.OWE6OJ4P.js";import"./chunk.3JM2TNDD.js";import"./chunk.QNHECGMH.js";import"./chunk.RKRSRKF3.js";import"./chunk.KC6UZHBM.js";import"./chunk.HJCQ6I3S.js";import"./chunk.ZBXOX3W3.js";import"./chunk.5AT4O4BN.js";import"./chunk.YRQZZH5V.js";import"./chunk.HONUT6OG.js";import"./chunk.X53HI436.js";import"./chunk.COTG2IG5.js";import"./chunk.YCA7P5MK.js";import{a as xe,b as v}from"./chunk.VPPUTA74.js";import{b as ye,c as be}from"./chunk.UT6642FC.js";import"./chunk.2CLPRG3I.js";import"./chunk.OYJSFO3A.js";import"./chunk.HV6I74DF.js";import"./chunk.DAA6XWLF.js";import"./chunk.7DNFXJH3.js";import"./chunk.7PRFYYVM.js";import"./chunk.2NCTM5K2.js";import"./chunk.JU2ZVKMT.js";import"./chunk.HGAMNIST.js";import"./chunk.OQDETV4X.js";import{g as we}from"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import{c as ve}from"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import{h as fe}from"./chunk.GS4T26WW.js";import{F as Fe,M as ue,U as ce,ga as ge,h as de,la as he,oa as me,u as pe}from"./chunk.Z56B2JR2.js";import{Hb as se,Wa as le,ba as q,ca as F}from"./chunk.HLLWKSZB.js";import{b as O}from"./chunk.AJZBJBMO.js";var r=O(Fe(),1);var i=O(ue(),1);function Ze({placement:B="float"}={}){let{store:o,menuAt:k,setMenuAt:P,view:S}=ce(),h=(0,r.useRef)(null),E=(0,r.useRef)(null),j=(0,r.useRef)(null),$e=e=>{let n=e.closest("[data-graview-asking]")?.getAttribute("data-graview-asking"),t=e.getAttribute("data-pin-for"),d=n??e.getAttribute("data-affordance")??(t===null?null:`pin:${t}`);E.current=d===null?null:{key:d,element:e}};(0,r.useEffect)(()=>{let e=h.current,n=E.current;if(n===null||document.activeElement!==document.body||n.element.isConnected)return;let t=n.key;if(!e){E.current=null,j.current?.focus();return}((t.startsWith("pin:")?e.querySelector(`[data-pin-for="${CSS.escape(t.slice(4))}"]`):null)??e.querySelector(`[data-affordance="${CSS.escape(t)}"]:not([disabled])`)??e).focus()});let[ze,He]=(0,r.useState)(null);(0,r.useLayoutEffect)(()=>{let e=h.current?.offsetParent??h.current?.parentElement;if(e instanceof HTMLElement&&(j.current=e),!e)return;let n=e.getBoundingClientRect();He(t=>t&&t.left===n.left&&t.top===n.top&&t.width===n.width&&t.height===n.height?t:{left:n.left,top:n.top,width:n.width,height:n.height})});let{selection:l,set:Pe,clear:Ie}=ge(),[I,Ce]=(0,r.useState)(()=>Ee()),C=k?.on??l[l.length-1],Me=(0,r.useMemo)(()=>({pins:I,...C===void 0?{}:{focus:C}}),[I,C]),Te=(0,r.useMemo)(()=>new Set(o.allMutations().filter(e=>e.pinned).map(e=>e.name)),[o]),{affordances:p,withheld:u,observations:_}=ke(Me),Re=_.some(e=>e.id.startsWith("schema:waits:")),{apply:Le,preview:Ne}=Se(),[w,y]=(0,r.useState)(null),[We,U]=(0,r.useState)(!1),[V,Y]=(0,r.useState)(!1),[A,$]=(0,r.useState)(""),[K,M]=(0,r.useState)(null),T=(0,r.useRef)([]),R=(e,n)=>{try{return Ne(e,n),Le(e,n),M(null),P(null),T.current=[],!0}catch(t){return M(we(o.schema,o.allMutations(),t)),T.current=t instanceof le?t.issues.map(d=>String(d.path[0]??"")).filter(Boolean):[],!1}},z=[...new Set(l.flatMap(e=>{let n=o.graph.getNode(e);return n?[n.kind]:[]}))],g=z.length>0?z:[...new Set(l.flatMap(e=>pe(e)))],s=l.length===1?de(l[0]):null,L=s?{from:o.graph.getNode(s.from),to:o.graph.getNode(s.to)}:null,Q=s?be(o,s):void 0,G=Q?.provisional?Q:void 0,J=s?(()=>{let e=o.schema.tryDefinition(o.graph.getNode(s.from)?.kind??"")?.edges?.[s.kind],n=o.graph.getNode(s.to);return e?.inverse&&n?`From ${v(o,n.id)}: ${e.inverse}`:null})():null;(0,r.useEffect)(()=>{y(null),U(!1),Y(!1),M(null),$("")},[l]);let a=k!==null,De=B==="menu"&&!a,b=(0,r.useRef)(k);b.current=k;let X=me("acts",{open:a&&B==="menu",onOpenChange:e=>{e||P(null)},at:()=>b.current?{x:b.current.x,y:b.current.y}:null,returnTo:()=>{let e=b.current?.on;return e?document.querySelector(`[data-graview-view="${CSS.escape(e)}"]`):null},align:"start"}),Z=(ze?.width??Number.POSITIVE_INFINITY)<564;if((0,r.useLayoutEffect)(()=>{let e=h.current?.offsetParent;if(!e||!Z||a)return;let n=h.current?.getBoundingClientRect().height??0,t=`${Math.round(n)+20}px`;if(e.style.paddingBottom===t)return;let d=e.style.paddingBottom;return e.style.paddingBottom=t,()=>{e.style.paddingBottom=d}}),l.length===0&&!a)return null;let ee=!(l.length===1&&l[0]===S.focusId),te=Math.max(1,Math.min(9,p.length)),m=[...p.filter(e=>e.provider==="invariant"&&!e.destructive),...p.filter(e=>e.pinned&&e.provider!=="invariant"&&!e.destructive),...p.filter(e=>!e.ties&&!e.destructive&&!e.pinned&&e.provider!=="invariant"),...p.filter(e=>e.ties&&!e.destructive&&!e.pinned&&e.provider!=="invariant"),...p.filter(e=>e.destructive)],ne=m.length>te&&!a,ie=A.trim().toLowerCase(),c=ne&&ie.length>0?m.filter(e=>`${e.label} ${e.why}`.toLowerCase().includes(ie)):null,N=c??(We||a?m:m.slice(0,te)),re=c?0:m.length-N.length,H=[];for(let e of N){let n=!a&&e.provider==="invariant",t=!a&&!n&&e.pinned!==void 0&&!e.destructive,d=!a&&!n&&!t&&e.ties===!0&&!e.destructive,oe=n?e.why:t?"pinned":d?"its ties":null,qe=n?"violation":t||d?"ties":null,D=H[H.length-1];D&&D.heading===oe?D.items.push(e):H.push({heading:oe,tone:qe,items:[e]})}let W=p.find(e=>e.id===w),x=l.length===1?v(o,l[0]):null,ae=e=>{if(!x)return e;let n=e.startsWith(`"${x}"`)?e.slice(x.length+2):e.startsWith(x)?e.slice(x.length):null;if(n===null)return e;let t=n.trimStart();return t.length===0?e:t[0].toUpperCase()+t.slice(1)},Oe=new Set(a?[]:N.filter(e=>e.provider==="invariant").map(e=>e.why)),f=_.filter(e=>!Oe.has(e.text)).map(e=>({...e,text:ae(e.text)}));return De?null:(0,i.jsxs)("section",{...a?X.pane:{},ref:e=>{h.current=e,a&&X.pane.ref(e)},"aria-label":"Inspector","data-graview-offstage":"","data-testid":a?"context-menu":"inspector-strip",tabIndex:-1,onFocus:e=>$e(e.target),onBlur:e=>{e.relatedTarget!==null&&(E.current=null)},onMouseDown:e=>e.stopPropagation(),style:{...a?he:{position:"absolute",zIndex:se("rail")},boxSizing:"border-box",display:"flex",flexDirection:"column",gap:7,padding:"9px 12px",borderRadius:"var(--graview-radius, 12px)",border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",...a?{width:300,maxHeight:"min(52cqh, 420px)",overflow:"auto"}:Z?{left:10,right:10,width:"auto",bottom:10,maxHeight:"min(42cqh, 300px)",overflow:"auto"}:{left:14,top:S.overview?"min(296px, 38cqh)":44,width:236,maxHeight:S.overview?"calc(100cqh - min(296px, 38cqh) - 20px)":"calc(68cqh - 94px)",overflow:"auto"}},children:[(0,i.jsx)("h2",{style:{...fe,margin:0},children:"Inspector"}),(0,i.jsxs)("div",{style:{display:ee||!a?"flex":"none",alignItems:"baseline",flexWrap:"wrap",gap:"2px 8px",minWidth:0,paddingRight:a?0:24},children:[ee?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("strong",{style:{fontSize:"0.9375rem",whiteSpace:"nowrap"},children:l.length===1?v(o,l[0]):`${l.length} selected`}),z.length>0||s?(0,i.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:s?"relation":z.join(" \xB7 ")}):null,l.length===1&&!s?(0,i.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:S.expanded.includes(l[0])?"\xB7 double-click closes":"\xB7 double-click opens"}):null]}):null,(0,i.jsx)("span",{style:{flex:"1 1 auto"}})]}),a?null:(0,i.jsx)("button",{type:"button",onClick:()=>{P(null),Ie()},"aria-label":"Clear selection",title:"Clear selection",style:{position:"absolute",top:6,right:6,flex:"0 0 auto",width:24,height:24,display:"grid",placeItems:"center",padding:0,fontSize:"0.875rem",lineHeight:1,borderRadius:7},children:"\xD7"}),s&&L?(0,i.jsxs)("div",{style:{display:"grid",gap:6},children:[J?(0,i.jsx)("p",{"data-testid":"edge-said",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:J}):null,G?(0,i.jsx)("p",{"data-testid":"edge-provisional",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:ye(G)}):null,(0,i.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[["from",L.from],["to",L.to]].map(([e,n],t)=>(0,i.jsxs)(r.Fragment,{children:[t===1?(0,i.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-ink-faint)"},children:"\u2192"}):null,n?(0,i.jsx)("button",{type:"button","data-testid":`edge-${e}`,onClick:()=>Pe([n.id]),title:`Select ${v(o,n.id)}`,style:{fontSize:"0.8125rem",padding:"3px 9px",borderRadius:6},children:v(o,n.id)}):(0,i.jsx)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"gone"})]},e))})]}):null,f.length>0?(0,i.jsx)("div",{"data-testid":"observations",title:f.map(e=>e.text).join(`
|
|
2
|
-
`),style:{display:"grid",gap:3},children:f.slice(0,2).map(e=>(0,i.jsxs)("p",{style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:[e.text,e===f[1]&&f.length>2?(0,i.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" +",f.length-2]}):null]},e.id))}):null,K?(0,i.jsx)("p",{"data-testid":"refused",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-warn)"},children:K}):null,ne?(0,i.jsx)("input",{"data-testid":"action-filter",value:A,onChange:e=>$(e.target.value),placeholder:`Filter ${m.length} actions\u2026`,"aria-label":"Filter actions",onKeyDown:e=>{if(e.key==="Escape"){e.stopPropagation(),A.length>0?$(""):e.currentTarget.blur();return}if(e.key==="Enter"&&c?.length===1){let n=c[0];if(n.destructive)return;n.open.length>0?y(n.id):R(n)&&$("")}},style:{font:"inherit",fontSize:"0.875rem",padding:"5px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}):null,c!==null&&c.length===0?(0,i.jsxs)("p",{"data-testid":"no-matches",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:["Nothing offered here matches \u201C",A.trim(),"\u201D."]}):null,p.length===0&&!Re?(0,i.jsx)("p",{"data-testid":"no-affordances",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:u.length>0?`Nothing you may do with ${s?"this relation":g.length===1?q(F(o.schema.tryDefinition(g[0]),g[0])):"this mix of kinds"} \u2014 ${u.length} action${u.length===1?"":"s"} withheld.`:s?`Nothing can be done with this line yet \u2014 nothing this app declares makes or breaks \u201C${ve(o.schema,o.graph.getNode(s.from)?.kind??"",s.kind,"out")}\u201D.`:`Nothing can be done with ${g.length===1?q(F(o.schema.tryDefinition(g[0]),g[0])):"this mix of kinds"} yet \u2014 nothing this app declares acts on ${g.length===1?"it":"them"}.`}):(0,i.jsxs)("ol",{"data-testid":"affordances",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",flexWrap:"nowrap",gap:2},children:[H.map((e,n)=>(0,i.jsxs)(r.Fragment,{children:[e.heading?(0,i.jsxs)("li",{"data-graview-heading":e.tone,style:{fontSize:"0.75rem",lineHeight:1.4,color:e.tone==="violation"?"var(--graview-warn)":"var(--graview-ink-faint)",...e.tone!=="violation"?{letterSpacing:"0.12em",textTransform:"uppercase",fontSize:"0.75rem"}:{},padding:"2px 2px 1px",marginTop:n>0?6:0},children:[e.tone==="violation"?"\u26A0 ":"",e.tone==="violation"?ae(e.heading):e.heading]}):n>0?(0,i.jsx)("li",{"aria-hidden":"true",style:{borderTop:"1px solid var(--graview-edge)",margin:"6px 0 3px"}}):null,e.items.map(t=>(0,i.jsxs)("li",{style:{display:"flex",gap:2,alignItems:"stretch"},children:[(0,i.jsxs)("button",{type:"button","data-affordance":t.id,"data-rank":t.rank,"data-graview-destructive":t.destructive||void 0,"aria-pressed":w===t.id,title:t.why,style:{padding:"5px 10px",fontSize:"0.875rem",borderRadius:8,width:"100%",textAlign:"left",borderWidth:1,borderStyle:"solid",borderColor:w===t.id?"var(--graview-accent)":a?"transparent":"var(--graview-edge)",background:a?"none":"var(--graview-panel)",boxShadow:"none",...t.destructive?{color:"var(--graview-warn)"}:{},...w===t.id?{color:"var(--graview-accent)"}:{}},onClick:()=>{if(t.open.length>0){y(w===t.id?null:t.id);return}R(t)},children:[t.label,t.open.length>0?(0,i.jsx)("span",{style:{color:"var(--graview-ink-faint)"},children:" \u2026"}):null,c?.length===1&&c[0]?.id===t.id&&!t.destructive?(0,i.jsx)("span",{"aria-hidden":"true",title:"Enter runs it",style:{float:"right",color:"var(--graview-ink-faint)",fontSize:"0.75rem"},children:"\u21B5"}):null]}),(0,i.jsx)("button",{type:"button","data-testid":"pin-toggle","data-pin-for":t.mutation,"aria-pressed":t.pinned!==void 0,"aria-label":t.pinned!==void 0?`Unpin ${t.label}`:`Pin ${t.label}`,title:t.pinned==="declared"?"Pinned by the app \u2014 unpin it for yourself":t.pinned==="user"?"Unpin":"Pin to the top",onClick:()=>Ce(Ae(I,t.mutation,Te.has(t.mutation))),style:{flex:"0 0 auto",width:24,minHeight:24,display:"grid",placeItems:"center",padding:0,fontSize:"0.75rem",border:"1px solid transparent",background:"none",boxShadow:"none",borderRadius:7,color:t.pinned==="user"?"var(--graview-accent)":t.pinned==="declared"?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:t.pinned!==void 0?"\u2605":"\u2606"})]},t.id))]},`${e.heading??"plain"}-${n}`)),re>0?(0,i.jsx)("li",{children:(0,i.jsxs)("button",{type:"button",onClick:()=>U(!0),title:`Show all ${p.length} actions`,style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8},children:["Show ",re," more"]})}):null]}),u.length>0?(0,i.jsxs)("ul",{"data-testid":"withheld",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",flexWrap:"nowrap",gap:2},children:[u.slice(0,a||V?u.length:3).map(e=>(0,i.jsxs)("li",{style:{display:"grid",gap:2},children:[(0,i.jsx)("button",{type:"button",disabled:!0,"data-affordance":e.id,"data-rank":e.rank,"data-withheld":e.refusal.wouldNeed.join(",")||"nobody",style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8,borderStyle:"dashed",width:"100%",textAlign:"left",background:"none"},children:(0,i.jsx)("s",{children:e.label})}),(0,i.jsx)("span",{"data-testid":"withheld-why",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-ink-muted)",padding:"0 10px"},children:e.refusal.message})]},e.id)),!a&&!V&&u.length>3?(0,i.jsx)("li",{children:(0,i.jsxs)("button",{type:"button","data-testid":"withheld-more",onClick:()=>Y(!0),title:`Show all ${u.length} actions this seat may not take`,style:{padding:"4px 10px",fontSize:"0.875rem",borderRadius:8},children:["Show ",u.length-3," more withheld"]})}):null]}):null,W?(0,i.jsx)(xe,{affordance:W,onApply:e=>{if(R(W,e))y(null);else return T.current},onCancel:()=>y(null)}):null]})}export{Ze as InspectorPane};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as xe}from"./chunk.HJCQ6I3S.js";import{a as je,b as Ee,c as Ie,d as Re}from"./chunk.ZBXOX3W3.js";import"./chunk.XDYAG276.js";import{c as he}from"./chunk.5AT4O4BN.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import{F as Ke,M as Pe}from"./chunk.Z56B2JR2.js";import"./chunk.HLLWKSZB.js";import{b as pe}from"./chunk.AJZBJBMO.js";var P=pe(Ke(),1);var E=.5,fe=1,ye=.76,Le=3,We=3,Ae=.6;function Oe(c){let{ribbons:m,plots:u,cell:i}=c,a=c.tilt??.5,g=c.labels??[],b=[...u.values()],k=new Map;if(b.length===0||i<=0)return k;let L=Math.min(...b.map(n=>n.col))-3,A=Math.min(...b.map(n=>n.row))-3,G=Math.max(...b.map(n=>n.col+n.side))+3,ce=Math.max(...b.map(n=>n.row+n.side))+3,h=Math.round((G-L)/E)+1,p=Math.round((ce-A)/E)+1,N=n=>L+n*E,B=n=>A+n*E,I=4,_=!0,C=(n,e)=>{if(!_)return!1;let t=he(n,e,i,a);return g.some(s=>t.x>s.x-I&&t.x<s.x+s.width+I&&t.y>s.y-I&&t.y<s.y+s.height+I)},H=(n,e)=>b.some(t=>n>t.col-ye&&n<t.col+t.side+ye&&e>t.row-ye&&e<t.row+t.side+ye),F=new Uint8Array(h*p),J=new Uint8Array(h*p);for(let n=0;n<h;n++)for(let e=0;e<p;e++){let t=N(n),s=B(e);J[e*h+n]=H(t,s)?0:1,F[e*h+n]=J[e*h+n]&&!C(t,s)?1:0}let Q=F,se=new Float32Array(h*p);for(let n=0;n<h;n++)for(let e=0;e<p;e++){let t=N(n),s=B(e);se[e*h+n]=Math.min(...b.map(o=>Math.max(0,o.col-t,t-(o.col+o.side),o.row-s,s-(o.row+o.side))))}let Z=(n,e,t,s)=>{let o=N(n)+t*E/2,l=B(e)+s*E/2;return!H(o,l)&&!C(o,l)},ue=n=>{let e=[],t=(o,l)=>{let w=[],d=Math.min(1,l/3);for(let y=Math.ceil((o+d)/E-1e-9)*E;y<=o+l-d+1e-9;y+=E)w.push(y);return w},s=(o,l,w,d)=>{let y=Math.round((o-L)/E),r=Math.round((l-A)/E);y>=0&&r>=0&&y<h&&r<p&&Q[r*h+y]&&e.push({i:y,j:r,out:w,curb:d})};for(let o of t(n.row,n.side))s(n.col-fe,o,1,{col:n.col,row:o}),s(n.col+n.side+fe,o,0,{col:n.col+n.side,row:o});for(let o of t(n.col,n.side))s(o,n.row-fe,3,{col:o,row:n.row}),s(o,n.row+n.side+fe,2,{col:o,row:n.row+n.side});return e},ee=new Map,V=(n,e,t,s)=>n<t||n===t&&e<s?`${n},${e}-${t},${s}`:`${t},${s}-${n},${e}`,de=[[1,0],[-1,0],[0,1],[0,-1]],X=new Map;for(let n of m){let e=u.get(n.from),t=u.get(n.to);if(!e||!t||e===t)continue;let s=-1,o=[],l=new Map,w=new Int32Array(0),d=1/0,y=[];for(let f of[!0,!1]){s=-1,d=1/0,_=f,Q=f?F:J,o=ue(e);let W=ue(t);if(o.length===0||W.length===0){y.push({reached:-1,starts:o,goal:l,back:w,best:d});continue}l=new Map(W.map(j=>[j.j*h+j.i,j]));let ne=(j,R)=>{let re=N(j),ae=B(R);return(Math.max(0,t.col-re,re-(t.col+t.side))+Math.max(0,t.row-ae,ae-(t.row+t.side)))*Ae},oe=h*p*4,ie=new Float64Array(oe).fill(1/0);w=new Int32Array(oe).fill(-1);let le=new ke;for(let j of o){let R=(j.j*h+j.i)*4+j.out;ie[R]=0,le.push(R,ne(j.i,j.j))}let Ce=[1,0,3,2];for(;le.size>0&&!(le.peekKey()>=d);){let R=le.pop(),re=Math.floor(R/4),ae=R%4,ge=re%h,we=Math.floor(re/h),ve=l.get(re);if(ve){let q=ie[R]+(ae===Ce[ve.out]?0:Le);q<d&&(d=q,s=R);continue}for(let q=0;q<4;q++){let[Me,$e]=de[q],U=ge+Me,z=we+$e;if(U<0||z<0||U>=h||z>=p||!Q[z*h+U]||!Z(ge,we,Me,$e))continue;let Te=E*(ee.has(V(ge,we,U,z))?Ae:1)*(1+Math.max(0,se[z*h+U]-We))+(q===ae?0:Le),me=(z*h+U)*4+q,be=ie[R]+Te;be<ie[me]&&(ie[me]=be,w[me]=R,le.push(me,be+ne(U,z)))}}y.push({reached:s,starts:o,goal:l,back:w,best:d})}_=!0,Q=F;let[r,v]=y,M=r&&r.reached!==-1&&(!v||v.reached===-1||r.best<=1.3*v.best+2)?r:v;if(!M||M.reached===-1)continue;({reached:s,starts:o,goal:l,back:w}=M);let x=[];for(let f=s;f!==-1;f=w[f]){let W=Math.floor(f/4),ne=x[x.length-1],oe={i:W%h,j:Math.floor(W/h)};(!ne||ne.i!==oe.i||ne.j!==oe.j)&&x.push(oe)}x.reverse();for(let f=1;f<x.length;f++){let W=V(x[f-1].i,x[f-1].j,x[f].i,x[f].j);ee.set(W,[...ee.get(W)??[],n.key])}let D=o.find(f=>f.i===x[0].i&&f.j===x[0].j),$=l.get(x[x.length-1].j*h+x[x.length-1].i);X.set(n.key,{cells:x,start:D.curb,end:$.curb})}let O=new Map(m.map(n=>[n.key,n.width])),T=new Map(m.map((n,e)=>[n.key,e])),te=i*a/Math.sqrt(1+a*a),Y=(n,e)=>n==="col"?`r${e.row.toFixed(2)}`:`c${e.col.toFixed(2)}`,K=new Map;for(let[n,e]of X)for(let t=1;t<e.cells.length;t++){let s=e.cells[t-1],o=e.cells[t],l=Y(s.i!==o.i?"col":"row",{col:N(s.i),row:B(s.j)});K.set(l,(K.get(l)??new Set).add(n))}for(let[n,e]of X){let t=[e.start,...e.cells.map(r=>({col:N(r.i),row:B(r.j)})),e.end],s=r=>r>=2&&r<=e.cells.length?V(e.cells[r-2].i,e.cells[r-2].j,e.cells[r-1].i,e.cells[r-1].j):null,o=[];for(let r=1;r<t.length;r++){let v=Math.abs(t[r].col-t[r-1].col)>1e-9?"col":"row",M=o[o.length-1];M&&M.axis===v?M.to=r:o.push({from:r-1,to:r,axis:v})}if(o.length===0)continue;let l=o.map(r=>{if(!Array.from({length:r.to-r.from},($,f)=>s(r.from+1+f)).some($=>$!==null))return 0;let v=K.get(Y(r.axis,t[r.from]))??new Set;if(!v.has(n))return 0;let M=[...v].sort(($,f)=>(T.get($)??0)-(T.get(f)??0)),D=-(M.reduce(($,f)=>$+(O.get(f)??2)+2,0)-2)/2;for(let $ of M){if($===n)return(D+(O.get($)??2)/2)/te;D+=(O.get($)??2)+2}return 0}),w=r=>{let v=o[r],M=t[v.from];return v.axis==="col"?{row:M.row+l[r]}:{col:M.col+l[r]}},d=(r,v,M)=>({col:r.col??v.col??M.col,row:r.row??v.row??M.row}),y=[d(w(0),{},t[0])];for(let r=0;r+1<o.length;r++)y.push(d(w(r),w(r+1),t[o[r].to]));y.push(d(w(o.length-1),{},t[t.length-1])),k.set(n,y.map(r=>he(r.col,r.row,i,a)))}return k}var ke=class{items=[];keys=[];get size(){return this.items.length}peekKey(){return this.keys[0]??1/0}push(m,u){this.items.push(m),this.keys.push(u);let i=this.items.length-1;for(;i>0;){let a=i-1>>1;if(this.keys[a]<=this.keys[i])break;this.swap(i,a),i=a}}pop(){let m=this.items[0],u=this.items.pop(),i=this.keys.pop();if(this.items.length>0){this.items[0]=u,this.keys[0]=i;let a=0;for(;;){let g=2*a+1,b=g+1,k=a;if(g<this.items.length&&this.keys[g]<this.keys[k]&&(k=g),b<this.items.length&&this.keys[b]<this.keys[k]&&(k=b),k===a)break;this.swap(a,k),a=k}}return m}swap(m,u){[this.items[m],this.items[u]]=[this.items[u],this.items[m]],[this.keys[m],this.keys[u]]=[this.keys[u],this.keys[m]]}};function Se(c,m){let u=c.col+c.side,i=u+.25+.22*Math.max(0,m),a=c.row+c.side*Math.max(.1,.3-.06*m),g=c.row+c.side*Math.min(.9,.7+.06*m);return[{col:u,row:a},{col:i,row:a},{col:i,row:g},{col:u,row:g}]}function Be(c,m){return c.map(u=>he(u.col,u.row,m.cell,m.tilt))}function Fe(c){return c.map((m,u)=>`${u===0?"M":"L"} ${m.x.toFixed(1)} ${m.y.toFixed(1)}`).join(" ")}function Ne(c){if(c.length===0)return{x:0,y:0};let m=0;for(let i=1;i<c.length;i++)m+=Math.hypot(c[i].x-c[i-1].x,c[i].y-c[i-1].y);let u=m/2;for(let i=1;i<c.length;i++){let a=c[i-1],g=c[i],b=Math.hypot(g.x-a.x,g.y-a.y);if(b>=u&&b>0)return{x:a.x+(g.x-a.x)*u/b,y:a.y+(g.y-a.y)*u/b};u-=b}return c[c.length-1]}var S=pe(Pe(),1);function Ue({frame:c,width:m,height:u,pan:i,store:a,graphVersion:g,selection:b,view:k,emphasis:L,hiddenKinds:A,drawn:G}){let[ce,h]=(0,P.useState)(null),p=c.city,N=e=>a.graph.getNode(e)?.kind,B=(0,P.useMemo)(()=>je(a.graph.allEdges(),e=>a.graph.getNode(e)?.kind),[a,g]),I=new Map;for(let e of c.nodes){let t=e.id.startsWith("kind:")?Ie(e.id):null;t!==null&&e.plot&&Math.round(e.plane)===2&&I.set(t,e.plot)}let _=[...I].map(([e,t])=>`${e}:${t.col},${t.row},${t.side}`).join(";"),C=p?.cell??0,H=B.filter(e=>I.has(e.from)&&I.has(e.to)&&!A.has(e.from)&&!A.has(e.to)&&G(e.edge)),F=p?.tilt??.5,[J,Q]=(0,P.useState)([]),se=J.map(e=>`${Math.round(e.x)},${Math.round(e.y)},${Math.round(e.width)},${Math.round(e.height)}`).join(";"),[Z,ue]=(0,P.useState)(null),ee=c.t>=1;(0,P.useLayoutEffect)(()=>{let e=Z?.parentElement;if(!e||!p||!ee)return;let t=e.getBoundingClientRect(),s=p.originX+i.x,o=p.originY+i.y,l=[...e.querySelectorAll('[data-graview-view^="kind:"] .graview-kind-face')].flatMap(d=>{let y=d.getBoundingClientRect();return y.width>0&&y.height>0?[{x:y.left-t.left-s,y:y.top-t.top-o,width:y.width,height:y.height}]:[]});l.map(d=>`${Math.round(d.x)},${Math.round(d.y)},${Math.round(d.width)},${Math.round(d.height)}`).join(";")!==se&&Q(l)},[Z,ee,_,C,F]);let V=(0,P.useMemo)(()=>{if(C===0)return[];let e=new Map,t=Math.max(0,...H.map(o=>o.links)),s=Oe({ribbons:H.map(o=>({key:o.key,from:o.from,to:o.to,width:xe(o.links,t)})),plots:I,cell:C,tilt:F,labels:J});return H.flatMap(o=>{let l;if(o.from===o.to){let w=e.get(o.from)??0;e.set(o.from,w+1),l=Be(Se(I.get(o.from),w),{cell:C,tilt:F})}else l=s.get(o.key);return!l||l.length<2?[]:[{ribbon:o,points:l,d:Fe(l),middle:Ne(l),width:xe(o.links,t)}]})},[C,F,_,B,G,A,se]),de=(0,P.useRef)([]),X=(0,P.useRef)({x:0,y:0});if(X.current=p?{x:p.originX+i.x,y:p.originY+i.y}:{x:0,y:0},(0,P.useEffect)(()=>{let e=Z?.parentElement;if(!e||typeof window>"u")return;let t=0,s=null,o=()=>{t=0;let d=s;if(!d)return;let y=d.target;if(d.pointerType==="touch"||d.buttons!==0||y?.closest("[data-graview-view], button, a, input, select, textarea, [data-graview-overlay], [data-graview-offstage]")){h(null);return}let r=e.getBoundingClientRect(),v=d.clientX-r.left-X.current.x,M=d.clientY-r.top-X.current.y,x=null,D=1/0;for(let $ of de.current){let f=qe($.points,v,M);f<=$.reach&&f<D&&(D=f,x=$.key)}h(x)},l=d=>{s=d,t===0&&(t=requestAnimationFrame(o))},w=()=>h(null);return e.addEventListener("pointermove",l,{passive:!0}),e.addEventListener("pointerleave",w),()=>{t!==0&&cancelAnimationFrame(t),e.removeEventListener("pointermove",l),e.removeEventListener("pointerleave",w)}},[Z]),!p||!k.overview||V.length===0)return null;let O=Ee(b,k,N);if(O.records.length>0||O.lens!==null)return null;let T=O.districts.length>0?V.filter(({ribbon:e})=>O.districts.includes(e.from)||O.districts.includes(e.to)):V;if(T.length===0)return null;let te=L??null,Y=T.find(({ribbon:e})=>e.key===ce);de.current=T.map(({ribbon:e,points:t,width:s})=>({key:e.key,points:t,reach:s/2+6}));let K={x:p.originX+i.x,y:p.originY+i.y},n=`translate(${K.x.toFixed(1)} ${K.y.toFixed(1)})`;return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)("svg",{ref:ue,className:"graview-ribbons","aria-hidden":"true","data-graview-world":"","data-graview-ribbons":T.length,width:m,height:u,style:{position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible"},children:(0,S.jsx)("g",{transform:n,children:T.map(({ribbon:e,d:t,width:s})=>{let o=ce===e.key||te!==null&&te===e.edge||O.districts.length>0,l=te!==null&&te!==e.edge;return(0,S.jsx)("g",{className:"graview-ribbon","data-graview-ribbon":e.edge,"data-graview-from":`kind:${e.from}`,"data-graview-to":`kind:${e.to}`,"data-graview-links":e.links,"data-graview-lit":o&&!l?"":void 0,"data-graview-receded":l?"":void 0,children:(0,S.jsx)("path",{className:"graview-ribbon-band",d:t,style:{strokeWidth:s}})},e.key)})})}),Y?(0,S.jsx)("div",{className:"graview-ribbon-said","data-graview-world":"","data-testid":"ribbon-said",role:"status",style:{position:"absolute",left:K.x+Y.middle.x,top:K.y+Y.middle.y,pointerEvents:"none"},children:Re(a.schema,Y.ribbon)}):null]})}function qe(c,m,u){let i=1/0;for(let a=1;a<c.length;a++){let g=c[a-1],b=c[a],k=b.x-g.x,L=b.y-g.y,A=k*k+L*L,G=A===0?0:Math.max(0,Math.min(1,((m-g.x)*k+(u-g.y)*L)/A));i=Math.min(i,Math.hypot(m-(g.x+G*k),u-(g.y+G*L)))}return i}export{Ue as Ribbons,qe as distanceTo};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as G,b as J,d as Q,h as V,i as X,j as ee}from"./chunk.G4WQGTZR.js";import{a as q}from"./chunk.HFKMHLJ3.js";import{D as z,E as $,G as j,J as h,K as L,L as W,O as S,Q as I,W as _,aa as C,ab as Z,ca as P,ga as K,ka as Y,ma as N,qa as H,sa as U,ua as B}from"./chunk.HLLWKSZB.js";var re=t=>`${t}${t%100>=11&&t%100<=13?"th":["th","st","nd","rd"][t%10]??"th"}`,ie={day:"day",week:"week",month:"month",year:"year"},b=t=>t.length<2?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`;function de(t,e,o){let r=e.interval??1,i=ie[e.every],l=t.slice(0,10),c=r===1?`Every ${i}`:r===2?`Every other ${i}`:`Every ${r} ${i}s`,a;if(e.every==="week"){let f=(e.on?.length?e.on:[N[new Date(`${l}T00:00:00Z`).getUTCDay()]]).map(d=>I(N.indexOf(d),"long",o));a=r===1?`Every ${b(f)}`:r===2?`Every other ${b(f)}`:`${c} on ${b(f)}`}else if(e.every==="month"){let f=(e.on?.length?e.on:[+l.slice(8,10)]).map(d=>d===-1?"the last day":`the ${re(Number(d))}`);a=`${c} on ${b(f)}`}else e.every==="year"?a=`${c} on ${S(l,o)}`:a=c;return $.test(t)&&(a+=` at ${W(t,o)}`),e.until&&(a+=`, until ${h(e.until,o)}`),e.count&&(a+=`, ${e.count===1?"once":`${e.count} times`}`),a}function ne(t,e,o={}){if(!U(e)||typeof t!="string")return;let r=o.today??j(),i=B(t,e,r),l=de(t,e,o.locale),c=i.slice(0,4)===r.slice(0,4)?S(i.slice(0,10),o.locale):h(i.slice(0,10),o.locale);return i.slice(0,10)<r?`${l}, last ${c}`:`${l}, next ${c}`}function Me(t,e){let o=new Map,r=new Map;for(let i of t){let l=_(e(i.kind),i).trim().toLowerCase();r.set(l,[...r.get(l)??[],i])}for(let i of r.values()){if(i.length<2)continue;let l=new Map;for(let c of i)l.set(c.kind,[...l.get(c.kind)??[],c]);for(let[c,a]of l){if(a.length===1){o.set(a[0].id,P(e(c),c));continue}let f=a.map(s=>new Map(ce(s,e(s.kind)).map(n=>[n.key,n.alone]))),d=[...new Set(f.flatMap(s=>[...s.keys()]))],p=s=>f.every(n=>!/\d/.test(n.get(s)??"")),k=[...d.filter(p),...d.filter(s=>!p(s))].find(s=>new Set(f.map(n=>n.get(s)??"")).size===a.length);a.forEach((s,n)=>{let y=k?f[n].get(k):void 0;o.set(s.id,y??s.id)})}}return o}function Te(t,e){return t?.describe?t.describe(e):`${e.kind} ${_(t,e)}`}var ae=new Set(["id","kind","label"]);function le(t,e){if(e.length===0)return!1;let o=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[\\s\xB7,(/])${o}($|[\\s\xB7,)/])`).test(t)}function ce(t,e,o={}){let r=e?.display,i=new Set([...ae,...r?.hide??[]]),l=(o.said??[]).filter(s=>!!s),c=l.filter(s=>s.endsWith("\u2026")).map(s=>s.replace(/…$/,"").trim()).filter(s=>s.length>12),a=[],f=e?.fields?.shape,d=e?.fieldRoles,p=o.glance?r?.glance??[d?.who,d?.when].filter(s=>!!s):te(r?.page),k=[...new Set([...p,...ye(e),...Object.keys(t)])].filter(s=>Object.hasOwn(t,s)).map(s=>[s,t[s]]);for(let[s,n]of k){if(i.has(s)||n===void 0||n===null)continue;let y=r?.format?.[s],m=y?[]:K(n);if(m[0]&&o.glance)continue;let D=e?.fields?.shape?.[s],w=!y&&typeof n=="string"&&Y(D)?n:void 0,R=!y&&typeof n=="string"&&G(D);if(w&&o.glance||!m[0]&&typeof n=="object"&&(!Array.isArray(n)||n.some(u=>typeof u=="object"&&u!==null))&&y===void 0)continue;let v=typeof n=="string"&&!y?ne(n,t[`${s}Repeat`],{locale:o.locale}):void 0,A=m[0]?m.map(u=>u.caption?`${u.name} \u2014 ${u.caption}`:u.name).join(", "):Array.isArray(n)?n.join(", "):typeof n=="boolean"?n?"Yes":"No":String(n),x=y?void 0:V(e,s),E=ee(x,n),M=!y&&!x&&typeof n=="number"?Z(e?.fields?.shape?.[s]):void 0,O=y?y(n):M?q(n,M):X(x,n,o.locale)??(Array.isArray(n)||typeof n=="boolean"?A:typeof n=="string"&&v!==void 0?v:typeof n=="string"&&z.test(n)?h(n,o.locale):typeof n=="string"&&$.test(n)?L(n,o.locale):typeof n=="string"&&fe(e,s)?J(e,s,n):A),T=typeof n=="string"&&me(e,s,O),g=(o.glance||o.excerpt)&&!y&&(T||R)?Q(O,{markdown:R}):O;if(l.includes(g)||c.some(u=>g.startsWith(u))||o.glance&&(typeof n=="string"||typeof n=="number")&&l.some(u=>le(u,g)))continue;let F=C(e,s),se=typeof n=="number"?`${F} ${g}`:typeof n=="boolean"&&!y?`${F}: ${g.toLowerCase()}`:g;if(a.push({key:s,label:F,value:g,stored:A,alone:se,long:T,...R?{markdown:!0}:{},...m[0]?{files:m}:{},...w?{app:w}:{},...E?{href:E}:{},...H(f?.[`${s}Repeat`])?{repeats:!0}:{}}),o.limit!==void 0&&a.length>=o.limit)break}return a}function fe(t,e){let o=t?.fields?.shape?.[e];for(let r=0;r<6&&o?._zod?.def?.innerType!==void 0;r++)o=o._zod.def.innerType;return o?._zod?.def?.type==="enum"}function ye(t){let e=t?.fields?.shape;return[...Object.keys(e??{}),...Object.keys(t?.computed??{})]}function te(t){return[...t?.fields??[],...(t?.groups??[]).flatMap(e=>e.fields)]}var ue=500,pe=160;function ge(t){let e=t;for(let o=0;o<6&&e?._zod?.def?.innerType!==void 0;o++)e=e._zod.def.innerType;return e?._zod?.def?.type==="string"?e._zod.def:void 0}function me(t,e,o){return ge(t?.fields?.shape?.[e])?.checks?.some(i=>i._zod?.def?.check==="max_length"&&(i._zod.def.maximum??0)>ue)?!0:typeof o=="string"&&(o.includes(`
|
|
2
|
-
`)||o.length>pe)}function ze(t,e){let o=t?.display?.page,r=o?.groups??[],i=new Map(e.map(d=>[d.key,d])),l=new Set(te(o)),c=d=>d.flatMap(p=>i.has(p)?[i.get(p)]:[]),a=e.filter(d=>!l.has(d.key));return[{fields:[...c(o?.fields??[]),...r.length>0?[]:a]},...r.map(d=>({title:d.title,fields:c(d.fields)})),...r.length>0?[{title:"Details",fields:a}]:[]].filter(d=>d.fields.length>0)}export{de as a,Me as b,Te as c,ce as d,ze as e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as x,b,c as k,d as V,e as R}from"./chunk.2NCTM5K2.js";import{g as l,h as E}from"./chunk.JU2ZVKMT.js";var S=["card","row","page"],O=["good","warn","bad","neutral","accent"],N=["money","percent","date","relative","count"],A=4,w=40,F=["number","money","percent"],W=["card","row"],T=100,$={title:[],headline:[],list:["sort","limit","group","empty","as"],text:["tone"],badge:["tone"],field:["as","currency","label"],image:["as","label"],progress:["label"],group:["direction"],when:["show"],divider:[],figure:["as","currency","label"]},D=Object.keys($),_=`{"title": "{name}"}, {"headline": "{count(all('offer'))} offers"}, {"figure": expr, "as"?: "number"|"money"|"percent", "currency"?, "label"?}, {"list": expr, "sort"?, "limit"?, "group"?, "empty"?, "as"?: "card"|"row"}, {"text": "\u2026", "tone"?}, {"badge": "{status}", "tone"?}, {"field": "quote", "as"?, "currency"?, "label"?}, {"image": "photos", "as"?: "thumb"|"gallery"}, {"progress": {"value": expr, "max": expr}, "label"?}, {"group": [blocks], "direction"?: "row"|"column"}, {"when": expr, "show": [blocks]}, {"divider": true}, {"figure": true}`,G=e=>/^(image|file)$/.test(e?.of??e?.type??"");function oe(e){return Object.fromEntries(Object.entries(e.views??{}).filter(([,n])=>!Array.isArray(n)))}function te(e){let n=e.views?.home;return Array.isArray(n)?n:void 0}var z={field:()=>!1,relation:()=>!1,figure:!1},C=e=>e.kind??"the home",h=(e,n)=>e!==void 0&&Object.hasOwn(e,n),y=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function L(e,n,t){let r=x(e);for(let d of r.unknownFunctions)t.findings.push(l("unknown-function",n,`"${d}" is not a function the rule language knows`,"see docs/declaration-document.md#expression-language"));for(let d of r.names){if(t.kind===null){t.findings.push(l("view-name",n,`"${d}" names nothing here: these blocks are about no one record`,"reach records with all('<kind>'), like count(all('offer')) or first(all('party') where role == 'client').name"));continue}d==="id"||t.spec.field(d)||t.spec.relation(d)||t.findings.push(l("view-name",n,`${t.kind} has no field or relation called "${d}"`))}for(let d of r.edges)t.edges.has(d)||t.findings.push(l("view-edge",n,`"${d}" is not a relation any kind declares`));for(let d of r.sweeps)t.kinds.has(d)||t.findings.push(l("view-kind",n,`"${d}" is not a kind this document declares`))}function m(e,n,t){if(typeof e!="string"||e.length===0||e.length>2e3){t.findings.push(l("view-expression",n,`an expression is a line of the rule language, like "status == 'booked'"`));return}try{L(k(e),n,t)}catch(r){if(!(r instanceof b))throw r;t.findings.push(l("expression",n,`${r.sentence} (at character ${r.at+1})`))}}function j(e,n,t,r=!1){if(typeof e!="string"||e.length===0||e.length>300){t.findings.push(l("view-template",n,'a template is words with {field} in braces, like "{name}" or "{quote|money}", at most 300 characters'));return}let d;try{d=R(e)}catch(a){if(a instanceof V||a instanceof b){t.findings.push(l("template",n,a.sentence));return}throw a}for(let a of d)if(a.expr&&(L(a.expr,n,t),r&&!a.format&&a.expr.t==="ident"&&(t.slot==="card"||t.slot==="row")&&t.spec.prose?.(a.expr.name))){let s=a.expr.name;t.findings.push(E("view-whole-text",n,`${t.kind} ${t.slot} shows ${s} whole; it will be clamped. Use {${s}|excerpt} or move it to the page.`,`write {${s}|excerpt}, or {${s}|excerpt: 80} for fewer characters`))}}function H(e,n,t){if(typeof e=="string"){O.includes(e)||t.findings.push(l("view-tone",n,`"${e}" is not a tone`,`use one of ${O.join(", ")}, or {"expr": "if(status == 'booked', 'good', 'neutral')"}`));return}if(y(e)&&Object.keys(e).length===1&&"expr"in e){m(e.expr,`${n}.expr`,t);return}t.findings.push(l("view-tone",n,'a tone is a word or {"expr": \u2026}',`one of ${O.join(", ")}`))}function v(e,n,t,r){if(!Array.isArray(e)){r.findings.push(l("view-shape",n,"a view is a list of blocks"));return}if(t>A){r.findings.push(l("view-depth",n,`blocks nest at most ${A} deep`,"flatten a group or a condition"));return}e.forEach((d,a)=>P(d,`${n}.${a}`,t,r))}function P(e,n,t,r){if(r.count++,!y(e)){r.findings.push(l("view-block",n,"a block is an object naming what it shows",`one of ${_}`));return}let d=Object.keys(e),a=d.filter(o=>D.includes(o)&&!(o==="group"&&d.includes("list")));if(a.length===0){r.findings.push(l("view-block",n,`${d.length>0?d.map(o=>`"${o}"`).join(", "):"an empty object"} is not a block Graview knows`,`one of ${_}`));return}if(a.length>1){r.findings.push(l("view-block",n,`a block is one thing, and this says ${a.map(o=>`"${o}"`).join(" and ")}`,"split it into two blocks"));return}let s=a[0];for(let o of d)o!==s&&o!="key"&&!$[s].includes(o)&&r.findings.push(l("unknown-key",`${n}.${o}`,`"${o}" is not part of a ${s} block`,$[s].length>0?`a ${s} block may also say ${$[s].map(f=>`"${f}"`).join(", ")}`:`a ${s} block says nothing else`));let i=e[s];switch(s){case"title":case"headline":case"text":case"badge":j(i,`${n}.${s}`,r,s==="text"),"tone"in e&&H(e.tone,`${n}.tone`,r);return;case"image":case"field":{let o=s==="image";if(typeof i!="string"||!(o?r.spec.files?.(i):r.spec.field(i))){let u=typeof i=="string"&&r.spec.relation(i);r.findings.push(l(`view-${s}`,`${n}.${s}`,`${r.kind} has no ${o?"image or file ":""}field ${typeof i=="string"?`"${i}"`:"by that name"}`,u?`"${i}" is a relation; show it with {"text": "{${i}.name}"}`:void 0))}let f=o?["thumb","gallery"]:N;"as"in e&&!f.includes(e.as)&&r.findings.push(l("view-format",`${n}.as`,`"${String(e.as)}" is not a way to show ${o?"pictures":"a field"}`,`use one of ${f.join(", ")}`)),o||B(e,n,r,"field"),"label"in e&&q(e.label,`${n}.label`,r);return}case"progress":{!y(i)||Object.keys(i).some(o=>o!=="value"&&o!=="max")||!("value"in i)||!("max"in i)?r.findings.push(l("view-progress",`${n}.progress`,'progress is {"value": expression, "max": expression}')):(m(i.value,`${n}.progress.value`,r),m(i.max,`${n}.progress.max`,r)),"label"in e&&j(e.label,`${n}.label`,r);return}case"group":"direction"in e&&e.direction!=="row"&&e.direction!=="column"&&r.findings.push(l("view-direction",`${n}.direction`,`a group runs "row" or "column", not "${String(e.direction)}"`)),v(i,`${n}.group`,t+1,r);return;case"when":m(i,`${n}.when`,r),"show"in e?v(e.show,`${n}.show`,t+1,r):r.findings.push(l("view-when",n,'a condition says what it shows: {"when": expr, "show": [blocks]}'));return;case"figure":if(typeof i=="string")return U(e,n,r);for(let o of["as","currency","label"])o in e&&r.findings.push(l("unknown-key",`${n}.${o}`,`"${o}" belongs to a figure that works a number out; {"figure": true} is the kind's picture`,`write {"figure": "count(all('offer'))", "as": "number"}`));i!==!0?r.findings.push(l("view-block",`${n}.figure`,`a figure is a number worked out, {"figure": "sum(all('offer'), net)", "as": "money"}, or the kind's picture, {"figure": true}`)):r.spec.figure||r.findings.push(l("view-figure",`${n}.figure`,`${C(r)} has no figure to show`,r.kind===null?`work a number out: {"figure": "count(all('offer'))"}`:'give the kind a "figure", or leave this block out'));return;case"list":return Y(e,n,r);case"divider":i!==!0&&r.findings.push(l("view-block",`${n}.${s}`,`write {"${s}": true}`));return}}function U(e,n,t){m(e.figure,`${n}.figure`,t),"as"in e&&!F.includes(e.as)&&t.findings.push(l("view-format",`${n}.as`,`"${String(e.as)}" is not a way to say a figure`,`use one of ${F.join(", ")}`)),B(e,n,t,"figure"),"label"in e&&j(e.label,`${n}.label`,t)}function B(e,n,t,r){"currency"in e&&(typeof e.currency!="string"||!/^[A-Z]{3}$/.test(e.currency)?t.findings.push(l("view-currency",`${n}.currency`,'a currency is its three-letter code, like "USD" or "EUR"')):e.as!=="money"&&t.findings.push(l("view-currency",`${n}.currency`,`a currency belongs on a ${r} shown as money`,'add "as": "money"')))}function X(e,n){let t=[...n.kinds],r=(a,s)=>{let i=new Set;for(let o of a){let f=n.vocabulary.namesOf(o)?.targets?.(s);if(f==="*")return t;for(let u of f??[])i.add(u)}return i.size>0?[...i]:void 0},d=a=>{switch(a.t){case"ident":return n.kind!==null&&n.spec.relation(a.name)?r([n.kind],a.name):void 0;case"member":{let s=d(a.object);return s?r(s,a.name):void 0}case"where":return d(a.set);case"call":{let s=a.args[0],i=s?.t==="lit"&&typeof s.value=="string"?s.value:void 0;if(a.fn==="all")return i!==void 0&&n.kinds.has(i)?[i]:void 0;let o=a.args.length===2&&a.args[1]?.t==="lit"&&typeof a.args[1].value=="string"?a.args[1].value:void 0;if(a.fn==="out"&&o!==void 0){let f=d(s);return f?r(f,o):void 0}if(a.fn==="out")return i!==void 0&&n.kind!==null?r([n.kind],i):void 0;if(a.fn==="in"){let f=o??i,u=o!==void 0?d(s):n.kind!==null?[n.kind]:void 0,c=f!==void 0?n.vocabulary.sources(f).filter(g=>{let p=n.vocabulary.namesOf(g)?.targets?.(f);return!u||p==="*"||u.some(M=>p?.includes(M))}):[];return c.length>0?c:void 0}if((a.fn==="sort"||a.fn==="first")&&s)return d(s);if(a.fn==="either"){let f=a.args.map(d);return f.every(u=>u!==void 0)?[...new Set(f.flatMap(u=>u??[]))]:void 0}return}default:return}};return d(e)}function I(e,n,t,r){let d;try{d=k(e)}catch(s){if(!(s instanceof b))throw s;r.findings.push(l("expression",n,`${s.sentence} (at character ${s.at+1})`));return}let a=x(d);for(let s of a.unknownFunctions)r.findings.push(l("unknown-function",n,`"${s}" is not a function the rule language knows`,"see docs/declaration-document.md#expression-language"));for(let s of a.edges)r.edges.has(s)||r.findings.push(l("view-edge",n,`"${s}" is not a relation any kind declares`));if(t)for(let s of a.names)s==="id"||t.some(i=>r.vocabulary.namesOf(i)?.field(s)||r.vocabulary.namesOf(i)?.relation(s))||r.findings.push(l("view-name",n,`${t.join(" and ")} ${t.length===1?"has":"have"} no field or relation called "${s}"`))}function Y(e,n,t){let r=e.list;m(r,`${n}.list`,t);let d;if(typeof r=="string")try{d=X(k(r),t)}catch{d=void 0}let a=i=>{if(!d)return[...t.kinds].map(f=>t.vocabulary.namesOf(f)?.choices?.(i)).find(f=>f!==void 0);let o=d.map(f=>t.vocabulary.namesOf(f)?.choices?.(i));return o.every(f=>f!==void 0)?[...new Set(o.flatMap(f=>f??[]))]:void 0},s=d?d.join(" and "):"any kind";if("sort"in e){let i=e.sort;if(typeof i=="string")I(i,`${n}.sort`,d,t);else if(y(i)&&typeof i.by=="string"&&Object.keys(i).every(o=>o==="by"||o==="direction")){let o=i.direction;o!==void 0&&o!=="asc"&&o!=="desc"&&o!=="choices"?t.findings.push(l("list-sort",`${n}.sort.direction`,`a list is sorted "asc", "desc" or "choices", not "${String(o)}"`,'"choices" puts a choice field in the order its choices are declared')):o==="choices"?a(i.by)===void 0&&t.findings.push(l("list-sort",`${n}.sort.by`,`"${i.by}" is not a choice field of ${s}, so it has no declared order`,'sort by a choice field, or say "asc" or "desc"')):I(i.by,`${n}.sort.by`,d,t)}else t.findings.push(l("list-sort",`${n}.sort`,'a sort is a key, like "net", or {"by": key, "direction": "asc" | "desc" | "choices"}'))}if("limit"in e){let i=e.limit;(typeof i!="number"||!Number.isInteger(i)||i<1||i>T)&&t.findings.push(l("list-limit",`${n}.limit`,`a limit is a whole number from 1 to ${T}`))}if("group"in e){let i=e.group,o=typeof i=="string"?i:y(i)&&typeof i.by=="string"?i.by:void 0;if(!(typeof i=="string"||y(i)&&Object.keys(i).every(u=>u==="by"||u==="headings"))||o===void 0)t.findings.push(l("list-group",`${n}.group`,'a group is a choice field, like "type", or {"by": "type", "headings": {"pain": "What hurts"}}'));else{let u=a(o);if(u===void 0&&t.findings.push(l("list-group",`${n}.group`,`"${o}" is not a choice field of ${s}, so it has no choices to group by`,"group by a field whose type is enum")),y(i)&&"headings"in i){let c=i.headings;if(!y(c)||Object.values(c).some(g=>typeof g!="string"||g.length===0||g.length>80))t.findings.push(l("list-group",`${n}.group.headings`,'headings are words per choice, like {"pain": "What hurts"}, at most 80 characters each'));else if(u)for(let g of Object.keys(c))u.includes(g)||t.findings.push(l("list-group",`${n}.group.headings.${g}`,`"${g}" is not one of ${o}'s choices`,`use ${u.join(", ")}`))}}}"empty"in e&&(typeof e.empty!="string"||e.empty.length===0||e.empty.length>200)&&t.findings.push(l("list-empty",`${n}.empty`,"what an empty list says is a sentence, at most 200 characters")),"as"in e&&!W.includes(e.as)&&t.findings.push(l("list-as",`${n}.as`,`a list draws each record as its "card" or its "row", not "${String(e.as)}"`))}function q(e,n,t){(typeof e!="string"||e.length===0||e.length>60)&&t.findings.push(l("view-label",n,"a label is a few words, at most 60 characters"))}function K(e,n,t,r,d,a,s){let i={kind:null,spec:z,kinds:r,edges:d,vocabulary:t,findings:a,count:0};Array.isArray(e)&&e.length===0&&a.push(l("view-shape",n,`${s} has no blocks`,'give it one: {"headline": "\u2026"}')),v(e,n,1,i),i.count>w&&a.push(l("view-size",n,`${s} has ${i.count} blocks; a view has at most ${w}`,"show less"))}function Z(e,n,t,r,d){Array.isArray(e)&&e.forEach((a,s)=>{if(!y(a)||a.name!=="blocks"||!y(a.options)||!("blocks"in a.options))return;let i=[];K(a.options.blocks,`lenses.${s}.options.blocks`,n,t,r,i,`the lens "${String(a.title??s)}"`);for(let o of i)d.push({...o,severity:"warning"})})}function J(e,n,t,r,d,a,s){let i=[];if(e===void 0)return i;if(!y(e))return i.push(l("view-shape",n,'views are an object of kinds, each with a "card", a "row" or a "page"')),i;for(let[o,f]of Object.entries(e)){if(o==="home"&&Array.isArray(f)){K(f,`${n}.home`,s,r,d,i,"the home");continue}let u=t(o);if(!u){i.push(l("view-kind",`${n}.${o}`,`"${o}" is not a kind this ${a} declares`));continue}if(!y(f)){i.push(l("view-shape",`${n}.${o}`,`a kind's views are {"card": [blocks], "row": [blocks], "page": [blocks]}`));continue}for(let c of Object.keys(f))S.includes(c)||i.push(l("view-slot",`${n}.${o}.${c}`,`"${c}" is not a place a view is drawn`,`use ${S.map(g=>`"${g}"`).join(", ")}`));for(let c of S){let g=f[c];if(g===void 0)continue;let p={kind:o,spec:u,kinds:r,edges:d,vocabulary:s,findings:i,count:0,slot:c};v(g,`${n}.${o}.${c}`,1,p),p.count>w&&i.push(l("view-size",`${n}.${o}.${c}`,`this ${c} has ${p.count} blocks; a view has at most ${w}`,"show less, or move detail to the page"))}}return i}function re(e){let n=new Set(Object.keys(e.kinds)),t=new Set(Object.values(e.kinds).flatMap(s=>Object.keys(s.edges??{}))),r=s=>{let i=h(e.kinds,s)?e.kinds[s]:void 0;return i?{field:o=>h(i.fields,o)||h(i.computed,o),relation:o=>h(i.edges,o),figure:i.figure!==void 0,files:o=>h(i.fields,o)&&G(i.fields[o]),choices:o=>h(i.fields,o)&&i.fields[o].type==="enum"?i.fields[o].options:void 0,targets:o=>h(i.edges,o)?i.edges[o].to:void 0,prose:o=>h(i.fields,o)&&i.fields[o].type==="text"}:void 0},d={namesOf:r,sources:s=>Object.keys(e.kinds).filter(i=>h(e.kinds[i].edges,s))},a=J(e.views,"views",r,n,t,"document",d);return Z(e.lenses,d,n,t,a),a}export{O as a,N as b,F as c,T as d,oe as e,te as f,re as g};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as a}from"./chunk.2NCTM5K2.js";import{b as s}from"./chunk.JU2ZVKMT.js";function w(e){let r=new Map;for(let i of e.kinds){let n=e.tryDefinition(i),o=a(n);r.set(i,{fields:new Set(Object.keys(n?.fields?.shape??{})),edges:new Map(Object.entries(n?.edges??{}).map(([d,p])=>[d,p.cardinality??"many"])),...o?{computed:o}:{}})}let t=a(e);return t&&r.set(s,{computed:t}),r}export{w as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk.OHE5AMHH.js";import{o as ae}from"./chunk.OYJSFO3A.js";import"./chunk.HV6I74DF.js";import"./chunk.WVUJXDXZ.js";import{b as $,c as ne}from"./chunk.DAA6XWLF.js";import"./chunk.7DNFXJH3.js";import"./chunk.7PRFYYVM.js";import"./chunk.2NCTM5K2.js";import"./chunk.JU2ZVKMT.js";import"./chunk.OQDETV4X.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.GS4T26WW.js";import{F as we,L as X,M as Z,U as ee,X as te}from"./chunk.Z56B2JR2.js";import{Gb as Y,aa as J,ea as Q,fa as v,ga as j}from"./chunk.HLLWKSZB.js";import{b as B}from"./chunk.AJZBJBMO.js";var g=B(we(),1);async function re(e,i){let r=await createImageBitmap(e);try{let l=Math.min(1,i/Math.max(r.width,r.height)),o=document.createElement("canvas");o.width=Math.max(1,Math.round(r.width*l)),o.height=Math.max(1,Math.round(r.height*l));let s=o.getContext("2d");if(s===null)throw new Error("This browser will not give us a canvas to resize with.");return s.drawImage(r,0,0,o.width,o.height),o}finally{r.close()}}var t=B(Z(),1),ve=2048,$e=.85;function H(e){return e<1e3?`${e} bytes`:e<1e6?`${Math.round(e/1e3)} KB`:`${(e/1e6).toFixed(e<1e7?1:0)} MB`}function O(e){if(e.type==="application/pdf")return"PDF";let i=/\.([a-z0-9]{2,5})$/i.exec(e.name??"")?.[1];return i?i.toUpperCase():(e.type.split("/")[1]??e.type).replace(/^x-|^vnd\./,"").split(/[.+-]/)[0].toUpperCase()}function ue(e){let i=[...new Set(e.map(r=>r==="image/*"?"pictures":r==="*/*"||r==="*"?"any file":`${O({type:r})} files`))];return i.length<=1?i[0]??"no files":`${i.slice(0,-1).join(", ")} and ${i[i.length-1]}`}function ce(e,i){if(e.length===0)return!0;let r=`${i.split("/")[0]}/*`;return e.some(l=>l==="*"||l==="*/*"||l===i||l===r)}var ie=/^image\/hei[cf]$|\.hei[cf]$/i,le=e=>ie.test(e.type)||ie.test(e.name);async function Fe(e,i,r){let l=e.name||(r.camera?"photo.jpg":"file"),o=e.type||(le({type:"",name:l})?"image/heic":"application/octet-stream"),s=le({type:o,name:l}),d=o.startsWith("image/")||s;if(r.image&&!d)return{refused:`\u201C${l}\u201D isn\u2019t a picture.`};if(s||d&&/^image\/(jpeg|webp)$/.test(o)&&(r.camera||e.size>i.maxBytes||e.size>15e5))try{let a=await re(e,ve),f=await new Promise(y=>a.toBlob(y,"image/jpeg",$e));if(f)return oe({blob:f,name:s?l.replace(/\.hei[cf]$/i,"")+".jpg":l,type:"image/jpeg",width:a.width,height:a.height},i)}catch{if(s&&!ce(i.kinds,o))return{refused:`\u201C${l}\u201D is a HEIC photo, which this browser can\u2019t turn into a JPEG and this host doesn\u2019t take. Save it as a JPEG and try again.`}}let c={};if(d&&!s)try{let a=await createImageBitmap(e);c={width:a.width,height:a.height},a.close()}catch{}return oe({blob:e,name:l,type:o,...c},i)}function oe(e,i){return ce(i.kinds,e.type)?e.blob.size>i.maxBytes?{refused:`\u201C${e.name}\u201D is ${H(e.blob.size)}; this host takes files up to ${H(i.maxBytes)}.`}:e:{refused:`\u201C${e.name}\u201D is a ${O(e)} file; this host takes ${ue(i.kinds)}.`}}async function ke(e,i,r){let l;try{l=await i.upload(e.blob,e.name)}catch(s){let d=s instanceof Error&&s.message.trim()?s.message.trim():"the host refused it";return{refused:`\u201C${e.name}\u201D wasn\u2019t kept: ${d}`}}return Q(l)?r&&!v(l)?{refused:`\u201C${e.name}\u201D isn\u2019t a picture.`}:{...l,...l.width===void 0&&e.width?{width:e.width}:{},...l.height===void 0&&e.height?{height:e.height}:{}}:{refused:`The host\u2019s answer for \u201C${e.name}\u201D isn\u2019t a file a record can keep.`}}var F="var(--graview-radius, 8px)",S={color:"var(--graview-ink-muted)",fontSize:"0.8125rem"};function _({file:e,size:i=56,style:r}){return(0,t.jsx)("img",{src:e.href,alt:$(e),width:i,height:i,loading:"lazy",decoding:"async","data-graview-thumb":e.href,style:{width:i,height:i,objectFit:"cover",borderRadius:F,display:"block",flex:"none",background:"var(--graview-edge)",...r}})}function N({files:e,label:i}){let r=e.filter(v),l=e.filter(a=>!v(a)),[o,s]=(0,g.useState)(null),d=(0,g.useRef)(null),m=(0,g.useRef)(null);(0,g.useEffect)(()=>{let a=d.current;o!==null&&a&&!a.open&&a.showModal?.()},[o]);let c=o===null?void 0:r[o];return(0,t.jsxs)("div",{style:{display:"grid",gap:10,minWidth:0},children:[r.length>0?(0,t.jsx)("ul",{"data-graview-gallery":"","aria-label":i,style:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(96px, 1fr))",gap:8},children:r.map((a,f)=>(0,t.jsx)("li",{style:{minWidth:0},children:(0,t.jsx)("button",{type:"button","aria-label":`Open ${$(a)} full size`,onClick:y=>{m.current=y.currentTarget,s(f)},style:{padding:0,border:0,background:"none",cursor:"zoom-in",display:"block",width:"100%",borderRadius:F},children:(0,t.jsx)("img",{src:a.href,alt:$(a),loading:"lazy",decoding:"async",style:{width:"100%",aspectRatio:"1",objectFit:"cover",borderRadius:F,display:"block",background:"var(--graview-edge)"}})})},a.href))}):null,l.length>0?(0,t.jsx)("ul",{"data-graview-documents":"",style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:10},children:l.map(a=>(0,t.jsxs)("li",{"data-graview-document":a.type,style:{display:"grid",gap:6,minWidth:0},children:[a.type==="application/pdf"?(0,t.jsx)("object",{data:a.href,type:"application/pdf","aria-label":$(a),style:{width:"100%",height:420,border:"1px solid var(--graview-edge)",borderRadius:F},children:(0,t.jsxs)("p",{style:{margin:0,padding:12},children:["This browser shows no PDF here: ",(0,t.jsxs)("a",{href:a.href,download:a.name,children:["download ",a.name]}),"."]})}):null,(0,t.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",gap:"2px 10px",alignItems:"baseline",minWidth:0,overflowWrap:"anywhere"},children:[(0,t.jsx)("a",{href:a.href,download:a.name,...a.type==="application/pdf"?{target:"_blank",rel:"noopener"}:{},children:a.name}),(0,t.jsxs)("span",{style:S,children:[O(a)," \xB7 ",H(a.bytes)]})]}),a.caption?(0,t.jsx)("span",{style:S,children:a.caption}):null]},a.href))}):null,c?(0,t.jsx)("dialog",{ref:d,"data-graview-full":c.href,"aria-label":$(c),onClose:()=>{s(null),m.current?.focus()},onClick:a=>{a.target===a.currentTarget&&a.currentTarget.close()},style:{padding:0,border:0,borderRadius:F,maxWidth:"min(96vw, 1600px)",maxHeight:"94vh",background:"var(--graview-panel)",color:"var(--graview-ink)"},children:(0,t.jsxs)("figure",{style:{margin:0,display:"grid",gap:8,padding:10},children:[(0,t.jsx)("img",{src:c.href,alt:$(c),style:{maxWidth:"100%",maxHeight:"80vh",objectFit:"contain",display:"block",margin:"0 auto"}}),(0,t.jsxs)("figcaption",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:c.caption??c.name}),(0,t.jsx)("form",{method:"dialog",style:{margin:0},children:(0,t.jsx)("button",{type:"submit",autoFocus:!0,children:"Close"})})]})]})}):null]})}function ge({value:e,onChange:i,several:r,image:l,label:o,thumbs:s=!0}){let d=X(),m=(0,g.useId)(),c=(0,g.useRef)(null),a=(0,g.useRef)(null),[f,y]=(0,g.useState)(null),[k,D]=(0,g.useState)(null),[U,E]=(0,g.useState)([]),[I,L]=(0,g.useState)(!1),C=d?l?d.kinds.filter(n=>n.startsWith("image/")||n==="*"||n==="*/*"):d.kinds:[],A=d?d.kinds.length===0||C.some(n=>n.startsWith("image/")||n.startsWith("*")):!1,P=!!d&&(!l||A),G=l?r?"pictures":"a picture":r?"files":"a file",q=l?C.length>0?C.join(","):"image/*":d?.kinds.join(",")||void 0,me=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,V=(0,g.useRef)(e);V.current=e;let K=(0,g.useRef)(null),W=(0,g.useRef)(null);(0,g.useEffect)(()=>{let n=W.current;if(!n||n.from===e)return;W.current=null;let u=K.current?.children,h=u?.[Math.min(n.at,u.length-1)];((n.what==="move"?h?.querySelector("[data-graview-file-move]"):null)??h?.querySelector("[data-graview-file-remove]")??c.current?.parentElement?.querySelector("[data-graview-file-choose]"))?.focus()});let T=async(n,u)=>{if(!d||n.length===0)return;let h=r?n:n.slice(0,1),p=[],w=[];h.length<n.length&&w.push(`${o} holds one ${l?"picture":"file"}, so ${n.slice(1).map(b=>`\u201C${b.name||"the photo"}\u201D`).join(", ")} ${n.length>2?"were":"was"} left out.`),E([]),D(null);for(let b of h){y(`Sending ${b.name||"the photo"}\u2026`);let z=await Fe(b,d,{image:l,camera:u==="camera"});if("refused"in z){w.push(z.refused);continue}let x=await ke(z,d,l);"refused"in x?w.push(x.refused):[...r?V.current:[],...p].some(be=>be.href===x.href)?w.push(`\u201C${x.name}\u201D is already here.`):p.push(x)}if(y(null),E(w),p.length!==0)try{i(r?[...V.current,...p]:p.slice(-1)),D(`Added ${p.map(b=>b.name).join(", ")}.`)}catch(b){E([...w,b instanceof Error?b.message:String(b)])}},R=(n,u,h)=>{try{W.current=h?{...h,from:e}:null,i(n),D(u)}catch(p){W.current=null,E([p instanceof Error?p.message:String(p)])}},M=n=>n?Array.from(n):[],ye=n=>{let u=M(n.clipboardData?.files);!P||u.length===0||(n.preventDefault(),T(u,"pasted"))},fe=n=>{L(!1),P&&(n.preventDefault(),T(M(n.dataTransfer?.files),"dropped"))};return(0,t.jsxs)("div",{role:"group","aria-labelledby":`${m}-label`,"data-graview-file-editor":"","data-graview-dropping":I?"":void 0,onPaste:ye,onDragOver:n=>{P&&(n.preventDefault(),L(!0))},onDragLeave:()=>L(!1),onDrop:fe,style:{display:"grid",gap:8,minWidth:0,padding:I?6:0,outline:I?"2px dashed var(--graview-accent)":"none",borderRadius:F},children:[(0,t.jsx)("span",{id:`${m}-label`,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap"},children:o}),e.length>0&&(r||e.length>1)?(0,t.jsx)("ul",{ref:K,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:6},children:e.map((n,u)=>(0,t.jsxs)("li",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",minWidth:0},children:[s&&v(n)?(0,t.jsx)(_,{file:n,size:40}):null,(0,t.jsx)("span",{style:{flex:"1 1 8rem",minWidth:0,overflowWrap:"anywhere"},children:n.name}),(0,t.jsx)(de,{file:n,onCaption:h=>R(e.map((p,w)=>w===u?se(p,h):p),h?`${n.name} now says \u201C${h}\u201D.`:`${n.name} says its name again.`)}),r&&u>0?(0,t.jsx)("button",{type:"button","data-graview-file-move":"","aria-label":`Move ${n.name} earlier`,onClick:()=>R(e.map((h,p)=>p===u-1?n:p===u?e[u-1]:h),`Moved ${n.name} earlier.`,{at:u-1,what:"move"}),children:"\u2191"}):null,r?(0,t.jsx)("button",{type:"button","data-graview-file-remove":"","aria-label":`Remove ${n.name}`,onClick:()=>R(e.filter((h,p)=>p!==u),`Removed ${n.name}.`,{at:u,what:"remove"}),children:"Remove"}):null]},`${u}:${n.href}`))}):e.length===1?(0,t.jsx)(de,{file:e[0],onCaption:n=>R([se(e[0],n)],n?`${e[0].name} now says \u201C${n}\u201D.`:`${e[0].name} says its name again.`)}):null,P?(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center"},children:[(0,t.jsx)("input",{ref:c,type:"file",hidden:!0,multiple:r,...q?{accept:q}:{},"data-graview-file-input":"","aria-label":`Choose ${G}`,onChange:n=>{let u=M(n.currentTarget.files);n.currentTarget.value="",T(u,"picked")}}),(0,t.jsx)("button",{type:"button",disabled:f!==null,onClick:()=>c.current?.click(),"data-graview-file-choose":"",children:e.length>0&&!r?`Replace ${l?"the picture":"the file"}`:`Choose ${G}`}),A?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("input",{ref:a,type:"file",hidden:!0,accept:"image/*",capture:"environment","data-graview-photo-input":"","aria-label":"Take a photo",onChange:n=>{let u=M(n.currentTarget.files);n.currentTarget.value="",T(u,"camera")}}),me?(0,t.jsx)("button",{type:"button",disabled:f!==null,onClick:()=>a.current?.click(),children:"Take a photo"}):null]}):null,(0,t.jsxs)("span",{style:S,"data-graview-file-takes":"",children:["or drop or paste ",r?"them":"it"," here \xB7 ",d.kinds.length>0?ue(C.length>0?C:d.kinds):"any file",", up to ",H(d.maxBytes)]})]}):(0,t.jsx)("p",{style:{...S,margin:0},"data-graview-file-none":"",children:d?"This host doesn\u2019t take pictures, so none can be added here.":"This host doesn\u2019t take files, so none can be added here."}),(0,t.jsx)("p",{"aria-live":"polite",style:{...S,margin:0,minHeight:f||k?void 0:0},"data-graview-file-status":"",children:f??k??""}),U.length>0?(0,t.jsx)("div",{role:"alert","data-graview-file-refused":"",style:{color:"var(--graview-warn)",fontSize:"0.875rem",display:"grid",gap:2},children:U.map((n,u)=>(0,t.jsx)("p",{style:{margin:0},children:n},u))}):null]})}var se=(e,i)=>{let{caption:r,...l}=e;return i?{...l,caption:i}:l};function de({file:e,onCaption:i}){let[r,l]=(0,g.useState)(e.caption??"");(0,g.useEffect)(()=>l(e.caption??""),[e.caption]);let o=()=>{let s=r.trim().slice(0,500);s!==(e.caption??"")&&i(s)};return(0,t.jsx)("input",{type:"text",value:r,placeholder:v(e)?"What it shows":"What it is","aria-label":`What ${e.name} ${v(e)?"shows":"is"}`,"data-graview-file-caption":e.href,onChange:s=>l(s.target.value),onBlur:o,onKeyDown:s=>{s.key==="Enter"&&(s.preventDefault(),o())},style:{flex:"1 1 10rem",minWidth:0,font:"inherit",fontSize:"0.875rem",minHeight:24}})}function pe({field:e,label:i,labelStyle:r,valueStyle:l,style:o,children:s}){return(0,t.jsxs)("div",{"data-graview-files":e,style:{display:"grid",gap:6,minWidth:0,gridColumn:"1 / -1",...o},children:[(0,t.jsx)("dt",{style:r,children:i}),(0,t.jsx)("dd",{style:{margin:0,minWidth:0,display:"grid",gap:10,...l},children:s})]})}function he(e){let{nodeId:i,field:r,label:l,files:o}=e,{fields:s,commit:d}=ae(i),m=s.find(y=>y.field===r&&y.takesValue),c=m?.shape,a=c?.type==="several"?c.of:c,f=c?.type==="several";return o.length===0&&a?.type!=="file"?null:(0,t.jsxs)(pe,{...e,children:[(0,t.jsx)(N,{files:o,label:l}),m&&a?.type==="file"?(0,t.jsx)(ge,{value:o,thumbs:!1,several:f,image:a.image===!0,label:l,onChange:y=>{let k=f?y:y[y.length-1];k!==void 0&&d(m,k)}}):null]})}function Me(e){switch(e.as){case"field":return e.read?e.files.length>0?(0,t.jsx)(pe,{...e,children:(0,t.jsx)(N,{files:e.files,label:e.label})}):null:(0,t.jsx)(he,{...e});case"unfilled":return(0,t.jsx)(Ce,{...e});case"thumb":return(0,t.jsx)(_,{...e});case"block":return e.files.length>0?(0,t.jsx)("span",{className:"graview-spec-image","data-graview-field":e.field,"data-graview-image":e.view,style:{display:"block",minWidth:0,...e.view==="gallery"?{position:"relative",zIndex:Y.raised}:{}},children:e.view==="thumb"?(0,t.jsx)(_,{file:e.files[0],size:72}):(0,t.jsx)(N,{files:e.files,label:e.label})}):null;case"control":{let i=(0,t.jsx)(ge,{value:j(e.value),several:e.several,image:e.image,label:e.label,onChange:r=>e.onChange(e.several?r:r[r.length-1])});return e.title===void 0?i:(0,t.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.several?"files":"file",children:[(0,t.jsx)("legend",{"data-graview-part":"label",children:e.title}),i]})}}}function Ce({nodeId:e,skip:i,labels:r,labelStyle:l,style:o}){let{store:s}=ee(),d=te(e),m=d?s.schema.tryDefinition(d.kind):void 0,c=ne(m).filter(a=>!i.includes(a)&&!(m?.display?.hide??[]).includes(a)&&j(d?.[a]).length===0);return c.length===0?null:(0,t.jsx)("dl",{style:{margin:0,display:"grid",gap:14,minWidth:0},children:c.map(a=>(0,t.jsx)(he,{nodeId:e,field:a,label:r?.[a]??J(m,a),files:[],...l?{labelStyle:l}:{},...o?{style:o}:{}},a))})}export{ge as FilesEditor,ve as SEND_EDGE,Me as drawFiles,ue as kindsWords,Fe as prepare,ke as send,H as sizeWords,ce as takes,O as typeWords};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import{a as I,j as M,k as O}from"./chunk.KZ2376BD.js";import"./chunk.IZW7DBK4.js";import{d as P}from"./chunk.RKRSRKF3.js";import{k as D}from"./chunk.KC6UZHBM.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import{b as C}from"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.GS4T26WW.js";import{F as _,M as F}from"./chunk.Z56B2JR2.js";import{Gb as N,W as E}from"./chunk.HLLWKSZB.js";import{b as L}from"./chunk.AJZBJBMO.js";var f=L(_(),1);var n=L(F(),1),R=40,W=60;function T(l,i,s){return l.allNodes().filter(o=>o.kind===i).map(o=>o[s])}function q(l){if(l.length<2)return[];let i=[...l].sort((a,d)=>a-d),s=i[i.length-1]-i[0];if(s<=0)return[];let o=Math.max(1,10**Math.floor(Math.log10(s/4))),e=s/4>=o*5?o*5:o,t=a=>Math.round(a/e)*e;return[...new Set([.2,.4,.6,.8].map(a=>t(i[Math.floor(a*(i.length-1))])))].filter(a=>a>0)}function H(l,i,s){let o=new Set(s.far??[]),e=new Map;for(let t of i.allNodes())o.has(t.kind)&&e.set(t.id,E(l.tryDefinition(t.kind),t));return[...e.entries()].map(([t,a])=>({id:t,label:a}))}function B(l,i,s){let o=H(l,i,s);return(o.length<=R?o:o.map(t=>({end:t,ties:i.out(t.id).length+i.in(t.id).length})).sort((t,a)=>a.ties-t.ties||t.end.label.localeCompare(a.end.label)).slice(0,R).map(t=>t.end)).sort((t,a)=>t.label.localeCompare(a.label))}function Y(l,i,s){let o=[];for(let e of s.filters){let t=o.length;if(e.about==="is")for(let a of e.options??[])o.push({value:`is:${a}`,label:a,group:e.label,condition:{key:"is",value:a}});else if(e.about==="edge"){o.push({value:`${e.key}:*`,label:"anything",group:e.label,condition:{key:e.key,value:"*"}}),o.push({value:`${e.key}:none`,label:"nothing",group:e.label,condition:{key:e.key,value:"none"}});for(let a of B(l,i,e))o.push({value:`${e.key}:${a.id}`,label:a.label,group:e.label,condition:{key:e.key,value:a.id}})}else if(e.type==="date")for(let a of["before","after","on"])o.push({value:`${e.key}:${a}`,label:`${a}\u2026`,group:e.label,ask:{key:e.key,op:a,label:e.label}});else if(e.type==="number"){let a=l.tryDefinition(s.kind),d=q(T(i,s.kind,e.key).filter(g=>typeof g=="number"));for(let g of["at-most","at-least"])for(let v of g==="at-most"?d:[...d].reverse())o.push({value:`${e.key}:${g}:${v}`,label:`${g==="at-most"?"at most":"at least"} ${C(a,e.key,v)}`,group:e.label,condition:{key:e.key,value:`${g}:${v}`}})}else if(e.type==="text"){let a=[...new Set(T(i,s.kind,e.key).filter(d=>typeof d=="string"&&d.length>0&&!d.includes(",")))].sort((d,g)=>d.localeCompare(g));if(a.length>=2&&a.length<=W)for(let d of a)o.push({value:`${e.key}:${d}`,label:d,group:e.label,condition:{key:e.key,value:d}})}else if(e.type==="boolean")o.push({value:`${e.key}:true`,label:"yes",group:e.label,condition:{key:e.key,value:"true"}}),o.push({value:`${e.key}:false`,label:"no",group:e.label,condition:{key:e.key,value:"false"}});else if(e.about==="via"){let a=l.tryDefinition(e.far?.[0]??"");for(let d of e.options??[])o.push({value:`${e.key}:${d}`,label:C(a,e.key.split(".")[1],d),group:e.label,condition:{key:e.key,value:d}})}else for(let a of e.options??[])o.push({value:`${e.key}:${a}`,label:C(l.tryDefinition(s.kind),e.key,a),group:e.label,condition:{key:e.key,value:a}});for(let a=t;a<o.length;a++)o[a]={...o[a],key:e.key}}return o}function K(l,i,s){let o=Y(l,i,s);return s.filters.flatMap(e=>{let t=o.filter(d=>d.key===e.key);if(t.length===0)return[];if(e.about!=="edge")return[{key:e.key,label:e.label,entries:t}];let a=H(l,i,e);return a.length<I?[{key:e.key,label:e.label,entries:t}]:[{key:e.key,label:e.label,entries:t.filter(d=>d.value===`${e.key}:*`||d.value===`${e.key}:none`),typed:[...a].sort((d,g)=>d.label.localeCompare(g.label))}]})}var G=8;function z(l,i){let s=i.trim().toLocaleLowerCase();if(!s)return{shown:[],more:0};let e=[...l.filter(t=>t.label.toLocaleLowerCase().includes(s))].sort((t,a)=>+!t.label.toLocaleLowerCase().startsWith(s)-+!a.label.toLocaleLowerCase().startsWith(s));return{shown:e.slice(0,G),more:Math.max(0,e.length-G)}}var U=["day","week","month","year","decade"];function te(l){let{which:i,schema:s,graph:o,offers:e,arrangement:t,set:a,toggle:d,has:g,done:v}=l,b=l.testId,A=(0,f.useRef)(null);(0,f.useEffect)(()=>{let u=A.current?.closest("[data-graview-popover]");!u||document.activeElement!==u||(u.querySelector('[aria-pressed="true"]')??u.querySelector("button, input"))?.focus({preventScroll:!0})},[]);let y=t.sort?e.sorts.find(u=>u.key===t.sort.by):void 0,S=t.group?e.groups.find(u=>u.key===t.group.by):void 0,w=O(y),r=e.natural?e.sorts.find(u=>u.key===e.natural.by):void 0,h=i==="filter"||i==="all"&&l.parts?.filter?K(s,o,e):[],k=u=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{children:"Sort by"}),(0,n.jsx)($,{testId:`${b}-sort-default`,value:"",on:!t.sort,onPress:()=>(a({sort:void 0}),u()),children:r?`As declared (${M(r.label)})`:"As they were added"}),e.sorts.map(p=>(0,n.jsx)($,{value:p.key,on:t.sort?.by===p.key,onPress:()=>(a({sort:{by:p.key,direction:t.sort?.direction??"asc"}}),u()),children:p.label},p.key)),t.sort?(0,n.jsxs)("div",{role:"group","aria-label":"Order","data-testid":`${b}-direction`,children:[(0,n.jsx)("p",{"aria-hidden":"true",children:"Order"}),["asc","desc"].map(p=>(0,n.jsx)($,{testId:`${b}-direction-${p}`,value:p,on:t.sort.direction===p,onPress:()=>(a({sort:{by:t.sort.by,direction:p}}),u()),children:w[p]},p))]}):null]}),c=u=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{children:"Group by"}),(0,n.jsx)($,{testId:`${b}-group-none`,value:"",on:!t.group,onPress:()=>(a({group:void 0}),u()),children:"Not grouped"}),e.groups.map(p=>(0,n.jsx)($,{value:p.key,on:t.group?.by===p.key,onPress:()=>(a({group:{by:p.key}}),u()),children:p.label},p.key)),t.group&&S?.buckets?(0,n.jsxs)("div",{role:"group","aria-label":"How wide a group is","data-testid":`${b}-bucket`,children:[(0,n.jsx)("p",{"aria-hidden":"true",children:"Each group"}),U.map(p=>(0,n.jsx)($,{testId:`${b}-bucket-${p}`,value:p,on:(t.group.bucket??"day")===p,onPress:()=>(a({group:{by:t.group.by,bucket:p}}),u()),children:`A ${p}`},p))]}):null]}),x=u=>(0,n.jsx)(V,{sections:h,has:g,testId:b,onToggle:p=>(d(p),u())}),m=l.parts??{sort:!0,group:!0,filter:!0};return(0,n.jsxs)("div",{ref:A,style:{display:"contents"},children:[(0,n.jsx)("style",{children:J}),i==="sort"?k(v):i==="group"?c(v):i==="filter"?x(v):(0,n.jsxs)(n.Fragment,{children:[m.sort?(0,n.jsx)("div",{role:"group","aria-label":"Sort",children:k(v)}):null,m.group?(0,n.jsx)("div",{role:"group","aria-label":"Group",children:c(v)}):null,m.filter?(0,n.jsx)("div",{role:"group","aria-label":"Filter",children:x(v)}):null]})]})}function $({value:l,on:i,onPress:s,testId:o,children:e}){return(0,n.jsx)("button",{type:"button",className:"graview-arrange-item",value:l,"data-value":l,"aria-pressed":i,onClick:s,...o?{"data-testid":o}:{},children:e})}function V({sections:l,has:i,testId:s,onToggle:o}){let[e,t]=(0,f.useState)(null),[a,d]=(0,f.useState)(""),[g,v]=(0,f.useState)(()=>new Set(l.length===1?[l[0].key]:[])),[b,A]=(0,f.useState)({});if(e)return(0,n.jsx)(j,{ask:e,testId:s,onDay:r=>o({key:e.key,value:`${e.op}:${r}`}),onCancel:()=>t(null)});let y=r=>(0,n.jsx)($,{value:r.value,on:r.condition?i(r.condition):!1,onPress:()=>r.condition?o(r.condition):t(r.ask),children:r.label},r.value),S=(r,h)=>{let k=(r.typed??[]).filter(m=>i({key:r.key,value:m.id})),c=z(r.typed??[],h),x=[...k,...c.shown.filter(m=>!k.includes(m))];return(0,n.jsxs)(n.Fragment,{children:[x.map(m=>y({value:`${r.key}:${m.id}`,label:m.label,group:r.label,key:r.key,condition:{key:r.key,value:m.id}})),h.trim()&&c.shown.length===0?(0,n.jsx)("span",{className:"graview-arrange-none",children:"None is called that."}):null,c.more>0?(0,n.jsx)("span",{className:"graview-arrange-none",children:`${c.more} more \u2014 type more of the name`}):null]})},w=a.trim().toLocaleLowerCase();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"graview-arrange-find",children:[(0,n.jsx)("span",{style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)"},children:"Find a filter"}),(0,n.jsx)("input",{type:"search","data-testid":`${s}-filter-find`,value:a,placeholder:"Find a filter or a name\u2026",onChange:r=>d(r.target.value)})]}),l.map(r=>{let h=r.entries.filter(c=>c.condition&&i(c.condition)).length+(r.typed??[]).filter(c=>i({key:r.key,value:c.id})).length;if(w){let x=r.label.toLocaleLowerCase().includes(w)?r.entries:r.entries.filter(u=>u.label.toLocaleLowerCase().includes(w)),m=r.typed?z(r.typed,w):{shown:[],more:0};return x.length===0&&m.shown.length===0?null:(0,n.jsxs)("div",{role:"group","aria-label":r.label,"data-section":r.key,children:[(0,n.jsx)("p",{"aria-hidden":"true",children:r.label}),x.map(y),r.typed?S(r,w):null]},r.key)}let k=g.has(r.key);return(0,n.jsxs)("div",{role:"group","aria-label":r.label,"data-section":r.key,children:[(0,n.jsxs)("button",{type:"button",className:"graview-arrange-section","data-testid":`${s}-section`,"data-key":r.key,"aria-expanded":k,onClick:()=>v(c=>c.has(r.key)?new Set([...c].filter(x=>x!==r.key)):new Set([...c,r.key])),children:[(0,n.jsx)("span",{children:r.label}),h>0?(0,n.jsx)("span",{className:"graview-arrange-on",children:`${h} on`}):null]}),k?(0,n.jsxs)(n.Fragment,{children:[r.typed?(0,n.jsx)("input",{type:"search",className:"graview-arrange-far","data-testid":`${s}-far-find`,"data-key":r.key,"aria-label":`${r.label}: type a name`,placeholder:`Type a name (${r.typed.length})\u2026`,autoFocus:!0,value:b[r.key]??"",onChange:c=>A({...b,[r.key]:c.target.value})}):null,r.entries.map(y),r.typed?S(r,b[r.key]??""):null]}):null]},r.key)})]})}function j({ask:l,testId:i,onDay:s,onCancel:o}){let[e,t]=(0,f.useState)(""),a=/^\d{4}-\d{2}-\d{2}$/.test(e)&&Number(e.slice(0,4))>=1e3,d=()=>{a&&s(e)};return(0,n.jsxs)("div",{role:"group","aria-label":`${l.label} ${l.op} which day`,"data-testid":`${i}-ask-day`,className:"graview-arrange-ask",children:[(0,n.jsx)("p",{"aria-hidden":"true",children:`${l.label} ${l.op}`}),(0,n.jsx)("input",{type:"date","data-testid":`${i}-day`,"aria-label":`${l.label} ${l.op} which day`,autoFocus:!0,value:e,onChange:g=>t(g.target.value),onKeyDown:g=>{g.key==="Enter"?(g.preventDefault(),d()):g.key==="Escape"&&(g.preventDefault(),g.stopPropagation(),g.nativeEvent.stopImmediatePropagation(),o())}}),(0,n.jsxs)("span",{children:[(0,n.jsx)("button",{type:"button","data-testid":`${i}-day-add`,disabled:!a,onClick:d,children:"Add"}),(0,n.jsx)("button",{type:"button",onClick:o,children:"Never mind"})]})]})}var J=`
|
|
2
|
-
.graview-arrange-list{display:grid;align-content:start;width:min(300px,calc(100vw - 24px));height:auto;max-height:min(70vh,520px);overflow:auto;overscroll-behavior:contain;margin:0;padding:0 6px 6px;border-radius:10px;border:1px solid var(--graview-edge);background:linear-gradient(var(--graview-float),var(--graview-float)),var(--graview-panel);box-shadow:var(--graview-lift-high);color:var(--graview-ink);font-size:.875rem;line-height:1.3}
|
|
3
|
-
.graview-arrange-list>*:first-child:not(.graview-arrange-find){margin-top:6px}
|
|
4
|
-
@media (max-width:519px){.graview-arrange-list{left:0!important;right:0!important;top:auto!important;bottom:0!important;width:100%!important;max-height:min(80dvh,560px)!important;border-radius:14px 14px 0 0;padding-bottom:calc(10px + env(safe-area-inset-bottom))}}
|
|
5
|
-
.graview-arrange-find{position:sticky;top:0;z-index:${N.raised};display:block;margin:0 -6px 2px;padding:6px;background:linear-gradient(var(--graview-float),var(--graview-float)),var(--graview-panel);border-bottom:1px solid var(--graview-edge)}
|
|
6
|
-
.graview-arrange-find input,.graview-arrange-far{box-sizing:border-box;width:100%;min-height:32px;margin:0;padding:0 8px;border:1px solid var(--graview-edge);border-radius:7px;background:var(--graview-panel);font:inherit;color:var(--graview-ink)}
|
|
7
|
-
.graview-arrange-far{width:calc(100% - 16px);margin:2px 8px 4px}
|
|
8
|
-
.graview-arrange-section{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:32px;margin:0;padding:6px 8px;border:0;border-radius:7px;background:none;font:inherit;font-weight:600;text-align:left;color:var(--graview-ink);cursor:pointer}
|
|
9
|
-
.graview-arrange-section::after{content:"";flex:0 0 7px;height:7px;margin-left:auto;border:solid var(--graview-ink-muted);border-width:0 1.5px 1.5px 0;transform:rotate(-45deg)}
|
|
10
|
-
.graview-arrange-section[aria-expanded=true]::after{transform:rotate(45deg)}
|
|
11
|
-
.graview-arrange-section:hover{background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
|
|
12
|
-
.graview-arrange-on{font-weight:400;color:var(--graview-accent)}
|
|
13
|
-
.graview-arrange-none{display:block;padding:4px 8px 6px 28px;color:var(--graview-ink-muted)}
|
|
14
|
-
.graview-arrange-list [role=group]{display:grid}
|
|
15
|
-
.graview-arrange-list p{margin:8px 8px 2px;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--graview-ink-muted)}
|
|
16
|
-
.graview-arrange-item{display:flex;align-items:flex-start;gap:8px;width:100%;min-height:30px;margin:0;padding:6px 8px;border:0;border-radius:7px;background:none;font:inherit;text-align:left;color:var(--graview-ink);cursor:pointer;overflow-wrap:anywhere}
|
|
17
|
-
.graview-arrange-item::before{content:"";flex:0 0 12px}
|
|
18
|
-
.graview-arrange-item[aria-pressed=true]{font-weight:600}
|
|
19
|
-
.graview-arrange-item[aria-pressed=true]::before{content:"\u2713";color:var(--graview-accent)}
|
|
20
|
-
.graview-arrange-item:hover{background:color-mix(in srgb,var(--graview-ink) 7%,transparent)}
|
|
21
|
-
.graview-arrange-ask{display:grid;gap:8px;padding:0 8px 8px}
|
|
22
|
-
.graview-arrange-ask p{margin:8px 0 0}
|
|
23
|
-
.graview-arrange-ask input{box-sizing:border-box;width:100%;min-height:32px;padding:0 8px;border:1px solid var(--graview-edge);border-radius:7px;background:var(--graview-panel);font:inherit;color:var(--graview-ink)}
|
|
24
|
-
.graview-arrange-ask span{display:flex;gap:8px}
|
|
25
|
-
.graview-arrange-ask button{min-height:30px;padding:0 12px;border:1px solid var(--graview-edge);border-radius:7px;background:var(--graview-panel);font:inherit;color:var(--graview-ink);cursor:pointer}
|
|
26
|
-
.graview-arrange-ask button:disabled{opacity:.5;cursor:default}
|
|
27
|
-
`;function oe({offers:l,chips:i,schema:s,graph:o,kind:e,arrangement:t,has:a,choose:d,testId:g}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{children:X}),(0,n.jsx)(Q,{offers:l,chips:i,schema:s,graph:o,kind:e,arrangement:t,has:a,choose:d,testId:g})]})}function Q({offers:l,chips:i,schema:s,graph:o,kind:e,arrangement:t,has:a,choose:d,testId:g}){let v={schema:s,graph:o,...i.flagged?{flagged:i.flagged}:{},...i.today?{today:i.today}:{}},b=s.tryDefinition(e),A=i.nodes.filter(y=>!t.query||P(v,y,t.query));return(0,n.jsx)("div",{className:"graview-arrange-chips","data-testid":`${g}-chips`,children:l.map(y=>{let S=(t.filter??[]).filter(r=>r.key!==y.key),w=new Map;for(let r of A){if(!S.every(k=>D(v,r,k)))continue;let h=String(r[y.key]);w.set(h,(w.get(h)??0)+1)}return(0,n.jsxs)("div",{role:"group","aria-label":y.label,className:"graview-arrange-chip-row","data-field":y.key,children:[(0,n.jsx)("span",{className:"graview-arrange-chip-label","aria-hidden":"true",children:y.label}),(y.options??[]).filter(r=>(w.get(r)??0)>0||a({key:y.key,value:r})).map(r=>{let h=C(b,y.key,r),k=w.get(r)??0;return(0,n.jsxs)("button",{type:"button",className:"graview-arrange-chip","data-testid":`${g}-chip`,"data-value":`${y.key}:${r}`,"aria-pressed":a({key:y.key,value:r}),"aria-label":`${y.label}: ${h}, ${k}`,onClick:()=>d(y.key,r),children:[h,(0,n.jsx)("span",{className:"graview-arrange-chip-count","aria-hidden":"true",children:k})]},r)})]},y.key)})})}var X=`
|
|
28
|
-
.graview-arrange-chips,.graview-arrange-chip-row{display:contents}
|
|
29
|
-
@container (max-width:519px){.graview-arrange-chips{display:flex;flex:1 1 10rem;align-items:center;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none}.graview-arrange-chip-label{margin:0}.graview-arrange-chip{flex:0 0 auto;white-space:nowrap}}
|
|
30
|
-
.graview-arrange-chip-label{margin:0 0 0 8px;font-size:.8125rem;color:var(--graview-ink-muted)}
|
|
31
|
-
.graview-arrange-chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;max-width:100%;box-sizing:border-box;margin:0;padding:0 10px;border:1px solid var(--graview-edge);border-radius:999px;background:var(--graview-panel);font:inherit;font-size:.8125rem;line-height:1.2;color:var(--graview-ink);cursor:pointer;overflow-wrap:anywhere;text-align:left}
|
|
32
|
-
.graview-arrange-chip:hover{border-color:var(--graview-edge-bright,var(--graview-edge))}
|
|
33
|
-
.graview-arrange-chip[aria-pressed=true]{border-color:var(--graview-accent);background:color-mix(in srgb,var(--graview-accent) 12%,var(--graview-panel));font-weight:600}
|
|
34
|
-
.graview-arrange-chip-count{color:var(--graview-ink-muted);font-variant-numeric:tabular-nums;font-weight:400}
|
|
35
|
-
`;export{oe as ArrangeChips,te as ArrangeLists,R as FAR_ENDS,G as TYPED_MATCHES,Y as filterEntries,K as filterSections,q as roundSteps,z as typedMatches};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as we,f as ve}from"./chunk.CK7QWLMX.js";import{e as st}from"./chunk.QNHECGMH.js";import{a as lt,b as dt}from"./chunk.IZW7DBK4.js";import{e as ot}from"./chunk.RKRSRKF3.js";import{a as te,b as Je}from"./chunk.3G5MQFZK.js";import{b as j,c as H,d as Ze,e as et}from"./chunk.2CLPRG3I.js";import{a as gt,f as ut,h as pt}from"./chunk.O42YET3W.js";import{a as Ne,b as ct}from"./chunk.Z5V23DQN.js";import{k as it,p as he}from"./chunk.OYJSFO3A.js";import{c as rt}from"./chunk.HV6I74DF.js";import{d as tt,e as ne,f as q,g as fe,h as nt,j as at,k as ae}from"./chunk.DAA6XWLF.js";import{a as ye}from"./chunk.HGAMNIST.js";import{c as Qe,d as xe}from"./chunk.5R66YTET.js";import{c as Ye}from"./chunk.G4WQGTZR.js";import{a as de}from"./chunk.GS4T26WW.js";import{$ as I,F as ce,M,N as _e,T as je,U as R,W as ge,_ as qe,aa as Ue,ca as ue,ea as Xe,ga as ke,ha as pe,ia as be,j as We,l as Ie,m as He,pa as me,r as ee,v as ze,y as Fe,z as Ke}from"./chunk.Z56B2JR2.js";import{Ia as Oe,M as Y,W as b,Y as Q,ca as L,ob as Z}from"./chunk.HLLWKSZB.js";import{b as $}from"./chunk.AJZBJBMO.js";var w=$(ce(),1);var Pe=$(ce(),1);var A=$(ce(),1);var T=$(M(),1);function mt({id:e,max:n=8,empty:t,hide:a}){let{store:o}=R();ge();let g=Tt(o,e,o.violations()),d=a?g.flatMap(c=>{let p=c.ids.filter(m=>!a.has(m));return p.length>0?[{...c,ids:p}]:[]}):g;return d.length===0?t&&g.length===0?(0,T.jsx)("p",{style:{margin:0,fontSize:"0.875rem",color:"var(--graview-ink-faint)"},children:t}):null:(0,T.jsx)("div",{"data-graview-primitive":"connections",style:{display:"flex",flexDirection:"column",gap:12},children:d.map(c=>{let p=c.ids.slice(0,n),m=c.ids.length-p.length;return(0,T.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,T.jsx)("h2",{...c.said?{"aria-label":c.said}:{},style:{margin:0,fontSize:"0.75rem",fontWeight:600,letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:c.label}),(0,T.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:[p.map(f=>{let i=o.graph.getNode(f);return i?(0,T.jsx)(H,{pickId:f,hue:Z(i.kind),title:`Go to the ${L(o.schema.tryDefinition(i.kind),i.kind)}`,label:b(o.schema.tryDefinition(i.kind),i)},f):null}),m>0?(0,T.jsx)(H,{label:`+${m} more`}):null]})]},c.key)})})}function Tt(e,n,t=[]){let a=e.graph.getNode(n);if(!a)return[];let o=new Map,g=[];for(let d of t)if(d.subjectId===n)for(let c of d.nodeIds)c!==n&&!g.includes(c)&&e.graph.has(c)&&g.push(c);g.length>0&&o.set("judges",{key:"judges",label:"what it finds wrong",ids:g});for(let d of e.graph.allEdges()){let c=d.from===n?d.to:d.to===n?d.from:null;if(c===null||c===n)continue;let p=e.graph.getNode(c);if(!p)continue;let m=d.from===n?"out":"in",f=m==="out"?a.kind:p.kind,i=Bt(e.schema,f,d.kind,m),l=`${d.kind}:${m}:${i.label}`,y=o.get(l)??{key:l,...i,ids:[]};y.ids.includes(c)||y.ids.push(c),o.set(l,y)}for(let d of o.values())d.ids.sort();return[...o.values()].sort((d,c)=>d.key<c.key?-1:d.key>c.key?1:0)}function Bt(e,n,t,a){let o=Ye(e,n,t,a),g=Q(t).toLowerCase();return o.trim().toLowerCase()!==g?{label:o}:a==="out"?{label:`\u2192 ${g}`,said:g}:{label:`\u2190 ${g}`,said:`${g}, pointing here`}}var ft=$(ce(),1),ie=(0,ft.createContext)(null);var s=$(M(),1),Et=me(de(()=>import("./chunk.OWBEV6FR.js"))).part((e,n)=>(0,s.jsx)(e.ArrangeBar,{...n}),{what:"Arranging this list"}),Lt=me(de(()=>import("./chunk.XDZSTIS6.js"))).part((e,n)=>(0,s.jsx)(e.KindStop,{...n}),{what:"This list"});function Re(e){let{brand:n}=R();return Z(e,n?.accents)}function Mt(e,n){if(!n.endsWith("\u2026")&&!n.endsWith("..."))return;let t=n.replace(/[…]|\.\.\.$/g,"").trim();if(!(t.length<12)){for(let a of Object.values(e))if(typeof a=="string"&&a.length>t.length&&a.startsWith(t))return a}}function Gt(e,n){let a=Math.max(0,...e.slice(0,n*2).map(g=>g.length))*7.5+28<=212/2?2:1,o=n*a;return{columns:a,shown:Math.min(e.length,o)}}var Ot=8,ht=500,Wt=12;function yt(e){return{x:e.clientX,y:e.clientY,pointerType:e.pointerType??""}}function It(e,n,t){let a=performance.now()+ht,o=["pointerdown","pointerup","mousedown","mouseup","dblclick"],g=i=>{if(performance.now()>a||!(i instanceof MouseEvent))return!1;let l=yt(i);return n.pointerType&&l.pointerType&&n.pointerType!==l.pointerType?!1:Math.hypot(l.x-n.x,l.y-n.y)<=Wt},d=i=>{if(!g(i))return m();i.stopPropagation()},c=i=>{if(!g(i))return m();i.stopPropagation(),i.preventDefault(),e.removeEventListener("click",c,!0),setTimeout(m,50),t()},p=!1,m=()=>{if(!p){p=!0,clearTimeout(f),e.removeEventListener("click",c,!0);for(let i of o)e.removeEventListener(i,d,!0)}};for(let i of o)e.addEventListener(i,d,!0);e.addEventListener("click",c,!0);let f=setTimeout(m,ht)}function Ht({View:e,members:n,mode:t,flagged:a}){let{isSelected:o}=ke(),g=n.slice(0,Ot);return(0,s.jsxs)("div",{"data-graview-rows":"",style:{display:"grid",gap:4,minWidth:0},children:[g.map(d=>(0,s.jsx)("div",{"data-graview-pick":d.id,style:{minWidth:0,cursor:"pointer"},children:(0,s.jsx)(e,{node:d,cardinality:"one",fidelity:"glyph",mode:t,selected:o(d.id),...a?.includes(d.id)?{flagged:[d.id]}:{}})},d.id)),n.length>g.length?(0,s.jsx)(H,{label:`+${n.length-g.length} more`}):null]})}var zt=11/15,Ft=me(de(()=>import("./chunk.SS76EIMI.js"))).part((e,n)=>(0,s.jsx)(e.StatesBar,{...n}),{quiet:!0});function Kt({text:e,accent:n}){let t=(0,A.useRef)(null),a=(0,A.useRef)(null),[o,g]=(0,A.useState)(1),[d,c]=(0,A.useState)(!1),p=o<1?`${o}em`:void 0;return(0,A.useLayoutEffect)(()=>{let m=t.current,f=a.current;if(!m||!f)return;let i=()=>{let y=m.clientWidth,v=f.offsetWidth;if(y<=0||v<=0)return;let h=parseFloat(getComputedStyle(f).fontSize)/parseFloat(getComputedStyle(m).fontSize)||1,P=v/h,x=Math.max(zt,Math.min(1,Math.floor(y/P*100)/100));g(N=>Math.abs(N-x)<.01?N:x),c(P*x>y+.5)};if(i(),typeof ResizeObserver>"u")return;let l=new ResizeObserver(i);return l.observe(m),()=>l.disconnect()},[e]),(0,s.jsx)("span",{ref:t,"data-graview-district-name":"",...o<1?{"data-graview-fitted":""}:{},...d?{title:e}:{},style:{display:"block",minWidth:0,fontSize:"0.9375rem",lineHeight:1.25,letterSpacing:"0.05em",textTransform:"uppercase",color:n?"var(--graview-accent)":"var(--graview-ink-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:(0,s.jsx)("span",{ref:a,style:{fontSize:p},children:e})})}function _t(e,n){return!!e?.display?.page?.groups?.length||xe(n,e).some(t=>t.long)}function wt(e,n=ue(e)){for(let t of e.kinds){let a=e.tryDefinition(t),o=a?.plural??`${String(t)}s`,g=i=>{let l=i.node,y=pe(),v=(0,A.useContext)(ie);if(!l)return null;let h=v?.nodeId===l.id?v:null,P=b(a,l),x=i.mode==="fullscreen"?Mt(l,P)??P:P,N=Oe(y,[l.id]);return(0,s.jsxs)(j,{title:(0,s.jsx)(pt,{nodeId:l.id,children:h?.title??x}),...h?{}:{subtitle:a?.describe?Qe(a,l):a?.description??String(t)},selected:i.selected,...i.flagged?.includes(l.id)?{tone:"warning"}:{},fit:!0,children:[h?(0,s.jsx)(ie.Provider,{value:null,children:h.body}):null,(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:_t(a,l)?"minmax(0, 1fr)":"minmax(200px, 1fr) minmax(220px, 1.4fr)",gap:"22px 34px",alignItems:"start"},children:[(0,s.jsx)(ut,{id:l.id,shown:[x,P,a?.description,h?.title],...h?{hide:[...h.fields]}:{}}),(0,s.jsx)(mt,{id:l.id,empty:`Nothing is connected to this ${L(a,String(t))} yet.`,...h?{hide:h.records}:{}})]}),N.length>0?(0,s.jsx)("p",{"data-graview-broken":"",style:{margin:"14px 0 0",paddingTop:12,borderTop:"1px solid var(--graview-edge)",fontSize:"0.875rem",color:"var(--graview-warn)"},children:N.map(z=>z.message).join(" \xB7 ")}):null]})},d=i=>{let l=i.node;if(!l)return null;let{store:y}=R(),v=a?.computed?at(y.schema,y.graph,l):l,h=xe(v,a,{limit:3,said:[b(a,l)],glance:!0}),P=Re(t),x=tt(l,a);return(0,s.jsxs)(j,{title:b(a,l),selected:i.selected,tone:i.flagged?.includes(l.id)?"warning":"muted",fit:!0,children:[x?(0,s.jsx)(ye,{as:"thumb",file:x,size:64,style:{marginBottom:6}}):null,(0,s.jsx)(Ze,{items:h.map(N=>({id:N.key,label:N.alone,hue:P})),max:3})]})},c=i=>{let l=i.node,y=Re(t),v=he().marks.flag;if(!l)return null;let h=i.flagged?.includes(l.id)??!1;return(0,s.jsx)(H,{label:h?`${b(a,l)} ${v}`:b(a,l),hue:y,selected:i.selected,title:h?`${Q(L(a,String(t)))} \u2014 implicated in a problem`:Q(L(a,String(t)))})},p=i=>i.fidelity==="full"?(0,s.jsx)(A.Suspense,{fallback:(0,s.jsx)(m,{...i}),children:(0,s.jsx)(Lt,{kind:String(t),members:i.nodes??[],...i.flagged?{flagged:i.flagged}:{},...i.label?{label:i.label}:{}})}):(0,s.jsx)(m,{...i}),m=i=>{let{brand:l,store:y,views:v}=R(),{view:h,go:P}=be(),x=i.nodes??[],N=v.lookup(String(t),{cardinality:"one",fidelity:"glyph"}),z=N!==void 0&&!Ue(N)?N:void 0,U=lt(h),F=ot(x,U,{schema:e,graph:y.graph,flagged:new Set(i.flagged??[])}),V=S=>({id:S.id,label:b(e.tryDefinition(S.kind),S),hue:Z(S.kind,l?.accents)}),G=i.fidelity==="full"&&x.length>1?(0,s.jsx)(A.Suspense,{fallback:null,children:(0,s.jsx)(Et,{schema:e,graph:y.graph,kind:String(t),arrangement:U,onChange:S=>P(dt(h,S)),kept:{shown:F.nodes.length,of:x.length},style:{marginBottom:8}})}):null,re=S=>S.some(k=>i.flagged?.includes(k.id)),oe=pe(),X=he().marks.flag,O=(S,k,se)=>z?(0,s.jsx)(j,{title:S,meta:(0,s.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,s.jsx)(ve,{kind:String(t),plural:o,problems:we(oe,k),flag:X}),(0,s.jsx)("span",{title:`${Y(k.length)} ${k.length===1?L(a,String(t)):o.toLowerCase()}`,children:Y(k.length)})]}),tone:re(k)?"warning":"muted",children:(0,s.jsx)(Ht,{View:z,members:k,mode:i.mode,...i.flagged?{flagged:i.flagged}:{}})},se):(0,s.jsx)(et,{label:S,count:k.length,flagged:re(k),items:k.map(V),problems:(0,s.jsx)(ve,{kind:String(t),plural:o,problems:we(oe,k),flag:X})},se);return F.grouped?(0,s.jsxs)("div",{style:{display:"grid",gap:8},"data-graview-grouped":U.group?.by,children:[G,F.groups.map(S=>O(`${i.label??o} \xB7 ${S.label}`,S.nodes,S.key||"-"))]}):(0,s.jsxs)("div",{style:{display:"grid",gap:4},children:[G,O(i.label??o,F.nodes)]})},f=i=>{let l=i.nodes??[],y=Gt(l.map(u=>b(a,u)),i.openedRows??it(l.length)),v=Re(t),{brand:h}=R(),P=Je(String(t),e,h),x=he().marks.flag,{selection:N,set:z,clear:U}=ke(),{toggle:F,view:V,go:G}=be(),{views:re,hiddenKinds:oe}=R(),X=(0,A.useContext)(qe),O=V.overview&&!oe.has(String(t))?re.places().filter(u=>u.kind===String(t)):[],S=i.focused?V.within?.view??O[0]?.as:void 0,k=l.filter(u=>i.flagged?.includes(u.id)).length,se=k>0,At=pe(),Vt=we(At,l),J=(V.overview??!1)&&i.nestedUnder===void 0,B=i.focused||i.raised,Ee=i.rank==="secondary"&&!B,C=i.nestedUnder!==void 0,Le=new Set(N),K=X?N.length===1&&N[0]===ee(String(t)):i.opened??!1,$t=rt(),E=B||J?0:l.filter(u=>$t.includes(u.id)&&!Le.has(u.id)).length,Se=E>0&&!se,le=je(),_=le&&!C?le.byKind[String(t)]??0:0,Dt=C?8:Math.min(46,10+Math.round(Math.sqrt(l.length)*8)),Me=C?(0,s.jsx)("span",{style:{fontSize:"0.75rem",lineHeight:1.25,letterSpacing:"0.05em",textTransform:"uppercase",color:B?"var(--graview-accent)":"var(--graview-ink-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:i.label??o}):(0,s.jsx)(Kt,{text:i.label??o,accent:!!B});return(0,s.jsxs)("div",{className:"graview-kind-card","data-graview-rank":i.rank,"data-graview-landmark":P||void 0,"data-graview-nested":C||void 0,"data-graview-tied":E||void 0,"data-graview-hits":le&&!C?_:void 0,"data-graview-emphasis":le&&!C?_>0?"lit":"dimmed":void 0,...a?.description||C?{title:C?[i.label??o,a?.description].filter(Boolean).join(" \u2014 "):a.description}:{},style:{position:"relative",height:"100%","--graview-hue":Math.round(v),"--graview-plate-h":i.states&&(i.nameplate??"full").startsWith("full")?"42px":"26px"},children:[P?(0,s.jsx)("span",{className:"graview-kind-block graview-kind-landmark","data-graview-opened":i.opened||void 0,"aria-hidden":"true",style:{"--graview-rise":Dt},children:(0,s.jsx)(te,{kind:String(t),schema:e,...h?{brand:h}:{},size:96})}):null,(0,s.jsxs)("div",{className:"graview-kind-face","data-graview-opened":i.opened||void 0,"data-graview-nameplate":J?i.nameplate??"full":void 0,style:{display:"flex",flexDirection:"column",gap:C?1:3,padding:C?"5px 7px":"7px 10px",borderRadius:"var(--graview-radius-sm, 9px)",justifyContent:"center",position:"relative",height:"100%",overflow:"hidden",boxSizing:"border-box",border:B?"1px solid var(--graview-accent)":E>0?"1px solid var(--graview-accent-dim)":`1px solid hsl(${Math.round(v)} 55% var(--graview-tint-lightness) / 0.34)`,backgroundColor:"var(--graview-panel)",backgroundImage:`linear-gradient(hsl(${Math.round(v)} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * ${B?1.1:Ee?.28:.5})), hsl(${Math.round(v)} 55% var(--graview-tint-lightness) / calc(var(--graview-tint-alpha) * ${B?1.1:Ee?.28:.5})))`,boxShadow:B?"0 0 0 1px var(--graview-accent-dim)":void 0},children:[!C&&!J&&l.length>0?(0,s.jsx)("div",{"data-graview-tally":l.length,"data-graview-broken":k||void 0,"aria-hidden":"true",style:{position:"absolute",left:0,right:0,top:0,display:"flex",height:3,background:`hsl(${Math.round(v)} 55% var(--graview-tint-lightness) / 0.4)`},children:k>0?(0,s.jsx)("span",{style:{width:`${Math.max(6,Math.round(k/l.length*100))}%`,background:"var(--graview-warn)"}}):null}):null,P?(0,s.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:C?4:6},children:[(0,s.jsx)(te,{kind:String(t),schema:e,...h?{brand:h}:{},size:C?14:18}),Me]}):Me,(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,fontSize:"0.875rem"},children:[(0,s.jsx)("span",{title:l.length>0?`${Y(l.length)} ${l.length===1?L(a,String(t)):o.toLowerCase()}`:void 0,style:{fontVariantNumeric:"tabular-nums",color:Se?"var(--graview-accent)":"var(--graview-ink-faint)"},children:l.length===0?"none yet":Se?E===l.length?`${E} tied`:`${E} of ${l.length} tied`:Y(l.length)}),(0,s.jsx)(ve,{kind:String(t),plural:o,problems:Vt,flag:x,listed:K}),(i.retired??0)>0?(0,s.jsxs)("button",{type:"button",className:"graview-kind-past","data-graview-retired":i.retired,title:`${i.retired} retired ${o.toLowerCase()} \u2014 press to widen the view to the past`,onClick:u=>{u.stopPropagation(),G(st(V,!0))},onDoubleClick:u=>u.stopPropagation(),onPointerDown:u=>u.stopPropagation(),children:["+",i.retired," past"]}):null,_>0?(0,s.jsxs)("button",{type:"button",className:"graview-kind-hits","data-testid":`hits-${String(t)}`,title:`${_} ${_===1?"match":"matches"} for \u201C${V.q??""}\u201D \u2014 press to go in, narrowed`,onClick:u=>{u.stopPropagation(),G(Fe(V,ee(String(t)),{ownPicture:!0,...V.q?{carry:V.q}:{}}))},onDoubleClick:u=>u.stopPropagation(),onPointerDown:u=>u.stopPropagation(),children:[_," match"]}):null,E>0&&!Se?(0,s.jsxs)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-accent)"},children:[E," tied"]}):null,i.hasOwnView&&!J?(0,s.jsx)("span",{title:`${o} has a view of its own`,"aria-label":"has its own view",style:{fontSize:"0.6875rem",color:"var(--graview-accent)"},children:"\u25C6"}):null,!C&&l.length>0&&!i.focused?(0,s.jsxs)("button",{type:"button",className:"graview-kind-open","data-testid":`open-${String(t)}`,"aria-expanded":K,title:K?"Close it up":`See the ${o} in here`,onClick:u=>{u.stopPropagation(),X?K?U():z([ee(String(t))]):F(ee(String(t)))},onDoubleClick:u=>u.stopPropagation(),onPointerDown:u=>u.stopPropagation(),children:[(0,s.jsx)("span",{className:"graview-kind-open-word",children:K?"close":"open"})," ",K?"\u25B4":"\u25BE"]}):null]}),J&&i.states?(0,s.jsx)(A.Suspense,{fallback:null,children:(0,s.jsx)(Ft,{states:i.states,definition:a})}):null,i.opened?(0,s.jsxs)("div",{className:"graview-kind-members","data-graview-buildings":i.plot?.side??1,style:{display:"grid",gridTemplateColumns:`repeat(${y.columns}, minmax(0, 1fr))`,gap:3},children:[l.slice(0,y.shown).map(u=>{let W=i.flagged?.includes(u.id)??!1,D=b(a,u);return(0,s.jsx)(H,{pickId:u.id,label:W?`${D} ${x}`:D,title:W?`${D} \u2014 implicated in a problem`:void 0,hue:v,selected:Le.has(u.id)},u.id)}),l.length>y.shown?(0,s.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",padding:"2px 4px",gridColumn:"1 / -1"},children:["+",l.length-y.shown," more \u2014 double-click to go in"]}):null]}):null]}),!C&&O.length>0?(0,s.jsx)("div",{className:"graview-drive-in","data-testid":`drive-in-${String(t)}`,"data-graview-showing":S,onPointerDown:u=>u.stopPropagation(),onDoubleClick:u=>u.stopPropagation(),children:(0,s.jsx)("div",{className:"graview-drive-in-marquee",role:"group","aria-label":`${o}: pictures`,"data-graview-thumbs":O.length===1?"one":"two",children:O.map(u=>{let W=S===u.as;return(0,s.jsxs)("div",{className:"graview-drive-in-thumb","data-graview-pressed":W||void 0,children:[(0,s.jsx)("span",{className:"graview-drive-in-thumb-title","aria-hidden":"true",children:u.title}),(0,s.jsx)("button",{type:"button",className:"graview-drive-in-thumb-press","data-testid":`showing-${u.as}`,"aria-label":`${o}: ${u.title}`,"aria-pressed":W,title:W?`${u.title} is showing \u2014 press again to open it`:`Show ${u.title} on the billboard \u2014 double-click to open it`,onClick:D=>{D.stopPropagation();let Ge=()=>G(Ke(V,String(t),u.as));if(D.detail>=2||W&&i.focused){Ge();return}G(Ie(We(He(V,!0),ze(String(t))),"view",u.as)),D.detail===1&&It(D.currentTarget.ownerDocument,yt(D.nativeEvent),Ge)}})]},u.as)})})}):null]})};p.generic=!0,f.generic=!0,n.register(t,{cardinality:"one",fidelity:"full"},I(g)).register(t,{cardinality:"one",fidelity:"summary"},I(d)).register(t,{cardinality:"one",fidelity:"glyph"},I(c)).register(t,{cardinality:"many",fidelity:"full"},I(p)).register(t,{cardinality:"many",fidelity:"summary"},I(p)).register(t,{cardinality:"many",fidelity:"glyph"},I(f))}return n}var Ae=$(M(),1),vt=new WeakMap;function jt(e){let n=vt.get(e);return n||vt.set(e,n=wt(e,ue(e))),n}var Ce=Xe;function St(){return(0,Pe.useContext)(Ce)}function Ln({children:e}){return(0,Ae.jsx)(Ce.Provider,{value:!0,children:e})}function kt(e){let n=(0,Pe.useContext)(Ce),{store:t}=R();if(n)return null;let a=e.kind??e.node?.kind??e.nodes?.[0]?.kind;if(!a)return null;let o=jt(t.schema).lookup(a,{cardinality:e.cardinality,fidelity:e.fidelity});return o?(0,Ae.jsx)(o,{...e}):null}var r=$(M(),1),bt=(0,w.createContext)(null),qt=(e,n)=>e.trim().toLowerCase().replace(/[_-]+/g," ")===n.trim().toLowerCase().replace(/[_-]+/g," "),Ut=(0,w.createContext)(null),De=(0,w.createContext)(null);function Xt({block:e}){let n=(0,w.useContext)(De),t=n?.slots?.[e.key],a=(0,r.jsx)(Jt,{block:e});return t?(0,r.jsx)(w.Suspense,{fallback:a,children:(0,r.jsx)(t,{block:e,node:n.node,drawn:a})}):a}function Jt({block:e}){let n=(0,w.useContext)(bt),t=(0,w.useContext)(Qt),a=(0,w.useContext)($e);if(n&&e.t==="badge"&&n.values.some(o=>qt(o,e.text))||n&&e.t==="field"&&n.field!==void 0&&e.field===n.field||e.t==="badge"&&/^0(?:\s+\p{L}+)?$/u.test(e.text.trim()))return null;switch(e.t){case"title":return(0,r.jsx)("strong",{className:"graview-spec-title",children:e.text});case"text":return e.markdown||Ne(e.text)?(0,r.jsx)("div",{className:"graview-spec-text",...e.tone?{"data-graview-tone":e.tone}:{},children:(0,r.jsx)(ct,{text:e.text,markdown:e.markdown})}):(0,r.jsx)("p",{className:"graview-spec-text",...e.tone?{"data-graview-tone":e.tone}:{},children:e.text});case"badge":return(0,r.jsx)("span",{className:"graview-spec-badge","data-graview-tone":e.tone,children:e.text});case"field":return(0,r.jsxs)("span",{className:"graview-spec-field","data-graview-field":e.field,children:[(0,r.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,r.jsx)("span",{className:"graview-spec-value",...Ne(e.text)?{style:{whiteSpace:"pre-line"}}:{},children:e.app?(0,r.jsx)(gt,{address:e.app}):e.href?(0,r.jsx)("a",{className:"graview-spec-link",href:e.href,...e.href.startsWith("tel:")?{}:{rel:"noopener noreferrer",target:"_blank"},children:e.text}):e.text})]});case"image":return(0,r.jsx)(ye,{as:"block",field:e.field,files:e.files,label:e.label,view:e.as});case"progress":return e.value===void 0||e.max===void 0?(0,r.jsxs)("span",{className:"graview-spec-progress",children:[(0,r.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,r.jsx)("span",{className:"graview-spec-value",children:e.text})]}):(0,r.jsxs)("span",{className:"graview-spec-progress",children:[(0,r.jsx)("span",{className:"graview-spec-label",children:e.label}),(0,r.jsx)("span",{className:"graview-spec-track",role:"progressbar","aria-label":e.label,"aria-valuemin":0,"aria-valuemax":e.max,"aria-valuenow":Math.max(0,Math.min(e.value,e.max)),"aria-valuetext":e.text,children:(0,r.jsx)("span",{className:"graview-spec-fill",style:{width:`${Math.round(Math.max(0,Math.min(e.value,e.max))/e.max*100)}%`}})}),(0,r.jsx)("span",{className:"graview-spec-value",children:e.text})]});case"group":return(0,r.jsx)("span",{className:"graview-spec-group","data-direction":e.direction,children:(0,r.jsx)(Ve,{blocks:e.blocks})});case"when":return e.shown?(0,r.jsx)(Ve,{blocks:e.blocks}):null;case"divider":return(0,r.jsx)("hr",{className:"graview-spec-divider"});case"figure":return(0,r.jsx)(Yt,{});case"headline":{let o=`h${Math.min(6,e.level+t)}`,g=(0,r.jsx)(o,{className:"graview-spec-headline","data-level":e.level,children:e.text});return a!==null&&e.level===1?(0,r.jsxs)(r.Fragment,{children:[g,a]}):g}case"number":return(0,r.jsxs)("span",{className:"graview-spec-number",children:[(0,r.jsx)("span",{className:"graview-spec-number-value",children:e.text}),e.label?(0,r.jsx)("span",{className:"graview-spec-label",children:e.label}):null]});case"list":return(0,r.jsx)(en,{list:e})}}function Yt(){let e=(0,w.useContext)(De)?.figure;return e?(0,r.jsx)("span",{className:"graview-spec-figure","aria-hidden":"true",children:e()}):null}function Ve({blocks:e}){return e.map((n,t)=>(0,r.jsx)(Xt,{block:n},t))}function xt({blocks:e,ctx:n,view:t}){let a=(0,w.useContext)(Ut)?.[t];return(0,r.jsx)(De.Provider,{value:{figure:n.figure,slots:a,node:n.node},children:(0,r.jsx)(Ve,{blocks:e})})}function Te({blocks:e,ctx:n,view:t}){return(0,r.jsx)(xt,{blocks:q(e,n),ctx:n,view:t})}var Nt=3,Rt=(0,w.createContext)(0),Pt=(0,w.createContext)(null),Qt=(0,w.createContext)(0),$e=(0,w.createContext)(null);function Zt({node:e,as:n,depth:t,said:a=null}){let{store:o,views:g}=R(),d=b(o.schema.tryDefinition(e.kind),e),c=g.lookup(e.kind,{cardinality:"one",fidelity:n==="card"?"summary":"glyph"});return(0,r.jsxs)("li",{className:"graview-spec-item","data-graview-listed":e.id,"data-as":n,children:[t<=Nt&&c?(0,r.jsx)(_e,{mode:"scene",children:(0,r.jsx)(Rt.Provider,{value:t,children:(0,r.jsx)(bt.Provider,{value:a,children:(0,r.jsx)(c,{node:e,cardinality:"one",fidelity:n==="card"?"summary":"glyph",mode:"scene",selected:!1})})})}):(0,r.jsx)("span",{className:"graview-spec-item-name",children:d}),(0,r.jsx)(Ct,{node:e,label:d})]})}function Ct({node:e,label:n}){let t=(0,w.useContext)(Pt);return t?(0,r.jsx)("a",{className:"graview-spec-item-link",href:t.href(e),"aria-label":n,onClick:a=>{a.metaKey||a.ctrlKey||a.shiftKey||a.button!==0||(a.preventDefault(),a.stopPropagation(),t.go(e))}}):(0,r.jsx)("button",{type:"button",className:"graview-spec-item-link","data-graview-pick":e.id,"aria-label":n})}function en({list:e}){let n=(0,w.useContext)(Rt)+1,{store:t}=R(),a=(0,w.useContext)(Pt);if(e.failed)return(0,r.jsx)("p",{className:"graview-spec-text",children:"\u2014"});if(e.members.length===0)return e.empty?(0,r.jsx)("p",{className:"graview-spec-text graview-spec-empty",children:e.empty}):null;let o=(p,m=null)=>n>Nt?(0,r.jsx)("ul",{className:"graview-spec-list","data-as":"names",children:p.map(f=>(0,r.jsxs)("li",{className:"graview-spec-item","data-graview-listed":f.id,"data-as":"name",children:[(0,r.jsx)("span",{className:"graview-spec-item-name",children:b(t.schema.tryDefinition(f.kind),f)}),(0,r.jsx)(Ct,{node:f,label:b(t.schema.tryDefinition(f.kind),f)})]},f.id))}):(0,r.jsx)("ul",{className:"graview-spec-list","data-as":e.as,children:p.map(f=>(0,r.jsx)(Zt,{node:f,as:e.as,depth:n,said:m},f.id))}),g=e.total??e.members.length+e.more,d=a?.more&&g>e.members.length?a.more({members:e.members,total:g}):e.more>0?(0,r.jsx)("p",{className:"graview-spec-text graview-spec-more",children:`and ${e.more} more`}):null;if(!e.groups)return(0,r.jsxs)("div",{className:"graview-spec-listing",children:[o(e.members),d]});let c=`h${e.headingLevel}`;return(0,r.jsxs)("div",{className:"graview-spec-listing",children:[e.groups.map(p=>(0,r.jsxs)("section",{className:"graview-spec-list-group","data-graview-group":p.value??"",children:[p.heading?(0,r.jsx)(c,{className:"graview-spec-list-heading",children:p.heading}):null,o(p.members,p.value!==null?{values:[p.value,...p.heading?[p.heading]:[]]}:null)]},p.value??"")),d]})}function Xn({blocks:e,heading:n=2,firstHeading:t,slot:a,view:o=a}){let{store:g,brand:d}=R();ge();let c=ae(g,null,null,{heading:n,firstHeading:t,money:d}),p=(0,w.useContext)($e),m=e.some(f=>f.t==="headline");return(0,r.jsxs)("div",{className:`graview-spec graview-spec-${a}`,"data-graview-spec":a,children:[p!==null&&!m?p:null,(0,r.jsx)($e.Provider,{value:m?p:null,children:(0,r.jsx)(Te,{blocks:e,ctx:c,view:o})})]})}function Be(e,n="card"){let{store:t,brand:a}=R(),o=t.schema;return{...ae(t,null,e,{slot:n,money:a}),figure:()=>(0,r.jsx)(te,{kind:e.kind,schema:o,...a?{brand:a}:{},size:22})}}function tn({slot:e,blocks:n,node:t,selected:a}){let o=Be(t,e);return(0,r.jsx)("div",{className:`graview-spec graview-spec-${e}`,"data-graview-spec":e,"data-graview-kind":t.kind,...e==="row"&&n.some(nt)?{"data-graview-tall":""}:{},...a?{"data-selected":""}:{},children:(0,r.jsx)(Te,{blocks:n,ctx:o,view:`${t.kind}.${e}`})})}function nn({blocks:e,node:n,selected:t,flagged:a}){let o=Be(n),[g,...d]=e,c=g?.t==="title";return(0,r.jsx)(j,{...c?{title:q([g],o)[0].text}:{},selected:t,tone:a?"warning":"muted",fit:!0,children:(0,r.jsx)("div",{className:"graview-spec graview-spec-card","data-graview-spec":"card","data-graview-kind":n.kind,children:(0,r.jsx)(Te,{blocks:c?d:e,ctx:o,view:`${n.kind}.card`})})})}function an({blocks:e,props:n}){let t=n.node,a=Be(t,"page"),o=St(),g=q(e,a),d=fe(e,g),c=d.title!==void 0&&(!o||d.title===b(a.schema?.tryDefinition(t.kind),t)),p=(0,r.jsx)("div",{className:"graview-spec graview-spec-page","data-graview-spec":"page","data-graview-kind":t.kind,children:(0,r.jsx)(xt,{blocks:c?g.slice(1):g,ctx:a,view:`${t.kind}.page`})});return o?p:(0,r.jsx)(ie.Provider,{value:{nodeId:t.id,...d.title!==void 0?{title:d.title}:{},body:p,fields:d.fields,records:d.records},children:(0,r.jsx)(kt,{...n})})}function Jn(e,n,t){return typeof e=="function"?e.says?.(n,t):void 0}function rn({blocks:e,node:n,selected:t}){let{store:a}=R();return(0,r.jsx)("div",{title:b(a.schema.tryDefinition(n.kind),n),style:{minWidth:0,maxWidth:"100%"},children:(0,r.jsx)(tn,{slot:"row",blocks:e,node:n,selected:t})})}function Yn(e,n,t){if(!t)return e;let a=new Set(n.kinds);for(let[o,g]of Object.entries(t)){if(!a.has(o)||!g)continue;let d=o;if(g.card){let c=ne(g.card),p=m=>m.node?(0,r.jsx)(nn,{blocks:c,node:m.node,selected:m.selected,flagged:m.flagged?.includes(m.node.id)??!1}):null;e.register(d,{cardinality:"one",fidelity:"summary"},p)}if(g.row){let c=ne(g.row),p=m=>m.node?(0,r.jsx)(rn,{blocks:c,node:m.node,selected:m.selected}):null;p.says=(m,f)=>fe(c,q(c,ae({graph:f,schema:n},null,m,{slot:"row"}))),e.register(d,{cardinality:"one",fidelity:"glyph"},p)}if(g.page){let c=ne(g.page),p=m=>m.node?(0,r.jsx)(an,{blocks:c,props:m}):null;p.says=(m,f)=>fe(c,q(c,ae({graph:f,schema:n},null,m))),e.register(d,{cardinality:"one",fidelity:"full"},p)}}return e}export{Ln as a,bt as b,Pt as c,Qt as d,$e as e,Ct as f,Xn as g,Jn as h,Yn as i,wt as j};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as f,$b as d,Zb as y,bc as u,cc as k,jc as g,nc as w,oc as v,pc as $,rc as P,sc as S}from"./chunk.HLLWKSZB.js";function b(n){let t=[];for(let s of g(n).drawn)for(let a of s.kinds)t.push({kind:a,title:s.title,as:s.as,...s.across?{across:s.across}:{},...s.kinds.length>1?{over:s.kinds}:{}});for(let s of n.views?.places?.()??[])t.some(a=>a.kind===s.kind&&a.as===s.as)||t.push(s);return t}function E(n){return L(n.schema,b(n),{...n.pages?{pages:n.pages}:{},lenses:g(n).drawn,home:(n.home?.length??0)>0})}function L(n,t,s={}){let{pages:a}=s,l=n.kinds,c=t.filter(e=>l.includes(e.kind)),i=S(a?.first,n,c),A=new Set(a?.hide??[]),p=P(l,a?.order),h=[{slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#",...i?.to==="home"||i===void 0&&s.home?{first:!0}:{}},{slug:w,title:$(a),kind:null,cardinality:"many",address:v,stop:"#"}],x=y([...c].sort((e,r)=>p.indexOf(e.kind)-p.indexOf(r.kind)));for(let e of x){let r=s.lenses?.find(o=>o.as===e.as&&o.kinds.includes(e.kind)),m=k(e,c);h.push({slug:e.as,title:e.title,kind:e.kind,...e.over?{over:e.over.filter(o=>l.includes(o))}:{},cardinality:"many",address:u(e.as,m?d(n,e.kind).slice(1):void 0),stop:m?`#focus=aggregate:${e.kind}&in.view=${encodeURIComponent(e.as)}`:`#view=${encodeURIComponent(e.as)}`,...r?{lens:r.lens}:{},...i?.to==="place"&&i.place.as===e.as&&(i.place.kind===e.kind||e.over?.includes(i.place.kind))?{first:!0}:{}})}for(let e of p)h.push({slug:d(n,e).slice(1),title:f(n,e),kind:e,cardinality:"many",address:d(n,e),stop:`#focus=aggregate:${e}`,...A.has(e)?{hidden:!0}:{},...i?.to==="kind"&&i.kind===e?{first:!0}:{}});return h}export{E as a,L as b};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as ee,b as ne,c as re,d as N}from"./chunk.7DNFXJH3.js";import{a as te}from"./chunk.7PRFYYVM.js";import{c as R,e as Q}from"./chunk.2NCTM5K2.js";import{a as x,b as q,c as J,e as O,l as Y,m as g}from"./chunk.JU2ZVKMT.js";import{a as z,b as j,d as oe,e as ae,f as ie,h as de,i as se,j as le}from"./chunk.G4WQGTZR.js";import{a as C}from"./chunk.HFKMHLJ3.js";import{B as F,C as L,F as D,G as W,K as $,M as P,S as U,W as H,aa as G,ab as Z,bb as X,fa as A,ga as k,ha as b,ka as K}from"./chunk.HLLWKSZB.js";var T=e=>e?._zod?.def,ke=/^\^\\d\{4\}-\\d\{2\}-\\d\{2\}\$$/;function Re(e){let n=T(e),a=!0,r;for(let d=0;n&&d<4;d++){if(n.type==="optional"||n.type==="nullable")a=!1;else if(n.type==="default")a=!1,r=n.defaultValue;else break;n=T(n.innerType)}if(!n)return{why:"it is not a zod field"};let o=L(e),t={...a?{required:!0}:{},...r!==void 0?{default:r}:{},...o?{description:o}:{}},i=(n.checks??[]).map(d=>T(d)),u=b(e);if(u)return{spec:{type:u,...t}};if(K(e))return{spec:{type:"app-link",...t}};if(z(e))return{spec:{type:"text",format:"markdown",...t}};let s=ie(e);if(s)return{spec:{type:s,...t}};switch(n.type){case"string":{let d=n.format;return d==="email"?{spec:{type:"email",...t}}:d==="url"?{spec:{type:"url",...t}}:d==="date"?{spec:{type:"date",...t}}:d==="datetime"||i.some(l=>l?.fn===D)?{spec:{type:"datetime",...t}}:i.some(l=>l?.format==="regex"&&ke.test(String(l?.pattern?.source??"")))?{spec:{type:"date",...t}}:{spec:{type:"string",...t}}}case"number":{let d={};for(let l of i){let y=l?.value;typeof y=="number"&&(l?.check==="greater_than"&&l.inclusive?d.min=Math.max(d.min??y,y):l?.check==="less_than"&&l.inclusive?d.max=Math.min(d.max??y,y):l?.check==="multiple_of"&&(d.step=y))}return{spec:{type:i.some(l=>l?.format==="safeint"||l?.format==="int")?"integer":"number",...d,...t}}}case"boolean":return{spec:{type:"boolean",...t}};case"enum":{let d=Object.keys(n.entries??{});return d.length>0?{spec:{type:"enum",options:d,...t}}:{why:"it is an enum with no options"}}case"array":{let d=T(n.element),l=b(n.element)??(d?.type==="number"?"number":d?.type==="string"?"string":void 0);return l?{spec:{type:"list",of:l,...t}}:{why:`it is a list of ${String(d?.type??"something")}, and a document lists words, numbers, dates, images or files`}}default:return{why:`it is a ${String(n.type)}, which a document has no field type for`}}}function M(e){let n=Re(e);return"spec"in n?n.spec:void 0}var V=e=>e.caption?.trim()||e.name;function Ae(e){let n=e?.fields?.shape??{};return Object.keys(n).filter(a=>{let r=F(n[a]);for(;r?.innerType;)r=F(r.innerType);return b(n[a])!==void 0||r?.type==="array"&&b(r.element)!==void 0})}function Ye(e,n){for(let a of Ae(n)){let r=k(e[a]).find(A);if(r)return r}}var S=e=>{try{return e()}catch{return null}},me=e=>typeof e=="string"&&ee.includes(e);function xe(e){if(e!==void 0)return me(e)?e:e&&typeof e=="object"&&typeof e.expr=="string"?{expr:S(()=>R(e.expr))}:"neutral"}var Oe=4;function je(e){let n=typeof e.list=="string"?S(()=>R(e.list)):null,a=e.sort,r=typeof a=="string"?a:a&&typeof a=="object"&&typeof a.by=="string"?a.by:void 0,o=a&&typeof a=="object"?a.direction:void 0,t=n,i;if(n&&r!==void 0)if(o==="choices")i=r;else{let y=S(()=>R(r));t=y?{t:"call",fn:"sort",args:[n,y,{t:"lit",value:o==="desc"?"desc":"asc",at:0}],at:0}:null}let u=typeof e.limit=="number"&&Number.isInteger(e.limit)&&e.limit>=1?Math.min(e.limit,N):void 0,s=e.group,d=typeof s=="string"?s:s&&typeof s=="object"&&typeof s.by=="string"?s.by:void 0,l=s&&typeof s=="object"&&s.headings&&typeof s.headings=="object"?s.headings:{};return{t:"list",source:t,...i?{choiceOrder:i}:{},...u?{limit:u}:{},...d?{group:{by:d,headings:Object.fromEntries(Object.entries(l).filter(y=>typeof y[1]=="string"))}}:{},...typeof e.empty=="string"?{empty:e.empty}:{},as:e.as==="card"?"card":"row"}}function ue(e,n=1,a=""){if(!Array.isArray(e)||n>Oe)return[];let r={};return e.flatMap(o=>{if(!o||typeof o!="object"||Array.isArray(o))return[];let t=o,i=p=>typeof p=="string"?S(()=>Q(p)):null,u=p=>typeof p=="string"?S(()=>R(p)):null,s=xe(t.tone),d=typeof t.label=="string"?t.label:void 0,l=p=>Object.hasOwn(t,p),y=typeof t.currency=="string"&&/^[A-Z]{3}$/.test(t.currency)?t.currency:void 0,f=l("list")?"list":l("headline")?"headline":typeof t.figure=="string"?"number":Te.find(l);if(!f)return[];let B=r[f]=(r[f]??0)+1,E=t.key,v=typeof E=="string"&&E?E:`${a}${f}.${B}`;return[{...(()=>{switch(f){case"list":return je(t);case"number":{let p=re.includes(t.as)?t.as:void 0;return{t:f,value:u(t.figure),...p?{as:p}:{},...y?{currency:y}:{},...d?{label:i(d)}:{}}}case"headline":case"title":return{t:f,parts:i(t[f])};case"text":case"badge":return{t:f,parts:i(t[f]),...s?{tone:s}:{}};case"field":{let p=ne.includes(t.as)?t.as:void 0;return{t:f,field:String(t.field),...p?{as:p}:{},...y?{currency:y}:{},...d?{label:d}:{}}}case"image":return{t:f,field:String(t.image),as:t.as==="gallery"?"gallery":"thumb",...d?{label:d}:{}};case"progress":{let p=t.progress??{};return{t:f,value:u(p.value),max:u(p.max),...d?{label:i(d)}:{}}}case"group":return{t:f,blocks:ue(t.group,n+1,`${v}.`),direction:t.direction==="row"?"row":"column"};case"when":return{t:f,when:u(t.when),show:ue(t.show,n+1,`${v}.`)};default:return{t:f}}})(),key:v}]})}var Te=["title","text","badge","field","image","progress","group","when","divider","figure"],c="\u2014",Be=500;function h(e,n){if(!e)return{ok:!1,problem:"an expression that does not parse"};try{return{ok:!0,value:O(e,{graph:n.graph??Y,subject:n.node,kinds:n.kinds,today:n.today,budget:n.budget??Be})}}catch(a){return{ok:!1,problem:a instanceof Error?a.message:String(a)}}}var Ee=(e,n,a)=>!e.format&&e.expr?.t==="ident"&&typeof a=="string"&&n.fields[e.expr.name]?.format==="markdown";function w(e,n,a){if(!e)return{text:c,problem:"a template that does not parse"};let r,o;return{text:e.map(i=>{if(i.text!==void 0)return i.text;let u=h(i.expr??null,n);if(!u.ok)return r??=`{${i.source??""}}: ${u.problem}`,c;if(Ee(i,n,u.value))return n.glance?oe(u.value,{markdown:!0}):a&&e.length===1?(o=!0,u.value):ae(u.value);let s=!i.format&&i.expr?.t==="ident"&&typeof u.value=="number"?ge(n,i.expr.name):void 0;return s?C(u.value,s):g(u.value,i.format,n.today,i.formatArgs,n.money)}).join(""),...r?{problem:r}:{},...o?{markdown:o}:{}}}function fe(e,n){if(e===void 0)return;if(typeof e=="string")return e;let a=h(e.expr,n);return a.ok&&me(a.value)?a.value:"neutral"}function ve(e){if(typeof e=="string")try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"?n.href:void 0}catch{return}}var ce=(e,n)=>{let a=e.fields[n]?.type;return a==="phone"||a==="place"||a==="duration"?a:de(e.definition,n)},ge=(e,n)=>Z(e.definition?.fields?.shape?.[n]);function Fe(e,n,a,r,o){if(n==null||n==="")return c;if(typeof n=="boolean")return n?"yes":"no";if(r)return g(n,r,a.today,[],o?{...a.money,currency:o}:a.money);let t=a.fields[e];if(a.definition?.display?.format?.[e])return j(a.definition,e,n);let i=se(ce(a,e),n,a.money?.locale);if(i!==void 0)return i;if(t?.type==="date")return g(n,"date",a.today,[],a.money);if(t?.type==="datetime"&&typeof n=="string")return $(n,a.money?.locale);if(t?.type==="enum"&&typeof n=="string")return j(a.definition,e,n);let u=typeof n=="number"?ge(a,e):void 0;if(u)return C(n,u);if(typeof n=="number")return P(n,a.money?.locale,{});let s=k(n);return s[0]?s.map(V).join(", "):Array.isArray(n)?n.map(d=>String(d)).join(", "):typeof n=="object"?c:String(n)}function Pe(e,n,a,r,o){return typeof e!="number"?String(e):n==="money"?X(e,a?{...o,currency:a}:o):n==="percent"?g(e,n,r,[],o):P(e,o?.locale)}var m=(e,n)=>n?{...e,problem:n}:e;function Ge(e,n,a){switch(e.t){case"title":{let r=w(e.parts,n);return m({t:"title",text:r.text},r.problem)}case"text":{let r=w(e.parts,n,!0),o=fe(e.tone,n);return m({t:"text",text:r.text,...o?{tone:o}:{},...r.markdown?{markdown:r.markdown}:{}},r.problem)}case"badge":{let r=w(e.parts,n);return m({t:"badge",text:r.text,tone:fe(e.tone,n)??"neutral"},r.problem)}case"field":{let r=e.label??G(n.definition,e.field);if(!n.node)return{t:"field",field:e.field,label:r,text:c,problem:`"${e.field}" names a field, and these blocks are about no one record`};let o=n.kinds.get(n.node.kind)?.computed?.has(e.field),t,i;if(o){let l=h({t:"ident",name:e.field,at:0},n);l.ok?t=l.value!==null&&typeof l.value=="object"?g(l.value,void 0,n.today):l.value:i=l.problem}else t=Object.hasOwn(n.node,e.field)?n.node[e.field]:void 0;let u=e.as!==void 0?void 0:n.fields[e.field]?.type==="url"?ve(t):le(ce(n,e.field),t),s=S(()=>Fe(e.field,t,n,e.as,e.currency))??c,d=n.fields[e.field]?.type==="app-link"&&e.as===void 0&&typeof t=="string"?t:void 0;return m({t:"field",field:e.field,label:r,text:s,...u?{href:u}:{},...d?{app:d}:{}},i)}case"image":{let r=k(n.node&&Object.hasOwn(n.node,e.field)?n.node[e.field]:null),o=e.as==="gallery"?r:r.filter(A).slice(0,1);return{t:"image",field:e.field,label:e.label??G(n.definition,e.field),as:e.as,files:o,text:o.map(V).join(", ")||c}}case"progress":{let r=h(e.value,n),o=h(e.max,n),t=e.label?w(e.label,n):{text:"Progress"},i=t.text,u=r.ok?o.ok?t.problem:o.problem:r.problem;return r.ok&&o.ok&&typeof r.value=="number"&&typeof o.value=="number"&&Number.isFinite(r.value)&&Number.isFinite(o.value)&&o.value>0?m({t:"progress",label:i,value:r.value,max:o.value,text:`${g(r.value,void 0,n.today)} of ${g(o.value,void 0,n.today)}`},u):m({t:"progress",label:i,text:c},u)}case"group":return{t:"group",direction:e.direction,blocks:ye(e.blocks,n)};case"when":{let r=h(e.when,n),o=r.ok&&r.value===!0;return m({t:"when",shown:o,blocks:o?ye(e.show,n):[]},r.ok?void 0:r.problem)}case"divider":return{t:"divider"};case"figure":return{t:"figure"};case"headline":{let r=w(e.parts,n),o=Math.min(6,Math.max(1,(a?n.firstHeading:void 0)??n.heading??3));return m({t:"headline",level:o,text:r.text},r.problem)}case"number":{let r=h(e.value,n),o=!r.ok||r.value===null||typeof r.value=="object"?c:Pe(r.value,e.as,e.currency,n.today,n.money),t=e.label?w(e.label,n):void 0;return m({t:"number",text:o,...t?{label:t.text}:{}},r.ok?t?.problem:r.problem)}case"list":return Ce(e,n)}}function ye(e,n){let a=e.findIndex(r=>r.t==="headline");return e.map((r,o)=>({...Ge(r,n,o===a),key:r.key}))}var Ne=new Set(["every","some","sum","min","max","sort"]);function bn(e,n){let a=new Set,r=new Set,o=s=>{if(s)switch(s.t){case"ident":a.add(s.name);return;case"list":s.items.forEach(o);return;case"member":return o(s.object);case"unary":return o(s.operand);case"binary":return o(s.left),o(s.right);case"where":return o(s.set);case"call":s.args.forEach((d,l)=>{l===1&&Ne.has(s.fn)||o(d)});return;default:return}},t=s=>{for(let d of s??[])o(d.expr)},i=(s,d)=>{s.forEach((l,y)=>{let f=d[y];if(f)switch(l.t){case"field":case"image":a.add(l.field);return;case"title":case"text":case"badge":case"headline":t(l.parts);return;case"number":o(l.value),t(l.label);return;case"progress":o(l.value),o(l.max);return;case"group":f.t==="group"&&i(l.blocks,f.blocks);return;case"when":f.t==="when"&&f.shown&&i(l.show,f.blocks);return;case"list":if(f.t==="list")for(let B of f.members)r.add(B.id);return;default:return}})};i(e,n);let u=n[0];return{fields:a,records:r,...e[0]?.t==="title"&&u?.t==="title"?{title:u.text}:{}}}function Ce(e,n){let a=Math.min(6,(n.heading??3)+1),r=h(e.source,n);if(!r.ok)return{t:"list",as:e.as,failed:!0,members:[],headingLevel:a,more:0,problem:r.problem};let o=r.value,t=o instanceof x?o.nodes:o!==null&&typeof o=="object"&&!Array.isArray(o)?[o]:[];e.choiceOrder&&n.schema&&(t=Me(t,e.choiceOrder,n.schema));let i=t.length;t=t.slice(0,e.limit??N);let u=e.limit===void 0?i-t.length:0;return{t:"list",as:e.as,failed:!1,members:t,...e.group&&n.schema&&t.length>0?{groups:Ve(t,e.group,n.schema)}:{},headingLevel:a,...t.length===0&&e.empty?{empty:e.empty}:{},more:u,total:i}}function he(e,n,a){let r=e.tryDefinition(n)?.fields?.shape,o=r&&Object.hasOwn(r,a)?M(r[a]):void 0;return o?.type==="enum"?o.options??[]:[]}var _=(e,n)=>Object.hasOwn(e,n)?e[n]:void 0;function Me(e,n,a){let r=o=>{let t=he(a,o.kind,n).indexOf(String(_(o,n)));return t<0?Number.MAX_SAFE_INTEGER:t};return e.map((o,t)=>({node:o,i:t,rank:r(o)})).sort((o,t)=>o.rank-t.rank||o.i-t.i).map(o=>o.node)}function Ve(e,n,a){let r=[];for(let i of e)for(let u of he(a,i.kind,n.by))r.includes(u)||r.push(u);let o=[];for(let i of r){let u=e.filter(d=>_(d,n.by)===i);if(u.length===0)continue;let s=a.tryDefinition(u[0].kind);o.push({value:i,heading:n.headings[i]??U(j(s,n.by,i)),members:u})}let t=e.filter(i=>!r.includes(String(_(i,n.by))));return t.length>0&&o.push({value:null,members:t}),o}function pe(e){return e.t==="list"||e.t==="headline"||e.t==="number"||e.t==="image"&&e.as==="gallery"?!0:e.t==="group"?e.blocks.some(pe):e.t==="when"?e.show.some(pe):!1}function be(e,n){let a=e.tryDefinition(n)?.fields?.shape??{},r={};for(let[o,t]of Object.entries(a)){let i=M(t);i&&(r[o]=i)}return r}var we=new WeakMap;function I(e){let n=we.get(e);return n||we.set(e,n=te(e)),n}function _e(e,n,a,r={}){let o=I(e),t={},i={},u=s=>{if(s instanceof x)return s.nodes.map(d=>u(d));if(Array.isArray(s))return s.map(d=>u(d));if(s!==null&&typeof s=="object"){let d=s;return{id:d.id,kind:d.kind,label:H(e.tryDefinition(d.kind),d)}}return s};for(let[s,d]of o.get(a?a.kind:q)?.computed??[])try{t[s]=u(O(d,{graph:n,subject:a,kinds:o,...r.today?{today:r.today}:{},...r.budget?{budget:r.budget}:{}}))}catch(l){if(!(l instanceof J))throw l;i[s]=l.sentence}return{values:t,refused:i}}function An(e,n,a){let{values:r}=_e(e,n,a);if(Object.keys(r).length===0)return a;let o=t=>Array.isArray(t)?t.map(o):t!==null&&typeof t=="object"?t.label:t;return{...a,...Object.fromEntries(Object.entries(r).map(([t,i])=>[t,o(i)]))}}var Ie=500,Le=2e4,Se=new WeakMap;function De(e,n){let a=Se.get(e);a||Se.set(e,a=new Map);let r=a.get(n);return r||a.set(n,r=be(e,n)),r}function Bn(e,n,a,r={}){if(n&&typeof e.seenBy!="function")throw new TypeError("blockContextFor: a seat is read from a store (its `seenBy`); a bare { graph, schema } is read as it is handed, with no principal");let o=n?e.seenBy(n):e,t=n&&a?o.graph.getNode(a.id)??null:a,i=o.schema,u=t&&i.tryDefinition(t.kind),s=!t||(r.slot??"page")==="page",{money:d,firstHeading:l}=r;return{node:t,graph:o.graph,schema:i,kinds:I(i),fields:t?De(i,t.kind):{},definition:u||void 0,today:r.today??o.today?.()??W(),money:d,heading:r.heading??(s?2:3),firstHeading:l,budget:r.budget??(s?Le:Ie),...s?{}:{glance:!0}}}export{M as a,V as b,Ae as c,Ye as d,ue as e,ye as f,bn as g,pe as h,_e as i,An as j,Bn as k};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a,b}from"./chunk.P62SKNJS.js";import"./chunk.GDA3G4U2.js";import"./chunk.WKXNBHTL.js";import"./chunk.OWE6OJ4P.js";import"./chunk.3JM2TNDD.js";import"./chunk.BKPGDEES.js";import"./chunk.JNGUSAWX.js";import"./chunk.CK7QWLMX.js";import"./chunk.QNHECGMH.js";import"./chunk.KZ2376BD.js";import"./chunk.IZW7DBK4.js";import"./chunk.RKRSRKF3.js";import"./chunk.KC6UZHBM.js";import"./chunk.HJCQ6I3S.js";import"./chunk.ZBXOX3W3.js";import"./chunk.5AT4O4BN.js";import"./chunk.X53HI436.js";import"./chunk.COTG2IG5.js";import"./chunk.YCA7P5MK.js";import"./chunk.UT6642FC.js";import"./chunk.3G5MQFZK.js";import"./chunk.2CLPRG3I.js";import"./chunk.O42YET3W.js";import"./chunk.Z5V23DQN.js";import"./chunk.OHE5AMHH.js";import"./chunk.OYJSFO3A.js";import"./chunk.HV6I74DF.js";import"./chunk.WVUJXDXZ.js";import"./chunk.DAA6XWLF.js";import"./chunk.7DNFXJH3.js";import"./chunk.7PRFYYVM.js";import"./chunk.2NCTM5K2.js";import"./chunk.JU2ZVKMT.js";import"./chunk.HGAMNIST.js";import"./chunk.OQDETV4X.js";import"./chunk.ZS4DJ76C.js";import"./chunk.5R66YTET.js";import"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import"./chunk.GS4T26WW.js";import"./chunk.Z56B2JR2.js";import"./chunk.HLLWKSZB.js";import"./chunk.AJZBJBMO.js";export{b as declaredLensView,a as formatFor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as I,c as x}from"./chunk.QSDT2RLY.js";import"./chunk.GS4T26WW.js";import{b,c as A,j as v,q as w,s as O,v as G}from"./chunk.Z56B2JR2.js";import{$b as k,oc as E,uc as S,vc as W}from"./chunk.HLLWKSZB.js";import"./chunk.AJZBJBMO.js";var F=(e,i)=>k(e,i).slice(1);function j(e,i){let l=e.split("/").filter(Boolean);return l.length===i.length&&l.every((s,h)=>s.startsWith(":")||s==="*"||s===i[h])}var $=["problems","search","map","places"];function R(e,i,l,s,h=[]){let{schema:r}=i,o=r.kinds,f=t=>{if(t.startsWith(w))return(t.slice(w.length).split("|")[0]??"").split("+").every(V=>o.includes(V));let y=O(t);return y!==null?o.includes(y):t.startsWith("edge:")||l.graph.getNode(t)!==void 0},[p="/",u]=e.path.split("?"),n=p.split("/").filter(Boolean),m=u?`?${u}`:"",d=n.length>0&&!$.includes(n[0])?o.find(t=>F(r,t)===n[0]):void 0,c=e.path;if(n[0]==="places"&&n.length===2)`/places/${n[1]}`!==E&&!s.some(t=>t.as===decodeURIComponent(n[1]))&&(c="/");else if(d){let t=n[1]===void 0?void 0:decodeURIComponent(n[1]);c=`/${F(r,d)}${t!==void 0&&l.graph.getNode(t)?.kind===d?`/${n[1]}`:""}${m}`}else n.length>0&&n.length<=2&&!$.includes(n[0])&&!h.some(t=>j(t.path,n))&&(c="/");let g=A(e.stop),P=g.within?.view,U=P!==void 0&&!s.some(t=>t.as===P),a=g;if(U){let{view:t,...y}=g.within??{};a={...a,within:y}}if(g.focusId&&!f(g.focusId)){let t=e.kind&&o.includes(e.kind)?G(e.kind):null;a={...v(a,t),zoom:!1}}return a={...a,relation:a.relation&&(o.includes(a.relation)||r.edgeKinds.includes(a.relation))?a.relation:null,expanded:a.expanded.filter(f),pins:Object.fromEntries(Object.entries(a.pins).filter(([t])=>f(t))),...a.selection?{selection:a.selection.filter(f)}:{}},{face:e.face,path:c,stop:b(a),...e.kind?{kind:e.kind}:{}}}function B(e,i,l){let s=e.at,h=e.pages?.routes()??[];if(e.routing!=="address"||typeof window>"u")return R(s,e.app,i,l,h);let{pathname:r,search:o,hash:f}=window.location,p=W(r,e.basePath),u=I({routing:"address",...e.basePath===void 0?{}:{basePath:e.basePath},face:s.face}),n=u==="pages",m={...s,face:u,...p===null?{}:n?{path:p+o}:{stop:x(e.basePath)??s.stop}},d=R(m,e.app,i,l,h),c=n?d.path===m.path?null:S(d.path,e.basePath===void 0?{}:{basePath:e.basePath}):d.stop===b(A(m.stop))?null:r+o+d.stop;return p!==null&&c!==null&&c!==r+o+f&&window.history.replaceState(window.history.state,"",c),d}export{R as settle,B as settleAt};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as dt}from"./chunk.YCA7P5MK.js";import{a as ct}from"./chunk.7PRFYYVM.js";import{f as ut}from"./chunk.2NCTM5K2.js";import{a as C,e as q}from"./chunk.JU2ZVKMT.js";import{a as ft}from"./chunk.HFKMHLJ3.js";import{D as Q,Da as ot,E as X,Ea as st,G as k,Ha as it,J as G,K as tt,M as nt,Vb as lt,W as _,Y as M,_ as et,aa as rt,ca as at}from"./chunk.HLLWKSZB.js";import"./chunk.AJZBJBMO.js";function J(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let s=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!s}),n=r.as==="open"}return e}function D(t,e){return J(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function wt(t){return D(t,!1)}function Ot(t){return D(t,!0)}function pt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function z(t){let e=u=>J(u).map(({part:a,space:o})=>({...a,space:o})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,s=u=>`${D(n,u)}${r?`, when ${D(r,u)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:s(!1),said:s(!0)}}function Et(t,e=!1){return t.line?pt(t.line,e):t.message}var mt=60,O=t=>({text:t,as:"name"}),c=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},L=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},R=(t,e)=>({text:t,as:"op",said:e}),v={text:"(",as:"open"},w={text:")",as:"close"},N={text:"\u2014",as:"value",said:"empty"},V={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},Pt={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},gt=t=>t.t==="binary"&&t.op in V;function I(t){return t.length>1&&t[1]===t[1].toUpperCase()&&/[A-Z]/.test(t[1])?t:t.charAt(0).toLowerCase()+t.slice(1)}function ht(t){let{schema:e}=t,n=l=>l===null?void 0:e.tryDefinition(l),r=(l,m)=>{let g=n(l)?.edges;return g&&Object.hasOwn(g,m)?g[m]:void 0},s=(l,m)=>{let g=r(l,m)?.to;return Array.isArray(g)&&g.length===1?g[0]:null},u=(l,m)=>{let g=(e.edge(m)?.from??[]).filter(W=>{let K=r(W,m)?.to;return l===null||K==="*"||Array.isArray(K)&&K.includes(l)});return g.length===1?g[0]:null},a=(l,m)=>r(l,m)?M(m).toLowerCase():I(rt(n(l),m)),o=l=>I(et(e,l)),d=l=>I(ut(e).get(l)?.label??M(l)),x=l=>I(at(n(l),l)),i=(l,m)=>{let g=l===null?void 0:t.formatOf?.(l,m);if(g?.format)return g;let W=t.said?.get(m);return W?{...g,format:W}:g},p=l=>_(e.tryDefinition(l.kind),l),h=t.money?.locale,y=(l,m)=>{if(l==null)return N;if(l instanceof C){if(l.nodes.length===0)return N;let A=l.nodes.slice(0,3).map(p),Z=l.nodes.length-A.length;return L(Z>0?`${A.join(", ")} and ${Z} more`:A.length>1?`${A.slice(0,-1).join(", ")} and ${A[A.length-1]}`:A[0])}if(Array.isArray(l))return L(`{${l.map(A=>y(A,m).text).join(", ")}}`,l.map(A=>y(A,m).text).join(" or "));if(typeof l=="object")return L(p(l));if(typeof l=="boolean")return L(l?"yes":"no");let g=m?.format??(m?i(m.kind,m.key):void 0);if(typeof l=="number")return L(g&&g.format!=="date"?ft(l,{...t.money,...g}):nt(l,h));if(Q.test(l)||g?.format==="date")return L(G(l.slice(0,10),h));if(X.test(l))return L(tt(l,h));let W=m&&m.kind!==null?n(m.kind)?.display?.format?.[m.key]:void 0;if(W)return L(W(l));let K=l.length>mt?`${l.slice(0,mt-1).trimEnd()}\u2026`:l;return L(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test(K)?K.replace(/[-_]+/g," "):K)};return{definition:n,relation:r,farOf:s,nearOf:u,fieldName:a,plural:o,noun:x,factName:d,formatOf:i,valueWords:y,locale:h}}function P(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:E(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=E(t.args[0],e,n),s=t.args[1];if(s.t==="ident")return{kind:r,key:s.name};if(s.t==="lit"&&typeof s.value=="string")return{kind:r,key:s.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return P(t.left,e,n)??P(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return P(t.args[1],e,n)??P(t.args[2],e,n)}function E(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(E(t.object,e,n),t.name);case"where":return E(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?E(t.left,e,n):null;case"call":{let r=s=>{let u=t.args[s];return u?.t==="lit"&&typeof u.value=="string"?u.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(E(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(E(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?E(t.args[0],e,n):null}default:return null}}function j(t){return t.t==="binary"?t.op==="||"?U(t)?4:1:t.op==="&&"?2:t.op in V||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var $=t=>t.t==="lit",b=(t,e)=>t.t==="call"&&t.fn===e;function F(t,e){return t.t==="binary"&&t.op===e?[...F(t.left,e),...F(t.right,e)]:[t]}function U(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...F(t,"||"));let n,r=[];for(let s of e){if(s.t!=="binary"||s.op!=="=="||!$(s.right)||typeof s.right.value!="string"||n&&JSON.stringify(yt(n))!==JSON.stringify(yt(s.left)))return;n=s.left,r.push(s.right)}return n?{subject:n,values:r}:void 0}var yt=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function f(t,e,n,r){let s=(u,a,o=e)=>j(u)<a?[v,...f(u,o,n),w]:f(u,o,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(u=>u.t==="lit"?u.value:null),r)];case"ident":return[O(n.fieldName(e,t.name))];case"member":{let u=b(t.object,"first")&&t.object.args[0]&&b(t.object.args[0],"all"),a=E(t.object,e,n);if(u&&a)return e!==null&&n.fieldName(e,t.name)===n.fieldName(a,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[O(`${n.noun(a)}'s ${n.fieldName(a,t.name)}`)]:[O(n.fieldName(a,t.name))];let o=f(t.object,e,n),d=o[o.length-1];return o.length===1&&d?.as==="name"?[O(`${d.text}'s ${n.fieldName(a,t.name)}`)]:[...o,c("'s"),O(n.fieldName(a,t.name))]}case"unary":return t.op==="-"?[R("\u2212","minus"),...s(t.operand,7)]:T(t.operand,e,n);case"where":{let u=E(t.set,e,n),a=f(t.filter,u,n),o=a.every(d=>d.as==="name"||d.as==="word"&&d.text==="not");return[...s(t.set,4),...o?[]:[c("with")],...j(t.filter)<=2?[v,...a,w]:a]}case"binary":return bt(t,e,n);case"call":return Lt(t,e,n)}}function T(t,e,n){return gt(t)?bt({...t,op:B[t.op]},e,n):b(t,"present")||b(t,"exists")?[...f(t.args[0],e,n),R("=","is"),N]:t.t==="ident"?[c("not"),O(n.fieldName(e,t.name))]:[c("not"),v,...f(t,e,n),w]}function bt(t,e,n){let r=(a,o)=>j(a)<o?[v,...f(a,e,n),w]:f(a,e,n);if(t.op==="&&"||t.op==="||"){let a=U(t);if(a){let d=P(a.subject,e,n);return[...f(a.subject,e,n),R("\u2208","is one of"),n.valueWords(a.values.map(x=>x.value),d)]}let o=t.op==="&&"?2:1;return[...r(t.left,o),c(t.op==="&&"?"and":"or"),...r(t.right,o+.5)]}if(t.op in V){if($(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?f(t.left,e,n):T(t.left,e,n);let[a,o]=V[t.op],d=P(t.left,e,n),x=P(t.right,e,n);return[...S(t.left,e,n,x),R(a,o),...S(t.right,e,n,d)]}if(t.op==="in")return[...r(t.left,5),R("\u2208","is one of"),...S(t.right,e,n,P(t.left,e,n))];let s=Pt[t.op];if(s){let a=j(t);return[...r(t.left,a),R(s[0],s[1]),...r(t.right,a+.5)]}let u={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),c(u[t.op]??t.op),...r(t.right,5)]}function S(t,e,n,r){return t.t==="lit"||t.t==="list"?f(t,e,n,r):j(t)<5?[v,...f(t,e,n),w]:f(t,e,n)}function Lt(t,e,n){let r=a=>t.args[a],s=a=>{let o=t.args[a];return o?.t==="lit"&&typeof o.value=="string"?o.value:void 0},u=a=>{let o=r(a);return j(o)<9&&o.t!=="where"?[v,...f(o,e,n),w]:f(o,e,n)};switch(t.fn){case"out":{let a=s(t.args.length-1)??"",o=O(M(a).toLowerCase());return t.args.length===2?[o,c("of"),...u(0)]:[o]}case"in":{let a=s(t.args.length-1)??"",o=t.args.length===2?n.nearOf(E(r(0),e,n),a):n.nearOf(e,a),d=O(o?n.plural(o):M(a).toLowerCase());return t.args.length===2?[d,c("of"),...u(0)]:[d]}case"all":{let a=s(0),o=t.args[1]?.t==="lit"?t.args[1].value:void 0,d=o===!0?[c("archived")]:o==="all"?[c("archived or not")]:[];return o===!0?[...d,O(a?n.plural(a):"everything")]:[O(a?n.plural(a):"everything"),...d]}case"fact":{let a=s(0);return[O(a?n.factName(a):"fact")]}case"count":return[c("number of"),...u(0)];case"exists":return[...u(0),R("\u2260","is not"),N];case"present":return[...f(r(0),e,n),R("\u2260","is not"),N];case"some":case"every":{let a=E(r(0),e,n),o=r(1);return[...t.fn==="some"?[c("some")]:[],...u(0),c(t.fn==="some"?"with":"all with"),...j(o)<=2?[v,...f(o,a,n),w]:f(o,a,n)]}case"sum":case"min":case"max":{let a=E(r(0),e,n),o=r(1),d=o.t==="lit"&&typeof o.value=="string"?[O(n.fieldName(a,o.value))]:j(o)<9?[v,...f(o,a,n),w]:f(o,a,n);return[c(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...d,c("of"),...u(0)]}case"first":{let a=r(0);if(b(a,"all")){let o=a.args[0]?.value;if(typeof o=="string")return[O(`the ${n.noun(o)}`)]}return[c("first of"),...u(0)]}case"sort":return[...u(0),c("by"),...f(r(1),E(r(0),e,n),n)];case"len":return[c("length of"),...f(r(0),e,n)];case"lower":return f(r(0),e,n);case"contains":case"startsWith":return[...f(r(0),e,n),c(t.fn==="contains"?"contains":"starts with"),...S(r(1),e,n,P(r(0),e,n))];case"today":return[L("today")];case"now":return[L("now")];case"date":return $(r(0))&&typeof r(0).value=="string"?[L(G(String(r(0).value),n.locale))]:f(r(0),e,n);case"days":case"hours":{let a=t.fn,[o,d]=[r(0),r(1)];return b(d,"today")||b(d,"now")?[c(`${a} since`),...f(o,e,n)]:b(o,"today")||b(o,"now")?[c(`${a} until`),...f(d,e,n)]:[c(`${a} from`),...f(o,e,n),c("to"),...f(d,e,n)]}case"if":return[v,...f(r(1),e,n),c("if"),...f(r(0),e,n),c(","),c("else"),...f(r(2),e,n),w];case"either":return t.args.flatMap((a,o)=>o===0?f(a,e,n):[c(","),c("else"),...f(a,e,n)]);default:return[c(t.fn),v,...t.args.flatMap((a,o)=>o===0?f(a,e,n):[c(","),...f(a,e,n)]),w]}}function H(t,e){let n=ht(e),r=t.over==="graph"?null:t.over;return z({...r===null?{}:{kind:r},parts:f(t.require,r,n),...t.when?{when:f(t.when,r,n)}:{}})}function Y(t,e,n){let r=ht(e),s=t.over==="graph"?null:t.over,u=n.subject,a=i=>{try{return q(i,{...n,budget:2e3})}catch{return}},o=(i,p)=>{let h=S(i,s,r,p);if(i.t==="lit"||i.t==="list"||b(i,"today")||b(i,"now")||b(i,"date"))return h;let y=a(i);if(y===void 0)return h;let l=P(i,s,r),m=r.valueWords(y,l?{...l,format:r.formatOf(l.kind,l.key)??(p?r.formatOf(p.kind,p.key):void 0)}:p);return y instanceof C?[...h,c(":"),m]:[...h,m]},d=i=>{if(i.t==="binary"&&i.op==="&&"){let p=[];p.push(...F(i,"&&"));let h=p.filter(y=>a(y)!==!0);return(h.length>0?h:p).flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op==="||"){let p=U(i);if(p){let y=P(p.subject,s,r);return[...o(p.subject),R("\u2209","is not one of"),r.valueWords(p.values.map(l=>l.value),y)]}let h=[];return h.push(...F(i,"||")),h.flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op in V){if($(i.right)&&typeof i.right.value=="boolean"&&(i.op==="=="||i.op==="!="))return i.op==="=="===i.right.value?T(i.left,s,r):f(i.left,s,r);let p=B[i.op],[h,y]=V[p],l=P(i.left,s,r),m=P(i.right,s,r);if($(i.right)&&i.right.value===null)return[...p==="=="?S(i.left,s,r,m):o(i.left,m),R(h,y),N];let g=p==="=="&&($(i.right)||$(i.left));return[...g?S(i.left,s,r,m):o(i.left,m),R(h,y),...g?S(i.right,s,r,l):o(i.right,l)]}if(i.t==="binary"&&i.op==="in")return[...o(i.left),R("\u2209","is not one of"),...S(i.right,s,r,P(i.left,s,r))];if(i.t==="unary"&&i.op==="!"){let p=i.operand;return gt(p)?d({...p,op:B[p.op]}):b(p,"present")||b(p,"exists")?[...o(p.args[0]),R("\u2260","is not"),N]:p.t==="ident"?f(p,s,r):[c("not"),v,...T(p,s,r),w]}if(b(i,"present")||b(i,"exists"))return[...f(i.args[0],s,r),R("=","is"),N];if(b(i,"some"))return[...f(i,s,r).slice(1),R("=","is"),N];if(b(i,"every")&&i.args.length===2){let p=a(i.args[0]);if(p instanceof C){let h=p.nodes.filter(y=>{try{return q(i.args[1],{...n,subject:y,budget:2e3})!==!0}catch{return!0}});return[...f(i,s,r),c(","),c("not"),r.valueWords(new C(h))]}}return i.t==="ident"?[c("not"),O(r.fieldName(s,i.name))]:[c("not"),v,...f(i,s,r),w]},x;try{x=d(t.require)}catch{x=[c("not"),v,...f(t.require,s,r),w]}return z({...s===null?{}:{kind:s},parts:x,...u?{record:_(e.schema.tryDefinition(u.kind),u)}:{}})}function xt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function At(t){return(e,n)=>{let r=t[e]?.fields?.[n],s=r?.format??(r?.type==="date"?"date":void 0);return s||r?.unit?{...s?{format:s}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function vt(t,e){return{schema:e,said:xt(t.says),...t.declared?{formatOf:At(t.declared)}:{},...t.money?{money:t.money}:{}}}function Yt(t,e){return t.shape?H(t.shape,vt(t.shape,e)):void 0}var Rt=new WeakMap;function jt(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let s=Wt(r),u=n.get(s.invariant)?.shape;if(!u||s.status&&s.status!=="violated")return s;let a=s.subjectId?t.graph.getNode(s.subjectId):void 0;if(u.over!=="graph"&&!a)return s;let o=u.kinds;o||(o=Rt.get(t.schema),o||Rt.set(t.schema,o=ct(t.schema)));try{let d=t.today?.()??u.today?.()??k(),x=Y(u,vt(u,t.schema),{graph:t.graph,subject:a??null,kinds:o,today:d});return{...s,line:x,...u.says?{}:{message:`${s.message} \u2014 ${x.text}`}}}catch{return s}})}function St(){it((t,e,n,r)=>jt({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),dt(Nt)}function Nt(t,e,n,r){let s=e.graph,u=st.from(t.schema,s.snapshot(),{validate:!1});for(let x of n?[...r].reverse().map(ot):r)try{u.applyPrimitives([x],{restoring:!0})}catch{}let a=x=>t.violations(void 0,x),o=a(n?u:s),d=a(n?s:u);return{...lt(t.allInvariants(),o,d),violationsAfter:d}}function Wt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}St();export{Y as brokenLineOf,St as judgeWithLines,Nt as judgedForASeat,Et as problemWords,Yt as ruleLine,H as ruleLineOf,pt as ruleLineWords,J as ruleSpacing,Ot as ruleSpoken,wt as ruleText,Wt as unlined,jt as withLines};
|