graview 0.1.56 → 0.1.58

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 (179) hide show
  1. package/dist/preview/chunk.27CW6SCT.js +3 -0
  2. package/dist/preview/{chunk.UQQAGT3R.js → chunk.2EDC63RI.js} +1 -1
  3. package/dist/preview/chunk.2VYNNWW5.js +18 -0
  4. package/dist/preview/chunk.32FMOHZK.js +1 -0
  5. package/dist/preview/{chunk.VLBY66PB.js → chunk.34TW32TB.js} +2 -2
  6. package/dist/preview/{chunk.AM2YRNOQ.js → chunk.3FCOFEGW.js} +1 -1
  7. package/dist/preview/{chunk.LKK7VQBA.js → chunk.3OYGXYQY.js} +1 -1
  8. package/dist/preview/{chunk.XJFAUOJS.js → chunk.3YZHZGTM.js} +1 -1
  9. package/dist/preview/{chunk.AIK3Z25Y.js → chunk.43OKZU73.js} +1 -1
  10. package/dist/preview/{chunk.QSO5BP2H.js → chunk.4444RPWW.js} +1 -1
  11. package/dist/preview/{chunk.4EY6WPSM.js → chunk.47JQPYXL.js} +2 -2
  12. package/dist/preview/{chunk.N3Q5CPVA.js → chunk.4AFFPYOK.js} +1 -1
  13. package/dist/preview/chunk.4GGPPCMM.js +1 -0
  14. package/dist/preview/{chunk.PRV3KYT6.js → chunk.4HSH2UIK.js} +2 -2
  15. package/dist/preview/{chunk.7Z4USR3Y.js → chunk.4KC35UNR.js} +1 -1
  16. package/dist/preview/{chunk.LP3SHWJG.js → chunk.4Y2JTY6Q.js} +1 -1
  17. package/dist/preview/{chunk.6HLKAUWF.js → chunk.5ICIMQE6.js} +1 -1
  18. package/dist/preview/{chunk.KY7QD22S.js → chunk.5IEFTFKQ.js} +1 -1
  19. package/dist/preview/{chunk.JHFHIG4P.js → chunk.64R3K2OE.js} +1 -1
  20. package/dist/preview/chunk.6K7EN2YI.js +1 -0
  21. package/dist/preview/{chunk.45VIF2SX.js → chunk.6VC6AGYV.js} +2 -2
  22. package/dist/preview/{chunk.PMPDLE56.js → chunk.6W7O5YLL.js} +1 -1
  23. package/dist/preview/chunk.7BBGRTXM.js +5 -0
  24. package/dist/preview/{chunk.CGM7OER2.js → chunk.7MSFDD7J.js} +1 -1
  25. package/dist/preview/chunk.7SQAKSJD.js +2 -0
  26. package/dist/preview/{chunk.VEOS25PQ.js → chunk.7V23SXGJ.js} +1 -1
  27. package/dist/preview/{chunk.C2VFDBSG.js → chunk.A6C4AGJJ.js} +1 -1
  28. package/dist/preview/chunk.ACYDJQRC.js +1 -0
  29. package/dist/preview/{chunk.NBLMANHT.js → chunk.ARWBIBSI.js} +1 -1
  30. package/dist/preview/{chunk.KBL4Y4UN.js → chunk.B2GVJD6H.js} +1 -1
  31. package/dist/preview/{chunk.2DETYEJM.js → chunk.B3WZHPM3.js} +1 -1
  32. package/dist/preview/{chunk.IT763BYH.js → chunk.BB33TI4S.js} +1 -1
  33. package/dist/preview/{chunk.3X3GLNWQ.js → chunk.BKVBX2YB.js} +1 -1
  34. package/dist/preview/{chunk.VYW7DSUW.js → chunk.BTVBZ6KE.js} +2 -2
  35. package/dist/preview/{chunk.JZDKHWRL.js → chunk.CCWPF5PK.js} +1 -1
  36. package/dist/preview/{chunk.QAIYYIZQ.js → chunk.D5KTGX7F.js} +1 -1
  37. package/dist/preview/{chunk.YLMOGGEP.js → chunk.DBZHRYBK.js} +1 -1
  38. package/dist/preview/{chunk.GUP7LC5O.js → chunk.DM767F2Q.js} +2 -2
  39. package/dist/preview/{chunk.65Q5MKDW.js → chunk.E34OQVSR.js} +1 -1
  40. package/dist/preview/{chunk.N7EEPFYV.js → chunk.E5MSFXL6.js} +1 -1
  41. package/dist/preview/{chunk.DTSTUC2W.js → chunk.EB4NVTJL.js} +1 -1
  42. package/dist/preview/{chunk.5MS2TQFX.js → chunk.ELAMMS2V.js} +1 -1
  43. package/dist/preview/chunk.ELERUERU.js +1 -0
  44. package/dist/preview/{chunk.XGCOWCA2.js → chunk.EPPXZZPK.js} +1 -1
  45. package/dist/preview/chunk.EQTSV7BK.js +2 -0
  46. package/dist/preview/{chunk.QNNRSPIJ.js → chunk.ETBFD76E.js} +1 -1
  47. package/dist/preview/{chunk.OBUKZQCZ.js → chunk.F7SF6EP2.js} +1 -1
  48. package/dist/preview/chunk.GCBZ3WE2.js +1 -0
  49. package/dist/preview/{chunk.ONGZ3YQF.js → chunk.GDOTG7YA.js} +1 -1
  50. package/dist/preview/{chunk.SVAQGVS4.js → chunk.GEB2DFBU.js} +1 -1
  51. package/dist/preview/chunk.GKSUTAIX.js +1 -0
  52. package/dist/preview/{chunk.VDD3RHLB.js → chunk.GP7F3PEF.js} +1 -1
  53. package/dist/preview/{chunk.AKW6NR3X.js → chunk.GQBJVCSM.js} +1 -1
  54. package/dist/preview/chunk.GUEHKCWN.js +1 -0
  55. package/dist/preview/{chunk.NQ4VGKEC.js → chunk.GZB6A6KF.js} +1 -1
  56. package/dist/preview/{chunk.2E6EWVWR.js → chunk.H3BFHI3G.js} +1 -1
  57. package/dist/preview/{chunk.7RJGEU3Y.js → chunk.HEWVPXRE.js} +1 -1
  58. package/dist/preview/{chunk.J3YBEZKE.js → chunk.HMFJT4KO.js} +1 -1
  59. package/dist/preview/{chunk.NFU4UM6F.js → chunk.HS3GHAUR.js} +1 -1
  60. package/dist/preview/{chunk.NPAWTPLQ.js → chunk.HT2BEOEV.js} +1 -1
  61. package/dist/preview/{chunk.7O6Z3BFR.js → chunk.HXRV3WVJ.js} +1 -1
  62. package/dist/preview/{chunk.MJMVGW6Z.js → chunk.HZB5F476.js} +1 -1
  63. package/dist/preview/{chunk.WPJVMVAL.js → chunk.I3WWCPQ2.js} +1 -1
  64. package/dist/preview/{chunk.IUQOSPQX.js → chunk.IDJPBWL2.js} +1 -1
  65. package/dist/preview/{chunk.4KMY24YC.js → chunk.ILRCNTGT.js} +1 -1
  66. package/dist/preview/{chunk.T6HG2XIP.js → chunk.INZQ6WZM.js} +1 -1
  67. package/dist/preview/{chunk.ILSK2E3R.js → chunk.IULQRCEE.js} +1 -1
  68. package/dist/preview/{chunk.IF4FCQPG.js → chunk.JB7TTJXQ.js} +1 -1
  69. package/dist/preview/{chunk.E4HSSGF7.js → chunk.JES77WXG.js} +1 -1
  70. package/dist/preview/{chunk.SRC37GNP.js → chunk.JGKA5QBX.js} +1 -1
  71. package/dist/preview/chunk.JOAN54PN.js +1 -0
  72. package/dist/preview/{chunk.2YNZVNCA.js → chunk.JUNMJYH5.js} +1 -1
  73. package/dist/preview/{chunk.MORMTKVR.js → chunk.KFQSYCY3.js} +1 -1
  74. package/dist/preview/{chunk.TXWCTHMI.js → chunk.KJ264E6K.js} +1 -1
  75. package/dist/preview/{chunk.NUE5VG4G.js → chunk.KJHPDL4N.js} +1 -1
  76. package/dist/preview/{chunk.SOTB6C5A.js → chunk.KKNDX4JT.js} +1 -1
  77. package/dist/preview/chunk.KNYLY7MH.js +1 -0
  78. package/dist/preview/{chunk.YL5ZCRHQ.js → chunk.KWJWAIQJ.js} +1 -1
  79. package/dist/preview/{chunk.V3NPUAPB.js → chunk.KXPRILAO.js} +1 -1
  80. package/dist/preview/chunk.L7V24JPO.js +1 -0
  81. package/dist/preview/chunk.LA4CPZ2N.js +1 -0
  82. package/dist/preview/{chunk.E33EJU3Q.js → chunk.LCPGZK7G.js} +1 -1
  83. package/dist/preview/chunk.LDAYDCUO.js +1 -0
  84. package/dist/preview/{chunk.64IKLRUS.js → chunk.LL2MLSPH.js} +1 -1
  85. package/dist/preview/{chunk.22MIRLL6.js → chunk.LMN4TSAP.js} +1 -1
  86. package/dist/preview/{chunk.IRMO4FUC.js → chunk.LO3U3P55.js} +1 -1
  87. package/dist/preview/{chunk.DH7M57SE.js → chunk.LRUNFSHP.js} +1 -1
  88. package/dist/preview/{chunk.MLRPCZVS.js → chunk.LY3YOWKV.js} +1 -1
  89. package/dist/preview/{chunk.DWMAFMYZ.js → chunk.M34CS7DI.js} +1 -1
  90. package/dist/preview/{chunk.I2C5LPB5.js → chunk.MQ5HBUBL.js} +1 -1
  91. package/dist/preview/chunk.MV3AJ7JH.js +1 -0
  92. package/dist/preview/chunk.MYNQWWCL.js +1 -0
  93. package/dist/preview/{chunk.E4EN4X5F.js → chunk.NFX24NUI.js} +1 -1
  94. package/dist/preview/{chunk.PJCVFYFU.js → chunk.NKC3JILT.js} +1 -1
  95. package/dist/preview/{chunk.MFDSWA2W.js → chunk.NOFWGDOT.js} +1 -1
  96. package/dist/preview/{chunk.QW3QLE53.js → chunk.O4CVKTPJ.js} +1 -1
  97. package/dist/preview/{chunk.TAIYNHSW.js → chunk.OASYYMG5.js} +1 -1
  98. package/dist/preview/{chunk.G3ORIU7C.js → chunk.OHQ3JH65.js} +1 -1
  99. package/dist/preview/{chunk.2OX4YI46.js → chunk.PBCNOFQH.js} +1 -1
  100. package/dist/preview/{chunk.V6X3U3JF.js → chunk.PHC2MI4C.js} +1 -1
  101. package/dist/preview/chunk.PM3SYXKB.js +1 -0
  102. package/dist/preview/{chunk.K2JE3PD7.js → chunk.POBMGM3X.js} +1 -1
  103. package/dist/preview/{chunk.LLOZKUCA.js → chunk.PZG3B7F4.js} +1 -1
  104. package/dist/preview/chunk.QB25SMP6.js +1 -0
  105. package/dist/preview/{chunk.FCUDBMGC.js → chunk.QGV7H7RQ.js} +1 -1
  106. package/dist/preview/chunk.QPXXY2DL.js +1133 -0
  107. package/dist/preview/chunk.QUJS63OJ.js +13 -0
  108. package/dist/preview/{chunk.Q7X2IVLH.js → chunk.R7LFO7KI.js} +1 -1
  109. package/dist/preview/{chunk.7NP2I2UP.js → chunk.RE7DELSR.js} +1 -1
  110. package/dist/preview/{chunk.XY5EVI22.js → chunk.RRKYJYZJ.js} +1 -1
  111. package/dist/preview/{chunk.APXYWI3L.js → chunk.S2H7B6RG.js} +1 -1
  112. package/dist/preview/chunk.S5MGE2U5.js +1 -0
  113. package/dist/preview/{chunk.D6KF72MZ.js → chunk.SDVPJYVF.js} +1 -1
  114. package/dist/preview/{chunk.FBR4HJ2Q.js → chunk.SPXRLO5K.js} +1 -1
  115. package/dist/preview/chunk.TBW7CU4G.js +1 -0
  116. package/dist/preview/{chunk.USB6B6L3.js → chunk.TF5I4VHX.js} +1 -1
  117. package/dist/preview/{chunk.4EUH6TLG.js → chunk.TJ647W6J.js} +2 -2
  118. package/dist/preview/{chunk.ZFXHZZHW.js → chunk.TJOXNEFU.js} +1 -1
  119. package/dist/preview/{chunk.WMB2NNBD.js → chunk.TUUVVO5U.js} +1 -1
  120. package/dist/preview/{chunk.AZUTYY2S.js → chunk.TWKXSLYY.js} +4 -4
  121. package/dist/preview/chunk.TXGNPW76.js +1 -0
  122. package/dist/preview/{chunk.VSM72NVF.js → chunk.U6O3MMQR.js} +1 -1
  123. package/dist/preview/{chunk.EC5IWN74.js → chunk.UAP5M3CD.js} +2 -2
  124. package/dist/preview/chunk.UDCDK7XJ.js +4 -0
  125. package/dist/preview/chunk.UKMVJV6Q.js +1 -0
  126. package/dist/preview/chunk.UUG3BYVN.js +1 -0
  127. package/dist/preview/{chunk.RDL6652E.js → chunk.VG7OWV2H.js} +1 -1
  128. package/dist/preview/{chunk.BNEOLRQG.js → chunk.VHSWBFXB.js} +1 -1
  129. package/dist/preview/{chunk.D4LN33J2.js → chunk.VUPLFUUS.js} +1 -1
  130. package/dist/preview/chunk.WJFQIE3Y.js +1 -0
  131. package/dist/preview/{chunk.AQCU6TPV.js → chunk.WNQFHMNR.js} +1 -1
  132. package/dist/preview/{chunk.CKV2QCH5.js → chunk.WNSC3RWD.js} +1 -1
  133. package/dist/preview/{chunk.CU2NQ5WF.js → chunk.WQOI6BLM.js} +1 -1
  134. package/dist/preview/{chunk.RXYE2DAJ.js → chunk.WXIEQZLY.js} +1 -1
  135. package/dist/preview/{chunk.2HZGUVB2.js → chunk.XN2RVXOI.js} +1 -1
  136. package/dist/preview/{chunk.USQNSNIA.js → chunk.XU34T2H4.js} +1 -1
  137. package/dist/preview/{chunk.HFVMGTNL.js → chunk.YD3TKV6P.js} +2 -2
  138. package/dist/preview/{chunk.K5YLQAFW.js → chunk.YHTE34RN.js} +1 -1
  139. package/dist/preview/chunk.YIA2EDVF.js +3 -0
  140. package/dist/preview/{chunk.JQY2UKU6.js → chunk.YP2F5UGY.js} +1 -1
  141. package/dist/preview/{chunk.D6BMAGPR.js → chunk.YS6GVLIP.js} +1 -1
  142. package/dist/preview/{chunk.O6LDZWLR.js → chunk.YZZONE4M.js} +1 -1
  143. package/dist/preview/{chunk.5B4HNQGR.js → chunk.ZN5HTWSI.js} +1 -1
  144. package/dist/preview/{chunk.AKVBU5K5.js → chunk.ZOHMWSHD.js} +1 -1
  145. package/dist/preview/index.html +50 -50
  146. package/dist/preview/page.js +2 -2
  147. package/package.json +6 -6
  148. package/dist/preview/chunk.2BLRCT3E.js +0 -1
  149. package/dist/preview/chunk.3V2WH6F7.js +0 -1
  150. package/dist/preview/chunk.4YI6656P.js +0 -1
  151. package/dist/preview/chunk.5MSWUTDB.js +0 -1
  152. package/dist/preview/chunk.6Q6BW4QT.js +0 -2
  153. package/dist/preview/chunk.7U2JO7ET.js +0 -3
  154. package/dist/preview/chunk.7Z2PRPYE.js +0 -1
  155. package/dist/preview/chunk.AGTFYPXY.js +0 -1
  156. package/dist/preview/chunk.BT7RLFPO.js +0 -1
  157. package/dist/preview/chunk.DPPT6WAJ.js +0 -2
  158. package/dist/preview/chunk.DVG47BK3.js +0 -1
  159. package/dist/preview/chunk.DZYLH5IM.js +0 -1
  160. package/dist/preview/chunk.E5XNQTEU.js +0 -1
  161. package/dist/preview/chunk.F5RN6YXG.js +0 -4
  162. package/dist/preview/chunk.FOQENWF5.js +0 -1
  163. package/dist/preview/chunk.GNQW4JOG.js +0 -18
  164. package/dist/preview/chunk.HVN2DVP3.js +0 -1
  165. package/dist/preview/chunk.JL4DGITZ.js +0 -1
  166. package/dist/preview/chunk.K4MO22RM.js +0 -1
  167. package/dist/preview/chunk.KMEKMCKG.js +0 -3
  168. package/dist/preview/chunk.LVOVPU64.js +0 -1
  169. package/dist/preview/chunk.MEJUAV3Y.js +0 -1
  170. package/dist/preview/chunk.OYGPNO7A.js +0 -1
  171. package/dist/preview/chunk.QYFZ7AZS.js +0 -1132
  172. package/dist/preview/chunk.RR2IFETZ.js +0 -1
  173. package/dist/preview/chunk.T2RME6XF.js +0 -1
  174. package/dist/preview/chunk.TAJ2R44N.js +0 -1
  175. package/dist/preview/chunk.TQCRFZ53.js +0 -1
  176. package/dist/preview/chunk.UE5YS3GN.js +0 -1
  177. package/dist/preview/chunk.VIQ6EF2O.js +0 -1
  178. package/dist/preview/chunk.XE72DFBV.js +0 -13
  179. package/dist/preview/chunk.YEJ4LNUP.js +0 -5
@@ -1,6 +1,6 @@
1
- var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{G as C,Ga as K,T as k}from"./chunk.NPAWTPLQ.js";import{a as H}from"./chunk.SDO3U72B.js";import{b}from"./chunk.AJZBJBMO.js";var n=b(C(),1),N=450,_=10,O=t=>t instanceof HTMLInputElement?t.dataset.graviewChooseBox??void 0:void 0,q={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:-1/0,End:1/0},S=t=>t instanceof Element?t.closest("[data-graview-choose]"):null,G=t=>t instanceof HTMLElement&&(t.isContentEditable||t instanceof HTMLInputElement&&t.type!=="checkbox"||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement);function Y(t){let[i,d]=(0,n.useState)(()=>new Set),l=(0,n.useRef)(null),x=(0,n.useRef)(null),[E,P]=(0,n.useState)(null),R=E!==null&&t.includes(E)?E:t[0],L=(0,n.useMemo)(()=>t.filter(e=>i.has(e)),[t,i]),M=(0,n.useMemo)(()=>new Set(t),[t]);(0,n.useEffect)(()=>{[...i].some(e=>!M.has(e))&&d(e=>new Set([...e].filter(o=>M.has(o))))},[M,i]);let u=(0,n.useCallback)((e,o=!1)=>{let a=l.current;d(s=>{let r=new Set(s),f=a===null?-1:t.indexOf(a),y=t.indexOf(e);if(o&&f>=0&&y>=0){let T=s.has(a);for(let p of t.slice(Math.min(f,y),Math.max(f,y)+1))T?r.add(p):r.delete(p)}else r.has(e)?r.delete(e):r.add(e);return r}),l.current=e},[t]),v=(0,n.useCallback)(e=>d(new Set(e)),[]),A=(0,n.useCallback)(()=>{l.current=null,d(new Set)},[]),c=(0,n.useRef)(null),g=(0,n.useRef)(!1),m=L.length>0,h=()=>{c.current&&clearTimeout(c.current.timer),c.current=null};(0,n.useEffect)(()=>h,[]);let B={ref:x,onKeyDown:e=>{if(G(e.target))return;let o=O(e.target);if(e.key==="Tab"&&!e.shiftKey&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&o!==void 0&&m){let s=document.querySelector('[data-testid="several-bar"]'),r=s?.querySelector("[data-mutation]:not([disabled])")??s?.querySelector("button:not([disabled])");if(r){e.preventDefault(),e.stopPropagation(),r.focus();return}}let a=q[e.key];if(o!==void 0&&a!==void 0&&!e.metaKey&&!e.ctrlKey&&!e.altKey){let s=t.indexOf(o),r=t[Math.max(0,Math.min(t.length-1,s+(Number.isFinite(a)?a:a>0?t.length:-t.length)))];if(e.preventDefault(),e.stopPropagation(),r===void 0||r===o)return;if(e.shiftKey){let f=l.current!==null&&t.includes(l.current)?l.current:o,[y,T]=[t.indexOf(f),t.indexOf(r)].sort((p,F)=>p-F);d(p=>new Set([...p,...t.slice(y,T+1)])),l.current=f}P(r),x.current?.querySelector(`[data-graview-choose-box="${CSS.escape(r)}"]`)?.focus();return}if((e.metaKey||e.ctrlKey)&&!e.altKey&&e.key.toLowerCase()==="a"){e.preventDefault(),e.stopPropagation(),v(t);return}if(e.key===" "&&!e.metaKey&&!e.ctrlKey){let s=S(e.target),r=e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement&&e.target.type==="checkbox";if(!s||r)return;e.preventDefault(),u(s.dataset.graviewChoose,e.shiftKey)}},onFocus:e=>{let o=O(e.target);o!==void 0&&P(o)},onPointerDown:e=>{if(g.current=!1,e.pointerType==="mouse"||e.button>0)return;let o=S(e.target);if(!o||e.target instanceof HTMLInputElement&&e.target.type==="checkbox")return;let a=o.dataset.graviewChoose;h(),c.current={id:a,x:e.clientX,y:e.clientY,timer:setTimeout(()=>{c.current=null,g.current=!0,u(a)},N)}},onPointerMove:e=>{let o=c.current;o&&Math.hypot(e.clientX-o.x,e.clientY-o.y)>_&&h()},onPointerUp:h,onPointerCancel:h,onClickCapture:e=>{let o=S(e.target);if(!o||e.target instanceof HTMLInputElement&&e.target.type==="checkbox"&&e.target.hasAttribute("data-graview-choose-box"))return;if(g.current){g.current=!1,e.preventDefault(),e.stopPropagation();return}let s=o.dataset.graviewChoose;if(e.shiftKey&&(m||l.current!==null)){e.preventDefault(),e.stopPropagation(),u(s,!0);return}m&&matchMedia?.("(pointer: coarse)").matches&&(e.preventDefault(),e.stopPropagation(),u(s))},onContextMenu:e=>{(g.current||c.current)&&(e.preventDefault(),e.stopPropagation())},...m?{"data-graview-choosing":""}:{}},j=(0,n.useCallback)(e=>i.has(e),[i]);return{chosen:L,has:j,toggle:u,choose:v,clear:A,listProps:B,boxProps:(e,o)=>({type:"checkbox",className:"graview-choose-box","data-graview-choose-box":e,"aria-label":`Choose ${o}`,tabIndex:e===R?0:-1,checked:i.has(e),onChange:()=>{},onClick:a=>{a.stopPropagation(),u(e,a.shiftKey)}}),list:x}}var $=`
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{G as C,Ga as K,T as k}from"./chunk.HT2BEOEV.js";import{a as H}from"./chunk.SDO3U72B.js";import{b}from"./chunk.AJZBJBMO.js";var n=b(C(),1),N=450,_=10,O=t=>t instanceof HTMLInputElement?t.dataset.graviewChooseBox??void 0:void 0,q={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:-1/0,End:1/0},S=t=>t instanceof Element?t.closest("[data-graview-choose]"):null,G=t=>t instanceof HTMLElement&&(t.isContentEditable||t instanceof HTMLInputElement&&t.type!=="checkbox"||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement);function Y(t){let[i,d]=(0,n.useState)(()=>new Set),l=(0,n.useRef)(null),x=(0,n.useRef)(null),[E,P]=(0,n.useState)(null),R=E!==null&&t.includes(E)?E:t[0],L=(0,n.useMemo)(()=>t.filter(e=>i.has(e)),[t,i]),M=(0,n.useMemo)(()=>new Set(t),[t]);(0,n.useEffect)(()=>{[...i].some(e=>!M.has(e))&&d(e=>new Set([...e].filter(o=>M.has(o))))},[M,i]);let u=(0,n.useCallback)((e,o=!1)=>{let a=l.current;d(s=>{let r=new Set(s),f=a===null?-1:t.indexOf(a),y=t.indexOf(e);if(o&&f>=0&&y>=0){let T=s.has(a);for(let p of t.slice(Math.min(f,y),Math.max(f,y)+1))T?r.add(p):r.delete(p)}else r.has(e)?r.delete(e):r.add(e);return r}),l.current=e},[t]),v=(0,n.useCallback)(e=>d(new Set(e)),[]),A=(0,n.useCallback)(()=>{l.current=null,d(new Set)},[]),c=(0,n.useRef)(null),g=(0,n.useRef)(!1),m=L.length>0,h=()=>{c.current&&clearTimeout(c.current.timer),c.current=null};(0,n.useEffect)(()=>h,[]);let B={ref:x,onKeyDown:e=>{if(G(e.target))return;let o=O(e.target);if(e.key==="Tab"&&!e.shiftKey&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&o!==void 0&&m){let s=document.querySelector('[data-testid="several-bar"]'),r=s?.querySelector("[data-mutation]:not([disabled])")??s?.querySelector("button:not([disabled])");if(r){e.preventDefault(),e.stopPropagation(),r.focus();return}}let a=q[e.key];if(o!==void 0&&a!==void 0&&!e.metaKey&&!e.ctrlKey&&!e.altKey){let s=t.indexOf(o),r=t[Math.max(0,Math.min(t.length-1,s+(Number.isFinite(a)?a:a>0?t.length:-t.length)))];if(e.preventDefault(),e.stopPropagation(),r===void 0||r===o)return;if(e.shiftKey){let f=l.current!==null&&t.includes(l.current)?l.current:o,[y,T]=[t.indexOf(f),t.indexOf(r)].sort((p,F)=>p-F);d(p=>new Set([...p,...t.slice(y,T+1)])),l.current=f}P(r),x.current?.querySelector(`[data-graview-choose-box="${CSS.escape(r)}"]`)?.focus();return}if((e.metaKey||e.ctrlKey)&&!e.altKey&&e.key.toLowerCase()==="a"){e.preventDefault(),e.stopPropagation(),v(t);return}if(e.key===" "&&!e.metaKey&&!e.ctrlKey){let s=S(e.target),r=e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement&&e.target.type==="checkbox";if(!s||r)return;e.preventDefault(),u(s.dataset.graviewChoose,e.shiftKey)}},onFocus:e=>{let o=O(e.target);o!==void 0&&P(o)},onPointerDown:e=>{if(g.current=!1,e.pointerType==="mouse"||e.button>0)return;let o=S(e.target);if(!o||e.target instanceof HTMLInputElement&&e.target.type==="checkbox")return;let a=o.dataset.graviewChoose;h(),c.current={id:a,x:e.clientX,y:e.clientY,timer:setTimeout(()=>{c.current=null,g.current=!0,u(a)},N)}},onPointerMove:e=>{let o=c.current;o&&Math.hypot(e.clientX-o.x,e.clientY-o.y)>_&&h()},onPointerUp:h,onPointerCancel:h,onClickCapture:e=>{let o=S(e.target);if(!o||e.target instanceof HTMLInputElement&&e.target.type==="checkbox"&&e.target.hasAttribute("data-graview-choose-box"))return;if(g.current){g.current=!1,e.preventDefault(),e.stopPropagation();return}let s=o.dataset.graviewChoose;if(e.shiftKey&&(m||l.current!==null)){e.preventDefault(),e.stopPropagation(),u(s,!0);return}m&&matchMedia?.("(pointer: coarse)").matches&&(e.preventDefault(),e.stopPropagation(),u(s))},onContextMenu:e=>{(g.current||c.current)&&(e.preventDefault(),e.stopPropagation())},...m?{"data-graview-choosing":""}:{}},j=(0,n.useCallback)(e=>i.has(e),[i]);return{chosen:L,has:j,toggle:u,choose:v,clear:A,listProps:B,boxProps:(e,o)=>({type:"checkbox",className:"graview-choose-box","data-graview-choose-box":e,"aria-label":`Choose ${o}`,tabIndex:e===R?0:-1,checked:i.has(e),onChange:()=>{},onClick:a=>{a.stopPropagation(),u(e,a.shiftKey)}}),list:x}}var $=`
2
2
  .graview-choose-box{width:24px;height:24px;margin:0;accent-color:var(--graview-accent);cursor:pointer;opacity:0}
