graview 0.1.32 → 0.1.34
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.7GKUVQVF.js → chunk.2UPGH6FT.js} +1 -1
- package/dist/preview/{chunk.I6FPNX43.js → chunk.2YCFK5HU.js} +1 -1
- package/dist/preview/{chunk.4HZ7QTXZ.js → chunk.2YGQVI6T.js} +1 -1
- package/dist/preview/{chunk.3K6YSVHC.js → chunk.34CYK2DF.js} +1 -1
- package/dist/preview/{chunk.3TVXGJTU.js → chunk.35KI7XYV.js} +1 -1
- package/dist/preview/{chunk.COQKECUH.js → chunk.3C4RJIJU.js} +1 -1
- package/dist/preview/{chunk.TAQ764IQ.js → chunk.3H4NVUWV.js} +1 -1
- package/dist/preview/{chunk.K5ME5GCG.js → chunk.3MWBWSYF.js} +1 -1
- package/dist/preview/{chunk.MAF7C3VM.js → chunk.4K5QCJFH.js} +1 -1
- package/dist/preview/{chunk.ULRW47RP.js → chunk.52QAIGCD.js} +1 -1
- package/dist/preview/{chunk.D75KC3LL.js → chunk.577PGFUT.js} +1 -1
- package/dist/preview/{chunk.EBGAYL32.js → chunk.5EAQDBBE.js} +1 -1
- package/dist/preview/{chunk.4MERAWS2.js → chunk.6A62UVAE.js} +1 -1
- package/dist/preview/{chunk.7T7NZZTC.js → chunk.6FBQP336.js} +1 -1
- package/dist/preview/{chunk.EF3XNU4O.js → chunk.6K2HASOH.js} +1 -1
- package/dist/preview/chunk.6P7P2AW7.js +1 -0
- package/dist/preview/{chunk.LXBOVRFI.js → chunk.6VRJII5M.js} +1 -1
- package/dist/preview/{chunk.VG3O4LWB.js → chunk.6XO4PECH.js} +1 -1
- package/dist/preview/{chunk.GYICGZMG.js → chunk.7HPPJVIV.js} +2 -2
- package/dist/preview/{chunk.PIP6Z563.js → chunk.7JNDZWD6.js} +1 -1
- package/dist/preview/{chunk.6UGEYZAC.js → chunk.7MTX33WD.js} +1 -1
- package/dist/preview/{chunk.ASCLIM2P.js → chunk.7VUPKOKC.js} +1 -1
- package/dist/preview/{chunk.LLLZEGRK.js → chunk.7WHWD5YJ.js} +1 -1
- package/dist/preview/{chunk.NM6MZYFN.js → chunk.7X2ZO5BD.js} +1 -1
- package/dist/preview/{chunk.XNJEFUF7.js → chunk.AHCI7ZDO.js} +1 -1
- package/dist/preview/{chunk.JFAOHHJJ.js → chunk.APNN6BKF.js} +1 -1
- package/dist/preview/{chunk.QGTSHKJL.js → chunk.B2WRXGFI.js} +1 -1
- package/dist/preview/{chunk.HLTRQU4Y.js → chunk.B6VI576I.js} +1 -1
- package/dist/preview/{chunk.NTF7FVB2.js → chunk.BU2DSZ2L.js} +1 -1
- package/dist/preview/{chunk.T5VG5A6V.js → chunk.CNMITOKP.js} +1 -1
- package/dist/preview/chunk.CPW465TM.js +1 -0
- package/dist/preview/{chunk.47STJVRV.js → chunk.CZRX2FDI.js} +1 -1
- package/dist/preview/{chunk.GV2CQVKV.js → chunk.DMNXYMLC.js} +1 -1
- package/dist/preview/{chunk.F6ZK7RMB.js → chunk.DNDHDDM6.js} +2 -2
- package/dist/preview/{chunk.MWGGV7DE.js → chunk.DUUARGPE.js} +1 -1
- package/dist/preview/chunk.E7EQ2VTE.js +1 -0
- package/dist/preview/{chunk.UHUGOTUU.js → chunk.ETWVQ3A2.js} +1 -1
- package/dist/preview/{chunk.BNV77BQZ.js → chunk.F6WYSDSI.js} +3 -3
- package/dist/preview/{chunk.FWTIUYXH.js → chunk.FBY5IUGU.js} +1 -1
- package/dist/preview/{chunk.UATVTXZY.js → chunk.FCRFQ7ZW.js} +1 -1
- package/dist/preview/chunk.FRS3S7DN.js +1 -0
- package/dist/preview/{chunk.UGFJKSHU.js → chunk.FSAHO3LV.js} +1 -1
- package/dist/preview/{chunk.JQU5GEU3.js → chunk.FUQVNXLB.js} +1 -1
- package/dist/preview/{chunk.JDUJDAGA.js → chunk.G64AREGA.js} +1 -1
- package/dist/preview/{chunk.CN3UEF5N.js → chunk.GMOTRAKJ.js} +1 -1
- package/dist/preview/chunk.GNSAKLP2.js +1 -0
- package/dist/preview/{chunk.RCKTBOY2.js → chunk.HCDKSDIS.js} +1 -1
- package/dist/preview/chunk.HH6P4BLT.js +1 -0
- package/dist/preview/{chunk.AOSMJKLH.js → chunk.HJ56Q6WB.js} +1 -1
- package/dist/preview/chunk.HP3ZEDCD.js +117 -0
- package/dist/preview/{chunk.G5NZVPJU.js → chunk.HPD5ZDZH.js} +1 -1
- package/dist/preview/chunk.HPEGQN6E.js +1 -0
- package/dist/preview/chunk.HUKAVTMX.js +1 -0
- package/dist/preview/chunk.HWITWOP3.js +3 -0
- package/dist/preview/{chunk.3TY5NFLY.js → chunk.IHFNLKXV.js} +1 -1
- package/dist/preview/{chunk.2NIOHEMX.js → chunk.JQDYGI6G.js} +1 -1
- package/dist/preview/chunk.JZBBGY4B.js +1 -0
- package/dist/preview/chunk.KA3KI4UA.js +1 -0
- package/dist/preview/{chunk.OF34OZ4V.js → chunk.KSXB4LDF.js} +1 -1
- package/dist/preview/{chunk.HAIG6NVX.js → chunk.LAF6GTBN.js} +1 -1
- package/dist/preview/{chunk.UNL2HIF2.js → chunk.LCFDM7XY.js} +1 -1
- package/dist/preview/{chunk.E2YEOMPH.js → chunk.LIIC25G6.js} +1 -1
- package/dist/preview/chunk.M5HADQPP.js +1 -0
- package/dist/preview/chunk.MWJUZG3C.js +6 -0
- package/dist/preview/chunk.OMMKD2NU.js +2 -0
- package/dist/preview/{chunk.JOOQUWLT.js → chunk.PNVR3CXR.js} +2 -2
- package/dist/preview/{chunk.PBSMLINK.js → chunk.PPUAPAWR.js} +1 -1
- package/dist/preview/{chunk.SYAEBGDC.js → chunk.PW7YH6JV.js} +1 -1
- package/dist/preview/{chunk.OC6IWRQ3.js → chunk.Q7TP4RFE.js} +1 -1
- package/dist/preview/{chunk.CIPS2OGR.js → chunk.QPAUQJON.js} +1 -1
- package/dist/preview/{chunk.UZGRRDHD.js → chunk.QU356VB2.js} +1 -1
- package/dist/preview/chunk.QVKKXMNK.js +1 -0
- package/dist/preview/{chunk.3AGY4QVS.js → chunk.QVUL2FSI.js} +1 -1
- package/dist/preview/chunk.RH45AW2W.js +1 -0
- package/dist/preview/{chunk.6YCBYL2Y.js → chunk.RIW7SQH4.js} +1 -1
- package/dist/preview/{chunk.H7EPE74C.js → chunk.RN3EZVV4.js} +1 -1
- package/dist/preview/{chunk.3HXN4BOY.js → chunk.RYEAMM73.js} +1 -1
- package/dist/preview/{chunk.YIR7PPF3.js → chunk.SIH6RCAI.js} +1 -1
- package/dist/preview/{chunk.NRAYZY3X.js → chunk.T2L4NPSB.js} +1 -1
- package/dist/preview/{chunk.DHIUSUCL.js → chunk.T3M4FALL.js} +5 -5
- package/dist/preview/{chunk.CX3KL2C5.js → chunk.TCSZZAYB.js} +1 -1
- package/dist/preview/chunk.TPX6AVJL.js +1 -0
- package/dist/preview/{chunk.5UL7YDUD.js → chunk.U5ACEYAN.js} +1 -1
- package/dist/preview/{chunk.5T5XGILP.js → chunk.UA5UYINM.js} +1 -1
- package/dist/preview/{chunk.GO4XBWJO.js → chunk.UCIQIPBQ.js} +1 -1
- package/dist/preview/{chunk.EKPRNDUV.js → chunk.UHQD3NTK.js} +1 -1
- package/dist/preview/{chunk.RIJUCHP4.js → chunk.VKH3ZPPQ.js} +1 -1
- package/dist/preview/{chunk.UBFNZMUX.js → chunk.VMGWYCXU.js} +1 -1
- package/dist/preview/chunk.VOFUIWAX.js +27 -0
- package/dist/preview/{chunk.DYSPCGXX.js → chunk.VSOB2QEK.js} +1 -1
- package/dist/preview/{chunk.R6K6GF5R.js → chunk.VZHV25JE.js} +1 -1
- package/dist/preview/chunk.WAB6ZS2V.js +1 -0
- package/dist/preview/chunk.WLBXBNNH.js +1 -0
- package/dist/preview/chunk.WPCGHGDA.js +1 -0
- package/dist/preview/{chunk.QYZNAUIR.js → chunk.WYEYYCBH.js} +1 -1
- package/dist/preview/{chunk.MNP4JI33.js → chunk.X7W27IRI.js} +4 -4
- package/dist/preview/{chunk.J25KOSNW.js → chunk.XK4FVT2X.js} +1 -1
- package/dist/preview/{chunk.CWHRDBOF.js → chunk.XXMYKBLT.js} +1 -1
- package/dist/preview/{chunk.CDP2XL66.js → chunk.XZYJRNRY.js} +1 -1
- package/dist/preview/chunk.YCIX53AR.js +1 -0
- package/dist/preview/chunk.YEYY273R.js +1 -0
- package/dist/preview/{chunk.EJPI3ST6.js → chunk.YJCT3DV2.js} +1 -1
- package/dist/preview/chunk.YT2CYCVT.js +1 -0
- package/dist/preview/{chunk.B2GLDIAS.js → chunk.Z7ZCR4LN.js} +1 -1
- package/dist/preview/{chunk.CAVBSL27.js → chunk.ZE4CTZQ3.js} +1 -1
- package/dist/preview/chunk.ZFWV4JAJ.js +1 -0
- package/dist/preview/{chunk.5H4VXLZF.js → chunk.ZJX6ZKKM.js} +1 -1
- package/dist/preview/chunk.ZPQKAJRI.js +1 -0
- package/dist/preview/{chunk.OKRNJXTV.js → chunk.ZSW74NVJ.js} +1 -1
- package/dist/preview/chunk.ZTD2CNC3.js +25 -0
- package/dist/preview/{chunk.QVVJRSRM.js → chunk.ZTFW7RKP.js} +1 -1
- package/dist/preview/index.html +42 -42
- package/dist/preview/page.js +2 -2
- package/package.json +6 -6
- package/dist/preview/chunk.4HRAQNJO.js +0 -27
- package/dist/preview/chunk.52W7WYME.js +0 -1
- package/dist/preview/chunk.5TVB6BUY.js +0 -1
- package/dist/preview/chunk.63GXY2ME.js +0 -1
- package/dist/preview/chunk.6QWV5MVH.js +0 -25
- package/dist/preview/chunk.AKFKM4SW.js +0 -3
- package/dist/preview/chunk.BOO6WVM4.js +0 -117
- package/dist/preview/chunk.BQ3JHEHV.js +0 -1
- package/dist/preview/chunk.CJJLJ3KW.js +0 -2
- package/dist/preview/chunk.DAZ2VSRD.js +0 -1
- package/dist/preview/chunk.ERIT3R6N.js +0 -1
- package/dist/preview/chunk.EYTBDMTW.js +0 -1
- package/dist/preview/chunk.F6EH7HI2.js +0 -1
- package/dist/preview/chunk.FSTCX2AI.js +0 -1
- package/dist/preview/chunk.H7BST3XO.js +0 -1
- package/dist/preview/chunk.IDVAR5HM.js +0 -1
- package/dist/preview/chunk.K7PMDSOL.js +0 -1
- package/dist/preview/chunk.KSES5U5B.js +0 -1
- package/dist/preview/chunk.LR3VDXPI.js +0 -1
- package/dist/preview/chunk.N6OX4NEQ.js +0 -1
- package/dist/preview/chunk.PHKSMUIA.js +0 -1
- package/dist/preview/chunk.SHTJZ6UX.js +0 -1
- package/dist/preview/chunk.TCNBCTWO.js +0 -1
- package/dist/preview/chunk.WAZ7OGBD.js +0 -1
- package/dist/preview/chunk.XANVHJQ4.js +0 -1
- package/dist/preview/chunk.XKABS745.js +0 -1
- package/dist/preview/chunk.XMC7YDWT.js +0 -1
- package/dist/preview/chunk.Y6ZNFQK3.js +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as dt}from"./chunk.G5NZVPJU.js";import{a as ct}from"./chunk.D75KC3LL.js";import{f as ft}from"./chunk.FWTIUYXH.js";import{a as C,f as q}from"./chunk.MAF7C3VM.js";import{$ as et,E as Q,F as X,H as k,K as G,L as tt,N as nt,Sa as ot,Ua as st,X as _,Xa as it,Z as M,ca as rt,ea as at,sb as lt,uc as ut}from"./chunk.MNP4JI33.js";import"./chunk.AJZBJBMO.js";function J(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let s=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!s}),n=r.as==="open"}return e}function D(t,e){return J(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function wt(t){return D(t,!1)}function Ot(t){return D(t,!0)}function pt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function z(t){let e=u=>J(u).map(({part:a,space:o})=>({...a,space:o})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,s=u=>`${D(n,u)}${r?`, when ${D(r,u)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:s(!1),said:s(!0)}}function Et(t,e=!1){return t.line?pt(t.line,e):t.message}var mt=60,O=t=>({text:t,as:"name"}),c=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},L=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},R=(t,e)=>({text:t,as:"op",said:e}),v={text:"(",as:"open"},w={text:")",as:"close"},N={text:"\u2014",as:"value",said:"empty"},V={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},Pt={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},gt=t=>t.t==="binary"&&t.op in V;function I(t){return t.length>1&&t[1]===t[1].toUpperCase()&&/[A-Z]/.test(t[1])?t:t.charAt(0).toLowerCase()+t.slice(1)}function ht(t){let{schema:e}=t,n=l=>l===null?void 0:e.tryDefinition(l),r=(l,m)=>{let g=n(l)?.edges;return g&&Object.hasOwn(g,m)?g[m]:void 0},s=(l,m)=>{let g=r(l,m)?.to;return Array.isArray(g)&&g.length===1?g[0]:null},u=(l,m)=>{let g=(e.edge(m)?.from??[]).filter(W=>{let K=r(W,m)?.to;return l===null||K==="*"||Array.isArray(K)&&K.includes(l)});return g.length===1?g[0]:null},a=(l,m)=>r(l,m)?M(m).toLowerCase():I(rt(n(l),m)),o=l=>I(et(e,l)),d=l=>I(ft(e).get(l)?.label??M(l)),x=l=>I(at(n(l),l)),i=(l,m)=>{let g=l===null?void 0:t.formatOf?.(l,m);if(g?.format)return g;let W=t.said?.get(m);return W?{...g,format:W}:g},p=l=>_(e.tryDefinition(l.kind),l),h=t.money?.locale,y=(l,m)=>{if(l==null)return N;if(l instanceof C){if(l.nodes.length===0)return N;let A=l.nodes.slice(0,3).map(p),Z=l.nodes.length-A.length;return L(Z>0?`${A.join(", ")} and ${Z} more`:A.length>1?`${A.slice(0,-1).join(", ")} and ${A[A.length-1]}`:A[0])}if(Array.isArray(l))return L(`{${l.map(A=>y(A,m).text).join(", ")}}`,l.map(A=>y(A,m).text).join(" or "));if(typeof l=="object")return L(p(l));if(typeof l=="boolean")return L(l?"yes":"no");let g=m?.format??(m?i(m.kind,m.key):void 0);if(typeof l=="number")return L(g&&g.format!=="date"?lt(l,{...t.money,...g}):nt(l,h));if(Q.test(l)||g?.format==="date")return L(G(l.slice(0,10),h));if(X.test(l))return L(tt(l,h));let W=m&&m.kind!==null?n(m.kind)?.display?.format?.[m.key]:void 0;if(W)return L(W(l));let K=l.length>mt?`${l.slice(0,mt-1).trimEnd()}\u2026`:l;return L(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test(K)?K.replace(/[-_]+/g," "):K)};return{definition:n,relation:r,farOf:s,nearOf:u,fieldName:a,plural:o,noun:x,factName:d,formatOf:i,valueWords:y,locale:h}}function P(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:E(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=E(t.args[0],e,n),s=t.args[1];if(s.t==="ident")return{kind:r,key:s.name};if(s.t==="lit"&&typeof s.value=="string")return{kind:r,key:s.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return P(t.left,e,n)??P(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return P(t.args[1],e,n)??P(t.args[2],e,n)}function E(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(E(t.object,e,n),t.name);case"where":return E(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?E(t.left,e,n):null;case"call":{let r=s=>{let u=t.args[s];return u?.t==="lit"&&typeof u.value=="string"?u.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(E(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(E(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?E(t.args[0],e,n):null}default:return null}}function j(t){return t.t==="binary"?t.op==="||"?U(t)?4:1:t.op==="&&"?2:t.op in V||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var $=t=>t.t==="lit",b=(t,e)=>t.t==="call"&&t.fn===e;function F(t,e){return t.t==="binary"&&t.op===e?[...F(t.left,e),...F(t.right,e)]:[t]}function U(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...F(t,"||"));let n,r=[];for(let s of e){if(s.t!=="binary"||s.op!=="=="||!$(s.right)||typeof s.right.value!="string"||n&&JSON.stringify(yt(n))!==JSON.stringify(yt(s.left)))return;n=s.left,r.push(s.right)}return n?{subject:n,values:r}:void 0}var yt=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function f(t,e,n,r){let s=(u,a,o=e)=>j(u)<a?[v,...f(u,o,n),w]:f(u,o,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(u=>u.t==="lit"?u.value:null),r)];case"ident":return[O(n.fieldName(e,t.name))];case"member":{let u=b(t.object,"first")&&t.object.args[0]&&b(t.object.args[0],"all"),a=E(t.object,e,n);if(u&&a)return e!==null&&n.fieldName(e,t.name)===n.fieldName(a,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[O(`${n.noun(a)}'s ${n.fieldName(a,t.name)}`)]:[O(n.fieldName(a,t.name))];let o=f(t.object,e,n),d=o[o.length-1];return o.length===1&&d?.as==="name"?[O(`${d.text}'s ${n.fieldName(a,t.name)}`)]:[...o,c("'s"),O(n.fieldName(a,t.name))]}case"unary":return t.op==="-"?[R("\u2212","minus"),...s(t.operand,7)]:T(t.operand,e,n);case"where":{let u=E(t.set,e,n),a=f(t.filter,u,n),o=a.every(d=>d.as==="name"||d.as==="word"&&d.text==="not");return[...s(t.set,4),...o?[]:[c("with")],...j(t.filter)<=2?[v,...a,w]:a]}case"binary":return bt(t,e,n);case"call":return Lt(t,e,n)}}function T(t,e,n){return gt(t)?bt({...t,op:B[t.op]},e,n):b(t,"present")||b(t,"exists")?[...f(t.args[0],e,n),R("=","is"),N]:t.t==="ident"?[c("not"),O(n.fieldName(e,t.name))]:[c("not"),v,...f(t,e,n),w]}function bt(t,e,n){let r=(a,o)=>j(a)<o?[v,...f(a,e,n),w]:f(a,e,n);if(t.op==="&&"||t.op==="||"){let a=U(t);if(a){let d=P(a.subject,e,n);return[...f(a.subject,e,n),R("\u2208","is one of"),n.valueWords(a.values.map(x=>x.value),d)]}let o=t.op==="&&"?2:1;return[...r(t.left,o),c(t.op==="&&"?"and":"or"),...r(t.right,o+.5)]}if(t.op in V){if($(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?f(t.left,e,n):T(t.left,e,n);let[a,o]=V[t.op],d=P(t.left,e,n),x=P(t.right,e,n);return[...S(t.left,e,n,x),R(a,o),...S(t.right,e,n,d)]}if(t.op==="in")return[...r(t.left,5),R("\u2208","is one of"),...S(t.right,e,n,P(t.left,e,n))];let s=Pt[t.op];if(s){let a=j(t);return[...r(t.left,a),R(s[0],s[1]),...r(t.right,a+.5)]}let u={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),c(u[t.op]??t.op),...r(t.right,5)]}function S(t,e,n,r){return t.t==="lit"||t.t==="list"?f(t,e,n,r):j(t)<5?[v,...f(t,e,n),w]:f(t,e,n)}function Lt(t,e,n){let r=a=>t.args[a],s=a=>{let o=t.args[a];return o?.t==="lit"&&typeof o.value=="string"?o.value:void 0},u=a=>{let o=r(a);return j(o)<9&&o.t!=="where"?[v,...f(o,e,n),w]:f(o,e,n)};switch(t.fn){case"out":{let a=s(t.args.length-1)??"",o=O(M(a).toLowerCase());return t.args.length===2?[o,c("of"),...u(0)]:[o]}case"in":{let a=s(t.args.length-1)??"",o=t.args.length===2?n.nearOf(E(r(0),e,n),a):n.nearOf(e,a),d=O(o?n.plural(o):M(a).toLowerCase());return t.args.length===2?[d,c("of"),...u(0)]:[d]}case"all":{let a=s(0),o=t.args[1]?.t==="lit"?t.args[1].value:void 0,d=o===!0?[c("archived")]:o==="all"?[c("archived or not")]:[];return o===!0?[...d,O(a?n.plural(a):"everything")]:[O(a?n.plural(a):"everything"),...d]}case"fact":{let a=s(0);return[O(a?n.factName(a):"fact")]}case"count":return[c("number of"),...u(0)];case"exists":return[...u(0),R("\u2260","is not"),N];case"present":return[...f(r(0),e,n),R("\u2260","is not"),N];case"some":case"every":{let a=E(r(0),e,n),o=r(1);return[...t.fn==="some"?[c("some")]:[],...u(0),c(t.fn==="some"?"with":"all with"),...j(o)<=2?[v,...f(o,a,n),w]:f(o,a,n)]}case"sum":case"min":case"max":{let a=E(r(0),e,n),o=r(1),d=o.t==="lit"&&typeof o.value=="string"?[O(n.fieldName(a,o.value))]:j(o)<9?[v,...f(o,a,n),w]:f(o,a,n);return[c(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...d,c("of"),...u(0)]}case"first":{let a=r(0);if(b(a,"all")){let o=a.args[0]?.value;if(typeof o=="string")return[O(`the ${n.noun(o)}`)]}return[c("first of"),...u(0)]}case"sort":return[...u(0),c("by"),...f(r(1),E(r(0),e,n),n)];case"len":return[c("length of"),...f(r(0),e,n)];case"lower":return f(r(0),e,n);case"contains":case"startsWith":return[...f(r(0),e,n),c(t.fn==="contains"?"contains":"starts with"),...S(r(1),e,n,P(r(0),e,n))];case"today":return[L("today")];case"now":return[L("now")];case"date":return $(r(0))&&typeof r(0).value=="string"?[L(G(String(r(0).value),n.locale))]:f(r(0),e,n);case"days":case"hours":{let a=t.fn,[o,d]=[r(0),r(1)];return b(d,"today")||b(d,"now")?[c(`${a} since`),...f(o,e,n)]:b(o,"today")||b(o,"now")?[c(`${a} until`),...f(d,e,n)]:[c(`${a} from`),...f(o,e,n),c("to"),...f(d,e,n)]}case"if":return[v,...f(r(1),e,n),c("if"),...f(r(0),e,n),c(","),c("else"),...f(r(2),e,n),w];case"either":return t.args.flatMap((a,o)=>o===0?f(a,e,n):[c(","),c("else"),...f(a,e,n)]);default:return[c(t.fn),v,...t.args.flatMap((a,o)=>o===0?f(a,e,n):[c(","),...f(a,e,n)]),w]}}function H(t,e){let n=ht(e),r=t.over==="graph"?null:t.over;return z({...r===null?{}:{kind:r},parts:f(t.require,r,n),...t.when?{when:f(t.when,r,n)}:{}})}function Y(t,e,n){let r=ht(e),s=t.over==="graph"?null:t.over,u=n.subject,a=i=>{try{return q(i,{...n,budget:2e3})}catch{return}},o=(i,p)=>{let h=S(i,s,r,p);if(i.t==="lit"||i.t==="list"||b(i,"today")||b(i,"now")||b(i,"date"))return h;let y=a(i);if(y===void 0)return h;let l=P(i,s,r),m=r.valueWords(y,l?{...l,format:r.formatOf(l.kind,l.key)??(p?r.formatOf(p.kind,p.key):void 0)}:p);return y instanceof C?[...h,c(":"),m]:[...h,m]},d=i=>{if(i.t==="binary"&&i.op==="&&"){let p=[];p.push(...F(i,"&&"));let h=p.filter(y=>a(y)!==!0);return(h.length>0?h:p).flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op==="||"){let p=U(i);if(p){let y=P(p.subject,s,r);return[...o(p.subject),R("\u2209","is not one of"),r.valueWords(p.values.map(l=>l.value),y)]}let h=[];return h.push(...F(i,"||")),h.flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op in V){if($(i.right)&&typeof i.right.value=="boolean"&&(i.op==="=="||i.op==="!="))return i.op==="=="===i.right.value?T(i.left,s,r):f(i.left,s,r);let p=B[i.op],[h,y]=V[p],l=P(i.left,s,r),m=P(i.right,s,r);if($(i.right)&&i.right.value===null)return[...p==="=="?S(i.left,s,r,m):o(i.left,m),R(h,y),N];let g=p==="=="&&($(i.right)||$(i.left));return[...g?S(i.left,s,r,m):o(i.left,m),R(h,y),...g?S(i.right,s,r,l):o(i.right,l)]}if(i.t==="binary"&&i.op==="in")return[...o(i.left),R("\u2209","is not one of"),...S(i.right,s,r,P(i.left,s,r))];if(i.t==="unary"&&i.op==="!"){let p=i.operand;return gt(p)?d({...p,op:B[p.op]}):b(p,"present")||b(p,"exists")?[...o(p.args[0]),R("\u2260","is not"),N]:p.t==="ident"?f(p,s,r):[c("not"),v,...T(p,s,r),w]}if(b(i,"present")||b(i,"exists"))return[...f(i.args[0],s,r),R("=","is"),N];if(b(i,"some"))return[...f(i,s,r).slice(1),R("=","is"),N];if(b(i,"every")&&i.args.length===2){let p=a(i.args[0]);if(p instanceof C){let h=p.nodes.filter(y=>{try{return q(i.args[1],{...n,subject:y,budget:2e3})!==!0}catch{return!0}});return[...f(i,s,r),c(","),c("not"),r.valueWords(new C(h))]}}return i.t==="ident"?[c("not"),O(r.fieldName(s,i.name))]:[c("not"),v,...f(i,s,r),w]},x;try{x=d(t.require)}catch{x=[c("not"),v,...f(t.require,s,r),w]}return z({...s===null?{}:{kind:s},parts:x,...u?{record:_(e.schema.tryDefinition(u.kind),u)}:{}})}function xt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function At(t){return(e,n)=>{let r=t[e]?.fields?.[n],s=r?.format??(r?.type==="date"?"date":void 0);return s||r?.unit?{...s?{format:s}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function vt(t,e){return{schema:e,said:xt(t.says),...t.declared?{formatOf:At(t.declared)}:{},...t.money?{money:t.money}:{}}}function Yt(t,e){return t.shape?H(t.shape,vt(t.shape,e)):void 0}var Rt=new WeakMap;function jt(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let s=Wt(r),u=n.get(s.invariant)?.shape;if(!u||s.status&&s.status!=="violated")return s;let a=s.subjectId?t.graph.getNode(s.subjectId):void 0;if(u.over!=="graph"&&!a)return s;let o=u.kinds;o||(o=Rt.get(t.schema),o||Rt.set(t.schema,o=ct(t.schema)));try{let d=t.today?.()??u.today?.()??k(),x=Y(u,vt(u,t.schema),{graph:t.graph,subject:a??null,kinds:o,today:d});return{...s,line:x,...u.says?{}:{message:`${s.message} \u2014 ${x.text}`}}}catch{return s}})}function St(){it((t,e,n,r)=>jt({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),dt(Nt)}function Nt(t,e,n,r){let s=e.graph,u=st.from(t.schema,s.snapshot(),{validate:!1});for(let x of n?[...r].reverse().map(ot):r)try{u.applyPrimitives([x],{restoring:!0})}catch{}let a=x=>t.violations(void 0,x),o=a(n?u:s),d=a(n?s:u);return{...ut(t.allInvariants(),o,d),violationsAfter:d}}function Wt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}St();export{Y as brokenLineOf,St as judgeWithLines,Nt as judgedForASeat,Et as problemWords,Yt as ruleLine,H as ruleLineOf,pt as ruleLineWords,J as ruleSpacing,Ot as ruleSpoken,wt as ruleText,Wt as unlined,jt as withLines};
|
|
1
|
+
import{b as dt}from"./chunk.HPD5ZDZH.js";import{a as ct}from"./chunk.577PGFUT.js";import{f as ft}from"./chunk.FBY5IUGU.js";import{a as C,f as q}from"./chunk.4K5QCJFH.js";import{$ as et,E as Q,F as X,H as k,K as G,L as tt,N as nt,Sa as ot,Ua as st,X as _,Xa as it,Z as M,ca as rt,ea as at,sb as lt,vc as ut}from"./chunk.X7W27IRI.js";import"./chunk.AJZBJBMO.js";function J(t){let e=[],n=!0;for(let r of t){if(r.text.length===0)continue;let s=r.as==="close"||r.text===","||r.text===":"||r.text.startsWith("'")||n;e.push({part:r,space:!s}),n=r.as==="open"}return e}function D(t,e){return J(t).map(({part:n,space:r})=>`${r?" ":""}${e?n.said??n.text:n.text}`).join("")}function wt(t){return D(t,!1)}function Ot(t){return D(t,!0)}function pt(t,e=!1){let n=e?t.said:t.text;return t.record!==void 0?`${t.record} \u2014 ${n}`:n}function z(t){let e=u=>J(u).map(({part:a,space:o})=>({...a,space:o})),n=e(t.parts),r=t.when&&t.when.length>0?e(t.when):void 0,s=u=>`${D(n,u)}${r?`, when ${D(r,u)}`:""}`;return{...t,parts:n,...r?{when:r}:{},text:s(!1),said:s(!0)}}function Et(t,e=!1){return t.line?pt(t.line,e):t.message}var mt=60,O=t=>({text:t,as:"name"}),c=(t,e)=>e===void 0?{text:t,as:"word"}:{text:t,as:"word",said:e},L=(t,e)=>e===void 0||e===t?{text:t,as:"value"}:{text:t,as:"value",said:e},R=(t,e)=>({text:t,as:"op",said:e}),v={text:"(",as:"open"},w={text:")",as:"close"},N={text:"\u2014",as:"value",said:"empty"},V={">=":["\u2265","at least"],"<=":["\u2264","at most"],"<":["<","less than"],">":[">","more than"],"==":["=","is"],"!=":["\u2260","is not"]},B={">=":"<","<=":">","<":">=",">":"<=","==":"!=","!=":"=="},Pt={"+":["+","plus"],"-":["\u2212","minus"],"*":["\xD7","times"],"/":["\xF7","divided by"],"%":["mod","modulo"]},gt=t=>t.t==="binary"&&t.op in V;function I(t){return t.length>1&&t[1]===t[1].toUpperCase()&&/[A-Z]/.test(t[1])?t:t.charAt(0).toLowerCase()+t.slice(1)}function ht(t){let{schema:e}=t,n=l=>l===null?void 0:e.tryDefinition(l),r=(l,m)=>{let g=n(l)?.edges;return g&&Object.hasOwn(g,m)?g[m]:void 0},s=(l,m)=>{let g=r(l,m)?.to;return Array.isArray(g)&&g.length===1?g[0]:null},u=(l,m)=>{let g=(e.edge(m)?.from??[]).filter(W=>{let K=r(W,m)?.to;return l===null||K==="*"||Array.isArray(K)&&K.includes(l)});return g.length===1?g[0]:null},a=(l,m)=>r(l,m)?M(m).toLowerCase():I(rt(n(l),m)),o=l=>I(et(e,l)),d=l=>I(ft(e).get(l)?.label??M(l)),x=l=>I(at(n(l),l)),i=(l,m)=>{let g=l===null?void 0:t.formatOf?.(l,m);if(g?.format)return g;let W=t.said?.get(m);return W?{...g,format:W}:g},p=l=>_(e.tryDefinition(l.kind),l),h=t.money?.locale,y=(l,m)=>{if(l==null)return N;if(l instanceof C){if(l.nodes.length===0)return N;let A=l.nodes.slice(0,3).map(p),Z=l.nodes.length-A.length;return L(Z>0?`${A.join(", ")} and ${Z} more`:A.length>1?`${A.slice(0,-1).join(", ")} and ${A[A.length-1]}`:A[0])}if(Array.isArray(l))return L(`{${l.map(A=>y(A,m).text).join(", ")}}`,l.map(A=>y(A,m).text).join(" or "));if(typeof l=="object")return L(p(l));if(typeof l=="boolean")return L(l?"yes":"no");let g=m?.format??(m?i(m.kind,m.key):void 0);if(typeof l=="number")return L(g&&g.format!=="date"?lt(l,{...t.money,...g}):nt(l,h));if(Q.test(l)||g?.format==="date")return L(G(l.slice(0,10),h));if(X.test(l))return L(tt(l,h));let W=m&&m.kind!==null?n(m.kind)?.display?.format?.[m.key]:void 0;if(W)return L(W(l));let K=l.length>mt?`${l.slice(0,mt-1).trimEnd()}\u2026`:l;return L(/^[a-z][a-z0-9]*([-_][a-z0-9]+)*$/.test(K)?K.replace(/[-_]+/g," "):K)};return{definition:n,relation:r,farOf:s,nearOf:u,fieldName:a,plural:o,noun:x,factName:d,formatOf:i,valueWords:y,locale:h}}function P(t,e,n){if(t.t==="ident")return{kind:e,key:t.name};if(t.t==="member")return{kind:E(t.object,e,n),key:t.name};if(t.t==="call"&&(t.fn==="sum"||t.fn==="min"||t.fn==="max")&&t.args.length===2){let r=E(t.args[0],e,n),s=t.args[1];if(s.t==="ident")return{kind:r,key:s.name};if(s.t==="lit"&&typeof s.value=="string")return{kind:r,key:s.value}}if(t.t==="binary"&&(t.op==="+"||t.op==="-"))return P(t.left,e,n)??P(t.right,e,n);if(t.t==="call"&&t.fn==="if"&&t.args.length===3)return P(t.args[1],e,n)??P(t.args[2],e,n)}function E(t,e,n){switch(t.t){case"ident":return n.relation(e,t.name)?n.farOf(e,t.name):null;case"member":return n.farOf(E(t.object,e,n),t.name);case"where":return E(t.set,e,n);case"binary":return t.op==="|"||t.op==="&"||t.op==="-"?E(t.left,e,n):null;case"call":{let r=s=>{let u=t.args[s];return u?.t==="lit"&&typeof u.value=="string"?u.value:void 0};return t.fn==="all"?r(0)??null:t.fn==="out"?t.args.length===2?n.farOf(E(t.args[0],e,n),r(1)??""):n.farOf(e,r(0)??""):t.fn==="in"?t.args.length===2?n.nearOf(E(t.args[0],e,n),r(1)??""):n.nearOf(e,r(0)??""):(t.fn==="first"||t.fn==="sort")&&t.args[0]?E(t.args[0],e,n):null}default:return null}}function j(t){return t.t==="binary"?t.op==="||"?U(t)?4:1:t.op==="&&"?2:t.op in V||t.op==="in"?4:t.op==="+"||t.op==="-"?5:t.op==="*"||t.op==="/"||t.op==="%"?6:4.5:t.t==="unary"&&t.op==="!"?3:t.t==="where"?3.5:9}var $=t=>t.t==="lit",b=(t,e)=>t.t==="call"&&t.fn===e;function F(t,e){return t.t==="binary"&&t.op===e?[...F(t.left,e),...F(t.right,e)]:[t]}function U(t){if(t.t!=="binary"||t.op!=="||")return;let e=[];e.push(...F(t,"||"));let n,r=[];for(let s of e){if(s.t!=="binary"||s.op!=="=="||!$(s.right)||typeof s.right.value!="string"||n&&JSON.stringify(yt(n))!==JSON.stringify(yt(s.left)))return;n=s.left,r.push(s.right)}return n?{subject:n,values:r}:void 0}var yt=t=>JSON.parse(JSON.stringify(t,(e,n)=>e==="at"?void 0:n));function f(t,e,n,r){let s=(u,a,o=e)=>j(u)<a?[v,...f(u,o,n),w]:f(u,o,n);switch(t.t){case"lit":return[n.valueWords(t.value,r)];case"list":return[n.valueWords(t.items.map(u=>u.t==="lit"?u.value:null),r)];case"ident":return[O(n.fieldName(e,t.name))];case"member":{let u=b(t.object,"first")&&t.object.args[0]&&b(t.object.args[0],"all"),a=E(t.object,e,n);if(u&&a)return e!==null&&n.fieldName(e,t.name)===n.fieldName(a,t.name)&&n.definition(e)?.fields?.shape&&Object.prototype.hasOwnProperty.call(n.definition(e).fields.shape,t.name)?[O(`${n.noun(a)}'s ${n.fieldName(a,t.name)}`)]:[O(n.fieldName(a,t.name))];let o=f(t.object,e,n),d=o[o.length-1];return o.length===1&&d?.as==="name"?[O(`${d.text}'s ${n.fieldName(a,t.name)}`)]:[...o,c("'s"),O(n.fieldName(a,t.name))]}case"unary":return t.op==="-"?[R("\u2212","minus"),...s(t.operand,7)]:T(t.operand,e,n);case"where":{let u=E(t.set,e,n),a=f(t.filter,u,n),o=a.every(d=>d.as==="name"||d.as==="word"&&d.text==="not");return[...s(t.set,4),...o?[]:[c("with")],...j(t.filter)<=2?[v,...a,w]:a]}case"binary":return bt(t,e,n);case"call":return Lt(t,e,n)}}function T(t,e,n){return gt(t)?bt({...t,op:B[t.op]},e,n):b(t,"present")||b(t,"exists")?[...f(t.args[0],e,n),R("=","is"),N]:t.t==="ident"?[c("not"),O(n.fieldName(e,t.name))]:[c("not"),v,...f(t,e,n),w]}function bt(t,e,n){let r=(a,o)=>j(a)<o?[v,...f(a,e,n),w]:f(a,e,n);if(t.op==="&&"||t.op==="||"){let a=U(t);if(a){let d=P(a.subject,e,n);return[...f(a.subject,e,n),R("\u2208","is one of"),n.valueWords(a.values.map(x=>x.value),d)]}let o=t.op==="&&"?2:1;return[...r(t.left,o),c(t.op==="&&"?"and":"or"),...r(t.right,o+.5)]}if(t.op in V){if($(t.right)&&typeof t.right.value=="boolean"&&(t.op==="=="||t.op==="!="))return t.op==="=="===t.right.value?f(t.left,e,n):T(t.left,e,n);let[a,o]=V[t.op],d=P(t.left,e,n),x=P(t.right,e,n);return[...S(t.left,e,n,x),R(a,o),...S(t.right,e,n,d)]}if(t.op==="in")return[...r(t.left,5),R("\u2208","is one of"),...S(t.right,e,n,P(t.left,e,n))];let s=Pt[t.op];if(s){let a=j(t);return[...r(t.left,a),R(s[0],s[1]),...r(t.right,a+.5)]}let u={"|":"or","&":"and also","-":"except"};return[...r(t.left,5),c(u[t.op]??t.op),...r(t.right,5)]}function S(t,e,n,r){return t.t==="lit"||t.t==="list"?f(t,e,n,r):j(t)<5?[v,...f(t,e,n),w]:f(t,e,n)}function Lt(t,e,n){let r=a=>t.args[a],s=a=>{let o=t.args[a];return o?.t==="lit"&&typeof o.value=="string"?o.value:void 0},u=a=>{let o=r(a);return j(o)<9&&o.t!=="where"?[v,...f(o,e,n),w]:f(o,e,n)};switch(t.fn){case"out":{let a=s(t.args.length-1)??"",o=O(M(a).toLowerCase());return t.args.length===2?[o,c("of"),...u(0)]:[o]}case"in":{let a=s(t.args.length-1)??"",o=t.args.length===2?n.nearOf(E(r(0),e,n),a):n.nearOf(e,a),d=O(o?n.plural(o):M(a).toLowerCase());return t.args.length===2?[d,c("of"),...u(0)]:[d]}case"all":{let a=s(0),o=t.args[1]?.t==="lit"?t.args[1].value:void 0,d=o===!0?[c("archived")]:o==="all"?[c("archived or not")]:[];return o===!0?[...d,O(a?n.plural(a):"everything")]:[O(a?n.plural(a):"everything"),...d]}case"fact":{let a=s(0);return[O(a?n.factName(a):"fact")]}case"count":return[c("number of"),...u(0)];case"exists":return[...u(0),R("\u2260","is not"),N];case"present":return[...f(r(0),e,n),R("\u2260","is not"),N];case"some":case"every":{let a=E(r(0),e,n),o=r(1);return[...t.fn==="some"?[c("some")]:[],...u(0),c(t.fn==="some"?"with":"all with"),...j(o)<=2?[v,...f(o,a,n),w]:f(o,a,n)]}case"sum":case"min":case"max":{let a=E(r(0),e,n),o=r(1),d=o.t==="lit"&&typeof o.value=="string"?[O(n.fieldName(a,o.value))]:j(o)<9?[v,...f(o,a,n),w]:f(o,a,n);return[c(t.fn==="sum"?"total":t.fn==="min"?"least":"most"),...d,c("of"),...u(0)]}case"first":{let a=r(0);if(b(a,"all")){let o=a.args[0]?.value;if(typeof o=="string")return[O(`the ${n.noun(o)}`)]}return[c("first of"),...u(0)]}case"sort":return[...u(0),c("by"),...f(r(1),E(r(0),e,n),n)];case"len":return[c("length of"),...f(r(0),e,n)];case"lower":return f(r(0),e,n);case"contains":case"startsWith":return[...f(r(0),e,n),c(t.fn==="contains"?"contains":"starts with"),...S(r(1),e,n,P(r(0),e,n))];case"today":return[L("today")];case"now":return[L("now")];case"date":return $(r(0))&&typeof r(0).value=="string"?[L(G(String(r(0).value),n.locale))]:f(r(0),e,n);case"days":case"hours":{let a=t.fn,[o,d]=[r(0),r(1)];return b(d,"today")||b(d,"now")?[c(`${a} since`),...f(o,e,n)]:b(o,"today")||b(o,"now")?[c(`${a} until`),...f(d,e,n)]:[c(`${a} from`),...f(o,e,n),c("to"),...f(d,e,n)]}case"if":return[v,...f(r(1),e,n),c("if"),...f(r(0),e,n),c(","),c("else"),...f(r(2),e,n),w];case"either":return t.args.flatMap((a,o)=>o===0?f(a,e,n):[c(","),c("else"),...f(a,e,n)]);default:return[c(t.fn),v,...t.args.flatMap((a,o)=>o===0?f(a,e,n):[c(","),...f(a,e,n)]),w]}}function H(t,e){let n=ht(e),r=t.over==="graph"?null:t.over;return z({...r===null?{}:{kind:r},parts:f(t.require,r,n),...t.when?{when:f(t.when,r,n)}:{}})}function Y(t,e,n){let r=ht(e),s=t.over==="graph"?null:t.over,u=n.subject,a=i=>{try{return q(i,{...n,budget:2e3})}catch{return}},o=(i,p)=>{let h=S(i,s,r,p);if(i.t==="lit"||i.t==="list"||b(i,"today")||b(i,"now")||b(i,"date"))return h;let y=a(i);if(y===void 0)return h;let l=P(i,s,r),m=r.valueWords(y,l?{...l,format:r.formatOf(l.kind,l.key)??(p?r.formatOf(p.kind,p.key):void 0)}:p);return y instanceof C?[...h,c(":"),m]:[...h,m]},d=i=>{if(i.t==="binary"&&i.op==="&&"){let p=[];p.push(...F(i,"&&"));let h=p.filter(y=>a(y)!==!0);return(h.length>0?h:p).flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op==="||"){let p=U(i);if(p){let y=P(p.subject,s,r);return[...o(p.subject),R("\u2209","is not one of"),r.valueWords(p.values.map(l=>l.value),y)]}let h=[];return h.push(...F(i,"||")),h.flatMap((y,l)=>[...l>0?[c("and")]:[],...j(y)<=2?[v,...d(y),w]:d(y)])}if(i.t==="binary"&&i.op in V){if($(i.right)&&typeof i.right.value=="boolean"&&(i.op==="=="||i.op==="!="))return i.op==="=="===i.right.value?T(i.left,s,r):f(i.left,s,r);let p=B[i.op],[h,y]=V[p],l=P(i.left,s,r),m=P(i.right,s,r);if($(i.right)&&i.right.value===null)return[...p==="=="?S(i.left,s,r,m):o(i.left,m),R(h,y),N];let g=p==="=="&&($(i.right)||$(i.left));return[...g?S(i.left,s,r,m):o(i.left,m),R(h,y),...g?S(i.right,s,r,l):o(i.right,l)]}if(i.t==="binary"&&i.op==="in")return[...o(i.left),R("\u2209","is not one of"),...S(i.right,s,r,P(i.left,s,r))];if(i.t==="unary"&&i.op==="!"){let p=i.operand;return gt(p)?d({...p,op:B[p.op]}):b(p,"present")||b(p,"exists")?[...o(p.args[0]),R("\u2260","is not"),N]:p.t==="ident"?f(p,s,r):[c("not"),v,...T(p,s,r),w]}if(b(i,"present")||b(i,"exists"))return[...f(i.args[0],s,r),R("=","is"),N];if(b(i,"some"))return[...f(i,s,r).slice(1),R("=","is"),N];if(b(i,"every")&&i.args.length===2){let p=a(i.args[0]);if(p instanceof C){let h=p.nodes.filter(y=>{try{return q(i.args[1],{...n,subject:y,budget:2e3})!==!0}catch{return!0}});return[...f(i,s,r),c(","),c("not"),r.valueWords(new C(h))]}}return i.t==="ident"?[c("not"),O(r.fieldName(s,i.name))]:[c("not"),v,...f(i,s,r),w]},x;try{x=d(t.require)}catch{x=[c("not"),v,...f(t.require,s,r),w]}return z({...s===null?{}:{kind:s},parts:x,...u?{record:_(e.schema.tryDefinition(u.kind),u)}:{}})}function xt(t){let e=new Map;for(let n of t??[])n.expr?.t==="ident"&&n.format&&(n.format==="money"||n.format==="percent"||n.format==="date")&&e.set(n.expr.name,n.format);return e}function At(t){return(e,n)=>{let r=t[e]?.fields?.[n],s=r?.format??(r?.type==="date"?"date":void 0);return s||r?.unit?{...s?{format:s}:{},...r?.unit?{unit:r.unit}:{}}:void 0}}function vt(t,e){return{schema:e,said:xt(t.says),...t.declared?{formatOf:At(t.declared)}:{},...t.money?{money:t.money}:{}}}function Yt(t,e){return t.shape?H(t.shape,vt(t.shape,e)):void 0}var Rt=new WeakMap;function jt(t,e){let n=new Map(t.allInvariants().map(r=>[r.name,r]));return e.map(r=>{let s=Wt(r),u=n.get(s.invariant)?.shape;if(!u||s.status&&s.status!=="violated")return s;let a=s.subjectId?t.graph.getNode(s.subjectId):void 0;if(u.over!=="graph"&&!a)return s;let o=u.kinds;o||(o=Rt.get(t.schema),o||Rt.set(t.schema,o=ct(t.schema)));try{let d=t.today?.()??u.today?.()??k(),x=Y(u,vt(u,t.schema),{graph:t.graph,subject:a??null,kinds:o,today:d});return{...s,line:x,...u.says?{}:{message:`${s.message} \u2014 ${x.text}`}}}catch{return s}})}function St(){it((t,e,n,r)=>jt({graph:t,schema:t.schema,allInvariants:()=>e,today:()=>r},n)),dt(Nt)}function Nt(t,e,n,r){let s=e.graph,u=st.from(t.schema,s.snapshot(),{validate:!1});for(let x of n?[...r].reverse().map(ot):r)try{u.applyPrimitives([x],{restoring:!0})}catch{}let a=x=>t.violations(void 0,x),o=a(n?u:s),d=a(n?s:u);return{...ut(t.allInvariants(),o,d),violationsAfter:d}}function Wt(t){if(!t.line)return t;let{line:e,...n}=t,r=` \u2014 ${e.text}`;return n.message.endsWith(r)?{...n,message:n.message.slice(0,-r.length)}:n}St();export{Y as brokenLineOf,St as judgeWithLines,Nt as judgedForASeat,Et as problemWords,Yt as ruleLine,H as ruleLineOf,pt as ruleLineWords,J as ruleSpacing,Ot as ruleSpoken,wt as ruleText,Wt as unlined,jt as withLines};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk.WVUJXDXZ.js";import{a as v,b as ae}from"./chunk.ULRW47RP.js";import"./chunk.PBSMLINK.js";import"./chunk.3TY5NFLY.js";import"./chunk.D75KC3LL.js";import"./chunk.FWTIUYXH.js";import"./chunk.MAF7C3VM.js";import"./chunk.GZHZLJBF.js";import{n as re}from"./chunk.XMC7YDWT.js";import"./chunk.6UGEYZAC.js";import"./chunk.OJGHDWI6.js";import"./chunk.B2GLDIAS.js";import"./chunk.6YCBYL2Y.js";import"./chunk.UGFJKSHU.js";import"./chunk.JOOQUWLT.js";import{$ as ne,F as Fe,L as _,N as Z,Q as ee,Y as te}from"./chunk.6QWV5MVH.js";import{ca as Q,dc as X,ga as Y,ha as k,ia as j}from"./chunk.MNP4JI33.js";import{b as z}from"./chunk.AJZBJBMO.js";var g=z(Fe(),1);async function ie(e,n){let a=await createImageBitmap(e);try{let i=Math.min(1,n/Math.max(a.width,a.height)),o=document.createElement("canvas");o.width=Math.max(1,Math.round(a.width*i)),o.height=Math.max(1,Math.round(a.height*i));let s=o.getContext("2d");if(s===null)throw new Error("This browser will not give us a canvas to resize with.");return s.drawImage(a,0,0,o.width,o.height),o}finally{a.close()}}var t=z(ee(),1),$e=2048,xe=.85;function H(e){return e<1e3?`${e} bytes`:e<1e6?`${Math.round(e/1e3)} KB`:`${(e/1e6).toFixed(e<1e7?1:0)} MB`}function U(e){if(e.type==="application/pdf")return"PDF";let n=/\.([a-z0-9]{2,5})$/i.exec(e.name??"")?.[1];return n?n.toUpperCase():(e.type.split("/")[1]??e.type).replace(/^x-|^vnd\./,"").split(/[.+-]/)[0].toUpperCase()}function ce(e){let n=[...new Set(e.map(a=>a==="image/*"?"pictures":a==="*/*"||a==="*"?"any file":`${U({type:a})} files`))];return n.length<=1?n[0]??"no files":`${n.slice(0,-1).join(", ")} and ${n[n.length-1]}`}function ge(e,n){if(e.length===0)return!0;let a=`${n.split("/")[0]}/*`;return e.some(i=>i==="*"||i==="*/*"||i===n||i===a)}var le=/^image\/hei[cf]$|\.hei[cf]$/i,oe=e=>le.test(e.type)||le.test(e.name);async function Se(e,n,a){let i=e.name||(a.camera?"photo.jpg":"file"),o=e.type||(oe({type:"",name:i})?"image/heic":"application/octet-stream"),s=oe({type:o,name:i}),d=o.startsWith("image/")||s;if(a.image&&!d)return{refused:`\u201C${i}\u201D isn\u2019t a picture.`};if(s||d&&/^image\/(jpeg|webp)$/.test(o)&&(a.camera||e.size>n.maxBytes||e.size>15e5))try{let l=await ie(e,$e),f=await new Promise(y=>l.toBlob(y,"image/jpeg",xe));if(f)return se({blob:f,name:s?i.replace(/\.hei[cf]$/i,"")+".jpg":i,type:"image/jpeg",width:l.width,height:l.height},n)}catch{if(s&&!ge(n.kinds,o))return{refused:`\u201C${i}\u201D is a HEIC photo, which this browser can\u2019t turn into a JPEG and this host doesn\u2019t take. Save it as a JPEG and try again.`}}let c={};if(d&&!s)try{let l=await createImageBitmap(e);c={width:l.width,height:l.height},l.close()}catch{}return se({blob:e,name:i,type:o,...c},n)}function se(e,n){return ge(n.kinds,e.type)?e.blob.size>n.maxBytes?{refused:`\u201C${e.name}\u201D is ${H(e.blob.size)}; this host takes files up to ${H(n.maxBytes)}.`}:e:{refused:`\u201C${e.name}\u201D is a ${U(e)} file; this host takes ${ce(n.kinds)}.`}}async function Ce(e,n,a){let i;try{i=await n.upload(e.blob,e.name)}catch(s){let d=s instanceof Error&&s.message.trim()?s.message.trim():"the host refused it";return{refused:`\u201C${e.name}\u201D wasn\u2019t kept: ${d}`}}return Y(i)?a&&!k(i)?{refused:`\u201C${e.name}\u201D isn\u2019t a picture.`}:{...i,...i.width===void 0&&e.width?{width:e.width}:{},...i.height===void 0&&e.height?{height:e.height}:{}}:{refused:`The host\u2019s answer for \u201C${e.name}\u201D isn\u2019t a file a record can keep.`}}var F="var(--graview-radius, 8px)",C={color:"var(--graview-ink-muted)",fontSize:"0.8125rem"};function pe(e){let n=_(),a=Z()?.past!=null,[i,o]=(0,g.useState)(!1);return[n?.kept?.(e.href)===!1||a&&i,()=>o(!0)]}function he({file:e,style:n}){return(0,t.jsx)("span",{role:"img","aria-label":`${v(e)}, removed later`,"data-graview-removed-later":e.href,style:{display:"grid",placeItems:"center",textAlign:"center",padding:4,boxSizing:"border-box",fontSize:"0.6875rem",lineHeight:1.2,color:"var(--graview-ink-muted)",border:"1px dashed var(--graview-edge-bright)",borderRadius:F,...n},children:"removed later"})}function O({file:e,size:n=56,style:a}){let[i,o]=pe(e);return i?(0,t.jsx)(he,{file:e,style:{width:n,height:n,flex:"none",...a}}):(0,t.jsx)("img",{onError:o,src:e.href,alt:v(e),width:n,height:n,loading:"lazy",decoding:"async","data-graview-thumb":e.href,style:{width:n,height:n,objectFit:"cover",borderRadius:F,display:"block",flex:"none",background:"var(--graview-edge)",...a}})}function Ee({file:e,onOpen:n}){let[a,i]=pe(e);return a?(0,t.jsx)(he,{file:e,style:{width:"100%",aspectRatio:"1"}}):(0,t.jsx)("button",{type:"button","aria-label":`Open ${v(e)} full size`,onClick:o=>n(o.currentTarget),style:{padding:0,border:0,background:"none",cursor:"zoom-in",display:"block",width:"100%",borderRadius:F},children:(0,t.jsx)("img",{src:e.href,alt:v(e),loading:"lazy",decoding:"async",onError:i,style:{width:"100%",aspectRatio:"1",objectFit:"cover",borderRadius:F,display:"block",background:"var(--graview-edge)"}})})}function N({files:e,label:n}){let a=e.filter(k),i=e.filter(l=>!k(l)),[o,s]=(0,g.useState)(null),d=(0,g.useRef)(null),m=(0,g.useRef)(null);(0,g.useEffect)(()=>{let l=d.current;o!==null&&l&&!l.open&&l.showModal?.()},[o]);let c=o===null?void 0:a[o];return(0,t.jsxs)("div",{style:{display:"grid",gap:10,minWidth:0},children:[a.length>0?(0,t.jsx)("ul",{"data-graview-gallery":"","aria-label":n,style:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(96px, 1fr))",gap:8},children:a.map((l,f)=>(0,t.jsx)("li",{style:{minWidth:0},children:(0,t.jsx)(Ee,{file:l,onOpen:y=>{m.current=y,s(f)}})},l.href))}):null,i.length>0?(0,t.jsx)("ul",{"data-graview-documents":"",style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:10},children:i.map(l=>(0,t.jsxs)("li",{"data-graview-document":l.type,style:{display:"grid",gap:6,minWidth:0},children:[l.type==="application/pdf"?(0,t.jsx)("object",{data:l.href,type:"application/pdf","aria-label":v(l),style:{width:"100%",height:420,border:"1px solid var(--graview-edge)",borderRadius:F},children:(0,t.jsxs)("p",{style:{margin:0,padding:12},children:["This browser shows no PDF here: ",(0,t.jsxs)("a",{href:l.href,download:l.name,children:["download ",l.name]}),"."]})}):null,(0,t.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",gap:"2px 10px",alignItems:"baseline",minWidth:0,overflowWrap:"anywhere"},children:[(0,t.jsx)("a",{href:l.href,download:l.name,...l.type==="application/pdf"?{target:"_blank",rel:"noopener"}:{},children:l.name}),(0,t.jsxs)("span",{style:C,children:[U(l)," \xB7 ",H(l.bytes)]})]}),l.caption?(0,t.jsx)("span",{style:C,children:l.caption}):null]},l.href))}):null,c?(0,t.jsx)("dialog",{ref:d,"data-graview-full":c.href,"aria-label":v(c),onClose:()=>{s(null),m.current?.focus()},onClick:l=>{l.target===l.currentTarget&&l.currentTarget.close()},style:{padding:0,border:0,borderRadius:F,maxWidth:"min(96vw, 1600px)",maxHeight:"94vh",background:"var(--graview-panel)",color:"var(--graview-ink)"},children:(0,t.jsxs)("figure",{style:{margin:0,display:"grid",gap:8,padding:10},children:[(0,t.jsx)("img",{src:c.href,alt:v(c),style:{maxWidth:"100%",maxHeight:"80vh",objectFit:"contain",display:"block",margin:"0 auto"}}),(0,t.jsxs)("figcaption",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:c.caption??c.name}),(0,t.jsx)("form",{method:"dialog",style:{margin:0},children:(0,t.jsx)("button",{type:"submit",autoFocus:!0,children:"Close"})})]})]})}):null]})}function me({value:e,onChange:n,several:a,image:i,label:o,thumbs:s=!0}){let d=_(),m=(0,g.useId)(),c=(0,g.useRef)(null),l=(0,g.useRef)(null),[f,y]=(0,g.useState)(null),[$,I]=(0,g.useState)(null),[A,E]=(0,g.useState)([]),[D,L]=(0,g.useState)(!1),x=d?i?d.kinds.filter(r=>r.startsWith("image/")||r==="*"||r==="*/*"):d.kinds:[],G=d?d.kinds.length===0||x.some(r=>r.startsWith("image/")||r.startsWith("*")):!1,P=!!d&&(!i||G),q=i?a?"pictures":"a picture":a?"files":"a file",K=i?x.length>0?x.join(","):"image/*":d?.kinds.join(",")||void 0,be=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,V=(0,g.useRef)(e);V.current=e;let J=(0,g.useRef)(null),R=(0,g.useRef)(null);(0,g.useEffect)(()=>{let r=R.current;if(!r||r.from===e)return;R.current=null;let u=J.current?.children,h=u?.[Math.min(r.at,u.length-1)];((r.what==="move"?h?.querySelector("[data-graview-file-move]"):null)??h?.querySelector("[data-graview-file-remove]")??c.current?.parentElement?.querySelector("[data-graview-file-choose]"))?.focus()});let T=async(r,u)=>{if(!d||r.length===0)return;let h=a?r:r.slice(0,1),p=[],w=[];h.length<r.length&&w.push(`${o} holds one ${i?"picture":"file"}, so ${r.slice(1).map(b=>`\u201C${b.name||"the photo"}\u201D`).join(", ")} ${r.length>2?"were":"was"} left out.`),E([]),I(null);for(let b of h){y(`Sending ${b.name||"the photo"}\u2026`);let B=await Se(b,d,{image:i,camera:u==="camera"});if("refused"in B){w.push(B.refused);continue}let S=await Ce(B,d,i);"refused"in S?w.push(S.refused):[...a?V.current:[],...p].some(ke=>ke.href===S.href)?w.push(`\u201C${S.name}\u201D is already here.`):p.push(S)}if(y(null),E(w),p.length!==0)try{n(a?[...V.current,...p]:p.slice(-1)),I(`Added ${p.map(b=>b.name).join(", ")}.`)}catch(b){E([...w,b instanceof Error?b.message:String(b)])}},W=(r,u,h)=>{try{R.current=h?{...h,from:e}:null,n(r),I(u)}catch(p){R.current=null,E([p instanceof Error?p.message:String(p)])}},M=r=>r?Array.from(r):[],we=r=>{let u=M(r.clipboardData?.files);!P||u.length===0||(r.preventDefault(),T(u,"pasted"))},ve=r=>{L(!1),P&&(r.preventDefault(),T(M(r.dataTransfer?.files),"dropped"))};return(0,t.jsxs)("div",{role:"group","aria-labelledby":`${m}-label`,"data-graview-file-editor":"","data-graview-dropping":D?"":void 0,onPaste:we,onDragOver:r=>{P&&(r.preventDefault(),L(!0))},onDragLeave:()=>L(!1),onDrop:ve,style:{display:"grid",gap:8,minWidth:0,padding:D?6:0,outline:D?"2px dashed var(--graview-accent)":"none",borderRadius:F},children:[(0,t.jsx)("span",{id:`${m}-label`,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap"},children:o}),e.length>0&&(a||e.length>1)?(0,t.jsx)("ul",{ref:J,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:6},children:e.map((r,u)=>(0,t.jsxs)("li",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",minWidth:0},children:[s&&k(r)?(0,t.jsx)(O,{file:r,size:40}):null,(0,t.jsx)("span",{style:{flex:"1 1 8rem",minWidth:0,overflowWrap:"anywhere"},children:r.name}),(0,t.jsx)(ue,{file:r,onCaption:h=>W(e.map((p,w)=>w===u?de(p,h):p),h?`${r.name} now says \u201C${h}\u201D.`:`${r.name} says its name again.`)}),a&&u>0?(0,t.jsx)("button",{type:"button","data-graview-file-move":"","aria-label":`Move ${r.name} earlier`,onClick:()=>W(e.map((h,p)=>p===u-1?r:p===u?e[u-1]:h),`Moved ${r.name} earlier.`,{at:u-1,what:"move"}),children:"\u2191"}):null,a?(0,t.jsx)("button",{type:"button","data-graview-file-remove":"","aria-label":`Remove ${r.name}`,onClick:()=>W(e.filter((h,p)=>p!==u),`Removed ${r.name}.`,{at:u,what:"remove"}),children:"Remove"}):null]},`${u}:${r.href}`))}):e.length===1?(0,t.jsx)(ue,{file:e[0],onCaption:r=>W([de(e[0],r)],r?`${e[0].name} now says \u201C${r}\u201D.`:`${e[0].name} says its name again.`)}):null,P?(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center"},children:[(0,t.jsx)("input",{ref:c,type:"file",hidden:!0,multiple:a,...K?{accept:K}:{},"data-graview-file-input":"","aria-label":`Choose ${q}`,onChange:r=>{let u=M(r.currentTarget.files);r.currentTarget.value="",T(u,"picked")}}),(0,t.jsx)("button",{type:"button",disabled:f!==null,onClick:()=>c.current?.click(),"data-graview-file-choose":"",children:e.length>0&&!a?`Replace ${i?"the picture":"the file"}`:`Choose ${q}`}),G?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("input",{ref:l,type:"file",hidden:!0,accept:"image/*",capture:"environment","data-graview-photo-input":"","aria-label":"Take a photo",onChange:r=>{let u=M(r.currentTarget.files);r.currentTarget.value="",T(u,"camera")}}),be?(0,t.jsx)("button",{type:"button",disabled:f!==null,onClick:()=>l.current?.click(),children:"Take a photo"}):null]}):null,(0,t.jsxs)("span",{style:C,"data-graview-file-takes":"",children:["or drop or paste ",a?"them":"it"," here \xB7 ",d.kinds.length>0?ce(x.length>0?x:d.kinds):"any file",", up to ",H(d.maxBytes)]})]}):(0,t.jsx)("p",{style:{...C,margin:0},"data-graview-file-none":"",children:d?"This host doesn\u2019t take pictures, so none can be added here.":"This host doesn\u2019t take files, so none can be added here."}),(0,t.jsx)("p",{"aria-live":"polite",style:{...C,margin:0,minHeight:f||$?void 0:0},"data-graview-file-status":"",children:f??$??""}),A.length>0?(0,t.jsx)("div",{role:"alert","data-graview-file-refused":"",style:{color:"var(--graview-warn)",fontSize:"0.875rem",display:"grid",gap:2},children:A.map((r,u)=>(0,t.jsx)("p",{style:{margin:0},children:r},u))}):null]})}var de=(e,n)=>{let{caption:a,...i}=e;return n?{...i,caption:n}:i};function ue({file:e,onCaption:n}){let[a,i]=(0,g.useState)(e.caption??"");(0,g.useEffect)(()=>i(e.caption??""),[e.caption]);let o=()=>{let s=a.trim().slice(0,500);s!==(e.caption??"")&&n(s)};return(0,t.jsx)("input",{type:"text",value:a,placeholder:k(e)?"What it shows":"What it is","aria-label":`What ${e.name} ${k(e)?"shows":"is"}`,"data-graview-file-caption":e.href,onChange:s=>i(s.target.value),onBlur:o,onKeyDown:s=>{s.key==="Enter"&&(s.preventDefault(),o())},style:{flex:"1 1 10rem",minWidth:0,font:"inherit",fontSize:"0.875rem",minHeight:24}})}function ye({field:e,label:n,labelStyle:a,valueStyle:i,style:o,children:s}){return(0,t.jsxs)("div",{"data-graview-files":e,style:{display:"grid",gap:6,minWidth:0,gridColumn:"1 / -1",...o},children:[(0,t.jsx)("dt",{style:a,children:n}),(0,t.jsx)("dd",{style:{margin:0,minWidth:0,display:"grid",gap:10,...i},children:s})]})}function fe(e){let{nodeId:n,field:a,label:i,files:o}=e,{fields:s,commit:d}=re(n),m=s.find(y=>y.field===a&&y.takesValue),c=m?.shape,l=c?.type==="several"?c.of:c,f=c?.type==="several";return o.length===0&&l?.type!=="file"?null:(0,t.jsxs)(ye,{...e,children:[(0,t.jsx)(N,{files:o,label:i}),m&&l?.type==="file"?(0,t.jsx)(me,{value:o,thumbs:!1,several:f,image:l.image===!0,label:i,onChange:y=>{let $=f?y:y[y.length-1];$!==void 0&&d(m,$)}}):null]})}function Le(e){switch(e.as){case"field":return e.read?e.files.length>0?(0,t.jsx)(ye,{...e,children:(0,t.jsx)(N,{files:e.files,label:e.label})}):null:(0,t.jsx)(fe,{...e});case"unfilled":return(0,t.jsx)(Pe,{...e});case"thumb":return(0,t.jsx)(O,{...e});case"block":return e.files.length>0?(0,t.jsx)("span",{className:"graview-spec-image","data-graview-field":e.field,"data-graview-image":e.view,style:{display:"block",minWidth:0,...e.view==="gallery"?{position:"relative",zIndex:X.raised}:{}},children:e.view==="thumb"?(0,t.jsx)(O,{file:e.files[0],size:72}):(0,t.jsx)(N,{files:e.files,label:e.label})}):null;case"control":{let n=(0,t.jsx)(me,{value:j(e.value),several:e.several,image:e.image,label:e.label,onChange:a=>e.onChange(e.several?a:a[a.length-1])});return e.title===void 0?n:(0,t.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.several?"files":"file",children:[(0,t.jsx)("legend",{"data-graview-part":"label",children:e.title}),n]})}}}function Pe({nodeId:e,skip:n,labels:a,labelStyle:i,style:o}){let{store:s}=te(),d=ne(e),m=d?s.schema.tryDefinition(d.kind):void 0,c=ae(m).filter(l=>!n.includes(l)&&!(m?.display?.hide??[]).includes(l)&&j(d?.[l]).length===0);return c.length===0?null:(0,t.jsx)("dl",{style:{margin:0,display:"grid",gap:14,minWidth:0},children:c.map(l=>(0,t.jsx)(fe,{nodeId:e,field:l,label:a?.[l]??Q(m,l),files:[],...i?{labelStyle:i}:{},...o?{style:o}:{}},l))})}export{me as FilesEditor,$e as SEND_EDGE,Le as drawFiles,ce as kindsWords,Se as prepare,Ce as send,H as sizeWords,ge as takes,U as typeWords};
|
|
1
|
+
import"./chunk.WVUJXDXZ.js";import{a as v,b as ae}from"./chunk.52QAIGCD.js";import"./chunk.PPUAPAWR.js";import"./chunk.IHFNLKXV.js";import"./chunk.577PGFUT.js";import"./chunk.FBY5IUGU.js";import"./chunk.4K5QCJFH.js";import"./chunk.GZHZLJBF.js";import{n as re}from"./chunk.WLBXBNNH.js";import"./chunk.7MTX33WD.js";import"./chunk.OJGHDWI6.js";import"./chunk.Z7ZCR4LN.js";import"./chunk.RIW7SQH4.js";import"./chunk.FSAHO3LV.js";import"./chunk.PNVR3CXR.js";import{$ as ne,F as Fe,L as _,N as Z,Q as ee,Y as te}from"./chunk.ZTD2CNC3.js";import{ca as Q,ec as X,ga as Y,ha as k,ia as j}from"./chunk.X7W27IRI.js";import{b as z}from"./chunk.AJZBJBMO.js";var g=z(Fe(),1);async function ie(e,n){let a=await createImageBitmap(e);try{let i=Math.min(1,n/Math.max(a.width,a.height)),o=document.createElement("canvas");o.width=Math.max(1,Math.round(a.width*i)),o.height=Math.max(1,Math.round(a.height*i));let s=o.getContext("2d");if(s===null)throw new Error("This browser will not give us a canvas to resize with.");return s.drawImage(a,0,0,o.width,o.height),o}finally{a.close()}}var t=z(ee(),1),$e=2048,xe=.85;function H(e){return e<1e3?`${e} bytes`:e<1e6?`${Math.round(e/1e3)} KB`:`${(e/1e6).toFixed(e<1e7?1:0)} MB`}function U(e){if(e.type==="application/pdf")return"PDF";let n=/\.([a-z0-9]{2,5})$/i.exec(e.name??"")?.[1];return n?n.toUpperCase():(e.type.split("/")[1]??e.type).replace(/^x-|^vnd\./,"").split(/[.+-]/)[0].toUpperCase()}function ce(e){let n=[...new Set(e.map(a=>a==="image/*"?"pictures":a==="*/*"||a==="*"?"any file":`${U({type:a})} files`))];return n.length<=1?n[0]??"no files":`${n.slice(0,-1).join(", ")} and ${n[n.length-1]}`}function ge(e,n){if(e.length===0)return!0;let a=`${n.split("/")[0]}/*`;return e.some(i=>i==="*"||i==="*/*"||i===n||i===a)}var le=/^image\/hei[cf]$|\.hei[cf]$/i,oe=e=>le.test(e.type)||le.test(e.name);async function Se(e,n,a){let i=e.name||(a.camera?"photo.jpg":"file"),o=e.type||(oe({type:"",name:i})?"image/heic":"application/octet-stream"),s=oe({type:o,name:i}),d=o.startsWith("image/")||s;if(a.image&&!d)return{refused:`\u201C${i}\u201D isn\u2019t a picture.`};if(s||d&&/^image\/(jpeg|webp)$/.test(o)&&(a.camera||e.size>n.maxBytes||e.size>15e5))try{let l=await ie(e,$e),f=await new Promise(y=>l.toBlob(y,"image/jpeg",xe));if(f)return se({blob:f,name:s?i.replace(/\.hei[cf]$/i,"")+".jpg":i,type:"image/jpeg",width:l.width,height:l.height},n)}catch{if(s&&!ge(n.kinds,o))return{refused:`\u201C${i}\u201D is a HEIC photo, which this browser can\u2019t turn into a JPEG and this host doesn\u2019t take. Save it as a JPEG and try again.`}}let c={};if(d&&!s)try{let l=await createImageBitmap(e);c={width:l.width,height:l.height},l.close()}catch{}return se({blob:e,name:i,type:o,...c},n)}function se(e,n){return ge(n.kinds,e.type)?e.blob.size>n.maxBytes?{refused:`\u201C${e.name}\u201D is ${H(e.blob.size)}; this host takes files up to ${H(n.maxBytes)}.`}:e:{refused:`\u201C${e.name}\u201D is a ${U(e)} file; this host takes ${ce(n.kinds)}.`}}async function Ce(e,n,a){let i;try{i=await n.upload(e.blob,e.name)}catch(s){let d=s instanceof Error&&s.message.trim()?s.message.trim():"the host refused it";return{refused:`\u201C${e.name}\u201D wasn\u2019t kept: ${d}`}}return Y(i)?a&&!k(i)?{refused:`\u201C${e.name}\u201D isn\u2019t a picture.`}:{...i,...i.width===void 0&&e.width?{width:e.width}:{},...i.height===void 0&&e.height?{height:e.height}:{}}:{refused:`The host\u2019s answer for \u201C${e.name}\u201D isn\u2019t a file a record can keep.`}}var F="var(--graview-radius, 8px)",C={color:"var(--graview-ink-muted)",fontSize:"0.8125rem"};function pe(e){let n=_(),a=Z()?.past!=null,[i,o]=(0,g.useState)(!1);return[n?.kept?.(e.href)===!1||a&&i,()=>o(!0)]}function he({file:e,style:n}){return(0,t.jsx)("span",{role:"img","aria-label":`${v(e)}, removed later`,"data-graview-removed-later":e.href,style:{display:"grid",placeItems:"center",textAlign:"center",padding:4,boxSizing:"border-box",fontSize:"0.6875rem",lineHeight:1.2,color:"var(--graview-ink-muted)",border:"1px dashed var(--graview-edge-bright)",borderRadius:F,...n},children:"removed later"})}function O({file:e,size:n=56,style:a}){let[i,o]=pe(e);return i?(0,t.jsx)(he,{file:e,style:{width:n,height:n,flex:"none",...a}}):(0,t.jsx)("img",{onError:o,src:e.href,alt:v(e),width:n,height:n,loading:"lazy",decoding:"async","data-graview-thumb":e.href,style:{width:n,height:n,objectFit:"cover",borderRadius:F,display:"block",flex:"none",background:"var(--graview-edge)",...a}})}function Ee({file:e,onOpen:n}){let[a,i]=pe(e);return a?(0,t.jsx)(he,{file:e,style:{width:"100%",aspectRatio:"1"}}):(0,t.jsx)("button",{type:"button","aria-label":`Open ${v(e)} full size`,onClick:o=>n(o.currentTarget),style:{padding:0,border:0,background:"none",cursor:"zoom-in",display:"block",width:"100%",borderRadius:F},children:(0,t.jsx)("img",{src:e.href,alt:v(e),loading:"lazy",decoding:"async",onError:i,style:{width:"100%",aspectRatio:"1",objectFit:"cover",borderRadius:F,display:"block",background:"var(--graview-edge)"}})})}function N({files:e,label:n}){let a=e.filter(k),i=e.filter(l=>!k(l)),[o,s]=(0,g.useState)(null),d=(0,g.useRef)(null),m=(0,g.useRef)(null);(0,g.useEffect)(()=>{let l=d.current;o!==null&&l&&!l.open&&l.showModal?.()},[o]);let c=o===null?void 0:a[o];return(0,t.jsxs)("div",{style:{display:"grid",gap:10,minWidth:0},children:[a.length>0?(0,t.jsx)("ul",{"data-graview-gallery":"","aria-label":n,style:{listStyle:"none",margin:0,padding:0,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(96px, 1fr))",gap:8},children:a.map((l,f)=>(0,t.jsx)("li",{style:{minWidth:0},children:(0,t.jsx)(Ee,{file:l,onOpen:y=>{m.current=y,s(f)}})},l.href))}):null,i.length>0?(0,t.jsx)("ul",{"data-graview-documents":"",style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:10},children:i.map(l=>(0,t.jsxs)("li",{"data-graview-document":l.type,style:{display:"grid",gap:6,minWidth:0},children:[l.type==="application/pdf"?(0,t.jsx)("object",{data:l.href,type:"application/pdf","aria-label":v(l),style:{width:"100%",height:420,border:"1px solid var(--graview-edge)",borderRadius:F},children:(0,t.jsxs)("p",{style:{margin:0,padding:12},children:["This browser shows no PDF here: ",(0,t.jsxs)("a",{href:l.href,download:l.name,children:["download ",l.name]}),"."]})}):null,(0,t.jsxs)("span",{style:{display:"flex",flexWrap:"wrap",gap:"2px 10px",alignItems:"baseline",minWidth:0,overflowWrap:"anywhere"},children:[(0,t.jsx)("a",{href:l.href,download:l.name,...l.type==="application/pdf"?{target:"_blank",rel:"noopener"}:{},children:l.name}),(0,t.jsxs)("span",{style:C,children:[U(l)," \xB7 ",H(l.bytes)]})]}),l.caption?(0,t.jsx)("span",{style:C,children:l.caption}):null]},l.href))}):null,c?(0,t.jsx)("dialog",{ref:d,"data-graview-full":c.href,"aria-label":v(c),onClose:()=>{s(null),m.current?.focus()},onClick:l=>{l.target===l.currentTarget&&l.currentTarget.close()},style:{padding:0,border:0,borderRadius:F,maxWidth:"min(96vw, 1600px)",maxHeight:"94vh",background:"var(--graview-panel)",color:"var(--graview-ink)"},children:(0,t.jsxs)("figure",{style:{margin:0,display:"grid",gap:8,padding:10},children:[(0,t.jsx)("img",{src:c.href,alt:v(c),style:{maxWidth:"100%",maxHeight:"80vh",objectFit:"contain",display:"block",margin:"0 auto"}}),(0,t.jsxs)("figcaption",{style:{display:"flex",gap:12,alignItems:"center",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:c.caption??c.name}),(0,t.jsx)("form",{method:"dialog",style:{margin:0},children:(0,t.jsx)("button",{type:"submit",autoFocus:!0,children:"Close"})})]})]})}):null]})}function me({value:e,onChange:n,several:a,image:i,label:o,thumbs:s=!0}){let d=_(),m=(0,g.useId)(),c=(0,g.useRef)(null),l=(0,g.useRef)(null),[f,y]=(0,g.useState)(null),[$,I]=(0,g.useState)(null),[A,E]=(0,g.useState)([]),[D,L]=(0,g.useState)(!1),x=d?i?d.kinds.filter(r=>r.startsWith("image/")||r==="*"||r==="*/*"):d.kinds:[],G=d?d.kinds.length===0||x.some(r=>r.startsWith("image/")||r.startsWith("*")):!1,P=!!d&&(!i||G),q=i?a?"pictures":"a picture":a?"files":"a file",K=i?x.length>0?x.join(","):"image/*":d?.kinds.join(",")||void 0,be=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,V=(0,g.useRef)(e);V.current=e;let J=(0,g.useRef)(null),R=(0,g.useRef)(null);(0,g.useEffect)(()=>{let r=R.current;if(!r||r.from===e)return;R.current=null;let u=J.current?.children,h=u?.[Math.min(r.at,u.length-1)];((r.what==="move"?h?.querySelector("[data-graview-file-move]"):null)??h?.querySelector("[data-graview-file-remove]")??c.current?.parentElement?.querySelector("[data-graview-file-choose]"))?.focus()});let T=async(r,u)=>{if(!d||r.length===0)return;let h=a?r:r.slice(0,1),p=[],w=[];h.length<r.length&&w.push(`${o} holds one ${i?"picture":"file"}, so ${r.slice(1).map(b=>`\u201C${b.name||"the photo"}\u201D`).join(", ")} ${r.length>2?"were":"was"} left out.`),E([]),I(null);for(let b of h){y(`Sending ${b.name||"the photo"}\u2026`);let B=await Se(b,d,{image:i,camera:u==="camera"});if("refused"in B){w.push(B.refused);continue}let S=await Ce(B,d,i);"refused"in S?w.push(S.refused):[...a?V.current:[],...p].some(ke=>ke.href===S.href)?w.push(`\u201C${S.name}\u201D is already here.`):p.push(S)}if(y(null),E(w),p.length!==0)try{n(a?[...V.current,...p]:p.slice(-1)),I(`Added ${p.map(b=>b.name).join(", ")}.`)}catch(b){E([...w,b instanceof Error?b.message:String(b)])}},W=(r,u,h)=>{try{R.current=h?{...h,from:e}:null,n(r),I(u)}catch(p){R.current=null,E([p instanceof Error?p.message:String(p)])}},M=r=>r?Array.from(r):[],we=r=>{let u=M(r.clipboardData?.files);!P||u.length===0||(r.preventDefault(),T(u,"pasted"))},ve=r=>{L(!1),P&&(r.preventDefault(),T(M(r.dataTransfer?.files),"dropped"))};return(0,t.jsxs)("div",{role:"group","aria-labelledby":`${m}-label`,"data-graview-file-editor":"","data-graview-dropping":D?"":void 0,onPaste:we,onDragOver:r=>{P&&(r.preventDefault(),L(!0))},onDragLeave:()=>L(!1),onDrop:ve,style:{display:"grid",gap:8,minWidth:0,padding:D?6:0,outline:D?"2px dashed var(--graview-accent)":"none",borderRadius:F},children:[(0,t.jsx)("span",{id:`${m}-label`,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",whiteSpace:"nowrap"},children:o}),e.length>0&&(a||e.length>1)?(0,t.jsx)("ul",{ref:J,style:{listStyle:"none",margin:0,padding:0,display:"grid",gap:6},children:e.map((r,u)=>(0,t.jsxs)("li",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",minWidth:0},children:[s&&k(r)?(0,t.jsx)(O,{file:r,size:40}):null,(0,t.jsx)("span",{style:{flex:"1 1 8rem",minWidth:0,overflowWrap:"anywhere"},children:r.name}),(0,t.jsx)(ue,{file:r,onCaption:h=>W(e.map((p,w)=>w===u?de(p,h):p),h?`${r.name} now says \u201C${h}\u201D.`:`${r.name} says its name again.`)}),a&&u>0?(0,t.jsx)("button",{type:"button","data-graview-file-move":"","aria-label":`Move ${r.name} earlier`,onClick:()=>W(e.map((h,p)=>p===u-1?r:p===u?e[u-1]:h),`Moved ${r.name} earlier.`,{at:u-1,what:"move"}),children:"\u2191"}):null,a?(0,t.jsx)("button",{type:"button","data-graview-file-remove":"","aria-label":`Remove ${r.name}`,onClick:()=>W(e.filter((h,p)=>p!==u),`Removed ${r.name}.`,{at:u,what:"remove"}),children:"Remove"}):null]},`${u}:${r.href}`))}):e.length===1?(0,t.jsx)(ue,{file:e[0],onCaption:r=>W([de(e[0],r)],r?`${e[0].name} now says \u201C${r}\u201D.`:`${e[0].name} says its name again.`)}):null,P?(0,t.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center"},children:[(0,t.jsx)("input",{ref:c,type:"file",hidden:!0,multiple:a,...K?{accept:K}:{},"data-graview-file-input":"","aria-label":`Choose ${q}`,onChange:r=>{let u=M(r.currentTarget.files);r.currentTarget.value="",T(u,"picked")}}),(0,t.jsx)("button",{type:"button",disabled:f!==null,onClick:()=>c.current?.click(),"data-graview-file-choose":"",children:e.length>0&&!a?`Replace ${i?"the picture":"the file"}`:`Choose ${q}`}),G?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("input",{ref:l,type:"file",hidden:!0,accept:"image/*",capture:"environment","data-graview-photo-input":"","aria-label":"Take a photo",onChange:r=>{let u=M(r.currentTarget.files);r.currentTarget.value="",T(u,"camera")}}),be?(0,t.jsx)("button",{type:"button",disabled:f!==null,onClick:()=>l.current?.click(),children:"Take a photo"}):null]}):null,(0,t.jsxs)("span",{style:C,"data-graview-file-takes":"",children:["or drop or paste ",a?"them":"it"," here \xB7 ",d.kinds.length>0?ce(x.length>0?x:d.kinds):"any file",", up to ",H(d.maxBytes)]})]}):(0,t.jsx)("p",{style:{...C,margin:0},"data-graview-file-none":"",children:d?"This host doesn\u2019t take pictures, so none can be added here.":"This host doesn\u2019t take files, so none can be added here."}),(0,t.jsx)("p",{"aria-live":"polite",style:{...C,margin:0,minHeight:f||$?void 0:0},"data-graview-file-status":"",children:f??$??""}),A.length>0?(0,t.jsx)("div",{role:"alert","data-graview-file-refused":"",style:{color:"var(--graview-warn)",fontSize:"0.875rem",display:"grid",gap:2},children:A.map((r,u)=>(0,t.jsx)("p",{style:{margin:0},children:r},u))}):null]})}var de=(e,n)=>{let{caption:a,...i}=e;return n?{...i,caption:n}:i};function ue({file:e,onCaption:n}){let[a,i]=(0,g.useState)(e.caption??"");(0,g.useEffect)(()=>i(e.caption??""),[e.caption]);let o=()=>{let s=a.trim().slice(0,500);s!==(e.caption??"")&&n(s)};return(0,t.jsx)("input",{type:"text",value:a,placeholder:k(e)?"What it shows":"What it is","aria-label":`What ${e.name} ${k(e)?"shows":"is"}`,"data-graview-file-caption":e.href,onChange:s=>i(s.target.value),onBlur:o,onKeyDown:s=>{s.key==="Enter"&&(s.preventDefault(),o())},style:{flex:"1 1 10rem",minWidth:0,font:"inherit",fontSize:"0.875rem",minHeight:24}})}function ye({field:e,label:n,labelStyle:a,valueStyle:i,style:o,children:s}){return(0,t.jsxs)("div",{"data-graview-files":e,style:{display:"grid",gap:6,minWidth:0,gridColumn:"1 / -1",...o},children:[(0,t.jsx)("dt",{style:a,children:n}),(0,t.jsx)("dd",{style:{margin:0,minWidth:0,display:"grid",gap:10,...i},children:s})]})}function fe(e){let{nodeId:n,field:a,label:i,files:o}=e,{fields:s,commit:d}=re(n),m=s.find(y=>y.field===a&&y.takesValue),c=m?.shape,l=c?.type==="several"?c.of:c,f=c?.type==="several";return o.length===0&&l?.type!=="file"?null:(0,t.jsxs)(ye,{...e,children:[(0,t.jsx)(N,{files:o,label:i}),m&&l?.type==="file"?(0,t.jsx)(me,{value:o,thumbs:!1,several:f,image:l.image===!0,label:i,onChange:y=>{let $=f?y:y[y.length-1];$!==void 0&&d(m,$)}}):null]})}function Le(e){switch(e.as){case"field":return e.read?e.files.length>0?(0,t.jsx)(ye,{...e,children:(0,t.jsx)(N,{files:e.files,label:e.label})}):null:(0,t.jsx)(fe,{...e});case"unfilled":return(0,t.jsx)(Pe,{...e});case"thumb":return(0,t.jsx)(O,{...e});case"block":return e.files.length>0?(0,t.jsx)("span",{className:"graview-spec-image","data-graview-field":e.field,"data-graview-image":e.view,style:{display:"block",minWidth:0,...e.view==="gallery"?{position:"relative",zIndex:X.raised}:{}},children:e.view==="thumb"?(0,t.jsx)(O,{file:e.files[0],size:72}):(0,t.jsx)(N,{files:e.files,label:e.label})}):null;case"control":{let n=(0,t.jsx)(me,{value:j(e.value),several:e.several,image:e.image,label:e.label,onChange:a=>e.onChange(e.several?a:a[a.length-1])});return e.title===void 0?n:(0,t.jsxs)("fieldset",{"data-graview-part":"group","data-graview-field":e.several?"files":"file",children:[(0,t.jsx)("legend",{"data-graview-part":"label",children:e.title}),n]})}}}function Pe({nodeId:e,skip:n,labels:a,labelStyle:i,style:o}){let{store:s}=te(),d=ne(e),m=d?s.schema.tryDefinition(d.kind):void 0,c=ae(m).filter(l=>!n.includes(l)&&!(m?.display?.hide??[]).includes(l)&&j(d?.[l]).length===0);return c.length===0?null:(0,t.jsx)("dl",{style:{margin:0,display:"grid",gap:14,minWidth:0},children:c.map(l=>(0,t.jsx)(fe,{nodeId:e,field:l,label:a?.[l]??Q(m,l),files:[],...i?{labelStyle:i}:{},...o?{style:o}:{}},l))})}export{me as FilesEditor,$e as SEND_EDGE,Le as drawFiles,ce as kindsWords,Se as prepare,Ce as send,H as sizeWords,ge as takes,U as typeWords};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Bc as d,Dc as u,Ec as k,Lc as f,Pc as w,Qc as $,Rc as v,Tc as b,Uc as S,aa as g,zc as y}from"./chunk.X7W27IRI.js";function A(s){let i=[];for(let n of f(s).drawn)for(let t of n.kinds)i.push({kind:t,title:n.title,as:n.as,...n.across?{across:n.across}:{},...n.kinds.length>1?{over:n.kinds}:{},...n.hidden?{hidden:!0}:{}});for(let n of s.views?.places?.()??[])i.some(t=>t.kind===n.kind&&t.as===n.as)||i.push(n);return i}function F(s){return L(s.schema,A(s),{...s.pages?{pages:s.pages}:{},lenses:f(s).drawn,home:(s.home?.length??0)>0})}function L(s,i,n={}){let{pages:t}=n,l=s.kinds,h=i.filter(e=>l.includes(e.kind)),a=S(t?.first,s,h),P=new Set(t?.hide??[]),c=b(l,t?.order),p=[{slug:"home",title:"Home",kind:null,cardinality:"many",address:"/",stop:"#",...a?.to==="home"||a===void 0&&n.home?{first:!0}:{}},{slug:w,title:v(t),kind:null,cardinality:"many",address:$,stop:"#"}],x=y([...h].sort((e,o)=>c.indexOf(e.kind)-c.indexOf(o.kind)));for(let e of x){let o=n.lenses?.find(r=>r.as===e.as&&r.kinds.includes(e.kind)),m=k(e,h);p.push({slug:e.as,title:e.title,kind:e.kind,...e.over?{over:e.over.filter(r=>l.includes(r))}:{},cardinality:"many",address:u(e.as,m?d(s,e.kind).slice(1):void 0),stop:m?`#focus=aggregate:${e.kind}&in.view=${encodeURIComponent(e.as)}`:`#view=${encodeURIComponent(e.as)}`,...o?{lens:o.lens}:{},...e.hidden?{hidden:!0}:{},...a?.to==="place"&&a.place.as===e.as&&(a.place.kind===e.kind||e.over?.includes(a.place.kind))?{first:!0}:{}})}for(let e of c)p.push({slug:d(s,e).slice(1),title:g(s,e),kind:e,cardinality:"many",address:d(s,e),stop:`#focus=aggregate:${e}`,...P.has(e)?{hidden:!0}:{},...a?.to==="kind"&&a.kind===e?{first:!0}:{}});return p}export{F as a,L as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as on,c as rn}from"./chunk.UT6642FC.js";import{e as N}from"./chunk.Z7ZCR4LN.js";import{c as B}from"./chunk.FSAHO3LV.js";import{$ as en,Gb as V,Jb as Q,Ma as H,X as F,Y as K,Z as q,_ as nn,ca as tn,da as J,ea as T,vb as sn,wb as E}from"./chunk.X7W27IRI.js";function an(){return{name:"insight",derive({store:n,nodes:r,kindSelection:t}){let l=[],v=f=>F(n.schema.tryDefinition(f.kind),f);for(let f of r){if([...n.schema.edgeKinds].reduce((c,S)=>c+n.graph.out(f.id,S).length+n.graph.in(f.id,S).length,0)===0){l.push({id:`insight:island:${f.id}`,text:`${v(f)} is connected to nothing yet`,nodeIds:[f.id]});continue}for(let c of n.schema.edgeKinds){let S=n.graph.in(f.id,c).length;if(S<3)continue;let s=[...n.graph.allEdges()].filter(a=>a.kind===c),e=s.length;e>=4&&S/e>.6&&l.push({id:`insight:load:${f.id}:${c}`,text:`${v(f)} ${mn(n,s,c,S)}`,nodeIds:[f.id]})}}for(let f of t){if(n.graph.nodesOfKind(f).length>0)continue;let A=n.schema.definitions.filter(c=>c.kind!==f).filter(c=>Object.values(c.edges).some(S=>S.to!=="*"&&S.to.includes(f))).map(c=>c.plural??`${c.kind}s`);A.length>0&&l.push({id:`insight:gap:${f}`,text:`Nothing here yet, though ${A.join(" and ")} expect to connect to these`,nodeIds:[]})}return{observations:l}}}}function mn(n,r,t,l){let v=new Set(r.map(s=>n.graph.getNode(s.from)?.kind).filter(s=>s!==void 0)),f=v.size===1?[...v][0]:void 0,A=r.length,c=B(n.schema,f??[...v][0]??"",t,"in"),S=s=>f?nn(n.schema,f,s):String(s);return l===A?`${c}: all ${S(l)}`:`${c}: ${l} of the ${S(A)}`}function dn(n){let r=new Map;if(n.length===0)return r;let t=n.slice(-512),l=new Set;for(let f of t)f.undoes&&l.add(f.undoes);let v=n[n.length-1].seq;for(let f of t){if(!f.mutation||l.has(f.id))continue;let A=Math.pow(.5,(v-f.seq)/64);r.set(f.mutation.name,(r.get(f.mutation.name)??0)+A)}return r}function cn(n){return 8*(n/(n+1))}var pn=100;function un(){return{name:"invariant",derive({store:n,selection:r,nodes:t,violations:l}){let v=s=>F(n.schema.tryDefinition(s.kind),s),f=new Set(r),A=l.filter(s=>s.nodeIds.some(e=>f.has(e))||s.subjectId!==void 0&&f.has(s.subjectId)),c=[],S=[];A.forEach((s,e)=>{S.push({id:`violation:${s.invariant}:${e}`,text:s.message,nodeIds:s.nodeIds}),s.repairs.forEach((a,h)=>{c.push({id:`invariant:${s.invariant}:${e}:${h}`,label:a.label,provider:"invariant",mutation:a.mutation,args:a.args??{},open:(a.missing??[]).map(k=>{let d=n.allMutations().find(p=>p.name===a.mutation);if(!d)return{name:k};let o=E(d.input).find(p=>p.name===k),m=o?o.kinds.includes("*")?n.graph.allNodes().map(p=>p.id):o.kinds.flatMap(p=>n.graph.nodesOfKind(p).map($=>$.id)):void 0;return{name:k,shape:N(d.input,k),...o?{kinds:o.kinds}:{},...m?{candidates:m}:{}}}),score:pn-h-(a.missing?.length??0),why:s.message,nodeIds:s.nodeIds,...s.subjectId===void 0?{}:{subjectId:s.subjectId}})})});for(let s of t){let e=n.allInvariants().filter(a=>{if(a.scope==="graph")return!1;let h=a.scope;return h.kind!==s.kind?!1:h.match?h.match(s):!0});e.length!==0&&(A.some(a=>a.subjectId===s.id||a.nodeIds.includes(s.id))||S.push({id:`holds:${s.id}`,text:`${v(s)} holds \u2014 nothing currently breaks ${e.length===1?"it":`any of its ${e.length} rules`}`,nodeIds:[s.id]}))}return{affordances:c,observations:S}}}}var U=40;function fn(){return{name:"schema",derive({store:n,selection:r,nodes:t,kindSelection:l,edgeSelection:v,principal:f}){let A=(e,a)=>f!==void 0&&!n.permits({name:e,args:a},f).ok,c=[];if(t.length===0&&v.length>0){for(let e of v){let a=n.graph.getNode(e.from),h=n.graph.getNode(e.to);if(!a||!h)continue;let k=rn(n,e);k?.provisional&&c.push({id:`schema:edge:${V}:${e.kind}:${e.from}:${e.to}`,label:"Keep this link",provider:"schema",mutation:V,args:{kind:e.kind,from:e.from,to:e.to},open:[],score:64,why:on(k),nodeIds:[e.from,e.to]});for(let d of n.allMutations()){let o=(d.connects??[]).includes(e.kind),m=(d.severs??[]).includes(e.kind);if(!o&&!m)continue;let p={},$=[],j=E(d.input);for(let g of j){let w=g.kinds.includes("*")||g.kinds.includes(a.kind),P=g.kinds.includes("*")||g.kinds.includes(h.kind),y=w&&!j.some(I=>I!==g&&(I.kinds.includes(a.kind)||I.kinds.includes("*")));w&&!P?p[g.name]=e.from:P&&!w?p[g.name]=e.to:w&&P&&y?p[g.name]=e.from:$.push({name:g.name,kinds:g.kinds,candidates:[e.from,e.to],shape:N(d.input,g.name)})}for(let g of G(d.input,""))g in p||$.some(w=>w.name===g)||$.push({name:g,shape:N(d.input,g)});$.every(g=>g.optional===!0?!0:g.kinds!==void 0?(g.candidates?.length??0)>0:(g.candidates?.length??0)>0||g.shape!==void 0&&g.shape.type!=="unknown")&&(o&&!m&&$.length===0||c.push({id:`schema:edge:${d.name}:${e.kind}:${e.from}:${e.to}`,label:K(d),provider:"schema",mutation:d.name,args:p,open:$,...d.destructive?{destructive:!0}:{},score:(m?62:58)-$.length,why:`this line is "${B(n.schema,n.graph.getNode(e.from)?.kind??"",e.kind,"out")}"`,nodeIds:[e.from,e.to]}))}}return{affordances:c}}if(t.length===0&&l.length>0){let e=new Set(l),a=[];for(let h of n.allMutations()){if(!(h.creates??[]).some(o=>e.has(o)))continue;let k=[];for(let o of E(h.input)){let m=o.kinds.includes("*")?n.graph.allNodes().map(p=>p.id):o.kinds.flatMap(p=>n.graph.nodesOfKind(p).map($=>$.id));k.push({name:o.name,kinds:o.kinds,candidates:m,shape:N(h.input,o.name),...o.optional?{optional:!0}:{}})}for(let o of G(h.input,""))k.some(m=>m.name===o)||k.push({name:o,shape:N(h.input,o)});if(!k.every(o=>o.optional===!0?!0:o.kinds!==void 0?(o.candidates?.length??0)>0:(o.candidates?.length??0)>0||o.shape!==void 0&&o.shape.type!=="unknown")&&!A(h.name,{})){let o=k.filter(m=>m.optional!==!0&&m.kinds!==void 0&&!m.kinds.includes("*")&&(m.candidates?.length??0)===0);if(o.length>0){let m=[...new Set(o.flatMap(p=>p.kinds??[]))].map(p=>J(T(n.schema.tryDefinition(p),p)));a.push({id:`schema:waits:${h.name}`,text:`"${h.title??h.name}" cannot begin until there is ${m.length===1?m[0]:`${m.slice(0,-1).join(", ")} and ${m[m.length-1]}`}.`,nodeIds:[]})}continue}c.push({id:`schema:add:${h.name}`,label:K(h),provider:"schema",mutation:h.name,args:{},open:k,score:U-k.length,why:`this makes ${(h.creates??[]).filter(o=>e.has(o)).map(o=>J(T(n.schema.tryDefinition(o),o))).join(", ")}`,nodeIds:[]})}return{affordances:c,observations:a}}if(t.length===0)return{};let S=new Set(t.map(e=>e.kind)),s=(e,a,h)=>{let k=[];for(let d of n.graph.allEdges()){if(!a.includes(d.kind))continue;let o=d.from===e?d.to:d.to===e?d.from:null;if(!o)continue;let m=n.graph.getNode(o);m&&(!h.includes("*")&&!h.includes(m.kind)||k.includes(o)||k.push(o))}return k};for(let e of n.allMutations()){let a=e.subject;if(!a||!(a.kinds==="*"?!0:[...S].every(u=>a.kinds.includes(u))))continue;let k=e.derived?.act;if((k==="archive"||k==="merge")&&t.some(u=>H(u))||k==="unarchive"&&!t.some(u=>H(u))||k==="leave-alone"&&t.every(u=>Q(n,u.id))||k==="allow-tidying"&&!t.some(u=>Q(n,u.id)))continue;let d=t.length===1?t[0].id:null,o=e.severs??[],m=e.connects??[];if(d&&o.length>0&&m.length===0&&s(d,o,["*"]).length===0)continue;let p=[];for(let u of E(e.input)){if(u.name===a.arg)continue;let g=u.kinds.includes("*")?n.graph.allNodes().map(w=>w.id):u.kinds.flatMap(w=>n.graph.nodesOfKind(w).map(P=>P.id));if(d&&m.length>0){let w=new Set(s(d,m,u.kinds));g=g.filter(P=>!w.has(P))}else d&&o.length>0&&(g=s(d,o,u.kinds));p.push({name:u.name,kinds:u.kinds,candidates:g.filter(w=>!r.includes(w)),shape:N(e.input,u.name),...u.optional?{optional:!0}:{}})}for(let u of G(e.input,a.arg))p.some(g=>g.name===u)||p.push({name:u,shape:N(e.input,u)});if(p.length===0&&d){let u=kn(e.input,a.arg);if(u.length>0&&!yn(n,e.name,{[a.arg]:d}))for(let g of u){let w=E(e.input).find(P=>P.name===g);p.push({name:g,optional:!0,...w?{kinds:w.kinds}:{},shape:N(e.input,g)})}}if(!p.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(e.name,d?{[a.arg]:d}:{}))continue;let j=t.map(u=>({[a.arg]:u.id}));p.length===0&&!j.some(u=>n.wouldChange({name:e.name,args:u}))||c.push({id:`schema:${e.name}`,label:t.length>1?`${K(e)} (${t.length})`:K(e),provider:"schema",mutation:e.name,args:j[0]??{},open:p,...e.destructive?{destructive:!0}:{},...e.derived?.act==="archive"||e.derived?.act==="merge"||e.derived?.act==="leave-alone"||e.derived?.act==="allow-tidying"?{setsAside:!0}:{},...o.length>0||m.length>0?{ties:!0}:{},...t.length>1?{batch:j}:{},score:U-p.length,why:t.length>1?`all ${t.length} selected nodes are ${[...S].map(u=>en(n.schema,u).toLowerCase()).join(" or ")}`:`this is ${J(T(n.schema.tryDefinition(t[0].kind),t[0].kind))}`,nodeIds:t.map(u=>u.id)})}if(t.length===1){let e=t[0];for(let a of n.allMutations()){let h=a.subject,k=a.severs??[],d=a.connects??[];if(!h||k.length===0&&d.length===0)continue;let o=h.kinds==="*"?"*":h.kinds;if(o==="*"||o.includes(e.kind))continue;let m=E(a.input),p=m.find(y=>y.name!==h.arg&&(y.kinds.includes("*")||y.kinds.includes(e.kind)));if(!p)continue;let $=o,j=$.includes("*")?n.graph.allNodes().map(y=>y.id):$.flatMap(y=>n.graph.nodesOfKind(y).map(I=>I.id)),u=new Set(s(e.id,d.length>0?d:k,$)),g=d.length>0?j.filter(y=>!u.has(y)):j.filter(y=>u.has(y));if(g.length===0)continue;let w=[{name:h.arg,kinds:$,candidates:g,shape:N(a.input,h.arg)}];for(let y of m){if(y.name===p.name||y.name===h.arg)continue;let I=y.kinds.includes("*")?n.graph.allNodes().map(D=>D.id):y.kinds.flatMap(D=>n.graph.nodesOfKind(D).map(O=>O.id));w.push({name:y.name,kinds:y.kinds,candidates:I,shape:N(a.input,y.name),...y.optional?{optional:!0}:{}})}for(let y of G(a.input,p.name))y===h.arg||w.some(I=>I.name===y)||w.push({name:y,shape:N(a.input,y)});w.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")&&c.push({id:`schema:tie:${a.name}:${e.id}`,label:a.fromTheOtherEnd??K(a),provider:"schema",mutation:a.name,args:{[p.name]:e.id},open:w,ties:!0,...a.destructive?{destructive:!0}:{},score:U-w.length+2,why:`${k.length>0?"this one is on":"this one could join"} ${w[0].candidates.length===1?"it":"one of these"}`,nodeIds:[e.id]})}}return{affordances:c}}}}function kn(n,r){let t=n.shape;return t?Object.entries(t).filter(([l,v])=>l!==r&&v.safeParse(void 0).success).map(([l])=>l):[]}function yn(n,r,t){try{return n.preview({name:r,args:t}),!0}catch{return!1}}function G(n,r){let t=n.shape;return t?Object.entries(t).filter(([l,v])=>l!==r&&!v.safeParse(void 0).success).map(([l])=>l):[]}var vn=70,bn=80,Sn=new Set(["id","kind"]);function ln(){return{name:"structure",derive({store:n,nodes:r}){let t=c=>F(n.schema.tryDefinition(c.kind),c);if(r.length<2)return{};let l=[],v=[],f=r.map(c=>c.id);for(let c of n.schema.edgeKinds){let S=wn(r.map(e=>new Set([...n.graph.out(e.id,c).map(a=>a.id),...n.graph.in(e.id,c).map(a=>a.id)])));for(let e of S){let a=n.graph.getNode(e);a&&l.push({id:`shared:${c}:${e}`,text:`all ${r.length} share "${t(a)}" (${q(c).toLowerCase()})`,nodeIds:[...f,e]})}let s=new Map;for(let e of r)for(let a of[...n.graph.out(e.id,c),...n.graph.in(e.id,c)])s.set(a.id,(s.get(a.id)??0)+1);for(let[e,a]of s){if(a!==r.length-1||r.length<3||f.includes(e))continue;let h=n.graph.getNode(e);if(!h)continue;let k=r.find(d=>![...n.graph.out(d.id,c),...n.graph.in(d.id,c)].some(o=>o.id===e));if(k){l.push({id:`near-shared:${c}:${e}`,text:`all but "${t(k)}" share "${t(h)}" (${q(c).toLowerCase()})`,nodeIds:[...f,e]});for(let d of n.allMutations()){let o=d.subject;if(!o||o.kinds!=="*"&&!o.kinds.includes(k.kind))continue;let m=An(d.input,h.kind);m&&v.push({id:`structure:join:${d.name}:${k.id}:${e}`,label:`${K(d)}: bring "${t(k)}" in line with the others`,provider:"structure",mutation:d.name,args:{[o.arg]:k.id,[m]:e},open:[],score:vn,why:`every other selected node is connected to "${t(h)}"`,nodeIds:[k.id,e]})}}}}let A=new Map;for(let c of r)A.set(c.kind,[...A.get(c.kind)??[],c]);for(let[c,S]of A){if(S.length<2)continue;let s=S,e=S.map(d=>d.id),a=A.size>1?`${c}:`:"",h=new Set;for(let d of s)for(let o of Object.keys(d))Sn.has(o)||h.add(o);let k=d=>n.schema.definitions.find(o=>o.kind===d);for(let d of[...h].sort()){let o=k(s[0].kind),m=tn(o,d).toLowerCase(),p=o?.display?.format?.[d],$=O=>{if(!p)return O;try{return String(p(JSON.parse(O)))}catch{return O}},j=s.map(O=>O[d]),u=new Map;if(j.forEach((O,R)=>{let L=JSON.stringify(O??null),x=u.get(L);x?x.push(s[R]):u.set(L,[s[R]])}),u.size===1){let O=[...u.keys()][0];if(O==="null")continue;l.push({id:`agree:${a}${d}`,text:`all ${s.length} share the ${m} ${$(O)}`,nodeIds:e});continue}if(s.length<3||u.size!==2)continue;let g=[...u.entries()].sort((O,R)=>R[1].length-O[1].length),[w,P]=g[0],[,y]=g[1];if(y.length!==1||w==="null")continue;let I=y[0],D=JSON.parse(w);l.push({id:`odd-one-out:${a}${d}`,text:`${P.length} share the ${m} ${$(w)}; "${t(I)}" does not`,nodeIds:e});for(let O of n.allMutations()){let R=O.subject;if(!R||R.kinds!=="*"&&!R.kinds.includes(I.kind))continue;let L=hn(O.input);if(!L||!(d in L))continue;let x={[R.arg]:I.id,[d]:D},_=!0;for(let[C,Z]of Object.entries(L)){if(C in x||Z.safeParse(void 0).success)continue;let i=I[C];if(i===void 0){_=!1;break}x[C]=i}!_||!O.input.safeParse(x).success||v.push({id:`structure:align:${O.name}:${d}:${I.id}`,label:`Align the ${m} of "${t(I)}" with the other ${P.length}`,provider:"structure",mutation:O.name,args:x,open:[],score:bn,why:`${P.length} of ${s.length} share the ${m} ${$(w)}`,nodeIds:e})}}}return{affordances:v,observations:l}}}}function wn(n){if(n.length===0)return[];let[r,...t]=n;return[...r].filter(l=>t.every(v=>v.has(l))).sort()}function hn(n){return n.shape??null}function An(n,r){let t=hn(n);if(!t)return null;for(let[l]of Object.entries(t)){let v=sn(t[l]);if(v&&(v.includes("*")||v.includes(r)))return l}return null}function $n(){return[un(),ln(),fn(),an()]}function Hn(n,r,t={}){let l=gn(),v=t.providers??$n(),f=r.map(i=>n.graph.getNode(i)).filter(i=>i!==void 0),A={store:n,selection:r,nodes:f,kindSelection:t.kindSelection??[],edgeSelection:t.edgeSelection??[],violations:n.violations(t.context),context:t.context??{},principal:t.principal??{kind:"human"}},c=[],S=[];for(let i of v){let b=i.derive(A);c.push(...b.affordances??[]),S.push(...b.observations??[])}let s=new Set(n.allMutations().filter(i=>i.pinned).map(i=>i.name)),e=new Set(t.pins?.pinned??[]),a=new Set(t.pins?.unpinned??[]),h=i=>e.has(i.mutation)?"user":s.has(i.mutation)&&!a.has(i.mutation)?"declared":void 0,k=i=>{let b=h(i);return b?{...i,pinned:b}:i},d=new Map;for(let[i,b]of dn(n.log.all()))d.set(i,cn(b));let o=i=>i.pinned==="user"?0:i.pinned==="declared"?1:2,m=i=>i.score+(d.get(i.mutation)??0),p=new Map(n.allMutations().map(i=>[i.name,i])),$=new Map,j=i=>{let b=p.get(i.mutation);if(!b)return[];let M=$.get(i.mutation);M||(M=E(b.input).map(W=>W.name),$.set(i.mutation,M));let z=[];for(let W of i.batch??[i.args])for(let X of M){let Y=W[X]??i.args[X];typeof Y=="string"&&z.push(Y)}return z},u=t.focus,g=4,w=i=>i.open.length>0?1:0,P=i=>{if(u===void 0)return g;let b=j(i);return b.length>0?b.includes(u)?y(i,0):g:i.nodeIds.includes(u)||i.subjectId===u?y(i,1):g},y=(i,b)=>i.provider==="invariant"?b:2+w(i),I=i=>i.setsAside?1:0,D=On(c).map(k),O=new Map(D.map((i,b)=>[i,b])),R=D.sort((i,b)=>{let M=Number(i.destructive??!1)-Number(b.destructive??!1);if(M!==0)return M;let z=I(i)-I(b);if(z!==0)return z;let W=P(i)-P(b);return W!==0?W:P(i)<2?O.get(i)-O.get(b):+(b.provider==="invariant")-+(i.provider==="invariant")||o(i)-o(b)||m(b)-m(i)||i.id.localeCompare(b.id)}),L=t.principal??{kind:"human"},x=[],_=[];for(let i of R){let b=n.permits({name:i.mutation,args:{...i.args,...i.batch?.[0]??{}}},L);if(b.ok)x.push(i);else{let M=Pn(n,i,L);if(M==="done")continue;M?x.push(M):_.push({...i,refusal:b.refusal})}}let C=x.map((i,b)=>({...i,rank:b})),Z=_.map((i,b)=>({...i,rank:x.length+b}));return{affordances:t.limit===void 0?C:C.slice(0,t.limit),withheld:Z,observations:In(S),ms:gn()-l}}function On(n){let r=new Map;for(let t of n){let l=[t.mutation,JSON.stringify(t.args),JSON.stringify(t.batch??null)].join("|"),v=r.get(l);(!v||t.score>v.score)&&r.set(l,t)}return[...r.values()]}function In(n){let r=new Map;for(let t of n)r.set(t.text,t);return[...r.values()]}function gn(){return typeof performance<"u"?performance.now():Date.now()}function Vn(n,r,t={},l={}){let v=(r.batch??[r.args]).map(A=>({name:r.mutation,args:{...r.args,...A,...t}})),f=n.allMutations().find(A=>A.name===r.mutation);return n.applyAll(v,{...f?.describe?{}:{intent:r.label},...l.author?{author:l.author}:{}})}function Qn(n,r,t={}){return n.preview({name:r.mutation,args:{...r.args,...t}})}function Pn(n,r,t){let l=n.allMutations().find(s=>s.name===r.mutation)?.subject,v=l!==void 0&&r.args[l.arg]===void 0,f=v?r.open.find(s=>s.name===l.arg):r.open.find(s=>s.name!==l?.arg&&s.candidates);if(!f?.candidates)return;let A=s=>n.permits({name:r.mutation,args:{...r.args,...r.batch?.[0]??{},[f.name]:s}},t).ok,c=f.candidates.filter(A),S=t.id===void 0?void 0:n.graph.getNode(t.id);if(c.length===0){let s=v?l.kinds:"*";return S!==void 0&&(s==="*"||s.includes(S.kind))&&A(S.id)?"done":void 0}return c.length===1&&c[0]===t.id?{...r,args:{...r.args,[f.name]:t.id},open:r.open.filter(s=>s!==f)}:{...r,open:r.open.map(s=>s===f?{...s,candidates:c}:s)}}export{Hn as a,Vn as b,Qn as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as $}from"./chunk.
|
|
1
|
+
import{d as $}from"./chunk.PW7YH6JV.js";import{a as C}from"./chunk.QVKKXMNK.js";import{g as M}from"./chunk.Z7ZCR4LN.js";import{X as k,Y as v,_ as j,jb as x}from"./chunk.X7W27IRI.js";function N(a,s){let c=a.tryDefinition(s),r=Object.keys(c?.fields?.shape??{}),m=[c?.lifecycle?.field,...r.filter(l=>/^(status|stage|state|phase)$/i.test(l))].filter(l=>l!==void 0&&r.includes(l));return[...new Set(m)].slice(0,1)}function P(a,s){return a.tryDefinition(s)?.fieldRoles?.title??"label"}function V(a,s,c={}){let r=s.map(e=>a.graph.getNode(e)).filter(e=>e!==void 0);if(r.length===0)return{acts:[],withheld:[]};let u=c.principal??{kind:"human"},m=C(a,r.map(e=>e.id),{...c.derive,principal:u,...c.context?{context:c.context}:{}}),l=new Map(a.allMutations().map(e=>[e.name,e])),g=[...new Set(r.map(e=>e.kind))],p=new Set(g.map(e=>P(a.schema,e))),h=new Set(m.affordances.filter(e=>e.provider==="schema").map(e=>e.mutation)),o=e=>{let n=l.get(e.mutation);if(!n?.subject)return;let t=r.length===1&&e.provider==="invariant"&&!h.has(e.mutation)&&e.args[n.subject.arg]===r[0].id;if(!(e.provider!=="schema"&&!t)&&!(r.length>1&&e.batch?.length!==r.length)&&n.derived?.act!=="edit"&&!e.open.some(i=>p.has(i.name)))return n},y=[],b=new Set;for(let e of m.affordances){let n=o(e);if(!n||b.has(n.name))continue;b.add(n.name);let{[n.subject.arg]:t,...i}=e.args;y.push({id:e.id,label:v(n),mutation:n.name,subject:n.subject.arg,args:i,open:e.open,...e.destructive||e.setsAside?{more:!0}:{},...e.destructive?{destructive:!0}:{},affordance:{...e,label:v(n)}})}if(g.length===1){let e=g[0];for(let n of N(a.schema,e))for(let t of $(a.schema,[...l.values()],e,n)){if(t.by==="none"||r.every(d=>d[n]===t.value))continue;let i=r.find(d=>d[n]!==t.value),f=t.acts.find(d=>{let D=t.by==="step"?{[d.subject.arg]:i.id}:{[d.subject.arg]:i.id,[n]:t.value};return a.permits({name:d.name,args:D},u).ok});if(!f)continue;let w=t.by==="step"?{}:{[n]:t.value};if(t.by==="step"&&y.some(d=>d.mutation===f.name))continue;let R=t.by==="step"?v(f):`Move to ${t.label}`,O=`set:${n}:${t.value}`;y.push({id:O,label:R,mutation:f.name,subject:f.subject.arg,args:w,open:[],affordance:{id:O,label:R,provider:"schema",mutation:f.name,args:{[f.subject.arg]:i.id,...w},open:[],score:0,why:`every one is ${e}`,nodeIds:r.map(d=>d.id)}})}}let S=[...y.filter(e=>!e.more),...y.filter(e=>e.more)],A=m.withheld.filter(e=>{let n=l.get(e.mutation);return n?.subject!==void 0&&n.derived?.act!=="edit"&&(r.length===1||e.batch?.length===r.length)}).map(e=>({label:v(l.get(e.mutation)),message:e.refusal.message}));return{acts:S,withheld:A}}function _(a,s,c,r={}){let u=r.author,m=a.allMutations().find(e=>e.name===s.mutation),l=e=>M(a.schema,a.allMutations(),e),g=e=>{let n=a.graph.getNode(e);return n?k(a.schema.tryDefinition(n.kind),n):e},p=[],h=[],o=[];for(let e of[...new Set(c)]){let n={name:s.mutation,args:{...s.args,[s.subject]:e}};if(!m){p.push({id:e,label:g(e),message:`There is no act \u201C${s.mutation}\u201D.`,reason:"invalid"});continue}let t=a.permits(n,u);if(!t.ok){p.push({id:e,label:g(e),message:t.refusal.message,reason:"forbidden"});continue}if(!a.wouldChange(n,u)){h.push(e);continue}o.push({id:e,call:n})}let y=e=>a.previewAll(e,{...u?{author:u}:{},...r.context?{context:r.context}:{}});for(let e=0;o.length>0;e+=1)try{y(o.map(n=>n.call));break}catch(n){let t=[];for(let i of o)try{y([i.call]),t.push(i)}catch(f){p.push({id:i.id,label:g(i.id),message:l(f),reason:x(f).reason})}if(t.length===o.length||e>o.length){for(let i of t)p.push({id:i.id,label:g(i.id),message:l(n),reason:x(n).reason});o=[];break}o=t}if(o.length===0)return{applied:[],unchanged:h,refused:p};let b=s.label??(m?v(m):s.mutation),S=[...new Set(o.map(e=>a.graph.getNode(e.id)?.kind))],A=`${b} \u2014 ${S.length===1&&S[0]?j(a.schema,S[0],o.length):`${o.length} records`}`;try{let e=a.applyAll(o.map(n=>n.call),{intent:A,...u?{author:u}:{},...r.via?{via:r.via}:{}});return{batch:e.batch,intent:A,applied:o.map(n=>n.id),unchanged:h,refused:p,result:e}}catch(e){let n=l(e),t=x(e).reason;return{applied:[],unchanged:h,refused:[...p,...o.map(i=>({id:i.id,label:g(i.id),message:n,reason:t}))],allOrNothing:!0}}}export{V as a,_ as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{q as re}from"./chunk.YT2CYCVT.js";import{a as j,b as C,c as J,d as te,e as ne,f as P,g as ie,k as ae,n as oe}from"./chunk.HWITWOP3.js";import{a as X,b as Z,c as ee}from"./chunk.QVKKXMNK.js";import"./chunk.ZSW74NVJ.js";import"./chunk.ZE4CTZQ3.js";import{a as _}from"./chunk.U5ACEYAN.js";import"./chunk.UT6642FC.js";import"./chunk.TI4OSTQV.js";import"./chunk.PPUAPAWR.js";import"./chunk.Z7ZCR4LN.js";import"./chunk.RIW7SQH4.js";import"./chunk.FSAHO3LV.js";import{m as V}from"./chunk.PNVR3CXR.js";import{F as ge,I as Q,Q as Y,Y as U}from"./chunk.ZTD2CNC3.js";import{$ as N,fc as B}from"./chunk.X7W27IRI.js";import{b as D}from"./chunk.AJZBJBMO.js";var a=D(ge(),1);var l=D(Y(),1),fe=new Set(["show","go","to","open","the","a","an","me"]),de=o=>o.toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,""),O=(o,c)=>{let r=de(o);return c.every(t=>r.includes(t))},se=o=>o&&`${o[0].toLowerCase()}${o.slice(1)}`,I={act:4,show:3,place:3,record:4},he=360,h=12;function Ie({face:o,opening:c,close:r}){let t=_(),{setMenuAt:y}=U(),i=(0,a.useMemo)(()=>c.target??j(c.pointed??{about:[]},e=>t.store.graph.has(e)),[c,t.store]),g=(0,a.useMemo)(()=>te(t.store,i,t.places),[t.store,i,t.places]),[p,v]=(0,a.useState)(""),[b,m]=(0,a.useState)(-1),[s,E]=(0,a.useState)(null),[A,L]=(0,a.useState)(null),T=(0,a.useRef)(null),W=(0,a.useRef)(null),M=(0,a.useId)(),R=(0,a.useRef)(!0),{ghost:z}=Q(t.desk);(0,a.useEffect)(()=>()=>{R.current=!1;let e=t.desk.get().ghost;e?.onCard&&t.desk.setGhost({...e,onCard:!1})},[t.desk]);let $=(0,a.useMemo)(()=>{let e=P(t,i);return J(t.store,i,{principal:t.principal,places:t.places,...e.acts?{acts:e.acts}:{}})},[t,i]),G=(0,a.useMemo)(()=>{let e=C(i);if(e.length===0)return[];let n=new Set($.candidates.flatMap(d=>d.type==="act"?[d.mutation]:[]));return X(t.store,e,{principal:t.principal,...e.length===1?{focus:e[0]}:{}}).affordances.filter(d=>!d.destructive&&n.has(d.mutation))},[t.store,t.principal,i,$]),q=(0,a.useCallback)(()=>{let e=c.returnTo,n=le(T.current,i,o);r(),requestAnimationFrame(()=>{if(e?.isConnected&&!e.closest("[inert]"))return e.focus({preventScroll:!0});let d=(n&&n.tabIndex>=0?n:null)??document.querySelector("[data-graview-page-title]")??document.querySelector("main");d&&d.tabIndex<0&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","-1"),d?.focus({preventScroll:!0})})},[c.returnTo,i,o,r]),K=(0,a.useCallback)(e=>{if(e.open.length>0){let n=T.current?.getBoundingClientRect();r(),y({x:n?.left??0,y:n?.top??0,on:e.args.id??C(i)[0],about:C(i)});return}try{ee(t.store,e,{}),Z(t.store,e,{},{author:t.principal}),q()}catch(n){L(n instanceof Error?n.message:String(n))}},[t.store,t.principal,r,q,y,i]),H=(0,a.useCallback)(async e=>{let n=e.trim();if(!n)return;let d=s?.result?.answer?{said:s.said,answer:s.result.answer}:void 0;v(""),m(-1),L(null),E({said:n,result:null});let S=await ne(t.ai,{...P(t,i,n),said:n,...d?{follows:d}:{}});t.desk.record(S.interaction),S.ghost&&S.ghost.proposals.length>0&&t.desk.setGhost({ghost:S.ghost,onCard:!0}),R.current&&E({said:n,result:S})},[s,t,i]),F=(0,a.useRef)(c.asked);(0,a.useEffect)(()=>{let e=F.current;F.current=void 0,e&&H(e)},[]);let k=(0,a.useMemo)(()=>{let e=p.trim();if(!e&&s)return[];let n=de(e).split(/\s+/).filter(f=>f&&!fe.has(f)),d=/^show\b/i.test(e),S=/^(go|open)\b/i.test(e),x=[];if(!d&&!S)for(let f of G.filter(u=>O(u.label,n)).slice(0,I.act))x.push({id:`act:${f.id}`,kind:"act",label:f.label,hint:f.open.length>0?"asks more":"do it",take:()=>K(f)});if(!S){let f=$.candidates.filter(u=>u.type==="panel");for(let u of f.filter(ue=>O(`show ${ue.label}`,n)).slice(0,I.show))x.push({id:u.id,kind:"show",label:`Show ${se(u.label)}`,hint:"a panel",take:()=>{r(),ie(t,{title:u.label,recipe:{...u.panel,title:u.label}})}})}if(!d){for(let f of t.places.filter(u=>O(u.title,n)).slice(0,I.place))x.push({id:`place:${f.as}`,kind:"place",label:`Go to ${f.title}`,take:()=>(r(),t.goTo.place(f.as))});if(n.length>0){let f=re(t.store,e.replace(/^(go to|open)\s+/i,""),{principal:t.principal,from:C(i),limit:I.record}).hits;for(let u of f)u.about==="node"&&x.push({id:`record:${u.id}`,kind:"record",label:u.label,hint:N(t.store.schema,u.kind),take:()=>(r(),t.goTo.record(u.id))})}}return e&&x.push({id:"ask",kind:"ask",label:e,take:()=>void H(e)}),x},[p,G,$,t,i,K,H,r,s]);(0,a.useEffect)(()=>m(p.trim()?0:-1),[p]),(0,a.useLayoutEffect)(()=>{let e=T.current;if(!e)return;if(typeof e.showPopover=="function")try{e.showPopover()}catch{}W.current?.focus({preventScroll:!0});let n=0,d=()=>{me(e,le(e,i,o)),n=requestAnimationFrame(d)};return d(),()=>cancelAnimationFrame(n)},[i,o]),(0,a.useEffect)(()=>{if(s)return;let e=n=>{n.target instanceof Node&&T.current?.contains(n.target)||r()};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[s,r]);let ce=e=>{if(e.key==="ArrowDown"&&k.length>0)e.preventDefault(),m(n=>Math.min(k.length-1,n+1));else if(e.key==="ArrowUp"&&k.length>0)e.preventDefault(),m(n=>Math.max(0,n-1));else if(e.key==="Enter"){e.preventDefault();let n=k[b];n?n.take():p.trim()&&H(p)}},w=s?.result??null,pe=k[b];return(0,l.jsxs)("section",{ref:T,popover:"manual",role:"region","aria-label":s?`Answer about ${g}`:`Ask about ${g}`,"data-testid":"quick-ask","data-quick-ask":s?"answer":"bar","data-quick-ask-face":o,"data-graview-offstage":"","data-graview-overlay":"",onKeyDown:e=>{e.key==="Escape"&&(e.preventDefault(),e.stopPropagation(),q())},onMouseDown:e=>e.stopPropagation(),style:ke,children:[(0,l.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,l.jsxs)("p",{"data-testid":"quick-ask-about",style:{margin:0,flex:"1 1 auto",minWidth:0,fontSize:"0.75rem",color:"var(--graview-ink-muted)",overflowWrap:"anywhere"},children:["About ",g]}),(0,l.jsx)("button",{type:"button","data-testid":"quick-ask-close","aria-label":"Close",title:"Close",onClick:q,style:we,children:(0,l.jsx)("span",{"aria-hidden":"true",children:"\u2715"})})]}),s?(0,l.jsxs)("div",{"data-testid":"quick-answer",style:{display:"grid",gap:8},children:[(0,l.jsxs)("p",{"data-testid":"quick-answer-asked",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)",fontStyle:"italic",overflowWrap:"anywhere"},children:["\u201C",s.said,"\u201D"]}),(0,l.jsx)("p",{"data-testid":"quick-answer-text","aria-live":"polite",style:{margin:0,fontSize:"0.9375rem",lineHeight:1.45,color:w?.interaction.outcome==="failed"?"var(--graview-warn)":"var(--graview-ink)",overflowWrap:"anywhere"},children:w===null?"Thinking\u2026":w.interaction.outcome==="failed"?w.interaction.failed??"The AI could not answer that here.":w.answer??""}),w&&w.offers.length>0?(0,l.jsx)("ul",{"aria-label":"What acts on it",style:{margin:0,padding:0,listStyle:"none",display:"flex",flexWrap:"wrap",gap:6},children:w.offers.map(e=>(0,l.jsx)("li",{children:(0,l.jsx)("button",{type:"button","data-testid":"quick-answer-offer","data-ai-offer":e.id,"data-ai-offer-type":e.type,onClick:()=>{ae(t,w,e,r).then(n=>{n&&R.current&&L(n)})},style:ve,children:e.type==="panel"?`Show ${se(e.label)}`:e.type==="place"?`Go to ${e.label}`:e.label})},e.id))}):null,z?.onCard&&z.ghost.interaction===w?.interaction.id?(0,l.jsx)(oe,{placement:"card"}):null]}):null,(0,l.jsxs)("div",{style:{display:"grid",gap:4},children:[(0,l.jsx)("input",{ref:W,type:"text",role:"combobox","data-testid":"quick-ask-input","aria-label":s?`Ask a follow-up about ${g}`:`Ask about ${g}, or go somewhere`,"aria-expanded":k.length>0,"aria-controls":M,"aria-autocomplete":"list",...pe?{"aria-activedescendant":`${M}-${b}`}:{},autoComplete:"off",enterKeyHint:"go",placeholder:s?"Ask a follow-up\u2026":"Ask, or go to\u2026",value:p,readOnly:s!==null&&w===null,"aria-busy":s!==null&&w===null,onChange:e=>v(e.target.value),onKeyDown:ce,style:be}),(0,l.jsx)("div",{id:M,role:"listbox","aria-label":p.trim()?`What \u201C${p.trim()}\u201D finds here`:"What can be done here",hidden:k.length===0,style:{display:k.length===0?"none":"grid",gap:1,maxHeight:280,overflowY:"auto"},children:k.map((e,n)=>(0,l.jsx)("div",{id:`${M}-${n}`,role:"option","aria-selected":n===b,"data-testid":"quick-ask-option","data-quick-ask-kind":e.kind,"data-quick-ask-row":e.id,onMouseEnter:()=>m(n),onMouseDown:d=>d.preventDefault(),onClick:e.take,style:{...ye,background:n===b?"var(--graview-panel-muted)":"transparent",...e.kind==="ask"?{borderTop:"1px solid var(--graview-edge)",marginTop:2}:{}},children:e.kind==="ask"?(0,l.jsxs)("span",{children:["Ask: ",(0,l.jsxs)("span",{style:{fontWeight:600},children:["\u2018",e.label,"\u2019"]})]}):(0,l.jsxs)("span",{children:[e.label,e.hint?(0,l.jsxs)("span",{style:{color:"var(--graview-ink-faint)"},children:[" \xB7 ",e.hint]}):null]})},e.id))})]}),A?(0,l.jsx)("p",{role:"alert","data-testid":"quick-ask-refused",style:{margin:0,fontSize:"0.8125rem",color:"var(--graview-warn)"},children:A}):null,(0,l.jsx)("span",{style:V,"aria-live":"polite",children:k.length>0&&p.trim()?`${k.length} ${k.length===1?"way":"ways"} to go on`:""})]})}function le(o,c,r){let t=o?.closest("[data-graview-embed]")??document,y=c.on==="list"?[`aggregate:${c.kind}`,`kind:${c.kind}`]:c.on==="lens"&&c.kind?[`aggregate:${c.kind}`]:C(c);for(let i of y)for(let g of t.querySelectorAll(`[data-graview-view="${CSS.escape(i)}"], [data-graview-pick="${CSS.escape(i)}"]`)){if(o?.contains(g))continue;let p=g.getBoundingClientRect();if(p.width>0&&p.height>0)return g}return r==="pages"?t.querySelector("main [data-graview-page-title]")??t.querySelector("main h1"):null}function me(o,c){let r={width:document.documentElement.clientWidth||innerWidth,height:innerHeight},t=Math.min(he,r.width-2*h),y=o.getBoundingClientRect().height,i=c?.getBoundingClientRect(),g,p,v,b=A=>Math.max(h,Math.min(A,r.height-y-h));if(i&&i.width>0&&i.bottom>0&&i.top<r.height)if(i.right+h+t<=r.width-h)g=i.right+h,p=b(i.top),v="right";else if(i.left-h-t>=h)g=i.left-h-t,p=b(i.top),v="left";else{g=Math.max(h,Math.min(i.left,r.width-t-h));let A=i.bottom+h;p=A+y<=r.height-h?A:b(i.top-h-y),v=A+y<=r.height-h?"below":"above"}else g=(r.width-t)/2,p=b(72),v="top";let m=o.style,s={left:`${Math.round(g)}px`,top:`${Math.round(p)}px`,width:`${Math.round(t)}px`};m.left!==s.left&&(m.left=s.left),m.top!==s.top&&(m.top=s.top),m.width!==s.width&&(m.width=s.width);let E=c?.getAttribute("data-graview-view")??c?.getAttribute("data-graview-pick")??(c?"page":"");o.getAttribute("data-quick-ask-beside")!==E&&o.setAttribute("data-quick-ask-beside",E),o.getAttribute("data-quick-ask-side")!==v&&o.setAttribute("data-quick-ask-side",v)}var ke={position:"fixed",inset:"auto",margin:0,zIndex:B("popover"),boxSizing:"border-box",display:"grid",gap:10,padding:12,borderRadius:12,border:"1px solid var(--graview-edge)",background:"var(--graview-float)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)",maxHeight:"calc(100dvh - 24px)",overflowY:"auto",fontSize:"0.875rem"},we={display:"inline-grid",placeItems:"center",width:28,height:28,padding:0,font:"inherit",fontSize:"0.875rem",lineHeight:1,color:"var(--graview-ink-muted)",background:"transparent",border:"1px solid transparent",borderRadius:6,boxShadow:"none",cursor:"pointer"},be={boxSizing:"border-box",width:"100%",height:36,padding:"0 10px",font:"inherit",fontSize:"max(1rem,16px)",color:"var(--graview-ink)",background:"var(--graview-panel)",border:"1px solid var(--graview-edge)",borderRadius:8},ye={display:"flex",alignItems:"center",minHeight:30,padding:"4px 8px",borderRadius:6,cursor:"pointer",overflowWrap:"anywhere"},ve={display:"inline-flex",alignItems:"center",minHeight:30,padding:"2px 10px",font:"inherit",fontSize:"0.8125rem",borderRadius:8};export{Ie as QuickAskCard};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as ee,b as E,d as oe,g as se,h as re,i as ie}from"./chunk.
|
|
1
|
+
import{a as ee,b as E,d as oe,g as se,h as re,i as ie}from"./chunk.FSAHO3LV.js";import{Ba as T,E as I,F as w,Fa as Q,H as P,Ha as V,Ja as X,K as b,L as K,M as Y,P as v,R as H,X as $,ca as U,ea as B,ia as G,ma as Z,qb as ne,ra as q,sb as te,ta as J}from"./chunk.X7W27IRI.js";var ce=t=>`${t}${t%100>=11&&t%100<=13?"th":["th","st","nd","rd"][t%10]??"th"}`,fe={day:"day",week:"week",month:"month",year:"year"},R=t=>t.length<2?t[0]??"":`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`;function ye(t,e,n){let o=e.interval??1,i=fe[e.every],a=t.slice(0,10),c=o===1?`Every ${i}`:o===2?`Every other ${i}`:`Every ${o} ${i}s`,d;if(e.every==="week"){let f=(e.on?.length?e.on:[T[new Date(`${a}T00:00:00Z`).getUTCDay()]]).map(l=>H(T.indexOf(l),"long",n));d=o===1?`Every ${R(f)}`:o===2?`Every other ${R(f)}`:`${c} on ${R(f)}`}else if(e.every==="month"){let f=(e.on?.length?e.on:[+a.slice(8,10)]).map(l=>l===-1?"the last day":`the ${ce(Number(l))}`);d=`${c} on ${R(f)}`}else e.every==="year"?d=`${c} on ${v(a,n)}`:d=c;return w.test(t)&&(d+=` at ${Y(t,n)}`),e.until&&(d+=`, until ${b(e.until,n)}`),e.count&&(d+=`, ${e.count===1?"once":`${e.count} times`}`),d}function de(t,e,n={}){if(!V(e)||typeof t!="string")return;let o=n.today??P(),i=X(t,e,o),a=ye(t,e,n.locale),c=i.slice(0,4)===o.slice(0,4)?v(i.slice(0,10),n.locale):b(i.slice(0,10),n.locale);return i.slice(0,10)<o?`${a}, last ${c}`:`${a}, next ${c}`}function Pe(t,e){let n=new Map,o=new Map;for(let i of t){let a=$(e(i.kind),i).trim().toLowerCase();o.set(a,[...o.get(a)??[],i])}for(let i of o.values()){if(i.length<2)continue;let a=new Map;for(let c of i)a.set(c.kind,[...a.get(c.kind)??[],c]);for(let[c,d]of a){if(d.length===1){n.set(d[0].id,B(e(c),c));continue}let f=d.map(y=>new Map(pe(y,e(y.kind)).map(r=>[r.key,r.alone]))),l=[...new Set(f.flatMap(y=>[...y.keys()]))],p=y=>f.every(r=>!/\d/.test(r.get(y)??"")),A=[...l.filter(p),...l.filter(y=>!p(y))].find(y=>new Set(f.map(r=>r.get(y)??"")).size===d.length);d.forEach((y,r)=>{let s=A?f[r].get(A):void 0;n.set(y.id,s??y.id)})}}return n}function Ke(t,e){return t?.describe?t.describe(e):`${e.kind} ${$(t,e)}`}var ue=new Set(["id","kind","label"]);function ge(t,e){if(e.length===0)return!1;let n=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(^|[\\s\xB7,(/])${n}($|[\\s\xB7,)/])`).test(t)}function pe(t,e,n={}){let o=e?.display,i=new Set([...ue,...o?.hide??[]]);typeof t.label=="string"&&e?.label&&!$(e,t).includes(t.label)&&i.delete("label");let a=(n.said??[]).filter(r=>!!r),c=a.filter(r=>r.endsWith("\u2026")).map(r=>r.replace(/…$/,"").trim()).filter(r=>r.length>12),d=[],f=e?.fields?.shape,l=e?.fieldRoles,p=n.glance?o?.glance??[l?.who,l?.when].filter(r=>!!r):ae(o?.page),M=n.glance&&o?.glance!==void 0,y=[...new Set(M?p:[...p,...be(e),...Object.keys(t)])].filter(r=>Object.hasOwn(t,r)).map(r=>[r,t[r]]);for(let[r,s]of y){if(i.has(r)||s===void 0||s===null)continue;let u=o?.format?.[r],k=u?[]:G(s);if(k[0]&&n.glance)continue;let O=e?.fields?.shape?.[r],_=!u&&typeof s=="string"&&Z(O)?s:void 0,x=!u&&typeof s=="string"&&ee(O);if(_&&n.glance)continue;let S=u?void 0:J(O),m=S?{relation:S,refs:q(s,S)}:void 0;if(m&&(n.glance||m.refs.length===0)||!k[0]&&typeof s=="object"&&(!Array.isArray(s)||s.some(g=>typeof g=="object"&&g!==null))&&u===void 0)continue;let j=typeof s=="string"&&!u?de(s,t[`${r}Repeat`],{locale:n.locale}):void 0,F=k[0]?k.map(g=>g.caption?`${g.name} \u2014 ${g.caption}`:g.name).join(", "):Array.isArray(s)?s.join(", "):typeof s=="boolean"?s?"Yes":"No":String(s),N=u?void 0:se(e,r),L=ie(N,s),W=!u&&!N&&typeof s=="number"?ne(e?.fields?.shape?.[r]):void 0,z=m?m.refs.length>1?`${m.refs.length} linked records`:"linked record":u?u(s):W?te(s,W):re(N,s,n.locale)??(Array.isArray(s)||typeof s=="boolean"?F:typeof s=="string"&&j!==void 0?j:typeof s=="string"&&I.test(s)?b(s,n.locale):typeof s=="string"&&w.test(s)?K(s,n.locale):typeof s=="string"&&ke(e,r)?E(e,r,s):F),C=typeof s=="string"&&Ae(e,r,z),h=(n.glance||n.excerpt)&&!u&&(C||x)?oe(z,{markdown:x}):z;if(a.includes(h)||c.some(g=>h.startsWith(g))||n.glance&&(typeof s=="string"||typeof s=="number")&&a.some(g=>ge(g,h)))continue;let D=U(e,r),le=typeof s=="number"?`${D} ${h}`:typeof s=="boolean"&&!u?`${D}: ${h.toLowerCase()}`:h;if(d.push({key:r,label:D,value:h,stored:F,alone:le,long:C,...x?{markdown:!0}:{},...k[0]?{files:k}:{},..._?{app:_}:{},...m?{linked:m}:{},...L?{href:L}:{},...Q(f?.[`${r}Repeat`])?{repeats:!0}:{}}),n.limit!==void 0&&d.length>=n.limit)break}return me(d,e)}function me(t,e){let n=new Map;for(let o of t){let i=he(e,o.key);i&&n.set(o.key,new Set(i.map(a=>E(e,o.key,a).toLowerCase())))}return n.size<2?t:t.map(o=>{let i=n.get(o.key);return i!==void 0&&[...n].some(([c,d])=>c!==o.key&&[...i].some(f=>d.has(f)))?{...o,alone:`${o.label}: ${o.value.toLowerCase()}`}:o})}function he(t,e){let n=t?.fields?.shape?.[e];for(let o=0;o<6&&n?._zod?.def?.innerType!==void 0;o++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"&&n._zod.def.entries?Object.values(n._zod.def.entries).map(String):void 0}function ke(t,e){let n=t?.fields?.shape?.[e];for(let o=0;o<6&&n?._zod?.def?.innerType!==void 0;o++)n=n._zod.def.innerType;return n?._zod?.def?.type==="enum"}function be(t){let e=t?.fields?.shape;return[...Object.keys(e??{}),...Object.keys(t?.computed??{})]}function ae(t){return[...t?.fields??[],...(t?.groups??[]).flatMap(e=>e.fields)]}var we=500,$e=160;function Re(t){let e=t;for(let n=0;n<6&&e?._zod?.def?.innerType!==void 0;n++)e=e._zod.def.innerType;return e?._zod?.def?.type==="string"?e._zod.def:void 0}function Ae(t,e,n){return Re(t?.fields?.shape?.[e])?.checks?.some(i=>i._zod?.def?.check==="max_length"&&(i._zod.def.maximum??0)>we)?!0:typeof n=="string"&&(n.includes(`
|
|
2
2
|
`)||n.length>$e)}function Ye(t,e){let n=t?.display?.page,o=n?.groups??[],i=new Map(e.map(l=>[l.key,l])),a=new Set(ae(n)),c=l=>l.flatMap(p=>i.has(p)?[i.get(p)]:[]),d=e.filter(l=>!a.has(l.key));return[{fields:[...c(n?.fields??[]),...o.length>0?[]:d]},...o.map(l=>({title:l.title,fields:c(l.fields)})),...o.length>0?[{title:"Details",fields:d}]:[]].filter(l=>l.fields.length>0)}export{ye as a,Pe as b,Ke as c,pe as d,Ye as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as P,b}from"./chunk.
|
|
1
|
+
import{a as P,b}from"./chunk.LIIC25G6.js";import"./chunk.577PGFUT.js";import"./chunk.FBY5IUGU.js";import"./chunk.4K5QCJFH.js";import"./chunk.PNVR3CXR.js";import{F as G,Q as O,Y as S}from"./chunk.ZTD2CNC3.js";import{pc as E}from"./chunk.X7W27IRI.js";import{b as v}from"./chunk.AJZBJBMO.js";var o=v(G(),1);var t=v(O(),1);function I(i){for(let d of i)for(let[r,s]of Object.entries(d))if(s===!1)return`${r} == true`;return""}var w={margin:0,fontSize:"0.8125rem",color:"var(--graview-ink-muted)"};function j({ask:i,close:d}){let{store:r,principal:s,subscriptions:m,app:f}=S(),c=(0,o.useRef)(null),p=(0,o.useId)(),[n,u]=(0,o.useState)(0),[l,y]=(0,o.useState)(!0),[h,M]=(0,o.useState)(()=>{let e=i.choices.find(g=>g.on==="reaches");if(!e)return"";let a=e.record!==void 0?r.graph.getNode(e.record):void 0;return I(a?[a]:r.graph.nodesOfKind(e.kind).slice(0,5))}),[C,k]=(0,o.useState)(null),[W,x]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=c.current;e&&!e.open&&e.showModal()},[]);let N=()=>{let e=i.returnTo;d(),requestAnimationFrame(()=>{e?.isConnected?e.focus():document.querySelector("[data-graview-page-title], main h1, [data-testid='activity-button']")?.focus()})},T=e=>e.on==="reaches"?{...e,condition:h}:e,A=e=>b(r,{when:T(e),alsoMine:!l}),z=async()=>{let e=T(i.choices[n]),a=P(r,e);if(a){k(a);return}x(!0);try{await m.add({who:E(s),app:f?.name??"app",when:e,...l?{}:{alsoMine:!0}}),N()}catch(g){x(!1),k(g instanceof Error?g.message:String(g))}};return(0,t.jsx)("dialog",{ref:c,"aria-labelledby":p,"data-testid":"notify-sheet",onClose:N,onClick:e=>{e.target===e.currentTarget&&e.currentTarget.close()},style:{width:"min(92vw, 420px)",padding:0,border:"1px solid var(--graview-edge)",borderRadius:"var(--graview-radius, 12px)",background:"var(--graview-panel)",color:"var(--graview-ink)",boxShadow:"var(--graview-lift-high)"},children:(0,t.jsxs)("form",{method:"dialog",onSubmit:e=>{e.preventDefault(),z()},style:{display:"grid",gap:12,padding:18},children:[(0,t.jsx)("h2",{id:p,style:{margin:0,fontSize:"1.0625rem"},children:"Notify me"}),(0,t.jsxs)("fieldset",{style:{margin:0,padding:0,border:0,display:"grid",gap:6},children:[(0,t.jsx)("legend",{style:{...w,marginBottom:6},children:"Tell me"}),i.choices.map((e,a)=>(0,t.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"baseline",cursor:"pointer"},children:[(0,t.jsx)("input",{type:"radio",name:`${p}-when`,checked:n===a,onChange:()=>u(a),"data-notify-choice":e.on}),(0,t.jsx)("span",{children:e.on==="reaches"?`When ${e.record!==void 0?"it":"one"} reaches a condition`:A(e)})]},a))]}),i.choices[n]?.on==="reaches"?(0,t.jsxs)("label",{style:{display:"grid",gap:4},children:[(0,t.jsx)("span",{style:w,children:"The condition, in the app's own words (done == true, amount > 100)"}),(0,t.jsx)("input",{value:h,onChange:e=>M(e.target.value),"data-testid":"notify-condition",autoComplete:"off",spellCheck:!1})]}):null,(0,t.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,t.jsx)("input",{type:"checkbox",checked:l,onChange:e=>y(e.target.checked),"data-testid":"notify-others-only"}),"Only when someone else does it"]}),(0,t.jsxs)("p",{style:w,"data-testid":"notify-said",children:[A(i.choices[n]),"."]}),C?(0,t.jsx)("p",{role:"alert",style:{margin:0,color:"var(--graview-danger, var(--graview-ink))"},children:C}):null,(0,t.jsxs)("div",{style:{display:"flex",gap:8,justifyContent:"flex-end"},children:[(0,t.jsx)("button",{type:"button",onClick:()=>c.current?.close(),children:"Cancel"}),(0,t.jsx)("button",{type:"submit",autoFocus:!0,disabled:W,"data-testid":"notify-keep",style:{borderColor:"var(--graview-accent)",color:"var(--graview-accent)"},children:"Notify me"})]})]})})}function B({style:i}){let{store:d,principal:r,subscriptions:s,app:m}=S(),f=(r.onBehalfOf??r).id,[c,p]=(0,o.useState)([]);return(0,o.useEffect)(()=>{if(f===void 0)return;let n=!0,u=()=>void Promise.resolve(s.list(f)).then(y=>n&&p(y.filter(h=>h.app===(m?.name??"app"))),()=>n&&p([]));u();let l=s.onChange?.(u);return()=>{n=!1,l?.()}},[s,f,m]),c.length===0?null:(0,t.jsxs)("section",{"aria-label":"What you are told of","data-testid":"notified",style:{display:"grid",gap:6,...i},children:[(0,t.jsx)("span",{style:{fontSize:"0.75rem",letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--graview-ink-faint)"},children:"You are told"}),(0,t.jsx)("ul",{style:{margin:0,padding:0,listStyle:"none",display:"grid",gap:4},children:c.map(n=>(0,t.jsxs)("li",{style:{display:"flex",gap:8,alignItems:"baseline",justifyContent:"space-between"},"data-subscription":n.id,children:[(0,t.jsx)("span",{style:{fontSize:"0.8125rem"},children:b(d,n)}),(0,t.jsx)("button",{type:"button","data-testid":"notify-stop","aria-label":`Stop: ${b(d,n)}`,onClick:u=>{let l=u.currentTarget.closest("li"),y=(l?.nextElementSibling??l?.previousElementSibling)?.querySelector("button");Promise.resolve(s.remove(n.id)).then(()=>(y??document.querySelector("[data-testid='activity-button']"))?.focus())},style:{padding:"1px 8px",fontSize:"0.8125rem"},children:"Stop"})]},n.id))})]})}export{B as NotifiedList,j as NotifySheet};
|
|
@@ -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{b as j}from"./chunk.GYICGZMG.js";import{a as _,b as de,e as pe,f as ue,g as me}from"./chunk.SHTJZ6UX.js";import{b as le}from"./chunk.ULRW47RP.js";import{n as B}from"./chunk.XMC7YDWT.js";import{i as x,j as re,k as ie,q as oe,r as se}from"./chunk.B2GLDIAS.js";import{d as ne,e as ae}from"./chunk.6YCBYL2Y.js";import{b as ee,f as te}from"./chunk.UGFJKSHU.js";import{$ as U,F as fe,Q as X,Y as O,Z as Y,a as Q,xa as Z}from"./chunk.6QWV5MVH.js";import{Z as W,ca as J}from"./chunk.MNP4JI33.js";import{b as D}from"./chunk.AJZBJBMO.js";var p=D(fe(),1);var he=Z(Q(()=>(__graviewPreload(import.meta.url,["./chunk.3HXN4BOY.js","./chunk.GYICGZMG.js","./chunk.SHTJZ6UX.js","./chunk.WVUJXDXZ.js","./chunk.ULRW47RP.js","./chunk.PBSMLINK.js","./chunk.3TY5NFLY.js","./chunk.D75KC3LL.js","./chunk.FWTIUYXH.js","./chunk.MAF7C3VM.js","./chunk.GZHZLJBF.js","./chunk.XMC7YDWT.js","./chunk.6UGEYZAC.js","./chunk.OJGHDWI6.js","./chunk.B2GLDIAS.js","./chunk.6YCBYL2Y.js","./chunk.UGFJKSHU.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.CX3KL2C5.js")))),ce=he.part((i,a)=>i.drawAppLink(a),{quiet:!0});var e=D(X(),1);function G({nodeId:i,field:a,value:l,stored:s=l,said:c}){let{fields:m,commit:o}=B(i),t=m.find(r=>r.field===a),{store:y,principal:E}=O(),u=y.graph.getNode(i)?.kind,g=y.schema.definitions.find(r=>r.kind===u),k=J(g,a),b=k.toLowerCase(),n=c??`${k.charAt(0).toUpperCase()}${k.slice(1)}: ${l}`,[w,I]=(0,p.useState)(!1),d=t?.shape.type==="number"?t.shape.amount:void 0,f=d&&s!==""&&Number.isFinite(Number(s))?re(Number(s),d):s,[v,M]=(0,p.useState)(f),C=(0,p.useRef)(null),K=(0,p.useRef)(null),z=(0,p.useRef)(!1),S=r=>{z.current=r,I(!1)};(0,p.useEffect)(()=>M(f),[f,w]);let q=t?.shape.type==="date";if((0,p.useEffect)(()=>{q&&me()},[q]),(0,p.useEffect)(()=>{w?C.current?.focus():z.current&&(z.current=!1,K.current?.focus())},[w]),!t)return(0,e.jsx)("span",{"data-graview-field":a,"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${b}`,style:{color:"var(--graview-ink)",cursor:"default",overflowWrap:"anywhere"},children:l});if(!w)return(0,e.jsx)("button",{ref:K,type:"button","data-graview-field":a,"data-graview-editable":t.mutation,...n===l?{}:{"aria-label":n},title:`${t.title} \u2014 changes the ${b}, and can be undone`,onClick:()=>I(!0),style:{all:"unset",cursor:"text",display:"inline-flex",alignItems:"flex-end",minHeight:24,minWidth:24,maxWidth:"100%",overflowWrap:"anywhere",paddingBottom:1,borderBottom:"1px dashed var(--graview-edge-bright)",color:"var(--graview-ink)"},children:l});let R=(r,{left:h=!1}={})=>{S(!h),!(r===s||r===""||r===void 0)&&(t.shape.type==="date"&&typeof r=="string"&&ge(r)||o(t,r))},ge=r=>{if(t.shape.type!=="date")return!1;let h=m.filter(L=>L.shape.type==="date"&&L.takesValue),T=se(h.map(L=>L.field),g?.fieldRoles??{}),A=T?.start===a?h.find(L=>L.field===T.end):void 0,N=y.graph.getNode(i)?.[T?.end??""];if(!A||typeof N!="string")return!1;let F=oe(s===""?void 0:s,r,N,{time:t.shape.time===!0,instant:t.shape.instant===!0});if(F===void 0||F===N)return!1;let $=t.call(r),V=A.call(F);return y.applyAll($.name===V.name?[{name:$.name,args:{...$.args,...V.args}}]:[$,V],{author:E}),!0};if(!t.takesValue){let r=[t,...t.alternatives];return(0,e.jsx)("span",{role:"group","aria-label":`Change ${W(a).toLowerCase()}`,"data-graview-field":a,style:{display:"inline-flex",gap:6,alignItems:"center",flexWrap:"wrap"},onKeyDown:h=>{h.key==="Escape"&&S(!0)},children:r.map((h,T)=>(0,e.jsx)("button",{type:"button",ref:T===0?C:void 0,"data-graview-act":h.mutation,onClick:()=>{S(!0),o(h,void 0)},onBlur:A=>{let H=A.relatedTarget;(!H||!A.currentTarget.parentElement?.contains(H))&&S(!1)},style:{padding:"2px 9px",fontSize:"0.8125rem",borderRadius:999},children:h.title},h.mutation))})}return(0,e.jsxs)("form",{style:{display:"inline-flex",flexWrap:"wrap",gap:4,maxWidth:"100%"},onSubmit:r=>{r.preventDefault(),R(ye(t,v))},children:[t.shape.type==="choice"?(0,e.jsx)("select",{ref:C,"aria-label":W(a),"data-graview-field":a,value:v,onChange:r=>R(r.target.value),onBlur:()=>S(!1),style:{font:"inherit",fontSize:"inherit"},children:t.shape.options.map(r=>(0,e.jsx)("option",{value:r,children:ee(g,a,r)},r))}):t.shape.type==="date"?(0,e.jsx)(ue,{inputRef:C,label:W(a),value:v===""?void 0:v,time:t.shape.time===!0,instant:t.shape.instant===!0,onChange:r=>M(r??""),onLeave:r=>R(r,{left:!0}),onCancel:()=>S(!0),autoSelect:!0,boxStyle:{fontSize:"inherit",minHeight:24,padding:"0 3px"}}):(0,e.jsxs)(e.Fragment,{children:[d&&x(d).prefix?(0,e.jsx)("span",{"aria-hidden":"true",children:x(d).prefix}):null,(0,e.jsx)("input",{ref:C,"aria-label":d?`${W(a)}, ${x(d).hint}`:W(a),"data-graview-field":a,...d?{inputMode:"decimal",placeholder:x(d).placeholder,"data-graview-amount":d.format??"unit"}:{},type:d?"text":t.shape.type==="number"&&!t.shape.duration?"number":"text",...t.shape.type==="number"&&t.shape.duration?{placeholder:"1h 30m"}:{},...t.shape.type==="text"&&t.shape.holds==="phone"?{inputMode:"tel",autoComplete:"tel"}:{},...t.shape.type==="number"&&t.shape.min!==void 0&&!d?{min:t.shape.min}:{},...t.shape.type==="number"&&t.shape.max!==void 0&&!d?{max:t.shape.max}:{},...t.shape.type==="number"&&t.shape.step!==void 0&&!d?{step:t.shape.step}:{},value:v,onChange:r=>M(r.target.value),onBlur:()=>R(ye(t,v),{left:!0}),onKeyDown:r=>{r.key==="Escape"&&S(!0)},style:{font:"inherit",fontSize:"inherit",width:`min(${Math.max(6,v.length+1)}ch, 100%)`,maxWidth:"100%",minWidth:0,boxSizing:"border-box",minHeight:24,display:"inline-flex",alignItems:"center",padding:"0 3px"}}),d&&x(d).suffix?(0,e.jsx)("span",{"aria-hidden":"true",children:x(d).suffix}):null]}),t.open.length>0?(0,e.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["also needs ",t.open.map(r=>r.name).join(", ")]}):null]})}function ye(i,a){return i.shape.type==="number"&&i.shape.amount?ie(a,i.shape.amount):i.shape.type==="number"?i.shape.duration?te(a)??a:Number(a):i.shape.type==="text"&&i.shape.holds?a.trim():a}function ke({href:i,field:a,value:l,stored:s,nodeId:c}){let m=i.startsWith("tel:"),o=(t,y)=>(0,e.jsx)("a",{href:i,"data-graview-link":a,...y?{"aria-label":y}:{},...m?{}:{target:"_blank",rel:"noopener noreferrer"},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,maxWidth:"100%",overflowWrap:"anywhere",color:"var(--graview-accent)"},children:t});return c===void 0?o(l):(0,e.jsxs)("span",{style:{display:"inline-flex",flexWrap:"wrap",alignItems:"center",gap:"0 10px",maxWidth:"100%"},children:[(0,e.jsx)(G,{nodeId:c,field:a,value:l,...s===void 0?{}:{stored:s}}),o(m?"Call":"Map",m?`Call ${l}`:`Open ${l} in maps`)]})}function Ve({id:i,hide:a=[],limit:l=10,labels:s={},shown:c=[]}){let{store:m}=O(),o=U(i);if(!o)return null;let t=m.schema.tryDefinition(o.kind),y=ne(o,t,{limit:l,said:c}).filter(u=>!a.includes(u.key)),E=le(t).length>0;return y.length===0&&!E?null:(0,e.jsxs)("div",{"data-graview-fields":o.id,style:{display:"grid",gap:14,alignContent:"start",minWidth:0,fontSize:"0.875rem"},children:[ae(t,y).map((u,g)=>{let k=(0,e.jsx)("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto 1fr",gap:"5px 16px",alignContent:"start",minWidth:0},children:u.fields.map(n=>n.files?(0,e.jsx)(_,{as:"field",nodeId:o.id,field:n.key,label:s[n.key]??n.label,files:n.files,labelStyle:P,style:{marginTop:6}},n.key):n.long?(0,e.jsx)(be,{nodeId:o.id,field:n.key,label:s[n.key]??n.label,value:n.value,markdown:n.markdown,labelStyle:P,style:{gridColumn:"1 / -1",marginTop:6}},n.key):(0,e.jsxs)("div",{style:{display:"contents"},children:[(0,e.jsx)("dt",{style:{...P,whiteSpace:"nowrap"},children:s[n.key]??n.label}),(0,e.jsxs)("dd",{style:{margin:0,minWidth:0},children:[n.linked?(0,e.jsx)(de,{relation:n.linked.relation,refs:n.linked.refs,nodeId:o.id,field:n.key}):n.app?(0,e.jsx)(ce,{address:n.app,as:"record",nodeId:o.id,field:n.key}):n.href?(0,e.jsx)(ke,{href:n.href,field:n.key,value:n.value,stored:n.stored,nodeId:o.id}):(0,e.jsx)(G,{nodeId:o.id,field:n.key,value:n.value,stored:n.stored}),n.repeats?(0,e.jsx)(pe,{nodeId:o.id,field:n.key,start:o[n.key],value:o[`${n.key}Repeat`],label:`${s[n.key]??n.label} repeats`}):null]})]},n.key))});if(!u.title)return(0,e.jsx)("div",{children:k},g);let b=`graview-field-group-${o.id}-${g}`;return(0,e.jsxs)("div",{role:"group","aria-labelledby":b,style:{display:"grid",gap:6,minWidth:0},children:[(0,e.jsx)("p",{id:b,"data-graview-field-group":u.title,style:ve,children:u.title}),k]},g)}),E?(0,e.jsx)(_,{as:"unfilled",nodeId:o.id,skip:a,labels:s,labelStyle:P}):null]})}var P={color:"var(--graview-ink-faint)",fontSize:"0.8125rem"},ve={margin:0,fontSize:"0.75rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)",fontWeight:560};function be(i){return Y()?(0,e.jsx)(Se,{...i}):(0,e.jsx)(we,{...i})}function we({field:i,label:a,value:l,labelStyle:s,valueStyle:c,style:m,markdown:o}){return(0,e.jsxs)("div",{"data-graview-long":i,style:{display:"grid",gap:6,minWidth:0,...m},children:[(0,e.jsx)("dt",{style:s,children:a}),(0,e.jsx)("dd",{style:{margin:0,minWidth:0,...c},children:(0,e.jsx)("div",{"data-graview-field":i,children:(0,e.jsx)(j,{text:l,markdown:o})})})]})}function Se({nodeId:i,field:a,label:l,value:s,labelStyle:c,valueStyle:m,style:o,markdown:t}){let{fields:y,commit:E}=B(i),u=y.find(f=>f.field===a&&f.takesValue),[g,k]=(0,p.useState)(!1),b=(0,p.useRef)(null),n=(0,p.useRef)(!1);(0,p.useEffect)(()=>{!g&&n.current&&(n.current=!1,b.current?.focus())},[g]);let w=f=>{n.current=f,k(!1)},I=l.toLowerCase(),d=(0,e.jsx)(j,{text:s,markdown:t});return(0,e.jsxs)("div",{"data-graview-long":a,style:{display:"grid",gap:6,minWidth:0,...o},children:[(0,e.jsxs)("dt",{style:{display:"flex",alignItems:"baseline",gap:10,...c},children:[(0,e.jsx)("span",{children:l}),u&&!g?(0,e.jsx)("button",{ref:b,type:"button","data-graview-editable":u.mutation,"aria-label":`Edit the ${I}`,title:`${u.title} \u2014 changes the ${I}, and can be undone`,onClick:()=>k(!0),style:Ee,children:"Edit"}):null]}),(0,e.jsx)("dd",{style:{margin:0,minWidth:0,...m},children:g&&u?(0,e.jsx)(p.Suspense,{fallback:d,children:(0,e.jsx)(xe,{field:a,label:l,value:s,...t?{markdown:!0}:{},onCancel:()=>w(!0),onSave:(f,v)=>{w(!v),f!==s&&E(u,f)}})}):(0,e.jsx)("div",{"data-graview-field":a,...u?{}:{"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${I}`},...u?{onClick:()=>k(!0)}:{},style:{cursor:u?"text":"default",minWidth:0},children:d})})]})}var xe=(0,p.lazy)(()=>(__graviewPreload(import.meta.url,["./chunk.GYICGZMG.js","./chunk.JOOQUWLT.js","./chunk.6QWV5MVH.js","./chunk.MNP4JI33.js","./chunk.AJZBJBMO.js"]),import("./chunk.3TVXGJTU.js"))),Ee={all:"unset",cursor:"pointer",fontSize:"0.75rem",letterSpacing:"normal",textTransform:"none",color:"var(--graview-accent)",borderBottom:"1px dashed currentColor",minHeight:24,minWidth:24,display:"inline-flex",alignItems:"flex-end"};function De({nodeId:i,children:a}){let{fields:l}=B(i),s=U(i);if(!s)return(0,e.jsx)(e.Fragment,{children:a});let c=l.find(m=>{let o=s[m.field];return typeof o=="string"&&o===a});return c?(0,e.jsx)(G,{nodeId:i,field:c.field,value:a,said:a}):(0,e.jsx)(e.Fragment,{children:a})}export{ce as a,G as b,ke as c,Ve as d,be as e,De as f};
|
|
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{b as j}from"./chunk.7HPPJVIV.js";import{a as _,b as de,e as pe,f as ue,g as me}from"./chunk.JZBBGY4B.js";import{b as le}from"./chunk.52QAIGCD.js";import{n as B}from"./chunk.WLBXBNNH.js";import{i as x,j as re,k as ie,q as oe,r as se}from"./chunk.Z7ZCR4LN.js";import{d as ne,e as ae}from"./chunk.RIW7SQH4.js";import{b as ee,f as te}from"./chunk.FSAHO3LV.js";import{$ as U,F as fe,Q as X,Y as O,Z as Y,a as Q,xa as Z}from"./chunk.ZTD2CNC3.js";import{Z as W,ca as J}from"./chunk.X7W27IRI.js";import{b as D}from"./chunk.AJZBJBMO.js";var p=D(fe(),1);var he=Z(Q(()=>(__graviewPreload(import.meta.url,["./chunk.RYEAMM73.js","./chunk.7HPPJVIV.js","./chunk.JZBBGY4B.js","./chunk.WVUJXDXZ.js","./chunk.52QAIGCD.js","./chunk.PPUAPAWR.js","./chunk.IHFNLKXV.js","./chunk.577PGFUT.js","./chunk.FBY5IUGU.js","./chunk.4K5QCJFH.js","./chunk.GZHZLJBF.js","./chunk.WLBXBNNH.js","./chunk.7MTX33WD.js","./chunk.OJGHDWI6.js","./chunk.Z7ZCR4LN.js","./chunk.RIW7SQH4.js","./chunk.FSAHO3LV.js","./chunk.PNVR3CXR.js","./chunk.ZTD2CNC3.js","./chunk.X7W27IRI.js","./chunk.AJZBJBMO.js"]),import("./chunk.TCSZZAYB.js")))),ce=he.part((i,a)=>i.drawAppLink(a),{quiet:!0});var e=D(X(),1);function G({nodeId:i,field:a,value:l,stored:s=l,said:c}){let{fields:m,commit:o}=B(i),t=m.find(r=>r.field===a),{store:y,principal:E}=O(),u=y.graph.getNode(i)?.kind,g=y.schema.definitions.find(r=>r.kind===u),k=J(g,a),b=k.toLowerCase(),n=c??`${k.charAt(0).toUpperCase()}${k.slice(1)}: ${l}`,[w,I]=(0,p.useState)(!1),d=t?.shape.type==="number"?t.shape.amount:void 0,f=d&&s!==""&&Number.isFinite(Number(s))?re(Number(s),d):s,[v,M]=(0,p.useState)(f),C=(0,p.useRef)(null),K=(0,p.useRef)(null),z=(0,p.useRef)(!1),S=r=>{z.current=r,I(!1)};(0,p.useEffect)(()=>M(f),[f,w]);let q=t?.shape.type==="date";if((0,p.useEffect)(()=>{q&&me()},[q]),(0,p.useEffect)(()=>{w?C.current?.focus():z.current&&(z.current=!1,K.current?.focus())},[w]),!t)return(0,e.jsx)("span",{"data-graview-field":a,"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${b}`,style:{color:"var(--graview-ink)",cursor:"default",overflowWrap:"anywhere"},children:l});if(!w)return(0,e.jsx)("button",{ref:K,type:"button","data-graview-field":a,"data-graview-editable":t.mutation,...n===l?{}:{"aria-label":n},title:`${t.title} \u2014 changes the ${b}, and can be undone`,onClick:()=>I(!0),style:{all:"unset",cursor:"text",display:"inline-flex",alignItems:"flex-end",minHeight:24,minWidth:24,maxWidth:"100%",overflowWrap:"anywhere",paddingBottom:1,borderBottom:"1px dashed var(--graview-edge-bright)",color:"var(--graview-ink)"},children:l});let R=(r,{left:h=!1}={})=>{S(!h),!(r===s||r===""||r===void 0)&&(t.shape.type==="date"&&typeof r=="string"&&ge(r)||o(t,r))},ge=r=>{if(t.shape.type!=="date")return!1;let h=m.filter(L=>L.shape.type==="date"&&L.takesValue),T=se(h.map(L=>L.field),g?.fieldRoles??{}),A=T?.start===a?h.find(L=>L.field===T.end):void 0,N=y.graph.getNode(i)?.[T?.end??""];if(!A||typeof N!="string")return!1;let F=oe(s===""?void 0:s,r,N,{time:t.shape.time===!0,instant:t.shape.instant===!0});if(F===void 0||F===N)return!1;let $=t.call(r),V=A.call(F);return y.applyAll($.name===V.name?[{name:$.name,args:{...$.args,...V.args}}]:[$,V],{author:E}),!0};if(!t.takesValue){let r=[t,...t.alternatives];return(0,e.jsx)("span",{role:"group","aria-label":`Change ${W(a).toLowerCase()}`,"data-graview-field":a,style:{display:"inline-flex",gap:6,alignItems:"center",flexWrap:"wrap"},onKeyDown:h=>{h.key==="Escape"&&S(!0)},children:r.map((h,T)=>(0,e.jsx)("button",{type:"button",ref:T===0?C:void 0,"data-graview-act":h.mutation,onClick:()=>{S(!0),o(h,void 0)},onBlur:A=>{let H=A.relatedTarget;(!H||!A.currentTarget.parentElement?.contains(H))&&S(!1)},style:{padding:"2px 9px",fontSize:"0.8125rem",borderRadius:999},children:h.title},h.mutation))})}return(0,e.jsxs)("form",{style:{display:"inline-flex",flexWrap:"wrap",gap:4,maxWidth:"100%"},onSubmit:r=>{r.preventDefault(),R(ye(t,v))},children:[t.shape.type==="choice"?(0,e.jsx)("select",{ref:C,"aria-label":W(a),"data-graview-field":a,value:v,onChange:r=>R(r.target.value),onBlur:()=>S(!1),style:{font:"inherit",fontSize:"inherit"},children:t.shape.options.map(r=>(0,e.jsx)("option",{value:r,children:ee(g,a,r)},r))}):t.shape.type==="date"?(0,e.jsx)(ue,{inputRef:C,label:W(a),value:v===""?void 0:v,time:t.shape.time===!0,instant:t.shape.instant===!0,onChange:r=>M(r??""),onLeave:r=>R(r,{left:!0}),onCancel:()=>S(!0),autoSelect:!0,boxStyle:{fontSize:"inherit",minHeight:24,padding:"0 3px"}}):(0,e.jsxs)(e.Fragment,{children:[d&&x(d).prefix?(0,e.jsx)("span",{"aria-hidden":"true",children:x(d).prefix}):null,(0,e.jsx)("input",{ref:C,"aria-label":d?`${W(a)}, ${x(d).hint}`:W(a),"data-graview-field":a,...d?{inputMode:"decimal",placeholder:x(d).placeholder,"data-graview-amount":d.format??"unit"}:{},type:d?"text":t.shape.type==="number"&&!t.shape.duration?"number":"text",...t.shape.type==="number"&&t.shape.duration?{placeholder:"1h 30m"}:{},...t.shape.type==="text"&&t.shape.holds==="phone"?{inputMode:"tel",autoComplete:"tel"}:{},...t.shape.type==="number"&&t.shape.min!==void 0&&!d?{min:t.shape.min}:{},...t.shape.type==="number"&&t.shape.max!==void 0&&!d?{max:t.shape.max}:{},...t.shape.type==="number"&&t.shape.step!==void 0&&!d?{step:t.shape.step}:{},value:v,onChange:r=>M(r.target.value),onBlur:()=>R(ye(t,v),{left:!0}),onKeyDown:r=>{r.key==="Escape"&&S(!0)},style:{font:"inherit",fontSize:"inherit",width:`min(${Math.max(6,v.length+1)}ch, 100%)`,maxWidth:"100%",minWidth:0,boxSizing:"border-box",minHeight:24,display:"inline-flex",alignItems:"center",padding:"0 3px"}}),d&&x(d).suffix?(0,e.jsx)("span",{"aria-hidden":"true",children:x(d).suffix}):null]}),t.open.length>0?(0,e.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--graview-ink-faint)"},children:["also needs ",t.open.map(r=>r.name).join(", ")]}):null]})}function ye(i,a){return i.shape.type==="number"&&i.shape.amount?ie(a,i.shape.amount):i.shape.type==="number"?i.shape.duration?te(a)??a:Number(a):i.shape.type==="text"&&i.shape.holds?a.trim():a}function ke({href:i,field:a,value:l,stored:s,nodeId:c}){let m=i.startsWith("tel:"),o=(t,y)=>(0,e.jsx)("a",{href:i,"data-graview-link":a,...y?{"aria-label":y}:{},...m?{}:{target:"_blank",rel:"noopener noreferrer"},style:{display:"inline-flex",alignItems:"center",minHeight:24,minWidth:24,maxWidth:"100%",overflowWrap:"anywhere",color:"var(--graview-accent)"},children:t});return c===void 0?o(l):(0,e.jsxs)("span",{style:{display:"inline-flex",flexWrap:"wrap",alignItems:"center",gap:"0 10px",maxWidth:"100%"},children:[(0,e.jsx)(G,{nodeId:c,field:a,value:l,...s===void 0?{}:{stored:s}}),o(m?"Call":"Map",m?`Call ${l}`:`Open ${l} in maps`)]})}function Ve({id:i,hide:a=[],limit:l=10,labels:s={},shown:c=[]}){let{store:m}=O(),o=U(i);if(!o)return null;let t=m.schema.tryDefinition(o.kind),y=ne(o,t,{limit:l,said:c}).filter(u=>!a.includes(u.key)),E=le(t).length>0;return y.length===0&&!E?null:(0,e.jsxs)("div",{"data-graview-fields":o.id,style:{display:"grid",gap:14,alignContent:"start",minWidth:0,fontSize:"0.875rem"},children:[ae(t,y).map((u,g)=>{let k=(0,e.jsx)("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto 1fr",gap:"5px 16px",alignContent:"start",minWidth:0},children:u.fields.map(n=>n.files?(0,e.jsx)(_,{as:"field",nodeId:o.id,field:n.key,label:s[n.key]??n.label,files:n.files,labelStyle:P,style:{marginTop:6}},n.key):n.long?(0,e.jsx)(be,{nodeId:o.id,field:n.key,label:s[n.key]??n.label,value:n.value,markdown:n.markdown,labelStyle:P,style:{gridColumn:"1 / -1",marginTop:6}},n.key):(0,e.jsxs)("div",{style:{display:"contents"},children:[(0,e.jsx)("dt",{style:{...P,whiteSpace:"nowrap"},children:s[n.key]??n.label}),(0,e.jsxs)("dd",{style:{margin:0,minWidth:0},children:[n.linked?(0,e.jsx)(de,{relation:n.linked.relation,refs:n.linked.refs,nodeId:o.id,field:n.key}):n.app?(0,e.jsx)(ce,{address:n.app,as:"record",nodeId:o.id,field:n.key}):n.href?(0,e.jsx)(ke,{href:n.href,field:n.key,value:n.value,stored:n.stored,nodeId:o.id}):(0,e.jsx)(G,{nodeId:o.id,field:n.key,value:n.value,stored:n.stored}),n.repeats?(0,e.jsx)(pe,{nodeId:o.id,field:n.key,start:o[n.key],value:o[`${n.key}Repeat`],label:`${s[n.key]??n.label} repeats`}):null]})]},n.key))});if(!u.title)return(0,e.jsx)("div",{children:k},g);let b=`graview-field-group-${o.id}-${g}`;return(0,e.jsxs)("div",{role:"group","aria-labelledby":b,style:{display:"grid",gap:6,minWidth:0},children:[(0,e.jsx)("p",{id:b,"data-graview-field-group":u.title,style:ve,children:u.title}),k]},g)}),E?(0,e.jsx)(_,{as:"unfilled",nodeId:o.id,skip:a,labels:s,labelStyle:P}):null]})}var P={color:"var(--graview-ink-faint)",fontSize:"0.8125rem"},ve={margin:0,fontSize:"0.75rem",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--graview-ink-muted)",fontWeight:560};function be(i){return Y()?(0,e.jsx)(Se,{...i}):(0,e.jsx)(we,{...i})}function we({field:i,label:a,value:l,labelStyle:s,valueStyle:c,style:m,markdown:o}){return(0,e.jsxs)("div",{"data-graview-long":i,style:{display:"grid",gap:6,minWidth:0,...m},children:[(0,e.jsx)("dt",{style:s,children:a}),(0,e.jsx)("dd",{style:{margin:0,minWidth:0,...c},children:(0,e.jsx)("div",{"data-graview-field":i,children:(0,e.jsx)(j,{text:l,markdown:o})})})]})}function Se({nodeId:i,field:a,label:l,value:s,labelStyle:c,valueStyle:m,style:o,markdown:t}){let{fields:y,commit:E}=B(i),u=y.find(f=>f.field===a&&f.takesValue),[g,k]=(0,p.useState)(!1),b=(0,p.useRef)(null),n=(0,p.useRef)(!1);(0,p.useEffect)(()=>{!g&&n.current&&(n.current=!1,b.current?.focus())},[g]);let w=f=>{n.current=f,k(!1)},I=l.toLowerCase(),d=(0,e.jsx)(j,{text:s,markdown:t});return(0,e.jsxs)("div",{"data-graview-long":a,style:{display:"grid",gap:6,minWidth:0,...o},children:[(0,e.jsxs)("dt",{style:{display:"flex",alignItems:"baseline",gap:10,...c},children:[(0,e.jsx)("span",{children:l}),u&&!g?(0,e.jsx)("button",{ref:b,type:"button","data-graview-editable":u.mutation,"aria-label":`Edit the ${I}`,title:`${u.title} \u2014 changes the ${I}, and can be undone`,onClick:()=>k(!0),style:Ee,children:"Edit"}):null]}),(0,e.jsx)("dd",{style:{margin:0,minWidth:0,...m},children:g&&u?(0,e.jsx)(p.Suspense,{fallback:d,children:(0,e.jsx)(xe,{field:a,label:l,value:s,...t?{markdown:!0}:{},onCancel:()=>w(!0),onSave:(f,v)=>{w(!v),f!==s&&E(u,f)}})}):(0,e.jsx)("div",{"data-graview-field":a,...u?{}:{"data-graview-readonly":"",title:`Read-only \u2014 nothing this app declares changes the ${I}`},...u?{onClick:()=>k(!0)}:{},style:{cursor:u?"text":"default",minWidth:0},children:d})})]})}var xe=(0,p.lazy)(()=>(__graviewPreload(import.meta.url,["./chunk.7HPPJVIV.js","./chunk.PNVR3CXR.js","./chunk.ZTD2CNC3.js","./chunk.X7W27IRI.js","./chunk.AJZBJBMO.js"]),import("./chunk.35KI7XYV.js"))),Ee={all:"unset",cursor:"pointer",fontSize:"0.75rem",letterSpacing:"normal",textTransform:"none",color:"var(--graview-accent)",borderBottom:"1px dashed currentColor",minHeight:24,minWidth:24,display:"inline-flex",alignItems:"flex-end"};function De({nodeId:i,children:a}){let{fields:l}=B(i),s=U(i);if(!s)return(0,e.jsx)(e.Fragment,{children:a});let c=l.find(m=>{let o=s[m.field];return typeof o=="string"&&o===a});return c?(0,e.jsx)(G,{nodeId:i,field:c.field,value:a,said:a}):(0,e.jsx)(e.Fragment,{children:a})}export{ce as a,G as b,ke as c,Ve as d,be as e,De as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as o,m as u}from"./chunk.
|
|
1
|
+
import{h as o,m as u}from"./chunk.ZTD2CNC3.js";function c(t,n,i){let e=r=>encodeURIComponent(r);return`${o}${e(t)}:${e(n)}:${e(i)}`}function S(t,n,i){let e=new Set(t.shown??[]);if(i?e.add(n):e.delete(n),e.size===0){let{shown:r,...w}=t;return w}return{...t,shown:[...e].sort()}}function l(t,n){if(n===null||n.trim().length===0){let{q:i,...e}=t;return e}return{...t,q:n}}function p(t){let n=t.q!==void 0&&t.within?.q===t.q;return l(n?u(t,"q",null):t,null)}function h(t,n){if(!n){let{past:i,...e}=t;return e}return{...t,past:!0}}function f(t,n){if(n===null||n.x===0&&n.y===0){let{pan:i,...e}=t;return e}return{...t,pan:n}}function d(t,n,i){let e={...t.pins};return i===null?delete e[n]:e[n]=i,{...t,pins:e}}export{c as a,S as b,l as c,p as d,h as e,f,d as g};
|