@graphysdk/react-renderer 1.9.0-beta.1791403305083 → 1.9.0-beta.1791444651663

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/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const a=require("./history-chords-Dbx6jyaY.cjs"),pe=require("./theme.contract.css-WAhjj7zh.cjs");let g=require("@graphysdk/viz-engine"),l=require("react"),o=require("react/jsx-runtime"),Y=require("zustand"),K=require("motion/react"),z=require("zustand/vanilla"),V=require("clsx");V=a.__toESM(V,1);var ve="_1a5iqpb0",fe="_1a5iqpb1";var Se="_1a5iqpb3",ye="_1a5iqpb4",be="_1a5iqpb5";var W=({errors:e})=>{const[t,...r]=e;return(0,o.jsxs)("div",{role:"alert",className:ve,children:[(0,o.jsx)("strong",{className:fe,children:"This chart could not be rendered."}),t&&(0,o.jsx)(Q,{diagnostic:t}),r.length>0&&(0,o.jsx)("ul",{className:"_1a5iqpb2",children:r.map((s,n)=>(0,o.jsx)("li",{children:(0,o.jsx)(Q,{diagnostic:s})},`${s.code}-${n}`))})]})},Q=({diagnostic:e})=>(0,o.jsxs)("div",{className:Se,children:[(0,o.jsx)("span",{className:ye,children:e.code}),(0,o.jsx)("p",{className:be,children:e.message}),e.suggestion&&(0,o.jsx)("p",{className:"_1a5iqpb6",children:e.suggestion})]});function Ee(e=[],t=[]){return e.length===t.length&&e.every((r,s)=>Object.is(r,t[s]))}var re=class extends l.Component{constructor(...e){super(...e),this.state={caughtDiagnostic:null}}static getDerivedStateFromError(e){return{caughtDiagnostic:(0,g.buildDiagnostic)(e)}}componentDidCatch(e,t){const r=(0,g.buildDiagnostic)(e);a.logDiagnostics([r]),this.props.onError?.([r]),console.error("Chart render component stack:",t.componentStack)}componentDidUpdate(e){this.state.caughtDiagnostic&&!Ee(e.resetKeys,this.props.resetKeys)&&this.setState({caughtDiagnostic:null})}render(){const{caughtDiagnostic:e}=this.state;if(e)return(0,o.jsx)(W,{errors:[e]});const{forcedErrors:t,children:r}=this.props;return t&&t.length>0?(0,o.jsx)(W,{errors:t}):r}},se={},ne=(0,l.createContext)(se),M=({shapes:e=se,children:t})=>(0,o.jsx)(ne.Provider,{value:e,children:t}),U=()=>(0,l.useContext)(ne),oe=e=>typeof e=="object"&&"geom"in e&&"render"in e,ae=e=>{const t=(0,g.resolveDefinition)(e);return t instanceof g.Geom?t:null},ie=(e,t)=>{const r=e.filter(s=>Te(s,t));return r.length===e.length?e:r},Te=(e,t)=>e.kind==="annotation"?(0,g.findAnnotation)(t.annotations,e.id)!==null:e.kind==="observations"||e.kind==="layer"&&e.layerId!==void 0?(0,g.findLayerById)(t.layers,e.layerId)!==void 0:!0,J=[],xe=()=>(0,z.createStore)(e=>({selection:J,setSelection:t=>e(r=>Ge(r.selection,t)?r:{selection:t}),clearSelection:()=>e(t=>t.selection.length===0?t:{selection:J})})),Ge=(e,t)=>e===t?!0:e.length!==t.length?!1:e.every((r,s)=>{const n=t[s];return n!==void 0&&(0,g.areEditTargetsEqual)(r,n)}),Re=process.env.NODE_ENV!=="production",Ce=5,je=e=>{if(!Re)return{emit:()=>{},subscribe:()=>De,getLastTrigger:()=>null,getLastCompile:()=>null,getCacheStats:()=>e.getCacheStats()};const t=new Set;let r=null;return{emit:s=>{const n=e.getLastCompile();if(n){r=s;for(const u of t)u(s,n)}},subscribe:s=>(t.add(s),()=>{t.delete(s)}),getLastTrigger:()=>r,getLastCompile:()=>e.getLastCompile(),getCacheStats:()=>e.getCacheStats()}},Ne=()=>(0,z.createStore)(e=>({lastCompile:null,history:[],nextId:1,lastSnapshot:null,recordCompile:(t,r)=>e(s=>{if(s.lastSnapshot===r)return s;const n={id:s.nextId,label:_e(t),stages:r.stages,stageDurationsMs:r.stageDurationsMs,durationMs:r.durationMs};return{lastCompile:n,history:Pe(s.history,n,Ce),nextId:s.nextId+1,lastSnapshot:r}})})),De=()=>{},_e=e=>{switch(e.kind){case"init":return"init";case"spec":return"spec change";case"data":return"data change";case"command":return e.command.metadata.description}},Pe=(e,t,r)=>{const s=e.length>=r?e.length-(r-1):0;return[...e.slice(s),t]};function qe(e,t){let r;return e.layers.flatMap((s,n)=>a.isOverlayHosted(t(s.geom,e.coordSystem.type))?Ae(s)?(r??=(0,g.createStyleResolver)().readers(e),Oe(s,r.geom(s))?[{kind:"user-input",severity:"warning",code:"INVALID_STYLE_RULE",message:`Style 'overlay' is not supported on portal-rendered geom '${s.geom}' (layer '${s.id}'); it is ignored.`,context:{param:"overlay",layerIndex:n,requested:s.geom},suggestion:"Remove the geom overlay or use a renderer that paints inside the panel SVG."}]:[]):[]:[])}function Z(e){const t=e.filter(oe),r=new Set([...Object.keys(a.BUILT_IN_GEOM_RENDERERS),...t.map(d=>d.geom)]),s=[],n=new Set;for(const d of e){const h=ae(d);h===null||r.has(h.type)||n.has(h.type)||(n.add(h.type),s.push({kind:"user-input",severity:"error",code:"MISSING_GEOM_RENDERER",message:`Custom geom '${h.type}' is registered but has no renderer.`,context:{requested:h.type,kind:"geom-renderer"},suggestion:`Add a render half for it: \`defineGeomRenderer(${h.type}Geom, { coord, render })\`, then include it in \`plugins\`.`}))}const u=new Map;for(const d of t){if("definition"in d)continue;const h=`${d.geom}|${d.coord}`,v=u.get(h);v?v.count+=1:u.set(h,{geom:d.geom,coord:d.coord,count:1})}const c=[];for(const{geom:d,coord:h,count:v}of u.values())v<2||c.push({kind:"user-input",severity:"warning",code:"DUPLICATE_REGISTERED_TYPE",message:`Multiple render-only overrides register ('${d}', '${h}') (${v} entries); the last in the array wins.`,context:{requested:`${d}@${h}`,kind:"geom-renderer"},suggestion:`Keep a single render-only override for ('${d}', '${h}').`});return c.push(...$e(e)),{errors:s,warnings:c}}function Ie(e,t){const{coordSystem:r,layers:s}=e,n=new Set,u=[];for(const c of s)t(c.geom,r.type)!==null||n.has(c.geom)||(n.add(c.geom),u.push({kind:"user-input",severity:"warning",code:"MISSING_GEOM_RENDERER",message:`No renderer for geom '${c.geom}' under ${r.type} coords; the layer is not painted.`,context:{requested:c.geom,kind:"geom-renderer"},suggestion:`Register a renderer for ('${c.geom}', '${r.type}') via \`defineGeomRenderer\`.`}));return u}function ke(e,t){const{coordSystem:r,layers:s}=e,n=new Set,u=[];for(const c of s){if(c.interactive===!1||c.spatialKind!=="render-hit-test"||n.has(c.geom))continue;const d=t(c.geom,r.type);d===null||d.hitTest||a.isOverlayHosted(d)||(n.add(c.geom),u.push({kind:"user-input",severity:"warning",code:"MISSING_RENDER_HIT_TEST",message:`Geom '${c.geom}' declares spatialKind 'render-hit-test' but its renderer provides no hit-test; the layer has no hover.`,context:{requested:c.geom,kind:"geom-renderer"},suggestion:`Add a \`hitTest\` factory (precomputed geometry) or an overlay render (\`{ fn, options: { overlay: true } }\`, live simulation) to the renderer for ('${c.geom}', '${r.type}').`}))}return u}function Le(e){const t=new Set,r=[];for(const s of e.layers){const n=s.identityKey;s.interactive!==!1&&(s.spatialKind!=="render-hit-test"||typeof n!="object"||t.has(s.geom)||s.data.hasVariable(n.variable)||(t.add(s.geom),r.push({kind:"user-input",severity:"warning",code:"RENDER_HIT_TEST_IDENTITY",message:`Geom '${s.geom}' keys its identity on '${n.variable}', a column its compile output does not emit; its hover lookup is empty.`,context:{requested:s.geom,kind:"geom-renderer"},suggestion:`Emit the '${n.variable}' column from the geom's \`compile()\`, or point \`identityKey\` at a column it does emit.`})))}return r}function we(e,t){const{coordSystem:r,layers:s}=e,n=new Set,u=[];for(const c of s){if(c.interactive===!1||c.spatialKind!=="render-hit-test"||n.has(c.geom))continue;const d=t(c.geom,r.type);d===null||!d.hitTest||!a.isOverlayHosted(d)||(n.add(c.geom),u.push({kind:"user-input",severity:"warning",code:"CONFLICTING_RENDER_HIT_TEST",message:`Geom '${c.geom}' declares both a \`hitTest\` factory and an overlay render; these are alternatives, so only the overlay is used.`,context:{requested:c.geom,kind:"geom-renderer"},suggestion:"Keep one: a `hitTest` factory for precomputed geometry, OR an overlay render (`{ fn, options: { overlay: true } }`) for a live simulation."}))}return u}function Me(e,t){const r=new Set,s=[];for(const n of e.layers)n.interactive!==!1&&(n.spatialKind!=="render-hit-test"||r.has(n.geom)||t.hasCapability(n.geom)||(r.add(n.geom),s.push({kind:"user-input",severity:"warning",code:"MISSING_ANCHOR_CAPABILITY",message:`Geom '${n.geom}' declares no \`resolveAnchorPosition\`; its observations cannot be annotated, so the editor overlay paints no creation trigger on them.`,context:{requested:n.geom,kind:"geom-renderer"},suggestion:"Implement `resolveAnchorPosition(observation, context)` on the geom, returning the normalised panel position an annotation on that observation belongs at."})));return s}function He(e,t){const{coordSystem:r,layers:s}=e,n=new Set,u=[];for(const c of s){if(c.interactive===!1||c.spatialKind==="render-hit-test"||n.has(c.geom))continue;const d=t(c.geom,r.type);d===null||!a.isOverlayHosted(d)||(n.add(c.geom),u.push({kind:"user-input",severity:"warning",code:"OVERLAY_REQUIRES_RENDER_HIT_TEST",message:`Geom '${c.geom}' declares an overlay render but its layer's spatialKind is '${c.spatialKind}', not 'render-hit-test'; the overlay's push-path hover resolves to nothing.`,context:{requested:c.geom,kind:"geom-renderer"},suggestion:"Have the geom's manifest yield spatialKind 'render-hit-test' so the scene layer carries the `byKey` index the overlay's `pushHover` resolves against."}))}return u}var Ae=e=>[e.styles.defaults,e.styles.overrides].some(t=>t.some(r=>(r.declarations.overlay?.length??0)>0)),Oe=(e,t)=>{const[r]=e.data;if(r===void 0)return!1;if((t.get("overlay",r)?.length??0)>0)return!0;for(const s of e.data)if((t.get("overlay",s,"hovered")?.length??0)>0)return!0;return!1};function $e(e){const t=new Set,r=[];for(const s of e){const n=ae(s);n===null||t.has(n.type)||n.dataLabelCoordTypes.length===0||n.getDataLabelPlacements!==void 0||(t.add(n.type),r.push({kind:"user-input",severity:"warning",code:"MISSING_DATA_LABEL_PLACEMENT",message:`Geom '${n.type}' declares \`dataLabelCoordTypes\` but implements no \`getDataLabelPlacements\`; its layers paint no data labels.`,context:{requested:n.type,kind:"geom-renderer"},suggestion:"Implement `getDataLabelPlacements(context)` on the geom, or drop `dataLabelCoordTypes` so the compiler warns the author off the flag."}))}return r}var Be=e=>(0,z.createStore)(t=>({scene:e,setScene:r=>t(s=>s.scene===r?s:{scene:r})})),Ke=({spec:e,data:t,customPalettes:r,colorScheme:s,plugins:n,theme:u,resolveRenderer:c,anchorResolver:d,onSpecChange:h,onError:v,onWarnings:P})=>{const N=a.useLatestRef(h),T=a.useLatestRef(v),x=a.useLatestRef(P),[{session:m,compileBus:f}]=(0,l.useState)(()=>{const i=(0,g.createCompiler)({plugins:n,theme:u});return{session:new g.GraphCompilationSession(i),compileBus:je(i)}}),[S]=(0,l.useState)(()=>{const i=Z(n??[]),p=Z(u?.plugins??[]);return{errors:[...p.errors,...i.errors],warnings:[...p.warnings,...i.warnings]}}),_=(0,l.useRef)(null),[y]=(0,l.useState)(Ue),R=(0,l.useRef)(null),D=(0,l.useCallback)(i=>S.errors.length===0?i:[...S.errors,...i??[]],[S]),G=(0,l.useCallback)(i=>{if(!i.ok)return i.errors;if(R.current)R.current.getState().setScene(i.scene);else{const p=Be(i.scene);p.subscribe(y.notify),R.current=p,y.notify()}return null},[y]),[H,I]=(0,l.useState)(()=>{const i=m.compile({spec:e,data:t,customPalettes:r,colorScheme:s});return _.current=i,D(G(i))}),E=(0,l.useCallback)(i=>i.ok?[...i.warnings,...Ie(i.scene,c),...ke(i.scene,c),...Le(i.scene),...we(i.scene,c),...He(i.scene,c),...qe(i.scene,c),...Me(i.scene,d)]:i.warnings,[c,d]),C=(0,l.useCallback)(i=>{i.length!==0&&(a.logDiagnostics(i),T.current?.(i))},[T]),j=(0,l.useCallback)(i=>{i.length!==0&&(a.logDiagnostics(i),x.current?.(i))},[x]);(0,l.useEffect)(()=>{const i=_.current;i&&(C([...S.errors,...i.ok?[]:i.errors]),j([...S.warnings,...E(i)]),i.ok&&f.emit({kind:"init"}))},[f,C,j,S,E]),(0,l.useEffect)(()=>{const i=m.update({spec:e,data:t,customPalettes:r,colorScheme:s});if(!i)return;i.committedSpec&&N.current?.(i.committedSpec);const p=G(i.result);I(D(p)),p&&C(p),j(E(i.result)),p||f.emit({kind:i.specChanged?"spec":"data"})},[e,t,r,s,m,f,G,C,j,D,E,N]);const k=(0,l.useCallback)(i=>{I(p=>p===null?p:D(null)),j(E(i))},[D,j,E]),A=(0,l.useCallback)(i=>{i.scene&&R.current?.getState().setScene(i.scene),i.result&&k(i.result),i.command&&f.emit({kind:"command",command:i.command}),i.spec&&N.current?.(i.spec),i.errors&&C([...i.errors])},[k,f,N,C]),b=(0,l.useCallback)(i=>{for(const p of i)A(p);return i.some(p=>!!p.scene)},[A]),O=(0,l.useCallback)((i,p)=>{b(m.applyCommand(i,p))},[m,b]),q=(0,l.useCallback)(()=>{b(m.commit())},[m,b]),$=(0,l.useCallback)(()=>b(m.undo()),[m,b]),L=(0,l.useCallback)(()=>b(m.redo()),[m,b]),F=(0,l.useMemo)(()=>({stack:m.history,undo:$,redo:L}),[m,$,L]),ge=(0,l.useCallback)(()=>R.current?.getState().scene??null,[]);return{store:R.current,dispatch:O,commit:q,history:F,subscribe:y.subscribe,getScene:ge,compileBus:f,compileErrors:H}},Ue=()=>{const e=new Set;return{subscribe:t=>(e.add(t),()=>{e.delete(t)}),notify:()=>e.forEach(t=>t())}},ce=({data:e,spec:t,plugins:r=[],theme:s,formattingLocale:n,handleRef:u,onSpecChange:c,onError:d,onWarnings:h,customPalettes:v,colorScheme:P="light",children:N})=>{const[T]=(0,l.useState)(()=>s),x=T?.colorScheme??P,[m]=(0,l.useState)(()=>a.createGeomRendererResolver([...T?.plugins??[],...r].filter(oe))),f=(0,l.useId)(),[S]=(0,l.useState)(()=>(0,g.createAnchorResolver)(r)),[_]=(0,l.useState)(()=>(0,g.createDataLabelPlacementResolver)(r)),[y]=(0,l.useState)(()=>xe()),[R]=(0,l.useState)(()=>a.createTargetBoundaryStore()),D=(0,l.useMemo)(()=>(0,g.createStyleResolver)({colorScheme:x}),[x]),{store:G,dispatch:H,commit:I,history:E,subscribe:C,getScene:j,compileBus:k,compileErrors:A}=Ke({spec:t,data:e,customPalettes:v,colorScheme:x,plugins:r,theme:T,resolveRenderer:m,anchorResolver:S,onSpecChange:c,onError:d,onWarnings:h});(0,l.useEffect)(()=>{if(G)return G.subscribe((q,$)=>{if(q.scene.spec===$.scene.spec)return;const{selection:L,setSelection:F}=y.getState();L.length!==0&&F(ie(L,q.scene.spec))})},[G,y]);const b=(0,l.useMemo)(()=>({dispatch:H,commit:I}),[H,I]);(0,l.useImperativeHandle)(u,()=>({commands:b,undo:E.undo,redo:E.redo,subscribe:C,getScene:j,getSelection:()=>y.getState().selection,setSelection:q=>y.getState().setSelection(q),subscribeSelection:y.subscribe,canPlaceDataLabels:_.hasCapability,canFormatDataLabelsAsPercentages:_.hasPercentageFormat}),[b,E,C,j,y,_]);const O=(0,l.useMemo)(()=>G?{chartId:f,store:G,selectionStore:y,targetBoundaryStore:R,commands:b,history:E,formattingLocale:n,compileBus:k,colorScheme:x,styleResolver:D,anchorResolver:S}:null,[f,G,y,R,b,E,n,k,x,D,S]);return(0,o.jsx)(re,{forcedErrors:A,onError:d,resetKeys:[t,e],children:O?(0,o.jsx)(a.GraphContext.Provider,{value:O,children:(0,o.jsx)(a.GeomRendererResolverProvider,{value:m,children:(0,o.jsx)(a.DataLabelPlacementResolverProvider,{value:_,children:(0,o.jsx)(M,{shapes:T?.shapes,children:N})})})}):null})};function Fe({theme:e,...t}={}){const r=(0,g.createSpecBuilder)(t);return{...r,GraphProvider:n=>(0,o.jsx)(ce,{...n,plugins:r.plugins,theme:e})}}var le=({shouldAnimateTransitions:e,cx:t,cy:r,r:s,...n})=>e?(0,o.jsx)(K.motion.circle,{initial:!1,animate:{cx:t,cy:r,r:s},transition:a.DEFAULT_SPRING_TRANSITION,...n}):(0,o.jsx)("circle",{cx:t,cy:r,r:s,...n}),ue=({shouldAnimateTransitions:e,x1:t,y1:r,x2:s,y2:n,...u})=>e?(0,o.jsx)(K.motion.line,{initial:!1,animate:{x1:t,y1:r,x2:s,y2:n},transition:a.DEFAULT_SPRING_TRANSITION,...u}):(0,o.jsx)("line",{x1:t,y1:r,x2:s,y2:n,...u}),de=({shouldAnimateTransitions:e,x:t,y:r,width:s,height:n,...u})=>e?(0,o.jsx)(K.motion.rect,{initial:!1,animate:{attrX:t,attrY:r,width:s,height:n},transition:a.DEFAULT_SPRING_TRANSITION,...u}):(0,o.jsx)("rect",{x:t,y:r,width:s,height:n,...u}),me=({shouldAnimateTransitions:e,d:t,source:r,...s})=>e?(0,o.jsx)(Xe,{d:t,source:r,...s}):(0,o.jsx)("path",{d:t,...s}),Ye=e=>{const{Circle:t}=U();return t===void 0?le(e):(0,o.jsx)(M,{children:(0,o.jsx)(t,{...e})})},Ve=e=>{const{Line:t}=U();return t===void 0?ue(e):(0,o.jsx)(M,{children:(0,o.jsx)(t,{...e})})},We=e=>{const{Rect:t}=U();return t===void 0?de(e):(0,o.jsx)(M,{children:(0,o.jsx)(t,{...e})})},ze=e=>{const{Path:t}=U();return t===void 0?me(e):(0,o.jsx)(M,{children:(0,o.jsx)(t,{...e})})},Xe=({d:e,source:t,...r})=>{const s=a.useSvgPathMorph(e,a.DEFAULT_SPRING_TRANSITION,t);return(0,o.jsx)(K.motion.path,{d:s,...r})},Qe=({children:e,...t})=>(0,o.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%",pointerEvents:"none",...t,children:e}),Je=({box:e,children:t})=>(0,o.jsx)("svg",{x:(0,g.toPercent)(e.x0),y:(0,g.toPercent)(e.y0),width:(0,g.toPercent)(e.x1-e.x0),height:(0,g.toPercent)(e.y1-e.y0),overflow:"hidden",pointerEvents:"none",children:t}),Ze="drqe3u0",et="drqe3u1",tt="drqe3u2",rt="drqe3u3",w="drqe3u4",st="drqe3u5",nt="drqe3u6",ot="drqe3u7",B="drqe3u8",at="drqe3u9",it="drqe3ua";var ct="drqe3uc",lt="drqe3ud",ut="drqe3ue",dt="drqe3uf";var mt="drqe3uh",ht="drqe3ui",ee={enabled:"drqe3uk drqe3uj",disabled:"drqe3ul drqe3uj"},te={ran:"drqe3un drqe3um",dim:"drqe3uo drqe3um"},he={ran:"drqe3uq drqe3up",cached:"drqe3ur drqe3up",untouched:"drqe3us drqe3up"},gt=({width:e=440,style:t,className:r}={})=>{const{compileBus:s}=a.useGraphContext(),[n]=(0,l.useState)(()=>Ne()),[u,c]=(0,l.useState)(!1),[d,h]=(0,l.useState)(g.isCompilerCachingEnabled);(0,l.useEffect)(()=>{const{recordCompile:m}=n.getState(),f=s.getLastTrigger(),S=s.getLastCompile();return f&&S&&m(f,S),s.subscribe(m)},[n,s]);const v=(0,Y.useStore)(n,m=>m.lastCompile),P=(0,Y.useStore)(n,m=>m.history),N=s.getCacheStats(),T=v===null&&P.length===0,x=()=>{h(m=>{const f=!m;return(0,g.setCompilerCachingEnabled)(f),f})};return(0,o.jsxs)("div",{className:(0,V.default)(it,r),style:{width:e,...t},children:[(0,o.jsxs)("div",{className:Ze,children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:et,children:"compile cache"}),(0,o.jsx)("div",{className:ut,children:T?"production: stats disabled":v?`last: ${v.label} · ${X(v.durationMs)}`:"awaiting first compile…"})]}),(0,o.jsx)("button",{type:"button",onClick:()=>c(m=>!m),className:dt,children:u?"▾":"▴"})]}),!u&&(0,o.jsxs)("div",{className:"drqe3ub",children:[(0,o.jsxs)("button",{type:"button",onClick:x,className:d?ee.enabled:ee.disabled,"aria-pressed":d,children:["cache ",d?"enabled":"disabled"]}),(0,o.jsx)("span",{className:"drqe3ug",children:"next compile reflects this toggle"})]}),!u&&!T&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(pt,{delta:v?.stages,durations:v?.stageDurationsMs,cumulative:N}),(0,o.jsx)(vt,{entries:P})]})]})},pt=({delta:e,durations:t,cumulative:r})=>(0,o.jsxs)("table",{className:tt,children:[(0,o.jsx)("thead",{children:(0,o.jsxs)("tr",{className:mt,children:[(0,o.jsx)("th",{className:rt,children:"stage"}),(0,o.jsx)("th",{className:w,children:"time"}),(0,o.jsx)("th",{className:w,children:"Δ miss"}),(0,o.jsx)("th",{className:w,children:"Δ hit"}),(0,o.jsx)("th",{className:w,children:"total miss"}),(0,o.jsx)("th",{className:w,children:"total hit"})]})}),(0,o.jsx)("tbody",{children:g.COMPILER_STAGE_KEYS.map(s=>{const n=e?.[s],u=ft(n);return(0,o.jsxs)("tr",{className:ct,children:[(0,o.jsxs)("td",{className:st,children:[(0,o.jsx)("span",{className:he[u],"aria-hidden":!0})," ",s]}),(0,o.jsx)("td",{className:B,children:t===void 0||u==="untouched"?"—":X(t[s])}),(0,o.jsx)("td",{className:u==="ran"?te.ran:te.dim,children:n?.misses??0}),(0,o.jsx)("td",{className:B,children:n?.hits??0}),(0,o.jsx)("td",{className:B,children:r[s].misses}),(0,o.jsx)("td",{className:B,children:r[s].hits})]},s)})})]}),vt=({entries:e})=>e.length===0?null:(0,o.jsxs)("div",{className:lt,children:[(0,o.jsx)("div",{className:ht,children:"recent compiles"}),e.map(t=>{const r=St(t.stages,u=>u.misses>0),s=g.COMPILER_STAGE_KEYS.length,n=r===0?"cached":"ran";return(0,o.jsxs)("div",{className:nt,children:[(0,o.jsx)("span",{className:he[n],"aria-hidden":!0}),(0,o.jsx)("span",{className:ot,title:t.label,children:t.label}),(0,o.jsxs)("span",{className:at,children:[r,"/",s," ran · ",X(t.durationMs)]})]},t.id)})]}),ft=e=>!e||e.hits===0&&e.misses===0?"untouched":e.misses>0?"ran":"cached",St=(e,t)=>{let r=0;for(const s of g.COMPILER_STAGE_KEYS)t(e[s])&&(r+=1);return r},X=e=>e<.1?"<0.1ms":e>=10?`${e.toFixed(0)}ms`:`${e.toFixed(2)}ms`,yt=()=>{const{history:e}=a.useGraphContext(),{stack:t,undo:r,redo:s}=e,n=(0,l.useCallback)(d=>t.subscribe(d),[t]),u=(0,l.useCallback)(()=>t.getSnapshot(),[t]),c=(0,l.useSyncExternalStore)(n,u,u);return(0,l.useMemo)(()=>({...c,undo:r,redo:s}),[c,r,s])},bt=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]),Et=(e,t={})=>{const{target:r,enabled:s=!0}=t;(0,l.useEffect)(()=>{const n=Tt(r);if(!s||!n)return;const u=c=>{if(!xt(c)||c.defaultPrevented||Gt(c.target))return;const d=a.resolveHistoryStep(c);if(!d)return;const h=e.current;h&&(d==="undo"?h.undo():h.redo())&&c.preventDefault()};return n.addEventListener("keydown",u),()=>n.removeEventListener("keydown",u)},[e,r,s])},Tt=e=>e===void 0?window:e!==null&&"current"in e?e.current:e,xt=e=>"key"in e,Gt=e=>e instanceof HTMLInputElement?!bt.has(e.type):e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA":!1,Rt=()=>{const{targetBoundaryStore:e}=a.useGraphContext();return(0,Y.useStore)(e,t=>t.boundary)};exports.BrandMark=a.BrandMark;exports.CanvasTextMeasurer=a.CanvasTextMeasurer;exports.DefaultFooter=a.DefaultFooter;exports.DefaultGeomCircle=le;exports.DefaultGeomLine=ue;exports.DefaultGeomPath=me;exports.DefaultGeomRect=de;exports.DefaultGrid=a.DefaultGrid;exports.DefaultHeader=a.DefaultHeader;exports.DefaultSwatch=a.DefaultSwatch;exports.DefaultTooltip=a.DefaultTooltip;exports.DevToolsPanel=gt;exports.GRAPH_MODES=a.GRAPH_MODES;exports.GeomCircle=Ye;exports.GeomLine=Ve;exports.GeomPath=ze;exports.GeomRect=We;exports.GraphErrorBoundary=re;exports.GraphErrorPanel=W;exports.GraphProvider=ce;exports.GraphRenderer=a.GraphRenderer;exports.HoverProvider=a.HoverProvider;exports.IntroFade=a.IntroFade;exports.IntroWipeClip=a.IntroWipeClip;exports.TextMeasurerProvider=a.TextMeasurerProvider;exports.ThemeProvider=a.ThemeProvider;exports.UnitBoxSvg=Je;exports.UnitSpaceSvg=Qe;exports.buildDotsEditOutlineShapes=a.buildDotsEditOutlineShapes;exports.createGraphyKit=Fe;exports.darkTheme=a.darkTheme;exports.defineGeomRenderer=a.defineGeomRenderer;exports.lightTheme=a.lightTheme;exports.lightenCss=a.lightenCss;exports.projectPointCartesian=a.projectPointCartesian;exports.pruneSelection=ie;exports.resolveBrandMarkVisual=a.resolveBrandMarkVisual;exports.scalePointToPanel=a.scalePointToPanel;exports.stampAxisEditTarget=a.stampAxisEditTarget;exports.stampGridEditTarget=a.stampGridEditTarget;exports.stampLegendEditTarget=a.stampLegendEditTarget;exports.useElementScreenRect=a.useElementScreenRect;exports.useGeomHitTest=a.useGeomHitTest;exports.useGeomHover=a.useGeomHover;exports.useGeomReaderTree=a.useGeomReaderTree;exports.useGeomStyleReader=a.useGeomStyleReader;exports.useGraphCommands=a.useGraphCommands;exports.useGraphHandle=a.useGraphHandle;exports.useGraphHistory=yt;exports.useGraphHistoryShortcuts=Et;exports.useGraphLocale=a.useGraphLocale;exports.useGraphSelection=a.useGraphSelection;exports.useGuidesTakePress=a.useGuidesTakePress;exports.useHandleScene=a.useHandleScene;exports.useHoverState=a.useHoverState;exports.usePaintDefs=a.usePaintDefs;exports.useResolvedStyle=a.useResolvedStyle;exports.useSceneSelector=a.useSceneSelector;exports.useStyleReaderTree=a.useStyleReaderTree;exports.useStyleResolver=a.useStyleResolver;exports.useTargetBoundary=Rt;exports.useTextMeasurer=a.useTextMeasurer;exports.vars=pe.vars;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const a=require("./history-chords-Dx1LSW4M.cjs"),pe=require("./theme.contract.css-WAhjj7zh.cjs");let g=require("@graphysdk/viz-engine"),l=require("react"),o=require("react/jsx-runtime"),Y=require("zustand"),K=require("motion/react"),z=require("zustand/vanilla"),V=require("clsx");V=a.__toESM(V,1);var ve="_1a5iqpb0",fe="_1a5iqpb1";var Se="_1a5iqpb3",ye="_1a5iqpb4",be="_1a5iqpb5";var W=({errors:e})=>{const[t,...r]=e;return(0,o.jsxs)("div",{role:"alert",className:ve,children:[(0,o.jsx)("strong",{className:fe,children:"This chart could not be rendered."}),t&&(0,o.jsx)(Q,{diagnostic:t}),r.length>0&&(0,o.jsx)("ul",{className:"_1a5iqpb2",children:r.map((s,n)=>(0,o.jsx)("li",{children:(0,o.jsx)(Q,{diagnostic:s})},`${s.code}-${n}`))})]})},Q=({diagnostic:e})=>(0,o.jsxs)("div",{className:Se,children:[(0,o.jsx)("span",{className:ye,children:e.code}),(0,o.jsx)("p",{className:be,children:e.message}),e.suggestion&&(0,o.jsx)("p",{className:"_1a5iqpb6",children:e.suggestion})]});function Ee(e=[],t=[]){return e.length===t.length&&e.every((r,s)=>Object.is(r,t[s]))}var re=class extends l.Component{constructor(...e){super(...e),this.state={caughtDiagnostic:null}}static getDerivedStateFromError(e){return{caughtDiagnostic:(0,g.buildDiagnostic)(e)}}componentDidCatch(e,t){const r=(0,g.buildDiagnostic)(e);a.logDiagnostics([r]),this.props.onError?.([r]),console.error("Chart render component stack:",t.componentStack)}componentDidUpdate(e){this.state.caughtDiagnostic&&!Ee(e.resetKeys,this.props.resetKeys)&&this.setState({caughtDiagnostic:null})}render(){const{caughtDiagnostic:e}=this.state;if(e)return(0,o.jsx)(W,{errors:[e]});const{forcedErrors:t,children:r}=this.props;return t&&t.length>0?(0,o.jsx)(W,{errors:t}):r}},se={},ne=(0,l.createContext)(se),M=({shapes:e=se,children:t})=>(0,o.jsx)(ne.Provider,{value:e,children:t}),U=()=>(0,l.useContext)(ne),oe=e=>typeof e=="object"&&"geom"in e&&"render"in e,ae=e=>{const t=(0,g.resolveDefinition)(e);return t instanceof g.Geom?t:null},ie=(e,t)=>{const r=e.filter(s=>Te(s,t));return r.length===e.length?e:r},Te=(e,t)=>e.kind==="annotation"?(0,g.findAnnotation)(t.annotations,e.id)!==null:e.kind==="observations"||e.kind==="layer"&&e.layerId!==void 0?(0,g.findLayerById)(t.layers,e.layerId)!==void 0:!0,J=[],xe=()=>(0,z.createStore)(e=>({selection:J,setSelection:t=>e(r=>Ge(r.selection,t)?r:{selection:t}),clearSelection:()=>e(t=>t.selection.length===0?t:{selection:J})})),Ge=(e,t)=>e===t?!0:e.length!==t.length?!1:e.every((r,s)=>{const n=t[s];return n!==void 0&&(0,g.areEditTargetsEqual)(r,n)}),Re=process.env.NODE_ENV!=="production",Ce=5,je=e=>{if(!Re)return{emit:()=>{},subscribe:()=>De,getLastTrigger:()=>null,getLastCompile:()=>null,getCacheStats:()=>e.getCacheStats()};const t=new Set;let r=null;return{emit:s=>{const n=e.getLastCompile();if(n){r=s;for(const u of t)u(s,n)}},subscribe:s=>(t.add(s),()=>{t.delete(s)}),getLastTrigger:()=>r,getLastCompile:()=>e.getLastCompile(),getCacheStats:()=>e.getCacheStats()}},Ne=()=>(0,z.createStore)(e=>({lastCompile:null,history:[],nextId:1,lastSnapshot:null,recordCompile:(t,r)=>e(s=>{if(s.lastSnapshot===r)return s;const n={id:s.nextId,label:_e(t),stages:r.stages,stageDurationsMs:r.stageDurationsMs,durationMs:r.durationMs};return{lastCompile:n,history:Pe(s.history,n,Ce),nextId:s.nextId+1,lastSnapshot:r}})})),De=()=>{},_e=e=>{switch(e.kind){case"init":return"init";case"spec":return"spec change";case"data":return"data change";case"command":return e.command.metadata.description}},Pe=(e,t,r)=>{const s=e.length>=r?e.length-(r-1):0;return[...e.slice(s),t]};function qe(e,t){let r;return e.layers.flatMap((s,n)=>a.isOverlayHosted(t(s.geom,e.coordSystem.type))?Ae(s)?(r??=(0,g.createStyleResolver)().readers(e),Oe(s,r.geom(s))?[{kind:"user-input",severity:"warning",code:"INVALID_STYLE_RULE",message:`Style 'overlay' is not supported on portal-rendered geom '${s.geom}' (layer '${s.id}'); it is ignored.`,context:{param:"overlay",layerIndex:n,requested:s.geom},suggestion:"Remove the geom overlay or use a renderer that paints inside the panel SVG."}]:[]):[]:[])}function Z(e){const t=e.filter(oe),r=new Set([...Object.keys(a.BUILT_IN_GEOM_RENDERERS),...t.map(d=>d.geom)]),s=[],n=new Set;for(const d of e){const h=ae(d);h===null||r.has(h.type)||n.has(h.type)||(n.add(h.type),s.push({kind:"user-input",severity:"error",code:"MISSING_GEOM_RENDERER",message:`Custom geom '${h.type}' is registered but has no renderer.`,context:{requested:h.type,kind:"geom-renderer"},suggestion:`Add a render half for it: \`defineGeomRenderer(${h.type}Geom, { coord, render })\`, then include it in \`plugins\`.`}))}const u=new Map;for(const d of t){if("definition"in d)continue;const h=`${d.geom}|${d.coord}`,v=u.get(h);v?v.count+=1:u.set(h,{geom:d.geom,coord:d.coord,count:1})}const c=[];for(const{geom:d,coord:h,count:v}of u.values())v<2||c.push({kind:"user-input",severity:"warning",code:"DUPLICATE_REGISTERED_TYPE",message:`Multiple render-only overrides register ('${d}', '${h}') (${v} entries); the last in the array wins.`,context:{requested:`${d}@${h}`,kind:"geom-renderer"},suggestion:`Keep a single render-only override for ('${d}', '${h}').`});return c.push(...$e(e)),{errors:s,warnings:c}}function Ie(e,t){const{coordSystem:r,layers:s}=e,n=new Set,u=[];for(const c of s)t(c.geom,r.type)!==null||n.has(c.geom)||(n.add(c.geom),u.push({kind:"user-input",severity:"warning",code:"MISSING_GEOM_RENDERER",message:`No renderer for geom '${c.geom}' under ${r.type} coords; the layer is not painted.`,context:{requested:c.geom,kind:"geom-renderer"},suggestion:`Register a renderer for ('${c.geom}', '${r.type}') via \`defineGeomRenderer\`.`}));return u}function ke(e,t){const{coordSystem:r,layers:s}=e,n=new Set,u=[];for(const c of s){if(c.interactive===!1||c.spatialKind!=="render-hit-test"||n.has(c.geom))continue;const d=t(c.geom,r.type);d===null||d.hitTest||a.isOverlayHosted(d)||(n.add(c.geom),u.push({kind:"user-input",severity:"warning",code:"MISSING_RENDER_HIT_TEST",message:`Geom '${c.geom}' declares spatialKind 'render-hit-test' but its renderer provides no hit-test; the layer has no hover.`,context:{requested:c.geom,kind:"geom-renderer"},suggestion:`Add a \`hitTest\` factory (precomputed geometry) or an overlay render (\`{ fn, options: { overlay: true } }\`, live simulation) to the renderer for ('${c.geom}', '${r.type}').`}))}return u}function Le(e){const t=new Set,r=[];for(const s of e.layers){const n=s.identityKey;s.interactive!==!1&&(s.spatialKind!=="render-hit-test"||typeof n!="object"||t.has(s.geom)||s.data.hasVariable(n.variable)||(t.add(s.geom),r.push({kind:"user-input",severity:"warning",code:"RENDER_HIT_TEST_IDENTITY",message:`Geom '${s.geom}' keys its identity on '${n.variable}', a column its compile output does not emit; its hover lookup is empty.`,context:{requested:s.geom,kind:"geom-renderer"},suggestion:`Emit the '${n.variable}' column from the geom's \`compile()\`, or point \`identityKey\` at a column it does emit.`})))}return r}function we(e,t){const{coordSystem:r,layers:s}=e,n=new Set,u=[];for(const c of s){if(c.interactive===!1||c.spatialKind!=="render-hit-test"||n.has(c.geom))continue;const d=t(c.geom,r.type);d===null||!d.hitTest||!a.isOverlayHosted(d)||(n.add(c.geom),u.push({kind:"user-input",severity:"warning",code:"CONFLICTING_RENDER_HIT_TEST",message:`Geom '${c.geom}' declares both a \`hitTest\` factory and an overlay render; these are alternatives, so only the overlay is used.`,context:{requested:c.geom,kind:"geom-renderer"},suggestion:"Keep one: a `hitTest` factory for precomputed geometry, OR an overlay render (`{ fn, options: { overlay: true } }`) for a live simulation."}))}return u}function Me(e,t){const r=new Set,s=[];for(const n of e.layers)n.interactive!==!1&&(n.spatialKind!=="render-hit-test"||r.has(n.geom)||t.hasCapability(n.geom)||(r.add(n.geom),s.push({kind:"user-input",severity:"warning",code:"MISSING_ANCHOR_CAPABILITY",message:`Geom '${n.geom}' declares no \`resolveAnchorPosition\`; its observations cannot be annotated, so the editor overlay paints no creation trigger on them.`,context:{requested:n.geom,kind:"geom-renderer"},suggestion:"Implement `resolveAnchorPosition(observation, context)` on the geom, returning the normalised panel position an annotation on that observation belongs at."})));return s}function He(e,t){const{coordSystem:r,layers:s}=e,n=new Set,u=[];for(const c of s){if(c.interactive===!1||c.spatialKind==="render-hit-test"||n.has(c.geom))continue;const d=t(c.geom,r.type);d===null||!a.isOverlayHosted(d)||(n.add(c.geom),u.push({kind:"user-input",severity:"warning",code:"OVERLAY_REQUIRES_RENDER_HIT_TEST",message:`Geom '${c.geom}' declares an overlay render but its layer's spatialKind is '${c.spatialKind}', not 'render-hit-test'; the overlay's push-path hover resolves to nothing.`,context:{requested:c.geom,kind:"geom-renderer"},suggestion:"Have the geom's manifest yield spatialKind 'render-hit-test' so the scene layer carries the `byKey` index the overlay's `pushHover` resolves against."}))}return u}var Ae=e=>[e.styles.defaults,e.styles.overrides].some(t=>t.some(r=>(r.declarations.overlay?.length??0)>0)),Oe=(e,t)=>{const[r]=e.data;if(r===void 0)return!1;if((t.get("overlay",r)?.length??0)>0)return!0;for(const s of e.data)if((t.get("overlay",s,"hovered")?.length??0)>0)return!0;return!1};function $e(e){const t=new Set,r=[];for(const s of e){const n=ae(s);n===null||t.has(n.type)||n.dataLabelCoordTypes.length===0||n.getDataLabelPlacements!==void 0||(t.add(n.type),r.push({kind:"user-input",severity:"warning",code:"MISSING_DATA_LABEL_PLACEMENT",message:`Geom '${n.type}' declares \`dataLabelCoordTypes\` but implements no \`getDataLabelPlacements\`; its layers paint no data labels.`,context:{requested:n.type,kind:"geom-renderer"},suggestion:"Implement `getDataLabelPlacements(context)` on the geom, or drop `dataLabelCoordTypes` so the compiler warns the author off the flag."}))}return r}var Be=e=>(0,z.createStore)(t=>({scene:e,setScene:r=>t(s=>s.scene===r?s:{scene:r})})),Ke=({spec:e,data:t,customPalettes:r,colorScheme:s,plugins:n,theme:u,resolveRenderer:c,anchorResolver:d,onSpecChange:h,onError:v,onWarnings:P})=>{const N=a.useLatestRef(h),T=a.useLatestRef(v),x=a.useLatestRef(P),[{session:m,compileBus:f}]=(0,l.useState)(()=>{const i=(0,g.createCompiler)({plugins:n,theme:u});return{session:new g.GraphCompilationSession(i),compileBus:je(i)}}),[S]=(0,l.useState)(()=>{const i=Z(n??[]),p=Z(u?.plugins??[]);return{errors:[...p.errors,...i.errors],warnings:[...p.warnings,...i.warnings]}}),_=(0,l.useRef)(null),[y]=(0,l.useState)(Ue),R=(0,l.useRef)(null),D=(0,l.useCallback)(i=>S.errors.length===0?i:[...S.errors,...i??[]],[S]),G=(0,l.useCallback)(i=>{if(!i.ok)return i.errors;if(R.current)R.current.getState().setScene(i.scene);else{const p=Be(i.scene);p.subscribe(y.notify),R.current=p,y.notify()}return null},[y]),[H,I]=(0,l.useState)(()=>{const i=m.compile({spec:e,data:t,customPalettes:r,colorScheme:s});return _.current=i,D(G(i))}),E=(0,l.useCallback)(i=>i.ok?[...i.warnings,...Ie(i.scene,c),...ke(i.scene,c),...Le(i.scene),...we(i.scene,c),...He(i.scene,c),...qe(i.scene,c),...Me(i.scene,d)]:i.warnings,[c,d]),C=(0,l.useCallback)(i=>{i.length!==0&&(a.logDiagnostics(i),T.current?.(i))},[T]),j=(0,l.useCallback)(i=>{i.length!==0&&(a.logDiagnostics(i),x.current?.(i))},[x]);(0,l.useEffect)(()=>{const i=_.current;i&&(C([...S.errors,...i.ok?[]:i.errors]),j([...S.warnings,...E(i)]),i.ok&&f.emit({kind:"init"}))},[f,C,j,S,E]),(0,l.useEffect)(()=>{const i=m.update({spec:e,data:t,customPalettes:r,colorScheme:s});if(!i)return;i.committedSpec&&N.current?.(i.committedSpec);const p=G(i.result);I(D(p)),p&&C(p),j(E(i.result)),p||f.emit({kind:i.specChanged?"spec":"data"})},[e,t,r,s,m,f,G,C,j,D,E,N]);const k=(0,l.useCallback)(i=>{I(p=>p===null?p:D(null)),j(E(i))},[D,j,E]),A=(0,l.useCallback)(i=>{i.scene&&R.current?.getState().setScene(i.scene),i.result&&k(i.result),i.command&&f.emit({kind:"command",command:i.command}),i.spec&&N.current?.(i.spec),i.errors&&C([...i.errors])},[k,f,N,C]),b=(0,l.useCallback)(i=>{for(const p of i)A(p);return i.some(p=>!!p.scene)},[A]),O=(0,l.useCallback)((i,p)=>{b(m.applyCommand(i,p))},[m,b]),q=(0,l.useCallback)(()=>{b(m.commit())},[m,b]),$=(0,l.useCallback)(()=>b(m.undo()),[m,b]),L=(0,l.useCallback)(()=>b(m.redo()),[m,b]),F=(0,l.useMemo)(()=>({stack:m.history,undo:$,redo:L}),[m,$,L]),ge=(0,l.useCallback)(()=>R.current?.getState().scene??null,[]);return{store:R.current,dispatch:O,commit:q,history:F,subscribe:y.subscribe,getScene:ge,compileBus:f,compileErrors:H}},Ue=()=>{const e=new Set;return{subscribe:t=>(e.add(t),()=>{e.delete(t)}),notify:()=>e.forEach(t=>t())}},ce=({data:e,spec:t,plugins:r=[],theme:s,formattingLocale:n,handleRef:u,onSpecChange:c,onError:d,onWarnings:h,customPalettes:v,colorScheme:P="light",children:N})=>{const[T]=(0,l.useState)(()=>s),x=T?.colorScheme??P,[m]=(0,l.useState)(()=>a.createGeomRendererResolver([...T?.plugins??[],...r].filter(oe))),f=(0,l.useId)(),[S]=(0,l.useState)(()=>(0,g.createAnchorResolver)(r)),[_]=(0,l.useState)(()=>(0,g.createDataLabelPlacementResolver)(r)),[y]=(0,l.useState)(()=>xe()),[R]=(0,l.useState)(()=>a.createTargetBoundaryStore()),D=(0,l.useMemo)(()=>(0,g.createStyleResolver)({colorScheme:x}),[x]),{store:G,dispatch:H,commit:I,history:E,subscribe:C,getScene:j,compileBus:k,compileErrors:A}=Ke({spec:t,data:e,customPalettes:v,colorScheme:x,plugins:r,theme:T,resolveRenderer:m,anchorResolver:S,onSpecChange:c,onError:d,onWarnings:h});(0,l.useEffect)(()=>{if(G)return G.subscribe((q,$)=>{if(q.scene.spec===$.scene.spec)return;const{selection:L,setSelection:F}=y.getState();L.length!==0&&F(ie(L,q.scene.spec))})},[G,y]);const b=(0,l.useMemo)(()=>({dispatch:H,commit:I}),[H,I]);(0,l.useImperativeHandle)(u,()=>({commands:b,undo:E.undo,redo:E.redo,subscribe:C,getScene:j,getSelection:()=>y.getState().selection,setSelection:q=>y.getState().setSelection(q),subscribeSelection:y.subscribe,canPlaceDataLabels:_.hasCapability,canFormatDataLabelsAsPercentages:_.hasPercentageFormat}),[b,E,C,j,y,_]);const O=(0,l.useMemo)(()=>G?{chartId:f,store:G,selectionStore:y,targetBoundaryStore:R,commands:b,history:E,formattingLocale:n,compileBus:k,colorScheme:x,styleResolver:D,anchorResolver:S}:null,[f,G,y,R,b,E,n,k,x,D,S]);return(0,o.jsx)(re,{forcedErrors:A,onError:d,resetKeys:[t,e],children:O?(0,o.jsx)(a.GraphContext.Provider,{value:O,children:(0,o.jsx)(a.GeomRendererResolverProvider,{value:m,children:(0,o.jsx)(a.DataLabelPlacementResolverProvider,{value:_,children:(0,o.jsx)(M,{shapes:T?.shapes,children:N})})})}):null})};function Fe({theme:e,...t}={}){const r=(0,g.createSpecBuilder)(t);return{...r,GraphProvider:n=>(0,o.jsx)(ce,{...n,plugins:r.plugins,theme:e})}}var le=({shouldAnimateTransitions:e,cx:t,cy:r,r:s,...n})=>e?(0,o.jsx)(K.motion.circle,{initial:!1,animate:{cx:t,cy:r,r:s},transition:a.DEFAULT_SPRING_TRANSITION,...n}):(0,o.jsx)("circle",{cx:t,cy:r,r:s,...n}),ue=({shouldAnimateTransitions:e,x1:t,y1:r,x2:s,y2:n,...u})=>e?(0,o.jsx)(K.motion.line,{initial:!1,animate:{x1:t,y1:r,x2:s,y2:n},transition:a.DEFAULT_SPRING_TRANSITION,...u}):(0,o.jsx)("line",{x1:t,y1:r,x2:s,y2:n,...u}),de=({shouldAnimateTransitions:e,x:t,y:r,width:s,height:n,...u})=>e?(0,o.jsx)(K.motion.rect,{initial:!1,animate:{attrX:t,attrY:r,width:s,height:n},transition:a.DEFAULT_SPRING_TRANSITION,...u}):(0,o.jsx)("rect",{x:t,y:r,width:s,height:n,...u}),me=({shouldAnimateTransitions:e,d:t,source:r,...s})=>e?(0,o.jsx)(Xe,{d:t,source:r,...s}):(0,o.jsx)("path",{d:t,...s}),Ye=e=>{const{Circle:t}=U();return t===void 0?le(e):(0,o.jsx)(M,{children:(0,o.jsx)(t,{...e})})},Ve=e=>{const{Line:t}=U();return t===void 0?ue(e):(0,o.jsx)(M,{children:(0,o.jsx)(t,{...e})})},We=e=>{const{Rect:t}=U();return t===void 0?de(e):(0,o.jsx)(M,{children:(0,o.jsx)(t,{...e})})},ze=e=>{const{Path:t}=U();return t===void 0?me(e):(0,o.jsx)(M,{children:(0,o.jsx)(t,{...e})})},Xe=({d:e,source:t,...r})=>{const s=a.useSvgPathMorph(e,a.DEFAULT_SPRING_TRANSITION,t);return(0,o.jsx)(K.motion.path,{d:s,...r})},Qe=({children:e,...t})=>(0,o.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%",pointerEvents:"none",...t,children:e}),Je=({box:e,children:t})=>(0,o.jsx)("svg",{x:(0,g.toPercent)(e.x0),y:(0,g.toPercent)(e.y0),width:(0,g.toPercent)(e.x1-e.x0),height:(0,g.toPercent)(e.y1-e.y0),overflow:"hidden",pointerEvents:"none",children:t}),Ze="drqe3u0",et="drqe3u1",tt="drqe3u2",rt="drqe3u3",w="drqe3u4",st="drqe3u5",nt="drqe3u6",ot="drqe3u7",B="drqe3u8",at="drqe3u9",it="drqe3ua";var ct="drqe3uc",lt="drqe3ud",ut="drqe3ue",dt="drqe3uf";var mt="drqe3uh",ht="drqe3ui",ee={enabled:"drqe3uk drqe3uj",disabled:"drqe3ul drqe3uj"},te={ran:"drqe3un drqe3um",dim:"drqe3uo drqe3um"},he={ran:"drqe3uq drqe3up",cached:"drqe3ur drqe3up",untouched:"drqe3us drqe3up"},gt=({width:e=440,style:t,className:r}={})=>{const{compileBus:s}=a.useGraphContext(),[n]=(0,l.useState)(()=>Ne()),[u,c]=(0,l.useState)(!1),[d,h]=(0,l.useState)(g.isCompilerCachingEnabled);(0,l.useEffect)(()=>{const{recordCompile:m}=n.getState(),f=s.getLastTrigger(),S=s.getLastCompile();return f&&S&&m(f,S),s.subscribe(m)},[n,s]);const v=(0,Y.useStore)(n,m=>m.lastCompile),P=(0,Y.useStore)(n,m=>m.history),N=s.getCacheStats(),T=v===null&&P.length===0,x=()=>{h(m=>{const f=!m;return(0,g.setCompilerCachingEnabled)(f),f})};return(0,o.jsxs)("div",{className:(0,V.default)(it,r),style:{width:e,...t},children:[(0,o.jsxs)("div",{className:Ze,children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:et,children:"compile cache"}),(0,o.jsx)("div",{className:ut,children:T?"production: stats disabled":v?`last: ${v.label} · ${X(v.durationMs)}`:"awaiting first compile…"})]}),(0,o.jsx)("button",{type:"button",onClick:()=>c(m=>!m),className:dt,children:u?"▾":"▴"})]}),!u&&(0,o.jsxs)("div",{className:"drqe3ub",children:[(0,o.jsxs)("button",{type:"button",onClick:x,className:d?ee.enabled:ee.disabled,"aria-pressed":d,children:["cache ",d?"enabled":"disabled"]}),(0,o.jsx)("span",{className:"drqe3ug",children:"next compile reflects this toggle"})]}),!u&&!T&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(pt,{delta:v?.stages,durations:v?.stageDurationsMs,cumulative:N}),(0,o.jsx)(vt,{entries:P})]})]})},pt=({delta:e,durations:t,cumulative:r})=>(0,o.jsxs)("table",{className:tt,children:[(0,o.jsx)("thead",{children:(0,o.jsxs)("tr",{className:mt,children:[(0,o.jsx)("th",{className:rt,children:"stage"}),(0,o.jsx)("th",{className:w,children:"time"}),(0,o.jsx)("th",{className:w,children:"Δ miss"}),(0,o.jsx)("th",{className:w,children:"Δ hit"}),(0,o.jsx)("th",{className:w,children:"total miss"}),(0,o.jsx)("th",{className:w,children:"total hit"})]})}),(0,o.jsx)("tbody",{children:g.COMPILER_STAGE_KEYS.map(s=>{const n=e?.[s],u=ft(n);return(0,o.jsxs)("tr",{className:ct,children:[(0,o.jsxs)("td",{className:st,children:[(0,o.jsx)("span",{className:he[u],"aria-hidden":!0})," ",s]}),(0,o.jsx)("td",{className:B,children:t===void 0||u==="untouched"?"—":X(t[s])}),(0,o.jsx)("td",{className:u==="ran"?te.ran:te.dim,children:n?.misses??0}),(0,o.jsx)("td",{className:B,children:n?.hits??0}),(0,o.jsx)("td",{className:B,children:r[s].misses}),(0,o.jsx)("td",{className:B,children:r[s].hits})]},s)})})]}),vt=({entries:e})=>e.length===0?null:(0,o.jsxs)("div",{className:lt,children:[(0,o.jsx)("div",{className:ht,children:"recent compiles"}),e.map(t=>{const r=St(t.stages,u=>u.misses>0),s=g.COMPILER_STAGE_KEYS.length,n=r===0?"cached":"ran";return(0,o.jsxs)("div",{className:nt,children:[(0,o.jsx)("span",{className:he[n],"aria-hidden":!0}),(0,o.jsx)("span",{className:ot,title:t.label,children:t.label}),(0,o.jsxs)("span",{className:at,children:[r,"/",s," ran · ",X(t.durationMs)]})]},t.id)})]}),ft=e=>!e||e.hits===0&&e.misses===0?"untouched":e.misses>0?"ran":"cached",St=(e,t)=>{let r=0;for(const s of g.COMPILER_STAGE_KEYS)t(e[s])&&(r+=1);return r},X=e=>e<.1?"<0.1ms":e>=10?`${e.toFixed(0)}ms`:`${e.toFixed(2)}ms`,yt=()=>{const{history:e}=a.useGraphContext(),{stack:t,undo:r,redo:s}=e,n=(0,l.useCallback)(d=>t.subscribe(d),[t]),u=(0,l.useCallback)(()=>t.getSnapshot(),[t]),c=(0,l.useSyncExternalStore)(n,u,u);return(0,l.useMemo)(()=>({...c,undo:r,redo:s}),[c,r,s])},bt=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]),Et=(e,t={})=>{const{target:r,enabled:s=!0}=t;(0,l.useEffect)(()=>{const n=Tt(r);if(!s||!n)return;const u=c=>{if(!xt(c)||c.defaultPrevented||Gt(c.target))return;const d=a.resolveHistoryStep(c);if(!d)return;const h=e.current;h&&(d==="undo"?h.undo():h.redo())&&c.preventDefault()};return n.addEventListener("keydown",u),()=>n.removeEventListener("keydown",u)},[e,r,s])},Tt=e=>e===void 0?window:e!==null&&"current"in e?e.current:e,xt=e=>"key"in e,Gt=e=>e instanceof HTMLInputElement?!bt.has(e.type):e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA":!1,Rt=()=>{const{targetBoundaryStore:e}=a.useGraphContext();return(0,Y.useStore)(e,t=>t.boundary)};exports.BrandMark=a.BrandMark;exports.CanvasTextMeasurer=a.CanvasTextMeasurer;exports.DefaultFooter=a.DefaultFooter;exports.DefaultGeomCircle=le;exports.DefaultGeomLine=ue;exports.DefaultGeomPath=me;exports.DefaultGeomRect=de;exports.DefaultGrid=a.DefaultGrid;exports.DefaultHeader=a.DefaultHeader;exports.DefaultSwatch=a.DefaultSwatch;exports.DefaultTooltip=a.DefaultTooltip;exports.DevToolsPanel=gt;exports.GRAPH_MODES=a.GRAPH_MODES;exports.GeomCircle=Ye;exports.GeomLine=Ve;exports.GeomPath=ze;exports.GeomRect=We;exports.GraphErrorBoundary=re;exports.GraphErrorPanel=W;exports.GraphProvider=ce;exports.GraphRenderer=a.GraphRenderer;exports.HoverProvider=a.HoverProvider;exports.IntroFade=a.IntroFade;exports.IntroWipeClip=a.IntroWipeClip;exports.TextMeasurerProvider=a.TextMeasurerProvider;exports.ThemeProvider=a.ThemeProvider;exports.UnitBoxSvg=Je;exports.UnitSpaceSvg=Qe;exports.buildDotsEditOutlineShapes=a.buildDotsEditOutlineShapes;exports.createGraphyKit=Fe;exports.darkTheme=a.darkTheme;exports.defineGeomRenderer=a.defineGeomRenderer;exports.lightTheme=a.lightTheme;exports.lightenCss=a.lightenCss;exports.projectPointCartesian=a.projectPointCartesian;exports.pruneSelection=ie;exports.resolveBrandMarkVisual=a.resolveBrandMarkVisual;exports.scalePointToPanel=a.scalePointToPanel;exports.stampAxisEditTarget=a.stampAxisEditTarget;exports.stampGridEditTarget=a.stampGridEditTarget;exports.stampLegendEditTarget=a.stampLegendEditTarget;exports.useElementScreenRect=a.useElementScreenRect;exports.useGeomHitTest=a.useGeomHitTest;exports.useGeomHover=a.useGeomHover;exports.useGeomReaderTree=a.useGeomReaderTree;exports.useGeomStyleReader=a.useGeomStyleReader;exports.useGraphCommands=a.useGraphCommands;exports.useGraphHandle=a.useGraphHandle;exports.useGraphHistory=yt;exports.useGraphHistoryShortcuts=Et;exports.useGraphLocale=a.useGraphLocale;exports.useGraphSelection=a.useGraphSelection;exports.useGuidesTakePress=a.useGuidesTakePress;exports.useHandleScene=a.useHandleScene;exports.useHoverState=a.useHoverState;exports.usePaintDefs=a.usePaintDefs;exports.useResolvedStyle=a.useResolvedStyle;exports.useSceneSelector=a.useSceneSelector;exports.useStyleReaderTree=a.useStyleReaderTree;exports.useStyleResolver=a.useStyleResolver;exports.useTargetBoundary=Rt;exports.useTextMeasurer=a.useTextMeasurer;exports.vars=pe.vars;
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { A as er, B as tr, Bt as rr, Dt as nr, Et as sr, Ft as Y, Gt as or, I as ar, It as be, Kt as ir, L as cr, Lt as lr, M as dr, Mt as Ee, Nt as Te, Pt as ur, St as mr, Ut as hr, Vt as Re, Wt as gr, Zt as pr, _n as Z, a as fr, an as vr, cn as yr, dn as Sr, dt as br, fn as Er, gn as Ne, h as Tr, hn as ee, i as Rr, in as V, it as Nr, j as Cr, kt as Q, ln as Gr, mn as Ce, mt as Dr, n as qr, nn as Ir, ot as wr, pn as _r, pt as Pr, r as kr, rn as Ge, rt as Lr, s as $r, sn as Mr, t as De, tn as xr, un as Hr, w as Ar, xt as Br, yt as Or, z as Kr } from "./history-chords-BA0sExar.js";
1
+ import { A as er, B as tr, Bt as rr, Dt as nr, Et as sr, Ft as Y, Gt as or, I as ar, It as be, Kt as ir, L as cr, Lt as lr, M as dr, Mt as Ee, Nt as Te, Pt as ur, St as mr, Ut as hr, Vt as Re, Wt as gr, Zt as pr, a as fr, an as vr, cn as yr, dn as Sr, dt as br, fn as Er, gn as Ne, h as Tr, hn as ee, i as Rr, in as V, it as Nr, j as Cr, kt as Q, ln as Gr, mn as Ce, mt as Dr, n as qr, nn as Ir, ot as wr, pn as Pr, pt as _r, r as kr, rn as Ge, rt as Lr, s as $r, sn as Mr, t as De, tn as xr, un as Hr, vn as Z, w as Ar, xt as Br, yt as Or, z as Kr } from "./history-chords-CatQPvcI.js";
2
2
  import { n as Ur } from "./theme.contract.css-oFmndjcI.js";
3
- import { COMPILER_STAGE_KEYS as te, Geom as qe, GraphCompilationSession as Ie, areEditTargetsEqual as we, buildDiagnostic as se, createAnchorResolver as _e, createCompiler as Pe, createDataLabelPlacementResolver as ke, createSpecBuilder as Le, createStyleResolver as he, findAnnotation as $e, findLayerById as oe, isCompilerCachingEnabled as Me, resolveDefinition as xe, setCompilerCachingEnabled as He, toPercent as U } from "@graphysdk/viz-engine";
3
+ import { COMPILER_STAGE_KEYS as te, Geom as qe, GraphCompilationSession as Ie, areEditTargetsEqual as we, buildDiagnostic as se, createAnchorResolver as Pe, createCompiler as _e, createDataLabelPlacementResolver as ke, createSpecBuilder as Le, createStyleResolver as he, findAnnotation as $e, findLayerById as oe, isCompilerCachingEnabled as Me, resolveDefinition as xe, setCompilerCachingEnabled as He, toPercent as U } from "@graphysdk/viz-engine";
4
4
  import { Component as Ae, createContext as Be, useCallback as p, useContext as Oe, useEffect as H, useId as Ke, useImperativeHandle as Fe, useMemo as x, useRef as ae, useState as b, useSyncExternalStore as Ue } from "react";
5
5
  import { Fragment as je, jsx as a, jsxs as f } from "react/jsx-runtime";
6
6
  import { useStore as J } from "zustand";
@@ -339,9 +339,9 @@ function bt(e) {
339
339
  var Et = (e) => re((t) => ({
340
340
  scene: e,
341
341
  setScene: (r) => t((n) => n.scene === r ? n : { scene: r })
342
- })), Tt = ({ spec: e, data: t, customPalettes: r, colorScheme: n, plugins: s, theme: c, resolveRenderer: i, anchorResolver: l, onSpecChange: u, onError: h, onWarnings: _ }) => {
343
- const q = Q(u), T = Q(h), R = Q(_), [{ session: d, compileBus: g }] = b(() => {
344
- const o = Pe({
342
+ })), Tt = ({ spec: e, data: t, customPalettes: r, colorScheme: n, plugins: s, theme: c, resolveRenderer: i, anchorResolver: l, onSpecChange: u, onError: h, onWarnings: P }) => {
343
+ const q = Q(u), T = Q(h), R = Q(P), [{ session: d, compileBus: g }] = b(() => {
344
+ const o = _e({
345
345
  plugins: s,
346
346
  theme: c
347
347
  });
@@ -440,7 +440,7 @@ var Et = (e) => re((t) => ({
440
440
  return o.some((m) => !!m.scene);
441
441
  }, [O]), K = p((o, m) => {
442
442
  S(d.applyCommand(o, m));
443
- }, [d, S]), P = p(() => {
443
+ }, [d, S]), _ = p(() => {
444
444
  S(d.commit());
445
445
  }, [d, S]), F = p(() => S(d.undo()), [d, S]), $ = p(() => S(d.redo()), [d, S]), z = x(() => ({
446
446
  stack: d.history,
@@ -454,7 +454,7 @@ var Et = (e) => re((t) => ({
454
454
  return {
455
455
  store: C.current,
456
456
  dispatch: K,
457
- commit: P,
457
+ commit: _,
458
458
  history: z,
459
459
  subscribe: y.subscribe,
460
460
  getScene: Se,
@@ -469,8 +469,8 @@ var Et = (e) => re((t) => ({
469
469
  }),
470
470
  notify: () => e.forEach((t) => t())
471
471
  };
472
- }, Nt = ({ data: e, spec: t, plugins: r = [], theme: n, formattingLocale: s, handleRef: c, onSpecChange: i, onError: l, onWarnings: u, customPalettes: h, colorScheme: _ = "light", children: q }) => {
473
- const [T] = b(() => n), R = T?.colorScheme ?? _, [d] = b(() => Te([...T?.plugins ?? [], ...r].filter(fe))), g = Ke(), [v] = b(() => _e(r)), [w] = b(() => ke(r)), [y] = b(() => rt()), [C] = b(() => Ee()), I = x(() => he({ colorScheme: R }), [R]), { store: N, dispatch: B, commit: k, history: E, subscribe: G, getScene: D, compileBus: L, compileErrors: O } = Tt({
472
+ }, Nt = ({ data: e, spec: t, plugins: r = [], theme: n, formattingLocale: s, handleRef: c, onSpecChange: i, onError: l, onWarnings: u, customPalettes: h, colorScheme: P = "light", children: q }) => {
473
+ const [T] = b(() => n), R = T?.colorScheme ?? P, [d] = b(() => Te([...T?.plugins ?? [], ...r].filter(fe))), g = Ke(), [v] = b(() => Pe(r)), [w] = b(() => ke(r)), [y] = b(() => rt()), [C] = b(() => Ee()), I = x(() => he({ colorScheme: R }), [R]), { store: N, dispatch: B, commit: k, history: E, subscribe: G, getScene: D, compileBus: L, compileErrors: O } = Tt({
474
474
  spec: t,
475
475
  data: e,
476
476
  customPalettes: h,
@@ -485,10 +485,10 @@ var Et = (e) => re((t) => ({
485
485
  });
486
486
  H(() => {
487
487
  if (N)
488
- return N.subscribe((P, F) => {
489
- if (P.scene.spec === F.scene.spec) return;
488
+ return N.subscribe((_, F) => {
489
+ if (_.scene.spec === F.scene.spec) return;
490
490
  const { selection: $, setSelection: z } = y.getState();
491
- $.length !== 0 && z(et($, P.scene.spec));
491
+ $.length !== 0 && z(et($, _.scene.spec));
492
492
  });
493
493
  }, [N, y]);
494
494
  const S = x(() => ({
@@ -502,7 +502,7 @@ var Et = (e) => re((t) => ({
502
502
  subscribe: G,
503
503
  getScene: D,
504
504
  getSelection: () => y.getState().selection,
505
- setSelection: (P) => y.getState().setSelection(P),
505
+ setSelection: (_) => y.getState().setSelection(_),
506
506
  subscribeSelection: y.subscribe,
507
507
  canPlaceDataLabels: w.hasCapability,
508
508
  canFormatDataLabelsAsPercentages: w.hasPercentageFormat
@@ -656,7 +656,7 @@ var Ct = ({ shouldAnimateTransitions: e, cx: t, cy: r, r: n, ...s }) => e ? /* @
656
656
  overflow: "hidden",
657
657
  pointerEvents: "none",
658
658
  children: t
659
- }), wt = "drqe3u0", _t = "drqe3u1", Pt = "drqe3u2", kt = "drqe3u3", M = "drqe3u4", Lt = "drqe3u5", $t = "drqe3u6", Mt = "drqe3u7", j = "drqe3u8", xt = "drqe3u9", Ht = "drqe3ua";
659
+ }), wt = "drqe3u0", Pt = "drqe3u1", _t = "drqe3u2", kt = "drqe3u3", M = "drqe3u4", Lt = "drqe3u5", $t = "drqe3u6", Mt = "drqe3u7", j = "drqe3u8", xt = "drqe3u9", Ht = "drqe3ua";
660
660
  var At = "drqe3uc", Bt = "drqe3ud", Ot = "drqe3ue", Kt = "drqe3uf";
661
661
  var Ft = "drqe3uh", Ut = "drqe3ui", ue = {
662
662
  enabled: "drqe3uk drqe3uj",
@@ -674,7 +674,7 @@ var Ft = "drqe3uh", Ut = "drqe3ui", ue = {
674
674
  const { recordCompile: d } = s.getState(), g = n.getLastTrigger(), v = n.getLastCompile();
675
675
  return g && v && d(g, v), n.subscribe(d);
676
676
  }, [s, n]);
677
- const h = J(s, (d) => d.lastCompile), _ = J(s, (d) => d.history), q = n.getCacheStats(), T = h === null && _.length === 0, R = () => {
677
+ const h = J(s, (d) => d.lastCompile), P = J(s, (d) => d.history), q = n.getCacheStats(), T = h === null && P.length === 0, R = () => {
678
678
  u((d) => {
679
679
  const g = !d;
680
680
  return He(g), g;
@@ -690,7 +690,7 @@ var Ft = "drqe3uh", Ut = "drqe3ui", ue = {
690
690
  /* @__PURE__ */ f("div", {
691
691
  className: wt,
692
692
  children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ a("div", {
693
- className: _t,
693
+ className: Pt,
694
694
  children: "compile cache"
695
695
  }), /* @__PURE__ */ a("div", {
696
696
  className: Ot,
@@ -719,11 +719,11 @@ var Ft = "drqe3uh", Ut = "drqe3ui", ue = {
719
719
  delta: h?.stages,
720
720
  durations: h?.stageDurationsMs,
721
721
  cumulative: q
722
- }), /* @__PURE__ */ a(Yt, { entries: _ })] })
722
+ }), /* @__PURE__ */ a(Yt, { entries: P })] })
723
723
  ]
724
724
  });
725
725
  }, jt = ({ delta: e, durations: t, cumulative: r }) => /* @__PURE__ */ f("table", {
726
- className: Pt,
726
+ className: _t,
727
727
  children: [/* @__PURE__ */ a("thead", { children: /* @__PURE__ */ f("tr", {
728
728
  className: Ft,
729
729
  children: [
@@ -902,7 +902,7 @@ export {
902
902
  nn as UnitSpaceSvg,
903
903
  vr as buildDotsEditOutlineShapes,
904
904
  Zr as createGraphyKit,
905
- Pr as darkTheme,
905
+ _r as darkTheme,
906
906
  ur as defineGeomRenderer,
907
907
  Dr as lightTheme,
908
908
  pr as lightenCss,
@@ -929,7 +929,7 @@ export {
929
929
  wr as useHoverState,
930
930
  xr as usePaintDefs,
931
931
  ir as useResolvedStyle,
932
- _r as useSceneSelector,
932
+ Pr as useSceneSelector,
933
933
  Sr as useStyleReaderTree,
934
934
  Er as useStyleResolver,
935
935
  ln as useTargetBoundary,
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "visualization",
12
12
  "renderer"
13
13
  ],
14
- "version": "1.9.0-beta.1791403305083",
14
+ "version": "1.9.0-beta.1791444651663",
15
15
  "type": "module",
16
16
  "sideEffects": [
17
17
  "**/*.css.ts",
@@ -55,7 +55,7 @@
55
55
  "react-colorful": "^5.6.1",
56
56
  "react-intl": "^8.1.3",
57
57
  "zustand": "^5.0.12",
58
- "@graphysdk/viz-engine": "1.9.0-beta.1791403305083"
58
+ "@graphysdk/viz-engine": "1.9.0-beta.1791444651663"
59
59
  },
60
60
  "peerDependencies": {
61
61
  "@tiptap/core": "^3.0.0",
@@ -155,10 +155,10 @@
155
155
  "vite-plugin-dts": "^4.5.4",
156
156
  "vite-plugin-lib-inject-css": "^2.2.2",
157
157
  "vitest": "^4.1.11",
158
+ "@graphytools/eslint-config": "0.0.1",
158
159
  "@graphytools/eslint-plugin-graphy": "1.0.0",
159
160
  "@graphytools/typescript-config": "0.0.1",
160
- "@graphytools/vitest-config": "1.0.0",
161
- "@graphytools/eslint-config": "0.0.1"
161
+ "@graphytools/vitest-config": "1.0.0"
162
162
  },
163
163
  "publishConfig": {
164
164
  "access": "public"