@graphysdk/react-renderer 1.9.0-beta.1792518514317 → 1.9.0-beta.1792575115573
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 +56 -56
- package/dist/{history-chords-Bf7f1kij.js → history-chords-CkXZ_0Gc.js} +607 -605
- package/dist/history-chords-XJ9tQsgG.cjs +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.mjs +111 -110
- package/package.json +4 -4
- package/dist/history-chords-w_1drv6K.cjs +0 -2
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const o=require("./history-chords-w_1drv6K.cjs");let m=require("@graphysdk/viz-engine"),d=require("react"),i=require("react/jsx-runtime"),F=require("zustand"),O=require("motion/react"),Y=require("zustand/vanilla"),U=require("clsx");U=o.__toESM(U,1);var me="_1a5iqpb0",ge="_1a5iqpb1";var pe="_1a5iqpb3",ve="_1a5iqpb4",fe="_1a5iqpb5";var z=({errors:e})=>{const[t,...r]=e;return(0,i.jsxs)("div",{role:"alert",className:me,children:[(0,i.jsx)("strong",{className:ge,children:"This chart could not be rendered."}),t&&(0,i.jsx)(V,{diagnostic:t}),r.length>0&&(0,i.jsx)("ul",{className:"_1a5iqpb2",children:r.map((n,s)=>(0,i.jsx)("li",{children:(0,i.jsx)(V,{diagnostic:n})},`${n.code}-${s}`))})]})},V=({diagnostic:e})=>(0,i.jsxs)("div",{className:pe,children:[(0,i.jsx)("span",{className:ve,children:e.code}),(0,i.jsx)("p",{className:fe,children:e.message}),e.suggestion&&(0,i.jsx)("p",{className:"_1a5iqpb6",children:e.suggestion})]});function Se(e=[],t=[]){return e.length===t.length&&e.every((r,n)=>Object.is(r,t[n]))}var re=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);o.logDiagnostics([r]),this.props.onError?.([r]),console.error("Chart render component stack:",t.componentStack)}componentDidUpdate(e){this.state.caughtDiagnostic&&!Se(e.resetKeys,this.props.resetKeys)&&this.setState({caughtDiagnostic:null})}render(){const{caughtDiagnostic:e}=this.state;if(e)return(0,i.jsx)(z,{errors:[e]});const{forcedErrors:t,children:r}=this.props;return t&&t.length>0?(0,i.jsx)(z,{errors:t}):r}},ne=e=>typeof e=="object"&&"geom"in e&&"render"in e,se=e=>{const t=(0,m.resolveDefinition)(e);return t instanceof m.Geom?t:null},oe=(e,t)=>{const r=e.filter(n=>ye(n,t));return r.length===e.length?e:r},ye=(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,X=[],be=()=>(0,Y.createStore)(e=>({selection:X,setSelection:t=>e(r=>Ge(r.selection,t)?r:{selection:t}),clearSelection:()=>e(t=>t.selection.length===0?t:{selection:X})})),Ge=(e,t)=>e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{const s=t[n];return s!==void 0&&(0,m.areEditTargetsEqual)(r,s)}),xe=process.env.NODE_ENV!=="production",Ee=5,Te=e=>{if(!xe)return{emit:()=>{},subscribe:()=>Pe,getLastTrigger:()=>null,getLastCompile:()=>null,getCacheStats:()=>e.getCacheStats()};const t=new Set;let r=null;return{emit:n=>{const s=e.getLastCompile();if(s){r=n;for(const c of t)c(n,s)}},subscribe:n=>(t.add(n),()=>{t.delete(n)}),getLastTrigger:()=>r,getLastCompile:()=>e.getLastCompile(),getCacheStats:()=>e.getCacheStats()}},Re=()=>(0,Y.createStore)(e=>({lastCompile:null,history:[],nextId:1,lastSnapshot:null,recordCompile:(t,r)=>e(n=>{if(n.lastSnapshot===r)return n;const s={id:n.nextId,label:Ce(t),stages:r.stages,stageDurationsMs:r.stageDurationsMs,durationMs:r.durationMs};return{lastCompile:s,history:je(n.history,s,Ee),nextId:n.nextId+1,lastSnapshot:r}})})),Pe=()=>{},Ce=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 Q(e){const t=e.filter(ne),r=new Set([...Object.keys(o.BUILT_IN_GEOM_RENDERERS),...t.map(u=>u.geom)]),n=[],s=new Set;for(const u of e){const h=se(u);h===null||r.has(h.type)||s.has(h.type)||(s.add(h.type),n.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 c=new Map;for(const u of t){if("definition"in u)continue;const h=`${u.geom}|${u.coord}`,p=c.get(h);p?p.count+=1:c.set(h,{geom:u.geom,coord:u.coord,count:1})}const l=[];for(const{geom:u,coord:h,count:p}of c.values())p<2||l.push({kind:"user-input",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,s=new Set,c=[];for(const l of n)t(l.geom,r.type)!==null||s.has(l.geom)||(s.add(l.geom),c.push({kind:"user-input",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 c}function De(e,t){const{coordSystem:r,layers:n}=e,s=new Set,c=[];for(const l of n){if(l.interactive===!1||l.spatialKind!=="render-hit-test"||s.has(l.geom))continue;const u=t(l.geom,r.type);u===null||u.hitTest||o.isLiveRender(u)||(s.add(l.geom),c.push({kind:"user-input",severity:"warning",code:"MISSING_RENDER_HIT_TEST",message:`Geom '${l.geom}' declares spatialKind 'render-hit-test' 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 c}function _e(e){const t=new Set,r=[];for(const n of e.layers){const s=n.identityKey;n.interactive!==!1&&(n.spatialKind!=="render-hit-test"||typeof s!="object"||t.has(n.geom)||n.data.hasVariable(s.variable)||(t.add(n.geom),r.push({kind:"user-input",severity:"warning",code:"RENDER_HIT_TEST_IDENTITY",message:`Geom '${n.geom}' keys its identity on '${s.variable}', a column its compile output does not emit; its hover lookup is empty.`,context:{requested:n.geom,kind:"geom-renderer"},suggestion:`Emit the '${s.variable}' column from the geom's \`compile()\`, or point \`identityKey\` at a column it does emit.`})))}return r}function ke(e,t){const{coordSystem:r,layers:n}=e,s=new Set,c=[];for(const l of n){if(l.interactive===!1||l.spatialKind!=="render-hit-test"||s.has(l.geom))continue;const u=t(l.geom,r.type);u===null||!u.hitTest||!o.isLiveRender(u)||(s.add(l.geom),c.push({kind:"user-input",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 c}function Ie(e,t){const r=new Set,n=[];for(const s of e.layers)s.interactive!==!1&&(s.spatialKind!=="render-hit-test"||r.has(s.geom)||t.hasCapability(s.geom)||(r.add(s.geom),n.push({kind:"user-input",severity:"warning",code:"MISSING_ANCHOR_CAPABILITY",message:`Geom '${s.geom}' declares no \`resolveAnchorPosition\`; its observations cannot be annotated, so the editor overlay paints no creation trigger on them.`,context:{requested:s.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 qe(e,t){const{coordSystem:r,layers:n}=e,s=new Set,c=[];for(const l of n){if(l.interactive===!1||l.spatialKind==="render-hit-test"||s.has(l.geom))continue;const u=t(l.geom,r.type);u===null||!o.isLiveRender(u)||(s.add(l.geom),c.push({kind:"user-input",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 'render-hit-test'; its push-path hover resolves to nothing.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:"Have the geom's manifest yield spatialKind 'render-hit-test' so the scene layer carries the `byKey` index the live render's `pushHover` resolves against."}))}return c}function Le(e,t){let r;return e.layers.flatMap((n,s)=>o.isLiveRender(t(n.geom,e.coordSystem.type))?we(n)?(r??=(0,m.createStyleResolver)().readers(e),(r.geom(n).get("overpaint",void 0,"hovered")?.length??0)===0?[]:[{kind:"user-input",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:s,requested:n.geom},suggestion:"Remove the hovered overpaint, or paint the hover treatment in the geom's live render."}]):[]:[])}var we=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 s=se(n);s===null||t.has(s.type)||s.dataLabelCoordTypes.length===0||s.getDataLabelPlacements!==void 0||(t.add(s.type),r.push({kind:"user-input",severity:"warning",code:"MISSING_DATA_LABEL_PLACEMENT",message:`Geom '${s.type}' declares \`dataLabelCoordTypes\` but implements no \`getDataLabelPlacements\`; its layers paint no data labels.`,context:{requested:s.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 He=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:s,resolveRenderer:c,anchorResolver:l,onSpecChange:u,onError:h,onWarnings:p})=>{const R=o.useLatestRef(u),P=o.useLatestRef(h),x=o.useLatestRef(p),[{session:f,compileBus:g}]=(0,d.useState)(()=>{const a=(0,m.createCompiler)({plugins:n,theme:s});return{session:new m.GraphCompilationSession(a),compileBus:Te(a)}}),[S]=(0,d.useState)(()=>{const a=Q(n??[]),v=Q(s?.plugins??[]);return{errors:[...v.errors,...a.errors],warnings:[...v.warnings,...a.warnings]}}),E=(0,d.useRef)(null),[y]=(0,d.useState)(Ae),C=(0,d.useRef)(null),D=(0,d.useCallback)(a=>S.errors.length===0?a:[...S.errors,...a??[]],[S]),T=(0,d.useCallback)(a=>{if(!a.ok)return a.errors;if(C.current)C.current.getState().setScene(a.scene);else{const v=He(a.scene);v.subscribe(y.notify),C.current=v,y.notify()}return null},[y]),[M,I]=(0,d.useState)(()=>{const a=f.compile({spec:e,data:t,colorScheme:r});return E.current=a,D(T(a))}),G=(0,d.useCallback)(a=>a.ok?[...a.warnings,...Ne(a.scene,c),...De(a.scene,c),..._e(a.scene),...ke(a.scene,c),...qe(a.scene,c),...Le(a.scene,c),...Ie(a.scene,l)]:a.warnings,[c,l]),j=(0,d.useCallback)(a=>{a.length!==0&&(o.logDiagnostics(a),P.current?.(a))},[P]),N=(0,d.useCallback)(a=>{a.length!==0&&(o.logDiagnostics(a),x.current?.(a))},[x]);(0,d.useEffect)(()=>{const a=E.current;a&&(j([...S.errors,...a.ok?[]:a.errors]),N([...S.warnings,...G(a)]),a.ok&&g.emit({kind:"init"}))},[g,j,N,S,G]),(0,d.useEffect)(()=>{const a=f.update({spec:e,data:t,colorScheme:r});if(!a)return;a.committedSpec&&R.current?.(a.committedSpec);const v=T(a.result);I(D(v)),v&&j(v),N(G(a.result)),v||g.emit({kind:a.hasSpecChange?"spec":"data"})},[e,t,r,f,g,T,j,N,D,G,R]);const q=(0,d.useCallback)(a=>{I(v=>v===null?v:D(null)),N(G(a))},[D,N,G]),H=(0,d.useCallback)(a=>{a.scene&&C.current?.getState().setScene(a.scene),a.result&&q(a.result),a.command&&g.emit({kind:"command",command:a.command}),a.spec&&R.current?.(a.spec),a.errors&&j([...a.errors])},[q,g,R,j]),b=(0,d.useCallback)(a=>{for(const v of a)H(v);return a.some(v=>!!v.scene)},[H]),$=(0,d.useCallback)((a,v)=>{b(f.applyCommand(a,v))},[f,b]),_=(0,d.useCallback)(()=>{b(f.commit())},[f,b]),A=(0,d.useCallback)(()=>b(f.undo()),[f,b]),L=(0,d.useCallback)(()=>b(f.redo()),[f,b]),K=(0,d.useMemo)(()=>({stack:f.history,undo:A,redo:L}),[f,A,L]),he=(0,d.useCallback)(()=>C.current?.getState().scene??null,[]);return{store:C.current,dispatch:$,commit:_,history:K,subscribe:y.subscribe,getScene:he,compileBus:g,compileErrors:M}},Ae=()=>{const e=new Set;return{subscribe:t=>(e.add(t),()=>{e.delete(t)}),notify:()=>e.forEach(t=>t())}},ie=({data:e,spec:t,plugins:r=[],theme:n,formattingLocale:s,handleRef:c,onSpecChange:l,onError:u,onWarnings:h,colorScheme:p="light",children:R})=>{const[P]=(0,d.useState)(()=>n),x=P?.colorScheme??p,[f]=(0,d.useState)(()=>o.createGeomRendererResolver([...P?.plugins??[],...r].filter(ne))),g=(0,d.useId)(),[S]=(0,d.useState)(()=>(0,m.createAnchorResolver)(r)),[E]=(0,d.useState)(()=>(0,m.createDataLabelPlacementResolver)(r)),[y]=(0,d.useState)(()=>be()),[C]=(0,d.useState)(()=>o.createTargetBoundaryStore()),D=(0,d.useMemo)(()=>(0,m.createStyleResolver)({colorScheme:x}),[x]),{store:T,dispatch:M,commit:I,history:G,subscribe:j,getScene:N,compileBus:q,compileErrors:H}=$e({spec:t,data:e,colorScheme:x,plugins:r,theme:P,resolveRenderer:f,anchorResolver:S,onSpecChange:l,onError:u,onWarnings:h});(0,d.useEffect)(()=>{if(T)return T.subscribe((_,A)=>{if(_.scene.spec===A.scene.spec)return;const{selection:L,setSelection:K}=y.getState();L.length!==0&&K(oe(L,_.scene.spec))})},[T,y]);const b=(0,d.useMemo)(()=>({dispatch:M,commit:I}),[M,I]);(0,d.useImperativeHandle)(c,()=>({commands:b,undo:G.undo,redo:G.redo,subscribe:j,getScene:N,getSelection:()=>y.getState().selection,setSelection:_=>y.getState().setSelection(_),subscribeSelection:y.subscribe,canPlaceDataLabels:E.hasCapability,canFormatDataLabelsAsPercentages:E.hasPercentageFormat}),[b,G,j,N,y,E]);const $=(0,d.useMemo)(()=>T?{chartId:g,store:T,selectionStore:y,targetBoundaryStore:C,commands:b,history:G,formattingLocale:s,compileBus:q,colorScheme:x,styleResolver:D,anchorResolver:S}:null,[g,T,y,C,b,G,s,q,x,D,S]);return(0,i.jsx)(re,{forcedErrors:H,onError:u,resetKeys:[t,e],children:$?(0,i.jsx)(o.GraphContext.Provider,{value:$,children:(0,i.jsx)(o.GeomRendererResolverProvider,{value:f,children:(0,i.jsx)(o.DataLabelPlacementResolverProvider,{value:E,children:(0,i.jsx)(o.GeomShapesProvider,{shapes:P?.shapes,children:R})})})}):null})};function Be({theme:e,...t}={}){const r=(0,m.createSpecBuilder)(t);return{...r,GraphProvider:s=>(0,i.jsx)(ie,{...s,plugins:r.plugins,theme:e})}}var k=(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},Oe=({x:e,y:t,width:r,height:n},s)=>{const c=k(e,s.width),l=k(t,s.height),u=k(r,s.width),h=k(n,s.height);return c===null||l===null||u===null||h===null?null:{x:c,y:l,width:u,height:h}},ae=({animateTransitions:e,cx:t,cy:r,r:n,effects:s,...c})=>{const l=o.toGeomEffectsStyle(s);return e?(0,i.jsx)(O.motion.circle,{initial:!1,animate:{cx:t,cy:r,r:n},transition:o.DEFAULT_SPRING_TRANSITION,style:l,...c}):(0,i.jsx)("circle",{cx:t,cy:r,r:n,style:l,...c})},le=({animateTransitions:e,x1:t,y1:r,x2:n,y2:s,effects:c,...l})=>{const u=o.toGeomEffectsStyle(c);return e?(0,i.jsx)(O.motion.line,{initial:!1,animate:{x1:t,y1:r,x2:n,y2:s},transition:o.DEFAULT_SPRING_TRANSITION,style:u,...l}):(0,i.jsx)("line",{x1:t,y1:r,x2:n,y2:s,style:u,...l})},ce=({animateTransitions:e,x:t,y:r,width:n,height:s,rx:c,ry:l,effects:u,...h})=>{const p=o.toGeomEffectsStyle(u);return e?(0,i.jsx)(O.motion.rect,{initial:!1,animate:{attrX:t,attrY:r,width:n,height:s,...c!==void 0&&l!==void 0?{rx:c,ry:l}:{}},transition:o.DEFAULT_SPRING_TRANSITION,style:p,...h}):(0,i.jsx)("rect",{x:t,y:r,width:n,height:s,rx:c,ry:l,style:p,...h})},ue=({animateTransitions:e,d:t,source:r,effects:n,...s})=>{const c=o.toGeomEffectsStyle(n);return e?(0,i.jsx)(Ye,{d:t,source:r,style:c,...s}):(0,i.jsx)("path",{d:t,style:c,...s})},Ke=e=>{const{Circle:t}=o.useGeomShapes();return t===void 0?ae(e):(0,i.jsx)(o.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},Fe=e=>{const{Line:t}=o.useGeomShapes();return t===void 0?le(e):(0,i.jsx)(o.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},Ue=({cornerRadius:e,...t})=>{const{Rect:r}=o.useGeomShapes(),n=o.useGeomPanelPixelSize(),s=o.useGeomPixelsPerUnit(),c={...t,...We(e,t,n,s)};return r===void 0?ce(c):(0,i.jsx)(o.GeomShapesProvider,{children:(0,i.jsx)(r,{...c})})},ze=e=>{const{Path:t}=o.useGeomShapes();return t===void 0?ue(e):(0,i.jsx)(o.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},Ye=({d:e,source:t,...r})=>{const n=o.useSvgPathMorph(e,o.DEFAULT_SPRING_TRANSITION,t);return(0,i.jsx)(O.motion.path,{d:n,...r})},We=(e,t,r,n)=>{if(e===void 0)return{};const s=Ve(t,r,n);if(s===null)return e==="full"?{}:Z((0,m.resolveGeomCornerRadiusPx)({cornerRadius:e}),n);const c=Math.min((0,m.resolveGeomCornerRadiusPx)({cornerRadius:e,box:s}),Math.min(s.width,s.height)/2);return Z(c,n)},Ve=(e,t,r)=>{const n=J(e.width,t?.width,r.x),s=J(e.height,t?.height,r.y);return n===null||s===null?null:{width:n,height:s}},J=(e,t,r)=>{if(typeof e=="number")return Number.isFinite(e)?Math.abs(e)*r:null;if(t===void 0)return null;const n=k(e,t);return n===null?null:Math.abs(n)},Z=(e,t)=>t.x<=0||t.y<=0?{rx:0,ry:0}:{rx:e/t.x,ry:e/t.y},Xe=({children:e,...t})=>{const r=o.useGeomPanelPixelSize();return(0,i.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%",pointerEvents:"none",...t,children:(0,i.jsx)(o.GeomPanelSizeProvider,{size:r,space:"unit",children:e})})},Qe=({box:e,children:t})=>{const r=o.useGeomPanelSize(),n=r===null?null:r.width*(e.x1-e.x0),s=r===null?null:r.height*(e.y1-e.y0),c=(0,d.useMemo)(()=>n===null||s===null?null:{width:n,height:s},[n,s]);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)(o.GeomPanelSizeProvider,{size:c,children:t})})},Je="drqe3u0",Ze="drqe3u1",et="drqe3u2",tt="drqe3u3",w="drqe3u4",rt="drqe3u5",nt="drqe3u6",st="drqe3u7",B="drqe3u8",ot="drqe3u9",it="drqe3ua";var at="drqe3uc",lt="drqe3ud",ct="drqe3ue",ut="drqe3uf";var dt="drqe3uh",ht="drqe3ui",ee={enabled:"drqe3uk drqe3uj",disabled:"drqe3ul drqe3uj"},te={ran:"drqe3un drqe3um",dim:"drqe3uo drqe3um"},de={ran:"drqe3uq drqe3up",cached:"drqe3ur drqe3up",untouched:"drqe3us drqe3up"},mt=({width:e=440,style:t,className:r}={})=>{const{compileBus:n}=o.useGraphContext(),[s]=(0,d.useState)(()=>Re()),[c,l]=(0,d.useState)(!1),[u,h]=(0,d.useState)(m.isCompilerCachingEnabled);(0,d.useEffect)(()=>{const{recordCompile:g}=s.getState(),S=n.getLastTrigger(),E=n.getLastCompile();return S&&E&&g(S,E),n.subscribe(g)},[s,n]);const p=(0,F.useStore)(s,g=>g.lastCompile),R=(0,F.useStore)(s,g=>g.history),P=n.getCacheStats(),x=p===null&&R.length===0,f=()=>{h(g=>{const S=!g;return(0,m.setCompilerCachingEnabled)(S),S})};return(0,i.jsxs)("div",{className:(0,U.default)(it,r),style:{width:e,...t},children:[(0,i.jsxs)("div",{className:Je,children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:Ze,children:"compile cache"}),(0,i.jsx)("div",{className:ct,children:x?"production: stats disabled":p?`last: ${p.label} · ${W(p.durationMs)}`:"awaiting first compile…"})]}),(0,i.jsx)("button",{type:"button",onClick:()=>l(g=>!g),className:ut,children:c?"▾":"▴"})]}),!c&&(0,i.jsxs)("div",{className:"drqe3ub",children:[(0,i.jsxs)("button",{type:"button",onClick:f,className:u?ee.enabled:ee.disabled,"aria-pressed":u,children:["cache ",u?"enabled":"disabled"]}),(0,i.jsx)("span",{className:"drqe3ug",children:"next compile reflects this toggle"})]}),!c&&!x&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(gt,{delta:p?.stages,durations:p?.stageDurationsMs,cumulative:P}),(0,i.jsx)(pt,{entries:R})]})]})},gt=({delta:e,durations:t,cumulative:r})=>(0,i.jsxs)("table",{className:et,children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{className:dt,children:[(0,i.jsx)("th",{className:tt,children:"stage"}),(0,i.jsx)("th",{className:w,children:"time"}),(0,i.jsx)("th",{className:w,children:"Δ miss"}),(0,i.jsx)("th",{className:w,children:"Δ hit"}),(0,i.jsx)("th",{className:w,children:"total miss"}),(0,i.jsx)("th",{className:w,children:"total hit"})]})}),(0,i.jsx)("tbody",{children:m.COMPILER_STAGE_KEYS.map(n=>{const s=e?.[n],c=vt(s);return(0,i.jsxs)("tr",{className:at,children:[(0,i.jsxs)("td",{className:rt,children:[(0,i.jsx)("span",{className:de[c],"aria-hidden":!0})," ",n]}),(0,i.jsx)("td",{className:B,children:t===void 0||c==="untouched"?"—":W(t[n])}),(0,i.jsx)("td",{className:c==="ran"?te.ran:te.dim,children:s?.misses??0}),(0,i.jsx)("td",{className:B,children:s?.hits??0}),(0,i.jsx)("td",{className:B,children:r[n].misses}),(0,i.jsx)("td",{className:B,children:r[n].hits})]},n)})})]}),pt=({entries:e})=>e.length===0?null:(0,i.jsxs)("div",{className:lt,children:[(0,i.jsx)("div",{className:ht,children:"recent compiles"}),e.map(t=>{const r=ft(t.stages,c=>c.misses>0),n=m.COMPILER_STAGE_KEYS.length,s=r===0?"cached":"ran";return(0,i.jsxs)("div",{className:nt,children:[(0,i.jsx)("span",{className:de[s],"aria-hidden":!0}),(0,i.jsx)("span",{className:st,title:t.label,children:t.label}),(0,i.jsxs)("span",{className:ot,children:[r,"/",n," ran · ",W(t.durationMs)]})]},t.id)})]}),vt=e=>!e||e.hits===0&&e.misses===0?"untouched":e.misses>0?"ran":"cached",ft=(e,t)=>{let r=0;for(const n of m.COMPILER_STAGE_KEYS)t(e[n])&&(r+=1);return r},W=e=>e<.1?"<0.1ms":e>=10?`${e.toFixed(0)}ms`:`${e.toFixed(2)}ms`,St=()=>{const{history:e}=o.useGraphContext(),{stack:t,undo:r,redo:n}=e,s=(0,d.useCallback)(u=>t.subscribe(u),[t]),c=(0,d.useCallback)(()=>t.getSnapshot(),[t]),l=(0,d.useSyncExternalStore)(s,c,c);return(0,d.useMemo)(()=>({...l,undo:r,redo:n}),[l,r,n])},yt=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]),bt=(e,t={})=>{const{target:r,enabled:n=!0}=t;(0,d.useEffect)(()=>{const s=Gt(r);if(!n||!s)return;const c=l=>{if(!xt(l)||l.defaultPrevented||Et(l.target))return;const u=o.resolveHistoryStep(l);if(!u)return;const h=e.current;h&&(u==="undo"?h.undo():h.redo())&&l.preventDefault()};return s.addEventListener("keydown",c),()=>s.removeEventListener("keydown",c)},[e,r,n])},Gt=e=>e===void 0?window:e!==null&&"current"in e?e.current:e,xt=e=>"key"in e,Et=e=>e instanceof HTMLInputElement?!yt.has(e.type):e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA":!1,Tt=()=>{const{targetBoundaryStore:e}=o.useGraphContext();return(0,F.useStore)(e,t=>t.boundary)};exports.BrandMark=o.BrandMark;exports.CanvasTextMeasurer=o.CanvasTextMeasurer;exports.DefaultFooter=o.DefaultFooter;exports.DefaultGeomCircle=ae;exports.DefaultGeomLine=le;exports.DefaultGeomPath=ue;exports.DefaultGeomRect=ce;exports.DefaultGrid=o.DefaultGrid;exports.DefaultHeader=o.DefaultHeader;exports.DefaultSwatch=o.DefaultSwatch;exports.DefaultTooltip=o.DefaultTooltip;exports.DevToolsPanel=mt;exports.GRAPH_MODES=o.GRAPH_MODES;exports.GeomCircle=Ke;exports.GeomLine=Fe;exports.GeomOverpaint=o.GeomOverpaint;exports.GeomPath=ze;exports.GeomRect=Ue;exports.GraphErrorBoundary=re;exports.GraphErrorPanel=z;exports.GraphProvider=ie;exports.GraphRenderer=o.GraphRenderer;exports.HoverProvider=o.HoverProvider;exports.IntroFade=o.IntroFade;exports.IntroWipeClip=o.IntroWipeClip;exports.TextMeasurerProvider=o.TextMeasurerProvider;exports.ThemeProvider=o.ThemeProvider;exports.UnitBoxSvg=Qe;exports.UnitSpaceSvg=Xe;exports.buildDotsEditOutlineShapes=o.buildDotsEditOutlineShapes;exports.createGraphyKit=Be;exports.darkTheme=o.darkTheme;exports.defineGeomRenderer=o.defineGeomRenderer;exports.lightTheme=o.lightTheme;exports.lightenCss=o.lightenCss;exports.projectPointCartesian=o.projectPointCartesian;exports.pruneSelection=oe;exports.readPositionPixels=k;exports.readRectPixels=Oe;exports.resolveBrandMarkVisual=o.resolveBrandMarkVisual;exports.resolvePathStroke=o.resolvePathStroke;exports.scalePointToPanel=o.scalePointToPanel;exports.stampAxisEditTarget=o.stampAxisEditTarget;exports.stampGridEditTarget=o.stampGridEditTarget;exports.stampLegendEditTarget=o.stampLegendEditTarget;exports.useElementScreenRect=o.useElementScreenRect;exports.useGeomHitTest=o.useGeomHitTest;exports.useGeomHover=o.useGeomHover;exports.useGeomPanelSize=o.useGeomPanelSize;exports.useGeomReaderTree=o.useGeomReaderTree;exports.useGeomStyleReader=o.useGeomStyleReader;exports.useGraphCommands=o.useGraphCommands;exports.useGraphHandle=o.useGraphHandle;exports.useGraphHistory=St;exports.useGraphHistoryShortcuts=bt;exports.useGraphLocale=o.useGraphLocale;exports.useGraphSelection=o.useGraphSelection;exports.useGuidesTakePress=o.useGuidesTakePress;exports.useHandleScene=o.useHandleScene;exports.useHoverState=o.useHoverState;exports.usePaintDefs=o.usePaintDefs;exports.useResolvedStyle=o.useResolvedStyle;exports.useSceneSelector=o.useSceneSelector;exports.useStyleReaderTree=o.useStyleReaderTree;exports.useStyleResolver=o.useStyleResolver;exports.useTargetBoundary=Tt;exports.useTextMeasurer=o.useTextMeasurer;exports.vars=o.vars;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const o=require("./history-chords-XJ9tQsgG.cjs");let m=require("@graphysdk/viz-engine"),d=require("react"),i=require("react/jsx-runtime"),F=require("zustand"),O=require("motion/react"),Y=require("zustand/vanilla"),U=require("clsx");U=o.__toESM(U,1);var me="_1a5iqpb0",ge="_1a5iqpb1";var pe="_1a5iqpb3",ve="_1a5iqpb4",fe="_1a5iqpb5";var z=({errors:e})=>{const[t,...r]=e;return(0,i.jsxs)("div",{role:"alert",className:me,children:[(0,i.jsx)("strong",{className:ge,children:"This chart could not be rendered."}),t&&(0,i.jsx)(V,{diagnostic:t}),r.length>0&&(0,i.jsx)("ul",{className:"_1a5iqpb2",children:r.map((n,s)=>(0,i.jsx)("li",{children:(0,i.jsx)(V,{diagnostic:n})},`${n.code}-${s}`))})]})},V=({diagnostic:e})=>(0,i.jsxs)("div",{className:pe,children:[(0,i.jsx)("span",{className:ve,children:e.code}),(0,i.jsx)("p",{className:fe,children:e.message}),e.suggestion&&(0,i.jsx)("p",{className:"_1a5iqpb6",children:e.suggestion})]});function Se(e=[],t=[]){return e.length===t.length&&e.every((r,n)=>Object.is(r,t[n]))}var re=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);o.logDiagnostics([r]),this.props.onError?.([r]),console.error("Chart render component stack:",t.componentStack)}componentDidUpdate(e){this.state.caughtDiagnostic&&!Se(e.resetKeys,this.props.resetKeys)&&this.setState({caughtDiagnostic:null})}render(){const{caughtDiagnostic:e}=this.state;if(e)return(0,i.jsx)(z,{errors:[e]});const{forcedErrors:t,children:r}=this.props;return t&&t.length>0?(0,i.jsx)(z,{errors:t}):r}},ne=e=>typeof e=="object"&&"geom"in e&&"render"in e,se=e=>{const t=(0,m.resolveDefinition)(e);return t instanceof m.Geom?t:null},oe=(e,t)=>{const r=e.filter(n=>ye(n,t));return r.length===e.length?e:r},ye=(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,X=[],be=()=>(0,Y.createStore)(e=>({selection:X,setSelection:t=>e(r=>Ge(r.selection,t)?r:{selection:t}),clearSelection:()=>e(t=>t.selection.length===0?t:{selection:X})})),Ge=(e,t)=>e===t?!0:e.length!==t.length?!1:e.every((r,n)=>{const s=t[n];return s!==void 0&&(0,m.areEditTargetsEqual)(r,s)}),xe=process.env.NODE_ENV!=="production",Ee=5,Te=e=>{if(!xe)return{emit:()=>{},subscribe:()=>Pe,getLastTrigger:()=>null,getLastCompile:()=>null,getCacheStats:()=>e.getCacheStats()};const t=new Set;let r=null;return{emit:n=>{const s=e.getLastCompile();if(s){r=n;for(const c of t)c(n,s)}},subscribe:n=>(t.add(n),()=>{t.delete(n)}),getLastTrigger:()=>r,getLastCompile:()=>e.getLastCompile(),getCacheStats:()=>e.getCacheStats()}},Re=()=>(0,Y.createStore)(e=>({lastCompile:null,history:[],nextId:1,lastSnapshot:null,recordCompile:(t,r)=>e(n=>{if(n.lastSnapshot===r)return n;const s={id:n.nextId,label:Ce(t),stages:r.stages,stageDurationsMs:r.stageDurationsMs,durationMs:r.durationMs};return{lastCompile:s,history:je(n.history,s,Ee),nextId:n.nextId+1,lastSnapshot:r}})})),Pe=()=>{},Ce=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 Q(e){const t=e.filter(ne),r=new Set([...Object.keys(o.BUILT_IN_GEOM_RENDERERS),...t.map(u=>u.geom)]),n=[],s=new Set;for(const u of e){const h=se(u);h===null||r.has(h.type)||s.has(h.type)||(s.add(h.type),n.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 c=new Map;for(const u of t){if("definition"in u)continue;const h=`${u.geom}|${u.coord}`,p=c.get(h);p?p.count+=1:c.set(h,{geom:u.geom,coord:u.coord,count:1})}const l=[];for(const{geom:u,coord:h,count:p}of c.values())p<2||l.push({kind:"user-input",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,s=new Set,c=[];for(const l of n)t(l.geom,r.type)!==null||s.has(l.geom)||(s.add(l.geom),c.push({kind:"user-input",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 c}function De(e,t){const{coordSystem:r,layers:n}=e,s=new Set,c=[];for(const l of n){if(l.interactive===!1||l.spatialKind!=="render-hit-test"||s.has(l.geom))continue;const u=t(l.geom,r.type);u===null||u.hitTest||o.isLiveRender(u)||(s.add(l.geom),c.push({kind:"user-input",severity:"warning",code:"MISSING_RENDER_HIT_TEST",message:`Geom '${l.geom}' declares spatialKind 'render-hit-test' 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 c}function _e(e){const t=new Set,r=[];for(const n of e.layers){const s=n.identityKey;n.interactive!==!1&&(n.spatialKind!=="render-hit-test"||typeof s!="object"||t.has(n.geom)||n.data.hasVariable(s.variable)||(t.add(n.geom),r.push({kind:"user-input",severity:"warning",code:"RENDER_HIT_TEST_IDENTITY",message:`Geom '${n.geom}' keys its identity on '${s.variable}', a column its compile output does not emit; its hover lookup is empty.`,context:{requested:n.geom,kind:"geom-renderer"},suggestion:`Emit the '${s.variable}' column from the geom's \`compile()\`, or point \`identityKey\` at a column it does emit.`})))}return r}function Ie(e,t){const{coordSystem:r,layers:n}=e,s=new Set,c=[];for(const l of n){if(l.interactive===!1||l.spatialKind!=="render-hit-test"||s.has(l.geom))continue;const u=t(l.geom,r.type);u===null||!u.hitTest||!o.isLiveRender(u)||(s.add(l.geom),c.push({kind:"user-input",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 c}function ke(e,t){const r=new Set,n=[];for(const s of e.layers)s.interactive!==!1&&(s.spatialKind!=="render-hit-test"||r.has(s.geom)||t.hasCapability(s.geom)||(r.add(s.geom),n.push({kind:"user-input",severity:"warning",code:"MISSING_ANCHOR_CAPABILITY",message:`Geom '${s.geom}' declares no \`resolveAnchorPosition\`; its observations cannot be annotated, so the editor overlay paints no creation trigger on them.`,context:{requested:s.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 qe(e,t){const{coordSystem:r,layers:n}=e,s=new Set,c=[];for(const l of n){if(l.interactive===!1||l.spatialKind==="render-hit-test"||s.has(l.geom))continue;const u=t(l.geom,r.type);u===null||!o.isLiveRender(u)||(s.add(l.geom),c.push({kind:"user-input",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 'render-hit-test'; its push-path hover resolves to nothing.`,context:{requested:l.geom,kind:"geom-renderer"},suggestion:"Have the geom's manifest yield spatialKind 'render-hit-test' so the scene layer carries the `byKey` index the live render's `pushHover` resolves against."}))}return c}function Le(e,t){let r;return e.layers.flatMap((n,s)=>o.isLiveRender(t(n.geom,e.coordSystem.type))?we(n)?(r??=(0,m.createStyleResolver)().readers(e),(r.geom(n).get("overpaint",void 0,"hovered")?.length??0)===0?[]:[{kind:"user-input",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:s,requested:n.geom},suggestion:"Remove the hovered overpaint, or paint the hover treatment in the geom's live render."}]):[]:[])}var we=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 s=se(n);s===null||t.has(s.type)||s.dataLabelCoordTypes.length===0||s.getDataLabelPlacements!==void 0||(t.add(s.type),r.push({kind:"user-input",severity:"warning",code:"MISSING_DATA_LABEL_PLACEMENT",message:`Geom '${s.type}' declares \`dataLabelCoordTypes\` but implements no \`getDataLabelPlacements\`; its layers paint no data labels.`,context:{requested:s.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 He=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:s,resolveRenderer:c,anchorResolver:l,onSpecChange:u,onError:h,onWarnings:p})=>{const R=o.useLatestRef(u),P=o.useLatestRef(h),x=o.useLatestRef(p),[{session:f,compileBus:g}]=(0,d.useState)(()=>{const a=(0,m.createCompiler)({plugins:n,theme:s});return{session:new m.GraphCompilationSession(a),compileBus:Te(a)}}),[S]=(0,d.useState)(()=>{const a=Q(n??[]),v=Q(s?.plugins??[]);return{errors:[...v.errors,...a.errors],warnings:[...v.warnings,...a.warnings]}}),E=(0,d.useRef)(null),[y]=(0,d.useState)(Ae),C=(0,d.useRef)(null),D=(0,d.useCallback)(a=>S.errors.length===0?a:[...S.errors,...a??[]],[S]),T=(0,d.useCallback)(a=>{if(!a.ok)return a.errors;if(C.current)C.current.getState().setScene(a.scene);else{const v=He(a.scene);v.subscribe(y.notify),C.current=v,y.notify()}return null},[y]),[M,k]=(0,d.useState)(()=>{const a=f.compile({spec:e,data:t,colorScheme:r});return E.current=a,D(T(a))}),G=(0,d.useCallback)(a=>a.ok?[...a.warnings,...Ne(a.scene,c),...De(a.scene,c),..._e(a.scene),...Ie(a.scene,c),...qe(a.scene,c),...Le(a.scene,c),...ke(a.scene,l)]:a.warnings,[c,l]),j=(0,d.useCallback)(a=>{a.length!==0&&(o.logDiagnostics(a),P.current?.(a))},[P]),N=(0,d.useCallback)(a=>{a.length!==0&&(o.logDiagnostics(a),x.current?.(a))},[x]);(0,d.useEffect)(()=>{const a=E.current;a&&(j([...S.errors,...a.ok?[]:a.errors]),N([...S.warnings,...G(a)]),a.ok&&g.emit({kind:"init"}))},[g,j,N,S,G]),(0,d.useEffect)(()=>{const a=f.update({spec:e,data:t,colorScheme:r});if(!a)return;a.committedSpec&&R.current?.(a.committedSpec);const v=T(a.result);k(D(v)),v&&j(v),N(G(a.result)),v||g.emit({kind:a.hasSpecChange?"spec":"data"})},[e,t,r,f,g,T,j,N,D,G,R]);const q=(0,d.useCallback)(a=>{k(v=>v===null?v:D(null)),N(G(a))},[D,N,G]),H=(0,d.useCallback)(a=>{a.scene&&C.current?.getState().setScene(a.scene),a.result&&q(a.result),a.command&&g.emit({kind:"command",command:a.command}),a.spec&&R.current?.(a.spec),a.errors&&j([...a.errors])},[q,g,R,j]),b=(0,d.useCallback)(a=>{for(const v of a)H(v);return a.some(v=>!!v.scene)},[H]),$=(0,d.useCallback)((a,v)=>{b(f.applyCommand(a,v))},[f,b]),_=(0,d.useCallback)(()=>{b(f.commit())},[f,b]),A=(0,d.useCallback)(()=>b(f.undo()),[f,b]),L=(0,d.useCallback)(()=>b(f.redo()),[f,b]),K=(0,d.useMemo)(()=>({stack:f.history,undo:A,redo:L}),[f,A,L]),he=(0,d.useCallback)(()=>C.current?.getState().scene??null,[]);return{store:C.current,dispatch:$,commit:_,history:K,subscribe:y.subscribe,getScene:he,compileBus:g,compileErrors:M}},Ae=()=>{const e=new Set;return{subscribe:t=>(e.add(t),()=>{e.delete(t)}),notify:()=>e.forEach(t=>t())}},ie=({data:e,spec:t,plugins:r=[],theme:n,formattingLocale:s,handleRef:c,onSpecChange:l,onError:u,onWarnings:h,colorScheme:p="light",children:R})=>{const[P]=(0,d.useState)(()=>n),x=P?.colorScheme??p,[f]=(0,d.useState)(()=>o.createGeomRendererResolver([...P?.plugins??[],...r].filter(ne))),g=(0,d.useId)(),[S]=(0,d.useState)(()=>(0,m.createAnchorResolver)(r)),[E]=(0,d.useState)(()=>(0,m.createDataLabelPlacementResolver)(r)),[y]=(0,d.useState)(()=>be()),[C]=(0,d.useState)(()=>o.createTargetBoundaryStore()),D=(0,d.useMemo)(()=>(0,m.createStyleResolver)({colorScheme:x}),[x]),{store:T,dispatch:M,commit:k,history:G,subscribe:j,getScene:N,compileBus:q,compileErrors:H}=$e({spec:t,data:e,colorScheme:x,plugins:r,theme:P,resolveRenderer:f,anchorResolver:S,onSpecChange:l,onError:u,onWarnings:h});(0,d.useEffect)(()=>{if(T)return T.subscribe((_,A)=>{if(_.scene.spec===A.scene.spec)return;const{selection:L,setSelection:K}=y.getState();L.length!==0&&K(oe(L,_.scene.spec))})},[T,y]);const b=(0,d.useMemo)(()=>({dispatch:M,commit:k}),[M,k]);(0,d.useImperativeHandle)(c,()=>({commands:b,undo:G.undo,redo:G.redo,subscribe:j,getScene:N,getSelection:()=>y.getState().selection,setSelection:_=>y.getState().setSelection(_),subscribeSelection:y.subscribe,canPlaceDataLabels:E.hasCapability,canFormatDataLabelsAsPercentages:E.hasPercentageFormat}),[b,G,j,N,y,E]);const $=(0,d.useMemo)(()=>T?{chartId:g,store:T,selectionStore:y,targetBoundaryStore:C,commands:b,history:G,formattingLocale:s,compileBus:q,colorScheme:x,styleResolver:D,anchorResolver:S}:null,[g,T,y,C,b,G,s,q,x,D,S]);return(0,i.jsx)(re,{forcedErrors:H,onError:u,resetKeys:[t,e],children:$?(0,i.jsx)(o.GraphContext.Provider,{value:$,children:(0,i.jsx)(o.GeomRendererResolverProvider,{value:f,children:(0,i.jsx)(o.DataLabelPlacementResolverProvider,{value:E,children:(0,i.jsx)(o.GeomShapesProvider,{shapes:P?.shapes,children:R})})})}):null})};function Be({theme:e,...t}={}){const r=(0,m.createSpecBuilder)(t);return{...r,GraphProvider:s=>(0,i.jsx)(ie,{...s,plugins:r.plugins,theme:e})}}var I=(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},Oe=({x:e,y:t,width:r,height:n},s)=>{const c=I(e,s.width),l=I(t,s.height),u=I(r,s.width),h=I(n,s.height);return c===null||l===null||u===null||h===null?null:{x:c,y:l,width:u,height:h}},ae=({animateTransitions:e,cx:t,cy:r,r:n,effects:s,...c})=>{const l=o.toGeomEffectsStyle(s);return e?(0,i.jsx)(O.motion.circle,{initial:!1,animate:{cx:t,cy:r,r:n},transition:o.DEFAULT_SPRING_TRANSITION,style:l,...c}):(0,i.jsx)("circle",{cx:t,cy:r,r:n,style:l,...c})},le=({animateTransitions:e,x1:t,y1:r,x2:n,y2:s,effects:c,...l})=>{const u=o.toGeomEffectsStyle(c);return e?(0,i.jsx)(O.motion.line,{initial:!1,animate:{x1:t,y1:r,x2:n,y2:s},transition:o.DEFAULT_SPRING_TRANSITION,style:u,...l}):(0,i.jsx)("line",{x1:t,y1:r,x2:n,y2:s,style:u,...l})},ce=({animateTransitions:e,x:t,y:r,width:n,height:s,rx:c,ry:l,effects:u,...h})=>{const p=o.toGeomEffectsStyle(u);return e?(0,i.jsx)(O.motion.rect,{initial:!1,animate:{attrX:t,attrY:r,width:n,height:s,...c!==void 0&&l!==void 0?{rx:c,ry:l}:{}},transition:o.DEFAULT_SPRING_TRANSITION,style:p,...h}):(0,i.jsx)("rect",{x:t,y:r,width:n,height:s,rx:c,ry:l,style:p,...h})},ue=({animateTransitions:e,d:t,source:r,effects:n,...s})=>{const c=o.toGeomEffectsStyle(n);return e?(0,i.jsx)(Ye,{d:t,source:r,style:c,...s}):(0,i.jsx)("path",{d:t,style:c,...s})},Ke=e=>{const{Circle:t}=o.useGeomShapes();return t===void 0?ae(e):(0,i.jsx)(o.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},Fe=e=>{const{Line:t}=o.useGeomShapes();return t===void 0?le(e):(0,i.jsx)(o.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},Ue=({cornerRadius:e,...t})=>{const{Rect:r}=o.useGeomShapes(),n=o.useGeomPanelPixelSize(),s=o.useGeomPixelsPerUnit(),c={...t,...We(e,t,n,s)};return r===void 0?ce(c):(0,i.jsx)(o.GeomShapesProvider,{children:(0,i.jsx)(r,{...c})})},ze=e=>{const{Path:t}=o.useGeomShapes();return t===void 0?ue(e):(0,i.jsx)(o.GeomShapesProvider,{children:(0,i.jsx)(t,{...e})})},Ye=({d:e,source:t,...r})=>{const n=o.useSvgPathMorph(e,o.DEFAULT_SPRING_TRANSITION,t);return(0,i.jsx)(O.motion.path,{d:n,...r})},We=(e,t,r,n)=>{if(e===void 0)return{};const s=Ve(t,r,n);if(s===null)return e==="full"?{}:Z((0,m.resolveGeomCornerRadiusPx)({cornerRadius:e}),n);const c=Math.min((0,m.resolveGeomCornerRadiusPx)({cornerRadius:e,box:s}),Math.min(s.width,s.height)/2);return Z(c,n)},Ve=(e,t,r)=>{const n=J(e.width,t?.width,r.x),s=J(e.height,t?.height,r.y);return n===null||s===null?null:{width:n,height:s}},J=(e,t,r)=>{if(typeof e=="number")return Number.isFinite(e)?Math.abs(e)*r:null;if(t===void 0)return null;const n=I(e,t);return n===null?null:Math.abs(n)},Z=(e,t)=>t.x<=0||t.y<=0?{rx:0,ry:0}:{rx:e/t.x,ry:e/t.y},Xe=({children:e,...t})=>{const r=o.useGeomPanelPixelSize();return(0,i.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%",pointerEvents:"none",...t,children:(0,i.jsx)(o.GeomPanelSizeProvider,{size:r,space:"unit",children:e})})},Qe=({box:e,children:t})=>{const r=o.useGeomPanelSize(),n=r===null?null:r.width*(e.x1-e.x0),s=r===null?null:r.height*(e.y1-e.y0),c=(0,d.useMemo)(()=>n===null||s===null?null:{width:n,height:s},[n,s]);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)(o.GeomPanelSizeProvider,{size:c,children:t})})},Je="drqe3u0",Ze="drqe3u1",et="drqe3u2",tt="drqe3u3",w="drqe3u4",rt="drqe3u5",nt="drqe3u6",st="drqe3u7",B="drqe3u8",ot="drqe3u9",it="drqe3ua";var at="drqe3uc",lt="drqe3ud",ct="drqe3ue",ut="drqe3uf";var dt="drqe3uh",ht="drqe3ui",ee={enabled:"drqe3uk drqe3uj",disabled:"drqe3ul drqe3uj"},te={ran:"drqe3un drqe3um",dim:"drqe3uo drqe3um"},de={ran:"drqe3uq drqe3up",cached:"drqe3ur drqe3up",untouched:"drqe3us drqe3up"},mt=({width:e=440,style:t,className:r}={})=>{const{compileBus:n}=o.useGraphContext(),[s]=(0,d.useState)(()=>Re()),[c,l]=(0,d.useState)(!1),[u,h]=(0,d.useState)(m.isCompilerCachingEnabled);(0,d.useEffect)(()=>{const{recordCompile:g}=s.getState(),S=n.getLastTrigger(),E=n.getLastCompile();return S&&E&&g(S,E),n.subscribe(g)},[s,n]);const p=(0,F.useStore)(s,g=>g.lastCompile),R=(0,F.useStore)(s,g=>g.history),P=n.getCacheStats(),x=p===null&&R.length===0,f=()=>{h(g=>{const S=!g;return(0,m.setCompilerCachingEnabled)(S),S})};return(0,i.jsxs)("div",{className:(0,U.default)(it,r),style:{width:e,...t},children:[(0,i.jsxs)("div",{className:Je,children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:Ze,children:"compile cache"}),(0,i.jsx)("div",{className:ct,children:x?"production: stats disabled":p?`last: ${p.label} · ${W(p.durationMs)}`:"awaiting first compile…"})]}),(0,i.jsx)("button",{type:"button",onClick:()=>l(g=>!g),className:ut,children:c?"▾":"▴"})]}),!c&&(0,i.jsxs)("div",{className:"drqe3ub",children:[(0,i.jsxs)("button",{type:"button",onClick:f,className:u?ee.enabled:ee.disabled,"aria-pressed":u,children:["cache ",u?"enabled":"disabled"]}),(0,i.jsx)("span",{className:"drqe3ug",children:"next compile reflects this toggle"})]}),!c&&!x&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(gt,{delta:p?.stages,durations:p?.stageDurationsMs,cumulative:P}),(0,i.jsx)(pt,{entries:R})]})]})},gt=({delta:e,durations:t,cumulative:r})=>(0,i.jsxs)("table",{className:et,children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{className:dt,children:[(0,i.jsx)("th",{className:tt,children:"stage"}),(0,i.jsx)("th",{className:w,children:"time"}),(0,i.jsx)("th",{className:w,children:"Δ miss"}),(0,i.jsx)("th",{className:w,children:"Δ hit"}),(0,i.jsx)("th",{className:w,children:"total miss"}),(0,i.jsx)("th",{className:w,children:"total hit"})]})}),(0,i.jsx)("tbody",{children:m.COMPILER_STAGE_KEYS.map(n=>{const s=e?.[n],c=vt(s);return(0,i.jsxs)("tr",{className:at,children:[(0,i.jsxs)("td",{className:rt,children:[(0,i.jsx)("span",{className:de[c],"aria-hidden":!0})," ",n]}),(0,i.jsx)("td",{className:B,children:t===void 0||c==="untouched"?"—":W(t[n])}),(0,i.jsx)("td",{className:c==="ran"?te.ran:te.dim,children:s?.misses??0}),(0,i.jsx)("td",{className:B,children:s?.hits??0}),(0,i.jsx)("td",{className:B,children:r[n].misses}),(0,i.jsx)("td",{className:B,children:r[n].hits})]},n)})})]}),pt=({entries:e})=>e.length===0?null:(0,i.jsxs)("div",{className:lt,children:[(0,i.jsx)("div",{className:ht,children:"recent compiles"}),e.map(t=>{const r=ft(t.stages,c=>c.misses>0),n=m.COMPILER_STAGE_KEYS.length,s=r===0?"cached":"ran";return(0,i.jsxs)("div",{className:nt,children:[(0,i.jsx)("span",{className:de[s],"aria-hidden":!0}),(0,i.jsx)("span",{className:st,title:t.label,children:t.label}),(0,i.jsxs)("span",{className:ot,children:[r,"/",n," ran · ",W(t.durationMs)]})]},t.id)})]}),vt=e=>!e||e.hits===0&&e.misses===0?"untouched":e.misses>0?"ran":"cached",ft=(e,t)=>{let r=0;for(const n of m.COMPILER_STAGE_KEYS)t(e[n])&&(r+=1);return r},W=e=>e<.1?"<0.1ms":e>=10?`${e.toFixed(0)}ms`:`${e.toFixed(2)}ms`,St=()=>{const{history:e}=o.useGraphContext(),{stack:t,undo:r,redo:n}=e,s=(0,d.useCallback)(u=>t.subscribe(u),[t]),c=(0,d.useCallback)(()=>t.getSnapshot(),[t]),l=(0,d.useSyncExternalStore)(s,c,c);return(0,d.useMemo)(()=>({...l,undo:r,redo:n}),[l,r,n])},yt=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]),bt=(e,t={})=>{const{target:r,enabled:n=!0}=t;(0,d.useEffect)(()=>{const s=Gt(r);if(!n||!s)return;const c=l=>{if(!xt(l)||l.defaultPrevented||Et(l.target))return;const u=o.resolveHistoryStep(l);if(!u)return;const h=e.current;h&&(u==="undo"?h.undo():h.redo())&&l.preventDefault()};return s.addEventListener("keydown",c),()=>s.removeEventListener("keydown",c)},[e,r,n])},Gt=e=>e===void 0?window:e!==null&&"current"in e?e.current:e,xt=e=>"key"in e,Et=e=>e instanceof HTMLInputElement?!yt.has(e.type):e instanceof HTMLElement?e.isContentEditable||e.tagName==="TEXTAREA":!1,Tt=()=>{const{targetBoundaryStore:e}=o.useGraphContext();return(0,F.useStore)(e,t=>t.boundary)};exports.BrandMark=o.BrandMark;exports.CanvasTextMeasurer=o.CanvasTextMeasurer;exports.DefaultFooter=o.DefaultFooter;exports.DefaultGeomCircle=ae;exports.DefaultGeomLine=le;exports.DefaultGeomPath=ue;exports.DefaultGeomRect=ce;exports.DefaultGrid=o.DefaultGrid;exports.DefaultHeader=o.DefaultHeader;exports.DefaultSwatch=o.DefaultSwatch;exports.DefaultTooltip=o.DefaultTooltip;exports.DevToolsPanel=mt;exports.GRAPH_MODES=o.GRAPH_MODES;exports.GeomCircle=Ke;exports.GeomLine=Fe;exports.GeomOverpaint=o.GeomOverpaint;exports.GeomPath=ze;exports.GeomRect=Ue;exports.GraphErrorBoundary=re;exports.GraphErrorPanel=z;exports.GraphProvider=ie;exports.GraphRenderer=o.GraphRenderer;exports.HoverProvider=o.HoverProvider;exports.IntroFade=o.IntroFade;exports.IntroWipeClip=o.IntroWipeClip;exports.TextMeasurerProvider=o.TextMeasurerProvider;exports.ThemeProvider=o.ThemeProvider;exports.UnitBoxSvg=Qe;exports.UnitSpaceSvg=Xe;exports.buildDotsEditOutlineShapes=o.buildDotsEditOutlineShapes;exports.createGraphyKit=Be;exports.darkTheme=o.darkTheme;exports.defineGeomRenderer=o.defineGeomRenderer;exports.getBuiltInEditOutlineShapes=o.getBuiltInEditOutlineShapes;exports.lightTheme=o.lightTheme;exports.lightenCss=o.lightenCss;exports.projectPointCartesian=o.projectPointCartesian;exports.pruneSelection=oe;exports.readPositionPixels=I;exports.readRectPixels=Oe;exports.resolveBrandMarkVisual=o.resolveBrandMarkVisual;exports.resolvePathStroke=o.resolvePathStroke;exports.scalePointToPanel=o.scalePointToPanel;exports.stampAxisEditTarget=o.stampAxisEditTarget;exports.stampGridEditTarget=o.stampGridEditTarget;exports.stampLegendEditTarget=o.stampLegendEditTarget;exports.useElementScreenRect=o.useElementScreenRect;exports.useGeomHitTest=o.useGeomHitTest;exports.useGeomHover=o.useGeomHover;exports.useGeomPanelSize=o.useGeomPanelSize;exports.useGeomReaderTree=o.useGeomReaderTree;exports.useGeomStyleReader=o.useGeomStyleReader;exports.useGraphCommands=o.useGraphCommands;exports.useGraphHandle=o.useGraphHandle;exports.useGraphHistory=St;exports.useGraphHistoryShortcuts=bt;exports.useGraphLocale=o.useGraphLocale;exports.useGraphSelection=o.useGraphSelection;exports.useGuidesTakePress=o.useGuidesTakePress;exports.useHandleScene=o.useHandleScene;exports.useHoverState=o.useHoverState;exports.usePaintDefs=o.usePaintDefs;exports.useResolvedStyle=o.useResolvedStyle;exports.useSceneSelector=o.useSceneSelector;exports.useStyleReaderTree=o.useStyleReaderTree;exports.useStyleResolver=o.useStyleResolver;exports.useTargetBoundary=Tt;exports.useTextMeasurer=o.useTextMeasurer;exports.vars=o.vars;
|
package/dist/index.d.ts
CHANGED
|
@@ -734,6 +734,12 @@ export declare interface GeomShapes {
|
|
|
734
734
|
Path?: ComponentType<GeomPathProps>;
|
|
735
735
|
}
|
|
736
736
|
|
|
737
|
+
/**
|
|
738
|
+
* The edit outline the built-in renderer draws for a geom, for a render-only override that keeps the built-in's
|
|
739
|
+
* geometry and changes only its look. Empty where no built-in renderer serves the geom in that coord.
|
|
740
|
+
*/
|
|
741
|
+
export declare const getBuiltInEditOutlineShapes: (geom: string, coord: CoordKind, input: EditOutlineShapesInput) => readonly EditOutlineShape[];
|
|
742
|
+
|
|
737
743
|
/**
|
|
738
744
|
* Chart display and interaction mode.
|
|
739
745
|
* - 'readonly': Normal chart display with full interactivity but no editing (default)
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { An as
|
|
2
|
-
import { COMPILER_STAGE_KEYS as re, Geom as Le, GraphCompilationSession as Me, areEditTargetsEqual as
|
|
3
|
-
import { Component as Ue, useCallback as v, useEffect as H, useId as
|
|
1
|
+
import { $t as or, An as Ne, At as ar, Bt as ir, Cn as cr, Dn as lr, Dt as dr, En as ur, Ft as J, H as mr, Ht as W, Jt as Ge, M as hr, Mn as Ce, Mt as gr, N as pr, Nt as vr, On as fr, Pn as Z, Qt as yr, R as Sr, Rt as De, Sn as br, Tn as Er, Tt as Tr, Ut as we, V as Rr, Vt as Nr, Wt as Gr, Xt as Cr, Zt as Dr, _n as Pe, _t as wr, a as Pr, at as qr, bn as Ir, ct as _r, dn as A, fn as fe, gn as kr, h as Lr, hn as z, i as Mr, j as $r, jn as te, jt as xr, kn as Hr, ln as Ar, mn as qe, mt as Br, n as Or, on as Kr, ot as Fr, pn as Ie, qt as jr, r as Ur, rn as Wr, s as zr, t as _e, un as ye, vn as Y, vt as Yr, w as Vr, wn as Xr, yn as V, z as Qr, zt as ke } from "./history-chords-CkXZ_0Gc.js";
|
|
2
|
+
import { COMPILER_STAGE_KEYS as re, Geom as Le, GraphCompilationSession as Me, areEditTargetsEqual as $e, buildDiagnostic as oe, createAnchorResolver as xe, createCompiler as He, createDataLabelPlacementResolver as Ae, createSpecBuilder as Be, createStyleResolver as Se, findAnnotation as Oe, findLayerById as ae, isCompilerCachingEnabled as Ke, resolveDefinition as Fe, resolveGeomCornerRadiusPx as ie, setCompilerCachingEnabled as je, toPercent as j } from "@graphysdk/viz-engine";
|
|
3
|
+
import { Component as Ue, useCallback as v, useEffect as H, useId as We, useImperativeHandle as ze, useMemo as _, useRef as ce, useState as b, useSyncExternalStore as Ye } from "react";
|
|
4
4
|
import { Fragment as Ve, jsx as c, jsxs as f } from "react/jsx-runtime";
|
|
5
5
|
import { useStore as ee } from "zustand";
|
|
6
6
|
import { motion as X } from "motion/react";
|
|
7
7
|
import { createStore as ne } from "zustand/vanilla";
|
|
8
8
|
import Xe from "clsx";
|
|
9
|
-
import './index.css';var Qe = "_1a5iqpb0",
|
|
10
|
-
var
|
|
9
|
+
import './index.css';var Qe = "_1a5iqpb0", Je = "_1a5iqpb1";
|
|
10
|
+
var Ze = "_1a5iqpb3", et = "_1a5iqpb4", tt = "_1a5iqpb5";
|
|
11
11
|
var le = ({ errors: e }) => {
|
|
12
12
|
const [t, ...r] = e;
|
|
13
13
|
return /* @__PURE__ */ f("div", {
|
|
@@ -15,7 +15,7 @@ var le = ({ errors: e }) => {
|
|
|
15
15
|
className: Qe,
|
|
16
16
|
children: [
|
|
17
17
|
/* @__PURE__ */ c("strong", {
|
|
18
|
-
className:
|
|
18
|
+
className: Je,
|
|
19
19
|
children: "This chart could not be rendered."
|
|
20
20
|
}),
|
|
21
21
|
t && /* @__PURE__ */ c(de, { diagnostic: t }),
|
|
@@ -26,7 +26,7 @@ var le = ({ errors: e }) => {
|
|
|
26
26
|
]
|
|
27
27
|
});
|
|
28
28
|
}, de = ({ diagnostic: e }) => /* @__PURE__ */ f("div", {
|
|
29
|
-
className:
|
|
29
|
+
className: Ze,
|
|
30
30
|
children: [
|
|
31
31
|
/* @__PURE__ */ c("span", {
|
|
32
32
|
className: et,
|
|
@@ -54,7 +54,7 @@ var nt = class extends Ue {
|
|
|
54
54
|
}
|
|
55
55
|
componentDidCatch(e, t) {
|
|
56
56
|
const r = oe(e);
|
|
57
|
-
|
|
57
|
+
Z([r]), this.props.onError?.([r]), console.error("Chart render component stack:", t.componentStack);
|
|
58
58
|
}
|
|
59
59
|
componentDidUpdate(e) {
|
|
60
60
|
this.state.caughtDiagnostic && !rt(e.resetKeys, this.props.resetKeys) && this.setState({ caughtDiagnostic: null });
|
|
@@ -77,7 +77,7 @@ var nt = class extends Ue {
|
|
|
77
77
|
clearSelection: () => e((t) => t.selection.length === 0 ? t : { selection: ue })
|
|
78
78
|
})), it = (e, t) => e === t ? !0 : e.length !== t.length ? !1 : e.every((r, n) => {
|
|
79
79
|
const s = t[n];
|
|
80
|
-
return s !== void 0 &&
|
|
80
|
+
return s !== void 0 && $e(r, s);
|
|
81
81
|
}), ct = process.env.NODE_ENV !== "production", lt = 5, dt = (e) => {
|
|
82
82
|
if (!ct) return {
|
|
83
83
|
emit: () => {
|
|
@@ -142,7 +142,7 @@ var nt = class extends Ue {
|
|
|
142
142
|
return [...e.slice(n), t];
|
|
143
143
|
};
|
|
144
144
|
function me(e) {
|
|
145
|
-
const t = e.filter(be), r = /* @__PURE__ */ new Set([...Object.keys(
|
|
145
|
+
const t = e.filter(be), r = /* @__PURE__ */ new Set([...Object.keys(we), ...t.map((l) => l.geom)]), n = [], s = /* @__PURE__ */ new Set();
|
|
146
146
|
for (const l of e) {
|
|
147
147
|
const d = Ee(l);
|
|
148
148
|
d === null || r.has(d.type) || s.has(d.type) || (s.add(d.type), n.push({
|
|
@@ -206,7 +206,7 @@ function vt(e, t) {
|
|
|
206
206
|
for (const a of n) {
|
|
207
207
|
if (a.interactive === !1 || a.spatialKind !== "render-hit-test" || s.has(a.geom)) continue;
|
|
208
208
|
const l = t(a.geom, r.type);
|
|
209
|
-
l === null || l.hitTest ||
|
|
209
|
+
l === null || l.hitTest || W(l) || (s.add(a.geom), i.push({
|
|
210
210
|
kind: "user-input",
|
|
211
211
|
severity: "warning",
|
|
212
212
|
code: "MISSING_RENDER_HIT_TEST",
|
|
@@ -243,7 +243,7 @@ function yt(e, t) {
|
|
|
243
243
|
for (const a of n) {
|
|
244
244
|
if (a.interactive === !1 || a.spatialKind !== "render-hit-test" || s.has(a.geom)) continue;
|
|
245
245
|
const l = t(a.geom, r.type);
|
|
246
|
-
l === null || !l.hitTest || !
|
|
246
|
+
l === null || !l.hitTest || !W(l) || (s.add(a.geom), i.push({
|
|
247
247
|
kind: "user-input",
|
|
248
248
|
severity: "warning",
|
|
249
249
|
code: "CONFLICTING_RENDER_HIT_TEST",
|
|
@@ -278,7 +278,7 @@ function bt(e, t) {
|
|
|
278
278
|
for (const a of n) {
|
|
279
279
|
if (a.interactive === !1 || a.spatialKind === "render-hit-test" || s.has(a.geom)) continue;
|
|
280
280
|
const l = t(a.geom, r.type);
|
|
281
|
-
l === null || !
|
|
281
|
+
l === null || !W(l) || (s.add(a.geom), i.push({
|
|
282
282
|
kind: "user-input",
|
|
283
283
|
severity: "warning",
|
|
284
284
|
code: "LIVE_RENDER_REQUIRES_RENDER_HIT_TEST",
|
|
@@ -294,7 +294,7 @@ function bt(e, t) {
|
|
|
294
294
|
}
|
|
295
295
|
function Et(e, t) {
|
|
296
296
|
let r;
|
|
297
|
-
return e.layers.flatMap((n, s) =>
|
|
297
|
+
return e.layers.flatMap((n, s) => W(t(n.geom, e.coordSystem.type)) ? Tt(n) ? (r ??= Se().readers(e), (r.geom(n).get("overpaint", void 0, "hovered")?.length ?? 0) === 0 ? [] : [{
|
|
298
298
|
kind: "user-input",
|
|
299
299
|
severity: "warning",
|
|
300
300
|
code: "INVALID_STYLE_RULE",
|
|
@@ -330,7 +330,7 @@ var Nt = (e) => ne((t) => ({
|
|
|
330
330
|
scene: e,
|
|
331
331
|
setScene: (r) => t((n) => n.scene === r ? n : { scene: r })
|
|
332
332
|
})), Gt = ({ spec: e, data: t, colorScheme: r, plugins: n, theme: s, resolveRenderer: i, anchorResolver: a, onSpecChange: l, onError: d, onWarnings: m }) => {
|
|
333
|
-
const G =
|
|
333
|
+
const G = J(l), C = J(d), T = J(m), [{ session: g, compileBus: u }] = b(() => {
|
|
334
334
|
const o = He({
|
|
335
335
|
plugins: n,
|
|
336
336
|
theme: s
|
|
@@ -370,9 +370,9 @@ var Nt = (e) => ne((t) => ({
|
|
|
370
370
|
...Et(o.scene, i),
|
|
371
371
|
...St(o.scene, a)
|
|
372
372
|
] : o.warnings, [i, a]), w = v((o) => {
|
|
373
|
-
o.length !== 0 && (
|
|
373
|
+
o.length !== 0 && (Z(o), C.current?.(o));
|
|
374
374
|
}, [C]), P = v((o) => {
|
|
375
|
-
o.length !== 0 && (
|
|
375
|
+
o.length !== 0 && (Z(o), T.current?.(o));
|
|
376
376
|
}, [T]);
|
|
377
377
|
H(() => {
|
|
378
378
|
const o = R.current;
|
|
@@ -457,7 +457,7 @@ var Nt = (e) => ne((t) => ({
|
|
|
457
457
|
notify: () => e.forEach((t) => t())
|
|
458
458
|
};
|
|
459
459
|
}, Dt = ({ data: e, spec: t, plugins: r = [], theme: n, formattingLocale: s, handleRef: i, onSpecChange: a, onError: l, onWarnings: d, colorScheme: m = "light", children: G }) => {
|
|
460
|
-
const [C] = b(() => n), T = C?.colorScheme ?? m, [g] = b(() => ke([...C?.plugins ?? [], ...r].filter(be))), u =
|
|
460
|
+
const [C] = b(() => n), T = C?.colorScheme ?? m, [g] = b(() => ke([...C?.plugins ?? [], ...r].filter(be))), u = We(), [p] = b(() => xe(r)), [R] = b(() => Ae(r)), [y] = b(() => at()), [D] = b(() => De()), q = _(() => Se({ colorScheme: T }), [T]), { store: N, dispatch: B, commit: k, history: E, subscribe: w, getScene: P, compileBus: L, compileErrors: O } = Gt({
|
|
461
461
|
spec: t,
|
|
462
462
|
data: e,
|
|
463
463
|
colorScheme: T,
|
|
@@ -529,11 +529,11 @@ var Nt = (e) => ne((t) => ({
|
|
|
529
529
|
forcedErrors: O,
|
|
530
530
|
onError: l,
|
|
531
531
|
resetKeys: [t, e],
|
|
532
|
-
children: K ? /* @__PURE__ */ c(
|
|
532
|
+
children: K ? /* @__PURE__ */ c(Ne.Provider, {
|
|
533
533
|
value: K,
|
|
534
|
-
children: /* @__PURE__ */ c(
|
|
534
|
+
children: /* @__PURE__ */ c(Ge, {
|
|
535
535
|
value: g,
|
|
536
|
-
children: /* @__PURE__ */ c(
|
|
536
|
+
children: /* @__PURE__ */ c(Ce, {
|
|
537
537
|
value: R,
|
|
538
538
|
children: /* @__PURE__ */ c(A, {
|
|
539
539
|
shapes: C?.shapes,
|
|
@@ -544,7 +544,7 @@ var Nt = (e) => ne((t) => ({
|
|
|
544
544
|
}) : null
|
|
545
545
|
});
|
|
546
546
|
};
|
|
547
|
-
function
|
|
547
|
+
function on({ theme: e, ...t } = {}) {
|
|
548
548
|
const r = Be(t);
|
|
549
549
|
return {
|
|
550
550
|
...r,
|
|
@@ -555,13 +555,13 @@ function sn({ theme: e, ...t } = {}) {
|
|
|
555
555
|
})
|
|
556
556
|
};
|
|
557
557
|
}
|
|
558
|
-
var
|
|
558
|
+
var x = (e, t) => {
|
|
559
559
|
if (typeof e == "number") return Number.isFinite(e) ? e : null;
|
|
560
560
|
if (!e.endsWith("%")) return null;
|
|
561
561
|
const r = Number.parseFloat(e);
|
|
562
562
|
return Number.isFinite(r) ? r / 100 * t : null;
|
|
563
|
-
},
|
|
564
|
-
const i =
|
|
563
|
+
}, an = ({ x: e, y: t, width: r, height: n }, s) => {
|
|
564
|
+
const i = x(e, s.width), a = x(t, s.height), l = x(r, s.width), d = x(n, s.height);
|
|
565
565
|
return i === null || a === null || l === null || d === null ? null : {
|
|
566
566
|
x: i,
|
|
567
567
|
y: a,
|
|
@@ -577,7 +577,7 @@ var $ = (e, t) => {
|
|
|
577
577
|
cy: r,
|
|
578
578
|
r: n
|
|
579
579
|
},
|
|
580
|
-
transition:
|
|
580
|
+
transition: Y,
|
|
581
581
|
style: a,
|
|
582
582
|
...i
|
|
583
583
|
}) : /* @__PURE__ */ c("circle", {
|
|
@@ -597,7 +597,7 @@ var $ = (e, t) => {
|
|
|
597
597
|
x2: n,
|
|
598
598
|
y2: s
|
|
599
599
|
},
|
|
600
|
-
transition:
|
|
600
|
+
transition: Y,
|
|
601
601
|
style: l,
|
|
602
602
|
...a
|
|
603
603
|
}) : /* @__PURE__ */ c("line", {
|
|
@@ -622,7 +622,7 @@ var $ = (e, t) => {
|
|
|
622
622
|
ry: a
|
|
623
623
|
} : {}
|
|
624
624
|
},
|
|
625
|
-
transition:
|
|
625
|
+
transition: Y,
|
|
626
626
|
style: m,
|
|
627
627
|
...d
|
|
628
628
|
}) : /* @__PURE__ */ c("rect", {
|
|
@@ -647,23 +647,23 @@ var $ = (e, t) => {
|
|
|
647
647
|
style: i,
|
|
648
648
|
...s
|
|
649
649
|
});
|
|
650
|
-
}, an = (e) => {
|
|
651
|
-
const { Circle: t } = W();
|
|
652
|
-
return t === void 0 ? wt(e) : /* @__PURE__ */ c(A, { children: /* @__PURE__ */ c(t, { ...e }) });
|
|
653
650
|
}, cn = (e) => {
|
|
654
|
-
const {
|
|
651
|
+
const { Circle: t } = z();
|
|
652
|
+
return t === void 0 ? wt(e) : /* @__PURE__ */ c(A, { children: /* @__PURE__ */ c(t, { ...e }) });
|
|
653
|
+
}, ln = (e) => {
|
|
654
|
+
const { Line: t } = z();
|
|
655
655
|
return t === void 0 ? Pt(e) : /* @__PURE__ */ c(A, { children: /* @__PURE__ */ c(t, { ...e }) });
|
|
656
|
-
},
|
|
657
|
-
const { Rect: r } =
|
|
656
|
+
}, dn = ({ cornerRadius: e, ...t }) => {
|
|
657
|
+
const { Rect: r } = z(), n = fe(), s = qe(), i = {
|
|
658
658
|
...t,
|
|
659
659
|
...kt(e, t, n, s)
|
|
660
660
|
};
|
|
661
661
|
return r === void 0 ? qt(i) : /* @__PURE__ */ c(A, { children: /* @__PURE__ */ c(r, { ...i }) });
|
|
662
|
-
},
|
|
663
|
-
const { Path: t } =
|
|
662
|
+
}, un = (e) => {
|
|
663
|
+
const { Path: t } = z();
|
|
664
664
|
return t === void 0 ? It(e) : /* @__PURE__ */ c(A, { children: /* @__PURE__ */ c(t, { ...e }) });
|
|
665
665
|
}, _t = ({ d: e, source: t, ...r }) => {
|
|
666
|
-
const n =
|
|
666
|
+
const n = Pe(e, Y, t);
|
|
667
667
|
return /* @__PURE__ */ c(X.path, {
|
|
668
668
|
d: n,
|
|
669
669
|
...r
|
|
@@ -687,7 +687,7 @@ var $ = (e, t) => {
|
|
|
687
687
|
}, he = (e, t, r) => {
|
|
688
688
|
if (typeof e == "number") return Number.isFinite(e) ? Math.abs(e) * r : null;
|
|
689
689
|
if (t === void 0) return null;
|
|
690
|
-
const n =
|
|
690
|
+
const n = x(e, t);
|
|
691
691
|
return n === null ? null : Math.abs(n);
|
|
692
692
|
}, ge = (e, t) => t.x <= 0 || t.y <= 0 ? {
|
|
693
693
|
rx: 0,
|
|
@@ -695,7 +695,7 @@ var $ = (e, t) => {
|
|
|
695
695
|
} : {
|
|
696
696
|
rx: e / t.x,
|
|
697
697
|
ry: e / t.y
|
|
698
|
-
},
|
|
698
|
+
}, mn = ({ children: e, ...t }) => {
|
|
699
699
|
const r = fe();
|
|
700
700
|
return /* @__PURE__ */ c("svg", {
|
|
701
701
|
viewBox: "0 0 1 1",
|
|
@@ -710,8 +710,8 @@ var $ = (e, t) => {
|
|
|
710
710
|
children: e
|
|
711
711
|
})
|
|
712
712
|
});
|
|
713
|
-
},
|
|
714
|
-
const r =
|
|
713
|
+
}, hn = ({ box: e, children: t }) => {
|
|
714
|
+
const r = Ie(), n = r === null ? null : r.width * (e.x1 - e.x0), s = r === null ? null : r.height * (e.y1 - e.y0), i = _(() => n === null || s === null ? null : {
|
|
715
715
|
width: n,
|
|
716
716
|
height: s
|
|
717
717
|
}, [n, s]);
|
|
@@ -727,9 +727,9 @@ var $ = (e, t) => {
|
|
|
727
727
|
children: t
|
|
728
728
|
})
|
|
729
729
|
});
|
|
730
|
-
}, Mt = "drqe3u0",
|
|
731
|
-
var jt = "drqe3uc", Ut = "drqe3ud",
|
|
732
|
-
var
|
|
730
|
+
}, Mt = "drqe3u0", $t = "drqe3u1", xt = "drqe3u2", Ht = "drqe3u3", $ = "drqe3u4", At = "drqe3u5", Bt = "drqe3u6", Ot = "drqe3u7", U = "drqe3u8", Kt = "drqe3u9", Ft = "drqe3ua";
|
|
731
|
+
var jt = "drqe3uc", Ut = "drqe3ud", Wt = "drqe3ue", zt = "drqe3uf";
|
|
732
|
+
var Yt = "drqe3uh", Vt = "drqe3ui", pe = {
|
|
733
733
|
enabled: "drqe3uk drqe3uj",
|
|
734
734
|
disabled: "drqe3ul drqe3uj"
|
|
735
735
|
}, ve = {
|
|
@@ -739,7 +739,7 @@ var Wt = "drqe3uh", Vt = "drqe3ui", pe = {
|
|
|
739
739
|
ran: "drqe3uq drqe3up",
|
|
740
740
|
cached: "drqe3ur drqe3up",
|
|
741
741
|
untouched: "drqe3us drqe3up"
|
|
742
|
-
},
|
|
742
|
+
}, gn = ({ width: e = 440, style: t, className: r } = {}) => {
|
|
743
743
|
const { compileBus: n } = te(), [s] = b(() => ut()), [i, a] = b(!1), [l, d] = b(Ke);
|
|
744
744
|
H(() => {
|
|
745
745
|
const { recordCompile: u } = s.getState(), p = n.getLastTrigger(), R = n.getLastCompile();
|
|
@@ -761,10 +761,10 @@ var Wt = "drqe3uh", Vt = "drqe3ui", pe = {
|
|
|
761
761
|
/* @__PURE__ */ f("div", {
|
|
762
762
|
className: Mt,
|
|
763
763
|
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ c("div", {
|
|
764
|
-
className:
|
|
764
|
+
className: $t,
|
|
765
765
|
children: "compile cache"
|
|
766
766
|
}), /* @__PURE__ */ c("div", {
|
|
767
|
-
className:
|
|
767
|
+
className: Wt,
|
|
768
768
|
children: T ? "production: stats disabled" : m ? `last: ${m.label} · ${se(m.durationMs)}` : "awaiting first compile…"
|
|
769
769
|
})] }), /* @__PURE__ */ c("button", {
|
|
770
770
|
type: "button",
|
|
@@ -794,37 +794,37 @@ var Wt = "drqe3uh", Vt = "drqe3ui", pe = {
|
|
|
794
794
|
]
|
|
795
795
|
});
|
|
796
796
|
}, Xt = ({ delta: e, durations: t, cumulative: r }) => /* @__PURE__ */ f("table", {
|
|
797
|
-
className:
|
|
797
|
+
className: xt,
|
|
798
798
|
children: [/* @__PURE__ */ c("thead", { children: /* @__PURE__ */ f("tr", {
|
|
799
|
-
className:
|
|
799
|
+
className: Yt,
|
|
800
800
|
children: [
|
|
801
801
|
/* @__PURE__ */ c("th", {
|
|
802
802
|
className: Ht,
|
|
803
803
|
children: "stage"
|
|
804
804
|
}),
|
|
805
805
|
/* @__PURE__ */ c("th", {
|
|
806
|
-
className:
|
|
806
|
+
className: $,
|
|
807
807
|
children: "time"
|
|
808
808
|
}),
|
|
809
809
|
/* @__PURE__ */ c("th", {
|
|
810
|
-
className:
|
|
810
|
+
className: $,
|
|
811
811
|
children: "Δ miss"
|
|
812
812
|
}),
|
|
813
813
|
/* @__PURE__ */ c("th", {
|
|
814
|
-
className:
|
|
814
|
+
className: $,
|
|
815
815
|
children: "Δ hit"
|
|
816
816
|
}),
|
|
817
817
|
/* @__PURE__ */ c("th", {
|
|
818
|
-
className:
|
|
818
|
+
className: $,
|
|
819
819
|
children: "total miss"
|
|
820
820
|
}),
|
|
821
821
|
/* @__PURE__ */ c("th", {
|
|
822
|
-
className:
|
|
822
|
+
className: $,
|
|
823
823
|
children: "total hit"
|
|
824
824
|
})
|
|
825
825
|
]
|
|
826
826
|
}) }), /* @__PURE__ */ c("tbody", { children: re.map((n) => {
|
|
827
|
-
const s = e?.[n], i =
|
|
827
|
+
const s = e?.[n], i = Jt(s);
|
|
828
828
|
return /* @__PURE__ */ f("tr", {
|
|
829
829
|
className: jt,
|
|
830
830
|
children: [
|
|
@@ -868,7 +868,7 @@ var Wt = "drqe3uh", Vt = "drqe3ui", pe = {
|
|
|
868
868
|
className: Vt,
|
|
869
869
|
children: "recent compiles"
|
|
870
870
|
}), e.map((t) => {
|
|
871
|
-
const r =
|
|
871
|
+
const r = Zt(t.stages, (i) => i.misses > 0), n = re.length;
|
|
872
872
|
return /* @__PURE__ */ f("div", {
|
|
873
873
|
className: Bt,
|
|
874
874
|
children: [
|
|
@@ -894,12 +894,12 @@ var Wt = "drqe3uh", Vt = "drqe3ui", pe = {
|
|
|
894
894
|
]
|
|
895
895
|
}, t.id);
|
|
896
896
|
})]
|
|
897
|
-
}),
|
|
897
|
+
}), Jt = (e) => !e || e.hits === 0 && e.misses === 0 ? "untouched" : e.misses > 0 ? "ran" : "cached", Zt = (e, t) => {
|
|
898
898
|
let r = 0;
|
|
899
899
|
for (const n of re) t(e[n]) && (r += 1);
|
|
900
900
|
return r;
|
|
901
|
-
}, se = (e) => e < 0.1 ? "<0.1ms" : e >= 10 ? `${e.toFixed(0)}ms` : `${e.toFixed(2)}ms`,
|
|
902
|
-
const { history: e } = te(), { stack: t, undo: r, redo: n } = e, s = v((l) => t.subscribe(l), [t]), i = v(() => t.getSnapshot(), [t]), a =
|
|
901
|
+
}, se = (e) => e < 0.1 ? "<0.1ms" : e >= 10 ? `${e.toFixed(0)}ms` : `${e.toFixed(2)}ms`, pn = () => {
|
|
902
|
+
const { history: e } = te(), { stack: t, undo: r, redo: n } = e, s = v((l) => t.subscribe(l), [t]), i = v(() => t.getSnapshot(), [t]), a = Ye(s, i, i);
|
|
903
903
|
return _(() => ({
|
|
904
904
|
...a,
|
|
905
905
|
undo: r,
|
|
@@ -920,7 +920,7 @@ var Wt = "drqe3uh", Vt = "drqe3ui", pe = {
|
|
|
920
920
|
"range",
|
|
921
921
|
"reset",
|
|
922
922
|
"submit"
|
|
923
|
-
]),
|
|
923
|
+
]), vn = (e, t = {}) => {
|
|
924
924
|
const { target: r, enabled: n = !0 } = t;
|
|
925
925
|
H(() => {
|
|
926
926
|
const s = tr(r);
|
|
@@ -938,77 +938,78 @@ var Wt = "drqe3uh", Vt = "drqe3ui", pe = {
|
|
|
938
938
|
r,
|
|
939
939
|
n
|
|
940
940
|
]);
|
|
941
|
-
}, tr = (e) => e === void 0 ? window : e !== null && "current" in e ? e.current : e, rr = (e) => "key" in e, nr = (e) => e instanceof HTMLInputElement ? !er.has(e.type) : e instanceof HTMLElement ? e.isContentEditable || e.tagName === "TEXTAREA" : !1,
|
|
941
|
+
}, tr = (e) => e === void 0 ? window : e !== null && "current" in e ? e.current : e, rr = (e) => "key" in e, nr = (e) => e instanceof HTMLInputElement ? !er.has(e.type) : e instanceof HTMLElement ? e.isContentEditable || e.tagName === "TEXTAREA" : !1, fn = () => {
|
|
942
942
|
const { targetBoundaryStore: e } = te();
|
|
943
943
|
return ee(e, (t) => t.boundary);
|
|
944
944
|
};
|
|
945
945
|
export {
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
946
|
+
Rr as BrandMark,
|
|
947
|
+
yr as CanvasTextMeasurer,
|
|
948
|
+
Qr as DefaultFooter,
|
|
949
949
|
wt as DefaultGeomCircle,
|
|
950
950
|
Pt as DefaultGeomLine,
|
|
951
951
|
It as DefaultGeomPath,
|
|
952
952
|
qt as DefaultGeomRect,
|
|
953
|
-
|
|
953
|
+
zr as DefaultGrid,
|
|
954
954
|
Sr as DefaultHeader,
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
955
|
+
jr as DefaultSwatch,
|
|
956
|
+
Fr as DefaultTooltip,
|
|
957
|
+
gn as DevToolsPanel,
|
|
958
958
|
Tr as GRAPH_MODES,
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
959
|
+
cn as GeomCircle,
|
|
960
|
+
ln as GeomLine,
|
|
961
|
+
xr as GeomOverpaint,
|
|
962
|
+
un as GeomPath,
|
|
963
|
+
dn as GeomRect,
|
|
964
964
|
nt as GraphErrorBoundary,
|
|
965
965
|
le as GraphErrorPanel,
|
|
966
966
|
Dt as GraphProvider,
|
|
967
967
|
Pr as GraphRenderer,
|
|
968
968
|
vr as HoverProvider,
|
|
969
|
-
|
|
970
|
-
|
|
969
|
+
Gr as IntroFade,
|
|
970
|
+
kr as IntroWipeClip,
|
|
971
971
|
Cr as TextMeasurerProvider,
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
972
|
+
Br as ThemeProvider,
|
|
973
|
+
hn as UnitBoxSvg,
|
|
974
|
+
mn as UnitSpaceSvg,
|
|
975
|
+
br as buildDotsEditOutlineShapes,
|
|
976
|
+
on as createGraphyKit,
|
|
977
977
|
wr as darkTheme,
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
978
|
+
ir as defineGeomRenderer,
|
|
979
|
+
Nr as getBuiltInEditOutlineShapes,
|
|
980
|
+
Yr as lightTheme,
|
|
981
|
+
Wr as lightenCss,
|
|
982
|
+
Xr as projectPointCartesian,
|
|
982
983
|
st as pruneSelection,
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
984
|
+
x as readPositionPixels,
|
|
985
|
+
an as readRectPixels,
|
|
986
|
+
mr as resolveBrandMarkVisual,
|
|
987
|
+
Ir as resolvePathStroke,
|
|
988
|
+
cr as scalePointToPanel,
|
|
988
989
|
$r as stampAxisEditTarget,
|
|
989
990
|
hr as stampGridEditTarget,
|
|
990
991
|
pr as stampLegendEditTarget,
|
|
991
|
-
|
|
992
|
+
dr as useElementScreenRect,
|
|
992
993
|
gr as useGeomHitTest,
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
994
|
+
ar as useGeomHover,
|
|
995
|
+
Ie as useGeomPanelSize,
|
|
996
|
+
Er as useGeomReaderTree,
|
|
997
|
+
ur as useGeomStyleReader,
|
|
998
|
+
Or as useGraphCommands,
|
|
999
|
+
Mr as useGraphHandle,
|
|
1000
|
+
pn as useGraphHistory,
|
|
1001
|
+
vn as useGraphHistoryShortcuts,
|
|
1002
|
+
qr as useGraphLocale,
|
|
1002
1003
|
Lr as useGraphSelection,
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1004
|
+
Vr as useGuidesTakePress,
|
|
1005
|
+
Ur as useHandleScene,
|
|
1006
|
+
_r as useHoverState,
|
|
1007
|
+
Ar as usePaintDefs,
|
|
1008
|
+
or as useResolvedStyle,
|
|
1009
|
+
Hr as useSceneSelector,
|
|
1010
|
+
lr as useStyleReaderTree,
|
|
1011
|
+
fr as useStyleResolver,
|
|
1012
|
+
fn as useTargetBoundary,
|
|
1013
|
+
Dr as useTextMeasurer,
|
|
1014
|
+
Kr as vars
|
|
1014
1015
|
};
|