3
3
  [data-graview-choose]:hover .graview-choose-box,[data-graview-choose]:focus-within .graview-choose-box,.graview-choose-box:focus-visible,.graview-choose-box:checked,[data-graview-choosing] .graview-choose-box{opacity:1}
4
4
  [data-graview-choose]{-webkit-touch-callout:none}
5
5
  [data-graview-choosing] [data-graview-choose]{-webkit-user-select:none;user-select:none}
6
- `;var D=b(C(),1),w=b(k(),1),I=K(H(()=>(__graviewPreload(import.meta.url,["./chunk.AQCU6TPV.js","./chunk.6Q6BW4QT.js","./chunk.LLOZKUCA.js","./chunk.DH7M57SE.js","./chunk.TAJ2R44N.js","./chunk.DTSTUC2W.js","./chunk.RDL6652E.js","./chunk.V3NPUAPB.js","./chunk.IT763BYH.js","./chunk.MB7LKKUD.js","./chunk.T2RME6XF.js","./chunk.SOTB6C5A.js","./chunk.TQCRFZ53.js","./chunk.6HLKAUWF.js","./chunk.FCUDBMGC.js","./chunk.KMEKMCKG.js","./chunk.XJFAUOJS.js","./chunk.DPPT6WAJ.js","./chunk.7U2JO7ET.js","./chunk.HFVMGTNL.js","./chunk.7Z4USR3Y.js","./chunk.NPAWTPLQ.js","./chunk.SDO3U72B.js","./chunk.YEJ4LNUP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.E4HSSGF7.js")))),U=I.part((t,i)=>(0,w.jsx)(t.SeveralBar,{...i}),{what:"The selection bar"});function Q(t){return t.chosen.length===0?null:(0,w.jsx)(D.Suspense,{fallback:null,children:(0,w.jsx)(U,{...t})})}var W=()=>I.prefetch();export{Y as a,$ as b,Q as c,W as d};
6
+ `;var D=b(C(),1),w=b(k(),1),I=K(H(()=>(__graviewPreload(import.meta.url,["./chunk.WNQFHMNR.js","./chunk.7SQAKSJD.js","./chunk.PZG3B7F4.js","./chunk.LRUNFSHP.js","./chunk.S5MGE2U5.js","./chunk.EB4NVTJL.js","./chunk.VG7OWV2H.js","./chunk.KXPRILAO.js","./chunk.BB33TI4S.js","./chunk.MB7LKKUD.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.3YZHZGTM.js","./chunk.EQTSV7BK.js","./chunk.27CW6SCT.js","./chunk.YD3TKV6P.js","./chunk.4KC35UNR.js","./chunk.HT2BEOEV.js","./chunk.SDO3U72B.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.JES77WXG.js")))),U=I.part((t,i)=>(0,w.jsx)(t.SeveralBar,{...i}),{what:"The selection bar"});function Q(t){return t.chosen.length===0?null:(0,w.jsx)(D.Suspense,{fallback:null,children:(0,w.jsx)(U,{...t})})}var W=()=>I.prefetch();export{Y as a,$ as b,Q as c,W as d};
@@ -1 +1 @@
1
- import{G as g,P as y,ba as m,ja as d}from"./chunk.NPAWTPLQ.js";import{b as S}from"./chunk.AJZBJBMO.js";var v=S(g(),1);function k(){let{store:w,principal:a,ai:n,aiDesk:r,seatTalk:i,views:p,app:t,brand:l,view:A,selection:s}=m(),e=y(w,a),c=d(),o=A.within?.view;return(0,v.useMemo)(()=>({store:e,principal:a,ai:n,desk:r,seatTalk:i,goTo:c,places:[...p.places()],app:t??{name:l?.name??"app",schema:e.schema,...e.policy?{policy:e.policy}:{}},...o?{place:o}:{},selection:s}),[e,a,n,r,i,c,p,t,l,o,s])}export{k as a};
1
+ import{G as g,P as y,ba as m,ja as d}from"./chunk.HT2BEOEV.js";import{b as S}from"./chunk.AJZBJBMO.js";var v=S(g(),1);function k(){let{store:w,principal:a,ai:n,aiDesk:r,seatTalk:i,views:p,app:t,brand:l,view:A,selection:s}=m(),e=y(w,a),c=d(),o=A.within?.view;return(0,v.useMemo)(()=>({store:e,principal:a,ai:n,desk:r,seatTalk:i,goTo:c,places:[...p.places()],app:t??{name:l?.name??"app",schema:e.schema,...e.policy?{policy:e.policy}:{}},...o?{place:o}:{},selection:s}),[e,a,n,r,i,c,p,t,l,o,s])}export{k as a};
@@ -1 +1 @@
1
- import{b as mt}from"./chunk.UQQAGT3R.js";import{a as pt}from"./chunk.6HLKAUWF.js";import{f as dt}from"./chunk.FCUDBMGC.js";import{a as F,f as q}from"./chunk.KMEKMCKG.js";import{F as Q,I as X,K as k,Nb as ft,Q as G,T as tt,V as nt,W as et,ba as rt,da as M,ga as _,ja as ot,kb as lt,ma as at,nb as ut,oa as st,od as ct}from"./chunk.YEJ4LNUP.js";import{e as it}from"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";function J(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let s=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!s}),n=r.as==="open"}return e}function D(t,e){return J(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function Et(t){return D(t,!1)}function Pt(t){return D(t,!0)}function yt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function z(t){let e=u=>J(u).map(({part:o,space:a})=>({...o,space:a})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,s=u=>`${D(n,u)}${r?`, when ${D(r,u)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:s(!1),said:s(!0)}}function Lt(t,e=!1){return t.line?yt(t.line,e):t.message}var gt=60,O=t=>({text:t,as:"name"}),c=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},L=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},R=(t,e)=>({text:t,as:"op",said:e}),v={text:"(",as:"open"},w={text:")",as:"close"},N={text:"\u2014",as:"value",said:"empty"},V={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},At={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},xt=t=>t.t==="binary"&&t.op in V;function I(t){return rt(t)}function bt(t){let{schema:e}=t,n=l=>l===null?void 0:e.tryDefinition(l),r=(l,m)=>{let g=n(l)?.edges;return g&&Object.hasOwn(g,m)?g[m]:void 0},s=(l,m)=>{let g=r(l,m)?.to;return Array.isArray(g)&&g.length===1?g[0]:null},u=(l,m)=>{let g=(e.edge(m)?.from??[]).filter(W=>{let K=r(W,m)?.to;return l===null||K==="*"||Array.isArray(K)&&K.includes(l)});return g.length===1?g[0]:null},o=(l,m)=>r(l,m)?M(m).toLowerCase():I(at(n(l),m)),a=l=>I(ot(e,l)),d=l=>I(dt(e).get(l)?.label??M(l)),b=l=>I(st(n(l),l)),i=(l,m)=>{let g=l===null?void 0:t.formatOf?.(l,m);if(g?.format)return g;let W=t.said?.get(m);return W?{...g,format:W}:g},p=l=>_(e.tryDefinition(l.kind),l),h=t.money?.locale,y=(l,m)=>{if(l==null)return N;if(l instanceof F){if(l.nodes.length===0)return N;let A=l.nodes.slice(0,3).map(p),Y=l.nodes.length-A.length;return L(Y>0?`${A.join(", ")} and ${Y} more`:A.length>1?`${A.slice(0,-1).join(", ")} and ${A[A.length-1]}`:A[0])}if(Array.isArray(l))return L(`{${l.map(A=>y(A,m).text).join(", ")}}`,l.map(A=>y(A,m).text).join(" or "));if(typeof l=="object")return L(p(l));if(typeof l=="boolean")return L(l?"yes":"no");let g=m?.format??(m?i(m.kind,m.key):void 0);if(typeof l=="number")return L(g&&g.format!=="date"?ft(l,{...t.money,...g}):et(l,h));if(Q.test(l)||g?.format==="date")return L(G(nt(l,t.money?.timeZone)??l.slice(0,10),h));if(X.test(l))return L(tt(l,h,t.money?.timeZone));let W=m&&m.kind!==null?n(m.kind)?.display?.format?.[m.key]:void 0;if(W)return L(W(l));let K=l.length>gt?`${l.slice(0,gt-1).trimEnd()}\u2026`:l;return L(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test(K)?K.replace(/[-_]+/g," "):K)};return{definition:n,relation:r,farOf:s,nearOf:u,fieldName:o,plural:a,noun:b,factName:d,formatOf:i,valueWords:y,locale:h}}function P(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:E(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=E(t.args[0],e,n),s=t.args[1];if(s.t==="ident")return{kind:r,key:s.name};if(s.t==="lit"&&typeof s.value=="string")return{kind:r,key:s.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return P(t.left,e,n)??P(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return P(t.args[1],e,n)??P(t.args[2],e,n)}function E(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(E(t.object,e,n),t.name);case"where":return E(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?E(t.left,e,n):null;case"call":{let r=s=>{let u=t.args[s];return u?.t==="lit"&&typeof u.value=="string"?u.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(E(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(E(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?E(t.args[0],e,n):null}default:return null}}function j(t){return t.t==="binary"?t.op==="||"?H(t)?4:1:t.op==="&&"?2:t.op in V||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var $=t=>t.t==="lit",x=(t,e)=>t.t==="call"&&t.fn===e;function C(t,e){return t.t==="binary"&&t.op===e?[...C(t.left,e),...C(t.right,e)]:[t]}function H(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...C(t,"||"));let n,r=[];for(let s of e){if(s.t!=="binary"||s.op!=="=="||!$(s.right)||typeof s.right.value!="string"||n&&JSON.stringify(ht(n))!==JSON.stringify(ht(s.left)))return;n=s.left,r.push(s.right)}return n?{subject:n,values:r}:void 0}var ht=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function f(t,e,n,r){let s=(u,o,a=e)=>j(u)<o?[v,...f(u,a,n),w]:f(u,a,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(u=>u.t==="lit"?u.value:null),r)];case"ident":return[O(n.fieldName(e,t.name))];case"member":{let u=x(t.object,"first")&&t.object.args[0]&&x(t.object.args[0],"all"),o=E(t.object,e,n);if(u&&o)return e!==null&&n.fieldName(e,t.name)===n.fieldName(o,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[O(`${n.noun(o)}'s ${n.fieldName(o,t.name)}`)]:[O(n.fieldName(o,t.name))];let a=f(t.object,e,n),d=a[a.length-1];return a.length===1&&d?.as==="name"?[O(`${d.text}'s ${n.fieldName(o,t.name)}`)]:[...a,c("'s"),O(n.fieldName(o,t.name))]}case"unary":return t.op==="-"?[R("\u2212","minus"),...s(t.operand,7)]:T(t.operand,e,n);case"where":{let u=E(t.set,e,n),o=f(t.filter,u,n),a=o.every(d=>d.as==="name"||d.as==="word"&&d.text==="not");return[...s(t.set,4),...a?[]:[c("with")],...j(t.filter)<=2?[v,...o,w]:o]}case"binary":return Rt(t,e,n);case"call":return jt(t,e,n)}}function T(t,e,n){return xt(t)?Rt({...t,op:B[t.op]},e,n):x(t,"present")||x(t,"exists")?[...f(t.args[0],e,n),R("=","is"),N]:t.t==="ident"?[c("not"),O(n.fieldName(e,t.name))]:[c("not"),v,...f(t,e,n),w]}function Rt(t,e,n){let r=(o,a)=>j(o)<a?[v,...f(o,e,n),w]:f(o,e,n);if(t.op==="&&"||t.op==="||"){let o=H(t);if(o){let d=P(o.subject,e,n);return[...f(o.subject,e,n),R("\u2208","is one of"),n.valueWords(o.values.map(b=>b.value),d)]}let a=t.op==="&&"?2:1;return[...r(t.left,a),c(t.op==="&&"?"and":"or"),...r(t.right,a+.5)]}if(t.op in V){if($(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?f(t.left,e,n):T(t.left,e,n);let[o,a]=V[t.op],d=P(t.left,e,n),b=P(t.right,e,n);return[...S(t.left,e,n,b),R(o,a),...S(t.right,e,n,d)]}if(t.op==="in")return[...r(t.left,5),R("\u2208","is one of"),...S(t.right,e,n,P(t.left,e,n))];let s=At[t.op];if(s){let o=j(t);return[...r(t.left,o),R(s[0],s[1]),...r(t.right,o+.5)]}let u={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),c(u[t.op]??t.op),...r(t.right,5)]}function S(t,e,n,r){return t.t==="lit"||t.t==="list"?f(t,e,n,r):j(t)<5?[v,...f(t,e,n),w]:f(t,e,n)}function jt(t,e,n){let r=o=>t.args[o],s=o=>{let a=t.args[o];return a?.t==="lit"&&typeof a.value=="string"?a.value:void 0},u=o=>{let a=r(o);return j(a)<9&&a.t!=="where"?[v,...f(a,e,n),w]:f(a,e,n)};switch(t.fn){case"out":{let o=s(t.args.length-1)??"",a=O(M(o).toLowerCase());return t.args.length===2?[a,c("of"),...u(0)]:[a]}case"in":{let o=s(t.args.length-1)??"",a=t.args.length===2?n.nearOf(E(r(0),e,n),o):n.nearOf(e,o),d=O(a?n.plural(a):M(o).toLowerCase());return t.args.length===2?[d,c("of"),...u(0)]:[d]}case"all":{let o=s(0),a=t.args[1]?.t==="lit"?t.args[1].value:void 0,d=a===!0?[c("archived")]:a==="all"?[c("archived or not")]:[];return a===!0?[...d,O(o?n.plural(o):"everything")]:[O(o?n.plural(o):"everything"),...d]}case"fact":{let o=s(0);return[O(o?n.factName(o):"fact")]}case"count":return[c("number of"),...u(0)];case"exists":return[...u(0),R("\u2260","is not"),N];case"present":return[...f(r(0),e,n),R("\u2260","is not"),N];case"some":case"every":{let o=E(r(0),e,n),a=r(1);return[...t.fn==="some"?[c("some")]:[],...u(0),c(t.fn==="some"?"with":"all with"),...j(a)<=2?[v,...f(a,o,n),w]:f(a,o,n)]}case"sum":case"min":case"max":{let o=E(r(0),e,n),a=r(1),d=a.t==="lit"&&typeof a.value=="string"?[O(n.fieldName(o,a.value))]:j(a)<9?[v,...f(a,o,n),w]:f(a,o,n);return[c(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...d,c("of"),...u(0)]}case"first":{let o=r(0);if(x(o,"all")){let a=o.args[0]?.value;if(typeof a=="string")return[O(`the ${n.noun(a)}`)]}return[c("first of"),...u(0)]}case"sort":return[...u(0),c("by"),...f(r(1),E(r(0),e,n),n)];case"len":return[c("length of"),...f(r(0),e,n)];case"lower":return f(r(0),e,n);case"contains":case"startsWith":return[...f(r(0),e,n),c(t.fn==="contains"?"contains":"starts with"),...S(r(1),e,n,P(r(0),e,n))];case"today":return[L("today")];case"now":return[L("now")];case"date":return $(r(0))&&typeof r(0).value=="string"?[L(G(String(r(0).value),n.locale))]:f(r(0),e,n);case"days":case"hours":{let o=t.fn,[a,d]=[r(0),r(1)];return x(d,"today")||x(d,"now")?[c(`${o} since`),...f(a,e,n)]:x(a,"today")||x(a,"now")?[c(`${o} until`),...f(d,e,n)]:[c(`${o} from`),...f(a,e,n),c("to"),...f(d,e,n)]}case"if":return[v,...f(r(1),e,n),c("if"),...f(r(0),e,n),c(","),c("else"),...f(r(2),e,n),w];case"either":return t.args.flatMap((o,a)=>a===0?f(o,e,n):[c(","),c("else"),...f(o,e,n)]);default:return[c(t.fn),v,...t.args.flatMap((o,a)=>a===0?f(o,e,n):[c(","),...f(o,e,n)]),w]}}function U(t,e){let n=bt(e),r=t.over==="graph"?null:t.over;return z({...r===null?{}:{kind:r},parts:f(t.require,r,n),...t.when?{when:f(t.when,r,n)}:{}})}function Z(t,e,n){let r=bt(e),s=t.over==="graph"?null:t.over,u=n.subject,o=i=>{try{return q(i,{...n,budget:2e3})}catch{return}},a=(i,p)=>{let h=S(i,s,r,p);if(i.t==="lit"||i.t==="list"||x(i,"today")||x(i,"now")||x(i,"date"))return h;let y=o(i);if(y===void 0)return h;let l=P(i,s,r),m=r.valueWords(y,l?{...l,format:r.formatOf(l.kind,l.key)??(p?r.formatOf(p.kind,p.key):void 0)}:p);return y instanceof F?[...h,c(":"),m]:[...h,m]},d=i=>{if(i.t==="binary"&&i.op==="&&"){let p=[];p.push(...C(i,"&&"));let h=p.filter(y=>o(y)!==!0);return(h.length>0?h:p).flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op==="||"){let p=H(i);if(p){let y=P(p.subject,s,r);return[...a(p.subject),R("\u2209","is not one of"),r.valueWords(p.values.map(l=>l.value),y)]}let h=[];return h.push(...C(i,"||")),h.flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op in V){if($(i.right)&&typeof i.right.value=="boolean"&&(i.op==="=="||i.op==="!="))return i.op==="=="===i.right.value?T(i.left,s,r):f(i.left,s,r);let p=B[i.op],[h,y]=V[p],l=P(i.left,s,r),m=P(i.right,s,r);if($(i.right)&&i.right.value===null)return[...p==="=="?S(i.left,s,r,m):a(i.left,m),R(h,y),N];let g=p==="=="&&($(i.right)||$(i.left));return[...g?S(i.left,s,r,m):a(i.left,m),R(h,y),...g?S(i.right,s,r,l):a(i.right,l)]}if(i.t==="binary"&&i.op==="in")return[...a(i.left),R("\u2209","is not one of"),...S(i.right,s,r,P(i.left,s,r))];if(i.t==="unary"&&i.op==="!"){let p=i.operand;return xt(p)?d({...p,op:B[p.op]}):x(p,"present")||x(p,"exists")?[...a(p.args[0]),R("\u2260","is not"),N]:p.t==="ident"?f(p,s,r):[c("not"),v,...T(p,s,r),w]}if(x(i,"present")||x(i,"exists"))return[...f(i.args[0],s,r),R("=","is"),N];if(x(i,"some"))return[...f(i,s,r).slice(1),R("=","is"),N];if(x(i,"every")&&i.args.length===2){let p=o(i.args[0]);if(p instanceof F){let h=p.nodes.filter(y=>{try{return q(i.args[1],{...n,subject:y,budget:2e3})!==!0}catch{return!0}});return[...f(i,s,r),c(","),c("not"),r.valueWords(new F(h))]}}return i.t==="ident"?[c("not"),O(r.fieldName(s,i.name))]:[c("not"),v,...f(i,s,r),w]},b;try{b=d(t.require)}catch{b=[c("not"),v,...f(t.require,s,r),w]}return z({...s===null?{}:{kind:s},parts:b,...u?{record:_(e.schema.tryDefinition(u.kind),u)}:{}})}function vt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function St(t){return(e,n)=>{let r=t[e]?.fields?.[n],s=r?.format??(r?.type==="date"?"date":void 0);return s||r?.unit?{...s?{format:s}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function Ot(t,e){return{schema:e,said:vt(t.says),...t.declared?{formatOf:St(t.declared)}:{},...t.money?{money:t.money}:{}}}function Qt(t,e){return t.shape?U(t.shape,Ot(t.shape,e)):void 0}var wt=new WeakMap;function Nt(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let s=$t(r),u=n.get(s.invariant)?.shape;if(!u||s.status&&s.status!=="violated")return s;let o=s.subjectId?t.graph.getNode(s.subjectId):void 0;if(u.over!=="graph"&&!o)return s;let a=u.kinds;a||(a=wt.get(t.schema),a||wt.set(t.schema,a=pt(t.schema)));try{let d=t.today?.()??u.today?.()??k(),b=Z(u,Ot(u,t.schema),{graph:t.graph,subject:o??null,kinds:a,today:d});return{...s,line:b,...u.says?{}:{message:`${s.message} \u2014 ${b.text}`}}}catch{return s}})}function Wt(){ut((t,e,n,r)=>Nt({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),mt(Kt)}function Kt(t,e,n,r){let s=e.graph,u=lt.from(t.schema,s.snapshot(),{validate:!1});for(let b of n?[...r].reverse().map(it):r)try{u.applyPrimitives([b],{restoring:!0})}catch{}let o=b=>t.violations(void 0,b),a=o(n?u:s),d=o(n?s:u);return{...ct(t.allInvariants(),a,d),violationsAfter:d}}function $t(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}Wt();export{Z as brokenLineOf,Wt as judgeWithLines,Kt as judgedForASeat,Lt as problemWords,Qt as ruleLine,U as ruleLineOf,yt as ruleLineWords,J as ruleSpacing,Pt as ruleSpoken,Et as ruleText,$t as unlined,Nt as withLines};
1
+ import{b as mt}from"./chunk.2EDC63RI.js";import{a as pt}from"./chunk.5ICIMQE6.js";import{f as dt}from"./chunk.QGV7H7RQ.js";import{a as F,f as q}from"./chunk.YIA2EDVF.js";import{F as Q,I as X,K as k,Nb as ft,Q as G,T as tt,V as nt,W as et,ba as rt,da as M,ga as _,ja as ot,kb as lt,ma as at,nb as ut,oa as st,od as ct}from"./chunk.7BBGRTXM.js";import{e as it}from"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";function J(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let s=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!s}),n=r.as==="open"}return e}function D(t,e){return J(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function Et(t){return D(t,!1)}function Pt(t){return D(t,!0)}function yt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function z(t){let e=u=>J(u).map(({part:o,space:a})=>({...o,space:a})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,s=u=>`${D(n,u)}${r?`, when ${D(r,u)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:s(!1),said:s(!0)}}function Lt(t,e=!1){return t.line?yt(t.line,e):t.message}var gt=60,O=t=>({text:t,as:"name"}),c=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},L=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},R=(t,e)=>({text:t,as:"op",said:e}),v={text:"(",as:"open"},w={text:")",as:"close"},N={text:"\u2014",as:"value",said:"empty"},V={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},At={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},xt=t=>t.t==="binary"&&t.op in V;function I(t){return rt(t)}function bt(t){let{schema:e}=t,n=l=>l===null?void 0:e.tryDefinition(l),r=(l,m)=>{let g=n(l)?.edges;return g&&Object.hasOwn(g,m)?g[m]:void 0},s=(l,m)=>{let g=r(l,m)?.to;return Array.isArray(g)&&g.length===1?g[0]:null},u=(l,m)=>{let g=(e.edge(m)?.from??[]).filter(W=>{let K=r(W,m)?.to;return l===null||K==="*"||Array.isArray(K)&&K.includes(l)});return g.length===1?g[0]:null},o=(l,m)=>r(l,m)?M(m).toLowerCase():I(at(n(l),m)),a=l=>I(ot(e,l)),d=l=>I(dt(e).get(l)?.label??M(l)),b=l=>I(st(n(l),l)),i=(l,m)=>{let g=l===null?void 0:t.formatOf?.(l,m);if(g?.format)return g;let W=t.said?.get(m);return W?{...g,format:W}:g},p=l=>_(e.tryDefinition(l.kind),l),h=t.money?.locale,y=(l,m)=>{if(l==null)return N;if(l instanceof F){if(l.nodes.length===0)return N;let A=l.nodes.slice(0,3).map(p),Y=l.nodes.length-A.length;return L(Y>0?`${A.join(", ")} and ${Y} more`:A.length>1?`${A.slice(0,-1).join(", ")} and ${A[A.length-1]}`:A[0])}if(Array.isArray(l))return L(`{${l.map(A=>y(A,m).text).join(", ")}}`,l.map(A=>y(A,m).text).join(" or "));if(typeof l=="object")return L(p(l));if(typeof l=="boolean")return L(l?"yes":"no");let g=m?.format??(m?i(m.kind,m.key):void 0);if(typeof l=="number")return L(g&&g.format!=="date"?ft(l,{...t.money,...g}):et(l,h));if(Q.test(l)||g?.format==="date")return L(G(nt(l,t.money?.timeZone)??l.slice(0,10),h));if(X.test(l))return L(tt(l,h,t.money?.timeZone));let W=m&&m.kind!==null?n(m.kind)?.display?.format?.[m.key]:void 0;if(W)return L(W(l));let K=l.length>gt?`${l.slice(0,gt-1).trimEnd()}\u2026`:l;return L(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test(K)?K.replace(/[-_]+/g," "):K)};return{definition:n,relation:r,farOf:s,nearOf:u,fieldName:o,plural:a,noun:b,factName:d,formatOf:i,valueWords:y,locale:h}}function P(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:E(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=E(t.args[0],e,n),s=t.args[1];if(s.t==="ident")return{kind:r,key:s.name};if(s.t==="lit"&&typeof s.value=="string")return{kind:r,key:s.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return P(t.left,e,n)??P(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return P(t.args[1],e,n)??P(t.args[2],e,n)}function E(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(E(t.object,e,n),t.name);case"where":return E(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?E(t.left,e,n):null;case"call":{let r=s=>{let u=t.args[s];return u?.t==="lit"&&typeof u.value=="string"?u.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(E(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(E(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?E(t.args[0],e,n):null}default:return null}}function j(t){return t.t==="binary"?t.op==="||"?H(t)?4:1:t.op==="&&"?2:t.op in V||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var $=t=>t.t==="lit",x=(t,e)=>t.t==="call"&&t.fn===e;function C(t,e){return t.t==="binary"&&t.op===e?[...C(t.left,e),...C(t.right,e)]:[t]}function H(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...C(t,"||"));let n,r=[];for(let s of e){if(s.t!=="binary"||s.op!=="=="||!$(s.right)||typeof s.right.value!="string"||n&&JSON.stringify(ht(n))!==JSON.stringify(ht(s.left)))return;n=s.left,r.push(s.right)}return n?{subject:n,values:r}:void 0}var ht=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function f(t,e,n,r){let s=(u,o,a=e)=>j(u)<o?[v,...f(u,a,n),w]:f(u,a,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(u=>u.t==="lit"?u.value:null),r)];case"ident":return[O(n.fieldName(e,t.name))];case"member":{let u=x(t.object,"first")&&t.object.args[0]&&x(t.object.args[0],"all"),o=E(t.object,e,n);if(u&&o)return e!==null&&n.fieldName(e,t.name)===n.fieldName(o,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[O(`${n.noun(o)}'s ${n.fieldName(o,t.name)}`)]:[O(n.fieldName(o,t.name))];let a=f(t.object,e,n),d=a[a.length-1];return a.length===1&&d?.as==="name"?[O(`${d.text}'s ${n.fieldName(o,t.name)}`)]:[...a,c("'s"),O(n.fieldName(o,t.name))]}case"unary":return t.op==="-"?[R("\u2212","minus"),...s(t.operand,7)]:T(t.operand,e,n);case"where":{let u=E(t.set,e,n),o=f(t.filter,u,n),a=o.every(d=>d.as==="name"||d.as==="word"&&d.text==="not");return[...s(t.set,4),...a?[]:[c("with")],...j(t.filter)<=2?[v,...o,w]:o]}case"binary":return Rt(t,e,n);case"call":return jt(t,e,n)}}function T(t,e,n){return xt(t)?Rt({...t,op:B[t.op]},e,n):x(t,"present")||x(t,"exists")?[...f(t.args[0],e,n),R("=","is"),N]:t.t==="ident"?[c("not"),O(n.fieldName(e,t.name))]:[c("not"),v,...f(t,e,n),w]}function Rt(t,e,n){let r=(o,a)=>j(o)<a?[v,...f(o,e,n),w]:f(o,e,n);if(t.op==="&&"||t.op==="||"){let o=H(t);if(o){let d=P(o.subject,e,n);return[...f(o.subject,e,n),R("\u2208","is one of"),n.valueWords(o.values.map(b=>b.value),d)]}let a=t.op==="&&"?2:1;return[...r(t.left,a),c(t.op==="&&"?"and":"or"),...r(t.right,a+.5)]}if(t.op in V){if($(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?f(t.left,e,n):T(t.left,e,n);let[o,a]=V[t.op],d=P(t.left,e,n),b=P(t.right,e,n);return[...S(t.left,e,n,b),R(o,a),...S(t.right,e,n,d)]}if(t.op==="in")return[...r(t.left,5),R("\u2208","is one of"),...S(t.right,e,n,P(t.left,e,n))];let s=At[t.op];if(s){let o=j(t);return[...r(t.left,o),R(s[0],s[1]),...r(t.right,o+.5)]}let u={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),c(u[t.op]??t.op),...r(t.right,5)]}function S(t,e,n,r){return t.t==="lit"||t.t==="list"?f(t,e,n,r):j(t)<5?[v,...f(t,e,n),w]:f(t,e,n)}function jt(t,e,n){let r=o=>t.args[o],s=o=>{let a=t.args[o];return a?.t==="lit"&&typeof a.value=="string"?a.value:void 0},u=o=>{let a=r(o);return j(a)<9&&a.t!=="where"?[v,...f(a,e,n),w]:f(a,e,n)};switch(t.fn){case"out":{let o=s(t.args.length-1)??"",a=O(M(o).toLowerCase());return t.args.length===2?[a,c("of"),...u(0)]:[a]}case"in":{let o=s(t.args.length-1)??"",a=t.args.length===2?n.nearOf(E(r(0),e,n),o):n.nearOf(e,o),d=O(a?n.plural(a):M(o).toLowerCase());return t.args.length===2?[d,c("of"),...u(0)]:[d]}case"all":{let o=s(0),a=t.args[1]?.t==="lit"?t.args[1].value:void 0,d=a===!0?[c("archived")]:a==="all"?[c("archived or not")]:[];return a===!0?[...d,O(o?n.plural(o):"everything")]:[O(o?n.plural(o):"everything"),...d]}case"fact":{let o=s(0);return[O(o?n.factName(o):"fact")]}case"count":return[c("number of"),...u(0)];case"exists":return[...u(0),R("\u2260","is not"),N];case"present":return[...f(r(0),e,n),R("\u2260","is not"),N];case"some":case"every":{let o=E(r(0),e,n),a=r(1);return[...t.fn==="some"?[c("some")]:[],...u(0),c(t.fn==="some"?"with":"all with"),...j(a)<=2?[v,...f(a,o,n),w]:f(a,o,n)]}case"sum":case"min":case"max":{let o=E(r(0),e,n),a=r(1),d=a.t==="lit"&&typeof a.value=="string"?[O(n.fieldName(o,a.value))]:j(a)<9?[v,...f(a,o,n),w]:f(a,o,n);return[c(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...d,c("of"),...u(0)]}case"first":{let o=r(0);if(x(o,"all")){let a=o.args[0]?.value;if(typeof a=="string")return[O(`the ${n.noun(a)}`)]}return[c("first of"),...u(0)]}case"sort":return[...u(0),c("by"),...f(r(1),E(r(0),e,n),n)];case"len":return[c("length of"),...f(r(0),e,n)];case"lower":return f(r(0),e,n);case"round":return[...f(r(0),e,n),c(t.args.length===2&&$(r(1))?`rounded to ${String(r(1).value)} places`:"rounded")];case"contains":case"startsWith":return[...f(r(0),e,n),c(t.fn==="contains"?"contains":"starts with"),...S(r(1),e,n,P(r(0),e,n))];case"today":return[L("today")];case"now":return[L("now")];case"date":return $(r(0))&&typeof r(0).value=="string"?[L(G(String(r(0).value),n.locale))]:f(r(0),e,n);case"days":case"hours":{let o=t.fn,[a,d]=[r(0),r(1)];return x(d,"today")||x(d,"now")?[c(`${o} since`),...f(a,e,n)]:x(a,"today")||x(a,"now")?[c(`${o} until`),...f(d,e,n)]:[c(`${o} from`),...f(a,e,n),c("to"),...f(d,e,n)]}case"if":return[v,...f(r(1),e,n),c("if"),...f(r(0),e,n),c(","),c("else"),...f(r(2),e,n),w];case"either":return t.args.flatMap((o,a)=>a===0?f(o,e,n):[c(","),c("else"),...f(o,e,n)]);default:return[c(t.fn),v,...t.args.flatMap((o,a)=>a===0?f(o,e,n):[c(","),...f(o,e,n)]),w]}}function U(t,e){let n=bt(e),r=t.over==="graph"?null:t.over;return z({...r===null?{}:{kind:r},parts:f(t.require,r,n),...t.when?{when:f(t.when,r,n)}:{}})}function Z(t,e,n){let r=bt(e),s=t.over==="graph"?null:t.over,u=n.subject,o=i=>{try{return q(i,{...n,budget:2e3})}catch{return}},a=(i,p)=>{let h=S(i,s,r,p);if(i.t==="lit"||i.t==="list"||x(i,"today")||x(i,"now")||x(i,"date"))return h;let y=o(i);if(y===void 0)return h;let l=P(i,s,r),m=r.valueWords(y,l?{...l,format:r.formatOf(l.kind,l.key)??(p?r.formatOf(p.kind,p.key):void 0)}:p);return y instanceof F?[...h,c(":"),m]:[...h,m]},d=i=>{if(i.t==="binary"&&i.op==="&&"){let p=[];p.push(...C(i,"&&"));let h=p.filter(y=>o(y)!==!0);return(h.length>0?h:p).flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op==="||"){let p=H(i);if(p){let y=P(p.subject,s,r);return[...a(p.subject),R("\u2209","is not one of"),r.valueWords(p.values.map(l=>l.value),y)]}let h=[];return h.push(...C(i,"||")),h.flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op in V){if($(i.right)&&typeof i.right.value=="boolean"&&(i.op==="=="||i.op==="!="))return i.op==="=="===i.right.value?T(i.left,s,r):f(i.left,s,r);let p=B[i.op],[h,y]=V[p],l=P(i.left,s,r),m=P(i.right,s,r);if($(i.right)&&i.right.value===null)return[...p==="=="?S(i.left,s,r,m):a(i.left,m),R(h,y),N];let g=p==="=="&&($(i.right)||$(i.left));return[...g?S(i.left,s,r,m):a(i.left,m),R(h,y),...g?S(i.right,s,r,l):a(i.right,l)]}if(i.t==="binary"&&i.op==="in")return[...a(i.left),R("\u2209","is not one of"),...S(i.right,s,r,P(i.left,s,r))];if(i.t==="unary"&&i.op==="!"){let p=i.operand;return xt(p)?d({...p,op:B[p.op]}):x(p,"present")||x(p,"exists")?[...a(p.args[0]),R("\u2260","is not"),N]:p.t==="ident"?f(p,s,r):[c("not"),v,...T(p,s,r),w]}if(x(i,"present")||x(i,"exists"))return[...f(i.args[0],s,r),R("=","is"),N];if(x(i,"some"))return[...f(i,s,r).slice(1),R("=","is"),N];if(x(i,"every")&&i.args.length===2){let p=o(i.args[0]);if(p instanceof F){let h=p.nodes.filter(y=>{try{return q(i.args[1],{...n,subject:y,budget:2e3})!==!0}catch{return!0}});return[...f(i,s,r),c(","),c("not"),r.valueWords(new F(h))]}}return i.t==="ident"?[c("not"),O(r.fieldName(s,i.name))]:[c("not"),v,...f(i,s,r),w]},b;try{b=d(t.require)}catch{b=[c("not"),v,...f(t.require,s,r),w]}return z({...s===null?{}:{kind:s},parts:b,...u?{record:_(e.schema.tryDefinition(u.kind),u)}:{}})}function vt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function St(t){return(e,n)=>{let r=t[e]?.fields?.[n],s=r?.format??(r?.type==="date"?"date":void 0);return s||r?.unit?{...s?{format:s}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function Ot(t,e){return{schema:e,said:vt(t.says),...t.declared?{formatOf:St(t.declared)}:{},...t.money?{money:t.money}:{}}}function Qt(t,e){return t.shape?U(t.shape,Ot(t.shape,e)):void 0}var wt=new WeakMap;function Nt(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let s=Kt(r),u=n.get(s.invariant)?.shape;if(!u||s.status&&s.status!=="violated")return s;let o=s.subjectId?t.graph.getNode(s.subjectId):void 0;if(u.over!=="graph"&&!o)return s;let a=u.kinds;a||(a=wt.get(t.schema),a||wt.set(t.schema,a=pt(t.schema)));try{let d=t.today?.()??u.today?.()??k(),b=Z(u,Ot(u,t.schema),{graph:t.graph,subject:o??null,kinds:a,today:d});return{...s,line:b,...u.says?{}:{message:`${s.message} \u2014 ${b.text}`}}}catch{return s}})}function Wt(){ut((t,e,n,r)=>Nt({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),mt($t)}function $t(t,e,n,r){let s=e.graph,u=lt.from(t.schema,s.snapshot(),{validate:!1});for(let b of n?[...r].reverse().map(it):r)try{u.applyPrimitives([b],{restoring:!0})}catch{}let o=b=>t.violations(void 0,b),a=o(n?u:s),d=o(n?s:u);return{...ct(t.allInvariants(),a,d),violationsAfter:d}}function Kt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}Wt();export{Z as brokenLineOf,Wt as judgeWithLines,$t as judgedForASeat,Lt as problemWords,Qt as ruleLine,U as ruleLineOf,yt as ruleLineWords,J as ruleSpacing,Pt as ruleSpoken,Et as ruleText,Kt as unlined,Nt as withLines};
@@ -1,4 +1,4 @@
1
- import{a as ke,b as Pe,c as Se,d as se,e as Y}from"./chunk.TKUNRFDE.js";import{c as B,e as ae}from"./chunk.I2C5LPB5.js";import{a as ie}from"./chunk.K5YLQAFW.js";import{G as ne,T as te,ba as re,da as oe}from"./chunk.NPAWTPLQ.js";import"./chunk.SDO3U72B.js";import{Tc as ee,W as _,ga as Z}from"./chunk.YEJ4LNUP.js";import"./chunk.FQLNBIQ5.js";import{b as A}from"./chunk.AJZBJBMO.js";var f=A(ne(),1);var P=A(ne(),1),$e=(e,n)=>`graview:last-visit:${n??"anyone"}:${e.join(",")}`;function Ee(e,n,r){let t=new Set;for(let o of e)if(!(o.author.id!==void 0&&o.author.id===r)&&Date.parse(o.at)>n)for(let i of o.writes)t.add(i);return t}function le(e,n,r){let t=$e(n,r?.id),[o]=(0,P.useState)(()=>{try{let i=globalThis.localStorage?.getItem(t);return i?Number(i):null}catch{return null}});return(0,P.useEffect)(()=>{let i=()=>{if(document.visibilityState==="hidden")try{globalThis.localStorage?.setItem(t,String(Date.now()))}catch{}};return document.addEventListener("visibilitychange",i),window.addEventListener("pagehide",i),()=>{document.removeEventListener("visibilitychange",i),window.removeEventListener("pagehide",i)}},[t]),(0,P.useMemo)(()=>o===null?new Set:Ee(e,o,r?.id),[e,o,r?.id])}function de(e,n,r){let t=new Set;if(r===void 0)return t;t.add(r);for(let o of[...e.out(r),...e.in(r)])t.add(o.id);for(let o of n)if(o.author.id===r)for(let i of o.primitives)i.op==="add-node"&&t.add(i.node.id);return t}var g=A(te(),1);function Ne(e,n,r={x:0,y:0}){let t=(o,i)=>{let c=B(o,i,n.cell,n.tilt);return{x:n.originX+r.x+c.x,y:n.originY+r.y+c.y}};return[t(e.col,e.row),t(e.col+e.side,e.row),t(e.col+e.side,e.row+e.side),t(e.col,e.row+e.side)]}var D=e=>e.map(n=>`${n.x.toFixed(1)},${n.y.toFixed(1)}`).join(" ");function Xe({frame:e,width:n,height:r,pan:t,pinned:o,close:i,today:c,swallowed:y,chosen:p=[],onFocus:w}){let{selection:u,store:d,scheme:S,principal:b}=re(),m=oe(),a=(0,f.useMemo)(()=>d.log.all(),[d,m]),h=le(a,d.schema.kinds,b),$=(0,f.useMemo)(()=>de(d.graph,a,b?.id),[d,a,b?.id]),ge=ie(),E=e.city,F=e.nodes.filter(l=>l.plot!==void 0&&Math.round(l.plane)===2),R=E?.cell??0,K=E?.tilt??.5,T=(0,f.useRef)(w);T.current=w;let ce=(0,f.useCallback)(l=>!T.current||y?.current?!1:(T.current(l),!0),[y]),G=(0,f.useRef)(new Map),j=(0,f.useRef)({nodes:void 0,names:new Map});j.current.nodes!==m&&(j.current={nodes:m,names:new Map});let V=j.current.names,O=new Map;for(let l of F){let L=l.aggregate?.memberIds??[],v=ae(d.schema,l.kind),q=s=>v?d.graph.getNode(s)?.[v.field]:void 0,C=L.filter(s=>p.includes(s)),H=`${R}|${K}|${l.plot.col},${l.plot.row},${l.plot.side}|${C.join(",")}|${L.map(s=>`${s}=${String(q(s))}`).join(",")}`,I=G.current.get(l.id);if(I&&I.key===H){O.set(l.id,I);continue}let W={cell:R,originX:0,originY:0,tilt:K},J={x:0,y:0},ve=d.schema.tryDefinition(l.kind),me=s=>{let x=V.get(s);if(x!==void 0)return x;let M=d.graph.getNode(s),U=M?Z(ve,M):s;return V.set(s,U),U},k=v?v.values.map(()=>[]):[[]],N=v?[...v.tiers]:["waiting"];for(let s of C.length>0?[...C,...L.filter(x=>!C.includes(x))]:L){let x=v?v.values.indexOf(q(s)):0;x>=0?k[x].push(s):(k.length===N.length&&(k.push([]),N.push("waiting")),k[k.length-1].push(s))}let{blocks:he,rests:xe}=Y(l.plot,k,N.map(s=>se[s])),be=Ne(l.plot,W,J),Q=v?Be(d.schema,l.kind):void 0;O.set(l.id,{key:H,tile:D(be),rests:xe.map(s=>({count:s.count,rows:s.rows,at:B(s.col,s.row,R,K)})),buildings:he.map(s=>{let M=(Q?d.graph.getNode(s.id):void 0)?.[Q];return{id:s.id,tier:N[s.lane],overdue:typeof M=="string"&&N[s.lane]!=="done"&&M.slice(0,10)<(c??new Date().toISOString().slice(0,10)),name:me(s.id),width:s.footprint*R,...De(s,W,J)}})})}if(G.current=O,!E)return null;let ue={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible"},fe=u.join(`
1
+ import{a as ke,b as Pe,c as Se,d as se,e as Y}from"./chunk.TKUNRFDE.js";import{c as B,e as ae}from"./chunk.MQ5HBUBL.js";import{a as ie}from"./chunk.YHTE34RN.js";import{G as ne,T as te,ba as re,da as oe}from"./chunk.HT2BEOEV.js";import"./chunk.SDO3U72B.js";import{Tc as ee,W as _,ga as Z}from"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import{b as A}from"./chunk.AJZBJBMO.js";var f=A(ne(),1);var P=A(ne(),1),$e=(e,n)=>`graview:last-visit:${n??"anyone"}:${e.join(",")}`;function Ee(e,n,r){let t=new Set;for(let o of e)if(!(o.author.id!==void 0&&o.author.id===r)&&Date.parse(o.at)>n)for(let i of o.writes)t.add(i);return t}function le(e,n,r){let t=$e(n,r?.id),[o]=(0,P.useState)(()=>{try{let i=globalThis.localStorage?.getItem(t);return i?Number(i):null}catch{return null}});return(0,P.useEffect)(()=>{let i=()=>{if(document.visibilityState==="hidden")try{globalThis.localStorage?.setItem(t,String(Date.now()))}catch{}};return document.addEventListener("visibilitychange",i),window.addEventListener("pagehide",i),()=>{document.removeEventListener("visibilitychange",i),window.removeEventListener("pagehide",i)}},[t]),(0,P.useMemo)(()=>o===null?new Set:Ee(e,o,r?.id),[e,o,r?.id])}function de(e,n,r){let t=new Set;if(r===void 0)return t;t.add(r);for(let o of[...e.out(r),...e.in(r)])t.add(o.id);for(let o of n)if(o.author.id===r)for(let i of o.primitives)i.op==="add-node"&&t.add(i.node.id);return t}var g=A(te(),1);function Ne(e,n,r={x:0,y:0}){let t=(o,i)=>{let c=B(o,i,n.cell,n.tilt);return{x:n.originX+r.x+c.x,y:n.originY+r.y+c.y}};return[t(e.col,e.row),t(e.col+e.side,e.row),t(e.col+e.side,e.row+e.side),t(e.col,e.row+e.side)]}var D=e=>e.map(n=>`${n.x.toFixed(1)},${n.y.toFixed(1)}`).join(" ");function Xe({frame:e,width:n,height:r,pan:t,pinned:o,close:i,today:c,swallowed:y,chosen:p=[],onFocus:w}){let{selection:u,store:d,scheme:S,principal:b}=re(),m=oe(),a=(0,f.useMemo)(()=>d.log.all(),[d,m]),h=le(a,d.schema.kinds,b),$=(0,f.useMemo)(()=>de(d.graph,a,b?.id),[d,a,b?.id]),ge=ie(),E=e.city,F=e.nodes.filter(l=>l.plot!==void 0&&Math.round(l.plane)===2),R=E?.cell??0,K=E?.tilt??.5,T=(0,f.useRef)(w);T.current=w;let ce=(0,f.useCallback)(l=>!T.current||y?.current?!1:(T.current(l),!0),[y]),G=(0,f.useRef)(new Map),j=(0,f.useRef)({nodes:void 0,names:new Map});j.current.nodes!==m&&(j.current={nodes:m,names:new Map});let V=j.current.names,O=new Map;for(let l of F){let L=l.aggregate?.memberIds??[],v=ae(d.schema,l.kind),q=s=>v?d.graph.getNode(s)?.[v.field]:void 0,C=L.filter(s=>p.includes(s)),H=`${R}|${K}|${l.plot.col},${l.plot.row},${l.plot.side}|${C.join(",")}|${L.map(s=>`${s}=${String(q(s))}`).join(",")}`,I=G.current.get(l.id);if(I&&I.key===H){O.set(l.id,I);continue}let W={cell:R,originX:0,originY:0,tilt:K},J={x:0,y:0},ve=d.schema.tryDefinition(l.kind),me=s=>{let x=V.get(s);if(x!==void 0)return x;let M=d.graph.getNode(s),U=M?Z(ve,M):s;return V.set(s,U),U},k=v?v.values.map(()=>[]):[[]],N=v?[...v.tiers]:["waiting"];for(let s of C.length>0?[...C,...L.filter(x=>!C.includes(x))]:L){let x=v?v.values.indexOf(q(s)):0;x>=0?k[x].push(s):(k.length===N.length&&(k.push([]),N.push("waiting")),k[k.length-1].push(s))}let{blocks:he,rests:xe}=Y(l.plot,k,N.map(s=>se[s])),be=Ne(l.plot,W,J),Q=v?Be(d.schema,l.kind):void 0;O.set(l.id,{key:H,tile:D(be),rests:xe.map(s=>({count:s.count,rows:s.rows,at:B(s.col,s.row,R,K)})),buildings:he.map(s=>{let M=(Q?d.graph.getNode(s.id):void 0)?.[Q];return{id:s.id,tier:N[s.lane],overdue:typeof M=="string"&&N[s.lane]!=="done"&&M.slice(0,10)<(c??new Date().toISOString().slice(0,10)),name:me(s.id),width:s.footprint*R,...De(s,W,J)}})})}if(G.current=O,!E)return null;let ue={position:"absolute",left:0,top:0,pointerEvents:"none",overflow:"visible"},fe=u.join(`
2
2
  `),we=ge.join(`
3
3
  `),ye=h?[...h].join(`
4
4
  `):"",pe=$?[...$].join(`
@@ -1,4 +1,4 @@
1
- var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as ut,b as yt,c as ht,d as wt,e as vt,f as kt,g as bt}from"./chunk.E4EN4X5F.js";import{a as be,e as lt}from"./chunk.BBLIT7S7.js";import{a as mt,b as Te,c as xt}from"./chunk.KY7QD22S.js";import{a as se,f as at,h as dt}from"./chunk.IF4FCQPG.js";import"./chunk.PXQVXBNG.js";import{h as ct}from"./chunk.F5RN6YXG.js";import{e as gt}from"./chunk.AM2YRNOQ.js";import"./chunk.B3WVCSW5.js";import{c as pt,f as ft,i as xe,j as Se}from"./chunk.AGTFYPXY.js";import{b as ie,e as ae}from"./chunk.FBR4HJ2Q.js";import{a as D}from"./chunk.SDO3U72B.js";import"./chunk.YEJ4LNUP.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var St=["good","warn","bad","neutral","accent"],Tt=["value","max","aria-label","placeholder","disabled"],Et=["click","change"],Ee=["_blank","_self"],Mt=["section","div","span","strong","p","hr","a","button","input","progress"],de={type:{oneOf:St}},Me={"gv-card":{host:"section",properties:{tone:de},events:{},children:"any"},"gv-group":{host:"div",properties:{direction:{type:{oneOf:["row","column"]}}},events:{},children:"any"},"gv-title":{host:"strong",properties:{},events:{},children:"text"},"gv-text":{host:"p",properties:{tone:de},events:{},children:"text"},"gv-badge":{host:"span",properties:{tone:de},events:{},children:"text"},"gv-field":{host:"div",properties:{label:{type:"string"}},events:{},children:"text"},"gv-progress":{host:"progress",properties:{value:{type:"number",as:"value"},max:{type:"number",as:"max"},label:{type:"string",as:"aria-label"}},events:{},children:"none"},"gv-divider":{host:"hr",properties:{},events:{},children:"none"},"gv-link":{host:"a",properties:{href:{type:"url"}},events:{},children:"text"},"gv-button":{host:"button",properties:{tone:de,disabled:{type:"boolean",as:"disabled"}},events:{press:{from:"click"}},children:"text"},"gv-input":{host:"input",properties:{label:{type:"string",as:"aria-label"},value:{type:"string",as:"value"},placeholder:{type:"string",as:"placeholder"}},events:{change:{from:"change",detail:"value"}},children:"none"}},Re=1e4;var zt=0,qt=1,Xt=2,Yt=3,Rt=1,Jt=2,Qt=3,Zt=1,er=3,tr=8,Ke="~",Ge=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),J=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function Kt(n,e){return e.type==="url"?"href":e.as??`data-gv-${n.toLowerCase()}`}var rr=2e3;function Gt(n,e){if(e==null)return{ok:!0,value:null};let u=n.type;if(u==="boolean")return typeof e=="boolean"?{ok:!0,value:e}:{ok:!1,reason:"value"};if(u==="number")return typeof e=="number"&&Number.isFinite(e)?{ok:!0,value:String(e)}:{ok:!1,reason:"value"};if(typeof e!="string"||e.length>rr)return{ok:!1,reason:u==="url"?"url":"value"};if(typeof u=="object")return u.oneOf.includes(e)?{ok:!0,value:e}:{ok:!1,reason:"value"};if(u==="url"){let p;try{p=new URL(e)}catch{return{ok:!1,reason:"url"}}return p.protocol!=="https:"||p.hostname===""||!/^https:\/\//i.test(e)?{ok:!1,reason:"url"}:{ok:!0,value:p.href}}return{ok:!0,value:e}}function nr(n){let e=n.host==="a";return Mt.includes(n.host)&&(n.target===void 0||e&&Ee.includes(n.target))&&Object.values(n.properties).every(u=>u.type!=="url"||e)&&Object.values(n.properties).every(u=>u.as===void 0||u.type!=="url"&&Tt.includes(u.as))&&Object.values(n.events).every(u=>Et.includes(u.from))}function We(n,e){let u=e.kit??Me,p=e.maxNodes??2e3,o=n.ownerDocument,f=[],v=new Map,W={dom:n,name:Ke,component:{host:"div",properties:{},events:{},children:"any"},children:[],listeners:new Map,id:Ke};v.set(Ke,W);let K=e.links?new Set(e.links.origins.flatMap(r=>{try{let c=new URL(r);return c.protocol==="https:"&&c.hostname!==""?[c.origin]:[]}catch{return[]}})):void 0,L=0,R=0,A=!1,m=r=>{f.push(r),f.length>200&&f.shift()},h=()=>({dom:o.createComment(""),children:[],refused:!0,listeners:new Map}),_=(r,c,w)=>{let i=r.component;if(!Ge(i.properties,c))return m({reason:"property",element:r.name,name:c});let a=i.properties[c],y=Gt(a,w),b=y.ok&&a.type==="url"&&K&&typeof y.value=="string"&&!K.has(new URL(y.value).origin)?{ok:!1,reason:"url"}:y,T=r.dom,x=Kt(c,a);if(!b.ok)return T.removeAttribute(x),m({reason:b.reason,element:r.name,name:c});let k=b.value;k===null||k===!1?T.removeAttribute(x):T.setAttribute(x,k===!0?"":k),x==="value"&&"value"in T&&(T.value=typeof k=="string"?k:""),x==="disabled"&&"disabled"in T&&(T.disabled=k!==null&&k!==!1)},M=(r,c,w)=>{let i=r.component;if(!Ge(i.events,c))return m({reason:"event",element:r.name,name:c});let a=r.listeners.get(c);if(a&&(a(),r.listeners.delete(c),R-=1),w==null)return;if(!J(w)||typeof w.listener!="number")return m({reason:"value",element:r.name,name:c});let y=w.listener,b=i.events[c],T=r.dom,x=()=>e.onEvent(y,b.detail==="value"?String(T.value??""):void 0);T.addEventListener(b.from,x),r.listeners.set(c,()=>T.removeEventListener(b.from,x)),R+=1},g=r=>{if(!r.refused){L-=1,r.id!==void 0&&v.delete(r.id);for(let c of r.listeners.values())c();R-=r.listeners.size,r.listeners.clear();for(let c of r.children)g(c)}},O=(r,c)=>{if(!J(r)||typeof r.id!="string"||v.has(r.id))return m({reason:"record"}),h();if(L>=p)return m({reason:"budget"}),A||(A=!0,e.onOverBudget?.()),h();let w=r.id,i=c.component.children;if(r.type===tr)return h();if(r.type===er){if(i==="none")return m({reason:"child",element:c.name}),h();let x={dom:o.createTextNode(String(r.data??"").slice(0,Re)),children:[],text:!0,listeners:new Map,id:w};return v.set(w,x),L+=1,x}if(r.type!==Zt)return m({reason:"record"}),h();let a=String(r.element);if(!Ge(u,a)||!nr(u[a]))return m({reason:"element",element:a}),h();if(i!=="any")return m({reason:"child",element:a}),h();let y=u[a],b=o.createElement(y.host);b.setAttribute("data-gv",a.replace(/^gv-/,"")),b.className=`graview-guest-${a.replace(/^gv-/,"")}`,y.host==="a"&&(b.setAttribute("rel","noopener noreferrer"),b.setAttribute("target",y.target??"_blank"),b.setAttribute("referrerpolicy","no-referrer")),y.host==="button"&&b.setAttribute("type","button");let T={dom:b,name:a,component:y,children:[],listeners:new Map,id:w};if(v.set(w,T),L+=1,J(r.properties))for(let[x,k]of Object.entries(r.properties))_(T,x,k);if(J(r.attributes))for(let x of Object.keys(r.attributes))m({reason:"attribute",element:a,name:x});if(J(r.eventListeners))for(let[x,k]of Object.entries(r.eventListeners))M(T,x,k);if(Array.isArray(r.children))for(let x of r.children){let k=O(x,T);T.children.push(k),b.appendChild(k.dom)}return T},C=r=>{if(!Array.isArray(r))return m({reason:"record"});let[c,w]=r,i=typeof w=="string"?v.get(w):void 0;if(!i)return m({reason:"record"});switch(c){case zt:{if(i.text)return m({reason:"record"});let a=Number(r[3]),y=Number.isInteger(a)&&a>=0&&a<=i.children.length?a:i.children.length,b=O(r[2],i);i.dom.insertBefore(b.dom,i.children[y]?.dom??null),i.children.splice(y,0,b);return}case qt:{let a=Number(r[2]),y=i.children[a];if(!y)return m({reason:"record"});i.children.splice(a,1),y.dom.parentNode?.removeChild(y.dom),g(y);return}case Xt:if(!i.text)return m({reason:"record"});i.dom.data=String(r[2]??"").slice(0,Re);return;case Yt:{if(i===W||i.text)return m({reason:"record"});let a=String(r[2]),y=r[4]??Rt;return y===Rt?_(i,a,r[3]):y===Qt?M(i,a,r[3]):m(y===Jt?{reason:"attribute",element:i.name,name:a}:{reason:"record"})}default:return m({reason:"record"})}};return{apply(r,c){if(!Array.isArray(r))return m({reason:"record"}),!0;for(let w=0;w<r.length;w+=1){if(c&&w%32===0&&c())return!1;C(r[w])}return!0},get refused(){return f},get size(){return L},get listening(){return R},dispose(){for(let r of W.children)g(r);W.children.length=0,n.replaceChildren()}}}var Oe=`
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as ut,b as yt,c as ht,d as wt,e as vt,f as kt,g as bt}from"./chunk.NFX24NUI.js";import{a as be,e as lt}from"./chunk.BBLIT7S7.js";import{a as mt,b as Te,c as xt}from"./chunk.5IEFTFKQ.js";import{a as se,f as at,h as dt}from"./chunk.JB7TTJXQ.js";import"./chunk.PXQVXBNG.js";import{i as ct}from"./chunk.UDCDK7XJ.js";import{e as gt}from"./chunk.3FCOFEGW.js";import"./chunk.B3WVCSW5.js";import{c as pt,f as ft,i as xe,j as Se}from"./chunk.TBW7CU4G.js";import{b as ie,e as ae}from"./chunk.SPXRLO5K.js";import{a as D}from"./chunk.SDO3U72B.js";import"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import"./chunk.AJZBJBMO.js";var St=["good","warn","bad","neutral","accent"],Tt=["value","max","aria-label","placeholder","disabled"],Et=["click","change"],Ee=["_blank","_self"],Mt=["section","div","span","strong","p","hr","a","button","input","progress"],de={type:{oneOf:St}},Me={"gv-card":{host:"section",properties:{tone:de},events:{},children:"any"},"gv-group":{host:"div",properties:{direction:{type:{oneOf:["row","column"]}}},events:{},children:"any"},"gv-title":{host:"strong",properties:{},events:{},children:"text"},"gv-text":{host:"p",properties:{tone:de},events:{},children:"text"},"gv-badge":{host:"span",properties:{tone:de},events:{},children:"text"},"gv-field":{host:"div",properties:{label:{type:"string"}},events:{},children:"text"},"gv-progress":{host:"progress",properties:{value:{type:"number",as:"value"},max:{type:"number",as:"max"},label:{type:"string",as:"aria-label"}},events:{},children:"none"},"gv-divider":{host:"hr",properties:{},events:{},children:"none"},"gv-link":{host:"a",properties:{href:{type:"url"}},events:{},children:"text"},"gv-button":{host:"button",properties:{tone:de,disabled:{type:"boolean",as:"disabled"}},events:{press:{from:"click"}},children:"text"},"gv-input":{host:"input",properties:{label:{type:"string",as:"aria-label"},value:{type:"string",as:"value"},placeholder:{type:"string",as:"placeholder"}},events:{change:{from:"change",detail:"value"}},children:"none"}},Re=1e4;var zt=0,qt=1,Xt=2,Yt=3,Rt=1,Jt=2,Qt=3,Zt=1,er=3,tr=8,Ke="~",Ge=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),J=n=>typeof n=="object"&&n!==null&&!Array.isArray(n);function Kt(n,e){return e.type==="url"?"href":e.as??`data-gv-${n.toLowerCase()}`}var rr=2e3;function Gt(n,e){if(e==null)return{ok:!0,value:null};let u=n.type;if(u==="boolean")return typeof e=="boolean"?{ok:!0,value:e}:{ok:!1,reason:"value"};if(u==="number")return typeof e=="number"&&Number.isFinite(e)?{ok:!0,value:String(e)}:{ok:!1,reason:"value"};if(typeof e!="string"||e.length>rr)return{ok:!1,reason:u==="url"?"url":"value"};if(typeof u=="object")return u.oneOf.includes(e)?{ok:!0,value:e}:{ok:!1,reason:"value"};if(u==="url"){let p;try{p=new URL(e)}catch{return{ok:!1,reason:"url"}}return p.protocol!=="https:"||p.hostname===""||!/^https:\/\//i.test(e)?{ok:!1,reason:"url"}:{ok:!0,value:p.href}}return{ok:!0,value:e}}function nr(n){let e=n.host==="a";return Mt.includes(n.host)&&(n.target===void 0||e&&Ee.includes(n.target))&&Object.values(n.properties).every(u=>u.type!=="url"||e)&&Object.values(n.properties).every(u=>u.as===void 0||u.type!=="url"&&Tt.includes(u.as))&&Object.values(n.events).every(u=>Et.includes(u.from))}function We(n,e){let u=e.kit??Me,p=e.maxNodes??2e3,o=n.ownerDocument,f=[],v=new Map,W={dom:n,name:Ke,component:{host:"div",properties:{},events:{},children:"any"},children:[],listeners:new Map,id:Ke};v.set(Ke,W);let K=e.links?new Set(e.links.origins.flatMap(r=>{try{let c=new URL(r);return c.protocol==="https:"&&c.hostname!==""?[c.origin]:[]}catch{return[]}})):void 0,L=0,R=0,A=!1,m=r=>{f.push(r),f.length>200&&f.shift()},h=()=>({dom:o.createComment(""),children:[],refused:!0,listeners:new Map}),_=(r,c,w)=>{let i=r.component;if(!Ge(i.properties,c))return m({reason:"property",element:r.name,name:c});let a=i.properties[c],y=Gt(a,w),b=y.ok&&a.type==="url"&&K&&typeof y.value=="string"&&!K.has(new URL(y.value).origin)?{ok:!1,reason:"url"}:y,T=r.dom,x=Kt(c,a);if(!b.ok)return T.removeAttribute(x),m({reason:b.reason,element:r.name,name:c});let k=b.value;k===null||k===!1?T.removeAttribute(x):T.setAttribute(x,k===!0?"":k),x==="value"&&"value"in T&&(T.value=typeof k=="string"?k:""),x==="disabled"&&"disabled"in T&&(T.disabled=k!==null&&k!==!1)},M=(r,c,w)=>{let i=r.component;if(!Ge(i.events,c))return m({reason:"event",element:r.name,name:c});let a=r.listeners.get(c);if(a&&(a(),r.listeners.delete(c),R-=1),w==null)return;if(!J(w)||typeof w.listener!="number")return m({reason:"value",element:r.name,name:c});let y=w.listener,b=i.events[c],T=r.dom,x=()=>e.onEvent(y,b.detail==="value"?String(T.value??""):void 0);T.addEventListener(b.from,x),r.listeners.set(c,()=>T.removeEventListener(b.from,x)),R+=1},g=r=>{if(!r.refused){L-=1,r.id!==void 0&&v.delete(r.id);for(let c of r.listeners.values())c();R-=r.listeners.size,r.listeners.clear();for(let c of r.children)g(c)}},O=(r,c)=>{if(!J(r)||typeof r.id!="string"||v.has(r.id))return m({reason:"record"}),h();if(L>=p)return m({reason:"budget"}),A||(A=!0,e.onOverBudget?.()),h();let w=r.id,i=c.component.children;if(r.type===tr)return h();if(r.type===er){if(i==="none")return m({reason:"child",element:c.name}),h();let x={dom:o.createTextNode(String(r.data??"").slice(0,Re)),children:[],text:!0,listeners:new Map,id:w};return v.set(w,x),L+=1,x}if(r.type!==Zt)return m({reason:"record"}),h();let a=String(r.element);if(!Ge(u,a)||!nr(u[a]))return m({reason:"element",element:a}),h();if(i!=="any")return m({reason:"child",element:a}),h();let y=u[a],b=o.createElement(y.host);b.setAttribute("data-gv",a.replace(/^gv-/,"")),b.className=`graview-guest-${a.replace(/^gv-/,"")}`,y.host==="a"&&(b.setAttribute("rel","noopener noreferrer"),b.setAttribute("target",y.target??"_blank"),b.setAttribute("referrerpolicy","no-referrer")),y.host==="button"&&b.setAttribute("type","button");let T={dom:b,name:a,component:y,children:[],listeners:new Map,id:w};if(v.set(w,T),L+=1,J(r.properties))for(let[x,k]of Object.entries(r.properties))_(T,x,k);if(J(r.attributes))for(let x of Object.keys(r.attributes))m({reason:"attribute",element:a,name:x});if(J(r.eventListeners))for(let[x,k]of Object.entries(r.eventListeners))M(T,x,k);if(Array.isArray(r.children))for(let x of r.children){let k=O(x,T);T.children.push(k),b.appendChild(k.dom)}return T},C=r=>{if(!Array.isArray(r))return m({reason:"record"});let[c,w]=r,i=typeof w=="string"?v.get(w):void 0;if(!i)return m({reason:"record"});switch(c){case zt:{if(i.text)return m({reason:"record"});let a=Number(r[3]),y=Number.isInteger(a)&&a>=0&&a<=i.children.length?a:i.children.length,b=O(r[2],i);i.dom.insertBefore(b.dom,i.children[y]?.dom??null),i.children.splice(y,0,b);return}case qt:{let a=Number(r[2]),y=i.children[a];if(!y)return m({reason:"record"});i.children.splice(a,1),y.dom.parentNode?.removeChild(y.dom),g(y);return}case Xt:if(!i.text)return m({reason:"record"});i.dom.data=String(r[2]??"").slice(0,Re);return;case Yt:{if(i===W||i.text)return m({reason:"record"});let a=String(r[2]),y=r[4]??Rt;return y===Rt?_(i,a,r[3]):y===Qt?M(i,a,r[3]):m(y===Jt?{reason:"attribute",element:i.name,name:a}:{reason:"record"})}default:return m({reason:"record"})}};return{apply(r,c){if(!Array.isArray(r))return m({reason:"record"}),!0;for(let w=0;w<r.length;w+=1){if(c&&w%32===0&&c())return!1;C(r[w])}return!0},get refused(){return f},get size(){return L},get listening(){return R},dispose(){for(let r of W.children)g(r);W.children.length=0,n.replaceChildren()}}}var Oe=`
2
2
  .graview-guest { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: var(--graview-ink, inherit); font: inherit; }
3
3
  .graview-guest-card { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid var(--graview-edge, #d0d0d0); border-radius: 10px; background: var(--graview-panel, transparent); }
4
4
  .graview-guest-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
@@ -18,4 +18,4 @@ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=gl
18
18
  .graview-guest [data-gv-tone="warn"] { color: var(--graview-warn, inherit); }
19
19
  .graview-guest [data-gv-tone="accent"] { color: var(--graview-accent, inherit); }
20
20
  .graview-guest [data-gv-tone="neutral"] { color: var(--graview-ink-muted, inherit); }
21
- `;var Wt=new WeakSet;function or(n,e){if(n.startsWith("blob:"))return"blob:";try{return new URL(n,e.location.href).origin}catch{return n}}function Ot(n,e,u){let p=or(e,n),o=`this page's Content-Security-Policy${u?` (${u})`:""} does not allow a worker from ${p}: it needs worker-src ${p}`;return Wt.has(n)||(Wt.add(n),n.console?.warn?.(`Graview: worker views cannot start on this page, because ${o}. A host that will not allow ${p} serves each view's whole script from its own origin and passes worker: { url } (the @graview/guest README, "What the host page allows").`)),o}function sr(n,e){return n===""?!0:e.startsWith("blob:")?n.startsWith("blob"):e.startsWith(n)||n.startsWith(e)}function le(n,e){let u="script"in e.source?n.URL.createObjectURL(new n.Blob([e.source.script],{type:"text/javascript"})):void 0,p="script"in e.source?u:e.source.url,o,f,v=!1,W=!1,K=0,L=0,R="",A=0,m=0,h=n.performance,_=h.now(),M,g=i=>{let a=i,y=String(a.effectiveDirective||a.violatedDirective||"").split(" ")[0];/^(worker-src|script-src|script-src-elem|child-src|default-src)$/.test(y)&&sr(String(a.blockedURI??""),p)&&(M=y)},O=n.document;O?.addEventListener("securitypolicyviolation",g);let C=()=>O?.removeEventListener("securitypolicyviolation",g),r=()=>{W||(W=!0,f?.close(),o?.terminate(),o=void 0,n.clearTimeout(K),n.clearInterval(L),C(),u&&n.URL.revokeObjectURL(u))},c=(i,a)=>{W||(r(),e.onStop(i,a))},w=()=>{n.clearTimeout(K),C(),R=ut();let i=new n.MessageChannel;f=i.port1;let a=Math.max(1,e.silentMs),y=Math.max(10,Math.min(1e3,Math.floor(a/4)));_=h.now();let b=_;L=n.setInterval(()=>{let x=h.now();if(x-b>y*2&&(_+=x-b-y),b=x,x-_>=a)return c("silent");A+=1,i.port1.postMessage({type:"heartbeat",beat:A})},y);let T={graview:"host-hello",protocol:1,nonce:R,view:e.name};o.postMessage(T,[i.port2]),e.onReady(R,i.port1)};try{o=new n.Worker(p,{name:e.name})}catch(i){o=void 0;let a=i,y=a?.name==="SecurityError"?Ot(n,p,M):`the worker could not be made: ${String(a?.message??i)}`;queueMicrotask(()=>c("start",y))}return o&&(K=n.setTimeout(()=>c("start",`it never said it was ready in ${e.readyMs.toLocaleString("en-US")} ms`),e.readyMs),o.onerror=i=>{let a=typeof i.message=="string"&&i.message!==""?i.message:void 0;if(v)return void e.onError?.(a??"an error");n.clearTimeout(K),n.setTimeout(()=>!v&&c("start",M?Ot(n,p,M):a?`it failed before it said ready: ${a}`:"it failed before it said ready, and the engine gave no reason (a page policy that refuses it, or a script that does not load)"),0)},o.onmessage=i=>{if(!e.limiter.message()||v||!lt(i.data)||i.data.protocol!==1){e.onDropped();return}v=!0,w()}),{get worker(){return o},answer(i){let a=i;return typeof a!="object"||a===null||a.type!=="heartbeat"||a.nonce!==R?!1:(typeof a.beat=="number"&&a.beat>m&&a.beat<=A&&(m=a.beat,_=h.now()),!0)},stop:r}}function ue(n,e){let u=e(),p=0;return{draw(o){let f=e();f-u>=1e3&&(u=f,p=0);let v=o(()=>p+(e()-f)>=n);return p+=e()-f,v&&p<n}}}var ir=Symbol.for("graview.view.clicked");function At(n,e){n[ir]=Object.freeze([...e])}var ar=D(()=>(__graviewPreload(import.meta.url,["./chunk.F5RN6YXG.js","./chunk.AJZBJBMO.js"]),import("./chunk.XE72DFBV.js"))),dr=D(()=>(__graviewPreload(import.meta.url,["./chunk.AM2YRNOQ.js","./chunk.B3WVCSW5.js","./chunk.AGTFYPXY.js","./chunk.FBR4HJ2Q.js","./chunk.YEJ4LNUP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.D6KF72MZ.js"))),lr=D(()=>(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.DVG47BK3.js"))),ur=D(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.T2RME6XF.js","./chunk.SOTB6C5A.js","./chunk.TQCRFZ53.js","./chunk.6HLKAUWF.js","./chunk.FCUDBMGC.js","./chunk.KMEKMCKG.js","./chunk.7U2JO7ET.js","./chunk.YEJ4LNUP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.TXWCTHMI.js"))),cr=D(()=>(__graviewPreload(import.meta.url,["./chunk.AGTFYPXY.js","./chunk.FBR4HJ2Q.js","./chunk.YEJ4LNUP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.NBLMANHT.js"))),pr=D(()=>(__graviewPreload(import.meta.url,["./chunk.BBLIT7S7.js","./chunk.AJZBJBMO.js"]),import("./chunk.RRCPEHM4.js"))),fr=D(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.T2RME6XF.js","./chunk.SOTB6C5A.js","./chunk.TQCRFZ53.js","./chunk.6HLKAUWF.js","./chunk.FCUDBMGC.js","./chunk.KMEKMCKG.js","./chunk.7U2JO7ET.js","./chunk.YEJ4LNUP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.FOQENWF5.js")));function gr(n,e,u){switch(n){case"manifest":return u??"Its manifest names something this app does not have.";case"source":return u??`Its code is longer than the ${e.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`;case"start":return`It could not start${u?`: ${u}.`:"."}`;case"error":return`It failed before it drew anything${u?`: ${u}`:"."}`;case"silent":return`It stopped answering for ${e.silentMs.toLocaleString("en-US")} ms.`;case"nodes":return`It drew more than the ${e.maxNodes.toLocaleString("en-US")} things a view may draw.`;case"flood":return`It sent more than ${e.messages} messages in ${e.messageWindowMs.toLocaleString("en-US")} ms.`;case"slow":return`It took longer than ${e.pushMs.toLocaleString("en-US")} ms to draw what it was shown.`}}function mr(n,e){let u=n.ownerDocument,p=u.defaultView,{manifest:o}=e,f=u.createElement("div");f.className="graview-worker-view",f.setAttribute("role","region"),f.setAttribute("aria-label",o.title??o.name),f.setAttribute("data-worker-view",o.name),f.style.cssText="display:block;position:relative;contain:layout paint style;isolation:isolate;overflow:clip;min-width:0",n.appendChild(f);let v=f.attachShadow({mode:"open"}),W=e.author?u.createElement("p"):void 0;W&&(W.className="graview-worker-view-author",W.setAttribute("data-worker-view-author",o.name),W.style.cssText="margin:4px 0 0;font-size:0.75rem;color:var(--graview-ink-muted, inherit)",W.textContent=e.author,n.appendChild(W));let K={applied:0,refused:0,dropped:0},L=ie(e.limits),R={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,messageWindowMs:e.limits?.messageWindowMs??1e3,pushMs:e.limits?.pushMs??1e3,silentMs:e.limits?.silentMs??5e3,drawMs:e.limits?.drawMs??100},A,m,h,_,M,g=!1,O={applied:0,refused:0,dropped:0},C=[],r=()=>{if(!h)return;let t=h.stats;K.applied+=t.applied-O.applied,K.refused+=t.refused-O.refused,K.dropped+=t.dropped-O.dropped,O={...t}},c=()=>{},w,i,a=()=>{let t=v.querySelector("[data-graview-view-root]"),d=p.ResizeObserver;i||!t||typeof d!="function"||(i=new d(S=>{let E=S[S.length-1]?.borderBoxSize?.[0],s=Math.ceil(E?E.blockSize:t.offsetHeight);s!==w&&(w=s,f.setAttribute("data-graview-content-height",String(s)),e.onContentHeight?.(s))}),i.observe(t))},y=()=>{i&&(i.disconnect(),i=void 0,w=void 0,f.removeAttribute("data-graview-content-height"),e.onContentHeight?.(void 0))},b=0,T=()=>{},x=()=>{T(),T=()=>{},r(),h?.dispose(),h=void 0,_?.stop(),c(),p.clearInterval(b)},k=(t,d)=>{if(g)return;g=!0,x(),y(),M?.dispose();let S=gr(t,R,d);f.removeAttribute("data-worker-view-drawn"),f.setAttribute("data-worker-view-failed",t),e.fallback!==!1&&(e.fallback??_t)(f,t,S),e.onFailure?.(t,S)},_t=(t,d,S)=>{let E=A??(()=>{try{return Se(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},...m?{computed:m}:{}})}catch{return}})(),s=u.createElement("div");s.setAttribute("data-graview-fallback",d),s.style.cssText="padding:12px;display:grid;gap:6px;color:var(--graview-ink, inherit);font-family:var(--graview-font-body, inherit)";let I=u.createElement("strong");I.textContent=o.title??o.name;let N=u.createElement("ul");N.style.cssText="margin:0;padding-left:1.2em";for(let re of[...E?.node?[E.node]:[],...E?.nodes??[]]){let ne=u.createElement("li");ne.textContent=re.label??re.id,N.appendChild(ne)}let U=u.createElement("p");U.style.cssText="margin:0;font-size:0.8125rem;color:var(--graview-ink-muted, inherit)",U.textContent=`This view was stopped. ${S}`,s.append(I,N,U),v.replaceChildren(s)},Ae=ft(o,e.store);if(Ae.length>0)return queueMicrotask(()=>k("manifest",Ae.join(" "))),he();let Le=t=>{if(("source"in t?new TextEncoder().encode(t.source).length:"script"in t?new TextEncoder().encode(t.script).length:0)>R.maxSourceBytes)return["source"];let S="source"in t?mt(t.source):[];return S.length>0?["source",S.join(" ")]:void 0},$=e.worker,_e=typeof $=="function"?void 0:Le($);if(_e)return queueMicrotask(()=>k(..._e)),he();let Ie=bt(p,()=>Ne(),"blob"),ce=()=>kt(()=>e.theme?.()??wt(f),e.brand,Ie),Pe="",pe=()=>{Pe=JSON.stringify(ce()),h?.push()},Ne=()=>{h&&JSON.stringify(ce())!==Pe&&pe()},It=vt(u,Ne),j,Pt=xe(e.store,o)?fr().then(({computedOn:t})=>{m=t(e.store.schema)}):Promise.resolve(),B,Nt=o.pictures?lr().then(({createGuestPictures:t})=>{g||(j=t(p,{as:"blob",view:`"${o.title??o.name}"`,pictures:o.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>h?.push(),onLeft:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)}}))}):Promise.resolve();c=()=>{It(),Ie.dispose(),j?.dispose(),X?.dispose(),B?.dispose(),te?.dispose()};let V,Q=t=>V?.postMessage(t),Ce=!1,Ve=!1,Z=()=>f.toggleAttribute("data-worker-view-drawn",!g&&Ve&&M!==void 0&&C.length===0&&z.size===0&&!j?.waiting()&&!(B?.waiting??0)),F=p.performance,z=new Map,ee=F.now(),fe=Math.max(10,Math.min(250,Math.floor(R.pushMs/4))),Ct=()=>{b||(ee=F.now(),b=p.setInterval(()=>{let t=F.now(),d=t-ee>fe*2?t-ee-fe:0;ee=t;for(let[S,E]of z){let s=E+d;if(z.set(S,s),t-s>=R.pushMs)return k("slow")}},fe))},Vt=ue(R.drawMs,()=>F.now()),De=()=>{},ge=t=>{if(g)return;if(!M)return void C.push(t);let d=M;if(!Vt.draw(E=>t[0]==="render"?d.apply(t[1],E):(d.style(t[1]),!0)))return k("slow");t[0]==="render"&&De()},He=()=>at(e.store.schema,new Set([...e.store.kindsKeptFrom(e.principal),...e.store.modules.disabledKinds])),q=dt({sees:t=>e.store.seenBy(e.principal).graph.has(t),places:()=>se(e.places?.()??[]),lists:He,schema:e.store.schema,...e.onNavigate?{onNavigate:e.onNavigate}:e.goTo?{onNavigate:t=>yt(e.goTo(),t)}:{},...e.hrefOf?{hrefOf:e.hrefOf}:!e.onNavigate&&e.goTo?{hrefOf:t=>ht(e.goTo(),t)}:{},onLost:t=>{V?.postMessage({type:"notice",text:t}),e.onProblem?.(t)}}),H=new Set,je=new Set,X,Be=!1,Ue=()=>{Be||(Be=!0,ur().then(({createGuestMedia:t})=>{g||(X=t(p,{view:`"${o.title??o.name}"`,pictures:o.pictures!==void 0,shown:()=>A,...e.file?{file:e.file}:{},onProblem:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)}}),X.refresh(v))},()=>e.onProblem?.(`The view "${o.title??o.name}" places a video or a full-screen viewer, and the host's player could not be loaded.`)))},$e=!1,Fe=!1,me=new Map,ze=()=>{$e||!o.accepts?.length||($e=!0,cr().then(({createGuestDrops:t})=>{g||(B=t(p,{shadow:v,manifest:o,store:e.store,principal:e.principal,files:()=>e.files?.(),shown:()=>H,hears:()=>Fe,idOf:d=>M?.renderer.idOf(d),send:Q,change:(d,S)=>{if(!h)return{ok:!1,reason:"refused",message:"The view has gone."};let E=h.change(d,S);return r(),E},handed:d=>me.set(d.href,d),onProblem:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)},onBusy:()=>Z()}),B.refresh())},()=>e.onProblem?.(`The view "${o.title??o.name}" takes files, and the host's drop could not be loaded.`)))},te,qe=[],Xe=!1,Dt=t=>{qe=t,te?.bind(t),!(Xe||t.length===0)&&(Xe=!0,pr().then(({createGuestGestures:d,unheardWords:S})=>{if(!g){if(o.gestures!==!0){let E=S(o.title??o.name);return V?.postMessage({type:"notice",text:E}),e.onProblem?.(E)}te=d(v,{root:()=>v.querySelector("[data-graview-view-root]")??void 0,idOf:E=>M?.renderer.idOf(E),send:Q}),te.bind(qe)}},()=>{}))},Ht=t=>{let d=e.store.seenBy(e.principal).graph;for(let S of H){let E=d.getNode(S);for(let s of Object.values(E??{}))for(let I of pt(s))if(I.href===t)return I}},Ye=t=>{if(t.localName==="graview-video")return Ue();t.hasAttribute("data-lightbox")&&(t.setAttribute("aria-haspopup","dialog"),Ue())};Promise.all([ar(),dr()]).then(([{createOpenDrawing:t,handedLinks:d,judgeLink:S,linkRefusedWords:E},{createPressReader:s,createSaver:I,fillPrefills:N,judgePress:U,markPresses:re,prefillOf:ne,quietPictures:jt}])=>{if(g)return;let Y=s(),et=(l,G)=>{let P=M?.renderer.idOf(l);P!==void 0&&Q({type:"dom-event",target:P,event:"acted",pressed:G})},we=I({reader:Y,save:(l,G)=>{if(!h)return;let P=h.pressed(U(e.store,o,H,l));r(),et(G,{as:l.as,...P})}}),tt=()=>we.flush();p.addEventListener("pagehide",tt),T=()=>{p.removeEventListener("pagehide",tt),we.flush()};let Bt=new WeakSet;De=()=>{q.refresh(v),re(v),jt(v),N(v,Y,Bt,l=>ne(e.store,e.principal,o,H,l)),X?.refresh(v),B?.refresh()};let rt,nt=new Set,Ut=()=>(rt!==A&&([rt,nt]=[A,d(A)]),nt),ot=new Set;M=t(v,{origin:e.origin??p.location.origin,link:l=>S(l,{handed:Ut(),...e.links?{origins:e.links.origins}:{}}),...e.asset?{asset:e.asset}:{},...e.images?{imageOrigins:e.images.origins}:{},...o.pictures?{picture:l=>j?.drawn(l)}:{},onRefused:l=>{if(l.reason==="url"&&l.element==="a"&&l.address!==void 0&&!ot.has(l.address)){ot.add(l.address);let P=E(l.address,e.links?.origins);return V?.postMessage({type:"notice",text:P}),e.onProblem?.(P)}if(l.reason!=="url"||l.element!=="img"||l.address===void 0||je.has(l.address))return;je.add(l.address);let G=ct(l.address,{...e.images?{origins:e.images.origins}:{},assets:e.asset!==void 0},l.length);V?.postMessage({type:"notice",text:G}),e.onProblem?.(G)},...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>k("nodes"),send:Q,onFieldSet:l=>Y.filled(l),onAttribute:(l,G)=>{(G==="data-record"||G==="data-place")&&q.link(l),G==="data-lightbox"&&Ye(l),G==="data-drop"&&ze()},decorate:l=>{(l.hasAttribute("data-record")||l.hasAttribute("data-place"))&&q.link(l),Ye(l),l.hasAttribute("data-drop")&&ze()},before:(l,G,P)=>{Y.heard(l,G),we.heard(l,G,P),q.pressed(l,G,P);let ve=G.closest("a[href]");ve&&P.contains(ve)&&!ve.hasAttribute("data-graview-link")&&l.type==="click"&&l.stopPropagation();let oe=G.closest("[data-lightbox]"),st=l.type==="keydown"?l.key:void 0;if(oe&&P.contains(oe)&&l.isTrusted&&(l.type==="click"||(st==="Enter"||st===" ")&&oe.localName!=="button")&&(l.preventDefault(),l.stopPropagation(),X?.open(oe)),B?.before(l,G,P))return!1;let ke=Y.press(l,G,P);if(!ke||!h)return;l.stopPropagation(),l.type==="keydown"&&l.preventDefault();let $t=h.pressed(U(e.store,o,H,ke));r();let it={as:ke.as,...$t},Ft=G.closest("[data-act]");return queueMicrotask(()=>et(Ft,it)),{pressed:it}}});for(let l of C.splice(0))ge(l);a(),Z()},()=>k("start","the view's drawing could not be loaded"));let ye=t=>_=le(p,{source:t,name:o.name,limiter:L,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>K.dropped+=1,onStop:(d,S)=>k(d,S),onError:d=>{Ce||k("error",d)},onReady:(d,S)=>{V=S,Ct();let E=ae({store:e.store,principal:e.principal,view:o.name,nonce:d,send:s=>{s.type==="props"&&typeof s.push=="number"&&(z.set(s.push,F.now()),Z()),S.postMessage(s)},props:()=>{let s=Se(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},theme:ce(),...e.places?{places:se(e.places())}:{},...m?{computed:m}:{}});return H=new Set([...s.node?[s.node.id]:[],...(s.nodes??[]).map(I=>I.id)]),A=s,s},...j?{hand:j.hand}:{},judgeAct:(s,I)=>gt(e.store,o,s,I,{shown:H,file:N=>me.get(N)??Ht(N),dropped:N=>me.has(N)}),onHears:s=>{s.includes("drop")&&(Fe=!0)},onGestures:Dt,onClicks:s=>At(f,s),onRender:s=>{Ce=!0,ge(["render",s])},onPushed:(s,I)=>{if(z.delete(s),I>=R.pushMs)return k("slow");Ve=!0,Z()},onFlood:()=>k("flood"),onStyle:s=>ge(["style",s]),places:()=>[...new Set([...se(e.places?.()??[]).map(s=>s.as),...He().map(s=>s.slug)])],...e.limits?{limits:e.limits}:{},limiter:L});h=E,S.onmessage=({data:s})=>{if(!_?.answer(s)&&(E.receive(s),r(),!g&&s?.nonce===d&&s.type==="navigate")){let I={...s.where!==void 0?{where:s.where}:{},...s.section!==void 0?{section:s.section}:{}},N=typeof s.place=="string"?{place:s.place,...I}:typeof s.to=="string"&&{record:s.to,...I};N&&q.go(N)}},pe()}}),Je=o.pictures!==void 0||xe(e.store,o),Qe=()=>Promise.all([Nt.catch(()=>Promise.reject(new Error("the view's pictures could not be loaded"))),Pt.catch(()=>Promise.reject(new Error("the view's computed values could not be worked out")))]),Ze=t=>{"source"in t?(Je?Promise.all([Te(t.source),Qe()]).then(([d])=>d):Te(t.source)).then(d=>{g||ye({script:d})},d=>k("start",d instanceof Error&&d.message.startsWith("the view's")?d.message:"the view's runtime could not be loaded")):Je?Qe().then(()=>{g||ye(t)},d=>k("start",d instanceof Error?d.message:"the view's pictures could not be loaded")):ye(t)};return typeof $=="function"?xt($).then(t=>{if(g)return;let d=Le(t);d?k(...d):Ze(t)},t=>k("source",`Its code did not arrive${t instanceof Error&&t.message?`: ${t.message}`:""}.`)):Ze($),he();function he(){return{element:f,shadow:v,get worker(){return _?.worker},update:()=>{h&&pe()},get stats(){return r(),K},get refused(){return M?.refused??[]},get contentHeight(){return w},dispose(){g=!0,x(),i?.disconnect(),M?.dispose(),f.remove(),W?.remove()}}}}var Lt="graview-guest-kit";function $r(n,e){let u=n.ownerDocument,p=u.defaultView;if(!u.getElementById(Lt)){let g=u.createElement("style");g.id=Lt,g.textContent=Oe,u.head.appendChild(g)}let o=u.createElement("div");o.className="graview-guest",o.setAttribute("role","group"),o.setAttribute("aria-label",e.title??e.view),o.setAttribute("data-guest-view",e.view),n.appendChild(o);let f={applied:0,refused:0,dropped:0},v=ie(e.limits),W=ue(e.limits?.drawMs??100,()=>p.performance.now()),K,L,R,A=!1,m={applied:0,refused:0,dropped:0},h=()=>{if(!K)return;let g=K.stats;f.applied+=g.applied-m.applied,f.refused+=g.refused-m.refused,f.dropped+=g.dropped-m.dropped,m={...g}},_=()=>{h(),K?.dispose(),K=void 0,R?.stop()},M=(g,O)=>{A||(A=!0,_(),L?.dispose(),e.onFailure?.(g,O))};return R=le(p,{source:e.worker,name:e.view,limiter:v,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>f.dropped+=1,onStop:(g,O)=>M(g,O),onReady:(g,O)=>{let C=We(o,{...e.kit?{kit:e.kit}:{},...e.links?{links:e.links}:{},onEvent:(c,w)=>O.postMessage({type:"event",listener:c,...w!==void 0?{detail:w}:{}}),...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>M("budget")});L=C;let r=ae({store:e.store,principal:e.principal,view:e.view,nonce:g,send:c=>O.postMessage(c),onRender:c=>{W.draw(w=>C.apply(c,w))||M("slow")},...e.input?{input:e.input}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},onSize:e.onSize??(c=>o.style.minHeight=`${c}px`),...e.limits?{limits:e.limits}:{},limiter:v});K=r,O.onmessage=c=>{R?.answer(c.data)||(r.receive(c.data),h())},r.push()}}),{element:o,get worker(){return R?.worker},update:()=>K?.push(),get stats(){return h(),f},get refused(){return L?.refused??[]},dispose(){A=!0,_(),L?.dispose(),o.remove()}}}export{Me as GUEST_KIT,Oe as GUEST_KIT_CSS,Ee as KIT_LINK_TARGETS,St as KIT_TONES,We as createKitRenderer,Kt as hostAttribute,Gt as kitValue,$r as mountGuestWorker,mr as mountWorkerView};
21
+ `;var Wt=new WeakSet;function or(n,e){if(n.startsWith("blob:"))return"blob:";try{return new URL(n,e.location.href).origin}catch{return n}}function Ot(n,e,u){let p=or(e,n),o=`this page's Content-Security-Policy${u?` (${u})`:""} does not allow a worker from ${p}: it needs worker-src ${p}`;return Wt.has(n)||(Wt.add(n),n.console?.warn?.(`Graview: worker views cannot start on this page, because ${o}. A host that will not allow ${p} serves each view's whole script from its own origin and passes worker: { url } (the @graview/guest README, "What the host page allows").`)),o}function sr(n,e){return n===""?!0:e.startsWith("blob:")?n.startsWith("blob"):e.startsWith(n)||n.startsWith(e)}function le(n,e){let u="script"in e.source?n.URL.createObjectURL(new n.Blob([e.source.script],{type:"text/javascript"})):void 0,p="script"in e.source?u:e.source.url,o,f,v=!1,W=!1,K=0,L=0,R="",A=0,m=0,h=n.performance,_=h.now(),M,g=i=>{let a=i,y=String(a.effectiveDirective||a.violatedDirective||"").split(" ")[0];/^(worker-src|script-src|script-src-elem|child-src|default-src)$/.test(y)&&sr(String(a.blockedURI??""),p)&&(M=y)},O=n.document;O?.addEventListener("securitypolicyviolation",g);let C=()=>O?.removeEventListener("securitypolicyviolation",g),r=()=>{W||(W=!0,f?.close(),o?.terminate(),o=void 0,n.clearTimeout(K),n.clearInterval(L),C(),u&&n.URL.revokeObjectURL(u))},c=(i,a)=>{W||(r(),e.onStop(i,a))},w=()=>{n.clearTimeout(K),C(),R=ut();let i=new n.MessageChannel;f=i.port1;let a=Math.max(1,e.silentMs),y=Math.max(10,Math.min(1e3,Math.floor(a/4)));_=h.now();let b=_;L=n.setInterval(()=>{let x=h.now();if(x-b>y*2&&(_+=x-b-y),b=x,x-_>=a)return c("silent");A+=1,i.port1.postMessage({type:"heartbeat",beat:A})},y);let T={graview:"host-hello",protocol:1,nonce:R,view:e.name};o.postMessage(T,[i.port2]),e.onReady(R,i.port1)};try{o=new n.Worker(p,{name:e.name})}catch(i){o=void 0;let a=i,y=a?.name==="SecurityError"?Ot(n,p,M):`the worker could not be made: ${String(a?.message??i)}`;queueMicrotask(()=>c("start",y))}return o&&(K=n.setTimeout(()=>c("start",`it never said it was ready in ${e.readyMs.toLocaleString("en-US")} ms`),e.readyMs),o.onerror=i=>{let a=typeof i.message=="string"&&i.message!==""?i.message:void 0;if(v)return void e.onError?.(a??"an error");n.clearTimeout(K),n.setTimeout(()=>!v&&c("start",M?Ot(n,p,M):a?`it failed before it said ready: ${a}`:"it failed before it said ready, and the engine gave no reason (a page policy that refuses it, or a script that does not load)"),0)},o.onmessage=i=>{if(!e.limiter.message()||v||!lt(i.data)||i.data.protocol!==1){e.onDropped();return}v=!0,w()}),{get worker(){return o},answer(i){let a=i;return typeof a!="object"||a===null||a.type!=="heartbeat"||a.nonce!==R?!1:(typeof a.beat=="number"&&a.beat>m&&a.beat<=A&&(m=a.beat,_=h.now()),!0)},stop:r}}function ue(n,e){let u=e(),p=0;return{draw(o){let f=e();f-u>=1e3&&(u=f,p=0);let v=o(()=>p+(e()-f)>=n);return p+=e()-f,v&&p<n}}}var ir=Symbol.for("graview.view.clicked");function At(n,e){n[ir]=Object.freeze([...e])}var ar=D(()=>(__graviewPreload(import.meta.url,["./chunk.UDCDK7XJ.js","./chunk.AJZBJBMO.js"]),import("./chunk.QUJS63OJ.js"))),dr=D(()=>(__graviewPreload(import.meta.url,["./chunk.3FCOFEGW.js","./chunk.B3WVCSW5.js","./chunk.TBW7CU4G.js","./chunk.SPXRLO5K.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.SDVPJYVF.js"))),lr=D(()=>(__graviewPreload(import.meta.url,["./chunk.AJZBJBMO.js"]),import("./chunk.KNYLY7MH.js"))),ur=D(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.27CW6SCT.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.KJ264E6K.js"))),cr=D(()=>(__graviewPreload(import.meta.url,["./chunk.TBW7CU4G.js","./chunk.SPXRLO5K.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.ARWBIBSI.js"))),pr=D(()=>(__graviewPreload(import.meta.url,["./chunk.BBLIT7S7.js","./chunk.AJZBJBMO.js"]),import("./chunk.RRCPEHM4.js"))),fr=D(()=>(__graviewPreload(import.meta.url,["./chunk.WVUJXDXZ.js","./chunk.LDAYDCUO.js","./chunk.KKNDX4JT.js","./chunk.GKSUTAIX.js","./chunk.5ICIMQE6.js","./chunk.QGV7H7RQ.js","./chunk.YIA2EDVF.js","./chunk.27CW6SCT.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.JOAN54PN.js")));function gr(n,e,u){switch(n){case"manifest":return u??"Its manifest names something this app does not have.";case"source":return u??`Its code is longer than the ${e.maxSourceBytes.toLocaleString("en-US")} bytes a view may be.`;case"start":return`It could not start${u?`: ${u}.`:"."}`;case"error":return`It failed before it drew anything${u?`: ${u}`:"."}`;case"silent":return`It stopped answering for ${e.silentMs.toLocaleString("en-US")} ms.`;case"nodes":return`It drew more than the ${e.maxNodes.toLocaleString("en-US")} things a view may draw.`;case"flood":return`It sent more than ${e.messages} messages in ${e.messageWindowMs.toLocaleString("en-US")} ms.`;case"slow":return`It took longer than ${e.pushMs.toLocaleString("en-US")} ms to draw what it was shown.`}}function mr(n,e){let u=n.ownerDocument,p=u.defaultView,{manifest:o}=e,f=u.createElement("div");f.className="graview-worker-view",f.setAttribute("role","region"),f.setAttribute("aria-label",o.title??o.name),f.setAttribute("data-worker-view",o.name),f.style.cssText="display:block;position:relative;contain:layout paint style;isolation:isolate;overflow:clip;min-width:0",n.appendChild(f);let v=f.attachShadow({mode:"open"}),W=e.author?u.createElement("p"):void 0;W&&(W.className="graview-worker-view-author",W.setAttribute("data-worker-view-author",o.name),W.style.cssText="margin:4px 0 0;font-size:0.75rem;color:var(--graview-ink-muted, inherit)",W.textContent=e.author,n.appendChild(W));let K={applied:0,refused:0,dropped:0},L=ie(e.limits),R={maxSourceBytes:e.limits?.maxSourceBytes??256e3,maxNodes:e.limits?.maxNodes??5e3,messages:e.limits?.messages??120,messageWindowMs:e.limits?.messageWindowMs??1e3,pushMs:e.limits?.pushMs??1e3,silentMs:e.limits?.silentMs??5e3,drawMs:e.limits?.drawMs??100},A,m,h,_,M,g=!1,O={applied:0,refused:0,dropped:0},C=[],r=()=>{if(!h)return;let t=h.stats;K.applied+=t.applied-O.applied,K.refused+=t.refused-O.refused,K.dropped+=t.dropped-O.dropped,O={...t}},c=()=>{},w,i,a=()=>{let t=v.querySelector("[data-graview-view-root]"),d=p.ResizeObserver;i||!t||typeof d!="function"||(i=new d(S=>{let E=S[S.length-1]?.borderBoxSize?.[0],s=Math.ceil(E?E.blockSize:t.offsetHeight);s!==w&&(w=s,f.setAttribute("data-graview-content-height",String(s)),e.onContentHeight?.(s))}),i.observe(t))},y=()=>{i&&(i.disconnect(),i=void 0,w=void 0,f.removeAttribute("data-graview-content-height"),e.onContentHeight?.(void 0))},b=0,T=()=>{},x=()=>{T(),T=()=>{},r(),h?.dispose(),h=void 0,_?.stop(),c(),p.clearInterval(b)},k=(t,d)=>{if(g)return;g=!0,x(),y(),M?.dispose();let S=gr(t,R,d);f.removeAttribute("data-worker-view-drawn"),f.setAttribute("data-worker-view-failed",t),e.fallback!==!1&&(e.fallback??_t)(f,t,S),e.onFailure?.(t,S)},_t=(t,d,S)=>{let E=A??(()=>{try{return Se(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},...m?{computed:m}:{}})}catch{return}})(),s=u.createElement("div");s.setAttribute("data-graview-fallback",d),s.style.cssText="padding:12px;display:grid;gap:6px;color:var(--graview-ink, inherit);font-family:var(--graview-font-body, inherit)";let I=u.createElement("strong");I.textContent=o.title??o.name;let N=u.createElement("ul");N.style.cssText="margin:0;padding-left:1.2em";for(let re of[...E?.node?[E.node]:[],...E?.nodes??[]]){let ne=u.createElement("li");ne.textContent=re.label??re.id,N.appendChild(ne)}let U=u.createElement("p");U.style.cssText="margin:0;font-size:0.8125rem;color:var(--graview-ink-muted, inherit)",U.textContent=`This view was stopped. ${S}`,s.append(I,N,U),v.replaceChildren(s)},Ae=ft(o,e.store);if(Ae.length>0)return queueMicrotask(()=>k("manifest",Ae.join(" "))),he();let Le=t=>{if(("source"in t?new TextEncoder().encode(t.source).length:"script"in t?new TextEncoder().encode(t.script).length:0)>R.maxSourceBytes)return["source"];let S="source"in t?mt(t.source):[];return S.length>0?["source",S.join(" ")]:void 0},$=e.worker,_e=typeof $=="function"?void 0:Le($);if(_e)return queueMicrotask(()=>k(..._e)),he();let Ie=bt(p,()=>Ne(),"blob"),ce=()=>kt(()=>e.theme?.()??wt(f),e.brand,Ie),Pe="",pe=()=>{Pe=JSON.stringify(ce()),h?.push()},Ne=()=>{h&&JSON.stringify(ce())!==Pe&&pe()},It=vt(u,Ne),j,Pt=xe(e.store,o)?fr().then(({computedOn:t})=>{m=t(e.store.schema)}):Promise.resolve(),B,Nt=o.pictures?lr().then(({createGuestPictures:t})=>{g||(j=t(p,{as:"blob",view:`"${o.title??o.name}"`,pictures:o.pictures,...e.limits?{limits:e.limits}:{},...e.file?{file:e.file}:{},moved:()=>h?.push(),onLeft:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)}}))}):Promise.resolve();c=()=>{It(),Ie.dispose(),j?.dispose(),X?.dispose(),B?.dispose(),te?.dispose()};let V,Q=t=>V?.postMessage(t),Ce=!1,Ve=!1,Z=()=>f.toggleAttribute("data-worker-view-drawn",!g&&Ve&&M!==void 0&&C.length===0&&z.size===0&&!j?.waiting()&&!(B?.waiting??0)),F=p.performance,z=new Map,ee=F.now(),fe=Math.max(10,Math.min(250,Math.floor(R.pushMs/4))),Ct=()=>{b||(ee=F.now(),b=p.setInterval(()=>{let t=F.now(),d=t-ee>fe*2?t-ee-fe:0;ee=t;for(let[S,E]of z){let s=E+d;if(z.set(S,s),t-s>=R.pushMs)return k("slow")}},fe))},Vt=ue(R.drawMs,()=>F.now()),De=()=>{},ge=t=>{if(g)return;if(!M)return void C.push(t);let d=M;if(!Vt.draw(E=>t[0]==="render"?d.apply(t[1],E):(d.style(t[1]),!0)))return k("slow");t[0]==="render"&&De()},He=()=>at(e.store.schema,new Set([...e.store.kindsKeptFrom(e.principal),...e.store.modules.disabledKinds])),q=dt({sees:t=>e.store.seenBy(e.principal).graph.has(t),places:()=>se(e.places?.()??[]),lists:He,schema:e.store.schema,...e.onNavigate?{onNavigate:e.onNavigate}:e.goTo?{onNavigate:t=>yt(e.goTo(),t)}:{},...e.hrefOf?{hrefOf:e.hrefOf}:!e.onNavigate&&e.goTo?{hrefOf:t=>ht(e.goTo(),t)}:{},onLost:t=>{V?.postMessage({type:"notice",text:t}),e.onProblem?.(t)}}),H=new Set,je=new Set,X,Be=!1,Ue=()=>{Be||(Be=!0,ur().then(({createGuestMedia:t})=>{g||(X=t(p,{view:`"${o.title??o.name}"`,pictures:o.pictures!==void 0,shown:()=>A,...e.file?{file:e.file}:{},onProblem:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)}}),X.refresh(v))},()=>e.onProblem?.(`The view "${o.title??o.name}" places a video or a full-screen viewer, and the host's player could not be loaded.`)))},$e=!1,Fe=!1,me=new Map,ze=()=>{$e||!o.accepts?.length||($e=!0,cr().then(({createGuestDrops:t})=>{g||(B=t(p,{shadow:v,manifest:o,store:e.store,principal:e.principal,files:()=>e.files?.(),shown:()=>H,hears:()=>Fe,idOf:d=>M?.renderer.idOf(d),send:Q,change:(d,S)=>{if(!h)return{ok:!1,reason:"refused",message:"The view has gone."};let E=h.change(d,S);return r(),E},handed:d=>me.set(d.href,d),onProblem:d=>{V?.postMessage({type:"notice",text:d}),e.onProblem?.(d)},onBusy:()=>Z()}),B.refresh())},()=>e.onProblem?.(`The view "${o.title??o.name}" takes files, and the host's drop could not be loaded.`)))},te,qe=[],Xe=!1,Dt=t=>{qe=t,te?.bind(t),!(Xe||t.length===0)&&(Xe=!0,pr().then(({createGuestGestures:d,unheardWords:S})=>{if(!g){if(o.gestures!==!0){let E=S(o.title??o.name);return V?.postMessage({type:"notice",text:E}),e.onProblem?.(E)}te=d(v,{root:()=>v.querySelector("[data-graview-view-root]")??void 0,idOf:E=>M?.renderer.idOf(E),send:Q}),te.bind(qe)}},()=>{}))},Ht=t=>{let d=e.store.seenBy(e.principal).graph;for(let S of H){let E=d.getNode(S);for(let s of Object.values(E??{}))for(let I of pt(s))if(I.href===t)return I}},Ye=t=>{if(t.localName==="graview-video")return Ue();t.hasAttribute("data-lightbox")&&(t.setAttribute("aria-haspopup","dialog"),Ue())};Promise.all([ar(),dr()]).then(([{createOpenDrawing:t,handedLinks:d,judgeLink:S,linkRefusedWords:E},{createPressReader:s,createSaver:I,fillPrefills:N,judgePress:U,markPresses:re,prefillOf:ne,quietPictures:jt}])=>{if(g)return;let Y=s(),et=(l,G)=>{let P=M?.renderer.idOf(l);P!==void 0&&Q({type:"dom-event",target:P,event:"acted",pressed:G})},we=I({reader:Y,save:(l,G)=>{if(!h)return;let P=h.pressed(U(e.store,o,H,l));r(),et(G,{as:l.as,...P})}}),tt=()=>we.flush();p.addEventListener("pagehide",tt),T=()=>{p.removeEventListener("pagehide",tt),we.flush()};let Bt=new WeakSet;De=()=>{q.refresh(v),re(v),jt(v),N(v,Y,Bt,l=>ne(e.store,e.principal,o,H,l)),X?.refresh(v),B?.refresh()};let rt,nt=new Set,Ut=()=>(rt!==A&&([rt,nt]=[A,d(A)]),nt),ot=new Set;M=t(v,{origin:e.origin??p.location.origin,link:l=>S(l,{handed:Ut(),...e.links?{origins:e.links.origins}:{}}),...e.asset?{asset:e.asset}:{},...e.images?{imageOrigins:e.images.origins}:{},...o.pictures?{picture:l=>j?.drawn(l)}:{},onRefused:l=>{if(l.reason==="url"&&l.element==="a"&&l.address!==void 0&&!ot.has(l.address)){ot.add(l.address);let P=E(l.address,e.links?.origins);return V?.postMessage({type:"notice",text:P}),e.onProblem?.(P)}if(l.reason!=="url"||l.element!=="img"||l.address===void 0||je.has(l.address))return;je.add(l.address);let G=ct(l.address,{...e.images?{origins:e.images.origins}:{},assets:e.asset!==void 0},l.length);V?.postMessage({type:"notice",text:G}),e.onProblem?.(G)},...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>k("nodes"),send:Q,onFieldSet:l=>Y.filled(l),onAttribute:(l,G)=>{(G==="data-record"||G==="data-place")&&q.link(l),G==="data-lightbox"&&Ye(l),G==="data-drop"&&ze()},decorate:l=>{(l.hasAttribute("data-record")||l.hasAttribute("data-place"))&&q.link(l),Ye(l),l.hasAttribute("data-drop")&&ze()},before:(l,G,P)=>{Y.heard(l,G),we.heard(l,G,P),q.pressed(l,G,P);let ve=G.closest("a[href]");ve&&P.contains(ve)&&!ve.hasAttribute("data-graview-link")&&l.type==="click"&&l.stopPropagation();let oe=G.closest("[data-lightbox]"),st=l.type==="keydown"?l.key:void 0;if(oe&&P.contains(oe)&&l.isTrusted&&(l.type==="click"||(st==="Enter"||st===" ")&&oe.localName!=="button")&&(l.preventDefault(),l.stopPropagation(),X?.open(oe)),B?.before(l,G,P))return!1;let ke=Y.press(l,G,P);if(!ke||!h)return;l.stopPropagation(),l.type==="keydown"&&l.preventDefault();let $t=h.pressed(U(e.store,o,H,ke));r();let it={as:ke.as,...$t},Ft=G.closest("[data-act]");return queueMicrotask(()=>et(Ft,it)),{pressed:it}}});for(let l of C.splice(0))ge(l);a(),Z()},()=>k("start","the view's drawing could not be loaded"));let ye=t=>_=le(p,{source:t,name:o.name,limiter:L,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>K.dropped+=1,onStop:(d,S)=>k(d,S),onError:d=>{Ce||k("error",d)},onReady:(d,S)=>{V=S,Ct();let E=ae({store:e.store,principal:e.principal,view:o.name,nonce:d,send:s=>{s.type==="props"&&typeof s.push=="number"&&(z.set(s.push,F.now()),Z()),S.postMessage(s)},props:()=>{let s=Se(e.store,e.principal,{manifest:o,...e.input?{input:e.input()}:{},theme:ce(),...e.places?{places:se(e.places())}:{},...m?{computed:m}:{}});return H=new Set([...s.node?[s.node.id]:[],...(s.nodes??[]).map(I=>I.id)]),A=s,s},...j?{hand:j.hand}:{},judgeAct:(s,I)=>gt(e.store,o,s,I,{shown:H,file:N=>me.get(N)??Ht(N),dropped:N=>me.has(N)}),onHears:s=>{s.includes("drop")&&(Fe=!0)},onGestures:Dt,onClicks:s=>At(f,s),onRender:s=>{Ce=!0,ge(["render",s])},onPushed:(s,I)=>{if(z.delete(s),I>=R.pushMs)return k("slow");Ve=!0,Z()},onFlood:()=>k("flood"),onStyle:s=>ge(["style",s]),places:()=>[...new Set([...se(e.places?.()??[]).map(s=>s.as),...He().map(s=>s.slug)])],...e.limits?{limits:e.limits}:{},limiter:L});h=E,S.onmessage=({data:s})=>{if(!_?.answer(s)&&(E.receive(s),r(),!g&&s?.nonce===d&&s.type==="navigate")){let I={...s.where!==void 0?{where:s.where}:{},...s.section!==void 0?{section:s.section}:{}},N=typeof s.place=="string"?{place:s.place,...I}:typeof s.to=="string"&&{record:s.to,...I};N&&q.go(N)}},pe()}}),Je=o.pictures!==void 0||xe(e.store,o),Qe=()=>Promise.all([Nt.catch(()=>Promise.reject(new Error("the view's pictures could not be loaded"))),Pt.catch(()=>Promise.reject(new Error("the view's computed values could not be worked out")))]),Ze=t=>{"source"in t?(Je?Promise.all([Te(t.source),Qe()]).then(([d])=>d):Te(t.source)).then(d=>{g||ye({script:d})},d=>k("start",d instanceof Error&&d.message.startsWith("the view's")?d.message:"the view's runtime could not be loaded")):Je?Qe().then(()=>{g||ye(t)},d=>k("start",d instanceof Error?d.message:"the view's pictures could not be loaded")):ye(t)};return typeof $=="function"?xt($).then(t=>{if(g)return;let d=Le(t);d?k(...d):Ze(t)},t=>k("source",`Its code did not arrive${t instanceof Error&&t.message?`: ${t.message}`:""}.`)):Ze($),he();function he(){return{element:f,shadow:v,get worker(){return _?.worker},update:()=>{h&&pe()},get stats(){return r(),K},get refused(){return M?.refused??[]},get contentHeight(){return w},dispose(){g=!0,x(),i?.disconnect(),M?.dispose(),f.remove(),W?.remove()}}}}var Lt="graview-guest-kit";function $r(n,e){let u=n.ownerDocument,p=u.defaultView;if(!u.getElementById(Lt)){let g=u.createElement("style");g.id=Lt,g.textContent=Oe,u.head.appendChild(g)}let o=u.createElement("div");o.className="graview-guest",o.setAttribute("role","group"),o.setAttribute("aria-label",e.title??e.view),o.setAttribute("data-guest-view",e.view),n.appendChild(o);let f={applied:0,refused:0,dropped:0},v=ie(e.limits),W=ue(e.limits?.drawMs??100,()=>p.performance.now()),K,L,R,A=!1,m={applied:0,refused:0,dropped:0},h=()=>{if(!K)return;let g=K.stats;f.applied+=g.applied-m.applied,f.refused+=g.refused-m.refused,f.dropped+=g.dropped-m.dropped,m={...g}},_=()=>{h(),K?.dispose(),K=void 0,R?.stop()},M=(g,O)=>{A||(A=!0,_(),L?.dispose(),e.onFailure?.(g,O))};return R=le(p,{source:e.worker,name:e.view,limiter:v,readyMs:e.limits?.readyMs??5e3,silentMs:e.limits?.silentMs??5e3,onDropped:()=>f.dropped+=1,onStop:(g,O)=>M(g,O),onReady:(g,O)=>{let C=We(o,{...e.kit?{kit:e.kit}:{},...e.links?{links:e.links}:{},onEvent:(c,w)=>O.postMessage({type:"event",listener:c,...w!==void 0?{detail:w}:{}}),...e.limits?.maxNodes!==void 0?{maxNodes:e.limits.maxNodes}:{},onOverBudget:()=>M("budget")});L=C;let r=ae({store:e.store,principal:e.principal,view:e.view,nonce:g,send:c=>O.postMessage(c),onRender:c=>{W.draw(w=>C.apply(c,w))||M("slow")},...e.input?{input:e.input}:{},...e.onNavigate?{onNavigate:e.onNavigate}:{},onSize:e.onSize??(c=>o.style.minHeight=`${c}px`),...e.limits?{limits:e.limits}:{},limiter:v});K=r,O.onmessage=c=>{R?.answer(c.data)||(r.receive(c.data),h())},r.push()}}),{element:o,get worker(){return R?.worker},update:()=>K?.push(),get stats(){return h(),f},get refused(){return L?.refused??[]},dispose(){A=!0,_(),L?.dispose(),o.remove()}}}export{Me as GUEST_KIT,Oe as GUEST_KIT_CSS,Ee as KIT_LINK_TARGETS,St as KIT_TONES,We as createKitRenderer,Kt as hostAttribute,Gt as kitValue,$r as mountGuestWorker,mr as mountWorkerView};
@@ -1 +1 @@
1
- var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as y}from"./chunk.JZDKHWRL.js";import{D as v,G as I,T as h,ba as w}from"./chunk.NPAWTPLQ.js";import{_a as g}from"./chunk.YEJ4LNUP.js";import{b as d}from"./chunk.AJZBJBMO.js";var k=d(I(),1);var t=d(h(),1),r={display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem"};function D({shows:e,onShows:i,mine:a,onMine:l}){let o={all:"All",changes:"Changes",ai:"AI"};return(0,t.jsxs)("div",{"data-testid":"activity-filter",role:"group","aria-label":"Show",style:{display:"flex",flexWrap:"wrap",gap:4,alignItems:"center"},children:[["all","changes","ai"].map(s=>(0,t.jsx)("button",{type:"button","data-shows":s,"aria-pressed":e===s,onClick:()=>i(s),style:{...r,...e===s?{borderColor:"var(--graview-accent)",color:"var(--graview-ink)"}:{}},children:o[s]},s)),(0,t.jsx)("button",{type:"button","data-testid":"activity-mine","aria-pressed":a,onClick:()=>l(!a),style:{...r,marginLeft:"auto",...a?{borderColor:"var(--graview-accent)",color:"var(--graview-ink)"}:{}},children:"Just mine"})]})}var x=e=>e.ask.kind==="suggest"?"suggest":e.ask.kind==="fill"?"fill in":e.ask.kind==="record"?"add one":e.ask.kind==="panel"?"draw a panel":`answer \u201C${e.ask.said}\u201D`;function $(e){let i=e.offered.filter(a=>e.accepted?.includes(a.id)).map(a=>a.label);switch(e.outcome){case"accepted":return i.length>0?`Took ${i.join(", ")}`:"Taken";case"partly":return`Took ${i.length} of ${e.offered.length}: ${i.join(", ")}`;case"dismissed":return"Dismissed";case"drawn":return e.panel?`Drew \u201C${e.panel.title}\u201D`:"Drew a panel";case"failed":return e.failed??"Failed";default:return"Offered, not yet taken"}}function C(e){let i=[...new Set((e.usage??[]).map(o=>o.model))];if(i.length===0)return null;let a=(e.usage??[]).flatMap(o=>o.costUsd===void 0?[]:[o.costUsd]),l=a.length>0?a.reduce((o,s)=>o+s,0):void 0;return`${i.join(", ")}${l!==void 0?` \xB7 $${l<.01?l.toPrecision(2):l.toFixed(2)}`:""}`}function E({entry:e,undo:i}){let{store:a,principal:l,seats:o,people:s,ai:b}=w(),c=y(),[p,u]=(0,k.useState)(!1),A=e.by.kind==="human"&&e.by.onBehalfOf===void 0&&(e.by.id===void 0||l.id===void 0||e.by.id===l.id)?"you":g(e.by,{graph:a.graph,schema:a.schema,seats:o,people:s}),f=C(e),S=v(b),m=n=>{u(!0),(__graviewPreload(import.meta.url,["./chunk.4EY6WPSM.js","./chunk.BJUUSIQY.js","./chunk.RDL6652E.js","./chunk.V3NPUAPB.js","./chunk.USQNSNIA.js","./chunk.XOZU4OFA.js","./chunk.IT763BYH.js","./chunk.JZDKHWRL.js","./chunk.SOTB6C5A.js","./chunk.XJFAUOJS.js","./chunk.DPPT6WAJ.js","./chunk.7U2JO7ET.js","./chunk.HFVMGTNL.js","./chunk.7Z4USR3Y.js","./chunk.NPAWTPLQ.js","./chunk.SDO3U72B.js","./chunk.YEJ4LNUP.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.VIQ6EF2O.js")).then(n).finally(()=>u(!1))};return(0,t.jsxs)("li",{"data-testid":"activity-interaction","data-interaction":e.id,"data-outcome":e.outcome,style:{display:"grid",gap:3,lineHeight:1.45},children:[(0,t.jsx)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:(0,t.jsxs)("span",{style:{minWidth:0},children:[(0,t.jsx)("strong",{style:{fontWeight:600},children:A})," ",(0,t.jsxs)("span",{style:{color:"var(--graview-ink-muted)"},children:["asked AI to ",x(e)]}),(0,t.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.targetLabel]})]})}),e.offered.length>0&&e.outcome!=="accepted"&&e.outcome!=="partly"?(0,t.jsxs)("div",{"data-testid":"interaction-offered",style:{color:"var(--graview-ink-muted)"},children:["Offered ",e.offered.map(n=>n.label).join(", ")]}):null,(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6,flexWrap:"wrap"},children:[(0,t.jsx)("span",{"data-testid":"interaction-outcome",style:{color:e.outcome==="failed"?"var(--graview-warn)":"var(--graview-ink)"},children:$(e)}),(e.batches??[]).map(n=>(0,t.jsx)("span",{"data-interaction-batch":n,style:{marginLeft:"auto"},children:i(n)},n))]}),f?(0,t.jsx)("div",{"data-testid":"interaction-model",style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:f}):null,S?(0,t.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[e.panel?(0,t.jsx)("button",{type:"button","data-testid":"interaction-reopen",disabled:p,onClick:()=>m(n=>n.drawPanel(c,e.panel)),style:r,children:"Show the panel"}):null,(0,t.jsx)("button",{type:"button","data-testid":"interaction-again",disabled:p,onClick:()=>m(n=>n.askAgain(c,e)),style:r,children:"Ask again"})]}):null]})}export{D as a,E as b};
1
+ var __graviewPreload=(base,files)=>{if(typeof document>"u")return;const asked=globalThis.__graviewPreloaded??=new Set;for(const file of files){const href=new URL(file,base).href;if(asked.has(href))continue;asked.add(href);const link=document.createElement("link");link.rel="modulepreload";link.href=href;document.head.append(link)}};import{a as y}from"./chunk.CCWPF5PK.js";import{D as v,G as I,T as h,ba as w}from"./chunk.HT2BEOEV.js";import{_a as g}from"./chunk.7BBGRTXM.js";import{b as d}from"./chunk.AJZBJBMO.js";var k=d(I(),1);var t=d(h(),1),r={display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,padding:"1px 8px",fontSize:"0.75rem"};function D({shows:e,onShows:i,mine:a,onMine:l}){let o={all:"All",changes:"Changes",ai:"AI"};return(0,t.jsxs)("div",{"data-testid":"activity-filter",role:"group","aria-label":"Show",style:{display:"flex",flexWrap:"wrap",gap:4,alignItems:"center"},children:[["all","changes","ai"].map(s=>(0,t.jsx)("button",{type:"button","data-shows":s,"aria-pressed":e===s,onClick:()=>i(s),style:{...r,...e===s?{borderColor:"var(--graview-accent)",color:"var(--graview-ink)"}:{}},children:o[s]},s)),(0,t.jsx)("button",{type:"button","data-testid":"activity-mine","aria-pressed":a,onClick:()=>l(!a),style:{...r,marginLeft:"auto",...a?{borderColor:"var(--graview-accent)",color:"var(--graview-ink)"}:{}},children:"Just mine"})]})}var x=e=>e.ask.kind==="suggest"?"suggest":e.ask.kind==="fill"?"fill in":e.ask.kind==="record"?"add one":e.ask.kind==="panel"?"draw a panel":`answer \u201C${e.ask.said}\u201D`;function $(e){let i=e.offered.filter(a=>e.accepted?.includes(a.id)).map(a=>a.label);switch(e.outcome){case"accepted":return i.length>0?`Took ${i.join(", ")}`:"Taken";case"partly":return`Took ${i.length} of ${e.offered.length}: ${i.join(", ")}`;case"dismissed":return"Dismissed";case"drawn":return e.panel?`Drew \u201C${e.panel.title}\u201D`:"Drew a panel";case"failed":return e.failed??"Failed";default:return"Offered, not yet taken"}}function C(e){let i=[...new Set((e.usage??[]).map(o=>o.model))];if(i.length===0)return null;let a=(e.usage??[]).flatMap(o=>o.costUsd===void 0?[]:[o.costUsd]),l=a.length>0?a.reduce((o,s)=>o+s,0):void 0;return`${i.join(", ")}${l!==void 0?` \xB7 $${l<.01?l.toPrecision(2):l.toFixed(2)}`:""}`}function E({entry:e,undo:i}){let{store:a,principal:l,seats:o,people:s,ai:b}=w(),c=y(),[p,u]=(0,k.useState)(!1),A=e.by.kind==="human"&&e.by.onBehalfOf===void 0&&(e.by.id===void 0||l.id===void 0||e.by.id===l.id)?"you":g(e.by,{graph:a.graph,schema:a.schema,seats:o,people:s}),f=C(e),S=v(b),m=n=>{u(!0),(__graviewPreload(import.meta.url,["./chunk.47JQPYXL.js","./chunk.BJUUSIQY.js","./chunk.VG7OWV2H.js","./chunk.KXPRILAO.js","./chunk.XU34T2H4.js","./chunk.XOZU4OFA.js","./chunk.BB33TI4S.js","./chunk.CCWPF5PK.js","./chunk.KKNDX4JT.js","./chunk.3YZHZGTM.js","./chunk.EQTSV7BK.js","./chunk.27CW6SCT.js","./chunk.YD3TKV6P.js","./chunk.4KC35UNR.js","./chunk.HT2BEOEV.js","./chunk.SDO3U72B.js","./chunk.7BBGRTXM.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.PM3SYXKB.js")).then(n).finally(()=>u(!1))};return(0,t.jsxs)("li",{"data-testid":"activity-interaction","data-interaction":e.id,"data-outcome":e.outcome,style:{display:"grid",gap:3,lineHeight:1.45},children:[(0,t.jsx)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:(0,t.jsxs)("span",{style:{minWidth:0},children:[(0,t.jsx)("strong",{style:{fontWeight:600},children:A})," ",(0,t.jsxs)("span",{style:{color:"var(--graview-ink-muted)"},children:["asked AI to ",x(e)]}),(0,t.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.targetLabel]})]})}),e.offered.length>0&&e.outcome!=="accepted"&&e.outcome!=="partly"?(0,t.jsxs)("div",{"data-testid":"interaction-offered",style:{color:"var(--graview-ink-muted)"},children:["Offered ",e.offered.map(n=>n.label).join(", ")]}):null,(0,t.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6,flexWrap:"wrap"},children:[(0,t.jsx)("span",{"data-testid":"interaction-outcome",style:{color:e.outcome==="failed"?"var(--graview-warn)":"var(--graview-ink)"},children:$(e)}),(e.batches??[]).map(n=>(0,t.jsx)("span",{"data-interaction-batch":n,style:{marginLeft:"auto"},children:i(n)},n))]}),f?(0,t.jsx)("div",{"data-testid":"interaction-model",style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:f}):null,S?(0,t.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[e.panel?(0,t.jsx)("button",{type:"button","data-testid":"interaction-reopen",disabled:p,onClick:()=>m(n=>n.drawPanel(c,e.panel)),style:r,children:"Show the panel"}):null,(0,t.jsx)("button",{type:"button","data-testid":"interaction-again",disabled:p,onClick:()=>m(n=>n.askAgain(c,e)),style:r,children:"Ask again"})]}):null]})}export{D as a,E as b};
@@ -1 +1 @@
1
- import{a as U,b as Y,c as G,d as D}from"./chunk.MJMVGW6Z.js";import"./chunk.HFVMGTNL.js";import"./chunk.7Z4USR3Y.js";import{G as ae,O as L,P as F,T as V,ca as _}from"./chunk.NPAWTPLQ.js";import"./chunk.SDO3U72B.js";import{T as H,Vc as M,Za as K,_a as B}from"./chunk.YEJ4LNUP.js";import"./chunk.FQLNBIQ5.js";import{b as R}from"./chunk.AJZBJBMO.js";function O(n,t){let r=K(n);return r==="agent"?"agent":r!=="human"&&r!=="visitor"?"app":n.onBehalfOf!==void 0?"person":n.id===void 0||t?.id===void 0||n.id===t.id?"you":"person"}var re=n=>n.ops.filter(t=>t.withheld!==!0);function X(n,t={}){let r=[];for(let e of n.batches()){let s=e.ops[0],d=e.ops.at(-1),l=re(e).length===0,h=l?void 0:Y(e.ops),c=r.at(-1);if(h&&c?.typed&&c.author&&U(c.author,e.author)&&c.typed.node===h.node&&c.typed.field===h.field){let S=G(c.typed,h);r[r.length-1]={...c,seq:d.seq+1,at:d.at,batch:e.id,batches:[...c.batches??[],e.id],typed:S,said:D(S,n.schema,n.graph,!1)};continue}r.push({seq:d.seq+1,from:s.seq,at:d.at,batch:e.id,maker:l?"person":O(e.author,t.me),author:l?void 0:e.author,said:h?D(h,n.schema,n.graph,!1):e.intent,declaration:!1,withheld:l,...h?{batches:[e.id],typed:h}:{}})}let i=[...n.log.epochs().filter(e=>e.change!==void 0).map(e=>({seq:e.seq,sentence:e.change,...e.at?{at:e.at}:{}})),...t.declarations??[]];for(let e of i){if(e.seq<n.log.horizon||e.seq>n.log.length)continue;let s=r.findIndex(d=>d.seq===e.seq);if(s>=0&&!r[s].withheld){r[s]={...r[s],declaration:!0,said:e.sentence};continue}r.push({seq:e.seq,from:e.seq,at:e.at,batch:void 0,maker:e.author?O(e.author,t.me):"app",author:e.author,said:e.sentence,declaration:!0,withheld:!1})}return r.sort((e,s)=>e.seq-s.seq||+(e.batch!==void 0)-+(s.batch!==void 0))}function J(n,t){let r=n.log.all(),i=new Map(r.map(e=>[e.id,e.seq]));return n.batches().filter(e=>!e.undone&&e.ops[0].seq>=t).filter(e=>!e.ops.every(s=>s.undoes!==void 0&&(i.get(s.undoes)??-1)>=t)).map(e=>e.id)}function Q(n,t){return n.withheld?"Someone":n.maker==="you"?"you":n.author?B(n.author,t):"the app"}var p=R(ae(),1);var o=R(V(),1),oe={kind:"human"},ie=[1,2,4,8],se=900,E={you:"You",person:"A person",agent:"An agent",app:"The app"},Z={you:"var(--graview-accent)",person:"var(--graview-ink-muted)",agent:"var(--graview-activity, var(--graview-good))",app:"var(--graview-edge-bright)"};function de(n,t,r){return[...new Set([...r,t,...n.map(i=>i.seq)])].sort((i,e)=>i-e)}function le(n,t){let r=n.withheld===!0;return{seq:n.seq+1,from:n.seq,at:n.at,batch:n.batch,maker:r?"person":O(n.author,t),author:r?void 0:n.author,said:n.batchIntent??n.intent,declaration:!1,withheld:r}}function ce(n,t){let r=0;for(let i=0;i<n.length;i++)n[i]<=t&&(r=i);return r}function pe(n,t,r){let i=J(n,t);if(i.length===0)return null;let e=n.canUndo(i);if(!e.ok)return null;let s=new Set(n.permittedMutations(r).map(d=>d.name));return e.ops.every(d=>d.mutation!==null&&s.has(d.mutation.name))?i:null}function we({face:n}){let t=L(),r=_(),i=r?.principal??oe,e=F(t.live,i),s=e.log.length,d=(0,p.useMemo)(()=>X(e,{me:i,...t.host?.declarations?{declarations:t.host.declarations}:{}}),[e,i,t.host,s]),l=e.log.horizon,h=l>0&&t.host?.archived!==void 0,c=t.kept,S=(0,p.useMemo)(()=>h?c?.stops??Array.from({length:l},(a,g)=>g):[],[h,c,l]),m=(0,p.useMemo)(()=>de(d,l,S),[d,l,S]),f=t.archive,y=f?.seq??t.past?.seq??s,x=t.host?.kept&&(f?.behindKept||c!==void 0&&(y<=c.through||c.from>0&&y<=c.from))?t.host.kept:void 0,w=ce(m,y),b=m.length-1,j=y<l&&t.past?.seq===y?t.past.store.log.all().at(-1):void 0,q=j?le(j,i):y<l?void 0:[...d].reverse().find(a=>a.seq<=y&&a.seq>(m[w-1]??-1))??[...d].reverse().find(a=>a.seq<=y),[k,A]=(0,p.useState)(!1),[T,ee]=(0,p.useState)(1),[C,W]=(0,p.useState)(null);(0,p.useEffect)(()=>{if(!k)return;if(w>=b){A(!1);return}let a=setTimeout(()=>t.show(m[w+1]),se/T);return()=>clearTimeout(a)},[k,w,b,T,m,t]);let z=(0,p.useMemo)(()=>t.past&&!f&&y>=l?pe(e,y,i):null,[t.past,f,e,y,l,i,s]),N=a=>Q(a,{graph:e.graph,schema:e.schema,...r?.seats?{seats:r.seats}:{},...r?.people?{people:r.people}:{}}),v=t.past?t.past.at?H(t.past.at,r?.locale):"the start":null,$=f?f.refused?"The archive could not be read":f.behindKept?"Nothing this far back is kept":"Reading the older changes from the archive\u2026":q?`${N(q)==="you"?"You":N(q)}: ${q.said}`:"Nothing had happened yet",I=(0,p.useRef)(null);(0,p.useLayoutEffect)(()=>{let a=I.current,g=a?.parentElement;if(n!=="scene"||!a||!g)return;let u=()=>g.style.setProperty("--graview-sheet",`${Math.ceil(a.getBoundingClientRect().height)+24}px`);u();let P=typeof ResizeObserver>"u"?null:new ResizeObserver(u);return P?.observe(a),()=>{P?.disconnect(),g.style.removeProperty("--graview-sheet")}},[n]);let te=n==="scene"?{position:"absolute",left:"50%",bottom:12,transform:"translateX(-50%)",width:"min(720px, calc(100% - 32px))",zIndex:M("rail")}:{position:"sticky",top:0,zIndex:M("rail"),margin:"0 auto 12px",maxWidth:960,width:"100%"};return(0,o.jsxs)("section",{ref:I,"aria-label":"Timeline","data-testid":"timeline","data-graview-past":t.past?String(t.past.seq):"now","data-graview-offstage":"",style:{...te,boxSizing:"border-box",display:"grid",gap:8,padding:"10px 12px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",color:"var(--graview-ink)",fontSize:"0.8125rem"},children:[(0,o.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 12px"},children:[(0,o.jsx)("strong",{"data-testid":"as-of",role:"status",style:{fontWeight:600},children:f?"Archived changes":v?`As of ${v}`:"Now"}),(0,o.jsx)("span",{"data-testid":"timeline-caption",style:{color:"var(--graview-ink-muted)",minWidth:0,overflowWrap:"anywhere"},children:$}),v?(0,o.jsx)("span",{style:{color:"var(--graview-ink-faint)"},"data-testid":"past-read-only",children:"Nothing changes while you look back."}):null]}),(0,o.jsxs)("div",{style:{position:"relative",height:22},"aria-hidden":"true",children:[h?(0,o.jsx)("span",{"data-testid":"timeline-archived",title:"Changes read from the archive as you scrub back",style:{position:"absolute",left:0,bottom:0,height:6,width:`${b===0?0:m.indexOf(l)/b*100}%`,borderRadius:2,background:"var(--graview-edge)"}}):null,m.slice(1).map((a,g)=>{let u=[...d].reverse().find(ne=>ne.seq===a);if(!u)return null;let P=b===0?0:(g+1)/b*100;return(0,o.jsx)("span",{"data-graview-tick":a,"data-maker":u.maker,...u.declaration?{"data-declaration":""}:{},title:`${E[u.maker]}: ${u.said}`,style:{position:"absolute",left:`calc(${P}% - 1px)`,bottom:0,width:u.declaration?4:2,height:u.declaration?22:12,borderRadius:2,background:u.declaration?"var(--graview-ink)":Z[u.maker],opacity:a<=y?1:.45}},`${a}:${u.batch??"declaration"}`)})]}),(0,o.jsx)("input",{type:"range","data-testid":"scrubber","aria-label":"Moment",min:0,max:b,step:1,value:w,"aria-valuetext":v?`As of ${v}. ${$}`:`Now. ${$}`,onChange:a=>{A(!1),t.show(m[Number(a.currentTarget.value)]??s)},style:{width:"100%",margin:0,accentColor:"var(--graview-accent)"}}),(0,o.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8},children:[(0,o.jsx)("button",{type:"button","data-testid":"play","aria-pressed":k,onClick:()=>{!k&&w>=b&&t.show(m[0]),A(!k)},style:{minHeight:28,minWidth:64},children:k?"Pause":"Play"}),(0,o.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:6,color:"var(--graview-ink-muted)"},children:["Speed",(0,o.jsx)("select",{"data-testid":"speed",value:T,onChange:a=>ee(Number(a.currentTarget.value)),style:{minHeight:28},children:ie.map(a=>(0,o.jsxs)("option",{value:a,children:[a,"\xD7"]},a))})]}),(0,o.jsx)("span",{"aria-hidden":"true",style:{display:"inline-flex",gap:10,color:"var(--graview-ink-faint)",flexWrap:"wrap"},children:Object.keys(E).filter(a=>d.some(g=>g.maker===a)).map(a=>(0,o.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[(0,o.jsx)("span",{style:{width:8,height:8,borderRadius:2,background:Z[a]}}),E[a]]},a))}),(0,o.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",gap:8},children:[z?(0,o.jsx)("button",{type:"button","data-testid":"restore-here",title:"Take back every change since, as one change you can undo",onClick:()=>{W(null);try{e.undo([...z],{author:i,intent:v?`Restore to ${v}`:"Restore"}),t.show(null)}catch(a){W(a instanceof Error?a.message:String(a))}},style:{minHeight:28},children:"Restore to here"}):null,(0,o.jsx)("button",{type:"button","data-testid":"back-to-now",onClick:()=>t.show(null),style:{minHeight:28},children:"Back to now"})]})]}),C?(0,o.jsx)("span",{role:"alert","data-testid":"restore-refused",style:{color:"var(--graview-warn)"},children:C}):null,f?.refused?(0,o.jsx)("span",{role:"alert","data-testid":"archive-refused",style:{color:"var(--graview-warn)"},children:f.refused}):null,x?(0,o.jsxs)("span",{"data-testid":"timeline-kept",style:{color:"var(--graview-ink-faint)"},children:[x.sentence,x.action?(0,o.jsxs)(o.Fragment,{children:[" ",(0,o.jsx)("a",{"data-testid":"timeline-kept-action",href:x.action.href,style:{color:"var(--graview-ink-muted)"},children:x.action.label})]}):null]}):null,l>0&&!h?(0,o.jsx)("span",{"data-testid":"timeline-horizon",style:{color:"var(--graview-ink-faint)"},children:"The changes before the timeline's start were archived."}):null]})}export{we as Timeline};
1
+ import{a as U,b as Y,c as G,d as D}from"./chunk.HZB5F476.js";import"./chunk.YD3TKV6P.js";import"./chunk.4KC35UNR.js";import{G as ae,O as L,P as F,T as V,ca as _}from"./chunk.HT2BEOEV.js";import"./chunk.SDO3U72B.js";import{T as H,Vc as M,Za as K,_a as B}from"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import{b as R}from"./chunk.AJZBJBMO.js";function O(n,t){let r=K(n);return r==="agent"?"agent":r!=="human"&&r!=="visitor"?"app":n.onBehalfOf!==void 0?"person":n.id===void 0||t?.id===void 0||n.id===t.id?"you":"person"}var re=n=>n.ops.filter(t=>t.withheld!==!0);function X(n,t={}){let r=[];for(let e of n.batches()){let s=e.ops[0],d=e.ops.at(-1),l=re(e).length===0,h=l?void 0:Y(e.ops),c=r.at(-1);if(h&&c?.typed&&c.author&&U(c.author,e.author)&&c.typed.node===h.node&&c.typed.field===h.field){let S=G(c.typed,h);r[r.length-1]={...c,seq:d.seq+1,at:d.at,batch:e.id,batches:[...c.batches??[],e.id],typed:S,said:D(S,n.schema,n.graph,!1)};continue}r.push({seq:d.seq+1,from:s.seq,at:d.at,batch:e.id,maker:l?"person":O(e.author,t.me),author:l?void 0:e.author,said:h?D(h,n.schema,n.graph,!1):e.intent,declaration:!1,withheld:l,...h?{batches:[e.id],typed:h}:{}})}let i=[...n.log.epochs().filter(e=>e.change!==void 0).map(e=>({seq:e.seq,sentence:e.change,...e.at?{at:e.at}:{}})),...t.declarations??[]];for(let e of i){if(e.seq<n.log.horizon||e.seq>n.log.length)continue;let s=r.findIndex(d=>d.seq===e.seq);if(s>=0&&!r[s].withheld){r[s]={...r[s],declaration:!0,said:e.sentence};continue}r.push({seq:e.seq,from:e.seq,at:e.at,batch:void 0,maker:e.author?O(e.author,t.me):"app",author:e.author,said:e.sentence,declaration:!0,withheld:!1})}return r.sort((e,s)=>e.seq-s.seq||+(e.batch!==void 0)-+(s.batch!==void 0))}function J(n,t){let r=n.log.all(),i=new Map(r.map(e=>[e.id,e.seq]));return n.batches().filter(e=>!e.undone&&e.ops[0].seq>=t).filter(e=>!e.ops.every(s=>s.undoes!==void 0&&(i.get(s.undoes)??-1)>=t)).map(e=>e.id)}function Q(n,t){return n.withheld?"Someone":n.maker==="you"?"you":n.author?B(n.author,t):"the app"}var p=R(ae(),1);var o=R(V(),1),oe={kind:"human"},ie=[1,2,4,8],se=900,E={you:"You",person:"A person",agent:"An agent",app:"The app"},Z={you:"var(--graview-accent)",person:"var(--graview-ink-muted)",agent:"var(--graview-activity, var(--graview-good))",app:"var(--graview-edge-bright)"};function de(n,t,r){return[...new Set([...r,t,...n.map(i=>i.seq)])].sort((i,e)=>i-e)}function le(n,t){let r=n.withheld===!0;return{seq:n.seq+1,from:n.seq,at:n.at,batch:n.batch,maker:r?"person":O(n.author,t),author:r?void 0:n.author,said:n.batchIntent??n.intent,declaration:!1,withheld:r}}function ce(n,t){let r=0;for(let i=0;i<n.length;i++)n[i]<=t&&(r=i);return r}function pe(n,t,r){let i=J(n,t);if(i.length===0)return null;let e=n.canUndo(i);if(!e.ok)return null;let s=new Set(n.permittedMutations(r).map(d=>d.name));return e.ops.every(d=>d.mutation!==null&&s.has(d.mutation.name))?i:null}function we({face:n}){let t=L(),r=_(),i=r?.principal??oe,e=F(t.live,i),s=e.log.length,d=(0,p.useMemo)(()=>X(e,{me:i,...t.host?.declarations?{declarations:t.host.declarations}:{}}),[e,i,t.host,s]),l=e.log.horizon,h=l>0&&t.host?.archived!==void 0,c=t.kept,S=(0,p.useMemo)(()=>h?c?.stops??Array.from({length:l},(a,g)=>g):[],[h,c,l]),m=(0,p.useMemo)(()=>de(d,l,S),[d,l,S]),f=t.archive,y=f?.seq??t.past?.seq??s,x=t.host?.kept&&(f?.behindKept||c!==void 0&&(y<=c.through||c.from>0&&y<=c.from))?t.host.kept:void 0,w=ce(m,y),b=m.length-1,j=y<l&&t.past?.seq===y?t.past.store.log.all().at(-1):void 0,q=j?le(j,i):y<l?void 0:[...d].reverse().find(a=>a.seq<=y&&a.seq>(m[w-1]??-1))??[...d].reverse().find(a=>a.seq<=y),[k,A]=(0,p.useState)(!1),[T,ee]=(0,p.useState)(1),[C,W]=(0,p.useState)(null);(0,p.useEffect)(()=>{if(!k)return;if(w>=b){A(!1);return}let a=setTimeout(()=>t.show(m[w+1]),se/T);return()=>clearTimeout(a)},[k,w,b,T,m,t]);let z=(0,p.useMemo)(()=>t.past&&!f&&y>=l?pe(e,y,i):null,[t.past,f,e,y,l,i,s]),N=a=>Q(a,{graph:e.graph,schema:e.schema,...r?.seats?{seats:r.seats}:{},...r?.people?{people:r.people}:{}}),v=t.past?t.past.at?H(t.past.at,r?.locale):"the start":null,$=f?f.refused?"The archive could not be read":f.behindKept?"Nothing this far back is kept":"Reading the older changes from the archive\u2026":q?`${N(q)==="you"?"You":N(q)}: ${q.said}`:"Nothing had happened yet",I=(0,p.useRef)(null);(0,p.useLayoutEffect)(()=>{let a=I.current,g=a?.parentElement;if(n!=="scene"||!a||!g)return;let u=()=>g.style.setProperty("--graview-sheet",`${Math.ceil(a.getBoundingClientRect().height)+24}px`);u();let P=typeof ResizeObserver>"u"?null:new ResizeObserver(u);return P?.observe(a),()=>{P?.disconnect(),g.style.removeProperty("--graview-sheet")}},[n]);let te=n==="scene"?{position:"absolute",left:"50%",bottom:12,transform:"translateX(-50%)",width:"min(720px, calc(100% - 32px))",zIndex:M("rail")}:{position:"sticky",top:0,zIndex:M("rail"),margin:"0 auto 12px",maxWidth:960,width:"100%"};return(0,o.jsxs)("section",{ref:I,"aria-label":"Timeline","data-testid":"timeline","data-graview-past":t.past?String(t.past.seq):"now","data-graview-offstage":"",style:{...te,boxSizing:"border-box",display:"grid",gap:8,padding:"10px 12px",borderRadius:10,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",boxShadow:"var(--graview-lift-high)",color:"var(--graview-ink)",fontSize:"0.8125rem"},children:[(0,o.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 12px"},children:[(0,o.jsx)("strong",{"data-testid":"as-of",role:"status",style:{fontWeight:600},children:f?"Archived changes":v?`As of ${v}`:"Now"}),(0,o.jsx)("span",{"data-testid":"timeline-caption",style:{color:"var(--graview-ink-muted)",minWidth:0,overflowWrap:"anywhere"},children:$}),v?(0,o.jsx)("span",{style:{color:"var(--graview-ink-faint)"},"data-testid":"past-read-only",children:"Nothing changes while you look back."}):null]}),(0,o.jsxs)("div",{style:{position:"relative",height:22},"aria-hidden":"true",children:[h?(0,o.jsx)("span",{"data-testid":"timeline-archived",title:"Changes read from the archive as you scrub back",style:{position:"absolute",left:0,bottom:0,height:6,width:`${b===0?0:m.indexOf(l)/b*100}%`,borderRadius:2,background:"var(--graview-edge)"}}):null,m.slice(1).map((a,g)=>{let u=[...d].reverse().find(ne=>ne.seq===a);if(!u)return null;let P=b===0?0:(g+1)/b*100;return(0,o.jsx)("span",{"data-graview-tick":a,"data-maker":u.maker,...u.declaration?{"data-declaration":""}:{},title:`${E[u.maker]}: ${u.said}`,style:{position:"absolute",left:`calc(${P}% - 1px)`,bottom:0,width:u.declaration?4:2,height:u.declaration?22:12,borderRadius:2,background:u.declaration?"var(--graview-ink)":Z[u.maker],opacity:a<=y?1:.45}},`${a}:${u.batch??"declaration"}`)})]}),(0,o.jsx)("input",{type:"range","data-testid":"scrubber","aria-label":"Moment",min:0,max:b,step:1,value:w,"aria-valuetext":v?`As of ${v}. ${$}`:`Now. ${$}`,onChange:a=>{A(!1),t.show(m[Number(a.currentTarget.value)]??s)},style:{width:"100%",margin:0,accentColor:"var(--graview-accent)"}}),(0,o.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8},children:[(0,o.jsx)("button",{type:"button","data-testid":"play","aria-pressed":k,onClick:()=>{!k&&w>=b&&t.show(m[0]),A(!k)},style:{minHeight:28,minWidth:64},children:k?"Pause":"Play"}),(0,o.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:6,color:"var(--graview-ink-muted)"},children:["Speed",(0,o.jsx)("select",{"data-testid":"speed",value:T,onChange:a=>ee(Number(a.currentTarget.value)),style:{minHeight:28},children:ie.map(a=>(0,o.jsxs)("option",{value:a,children:[a,"\xD7"]},a))})]}),(0,o.jsx)("span",{"aria-hidden":"true",style:{display:"inline-flex",gap:10,color:"var(--graview-ink-faint)",flexWrap:"wrap"},children:Object.keys(E).filter(a=>d.some(g=>g.maker===a)).map(a=>(0,o.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[(0,o.jsx)("span",{style:{width:8,height:8,borderRadius:2,background:Z[a]}}),E[a]]},a))}),(0,o.jsxs)("span",{style:{marginLeft:"auto",display:"inline-flex",gap:8},children:[z?(0,o.jsx)("button",{type:"button","data-testid":"restore-here",title:"Take back every change since, as one change you can undo",onClick:()=>{W(null);try{e.undo([...z],{author:i,intent:v?`Restore to ${v}`:"Restore"}),t.show(null)}catch(a){W(a instanceof Error?a.message:String(a))}},style:{minHeight:28},children:"Restore to here"}):null,(0,o.jsx)("button",{type:"button","data-testid":"back-to-now",onClick:()=>t.show(null),style:{minHeight:28},children:"Back to now"})]})]}),C?(0,o.jsx)("span",{role:"alert","data-testid":"restore-refused",style:{color:"var(--graview-warn)"},children:C}):null,f?.refused?(0,o.jsx)("span",{role:"alert","data-testid":"archive-refused",style:{color:"var(--graview-warn)"},children:f.refused}):null,x?(0,o.jsxs)("span",{"data-testid":"timeline-kept",style:{color:"var(--graview-ink-faint)"},children:[x.sentence,x.action?(0,o.jsxs)(o.Fragment,{children:[" ",(0,o.jsx)("a",{"data-testid":"timeline-kept-action",href:x.action.href,style:{color:"var(--graview-ink-muted)"},children:x.action.label})]}):null]}):null,l>0&&!h?(0,o.jsx)("span",{"data-testid":"timeline-horizon",style:{color:"var(--graview-ink-faint)"},children:"The changes before the timeline's start were archived."}):null]})}export{we as Timeline};
@@ -1 +1 @@
1
- import{Bd as k,Cd as x,Kd as f,Od as b,Pd as S,Qd as P,Td as A,Ud as L,ka as u,vd as w,wd as v,yd as $,zd as c}from"./chunk.YEJ4LNUP.js";function T(s){if(!(s.attach==="home"||s.cardinality==="one"||!s.title))return{kind:s.attach,title:s.title,as:$(s.title),name:s.name,lens:"view",...s.hidden?{hidden:!0}:{}}}function H(s,r=[]){let a=[];for(let n of f(s).drawn)for(let i of n.kinds)a.push({kind:i,title:n.title,as:n.as,...n.across?{across:n.across}:{},...n.kinds.length>1?{over:n.kinds}:{},...n.hidden?{hidden:!0}:{}});for(let n of[...s.views?.places?.()??[],...r.flatMap(i=>T(i)??[])])a.some(i=>i.kind===n.kind&&i.as===n.as)||a.push(n);return a}function U(s,r={}){return V(s.schema,H(s,r.views),{...s.pages?{pages:s.pages}:{},lenses:f(s).drawn,home:(s.home?.length??0)>0})}function V(s,r,a={}){let{pages:n}=a,i=s.kinds,d=r.filter(e=>i.includes(e.kind)),o=L(n?.first,s,d),N=new Set(n?.hide??[]),p=A(i,n?.order,d),m=p.flatMap(e=>e.view?[]:[e.kind]),O=p.flatMap(e=>e.view?[e.view]:[]),h=[{slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#",...o?.to==="home"||o===void 0&&a.home?{first:!0}:{}},{slug:b,title:P(n),kind:null,cardinality:"many",address:S,stop:"#"}],E=v([...d].sort((e,t)=>m.indexOf(e.kind)-m.indexOf(t.kind))),g=e=>{let t=a.lenses?.find(l=>l.as===e.as&&l.kinds.includes(e.kind)),y=x(e,d);return{slug:e.as,title:e.title,kind:e.kind,...e.over?{over:e.over.filter(l=>i.includes(l))}:{},cardinality:"many",address:k(e.as,y?c(s,e.kind).slice(1):void 0),stop:y?`#focus=aggregate:${e.kind}&in.view=${encodeURIComponent(e.as)}`:`#view=${encodeURIComponent(e.as)}`,...t?{lens:t.lens}:{},...e.name!==void 0?{view:e.name}:{},...e.hidden?{hidden:!0}:{},...o?.to==="place"&&o.place.as===e.as&&(o.place.kind===e.kind||e.over?.includes(o.place.kind))?{first:!0}:{}}};for(let e of E)O.some(t=>w(t,e))||h.push(g(e));for(let e of p){if(e.view){h.push(g(e.view));continue}let t=e.kind;h.push({slug:c(s,t).slice(1),title:u(s,t),kind:t,cardinality:"many",address:c(s,t),stop:`#focus=aggregate:${t}`,...N.has(t)?{hidden:!0}:{},...o?.to==="kind"&&o.kind===t?{first:!0}:{}})}return h}export{U as a,V as b};
1
+ import{Bd as k,Cd as x,Kd as f,Od as b,Pd as S,Qd as P,Td as A,Ud as L,ka as u,vd as w,wd as v,yd as $,zd as c}from"./chunk.7BBGRTXM.js";function T(s){if(!(s.attach==="home"||s.cardinality==="one"||!s.title))return{kind:s.attach,title:s.title,as:$(s.title),name:s.name,lens:"view",...s.hidden?{hidden:!0}:{}}}function H(s,r=[]){let a=[];for(let n of f(s).drawn)for(let i of n.kinds)a.push({kind:i,title:n.title,as:n.as,...n.across?{across:n.across}:{},...n.kinds.length>1?{over:n.kinds}:{},...n.hidden?{hidden:!0}:{}});for(let n of[...s.views?.places?.()??[],...r.flatMap(i=>T(i)??[])])a.some(i=>i.kind===n.kind&&i.as===n.as)||a.push(n);return a}function U(s,r={}){return V(s.schema,H(s,r.views),{...s.pages?{pages:s.pages}:{},lenses:f(s).drawn,home:(s.home?.length??0)>0})}function V(s,r,a={}){let{pages:n}=a,i=s.kinds,d=r.filter(e=>i.includes(e.kind)),o=L(n?.first,s,d),N=new Set(n?.hide??[]),p=A(i,n?.order,d),m=p.flatMap(e=>e.view?[]:[e.kind]),O=p.flatMap(e=>e.view?[e.view]:[]),h=[{slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#",...o?.to==="home"||o===void 0&&a.home?{first:!0}:{}},{slug:b,title:P(n),kind:null,cardinality:"many",address:S,stop:"#"}],E=v([...d].sort((e,t)=>m.indexOf(e.kind)-m.indexOf(t.kind))),g=e=>{let t=a.lenses?.find(l=>l.as===e.as&&l.kinds.includes(e.kind)),y=x(e,d);return{slug:e.as,title:e.title,kind:e.kind,...e.over?{over:e.over.filter(l=>i.includes(l))}:{},cardinality:"many",address:k(e.as,y?c(s,e.kind).slice(1):void 0),stop:y?`#focus=aggregate:${e.kind}&in.view=${encodeURIComponent(e.as)}`:`#view=${encodeURIComponent(e.as)}`,...t?{lens:t.lens}:{},...e.name!==void 0?{view:e.name}:{},...e.hidden?{hidden:!0}:{},...o?.to==="place"&&o.place.as===e.as&&(o.place.kind===e.kind||e.over?.includes(o.place.kind))?{first:!0}:{}}};for(let e of E)O.some(t=>w(t,e))||h.push(g(e));for(let e of p){if(e.view){h.push(g(e.view));continue}let t=e.kind;h.push({slug:c(s,t).slice(1),title:u(s,t),kind:t,cardinality:"many",address:c(s,t),stop:`#focus=aggregate:${t}`,...N.has(t)?{hidden:!0}:{},...o?.to==="kind"&&o.kind===t?{first:!0}:{}})}return h}export{U as a,V as b};
@@ -1 +1 @@
1
- import"./chunk.KHRS2SKB.js";import"./chunk.3X3GLNWQ.js";import"./chunk.25VJPUDH.js";import"./chunk.644FUGSX.js";import"./chunk.AQCU6TPV.js";import{a as L,b as R,c as N}from"./chunk.IRMO4FUC.js";import{b as T}from"./chunk.WPJVMVAL.js";import"./chunk.VYW7DSUW.js";import"./chunk.LKK7VQBA.js";import"./chunk.EC5IWN74.js";import"./chunk.RR2IFETZ.js";import"./chunk.ONGZ3YQF.js";import"./chunk.XGCOWCA2.js";import"./chunk.MORMTKVR.js";import"./chunk.CU2NQ5WF.js";import"./chunk.E33EJU3Q.js";import"./chunk.PJCVFYFU.js";import"./chunk.7RJGEU3Y.js";import"./chunk.HJCQ6I3S.js";import"./chunk.7O6Z3BFR.js";import"./chunk.I2C5LPB5.js";import"./chunk.6Q6BW4QT.js";import"./chunk.AKVBU5K5.js";import"./chunk.LLOZKUCA.js";import"./chunk.DH7M57SE.js";import"./chunk.AIK3Z25Y.js";import"./chunk.CKV2QCH5.js";import"./chunk.BT7RLFPO.js";import"./chunk.TAJ2R44N.js";import"./chunk.VLBY66PB.js";import"./chunk.64IKLRUS.js";import"./chunk.DTSTUC2W.js";import"./chunk.RDL6652E.js";import"./chunk.V3NPUAPB.js";import"./chunk.USQNSNIA.js";import"./chunk.XOZU4OFA.js";import"./chunk.IT763BYH.js";import"./chunk.7ECBGIUK.js";import"./chunk.UQQAGT3R.js";import"./chunk.WVUJXDXZ.js";import"./chunk.T2RME6XF.js";import"./chunk.SOTB6C5A.js";import"./chunk.TQCRFZ53.js";import"./chunk.6HLKAUWF.js";import"./chunk.FCUDBMGC.js";import"./chunk.KMEKMCKG.js";import"./chunk.GZHZLJBF.js";import{r as C}from"./chunk.E5XNQTEU.js";import"./chunk.OJGHDWI6.js";import"./chunk.K5YLQAFW.js";import"./chunk.XJFAUOJS.js";import"./chunk.DPPT6WAJ.js";import"./chunk.7U2JO7ET.js";import"./chunk.HFVMGTNL.js";import"./chunk.7Z4USR3Y.js";import{G as S,I as $,T as p,ba as x,da as A}from"./chunk.NPAWTPLQ.js";import"./chunk.SDO3U72B.js";import{Vc as k,fa as h}from"./chunk.YEJ4LNUP.js";import"./chunk.FQLNBIQ5.js";import{b as i}from"./chunk.AJZBJBMO.js";var r=i(S(),1);var l=i(S(),1);var g=i(p(),1);var m={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"};var e=i(p(),1);function Q({page:n=!1,go:E,onPick:y,onDiscard:D}){let{store:d,seatTalk:c}=x(),u=$(c),M=N(),b=E??M,{keep:P}=L(b),[H,f]=(0,r.useState)(!1);A();let t=u.draft;(0,r.useEffect)(()=>f(!1),[t]),(0,r.useEffect)(()=>{n||R(!1)},[n]);let v=(0,r.useRef)(null),w=t!==null&&!n;if((0,r.useLayoutEffect)(()=>{let s=v.current;if(!w||!s?.parentElement)return;let o=[];for(let a=s.previousElementSibling;a;a=a.previousElementSibling)a instanceof HTMLElement&&!a.inert&&a.tagName!=="STYLE"&&(a.inert=!0,o.push(a));return()=>{for(let a of o)a.inert=!1}},[w]),!t)return null;let G=T(t.drawn),F=d.schema.tryDefinition(t.kind),q=d.graph.nodesOfKind(t.kind).filter(s=>h(F,s)),z=()=>{c.setDraft(null),D?.()};return(0,e.jsxs)("section",{ref:v,"data-testid":"draft-frame","data-graview-draft-frame":n?"page":"scene","aria-label":`Draft: ${t.title}`,style:n?{display:"grid",gap:12,minWidth:0}:{position:"absolute",inset:12,zIndex:k("rail"),display:"grid",gridTemplateRows:"auto auto minmax(0, 1fr)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:12,boxShadow:"var(--graview-lift-high)",overflow:"hidden",minHeight:0},children:[(0,e.jsxs)("p",{"data-testid":"draft-line",style:{...K,...n?{}:{padding:"10px 16px"}},children:[n?(0,e.jsx)("span",{children:"Draft"}):(0,e.jsxs)("span",{children:["Draft \u2014 ",(0,e.jsx)("span",{"data-testid":"draft-title",style:{color:"var(--graview-ink)",fontWeight:600},children:t.title})]}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-keep",disabled:H,title:`Keep \u201C${t.title}\u201D as a lens: a place of its own`,onClick:()=>{f(!0),P(t).finally(()=>f(!1))},style:m,children:"Keep as a lens"}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-discard",onClick:z,style:m,children:"Discard"})]}),u.draftNote?(0,e.jsx)("p",{"data-testid":"draft-note",role:"status",style:{margin:0,padding:n?0:"0 16px 8px",fontSize:"0.8125rem",color:"var(--graview-warn)"},children:u.draftNote}):(0,e.jsx)("span",{}),(0,e.jsx)("div",{"data-testid":"draft-lens","data-graview-draft":t.lens.name,role:"group","aria-label":t.title,tabIndex:0,style:n?{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",scrollbarGutter:"stable",border:"1px solid var(--graview-edge)",borderRadius:12,background:"var(--graview-panel)"}:{minHeight:0,overflow:"auto",scrollbarGutter:"stable",display:"grid",gridTemplateRows:"minmax(0, 1fr)"},onClick:s=>{let o=s.target?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");if(!o||!d.graph.getNode(o))return;s.preventDefault();let a=d.graph.getNode(o);y?(c.setDraft(null),y(o)):b({to:"record",id:o,kind:a.kind,label:o,address:"",said:""})},children:(0,e.jsx)(C,{kind:t.kind,view:t.title,children:(0,e.jsx)(G,{nodes:q,label:t.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})]})}var K={margin:0,display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 8px",fontSize:"0.875rem",color:"var(--graview-ink-muted)",borderBottom:"1px solid var(--graview-edge)",paddingBottom:8};export{Q as DraftFrame};
1
+ import"./chunk.KHRS2SKB.js";import"./chunk.BKVBX2YB.js";import"./chunk.25VJPUDH.js";import"./chunk.644FUGSX.js";import"./chunk.WNQFHMNR.js";import{a as L,b as R,c as N}from"./chunk.LO3U3P55.js";import{b as T}from"./chunk.I3WWCPQ2.js";import"./chunk.BTVBZ6KE.js";import"./chunk.3OYGXYQY.js";import"./chunk.UAP5M3CD.js";import"./chunk.GCBZ3WE2.js";import"./chunk.GDOTG7YA.js";import"./chunk.EPPXZZPK.js";import"./chunk.KFQSYCY3.js";import"./chunk.WQOI6BLM.js";import"./chunk.LCPGZK7G.js";import"./chunk.NKC3JILT.js";import"./chunk.HEWVPXRE.js";import"./chunk.HJCQ6I3S.js";import"./chunk.HXRV3WVJ.js";import"./chunk.MQ5HBUBL.js";import"./chunk.7SQAKSJD.js";import"./chunk.ZOHMWSHD.js";import"./chunk.PZG3B7F4.js";import"./chunk.LRUNFSHP.js";import"./chunk.43OKZU73.js";import"./chunk.WNSC3RWD.js";import"./chunk.ACYDJQRC.js";import"./chunk.S5MGE2U5.js";import"./chunk.34TW32TB.js";import"./chunk.LL2MLSPH.js";import"./chunk.EB4NVTJL.js";import"./chunk.VG7OWV2H.js";import"./chunk.KXPRILAO.js";import"./chunk.XU34T2H4.js";import"./chunk.XOZU4OFA.js";import"./chunk.BB33TI4S.js";import"./chunk.7ECBGIUK.js";import"./chunk.2EDC63RI.js";import"./chunk.WVUJXDXZ.js";import"./chunk.LDAYDCUO.js";import"./chunk.KKNDX4JT.js";import"./chunk.GKSUTAIX.js";import"./chunk.5ICIMQE6.js";import"./chunk.QGV7H7RQ.js";import"./chunk.YIA2EDVF.js";import"./chunk.GZHZLJBF.js";import{r as C}from"./chunk.ELERUERU.js";import"./chunk.OJGHDWI6.js";import"./chunk.YHTE34RN.js";import"./chunk.3YZHZGTM.js";import"./chunk.EQTSV7BK.js";import"./chunk.27CW6SCT.js";import"./chunk.YD3TKV6P.js";import"./chunk.4KC35UNR.js";import{G as S,I as $,T as p,ba as x,da as A}from"./chunk.HT2BEOEV.js";import"./chunk.SDO3U72B.js";import{Vc as k,fa as h}from"./chunk.7BBGRTXM.js";import"./chunk.FQLNBIQ5.js";import{b as i}from"./chunk.AJZBJBMO.js";var r=i(S(),1);var l=i(S(),1);var g=i(p(),1);var m={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"};var e=i(p(),1);function Q({page:n=!1,go:E,onPick:y,onDiscard:D}){let{store:d,seatTalk:c}=x(),u=$(c),M=N(),b=E??M,{keep:P}=L(b),[H,f]=(0,r.useState)(!1);A();let t=u.draft;(0,r.useEffect)(()=>f(!1),[t]),(0,r.useEffect)(()=>{n||R(!1)},[n]);let v=(0,r.useRef)(null),w=t!==null&&!n;if((0,r.useLayoutEffect)(()=>{let s=v.current;if(!w||!s?.parentElement)return;let o=[];for(let a=s.previousElementSibling;a;a=a.previousElementSibling)a instanceof HTMLElement&&!a.inert&&a.tagName!=="STYLE"&&(a.inert=!0,o.push(a));return()=>{for(let a of o)a.inert=!1}},[w]),!t)return null;let G=T(t.drawn),F=d.schema.tryDefinition(t.kind),q=d.graph.nodesOfKind(t.kind).filter(s=>h(F,s)),z=()=>{c.setDraft(null),D?.()};return(0,e.jsxs)("section",{ref:v,"data-testid":"draft-frame","data-graview-draft-frame":n?"page":"scene","aria-label":`Draft: ${t.title}`,style:n?{display:"grid",gap:12,minWidth:0}:{position:"absolute",inset:12,zIndex:k("rail"),display:"grid",gridTemplateRows:"auto auto minmax(0, 1fr)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:12,boxShadow:"var(--graview-lift-high)",overflow:"hidden",minHeight:0},children:[(0,e.jsxs)("p",{"data-testid":"draft-line",style:{...K,...n?{}:{padding:"10px 16px"}},children:[n?(0,e.jsx)("span",{children:"Draft"}):(0,e.jsxs)("span",{children:["Draft \u2014 ",(0,e.jsx)("span",{"data-testid":"draft-title",style:{color:"var(--graview-ink)",fontWeight:600},children:t.title})]}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-keep",disabled:H,title:`Keep \u201C${t.title}\u201D as a lens: a place of its own`,onClick:()=>{f(!0),P(t).finally(()=>f(!1))},style:m,children:"Keep as a lens"}),(0,e.jsx)("span",{"aria-hidden":"true",children:"\xB7"}),(0,e.jsx)("button",{type:"button","data-testid":"draft-discard",onClick:z,style:m,children:"Discard"})]}),u.draftNote?(0,e.jsx)("p",{"data-testid":"draft-note",role:"status",style:{margin:0,padding:n?0:"0 16px 8px",fontSize:"0.8125rem",color:"var(--graview-warn)"},children:u.draftNote}):(0,e.jsx)("span",{}),(0,e.jsx)("div",{"data-testid":"draft-lens","data-graview-draft":t.lens.name,role:"group","aria-label":t.title,tabIndex:0,style:n?{height:"min(72vh, 760px)",display:"grid",gridTemplateRows:"minmax(0, 1fr)",overflow:"auto",scrollbarGutter:"stable",border:"1px solid var(--graview-edge)",borderRadius:12,background:"var(--graview-panel)"}:{minHeight:0,overflow:"auto",scrollbarGutter:"stable",display:"grid",gridTemplateRows:"minmax(0, 1fr)"},onClick:s=>{let o=s.target?.closest("[data-graview-pick]")?.getAttribute("data-graview-pick");if(!o||!d.graph.getNode(o))return;s.preventDefault();let a=d.graph.getNode(o);y?(c.setDraft(null),y(o)):b({to:"record",id:o,kind:a.kind,label:o,address:"",said:""})},children:(0,e.jsx)(C,{kind:t.kind,view:t.title,children:(0,e.jsx)(G,{nodes:q,label:t.title,fidelity:"full",cardinality:"many",mode:"fullscreen",selected:!1})})})]})}var K={margin:0,display:"flex",flexWrap:"wrap",alignItems:"baseline",gap:"4px 8px",fontSize:"0.875rem",color:"var(--graview-ink-muted)",borderBottom:"1px solid var(--graview-edge)",paddingBottom:8};export{Q as DraftFrame};
@@ -0,0 +1 @@
1
+ import{l as O}from"./chunk.OJGHDWI6.js";import{j as C}from"./chunk.EQTSV7BK.js";import{G as b,La as G,T as M,ba as w,c as V,ca as I,da as W,x as B}from"./chunk.HT2BEOEV.js";import{C as D,Qc as _,Rb as F,Rc as L,Xc as j,ac as N}from"./chunk.7BBGRTXM.js";import{b as m}from"./chunk.AJZBJBMO.js";function H(n,e){let t=n.graph.getNode(e);if(!t)return[];let i=t.kind,a=n.schema.tryDefinition(i);if(!a)return[];let c=n.seenFor,u=c?j.keptFrom?.(n,c)?.(t):void 0,o=new Map;for(let r of n.allMutations()){let s=r.subject;if(!s||!(s.kinds==="*"||s.kinds.includes(i)))continue;let l=r.input.shape??{};for(let d of N(r,a)){if(u?.(d))continue;let x=d in l,k=[];for(let h of Object.keys(l)){if(h===s.arg||h===d||X(l[h]))continue;let v=F(r.input).find(S=>S.name===h);k.push({name:h,...v?{kinds:v.kinds}:{},...v?{candidates:v.kinds.includes("*")?n.graph.allNodes().map(S=>S.id):v.kinds.flatMap(S=>n.graph.nodesOfKind(S).map(J=>J.id))}:{},shape:C(r.input,h)})}let Q={field:d,mutation:r.name,title:r.title??r.name,shape:x?C(r.input,d):{type:"unknown"},takesValue:x,alternatives:[],open:k,clearable:x&&(r.clearable?.includes(d)??!1),call:h=>({name:r.name,args:x?{[s.arg]:e,[d]:h}:{[s.arg]:e}})};o.set(d,[...o.get(d)??[],Q])}}return[...o.values()].map(r=>{let s=[...r.filter(d=>d.takesValue),...r.filter(d=>!d.takesValue)],[f,...l]=s;return{...f,alternatives:l}})}function X(n){let e=D(n)?.type;return e==="optional"||e==="default"||e==="nullable"}var R=m(b(),1);function we(n){let{store:e,principal:t}=w(),i=W(),a=(0,R.useMemo)(()=>n===null?[]:H(e,n),[e,n,i]),c=(0,R.useCallback)((u,o,r={})=>{let s=u.call(o);e.apply({name:s.name,args:{...s.args,...r}},{author:t})},[e,t]);return{fields:a,commit:c}}var K=m(b(),1);function Qe(){let{brand:n}=w(),e=n?.kit;return(0,K.useMemo)(()=>_(e),[e])}function Je(n,e){let t=L(n,e),i={...t.color!==void 0?{color:t.color}:{},...t.pattern!==void 0?{pattern:t.pattern}:{},...t.width!==void 0?{width:t.width}:{},...t.cap!==void 0?{cap:t.cap}:{},...t.opacity!==void 0?{opacity:t.opacity}:{}};return{connector:t,style:O(e,{[e]:i})}}var $=m(b(),1);var g=m(M(),1);function Z(n){let e=n?.hint;return typeof e=="string"&&e.length>0?e:void 0}function ee(n){if(n instanceof Error&&n.message)return n.message;let e=String(n);return e==="[object Object]"?"The view threw without a message.":e}var U=class extends $.Component{static contextType=G;state={};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error(`[graview] the ${this.props.view??"view"} of ${this.props.kind} threw while rendering`,e,t.componentStack),this.context?.(e,{module:"@graview/react"})}render(){let{error:e}=this.state;if(!e)return this.props.children;let t=Z(e);return(0,g.jsxs)("div",{role:"alert","data-graview-view-error":this.props.kind,style:{display:"flex",flexDirection:"column",gap:"0.375rem",padding:"var(--graview-pad, 12px)",height:"100%",overflow:"auto",boxSizing:"border-box",borderRadius:"var(--graview-radius-sm, 6px)",background:"var(--graview-panel-warning, #fdf3ec)",color:"var(--graview-ink, #1a1a1a)",font:"var(--graview-font-body, 13px/1.45 system-ui)",fontSize:"0.875rem",lineHeight:1.45},children:[(0,g.jsx)("strong",{style:{color:"var(--graview-warn, #b4462a)"},children:this.props.view?`${this.props.view} could not draw`:"This view could not draw"}),(0,g.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:this.props.kind}),(0,g.jsx)("span",{children:ee(e)}),t?(0,g.jsx)("span",{style:{color:"var(--graview-ink-muted, #555)"},children:t}):null]})}};var y=m(b(),1);var q=m(M(),1),A=(0,y.createContext)([]);function tn({sections:n,children:e}){let t=(0,y.useContext)(A),i=(0,y.useMemo)(()=>[...t,...n.filter(a=>!t.includes(a))],[t,n]);return(0,q.jsx)(A.Provider,{value:i,children:e})}function z(){let n=(0,y.useContext)(A),e=I()?.menuSections;return(0,y.useMemo)(()=>e?[...n,...e.filter(t=>!n.includes(t))]:n,[n,e])}function rn(){let n=z();return(0,y.useCallback)(e=>{for(let t of n)try{t(e)?.prepare?.()}catch{}},[n])}function on(n){let e=z();if(n===null||e.length===0)return{start:[],end:[]};let t=e.flatMap(i=>{try{let a=i(n);return a&&((a.items?.length??0)>0||a.render)?[a]:[]}catch{return[]}});return{start:t.filter(i=>i.at==="start"),end:t.filter(i=>i.at!=="start")}}var ne=m(b(),1);function cn(){return w().activity}var P=(n,e)=>n.length*e*.58;var te=156,re=2,E=te-18,oe=7.1,ie=16;function ae(n,e){let t=0,i=E;for(let a of n.split(" ")){let c=e(a),u=i+e(" ")+c;if(u<=E)i=u;else{let o=Math.ceil(c/E)||1;t+=o,i=c-(o-1)*E}}return t}var se=16.25,Y=27,ce=(n,e)=>{let t=Math.ceil(n.length*oe/E);return e?Math.max(Y,Math.ceil(Math.max(t,ae(n,e))*se)+6):Math.max(Y,t*ie+6)};function ln(n,e,t){return n.length===0?0:10+n.reduce((i,a)=>i+ce(a,t),0)+(n.length-1)*re}var de=27,ue=8,pn=4,le=64,fn=n=>Math.max(1,Math.min(ue,n)),mn=n=>n*de+le;var p=m(b(),1);function xn(n,{units:e,target:t=0,legibleAt:i=260}){let[a,c]=(0,p.useState)(e);(0,p.useEffect)(()=>{let o=n.current;if(o===null||typeof ResizeObserver>"u")return;let r=new ResizeObserver(([s])=>{let f=s?.contentRect.width??0;f>0&&c(f)});return r.observe(o),()=>r.disconnect()},[n]);let u=a/e;return{scale:u,width:a,touchable:u*t>=24,legible:a>=i}}function bn(n="--graview-font-body",e="sans-serif"){let t=(0,p.useRef)(void 0),i=(0,p.useMemo)(()=>{if(typeof getComputedStyle!="function"||typeof document>"u")return e;let a=getComputedStyle(document.documentElement).getPropertyValue(n).trim();return a.length>0?a:e},[n,e]);return(0,p.useMemo)(()=>{t.current===void 0&&(t.current=typeof document>"u"?null:document.createElement("canvas").getContext("2d")??null);let a=t.current;return a===null?P:(c,u)=>{a.font=`${u}px ${i}`;let o=a.measureText(c).width;return o>0?o:P(c,u)}},[i])}var wn=(0,p.createContext)(void 0);var T=3;function pe(n){let e=V(n),t=e.focusId;if(!t)return null;if(e.within?.view){let[a]=B(t);if(a)return{at:`screen:${a}`,audience:!0}}return{at:t,audience:!1}}var fe=102,me=32;function En(n,e,t){let i=[],a=new Map,c=new Map,u=0;for(let o of n){let r=pe(o.stop),s=r?e(r.at):null;if(!r||!s){o.name&&i.push({kind:"edge",presence:o,point:{x:t-8,y:fe+u++*me}});continue}if(!o.name){let k=c.get(r.at);c.set(r.at,{n:(k?.n??0)+1,box:s});continue}let f=a.get(r.at)??[];if(f.push(o),a.set(r.at,f),f.length>T)continue;let l=s,d=f.length-1,x=r.audience?{x:l.x+l.width*.5+(d-1)*26,y:l.y+Math.min(l.height,24)}:{x:l.x+l.width*.5-26-d*26,y:l.y+l.height-4};i.push({kind:"person",presence:o,point:x,at:r.at,index:d,of:f.length,audience:r.audience})}for(let[o,r]of a){if(r.length<=T)continue;let s=e(o);s&&i.push({kind:"count",at:o,point:{x:s.x+s.width*.5+2*26+18,y:s.y+s.height-4},n:r.length-T})}for(let[o,{n:r,box:s}]of c)i.push({kind:"count",at:o,point:{x:s.x+s.width*.5+40,y:s.y+s.height-4},n:r});for(let o of n)if(o.name){if(o.robot?.at&&o.robot.mode!=="docked"){let r=e(o.robot.at);r&&i.push({kind:"robot",presence:o,point:{x:r.x+r.width/2+22,y:r.y+r.height-4},mode:o.robot.mode})}if(o.over){let r=e(o.over);r&&i.push({kind:"over",presence:o,box:r})}}return i}export{cn as a,P as b,te as c,re as d,Y as e,ln as f,de as g,pn as h,le as i,fn as j,mn as k,xn as l,bn as m,we as n,Qe as o,Je as p,En as q,U as r,tn as s,rn as t,on as u};
@@ -1 +1 @@
1
- import{Ma as y,Oa as k,T as w,j as c,l as h,m as b,r as f}from"./chunk.NPAWTPLQ.js";import{W as i}from"./chunk.YEJ4LNUP.js";import{b as g}from"./chunk.AJZBJBMO.js";var s=null,a=new Set,v=e=>{s={kind:e,n:(s?.n??0)+1};for(let t of a)t()},A=()=>s,C=e=>(a.add(e),()=>a.delete(e)),V=()=>{s=null};var d=g(w(),1);function T(e,t){if(e.length===0||t.length===0)return[];let o=new Set(t.map(n=>n.id));return e.filter(n=>n.nodeIds.some(l=>o.has(l)))}var x=(e,t)=>`${i(e)} ${e===1?"problem":"problems"} in ${t}`;function q({kind:e,plural:t,problems:o,flag:n,listed:l=!1}){let{view:p,go:P}=k(),{set:$}=y();if(o.length===0)return null;let u=x(o.length,t),m=o.length===1?"it":"them";return(0,d.jsx)("button",{type:"button",className:"graview-district-problems","data-testid":`district-problems-${e}`,"data-graview-problems":o.length,"aria-expanded":l,"aria-label":u,title:`${u} \u2014 ${o[0].message}${o.length>1?` (and ${i(o.length-1)} more)`:""}. Press to see ${m} and how to fix ${m}.`,onClick:r=>{r.stopPropagation(),p.overview||P(h(c(b(p,!0),null),"view",null)),$([f(e)]),v(e)},onDoubleClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:(0,d.jsx)("span",{"aria-hidden":"true",children:`${n} ${i(o.length)}`})})}export{A as a,C as b,V as c,T as d,x as e,q as f};
1
+ import{Ma as y,Oa as k,T as w,j as c,l as h,m as b,r as f}from"./chunk.HT2BEOEV.js";import{W as i}from"./chunk.7BBGRTXM.js";import{b as g}from"./chunk.AJZBJBMO.js";var s=null,a=new Set,v=e=>{s={kind:e,n:(s?.n??0)+1};for(let t of a)t()},A=()=>s,C=e=>(a.add(e),()=>a.delete(e)),V=()=>{s=null};var d=g(w(),1);function T(e,t){if(e.length===0||t.length===0)return[];let o=new Set(t.map(n=>n.id));return e.filter(n=>n.nodeIds.some(l=>o.has(l)))}var x=(e,t)=>`${i(e)} ${e===1?"problem":"problems"} in ${t}`;function q({kind:e,plural:t,problems:o,flag:n,listed:l=!1}){let{view:p,go:P}=k(),{set:$}=y();if(o.length===0)return null;let u=x(o.length,t),m=o.length===1?"it":"them";return(0,d.jsx)("button",{type:"button",className:"graview-district-problems","data-testid":`district-problems-${e}`,"data-graview-problems":o.length,"aria-expanded":l,"aria-label":u,title:`${u} \u2014 ${o[0].message}${o.length>1?` (and ${i(o.length-1)} more)`:""}. Press to see ${m} and how to fix ${m}.`,onClick:r=>{r.stopPropagation(),p.overview||P(h(c(b(p,!0),null),"view",null)),$([f(e)]),v(e)},onDoubleClick:r=>r.stopPropagation(),onPointerDown:r=>r.stopPropagation(),children:(0,d.jsx)("span",{"aria-hidden":"true",children:`${n} ${i(o.length)}`})})}export{A as a,C as b,V as c,T as d,x as e,q as f};
@@ -0,0 +1,2 @@
1
+ import{a as le,b as U,d as ce,g as ye,h as pe,i as me,j as ge,k as he}from"./chunk.27CW6SCT.js";import{Aa as oe,C as j,Fa as re,Fb as fe,H as _,Ha as ie,I as E,J as Z,K as B,Lb as O,Nb as ue,Ob as I,Pa as C,Q as x,T as H,Ta as se,U as X,Va as de,Xa as ae,Y as L,_ as Y,ba as q,da as W,ga as M,ma as v,oa as J,ua as Q,va as ee,wa as ne,xa as te}from"./chunk.7BBGRTXM.js";var _e=t=>`${t}${t%100>=11&&t%100<=13?"th":["th","st","nd","rd"][t%10]??"th"}`,xe={day:"day",week:"week",month:"month",year:"year"},F=t=>t.length<2?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`;function ve(t,e,n){let o=e.interval??1,i=xe[e.every],s=t.slice(0,10),l=o===1?`Every ${i}`:o===2?`Every other ${i}`:`Every ${o} ${i}s`,d;if(e.every==="week"){let y=(e.on?.length?e.on:[C[new Date(`${s}T00:00:00Z`).getUTCDay()]]).map(r=>Y(C.indexOf(r),"long",n));d=o===1?`Every ${F(y)}`:o===2?`Every other ${F(y)}`:`${l} on ${F(y)}`}else if(e.every==="month"){let y=(e.on?.length?e.on:[+s.slice(8,10)]).map(r=>r===-1?"the last day":`the ${_e(Number(r))}`);d=`${l} on ${F(y)}`}else e.every==="year"?d=`${l} on ${L(s,n)}`:d=l;return E.test(t)&&(d+=` at ${X(t,n)}`),e.until&&(d+=`, until ${x(e.until,n)}`),e.count&&(d+=`, ${e.count===1?"once":`${e.count} times`}`),d}function ke(t,e,n={}){if(!de(e)||typeof t!="string")return;let o=n.today??B(),i=ae(t,e,o),s=ve(t,e,n.locale),l=i.slice(0,4)===o.slice(0,4)?L(i.slice(0,10),n.locale):x(i.slice(0,10),n.locale);return i.slice(0,10)<o?`${s}, last ${l}`:`${s}, next ${l}`}function dn(t,e){let n=new Map,o=new Map;for(let i of t){let s=M(e(i.kind),i).trim().toLowerCase();o.set(s,[...o.get(s)??[],i])}for(let i of o.values()){if(i.length<2)continue;let s=new Map;for(let l of i)s.set(l.kind,[...s.get(l.kind)??[],l]);for(let[l,d]of s){if(d.length===1){n.set(d[0].id,J(e(l),l));continue}let y=d.map(u=>new Map(Ee(u,e(u.kind)).map(p=>[p.key,p.alone]))),r=[...new Set(y.flatMap(u=>[...u.keys()]))],c=u=>y.every(p=>!/\d/.test(p.get(u)??"")),h=[...r.filter(c),...r.filter(u=>!c(u))],b=(u,p)=>p.map(m=>y[u].get(m)??"").filter(Boolean).join(" \xB7 "),S=u=>new Set(d.map((p,m)=>b(m,u))).size===d.length&&d.every((p,m)=>b(m,u)!==""),f=h.find(u=>S([u])),a=f?void 0:h.flatMap((u,p)=>h.slice(p+1).map(m=>[u,m])).find(u=>S(u));d.forEach((u,p)=>{if(f||a)return void n.set(u.id,b(p,f?[f]:a));let m=h.find($=>{let w=y[p].get($);return w!==void 0&&w!==""&&y.every((R,k)=>k===p||R.get($)!==w)});n.set(u.id,m?y[p].get(m):`${p+1} of ${d.length}`)})}}return n}function an(t,e){return t?.describe?t.describe(e):`${e.kind} ${M(t,e)}`}var Oe=new Set(["id","kind","label"]);function Se(t,e){if(e.length===0)return!1;let n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[\\s\xB7,(/])${n}($|[\\s\xB7,)/])`).test(t)}function Ee(t,e,n={}){let o=e?.display,i=new Set([...Oe,...o?.hide??[]]);typeof t.label=="string"&&e?.label&&!M(e,t).includes(t.label)&&i.delete("label");let s=(n.said??[]).filter(f=>!!f),l=s.filter(f=>f.endsWith("\u2026")).map(f=>f.replace(/…$/,"").trim()).filter(f=>f.length>12),d=[],y=e?.fields?.shape,r=e?.fieldRoles,c=n.glance?o?.glance??[r?.who,r?.when].filter(f=>!!f):be(o?.page),h=n.glance&&o?.glance!==void 0,S=[...new Set(h?c:[...c,...De(e),...Object.keys(t)])].filter(f=>Object.hasOwn(t,f)).map(f=>[f,t[f]]);for(let[f,a]of S){if(i.has(f)||a===void 0||a===null||pe(e,f))continue;let u=o?.format?.[f],p=u?[]:ne(a);if(p[0]&&n.glance)continue;let m=e?.fields?.shape?.[f],$=!u&&typeof a=="string"&&oe(m)?a:void 0,w=!u&&typeof a=="string"&&le(m);if($&&n.glance)continue;let R=u?void 0:ie(m),k=R?{relation:R,refs:re(a,R)}:void 0;if(k&&(n.glance||k.refs.length===0)||!p[0]&&typeof a=="object"&&(!Array.isArray(a)||a.some(g=>typeof g=="object"&&g!==null))&&u===void 0)continue;let V=typeof a=="string"&&!u?ke(a,t[`${f}Repeat`],{locale:n.locale}):void 0,N=p[0]?p.map(g=>`${g.caption?`${g.name} \u2014 ${g.caption}`:g.name}${Q(g)?` (${ee(g)})`:""}`).join(", "):Array.isArray(a)?a.join(", "):typeof a=="boolean"?a?"Yes":"No":String(a),z=u?void 0:me(e,f),G=he(z,a),K=!u&&!z&&typeof a=="number"?O(e?.fields?.shape?.[f])??ye(e,f):void 0,D=k?k.refs.length>1?`${k.refs.length} linked records`:"linked record":u?u(a):K?ue(a,K):ge(z,a,n.locale)??(Array.isArray(a)||typeof a=="boolean"?N:typeof a=="string"&&V!==void 0?V:typeof a=="string"&&_.test(a)&&(a.length===10||Ne(e,f))?x(a,n.locale):typeof a=="string"&&E.test(a)?H(a,n.locale,n.timeZone):typeof a=="string"&&ze(e,f)?U(e,f,a):N),P=typeof a=="string"&&We(e,f,D),A=(n.glance||n.excerpt)&&!u&&(P||w)?ce(D,{markdown:w}):D;if(s.includes(A)||l.some(g=>A.startsWith(g))||n.glance&&(typeof a=="string"||typeof a=="number")&&s.some(g=>Se(g,A)))continue;let T=v(e,f),Re=typeof a=="number"?`${T} ${A}`:typeof a=="boolean"&&!u?`${T}: ${A.toLowerCase()}`:A;if(d.push({key:f,label:T,value:A,stored:N,alone:Re,long:P,...w?{markdown:!0}:{},...p[0]?{files:p}:{},...$?{app:$}:{},...k?{linked:k}:{},...G?{href:G}:{},...se(y?.[`${f}Repeat`])?{repeats:!0}:{}}),n.limit!==void 0&&d.length>=n.limit)break}return Me(d,e)}function Me(t,e){let n=new Map;for(let o of t){let i=Fe(e,o.key);i&&n.set(o.key,new Set(i.map(s=>U(e,o.key,s).toLowerCase())))}return n.size<2?t:t.map(o=>{let i=n.get(o.key);return i!==void 0&&[...n].some(([l,d])=>l!==o.key&&[...i].some(y=>d.has(y)))?{...o,alone:`${o.label}: ${o.value.toLowerCase()}`}:o})}function Fe(t,e){let n=t?.fields?.shape?.[e];for(let o=0;o<6&&n?._zod?.def?.innerType!==void 0;o++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"&&n._zod.def.entries?Object.values(n._zod.def.entries).map(String):void 0}function Ne(t,e){let n=t?.fields?.shape?.[e]?._zod?.def;for(let o=0;o<6&&n?.innerType!==void 0;o++)n=n.innerType._zod?.def;return n?.type==="string"&&(n.checks??[]).some(o=>o._zod?.def?.pattern?.source===_.source)}function ze(t,e){let n=t?.fields?.shape?.[e];for(let o=0;o<6&&n?._zod?.def?.innerType!==void 0;o++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"}function De(t){let e=t?.fields?.shape;return[...Object.keys(e??{}),...Object.keys(t?.computed??{})]}function be(t){return[...t?.fields??[],...(t?.groups??[]).flatMap(e=>e.fields)]}var Te=500,je=160;function Le(t){let e=t;for(let n=0;n<6&&e?._zod?.def?.innerType!==void 0;n++)e=e._zod.def.innerType;return e?._zod?.def?.type==="string"?e._zod.def:void 0}function We(t,e,n){return Le(t?.fields?.shape?.[e])?.checks?.some(i=>i._zod?.def?.check==="max_length"&&(i._zod.def.maximum??0)>Te)?!0:typeof n=="string"&&(n.includes(`
2
+ `)||n.length>je)}function ln(t,e){let n=t?.display?.page,o=n?.groups??[],i=new Map(e.map(r=>[r.key,r])),s=new Set(be(n)),l=r=>r.flatMap(c=>i.has(c)?[i.get(c)]:[]),d=e.filter(r=>!s.has(r.key));return[{fields:[...l(n?.fields??[]),...o.length>0?[]:d]},...o.map(r=>({title:r.title,fields:l(r.fields)})),...o.length>0?[{title:"Details",fields:d}]:[]].filter(r=>r.fields.length>0)}function Ce(t,e,n){let o=[...e?.creates??[],...e?.subject&&e.subject.kinds!=="*"?e.subject.kinds:[]];for(let i of o){let s=t.tryDefinition(i),l=s?.fields?.shape??{};if(!s||!(n in l))continue;let d=s.display?.format?.[n];return{label:s.display?.labels?.[n]??v(s,n),option:r=>d?d(r):W(r)}}return{label:v(void 0,n),option:i=>W(i)}}function pn(t,e,n){if(n instanceof fe){let o=e.find(s=>s.name===n.mutation);return`Not yet: ${n.issues.map(s=>{let l=s.path.length>0?Ce(t,o,String(s.path[0])).label:void 0;return l?`${l} \u2014 ${q(s.message)}`:s.message}).join("; ")}.`}return n instanceof Error?n.message:String(n)}var Ie=t=>/^[A-Z]{3}$/.test(t??"");function we(t){let{format:e,unit:n,currency:o,locale:i}=t,s=Ie(n),l=e==="money"||!e&&s,d=l?s?n:o:void 0;return{...l?{format:"money"}:e?{format:e}:{},...n&&!(l&&s)?{unit:n}:{},...d?{currency:d}:{},...i?{locale:i}:{}}}function gn(t){switch(t.format){case"money":return t.currency?`An amount of money in ${t.currency}: a plain number, 1250.5 for 1,250.50 ${t.currency}.`:"An amount of money, in no named currency: a plain number.";case"percent":return"A fraction said as a percent: 0.15 is 15%.";default:return t.unit?`A number of ${t.unit}.`:"A number."}}function Ae(t){let e=j(t)?.innerType;return e===void 0?t:Ae(e)}var Ue={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Ve=t=>(t?._zod?.def?.checks??[]).map(e=>e._zod?.def).filter(e=>e!==void 0);function $e(t){let e=Ae(t),n=j(e),o=n?.type,i=Ve(e);if(o==="enum")return{type:"choice",options:Object.keys(n?.entries??{})};let s=te(e);if(s)return s==="image"?{type:"file",image:!0}:s==="video"?{type:"file",video:!0}:{type:"file"};if(o==="boolean")return{type:"boolean"};if(o==="array"){let l=$e(n?.element);return l.type==="unknown"?{type:"unknown"}:{type:"several",of:l}}if(o==="number"){let l,d,y;for(let r of i){r.check==="multiple_of"&&typeof r.value=="number"?y=r.value:r.check==="number_format"&&(r.format==="safeint"||r.format==="int32"||r.format==="uint32")&&(y??=1);let c=r.check==="number_format"&&r.format?Ue[r.format]:void 0,h=c?c[0]:r.check==="greater_than"&&r.inclusive&&typeof r.value=="number"?r.value:void 0,b=c?c[1]:r.check==="less_than"&&r.inclusive&&typeof r.value=="number"?r.value:void 0;h!==void 0&&(l=l===void 0?h:Math.max(l,h)),b!==void 0&&(d=d===void 0?b:Math.min(d,b))}return{type:"number",...l===void 0?{}:{min:l},...d===void 0?{}:{max:d},...y===void 0?{}:{step:y},...I(e)==="duration"?{duration:!0}:{},...O(t)?{amount:we(O(t))}:{}}}if(o==="string"){if(i.some(c=>c.fn===Z||c.format==="datetime")||n?.format==="datetime")return{type:"date",time:!0,instant:!0};let d=[n?.pattern,...i.map(c=>c.pattern)].filter(c=>c instanceof RegExp).map(c=>c.source);if(d.some(c=>c.includes("\\d{4}")))return d.some(c=>c.includes("\\d{2}:\\d{2}"))?{type:"date",time:!0}:d.includes(_.source)?{type:"date",partial:!0}:{type:"date"};let y=i.some(c=>c.check==="max_length"&&typeof c.maximum=="number"&&c.maximum>500),r=I(e);return y?{type:"text",long:!0}:r==="phone"||r==="place"?{type:"text",holds:r}:{type:"text"}}return{type:"unknown"}}function _n(t,e){let n=t?.shape;return!n||!(e in n)?{type:"unknown"}:$e(n[e])}export{ve as a,dn as b,an as c,Ee as d,ln as e,we as f,gn as g,Ae as h,$e as i,_n as j,Ce as k,pn as l};