graview 0.1.70 → 0.1.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/preview/chunk.23DATB5Y.js +1 -0
- package/dist/preview/chunk.2INDKSJI.js +1 -0
- package/dist/preview/chunk.3CLTABGP.js +1 -0
- package/dist/preview/{chunk.4O3STSC4.js → chunk.3RRK6UTN.js} +1 -1
- package/dist/preview/chunk.45HUV56Z.js +1 -0
- package/dist/preview/chunk.4HU2ILFY.js +1 -0
- package/dist/preview/{chunk.M7DJJRFH.js → chunk.4LWWXIM4.js} +1 -1
- package/dist/preview/chunk.4O64QV2Y.js +1 -0
- package/dist/preview/{chunk.KP7HUXH5.js → chunk.4QMAYVPU.js} +1 -1
- package/dist/preview/chunk.4UDST6IF.js +1 -0
- package/dist/preview/{chunk.7TZXDPPO.js → chunk.4YZ2A6SJ.js} +3 -3
- package/dist/preview/{chunk.PAIBRJVZ.js → chunk.4ZEHLUXV.js} +1 -1
- package/dist/preview/{chunk.I7CSRZC2.js → chunk.5EQRIZ6I.js} +1 -1
- package/dist/preview/chunk.5OS4SYHE.js +1 -0
- package/dist/preview/{chunk.ZIGW5VOT.js → chunk.5PQV7GFE.js} +1 -1
- package/dist/preview/{chunk.SSHEFQ4R.js → chunk.5WCSQFS5.js} +1 -1
- package/dist/preview/{chunk.RJ7UV3XI.js → chunk.64K5ELSQ.js} +1 -1
- package/dist/preview/{chunk.2T24FYAO.js → chunk.67S2UWBT.js} +1 -1
- package/dist/preview/{chunk.FXCKKVT5.js → chunk.6A3KTD66.js} +1 -1
- package/dist/preview/chunk.6BBUTKFC.js +23 -0
- package/dist/preview/chunk.6IMRCKB4.js +1 -0
- package/dist/preview/chunk.6L6RUOSF.js +5 -0
- package/dist/preview/{chunk.ZGJUCVT5.js → chunk.6TBQV3NO.js} +1 -1
- package/dist/preview/chunk.6ZRVVRDQ.js +1 -0
- package/dist/preview/{chunk.4VTUC5TF.js → chunk.7FI75ZVE.js} +1 -1
- package/dist/preview/{chunk.NKUNCQB3.js → chunk.7KX36ENH.js} +1 -1
- package/dist/preview/{chunk.JPJHM62B.js → chunk.7LPHWJB4.js} +1 -1
- package/dist/preview/chunk.7MDGPTYF.js +1 -0
- package/dist/preview/{chunk.JEQ6CA5M.js → chunk.7PWLRRUS.js} +2 -2
- package/dist/preview/{chunk.YBQUP3KE.js → chunk.7TACFS7Q.js} +1 -1
- package/dist/preview/{chunk.DIVANC3G.js → chunk.7THS3DLZ.js} +1 -1
- package/dist/preview/{chunk.5W7EGQCQ.js → chunk.7XGU6KVF.js} +2 -2
- package/dist/preview/chunk.7ZLCA3WK.js +1 -0
- package/dist/preview/{chunk.4BSEYZMS.js → chunk.ARGEGV5T.js} +1 -1
- package/dist/preview/{chunk.3KF5RYPW.js → chunk.BSWR5SGX.js} +1 -1
- package/dist/preview/{chunk.BBMX3IIO.js → chunk.BWMPC7LK.js} +1 -1
- package/dist/preview/{chunk.55C7WO4X.js → chunk.CEJIH3CN.js} +1 -1
- package/dist/preview/{chunk.F5756PXX.js → chunk.CEOQY5KS.js} +2 -2
- package/dist/preview/{chunk.NZFO6BM3.js → chunk.CGRX6SDE.js} +1 -1
- package/dist/preview/{chunk.C67TMA4U.js → chunk.CPK6CYKN.js} +1 -1
- package/dist/preview/{chunk.T552MHMU.js → chunk.CVN2XFMF.js} +1 -1
- package/dist/preview/{chunk.MGG5DH2S.js → chunk.D4F6QX5L.js} +1 -1
- package/dist/preview/{chunk.M3HLZX6Q.js → chunk.D6ODKMOV.js} +1 -1
- package/dist/preview/{chunk.RECTEAG4.js → chunk.DDSAFU3B.js} +1 -1
- package/dist/preview/{chunk.UJF6YTEO.js → chunk.DG3YNOH3.js} +1 -1
- package/dist/preview/chunk.DGYWNM5U.js +1 -0
- package/dist/preview/{chunk.NBB5ALVJ.js → chunk.DHO3QZYK.js} +1 -1
- package/dist/preview/{chunk.4QBW46XV.js → chunk.DJGZOPAS.js} +1 -1
- package/dist/preview/{chunk.2MWEYNVH.js → chunk.DX7RGK5G.js} +1 -1
- package/dist/preview/{chunk.CZI6J5CE.js → chunk.EA2KYBBR.js} +1 -1
- package/dist/preview/{chunk.DWMFLLJO.js → chunk.EEGVI266.js} +1 -1
- package/dist/preview/{chunk.BQWMHHAZ.js → chunk.EHLV3LND.js} +2 -2
- package/dist/preview/{chunk.3MPLUSVY.js → chunk.EJC7ACZT.js} +1 -1
- package/dist/preview/{chunk.6NYSB6OZ.js → chunk.EJIQDMLU.js} +1 -1
- package/dist/preview/{chunk.QQUZ5RTQ.js → chunk.EOSN5DWW.js} +1 -1
- package/dist/preview/{chunk.2QALBEWP.js → chunk.EPSYX2SF.js} +1 -1
- package/dist/preview/chunk.EUXAIG73.js +1 -0
- package/dist/preview/{chunk.S4QSZRKH.js → chunk.EZQK23AB.js} +1 -1
- package/dist/preview/{chunk.ZTHZHBVN.js → chunk.F5O3HR7X.js} +1 -1
- package/dist/preview/chunk.F6MY6WJ4.js +1 -0
- package/dist/preview/{chunk.UVMHC6VM.js → chunk.F7KVEWFH.js} +1 -1
- package/dist/preview/{chunk.FJXKQZZS.js → chunk.FIUPDGUZ.js} +1 -1
- package/dist/preview/chunk.FNSVGSZI.js +1 -0
- package/dist/preview/chunk.FOHZPYUV.js +1 -0
- package/dist/preview/chunk.FW6M6GIU.js +32 -0
- package/dist/preview/{chunk.IJVR7ZL7.js → chunk.G5AF5IXL.js} +1 -1
- package/dist/preview/{chunk.SCN6IYDG.js → chunk.G767NLBH.js} +1 -1
- package/dist/preview/{chunk.X7HMTN3Z.js → chunk.GFBE4VNT.js} +1 -1
- package/dist/preview/{chunk.U5Q7EVZQ.js → chunk.GFOZVQBQ.js} +1 -1
- package/dist/preview/{chunk.KJAOJTZZ.js → chunk.GKYJQE5A.js} +1 -1
- package/dist/preview/{chunk.YCMMATFK.js → chunk.GOVRX2YX.js} +1 -1
- package/dist/preview/{chunk.U3CV227I.js → chunk.H33XWGAY.js} +1 -1
- package/dist/preview/{chunk.DGDOZHYK.js → chunk.H4BPTMED.js} +1 -1
- package/dist/preview/chunk.HLKDYI6J.js +1 -0
- package/dist/preview/{chunk.C4LC2UEU.js → chunk.HPFEYMGP.js} +1 -1
- package/dist/preview/{chunk.CLJKQLK2.js → chunk.HT35PAHI.js} +2 -2
- package/dist/preview/{chunk.6VG2LCES.js → chunk.HXRHEPPJ.js} +1 -1
- package/dist/preview/{chunk.LZNHTROY.js → chunk.IXYG65TM.js} +1 -1
- package/dist/preview/chunk.IZDB777E.js +1 -0
- package/dist/preview/{chunk.ZQSV5XVB.js → chunk.JAPTTM6Y.js} +1 -1
- package/dist/preview/{chunk.CUA7F3YJ.js → chunk.JCKIJSW7.js} +1 -1
- package/dist/preview/{chunk.WAIIXXVI.js → chunk.JLNTE5CH.js} +2 -2
- package/dist/preview/{chunk.5FQHZVE3.js → chunk.JNK5WBSU.js} +1 -1
- package/dist/preview/chunk.JREA2XDG.js +1 -0
- package/dist/preview/{chunk.CHG522KL.js → chunk.KBJ3UUER.js} +1 -1
- package/dist/preview/{chunk.VBHV4TLG.js → chunk.KHRS2SKB.js} +1 -1
- package/dist/preview/{chunk.CZUUFO6A.js → chunk.KJPLX72N.js} +1 -1
- package/dist/preview/{chunk.7LAXSQQY.js → chunk.KZUHXOZU.js} +2 -2
- package/dist/preview/{chunk.R65YX332.js → chunk.L3MLGFIS.js} +1 -1
- package/dist/preview/{chunk.RXUL6P7Y.js → chunk.L6P55HFW.js} +1 -1
- package/dist/preview/{chunk.J4NY2K2A.js → chunk.LDWWUKKX.js} +1 -1
- package/dist/preview/{chunk.RIP2SAQ5.js → chunk.LHCGC3K6.js} +1 -1
- package/dist/preview/{chunk.IQCMV5WD.js → chunk.LNKY6MT4.js} +1 -1
- package/dist/preview/chunk.LQ5J6YQW.js +1 -0
- package/dist/preview/{chunk.O2XPLDMM.js → chunk.MEAUTBVM.js} +1 -1
- package/dist/preview/chunk.MEBKTW7H.js +17 -0
- package/dist/preview/{chunk.K6EKSURO.js → chunk.MFMC35ET.js} +1 -1
- package/dist/preview/chunk.MJ4T6YXI.js +1 -0
- package/dist/preview/{chunk.SWY6DIE4.js → chunk.MKJV3BM5.js} +3 -3
- package/dist/preview/chunk.ML4X7VVK.js +1 -0
- package/dist/preview/{chunk.ZOSTOVXR.js → chunk.MM7MLBGB.js} +1 -1
- package/dist/preview/{chunk.NCBUECIW.js → chunk.MQNW3O67.js} +1 -1
- package/dist/preview/{chunk.CVVNHQPO.js → chunk.MT252WP4.js} +1 -1
- package/dist/preview/{chunk.VKQONZKR.js → chunk.MWWNKM3I.js} +1 -1
- package/dist/preview/chunk.N3MXLORL.js +3 -0
- package/dist/preview/{chunk.SUYYDJGZ.js → chunk.NH3VXTGX.js} +1 -1
- package/dist/preview/{chunk.IRPMGHZN.js → chunk.NI4OPHTL.js} +1 -1
- package/dist/preview/chunk.NNGG7RCO.js +1 -0
- package/dist/preview/{chunk.MZSWWMX6.js → chunk.NXHEOHRR.js} +1 -1
- package/dist/preview/{chunk.A5ENJJZN.js → chunk.O5RPSUXV.js} +1 -1
- package/dist/preview/{chunk.CM7EDQ4E.js → chunk.OKHXXIMN.js} +1 -1
- package/dist/preview/chunk.OOQG2AEF.js +1 -0
- package/dist/preview/{chunk.MYR36HW4.js → chunk.OPMGQS5J.js} +1 -1
- package/dist/preview/{chunk.TUVPQLFL.js → chunk.OUF2QFZL.js} +1 -1
- package/dist/preview/{chunk.6QMRDSTD.js → chunk.OVSKPBPS.js} +1 -1
- package/dist/preview/chunk.OYMN3IFX.js +1 -0
- package/dist/preview/{chunk.3HFBHLXC.js → chunk.P43LPXXJ.js} +1 -1
- package/dist/preview/{chunk.FSZQTX3K.js → chunk.PGT4ZQDG.js} +4 -4
- package/dist/preview/{chunk.5IM2X3VT.js → chunk.PQTXM4VY.js} +1 -1
- package/dist/preview/{chunk.U2DZE7A5.js → chunk.Q6GEPVQ7.js} +1 -1
- package/dist/preview/{chunk.HMV4ILAC.js → chunk.QDDDKEBH.js} +1 -1
- package/dist/preview/{chunk.6KYTCEIH.js → chunk.QJJWAYHB.js} +1 -1
- package/dist/preview/{chunk.QAERSZVB.js → chunk.QK4QZVQG.js} +1 -1
- package/dist/preview/{chunk.XAN7QXMQ.js → chunk.QKRQPUCE.js} +1 -1
- package/dist/preview/{chunk.I3ADXJQW.js → chunk.QNWGDG2Z.js} +1 -1
- package/dist/preview/{chunk.NZ5TJKPT.js → chunk.QVBP4UZG.js} +2 -2
- package/dist/preview/{chunk.YTRUZ56A.js → chunk.RDUGUC7R.js} +1 -1
- package/dist/preview/{chunk.TVNY7F64.js → chunk.RHIP2UYE.js} +1 -1
- package/dist/preview/{chunk.PYGNO2AV.js → chunk.RJ7VSWTA.js} +3 -3
- package/dist/preview/{chunk.LEZGBHPZ.js → chunk.RO3D2RNP.js} +1 -1
- package/dist/preview/{chunk.KOVTQCHX.js → chunk.S2BMI23H.js} +1 -1
- package/dist/preview/{chunk.XJ4JYROM.js → chunk.SPJ34VHA.js} +1 -1
- package/dist/preview/{chunk.LZ3HO3HM.js → chunk.T6KOL7TW.js} +1 -1
- package/dist/preview/{chunk.BJ3G7J2Z.js → chunk.T6UJEXFL.js} +3 -2
- package/dist/preview/{chunk.T4QRIJE4.js → chunk.TBEKEHFS.js} +1 -1
- package/dist/preview/chunk.TO3ZKCA2.js +1 -0
- package/dist/preview/{chunk.QILGAV7H.js → chunk.TQ3MNB6K.js} +1 -1
- package/dist/preview/{chunk.F5XWYO5W.js → chunk.TRP66PHK.js} +1 -1
- package/dist/preview/{chunk.QODVFVWE.js → chunk.TSZ2S3VG.js} +1 -1
- package/dist/preview/{chunk.DWPM7AWA.js → chunk.TTM5GQ2U.js} +1 -1
- package/dist/preview/chunk.TUBY6SV3.js +1 -0
- package/dist/preview/{chunk.7QWGIGHM.js → chunk.U5KJQFAP.js} +1 -1
- package/dist/preview/chunk.U6V4KZF5.js +1 -0
- package/dist/preview/chunk.UJ7RTNT4.js +1 -0
- package/dist/preview/{chunk.MR776WQ2.js → chunk.UQZ2P6KD.js} +1 -1
- package/dist/preview/{chunk.OXXZGPJZ.js → chunk.UZKBFI52.js} +1 -1
- package/dist/preview/{chunk.HIJ72QX6.js → chunk.V5JB5UJS.js} +1 -1
- package/dist/preview/{chunk.3I2SGKKF.js → chunk.VDFQFLTU.js} +1 -1
- package/dist/preview/{chunk.I6HIVTXU.js → chunk.VGYG2IBZ.js} +1 -1
- package/dist/preview/chunk.VICBF3MQ.js +2 -0
- package/dist/preview/{chunk.TD2V74XU.js → chunk.VL3YDD7D.js} +1 -1
- package/dist/preview/{chunk.A7JORJJL.js → chunk.VPFUOTY7.js} +1 -1
- package/dist/preview/{chunk.UWEFODVV.js → chunk.VUDNQOOX.js} +1 -1
- package/dist/preview/{chunk.YIDNZTON.js → chunk.VVIQSFM4.js} +1 -1
- package/dist/preview/{chunk.J65CZJIC.js → chunk.W332P5T3.js} +1 -1
- package/dist/preview/{chunk.S6IKR6RD.js → chunk.W3TJF4EH.js} +1 -1
- package/dist/preview/{chunk.7FTATAH2.js → chunk.W5O5F4FT.js} +1 -1
- package/dist/preview/chunk.W6L2VAJG.js +2 -0
- package/dist/preview/{chunk.QG3LV4RH.js → chunk.WGH2P2YL.js} +1 -1
- package/dist/preview/{chunk.KV3N6VRG.js → chunk.WS5ORRGS.js} +1 -1
- package/dist/preview/{chunk.7HNMG6LG.js → chunk.WU6D3SPL.js} +1 -1
- package/dist/preview/{chunk.MSWOETXN.js → chunk.X2UYEA7H.js} +1 -1
- package/dist/preview/{chunk.FBDCHJS2.js → chunk.X45EITTK.js} +1 -1
- package/dist/preview/{chunk.JIEBGUCA.js → chunk.X7U3JMBR.js} +1 -1
- package/dist/preview/chunk.XSM4OTF4.js +1 -0
- package/dist/preview/{chunk.5A5DI36V.js → chunk.XTHSPLZZ.js} +1 -1
- package/dist/preview/{chunk.TS5APXWC.js → chunk.Y5WQD6KV.js} +1 -1
- package/dist/preview/{chunk.3QPMFUMV.js → chunk.YXVUJ3NB.js} +1 -1
- package/dist/preview/{chunk.F5STM4DX.js → chunk.Z22C2JJ4.js} +1 -1
- package/dist/preview/{chunk.BBLA4PSP.js → chunk.Z2BCOZDZ.js} +1 -1
- package/dist/preview/{chunk.BZXJKWNI.js → chunk.Z3TK2LJM.js} +1 -1
- package/dist/preview/chunk.ZGLOXN7O.js +1 -0
- package/dist/preview/{chunk.UJM5EZDM.js → chunk.ZLQIGZXO.js} +1 -1
- package/dist/preview/{chunk.FUTSLXWN.js → chunk.ZONRIOIA.js} +1 -1
- package/dist/preview/{chunk.NTAC5NNE.js → chunk.ZY3NAJDM.js} +1 -1
- package/dist/preview/index.html +55 -55
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.2QOB62XU.js +0 -1
- package/dist/preview/chunk.36FKQJFM.js +0 -2
- package/dist/preview/chunk.3A3DCALP.js +0 -1
- package/dist/preview/chunk.3GPYKWAD.js +0 -1
- package/dist/preview/chunk.3ZP6IDUC.js +0 -1
- package/dist/preview/chunk.53HW224Y.js +0 -1
- package/dist/preview/chunk.AW74DZ5V.js +0 -17
- package/dist/preview/chunk.CCCSZRKU.js +0 -1
- package/dist/preview/chunk.DBSSCJQM.js +0 -1
- package/dist/preview/chunk.DW6KXAUM.js +0 -1
- package/dist/preview/chunk.HHQUCFN4.js +0 -1
- package/dist/preview/chunk.HPWMCS3H.js +0 -23
- package/dist/preview/chunk.HRLCDBMO.js +0 -1
- package/dist/preview/chunk.I7ODVOO5.js +0 -1
- package/dist/preview/chunk.IANOWT3Z.js +0 -1
- package/dist/preview/chunk.IFPJPJ4M.js +0 -1
- package/dist/preview/chunk.IUVRJDL3.js +0 -5
- package/dist/preview/chunk.J4CSY2D5.js +0 -2
- package/dist/preview/chunk.JJIKTTXB.js +0 -1
- package/dist/preview/chunk.KDOJC4FX.js +0 -1
- package/dist/preview/chunk.KLZPUTMU.js +0 -1
- package/dist/preview/chunk.LQ2PDW2M.js +0 -32
- package/dist/preview/chunk.MNWP3TPN.js +0 -1
- package/dist/preview/chunk.NILR2BWR.js +0 -1
- package/dist/preview/chunk.NNYKLENL.js +0 -1
- package/dist/preview/chunk.PZHCWMKT.js +0 -1
- package/dist/preview/chunk.QVID5WHS.js +0 -1
- package/dist/preview/chunk.RHV73CBA.js +0 -3
- package/dist/preview/chunk.RP6C2IUM.js +0 -1
- package/dist/preview/chunk.RPHZY7N4.js +0 -1
- package/dist/preview/chunk.UYBSVE2W.js +0 -1
- package/dist/preview/chunk.WMZ2BINI.js +0 -1
- package/dist/preview/chunk.X2RHBTJI.js +0 -1
- package/dist/preview/chunk.X3FPVFFB.js +0 -1
- package/dist/preview/chunk.X4PFLIXB.js +0 -1
- package/dist/preview/chunk.YR7DKU5T.js +0 -1
- package/dist/preview/chunk.ZBK3FCVE.js +0 -1
- package/dist/preview/chunk.ZH5L746C.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var j={nav:"div",header:"div",footer:"div",aside:"div",search:"div",output:"span"},L=["all","display","position","top","right","bottom","left","inset","inset-block","inset-inline","inset-block-start","inset-block-end","inset-inline-start","inset-inline-end","width","height","min-width","min-height","max-width","max-height","inline-size","block-size","min-inline-size","min-block-size","max-inline-size","max-block-size","margin","margin-top","margin-right","margin-bottom","margin-left","margin-block","margin-inline","margin-block-start","margin-block-end","margin-inline-start","margin-inline-end","padding","padding-top","padding-right","padding-bottom","padding-left","padding-block","padding-inline","padding-block-start","padding-block-end","padding-inline-start","padding-inline-end","box-sizing","overflow","overflow-x","overflow-y","overflow-wrap","float","clear","z-index","aspect-ratio","object-fit","object-position","vertical-align","isolation","contain","container","container-type","container-name","content-visibility","flex","flex-direction","flex-wrap","flex-flow","flex-grow","flex-shrink","flex-basis","order","grid","grid-template","grid-template-columns","grid-template-rows","grid-template-areas","grid-auto-columns","grid-auto-rows","grid-auto-flow","grid-area","grid-column","grid-row","grid-column-start","grid-column-end","grid-row-start","grid-row-end","gap","row-gap","column-gap","align-items","align-content","align-self","justify-items","justify-content","justify-self","place-items","place-content","place-self","columns","column-count","column-width","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-fill","break-inside","break-before","break-after","page-break-inside","page-break-before","page-break-after","orphans","widows","box-decoration-break","-webkit-box-decoration-break","color","background","background-color","background-image","background-position","background-position-x","background-position-y","background-size","background-repeat","background-origin","background-clip","background-attachment","background-blend-mode","border","border-top","border-right","border-bottom","border-left","border-block","border-inline","border-block-start","border-block-end","border-inline-start","border-inline-end","border-width","border-style","border-color","border-top-width","border-right-width","border-bottom-width","border-left-width","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-color","border-right-color","border-bottom-color","border-left-color","border-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","border-start-start-radius","border-start-end-radius","border-end-start-radius","border-end-end-radius","border-collapse","border-spacing","outline","outline-width","outline-style","outline-color","outline-offset","box-shadow","opacity","visibility","mix-blend-mode","filter","backdrop-filter","clip-path","accent-color","caret-color","color-scheme","appearance","-webkit-appearance","mask-image","mask-size","mask-position","mask-repeat","mask-origin","mask-clip","mask-composite","mask-mode","mask-type","-webkit-mask","-webkit-mask-image","-webkit-mask-size","-webkit-mask-position","-webkit-mask-repeat","-webkit-mask-origin","-webkit-mask-clip","-webkit-mask-composite","font","font-family","font-size","font-weight","font-style","font-stretch","font-variant","font-variant-numeric","font-variant-caps","font-variant-ligatures","font-feature-settings","font-variation-settings","font-kerning","font-optical-sizing","font-size-adjust","font-synthesis","line-height","letter-spacing","word-spacing","text-align","text-align-last","text-indent","text-transform","text-decoration","text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","text-underline-position","text-shadow","text-overflow","text-wrap","text-wrap-mode","text-wrap-style","white-space","white-space-collapse","word-break","line-break","hyphens","tab-size","direction","unicode-bidi","writing-mode","text-orientation","text-rendering","-webkit-font-smoothing","-webkit-line-clamp","-webkit-box-orient","line-clamp","-webkit-text-fill-color","-webkit-background-clip","-webkit-text-stroke","-webkit-text-stroke-width","-webkit-text-stroke-color","list-style","list-style-type","list-style-position","content","quotes","counter-reset","counter-increment","counter-set","table-layout","caption-side","empty-cells","transform","transform-origin","transform-box","transform-style","translate","rotate","scale","perspective","perspective-origin","backface-visibility","transition","transition-property","transition-duration","transition-timing-function","transition-delay","transition-behavior","animation","animation-name","animation-duration","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","animation-fill-mode","animation-play-state","animation-composition","will-change","animation-timeline","animation-range","animation-range-start","animation-range-end","scroll-timeline","scroll-timeline-name","scroll-timeline-axis","view-timeline","view-timeline-name","view-timeline-axis","view-timeline-inset","timeline-scope","cursor","pointer-events","user-select","-webkit-user-select","touch-action","resize","scroll-behavior","overscroll-behavior","overscroll-behavior-x","overscroll-behavior-y","scroll-snap-type","scroll-snap-align","scroll-snap-stop","scroll-margin","scroll-padding","scroll-margin-top","scroll-margin-right","scroll-margin-bottom","scroll-margin-left","scroll-margin-block","scroll-margin-block-start","scroll-margin-block-end","scroll-margin-inline","scroll-margin-inline-start","scroll-margin-inline-end","scroll-padding-top","scroll-padding-right","scroll-padding-bottom","scroll-padding-left","scroll-padding-block","scroll-padding-block-start","scroll-padding-block-end","scroll-padding-inline","scroll-padding-inline-start","scroll-padding-inline-end","scrollbar-width","scrollbar-color","scrollbar-gutter","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","stop-color","stop-opacity","clip-rule","marker","marker-start","marker-mid","marker-end","paint-order","vector-effect","shape-rendering","text-anchor","dominant-baseline","alignment-baseline","r","cx","cy","rx","ry","x","y","d","mask","flood-color","flood-opacity","lighting-color","color-interpolation-filters"],W=["var","env","calc","min","max","clamp","round","mod","rem","abs","sign","sin","cos","tan","asin","acos","atan","atan2","pow","sqrt","hypot","log","exp","rgb","rgba","hsl","hsla","hwb","lab","lch","oklab","oklch","color","color-mix","light-dark","linear-gradient","radial-gradient","conic-gradient","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","translate","translatex","translatey","translatez","translate3d","rotate","rotatex","rotatey","rotatez","rotate3d","scale","scalex","scaley","scalez","scale3d","skew","skewx","skewy","matrix","matrix3d","perspective","cubic-bezier","steps","linear","repeat","minmax","fit-content","blur","brightness","contrast","drop-shadow","grayscale","hue-rotate","invert","saturate","sepia","opacity","circle","ellipse","inset","polygon","path","xywh","rect","counter","counters","scroll","view"],U=["fill","stroke","clip-path","mask","marker","marker-start","marker-mid","marker-end","filter"],M=["media","supports","container","keyframes"],K={position:["static","relative","absolute","sticky"],all:[],appearance:["auto","none","menulist-button","textfield"],"-webkit-appearance":["auto","none","menulist-button","textfield"]},X=["host","host-context","slotted","part","backdrop","picker","view-transition","view-transition-group","view-transition-image-pair","view-transition-old","view-transition-new"],Z=["-webkit-details-marker"],S=64e3;var p=e=>e>=48&&e<=57,H=e=>p(e)||e>=65&&e<=70||e>=97&&e<=102,D=e=>e>=65&&e<=90||e>=97&&e<=122,A=e=>e>=128,v=e=>D(e)||A(e)||e===95,G=e=>v(e)||p(e)||e===45,Y=e=>e===10,h=e=>e===10||e===9||e===32,fe=e=>e>=0&&e<=8||e===11||e>=14&&e<=31||e===127,g=-1;function me(e){let r=[];for(let t=0;t<e.length;t+=1){let n=e.codePointAt(t);n>65535&&(t+=1),n===13?(e.charCodeAt(t+1)===10&&(t+=1),n=10):n===12?n=10:(n===0||n>=55296&&n<=57343)&&(n=65533),r.push(n)}return r}function ee(e){let r=me(e),t=0,n=(s=0)=>t+s<r.length?r[t+s]:g,i=[],o=(s,l)=>s===92&&l!==10&&l!==g,a=(s,l,m)=>s===45?v(l)||l===45||o(l,m):v(s)?!0:o(s,l),u=(s,l,m)=>s===43||s===45?p(l)||l===46&&p(m):p(s===46?l:s),c=()=>{let s=n();if(t+=1,s===g)return 65533;if(H(s)){let l=String.fromCodePoint(s);for(;l.length<6&&H(n());)l+=String.fromCodePoint(n()),t+=1;h(n())&&(t+=1);let m=parseInt(l,16);return m===0||m>=55296&&m<=57343||m>1114111?65533:m}return s},d=()=>{let s="";for(;;){let l=n();if(G(l))s+=String.fromCodePoint(l),t+=1;else if(o(l,n(1)))t+=1,s+=String.fromCodePoint(c());else return s}},f=()=>{let s="";for((n()===43||n()===45)&&(s+=String.fromCodePoint(r[t++]));p(n());)s+=String.fromCodePoint(r[t++]);if(n()===46&&p(n(1)))for(s+=String.fromCodePoint(r[t++],r[t++]);p(n());)s+=String.fromCodePoint(r[t++]);if((n()===69||n()===101)&&(p(n(1))||(n(1)===43||n(1)===45)&&p(n(2))))for(s+=String.fromCodePoint(r[t++]),p(n())||(s+=String.fromCodePoint(r[t++]));p(n());)s+=String.fromCodePoint(r[t++]);return s},x=()=>{let s=f();return a(n(),n(1),n(2))?{type:"dimension",repr:s,unit:d()}:n()===37?(t+=1,{type:"percentage",repr:s}):{type:"number",repr:s}},b=()=>{for(;;){let s=n();if(t+=1,s===41||s===g)return;o(s,n())&&c()}},de=()=>{let s="";for(;h(n());)t+=1;for(;;){let l=n();if(t+=1,l===41)return{type:"url",value:s};if(l===g)return{type:"url",value:s};if(h(l)){for(;h(n());)t+=1;return n()===41||n()===g?(n()===41&&(t+=1),{type:"url",value:s}):(b(),{type:"bad-url"})}if(l===34||l===39||l===40||fe(l))return b(),{type:"bad-url"};if(l===92){if(o(l,n()))s+=String.fromCodePoint(c());else return b(),{type:"bad-url"};continue}s+=String.fromCodePoint(l)}},O=()=>{let s=d();if(s.toLowerCase()==="url"&&n()===40){for(t+=1;h(n())&&h(n(1));)t+=1;let l=h(n())?n(1):n();return l===34||l===39?{type:"function",value:s}:de()}return n()===40?(t+=1,{type:"function",value:s}):{type:"ident",value:s}},pe=s=>{let l="";for(;;){let m=n();if(t+=1,m===s||m===g)return{type:"string",value:l};if(Y(m))return t-=1,{type:"bad-string"};if(m===92){if(n()===g)continue;if(Y(n())){t+=1;continue}l+=String.fromCodePoint(c());continue}l+=String.fromCodePoint(m)}};for(;;){for(;n()===47&&n(1)===42;){for(t+=2;n()!==g&&!(n()===42&&n(1)===47);)t+=1;n()!==g&&(t+=2)}let s=n();if(s===g)return i;if(h(s)){for(;h(n());)t+=1;i.push({type:"whitespace"});continue}switch(t+=1,s){case 34:case 39:i.push(pe(s));continue;case 35:if(G(n())||o(n(),n(1))){let l=a(n(),n(1),n(2));i.push({type:"hash",value:d(),id:l})}else i.push({type:"delim",value:"#"});continue;case 40:i.push({type:"("});continue;case 41:i.push({type:")"});continue;case 43:case 46:u(s,n(),n(1))?(t-=1,i.push(x())):i.push({type:"delim",value:String.fromCodePoint(s)});continue;case 44:i.push({type:","});continue;case 45:u(s,n(),n(1))?(t-=1,i.push(x())):n()===45&&n(1)===62?(t+=2,i.push({type:"CDC"})):a(s,n(),n(1))?(t-=1,i.push(O())):i.push({type:"delim",value:"-"});continue;case 58:i.push({type:":"});continue;case 59:i.push({type:";"});continue;case 60:n()===33&&n(1)===45&&n(2)===45?(t+=3,i.push({type:"CDO"})):i.push({type:"delim",value:"<"});continue;case 64:a(n(),n(1),n(2))?i.push({type:"at-keyword",value:d()}):i.push({type:"delim",value:"@"});continue;case 91:i.push({type:"["});continue;case 92:o(s,n())?(t-=1,i.push(O())):i.push({type:"delim",value:"\\"});continue;case 93:i.push({type:"]"});continue;case 123:i.push({type:"{"});continue;case 125:i.push({type:"}"});continue;default:p(s)?(t-=1,i.push(x())):v(s)?(t-=1,i.push(O())):i.push({type:"delim",value:String.fromCodePoint(s)})}}}var ne={"{":"}","[":"]","(":")"},te=32,P=class{constructor(r){this.tokens=r}i=0;peek(){return this.tokens[this.i]}next(){return this.tokens[this.i++]}};function re(e,r){let t=e.next();return t.type==="{"||t.type==="["||t.type==="("?{type:"block",open:t.type,value:q(e,ne[t.type],r+1)}:t.type==="function"?{type:"func",name:t.value,value:q(e,")",r+1)}:t}function q(e,r,t){let n=[];for(;;){let i=e.peek();if(!i)return n;if(i.type===r)return e.next(),n;if(t>te){e.next(),n.push({type:"bad-string"});continue}n.push(re(e,t))}}function w(e,r){let t=[],n=0;for(;n<e.length;){let i=e[n];if(i.type==="whitespace"||r&&(i.type==="CDO"||i.type==="CDC")){n+=1;continue}if(i.type==="at-keyword"){let u=[];n+=1;let c;for(;n<e.length;){let d=e[n];if(n+=1,d.type===";")break;if(d.type==="block"&&d.open==="{"){c=d.value;break}u.push(d)}t.push({type:"at-rule",name:i.value,prelude:u,...c?{block:c}:{}});continue}let o=[],a;for(;n<e.length;){let u=e[n];if(n+=1,u.type==="block"&&u.open==="{"){a=u.value;break}o.push(u)}a&&t.push({type:"qualified",prelude:o,block:a})}return t}function F(e){let r=[],t=0;for(;t<e.length;){let n=e[t];if(n.type==="whitespace"||n.type===";"){t+=1;continue}if(n.type==="at-keyword"){let o=(()=>{for(let a=t+1;a<e.length;a+=1){let u=e[a];if(u.type===";"||u.type==="block"&&u.open==="{")return a+1}return e.length})();r.push(...w(e.slice(t,o),!1)),t=o;continue}if(n.type==="ident"){let o=t+1;for(;e[o]?.type==="whitespace";)o+=1;if(e[o]?.type===":"){let a=o+1;for(;a<e.length&&e[a].type!==";";)a+=1;let u=ie(n.value,e.slice(o+1,a));if(u.value.some(c=>c.type==="block"&&c.open==="{")){let c=e.findIndex((d,f)=>f>t&&d.type==="block"&&d.open==="{");r.push(...w(e.slice(t,c+1),!1)),t=c+1;continue}r.push(u),t=a+1;continue}}let i=t;for(;i<e.length&&!(e[i].type==="block"&&e[i].open==="{")&&e[i].type!==";";)i+=1;i<e.length&&e[i].type==="block"&&r.push(...w(e.slice(t,i+1),!1)),t=i+1}return r}function ie(e,r){let t=[...r];for(;t[0]?.type==="whitespace";)t.shift();for(;t.at(-1)?.type==="whitespace";)t.pop();let n=!1,o=t.length-1;if(t[o]?.type==="ident"&&t[o].value.toLowerCase()==="important"){for(o-=1;t[o]?.type==="whitespace";)o-=1;let a=t[o];if(a?.type==="delim"&&a.value==="!")for(n=!0,t.length=o;t.at(-1)?.type==="whitespace";)t.pop()}return{type:"declaration",name:e,value:t,important:n}}function N(e){let r=new P(ee(e)),t=[];for(;r.peek();)t.push(re(r,0));return t}function C(e){let r="",t=[...e].map(n=>n.codePointAt(0));return t.forEach((n,i)=>{n===0?r+="\uFFFD":n>=1&&n<=31||n===127||i===0&&p(n)||i===1&&p(n)&&t[0]===45?r+=`\\${n.toString(16)} `:i===0&&n===45&&t.length===1?r+="\\-":A(n)||n===45||n===95||p(n)||D(n)?r+=String.fromCodePoint(n):r+=`\\${String.fromCodePoint(n)}`}),r}function E(e){let r="";for(let t of e){let n=t.codePointAt(0);A(n)||n===45||n===95||p(n)||D(n)?r+=t:n>=1&&n<=31||n===127?r+=`\\${n.toString(16)} `:r+=`\\${t}`}return r}function R(e){let r='"';for(let t of e){let n=t.codePointAt(0);n===0?r+="\uFFFD":n>=1&&n<=31||n===127||n===60||n===62?r+=`\\${n.toString(16)} `:n===34||n===92?r+=`\\${t}`:r+=t}return`${r}"`}function ye(e){let r=E(e);return/^[eE]([0-9]|[+-][0-9])/.test(e)?`\\${e.codePointAt(0).toString(16)} ${E(e.slice(1))}`:r}var B=e=>{switch(e.type){case"ident":case"url":case"bad-url":case"number":case"percentage":case"dimension":case"CDC":case"hash":case"at-keyword":return e.type;case"func":case"function":return"function";case"block":return e.open==="("?"(":"other";case"(":return"(";case"delim":return`delim${e.value}`;default:return"other"}};function ge(e,r){let t=["ident","function","url","bad-url","delim-","number","percentage","dimension","CDC"];return e==="ident"?[...t,"("].includes(r):e==="at-keyword"||e==="hash"||e==="dimension"||e==="delim#"||e==="delim-"?t.includes(r):e==="number"?["ident","function","url","bad-url","number","percentage","dimension","delim%"].includes(r):e==="delim@"?["ident","function","url","bad-url","delim-","CDC"].includes(r):e==="delim."||e==="delim+"?["number","percentage","dimension"].includes(r):e==="delim/"?r==="delim*":!1}function be(e){switch(e.type){case"whitespace":return" ";case"ident":return C(e.value);case"at-keyword":return`@${C(e.value)}`;case"hash":return`#${E(e.value)}`;case"string":return R(e.value);case"url":return`url(${R(e.value)})`;case"delim":return e.value==="\\"?`\\
|
|
2
|
-
`:e.value;case"CDO":return"<!--";case"CDC":return"-->";case"number":return e.repr;case"percentage":return`${e.repr}%`;case"dimension":return`${e.repr}${ye(e.unit)}`;case"func":return`${C(e.name)}(${k(e.value)})`;case"block":return`${e.open}${k(e.value)}${ne[e.open]}`;case":":case";":case",":case"[":case"]":case"(":case")":case"{":case"}":return e.type;default:return""}}function k(e){let r="",t;for(let n of e)n.type==="whitespace"&&t?.type==="whitespace"||(t&&ge(B(t),B(n))&&(r+="/**/"),r+=be(n),t=n);return r}var he=new Set(L),
|
|
3
|
-
`),refused:t}}function Oe(e,r=S){let t=[],n=[],
|
|
4
|
-
`),refused:n}}function ze(e,r=S){let t=[];if(e.length>r)return{css:"",refused:[{reason:"size"}]};let n=
|
|
1
|
+
var j={nav:"div",header:"div",footer:"div",aside:"div",search:"div",output:"span"},L=["all","display","position","top","right","bottom","left","inset","inset-block","inset-inline","inset-block-start","inset-block-end","inset-inline-start","inset-inline-end","width","height","min-width","min-height","max-width","max-height","inline-size","block-size","min-inline-size","min-block-size","max-inline-size","max-block-size","margin","margin-top","margin-right","margin-bottom","margin-left","margin-block","margin-inline","margin-block-start","margin-block-end","margin-inline-start","margin-inline-end","padding","padding-top","padding-right","padding-bottom","padding-left","padding-block","padding-inline","padding-block-start","padding-block-end","padding-inline-start","padding-inline-end","box-sizing","overflow","overflow-x","overflow-y","overflow-wrap","float","clear","z-index","aspect-ratio","object-fit","object-position","vertical-align","isolation","contain","container","container-type","container-name","content-visibility","flex","flex-direction","flex-wrap","flex-flow","flex-grow","flex-shrink","flex-basis","order","grid","grid-template","grid-template-columns","grid-template-rows","grid-template-areas","grid-auto-columns","grid-auto-rows","grid-auto-flow","grid-area","grid-column","grid-row","grid-column-start","grid-column-end","grid-row-start","grid-row-end","gap","row-gap","column-gap","align-items","align-content","align-self","justify-items","justify-content","justify-self","place-items","place-content","place-self","columns","column-count","column-width","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-fill","break-inside","break-before","break-after","page-break-inside","page-break-before","page-break-after","orphans","widows","box-decoration-break","-webkit-box-decoration-break","color","background","background-color","background-image","background-position","background-position-x","background-position-y","background-size","background-repeat","background-origin","background-clip","background-attachment","background-blend-mode","border","border-top","border-right","border-bottom","border-left","border-block","border-inline","border-block-start","border-block-end","border-inline-start","border-inline-end","border-width","border-style","border-color","border-top-width","border-right-width","border-bottom-width","border-left-width","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-color","border-right-color","border-bottom-color","border-left-color","border-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","border-start-start-radius","border-start-end-radius","border-end-start-radius","border-end-end-radius","border-collapse","border-spacing","outline","outline-width","outline-style","outline-color","outline-offset","box-shadow","opacity","visibility","mix-blend-mode","filter","backdrop-filter","clip-path","accent-color","caret-color","color-scheme","appearance","-webkit-appearance","mask-image","mask-size","mask-position","mask-repeat","mask-origin","mask-clip","mask-composite","mask-mode","mask-type","-webkit-mask","-webkit-mask-image","-webkit-mask-size","-webkit-mask-position","-webkit-mask-repeat","-webkit-mask-origin","-webkit-mask-clip","-webkit-mask-composite","font","font-family","font-size","font-weight","font-style","font-stretch","font-variant","font-variant-numeric","font-variant-caps","font-variant-ligatures","font-feature-settings","font-variation-settings","font-kerning","font-optical-sizing","font-size-adjust","font-synthesis","line-height","letter-spacing","word-spacing","text-align","text-align-last","text-indent","text-transform","text-decoration","text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-thickness","text-underline-offset","text-underline-position","text-shadow","text-overflow","text-wrap","text-wrap-mode","text-wrap-style","white-space","white-space-collapse","word-break","line-break","hyphens","tab-size","direction","unicode-bidi","writing-mode","text-orientation","text-rendering","-webkit-font-smoothing","-webkit-line-clamp","-webkit-box-orient","line-clamp","-webkit-text-fill-color","-webkit-background-clip","-webkit-text-stroke","-webkit-text-stroke-width","-webkit-text-stroke-color","list-style","list-style-type","list-style-position","content","quotes","counter-reset","counter-increment","counter-set","table-layout","caption-side","empty-cells","transform","transform-origin","transform-box","transform-style","translate","rotate","scale","perspective","perspective-origin","backface-visibility","transition","transition-property","transition-duration","transition-timing-function","transition-delay","transition-behavior","animation","animation-name","animation-duration","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","animation-fill-mode","animation-play-state","animation-composition","will-change","animation-timeline","animation-range","animation-range-start","animation-range-end","scroll-timeline","scroll-timeline-name","scroll-timeline-axis","view-timeline","view-timeline-name","view-timeline-axis","view-timeline-inset","timeline-scope","cursor","pointer-events","user-select","-webkit-user-select","touch-action","resize","scroll-behavior","overscroll-behavior","overscroll-behavior-x","overscroll-behavior-y","scroll-snap-type","scroll-snap-align","scroll-snap-stop","scroll-margin","scroll-padding","scroll-margin-top","scroll-margin-right","scroll-margin-bottom","scroll-margin-left","scroll-margin-block","scroll-margin-block-start","scroll-margin-block-end","scroll-margin-inline","scroll-margin-inline-start","scroll-margin-inline-end","scroll-padding-top","scroll-padding-right","scroll-padding-bottom","scroll-padding-left","scroll-padding-block","scroll-padding-block-start","scroll-padding-block-end","scroll-padding-inline","scroll-padding-inline-start","scroll-padding-inline-end","scrollbar-width","scrollbar-color","scrollbar-gutter","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-linecap","stroke-linejoin","stroke-dasharray","stroke-dashoffset","stroke-opacity","stroke-miterlimit","stop-color","stop-opacity","clip-rule","marker","marker-start","marker-mid","marker-end","paint-order","vector-effect","shape-rendering","text-anchor","dominant-baseline","alignment-baseline","r","cx","cy","rx","ry","x","y","d","mask","flood-color","flood-opacity","lighting-color","color-interpolation-filters"],W=["var","env","calc","min","max","clamp","round","mod","rem","abs","sign","sin","cos","tan","asin","acos","atan","atan2","pow","sqrt","hypot","log","exp","rgb","rgba","hsl","hsla","hwb","lab","lch","oklab","oklch","color","color-mix","light-dark","linear-gradient","radial-gradient","conic-gradient","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","translate","translatex","translatey","translatez","translate3d","rotate","rotatex","rotatey","rotatez","rotate3d","scale","scalex","scaley","scalez","scale3d","skew","skewx","skewy","matrix","matrix3d","perspective","cubic-bezier","steps","linear","repeat","minmax","fit-content","blur","brightness","contrast","drop-shadow","grayscale","hue-rotate","invert","saturate","sepia","opacity","circle","ellipse","inset","polygon","path","xywh","rect","counter","counters","scroll","view"],M=["fill","stroke","clip-path","mask","marker","marker-start","marker-mid","marker-end","filter"],U=["media","supports","container","keyframes"],K={position:["static","relative","absolute","sticky"],all:[],appearance:["auto","none","menulist-button","textfield"],"-webkit-appearance":["auto","none","menulist-button","textfield"]},X=["host","host-context","slotted","part","backdrop","picker","view-transition","view-transition-group","view-transition-image-pair","view-transition-old","view-transition-new"],Y=["-webkit-details-marker"],S=64e3;var p=e=>e>=48&&e<=57,Z=e=>p(e)||e>=65&&e<=70||e>=97&&e<=102,D=e=>e>=65&&e<=90||e>=97&&e<=122,F=e=>e>=128,v=e=>D(e)||F(e)||e===95,H=e=>v(e)||p(e)||e===45,G=e=>e===10,h=e=>e===10||e===9||e===32,fe=e=>e>=0&&e<=8||e===11||e>=14&&e<=31||e===127,g=-1;function me(e){let r=[];for(let t=0;t<e.length;t+=1){let n=e.codePointAt(t);n>65535&&(t+=1),n===13?(e.charCodeAt(t+1)===10&&(t+=1),n=10):n===12?n=10:(n===0||n>=55296&&n<=57343)&&(n=65533),r.push(n)}return r}function ee(e){let r=me(e),t=0,n=(s=0)=>t+s<r.length?r[t+s]:g,o=[],i=(s,l)=>s===92&&l!==10&&l!==g,a=(s,l,m)=>s===45?v(l)||l===45||i(l,m):v(s)?!0:i(s,l),u=(s,l,m)=>s===43||s===45?p(l)||l===46&&p(m):p(s===46?l:s),c=()=>{let s=n();if(t+=1,s===g)return 65533;if(Z(s)){let l=String.fromCodePoint(s);for(;l.length<6&&Z(n());)l+=String.fromCodePoint(n()),t+=1;h(n())&&(t+=1);let m=parseInt(l,16);return m===0||m>=55296&&m<=57343||m>1114111?65533:m}return s},d=()=>{let s="";for(;;){let l=n();if(H(l))s+=String.fromCodePoint(l),t+=1;else if(i(l,n(1)))t+=1,s+=String.fromCodePoint(c());else return s}},f=()=>{let s="";for((n()===43||n()===45)&&(s+=String.fromCodePoint(r[t++]));p(n());)s+=String.fromCodePoint(r[t++]);if(n()===46&&p(n(1)))for(s+=String.fromCodePoint(r[t++],r[t++]);p(n());)s+=String.fromCodePoint(r[t++]);if((n()===69||n()===101)&&(p(n(1))||(n(1)===43||n(1)===45)&&p(n(2))))for(s+=String.fromCodePoint(r[t++]),p(n())||(s+=String.fromCodePoint(r[t++]));p(n());)s+=String.fromCodePoint(r[t++]);return s},x=()=>{let s=f();return a(n(),n(1),n(2))?{type:"dimension",repr:s,unit:d()}:n()===37?(t+=1,{type:"percentage",repr:s}):{type:"number",repr:s}},b=()=>{for(;;){let s=n();if(t+=1,s===41||s===g)return;i(s,n())&&c()}},de=()=>{let s="";for(;h(n());)t+=1;for(;;){let l=n();if(t+=1,l===41)return{type:"url",value:s};if(l===g)return{type:"url",value:s};if(h(l)){for(;h(n());)t+=1;return n()===41||n()===g?(n()===41&&(t+=1),{type:"url",value:s}):(b(),{type:"bad-url"})}if(l===34||l===39||l===40||fe(l))return b(),{type:"bad-url"};if(l===92){if(i(l,n()))s+=String.fromCodePoint(c());else return b(),{type:"bad-url"};continue}s+=String.fromCodePoint(l)}},O=()=>{let s=d();if(s.toLowerCase()==="url"&&n()===40){for(t+=1;h(n())&&h(n(1));)t+=1;let l=h(n())?n(1):n();return l===34||l===39?{type:"function",value:s}:de()}return n()===40?(t+=1,{type:"function",value:s}):{type:"ident",value:s}},pe=s=>{let l="";for(;;){let m=n();if(t+=1,m===s||m===g)return{type:"string",value:l};if(G(m))return t-=1,{type:"bad-string"};if(m===92){if(n()===g)continue;if(G(n())){t+=1;continue}l+=String.fromCodePoint(c());continue}l+=String.fromCodePoint(m)}};for(;;){for(;n()===47&&n(1)===42;){for(t+=2;n()!==g&&!(n()===42&&n(1)===47);)t+=1;n()!==g&&(t+=2)}let s=n();if(s===g)return o;if(h(s)){for(;h(n());)t+=1;o.push({type:"whitespace"});continue}switch(t+=1,s){case 34:case 39:o.push(pe(s));continue;case 35:if(H(n())||i(n(),n(1))){let l=a(n(),n(1),n(2));o.push({type:"hash",value:d(),id:l})}else o.push({type:"delim",value:"#"});continue;case 40:o.push({type:"("});continue;case 41:o.push({type:")"});continue;case 43:case 46:u(s,n(),n(1))?(t-=1,o.push(x())):o.push({type:"delim",value:String.fromCodePoint(s)});continue;case 44:o.push({type:","});continue;case 45:u(s,n(),n(1))?(t-=1,o.push(x())):n()===45&&n(1)===62?(t+=2,o.push({type:"CDC"})):a(s,n(),n(1))?(t-=1,o.push(O())):o.push({type:"delim",value:"-"});continue;case 58:o.push({type:":"});continue;case 59:o.push({type:";"});continue;case 60:n()===33&&n(1)===45&&n(2)===45?(t+=3,o.push({type:"CDO"})):o.push({type:"delim",value:"<"});continue;case 64:a(n(),n(1),n(2))?o.push({type:"at-keyword",value:d()}):o.push({type:"delim",value:"@"});continue;case 91:o.push({type:"["});continue;case 92:i(s,n())?(t-=1,o.push(O())):o.push({type:"delim",value:"\\"});continue;case 93:o.push({type:"]"});continue;case 123:o.push({type:"{"});continue;case 125:o.push({type:"}"});continue;default:p(s)?(t-=1,o.push(x())):v(s)?(t-=1,o.push(O())):o.push({type:"delim",value:String.fromCodePoint(s)})}}}var ne={"{":"}","[":"]","(":")"},te=32,P=class{constructor(r){this.tokens=r}i=0;peek(){return this.tokens[this.i]}next(){return this.tokens[this.i++]}};function re(e,r){let t=e.next();return t.type==="{"||t.type==="["||t.type==="("?{type:"block",open:t.type,value:q(e,ne[t.type],r+1)}:t.type==="function"?{type:"func",name:t.value,value:q(e,")",r+1)}:t}function q(e,r,t){let n=[];for(;;){let o=e.peek();if(!o)return n;if(o.type===r)return e.next(),n;if(t>te){e.next(),n.push({type:"bad-string"});continue}n.push(re(e,t))}}function w(e,r){let t=[],n=0;for(;n<e.length;){let o=e[n];if(o.type==="whitespace"||r&&(o.type==="CDO"||o.type==="CDC")){n+=1;continue}if(o.type==="at-keyword"){let u=[];n+=1;let c;for(;n<e.length;){let d=e[n];if(n+=1,d.type===";")break;if(d.type==="block"&&d.open==="{"){c=d.value;break}u.push(d)}t.push({type:"at-rule",name:o.value,prelude:u,...c?{block:c}:{}});continue}let i=[],a;for(;n<e.length;){let u=e[n];if(n+=1,u.type==="block"&&u.open==="{"){a=u.value;break}i.push(u)}a&&t.push({type:"qualified",prelude:i,block:a})}return t}function A(e){let r=[],t=0;for(;t<e.length;){let n=e[t];if(n.type==="whitespace"||n.type===";"){t+=1;continue}if(n.type==="at-keyword"){let i=(()=>{for(let a=t+1;a<e.length;a+=1){let u=e[a];if(u.type===";"||u.type==="block"&&u.open==="{")return a+1}return e.length})();r.push(...w(e.slice(t,i),!1)),t=i;continue}if(n.type==="ident"){let i=t+1;for(;e[i]?.type==="whitespace";)i+=1;if(e[i]?.type===":"){let a=i+1;for(;a<e.length&&e[a].type!==";";)a+=1;let u=oe(n.value,e.slice(i+1,a));if(u.value.some(c=>c.type==="block"&&c.open==="{")){let c=e.findIndex((d,f)=>f>t&&d.type==="block"&&d.open==="{");r.push(...w(e.slice(t,c+1),!1)),t=c+1;continue}r.push(u),t=a+1;continue}}let o=t;for(;o<e.length&&!(e[o].type==="block"&&e[o].open==="{")&&e[o].type!==";";)o+=1;o<e.length&&e[o].type==="block"&&r.push(...w(e.slice(t,o+1),!1)),t=o+1}return r}function oe(e,r){let t=[...r];for(;t[0]?.type==="whitespace";)t.shift();for(;t.at(-1)?.type==="whitespace";)t.pop();let n=!1,i=t.length-1;if(t[i]?.type==="ident"&&t[i].value.toLowerCase()==="important"){for(i-=1;t[i]?.type==="whitespace";)i-=1;let a=t[i];if(a?.type==="delim"&&a.value==="!")for(n=!0,t.length=i;t.at(-1)?.type==="whitespace";)t.pop()}return{type:"declaration",name:e,value:t,important:n}}function N(e){let r=new P(ee(e)),t=[];for(;r.peek();)t.push(re(r,0));return t}function C(e){let r="",t=[...e].map(n=>n.codePointAt(0));return t.forEach((n,o)=>{n===0?r+="\uFFFD":n>=1&&n<=31||n===127||o===0&&p(n)||o===1&&p(n)&&t[0]===45?r+=`\\${n.toString(16)} `:o===0&&n===45&&t.length===1?r+="\\-":F(n)||n===45||n===95||p(n)||D(n)?r+=String.fromCodePoint(n):r+=`\\${String.fromCodePoint(n)}`}),r}function E(e){let r="";for(let t of e){let n=t.codePointAt(0);F(n)||n===45||n===95||p(n)||D(n)?r+=t:n>=1&&n<=31||n===127?r+=`\\${n.toString(16)} `:r+=`\\${t}`}return r}function R(e){let r='"';for(let t of e){let n=t.codePointAt(0);n===0?r+="\uFFFD":n>=1&&n<=31||n===127||n===60||n===62?r+=`\\${n.toString(16)} `:n===34||n===92?r+=`\\${t}`:r+=t}return`${r}"`}function ye(e){let r=E(e);return/^[eE]([0-9]|[+-][0-9])/.test(e)?`\\${e.codePointAt(0).toString(16)} ${E(e.slice(1))}`:r}var B=e=>{switch(e.type){case"ident":case"url":case"bad-url":case"number":case"percentage":case"dimension":case"CDC":case"hash":case"at-keyword":return e.type;case"func":case"function":return"function";case"block":return e.open==="("?"(":"other";case"(":return"(";case"delim":return`delim${e.value}`;default:return"other"}};function ge(e,r){let t=["ident","function","url","bad-url","delim-","number","percentage","dimension","CDC"];return e==="ident"?[...t,"("].includes(r):e==="at-keyword"||e==="hash"||e==="dimension"||e==="delim#"||e==="delim-"?t.includes(r):e==="number"?["ident","function","url","bad-url","number","percentage","dimension","delim%"].includes(r):e==="delim@"?["ident","function","url","bad-url","delim-","CDC"].includes(r):e==="delim."||e==="delim+"?["number","percentage","dimension"].includes(r):e==="delim/"?r==="delim*":!1}function be(e){switch(e.type){case"whitespace":return" ";case"ident":return C(e.value);case"at-keyword":return`@${C(e.value)}`;case"hash":return`#${E(e.value)}`;case"string":return R(e.value);case"url":return`url(${R(e.value)})`;case"delim":return e.value==="\\"?`\\
|
|
2
|
+
`:e.value;case"CDO":return"<!--";case"CDC":return"-->";case"number":return e.repr;case"percentage":return`${e.repr}%`;case"dimension":return`${e.repr}${ye(e.unit)}`;case"func":return`${C(e.name)}(${k(e.value)})`;case"block":return`${e.open}${k(e.value)}${ne[e.open]}`;case":":case";":case",":case"[":case"]":case"(":case")":case"{":case"}":return e.type;default:return""}}function k(e){let r="",t;for(let n of e)n.type==="whitespace"&&t?.type==="whitespace"||(t&&ge(B(t),B(n))&&(r+="/**/"),r+=be(n),t=n);return r}var he=new Set(L),ie=new Set(W),J=new Set(M),ke=new Set(U),xe=new Set(X),we=new Set(Y),Q=/^#[A-Za-z_][A-Za-z0-9_.:-]*$/,y=e=>e.replace(/[A-Z]/g,r=>r.toLowerCase()),Ce=e=>y(e);function $(e,r,t){let n=[];for(let o of r){if(o.type==="bad-url"||o.type==="bad-string"){t({reason:"unreadable",...e?{name:e}:{}});return}if(o.type==="url"){if(e&&J.has(e)&&Q.test(o.value)){n.push({type:"func",name:"url",value:[{type:"string",value:o.value}]});continue}t({reason:"url",...e?{name:e}:{}});return}if(o.type==="func"){let i=y(o.name);if(i==="url"||i==="src"){let u=o.value.filter(d=>d.type!=="whitespace"),c=u[0];if(i==="url"&&u.length===1&&c?.type==="string"&&e&&J.has(e)&&Q.test(c.value)){n.push({type:"func",name:"url",value:[{type:"string",value:c.value}]});continue}t({reason:"url",...e?{name:e}:{}});return}if(!ie.has(i)){t({reason:"function",name:i});return}let a=$(e,o.value,t);if(!a)return;i==="var"?n.push({type:"whitespace"},{type:"func",name:i,value:a},{type:"whitespace"}):n.push({type:"func",name:i,value:a});continue}if(o.type==="block"){if(o.open==="{"||o.open==="("&&n.at(-1)?.type==="ident"){t({reason:"unreadable",...e?{name:e}:{}});return}let i=$(e,o.value,t);if(!i)return;n.push({type:"block",open:o.open,value:i});continue}if(o.type==="at-keyword"||o.type==="CDO"||o.type==="CDC"||o.type==="{"||o.type==="}"||o.type===";"||o.type===")"||o.type==="]"||o.type==="delim"&&o.value==="\\"){t({reason:"unreadable",...e?{name:e}:{}});return}n.push(o)}return n}var Se=/^(animation|transition|scroll-behavior|outline)/,ve="--graview-ring-color",Ee="--graview-focus-color",Re=e=>{let r=e.filter(n=>n.type!=="whitespace"),t=r[0];return r.length!==1||!t?!1:t.type==="hash"?/^(?:[0-9a-f]{3}|[0-9a-f]{6})$/i.test(t.value):t.type==="ident"&&!["transparent","currentcolor"].includes(y(t.value))},_e=new Set(["url","src","image-set","-webkit-image-set"]),ae=e=>{for(let r of e){if(r.type==="func"&&_e.has(y(r.name)))return y(r.name);if(r.type==="func"||r.type==="block"){let t=ae(r.value);if(t)return t}}};function T(e,r,t=!1){let n=e.name.startsWith("--"),o=n?e.name:Ce(e.name);if(o===ve||!n&&!he.has(o)){r({reason:"property",name:o});return}if(o===Ee&&!Re(e.value)){r({reason:"value",name:o});return}let i=K[o];if(i){let c=e.value.filter(x=>x.type!=="whitespace"),d=c[0],f=c.length===1&&d?.type==="ident"?y(d.value):void 0;if(!f||![...i,"inherit","initial","unset","revert"].includes(f)){r({reason:"value",name:o});return}return`${o}: ${f}${e.important&&!(t&&o==="all")?" !important":""}`}let a=$(n?void 0:o,e.value,r);if(!a)return;let u=k(a).trim();return`${n?`--${E(e.name.slice(2))}`:o}: ${u}${e.important&&!(t&&Se.test(o))?" !important":""}`}var I=e=>e.some(r=>r.type==="}"||r.type===";"||r.type===")"||r.type==="]"||r.type==="at-keyword"||r.type==="CDO"||r.type==="CDC"||r.type==="delim"&&r.value==="\\"||(r.type==="func"||r.type==="block")&&I(r.value));function se(e,r){if(I(e))return r({reason:"unreadable",name:"selector"}),!1;let t=ae(e);if(t)return r({reason:"url",name:t}),!1;let n=o=>{for(let i=0;i<o.length;i+=1){let a=o[i];if(i>0&&o[i-1].type===":"&&(a.type==="ident"||a.type==="func")){let c=y(a.type==="ident"?a.value:a.name);if(xe.has(c)||(c.startsWith("-webkit-")||c.startsWith("-moz-"))&&!we.has(c))return r({reason:"selector",name:c}),!1}if(a.type==="url"||a.type==="bad-url"||a.type==="bad-string"||a.type==="at-keyword"||a.type==="CDO"||a.type==="CDC"||a.type==="block"&&a.open==="{")return r({reason:"unreadable",name:"selector"}),!1;if(a.type==="func"&&!n(a.value)||a.type==="block"&&!n(a.value))return!1}return!0};return n(e)}function z(e,r,t){let n=[];for(let o of A(e))if(o.type==="declaration"){let i=T(o,r);i&&n.push(`${i};`)}else{let i=_(o,r,t+1,"style");i&&n.push(i)}return n.join(" ")}function Te(e,r,t){if(I(e)){t({reason:"unreadable",name:`@${r}`});return}let n=o=>o.every(i=>{if(i.type==="url"||i.type==="bad-url"||i.type==="bad-string"||i.type==="block"&&i.open==="{")return t({reason:i.type==="url"?"url":"unreadable",name:`@${r}`}),!1;if(i.type==="func"){let a=y(i.name);return r==="supports"&&a==="selector"?se(i.value,t):ie.has(a)?n(i.value):(t({reason:"function",name:a}),!1)}if(i.type==="block"){if(r==="supports"){let a=A(i.value);if(a.length===1&&a[0].type==="declaration")return T(a[0],t)!==void 0}return n(i.value)}return!0});return n(e)?k(e).trim():void 0}function V(e){return e.map((r,t)=>{let n=e[t-1],o=n?.type===":"||n?.type==="delim"&&(n.value==="."||n.value==="|");return r.type==="ident"&&!o&&Object.prototype.hasOwnProperty.call(j,y(r.value))?{type:"block",open:"[",value:[{type:"ident",value:"data-graview-as"},{type:"delim",value:"="},{type:"string",value:y(r.value)}]}:r.type==="func"?{type:"func",name:r.name,value:V(r.value)}:r.type==="block"&&r.open==="("?{type:"block",open:"(",value:V(r.value)}:r})}function _(e,r,t,n){if(t>te){r({reason:"unreadable",name:"nesting"});return}if(e.type==="qualified"){if(n==="keyframes"){if(!e.prelude.every(f=>f.type==="whitespace"||f.type===","||f.type==="percentage"||f.type==="ident"&&["from","to"].includes(y(f.value)))){r({reason:"unreadable",name:"keyframe"});return}return`${k(e.prelude).trim()} { ${z(e.block,r,t)} }`}if(!se(e.prelude,r))return;let c=k(V(e.prelude)).trim();if(c===""){r({reason:"unreadable",name:"selector"});return}return`${c} { ${z(e.block,r,t)} }`}let o=y(e.name),i=o==="-webkit-keyframes"?"keyframes":o;if(!ke.has(i)||n==="keyframes"){r({reason:"at-rule",name:`@${o}`});return}if(!e.block){r({reason:"unreadable",name:`@${o}`});return}if(i==="keyframes"){if(n!=="sheet"){r({reason:"at-rule",name:"@keyframes"});return}let c=e.prelude.filter(b=>b.type!=="whitespace"),d=c[0];if(c.length!==1||!d||d.type!=="ident"&&d.type!=="string"){r({reason:"unreadable",name:"@keyframes"});return}let f=w(e.block,!1).map(b=>_(b,r,t+1,"keyframes")).filter(b=>b!==void 0);return`@keyframes ${d.type==="ident"?C(d.value):R(d.value)} { ${f.join(" ")} }`}let a=Te(e.prelude,i,r);if(a===void 0)return;let u=n==="style"?z(e.block,r,t):w(e.block,!1).map(c=>_(c,r,t+1,"sheet")).filter(c=>c!==void 0).join(" ");return`@${i} ${a} { ${u} }`}function le(e,r=S){let t=[];if(e.length>r)return{css:"",refused:[{reason:"size"}]};let n=i=>void t.push(i);return{css:w(N(e),!0).map(i=>_(i,n,0,"sheet")).filter(i=>i!==void 0).join(`
|
|
3
|
+
`),refused:t}}function Oe(e,r=S){let t=[],n=[],o=0;for(let i of e){if(o+i.length>r){n.push({reason:"size"});continue}o+=i.length;let a=le(i,r);a.css&&t.push(a.css),n.push(...a.refused)}return{css:t.join(`
|
|
4
|
+
`),refused:n}}function ze(e,r=S){let t=[];if(e.length>r)return{css:"",refused:[{reason:"size"}]};let n=i=>void t.push(i),o=[];for(let i of A(N(e))){if(i.type!=="declaration"){n({reason:"unreadable",name:"a rule in a style attribute"});continue}let a=T(i,n,!0);a&&o.push(a)}return{css:o.join("; "),refused:t}}function Pe(e,r){let t,n=T(oe(e,N(r)),o=>t??=o);return n===void 0||t?{refused:t??{reason:"unreadable",name:e}}:{value:n.slice(n.indexOf(":")+1).trim()}}var ce=["montserrat","serif","sans-serif","monospace","cursive","fantasy","system-ui","math","emoji","-apple-system","blinkmacsystemfont","georgia","times new roman","times","iowan old style","palatino","palatino linotype","charter","cambria","baskerville","optima","helvetica","helvetica neue","arial","verdana","segoe ui","roboto","avenir","avenir next","gill sans","menlo","monaco","consolas","sf mono","sfmono-regular","courier new"],$e=/^\/graview\/assets\/[0-9a-f]{64}\.(?:woff2|woff|ttf|otf)$/,Ve=/^https:\/\/([a-z0-9.-]+(?::\d+)?)\/[A-Za-z0-9._~!$&*+,;=:@%/-]*\.(?:woff2|woff|ttf|otf)(?:\?[A-Za-z0-9._~!$&*+,;=:@%/?-]*)?$/i,De=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","math","emoji","fangsong","inherit","initial","unset","revert","default"]);function ue(e){if($e.test(e))return{asset:e};let r=Ve.exec(e);return r?{https:e,origin:`https://${r[1].toLowerCase()}`}:void 0}var Fe=e=>{let r=n=>Number.isInteger(n)&&n>=1&&n<=1e3;if(typeof e=="number")return r(e);if(typeof e!="string")return!1;let t=e.trim().split(/\s+/).map(Number);return t.length>=1&&t.length<=2&&t.every(r)&&(t.length===1||t[0]<=t[1])};function Ae(e){return[e?.body,e?.display,e?.mono].flatMap(r=>typeof r=="string"?r.split(",").map(t=>t.trim().replace(/^["']|["']$/g,"").trim().replace(/\s+/g," ")).filter(t=>t!==""):[])}function Ne(e,r=[]){if(typeof e!="object"||e===null||Array.isArray(e))return'a face is { "family": <its name>, "src": <its file> }';let{family:t,src:n,weight:o,style:i}=e;if(typeof t!="string"||t.length>60||!/^[A-Za-z0-9][A-Za-z0-9-]*(?: [A-Za-z0-9-]+)*$/.test(t))return"its family is words of letters, digits and hyphens with single spaces between them, at most 60 characters";if(De.has(t.toLowerCase()))return`"${t}" is a name CSS keeps for itself`;let a=t.toLowerCase();return ce.includes(a)||a.startsWith("ui-")||r.some(u=>u.toLowerCase()===a)?`"${t}" would replace a face the page already draws in: call it something of its own`:typeof n!="string"||!ue(n)?`its src is a file the app holds (/graview/assets/<sha256>.woff2) or an https: address of a WOFF2, WOFF, TTF or OTF file, not ${JSON.stringify(n)}`:o!==void 0&&!Fe(o)?'its weight is a whole number from 1 to 1000, or a range of two ("300 700")':i!==void 0&&i!=="normal"&&i!=="italic"?'its style is "normal" or "italic"':null}export{ee as a,le as b,Oe as c,ze as d,Pe as e,ue as f,Ae as g,Ne as h};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Cc as S,pc as w}from"./chunk.
|
|
1
|
+
import{Cc as S,pc as w}from"./chunk.6L6RUOSF.js";function v(s){return[...s.mutations??[],...S(s.schema,s.mutations??[])]}function B(s){let i=[...s.schema.kinds],a=v(s),d=new Map,c=new Map;for(let e of a){c.set(e.name,e.creates??[]);let n=w(e.input).filter(t=>!t.optional&&!t.kinds.includes("*")).flatMap(t=>t.kinds);d.set(e.name,[...new Set(n)])}let g=new Map;for(let e of i)g.set(e,[]);for(let e of a)for(let n of c.get(e.name)??[])g.get(n)?.push(e.name);let p=new Map,l=new Set;for(let e=0;;e+=1){let n=[];for(let t of a)if((d.get(t.name)??[]).every(o=>l.has(o)))for(let o of c.get(t.name)??[])l.has(o)||n.push(o);if(n.length===0)break;for(let t of n)l.add(t),p.set(t,e)}let h=e=>{let n=g.get(e)??[];if(n.length===0)return[];let t=n.map(r=>d.get(r)??[]).sort((r,o)=>r.length-o.length)[0];return[...new Set(t)].filter(r=>r!==e)},y=new Map,u=e=>{let n=y.get(e);if(n)return n;let t=new Set;y.set(e,t);for(let r of h(e)){t.add(r);for(let o of u(r))t.add(o)}return t.delete(e),t},f=new Map(i.map(e=>[e,0]));for(let e of i)for(let n of u(e))f.set(n,(f.get(n)??0)+1);let m=i.map(e=>({kind:e,madeBy:[...g.get(e)??[]].sort(),needs:[...h(e)].sort(),depth:p.get(e)??null})).sort((e,n)=>(e.depth??Number.MAX_SAFE_INTEGER)-(n.depth??Number.MAX_SAFE_INTEGER)||(f.get(n.kind)??0)-(f.get(e.kind)??0)||e.kind.localeCompare(n.kind)),k=m.filter(e=>e.depth===0).map(e=>e.kind),A=[...new Set(a.filter(e=>(d.get(e.name)??[]).length===0).filter(e=>(c.get(e.name)??[]).length>0).map(e=>e.name))].sort(),M=m.filter(e=>e.depth===null).map(e=>({kind:e.kind,why:e.madeBy.length===0?"no act declares that it creates this kind":`every act that makes it needs ${e.needs.map(n=>`"${n}"`).join(", ")}, which nothing can make first`}));return{order:m,roots:k,doors:A,unreachable:M}}export{B as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as O}from"./chunk.
|
|
1
|
+
import{c as O}from"./chunk.MT252WP4.js";import{_ as N}from"./chunk.6L6RUOSF.js";var H=/^h([1-6])$/,D={section:null,article:null,form:null,region:null,nav:"navigation",navigation:"navigation",main:"main content",header:"header",banner:"header",footer:"footer",contentinfo:"footer",aside:"aside",complementary:"aside",search:"search"},G=e=>typeof e=="object"&&e!==null&&typeof e.getAttribute=="function"&&(e.nodeType===void 0||e.nodeType===1),$=e=>(e??"").replace(/\s+/g," ").trim();function*x(e){yield e;for(let r of Array.from(e.childNodes))G(r)&&(yield*x(r))}var P=e=>(e.getAttribute("data-graview-as")??e.localName??"").toLowerCase();function C(e){let r=H.exec(P(e));return r?Number(r[1]):e.getAttribute("role")==="heading"?Number(e.getAttribute("aria-level")??2):void 0}function R(e){let r=[...x(e)],i=new Map;for(let n of r){let d=n.getAttribute("id");d&&i.set(d,n)}let t=[],g=new Set,a=(n,d)=>{let s=n.toLowerCase();!n||g.has(s)||(g.add(s),t.push({name:n.length>80?`${n.slice(0,79)}\u2026`:n,as:d}))};for(let n of r){if(n.getAttribute("aria-hidden")==="true"||n.getAttribute("hidden")!==null)continue;if(C(n)!==void 0){a($(n.textContent),"heading");continue}let s=P(n),f=(n.getAttribute("role")??"").toLowerCase(),l=f in D?f:s in D?s:void 0;if(!l)continue;let m=(n.getAttribute("aria-labelledby")??"").split(/\s+/).flatMap(u=>i.get(u)?[$(i.get(u).textContent)]:[]).join(" "),c=[...x(n)].find(u=>u!==n&&C(u)!==void 0),o=$(n.getAttribute("aria-label"))||m||(c?$(c.textContent):"")||D[l]||"";a(o,l==="region"?"section":l)}return t}var v="\0";function _(e){let r=[],i=e.length,t=0,g="",a=l=>l.replace(/\\(u\{[0-9a-fA-F]+\}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{2}|.)/gs,(m,c)=>c==="n"?`
|
|
2
2
|
`:c==="t"?" ":c[0]==="u"||c[0]==="x"?String.fromCodePoint(parseInt(c.replace(/[ux{}]/g,""),16)):c),n=l=>{let m=++t;for(;t<i&&e[t]!==l&&e[t]!==`
|
|
3
3
|
`;)t+=e[t]==="\\"?2:1;let c=e.slice(m,t);return t++,a(c)},d=()=>{t++;let l=!1;for(;t<i&&e[t]!==`
|
|
4
4
|
`;){let m=e[t];if(m==="\\")t+=2;else if(m==="[")l=!0,t++;else if(m==="]")l=!1,t++;else{if(m==="/"&&!l)break;t++}}for(t++;t<i&&/[a-z]/i.test(e[t]);)t++},s=()=>{t++;let l="";for(;t<i;){let m=e[t];if(m==="\\")l+=a(e.slice(t,t+2)),t+=2;else{if(m==="`")return t++,l;m==="$"&&e[t+1]==="{"?(t+=2,f(!0),l+=v):(l+=m,t++)}}return l};function f(l){let m=0;for(;t<i;){let c=e[t];if(c==="/"&&e[t+1]==="/"){let o=e.indexOf(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as un,c as fn}from"./chunk.XAN7QXMQ.js";import{j as x}from"./chunk.YIDNZTON.js";import{b as Z}from"./chunk.QILGAV7H.js";import{Lc as U,Nd as cn,Qb as Q,ha as H,hb as on,ma as T,na as K,oa as en,oc as rn,pa as tn,pc as E,rb as V,ta as sn,ua as J,va as G,xc as an,yc as dn}from"./chunk.IUVRJDL3.js";function ln(){return{name:"insight",derive({store:e,nodes:a,kindSelection:t}){let f=[],v=l=>T(e.schema.tryDefinition(l.kind),l);for(let l of a){if([...e.schema.edgeKinds].reduce((d,w)=>d+e.graph.out(l.id,w).length+e.graph.in(l.id,w).length,0)===0){f.push({id:`insight:island:${l.id}`,text:`${v(l)} is connected to nothing yet`,nodeIds:[l.id]});continue}for(let d of e.schema.edgeKinds){let w=e.graph.in(l.id,d).length;if(w<3)continue;let c=[...e.graph.allEdges()].filter(o=>o.kind===d),n=c.length;n>=4&&w/n>.6&&f.push({id:`insight:load:${l.id}:${d}`,text:`${v(l)} ${bn(e,c,d,w)}`,nodeIds:[l.id]})}}for(let l of t){if(e.graph.nodesOfKind(l).length>0)continue;let A=e.schema.definitions.filter(d=>d.kind!==l).filter(d=>Object.values(d.edges).some(w=>w.to!=="*"&&w.to.includes(l))).map(d=>d.plural??`${d.kind}s`);A.length>0&&f.push({id:`insight:gap:${l}`,text:`Nothing here yet, though ${A.join(" and ")} expect to connect to these`,nodeIds:[]})}return{observations:f}}}}function bn(e,a,t,f){let v=new Set(a.map(c=>e.graph.getNode(c.from)?.kind).filter(c=>c!==void 0)),l=v.size===1?[...v][0]:void 0,A=a.length,d=Z(e.schema,l??[...v][0]??"",t,"in"),w=c=>l?en(e.schema,l,c):String(c);return f===A?`${d}: all ${w(f)}`:`${d}: ${f} of the ${w(A)}`}function hn(e){let a=new Map;if(e.length===0)return a;let t=e.slice(-512),f=new Set;for(let l of t)l.undoes&&f.add(l.undoes);let v=e[e.length-1].seq;for(let l of t){if(!l.mutation||f.has(l.id))continue;let A=Math.pow(.5,(v-l.seq)/64);a.set(l.mutation.name,(a.get(l.mutation.name)??0)+A)}return a}function gn(e){return 8*(e/(e+1))}var Sn=100;function pn(){return{name:"invariant",derive({store:e,selection:a,nodes:t,violations:f}){let v=c=>T(e.schema.tryDefinition(c.kind),c),l=new Set(a),A=f.filter(c=>c.nodeIds.some(n=>l.has(n))||c.subjectId!==void 0&&l.has(c.subjectId)),d=[],w=[];A.forEach((c,n)=>{w.push({id:`violation:${c.invariant}:${n}`,text:c.message,nodeIds:c.nodeIds}),c.repairs.forEach((o,h)=>{d.push({id:`invariant:${c.invariant}:${n}:${h}`,label:o.label,provider:"invariant",mutation:o.mutation,args:o.args??{},open:(o.missing??[]).map(m=>{let r=e.allMutations().find(g=>g.name===o.mutation);if(!r)return{name:m};let s=E(r.input).find(g=>g.name===m),k=s?s.kinds.includes("*")?e.graph.allNodes().map(g=>g.id):s.kinds.flatMap(g=>e.graph.nodesOfKind(g).map($=>$.id)):void 0;return{name:m,shape:x(r.input,m),...s?{kinds:s.kinds}:{},...k?{candidates:k}:{}}}),score:Sn-h-(o.missing?.length??0),why:c.message,nodeIds:c.nodeIds,...c.subjectId===void 0?{}:{subjectId:c.subjectId}})})});for(let c of t){let n=e.allInvariants().filter(o=>{if(o.scope==="graph")return!1;let h=o.scope;return h.kind!==c.kind?!1:h.match?h.match(c):!0});n.length!==0&&(A.some(o=>o.subjectId===c.id||o.nodeIds.includes(c.id))||w.push({id:`holds:${c.id}`,text:`${v(c)} holds \u2014 nothing currently breaks ${n.length===1?"it":`any of its ${n.length} rules`}`,nodeIds:[c.id]}))}return{affordances:d,observations:w}}}}var X=40;function mn(){return{name:"schema",derive({store:e,selection:a,nodes:t,kindSelection:f,edgeSelection:v,principal:l}){let A=(n,o)=>l!==void 0&&!e.permits({name:n,args:o},l).ok,d=[];if(t.length===0&&v.length>0){for(let n of v){let o=e.graph.getNode(n.from),h=e.graph.getNode(n.to);if(!o||!h)continue;let m=fn(e,n);m?.provisional&&d.push({id:`schema:edge:${U}:${n.kind}:${n.from}:${n.to}`,label:"Keep this link",provider:"schema",mutation:U,args:{kind:n.kind,from:n.from,to:n.to},open:[],score:64,why:un(m),nodeIds:[n.from,n.to]});for(let r of e.allMutations()){let s=(r.connects??[]).includes(n.kind),k=(r.severs??[]).includes(n.kind);if(!s&&!k||r.derived?.relation!==void 0&&r.derived.kind!==o.kind)continue;let g={},$=[],j=E(r.input);for(let p of j){let S=p.kinds.includes("*")||p.kinds.includes(o.kind),P=p.kinds.includes("*")||p.kinds.includes(h.kind),y=S&&!j.some(I=>I!==p&&(I.kinds.includes(o.kind)||I.kinds.includes("*")));S&&!P?g[p.name]=n.from:P&&!S?g[p.name]=n.to:S&&P&&y?g[p.name]=n.from:$.push({name:p.name,kinds:p.kinds,candidates:[n.from,n.to],shape:x(r.input,p.name)})}for(let p of q(r.input,""))p in g||$.some(S=>S.name===p)||$.push({name:p,shape:x(r.input,p)});$.every(p=>p.optional===!0?!0:p.kinds!==void 0?(p.candidates?.length??0)>0:(p.candidates?.length??0)>0||p.shape!==void 0&&p.shape.type!=="unknown")&&(s&&!k&&$.length===0||d.push({id:`schema:edge:${r.name}:${n.kind}:${n.from}:${n.to}`,label:K(r),provider:"schema",mutation:r.name,args:g,open:$,...r.destructive?{destructive:!0}:{},score:(k?62:58)-$.length,why:`this line is "${Z(e.schema,e.graph.getNode(n.from)?.kind??"",n.kind,"out")}"`,nodeIds:[n.from,n.to]}))}}return{affordances:d}}if(t.length===0&&f.length>0){let n=new Set(f),o=[];for(let h of e.allMutations()){if(!(h.creates??[]).some(s=>n.has(s)))continue;let m=[];for(let s of E(h.input)){let k=s.kinds.includes("*")?e.graph.allNodes().map(g=>g.id):s.kinds.flatMap(g=>e.graph.nodesOfKind(g).map($=>$.id));m.push({name:s.name,kinds:s.kinds,candidates:k,shape:x(h.input,s.name),...s.optional?{optional:!0}:{}})}for(let s of q(h.input,""))m.some(k=>k.name===s)||m.push({name:s,shape:x(h.input,s)});if(!m.every(s=>s.optional===!0?!0:s.kinds!==void 0?(s.candidates?.length??0)>0:(s.candidates?.length??0)>0||s.shape!==void 0&&s.shape.type!=="unknown")&&!A(h.name,{})){let s=m.filter(k=>k.optional!==!0&&k.kinds!==void 0&&!k.kinds.includes("*")&&(k.candidates?.length??0)===0);if(s.length>0){let k=[...new Set(s.flatMap(g=>g.kinds??[]))].map(g=>J(G(e.schema.tryDefinition(g),g)));o.push({id:`schema:waits:${h.name}`,text:`"${h.title??h.name}" cannot begin until there is ${k.length===1?k[0]:`${k.slice(0,-1).join(", ")} and ${k[k.length-1]}`}.`,nodeIds:[]})}continue}d.push({id:`schema:add:${h.name}`,label:K(h),provider:"schema",mutation:h.name,args:{},open:m,score:X-m.length,why:`this makes ${(h.creates??[]).filter(s=>n.has(s)).map(s=>J(G(e.schema.tryDefinition(s),s))).join(", ")}`,nodeIds:[]})}return{affordances:d,observations:o}}if(t.length===0)return{};let w=new Set(t.map(n=>n.kind)),c=(n,o,h)=>{let m=[];for(let r of e.graph.allEdges()){if(!o.includes(r.kind))continue;let s=r.from===n?r.to:r.to===n?r.from:null;if(!s)continue;let k=e.graph.getNode(s);k&&(!h.includes("*")&&!h.includes(k.kind)||m.includes(s)||m.push(s))}return m};for(let n of e.allMutations()){let o=n.subject;if(!o||!(o.kinds==="*"?!0:[...w].every(u=>o.kinds.includes(u))))continue;let m=n.derived?.act;if((m==="archive"||m==="merge")&&t.some(u=>V(u))||m==="unarchive"&&!t.some(u=>V(u))||m==="leave-alone"&&t.every(u=>Q(e,u.id))||m==="allow-tidying"&&!t.some(u=>Q(e,u.id)))continue;let r=t.length===1?t[0].id:null,s=n.severs??[],k=n.connects??[];if(r&&s.length>0&&k.length===0&&c(r,s,["*"]).length===0)continue;let g=[];for(let u of E(n.input)){if(u.name===o.arg)continue;let p=u.kinds.includes("*")?e.graph.allNodes().map(S=>S.id):u.kinds.flatMap(S=>e.graph.nodesOfKind(S).map(P=>P.id));if(r&&k.length>0){let S=new Set(c(r,k,u.kinds));p=p.filter(P=>!S.has(P))}else r&&s.length>0&&(p=c(r,s,u.kinds));g.push({name:u.name,kinds:u.kinds,candidates:p.filter(S=>!a.includes(S)),shape:x(n.input,u.name),...u.optional?{optional:!0}:{}})}for(let u of q(n.input,o.arg))g.some(p=>p.name===u)||g.push({name:u,shape:x(n.input,u)});if(g.length===0&&r){let u=wn(n.input,o.arg);if(u.length>0&&!An(e,n.name,{[o.arg]:r}))for(let p of u){let S=E(n.input).find(P=>P.name===p);g.push({name:p,optional:!0,...S?{kinds:S.kinds}:{},shape:x(n.input,p)})}}if(!g.every(u=>u.optional===!0?!0:u.kinds!==void 0?(u.candidates?.length??0)>0:(u.candidates?.length??0)>0||u.shape!==void 0&&u.shape.type!=="unknown")&&!A(n.name,r?{[o.arg]:r}:{}))continue;let j=t.map(u=>({[o.arg]:u.id}));g.length===0&&!j.some(u=>e.wouldChange({name:n.name,args:u}))||d.push({id:`schema:${n.name}`,label:t.length>1?`${K(n)} (${t.length})`:K(n),provider:"schema",mutation:n.name,args:j[0]??{},open:g,...n.destructive?{destructive:!0}:{},...n.derived?.act==="archive"||n.derived?.act==="merge"||n.derived?.act==="leave-alone"||n.derived?.act==="allow-tidying"?{setsAside:!0}:{},...s.length>0||k.length>0?{ties:!0}:{},...t.length>1?{batch:j}:{},score:X-g.length,why:t.length>1?`all ${t.length} selected nodes are ${[...w].map(u=>tn(e.schema,u).toLowerCase()).join(" or ")}`:`this is ${J(G(e.schema.tryDefinition(t[0].kind),t[0].kind))}`,nodeIds:t.map(u=>u.id)})}if(t.length===1){let n=t[0];for(let o of e.allMutations()){let h=o.subject,m=o.severs??[],r=o.connects??[];if(!h||m.length===0&&r.length===0)continue;let s=h.kinds==="*"?"*":h.kinds;if(s==="*"||s.includes(n.kind))continue;let k=E(o.input),g=k.find(y=>y.name!==h.arg&&(y.kinds.includes("*")||y.kinds.includes(n.kind)));if(!g)continue;let $=s,j=$.includes("*")?e.graph.allNodes().map(y=>y.id):$.flatMap(y=>e.graph.nodesOfKind(y).map(I=>I.id)),u=new Set(c(n.id,r.length>0?r:m,$)),p=r.length>0?j.filter(y=>!u.has(y)):j.filter(y=>u.has(y));if(p.length===0)continue;let S=[{name:h.arg,kinds:$,candidates:p,shape:x(o.input,h.arg)}];for(let y of k){if(y.name===g.name||y.name===h.arg)continue;let I=y.kinds.includes("*")?e.graph.allNodes().map(L=>L.id):y.kinds.flatMap(L=>e.graph.nodesOfKind(L).map(O=>O.id));S.push({name:y.name,kinds:y.kinds,candidates:I,shape:x(o.input,y.name),...y.optional?{optional:!0}:{}})}for(let y of q(o.input,g.name))y===h.arg||S.some(I=>I.name===y)||S.push({name:y,shape:x(o.input,y)});S.every(y=>y.optional===!0?!0:y.kinds!==void 0?(y.candidates?.length??0)>0:(y.candidates?.length??0)>0||y.shape!==void 0&&y.shape.type!=="unknown")&&d.push({id:`schema:tie:${o.name}:${n.id}`,label:o.fromTheOtherEnd??K(o),provider:"schema",mutation:o.name,args:{[g.name]:n.id},open:S,ties:!0,...o.destructive?{destructive:!0}:{},score:X-S.length+2,why:`${m.length>0?"this one is on":"this one could join"} ${S[0].candidates.length===1?"it":"one of these"}`,nodeIds:[n.id]})}}return{affordances:d}}}}function wn(e,a){let t=e.shape;return t?Object.entries(t).filter(([f,v])=>f!==a&&v.safeParse(void 0).success).map(([f])=>f):[]}function An(e,a,t){try{return e.preview({name:a,args:t}),!0}catch{return!1}}function q(e,a){let t=e.shape;return t?Object.entries(t).filter(([f,v])=>f!==a&&!v.safeParse(void 0).success).map(([f])=>f):[]}var $n=70,On=80,In=new Set(["id","kind"]);function kn(){return{name:"structure",derive({store:e,nodes:a}){let t=d=>T(e.schema.tryDefinition(d.kind),d);if(a.length<2)return{};let f=[],v=[],l=a.map(d=>d.id);for(let d of e.schema.edgeKinds){let w=Pn(a.map(n=>new Set([...e.graph.out(n.id,d).map(o=>o.id),...e.graph.in(n.id,d).map(o=>o.id)])));for(let n of w){let o=e.graph.getNode(n);o&&f.push({id:`shared:${d}:${n}`,text:`all ${a.length} share "${t(o)}" (${H(d).toLowerCase()})`,nodeIds:[...l,n]})}let c=new Map;for(let n of a)for(let o of[...e.graph.out(n.id,d),...e.graph.in(n.id,d)])c.set(o.id,(c.get(o.id)??0)+1);for(let[n,o]of c){if(o!==a.length-1||a.length<3||l.includes(n))continue;let h=e.graph.getNode(n);if(!h)continue;let m=a.find(r=>![...e.graph.out(r.id,d),...e.graph.in(r.id,d)].some(s=>s.id===n));if(m&&(f.push({id:`near-shared:${d}:${n}`,text:`all but "${t(m)}" share "${t(h)}" (${H(d).toLowerCase()})`,nodeIds:[...l,n]}),!(!e.schema.edgeAllowed(d,m.kind,h.kind)&&!e.schema.edgeAllowed(d,h.kind,m.kind))))for(let r of e.allMutations()){let s=r.subject;if(!s||s.kinds!=="*"&&!s.kinds.includes(m.kind)||(r.connects!==void 0||r.severs!==void 0)&&!(r.connects??[]).includes(d))continue;let g=jn(r.input,h.kind);g&&v.push({id:`structure:join:${r.name}:${m.id}:${n}`,label:`${K(r)}: bring "${t(m)}" in line with the others`,provider:"structure",mutation:r.name,args:{[s.arg]:m.id,[g]:n},open:[],score:$n,why:`every other selected node is connected to "${t(h)}"`,nodeIds:[m.id,n]})}}}let A=new Map;for(let d of a)A.set(d.kind,[...A.get(d.kind)??[],d]);for(let[d,w]of A){if(w.length<2)continue;let c=w,n=w.map(r=>r.id),o=A.size>1?`${d}:`:"",h=new Set;for(let r of c)for(let s of Object.keys(r))In.has(s)||h.add(s);let m=r=>e.schema.definitions.find(s=>s.kind===r);for(let r of[...h].sort()){let s=m(c[0].kind),k=sn(s,r),g=s?.display?.format?.[r],$=O=>{if(!g)return O;try{return String(g(JSON.parse(O)))}catch{return O}},j=c.map(O=>O[r]),u=new Map;if(j.forEach((O,R)=>{let D=JSON.stringify(O??null),M=u.get(D);M?M.push(c[R]):u.set(D,[c[R]])}),u.size===1){let O=[...u.keys()][0];if(O==="null")continue;f.push({id:`agree:${o}${r}`,text:`all ${c.length} share the ${k} ${$(O)}`,nodeIds:n});continue}if(c.length<3||u.size!==2)continue;let p=[...u.entries()].sort((O,R)=>R[1].length-O[1].length),[S,P]=p[0],[,y]=p[1];if(y.length!==1||S==="null")continue;let I=y[0],L=JSON.parse(S);f.push({id:`odd-one-out:${o}${r}`,text:`${P.length} share the ${k} ${$(S)}; "${t(I)}" does not`,nodeIds:n});for(let O of e.allMutations()){let R=O.subject;if(!R||R.kinds!=="*"&&!R.kinds.includes(I.kind))continue;let D=yn(O.input);if(!D||!(r in D))continue;let M={[R.arg]:I.id,[r]:L},C=!0;for(let[W,z]of Object.entries(D)){if(W in M||z.safeParse(void 0).success)continue;let B=I[W];if(B===void 0){C=!1;break}M[W]=B}!C||!O.input.safeParse(M).success||v.push({id:`structure:align:${O.name}:${r}:${I.id}`,label:`Align the ${k} of "${t(I)}" with the other ${P.length}`,provider:"structure",mutation:O.name,args:M,open:[],score:On,why:`${P.length} of ${c.length} share the ${k} ${$(S)}`,nodeIds:n})}}}return{affordances:v,observations:f}}}}function Pn(e){if(e.length===0)return[];let[a,...t]=e;return[...a].filter(f=>t.every(v=>v.has(f))).sort()}function yn(e){return e.shape??null}function jn(e,a){let t=yn(e);if(!t)return null;for(let[f]of Object.entries(t)){let v=rn(t[f]);if(v&&(v.includes("*")||v.includes(a)))return f}return null}function Nn(){return[pn(),kn(),mn(),ln()]}function Yn(e,a,t={}){let f=vn(),v=t.providers??Nn(),l=a.map(i=>e.graph.getNode(i)).filter(i=>i!==void 0),A={store:e,selection:a,nodes:l,kindSelection:t.kindSelection??[],edgeSelection:t.edgeSelection??[],violations:e.violations(t.context),context:t.context??{},principal:t.principal??{kind:"human"}},d=[],w=[];for(let i of v){let b=i.derive(A);d.push(...b.affordances??[]),w.push(...b.observations??[])}let c=new Map(e.allMutations().map(i=>[i.name,i]));d.forEach((i,b)=>{let N=i.open.length>1?c.get(i.mutation):void 0;N&&(d[b]={...i,open:dn(i.open,an(e.schema,N))})});let n=new Set(e.allMutations().filter(i=>i.pinned).map(i=>i.name)),o=new Set(t.pins?.pinned??[]),h=new Set(t.pins?.unpinned??[]),m=i=>o.has(i.mutation)?"user":n.has(i.mutation)&&!h.has(i.mutation)?"declared":void 0,r=i=>{let b=m(i);return b?{...i,pinned:b}:i},s=new Map;for(let[i,b]of hn(e.log.all()))s.set(i,gn(b));let k=i=>i.pinned==="user"?0:i.pinned==="declared"?1:2,g=i=>i.score+(s.get(i.mutation)??0),$=new Map(e.allMutations().map(i=>[i.name,i])),j=new Map,u=i=>{let b=$.get(i.mutation);if(!b)return[];let N=j.get(i.mutation);N||(N=E(b.input).map(F=>F.name),j.set(i.mutation,N));let _=[];for(let F of i.batch??[i.args])for(let Y of N){let nn=F[Y]??i.args[Y];typeof nn=="string"&&_.push(nn)}return _},p=t.focus,S=4,P=i=>i.open.length>0?1:0,y=i=>{if(p===void 0)return S;let b=u(i);return b.length>0?b.includes(p)?I(i,0):S:i.nodeIds.includes(p)||i.subjectId===p?I(i,1):S},I=(i,b)=>i.provider==="invariant"?b:2+P(i),L=i=>i.setsAside?1:0,O=xn(d).map(r),R=new Map(O.map((i,b)=>[i,b])),D=O.sort((i,b)=>{let N=Number(i.destructive??!1)-Number(b.destructive??!1);if(N!==0)return N;let _=L(i)-L(b);if(_!==0)return _;let F=y(i)-y(b);return F!==0?F:y(i)<2?R.get(i)-R.get(b):+(b.provider==="invariant")-+(i.provider==="invariant")||k(i)-k(b)||g(b)-g(i)||i.id.localeCompare(b.id)}),M=t.principal??{kind:"human"},C=[],W=[];for(let i of D){let b=e.permits({name:i.mutation,args:{...i.args,...i.batch?.[0]??{}}},M);if(b.ok)C.push(i);else{let N=Mn(e,i,M);if(N==="done")continue;N?C.push(N):W.push({...i,refusal:b.refusal})}}let z=C.map((i,b)=>({...i,rank:b})),B=W.map((i,b)=>({...i,rank:C.length+b}));return{affordances:t.limit===void 0?z:z.slice(0,t.limit),withheld:B,observations:Rn(w),ms:vn()-f}}function xn(e){let a=new Map;for(let t of e){let f=[t.mutation,JSON.stringify(t.args),JSON.stringify(t.batch??null)].join("|"),v=a.get(f);(!v||t.score>v.score)&&a.set(f,t)}return[...a.values()]}function Rn(e){let a=new Map;for(let t of e)a.set(t.text,t);return[...a.values()]}function vn(){return typeof performance<"u"?performance.now():Date.now()}function ne(e,a,t={},f={}){let v=(a.batch??[a.args]).map(A=>({name:a.mutation,args:{...a.args,...A,...t}})),l=e.allMutations().find(A=>A.name===a.mutation);return e.applyAll(v,{...l?.describe?{}:{intent:a.label},...f.author?{author:f.author}:{}})}function ee(e,a,t={},f={}){try{return e.preview({name:a.mutation,args:{...a.args,...t}})}catch(v){throw f.pressed&&cn(v,f.pressed.author?.id),v}}function Mn(e,a,t){let f=e.allMutations().find(n=>n.name===a.mutation)?.subject,v=f!==void 0&&a.args[f.arg]===void 0,l=v?a.open.find(n=>n.name===f.arg):a.open.find(n=>n.name!==f?.arg&&n.candidates);if(!l?.candidates)return;let A=n=>e.permits({name:a.mutation,args:{...a.args,...a.batch?.[0]??{},[l.name]:n}},t).ok,d=l.candidates.filter(A),w=on(t),c=w===void 0?void 0:e.graph.getNode(w);if(d.length===0){let n=v?f.kinds:"*";return c!==void 0&&(n==="*"||n.includes(c.kind))&&A(c.id)?"done":void 0}return d.length===1&&d[0]===w?{...a,args:{...a.args,[l.name]:w},open:a.open.filter(n=>n!==l)}:{...a,open:a.open.map(n=>n===l?{...n,candidates:d}:n)}}export{Yn as a,ne as b,ee as c};
|
|
1
|
+
import{b as un,c as fn}from"./chunk.QKRQPUCE.js";import{j as x}from"./chunk.VVIQSFM4.js";import{b as Z}from"./chunk.TQ3MNB6K.js";import{Lc as U,Nd as cn,Qb as Q,ha as H,hb as on,ma as T,na as K,oa as en,oc as rn,pa as tn,pc as E,rb as V,ta as sn,ua as J,va as G,xc as an,yc as dn}from"./chunk.6L6RUOSF.js";function ln(){return{name:"insight",derive({store:e,nodes:a,kindSelection:t}){let f=[],v=l=>T(e.schema.tryDefinition(l.kind),l);for(let l of a){if([...e.schema.edgeKinds].reduce((d,w)=>d+e.graph.out(l.id,w).length+e.graph.in(l.id,w).length,0)===0){f.push({id:`insight:island:${l.id}`,text:`${v(l)} is connected to nothing yet`,nodeIds:[l.id]});continue}for(let d of e.schema.edgeKinds){let w=e.graph.in(l.id,d).length;if(w<3)continue;let c=[...e.graph.allEdges()].filter(o=>o.kind===d),n=c.length;n>=4&&w/n>.6&&f.push({id:`insight:load:${l.id}:${d}`,text:`${v(l)} ${bn(e,c,d,w)}`,nodeIds:[l.id]})}}for(let l of t){if(e.graph.nodesOfKind(l).length>0)continue;let A=e.schema.definitions.filter(d=>d.kind!==l).filter(d=>Object.values(d.edges).some(w=>w.to!=="*"&&w.to.includes(l))).map(d=>d.plural??`${d.kind}s`);A.length>0&&f.push({id:`insight:gap:${l}`,text:`Nothing here yet, though ${A.join(" and ")} expect to connect to these`,nodeIds:[]})}return{observations:f}}}}function bn(e,a,t,f){let v=new Set(a.map(c=>e.graph.getNode(c.from)?.kind).filter(c=>c!==void 0)),l=v.size===1?[...v][0]:void 0,A=a.length,d=Z(e.schema,l??[...v][0]??"",t,"in"),w=c=>l?en(e.schema,l,c):String(c);return f===A?`${d}: all ${w(f)}`:`${d}: ${f} of the ${w(A)}`}function hn(e){let a=new Map;if(e.length===0)return a;let t=e.slice(-512),f=new Set;for(let l of t)l.undoes&&f.add(l.undoes);let v=e[e.length-1].seq;for(let l of t){if(!l.mutation||f.has(l.id))continue;let A=Math.pow(.5,(v-l.seq)/64);a.set(l.mutation.name,(a.get(l.mutation.name)??0)+A)}return a}function gn(e){return 8*(e/(e+1))}var Sn=100;function pn(){return{name:"invariant",derive({store:e,selection:a,nodes:t,violations:f}){let v=c=>T(e.schema.tryDefinition(c.kind),c),l=new Set(a),A=f.filter(c=>c.nodeIds.some(n=>l.has(n))||c.subjectId!==void 0&&l.has(c.subjectId)),d=[],w=[];A.forEach((c,n)=>{w.push({id:`violation:${c.invariant}:${n}`,text:c.message,nodeIds:c.nodeIds}),c.repairs.forEach((o,h)=>{d.push({id:`invariant:${c.invariant}:${n}:${h}`,label:o.label,provider:"invariant",mutation:o.mutation,args:o.args??{},open:(o.missing??[]).map(m=>{let r=e.allMutations().find(g=>g.name===o.mutation);if(!r)return{name:m};let s=E(r.input).find(g=>g.name===m),k=s?s.kinds.includes("*")?e.graph.allNodes().map(g=>g.id):s.kinds.flatMap(g=>e.graph.nodesOfKind(g).map($=>$.id)):void 0;return{name:m,shape:x(r.input,m),...s?{kinds:s.kinds}:{},...k?{candidates:k}:{}}}),score:Sn-h-(o.missing?.length??0),why:c.message,nodeIds:c.nodeIds,...c.subjectId===void 0?{}:{subjectId:c.subjectId}})})});for(let c of t){let n=e.allInvariants().filter(o=>{if(o.scope==="graph")return!1;let h=o.scope;return h.kind!==c.kind?!1:h.match?h.match(c):!0});n.length!==0&&(A.some(o=>o.subjectId===c.id||o.nodeIds.includes(c.id))||w.push({id:`holds:${c.id}`,text:`${v(c)} holds \u2014 nothing currently breaks ${n.length===1?"it":`any of its ${n.length} rules`}`,nodeIds:[c.id]}))}return{affordances:d,observations:w}}}}var X=40;function mn(){return{name:"schema",derive({store:e,selection:a,nodes:t,kindSelection:f,edgeSelection:v,principal:l}){let A=(n,o)=>l!==void 0&&!e.permits({name:n,args:o},l).ok,d=[];if(t.length===0&&v.length>0){for(let n of v){let o=e.graph.getNode(n.from),h=e.graph.getNode(n.to);if(!o||!h)continue;let m=fn(e,n);m?.provisional&&d.push({id:`schema:edge:${U}:${n.kind}:${n.from}:${n.to}`,label:"Keep this link",provider:"schema",mutation:U,args:{kind:n.kind,from:n.from,to:n.to},open:[],score:64,why:un(m),nodeIds:[n.from,n.to]});for(let r of e.allMutations()){let s=(r.connects??[]).includes(n.kind),k=(r.severs??[]).includes(n.kind);if(!s&&!k||r.derived?.relation!==void 0&&r.derived.kind!==o.kind)continue;let g={},$=[],j=E(r.input);for(let p of j){let S=p.kinds.includes("*")||p.kinds.includes(o.kind),P=p.kinds.includes("*")||p.kinds.includes(h.kind),y=S&&!j.some(I=>I!==p&&(I.kinds.includes(o.kind)||I.kinds.includes("*")));S&&!P?g[p.name]=n.from:P&&!S?g[p.name]=n.to:S&&P&&y?g[p.name]=n.from:$.push({name:p.name,kinds:p.kinds,candidates:[n.from,n.to],shape:x(r.input,p.name)})}for(let p of q(r.input,""))p in g||$.some(S=>S.name===p)||$.push({name:p,shape:x(r.input,p)});$.every(p=>p.optional===!0?!0:p.kinds!==void 0?(p.candidates?.length??0)>0:(p.candidates?.length??0)>0||p.shape!==void 0&&p.shape.type!=="unknown")&&(s&&!k&&$.length===0||d.push({id:`schema:edge:${r.name}:${n.kind}:${n.from}:${n.to}`,label:K(r),provider:"schema",mutation:r.name,args:g,open:$,...r.destructive?{destructive:!0}:{},score:(k?62:58)-$.length,why:`this line is "${Z(e.schema,e.graph.getNode(n.from)?.kind??"",n.kind,"out")}"`,nodeIds:[n.from,n.to]}))}}return{affordances:d}}if(t.length===0&&f.length>0){let n=new Set(f),o=[];for(let h of e.allMutations()){if(!(h.creates??[]).some(s=>n.has(s)))continue;let m=[];for(let s of E(h.input)){let k=s.kinds.includes("*")?e.graph.allNodes().map(g=>g.id):s.kinds.flatMap(g=>e.graph.nodesOfKind(g).map($=>$.id));m.push({name:s.name,kinds:s.kinds,candidates:k,shape:x(h.input,s.name),...s.optional?{optional:!0}:{}})}for(let s of q(h.input,""))m.some(k=>k.name===s)||m.push({name:s,shape:x(h.input,s)});if(!m.every(s=>s.optional===!0?!0:s.kinds!==void 0?(s.candidates?.length??0)>0:(s.candidates?.length??0)>0||s.shape!==void 0&&s.shape.type!=="unknown")&&!A(h.name,{})){let s=m.filter(k=>k.optional!==!0&&k.kinds!==void 0&&!k.kinds.includes("*")&&(k.candidates?.length??0)===0);if(s.length>0){let k=[...new Set(s.flatMap(g=>g.kinds??[]))].map(g=>J(G(e.schema.tryDefinition(g),g)));o.push({id:`schema:waits:${h.name}`,text:`"${h.title??h.name}" cannot begin until there is ${k.length===1?k[0]:`${k.slice(0,-1).join(", ")} and ${k[k.length-1]}`}.`,nodeIds:[]})}continue}d.push({id:`schema:add:${h.name}`,label:K(h),provider:"schema",mutation:h.name,args:{},open:m,score:X-m.length,why:`this makes ${(h.creates??[]).filter(s=>n.has(s)).map(s=>J(G(e.schema.tryDefinition(s),s))).join(", ")}`,nodeIds:[]})}return{affordances:d,observations:o}}if(t.length===0)return{};let w=new Set(t.map(n=>n.kind)),c=(n,o,h)=>{let m=[];for(let r of e.graph.allEdges()){if(!o.includes(r.kind))continue;let s=r.from===n?r.to:r.to===n?r.from:null;if(!s)continue;let k=e.graph.getNode(s);k&&(!h.includes("*")&&!h.includes(k.kind)||m.includes(s)||m.push(s))}return m};for(let n of e.allMutations()){let o=n.subject;if(!o||!(o.kinds==="*"?!0:[...w].every(u=>o.kinds.includes(u))))continue;let m=n.derived?.act;if((m==="archive"||m==="merge")&&t.some(u=>V(u))||m==="unarchive"&&!t.some(u=>V(u))||m==="leave-alone"&&t.every(u=>Q(e,u.id))||m==="allow-tidying"&&!t.some(u=>Q(e,u.id)))continue;let r=t.length===1?t[0].id:null,s=n.severs??[],k=n.connects??[];if(r&&s.length>0&&k.length===0&&c(r,s,["*"]).length===0)continue;let g=[];for(let u of E(n.input)){if(u.name===o.arg)continue;let p=u.kinds.includes("*")?e.graph.allNodes().map(S=>S.id):u.kinds.flatMap(S=>e.graph.nodesOfKind(S).map(P=>P.id));if(r&&k.length>0){let S=new Set(c(r,k,u.kinds));p=p.filter(P=>!S.has(P))}else r&&s.length>0&&(p=c(r,s,u.kinds));g.push({name:u.name,kinds:u.kinds,candidates:p.filter(S=>!a.includes(S)),shape:x(n.input,u.name),...u.optional?{optional:!0}:{}})}for(let u of q(n.input,o.arg))g.some(p=>p.name===u)||g.push({name:u,shape:x(n.input,u)});if(g.length===0&&r){let u=wn(n.input,o.arg);if(u.length>0&&!An(e,n.name,{[o.arg]:r}))for(let p of u){let S=E(n.input).find(P=>P.name===p);g.push({name:p,optional:!0,...S?{kinds:S.kinds}:{},shape:x(n.input,p)})}}if(!g.every(u=>u.optional===!0?!0:u.kinds!==void 0?(u.candidates?.length??0)>0:(u.candidates?.length??0)>0||u.shape!==void 0&&u.shape.type!=="unknown")&&!A(n.name,r?{[o.arg]:r}:{}))continue;let j=t.map(u=>({[o.arg]:u.id}));g.length===0&&!j.some(u=>e.wouldChange({name:n.name,args:u}))||d.push({id:`schema:${n.name}`,label:t.length>1?`${K(n)} (${t.length})`:K(n),provider:"schema",mutation:n.name,args:j[0]??{},open:g,...n.destructive?{destructive:!0}:{},...n.derived?.act==="archive"||n.derived?.act==="merge"||n.derived?.act==="leave-alone"||n.derived?.act==="allow-tidying"?{setsAside:!0}:{},...s.length>0||k.length>0?{ties:!0}:{},...t.length>1?{batch:j}:{},score:X-g.length,why:t.length>1?`all ${t.length} selected nodes are ${[...w].map(u=>tn(e.schema,u).toLowerCase()).join(" or ")}`:`this is ${J(G(e.schema.tryDefinition(t[0].kind),t[0].kind))}`,nodeIds:t.map(u=>u.id)})}if(t.length===1){let n=t[0];for(let o of e.allMutations()){let h=o.subject,m=o.severs??[],r=o.connects??[];if(!h||m.length===0&&r.length===0)continue;let s=h.kinds==="*"?"*":h.kinds;if(s==="*"||s.includes(n.kind))continue;let k=E(o.input),g=k.find(y=>y.name!==h.arg&&(y.kinds.includes("*")||y.kinds.includes(n.kind)));if(!g)continue;let $=s,j=$.includes("*")?e.graph.allNodes().map(y=>y.id):$.flatMap(y=>e.graph.nodesOfKind(y).map(I=>I.id)),u=new Set(c(n.id,r.length>0?r:m,$)),p=r.length>0?j.filter(y=>!u.has(y)):j.filter(y=>u.has(y));if(p.length===0)continue;let S=[{name:h.arg,kinds:$,candidates:p,shape:x(o.input,h.arg)}];for(let y of k){if(y.name===g.name||y.name===h.arg)continue;let I=y.kinds.includes("*")?e.graph.allNodes().map(L=>L.id):y.kinds.flatMap(L=>e.graph.nodesOfKind(L).map(O=>O.id));S.push({name:y.name,kinds:y.kinds,candidates:I,shape:x(o.input,y.name),...y.optional?{optional:!0}:{}})}for(let y of q(o.input,g.name))y===h.arg||S.some(I=>I.name===y)||S.push({name:y,shape:x(o.input,y)});S.every(y=>y.optional===!0?!0:y.kinds!==void 0?(y.candidates?.length??0)>0:(y.candidates?.length??0)>0||y.shape!==void 0&&y.shape.type!=="unknown")&&d.push({id:`schema:tie:${o.name}:${n.id}`,label:o.fromTheOtherEnd??K(o),provider:"schema",mutation:o.name,args:{[g.name]:n.id},open:S,ties:!0,...o.destructive?{destructive:!0}:{},score:X-S.length+2,why:`${m.length>0?"this one is on":"this one could join"} ${S[0].candidates.length===1?"it":"one of these"}`,nodeIds:[n.id]})}}return{affordances:d}}}}function wn(e,a){let t=e.shape;return t?Object.entries(t).filter(([f,v])=>f!==a&&v.safeParse(void 0).success).map(([f])=>f):[]}function An(e,a,t){try{return e.preview({name:a,args:t}),!0}catch{return!1}}function q(e,a){let t=e.shape;return t?Object.entries(t).filter(([f,v])=>f!==a&&!v.safeParse(void 0).success).map(([f])=>f):[]}var $n=70,On=80,In=new Set(["id","kind"]);function kn(){return{name:"structure",derive({store:e,nodes:a}){let t=d=>T(e.schema.tryDefinition(d.kind),d);if(a.length<2)return{};let f=[],v=[],l=a.map(d=>d.id);for(let d of e.schema.edgeKinds){let w=Pn(a.map(n=>new Set([...e.graph.out(n.id,d).map(o=>o.id),...e.graph.in(n.id,d).map(o=>o.id)])));for(let n of w){let o=e.graph.getNode(n);o&&f.push({id:`shared:${d}:${n}`,text:`all ${a.length} share "${t(o)}" (${H(d).toLowerCase()})`,nodeIds:[...l,n]})}let c=new Map;for(let n of a)for(let o of[...e.graph.out(n.id,d),...e.graph.in(n.id,d)])c.set(o.id,(c.get(o.id)??0)+1);for(let[n,o]of c){if(o!==a.length-1||a.length<3||l.includes(n))continue;let h=e.graph.getNode(n);if(!h)continue;let m=a.find(r=>![...e.graph.out(r.id,d),...e.graph.in(r.id,d)].some(s=>s.id===n));if(m&&(f.push({id:`near-shared:${d}:${n}`,text:`all but "${t(m)}" share "${t(h)}" (${H(d).toLowerCase()})`,nodeIds:[...l,n]}),!(!e.schema.edgeAllowed(d,m.kind,h.kind)&&!e.schema.edgeAllowed(d,h.kind,m.kind))))for(let r of e.allMutations()){let s=r.subject;if(!s||s.kinds!=="*"&&!s.kinds.includes(m.kind)||(r.connects!==void 0||r.severs!==void 0)&&!(r.connects??[]).includes(d))continue;let g=jn(r.input,h.kind);g&&v.push({id:`structure:join:${r.name}:${m.id}:${n}`,label:`${K(r)}: bring "${t(m)}" in line with the others`,provider:"structure",mutation:r.name,args:{[s.arg]:m.id,[g]:n},open:[],score:$n,why:`every other selected node is connected to "${t(h)}"`,nodeIds:[m.id,n]})}}}let A=new Map;for(let d of a)A.set(d.kind,[...A.get(d.kind)??[],d]);for(let[d,w]of A){if(w.length<2)continue;let c=w,n=w.map(r=>r.id),o=A.size>1?`${d}:`:"",h=new Set;for(let r of c)for(let s of Object.keys(r))In.has(s)||h.add(s);let m=r=>e.schema.definitions.find(s=>s.kind===r);for(let r of[...h].sort()){let s=m(c[0].kind),k=sn(s,r),g=s?.display?.format?.[r],$=O=>{if(!g)return O;try{return String(g(JSON.parse(O)))}catch{return O}},j=c.map(O=>O[r]),u=new Map;if(j.forEach((O,R)=>{let D=JSON.stringify(O??null),M=u.get(D);M?M.push(c[R]):u.set(D,[c[R]])}),u.size===1){let O=[...u.keys()][0];if(O==="null")continue;f.push({id:`agree:${o}${r}`,text:`all ${c.length} share the ${k} ${$(O)}`,nodeIds:n});continue}if(c.length<3||u.size!==2)continue;let p=[...u.entries()].sort((O,R)=>R[1].length-O[1].length),[S,P]=p[0],[,y]=p[1];if(y.length!==1||S==="null")continue;let I=y[0],L=JSON.parse(S);f.push({id:`odd-one-out:${o}${r}`,text:`${P.length} share the ${k} ${$(S)}; "${t(I)}" does not`,nodeIds:n});for(let O of e.allMutations()){let R=O.subject;if(!R||R.kinds!=="*"&&!R.kinds.includes(I.kind))continue;let D=yn(O.input);if(!D||!(r in D))continue;let M={[R.arg]:I.id,[r]:L},C=!0;for(let[W,z]of Object.entries(D)){if(W in M||z.safeParse(void 0).success)continue;let B=I[W];if(B===void 0){C=!1;break}M[W]=B}!C||!O.input.safeParse(M).success||v.push({id:`structure:align:${O.name}:${r}:${I.id}`,label:`Align the ${k} of "${t(I)}" with the other ${P.length}`,provider:"structure",mutation:O.name,args:M,open:[],score:On,why:`${P.length} of ${c.length} share the ${k} ${$(S)}`,nodeIds:n})}}}return{affordances:v,observations:f}}}}function Pn(e){if(e.length===0)return[];let[a,...t]=e;return[...a].filter(f=>t.every(v=>v.has(f))).sort()}function yn(e){return e.shape??null}function jn(e,a){let t=yn(e);if(!t)return null;for(let[f]of Object.entries(t)){let v=rn(t[f]);if(v&&(v.includes("*")||v.includes(a)))return f}return null}function Nn(){return[pn(),kn(),mn(),ln()]}function Yn(e,a,t={}){let f=vn(),v=t.providers??Nn(),l=a.map(i=>e.graph.getNode(i)).filter(i=>i!==void 0),A={store:e,selection:a,nodes:l,kindSelection:t.kindSelection??[],edgeSelection:t.edgeSelection??[],violations:e.violations(t.context),context:t.context??{},principal:t.principal??{kind:"human"}},d=[],w=[];for(let i of v){let b=i.derive(A);d.push(...b.affordances??[]),w.push(...b.observations??[])}let c=new Map(e.allMutations().map(i=>[i.name,i]));d.forEach((i,b)=>{let N=i.open.length>1?c.get(i.mutation):void 0;N&&(d[b]={...i,open:dn(i.open,an(e.schema,N))})});let n=new Set(e.allMutations().filter(i=>i.pinned).map(i=>i.name)),o=new Set(t.pins?.pinned??[]),h=new Set(t.pins?.unpinned??[]),m=i=>o.has(i.mutation)?"user":n.has(i.mutation)&&!h.has(i.mutation)?"declared":void 0,r=i=>{let b=m(i);return b?{...i,pinned:b}:i},s=new Map;for(let[i,b]of hn(e.log.all()))s.set(i,gn(b));let k=i=>i.pinned==="user"?0:i.pinned==="declared"?1:2,g=i=>i.score+(s.get(i.mutation)??0),$=new Map(e.allMutations().map(i=>[i.name,i])),j=new Map,u=i=>{let b=$.get(i.mutation);if(!b)return[];let N=j.get(i.mutation);N||(N=E(b.input).map(F=>F.name),j.set(i.mutation,N));let _=[];for(let F of i.batch??[i.args])for(let Y of N){let nn=F[Y]??i.args[Y];typeof nn=="string"&&_.push(nn)}return _},p=t.focus,S=4,P=i=>i.open.length>0?1:0,y=i=>{if(p===void 0)return S;let b=u(i);return b.length>0?b.includes(p)?I(i,0):S:i.nodeIds.includes(p)||i.subjectId===p?I(i,1):S},I=(i,b)=>i.provider==="invariant"?b:2+P(i),L=i=>i.setsAside?1:0,O=xn(d).map(r),R=new Map(O.map((i,b)=>[i,b])),D=O.sort((i,b)=>{let N=Number(i.destructive??!1)-Number(b.destructive??!1);if(N!==0)return N;let _=L(i)-L(b);if(_!==0)return _;let F=y(i)-y(b);return F!==0?F:y(i)<2?R.get(i)-R.get(b):+(b.provider==="invariant")-+(i.provider==="invariant")||k(i)-k(b)||g(b)-g(i)||i.id.localeCompare(b.id)}),M=t.principal??{kind:"human"},C=[],W=[];for(let i of D){let b=e.permits({name:i.mutation,args:{...i.args,...i.batch?.[0]??{}}},M);if(b.ok)C.push(i);else{let N=Mn(e,i,M);if(N==="done")continue;N?C.push(N):W.push({...i,refusal:b.refusal})}}let z=C.map((i,b)=>({...i,rank:b})),B=W.map((i,b)=>({...i,rank:C.length+b}));return{affordances:t.limit===void 0?z:z.slice(0,t.limit),withheld:B,observations:Rn(w),ms:vn()-f}}function xn(e){let a=new Map;for(let t of e){let f=[t.mutation,JSON.stringify(t.args),JSON.stringify(t.batch??null)].join("|"),v=a.get(f);(!v||t.score>v.score)&&a.set(f,t)}return[...a.values()]}function Rn(e){let a=new Map;for(let t of e)a.set(t.text,t);return[...a.values()]}function vn(){return typeof performance<"u"?performance.now():Date.now()}function ne(e,a,t={},f={}){let v=(a.batch??[a.args]).map(A=>({name:a.mutation,args:{...a.args,...A,...t}})),l=e.allMutations().find(A=>A.name===a.mutation);return e.applyAll(v,{...l?.describe?{}:{intent:a.label},...f.author?{author:f.author}:{}})}function ee(e,a,t={},f={}){try{return e.preview({name:a.mutation,args:{...a.args,...t}})}catch(v){throw f.pressed&&cn(v,f.pressed.author?.id),v}}function Mn(e,a,t){let f=e.allMutations().find(n=>n.name===a.mutation)?.subject,v=f!==void 0&&a.args[f.arg]===void 0,l=v?a.open.find(n=>n.name===f.arg):a.open.find(n=>n.name!==f?.arg&&n.candidates);if(!l?.candidates)return;let A=n=>e.permits({name:a.mutation,args:{...a.args,...a.batch?.[0]??{},[l.name]:n}},t).ok,d=l.candidates.filter(A),w=on(t),c=w===void 0?void 0:e.graph.getNode(w);if(d.length===0){let n=v?f.kinds:"*";return c!==void 0&&(n==="*"||n.includes(c.kind))&&A(c.id)?"done":void 0}return d.length===1&&d[0]===w?{...a,args:{...a.args,[l.name]:w},open:a.open.filter(n=>n!==l)}:{...a,open:a.open.map(n=>n===l?{...n,candidates:d}:n)}}export{Yn as a,ne as b,ee as c};
|
|
@@ -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.
|
|
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.MQNW3O67.js";import{m as g}from"./chunk.RJ7VSWTA.js";import{G as R,Oa as m,Y as c}from"./chunk.JCKIJSW7.js";import{a as f}from"./chunk.SDO3U72B.js";import{va as p}from"./chunk.6L6RUOSF.js";import{b as u}from"./chunk.AJZBJBMO.js";var o=u(R(),1);var r=u(c(),1),S,h=()=>S??=m(f(()=>(__graviewPreload(import.meta.url,["./chunk.UQZ2P6KD.js","./chunk.IXYG65TM.js","./chunk.W6L2VAJG.js","./chunk.N3MXLORL.js","./chunk.6L6RUOSF.js","./chunk.FQLNBIQ5.js","./chunk.AJZBJBMO.js"]),import("./chunk.DG3YNOH3.js"))));function L(e){let[n,t]=(0,o.useState)(()=>h().current);return(0,o.useEffect)(()=>{if(!e||n)return;let i=!0;return h().load().then(a=>i&&t(a),()=>{}),()=>{i=!1}},[e,n]),n}function D(e,n){let t=L(n.length>0);return(0,o.useMemo)(()=>t?t.withLines(e,n):n,[t,e,n])}function I(e,n){let t=L(n.some(i=>i.shape));return(0,o.useMemo)(()=>{let i=new Map;if(!t)return i;for(let a of n){let l=t.ruleLine(a,e);l&&i.set(a.name,l)}return i},[t,e,n])}function M(e){let n=e.line;if(!(!n||e.message.endsWith(` \u2014 ${n.text}`)||e.message===b(e)))return e.message}function b(e){let n=e.line;return n?n.record!==void 0?`${n.record} \u2014 ${n.text}`:n.text:e.message}var P={name:{},op:{color:"var(--graview-ink-muted)",fontWeight:500},value:{fontWeight:600,fontVariantNumeric:"tabular-nums"},word:{color:"var(--graview-ink-muted)"},open:{color:"var(--graview-ink-faint)"},close:{color:"var(--graview-ink-faint)"}};function w({parts:e}){return(0,r.jsx)(r.Fragment,{children:e.map((n,t)=>(0,r.jsxs)("span",{children:[n.space?" ":"",(0,r.jsx)("span",{"data-graview-rule-part":n.as,style:P[n.as],children:n.text})]},t))})}function x(e,n){let t=p(e?.tryDefinition(n),n);return t.charAt(0).toUpperCase()+t.slice(1)}function C({line:e,schema:n,brand:t,lead:i=e.record===void 0?"kind":"record",stacked:a=!1,style:l}){let d=e.kind,s=i==="kind"?d?x(n,d):void 0:i==="record"?e.record:void 0,k=i==="kind"&&s?`${s}: ${e.said}`:i==="record"&&s?`${s} \u2014 ${e.said}`:e.said;return(0,r.jsxs)("span",{"data-graview-rule-line":"",style:{overflowWrap:"anywhere",...l},children:[(0,r.jsx)("span",{style:g,children:k}),(0,r.jsxs)("span",{"aria-hidden":"true",children:[i!=="none"&&d?(0,r.jsx)("span",{style:{display:"inline-flex",verticalAlign:"-0.1em",marginRight:"0.4em"},children:(0,r.jsx)(y,{kind:d,...n?{schema:n}:{},...t?{brand:t}:{},size:13})}):null,s?(0,r.jsxs)("span",{"data-graview-rule-head":"",style:{fontWeight:600,marginRight:i==="record"||a?0:"0.6em"},children:[s,i==="record"&&!a?(0,r.jsx)("span",{style:{color:"var(--graview-ink-faint)",fontWeight:400},children:" \u2014 "}):null]}):null,a&&s?(0,r.jsx)("br",{}):null,(0,r.jsx)(w,{parts:e.parts}),e.when&&e.when.length>0?(0,r.jsxs)("span",{"data-graview-rule-when":"",style:{color:"var(--graview-ink-faint)"},children:[", when ",(0,r.jsx)(w,{parts:e.when})]}):null]})]})}function z(e){return e.line?e.label&&e.label.trim().length>0?e.label:void 0:e.label&&e.label!==e.message&&!e.message.startsWith(e.label)?e.label:void 0}export{D as a,I as b,M as c,C as d,z as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Se,b as ve}from"./chunk.25VJPUDH.js";import{b as ue,c as pe,d as K,e as ye,f as j,g as me,h as fe,i as he,j as be,k as we,l as E}from"./chunk.SCN6IYDG.js";import{a as $e}from"./chunk.LEZGBHPZ.js";import{b as ke}from"./chunk.O2XPLDMM.js";import"./chunk.CM7EDQ4E.js";import"./chunk.SUYYDJGZ.js";import"./chunk.YR7DKU5T.js";import"./chunk.YTRUZ56A.js";import"./chunk.ZGJUCVT5.js";import"./chunk.CVVNHQPO.js";import{l as ge}from"./chunk.YIDNZTON.js";import"./chunk.QILGAV7H.js";import"./chunk.I6HIVTXU.js";import{m as G}from"./chunk.PYGNO2AV.js";import"./chunk.3HFBHLXC.js";import{G as le,Y as I,ga as M,ia as _,qa as ce}from"./chunk.CUA7F3YJ.js";import"./chunk.SDO3U72B.js";import{Nc as F,fb as re,ia as ne,ma as B,oa as oe,pa as se,pb as ae,pc as de,ta as ie}from"./chunk.IUVRJDL3.js";import"./chunk.FQLNBIQ5.js";import{b as z}from"./chunk.AJZBJBMO.js";function xe(e){let n=e.basis.trim(),d=/^[^:]{1,40}: (?:\d(?:\.\d+)?|none|no)\b/i.test(n)?/\(([^()]+)\)\s*$/.exec(n)?.[1]??"":n;if(!d||/^[\d.\s%]+$/.test(d))return"No reason was kept.";let o=d.charAt(0).toUpperCase()+d.slice(1);return/[.!?]$/.test(o)?o:`${o}.`}var ze=new Set(["in","into","on","onto","under","at","within","inside","near","beside","behind","over","after","before"]),Ee=new Set(["for","to","on","in","with","by","from","of","after","before","into","about","under"]),He=e=>/ies$/.test(e)?e.replace(/ies$/,"y"):/(ch|sh|x|ss|o)es$/.test(e)?e.replace(/es$/,""):e.replace(/s$/,""),Pe=e=>/^[A-Z][a-z]/.test(e)?e.charAt(0).toLowerCase()+e.slice(1):e;function Q(e,n){let l=e.schema,d=c=>typeof c=="string"?e.graph.getNode(c):void 0,o=(c,S=!1)=>({record:c.id,label:B(l.tryDefinition(c.kind),c),...S?{quoted:!0}:{}}),i=(c,S,h,A,T)=>({parts:c,text:c.map(v=>typeof v=="string"?v:v.quoted?`\u201C${v.label}\u201D`:v.label).join(""),group:S,many:h,...A&&T?{subject:{record:A.id,label:B(l.tryDefinition(A.kind),A)},alone:T}:{alone:c}}),r=i([n.intent],`intent:${n.intent}`,c=>`${c} suggestions`);if(n.calls.length!==1)return r;let a=n.calls[0],f=a.args,p=e.allMutations().find(c=>c.name===a.name),b=p?.subject?.arg,s=b?d(f[b]):void 0;if(!p||!s)return r;let g=c=>oe(l,s.kind,c),u=c=>`${a.name}:${c}`,w=()=>{let c=de(p.input).filter(S=>S.name!==b&&f[S.name]!==void 0);return c.length===1?d(f[c[0].name]):void 0},W=d(f.into);if(a.name===`merge-${s.kind}`&&W)return i(["Merge ",o(s,!0)," into ",o(W),"?"],u("merge"),c=>`${g(c)} to merge`,s,["Merge into ",o(W),"?"]);if(a.name===`archive-${s.kind}`)return i(["Set ",o(s,!0)," aside?"],u("archive"),c=>`${g(c)} to set aside`,s,["Set aside?"]);let x=w(),N=p.connects?.find(c=>l.tryDefinition(s.kind)?.edges?.[c]!==void 0);if(x&&N){let c=l.tryDefinition(s.kind).edges[N],S=ie(l.tryDefinition(s.kind),N).split(" "),[h,A]=S,T=Pe(se(l,x.kind));if(h&&ze.has(h))return i(["Put ",o(s,!0),` ${h} `,o(x),"?"],u(`put:${h}`),$=>`${g($)} to put ${h} ${T}`,s,[`Put ${h} `,o(x),"?"]);if(h&&A&&Ee.has(A)&&/[^s]s$/.test(h)){let $=[He(h),...S.slice(1)].join(" ");return i(["Should ",o(s,!0),` ${$} `,o(x),"?"],u("verb"),P=>`${g(P)} to link`,s,[`${$.charAt(0).toUpperCase()}${$.slice(1)} `,o(x),"?"])}let v=S.join(" ");return c.cardinality==="one"?i(["Make ",o(x),` the ${v} of `,o(s,!0),"?"],u("one"),$=>`${g($)} to give ${/^[aeiou]/i.test(v)?"an":"a"} ${v}`,s,["Make ",o(x),` the ${v}?`]):i(["Add ",o(x),` to the ${v} of `,o(s,!0),"?"],u("many"),$=>`${g($)} to link`,s,["Add ",o(x),` to the ${v}?`])}let k=Object.entries(f).filter(([c,S])=>c!==b&&typeof S=="string"&&!d(S));if(n.lineage?.actor==="categorize"&&k.length===1){let c=ne(String(k[0][1]));return i(["Mark ",o(s,!0),` as ${c}?`],u("mark"),S=>`${g(S)} to mark`,s,[`Mark as ${c}?`])}return r}function We(e,n){let l=n.map(i=>({one:i,sentence:Q(e,i)})),d=new Map;for(let{sentence:i}of l)i.subject&&d.set(i.subject.record,(d.get(i.subject.record)??0)+1);let o=new Map;for(let{one:i,sentence:r}of l){let a=r.subject!==void 0&&d.get(r.subject.record)>1,f=a?`record:${r.subject.record}`:i.calls.length===1?r.group:`one:${o.size}`,p=o.get(f);p?p.suggestions.push(i):o.set(f,{sentence:r,byRecord:a,suggestions:[i]})}return[...o.values()].map(({sentence:i,byRecord:r,suggestions:a})=>r?{record:i.subject,suggestions:a}:a.length>1?{words:i.many(a.length),suggestions:a}:{suggestions:a})}var y=z(le(),1);var Te=z(le(),1),R=z(I(),1),Ae={minWidth:0,overflowWrap:"anywhere"};function Re({suggestion:e,decides:n,heard:l}){let{store:d,principal:o}=M(),[i,r]=(0,Te.useState)(null),a=e.items;if(a.length<2)return null;let f=(p,b)=>{r(null);try{j(d,e.id,{author:o,items:[p]}),l("Accepted that change; the rest still wait."),requestAnimationFrame(()=>{let s=document.querySelector(`[data-suggestion="${CSS.escape(e.id)}"]`);(s?.querySelectorAll('[data-testid="suggestion-item-accept"]')[b]??s?.querySelectorAll('[data-testid="suggestion-item-accept"]')[b-1]??s?.querySelector('[data-testid="suggestion-accept"]'))?.focus()})}catch(s){r(s instanceof Error?s.message:String(s))}};return(0,R.jsxs)("details",{"data-testid":"suggestion-items",style:{minWidth:0},children:[(0,R.jsx)("summary",{style:{cursor:"pointer",fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:`Show the ${a.length} changes`}),(0,R.jsx)("ol",{style:{margin:"6px 0 0",padding:0,listStyle:"none",display:"grid",gap:4,minWidth:0},children:a.map((p,b)=>(0,R.jsxs)("li",{"data-testid":"suggestion-item","data-item":p.at,style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0,fontSize:"0.75rem"},children:[(0,R.jsx)("span",{style:{...Ae,flex:"1 1 auto"},children:p.intent}),n?(0,R.jsx)("button",{type:"button","data-testid":"suggestion-item-accept","aria-label":`Accept: ${p.intent}`,onClick:()=>f(p.at,b),style:{minHeight:24,padding:"1px 8px",fontSize:"0.75rem",flex:"0 0 auto"},children:"Accept"}):null]},p.at))}),i?(0,R.jsx)("span",{"data-testid":"suggestion-item-refused",role:"alert",style:{...Ae,display:"block",fontSize:"0.75rem",color:"var(--graview-warn)"},children:i}):null]})}var t=z(I(),1);function Ie(e,n,l=0){let d=[e>0?`${e===1?"one suggestion":`${e} suggestions`} waiting`:"",e>0&&l>0?`${l===1?"a reader agrees":`${l} readers agree`} with one that waits`:"",n>0?`tidied ${n===1?"one thing":`${n} things`} while you were away`:""].filter(Boolean);return d.length>0?d.join(" \xB7 ").replace(/^./,o=>o.toUpperCase()):void 0}function J(){let{store:e,principal:n,dismissals:l,app:d}=M(),o=_(),i=(0,y.useMemo)(()=>ve(l,d?.name??"app",n),[l,d?.name,n]),[r,a]=(0,y.useReducer)(g=>g+1,0);(0,y.useEffect)(()=>i.onChange?.(a),[i]),(0,y.useEffect)(()=>e.subscribe((g,u)=>u.some(w=>w.vote!==void 0)&&a()),[e]);let f=(0,y.useMemo)(()=>ue(e,n,{dismissed:i.list()}),[e,n,o,i,r]),p=(0,y.useCallback)(g=>K(e,g,n)||e.permits({name:F,args:{suggestion:g.id,vote:"for"}},n).ok,[e,n]),b=(0,y.useMemo)(()=>f.filter(p),[f,p]),s=(0,y.useMemo)(()=>f.filter(g=>!p(g)),[f,p]);return{waiting:b,toldOf:s,notNow:i}}function st({onCount:e}){let{waiting:n}=J();return(0,y.useEffect)(()=>e(n.length),[e,n.length]),null}function it({close:e,done:n}){let{waiting:l,notNow:d}=J();return(0,t.jsx)(Ce,{waiting:l,notNow:d,close:e,done:n})}function Ce({waiting:e,notNow:n,close:l,done:d}){let{store:o}=M(),[i,r]=(0,y.useState)(""),a=ce(),f=s=>o.graph.has(s)?g=>{l(),a.record(g)}:null,p=s=>{r(s),requestAnimationFrame(()=>{let g=document.querySelector('[data-testid="inbox"] [data-testid="suggestion"]'),u=g?.querySelector('[data-testid="suggestion-accept"], [data-testid="suggestion-sign-in"], [data-testid="suggestion-not-now"]')??g?.querySelector("button")??document.querySelector('[data-testid="inbox-needs-you"] [data-testid="inbox-problem-words"]:is(button), [data-testid="inbox-needs-you"] [data-testid="inbox-notification"]:is(a, button)');u?u.focus():d()})},b=(0,t.jsx)("span",{role:"status","data-testid":"suggestion-heard",style:G,children:i});return e.length===0?b:(0,t.jsxs)("div",{"data-testid":"suggested",style:{display:"flex",flexDirection:"column",gap:9,minWidth:0},children:[[e.filter(E),e.filter(s=>!E(s))].map((s,g)=>s.length===0?null:(0,t.jsxs)("div",{style:{display:"grid",gap:6,minWidth:0},children:[e.some(E)?(0,t.jsx)("h4",{style:{margin:0,fontSize:"0.75rem",fontWeight:600,color:"var(--graview-ink-muted)"},children:g===0?"Proposed":"Suggested by the app"}):null,(0,t.jsx)("ol",{"data-testid":g===0?"proposals":"suggestions",style:O,children:We(o,s).map(u=>u.record?(0,t.jsx)(Ge,{record:u.record,level:e.some(E)?5:4,go:f(u.record.record),children:w=>u.suggestions.map(W=>(0,t.jsx)(Z,{suggestion:W,notNow:n,settled:p,heard:r,goes:f,under:w},W.id))},u.suggestions[0].id):u.words?(0,t.jsxs)("li",{"data-testid":"suggestion-group",style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:6,minWidth:0},children:[(0,t.jsx)("span",{style:{...C,fontSize:"0.75rem",fontWeight:600,color:"var(--graview-ink-muted)"},children:u.words}),(0,t.jsx)("ol",{style:O,children:u.suggestions.map(w=>(0,t.jsx)(Z,{suggestion:w,notNow:n,settled:p,heard:r,goes:f},w.id))})]},u.suggestions[0].id):u.suggestions.map(w=>(0,t.jsx)(Z,{suggestion:w,notNow:n,settled:p,heard:r,goes:f},w.id)))})]},g)),b]})}function rt({alone:e,close:n,done:l}){let{store:d,whileAway:o,principal:i}=M(),{waiting:r,toldOf:a,notNow:f}=J();_();let[p,b]=(0,y.useState)(null),s=o?.tidied??0,g=o?Ie(r.length,s,o.agreed):void 0,u=pe(d,i).filter(w=>d.mayUndo(w.batch,i).ok);return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:8,minWidth:0},children:[g?(0,t.jsxs)("p",{"data-testid":"while-away",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:[g,"."]}):null,a.length>0?(0,t.jsx)(Ce,{waiting:a,notNow:f,close:n,done:l}):null,u.length>0?(0,t.jsx)("ul",{"data-testid":"suggestions-stopped","aria-label":"What is not suggested any more",style:{...O,gap:6},children:u.map(w=>(0,t.jsxs)("li",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:10,rowGap:4,minWidth:0,color:"var(--graview-ink-muted)"},children:[(0,t.jsx)("span",{style:{...C,flex:"1 1 14em"},children:w.words}),(0,t.jsx)("button",{type:"button","data-testid":"suggestion-suggest-again",onClick:()=>{b(null);try{d.undo(w.batch,{author:i})}catch(W){b(ge(d.schema,d.allMutations(),W))}requestAnimationFrame(()=>document.querySelector('[data-testid="inbox"] [aria-selected="true"]')?.focus())},style:H,children:"Suggest again"})]},w.batch))}):null,p?(0,t.jsx)("span",{role:"alert",style:{...C,fontSize:"0.75rem",color:"var(--graview-warn)"},children:p}):null,e&&!g&&u.length===0&&a.length===0?(0,t.jsx)("p",{"data-testid":"inbox-updates-empty",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:"No updates."}):null]})}function Ge({record:e,level:n,go:l,children:d}){let o=(0,y.useId)();return(0,t.jsxs)("li",{"data-testid":"suggestion-record-group","data-record":e.record,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,minWidth:0},children:[(0,t.jsx)("span",{id:o,role:"heading","aria-level":n,"data-testid":"suggestion-record-heading",style:{...C,display:"block",fontSize:"0.8125rem",lineHeight:1.45},children:(0,t.jsx)(Ne,{part:e,go:l})}),(0,t.jsx)("ol",{"aria-labelledby":o,style:{...O,gap:6,paddingInlineStart:12},children:d(o)})]})}var C={minWidth:0,overflowWrap:"anywhere"},O={margin:0,padding:0,listStyle:"none",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:10,fontSize:"0.8125rem",minWidth:0},H={minHeight:24,padding:"1px 10px",fontSize:"0.75rem"},q={...H,border:"1px solid transparent",background:"transparent",boxShadow:"none",color:"var(--graview-ink-muted)"};function Ne({part:e,go:n}){let l={display:"inline-block",maxWidth:"min(24ch, 100%)",minHeight:24,lineHeight:"24px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",verticalAlign:"bottom"},d=n?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-record","data-record":e.record,title:`Go to ${e.label}`,onClick:()=>n(e.record),className:"graview-activity-record",style:{all:"unset",...l,cursor:"pointer",fontWeight:600,color:"var(--graview-ink)",textDecoration:"underline",textDecorationColor:"color-mix(in srgb, var(--graview-ink) 35%, transparent)",textUnderlineOffset:2},children:e.label}):(0,t.jsx)("span",{title:e.label,style:{...l,fontWeight:600},children:e.label});return e.quoted?(0,t.jsxs)(t.Fragment,{children:["\u201C",d,"\u201D"]}):d}var je={accept:"Accepted.",decline:"Declined: it will not be suggested again.",stop:"This kind of thing will not be suggested again. You can undo that in Activity.",later:"Hidden from you until tomorrow.",withdraw:"Withdrawn."},L={recorded:"Your vote was recorded.",withdrawn:"Your vote was withdrawn."},qe=(e,n)=>n.startsWith(`${e}: `)?n.slice(e.length+2):n,Le=e=>{let n=`${e.for} for, ${e.against} against`,l=Oe(e.advisory);return l?`${n} \xB7 ${l}`:n};function Oe(e){if(!e)return"";let n=e.for===0?"":e.for===1?"a visitor agrees":`${e.for} visitors agree`,l=e.against===0?"":e.against===1?`${n?"one":"a visitor"} disagrees`:`${e.against}${n?"":" visitors"} disagree`;return[n,l].filter(Boolean).join(", ")}function Z({suggestion:e,notNow:n,settled:l,heard:d,goes:o,under:i}){let{store:r,principal:a,seats:f,people:p,signIn:b}=M(),[s,g]=(0,y.useState)(null),[u,w]=(0,y.useState)(null),W=(0,y.useId)(),x=(0,y.useId)(),N=ae(e.author,{graph:r.graph,schema:r.schema,seats:f,people:p}),k=(0,y.useMemo)(()=>K(r,e,a),[r,e,a]),c=(0,y.useMemo)(()=>k&&he(r,e,a),[k,r,e,a]),S=(0,y.useMemo)(()=>k||r.permits({name:F,args:{suggestion:e.id,vote:"for"}},a).ok,[k,r,e.id,a]),{tally:h}=e,A=E(e),T=A&&a!==void 0&&!k&&re(a).id===e.lineage.proposedBy,v=async m=>{g(null);try{if(m==="withdraw")we(r,e.id,{author:a});else if(m==="stop")be(r,e.id,{author:a});else if(m==="accept"||m==="decline"){if((m==="accept"?j(r,e.id,{author:a}):me(r,e.id,{author:a})).voted!==void 0){w(L.recorded),d(L.recorded);return}}else if(m==="unvote"){ye(r,e.id,null,{author:a}),w(L.withdrawn),d(L.withdrawn);return}else await n.dismiss({suggestion:e.id,at:new Date().toISOString(),until:Se()});l(je[m])}catch(D){g(D instanceof Error?D.message:String(D))}},$=e.items.length>1,P=(0,y.useMemo)(()=>Q(r,e),[r,e]),U=(0,y.useId)(),Me=i?P.alone:P.parts,X=i?`${i} ${U}`:U,V=new Set(P.parts.flatMap(m=>typeof m=="string"?[]:[m.record])),Y=e.lineage&&!(A&&e.lineage.basis.startsWith("Proposed by "))?xe(e.lineage):void 0,[ee,De]=(0,y.useState)(!1),te=(0,y.useId)();return(0,t.jsxs)("li",{"data-testid":"suggestion","data-suggestion":e.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,lineHeight:1.45,minWidth:0},children:[(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:10,rowGap:4,minWidth:0},children:[(0,t.jsxs)("span",{id:U,"data-graview-suggestion-words":"",style:{...C,flex:"1 1 14em"},children:[A?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{"data-testid":"proposed-by",style:{color:"var(--graview-ink-muted)"},children:["Proposed by ",(0,t.jsx)("strong",{style:{fontWeight:600,color:"var(--graview-ink)"},children:T?"you":N}),":"]})," "]}):$?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("strong",{style:{fontWeight:600},children:N})," ",(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:"suggests"})," "]}):null,$?qe(N,e.headline??e.intent):Me.map((m,D)=>typeof m=="string"?m:(0,t.jsx)(Ne,{part:m,go:o(m.record)},D))]}),(0,t.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:4,marginInlineStart:"auto",minWidth:0},children:[Y?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-why","aria-expanded":ee,"aria-controls":te,onClick:()=>De(m=>!m),style:{...q,padding:"1px 6px"},children:"Why?"}):null,T?(0,t.jsx)("button",{type:"button","data-testid":"proposal-withdraw",onClick:()=>void v("withdraw"),style:H,children:"Withdraw"}):S?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-accept",onClick:()=>void v("accept"),...k?{"aria-describedby":X}:{"aria-pressed":h.mine==="for","aria-describedby":x},style:H,children:k&&$?"Accept all":"Yes"}):b?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-sign-in",onClick:()=>b.run(),style:H,children:"Sign in to vote"}):null,S&&!T?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-decline",onClick:()=>void v("decline"),...k?{"aria-describedby":X}:{"aria-pressed":h.mine==="against","aria-describedby":x},style:H,children:"No"}):null,c?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-stop-kind",onClick:()=>void v("stop"),title:`Stops suggesting ${fe(r,e)}. You can undo it.`,style:q,children:"Don't suggest this kind of thing"}):null,!k&&S&&!T&&h.mine!==void 0?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-withdraw-vote",onClick:()=>void v("unvote"),style:q,children:"Withdraw vote"}):null,(0,t.jsx)("button",{type:"button","data-testid":"suggestion-not-now",onClick:()=>void v("later"),title:"Hide it from you until tomorrow. It still waits for everyone else.","aria-describedby":W,style:q,children:"Later"})]})]}),(0,t.jsx)("span",{id:W,style:G,children:"Hides it from you until tomorrow; it still waits for everyone else."}),!k&&S&&!T?(0,t.jsx)("span",{id:x,style:G,children:"Counts as your vote; somebody who may make it decides."}):null,Y?(0,t.jsx)("span",{id:te,"data-graview-lineage":"",hidden:!ee,style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:Y}):null,$?(0,t.jsx)(Re,{suggestion:e,decides:k,heard:d}):null,e.about.some(m=>!V.has(m))&&($||V.size===0)?(0,t.jsx)("div",{"data-graview-suggestion-records":"",style:{display:"flex",flexWrap:"wrap",gap:4,minWidth:0},children:e.about.filter(m=>!V.has(m)).slice(0,4).map(m=>(0,t.jsx)($e,{id:m,label:ke(r,m),go:o(m),testId:"suggestion-record"},m))}):null,k&&h.for+h.against+(h.advisory?h.advisory.for+h.advisory.against:0)>0?(0,t.jsx)("span",{"data-testid":"suggestion-tally",style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:Le(h)}):null,u?(0,t.jsx)("span",{"data-testid":"suggestion-voted",role:"status",style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:u}):null,s?(0,t.jsx)("span",{"data-testid":"suggestion-refused",role:"alert",style:{...C,fontSize:"0.75rem",color:"var(--graview-warn)"},children:s}):null]})}export{st as SuggestedCount,it as SuggestedList,rt as SuggestedUpdates,Oe as advisoryWords,Ie as awayWords,Le as tallyWords};
|
|
1
|
+
import{a as Se,b as ve}from"./chunk.25VJPUDH.js";import{b as ue,c as pe,d as K,e as ye,f as j,g as me,h as fe,i as he,j as be,k as we,l as E}from"./chunk.G767NLBH.js";import{a as $e}from"./chunk.RO3D2RNP.js";import{b as ke}from"./chunk.MEAUTBVM.js";import"./chunk.OKHXXIMN.js";import"./chunk.NH3VXTGX.js";import"./chunk.6IMRCKB4.js";import"./chunk.RDUGUC7R.js";import"./chunk.6TBQV3NO.js";import"./chunk.MT252WP4.js";import{l as ge}from"./chunk.VVIQSFM4.js";import"./chunk.TQ3MNB6K.js";import"./chunk.VGYG2IBZ.js";import{m as G}from"./chunk.RJ7VSWTA.js";import"./chunk.P43LPXXJ.js";import{G as le,Y as I,ga as M,ia as _,qa as ce}from"./chunk.JCKIJSW7.js";import"./chunk.SDO3U72B.js";import{Nc as F,fb as re,ia as ne,ma as B,oa as oe,pa as se,pb as ae,pc as de,ta as ie}from"./chunk.6L6RUOSF.js";import"./chunk.FQLNBIQ5.js";import{b as z}from"./chunk.AJZBJBMO.js";function xe(e){let n=e.basis.trim(),d=/^[^:]{1,40}: (?:\d(?:\.\d+)?|none|no)\b/i.test(n)?/\(([^()]+)\)\s*$/.exec(n)?.[1]??"":n;if(!d||/^[\d.\s%]+$/.test(d))return"No reason was kept.";let o=d.charAt(0).toUpperCase()+d.slice(1);return/[.!?]$/.test(o)?o:`${o}.`}var ze=new Set(["in","into","on","onto","under","at","within","inside","near","beside","behind","over","after","before"]),Ee=new Set(["for","to","on","in","with","by","from","of","after","before","into","about","under"]),He=e=>/ies$/.test(e)?e.replace(/ies$/,"y"):/(ch|sh|x|ss|o)es$/.test(e)?e.replace(/es$/,""):e.replace(/s$/,""),Pe=e=>/^[A-Z][a-z]/.test(e)?e.charAt(0).toLowerCase()+e.slice(1):e;function Q(e,n){let l=e.schema,d=c=>typeof c=="string"?e.graph.getNode(c):void 0,o=(c,S=!1)=>({record:c.id,label:B(l.tryDefinition(c.kind),c),...S?{quoted:!0}:{}}),i=(c,S,h,A,T)=>({parts:c,text:c.map(v=>typeof v=="string"?v:v.quoted?`\u201C${v.label}\u201D`:v.label).join(""),group:S,many:h,...A&&T?{subject:{record:A.id,label:B(l.tryDefinition(A.kind),A)},alone:T}:{alone:c}}),r=i([n.intent],`intent:${n.intent}`,c=>`${c} suggestions`);if(n.calls.length!==1)return r;let a=n.calls[0],f=a.args,p=e.allMutations().find(c=>c.name===a.name),b=p?.subject?.arg,s=b?d(f[b]):void 0;if(!p||!s)return r;let g=c=>oe(l,s.kind,c),u=c=>`${a.name}:${c}`,w=()=>{let c=de(p.input).filter(S=>S.name!==b&&f[S.name]!==void 0);return c.length===1?d(f[c[0].name]):void 0},W=d(f.into);if(a.name===`merge-${s.kind}`&&W)return i(["Merge ",o(s,!0)," into ",o(W),"?"],u("merge"),c=>`${g(c)} to merge`,s,["Merge into ",o(W),"?"]);if(a.name===`archive-${s.kind}`)return i(["Set ",o(s,!0)," aside?"],u("archive"),c=>`${g(c)} to set aside`,s,["Set aside?"]);let x=w(),N=p.connects?.find(c=>l.tryDefinition(s.kind)?.edges?.[c]!==void 0);if(x&&N){let c=l.tryDefinition(s.kind).edges[N],S=ie(l.tryDefinition(s.kind),N).split(" "),[h,A]=S,T=Pe(se(l,x.kind));if(h&&ze.has(h))return i(["Put ",o(s,!0),` ${h} `,o(x),"?"],u(`put:${h}`),$=>`${g($)} to put ${h} ${T}`,s,[`Put ${h} `,o(x),"?"]);if(h&&A&&Ee.has(A)&&/[^s]s$/.test(h)){let $=[He(h),...S.slice(1)].join(" ");return i(["Should ",o(s,!0),` ${$} `,o(x),"?"],u("verb"),P=>`${g(P)} to link`,s,[`${$.charAt(0).toUpperCase()}${$.slice(1)} `,o(x),"?"])}let v=S.join(" ");return c.cardinality==="one"?i(["Make ",o(x),` the ${v} of `,o(s,!0),"?"],u("one"),$=>`${g($)} to give ${/^[aeiou]/i.test(v)?"an":"a"} ${v}`,s,["Make ",o(x),` the ${v}?`]):i(["Add ",o(x),` to the ${v} of `,o(s,!0),"?"],u("many"),$=>`${g($)} to link`,s,["Add ",o(x),` to the ${v}?`])}let k=Object.entries(f).filter(([c,S])=>c!==b&&typeof S=="string"&&!d(S));if(n.lineage?.actor==="categorize"&&k.length===1){let c=ne(String(k[0][1]));return i(["Mark ",o(s,!0),` as ${c}?`],u("mark"),S=>`${g(S)} to mark`,s,[`Mark as ${c}?`])}return r}function We(e,n){let l=n.map(i=>({one:i,sentence:Q(e,i)})),d=new Map;for(let{sentence:i}of l)i.subject&&d.set(i.subject.record,(d.get(i.subject.record)??0)+1);let o=new Map;for(let{one:i,sentence:r}of l){let a=r.subject!==void 0&&d.get(r.subject.record)>1,f=a?`record:${r.subject.record}`:i.calls.length===1?r.group:`one:${o.size}`,p=o.get(f);p?p.suggestions.push(i):o.set(f,{sentence:r,byRecord:a,suggestions:[i]})}return[...o.values()].map(({sentence:i,byRecord:r,suggestions:a})=>r?{record:i.subject,suggestions:a}:a.length>1?{words:i.many(a.length),suggestions:a}:{suggestions:a})}var y=z(le(),1);var Te=z(le(),1),R=z(I(),1),Ae={minWidth:0,overflowWrap:"anywhere"};function Re({suggestion:e,decides:n,heard:l}){let{store:d,principal:o}=M(),[i,r]=(0,Te.useState)(null),a=e.items;if(a.length<2)return null;let f=(p,b)=>{r(null);try{j(d,e.id,{author:o,items:[p]}),l("Accepted that change; the rest still wait."),requestAnimationFrame(()=>{let s=document.querySelector(`[data-suggestion="${CSS.escape(e.id)}"]`);(s?.querySelectorAll('[data-testid="suggestion-item-accept"]')[b]??s?.querySelectorAll('[data-testid="suggestion-item-accept"]')[b-1]??s?.querySelector('[data-testid="suggestion-accept"]'))?.focus()})}catch(s){r(s instanceof Error?s.message:String(s))}};return(0,R.jsxs)("details",{"data-testid":"suggestion-items",style:{minWidth:0},children:[(0,R.jsx)("summary",{style:{cursor:"pointer",fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:`Show the ${a.length} changes`}),(0,R.jsx)("ol",{style:{margin:"6px 0 0",padding:0,listStyle:"none",display:"grid",gap:4,minWidth:0},children:a.map((p,b)=>(0,R.jsxs)("li",{"data-testid":"suggestion-item","data-item":p.at,style:{display:"flex",alignItems:"baseline",gap:6,minWidth:0,fontSize:"0.75rem"},children:[(0,R.jsx)("span",{style:{...Ae,flex:"1 1 auto"},children:p.intent}),n?(0,R.jsx)("button",{type:"button","data-testid":"suggestion-item-accept","aria-label":`Accept: ${p.intent}`,onClick:()=>f(p.at,b),style:{minHeight:24,padding:"1px 8px",fontSize:"0.75rem",flex:"0 0 auto"},children:"Accept"}):null]},p.at))}),i?(0,R.jsx)("span",{"data-testid":"suggestion-item-refused",role:"alert",style:{...Ae,display:"block",fontSize:"0.75rem",color:"var(--graview-warn)"},children:i}):null]})}var t=z(I(),1);function Ie(e,n,l=0){let d=[e>0?`${e===1?"one suggestion":`${e} suggestions`} waiting`:"",e>0&&l>0?`${l===1?"a reader agrees":`${l} readers agree`} with one that waits`:"",n>0?`tidied ${n===1?"one thing":`${n} things`} while you were away`:""].filter(Boolean);return d.length>0?d.join(" \xB7 ").replace(/^./,o=>o.toUpperCase()):void 0}function J(){let{store:e,principal:n,dismissals:l,app:d}=M(),o=_(),i=(0,y.useMemo)(()=>ve(l,d?.name??"app",n),[l,d?.name,n]),[r,a]=(0,y.useReducer)(g=>g+1,0);(0,y.useEffect)(()=>i.onChange?.(a),[i]),(0,y.useEffect)(()=>e.subscribe((g,u)=>u.some(w=>w.vote!==void 0)&&a()),[e]);let f=(0,y.useMemo)(()=>ue(e,n,{dismissed:i.list()}),[e,n,o,i,r]),p=(0,y.useCallback)(g=>K(e,g,n)||e.permits({name:F,args:{suggestion:g.id,vote:"for"}},n).ok,[e,n]),b=(0,y.useMemo)(()=>f.filter(p),[f,p]),s=(0,y.useMemo)(()=>f.filter(g=>!p(g)),[f,p]);return{waiting:b,toldOf:s,notNow:i}}function st({onCount:e}){let{waiting:n}=J();return(0,y.useEffect)(()=>e(n.length),[e,n.length]),null}function it({close:e,done:n}){let{waiting:l,notNow:d}=J();return(0,t.jsx)(Ce,{waiting:l,notNow:d,close:e,done:n})}function Ce({waiting:e,notNow:n,close:l,done:d}){let{store:o}=M(),[i,r]=(0,y.useState)(""),a=ce(),f=s=>o.graph.has(s)?g=>{l(),a.record(g)}:null,p=s=>{r(s),requestAnimationFrame(()=>{let g=document.querySelector('[data-testid="inbox"] [data-testid="suggestion"]'),u=g?.querySelector('[data-testid="suggestion-accept"], [data-testid="suggestion-sign-in"], [data-testid="suggestion-not-now"]')??g?.querySelector("button")??document.querySelector('[data-testid="inbox-needs-you"] [data-testid="inbox-problem-words"]:is(button), [data-testid="inbox-needs-you"] [data-testid="inbox-notification"]:is(a, button)');u?u.focus():d()})},b=(0,t.jsx)("span",{role:"status","data-testid":"suggestion-heard",style:G,children:i});return e.length===0?b:(0,t.jsxs)("div",{"data-testid":"suggested",style:{display:"flex",flexDirection:"column",gap:9,minWidth:0},children:[[e.filter(E),e.filter(s=>!E(s))].map((s,g)=>s.length===0?null:(0,t.jsxs)("div",{style:{display:"grid",gap:6,minWidth:0},children:[e.some(E)?(0,t.jsx)("h4",{style:{margin:0,fontSize:"0.75rem",fontWeight:600,color:"var(--graview-ink-muted)"},children:g===0?"Proposed":"Suggested by the app"}):null,(0,t.jsx)("ol",{"data-testid":g===0?"proposals":"suggestions",style:O,children:We(o,s).map(u=>u.record?(0,t.jsx)(Ge,{record:u.record,level:e.some(E)?5:4,go:f(u.record.record),children:w=>u.suggestions.map(W=>(0,t.jsx)(Z,{suggestion:W,notNow:n,settled:p,heard:r,goes:f,under:w},W.id))},u.suggestions[0].id):u.words?(0,t.jsxs)("li",{"data-testid":"suggestion-group",style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:6,minWidth:0},children:[(0,t.jsx)("span",{style:{...C,fontSize:"0.75rem",fontWeight:600,color:"var(--graview-ink-muted)"},children:u.words}),(0,t.jsx)("ol",{style:O,children:u.suggestions.map(w=>(0,t.jsx)(Z,{suggestion:w,notNow:n,settled:p,heard:r,goes:f},w.id))})]},u.suggestions[0].id):u.suggestions.map(w=>(0,t.jsx)(Z,{suggestion:w,notNow:n,settled:p,heard:r,goes:f},w.id)))})]},g)),b]})}function rt({alone:e,close:n,done:l}){let{store:d,whileAway:o,principal:i}=M(),{waiting:r,toldOf:a,notNow:f}=J();_();let[p,b]=(0,y.useState)(null),s=o?.tidied??0,g=o?Ie(r.length,s,o.agreed):void 0,u=pe(d,i).filter(w=>d.mayUndo(w.batch,i).ok);return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:8,minWidth:0},children:[g?(0,t.jsxs)("p",{"data-testid":"while-away",style:{margin:0,fontSize:"0.8125rem",lineHeight:1.45,color:"var(--graview-ink-muted)"},children:[g,"."]}):null,a.length>0?(0,t.jsx)(Ce,{waiting:a,notNow:f,close:n,done:l}):null,u.length>0?(0,t.jsx)("ul",{"data-testid":"suggestions-stopped","aria-label":"What is not suggested any more",style:{...O,gap:6},children:u.map(w=>(0,t.jsxs)("li",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:10,rowGap:4,minWidth:0,color:"var(--graview-ink-muted)"},children:[(0,t.jsx)("span",{style:{...C,flex:"1 1 14em"},children:w.words}),(0,t.jsx)("button",{type:"button","data-testid":"suggestion-suggest-again",onClick:()=>{b(null);try{d.undo(w.batch,{author:i})}catch(W){b(ge(d.schema,d.allMutations(),W))}requestAnimationFrame(()=>document.querySelector('[data-testid="inbox"] [aria-selected="true"]')?.focus())},style:H,children:"Suggest again"})]},w.batch))}):null,p?(0,t.jsx)("span",{role:"alert",style:{...C,fontSize:"0.75rem",color:"var(--graview-warn)"},children:p}):null,e&&!g&&u.length===0&&a.length===0?(0,t.jsx)("p",{"data-testid":"inbox-updates-empty",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"},children:"No updates."}):null]})}function Ge({record:e,level:n,go:l,children:d}){let o=(0,y.useId)();return(0,t.jsxs)("li",{"data-testid":"suggestion-record-group","data-record":e.record,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,minWidth:0},children:[(0,t.jsx)("span",{id:o,role:"heading","aria-level":n,"data-testid":"suggestion-record-heading",style:{...C,display:"block",fontSize:"0.8125rem",lineHeight:1.45},children:(0,t.jsx)(Ne,{part:e,go:l})}),(0,t.jsx)("ol",{"aria-labelledby":o,style:{...O,gap:6,paddingInlineStart:12},children:d(o)})]})}var C={minWidth:0,overflowWrap:"anywhere"},O={margin:0,padding:0,listStyle:"none",display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:10,fontSize:"0.8125rem",minWidth:0},H={minHeight:24,padding:"1px 10px",fontSize:"0.75rem"},q={...H,border:"1px solid transparent",background:"transparent",boxShadow:"none",color:"var(--graview-ink-muted)"};function Ne({part:e,go:n}){let l={display:"inline-block",maxWidth:"min(24ch, 100%)",minHeight:24,lineHeight:"24px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",verticalAlign:"bottom"},d=n?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-record","data-record":e.record,title:`Go to ${e.label}`,onClick:()=>n(e.record),className:"graview-activity-record",style:{all:"unset",...l,cursor:"pointer",fontWeight:600,color:"var(--graview-ink)",textDecoration:"underline",textDecorationColor:"color-mix(in srgb, var(--graview-ink) 35%, transparent)",textUnderlineOffset:2},children:e.label}):(0,t.jsx)("span",{title:e.label,style:{...l,fontWeight:600},children:e.label});return e.quoted?(0,t.jsxs)(t.Fragment,{children:["\u201C",d,"\u201D"]}):d}var je={accept:"Accepted.",decline:"Declined: it will not be suggested again.",stop:"This kind of thing will not be suggested again. You can undo that in Activity.",later:"Hidden from you until tomorrow.",withdraw:"Withdrawn."},L={recorded:"Your vote was recorded.",withdrawn:"Your vote was withdrawn."},qe=(e,n)=>n.startsWith(`${e}: `)?n.slice(e.length+2):n,Le=e=>{let n=`${e.for} for, ${e.against} against`,l=Oe(e.advisory);return l?`${n} \xB7 ${l}`:n};function Oe(e){if(!e)return"";let n=e.for===0?"":e.for===1?"a visitor agrees":`${e.for} visitors agree`,l=e.against===0?"":e.against===1?`${n?"one":"a visitor"} disagrees`:`${e.against}${n?"":" visitors"} disagree`;return[n,l].filter(Boolean).join(", ")}function Z({suggestion:e,notNow:n,settled:l,heard:d,goes:o,under:i}){let{store:r,principal:a,seats:f,people:p,signIn:b}=M(),[s,g]=(0,y.useState)(null),[u,w]=(0,y.useState)(null),W=(0,y.useId)(),x=(0,y.useId)(),N=ae(e.author,{graph:r.graph,schema:r.schema,seats:f,people:p}),k=(0,y.useMemo)(()=>K(r,e,a),[r,e,a]),c=(0,y.useMemo)(()=>k&&he(r,e,a),[k,r,e,a]),S=(0,y.useMemo)(()=>k||r.permits({name:F,args:{suggestion:e.id,vote:"for"}},a).ok,[k,r,e.id,a]),{tally:h}=e,A=E(e),T=A&&a!==void 0&&!k&&re(a).id===e.lineage.proposedBy,v=async m=>{g(null);try{if(m==="withdraw")we(r,e.id,{author:a});else if(m==="stop")be(r,e.id,{author:a});else if(m==="accept"||m==="decline"){if((m==="accept"?j(r,e.id,{author:a}):me(r,e.id,{author:a})).voted!==void 0){w(L.recorded),d(L.recorded);return}}else if(m==="unvote"){ye(r,e.id,null,{author:a}),w(L.withdrawn),d(L.withdrawn);return}else await n.dismiss({suggestion:e.id,at:new Date().toISOString(),until:Se()});l(je[m])}catch(D){g(D instanceof Error?D.message:String(D))}},$=e.items.length>1,P=(0,y.useMemo)(()=>Q(r,e),[r,e]),U=(0,y.useId)(),Me=i?P.alone:P.parts,X=i?`${i} ${U}`:U,V=new Set(P.parts.flatMap(m=>typeof m=="string"?[]:[m.record])),Y=e.lineage&&!(A&&e.lineage.basis.startsWith("Proposed by "))?xe(e.lineage):void 0,[ee,De]=(0,y.useState)(!1),te=(0,y.useId)();return(0,t.jsxs)("li",{"data-testid":"suggestion","data-suggestion":e.id,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:4,lineHeight:1.45,minWidth:0},children:[(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:10,rowGap:4,minWidth:0},children:[(0,t.jsxs)("span",{id:U,"data-graview-suggestion-words":"",style:{...C,flex:"1 1 14em"},children:[A?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{"data-testid":"proposed-by",style:{color:"var(--graview-ink-muted)"},children:["Proposed by ",(0,t.jsx)("strong",{style:{fontWeight:600,color:"var(--graview-ink)"},children:T?"you":N}),":"]})," "]}):$?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("strong",{style:{fontWeight:600},children:N})," ",(0,t.jsx)("span",{style:{color:"var(--graview-ink-muted)"},children:"suggests"})," "]}):null,$?qe(N,e.headline??e.intent):Me.map((m,D)=>typeof m=="string"?m:(0,t.jsx)(Ne,{part:m,go:o(m.record)},D))]}),(0,t.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:4,marginInlineStart:"auto",minWidth:0},children:[Y?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-why","aria-expanded":ee,"aria-controls":te,onClick:()=>De(m=>!m),style:{...q,padding:"1px 6px"},children:"Why?"}):null,T?(0,t.jsx)("button",{type:"button","data-testid":"proposal-withdraw",onClick:()=>void v("withdraw"),style:H,children:"Withdraw"}):S?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-accept",onClick:()=>void v("accept"),...k?{"aria-describedby":X}:{"aria-pressed":h.mine==="for","aria-describedby":x},style:H,children:k&&$?"Accept all":"Yes"}):b?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-sign-in",onClick:()=>b.run(),style:H,children:"Sign in to vote"}):null,S&&!T?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-decline",onClick:()=>void v("decline"),...k?{"aria-describedby":X}:{"aria-pressed":h.mine==="against","aria-describedby":x},style:H,children:"No"}):null,c?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-stop-kind",onClick:()=>void v("stop"),title:`Stops suggesting ${fe(r,e)}. You can undo it.`,style:q,children:"Don't suggest this kind of thing"}):null,!k&&S&&!T&&h.mine!==void 0?(0,t.jsx)("button",{type:"button","data-testid":"suggestion-withdraw-vote",onClick:()=>void v("unvote"),style:q,children:"Withdraw vote"}):null,(0,t.jsx)("button",{type:"button","data-testid":"suggestion-not-now",onClick:()=>void v("later"),title:"Hide it from you until tomorrow. It still waits for everyone else.","aria-describedby":W,style:q,children:"Later"})]})]}),(0,t.jsx)("span",{id:W,style:G,children:"Hides it from you until tomorrow; it still waits for everyone else."}),!k&&S&&!T?(0,t.jsx)("span",{id:x,style:G,children:"Counts as your vote; somebody who may make it decides."}):null,Y?(0,t.jsx)("span",{id:te,"data-graview-lineage":"",hidden:!ee,style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:Y}):null,$?(0,t.jsx)(Re,{suggestion:e,decides:k,heard:d}):null,e.about.some(m=>!V.has(m))&&($||V.size===0)?(0,t.jsx)("div",{"data-graview-suggestion-records":"",style:{display:"flex",flexWrap:"wrap",gap:4,minWidth:0},children:e.about.filter(m=>!V.has(m)).slice(0,4).map(m=>(0,t.jsx)($e,{id:m,label:ke(r,m),go:o(m),testId:"suggestion-record"},m))}):null,k&&h.for+h.against+(h.advisory?h.advisory.for+h.advisory.against:0)>0?(0,t.jsx)("span",{"data-testid":"suggestion-tally",style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:Le(h)}):null,u?(0,t.jsx)("span",{"data-testid":"suggestion-voted",role:"status",style:{...C,fontSize:"0.75rem",color:"var(--graview-ink-muted)"},children:u}):null,s?(0,t.jsx)("span",{"data-testid":"suggestion-refused",role:"alert",style:{...C,fontSize:"0.75rem",color:"var(--graview-warn)"},children:s}):null]})}export{st as SuggestedCount,it as SuggestedList,rt as SuggestedUpdates,Oe as advisoryWords,Ie as awayWords,Le as tallyWords};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{eb as g}from"./chunk.
|
|
1
|
+
import{eb as g}from"./chunk.6L6RUOSF.js";function y(e){return[e.basis,...e.confidence!==void 0?[`${Math.round(e.confidence*100)}% sure`]:[],...e.model?[e.model]:[]].join(" \xB7 ")}var u=e=>`Not yet kept by a person. ${e.by.name??e.by.id??"Something"} made it${e.lineage?`: ${y(e.lineage)}`:""}.`,p=e=>`${e.kind}\0${e.from}\0${e.to}`;function k(e,o){let r=new Map;for(let n of e){if(n.undoes!==void 0||o.has(n.id)||n.withheld)continue;let l=g(n.author),s=l==="human"||l==="visitor",c=new Map;for(let t of n.primitives){if(t.op!=="add-edge"&&t.op!=="remove-edge")continue;let i=p(t.edge),a=r.get(i)??c.get(i);if(r.delete(i),t.op==="remove-edge")a&&c.set(i,a);else if(a&&(s||!n.lineage))r.set(i,s?{...a,provisional:!1,keptBy:n.id}:a);else{let d=n.lineage;r.set(i,{edge:t.edge,made:n.id,by:n.author,...d?{lineage:d}:{},provisional:!s&&(d?.confidence??1)<1})}}}return r}var f=new WeakMap;function v({log:e}){let o=e.all(),r=`${e.horizon}:${o.length}:${o.at(-1)?.id}`,n=f.get(e);return n?.at!==r&&f.set(e,n={at:r,links:k(o,e.undoneIds())}),n.links}var L=(e,o)=>v(e).get(p(o));var m=e=>[...v(e).values()].filter(o=>o.provisional);export{y as a,u as b,L as c,m as d};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Ae}from"./chunk.BJUUSIQY.js";import{a as X}from"./chunk.
|
|
1
|
+
import{a as Ae}from"./chunk.BJUUSIQY.js";import{a as X}from"./chunk.U5KJQFAP.js";import{Bc as Se,Jd as $e,Tb as be,ha as B,ma as he,pa as W,pc as we,sa as ke,va as _,zc as Q}from"./chunk.6L6RUOSF.js";import{j as H}from"./chunk.FQLNBIQ5.js";var M=e=>e.trim().toLowerCase(),U=e=>e.charAt(0).toUpperCase()+e.slice(1),le=e=>/^(?:[aeio]|u(?![sn]i|se|ser))/i.test(e),ee=e=>`${le(e)?"an":"a"} ${e}`,xe=e=>M(e).replace(/[^a-z0-9]+([a-z0-9])/g,(n,r)=>r.toUpperCase()).replace(/[^A-Za-z0-9]/g,""),se=e=>M(e).replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),ae=new Set(["person","people","someone","somebody","user","users","member","members"]);function de(e,n){let r=M(n);return Object.entries(e.kinds).find(([f,d])=>[f,d.noun,d.plural].some(c=>c!==void 0&&M(c)===r))?.[0]}function K(e,n){if(!e(n))return n;for(let r=2;;r++)if(!e(`${n}${r}`))return`${n}${r}`}function Fe(e,n){let r=e.acts??{},f=m=>m in r;if("link"in n){let m=de(e,n.link.on);if(!m)return{refused:`This app has no ${n.link.on} to give it to.`};let k=e.kinds[m],C=M(k.noun??m),v=M(n.link.called)||"linked to",u=de(e,n.link.to)??(ae.has(M(n.link.to))?(Object.entries(e.kinds).find(([,T])=>T.people)??Object.entries(e.kinds).find(([T,P])=>[T,P.noun,P.plural].some(t=>t!==void 0&&ae.has(M(t)))))?.[0]:void 0),A=[],j=[],$,F=u===void 0;if(!u){let T=M(n.link.to)||"person",P=ae.has(T),t=P?"person":T.replace(/s$/,""),a=P?"people":`${t}s`;u=K(b=>b in e.kinds,se(t)),A.push({op:"add-kind",kind:u,noun:t,plural:a,fields:{name:{type:"string",required:!0}},label:"{name}"}),$=K(f,`add-${u}`),j.push(`Add ${ee(U(a))} list.`)}let i=u in e.kinds?e.kinds[u]:A[0],y=M(i.noun??u),S=K(T=>T in(k.edges??{})||T in(k.fields??{}),xe(v)||"linkedTo");A.push({op:"add-relation",kind:m,relation:S,to:[u],cardinality:"one",description:U(v)});let R=K(f,`set-${se(v)}`);return A.push({op:"add-act",act:R,title:`Set \u201C${U(v)}\u201D`,on:m,connects:S,description:`Say who ${ee(C)} is ${v}.`}),j.push(`Give each ${C} ${le(v)?"an":"a"} \u201C${U(v)}\u201D field that points to ${ee(y)}.`),{edits:A,steps:j,on:m,relation:S,to:u,made:F,act:R,arg:"to",...$?{makes:$}:{},called:v}}let d=de(e,n.field.on);if(!d)return{refused:`This app has no ${n.field.on} to give it to.`};let c=e.kinds[d],g=M(c.noun??d),p=M(n.field.called)||"note",l=n.field.type??"string",s=K(m=>m in(c.fields??{})||m in(c.edges??{}),xe(p)||"note"),o=K(f,`set-${se(p)}`);return{edits:[{op:"add-field",kind:d,field:s,spec:{type:l}},{op:"add-act",act:o,title:`Set \u201C${U(p)}\u201D`,on:d,args:{value:{type:l,required:!0}},sets:{[s]:"$value"},description:`Say ${ee(g)}'s ${p}.`}],steps:[`Give each ${g} ${le(p)?"an":"a"} \u201C${U(p)}\u201D field.`],on:d,field:s,act:o,arg:"value",called:p}}var Re=["search-miss","unanswered","refused","tool-invalid"];var qe=new RegExp("[\\u0000-\\u001f\\u007f-\\u009f\\u200b-\\u200f\\u2028-\\u202e\\u2066-\\u2069]","g");var G=e=>e.onBehalfOf?G(e.onBehalfOf):e.id!==void 0?`${e.kind}:${e.id}`:`${e.kind}:?`,ce=e=>e.toLowerCase().replace(/\s+/g," ").replace(/^[\s\p{P}]+|[\s\p{P}]+$/gu,"");var Ce=new Set("a an and are at be by can do does for from has have how i in is it me my of on or our the their there this to was we what when where which who why will with you your".split(" "));function J(e,n,r,f,d){let c=new Map;for(let g of e){let p=n(g);if(p===void 0)continue;let l=c.get(p)??{first:g,people:new Set,times:0,last:g};l.people.add(G(g.by)),l.times+=1,l.last=g,c.set(p,l)}return[...c.entries()].filter(([,g])=>g.people.size>=f).sort(([g,p],[l,s])=>s.people.size-p.people.size||s.times-p.times||g.localeCompare(l)).slice(0,d).map(([g,p])=>({...r(p.last,g),people:p.people.size,times:p.times}))}function je(e,n={}){let r=Math.max(1,n.minPeople??2),f=n.most??12,d=n.reader?G(n.reader):void 0,c=e.filter(s=>!$e(s.by)&&(d===void 0||G(s.by)!==d)),g=Object.fromEntries(Re.map(s=>{let o=c.filter(m=>m.type===s);return[s,{events:o.length,people:new Set(o.map(m=>G(m.by))).size}]})),p=[],l=new Map;for(let s of c){let o=s.type==="search-miss"?s.words:s.type==="unanswered"?s.question:void 0;if(o!==void 0)for(let m of new Set(ce(o).split(/[^\p{L}\p{N}]+/u))){if(m.length<3||Ce.has(m))continue;let k={...s,id:`${s.id}:${m}`};p.push(k),l.set(k,m)}}return{events:c.length,people:new Set(c.map(s=>G(s.by))).size,byType:g,searches:J(c,s=>s.type==="search-miss"&&ce(s.words)||void 0,(s,o)=>({words:o}),r,f),questions:J(c,s=>s.type==="unanswered"&&ce(s.question)||void 0,(s,o)=>({question:o,...s.lacks?{lacks:s.lacks}:{}}),r,f),words:J(p,s=>l.get(s),(s,o)=>({word:o}),r,f),refusals:J(c,s=>s.type==="refused"?`${s.act}|${s.code}`:void 0,s=>({act:s.act,code:s.code}),r,f),tools:J(c,s=>s.type==="tool-invalid"?`${s.tool}|${s.act??""}`:void 0,s=>{let o=s;return{tool:o.tool,...o.act?{act:o.act}:{},...o.then?{then:o.then}:{}}},1,f)}}var ve=e=>e.length>3&&e.endsWith("s")&&!e.endsWith("ss")?e.slice(0,-1):e;function Ee(e){let n=new Set,r=f=>{for(let d of f.toLowerCase().split(/[^\p{L}\p{N}]+/u))d.length>0&&n.add(ve(d))};for(let f of e.kinds){let d=e.tryDefinition(f);r(f),r(_(d,f)),r(W(e,f));for(let c of[...d?.aliases??[],...Object.values(d?.fieldAliases??{}).flat()])r(c);for(let c of Object.keys(d?.fields?.shape??{}))r(c),r(B(c))}return n}function Oe(e,n,r={}){let f=je(e,{most:8,...r}),d=Ee(n),c=f.searches.filter(o=>!o.words.split(/[^\p{L}\p{N}]+/u).some(m=>m.length>0&&d.has(ve(m)))).map(o=>({words:o.words,people:o.people})),g=f.questions.map(o=>({question:o.question,people:o.people,...o.lacks?{lacks:o.lacks}:{}})),p=f.tools.map(o=>({tool:o.tool,...o.act?{act:o.act}:{},...o.then?{then:o.then}:{},times:o.times})),l=o=>`${o} ${o===1?"person":"people"}`;return{said:[...c.length>0?[`Searched for, found nothing, and nothing here is called it: ${c.map(o=>`\u201C${o.words}\u201D (${l(o.people)})`).join(", ")}.`]:[],...g.length>0?[`Asked and not answered: ${g.map(o=>`\u201C${o.question}\u201D (${l(o.people)}${o.lacks?`; ${o.lacks.replace(/[.!]$/,"")}`:""})`).join(", ")}.`]:[],...p.length>0?[`Tool calls refused as invalid: ${p.map(o=>`${o.tool}${o.act?` (${o.act})`:""} ${o.times===1?"once":`${o.times} times`}${o.then?`, then worked as ${o.then}`:""}`).join("; ")}.`]:[]].join(`
|
|
2
2
|
`),unknownWords:c,questions:g,toolMistakes:p}}var Te=e=>/^(?:aggregate|kind):([^,]+)$/.exec(e)?.[1];function Ze(e,n){let r=e.about??[];if(e.field!==void 0&&e.on!==void 0&&n(e.on))return{on:"field",id:e.on,field:e.field};let f=r.filter(n);if(f.length>1)return{on:"selection",ids:f};if(e.on!==void 0&&n(e.on))return{on:"record",id:e.on};if(f.length===1)return{on:"record",id:f[0]};let d=[e.on,...r].map(c=>c===void 0?void 0:Te(c)).find(c=>c!==void 0);return e.place!==void 0?{on:"lens",place:e.place,...d?{kind:d}:{}}:d!==void 0?{on:"list",kind:d}:{on:"place",place:"home"}}var ne=e=>e.on==="record"||e.on==="field"?[e.id]:e.on==="selection"?e.ids:e.on==="act"&&e.id!==void 0?[e.id]:[],te=(e,n)=>e.tryDefinition(n)?.fields?.shape??{},Y=(e,n)=>e.tryDefinition(n)?.edges??{},ie=(e,n)=>new Set(e.tryDefinition(n)?.display?.hide??[]),N=(e,n)=>he(e.tryDefinition(n.kind),n),fe=(e,n,r)=>ke(e.tryDefinition(n),r)||B(r),ye=e=>typeof e=="boolean"?e?"yes":"no":String(e);function oe(e,n){let r=e.kindsKeptFrom(n);return new Set(e.schema.kinds.filter(f=>!r.has(f)))}function pe(e,n,r,f){if(!e.permits(n,r).ok)return!1;if(!f)return!0;try{return e.previewAll([n],{author:r}).ops.length>0}catch{return!1}}function Qe(e,n,r){let f=e,{principal:d}=r,c=r.each??8,g=H(f)?.store??f,p=g.seenBy(d),l=g.schema,s=oe(g,d),o=t=>{let a=p.graph.getNode(t);return a&&s.has(a.kind)?a:void 0},m=g.allMutations(),k=new Map(m.map(t=>[t.name,t])),C=[],v=new Set,u=t=>{v.has(t.id)||(v.add(t.id),C.push(t))},A=t=>t.slice(0,c),j=ne(n).filter(t=>o(t)!==void 0);if(ne(n).length>0&&j.length===0)return{target:n,candidates:[]};let $=j.length===1?o(j[0]):void 0,F=$?.kind??(n.on==="list"?n.kind:n.on==="lens"?n.kind??r.places?.find(t=>t.as===n.place)?.kind:void 0)??(n.on==="selection"?o(j[0])?.kind:void 0);if(F!==void 0&&!s.has(F))return{target:n,candidates:[]};let i=(t,a)=>`act:${t}${Object.keys(a).length>0?`:${Object.values(a).map(b=>String(b)).join(",")}`:""}`,y=(t,a,b,O,h)=>{t.destructive||Object.values(a).some(I=>typeof I=="string"&&g.graph.has(I)&&o(I)===void 0)||pe(g,{name:t.name,args:{...a}},d,O.length===0)&&u({type:"act",id:i(t.name,a),label:b,description:h??t.description??b,mutation:t.name,args:a,asks:O})};if(n.on!=="place"||r.acts)if(r.acts)for(let t of r.acts){let a=k.get(t.mutation);!a||t.destructive||n.on==="act"&&t.mutation!==n.act||y(a,t.args,t.label,(t.open??[]).filter(b=>!b.optional).map(b=>b.name),t.why)}else{let t=$?[$]:[];for(let a of m){if(n.on==="act"&&a.name!==n.act)continue;let b=a.input.shape??{},O=h=>Object.entries(b).filter(([I,w])=>I!==h&&w.safeParse?.(void 0).success===!1).map(([I])=>I);if(a.subject)for(let h of t)Q(l,a).includes(h.kind)&&y(a,{[a.subject.arg]:h.id},`${a.title??B(a.name)}: ${N(l,h)}`,O(a.subject.arg));else F!==void 0&&(a.creates??[]).includes(F)&&y(a,{},a.title??B(a.name),O(void 0))}}let S=C.filter(t=>t.type==="act");C.splice(0,C.length,...A(S));let R=(t,a)=>{let b=Se(l,m).get(t.kind),O=te(l,t.kind),h=ie(l,t.kind),I=[];for(let[w,D]of Object.entries(O)){if(a!==void 0?w!==a:h.has(w)||t[w]!==void 0)continue;let z=X(D),q=z?.type==="enum"&&!z.multiple?z.options??[]:z?.type==="boolean"?[!0,!1]:[];if(q.length===0)continue;let L=(b?.get(w)??[]).map(E=>k.get(E)).find(E=>E?.subject!==void 0&&pe(g,{name:E.name,args:{[E.subject.arg]:t.id,[w]:q.find(re=>re!==t[w])??q[0]}},d,!0));if(L?.subject)for(let E of q)t[w]!==E&&I.push({type:"fill",id:`fill:${t.id}:${w}:${ye(E)}`,label:`${fe(l,t.kind,w)}: ${ye(E)}`,description:`Set ${fe(l,t.kind,w).toLowerCase()} of ${N(l,t)} to ${ye(E)}`,record:t.id,field:w,value:E,call:{name:L.name,args:{[L.subject.arg]:t.id,[w]:E}}})}for(let[w,D]of Object.entries(Y(l,t.kind))){if(a!==void 0&&w!==a)continue;let z=D.to==="*"?[...s]:D.to.filter(x=>s.has(x)),q=new Set(p.graph.out(t.id,w).map(x=>x.id)),L=m.find(x=>(x.connects??[]).includes(w)&&x.subject!==void 0&&Q(l,x).includes(t.kind));if(!L?.subject)continue;let E=we(L.input).find(x=>x.name!==L.subject.arg);if(!E)continue;let re=z.flatMap(x=>E.kinds.length===0||E.kinds.includes(x)?p.graph.nodesOfKind(x):[]).filter(x=>x.id!==t.id&&!q.has(x.id)&&o(x.id)!==void 0);for(let x of A(re)){let me={name:L.name,args:{[L.subject.arg]:t.id,[E.name]:x.id}};pe(g,me,d,!0)&&I.push({type:"fill",id:`fill:${t.id}:${w}:${x.id}`,label:`${B(w)}: ${N(l,x)}`,description:`Link ${N(l,t)} to ${N(l,x)}${D.description?` as ${D.description}`:""}`,record:t.id,field:w,value:x.id,call:me})}}return I};if(n.on==="field"&&$)for(let t of R($,n.field))u(t);else if($&&n.on==="record")for(let t of A(R($)))u(t);let T=t=>{let a=W(l,t).toLowerCase(),b=[{type:"panel",id:`panel:${t}:list`,label:`A list of ${a}`,description:`Every ${_(l.tryDefinition(t),t).toLowerCase()} this viewer may see, as a list`,panel:{lens:"blocks",kind:t}}],O=ie(l,t);for(let[h,I]of Object.entries(te(l,t))){if(O.has(h))continue;let w=X(I),D=fe(l,t,h).toLowerCase();if(w?.type==="enum")b.push({type:"panel",id:`panel:${t}:group:${h}`,label:`${V(a)} by ${D}`,description:`A list of ${a} grouped by ${D}`,panel:{lens:"blocks",kind:t,group:h}}),b.push({type:"panel",id:`panel:${t}:columns:${h}`,label:`Columns of ${a} by ${D}`,description:`${V(a)} in a column for each ${D}`,panel:{lens:"columns",kind:t,column:h}});else if(w?.type==="number"||w?.type==="integer"||w?.type==="date"||w?.type==="datetime"){let z=w.type==="date"||w.type==="datetime";b.push({type:"panel",id:`panel:${t}:sort:${h}`,label:`${V(a)} by ${D}`,description:`A list of ${a}, the ${z?"latest":"highest"} ${D} first`,panel:{lens:"blocks",kind:t,sort:{by:h,direction:"desc"}}}),z&&b.push({type:"panel",id:`panel:${t}:calendar:${h}`,label:`A calendar of ${a}`,description:`${V(a)} on a calendar by ${D}`,panel:{lens:"calendar",kind:t,start:h}})}}return b},P=n.on==="place"?[...s]:F!==void 0?[F]:[];for(let t of P)for(let a of A(T(t)))u(a);for(let t of A((r.places??[]).filter(a=>!a.hidden&&(a.kind===void 0?n.on==="place":s.has(a.kind)&&(n.on==="place"||a.kind===F)))))n.on==="lens"&&t.as===n.place||u({type:"place",id:`place:${t.as}`,label:t.title,description:`Go to ${t.title}`,place:t.as});if($){let t=[];for(let[a,b]of Object.entries(Y(l,$.kind)))for(let O of p.graph.out($.id,a))o(O.id)&&t.push({type:"record",id:`record:${O.id}`,label:N(l,O),description:`${V(b.description??B(a))}: ${N(l,O)}`,record:O.id,relation:a});for(let a of l.kinds)for(let[b,O]of Object.entries(Y(l,a)))if(!(O.to!=="*"&&!O.to.includes($.kind)))for(let h of p.graph.in($.id,b))h.kind===a&&o(h.id)&&t.push({type:"record",id:`record:${h.id}`,label:N(l,h),description:`${V(O.inverse??B(b))}: ${N(l,h)}`,record:h.id,relation:b});for(let a of A(t))u(a)}else if(n.on==="list"||n.on==="lens")for(let t of A(F!==void 0?p.graph.nodesOfKind(F):[]))o(t.id)&&u({type:"record",id:`record:${t.id}`,label:N(l,t),description:`Open ${N(l,t)}`,record:t.id});else if(n.on==="selection")for(let t of j){let a=o(t);u({type:"record",id:`record:${t}`,label:N(l,a),description:`Open ${N(l,a)}`,record:t})}return{target:n,candidates:C}}var V=e=>e&&`${e[0].toUpperCase()}${e.slice(1)}`,Pe={columns:["board","kanban","column","lane","pipeline","stage","funnel"],board:["board","map","floor","layout","seat","slot"],calendar:["calendar","schedule","date","due","month","week","agenda","deadline","day"],timeline:["timeline","gantt","schedule","roadmap","span"],coverage:["coverage","matrix","grid","gap"],plan:["plan","floor","map","region","area"],blocks:["list","table","summary","overview","dashboard","card"]},De=new Set(["a","an","the","of","for","my","our","me","us","to","with","and","in","on","by","that","which","i","we","want","need","show","open","go","draw","make","new","view","views","panel","panels","page","lens","please","all","every","some","see","can","could","would","like","one","what","is","are","do","does","here","there","how","it","this","these","those"]),Z=e=>e.length>3&&e.endsWith("ies")?`${e.slice(0,-3)}y`:e.length>3&&e.endsWith("s")&&!e.endsWith("ss")?e.slice(0,-1):e,ue=e=>e.toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,"").split(/[^a-z0-9]+/).filter(Boolean);function Xe(e,n,r){let f=e,d=H(f)?.store??f,c=d.schema,g=oe(d,r.principal),p=d.seenBy(r.principal),l=ne(n),s=new Set;for(let i of l){let y=p.graph.getNode(i)?.kind;y!==void 0&&g.has(y)&&s.add(y)}if(l.length>0&&s.size===0)return[];if(n.on==="list"&&s.add(n.kind),n.on==="lens"){let i=n.kind??r.places.find(y=>y.as===n.place)?.kind;i!==void 0&&s.add(i)}let o=new Map;for(let i of c.kinds){if(!g.has(i))continue;let y=c.tryDefinition(i);for(let S of[i,_(y,i),W(c,i)])for(let R of ue(S))o.set(Z(R),i)}let m=ue(r.said??"").filter(i=>!De.has(i)),k=new Set,C=[];for(let i of m){let y=o.get(Z(i));y!==void 0?k.add(y):C.push(Z(i))}let v=k.size>0?k:s;if((r.said??"").trim()!==""&&m.length===0)return[];if(v.size===0&&m.length===0)return[];let u=[];r.places.forEach((i,y)=>{if(i.hidden||n.on==="lens"&&i.as===n.place)return;let S=i.over??(i.kind!==void 0?[i.kind]:[]);if(S.length>0&&!S.some(P=>g.has(P)))return;let R=S.some(P=>v.has(P)),T=!R&&(i.reads??[]).some(P=>v.has(P));v.size>0&&!R&&!T||u.push({place:i,own:R,reads:T,at:y})});let A=i=>new Set(ue(i.title).map(Z)),j=new Set(C.filter(i=>u.some(({place:y})=>A(y).has(i)))),$=[];for(let{place:i,own:y,reads:S,at:R}of u){let T=A(i),P=new Set((Pe[i.lens??""]??[]).map(Z)),t=C.filter(h=>T.has(h)||P.has(h)&&!j.has(h)).length,a=C.length-t;if(C.length>0&&t===0)continue;let b=!S&&a===0?"full":"partial",O=(y?4:S?2:1)+t*2-a+(b==="full"?1:0);$.push({view:{place:i.as,title:i.title,...i.kind!==void 0?{kind:i.kind}:{},fit:b},score:O,at:R})}return $.filter((i,y)=>!$.slice(0,y).some(S=>S.view.place===i.view.place&&S.view.title===i.view.title)).sort((i,y)=>y.score-i.score||i.at-y.at).slice(0,r.most??3).map(i=>i.view)}var ge=new WeakMap;function Ne(e){let n=2166136261;for(let r=0;r<e.length;r++)n^=e.charCodeAt(r),n=Math.imul(n,16777619)>>>0;return n.toString(36)}function Ie(e,n){let r=e,f=H(r)?.store??r,d=f.schema,c=oe(f,n),p=f.allMutations().filter(u=>!u.destructive&&f.permits({name:u.name,args:{}},n).ok!==!1),l=`${[...c].join(",")}|${p.map(u=>u.name).join(",")}`,s=ge.get(d)?.get(l);if(s)return s;let o=[...c].map(u=>{let A=ie(d,u),j={};for(let[y,S]of Object.entries(te(d,u))){if(A.has(y))continue;let R=X(S);R&&(j[y]=R.type==="enum"?`enum:${(R.options??[]).join("|")}`:R.type)}let $={};for(let[y,S]of Object.entries(Y(d,u)))$[y]=S.to==="*"?[...c]:S.to.filter(R=>c.has(R));let F=d.tryDefinition(u),i=Object.entries(F?.fieldAliases??{}).filter(([y,S])=>y in j&&S.length>0);return{kind:u,noun:_(d.tryDefinition(u),u),plural:W(d,u),fields:j,relations:$,...F?.aliases&&F.aliases.length>0?{aliases:F.aliases}:{},...i.length>0?{fieldAliases:Object.fromEntries(i)}:{}}}),m=p.map(u=>({name:u.name,title:u.title??B(u.name),...u.subject?{on:Q(d,u).filter(A=>c.has(A))}:{}})),k={kinds:o,acts:m},C={version:Ne(JSON.stringify(k)),...k},v=ge.get(d)??new Map;return v.set(l,C),ge.set(d,v),C}var Me=e=>e.name??e.id??e.kind;function en(e,n,r){let f=e,{principal:d}=r,c=H(f)?.store??f,g=c.seenBy(d),p=c.schema,l=oe(c,d),s=i=>{let y=g.graph.getNode(i);return y&&l.has(y.kind)?y:void 0},o=i=>({id:i.id,kind:i.kind,label:N(p,i)}),m=ne(n),k=m.length===1?s(m[0]):void 0,C=k?Object.fromEntries(Object.keys(te(p,k.kind)).filter(i=>!ie(p,k.kind).has(i)&&k[i]!==void 0&&i!=="label").map(i=>[i,k[i]])):{},v={on:n.on,...k?{record:{...o(k),fields:C}}:{},...n.on==="field"&&k?{field:n.field}:{},...n.on==="list"&&l.has(n.kind)?{kind:n.kind}:{},...n.on==="lens"?{place:n.place,...n.kind&&l.has(n.kind)?{kind:n.kind}:{}}:{},...n.on==="place"?{place:n.place}:{},...n.on==="act"?{act:n.act}:{}},u=[...new Set([...n.on==="selection"?n.ids:[],...r.selection??[]])].flatMap(i=>{let y=s(i);return y?[o(y)]:[]}),A=[];if(k){for(let i of Object.keys(Y(p,k.kind)))for(let y of g.graph.out(k.id,i))s(y.id)&&A.push({...o(y),relation:i,direction:"out"});for(let i of p.kinds)for(let y of Object.keys(Y(p,i)))for(let S of g.graph.in(k.id,y))S.kind===i&&s(S.id)&&A.push({...o(S),relation:y,direction:"in"})}let j=g.batches().filter(i=>!i.ops.every(be)).slice(-(r.recent??6)).reverse().map(i=>({intent:i.intent,at:i.at,by:Me(i.author)})),$=(r.purpose?.jobs??[]).filter(i=>Ae(i,d.roles)&&l.has(i.kind)).map(i=>({name:i.name,ask:i.ask,kind:i.kind})),F=r.purpose&&(r.purpose.for!==void 0||$.length>0)?{...r.purpose.for!==void 0?{for:r.purpose.for}:{},jobs:$}:void 0;return{...r.place!==void 0?{place:r.place}:{},target:v,selection:u,neighbors:A.slice(0,24),recent:j,schema:Ie(c,d),...F?{purpose:F}:{},...r.friction?{friction:Oe(r.friction,p,{reader:d})}:{}}}export{Fe as a,Ze as b,ne as c,Qe as d,Xe as e,en as f};
|