@graphysdk/react-renderer 1.9.0-beta.1793880532798 → 1.9.0-beta.1793882432228
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/editable.cjs +1 -1
- package/dist/editable.mjs +1 -1
- package/dist/{history-chords-gOcNirNA.cjs → history-chords-BorFTpAl.cjs} +1 -1
- package/dist/{history-chords-DYuoHkgy.js → history-chords-CimEnXtI.js} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +1 -1
- package/package.json +4 -4
|
@@ -22,7 +22,7 @@ import './history-chords.css';var Bo = Object.defineProperty, Yc = (e, t) => {
|
|
|
22
22
|
});
|
|
23
23
|
return t || Bo(r, Symbol.toStringTag, { value: "Module" }), r;
|
|
24
24
|
};
|
|
25
|
-
typeof window < "u" && (window.__GRAPHY_SDK__ ??= {}, window.__GRAPHY_SDK__.reactRenderer = "1.9.0-beta.
|
|
25
|
+
typeof window < "u" && (window.__GRAPHY_SDK__ ??= {}, window.__GRAPHY_SDK__.reactRenderer = "1.9.0-beta.1793882432228");
|
|
26
26
|
function jc(e) {
|
|
27
27
|
for (const t of e) (t.severity === "error" ? console.error : console.warn)(`[graphy] ${t.code}: ${t.message}`, t);
|
|
28
28
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const s=require("./history-chords-gOcNirNA.cjs");let m=require("@graphysdk/viz-engine"),d=require("react"),i=require("react/jsx-runtime"),U=require("zustand"),F=require("motion/react"),Y=require("zustand/vanilla"),V=require("clsx");V=s.__toESM(V,1);var fe="_1a5iqpb0",pe="_1a5iqpb1";var ve="_1a5iqpb3",Se="_1a5iqpb4",ye="_1a5iqpb5";var W=({errors:e})=>{const[t,...r]=e;return(0,i.jsxs)("div",{role:"alert",className:fe,children:[(0,i.jsx)("strong",{className:pe,children:"This chart could not be rendered."}),t&&(0,i.jsx)(Q,{diagnostic:t}),r.length>0&&(0,i.jsx)("ul",{className:"_1a5iqpb2",children:r.map((n,o)=>(0,i.jsx)("li",{children:(0,i.jsx)(Q,{diagnostic:n})},`${n.code}-${o}`))})]})},Q=({diagnostic:e})=>(0,i.jsxs)("div",{className:ve,children:[(0,i.jsx)("span",{className:Se,children:e.code}),(0,i.jsx)("p",{className:ye,children:e.message}),e.suggestion&&(0,i.jsx)("p",{className:"_1a5iqpb6",children:e.suggestion})]});function be(e=[],t=[]){return e.length===t.length&&e.every((r,n)=>Object.is(r,t[n]))}var oe=class extends d.Component{constructor(...e){super(...e),this.state={caughtDiagnostic:null}}static getDerivedStateFromError(e){return{caughtDiagnostic:(0,m.buildDiagnostic)(e)}}componentDidCatch(e,t){const r=(0,m.buildDiagnostic)(e);s.logDiagnostics([r]),this.props.onError?.([r]),console.error("Chart render component stack:",t.componentStack)}componentDidUpdate(e){this.state.caughtDiagnostic&&!be(e.resetKeys,this.props.resetKeys)&&this.setState({caughtDiagnostic:null})}render(){const{caughtDiagnostic:e}=this.state;if(e)return(0,i.jsx)(W,{errors:[e]});const{forcedErrors:t,children:r}=this.props;return t&&t.length>0?(0,i.jsx)(W,{errors:t}):r}},ie=e=>typeof e=="object"&&"geom"in e&&"render"in e,ae=e=>{const t=(0,m.resolveDefinition)(e);return t instanceof m.Geom?t:null},le=(e,t)=>{const r=e.filter(n=>Ge(n,t));return r.length===e.length?e:r},Ge=(e,t)=>e.kind==="annotation"?(0,m.findAnnotation)(t.annotations,e.id)!==null:e.kind==="observations"||e.kind==="layer"&&e.layerId!==void 0?(0,m.findLayerById)(t.layers,e.layerId)!==void 0:!0,J=[],Te=()=>(0,Y.createStore)(e=>({selection:J,setSelection:t=>e(r=>xe(r.selection,t)?r:{selection:t}),clearSelection:()=>e(t=>t.selection.length===0?t:{selection:J})})),xe=(e,t)=>e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{const o=t[n];return o!==void 0&&(0,m.areEditTargetsEqual)(r,o)}),Ee=5,Re=e=>{if(!s.IS_DEV)return{emit:()=>{},subscribe:()=>Ce,getLastTrigger:()=>null,getLastCompile:()=>null,getCacheStats:()=>e.getCacheStats()};const t=new Set;let r=null;return{emit:n=>{const o=e.getLastCompile();if(o){r=n;for(const a of t)a(n,o)}},subscribe:n=>(t.add(n),()=>{t.delete(n)}),getLastTrigger:()=>r,getLastCompile:()=>e.getLastCompile(),getCacheStats:()=>e.getCacheStats()}},Pe=()=>(0,Y.createStore)(e=>({lastCompile:null,history:[],nextId:1,lastSnapshot:null,recordCompile:(t,r)=>e(n=>{if(n.lastSnapshot===r)return n;const o={id:n.nextId,label:Ie(t),stages:r.stages,stageDurationsMs:r.stageDurationsMs,durationMs:r.durationMs};return{lastCompile:o,history:je(n.history,o,Ee),nextId:n.nextId+1,lastSnapshot:r}})})),Ce=()=>{},Ie=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}},je=(e,t,r)=>{const n=e.length>=r?e.length-(r-1):0;return[...e.slice(n),t]};function Z(e){const t=e.filter(ie),r=new Set([...Object.keys(s.BUILT_IN_GEOM_RENDERERS),...t.map(u=>u.geom)]),n=[],o=new Set;for(const u of e){const h=ae(u);h===null||r.has(h.type)||o.has(h.type)||(o.add(h.type),n.push({kind:"userInput",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 a=new Map;for(const u of t){if("definition"in u)continue;const h=`${u.geom}|${u.coord}`,p=a.get(h);p?p.count+=1:a.set(h,{geom:u.geom,coord:u.coord,count:1})}const l=[];for(const{geom:u,coord:h,count:p}of a.values())p<2||l.push({kind:"userInput",severity:"warning",code:"DUPLICATE_REGISTERED_TYPE",message:`Multiple render-only overrides register ('${u}', '${h}') (${p} entries); the last in the array wins.`,context:{requested:`${u}@${h}`,kind:"geom-renderer"},suggestion:`Keep a single render-only override for ('${u}', '${h}').`});return l.push(...Me(e)),{errors:n,warnings:l}}function Ne(e,t){const{coordSystem:r,layers:n}=e,o=new Set,a=[];for(const l of n)t(l.geom,r.type)!==null||o.has(l.geom)||(o.add(l.geom),a.push({kind:"userInput",severity:"warning",code:"MISSING_GEOM_RENDERER",message:`No renderer for geom '${l.geom}' under ${r.type} coords; the layer is not painted.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:`Register a renderer for ('${l.geom}', '${r.type}') via \`defineGeomRenderer\`.`}));return a}function De(e,t){const{coordSystem:r,layers:n}=e,o=new Set,a=[];for(const l of n){if(l.interactive===!1||l.spatialKind!=="renderHitTest"||o.has(l.geom))continue;const u=t(l.geom,r.type);u===null||u.hitTest||s.isLiveRender(u)||(o.add(l.geom),a.push({kind:"userInput",severity:"warning",code:"MISSING_RENDER_HIT_TEST",message:`Geom '${l.geom}' declares spatialKind 'renderHitTest' but its renderer provides no hit-test; the layer has no hover.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:`Add a \`hitTest\` factory (precomputed geometry) or a live render (\`{ fn, options: { live: true } }\`, live simulation) to the renderer for ('${l.geom}', '${r.type}').`}))}return a}function Le(e){const t=new Set,r=[];for(const n of e.layers){const o=n.identityKey;n.interactive!==!1&&(n.spatialKind!=="renderHitTest"||typeof o!="object"||t.has(n.geom)||n.data.hasVariable(o.variable)||(t.add(n.geom),r.push({kind:"userInput",severity:"warning",code:"RENDER_HIT_TEST_IDENTITY",message:`Geom '${n.geom}' keys its identity on '${o.variable}', a column its compile output does not emit; its hover lookup is empty.`,context:{requested:n.geom,kind:"geom-renderer"},suggestion:`Emit the '${o.variable}' column from the geom's \`compile()\`, or point \`identityKey\` at a column it does emit.`})))}return r}function _e(e,t){const{coordSystem:r,layers:n}=e,o=new Set,a=[];for(const l of n){if(l.interactive===!1||l.spatialKind!=="renderHitTest"||o.has(l.geom))continue;const u=t(l.geom,r.type);u===null||!u.hitTest||!s.isLiveRender(u)||(o.add(l.geom),a.push({kind:"userInput",severity:"warning",code:"CONFLICTING_RENDER_HIT_TEST",message:`Geom '${l.geom}' declares both a \`hitTest\` factory and a live render; these are alternatives, so only the live render is used.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:"Keep one: a `hitTest` factory for precomputed geometry, OR a live render (`{ fn, options: { live: true } }`) for a live simulation."}))}return a}function we(e,t){const r=new Set,n=[];for(const o of e.layers)o.interactive!==!1&&(o.spatialKind!=="renderHitTest"||r.has(o.geom)||t.hasCapability(o.geom)||(r.add(o.geom),n.push({kind:"userInput",severity:"warning",code:"MISSING_ANCHOR_CAPABILITY",message:`Geom '${o.geom}' declares no \`resolveAnchorPosition\`; its observations cannot be annotated, so the editor overlay paints no creation trigger on them.`,context:{requested:o.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 n}function ke(e,t){const{coordSystem:r,layers:n}=e,o=new Set,a=[];for(const l of n){if(l.interactive===!1||l.spatialKind==="renderHitTest"||o.has(l.geom))continue;const u=t(l.geom,r.type);u===null||!s.isLiveRender(u)||(o.add(l.geom),a.push({kind:"userInput",severity:"warning",code:"LIVE_RENDER_REQUIRES_RENDER_HIT_TEST",message:`Geom '${l.geom}' declares a live render but its layer's spatialKind is '${l.spatialKind}', not 'renderHitTest'; its push-path hover resolves to nothing.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:"Have the geom's manifest yield spatialKind 'renderHitTest' so the scene layer carries the `byKey` index the live render's `pushHover` resolves against."}))}return a}function qe(e,t){let r;return e.layers.flatMap((n,o)=>s.isLiveRender(t(n.geom,e.coordSystem.type))?He(n)?(r??=(0,m.createStyleResolver)().readers(e),(r.geom(n).get("overpaint",void 0,"hovered")?.length??0)===0?[]:[{kind:"userInput",severity:"warning",code:"INVALID_STYLE_RULE",message:`Style 'overpaint' in state 'hovered' is not supported on live geom '${n.geom}' (layer '${n.id}'); it is ignored.`,context:{param:"overpaint",layerIndex:o,requested:n.geom},suggestion:"Remove the hovered overpaint, or paint the hover treatment in the geom's live render."}]):[]:[])}var He=e=>[e.styles.defaults,e.styles.overrides].some(t=>t.some(r=>r.state==="hovered"&&(r.declarations.overpaint?.length??0)>0));function Me(e){const t=new Set,r=[];for(const n of e){const o=ae(n);o===null||t.has(o.type)||o.dataLabelCoordTypes.length===0||o.getDataLabelPlacements!==void 0||(t.add(o.type),r.push({kind:"userInput",severity:"warning",code:"MISSING_DATA_LABEL_PLACEMENT",message:`Geom '${o.type}' declares \`dataLabelCoordTypes\` but implements no \`getDataLabelPlacements\`; its layers paint no data labels.`,context:{requested:o.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 Ae=e=>(0,Y.createStore)(t=>({scene:e,setScene:r=>t(n=>n.scene===r?n:{scene:r})})),$e=({spec:e,data:t,colorScheme:r,plugins:n,theme:o,resolveRenderer:a,anchorResolver:l,onSpecChange:u,onError:h,onWarnings:p})=>{const b=s.useLatestRef(u),j=s.useLatestRef(h),T=s.useLatestRef(p),[{session:v,compileBus:g,findGeom:G}]=(0,d.useState)(()=>{const c=(0,m.createCompiler)({plugins:n,theme:o});return{session:new m.GraphCompilationSession(c),compileBus:Re(c),findGeom:f=>c.findGeom(f)}}),[S]=(0,d.useState)(()=>{const c=Z(n??[]),f=Z(o?.plugins??[]);return{errors:[...f.errors,...c.errors],warnings:[...f.warnings,...c.warnings]}}),k=(0,d.useRef)(null),[N]=(0,d.useState)(Oe),E=(0,d.useRef)(null),y=(0,d.useCallback)(c=>S.errors.length===0?c:[...S.errors,...c??[]],[S]),_=(0,d.useCallback)(c=>{if(!c.ok)return c.errors;if(E.current)E.current.getState().setScene(c.scene);else{const f=Ae(c.scene);f.subscribe(N.notify),E.current=f,N.notify()}return null},[N]),[$,P]=(0,d.useState)(()=>{const c=v.compile({spec:e,data:t,colorScheme:r});return k.current=c,y(_(c))}),C=(0,d.useCallback)(c=>c.ok?[...c.warnings,...Ne(c.scene,a),...De(c.scene,a),...Le(c.scene),..._e(c.scene,a),...ke(c.scene,a),...qe(c.scene,a),...we(c.scene,l)]:c.warnings,[a,l]),I=(0,d.useCallback)(c=>{c.length!==0&&(s.logDiagnostics(c),j.current?.(c))},[j]),x=(0,d.useCallback)(c=>{c.length!==0&&(s.logDiagnostics(c),T.current?.(c))},[T]);(0,d.useEffect)(()=>{const c=k.current;c&&(I([...S.errors,...c.ok?[]:c.errors]),x([...S.warnings,...C(c)]),c.ok&&g.emit({kind:"init"}))},[g,I,x,S,C]),(0,d.useEffect)(()=>{const c=v.update({spec:e,data:t,colorScheme:r});if(!c)return;c.committedSpec&&b.current?.(c.committedSpec);const f=_(c.result);P(y(f)),f&&I(f),x(C(c.result)),f||g.emit({kind:c.hasSpecChange?"spec":"data"})},[e,t,r,v,g,_,I,x,y,C,b]);const q=(0,d.useCallback)(c=>{P(f=>f===null?f:y(null)),x(C(c))},[y,x,C]),H=(0,d.useCallback)(c=>{c.scene&&E.current?.getState().setScene(c.scene),c.result&&q(c.result),c.command&&g.emit({kind:"command",command:c.command}),c.spec&&b.current?.(c.spec),c.errors&&I([...c.errors])},[q,g,b,I]),R=(0,d.useCallback)(c=>{for(const f of c)H(f);return c.some(f=>!!f.scene)},[H]),K=(0,d.useCallback)((c,f)=>{R(v.applyCommand(c,f))},[v,R]),O=(0,d.useCallback)(()=>{R(v.commit())},[v,R]),L=(0,d.useCallback)(()=>R(v.undo()),[v,R]),M=(0,d.useCallback)(()=>R(v.redo()),[v,R]),D=(0,d.useMemo)(()=>({stack:v.history,undo:L,redo:M}),[v,L,M]),z=(0,d.useCallback)(()=>E.current?.getState().scene??null,[]);return{store:E.current,dispatch:K,commit:O,history:D,subscribe:N.subscribe,getScene:z,compileBus:g,compileErrors:$,findGeom:G}},Oe=()=>{const e=new Set;return{subscribe:t=>(e.add(t),()=>{e.delete(t)}),notify:()=>e.forEach(t=>t())}},Be=["cartesian","polar"],ce=({data:e,spec:t,plugins:r=[],theme:n,glyphs:o,formattingLocale:a,handleRef:l,onSpecChange:u,onError:h,onWarnings:p,colorScheme:b="light",children:j})=>{const T=ze(a,p),[v]=(0,d.useState)(()=>n),[g]=(0,d.useState)(()=>s.mergeGlyphs(n?.glyphs,o)),G=v?.colorScheme??b,[S]=(0,d.useState)(()=>s.createGeomRendererResolver([...v?.plugins??[],...r].filter(ie)));Ke(S,g);const k=(0,d.useId)(),[N]=(0,d.useState)(()=>(0,m.createAnchorResolver)(r)),[E]=(0,d.useState)(()=>(0,m.createDataLabelPlacementResolver)(r)),[y]=(0,d.useState)(()=>Te()),[_]=(0,d.useState)(()=>s.createTargetBoundaryStore()),$=(0,d.useMemo)(()=>(0,m.createStyleResolver)({colorScheme:G}),[G]),{store:P,dispatch:C,commit:I,history:x,subscribe:q,getScene:H,compileBus:R,compileErrors:K,findGeom:O}=$e({spec:t,data:e,colorScheme:G,plugins:r,theme:v,resolveRenderer:S,anchorResolver:N,onSpecChange:u,onError:h,onWarnings:p});(0,d.useEffect)(()=>{if(P)return P.subscribe((D,z)=>{if(D.scene.spec===z.scene.spec)return;const{selection:c,setSelection:f}=y.getState();c.length!==0&&f(le(c,D.scene.spec))})},[P,y]);const L=(0,d.useMemo)(()=>({dispatch:C,commit:I}),[C,I]);(0,d.useImperativeHandle)(l,()=>({commands:L,undo:x.undo,redo:x.redo,subscribe:q,getScene:H,formattingLocale:T,getSelection:()=>y.getState().selection,setSelection:D=>y.getState().setSelection(D),subscribeSelection:y.subscribe,canPlaceDataLabels:E.hasCapability,canFormatDataLabelsAsPercentages:E.hasPercentageFormat,getGlyphs:()=>g,getPointSymbols:D=>S("point",D)?.symbols}),[L,x,q,H,T,y,E,g,S]);const M=(0,d.useMemo)(()=>P?{chartId:k,store:P,selectionStore:y,targetBoundaryStore:_,commands:L,history:x,formattingLocale:T,compileBus:R,colorScheme:G,styleResolver:$,anchorResolver:N,findGeom:O}:null,[k,P,y,_,L,x,T,R,G,$,N,O]);return(0,i.jsx)(oe,{forcedErrors:K,onError:h,resetKeys:[t,e],children:M?(0,i.jsx)(s.GraphContext.Provider,{value:M,children:(0,i.jsx)(s.GeomRendererResolverProvider,{value:S,children:(0,i.jsx)(s.DataLabelPlacementResolverProvider,{value:E,children:(0,i.jsx)(s.GeomShapesProvider,{shapes:v?.shapes,children:(0,i.jsx)(s.GlyphRegistryProvider,{glyphs:g,children:j})})})})}):null})},Fe=(e,t)=>(e??[]).filter(r=>!(0,m.isGeometricSymbol)(r)&&!t.has(r)),Ke=(e,t)=>{(0,d.useEffect)(()=>{if(!s.IS_DEV)return;const r=new Set(t.map(({name:n})=>n));for(const n of Be)for(const o of Fe(e("point",n)?.symbols,r))console.warn(`[graphy] The ${n} point renderer lists "${o}", but no glyph has that name. The shape menu offers it, and SymbolFigure draws the first listed symbol in its place.`)},[e,t])},ze=(e,t)=>{const r=s.useLatestRef(t);return(0,d.useEffect)(()=>{if(e===void 0||(0,m.findIntlLocale)(e)!==void 0)return;const n=[{severity:"warning",kind:"userInput",code:"INVALID_FORMATTING_LOCALE",message:`formattingLocale '${e}' is not a tag Intl can format in, so the chart formats in ${m.DEFAULT_LOCALE}.`}];s.logDiagnostics(n),r.current?.(n)},[e,r]),e===void 0?void 0:(0,m.canonicalizeLocale)(e)};function Ue({theme:e,glyphs:t,...r}={}){const n=(0,m.createSpecBuilder)(r);return{...n,GraphProvider:a=>(0,i.jsx)(ce,{...a,plugins:n.plugins,theme:e,glyphs:t})}}var w=(e,t)=>{if(typeof e=="number")return Number.isFinite(e)?e:null;if(!e.endsWith("%"))return null;const r=Number.parseFloat(e);return Number.isFinite(r)?r/100*t:null},Ve=({x:e,y:t,width:r,height:n},o)=>{const a=w(e,o.width),l=w(t,o.height),u=w(r,o.width),h=w(n,o.height);return a===null||l===null||u===null||h===null?null:{x:a,y:l,width:u,height:h}},ue=({animateTransitions:e,cx:t,cy:r,r:n,effects:o,...a})=>{const l=s.toGeomEffectsStyle(o);return e?(0,i.jsx)(F.motion.circle,{initial:!1,animate:{cx:t,cy:r,r:n},transition:s.DEFAULT_SPRING_TRANSITION,style:l,...a}):(0,i.jsx)("circle",{cx:t,cy:r,r:n,style:l,...a})},de=({animateTransitions:e,x1:t,y1:r,x2:n,y2:o,effects:a,...l})=>{const u=s.toGeomEffectsStyle(a);return e?(0,i.jsx)(F.motion.line,{initial:!1,animate:{x1:t,y1:r,x2:n,y2:o},transition:s.DEFAULT_SPRING_TRANSITION,style:u,...l}):(0,i.jsx)("line",{x1:t,y1:r,x2:n,y2:o,style:u,...l})},me=({animateTransitions:e,x:t,y:r,width:n,height:o,rx:a,ry:l,effects:u,...h})=>{const p=s.toGeomEffectsStyle(u);return e?(0,i.jsx)(F.motion.rect,{initial:!1,animate:{attrX:t,attrY:r,width:n,height:o,...a!==void 0&&l!==void 0?{rx:a,ry:l}:{}},transition:s.DEFAULT_SPRING_TRANSITION,style:p,...h}):(0,i.jsx)("rect",{x:t,y:r,width:n,height:o,rx:a,ry:l,style:p,...h})},he=({animateTransitions:e,d:t,source:r,effects:n,...o})=>{const a=s.toGeomEffectsStyle(n);return e?(0,i.jsx)(Je,{d:t,source:r,style:a,...o}):(0,i.jsx)("path",{d:t,style:a,...o})},We=e=>{const{Circle:t}=s.useGeomShapes(),{symbol:r,...n}=e;return r!==void 0&&r!=="circle"?(0,i.jsx)("g",{style:s.toGeomEffectsStyle(e.effects),"data-testid":e["data-testid"],children:(0,i.jsx)(s.PointSymbol,{symbol:r,cx:ee(e.cx),cy:ee(e.cy),size:e.r*2,fill:e.fill??"currentColor",fillOpacity:e.fillOpacity,opacity:e.opacity,stroke:e.stroke,strokeOpacity:e.strokeOpacity,strokeWidth:e.strokeWidth,motion:e.animateTransitions?{transition:s.DEFAULT_SPRING_TRANSITION,intro:!1,fadesIn:!1}:null})}):t===void 0?ue(n):(0,i.jsx)(s.GeomShapesProvider,{children:(0,i.jsx)(t,{...n})})},Ye=e=>{const{Line:t}=s.useGeomShapes();return t===void 0?de(e):(0,i.jsx)(s.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},Xe=({cornerRadius:e,...t})=>{const{Rect:r}=s.useGeomShapes(),n=s.useGeomViewport()?.size??null,o=s.useGeomPixelsPerUnit(),a={...t,...Ze(e,t,n,o)};return r===void 0?me(a):(0,i.jsx)(s.GeomShapesProvider,{children:(0,i.jsx)(r,{...a})})},Qe=e=>{const{Path:t}=s.useGeomShapes();return t===void 0?he(e):(0,i.jsx)(s.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},ee=e=>typeof e=="number"?`${e}px`:e,Je=({d:e,source:t,...r})=>{const n=s.useSvgPathMorph(e,s.DEFAULT_SPRING_TRANSITION,t);return(0,i.jsx)(F.motion.path,{d:n,...r})},Ze=(e,t,r,n)=>{if(e===void 0)return{};const o=(0,m.foldGeomCornerRadii)(e);if(o===void 0)return{};const a=et(t,r,n);if(a===null)return o==="full"?{}:re((0,m.resolveGeomCornerRadiusPx)({cornerRadius:o}),n);const l=Math.min((0,m.resolveGeomCornerRadiusPx)({cornerRadius:o,box:a}),Math.min(a.width,a.height)/2);return re(l,n)},et=(e,t,r)=>{const n=te(e.width,t?.width,r.x),o=te(e.height,t?.height,r.y);return n===null||o===null?null:{width:n,height:o}},te=(e,t,r)=>{if(typeof e=="number")return Number.isFinite(e)?Math.abs(e)*r:null;if(t===void 0)return null;const n=w(e,t);return n===null?null:Math.abs(n)},re=(e,t)=>t.x<=0||t.y<=0?{rx:0,ry:0}:{rx:e/t.x,ry:e/t.y},tt=({symbol:e,size:t,fill:r,fillOpacity:n,stroke:o,strokeOpacity:a,strokeWidth:l})=>{const u=s.useGlyphRegistry(),h=s.useGeomRendererResolver(),p=s.useSceneSelector(T=>T.coordSystem.type),b=rt(e,h("point",p)?.symbols??[],u),j={size:t,fill:r,fillOpacity:n,stroke:o,strokeOpacity:a,strokeWidth:l};return(0,m.isGeometricSymbol)(b)?(0,i.jsx)("path",{d:(0,m.buildPointSymbolPath)(b,t),fill:r,fillOpacity:n,stroke:o,strokeOpacity:a,strokeWidth:l,strokeLinejoin:"round"}):(0,i.jsx)(s.GlyphMark,{symbol:b,glyphs:u,...j})},rt=(e,t,r)=>(0,m.isImageSymbol)(e)||t.includes(e)||!(0,m.isGeometricSymbol)(e)&&r.has(e)?e:t[0]??"circle",nt=({children:e,...t})=>{const r=s.useGeomViewport()?.size??null;return(0,i.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%",pointerEvents:"none",...t,children:(0,i.jsx)(s.GeomViewportProvider,{size:r,space:"unit",children:e})})},st=({box:e,children:t})=>{const r=s.useGeomViewportSize(),n=r===null?null:r.width*(e.x1-e.x0),o=r===null?null:r.height*(e.y1-e.y0),a=(0,d.useMemo)(()=>n===null||o===null?null:{width:n,height:o},[n,o]);return(0,i.jsx)("svg",{x:(0,m.toPercent)(e.x0),y:(0,m.toPercent)(e.y0),width:(0,m.toPercent)(e.x1-e.x0),height:(0,m.toPercent)(e.y1-e.y0),overflow:"hidden",pointerEvents:"none",children:(0,i.jsx)(s.GeomViewportProvider,{size:a,children:t})})},ot="drqe3u0",it="drqe3u1",at="drqe3u2",lt="drqe3u3",A="drqe3u4",ct="drqe3u5",ut="drqe3u6",dt="drqe3u7",B="drqe3u8",mt="drqe3u9",ht="drqe3ua";var gt="drqe3uc",ft="drqe3ud",pt="drqe3ue",vt="drqe3uf";var St="drqe3uh",yt="drqe3ui",ne={enabled:"drqe3uk drqe3uj",disabled:"drqe3ul drqe3uj"},se={ran:"drqe3un drqe3um",dim:"drqe3uo drqe3um"},ge={ran:"drqe3uq drqe3up",cached:"drqe3ur drqe3up",untouched:"drqe3us drqe3up"},bt=({width:e=440,style:t,className:r}={})=>{const{compileBus:n}=s.useGraphContext(),[o]=(0,d.useState)(()=>Pe()),[a,l]=(0,d.useState)(!1),[u,h]=(0,d.useState)(m.isCompilerCachingEnabled);(0,d.useEffect)(()=>{const{recordCompile:g}=o.getState(),G=n.getLastTrigger(),S=n.getLastCompile();return G&&S&&g(G,S),n.subscribe(g)},[o,n]);const p=(0,U.useStore)(o,g=>g.lastCompile),b=(0,U.useStore)(o,g=>g.history),j=n.getCacheStats(),T=p===null&&b.length===0,v=()=>{h(g=>{const G=!g;return(0,m.setCompilerCachingEnabled)(G),G})};return(0,i.jsxs)("div",{className:(0,V.default)(ht,r),style:{width:e,...t},children:[(0,i.jsxs)("div",{className:ot,children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:it,children:"compile cache"}),(0,i.jsx)("div",{className:pt,children:T?"production: stats disabled":p?`last: ${p.label} · ${X(p.durationMs)}`:"awaiting first compile…"})]}),(0,i.jsx)("button",{type:"button",onClick:()=>l(g=>!g),className:vt,children:a?"▾":"▴"})]}),!a&&(0,i.jsxs)("div",{className:"drqe3ub",children:[(0,i.jsxs)("button",{type:"button",onClick:v,className:u?ne.enabled:ne.disabled,"aria-pressed":u,children:["cache ",u?"enabled":"disabled"]}),(0,i.jsx)("span",{className:"drqe3ug",children:"next compile reflects this toggle"})]}),!a&&!T&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Gt,{delta:p?.stages,durations:p?.stageDurationsMs,cumulative:j}),(0,i.jsx)(Tt,{entries:b})]})]})},Gt=({delta:e,durations:t,cumulative:r})=>(0,i.jsxs)("table",{className:at,children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{className:St,children:[(0,i.jsx)("th",{className:lt,children:"stage"}),(0,i.jsx)("th",{className:A,children:"time"}),(0,i.jsx)("th",{className:A,children:"Δ miss"}),(0,i.jsx)("th",{className:A,children:"Δ hit"}),(0,i.jsx)("th",{className:A,children:"total miss"}),(0,i.jsx)("th",{className:A,children:"total hit"})]})}),(0,i.jsx)("tbody",{children:m.COMPILER_STAGE_KEYS.map(n=>{const o=e?.[n],a=xt(o);return(0,i.jsxs)("tr",{className:gt,children:[(0,i.jsxs)("td",{className:ct,children:[(0,i.jsx)("span",{className:ge[a],"aria-hidden":!0})," ",n]}),(0,i.jsx)("td",{className:B,children:t===void 0||a==="untouched"?"—":X(t[n])}),(0,i.jsx)("td",{className:a==="ran"?se.ran:se.dim,children:o?.misses??0}),(0,i.jsx)("td",{className:B,children:o?.hits??0}),(0,i.jsx)("td",{className:B,children:r[n].misses}),(0,i.jsx)("td",{className:B,children:r[n].hits})]},n)})})]}),Tt=({entries:e})=>e.length===0?null:(0,i.jsxs)("div",{className:ft,children:[(0,i.jsx)("div",{className:yt,children:"recent compiles"}),e.map(t=>{const r=Et(t.stages,a=>a.misses>0),n=m.COMPILER_STAGE_KEYS.length,o=r===0?"cached":"ran";return(0,i.jsxs)("div",{className:ut,children:[(0,i.jsx)("span",{className:ge[o],"aria-hidden":!0}),(0,i.jsx)("span",{className:dt,title:t.label,children:t.label}),(0,i.jsxs)("span",{className:mt,children:[r,"/",n," ran · ",X(t.durationMs)]})]},t.id)})]}),xt=e=>!e||e.hits===0&&e.misses===0?"untouched":e.misses>0?"ran":"cached",Et=(e,t)=>{let r=0;for(const n of m.COMPILER_STAGE_KEYS)t(e[n])&&(r+=1);return r},X=e=>e<.1?"<0.1ms":e>=10?`${e.toFixed(0)}ms`:`${e.toFixed(2)}ms`,Rt=()=>{const{history:e}=s.useGraphContext(),{stack:t,undo:r,redo:n}=e,o=(0,d.useCallback)(u=>t.subscribe(u),[t]),a=(0,d.useCallback)(()=>t.getSnapshot(),[t]),l=(0,d.useSyncExternalStore)(o,a,a);return(0,d.useMemo)(()=>({...l,undo:r,redo:n}),[l,r,n])},Pt=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]),Ct=(e,t={})=>{const{target:r,enabled:n=!0}=t;(0,d.useEffect)(()=>{const o=It(r);if(!n||!o)return;const a=l=>{if(!jt(l)||l.defaultPrevented||Nt(l.target))return;const u=s.resolveHistoryStep(l);if(!u)return;const h=e.current;h&&(u==="undo"?h.undo():h.redo())&&l.preventDefault()};return o.addEventListener("keydown",a),()=>o.removeEventListener("keydown",a)},[e,r,n])},It=e=>e===void 0?window:e!==null&&"current"in e?e.current:e,jt=e=>"key"in e,Nt=e=>e instanceof HTMLInputElement?!Pt.has(e.type):e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA":!1,Dt=()=>{const{targetBoundaryStore:e}=s.useGraphContext();return(0,U.useStore)(e,t=>t.boundary)};exports.CanvasTextMeasurer=s.CanvasTextMeasurer;exports.DefaultFooter=s.DefaultFooter;exports.DefaultGeomCircle=ue;exports.DefaultGeomLine=de;exports.DefaultGeomPath=he;exports.DefaultGeomRect=me;exports.DefaultGrid=s.DefaultGrid;exports.DefaultHeader=s.DefaultHeader;exports.DefaultSwatch=s.DefaultSwatch;exports.DefaultTooltip=s.DefaultTooltip;exports.DevToolsPanel=bt;exports.GRAPH_MODES=s.GRAPH_MODES;exports.GeomCircle=We;exports.GeomLine=Ye;exports.GeomOverpaint=s.GeomOverpaint;exports.GeomPanelSizeProvider=s.GeomPanelSizeProvider;exports.GeomPath=Qe;exports.GeomRect=Xe;exports.GraphErrorBoundary=oe;exports.GraphErrorPanel=W;exports.GraphProvider=ce;exports.GraphRenderer=s.GraphRenderer;exports.GraphyBadge=s.GraphyBadge;exports.HoverProvider=s.HoverProvider;exports.IntlProvider=s.ChartIntlProvider;exports.IntroFade=s.IntroFade;exports.IntroWipeClip=s.IntroWipeClip;exports.SymbolFigure=tt;exports.TextMeasurerProvider=s.TextMeasurerProvider;exports.ThemeProvider=s.ThemeProvider;exports.UnitBoxSvg=st;exports.UnitSpaceSvg=nt;exports.buildDotsEditOutlineShapes=s.buildDotsEditOutlineShapes;exports.createGraphyKit=Ue;exports.darkTheme=s.darkTheme;exports.defineGeomRenderer=s.defineGeomRenderer;exports.defineGlyph=s.defineGlyph;exports.getBuiltInEditOutlineShapes=s.getBuiltInEditOutlineShapes;exports.lightTheme=s.lightTheme;exports.lightenCss=s.lightenCss;exports.projectPointCartesian=s.projectPointCartesian;exports.pruneSelection=le;exports.readPositionPixels=w;exports.readRectPixels=Ve;exports.resolveGraphyBadgeVariant=s.resolveGraphyBadgeVariant;exports.resolvePathStroke=s.resolvePathStroke;exports.scalePointToPanel=s.scalePointToPanel;exports.stampAxisEditTarget=s.stampAxisEditTarget;exports.stampGridEditTarget=s.stampGridEditTarget;exports.stampLegendEditTarget=s.stampLegendEditTarget;exports.useElementScreenRect=s.useElementScreenRect;exports.useFormattingLocale=s.useFormattingLocale;exports.useGeomHitTest=s.useGeomHitTest;exports.useGeomHover=s.useGeomHover;exports.useGeomPanelSize=s.useGeomPanelSize;exports.useGeomReaderTree=s.useGeomReaderTree;exports.useGeomStyleReader=s.useGeomStyleReader;exports.useGeomViewportSize=s.useGeomViewportSize;exports.useGraphCommands=s.useGraphCommands;exports.useGraphHandle=s.useGraphHandle;exports.useGraphHistory=Rt;exports.useGraphHistoryShortcuts=Ct;exports.useGraphLocale=s.useGraphLocale;exports.useGraphSelection=s.useGraphSelection;exports.useGuidesTakePress=s.useGuidesTakePress;exports.useHandleScene=s.useHandleScene;exports.useHoverState=s.useHoverState;exports.usePaintDefs=s.usePaintDefs;exports.useResolvedStyle=s.useResolvedStyle;exports.useSceneSelector=s.useSceneSelector;exports.useStyleReaderTree=s.useStyleReaderTree;exports.useStyleResolver=s.useStyleResolver;exports.useTargetBoundary=Dt;exports.useTextMeasurer=s.useTextMeasurer;exports.vars=s.vars;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const s=require("./history-chords-BorFTpAl.cjs");let m=require("@graphysdk/viz-engine"),d=require("react"),i=require("react/jsx-runtime"),U=require("zustand"),F=require("motion/react"),Y=require("zustand/vanilla"),V=require("clsx");V=s.__toESM(V,1);var fe="_1a5iqpb0",pe="_1a5iqpb1";var ve="_1a5iqpb3",Se="_1a5iqpb4",ye="_1a5iqpb5";var W=({errors:e})=>{const[t,...r]=e;return(0,i.jsxs)("div",{role:"alert",className:fe,children:[(0,i.jsx)("strong",{className:pe,children:"This chart could not be rendered."}),t&&(0,i.jsx)(Q,{diagnostic:t}),r.length>0&&(0,i.jsx)("ul",{className:"_1a5iqpb2",children:r.map((n,o)=>(0,i.jsx)("li",{children:(0,i.jsx)(Q,{diagnostic:n})},`${n.code}-${o}`))})]})},Q=({diagnostic:e})=>(0,i.jsxs)("div",{className:ve,children:[(0,i.jsx)("span",{className:Se,children:e.code}),(0,i.jsx)("p",{className:ye,children:e.message}),e.suggestion&&(0,i.jsx)("p",{className:"_1a5iqpb6",children:e.suggestion})]});function be(e=[],t=[]){return e.length===t.length&&e.every((r,n)=>Object.is(r,t[n]))}var oe=class extends d.Component{constructor(...e){super(...e),this.state={caughtDiagnostic:null}}static getDerivedStateFromError(e){return{caughtDiagnostic:(0,m.buildDiagnostic)(e)}}componentDidCatch(e,t){const r=(0,m.buildDiagnostic)(e);s.logDiagnostics([r]),this.props.onError?.([r]),console.error("Chart render component stack:",t.componentStack)}componentDidUpdate(e){this.state.caughtDiagnostic&&!be(e.resetKeys,this.props.resetKeys)&&this.setState({caughtDiagnostic:null})}render(){const{caughtDiagnostic:e}=this.state;if(e)return(0,i.jsx)(W,{errors:[e]});const{forcedErrors:t,children:r}=this.props;return t&&t.length>0?(0,i.jsx)(W,{errors:t}):r}},ie=e=>typeof e=="object"&&"geom"in e&&"render"in e,ae=e=>{const t=(0,m.resolveDefinition)(e);return t instanceof m.Geom?t:null},le=(e,t)=>{const r=e.filter(n=>Ge(n,t));return r.length===e.length?e:r},Ge=(e,t)=>e.kind==="annotation"?(0,m.findAnnotation)(t.annotations,e.id)!==null:e.kind==="observations"||e.kind==="layer"&&e.layerId!==void 0?(0,m.findLayerById)(t.layers,e.layerId)!==void 0:!0,J=[],Te=()=>(0,Y.createStore)(e=>({selection:J,setSelection:t=>e(r=>xe(r.selection,t)?r:{selection:t}),clearSelection:()=>e(t=>t.selection.length===0?t:{selection:J})})),xe=(e,t)=>e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{const o=t[n];return o!==void 0&&(0,m.areEditTargetsEqual)(r,o)}),Ee=5,Re=e=>{if(!s.IS_DEV)return{emit:()=>{},subscribe:()=>Ce,getLastTrigger:()=>null,getLastCompile:()=>null,getCacheStats:()=>e.getCacheStats()};const t=new Set;let r=null;return{emit:n=>{const o=e.getLastCompile();if(o){r=n;for(const a of t)a(n,o)}},subscribe:n=>(t.add(n),()=>{t.delete(n)}),getLastTrigger:()=>r,getLastCompile:()=>e.getLastCompile(),getCacheStats:()=>e.getCacheStats()}},Pe=()=>(0,Y.createStore)(e=>({lastCompile:null,history:[],nextId:1,lastSnapshot:null,recordCompile:(t,r)=>e(n=>{if(n.lastSnapshot===r)return n;const o={id:n.nextId,label:Ie(t),stages:r.stages,stageDurationsMs:r.stageDurationsMs,durationMs:r.durationMs};return{lastCompile:o,history:je(n.history,o,Ee),nextId:n.nextId+1,lastSnapshot:r}})})),Ce=()=>{},Ie=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}},je=(e,t,r)=>{const n=e.length>=r?e.length-(r-1):0;return[...e.slice(n),t]};function Z(e){const t=e.filter(ie),r=new Set([...Object.keys(s.BUILT_IN_GEOM_RENDERERS),...t.map(u=>u.geom)]),n=[],o=new Set;for(const u of e){const h=ae(u);h===null||r.has(h.type)||o.has(h.type)||(o.add(h.type),n.push({kind:"userInput",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 a=new Map;for(const u of t){if("definition"in u)continue;const h=`${u.geom}|${u.coord}`,p=a.get(h);p?p.count+=1:a.set(h,{geom:u.geom,coord:u.coord,count:1})}const l=[];for(const{geom:u,coord:h,count:p}of a.values())p<2||l.push({kind:"userInput",severity:"warning",code:"DUPLICATE_REGISTERED_TYPE",message:`Multiple render-only overrides register ('${u}', '${h}') (${p} entries); the last in the array wins.`,context:{requested:`${u}@${h}`,kind:"geom-renderer"},suggestion:`Keep a single render-only override for ('${u}', '${h}').`});return l.push(...Me(e)),{errors:n,warnings:l}}function Ne(e,t){const{coordSystem:r,layers:n}=e,o=new Set,a=[];for(const l of n)t(l.geom,r.type)!==null||o.has(l.geom)||(o.add(l.geom),a.push({kind:"userInput",severity:"warning",code:"MISSING_GEOM_RENDERER",message:`No renderer for geom '${l.geom}' under ${r.type} coords; the layer is not painted.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:`Register a renderer for ('${l.geom}', '${r.type}') via \`defineGeomRenderer\`.`}));return a}function De(e,t){const{coordSystem:r,layers:n}=e,o=new Set,a=[];for(const l of n){if(l.interactive===!1||l.spatialKind!=="renderHitTest"||o.has(l.geom))continue;const u=t(l.geom,r.type);u===null||u.hitTest||s.isLiveRender(u)||(o.add(l.geom),a.push({kind:"userInput",severity:"warning",code:"MISSING_RENDER_HIT_TEST",message:`Geom '${l.geom}' declares spatialKind 'renderHitTest' but its renderer provides no hit-test; the layer has no hover.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:`Add a \`hitTest\` factory (precomputed geometry) or a live render (\`{ fn, options: { live: true } }\`, live simulation) to the renderer for ('${l.geom}', '${r.type}').`}))}return a}function Le(e){const t=new Set,r=[];for(const n of e.layers){const o=n.identityKey;n.interactive!==!1&&(n.spatialKind!=="renderHitTest"||typeof o!="object"||t.has(n.geom)||n.data.hasVariable(o.variable)||(t.add(n.geom),r.push({kind:"userInput",severity:"warning",code:"RENDER_HIT_TEST_IDENTITY",message:`Geom '${n.geom}' keys its identity on '${o.variable}', a column its compile output does not emit; its hover lookup is empty.`,context:{requested:n.geom,kind:"geom-renderer"},suggestion:`Emit the '${o.variable}' column from the geom's \`compile()\`, or point \`identityKey\` at a column it does emit.`})))}return r}function _e(e,t){const{coordSystem:r,layers:n}=e,o=new Set,a=[];for(const l of n){if(l.interactive===!1||l.spatialKind!=="renderHitTest"||o.has(l.geom))continue;const u=t(l.geom,r.type);u===null||!u.hitTest||!s.isLiveRender(u)||(o.add(l.geom),a.push({kind:"userInput",severity:"warning",code:"CONFLICTING_RENDER_HIT_TEST",message:`Geom '${l.geom}' declares both a \`hitTest\` factory and a live render; these are alternatives, so only the live render is used.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:"Keep one: a `hitTest` factory for precomputed geometry, OR a live render (`{ fn, options: { live: true } }`) for a live simulation."}))}return a}function we(e,t){const r=new Set,n=[];for(const o of e.layers)o.interactive!==!1&&(o.spatialKind!=="renderHitTest"||r.has(o.geom)||t.hasCapability(o.geom)||(r.add(o.geom),n.push({kind:"userInput",severity:"warning",code:"MISSING_ANCHOR_CAPABILITY",message:`Geom '${o.geom}' declares no \`resolveAnchorPosition\`; its observations cannot be annotated, so the editor overlay paints no creation trigger on them.`,context:{requested:o.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 n}function ke(e,t){const{coordSystem:r,layers:n}=e,o=new Set,a=[];for(const l of n){if(l.interactive===!1||l.spatialKind==="renderHitTest"||o.has(l.geom))continue;const u=t(l.geom,r.type);u===null||!s.isLiveRender(u)||(o.add(l.geom),a.push({kind:"userInput",severity:"warning",code:"LIVE_RENDER_REQUIRES_RENDER_HIT_TEST",message:`Geom '${l.geom}' declares a live render but its layer's spatialKind is '${l.spatialKind}', not 'renderHitTest'; its push-path hover resolves to nothing.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:"Have the geom's manifest yield spatialKind 'renderHitTest' so the scene layer carries the `byKey` index the live render's `pushHover` resolves against."}))}return a}function qe(e,t){let r;return e.layers.flatMap((n,o)=>s.isLiveRender(t(n.geom,e.coordSystem.type))?He(n)?(r??=(0,m.createStyleResolver)().readers(e),(r.geom(n).get("overpaint",void 0,"hovered")?.length??0)===0?[]:[{kind:"userInput",severity:"warning",code:"INVALID_STYLE_RULE",message:`Style 'overpaint' in state 'hovered' is not supported on live geom '${n.geom}' (layer '${n.id}'); it is ignored.`,context:{param:"overpaint",layerIndex:o,requested:n.geom},suggestion:"Remove the hovered overpaint, or paint the hover treatment in the geom's live render."}]):[]:[])}var He=e=>[e.styles.defaults,e.styles.overrides].some(t=>t.some(r=>r.state==="hovered"&&(r.declarations.overpaint?.length??0)>0));function Me(e){const t=new Set,r=[];for(const n of e){const o=ae(n);o===null||t.has(o.type)||o.dataLabelCoordTypes.length===0||o.getDataLabelPlacements!==void 0||(t.add(o.type),r.push({kind:"userInput",severity:"warning",code:"MISSING_DATA_LABEL_PLACEMENT",message:`Geom '${o.type}' declares \`dataLabelCoordTypes\` but implements no \`getDataLabelPlacements\`; its layers paint no data labels.`,context:{requested:o.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 Ae=e=>(0,Y.createStore)(t=>({scene:e,setScene:r=>t(n=>n.scene===r?n:{scene:r})})),$e=({spec:e,data:t,colorScheme:r,plugins:n,theme:o,resolveRenderer:a,anchorResolver:l,onSpecChange:u,onError:h,onWarnings:p})=>{const b=s.useLatestRef(u),j=s.useLatestRef(h),T=s.useLatestRef(p),[{session:v,compileBus:g,findGeom:G}]=(0,d.useState)(()=>{const c=(0,m.createCompiler)({plugins:n,theme:o});return{session:new m.GraphCompilationSession(c),compileBus:Re(c),findGeom:f=>c.findGeom(f)}}),[S]=(0,d.useState)(()=>{const c=Z(n??[]),f=Z(o?.plugins??[]);return{errors:[...f.errors,...c.errors],warnings:[...f.warnings,...c.warnings]}}),k=(0,d.useRef)(null),[N]=(0,d.useState)(Oe),E=(0,d.useRef)(null),y=(0,d.useCallback)(c=>S.errors.length===0?c:[...S.errors,...c??[]],[S]),_=(0,d.useCallback)(c=>{if(!c.ok)return c.errors;if(E.current)E.current.getState().setScene(c.scene);else{const f=Ae(c.scene);f.subscribe(N.notify),E.current=f,N.notify()}return null},[N]),[$,P]=(0,d.useState)(()=>{const c=v.compile({spec:e,data:t,colorScheme:r});return k.current=c,y(_(c))}),C=(0,d.useCallback)(c=>c.ok?[...c.warnings,...Ne(c.scene,a),...De(c.scene,a),...Le(c.scene),..._e(c.scene,a),...ke(c.scene,a),...qe(c.scene,a),...we(c.scene,l)]:c.warnings,[a,l]),I=(0,d.useCallback)(c=>{c.length!==0&&(s.logDiagnostics(c),j.current?.(c))},[j]),x=(0,d.useCallback)(c=>{c.length!==0&&(s.logDiagnostics(c),T.current?.(c))},[T]);(0,d.useEffect)(()=>{const c=k.current;c&&(I([...S.errors,...c.ok?[]:c.errors]),x([...S.warnings,...C(c)]),c.ok&&g.emit({kind:"init"}))},[g,I,x,S,C]),(0,d.useEffect)(()=>{const c=v.update({spec:e,data:t,colorScheme:r});if(!c)return;c.committedSpec&&b.current?.(c.committedSpec);const f=_(c.result);P(y(f)),f&&I(f),x(C(c.result)),f||g.emit({kind:c.hasSpecChange?"spec":"data"})},[e,t,r,v,g,_,I,x,y,C,b]);const q=(0,d.useCallback)(c=>{P(f=>f===null?f:y(null)),x(C(c))},[y,x,C]),H=(0,d.useCallback)(c=>{c.scene&&E.current?.getState().setScene(c.scene),c.result&&q(c.result),c.command&&g.emit({kind:"command",command:c.command}),c.spec&&b.current?.(c.spec),c.errors&&I([...c.errors])},[q,g,b,I]),R=(0,d.useCallback)(c=>{for(const f of c)H(f);return c.some(f=>!!f.scene)},[H]),K=(0,d.useCallback)((c,f)=>{R(v.applyCommand(c,f))},[v,R]),O=(0,d.useCallback)(()=>{R(v.commit())},[v,R]),L=(0,d.useCallback)(()=>R(v.undo()),[v,R]),M=(0,d.useCallback)(()=>R(v.redo()),[v,R]),D=(0,d.useMemo)(()=>({stack:v.history,undo:L,redo:M}),[v,L,M]),z=(0,d.useCallback)(()=>E.current?.getState().scene??null,[]);return{store:E.current,dispatch:K,commit:O,history:D,subscribe:N.subscribe,getScene:z,compileBus:g,compileErrors:$,findGeom:G}},Oe=()=>{const e=new Set;return{subscribe:t=>(e.add(t),()=>{e.delete(t)}),notify:()=>e.forEach(t=>t())}},Be=["cartesian","polar"],ce=({data:e,spec:t,plugins:r=[],theme:n,glyphs:o,formattingLocale:a,handleRef:l,onSpecChange:u,onError:h,onWarnings:p,colorScheme:b="light",children:j})=>{const T=ze(a,p),[v]=(0,d.useState)(()=>n),[g]=(0,d.useState)(()=>s.mergeGlyphs(n?.glyphs,o)),G=v?.colorScheme??b,[S]=(0,d.useState)(()=>s.createGeomRendererResolver([...v?.plugins??[],...r].filter(ie)));Ke(S,g);const k=(0,d.useId)(),[N]=(0,d.useState)(()=>(0,m.createAnchorResolver)(r)),[E]=(0,d.useState)(()=>(0,m.createDataLabelPlacementResolver)(r)),[y]=(0,d.useState)(()=>Te()),[_]=(0,d.useState)(()=>s.createTargetBoundaryStore()),$=(0,d.useMemo)(()=>(0,m.createStyleResolver)({colorScheme:G}),[G]),{store:P,dispatch:C,commit:I,history:x,subscribe:q,getScene:H,compileBus:R,compileErrors:K,findGeom:O}=$e({spec:t,data:e,colorScheme:G,plugins:r,theme:v,resolveRenderer:S,anchorResolver:N,onSpecChange:u,onError:h,onWarnings:p});(0,d.useEffect)(()=>{if(P)return P.subscribe((D,z)=>{if(D.scene.spec===z.scene.spec)return;const{selection:c,setSelection:f}=y.getState();c.length!==0&&f(le(c,D.scene.spec))})},[P,y]);const L=(0,d.useMemo)(()=>({dispatch:C,commit:I}),[C,I]);(0,d.useImperativeHandle)(l,()=>({commands:L,undo:x.undo,redo:x.redo,subscribe:q,getScene:H,formattingLocale:T,getSelection:()=>y.getState().selection,setSelection:D=>y.getState().setSelection(D),subscribeSelection:y.subscribe,canPlaceDataLabels:E.hasCapability,canFormatDataLabelsAsPercentages:E.hasPercentageFormat,getGlyphs:()=>g,getPointSymbols:D=>S("point",D)?.symbols}),[L,x,q,H,T,y,E,g,S]);const M=(0,d.useMemo)(()=>P?{chartId:k,store:P,selectionStore:y,targetBoundaryStore:_,commands:L,history:x,formattingLocale:T,compileBus:R,colorScheme:G,styleResolver:$,anchorResolver:N,findGeom:O}:null,[k,P,y,_,L,x,T,R,G,$,N,O]);return(0,i.jsx)(oe,{forcedErrors:K,onError:h,resetKeys:[t,e],children:M?(0,i.jsx)(s.GraphContext.Provider,{value:M,children:(0,i.jsx)(s.GeomRendererResolverProvider,{value:S,children:(0,i.jsx)(s.DataLabelPlacementResolverProvider,{value:E,children:(0,i.jsx)(s.GeomShapesProvider,{shapes:v?.shapes,children:(0,i.jsx)(s.GlyphRegistryProvider,{glyphs:g,children:j})})})})}):null})},Fe=(e,t)=>(e??[]).filter(r=>!(0,m.isGeometricSymbol)(r)&&!t.has(r)),Ke=(e,t)=>{(0,d.useEffect)(()=>{if(!s.IS_DEV)return;const r=new Set(t.map(({name:n})=>n));for(const n of Be)for(const o of Fe(e("point",n)?.symbols,r))console.warn(`[graphy] The ${n} point renderer lists "${o}", but no glyph has that name. The shape menu offers it, and SymbolFigure draws the first listed symbol in its place.`)},[e,t])},ze=(e,t)=>{const r=s.useLatestRef(t);return(0,d.useEffect)(()=>{if(e===void 0||(0,m.findIntlLocale)(e)!==void 0)return;const n=[{severity:"warning",kind:"userInput",code:"INVALID_FORMATTING_LOCALE",message:`formattingLocale '${e}' is not a tag Intl can format in, so the chart formats in ${m.DEFAULT_LOCALE}.`}];s.logDiagnostics(n),r.current?.(n)},[e,r]),e===void 0?void 0:(0,m.canonicalizeLocale)(e)};function Ue({theme:e,glyphs:t,...r}={}){const n=(0,m.createSpecBuilder)(r);return{...n,GraphProvider:a=>(0,i.jsx)(ce,{...a,plugins:n.plugins,theme:e,glyphs:t})}}var w=(e,t)=>{if(typeof e=="number")return Number.isFinite(e)?e:null;if(!e.endsWith("%"))return null;const r=Number.parseFloat(e);return Number.isFinite(r)?r/100*t:null},Ve=({x:e,y:t,width:r,height:n},o)=>{const a=w(e,o.width),l=w(t,o.height),u=w(r,o.width),h=w(n,o.height);return a===null||l===null||u===null||h===null?null:{x:a,y:l,width:u,height:h}},ue=({animateTransitions:e,cx:t,cy:r,r:n,effects:o,...a})=>{const l=s.toGeomEffectsStyle(o);return e?(0,i.jsx)(F.motion.circle,{initial:!1,animate:{cx:t,cy:r,r:n},transition:s.DEFAULT_SPRING_TRANSITION,style:l,...a}):(0,i.jsx)("circle",{cx:t,cy:r,r:n,style:l,...a})},de=({animateTransitions:e,x1:t,y1:r,x2:n,y2:o,effects:a,...l})=>{const u=s.toGeomEffectsStyle(a);return e?(0,i.jsx)(F.motion.line,{initial:!1,animate:{x1:t,y1:r,x2:n,y2:o},transition:s.DEFAULT_SPRING_TRANSITION,style:u,...l}):(0,i.jsx)("line",{x1:t,y1:r,x2:n,y2:o,style:u,...l})},me=({animateTransitions:e,x:t,y:r,width:n,height:o,rx:a,ry:l,effects:u,...h})=>{const p=s.toGeomEffectsStyle(u);return e?(0,i.jsx)(F.motion.rect,{initial:!1,animate:{attrX:t,attrY:r,width:n,height:o,...a!==void 0&&l!==void 0?{rx:a,ry:l}:{}},transition:s.DEFAULT_SPRING_TRANSITION,style:p,...h}):(0,i.jsx)("rect",{x:t,y:r,width:n,height:o,rx:a,ry:l,style:p,...h})},he=({animateTransitions:e,d:t,source:r,effects:n,...o})=>{const a=s.toGeomEffectsStyle(n);return e?(0,i.jsx)(Je,{d:t,source:r,style:a,...o}):(0,i.jsx)("path",{d:t,style:a,...o})},We=e=>{const{Circle:t}=s.useGeomShapes(),{symbol:r,...n}=e;return r!==void 0&&r!=="circle"?(0,i.jsx)("g",{style:s.toGeomEffectsStyle(e.effects),"data-testid":e["data-testid"],children:(0,i.jsx)(s.PointSymbol,{symbol:r,cx:ee(e.cx),cy:ee(e.cy),size:e.r*2,fill:e.fill??"currentColor",fillOpacity:e.fillOpacity,opacity:e.opacity,stroke:e.stroke,strokeOpacity:e.strokeOpacity,strokeWidth:e.strokeWidth,motion:e.animateTransitions?{transition:s.DEFAULT_SPRING_TRANSITION,intro:!1,fadesIn:!1}:null})}):t===void 0?ue(n):(0,i.jsx)(s.GeomShapesProvider,{children:(0,i.jsx)(t,{...n})})},Ye=e=>{const{Line:t}=s.useGeomShapes();return t===void 0?de(e):(0,i.jsx)(s.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},Xe=({cornerRadius:e,...t})=>{const{Rect:r}=s.useGeomShapes(),n=s.useGeomViewport()?.size??null,o=s.useGeomPixelsPerUnit(),a={...t,...Ze(e,t,n,o)};return r===void 0?me(a):(0,i.jsx)(s.GeomShapesProvider,{children:(0,i.jsx)(r,{...a})})},Qe=e=>{const{Path:t}=s.useGeomShapes();return t===void 0?he(e):(0,i.jsx)(s.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},ee=e=>typeof e=="number"?`${e}px`:e,Je=({d:e,source:t,...r})=>{const n=s.useSvgPathMorph(e,s.DEFAULT_SPRING_TRANSITION,t);return(0,i.jsx)(F.motion.path,{d:n,...r})},Ze=(e,t,r,n)=>{if(e===void 0)return{};const o=(0,m.foldGeomCornerRadii)(e);if(o===void 0)return{};const a=et(t,r,n);if(a===null)return o==="full"?{}:re((0,m.resolveGeomCornerRadiusPx)({cornerRadius:o}),n);const l=Math.min((0,m.resolveGeomCornerRadiusPx)({cornerRadius:o,box:a}),Math.min(a.width,a.height)/2);return re(l,n)},et=(e,t,r)=>{const n=te(e.width,t?.width,r.x),o=te(e.height,t?.height,r.y);return n===null||o===null?null:{width:n,height:o}},te=(e,t,r)=>{if(typeof e=="number")return Number.isFinite(e)?Math.abs(e)*r:null;if(t===void 0)return null;const n=w(e,t);return n===null?null:Math.abs(n)},re=(e,t)=>t.x<=0||t.y<=0?{rx:0,ry:0}:{rx:e/t.x,ry:e/t.y},tt=({symbol:e,size:t,fill:r,fillOpacity:n,stroke:o,strokeOpacity:a,strokeWidth:l})=>{const u=s.useGlyphRegistry(),h=s.useGeomRendererResolver(),p=s.useSceneSelector(T=>T.coordSystem.type),b=rt(e,h("point",p)?.symbols??[],u),j={size:t,fill:r,fillOpacity:n,stroke:o,strokeOpacity:a,strokeWidth:l};return(0,m.isGeometricSymbol)(b)?(0,i.jsx)("path",{d:(0,m.buildPointSymbolPath)(b,t),fill:r,fillOpacity:n,stroke:o,strokeOpacity:a,strokeWidth:l,strokeLinejoin:"round"}):(0,i.jsx)(s.GlyphMark,{symbol:b,glyphs:u,...j})},rt=(e,t,r)=>(0,m.isImageSymbol)(e)||t.includes(e)||!(0,m.isGeometricSymbol)(e)&&r.has(e)?e:t[0]??"circle",nt=({children:e,...t})=>{const r=s.useGeomViewport()?.size??null;return(0,i.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%",pointerEvents:"none",...t,children:(0,i.jsx)(s.GeomViewportProvider,{size:r,space:"unit",children:e})})},st=({box:e,children:t})=>{const r=s.useGeomViewportSize(),n=r===null?null:r.width*(e.x1-e.x0),o=r===null?null:r.height*(e.y1-e.y0),a=(0,d.useMemo)(()=>n===null||o===null?null:{width:n,height:o},[n,o]);return(0,i.jsx)("svg",{x:(0,m.toPercent)(e.x0),y:(0,m.toPercent)(e.y0),width:(0,m.toPercent)(e.x1-e.x0),height:(0,m.toPercent)(e.y1-e.y0),overflow:"hidden",pointerEvents:"none",children:(0,i.jsx)(s.GeomViewportProvider,{size:a,children:t})})},ot="drqe3u0",it="drqe3u1",at="drqe3u2",lt="drqe3u3",A="drqe3u4",ct="drqe3u5",ut="drqe3u6",dt="drqe3u7",B="drqe3u8",mt="drqe3u9",ht="drqe3ua";var gt="drqe3uc",ft="drqe3ud",pt="drqe3ue",vt="drqe3uf";var St="drqe3uh",yt="drqe3ui",ne={enabled:"drqe3uk drqe3uj",disabled:"drqe3ul drqe3uj"},se={ran:"drqe3un drqe3um",dim:"drqe3uo drqe3um"},ge={ran:"drqe3uq drqe3up",cached:"drqe3ur drqe3up",untouched:"drqe3us drqe3up"},bt=({width:e=440,style:t,className:r}={})=>{const{compileBus:n}=s.useGraphContext(),[o]=(0,d.useState)(()=>Pe()),[a,l]=(0,d.useState)(!1),[u,h]=(0,d.useState)(m.isCompilerCachingEnabled);(0,d.useEffect)(()=>{const{recordCompile:g}=o.getState(),G=n.getLastTrigger(),S=n.getLastCompile();return G&&S&&g(G,S),n.subscribe(g)},[o,n]);const p=(0,U.useStore)(o,g=>g.lastCompile),b=(0,U.useStore)(o,g=>g.history),j=n.getCacheStats(),T=p===null&&b.length===0,v=()=>{h(g=>{const G=!g;return(0,m.setCompilerCachingEnabled)(G),G})};return(0,i.jsxs)("div",{className:(0,V.default)(ht,r),style:{width:e,...t},children:[(0,i.jsxs)("div",{className:ot,children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:it,children:"compile cache"}),(0,i.jsx)("div",{className:pt,children:T?"production: stats disabled":p?`last: ${p.label} · ${X(p.durationMs)}`:"awaiting first compile…"})]}),(0,i.jsx)("button",{type:"button",onClick:()=>l(g=>!g),className:vt,children:a?"▾":"▴"})]}),!a&&(0,i.jsxs)("div",{className:"drqe3ub",children:[(0,i.jsxs)("button",{type:"button",onClick:v,className:u?ne.enabled:ne.disabled,"aria-pressed":u,children:["cache ",u?"enabled":"disabled"]}),(0,i.jsx)("span",{className:"drqe3ug",children:"next compile reflects this toggle"})]}),!a&&!T&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Gt,{delta:p?.stages,durations:p?.stageDurationsMs,cumulative:j}),(0,i.jsx)(Tt,{entries:b})]})]})},Gt=({delta:e,durations:t,cumulative:r})=>(0,i.jsxs)("table",{className:at,children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{className:St,children:[(0,i.jsx)("th",{className:lt,children:"stage"}),(0,i.jsx)("th",{className:A,children:"time"}),(0,i.jsx)("th",{className:A,children:"Δ miss"}),(0,i.jsx)("th",{className:A,children:"Δ hit"}),(0,i.jsx)("th",{className:A,children:"total miss"}),(0,i.jsx)("th",{className:A,children:"total hit"})]})}),(0,i.jsx)("tbody",{children:m.COMPILER_STAGE_KEYS.map(n=>{const o=e?.[n],a=xt(o);return(0,i.jsxs)("tr",{className:gt,children:[(0,i.jsxs)("td",{className:ct,children:[(0,i.jsx)("span",{className:ge[a],"aria-hidden":!0})," ",n]}),(0,i.jsx)("td",{className:B,children:t===void 0||a==="untouched"?"—":X(t[n])}),(0,i.jsx)("td",{className:a==="ran"?se.ran:se.dim,children:o?.misses??0}),(0,i.jsx)("td",{className:B,children:o?.hits??0}),(0,i.jsx)("td",{className:B,children:r[n].misses}),(0,i.jsx)("td",{className:B,children:r[n].hits})]},n)})})]}),Tt=({entries:e})=>e.length===0?null:(0,i.jsxs)("div",{className:ft,children:[(0,i.jsx)("div",{className:yt,children:"recent compiles"}),e.map(t=>{const r=Et(t.stages,a=>a.misses>0),n=m.COMPILER_STAGE_KEYS.length,o=r===0?"cached":"ran";return(0,i.jsxs)("div",{className:ut,children:[(0,i.jsx)("span",{className:ge[o],"aria-hidden":!0}),(0,i.jsx)("span",{className:dt,title:t.label,children:t.label}),(0,i.jsxs)("span",{className:mt,children:[r,"/",n," ran · ",X(t.durationMs)]})]},t.id)})]}),xt=e=>!e||e.hits===0&&e.misses===0?"untouched":e.misses>0?"ran":"cached",Et=(e,t)=>{let r=0;for(const n of m.COMPILER_STAGE_KEYS)t(e[n])&&(r+=1);return r},X=e=>e<.1?"<0.1ms":e>=10?`${e.toFixed(0)}ms`:`${e.toFixed(2)}ms`,Rt=()=>{const{history:e}=s.useGraphContext(),{stack:t,undo:r,redo:n}=e,o=(0,d.useCallback)(u=>t.subscribe(u),[t]),a=(0,d.useCallback)(()=>t.getSnapshot(),[t]),l=(0,d.useSyncExternalStore)(o,a,a);return(0,d.useMemo)(()=>({...l,undo:r,redo:n}),[l,r,n])},Pt=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]),Ct=(e,t={})=>{const{target:r,enabled:n=!0}=t;(0,d.useEffect)(()=>{const o=It(r);if(!n||!o)return;const a=l=>{if(!jt(l)||l.defaultPrevented||Nt(l.target))return;const u=s.resolveHistoryStep(l);if(!u)return;const h=e.current;h&&(u==="undo"?h.undo():h.redo())&&l.preventDefault()};return o.addEventListener("keydown",a),()=>o.removeEventListener("keydown",a)},[e,r,n])},It=e=>e===void 0?window:e!==null&&"current"in e?e.current:e,jt=e=>"key"in e,Nt=e=>e instanceof HTMLInputElement?!Pt.has(e.type):e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA":!1,Dt=()=>{const{targetBoundaryStore:e}=s.useGraphContext();return(0,U.useStore)(e,t=>t.boundary)};exports.CanvasTextMeasurer=s.CanvasTextMeasurer;exports.DefaultFooter=s.DefaultFooter;exports.DefaultGeomCircle=ue;exports.DefaultGeomLine=de;exports.DefaultGeomPath=he;exports.DefaultGeomRect=me;exports.DefaultGrid=s.DefaultGrid;exports.DefaultHeader=s.DefaultHeader;exports.DefaultSwatch=s.DefaultSwatch;exports.DefaultTooltip=s.DefaultTooltip;exports.DevToolsPanel=bt;exports.GRAPH_MODES=s.GRAPH_MODES;exports.GeomCircle=We;exports.GeomLine=Ye;exports.GeomOverpaint=s.GeomOverpaint;exports.GeomPanelSizeProvider=s.GeomPanelSizeProvider;exports.GeomPath=Qe;exports.GeomRect=Xe;exports.GraphErrorBoundary=oe;exports.GraphErrorPanel=W;exports.GraphProvider=ce;exports.GraphRenderer=s.GraphRenderer;exports.GraphyBadge=s.GraphyBadge;exports.HoverProvider=s.HoverProvider;exports.IntlProvider=s.ChartIntlProvider;exports.IntroFade=s.IntroFade;exports.IntroWipeClip=s.IntroWipeClip;exports.SymbolFigure=tt;exports.TextMeasurerProvider=s.TextMeasurerProvider;exports.ThemeProvider=s.ThemeProvider;exports.UnitBoxSvg=st;exports.UnitSpaceSvg=nt;exports.buildDotsEditOutlineShapes=s.buildDotsEditOutlineShapes;exports.createGraphyKit=Ue;exports.darkTheme=s.darkTheme;exports.defineGeomRenderer=s.defineGeomRenderer;exports.defineGlyph=s.defineGlyph;exports.getBuiltInEditOutlineShapes=s.getBuiltInEditOutlineShapes;exports.lightTheme=s.lightTheme;exports.lightenCss=s.lightenCss;exports.projectPointCartesian=s.projectPointCartesian;exports.pruneSelection=le;exports.readPositionPixels=w;exports.readRectPixels=Ve;exports.resolveGraphyBadgeVariant=s.resolveGraphyBadgeVariant;exports.resolvePathStroke=s.resolvePathStroke;exports.scalePointToPanel=s.scalePointToPanel;exports.stampAxisEditTarget=s.stampAxisEditTarget;exports.stampGridEditTarget=s.stampGridEditTarget;exports.stampLegendEditTarget=s.stampLegendEditTarget;exports.useElementScreenRect=s.useElementScreenRect;exports.useFormattingLocale=s.useFormattingLocale;exports.useGeomHitTest=s.useGeomHitTest;exports.useGeomHover=s.useGeomHover;exports.useGeomPanelSize=s.useGeomPanelSize;exports.useGeomReaderTree=s.useGeomReaderTree;exports.useGeomStyleReader=s.useGeomStyleReader;exports.useGeomViewportSize=s.useGeomViewportSize;exports.useGraphCommands=s.useGraphCommands;exports.useGraphHandle=s.useGraphHandle;exports.useGraphHistory=Rt;exports.useGraphHistoryShortcuts=Ct;exports.useGraphLocale=s.useGraphLocale;exports.useGraphSelection=s.useGraphSelection;exports.useGuidesTakePress=s.useGuidesTakePress;exports.useHandleScene=s.useHandleScene;exports.useHoverState=s.useHoverState;exports.usePaintDefs=s.usePaintDefs;exports.useResolvedStyle=s.useResolvedStyle;exports.useSceneSelector=s.useSceneSelector;exports.useStyleReaderTree=s.useStyleReaderTree;exports.useStyleResolver=s.useStyleResolver;exports.useTargetBoundary=Dt;exports.useTextMeasurer=s.useTextMeasurer;exports.vars=s.vars;
|
package/dist/index.d.ts
CHANGED
|
@@ -1424,8 +1424,8 @@ export declare interface GraphProviderProps {
|
|
|
1424
1424
|
*/
|
|
1425
1425
|
glyphs?: readonly GlyphDefinition[];
|
|
1426
1426
|
/**
|
|
1427
|
-
* Formats numbers and dates for display: any BCP-47 tag (`it-IT`). A tag `Intl` cannot read formats as `en-
|
|
1428
|
-
* reports `INVALID_FORMATTING_LOCALE`. Graphy's own texts use the built-in dictionary for its language, else `en-
|
|
1427
|
+
* Formats numbers and dates for display: any BCP-47 tag (`it-IT`). A tag `Intl` cannot read formats as `en-US` and
|
|
1428
|
+
* reports `INVALID_FORMATTING_LOCALE`. Graphy's own texts use the built-in dictionary for its language, else `en-US`.
|
|
1429
1429
|
*/
|
|
1430
1430
|
formattingLocale?: FormattingLocale;
|
|
1431
1431
|
/**
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $t as Nr, A as Cr, An as we, B as wr, Bn as Pr, Bt as Pe, Cn as F, Dn as Lr, En as Dr, Et as qr, Fn as Te, Ft as _r, Gt as Le, Hn as De, Ht as kr, In as $r, Kn as X, Kt as Hr, L as xr, Ln as Mr, Lt as Y, M as Ar, Mn as qe, Nt as Or, On as _e, Pn as ke, Pt as Br, Qt as Fr, R as Kr, Rn as zr, Sn as K, Un as ne, Ut as Ur, Vn as $e, Vt as He, Wn as xe, Wt as Q, Xt as Me, Yt as jr, Zt as Ae, _n as Z, _t as Wr, a as Vr, an as Yr, at as Xr, bn as Qr, bt as Zr, cn as Jr, ct as en, dn as tn, en as rn, fn as nn, gn as Oe, h as sn, hn as on, i as an, it as cn, j as ln, jn as dn, jt as un, kn as Be, kt as mn, mn as Ee, mt as hn, n as gn, ot as fn, pn as z, r as pn, s as vn, t as Fe, tn as yn, vn as Re, vt as Sn, w as bn, wn as Tn, xn as Ke, yn as ze, z as En, zn as Rn } from "./history-chords-
|
|
1
|
+
import { $t as Nr, A as Cr, An as we, B as wr, Bn as Pr, Bt as Pe, Cn as F, Dn as Lr, En as Dr, Et as qr, Fn as Te, Ft as _r, Gt as Le, Hn as De, Ht as kr, In as $r, Kn as X, Kt as Hr, L as xr, Ln as Mr, Lt as Y, M as Ar, Mn as qe, Nt as Or, On as _e, Pn as ke, Pt as Br, Qt as Fr, R as Kr, Rn as zr, Sn as K, Un as ne, Ut as Ur, Vn as $e, Vt as He, Wn as xe, Wt as Q, Xt as Me, Yt as jr, Zt as Ae, _n as Z, _t as Wr, a as Vr, an as Yr, at as Xr, bn as Qr, bt as Zr, cn as Jr, ct as en, dn as tn, en as rn, fn as nn, gn as Oe, h as sn, hn as on, i as an, it as cn, j as ln, jn as dn, jt as un, kn as Be, kt as mn, mn as Ee, mt as hn, n as gn, ot as fn, pn as z, r as pn, s as vn, t as Fe, tn as yn, vn as Re, vt as Sn, w as bn, wn as Tn, xn as Ke, yn as ze, z as En, zn as Rn } from "./history-chords-CimEnXtI.js";
|
|
2
2
|
import { COMPILER_STAGE_KEYS as se, DEFAULT_LOCALE as Ue, Geom as je, GraphCompilationSession as We, areEditTargetsEqual as Ve, buildDiagnostic as ce, buildPointSymbolPath as Ye, canonicalizeLocale as Xe, createAnchorResolver as Qe, createCompiler as Ze, createDataLabelPlacementResolver as Je, createSpecBuilder as et, createStyleResolver as Ge, findAnnotation as tt, findIntlLocale as rt, findLayerById as le, foldGeomCornerRadii as nt, isCompilerCachingEnabled as st, isGeometricSymbol as oe, isImageSymbol as ot, resolveDefinition as it, resolveGeomCornerRadiusPx as de, setCompilerCachingEnabled as at, toPercent as W } from "@graphysdk/viz-engine";
|
|
3
3
|
import { Component as ct, useCallback as p, useEffect as _, useId as lt, useImperativeHandle as dt, useMemo as $, useRef as ue, useState as S, useSyncExternalStore as ut } from "react";
|
|
4
4
|
import { Fragment as mt, jsx as c, jsxs as v } from "react/jsx-runtime";
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"visualization",
|
|
12
12
|
"renderer"
|
|
13
13
|
],
|
|
14
|
-
"version": "1.9.0-beta.
|
|
14
|
+
"version": "1.9.0-beta.1793882432228",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"sideEffects": [
|
|
17
17
|
"**/*.css.ts",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"react-colorful": "^5.6.1",
|
|
51
51
|
"react-intl": "^8.1.3",
|
|
52
52
|
"zustand": "^5.0.12",
|
|
53
|
-
"@graphysdk/viz-engine": "1.9.0-beta.
|
|
53
|
+
"@graphysdk/viz-engine": "1.9.0-beta.1793882432228"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"@tiptap/core": "^3.0.0",
|
|
@@ -150,10 +150,10 @@
|
|
|
150
150
|
"vite-plugin-dts": "^4.5.4",
|
|
151
151
|
"vite-plugin-lib-inject-css": "^2.2.2",
|
|
152
152
|
"vitest": "^4.1.11",
|
|
153
|
+
"@graphytools/eslint-config": "0.0.1",
|
|
153
154
|
"@graphytools/eslint-plugin-graphy": "1.0.0",
|
|
154
155
|
"@graphytools/typescript-config": "0.0.1",
|
|
155
|
-
"@graphytools/vitest-config": "1.0.0"
|
|
156
|
-
"@graphytools/eslint-config": "0.0.1"
|
|
156
|
+
"@graphytools/vitest-config": "1.0.0"
|
|
157
157
|
},
|
|
158
158
|
"publishConfig": {
|
|
159
159
|
"access": "public"
|