graview 0.1.29 → 0.1.32

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.
Files changed (195) hide show
  1. package/dist/preview/chunk.2NIOHEMX.js +1 -0
  2. package/dist/preview/{chunk.GZH6PTXN.js → chunk.3AGY4QVS.js} +1 -1
  3. package/dist/preview/chunk.3HXN4BOY.js +1 -0
  4. package/dist/preview/chunk.3K6YSVHC.js +1 -0
  5. package/dist/preview/{chunk.7D77HEIJ.js → chunk.3TVXGJTU.js} +1 -1
  6. package/dist/preview/chunk.3TY5NFLY.js +1 -0
  7. package/dist/preview/{chunk.IZW7DBK4.js → chunk.47STJVRV.js} +1 -1
  8. package/dist/preview/chunk.4HRAQNJO.js +27 -0
  9. package/dist/preview/chunk.4HZ7QTXZ.js +1 -0
  10. package/dist/preview/chunk.4MERAWS2.js +1 -0
  11. package/dist/preview/chunk.52W7WYME.js +1 -0
  12. package/dist/preview/chunk.5A4AOFOA.js +1 -0
  13. package/dist/preview/chunk.5H4VXLZF.js +88 -0
  14. package/dist/preview/{chunk.D4GOVA25.js → chunk.5T5XGILP.js} +1 -1
  15. package/dist/preview/chunk.5TVB6BUY.js +1 -0
  16. package/dist/preview/chunk.5UL7YDUD.js +1 -0
  17. package/dist/preview/chunk.63GXY2ME.js +1 -0
  18. package/dist/preview/chunk.6QWV5MVH.js +25 -0
  19. package/dist/preview/{chunk.HV6I74DF.js → chunk.6UGEYZAC.js} +1 -1
  20. package/dist/preview/chunk.6YCBYL2Y.js +2 -0
  21. package/dist/preview/chunk.7GKUVQVF.js +1 -0
  22. package/dist/preview/{chunk.QSDT2RLY.js → chunk.7T7NZZTC.js} +1 -1
  23. package/dist/preview/chunk.AKFKM4SW.js +3 -0
  24. package/dist/preview/chunk.AOSMJKLH.js +1 -0
  25. package/dist/preview/{chunk.IPBXAAQV.js → chunk.ASCLIM2P.js} +1 -1
  26. package/dist/preview/chunk.B2GLDIAS.js +1 -0
  27. package/dist/preview/chunk.BNV77BQZ.js +4 -0
  28. package/dist/preview/chunk.BOO6WVM4.js +117 -0
  29. package/dist/preview/chunk.BQ3JHEHV.js +1 -0
  30. package/dist/preview/chunk.CAVBSL27.js +1 -0
  31. package/dist/preview/chunk.CDP2XL66.js +1 -0
  32. package/dist/preview/chunk.CIPS2OGR.js +1 -0
  33. package/dist/preview/chunk.CJJLJ3KW.js +2 -0
  34. package/dist/preview/chunk.CN3UEF5N.js +90 -0
  35. package/dist/preview/chunk.COQKECUH.js +1 -0
  36. package/dist/preview/{chunk.3G5MQFZK.js → chunk.CWHRDBOF.js} +1 -1
  37. package/dist/preview/chunk.CX3KL2C5.js +1 -0
  38. package/dist/preview/chunk.D75KC3LL.js +1 -0
  39. package/dist/preview/chunk.DAZ2VSRD.js +1 -0
  40. package/dist/preview/{chunk.ONGVH3ZM.js → chunk.DHIUSUCL.js} +75 -24
  41. package/dist/preview/{chunk.44FVJOK4.js → chunk.DYSPCGXX.js} +1 -1
  42. package/dist/preview/chunk.E2YEOMPH.js +1 -0
  43. package/dist/preview/chunk.EBGAYL32.js +1 -0
  44. package/dist/preview/{chunk.HRWLR7T4.js → chunk.EF3XNU4O.js} +1 -1
  45. package/dist/preview/chunk.EJPI3ST6.js +1 -0
  46. package/dist/preview/chunk.EKPRNDUV.js +1 -0
  47. package/dist/preview/chunk.ERIT3R6N.js +1 -0
  48. package/dist/preview/chunk.EYTBDMTW.js +1 -0
  49. package/dist/preview/chunk.F6EH7HI2.js +1 -0
  50. package/dist/preview/{chunk.OGXE2RHC.js → chunk.F6ZK7RMB.js} +2 -2
  51. package/dist/preview/chunk.FSTCX2AI.js +1 -0
  52. package/dist/preview/chunk.FWTIUYXH.js +2 -0
  53. package/dist/preview/{chunk.YCA7P5MK.js → chunk.G5NZVPJU.js} +1 -1
  54. package/dist/preview/chunk.GO4XBWJO.js +9 -0
  55. package/dist/preview/chunk.GV2CQVKV.js +1 -0
  56. package/dist/preview/chunk.GYICGZMG.js +3 -0
  57. package/dist/preview/chunk.H7BST3XO.js +1 -0
  58. package/dist/preview/chunk.H7EPE74C.js +1 -0
  59. package/dist/preview/{chunk.X53HI436.js → chunk.HAIG6NVX.js} +1 -1
  60. package/dist/preview/chunk.HLTRQU4Y.js +35 -0
  61. package/dist/preview/{chunk.O4QPITBD.js → chunk.I6FPNX43.js} +1 -1
  62. package/dist/preview/chunk.IDVAR5HM.js +1 -0
  63. package/dist/preview/chunk.J25KOSNW.js +1 -0
  64. package/dist/preview/chunk.JDUJDAGA.js +1 -0
  65. package/dist/preview/chunk.JFAOHHJJ.js +1 -0
  66. package/dist/preview/chunk.JOOQUWLT.js +341 -0
  67. package/dist/preview/{chunk.ZBXOX3W3.js → chunk.JQU5GEU3.js} +1 -1
  68. package/dist/preview/chunk.K5ME5GCG.js +1 -0
  69. package/dist/preview/chunk.K7PMDSOL.js +1 -0
  70. package/dist/preview/chunk.KSES5U5B.js +1 -0
  71. package/dist/preview/chunk.LLLZEGRK.js +1 -0
  72. package/dist/preview/chunk.LR3VDXPI.js +1 -0
  73. package/dist/preview/chunk.LXBOVRFI.js +1 -0
  74. package/dist/preview/chunk.MAF7C3VM.js +2 -0
  75. package/dist/preview/chunk.MNP4JI33.js +5 -0
  76. package/dist/preview/{chunk.5AT4O4BN.js → chunk.MWGGV7DE.js} +1 -1
  77. package/dist/preview/chunk.N6OX4NEQ.js +1 -0
  78. package/dist/preview/chunk.NM6MZYFN.js +47 -0
  79. package/dist/preview/chunk.NRAYZY3X.js +1 -0
  80. package/dist/preview/chunk.NTF7FVB2.js +1 -0
  81. package/dist/preview/chunk.OC6IWRQ3.js +1 -0
  82. package/dist/preview/chunk.OF34OZ4V.js +1 -0
  83. package/dist/preview/chunk.OJGHDWI6.js +1 -0
  84. package/dist/preview/chunk.OKRNJXTV.js +1 -0
  85. package/dist/preview/chunk.PBSMLINK.js +1 -0
  86. package/dist/preview/chunk.PHKSMUIA.js +1 -0
  87. package/dist/preview/chunk.PIP6Z563.js +1 -0
  88. package/dist/preview/chunk.QGTSHKJL.js +1 -0
  89. package/dist/preview/chunk.QVVJRSRM.js +1 -0
  90. package/dist/preview/{chunk.J46KDTEZ.js → chunk.QYZNAUIR.js} +1 -1
  91. package/dist/preview/chunk.R6K6GF5R.js +1 -0
  92. package/dist/preview/chunk.RCKTBOY2.js +1 -0
  93. package/dist/preview/{chunk.CK7QWLMX.js → chunk.RIJUCHP4.js} +1 -1
  94. package/dist/preview/chunk.SHPXD6FC.js +1 -0
  95. package/dist/preview/chunk.SHTJZ6UX.js +1 -0
  96. package/dist/preview/chunk.SYAEBGDC.js +2 -0
  97. package/dist/preview/chunk.T5VG5A6V.js +1 -0
  98. package/dist/preview/{chunk.JNGUSAWX.js → chunk.TAQ764IQ.js} +17 -3
  99. package/dist/preview/chunk.TCNBCTWO.js +1 -0
  100. package/dist/preview/chunk.TI4OSTQV.js +1 -0
  101. package/dist/preview/{chunk.ZSKP6UQS.js → chunk.UATVTXZY.js} +1 -1
  102. package/dist/preview/{chunk.V6TK4LHW.js → chunk.UBFNZMUX.js} +4 -4
  103. package/dist/preview/chunk.UGFDSE37.js +1 -0
  104. package/dist/preview/chunk.UGFJKSHU.js +3 -0
  105. package/dist/preview/chunk.UHUGOTUU.js +19 -0
  106. package/dist/preview/chunk.ULRW47RP.js +1 -0
  107. package/dist/preview/chunk.UNL2HIF2.js +1 -0
  108. package/dist/preview/chunk.UZGRRDHD.js +1 -0
  109. package/dist/preview/chunk.VG3O4LWB.js +1 -0
  110. package/dist/preview/chunk.WAZ7OGBD.js +1 -0
  111. package/dist/preview/chunk.XANVHJQ4.js +1 -0
  112. package/dist/preview/chunk.XKABS745.js +1 -0
  113. package/dist/preview/chunk.XMC7YDWT.js +1 -0
  114. package/dist/preview/chunk.XNJEFUF7.js +3 -0
  115. package/dist/preview/chunk.Y6ZNFQK3.js +6 -0
  116. package/dist/preview/{chunk.QNHECGMH.js → chunk.YIR7PPF3.js} +1 -1
  117. package/dist/preview/index.html +51 -0
  118. package/dist/preview/page.js +6 -6
  119. package/package.json +6 -6
  120. package/dist/preview/chunk.2643W7FT.js +0 -1
  121. package/dist/preview/chunk.2CLPRG3I.js +0 -1
  122. package/dist/preview/chunk.2IZFIORK.js +0 -1
  123. package/dist/preview/chunk.2NCTM5K2.js +0 -2
  124. package/dist/preview/chunk.3JM2TNDD.js +0 -2
  125. package/dist/preview/chunk.4GGAPOMK.js +0 -2
  126. package/dist/preview/chunk.5JXUAMKI.js +0 -1
  127. package/dist/preview/chunk.5R66YTET.js +0 -2
  128. package/dist/preview/chunk.64P76WK4.js +0 -1
  129. package/dist/preview/chunk.7DNFXJH3.js +0 -1
  130. package/dist/preview/chunk.7PRFYYVM.js +0 -1
  131. package/dist/preview/chunk.AE5GKL4C.js +0 -1
  132. package/dist/preview/chunk.ARR75WBP.js +0 -35
  133. package/dist/preview/chunk.AVUS5LMG.js +0 -3
  134. package/dist/preview/chunk.BKPGDEES.js +0 -1
  135. package/dist/preview/chunk.BZ5OJYHU.js +0 -1
  136. package/dist/preview/chunk.COTG2IG5.js +0 -1
  137. package/dist/preview/chunk.DAA6XWLF.js +0 -1
  138. package/dist/preview/chunk.DKTCRFMS.js +0 -1
  139. package/dist/preview/chunk.DLGTFXGM.js +0 -1
  140. package/dist/preview/chunk.DN7SN6ZR.js +0 -1
  141. package/dist/preview/chunk.G4WQGTZR.js +0 -3
  142. package/dist/preview/chunk.GDA3G4U2.js +0 -6
  143. package/dist/preview/chunk.GS4T26WW.js +0 -328
  144. package/dist/preview/chunk.HFKMHLJ3.js +0 -1
  145. package/dist/preview/chunk.HGAMNIST.js +0 -1
  146. package/dist/preview/chunk.HKBKH7EK.js +0 -1
  147. package/dist/preview/chunk.HLLWKSZB.js +0 -5
  148. package/dist/preview/chunk.HONUT6OG.js +0 -1
  149. package/dist/preview/chunk.IWYUFYDJ.js +0 -1
  150. package/dist/preview/chunk.JU2ZVKMT.js +0 -2
  151. package/dist/preview/chunk.K4ZUVH2G.js +0 -1
  152. package/dist/preview/chunk.KC6UZHBM.js +0 -1
  153. package/dist/preview/chunk.KLITC55P.js +0 -1
  154. package/dist/preview/chunk.KZ2376BD.js +0 -19
  155. package/dist/preview/chunk.LYJAVUST.js +0 -1
  156. package/dist/preview/chunk.MOUGB4H6.js +0 -1
  157. package/dist/preview/chunk.MYFWM572.js +0 -1
  158. package/dist/preview/chunk.N4FBDA2W.js +0 -1
  159. package/dist/preview/chunk.O42YET3W.js +0 -1
  160. package/dist/preview/chunk.ONDILMIX.js +0 -1
  161. package/dist/preview/chunk.OQDETV4X.js +0 -1
  162. package/dist/preview/chunk.OWBEV6FR.js +0 -1
  163. package/dist/preview/chunk.OWE6OJ4P.js +0 -1
  164. package/dist/preview/chunk.OYJSFO3A.js +0 -1
  165. package/dist/preview/chunk.P62SKNJS.js +0 -27
  166. package/dist/preview/chunk.PA5HYAEO.js +0 -1
  167. package/dist/preview/chunk.PMEDLEZY.js +0 -9
  168. package/dist/preview/chunk.PTXQHHKF.js +0 -1
  169. package/dist/preview/chunk.R2D373VG.js +0 -1
  170. package/dist/preview/chunk.RB4RTBRZ.js +0 -1
  171. package/dist/preview/chunk.RCLJ4H52.js +0 -116
  172. package/dist/preview/chunk.RKRSRKF3.js +0 -1
  173. package/dist/preview/chunk.RWGLKDWH.js +0 -1
  174. package/dist/preview/chunk.SIL4KD3K.js +0 -1
  175. package/dist/preview/chunk.SS76EIMI.js +0 -1
  176. package/dist/preview/chunk.T4LY5QXO.js +0 -14
  177. package/dist/preview/chunk.UIIVEQAT.js +0 -1
  178. package/dist/preview/chunk.UTHHX2TJ.js +0 -1
  179. package/dist/preview/chunk.UWNYT7PF.js +0 -1
  180. package/dist/preview/chunk.VNBO2RXD.js +0 -1
  181. package/dist/preview/chunk.VPPUTA74.js +0 -1
  182. package/dist/preview/chunk.WKXNBHTL.js +0 -4
  183. package/dist/preview/chunk.WLRTPFAC.js +0 -1
  184. package/dist/preview/chunk.XAXJHEMD.js +0 -1
  185. package/dist/preview/chunk.XDZSTIS6.js +0 -88
  186. package/dist/preview/chunk.XXHNV24G.js +0 -1
  187. package/dist/preview/chunk.YRQZZH5V.js +0 -1
  188. package/dist/preview/chunk.YUWRZWGX.js +0 -1
  189. package/dist/preview/chunk.Z2RGLFLS.js +0 -1
  190. package/dist/preview/chunk.Z56B2JR2.js +0 -25
  191. package/dist/preview/chunk.Z5V23DQN.js +0 -3
  192. package/dist/preview/chunk.ZEGSQCSD.js +0 -1
  193. package/dist/preview/chunk.ZEVVWWNA.js +0 -44
  194. package/dist/preview/chunk.ZS4DJ76C.js +0 -1
  195. /package/dist/preview/{chunk.OHE5AMHH.js → chunk.GZHZLJBF.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graview",
3
- "version": "0.1.29",
3
+ "version": "0.1.32",
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/core": "0.1.29",
33
- "@graview/guest": "0.1.29",
34
- "@graview/ship": "0.1.29",
35
- "@graview/skills": "0.1.29",
36
- "@graview/tools": "0.1.29"
32
+ "@graview/core": "0.1.32",
33
+ "@graview/guest": "0.1.32",
34
+ "@graview/ship": "0.1.32",
35
+ "@graview/skills": "0.1.32",
36
+ "@graview/tools": "0.1.32"
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 Ne,c as Oe,d as ze}from"./chunk.WLRTPFAC.js";import{b as Me}from"./chunk.RWGLKDWH.js";import{a as Ee,c as He}from"./chunk.XAXJHEMD.js";import{a as Le}from"./chunk.WKXNBHTL.js";import{b as Pe,e as j,f as le}from"./chunk.YRQZZH5V.js";import{a as Re}from"./chunk.VPPUTA74.js";import{b as Ae}from"./chunk.OYJSFO3A.js";import{E as Ce,F as ie,G as Te,I as Q,M as Y,U as J,ga as X,j as be,m as we,n as ke,r as Se,s as xe,x as $e}from"./chunk.Z56B2JR2.js";import{$ as ve,W as me,_ as ye,_b as he}from"./chunk.HLLWKSZB.js";import{b as D}from"./chunk.AJZBJBMO.js";var Z=D(ie(),1),Ue=220;function Ve(n,s){if(!n||!s||typeof document>"u")return null;let m=n.getBoundingClientRect(),r=document.elementFromPoint(m.left+s.x,m.top+s.y),g=r?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");return g||(r?.closest("[data-graview-view]")?.getAttribute("data-graview-view")??null)}function qe({hover:n=!0}={}){let{store:s,view:m,views:r,pointer:g}=J(),{selection:c}=X(),[k,S]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{if(!n)return;let o=null,y=!1,$=()=>typeof document<"u"&&document.querySelector("[data-graview-reach]")!==null?document.querySelector("[data-graview-settled]")===null:!1,i=()=>{if(o&&clearTimeout(o),y)return;let w=g.snapshot();if(!w){S(L=>L===null?L:null);return}o=setTimeout(()=>{if(y||$()){i();return}let L=typeof document>"u"?null:document.querySelector("[data-graview-stage]"),v=Ve(L,w);S(P=>P===v?P:v)},Ue)},f=()=>{y=!0,o&&clearTimeout(o)},C=()=>{y=!1,i()},x=g.subscribe(i);return document.addEventListener("pointerdown",f,!0),document.addEventListener("pointerup",C,!0),document.addEventListener("pointercancel",C,!0),i(),()=>{x(),document.removeEventListener("pointerdown",f,!0),document.removeEventListener("pointerup",C,!0),document.removeEventListener("pointercancel",C,!0),o&&clearTimeout(o)}},[g,n]);let N=o=>{let y=s.graph.getNode(o);if(y)return me(s.schema.tryDefinition(y.kind),y);let $=Le(o,s.schema);if($)return $;let i=xe(o);if(i)return ve(s.schema,i);let f=$e(o);if(f.length>0){let C=f.map(w=>ye(s.schema,w)),x=C.length===1?C[0]:`${C.slice(0,-1).join(", ")} and ${C.at(-1)}`;return x.charAt(0).toUpperCase()+x.slice(1)}return null},E=c[c.length-1];if(E!==void 0){let o=N(E);if(o)return{id:E,name:c.length>1?`${o} and ${c.length-1} more`:o,because:"selection"}}if(k!=null){let o=N(k);if(o)return{id:k,name:o,because:"hover"}}let p=m.within?.view,R=p?r.places().find(o=>o.as===p||he(o.title)===p):void 0;if(R)return{id:null,name:R.title,because:"place"};if(m.focusId){let o=N(m.focusId);if(o)return{id:m.focusId,name:o,because:"place"}}return{id:null,name:"the whole thing",because:"place"}}var A=D(ie(),1);var z=D(ie(),1),b=D(Y(),1),W=(n,s)=>`${n}:${s}`;function De({answer:n,said:s,onReply:m,talk:r}){let[g]=(0,z.useState)(()=>Te(null)),c=r??g,{turns:k,outcomes:S,busy:N}=Q(c),E=(0,z.useCallback)((R,o)=>c.settle(R,o),[c]);return{turns:k,outcomes:S,busy:N,send:async R=>{let o=R.trim();if(!o||c.get().busy)return;c.setBusy(!0);let y=c.get();c.setTurns(f=>[...f,{role:"person",text:o}]);let $=y.turns.map((f,C)=>{let x=(f.proposals??[]).map((w,L)=>{let v=y.outcomes.get(W(C,L));return v?.state==="refused"?`${s(w)} \u2014 refused: ${v.error}`:v?`${v.said} \u2014 ${v.state==="applied"?"applied":"set aside"}`:s(w)});return{role:f.role,text:x.length>0?`${f.text} [Offered beneath this answer: ${x.join("; ")}]`:f.text}}),i;try{i=await n(o,{history:$})}catch(f){i={say:`That couldn't be answered: ${f instanceof Error?f.message:String(f)}`,proposals:[]}}c.setTurns(f=>[...f,{role:"seat",text:i.say,proposals:i.proposals,...i.questions?{questions:i.questions}:{},...i.picks?.length?{picks:i.picks}:{},...i.moves?.length?{moves:i.moves}:{},...i.offer?{offer:i.offer}:{},...i.unsure?{unsure:!0}:{},...i.via?{via:i.via}:{}}]),m?.(i),c.setBusy(!1)},settle:E}}var Qe=n=>{let s=/^([\s\S]*?)\s*(\((?:[^()]|\([^()]*\))*\))\s*$/.exec(n);return s&&s[1]?{said:s[1],aside:s[2]}:{said:n}};function je({turns:n,outcomes:s,busy:m,testId:r,empty:g,minHeight:c=64,maxHeight:k="min(46cqh, 400px)",renderProposal:S,renderAfter:N,renderSaid:E,ready:p=()=>!0,onApplyAll:R,applyAllLabel:o="Apply all"}){let y=(0,z.useRef)(null);return(0,z.useEffect)(()=>{y.current?.scrollTo?.({top:y.current.scrollHeight})},[n]),n.length===0&&g===null&&!m?null:(0,b.jsxs)("ol",{ref:y,style:{margin:0,padding:10,listStyle:"none",display:"grid",gap:8,alignContent:"start",maxHeight:k,minHeight:c,overflowY:"auto"},children:[n.length===0?g===null?null:(0,b.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)",lineHeight:1.5},children:g}):null,n.map(($,i)=>{let f=$.proposals??[],C=f.filter((w,L)=>{let v=W(i,L),P=s.get(v);return P?.state!=="applied"&&P?.state!=="declined"&&p(w,v)}),x=Qe($.text);return(0,b.jsxs)("li",{style:{display:"grid",gap:6,justifyItems:$.role==="person"?"end":"start"},children:[$.role==="person"?(0,b.jsx)("p",{style:{margin:0,maxWidth:"85%",padding:"6px 10px",borderRadius:"12px 12px 4px 12px",fontSize:"0.875rem",lineHeight:1.45,background:"var(--graview-panel-muted)",color:"var(--graview-ink)"},children:$.text}):(0,b.jsxs)("p",{style:{margin:0,fontSize:"0.875rem",lineHeight:1.5,color:"var(--graview-ink)"},children:[E?E($,x.said):x.said,$.via?(0,b.jsx)("span",{"data-testid":`${r}-answered-with-ai`,style:{marginLeft:6,fontSize:"0.6875rem",color:"var(--graview-ink-faint)",whiteSpace:"nowrap"},children:Ce}):null,x.aside?(0,b.jsx)("span",{style:{display:"block",marginTop:2,fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:x.aside}):null]}),N?.($,i),f.map((w,L)=>{let v=W(i,L),P=s.get(v);return P?.state==="applied"||P?.state==="declined"?(0,b.jsx)(ee,{outcome:P,testId:r},v):(0,b.jsxs)("span",{style:{display:"grid",gap:4,justifySelf:"stretch",justifyItems:"start"},children:[S(w,{key:v,turn:i,at:L}),P?(0,b.jsx)(ee,{outcome:P,testId:r}):null]},v)}),R&&C.length>=2?(0,b.jsxs)("button",{type:"button","data-testid":`${r}-apply-all`,onClick:()=>R(i,f),title:"Take these in order; anything still missing is asked for",style:{fontSize:"0.8125rem",justifySelf:"start",fontWeight:600},children:[o," ",C.length]}):null]},i)}),m?(0,b.jsx)("li",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-faint)"},children:"thinking\u2026"}):null]})}function ee({outcome:n,testId:s}){if(n.state==="refused")return(0,b.jsxs)("span",{"data-testid":`${s}-refused`,style:{fontSize:"0.8125rem",color:"var(--graview-warn)"},children:["Refused: ",n.error]});let m=n.state==="applied";return(0,b.jsxs)("span",{"data-testid":`${s}-${n.state}`,style:{fontSize:"0.8125rem",color:m?"var(--graview-ink-muted)":"var(--graview-ink-faint)"},children:[m?(0,b.jsx)("span",{"aria-hidden":"true",style:{color:"var(--graview-accent)"},children:"\u2713 "}):null,m?n.said:(0,b.jsx)("s",{children:n.said})]})}function We({busy:n,placeholder:s,ariaLabel:m,testId:r,onSend:g}){let[c,k]=(0,z.useState)("");return(0,b.jsxs)("form",{onSubmit:S=>{S.preventDefault(),!(n||c.trim().length===0)&&(g(c),k(""))},style:{display:"flex",gap:6,padding:8,borderTop:"1px solid var(--graview-edge)"},children:[(0,b.jsx)("input",{value:c,onChange:S=>k(S.target.value),placeholder:s,"aria-label":m,"data-testid":`${r}-draft`,style:{flex:1,minWidth:0,font:"inherit",fontSize:"0.875rem",padding:"6px 9px",borderRadius:8,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",color:"var(--graview-ink)"}}),(0,b.jsx)("button",{type:"submit","data-testid":`${r}-send`,disabled:n||c.trim().length===0,style:{fontSize:"0.875rem"},children:"Send"})]})}var u=D(Y(),1),Ye=/\b(?:board|kanban|timeline|calendar|gantt|who covers|covers what|coverage|floor plan|layout|draw|chart|(?:list|table) of|as an? (?:list|table|board|calendar|timeline|grid))\b/i,Je=/\b(?:group(?:ed)? by|split by|sort(?:ed)? by|order(?:ed)? by|only|call it|name it|as an? (?:board|kanban|calendar|timeline|list|table|cards|rows|grid|plan|layout)|show all|all of them|clear the filter|no filter)\b/i,Xe=n=>n.charAt(0).toLowerCase()+n.slice(1),Ze=n=>n.to==="record"?n.label:n.to==="problems"?"problems":n.title;function et(n,s,m){let r=[],g=n;for(let c of s){let k=Ze(c),S=k?g.toLowerCase().indexOf(k.toLowerCase()):-1;S<0||(r.push(g.slice(0,S),m(c,g.slice(S,S+k.length))),g=g.slice(S+k.length))}return r.length===0?n:[...r,g]}function vt({respond:n,onCall:s,onPick:m,testId:r="chat",empty:g,shared:c=!1,composer:k=!0,onMove:S,place:N,onDraft:E}){let{store:p,views:R,view:o,principal:y,setView:$,seatWho:i,noteSeat:f,session:C,ai:x,seatTalk:w,brand:L,app:v}=J(),P=He(),te=S??P,{takeBack:Fe}=Ee(te),{selection:ne}=X(),de=qe(),ce=i??"chat",q=(0,A.useMemo)(()=>({kind:"agent",id:ce,session:C}),[ce,C]),ae=(0,A.useRef)(void 0),G=(0,A.useMemo)(()=>Me(p,{author:{...q,...y.roles?{roles:y.roles}:{}},derive:()=>({pins:Ne()}),places:()=>R.places(),via:()=>ae.current,...v?{app:v}:{},near:x.near}),[p,y,q,R,v,x.near]),Be=(0,A.useMemo)(()=>n??ze(x),[n,x]);(0,A.useEffect)(()=>s?G.onCall(s):void 0,[G,s]),Ae(G);let pe=(0,A.useMemo)(()=>({name:L?.name??"app",schema:p.schema,...p.policy?{policy:p.policy}:{}}),[p,L]),Ie=async e=>{let a=w.get().draft,t=a!==null&&Je.test(e);if(!t&&!Ye.test(e))return;let l=await import("./chunk.ZEGSQCSD.js"),h=n?void 0:Oe(x),d={app:pe,sight:l.draftSight(pe,_),...h?{complete:h}:{},...a?{lastGood:a}:{}},T=t&&a?await l.refineDraft(a,e,d):await l.draftView(e,d);if(l.isDraftFailure(T)){let O=T.lastGood??a;return O?(w.setDraft(O,T.failed),E?.(),{say:`${T.failed} The last view stays.`,proposals:[],grounded:!0}):{say:T.failed,proposals:[],grounded:!0}}return w.setDraft(T,null),E?.(),{say:`Here is ${Xe(T.said)} Ask to change it, or keep it as a lens.`,proposals:[],grounded:!0}},H=De({...c?{talk:w}:{},said:e=>j(p,e),answer:async(e,a)=>{let t=await Ie(e);if(t)return t;let{placesFromViews:l}=await import("./chunk.MYFWM572.js"),h=N??o.within?.view,d=R.arrangement?.(),T=p.today();return Be(p,e,{...a,selection:de.id?[de.id]:ne,principal:{...q,...y.roles?{roles:y.roles}:{}},places:l(p.schema,R.places(),d?{pages:d}:{}),...h?{place:h}:{},...T?{today:T}:{},...v?{app:v}:{}})},onReply:e=>{let a=e.moves?.[0];a&&te(a);let t=e.questions?.[0];f(t?{type:"asking",author:q,where:t.nodeId??null,say:`${t.nodeLabel?`${t.nodeLabel}: `:""}${t.asks}`,confidence:t.confidence}:{type:"said",author:q,say:e.say});let l=e.proposals.find(h=>!oe(h));if(l){let h=p.permits({name:l.mutation,args:{...l.args}},_);h.ok||f({type:"refused",author:q,where:fe(l.mutation),say:h.refusal.message})}}}),{outcomes:I,settle:re}=H,ue=Q(w);(0,A.useEffect)(()=>{if(!c||ue.pending===null||H.busy)return;let e=w.takePending();e&&H.send(e)},[c,ue.pending,H.busy]);let _={...q,...y.roles?{roles:y.roles}:{}},oe=e=>p.permits({name:e.mutation,args:{...e.args}},_).ok,fe=e=>{let a=p.allMutations().find(t=>t.name===e)?.subject?.kinds;return Array.isArray(a)&&a[0]?Se(a[0]):null},[M,K]=(0,A.useState)(null),U=async(e,a)=>{let t=Pe(p,e),l=j(p,t),h=G.definitions.find(T=>T.act===t.mutation)?.name??t.mutation;ae.current=H.turns[Number(a.split(":")[0])]?.via;let d=await G.call(h,{...t.args}).finally(()=>{ae.current=void 0});return d.ok?(re(a,{state:"applied",said:l}),!0):(re(a,{state:"refused",error:d.error}),f({type:"refused",author:q,where:fe(t.mutation),say:d.error}),!1)},_e=async(e,a)=>{for(let[t,l]of a.entries()){let h=W(e,t);if(I.get(h)?.state==="applied"||!oe(l))continue;let d=le(p,l);if(d.length>0){K({proposal:l,open:d,key:h});return}if(!await U(l,h))return}},V=(0,A.useRef)(null),se=(0,A.useRef)(null);(0,A.useLayoutEffect)(()=>{let e=se.current;if(!e||e.isConnected||document.activeElement!==document.body)return;se.current=null,(V.current?.querySelector(`[data-testid="${r}-apply"]:not([disabled])`)??V.current?.querySelector(`[data-testid="${r}-draft"]`)??V.current?.closest("[data-testid='seat']")?.querySelector("[data-testid='seat-field']"))?.focus()});let Ke=(e,a,t,l)=>{let h=p.permits({name:t.mutation,args:{...t.args}},_);if(!h.ok)return(0,u.jsxs)("span",{"data-testid":`${r}-withheld`,style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[(0,u.jsx)("s",{children:j(p,t)})," \u2014 ",h.refusal.message]});let d=le(p,t),T=(H.turns[e]?.proposals??[]).slice(0,a).filter((ge,F)=>I.get(W(e,F))?.state!=="applied").find(ge=>d.some(F=>F.kinds&&typeof t.args[F.name]=="string"&&ge.args.label===t.args[F.name])),O=j(p,t);return(0,u.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 10px"},children:[(0,u.jsxs)("span",{style:{fontSize:"0.875rem",color:"var(--graview-ink)"},title:t.why,children:[O,d.length>0&&!T?" \u2026":""]}),(0,u.jsxs)("span",{style:{display:"inline-flex",gap:6},children:[(0,u.jsx)("button",{type:"button","data-testid":`${r}-apply`,"data-graview-asks":d.length>0?d.length:void 0,disabled:T!==void 0,"aria-label":`Do it: ${O}`,onClick:()=>d.length>0?K({proposal:t,open:d,key:l}):void U(t,l),title:T?`After \u201C${j(p,T)}\u201D`:d.length>0?`${O} \u2014 it asks for ${d.length===1?"one more thing":`${d.length} more things`}`:O,style:B,children:"Do it"}),(0,u.jsx)("button",{type:"button","data-testid":`${r}-decline`,"aria-label":`Not now: ${O}`,onClick:()=>re(l,{state:"declined",said:O}),style:{...B,color:"var(--graview-ink-muted)"},children:"Not now"})]})]})};return(0,u.jsxs)("div",{"data-testid":`${r}-panel`,ref:V,onFocus:e=>{se.current=e.target},style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",alignContent:"start",gap:8,minWidth:0,minHeight:0},children:[H.turns.length===0?g??null:null,(0,u.jsx)(je,{turns:H.turns,outcomes:I,busy:H.busy,testId:r,minHeight:0,maxHeight:"none",empty:g!==void 0?null:(0,u.jsxs)(u.Fragment,{children:["Ask what's wrong, ask about anything by name, or say a change in its own words.",ne.length>0?" \u201CThis\u201D means what you have selected.":""]}),renderProposal:(e,{key:a,turn:t,at:l})=>Ke(t,l,e,a),ready:e=>oe(e),onApplyAll:(e,a)=>void _e(e,a),applyAllLabel:"Do all",renderSaid:(e,a)=>e.moves?.length?et(a,e.moves,(t,l)=>(0,u.jsx)("button",{type:"button","data-testid":`${r}-went`,title:`Go to ${l}`,onClick:()=>te(t),style:{...Ge,fontSize:"inherit"},children:l},`${t.address}:${l}`)):a,renderAfter:(e,a)=>[...e.offer?[(0,u.jsx)("button",{type:"button","data-testid":`${r}-offer`,onClick:()=>w.ask(`a list of ${e.offer.draft}`),style:{...B,justifySelf:"start"},children:e.offer.label},`${a}:offer`)]:[],...e.kept&&!e.kept.taken?[(0,u.jsx)("button",{type:"button","data-testid":`${r}-take-back`,onClick:()=>void Fe(e.kept),style:{...B,justifySelf:"start"},children:"Take back"},`${a}:take-back`)]:[],...e.picks?.length?[(0,u.jsx)("p",{"data-testid":`${r}-picks`,style:{margin:0,display:"flex",flexWrap:"wrap",gap:"2px 12px"},children:e.picks.map(t=>(0,u.jsx)("button",{type:"button","data-testid":`${r}-pick`,"data-chat-pick":t.id,title:t.why.field==="label"?`Go to ${t.label}`:`${t.why.reading}: ${t.why.fragment}`,onClick:()=>m?m(t.id):$(l=>ke(be(we(l,!1),t.id),[t.id])),style:Ge,children:t.label},t.id))},`${a}:picks`)]:[],...(e.questions??[]).map(t=>{let l=`${a}:q:${t.id}`,h=I.get(l);return(0,u.jsxs)("div",{"data-testid":`${r}-question`,"data-chat-question-node":t.nodeId,style:{display:"grid",gap:4,justifySelf:"start"},children:[(0,u.jsxs)("span",{style:{fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:[t.nodeLabel?(0,u.jsxs)("strong",{children:[t.nodeLabel,": "]}):null,t.asks,t.because==="split"?" (it could be either)":" (it was not sure)"]}),(0,u.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:t.options.map(d=>(0,u.jsxs)("button",{type:"button","data-testid":`${r}-option`,disabled:!d.call,title:d.call?d.call.why??"Take this answer":"Nothing to do for this answer",onClick:()=>d.call?void U(d.call,l):void 0,style:B,children:[d.value," ",Math.round(d.probability*100),"%"]},d.value))}),h?(0,u.jsx)(ee,{outcome:h,testId:r}):null]},t.id)})]}),M?(0,u.jsx)("div",{"data-testid":`${r}-asking`,children:(0,u.jsx)(Re,{affordance:{id:`chat:${M.proposal.mutation}`,mutation:M.proposal.mutation,label:j(p,M.proposal),provider:"llm",why:M.proposal.why??"Suggested in the conversation.",nodeIds:[],args:M.proposal.args,open:M.open,score:0},onApply:e=>{let a={...M.proposal,args:{...M.proposal.args,...e}};K(null),U(a,M.key)},onCancel:()=>K(null)})}):null,k?(0,u.jsx)(We,{busy:H.busy,placeholder:ne.length>0?"Ask about this\u2026":"Ask, or say a change\u2026",ariaLabel:"Ask",testId:r,onSend:e=>c?w.ask(e):void H.send(e)}):null]})}var B={font:"inherit",fontSize:"0.8125rem",minHeight:26,padding:"0 9px",borderRadius:6,border:"1px solid var(--graview-edge)",background:"var(--graview-panel)",boxShadow:"none",color:"var(--graview-ink)",cursor:"pointer"},Ge={font:"inherit",fontSize:"0.875rem",minHeight:24,padding:0,border:0,borderRadius:2,background:"transparent",boxShadow:"none",color:"var(--graview-accent)",textDecoration:"underline",textUnderlineOffset:3,textAlign:"start",cursor:"pointer"};export{qe as a,vt as b,B as c,Ge as d};
@@ -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,3 +0,0 @@
1
- import"./chunk.WKXNBHTL.js";import"./chunk.OWE6OJ4P.js";import{a as _,b as ge,c as me,e as fe}from"./chunk.CK7QWLMX.js";import"./chunk.QNHECGMH.js";import"./chunk.RKRSRKF3.js";import"./chunk.KC6UZHBM.js";import"./chunk.HJCQ6I3S.js";import{a as ye,d as we}from"./chunk.ZBXOX3W3.js";import"./chunk.5AT4O4BN.js";import"./chunk.X53HI436.js";import"./chunk.COTG2IG5.js";import"./chunk.YCA7P5MK.js";import"./chunk.UT6642FC.js";import{a as de}from"./chunk.2CLPRG3I.js";import{f as he}from"./chunk.O42YET3W.js";import"./chunk.Z5V23DQN.js";import"./chunk.OHE5AMHH.js";import{p as pe,s as q}from"./chunk.OYJSFO3A.js";import{a as ce}from"./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{c as le}from"./chunk.G4WQGTZR.js";import"./chunk.HFKMHLJ3.js";import{i as ue}from"./chunk.GS4T26WW.js";import{F as xe,J as R,M as ie,N as re,U as N,W as H,aa as K,ha as se,ia as W,j as $,l as ne,m as G,r as P,v as ae,z as oe}from"./chunk.Z56B2JR2.js";import{$ as I,Hb as te,M as D,V as M,W as F,Z as B,ca as ee}from"./chunk.HLLWKSZB.js";import{b as V}from"./chunk.AJZBJBMO.js";var i=V(xe(),1);var e=V(ie(),1),Se=ue.part((t,u)=>(0,e.jsx)(t.ProblemRows,{...u}),{what:"The problems",as:"li"}),A="var(--graview-gap, 8px)",ke=720;function Fe({showing:t}){return t.what==="lens"?(0,e.jsx)(Ce,{kind:t.kind},`lens:${t.kind}`):t.what==="record"?(0,e.jsx)(Ee,{id:t.id},`record:${t.id}`):(0,e.jsx)(Ne,{kind:t.kind},`district:${t.kind}`)}function Y({label:t,wide:u,testId:a,head:l,onClose:r,children:s,sheetHeight:f}){let h=(0,i.useRef)(null),[y,x]=(0,i.useState)(!1);(0,i.useLayoutEffect)(()=>{let o=h.current?.parentElement;if(!o)return;let p=()=>x(o.getBoundingClientRect().width<ke);if(p(),typeof ResizeObserver>"u")return;let b=new ResizeObserver(p);return b.observe(o),()=>b.disconnect()},[]);let g=(0,i.useRef)(r);return g.current=r,(0,i.useEffect)(()=>{let o=k=>{if(k.key!=="Escape"||k.defaultPrevented)return;let m=document.activeElement;m instanceof HTMLInputElement||m instanceof HTMLTextAreaElement||document.querySelector("[data-graview-popover]:popover-open")||p||g.current()},p=!1,b=()=>{p=document.querySelector('[data-testid="following-who"]')!==null};return window.addEventListener("keydown",b,!0),document.addEventListener("keydown",o),()=>{window.removeEventListener("keydown",b,!0),document.removeEventListener("keydown",o)}},[]),(0,e.jsxs)("section",{ref:h,"aria-label":t,"data-testid":a,"data-graview-map-panel":y?"sheet":"dock","data-graview-overlay":"","data-graview-offstage":"",className:"graview-map-panel",style:{position:"absolute",zIndex:te("rail"),boxSizing:"border-box",display:"flex",flexDirection:"column",background:"var(--graview-panel)",color:"var(--graview-ink)",overflow:"hidden",border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",boxShadow:"var(--graview-lift-high)",...y?{left:A,right:A,bottom:`calc(${A} + env(safe-area-inset-bottom, 0px))`,height:f}:{top:A,right:A,bottom:A,width:u}},children:[y?(0,e.jsx)("style",{children:`:has(> [data-graview-map-panel="sheet"]) { --graview-sheet: calc(${f} + 2 * ${A} + env(safe-area-inset-bottom, 0px)); }`}):(0,e.jsx)("style",{children:`:has(> [data-graview-map-panel="dock"]) { --graview-dock: calc(${u} + 2 * ${A}); }`}),(0,e.jsxs)("header",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"14px 14px 10px 18px",borderBottom:"1px solid var(--graview-edge)"},children:[(0,e.jsx)("div",{style:{flex:"1 1 auto",minWidth:0},children:l}),(0,e.jsx)("button",{type:"button","data-testid":"map-panel-close","aria-label":"Close",title:"Close (Escape)",onClick:r,style:{flex:"0 0 auto",minWidth:32,height:32,borderRadius:8,fontSize:"1.1rem",lineHeight:1},children:"\xD7"})]}),(0,e.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflow:"auto"},children:s})]})}var U={fontSize:"0.75rem",letterSpacing:"0.09em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},J={margin:"2px 0 0",fontSize:"1.125rem",fontWeight:600,lineHeight:1.3,overflowWrap:"anywhere"},Q={margin:"4px 0 0",fontSize:"0.875rem",color:"var(--graview-ink-muted)"},j={margin:"14px 18px 6px",fontSize:"0.8125rem",fontWeight:600,color:"var(--graview-ink-muted)"},z={listStyle:"none",margin:0,padding:"0 10px 6px"},X={all:"unset",outline:"revert-layer",boxSizing:"border-box",display:"flex",alignItems:"baseline",gap:8,width:"100%",padding:"6px 8px",borderRadius:6,cursor:"pointer",fontSize:"0.875rem"},L={minHeight:30,padding:"0 12px",borderRadius:8,fontSize:"0.8125rem"};function Z(){let{setSelection:t,setMenuAt:u}=N();return(a,l)=>{a.preventDefault(),t([l]),u({x:a.clientX,y:a.clientY,on:l})}}function ve({on:t,about:u}){let{setSelection:a,setMenuAt:l}=N();return(0,e.jsx)("button",{type:"button","data-testid":"map-panel-acts","aria-label":`What can be done with ${u}`,"aria-haspopup":"menu",style:L,onClick:r=>{let s=r.currentTarget.getBoundingClientRect();a([t]),l({x:Math.round(s.left),y:Math.round(s.bottom+4),on:t})},children:"Acts\u2026"})}var be=(t,u)=>({...$(G(t,!1),u),relation:null});function Ce({kind:t}){let u=Z(),{store:a,views:l,view:r,selection:s,setSelection:f}=N(),{go:h}=W(),y=H(),x=r.within?.view,g=l.places().filter(w=>w.kind===t),o=(x!==void 0?g.find(w=>w.as===x):void 0)??g.at(-1),p=l.resolve(t,{cardinality:"many",fidelity:"full"},o?.as??x),b=p?.view,k=a.schema.tryDefinition(t),m=(0,i.useMemo)(()=>a.graph.nodesOfKind(t).filter(w=>r.past===!0||M(k,w)),[a,t,y,r.past,k]),C=p?.title??o?.title??I(a.schema,t),E=b!==void 0&&K(b),d=s.filter(w=>a.graph.getNode(w)!==void 0),c=ce();return(0,e.jsxs)(Y,{label:C,testId:"lens-panel",wide:"min(max(440px, 46%), 760px)",sheetHeight:"60%",onClose:()=>h(ne($(r,null),"view",null)),head:E?null:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:U,children:I(a.schema,t)}),(0,e.jsx)("h2",{style:J,"data-testid":"lens-panel-title",children:C}),(0,e.jsxs)("p",{style:Q,children:[B(a.schema,t,m.length),k?.description?` \xB7 ${k.description}`:""]}),o?(0,e.jsx)("div",{style:{marginTop:10},children:(0,e.jsx)("button",{type:"button","data-testid":"lens-panel-open",style:L,title:`Open ${C} on its own`,onClick:()=>h(oe(r,t,o.as)),children:"Open \u2197"})}):null]}),children:[(0,e.jsx)("style",{children:`.graview-ground[data-graview-altitude] .graview-plot:not([data-graview-plot="${P(t)}"]) { opacity: 0.35; }
2
- .graview-ground[data-graview-altitude] [data-graview-view^="kind:"]:not([data-graview-view="${P(t)}"]) { opacity: 0.4; }`}),(0,e.jsx)("div",{"data-graview-lens":o?.as??"",style:{padding:"8px 12px 16px",minHeight:"100%",boxSizing:"border-box",display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"minmax(0, 1fr)",alignItems:"start"},onClick:w=>{let n=R(w.target);if(!n||a.graph.getNode(n)===void 0)return;let v=w.target.closest("button, a, input, select, textarea, [contenteditable='true']");v&&!v.hasAttribute("data-graview-pick")||f([n])},onDoubleClick:w=>{let n=R(w.target);!n||a.graph.getNode(n)===void 0||h(be(r,n))},onContextMenu:w=>{let n=R(w.target);!n||a.graph.getNode(n)===void 0||u(w,n)},children:b?(0,e.jsx)(de.Provider,{value:C,children:(0,e.jsx)(re,{mode:"fullscreen",children:(0,e.jsx)(q,{kind:t,...p?.title?{view:p.title}:{},children:(0,e.jsx)(b,{nodes:m,label:C,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1,...d.length>0?{implicated:d}:{},...c.length>0?{flagged:c}:{}})})})}):null})]})}function Ae(t,u,a,l){let r=l(a),s=new Map;for(let f of u){let h=f.from===a;if(!h&&f.to!==a)continue;let y=h?f.to:f.from,x=l(y);if(x===void 0||r===void 0)continue;let g=`${f.kind}|${h?"out":"in"}|${x}`,o=s.get(g);if(o){o.others.includes(y)||o.others.push(y);continue}s.set(g,{key:g,edge:f.kind,words:le(t,h?r:x,f.kind,h?"out":"in"),kind:x,others:[y]})}return[...s.values()]}function Ee({id:t}){let u=Z(),{store:a,views:l,view:r,setSelection:s}=N(),{go:f}=W(),h=H(),y=a.graph.getNode(t),x=d=>a.graph.getNode(d)?.kind,g=(0,i.useMemo)(()=>Ae(a.schema,a.graph.allEdges(),t,x),[a,t,h]);if(!y)return null;let o=y.kind,p=d=>{let c=a.graph.getNode(d);return c?F(a.schema.tryDefinition(c.kind),c):d},b=ee(a.schema.tryDefinition(o),o),m=l.resolve(o,{cardinality:"one",fidelity:"full"})?.view,C=m!==void 0&&!K(m),E=()=>r.focusId===t?f({...$(r,null),selection:[]}):s([]);return(0,e.jsxs)(Y,{label:`${p(t)}: its links`,testId:"record-panel",wide:C?"min(max(440px, 46%), 760px)":"min(360px, 40%)",sheetHeight:"52%",onClose:E,head:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:U,children:b}),(0,e.jsx)("h2",{style:J,"data-testid":"record-panel-title",children:p(t)}),(0,e.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:10},children:[(0,e.jsx)("button",{type:"button","data-testid":"record-panel-go",style:L,onClick:()=>f(be(r,t)),children:"Go to it"}),(0,e.jsx)(ve,{on:t,about:p(t)}),(0,e.jsxs)("button",{type:"button","data-testid":"record-panel-district",style:L,onClick:()=>s([P(o)]),children:["All ",I(a.schema,o).toLowerCase()]})]})]}),children:[(0,e.jsx)("div",{"data-graview-record-card":t,style:{padding:"8px 18px 0"},children:C?(0,e.jsx)(q,{kind:o,children:(0,e.jsx)(m,{node:y,fidelity:"full",cardinality:"one",mode:"fullscreen",selected:!1})}):(0,e.jsx)(he,{id:t,shown:[p(t)]})}),g.length===0?(0,e.jsx)("p",{style:{...Q,margin:"14px 18px"},children:"No links yet."}):null,g.map(d=>(0,e.jsxs)("section",{"aria-label":d.words,"data-graview-links":d.edge,children:[(0,e.jsxs)("h3",{style:j,children:[d.words.charAt(0).toUpperCase()+d.words.slice(1)," ",(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-faint)"},children:["\xB7 ",d.others.length]})]}),(0,e.jsx)("ul",{style:z,children:d.others.map(c=>(0,e.jsx)("li",{children:(0,e.jsxs)("button",{type:"button",className:"graview-map-panel-row","data-graview-record":c,style:X,onClick:()=>s([c]),onContextMenu:T=>u(T,c),children:[(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflowWrap:"anywhere"},children:p(c)}),d.kind!==o?null:(0,e.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:b})]})},c))})]},d.key))]})}var Pe=24;function Ne({kind:t}){let u=Z(),{store:a,view:l,setSelection:r,setEmphasis:s}=N(),{go:f}=W(),h=H(),[y,x]=(0,i.useState)(""),g=a.schema.tryDefinition(t),o=(0,i.useMemo)(()=>a.graph.nodesOfKind(t).filter(n=>l.past===!0||M(g,n)).map(n=>({id:n.id,name:F(g,n)})).sort((n,v)=>n.name.localeCompare(v.name)),[a,t,h,l.past,g]),p=(0,i.useMemo)(()=>{let n=S=>{let O=a.graph.getNode(S);return O!==void 0&&(l.past===!0||M(a.schema.tryDefinition(O.kind),O))},v=a.graph.allEdges().filter(S=>n(S.from)&&n(S.to));return ye(v,S=>a.graph.getNode(S)?.kind).filter(S=>S.from===t||S.to===t)},[a,t,h,l.past]);(0,i.useEffect)(()=>()=>s(null),[s]);let b=se(),k=pe().marks.flag,m=(0,i.useMemo)(()=>{let n=new Set(o.map(v=>v.id));return b.filter(v=>v.nodeIds.some(S=>n.has(S)))},[b,o]),C=(0,i.useMemo)(()=>[...new Set(m.flatMap(n=>n.nodeIds))].filter(n=>a.graph.getNode(n)?.kind===t).slice(0,300),[m,a,t]),E=(0,i.useRef)(null),d=(0,i.useSyncExternalStore)(ge,_,_);(0,i.useEffect)(()=>{d?.kind!==t||m.length===0||(E.current?.scrollIntoView?.({block:"start"}),E.current?.focus({preventScroll:!0}))},[d?.n,d?.kind,t,m.length>0]),(0,i.useEffect)(()=>()=>{me(),setTimeout(()=>{let n=document.activeElement;if(n&&n!==document.body)return;let v=CSS.escape(t);document.querySelector(`[data-testid="district-problems-${v}"]`)?.focus({preventScroll:!0})??document.querySelector(`[data-graview-view="${P(t).replace(/["\\]/g,"\\$&")}"]`)?.focus({preventScroll:!0})},0)},[t]);let c=I(a.schema,t),T=y.trim().toLowerCase(),w=T?o.filter(n=>n.name.toLowerCase().includes(T)):o;return(0,e.jsxs)(Y,{label:c,testId:"district-panel",wide:"min(360px, 40%)",sheetHeight:"52%",onClose:()=>r([]),head:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{style:U,children:"District"}),(0,e.jsx)("h2",{style:J,"data-testid":"district-panel-title",children:c}),(0,e.jsxs)("p",{style:Q,children:[B(a.schema,t,o.length),g?.description?` \xB7 ${g.description}`:""]}),(0,e.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",marginTop:10},children:[(0,e.jsx)("button",{type:"button","data-testid":"district-panel-go",style:L,onClick:()=>f({...$(G(l,!1),ae(t)),relation:null}),children:"Go in"}),(0,e.jsx)(ve,{on:P(t),about:`the ${c.toLowerCase()}`})]})]}),children:[m.length>0?(0,e.jsxs)("section",{"aria-label":"Problems","data-testid":"district-problems","data-graview-problems":m.length,children:[(0,e.jsx)("style",{children:`${C.map(n=>`.graview-ground[data-graview-altitude] .graview-building[data-graview-building="${CSS.escape(n)}"] polygon`).join(`,
3
- `)} { stroke: var(--graview-accent); stroke-width: 2.2; stroke-opacity: 1; }`}),(0,e.jsxs)("h3",{ref:E,tabIndex:-1,"data-testid":"district-problems-heading",style:{display:"flex",alignItems:"baseline",gap:8,margin:0,padding:"14px 18px 8px",fontSize:"0.9375rem",fontWeight:600,color:"var(--graview-warn)",borderTop:"1px solid var(--graview-edge)",scrollMarginTop:0,outlineOffset:-2},children:[(0,e.jsx)("span",{"aria-hidden":"true",children:k}),(0,e.jsx)("span",{style:{color:"var(--graview-ink)"},children:fe(m.length,c)})]}),(0,e.jsx)("ol",{style:z,"data-testid":"district-problem-rows",children:(0,e.jsx)(i.Suspense,{fallback:null,children:(0,e.jsx)(Se,{violations:m,pick:n=>{let v=n.subjectId??n.nodeIds[0];v!==void 0&&r([v])}})})})]}):null,p.length>0?(0,e.jsxs)("section",{"aria-label":"Relations",children:[(0,e.jsx)("h3",{style:j,children:"Relations"}),(0,e.jsx)("ul",{style:z,children:p.map(n=>(0,e.jsx)("li",{children:(0,e.jsxs)("div",{"data-graview-relation-said":n.edge,tabIndex:0,style:{...X,cursor:"default"},onPointerEnter:()=>s(n.edge),onPointerLeave:()=>s(null),onFocus:()=>s(n.edge),onBlur:()=>s(null),children:[(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0},children:we(a.schema,n)}),(0,e.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)",fontVariantNumeric:"tabular-nums"},title:`${D(n.links)} links`,children:D(n.links)})]})},n.key))})]}):null,(0,e.jsxs)("section",{"aria-label":c,children:[(0,e.jsxs)("h3",{style:j,children:[c," ",(0,e.jsxs)("span",{style:{fontWeight:400,color:"var(--graview-ink-faint)"},children:["\xB7 ",o.length]})]}),o.length>Pe?(0,e.jsx)("div",{style:{padding:"0 18px 6px"},children:(0,e.jsx)("input",{type:"search","data-testid":"district-panel-narrow","aria-label":`Narrow the ${c.toLowerCase()} by name`,placeholder:"Narrow by name",value:y,onChange:n=>x(n.target.value),style:{width:"100%",boxSizing:"border-box",minHeight:32}})}):null,(0,e.jsx)("ul",{style:z,children:w.map(n=>(0,e.jsx)("li",{children:(0,e.jsx)("button",{type:"button",className:"graview-map-panel-row","data-graview-record":n.id,style:X,onClick:()=>r([n.id]),onContextMenu:v=>u(v,n.id),children:(0,e.jsx)("span",{style:{flex:"1 1 auto",minWidth:0,overflowWrap:"anywhere"},children:n.name})})},n.id))})]})]})}export{Fe as MapPanelFor};
@@ -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{d as L}from"./chunk.MOUGB4H6.js";import{a as R,b as O,c as v,d as P}from"./chunk.ONDILMIX.js";import"./chunk.UIIVEQAT.js";import"./chunk.GDA3G4U2.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.N4FBDA2W.js";import"./chunk.3G5MQFZK.js";import"./chunk.2CLPRG3I.js";import{a as E,b as T}from"./chunk.MB7LKKUD.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{F as D,M as C,ma as x}from"./chunk.Z56B2JR2.js";import{Hb as k}from"./chunk.HLLWKSZB.js";import{b as S}from"./chunk.AJZBJBMO.js";var o=S(D(),1);var i=S(C(),1);function W(c){let e=document.activeElement;if(e!==null&&e!==document.body&&e!==document.documentElement&&e.isConnected)return;let r=c??document,a=r.querySelector("main")??r.querySelector("[data-graview-page]")??null,n=r.querySelector("[data-graview-page-title]")??a?.querySelector("h1, h2")??a;n instanceof HTMLElement&&(n.hasAttribute("tabindex")||n.setAttribute("tabindex","-1"),n.focus({preventScroll:!0}))}var H=1500;function z(c,e,r){let{store:a,principal:n}=c,u=L(a),l=(0,o.useMemo)(()=>R(a,n),[a,n,u]),b=(0,o.useRef)(r),[p,m]=(0,o.useState)(),[s,f]=(0,o.useState)("");(0,o.useEffect)(()=>{let t=O(a,n,b.current);b.current=a.batches().length,t&&(m({batch:t.batch,at:e,when:Date.now()}),f(""))},[a,n,u]),(0,o.useEffect)(()=>{m(t=>!t||t.at===e?t:Date.now()-t.when<H?{...t,at:e}:void 0)},[e]);let[g,h]=(0,o.useState)(null),y=(0,o.useCallback)(()=>{m(void 0),h(null)},[]),w=(0,o.useCallback)(()=>{h(null);try{let t=P(a,n);t&&f(`Took back \u201C${t.intent}\u201D`)}catch(t){h(t instanceof Error?t.message:String(t))}},[a,n]),d=l&&p?.batch===l.batch&&p.at===e?l:void 0;return{change:l,offered:d,close:y,takeBack:w,refused:g,said:s}}function Y({context:c,docked:e,at:r,since:a}){let{change:n,offered:u,close:l,takeBack:b,refused:p,said:m}=z(c,r,a),s=e?u:n,f=(0,o.useRef)(null),g=e&&(s!==void 0||p!==null);B(f,g),(0,o.useEffect)(()=>{if(!g)return;let d,t=()=>d=setTimeout(()=>f.current?.matches(":hover, :focus-within")?t():l(),1e4);return t(),()=>clearTimeout(d)},[g,s?.batch,p,l]);let h=m||(e&&s?v(s):""),y=e?{position:"fixed",inset:"auto",margin:0,padding:0,border:"none",background:"none",overflow:"visible",zIndex:k("toast"),width:"max-content",height:"auto",bottom:"calc(16px + env(safe-area-inset-bottom, 0px))",left:16,justifyItems:"start",color:"var(--graview-ink)",...g?{}:{display:"none"}}:{},w=s?(0,i.jsxs)("button",{type:"button","data-testid":"page-undo",title:`${v(s)} \u2014 \u2318Z or Ctrl+Z`,"aria-keyshortcuts":"Meta+Z Control+Z",onClick:d=>{let t=d.currentTarget.closest("[data-graview-face]");b(),requestAnimationFrame(()=>W(t))},style:e?I:A,children:[(0,i.jsx)("span",{"aria-hidden":"true",children:"\u21B6"}),(0,i.jsx)("span",{style:e?j:F,children:v(s)})]}):null;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{role:"status","aria-live":"polite",style:N,children:h}),(0,i.jsxs)("div",{ref:f,...e?{popover:"manual","data-graview-foot":"","data-graview-offstage":""}:{},"data-testid":e?"face-undo-dock":"page-undo-place",style:{display:"grid",justifyItems:"end",gap:4,maxWidth:"100%",minWidth:0,...y},children:[e&&s?(0,i.jsxs)("div",{"data-testid":"page-undo-notice",style:_,children:[w,(0,i.jsx)("button",{type:"button","data-testid":"page-undo-dismiss","aria-label":`Dismiss: ${v(s)}`,title:"Dismiss",onClick:d=>{let t=d.currentTarget.closest("[data-graview-face]");l(),requestAnimationFrame(()=>W(t))},style:q,children:"\xD7"})]}):w,p?(0,i.jsx)("span",{"data-testid":"page-undo-refused",role:"alert",style:{fontSize:"0.8125rem",lineHeight:1.4,color:"var(--graview-warn)",background:e?"var(--graview-float)":void 0,padding:e?"4px 8px":void 0,borderRadius:6},children:p}):null]})]})}function B(c,e){(0,o.useLayoutEffect)(()=>{let r=c.current;if(!r||!e)return;if(typeof r.showPopover=="function"&&!x(r))try{r.showPopover()}catch{}let a=()=>r.parentElement?.closest("[data-embed-content]")??null,n=()=>{T(r,a()),dispatchEvent(new Event(E))};n(),addEventListener("resize",n),addEventListener("scroll",n,!0);let u=typeof ResizeObserver=="function"?new ResizeObserver(n):null;return u?.observe(r),()=>{if(u?.disconnect(),removeEventListener("resize",n),removeEventListener("scroll",n,!0),r.isConnected&&x(r))try{r.hidePopover()}catch{}dispatchEvent(new Event(E))}},[c,e])}var A={display:"inline-flex",alignItems:"center",gap:6,minHeight:36,maxWidth:"100%",minWidth:0,padding:"0 14px",borderRadius:999,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",font:"inherit",fontSize:"0.875rem",cursor:"pointer"},I={...A,textAlign:"start",lineHeight:1.4,padding:"8px 4px 8px 14px",border:"none",background:"none",color:"inherit"},_={display:"flex",alignItems:"center",gap:2,maxWidth:"100%",minWidth:0,paddingRight:6,borderRadius:"var(--graview-radius, 12px)",border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)"},q={flex:"0 0 auto",minWidth:28,minHeight:28,padding:0,border:"none",background:"none",boxShadow:"none",color:"var(--graview-ink-muted)",font:"inherit",fontSize:"1rem",cursor:"pointer"},F={minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},j={minWidth:0,overflow:"hidden",overflowWrap:"anywhere",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:4},N={position:"absolute",width:1,height:1,margin:-1,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap",border:0};export{Y as TakeBack};
@@ -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};