@multiplatform.one/node-graph 7.7.2
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/LICENSE +201 -0
- package/README.md +80 -0
- package/css/graph.css +171 -0
- package/demo.ts +14 -0
- package/dist/cjs/NodeGraph.cjs +34 -0
- package/dist/cjs/NodeGraph.native.js +37 -0
- package/dist/cjs/NodeGraph.native.js.map +1 -0
- package/dist/cjs/bench/frameSampler.cjs +290 -0
- package/dist/cjs/bench/frameSampler.native.js +409 -0
- package/dist/cjs/bench/frameSampler.native.js.map +1 -0
- package/dist/cjs/bench/generateGraph.cjs +125 -0
- package/dist/cjs/bench/generateGraph.native.js +128 -0
- package/dist/cjs/bench/generateGraph.native.js.map +1 -0
- package/dist/cjs/diagnostics/GraphDiagnostics.cjs +154 -0
- package/dist/cjs/diagnostics/GraphDiagnostics.native.js +166 -0
- package/dist/cjs/diagnostics/GraphDiagnostics.native.js.map +1 -0
- package/dist/cjs/diagnostics/LiveGraphDiagnostics.cjs +101 -0
- package/dist/cjs/diagnostics/LiveGraphDiagnostics.native.js +106 -0
- package/dist/cjs/diagnostics/LiveGraphDiagnostics.native.js.map +1 -0
- package/dist/cjs/diagnostics/fromWire.cjs +48 -0
- package/dist/cjs/diagnostics/fromWire.native.js +51 -0
- package/dist/cjs/diagnostics/fromWire.native.js.map +1 -0
- package/dist/cjs/diagnostics/lastError.cjs +67 -0
- package/dist/cjs/diagnostics/lastError.native.js +75 -0
- package/dist/cjs/diagnostics/lastError.native.js.map +1 -0
- package/dist/cjs/diagnostics/types.cjs +18 -0
- package/dist/cjs/diagnostics/types.native.js +21 -0
- package/dist/cjs/diagnostics/types.native.js.map +1 -0
- package/dist/cjs/diagnostics/useGraphDiagnostics.cjs +69 -0
- package/dist/cjs/diagnostics/useGraphDiagnostics.native.js +75 -0
- package/dist/cjs/diagnostics/useGraphDiagnostics.native.js.map +1 -0
- package/dist/cjs/dom/GraphDomLayout.cjs +37 -0
- package/dist/cjs/dom/GraphDomLayout.native.js +40 -0
- package/dist/cjs/dom/GraphDomLayout.native.js.map +1 -0
- package/dist/cjs/dom/boot.cjs +100 -0
- package/dist/cjs/dom/boot.native.js +111 -0
- package/dist/cjs/dom/boot.native.js.map +1 -0
- package/dist/cjs/dom/wire.cjs +215 -0
- package/dist/cjs/dom/wire.native.js +274 -0
- package/dist/cjs/dom/wire.native.js.map +1 -0
- package/dist/cjs/edges/GraphEdge.cjs +169 -0
- package/dist/cjs/edges/GraphEdge.native.js +178 -0
- package/dist/cjs/edges/GraphEdge.native.js.map +1 -0
- package/dist/cjs/edges/edgeKinds.cjs +51 -0
- package/dist/cjs/edges/edgeKinds.native.js +54 -0
- package/dist/cjs/edges/edgeKinds.native.js.map +1 -0
- package/dist/cjs/edges/edgeStyle.cjs +94 -0
- package/dist/cjs/edges/edgeStyle.native.js +99 -0
- package/dist/cjs/edges/edgeStyle.native.js.map +1 -0
- package/dist/cjs/index.cjs +197 -0
- package/dist/cjs/index.native.js +200 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/interaction/lassoIntercept.cjs +54 -0
- package/dist/cjs/interaction/lassoIntercept.native.js +57 -0
- package/dist/cjs/interaction/lassoIntercept.native.js.map +1 -0
- package/dist/cjs/interaction/legalTargets.cjs +75 -0
- package/dist/cjs/interaction/legalTargets.native.js +118 -0
- package/dist/cjs/interaction/legalTargets.native.js.map +1 -0
- package/dist/cjs/interaction/snapAlignment.cjs +165 -0
- package/dist/cjs/interaction/snapAlignment.native.js +245 -0
- package/dist/cjs/interaction/snapAlignment.native.js.map +1 -0
- package/dist/cjs/interaction/snapChanges.cjs +214 -0
- package/dist/cjs/interaction/snapChanges.native.js +269 -0
- package/dist/cjs/interaction/snapChanges.native.js.map +1 -0
- package/dist/cjs/interaction/spatialHash.cjs +97 -0
- package/dist/cjs/interaction/spatialHash.native.js +165 -0
- package/dist/cjs/interaction/spatialHash.native.js.map +1 -0
- package/dist/cjs/interaction/useLassoSelect.cjs +259 -0
- package/dist/cjs/interaction/useLassoSelect.native.js +287 -0
- package/dist/cjs/interaction/useLassoSelect.native.js.map +1 -0
- package/dist/cjs/knobs/KnobEnvelopeProvider.cjs +77 -0
- package/dist/cjs/knobs/KnobEnvelopeProvider.native.js +85 -0
- package/dist/cjs/knobs/KnobEnvelopeProvider.native.js.map +1 -0
- package/dist/cjs/knobs/envelope.cjs +59 -0
- package/dist/cjs/knobs/envelope.native.js +78 -0
- package/dist/cjs/knobs/envelope.native.js.map +1 -0
- package/dist/cjs/knobs/graphKnobs.cjs +39 -0
- package/dist/cjs/knobs/graphKnobs.native.js +43 -0
- package/dist/cjs/knobs/graphKnobs.native.js.map +1 -0
- package/dist/cjs/knobs/useKnobEnvelope.cjs +108 -0
- package/dist/cjs/knobs/useKnobEnvelope.native.js +140 -0
- package/dist/cjs/knobs/useKnobEnvelope.native.js.map +1 -0
- package/dist/cjs/layout/dagre.cjs +125 -0
- package/dist/cjs/layout/dagre.native.js +259 -0
- package/dist/cjs/layout/dagre.native.js.map +1 -0
- package/dist/cjs/layout/layout.cjs +84 -0
- package/dist/cjs/layout/layout.native.js +112 -0
- package/dist/cjs/layout/layout.native.js.map +1 -0
- package/dist/cjs/layout/runner.cjs +194 -0
- package/dist/cjs/layout/runner.native.js +247 -0
- package/dist/cjs/layout/runner.native.js.map +1 -0
- package/dist/cjs/layout/structuredCloneShim.cjs +80 -0
- package/dist/cjs/layout/structuredCloneShim.native.js +160 -0
- package/dist/cjs/layout/structuredCloneShim.native.js.map +1 -0
- package/dist/cjs/layout/types.cjs +18 -0
- package/dist/cjs/layout/types.native.js +21 -0
- package/dist/cjs/layout/types.native.js.map +1 -0
- package/dist/cjs/layout/worker.entry.cjs +58 -0
- package/dist/cjs/layout/worker.entry.native.js +75 -0
- package/dist/cjs/layout/worker.entry.native.js.map +1 -0
- package/dist/cjs/layout/worker.generated.cjs +32 -0
- package/dist/cjs/layout/worker.generated.native.js +35 -0
- package/dist/cjs/layout/worker.generated.native.js.map +1 -0
- package/dist/cjs/model/commands.cjs +235 -0
- package/dist/cjs/model/commands.native.js +317 -0
- package/dist/cjs/model/commands.native.js.map +1 -0
- package/dist/cjs/model/connect.cjs +159 -0
- package/dist/cjs/model/connect.native.js +239 -0
- package/dist/cjs/model/connect.native.js.map +1 -0
- package/dist/cjs/model/document.cjs +18 -0
- package/dist/cjs/model/document.native.js +21 -0
- package/dist/cjs/model/document.native.js.map +1 -0
- package/dist/cjs/model/history.cjs +121 -0
- package/dist/cjs/model/history.native.js +178 -0
- package/dist/cjs/model/history.native.js.map +1 -0
- package/dist/cjs/model/index.cjs +60 -0
- package/dist/cjs/model/index.native.js +63 -0
- package/dist/cjs/model/index.native.js.map +1 -0
- package/dist/cjs/model/schema.cjs +63 -0
- package/dist/cjs/model/schema.native.js +68 -0
- package/dist/cjs/model/schema.native.js.map +1 -0
- package/dist/cjs/model/select.cjs +78 -0
- package/dist/cjs/model/select.native.js +107 -0
- package/dist/cjs/model/select.native.js.map +1 -0
- package/dist/cjs/model/serialize.cjs +332 -0
- package/dist/cjs/model/serialize.native.js +374 -0
- package/dist/cjs/model/serialize.native.js.map +1 -0
- package/dist/cjs/native/DomOnlyStory.cjs +60 -0
- package/dist/cjs/native/DomOnlyStory.native.js +66 -0
- package/dist/cjs/native/DomOnlyStory.native.js.map +1 -0
- package/dist/cjs/native/GraphToolbar.cjs +101 -0
- package/dist/cjs/native/GraphToolbar.native.js +107 -0
- package/dist/cjs/native/GraphToolbar.native.js.map +1 -0
- package/dist/cjs/native/domEntryRegistry.cjs +39 -0
- package/dist/cjs/native/domEntryRegistry.native.js +42 -0
- package/dist/cjs/native/domEntryRegistry.native.js.map +1 -0
- package/dist/cjs/native/graphChildren.cjs +45 -0
- package/dist/cjs/native/graphChildren.native.js +50 -0
- package/dist/cjs/native/graphChildren.native.js.map +1 -0
- package/dist/cjs/nodes/GraphNode.cjs +161 -0
- package/dist/cjs/nodes/GraphNode.native.js +206 -0
- package/dist/cjs/nodes/GraphNode.native.js.map +1 -0
- package/dist/cjs/nodes/GraphPort.cjs +104 -0
- package/dist/cjs/nodes/GraphPort.native.js +108 -0
- package/dist/cjs/nodes/GraphPort.native.js.map +1 -0
- package/dist/cjs/nodes/handleGeometry.cjs +98 -0
- package/dist/cjs/nodes/handleGeometry.native.js +104 -0
- package/dist/cjs/nodes/handleGeometry.native.js.map +1 -0
- package/dist/cjs/nodes/lod.cjs +41 -0
- package/dist/cjs/nodes/lod.native.js +45 -0
- package/dist/cjs/nodes/lod.native.js.map +1 -0
- package/dist/cjs/nodes/nodeMeasure.cjs +108 -0
- package/dist/cjs/nodes/nodeMeasure.native.js +134 -0
- package/dist/cjs/nodes/nodeMeasure.native.js.map +1 -0
- package/dist/cjs/nodes/overviewNode.cjs +74 -0
- package/dist/cjs/nodes/overviewNode.native.js +81 -0
- package/dist/cjs/nodes/overviewNode.native.js.map +1 -0
- package/dist/cjs/react-flow/ConnectionPuck.cjs +122 -0
- package/dist/cjs/react-flow/ConnectionPuck.native.js +143 -0
- package/dist/cjs/react-flow/ConnectionPuck.native.js.map +1 -0
- package/dist/cjs/react-flow/GraphActions.cjs +47 -0
- package/dist/cjs/react-flow/GraphActions.native.js +51 -0
- package/dist/cjs/react-flow/GraphActions.native.js.map +1 -0
- package/dist/cjs/react-flow/GraphCommandBridge.cjs +238 -0
- package/dist/cjs/react-flow/GraphCommandBridge.native.js +272 -0
- package/dist/cjs/react-flow/GraphCommandBridge.native.js.map +1 -0
- package/dist/cjs/react-flow/GraphNodeHost.cjs +77 -0
- package/dist/cjs/react-flow/GraphNodeHost.native.js +89 -0
- package/dist/cjs/react-flow/GraphNodeHost.native.js.map +1 -0
- package/dist/cjs/react-flow/GraphPaintProbe.cjs +60 -0
- package/dist/cjs/react-flow/GraphPaintProbe.native.js +65 -0
- package/dist/cjs/react-flow/GraphPaintProbe.native.js.map +1 -0
- package/dist/cjs/react-flow/GraphZoomVar.cjs +42 -0
- package/dist/cjs/react-flow/GraphZoomVar.native.js +48 -0
- package/dist/cjs/react-flow/GraphZoomVar.native.js.map +1 -0
- package/dist/cjs/react-flow/LassoOverlay.cjs +47 -0
- package/dist/cjs/react-flow/LassoOverlay.native.js +51 -0
- package/dist/cjs/react-flow/LassoOverlay.native.js.map +1 -0
- package/dist/cjs/react-flow/NodeGraphWeb.cjs +386 -0
- package/dist/cjs/react-flow/NodeGraphWeb.native.js +515 -0
- package/dist/cjs/react-flow/NodeGraphWeb.native.js.map +1 -0
- package/dist/cjs/react-flow/SnapGuides.cjs +89 -0
- package/dist/cjs/react-flow/SnapGuides.native.js +114 -0
- package/dist/cjs/react-flow/SnapGuides.native.js.map +1 -0
- package/dist/cjs/react-flow/demoControlBody.cjs +93 -0
- package/dist/cjs/react-flow/demoControlBody.native.js +104 -0
- package/dist/cjs/react-flow/demoControlBody.native.js.map +1 -0
- package/dist/cjs/react-flow/demoNodeBody.cjs +121 -0
- package/dist/cjs/react-flow/demoNodeBody.native.js +131 -0
- package/dist/cjs/react-flow/demoNodeBody.native.js.map +1 -0
- package/dist/cjs/react-flow/fixtures.cjs +215 -0
- package/dist/cjs/react-flow/fixtures.native.js +225 -0
- package/dist/cjs/react-flow/fixtures.native.js.map +1 -0
- package/dist/cjs/react-flow/flowAdapter.cjs +121 -0
- package/dist/cjs/react-flow/flowAdapter.native.js +133 -0
- package/dist/cjs/react-flow/flowAdapter.native.js.map +1 -0
- package/dist/cjs/react-flow/graphHandle.cjs +28 -0
- package/dist/cjs/react-flow/graphHandle.native.js +31 -0
- package/dist/cjs/react-flow/graphHandle.native.js.map +1 -0
- package/dist/cjs/react-flow/nodeCensus.cjs +56 -0
- package/dist/cjs/react-flow/nodeCensus.native.js +80 -0
- package/dist/cjs/react-flow/nodeCensus.native.js.map +1 -0
- package/dist/cjs/react-flow/useGraphController.cjs +297 -0
- package/dist/cjs/react-flow/useGraphController.native.js +393 -0
- package/dist/cjs/react-flow/useGraphController.native.js.map +1 -0
- package/dist/cjs/react-flow/xy.cjs +60 -0
- package/dist/cjs/react-flow/xy.native.js +63 -0
- package/dist/cjs/react-flow/xy.native.js.map +1 -0
- package/dist/cjs/theme/GraphFaces.cjs +114 -0
- package/dist/cjs/theme/GraphFaces.native.js +181 -0
- package/dist/cjs/theme/GraphFaces.native.js.map +1 -0
- package/dist/cjs/theme/GraphVarsStyle.cjs +88 -0
- package/dist/cjs/theme/GraphVarsStyle.native.js +100 -0
- package/dist/cjs/theme/GraphVarsStyle.native.js.map +1 -0
- package/dist/cjs/theme/faces.cjs +121 -0
- package/dist/cjs/theme/faces.generated.cjs +48 -0
- package/dist/cjs/theme/faces.generated.native.js +51 -0
- package/dist/cjs/theme/faces.generated.native.js.map +1 -0
- package/dist/cjs/theme/faces.native.js +133 -0
- package/dist/cjs/theme/faces.native.js.map +1 -0
- package/dist/cjs/theme/graphVars.cjs +318 -0
- package/dist/cjs/theme/graphVars.native.js +351 -0
- package/dist/cjs/theme/graphVars.native.js.map +1 -0
- package/dist/esm/NodeGraph.mjs +9 -0
- package/dist/esm/NodeGraph.mjs.map +1 -0
- package/dist/esm/NodeGraph.native.js +9 -0
- package/dist/esm/NodeGraph.native.js.map +1 -0
- package/dist/esm/bench/frameSampler.mjs +255 -0
- package/dist/esm/bench/frameSampler.mjs.map +1 -0
- package/dist/esm/bench/frameSampler.native.js +371 -0
- package/dist/esm/bench/frameSampler.native.js.map +1 -0
- package/dist/esm/bench/generateGraph.mjs +99 -0
- package/dist/esm/bench/generateGraph.mjs.map +1 -0
- package/dist/esm/bench/generateGraph.native.js +99 -0
- package/dist/esm/bench/generateGraph.native.js.map +1 -0
- package/dist/esm/diagnostics/GraphDiagnostics.mjs +128 -0
- package/dist/esm/diagnostics/GraphDiagnostics.mjs.map +1 -0
- package/dist/esm/diagnostics/GraphDiagnostics.native.js +137 -0
- package/dist/esm/diagnostics/GraphDiagnostics.native.js.map +1 -0
- package/dist/esm/diagnostics/LiveGraphDiagnostics.mjs +76 -0
- package/dist/esm/diagnostics/LiveGraphDiagnostics.mjs.map +1 -0
- package/dist/esm/diagnostics/LiveGraphDiagnostics.native.js +78 -0
- package/dist/esm/diagnostics/LiveGraphDiagnostics.native.js.map +1 -0
- package/dist/esm/diagnostics/fromWire.mjs +23 -0
- package/dist/esm/diagnostics/fromWire.mjs.map +1 -0
- package/dist/esm/diagnostics/fromWire.native.js +23 -0
- package/dist/esm/diagnostics/fromWire.native.js.map +1 -0
- package/dist/esm/diagnostics/lastError.mjs +39 -0
- package/dist/esm/diagnostics/lastError.mjs.map +1 -0
- package/dist/esm/diagnostics/lastError.native.js +44 -0
- package/dist/esm/diagnostics/lastError.native.js.map +1 -0
- package/dist/esm/diagnostics/types.mjs +2 -0
- package/dist/esm/diagnostics/types.mjs.map +1 -0
- package/dist/esm/diagnostics/types.native.js +2 -0
- package/dist/esm/diagnostics/types.native.js.map +1 -0
- package/dist/esm/diagnostics/useGraphDiagnostics.mjs +44 -0
- package/dist/esm/diagnostics/useGraphDiagnostics.mjs.map +1 -0
- package/dist/esm/diagnostics/useGraphDiagnostics.native.js +47 -0
- package/dist/esm/diagnostics/useGraphDiagnostics.native.js.map +1 -0
- package/dist/esm/dom/GraphDomLayout.mjs +11 -0
- package/dist/esm/dom/GraphDomLayout.mjs.map +1 -0
- package/dist/esm/dom/GraphDomLayout.native.js +11 -0
- package/dist/esm/dom/GraphDomLayout.native.js.map +1 -0
- package/dist/esm/dom/boot.mjs +67 -0
- package/dist/esm/dom/boot.mjs.map +1 -0
- package/dist/esm/dom/boot.native.js +75 -0
- package/dist/esm/dom/boot.native.js.map +1 -0
- package/dist/esm/dom/wire.mjs +183 -0
- package/dist/esm/dom/wire.mjs.map +1 -0
- package/dist/esm/dom/wire.native.js +239 -0
- package/dist/esm/dom/wire.native.js.map +1 -0
- package/dist/esm/edges/GraphEdge.mjs +139 -0
- package/dist/esm/edges/GraphEdge.mjs.map +1 -0
- package/dist/esm/edges/GraphEdge.native.js +145 -0
- package/dist/esm/edges/GraphEdge.native.js.map +1 -0
- package/dist/esm/edges/edgeKinds.mjs +25 -0
- package/dist/esm/edges/edgeKinds.mjs.map +1 -0
- package/dist/esm/edges/edgeKinds.native.js +25 -0
- package/dist/esm/edges/edgeKinds.native.js.map +1 -0
- package/dist/esm/edges/edgeStyle.mjs +63 -0
- package/dist/esm/edges/edgeStyle.mjs.map +1 -0
- package/dist/esm/edges/edgeStyle.native.js +65 -0
- package/dist/esm/edges/edgeStyle.native.js.map +1 -0
- package/dist/esm/index.mjs +50 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +50 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/interaction/lassoIntercept.mjs +29 -0
- package/dist/esm/interaction/lassoIntercept.mjs.map +1 -0
- package/dist/esm/interaction/lassoIntercept.native.js +29 -0
- package/dist/esm/interaction/lassoIntercept.native.js.map +1 -0
- package/dist/esm/interaction/legalTargets.mjs +48 -0
- package/dist/esm/interaction/legalTargets.mjs.map +1 -0
- package/dist/esm/interaction/legalTargets.native.js +88 -0
- package/dist/esm/interaction/legalTargets.native.js.map +1 -0
- package/dist/esm/interaction/snapAlignment.mjs +137 -0
- package/dist/esm/interaction/snapAlignment.mjs.map +1 -0
- package/dist/esm/interaction/snapAlignment.native.js +214 -0
- package/dist/esm/interaction/snapAlignment.native.js.map +1 -0
- package/dist/esm/interaction/snapChanges.mjs +184 -0
- package/dist/esm/interaction/snapChanges.mjs.map +1 -0
- package/dist/esm/interaction/snapChanges.native.js +236 -0
- package/dist/esm/interaction/snapChanges.native.js.map +1 -0
- package/dist/esm/interaction/spatialHash.mjs +71 -0
- package/dist/esm/interaction/spatialHash.mjs.map +1 -0
- package/dist/esm/interaction/spatialHash.native.js +136 -0
- package/dist/esm/interaction/spatialHash.native.js.map +1 -0
- package/dist/esm/interaction/useLassoSelect.mjs +231 -0
- package/dist/esm/interaction/useLassoSelect.mjs.map +1 -0
- package/dist/esm/interaction/useLassoSelect.native.js +256 -0
- package/dist/esm/interaction/useLassoSelect.native.js.map +1 -0
- package/dist/esm/knobs/KnobEnvelopeProvider.mjs +51 -0
- package/dist/esm/knobs/KnobEnvelopeProvider.mjs.map +1 -0
- package/dist/esm/knobs/KnobEnvelopeProvider.native.js +56 -0
- package/dist/esm/knobs/KnobEnvelopeProvider.native.js.map +1 -0
- package/dist/esm/knobs/envelope.mjs +29 -0
- package/dist/esm/knobs/envelope.mjs.map +1 -0
- package/dist/esm/knobs/envelope.native.js +45 -0
- package/dist/esm/knobs/envelope.native.js.map +1 -0
- package/dist/esm/knobs/graphKnobs.mjs +14 -0
- package/dist/esm/knobs/graphKnobs.mjs.map +1 -0
- package/dist/esm/knobs/graphKnobs.native.js +15 -0
- package/dist/esm/knobs/graphKnobs.native.js.map +1 -0
- package/dist/esm/knobs/useKnobEnvelope.mjs +83 -0
- package/dist/esm/knobs/useKnobEnvelope.mjs.map +1 -0
- package/dist/esm/knobs/useKnobEnvelope.native.js +112 -0
- package/dist/esm/knobs/useKnobEnvelope.native.js.map +1 -0
- package/dist/esm/layout/dagre.mjs +99 -0
- package/dist/esm/layout/dagre.mjs.map +1 -0
- package/dist/esm/layout/dagre.native.js +230 -0
- package/dist/esm/layout/dagre.native.js.map +1 -0
- package/dist/esm/layout/layout.mjs +57 -0
- package/dist/esm/layout/layout.mjs.map +1 -0
- package/dist/esm/layout/layout.native.js +82 -0
- package/dist/esm/layout/layout.native.js.map +1 -0
- package/dist/esm/layout/runner.mjs +164 -0
- package/dist/esm/layout/runner.mjs.map +1 -0
- package/dist/esm/layout/runner.native.js +214 -0
- package/dist/esm/layout/runner.native.js.map +1 -0
- package/dist/esm/layout/structuredCloneShim.mjs +54 -0
- package/dist/esm/layout/structuredCloneShim.mjs.map +1 -0
- package/dist/esm/layout/structuredCloneShim.native.js +131 -0
- package/dist/esm/layout/structuredCloneShim.native.js.map +1 -0
- package/dist/esm/layout/types.mjs +2 -0
- package/dist/esm/layout/types.mjs.map +1 -0
- package/dist/esm/layout/types.native.js +2 -0
- package/dist/esm/layout/types.native.js.map +1 -0
- package/dist/esm/layout/worker.entry.mjs +33 -0
- package/dist/esm/layout/worker.entry.mjs.map +1 -0
- package/dist/esm/layout/worker.entry.native.js +47 -0
- package/dist/esm/layout/worker.entry.native.js.map +1 -0
- package/dist/esm/layout/worker.generated.mjs +5 -0
- package/dist/esm/layout/worker.generated.mjs.map +1 -0
- package/dist/esm/layout/worker.generated.native.js +5 -0
- package/dist/esm/layout/worker.generated.native.js.map +1 -0
- package/dist/esm/model/commands.mjs +209 -0
- package/dist/esm/model/commands.mjs.map +1 -0
- package/dist/esm/model/commands.native.js +288 -0
- package/dist/esm/model/commands.native.js.map +1 -0
- package/dist/esm/model/connect.mjs +124 -0
- package/dist/esm/model/connect.mjs.map +1 -0
- package/dist/esm/model/connect.native.js +201 -0
- package/dist/esm/model/connect.native.js.map +1 -0
- package/dist/esm/model/document.mjs +2 -0
- package/dist/esm/model/document.mjs.map +1 -0
- package/dist/esm/model/document.native.js +2 -0
- package/dist/esm/model/document.native.js.map +1 -0
- package/dist/esm/model/history.mjs +96 -0
- package/dist/esm/model/history.mjs.map +1 -0
- package/dist/esm/model/history.native.js +150 -0
- package/dist/esm/model/history.native.js.map +1 -0
- package/dist/esm/model/index.mjs +8 -0
- package/dist/esm/model/index.mjs.map +1 -0
- package/dist/esm/model/index.native.js +8 -0
- package/dist/esm/model/index.native.js.map +1 -0
- package/dist/esm/model/schema.mjs +32 -0
- package/dist/esm/model/schema.mjs.map +1 -0
- package/dist/esm/model/schema.native.js +34 -0
- package/dist/esm/model/schema.native.js.map +1 -0
- package/dist/esm/model/select.mjs +49 -0
- package/dist/esm/model/select.mjs.map +1 -0
- package/dist/esm/model/select.native.js +75 -0
- package/dist/esm/model/select.native.js.map +1 -0
- package/dist/esm/model/serialize.mjs +306 -0
- package/dist/esm/model/serialize.mjs.map +1 -0
- package/dist/esm/model/serialize.native.js +345 -0
- package/dist/esm/model/serialize.native.js.map +1 -0
- package/dist/esm/native/DomOnlyStory.mjs +33 -0
- package/dist/esm/native/DomOnlyStory.mjs.map +1 -0
- package/dist/esm/native/DomOnlyStory.native.js +36 -0
- package/dist/esm/native/DomOnlyStory.native.js.map +1 -0
- package/dist/esm/native/GraphToolbar.mjs +76 -0
- package/dist/esm/native/GraphToolbar.mjs.map +1 -0
- package/dist/esm/native/GraphToolbar.native.js +79 -0
- package/dist/esm/native/GraphToolbar.native.js.map +1 -0
- package/dist/esm/native/domEntryRegistry.mjs +12 -0
- package/dist/esm/native/domEntryRegistry.mjs.map +1 -0
- package/dist/esm/native/domEntryRegistry.native.js +12 -0
- package/dist/esm/native/domEntryRegistry.native.js.map +1 -0
- package/dist/esm/native/graphChildren.mjs +18 -0
- package/dist/esm/native/graphChildren.mjs.map +1 -0
- package/dist/esm/native/graphChildren.native.js +20 -0
- package/dist/esm/native/graphChildren.native.js.map +1 -0
- package/dist/esm/nodes/GraphNode.mjs +136 -0
- package/dist/esm/nodes/GraphNode.mjs.map +1 -0
- package/dist/esm/nodes/GraphNode.native.js +178 -0
- package/dist/esm/nodes/GraphNode.native.js.map +1 -0
- package/dist/esm/nodes/GraphPort.mjs +79 -0
- package/dist/esm/nodes/GraphPort.mjs.map +1 -0
- package/dist/esm/nodes/GraphPort.native.js +80 -0
- package/dist/esm/nodes/GraphPort.native.js.map +1 -0
- package/dist/esm/nodes/handleGeometry.mjs +65 -0
- package/dist/esm/nodes/handleGeometry.mjs.map +1 -0
- package/dist/esm/nodes/handleGeometry.native.js +68 -0
- package/dist/esm/nodes/handleGeometry.native.js.map +1 -0
- package/dist/esm/nodes/lod.mjs +13 -0
- package/dist/esm/nodes/lod.mjs.map +1 -0
- package/dist/esm/nodes/lod.native.js +14 -0
- package/dist/esm/nodes/lod.native.js.map +1 -0
- package/dist/esm/nodes/nodeMeasure.mjs +72 -0
- package/dist/esm/nodes/nodeMeasure.mjs.map +1 -0
- package/dist/esm/nodes/nodeMeasure.native.js +95 -0
- package/dist/esm/nodes/nodeMeasure.native.js.map +1 -0
- package/dist/esm/nodes/overviewNode.mjs +49 -0
- package/dist/esm/nodes/overviewNode.mjs.map +1 -0
- package/dist/esm/nodes/overviewNode.native.js +53 -0
- package/dist/esm/nodes/overviewNode.native.js.map +1 -0
- package/dist/esm/react-flow/ConnectionPuck.mjs +96 -0
- package/dist/esm/react-flow/ConnectionPuck.mjs.map +1 -0
- package/dist/esm/react-flow/ConnectionPuck.native.js +114 -0
- package/dist/esm/react-flow/ConnectionPuck.native.js.map +1 -0
- package/dist/esm/react-flow/GraphActions.mjs +21 -0
- package/dist/esm/react-flow/GraphActions.mjs.map +1 -0
- package/dist/esm/react-flow/GraphActions.native.js +22 -0
- package/dist/esm/react-flow/GraphActions.native.js.map +1 -0
- package/dist/esm/react-flow/GraphCommandBridge.mjs +213 -0
- package/dist/esm/react-flow/GraphCommandBridge.mjs.map +1 -0
- package/dist/esm/react-flow/GraphCommandBridge.native.js +244 -0
- package/dist/esm/react-flow/GraphCommandBridge.native.js.map +1 -0
- package/dist/esm/react-flow/GraphNodeHost.mjs +50 -0
- package/dist/esm/react-flow/GraphNodeHost.mjs.map +1 -0
- package/dist/esm/react-flow/GraphNodeHost.native.js +59 -0
- package/dist/esm/react-flow/GraphNodeHost.native.js.map +1 -0
- package/dist/esm/react-flow/GraphPaintProbe.mjs +35 -0
- package/dist/esm/react-flow/GraphPaintProbe.mjs.map +1 -0
- package/dist/esm/react-flow/GraphPaintProbe.native.js +37 -0
- package/dist/esm/react-flow/GraphPaintProbe.native.js.map +1 -0
- package/dist/esm/react-flow/GraphZoomVar.mjs +16 -0
- package/dist/esm/react-flow/GraphZoomVar.mjs.map +1 -0
- package/dist/esm/react-flow/GraphZoomVar.native.js +19 -0
- package/dist/esm/react-flow/GraphZoomVar.native.js.map +1 -0
- package/dist/esm/react-flow/LassoOverlay.mjs +22 -0
- package/dist/esm/react-flow/LassoOverlay.mjs.map +1 -0
- package/dist/esm/react-flow/LassoOverlay.native.js +23 -0
- package/dist/esm/react-flow/LassoOverlay.native.js.map +1 -0
- package/dist/esm/react-flow/NodeGraphWeb.mjs +359 -0
- package/dist/esm/react-flow/NodeGraphWeb.mjs.map +1 -0
- package/dist/esm/react-flow/NodeGraphWeb.native.js +485 -0
- package/dist/esm/react-flow/NodeGraphWeb.native.js.map +1 -0
- package/dist/esm/react-flow/SnapGuides.mjs +60 -0
- package/dist/esm/react-flow/SnapGuides.mjs.map +1 -0
- package/dist/esm/react-flow/SnapGuides.native.js +82 -0
- package/dist/esm/react-flow/SnapGuides.native.js.map +1 -0
- package/dist/esm/react-flow/demoControlBody.mjs +67 -0
- package/dist/esm/react-flow/demoControlBody.mjs.map +1 -0
- package/dist/esm/react-flow/demoControlBody.native.js +75 -0
- package/dist/esm/react-flow/demoControlBody.native.js.map +1 -0
- package/dist/esm/react-flow/demoNodeBody.mjs +91 -0
- package/dist/esm/react-flow/demoNodeBody.mjs.map +1 -0
- package/dist/esm/react-flow/demoNodeBody.native.js +98 -0
- package/dist/esm/react-flow/demoNodeBody.native.js.map +1 -0
- package/dist/esm/react-flow/fixtures.mjs +185 -0
- package/dist/esm/react-flow/fixtures.mjs.map +1 -0
- package/dist/esm/react-flow/fixtures.native.js +192 -0
- package/dist/esm/react-flow/fixtures.native.js.map +1 -0
- package/dist/esm/react-flow/flowAdapter.mjs +94 -0
- package/dist/esm/react-flow/flowAdapter.mjs.map +1 -0
- package/dist/esm/react-flow/flowAdapter.native.js +103 -0
- package/dist/esm/react-flow/flowAdapter.native.js.map +1 -0
- package/dist/esm/react-flow/graphHandle.mjs +3 -0
- package/dist/esm/react-flow/graphHandle.mjs.map +1 -0
- package/dist/esm/react-flow/graphHandle.native.js +3 -0
- package/dist/esm/react-flow/graphHandle.native.js.map +1 -0
- package/dist/esm/react-flow/nodeCensus.mjs +28 -0
- package/dist/esm/react-flow/nodeCensus.mjs.map +1 -0
- package/dist/esm/react-flow/nodeCensus.native.js +49 -0
- package/dist/esm/react-flow/nodeCensus.native.js.map +1 -0
- package/dist/esm/react-flow/useGraphController.mjs +269 -0
- package/dist/esm/react-flow/useGraphController.mjs.map +1 -0
- package/dist/esm/react-flow/useGraphController.native.js +362 -0
- package/dist/esm/react-flow/useGraphController.native.js.map +1 -0
- package/dist/esm/react-flow/xy.mjs +8 -0
- package/dist/esm/react-flow/xy.mjs.map +1 -0
- package/dist/esm/react-flow/xy.native.js +8 -0
- package/dist/esm/react-flow/xy.native.js.map +1 -0
- package/dist/esm/theme/GraphFaces.mjs +88 -0
- package/dist/esm/theme/GraphFaces.mjs.map +1 -0
- package/dist/esm/theme/GraphFaces.native.js +152 -0
- package/dist/esm/theme/GraphFaces.native.js.map +1 -0
- package/dist/esm/theme/GraphVarsStyle.mjs +59 -0
- package/dist/esm/theme/GraphVarsStyle.mjs.map +1 -0
- package/dist/esm/theme/GraphVarsStyle.native.js +68 -0
- package/dist/esm/theme/GraphVarsStyle.native.js.map +1 -0
- package/dist/esm/theme/faces.generated.mjs +23 -0
- package/dist/esm/theme/faces.generated.mjs.map +1 -0
- package/dist/esm/theme/faces.generated.native.js +23 -0
- package/dist/esm/theme/faces.generated.native.js.map +1 -0
- package/dist/esm/theme/faces.mjs +89 -0
- package/dist/esm/theme/faces.mjs.map +1 -0
- package/dist/esm/theme/faces.native.js +98 -0
- package/dist/esm/theme/faces.native.js.map +1 -0
- package/dist/esm/theme/graphVars.mjs +284 -0
- package/dist/esm/theme/graphVars.mjs.map +1 -0
- package/dist/esm/theme/graphVars.native.js +314 -0
- package/dist/esm/theme/graphVars.native.js.map +1 -0
- package/dist/jsx/NodeGraph.mjs +9 -0
- package/dist/jsx/NodeGraph.mjs.map +1 -0
- package/dist/jsx/NodeGraph.native.js +37 -0
- package/dist/jsx/NodeGraph.native.js.map +1 -0
- package/dist/jsx/bench/frameSampler.mjs +255 -0
- package/dist/jsx/bench/frameSampler.mjs.map +1 -0
- package/dist/jsx/bench/frameSampler.native.js +409 -0
- package/dist/jsx/bench/frameSampler.native.js.map +1 -0
- package/dist/jsx/bench/generateGraph.mjs +99 -0
- package/dist/jsx/bench/generateGraph.mjs.map +1 -0
- package/dist/jsx/bench/generateGraph.native.js +128 -0
- package/dist/jsx/bench/generateGraph.native.js.map +1 -0
- package/dist/jsx/diagnostics/GraphDiagnostics.mjs +128 -0
- package/dist/jsx/diagnostics/GraphDiagnostics.mjs.map +1 -0
- package/dist/jsx/diagnostics/GraphDiagnostics.native.js +166 -0
- package/dist/jsx/diagnostics/GraphDiagnostics.native.js.map +1 -0
- package/dist/jsx/diagnostics/LiveGraphDiagnostics.mjs +76 -0
- package/dist/jsx/diagnostics/LiveGraphDiagnostics.mjs.map +1 -0
- package/dist/jsx/diagnostics/LiveGraphDiagnostics.native.js +106 -0
- package/dist/jsx/diagnostics/LiveGraphDiagnostics.native.js.map +1 -0
- package/dist/jsx/diagnostics/fromWire.mjs +23 -0
- package/dist/jsx/diagnostics/fromWire.mjs.map +1 -0
- package/dist/jsx/diagnostics/fromWire.native.js +51 -0
- package/dist/jsx/diagnostics/fromWire.native.js.map +1 -0
- package/dist/jsx/diagnostics/lastError.mjs +39 -0
- package/dist/jsx/diagnostics/lastError.mjs.map +1 -0
- package/dist/jsx/diagnostics/lastError.native.js +75 -0
- package/dist/jsx/diagnostics/lastError.native.js.map +1 -0
- package/dist/jsx/diagnostics/types.mjs +2 -0
- package/dist/jsx/diagnostics/types.mjs.map +1 -0
- package/dist/jsx/diagnostics/types.native.js +21 -0
- package/dist/jsx/diagnostics/types.native.js.map +1 -0
- package/dist/jsx/diagnostics/useGraphDiagnostics.mjs +44 -0
- package/dist/jsx/diagnostics/useGraphDiagnostics.mjs.map +1 -0
- package/dist/jsx/diagnostics/useGraphDiagnostics.native.js +75 -0
- package/dist/jsx/diagnostics/useGraphDiagnostics.native.js.map +1 -0
- package/dist/jsx/dom/GraphDomLayout.mjs +11 -0
- package/dist/jsx/dom/GraphDomLayout.mjs.map +1 -0
- package/dist/jsx/dom/GraphDomLayout.native.js +40 -0
- package/dist/jsx/dom/GraphDomLayout.native.js.map +1 -0
- package/dist/jsx/dom/boot.mjs +67 -0
- package/dist/jsx/dom/boot.mjs.map +1 -0
- package/dist/jsx/dom/boot.native.js +111 -0
- package/dist/jsx/dom/boot.native.js.map +1 -0
- package/dist/jsx/dom/wire.mjs +183 -0
- package/dist/jsx/dom/wire.mjs.map +1 -0
- package/dist/jsx/dom/wire.native.js +274 -0
- package/dist/jsx/dom/wire.native.js.map +1 -0
- package/dist/jsx/edges/GraphEdge.mjs +139 -0
- package/dist/jsx/edges/GraphEdge.mjs.map +1 -0
- package/dist/jsx/edges/GraphEdge.native.js +178 -0
- package/dist/jsx/edges/GraphEdge.native.js.map +1 -0
- package/dist/jsx/edges/edgeKinds.mjs +25 -0
- package/dist/jsx/edges/edgeKinds.mjs.map +1 -0
- package/dist/jsx/edges/edgeKinds.native.js +54 -0
- package/dist/jsx/edges/edgeKinds.native.js.map +1 -0
- package/dist/jsx/edges/edgeStyle.mjs +63 -0
- package/dist/jsx/edges/edgeStyle.mjs.map +1 -0
- package/dist/jsx/edges/edgeStyle.native.js +99 -0
- package/dist/jsx/edges/edgeStyle.native.js.map +1 -0
- package/dist/jsx/index.js +50 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/index.mjs +50 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +200 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/dist/jsx/interaction/lassoIntercept.mjs +29 -0
- package/dist/jsx/interaction/lassoIntercept.mjs.map +1 -0
- package/dist/jsx/interaction/lassoIntercept.native.js +57 -0
- package/dist/jsx/interaction/lassoIntercept.native.js.map +1 -0
- package/dist/jsx/interaction/legalTargets.mjs +48 -0
- package/dist/jsx/interaction/legalTargets.mjs.map +1 -0
- package/dist/jsx/interaction/legalTargets.native.js +118 -0
- package/dist/jsx/interaction/legalTargets.native.js.map +1 -0
- package/dist/jsx/interaction/snapAlignment.mjs +137 -0
- package/dist/jsx/interaction/snapAlignment.mjs.map +1 -0
- package/dist/jsx/interaction/snapAlignment.native.js +245 -0
- package/dist/jsx/interaction/snapAlignment.native.js.map +1 -0
- package/dist/jsx/interaction/snapChanges.mjs +184 -0
- package/dist/jsx/interaction/snapChanges.mjs.map +1 -0
- package/dist/jsx/interaction/snapChanges.native.js +269 -0
- package/dist/jsx/interaction/snapChanges.native.js.map +1 -0
- package/dist/jsx/interaction/spatialHash.mjs +71 -0
- package/dist/jsx/interaction/spatialHash.mjs.map +1 -0
- package/dist/jsx/interaction/spatialHash.native.js +165 -0
- package/dist/jsx/interaction/spatialHash.native.js.map +1 -0
- package/dist/jsx/interaction/useLassoSelect.mjs +231 -0
- package/dist/jsx/interaction/useLassoSelect.mjs.map +1 -0
- package/dist/jsx/interaction/useLassoSelect.native.js +287 -0
- package/dist/jsx/interaction/useLassoSelect.native.js.map +1 -0
- package/dist/jsx/knobs/KnobEnvelopeProvider.mjs +51 -0
- package/dist/jsx/knobs/KnobEnvelopeProvider.mjs.map +1 -0
- package/dist/jsx/knobs/KnobEnvelopeProvider.native.js +85 -0
- package/dist/jsx/knobs/KnobEnvelopeProvider.native.js.map +1 -0
- package/dist/jsx/knobs/envelope.mjs +29 -0
- package/dist/jsx/knobs/envelope.mjs.map +1 -0
- package/dist/jsx/knobs/envelope.native.js +78 -0
- package/dist/jsx/knobs/envelope.native.js.map +1 -0
- package/dist/jsx/knobs/graphKnobs.mjs +14 -0
- package/dist/jsx/knobs/graphKnobs.mjs.map +1 -0
- package/dist/jsx/knobs/graphKnobs.native.js +43 -0
- package/dist/jsx/knobs/graphKnobs.native.js.map +1 -0
- package/dist/jsx/knobs/useKnobEnvelope.mjs +83 -0
- package/dist/jsx/knobs/useKnobEnvelope.mjs.map +1 -0
- package/dist/jsx/knobs/useKnobEnvelope.native.js +140 -0
- package/dist/jsx/knobs/useKnobEnvelope.native.js.map +1 -0
- package/dist/jsx/layout/dagre.mjs +99 -0
- package/dist/jsx/layout/dagre.mjs.map +1 -0
- package/dist/jsx/layout/dagre.native.js +259 -0
- package/dist/jsx/layout/dagre.native.js.map +1 -0
- package/dist/jsx/layout/layout.mjs +57 -0
- package/dist/jsx/layout/layout.mjs.map +1 -0
- package/dist/jsx/layout/layout.native.js +112 -0
- package/dist/jsx/layout/layout.native.js.map +1 -0
- package/dist/jsx/layout/runner.mjs +164 -0
- package/dist/jsx/layout/runner.mjs.map +1 -0
- package/dist/jsx/layout/runner.native.js +247 -0
- package/dist/jsx/layout/runner.native.js.map +1 -0
- package/dist/jsx/layout/structuredCloneShim.mjs +54 -0
- package/dist/jsx/layout/structuredCloneShim.mjs.map +1 -0
- package/dist/jsx/layout/structuredCloneShim.native.js +160 -0
- package/dist/jsx/layout/structuredCloneShim.native.js.map +1 -0
- package/dist/jsx/layout/types.mjs +2 -0
- package/dist/jsx/layout/types.mjs.map +1 -0
- package/dist/jsx/layout/types.native.js +21 -0
- package/dist/jsx/layout/types.native.js.map +1 -0
- package/dist/jsx/layout/worker.entry.mjs +33 -0
- package/dist/jsx/layout/worker.entry.mjs.map +1 -0
- package/dist/jsx/layout/worker.entry.native.js +75 -0
- package/dist/jsx/layout/worker.entry.native.js.map +1 -0
- package/dist/jsx/layout/worker.generated.mjs +5 -0
- package/dist/jsx/layout/worker.generated.mjs.map +1 -0
- package/dist/jsx/layout/worker.generated.native.js +35 -0
- package/dist/jsx/layout/worker.generated.native.js.map +1 -0
- package/dist/jsx/model/commands.mjs +209 -0
- package/dist/jsx/model/commands.mjs.map +1 -0
- package/dist/jsx/model/commands.native.js +317 -0
- package/dist/jsx/model/commands.native.js.map +1 -0
- package/dist/jsx/model/connect.mjs +124 -0
- package/dist/jsx/model/connect.mjs.map +1 -0
- package/dist/jsx/model/connect.native.js +239 -0
- package/dist/jsx/model/connect.native.js.map +1 -0
- package/dist/jsx/model/document.mjs +2 -0
- package/dist/jsx/model/document.mjs.map +1 -0
- package/dist/jsx/model/document.native.js +21 -0
- package/dist/jsx/model/document.native.js.map +1 -0
- package/dist/jsx/model/history.mjs +96 -0
- package/dist/jsx/model/history.mjs.map +1 -0
- package/dist/jsx/model/history.native.js +178 -0
- package/dist/jsx/model/history.native.js.map +1 -0
- package/dist/jsx/model/index.mjs +8 -0
- package/dist/jsx/model/index.mjs.map +1 -0
- package/dist/jsx/model/index.native.js +63 -0
- package/dist/jsx/model/index.native.js.map +1 -0
- package/dist/jsx/model/schema.mjs +32 -0
- package/dist/jsx/model/schema.mjs.map +1 -0
- package/dist/jsx/model/schema.native.js +68 -0
- package/dist/jsx/model/schema.native.js.map +1 -0
- package/dist/jsx/model/select.mjs +49 -0
- package/dist/jsx/model/select.mjs.map +1 -0
- package/dist/jsx/model/select.native.js +107 -0
- package/dist/jsx/model/select.native.js.map +1 -0
- package/dist/jsx/model/serialize.mjs +306 -0
- package/dist/jsx/model/serialize.mjs.map +1 -0
- package/dist/jsx/model/serialize.native.js +374 -0
- package/dist/jsx/model/serialize.native.js.map +1 -0
- package/dist/jsx/native/DomOnlyStory.mjs +33 -0
- package/dist/jsx/native/DomOnlyStory.mjs.map +1 -0
- package/dist/jsx/native/DomOnlyStory.native.js +66 -0
- package/dist/jsx/native/DomOnlyStory.native.js.map +1 -0
- package/dist/jsx/native/GraphToolbar.mjs +76 -0
- package/dist/jsx/native/GraphToolbar.mjs.map +1 -0
- package/dist/jsx/native/GraphToolbar.native.js +107 -0
- package/dist/jsx/native/GraphToolbar.native.js.map +1 -0
- package/dist/jsx/native/domEntryRegistry.mjs +12 -0
- package/dist/jsx/native/domEntryRegistry.mjs.map +1 -0
- package/dist/jsx/native/domEntryRegistry.native.js +42 -0
- package/dist/jsx/native/domEntryRegistry.native.js.map +1 -0
- package/dist/jsx/native/graphChildren.mjs +18 -0
- package/dist/jsx/native/graphChildren.mjs.map +1 -0
- package/dist/jsx/native/graphChildren.native.js +50 -0
- package/dist/jsx/native/graphChildren.native.js.map +1 -0
- package/dist/jsx/nodes/GraphNode.mjs +136 -0
- package/dist/jsx/nodes/GraphNode.mjs.map +1 -0
- package/dist/jsx/nodes/GraphNode.native.js +206 -0
- package/dist/jsx/nodes/GraphNode.native.js.map +1 -0
- package/dist/jsx/nodes/GraphPort.mjs +79 -0
- package/dist/jsx/nodes/GraphPort.mjs.map +1 -0
- package/dist/jsx/nodes/GraphPort.native.js +108 -0
- package/dist/jsx/nodes/GraphPort.native.js.map +1 -0
- package/dist/jsx/nodes/handleGeometry.mjs +65 -0
- package/dist/jsx/nodes/handleGeometry.mjs.map +1 -0
- package/dist/jsx/nodes/handleGeometry.native.js +104 -0
- package/dist/jsx/nodes/handleGeometry.native.js.map +1 -0
- package/dist/jsx/nodes/lod.mjs +13 -0
- package/dist/jsx/nodes/lod.mjs.map +1 -0
- package/dist/jsx/nodes/lod.native.js +45 -0
- package/dist/jsx/nodes/lod.native.js.map +1 -0
- package/dist/jsx/nodes/nodeMeasure.mjs +72 -0
- package/dist/jsx/nodes/nodeMeasure.mjs.map +1 -0
- package/dist/jsx/nodes/nodeMeasure.native.js +134 -0
- package/dist/jsx/nodes/nodeMeasure.native.js.map +1 -0
- package/dist/jsx/nodes/overviewNode.mjs +49 -0
- package/dist/jsx/nodes/overviewNode.mjs.map +1 -0
- package/dist/jsx/nodes/overviewNode.native.js +81 -0
- package/dist/jsx/nodes/overviewNode.native.js.map +1 -0
- package/dist/jsx/react-flow/ConnectionPuck.mjs +96 -0
- package/dist/jsx/react-flow/ConnectionPuck.mjs.map +1 -0
- package/dist/jsx/react-flow/ConnectionPuck.native.js +143 -0
- package/dist/jsx/react-flow/ConnectionPuck.native.js.map +1 -0
- package/dist/jsx/react-flow/GraphActions.mjs +21 -0
- package/dist/jsx/react-flow/GraphActions.mjs.map +1 -0
- package/dist/jsx/react-flow/GraphActions.native.js +51 -0
- package/dist/jsx/react-flow/GraphActions.native.js.map +1 -0
- package/dist/jsx/react-flow/GraphCommandBridge.mjs +213 -0
- package/dist/jsx/react-flow/GraphCommandBridge.mjs.map +1 -0
- package/dist/jsx/react-flow/GraphCommandBridge.native.js +272 -0
- package/dist/jsx/react-flow/GraphCommandBridge.native.js.map +1 -0
- package/dist/jsx/react-flow/GraphNodeHost.mjs +50 -0
- package/dist/jsx/react-flow/GraphNodeHost.mjs.map +1 -0
- package/dist/jsx/react-flow/GraphNodeHost.native.js +89 -0
- package/dist/jsx/react-flow/GraphNodeHost.native.js.map +1 -0
- package/dist/jsx/react-flow/GraphPaintProbe.mjs +35 -0
- package/dist/jsx/react-flow/GraphPaintProbe.mjs.map +1 -0
- package/dist/jsx/react-flow/GraphPaintProbe.native.js +65 -0
- package/dist/jsx/react-flow/GraphPaintProbe.native.js.map +1 -0
- package/dist/jsx/react-flow/GraphZoomVar.mjs +16 -0
- package/dist/jsx/react-flow/GraphZoomVar.mjs.map +1 -0
- package/dist/jsx/react-flow/GraphZoomVar.native.js +48 -0
- package/dist/jsx/react-flow/GraphZoomVar.native.js.map +1 -0
- package/dist/jsx/react-flow/LassoOverlay.mjs +22 -0
- package/dist/jsx/react-flow/LassoOverlay.mjs.map +1 -0
- package/dist/jsx/react-flow/LassoOverlay.native.js +51 -0
- package/dist/jsx/react-flow/LassoOverlay.native.js.map +1 -0
- package/dist/jsx/react-flow/NodeGraphWeb.mjs +359 -0
- package/dist/jsx/react-flow/NodeGraphWeb.mjs.map +1 -0
- package/dist/jsx/react-flow/NodeGraphWeb.native.js +515 -0
- package/dist/jsx/react-flow/NodeGraphWeb.native.js.map +1 -0
- package/dist/jsx/react-flow/SnapGuides.mjs +60 -0
- package/dist/jsx/react-flow/SnapGuides.mjs.map +1 -0
- package/dist/jsx/react-flow/SnapGuides.native.js +114 -0
- package/dist/jsx/react-flow/SnapGuides.native.js.map +1 -0
- package/dist/jsx/react-flow/demoControlBody.mjs +67 -0
- package/dist/jsx/react-flow/demoControlBody.mjs.map +1 -0
- package/dist/jsx/react-flow/demoControlBody.native.js +104 -0
- package/dist/jsx/react-flow/demoControlBody.native.js.map +1 -0
- package/dist/jsx/react-flow/demoNodeBody.mjs +91 -0
- package/dist/jsx/react-flow/demoNodeBody.mjs.map +1 -0
- package/dist/jsx/react-flow/demoNodeBody.native.js +131 -0
- package/dist/jsx/react-flow/demoNodeBody.native.js.map +1 -0
- package/dist/jsx/react-flow/fixtures.mjs +185 -0
- package/dist/jsx/react-flow/fixtures.mjs.map +1 -0
- package/dist/jsx/react-flow/fixtures.native.js +225 -0
- package/dist/jsx/react-flow/fixtures.native.js.map +1 -0
- package/dist/jsx/react-flow/flowAdapter.mjs +94 -0
- package/dist/jsx/react-flow/flowAdapter.mjs.map +1 -0
- package/dist/jsx/react-flow/flowAdapter.native.js +133 -0
- package/dist/jsx/react-flow/flowAdapter.native.js.map +1 -0
- package/dist/jsx/react-flow/graphHandle.mjs +3 -0
- package/dist/jsx/react-flow/graphHandle.mjs.map +1 -0
- package/dist/jsx/react-flow/graphHandle.native.js +31 -0
- package/dist/jsx/react-flow/graphHandle.native.js.map +1 -0
- package/dist/jsx/react-flow/nodeCensus.mjs +28 -0
- package/dist/jsx/react-flow/nodeCensus.mjs.map +1 -0
- package/dist/jsx/react-flow/nodeCensus.native.js +80 -0
- package/dist/jsx/react-flow/nodeCensus.native.js.map +1 -0
- package/dist/jsx/react-flow/useGraphController.mjs +269 -0
- package/dist/jsx/react-flow/useGraphController.mjs.map +1 -0
- package/dist/jsx/react-flow/useGraphController.native.js +393 -0
- package/dist/jsx/react-flow/useGraphController.native.js.map +1 -0
- package/dist/jsx/react-flow/xy.mjs +8 -0
- package/dist/jsx/react-flow/xy.mjs.map +1 -0
- package/dist/jsx/react-flow/xy.native.js +63 -0
- package/dist/jsx/react-flow/xy.native.js.map +1 -0
- package/dist/jsx/theme/GraphFaces.mjs +88 -0
- package/dist/jsx/theme/GraphFaces.mjs.map +1 -0
- package/dist/jsx/theme/GraphFaces.native.js +181 -0
- package/dist/jsx/theme/GraphFaces.native.js.map +1 -0
- package/dist/jsx/theme/GraphVarsStyle.mjs +59 -0
- package/dist/jsx/theme/GraphVarsStyle.mjs.map +1 -0
- package/dist/jsx/theme/GraphVarsStyle.native.js +100 -0
- package/dist/jsx/theme/GraphVarsStyle.native.js.map +1 -0
- package/dist/jsx/theme/faces.generated.mjs +23 -0
- package/dist/jsx/theme/faces.generated.mjs.map +1 -0
- package/dist/jsx/theme/faces.generated.native.js +51 -0
- package/dist/jsx/theme/faces.generated.native.js.map +1 -0
- package/dist/jsx/theme/faces.mjs +89 -0
- package/dist/jsx/theme/faces.mjs.map +1 -0
- package/dist/jsx/theme/faces.native.js +133 -0
- package/dist/jsx/theme/faces.native.js.map +1 -0
- package/dist/jsx/theme/graphVars.mjs +284 -0
- package/dist/jsx/theme/graphVars.mjs.map +1 -0
- package/dist/jsx/theme/graphVars.native.js +351 -0
- package/dist/jsx/theme/graphVars.native.js.map +1 -0
- package/dom-inner.ts +21 -0
- package/metro/index.js +174 -0
- package/metro/index.spec.mjs +235 -0
- package/model.ts +9 -0
- package/package.json +137 -0
- package/src/NodeGraph.native.spec.ts +164 -0
- package/src/NodeGraph.native.tsx +278 -0
- package/src/NodeGraph.tsx +27 -0
- package/src/bench/Perf200.stories.tsx +351 -0
- package/src/bench/frameSampler.spec.ts +467 -0
- package/src/bench/frameSampler.ts +516 -0
- package/src/bench/generateGraph.ts +138 -0
- package/src/diagnostics/GraphDiagnostics.spec.tsx +206 -0
- package/src/diagnostics/GraphDiagnostics.stories.tsx +194 -0
- package/src/diagnostics/GraphDiagnostics.tsx +140 -0
- package/src/diagnostics/LiveGraphDiagnostics.native.tsx +61 -0
- package/src/diagnostics/LiveGraphDiagnostics.tsx +121 -0
- package/src/diagnostics/deliberateBreak.ts +35 -0
- package/src/diagnostics/fromWire.spec.ts +74 -0
- package/src/diagnostics/fromWire.ts +48 -0
- package/src/diagnostics/lastError.ts +91 -0
- package/src/diagnostics/types.ts +103 -0
- package/src/diagnostics/useGraphDiagnostics.spec.tsx +199 -0
- package/src/diagnostics/useGraphDiagnostics.ts +85 -0
- package/src/dom/GraphDomLayout.spec.tsx +56 -0
- package/src/dom/GraphDomLayout.tsx +49 -0
- package/src/dom/NodeGraphDom.ts +43 -0
- package/src/dom/NodeGraphDomInner.tsx +524 -0
- package/src/dom/NodeGraphDomShell.ts +402 -0
- package/src/dom/boot.spec.ts +90 -0
- package/src/dom/boot.ts +153 -0
- package/src/dom/domEntry.spec.ts +481 -0
- package/src/dom/importGraph.spec.ts +287 -0
- package/src/dom/schemaRegistry.spec.tsx +182 -0
- package/src/dom/wire.spec.ts +486 -0
- package/src/dom/wire.ts +493 -0
- package/src/edges/Edges.stories.tsx +271 -0
- package/src/edges/GraphEdge.tsx +198 -0
- package/src/edges/edgeKinds.ts +51 -0
- package/src/edges/edgeStyle.spec.ts +295 -0
- package/src/edges/edgeStyle.ts +124 -0
- package/src/index.native.ts +147 -0
- package/src/index.ts +243 -0
- package/src/interaction/Lasso.stories.tsx +198 -0
- package/src/interaction/Snapping.stories.tsx +189 -0
- package/src/interaction/lassoIntercept.spec.ts +166 -0
- package/src/interaction/lassoIntercept.ts +81 -0
- package/src/interaction/legalTargets.spec.ts +304 -0
- package/src/interaction/legalTargets.ts +91 -0
- package/src/interaction/snapAlignment.spec.ts +412 -0
- package/src/interaction/snapAlignment.ts +209 -0
- package/src/interaction/snapChanges.spec.ts +273 -0
- package/src/interaction/snapChanges.ts +292 -0
- package/src/interaction/spatialHash.spec.ts +168 -0
- package/src/interaction/spatialHash.ts +128 -0
- package/src/interaction/useLassoSelect.spec.tsx +487 -0
- package/src/interaction/useLassoSelect.ts +489 -0
- package/src/knobs/KnobEnvelopeProvider.tsx +110 -0
- package/src/knobs/envelope.spec.tsx +371 -0
- package/src/knobs/envelope.ts +130 -0
- package/src/knobs/envelopeTheme.spec.ts +58 -0
- package/src/knobs/graphKnobs.ts +36 -0
- package/src/knobs/useKnobEnvelope.ts +152 -0
- package/src/layout/AutoLayout.stories.tsx +338 -0
- package/src/layout/dagre.ts +149 -0
- package/src/layout/layout.spec.ts +244 -0
- package/src/layout/layout.ts +121 -0
- package/src/layout/runner.spec.ts +365 -0
- package/src/layout/runner.ts +256 -0
- package/src/layout/structuredCloneShim.spec.ts +103 -0
- package/src/layout/structuredCloneShim.ts +106 -0
- package/src/layout/types.ts +112 -0
- package/src/layout/worker.entry.ts +74 -0
- package/src/layout/worker.generated.spec.ts +157 -0
- package/src/layout/worker.generated.ts +32 -0
- package/src/model/commands.spec.ts +214 -0
- package/src/model/commands.ts +209 -0
- package/src/model/connect.spec.ts +444 -0
- package/src/model/connect.ts +281 -0
- package/src/model/document.ts +121 -0
- package/src/model/history.spec.ts +278 -0
- package/src/model/history.ts +153 -0
- package/src/model/index.ts +74 -0
- package/src/model/schema.ts +177 -0
- package/src/model/select.spec.ts +220 -0
- package/src/model/select.ts +88 -0
- package/src/model/serialize.spec.ts +393 -0
- package/src/model/serialize.ts +395 -0
- package/src/native/DomOnlyStory.tsx +72 -0
- package/src/native/GraphFallback.native.tsx +123 -0
- package/src/native/GraphToolbar.tsx +171 -0
- package/src/native/NodeGraph.native.tsx +505 -0
- package/src/native/domEntryRegistry.spec.ts +66 -0
- package/src/native/domEntryRegistry.ts +45 -0
- package/src/native/graphChildren.spec.ts +67 -0
- package/src/native/graphChildren.ts +62 -0
- package/src/native/graphFallback.spec.ts +49 -0
- package/src/native/graphHandleRemount.spec.tsx +189 -0
- package/src/nodes/GraphNode.spec.tsx +270 -0
- package/src/nodes/GraphNode.stories.tsx +451 -0
- package/src/nodes/GraphNode.tsx +240 -0
- package/src/nodes/GraphPort.spec.tsx +442 -0
- package/src/nodes/GraphPort.stories.tsx +407 -0
- package/src/nodes/GraphPort.tsx +117 -0
- package/src/nodes/Overview.stories.tsx +237 -0
- package/src/nodes/handleGeometry.spec.ts +161 -0
- package/src/nodes/handleGeometry.ts +232 -0
- package/src/nodes/lod.spec.tsx +300 -0
- package/src/nodes/lod.ts +69 -0
- package/src/nodes/nodeMeasure.spec.ts +245 -0
- package/src/nodes/nodeMeasure.ts +216 -0
- package/src/nodes/overviewNode.tsx +71 -0
- package/src/packageShape.spec.ts +145 -0
- package/src/react-flow/ConnectionPuck.spec.tsx +242 -0
- package/src/react-flow/ConnectionPuck.tsx +175 -0
- package/src/react-flow/GraphActions.tsx +64 -0
- package/src/react-flow/GraphCommandBridge.spec.tsx +130 -0
- package/src/react-flow/GraphCommandBridge.tsx +288 -0
- package/src/react-flow/GraphNodeHost.tsx +101 -0
- package/src/react-flow/GraphPaintProbe.spec.tsx +116 -0
- package/src/react-flow/GraphPaintProbe.tsx +65 -0
- package/src/react-flow/GraphZoomVar.tsx +48 -0
- package/src/react-flow/LassoOverlay.tsx +59 -0
- package/src/react-flow/NodeGraphWeb.spec.tsx +441 -0
- package/src/react-flow/NodeGraphWeb.stories.tsx +260 -0
- package/src/react-flow/NodeGraphWeb.tsx +645 -0
- package/src/react-flow/SnapGuides.spec.tsx +161 -0
- package/src/react-flow/SnapGuides.tsx +113 -0
- package/src/react-flow/demoControlBody.tsx +96 -0
- package/src/react-flow/demoNodeBody.tsx +121 -0
- package/src/react-flow/fixtures.ts +185 -0
- package/src/react-flow/flowAdapter.ts +170 -0
- package/src/react-flow/graphHandle.ts +112 -0
- package/src/react-flow/nodeCensus.spec.ts +66 -0
- package/src/react-flow/nodeCensus.ts +69 -0
- package/src/react-flow/useGraphController.spec.tsx +849 -0
- package/src/react-flow/useGraphController.ts +473 -0
- package/src/react-flow/xy.spec.ts +182 -0
- package/src/react-flow/xy.ts +131 -0
- package/src/theme/GraphFaces.spec.tsx +101 -0
- package/src/theme/GraphFaces.tsx +218 -0
- package/src/theme/GraphVarsStyle.tsx +113 -0
- package/src/theme/faces.generated.ts +53 -0
- package/src/theme/faces.spec.ts +228 -0
- package/src/theme/faces.ts +275 -0
- package/src/theme/graphCss.spec.ts +111 -0
- package/src/theme/graphVars.spec.ts +322 -0
- package/src/theme/graphVars.ts +441 -0
- package/types/NodeGraph.d.ts +17 -0
- package/types/NodeGraph.d.ts.map +1 -0
- package/types/NodeGraph.native.d.ts +142 -0
- package/types/NodeGraph.native.d.ts.map +1 -0
- package/types/bench/frameSampler.d.ts +235 -0
- package/types/bench/frameSampler.d.ts.map +1 -0
- package/types/bench/generateGraph.d.ts +43 -0
- package/types/bench/generateGraph.d.ts.map +1 -0
- package/types/diagnostics/GraphDiagnostics.d.ts +30 -0
- package/types/diagnostics/GraphDiagnostics.d.ts.map +1 -0
- package/types/diagnostics/LiveGraphDiagnostics.d.ts +27 -0
- package/types/diagnostics/LiveGraphDiagnostics.d.ts.map +1 -0
- package/types/diagnostics/LiveGraphDiagnostics.native.d.ts +25 -0
- package/types/diagnostics/LiveGraphDiagnostics.native.d.ts.map +1 -0
- package/types/diagnostics/deliberateBreak.d.ts +28 -0
- package/types/diagnostics/deliberateBreak.d.ts.map +1 -0
- package/types/diagnostics/fromWire.d.ts +17 -0
- package/types/diagnostics/fromWire.d.ts.map +1 -0
- package/types/diagnostics/lastError.d.ts +50 -0
- package/types/diagnostics/lastError.d.ts.map +1 -0
- package/types/diagnostics/types.d.ts +101 -0
- package/types/diagnostics/types.d.ts.map +1 -0
- package/types/diagnostics/useGraphDiagnostics.d.ts +23 -0
- package/types/diagnostics/useGraphDiagnostics.d.ts.map +1 -0
- package/types/dom/GraphDomLayout.d.ts +40 -0
- package/types/dom/GraphDomLayout.d.ts.map +1 -0
- package/types/dom/NodeGraphDom.d.ts +4 -0
- package/types/dom/NodeGraphDom.d.ts.map +1 -0
- package/types/dom/NodeGraphDomInner.d.ts +26 -0
- package/types/dom/NodeGraphDomInner.d.ts.map +1 -0
- package/types/dom/NodeGraphDomShell.d.ts +221 -0
- package/types/dom/NodeGraphDomShell.d.ts.map +1 -0
- package/types/dom/boot.d.ts +90 -0
- package/types/dom/boot.d.ts.map +1 -0
- package/types/dom/wire.d.ts +355 -0
- package/types/dom/wire.d.ts.map +1 -0
- package/types/edges/GraphEdge.d.ts +59 -0
- package/types/edges/GraphEdge.d.ts.map +1 -0
- package/types/edges/edgeKinds.d.ts +43 -0
- package/types/edges/edgeKinds.d.ts.map +1 -0
- package/types/edges/edgeStyle.d.ts +79 -0
- package/types/edges/edgeStyle.d.ts.map +1 -0
- package/types/index.d.ts +123 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.native.d.ts +86 -0
- package/types/index.native.d.ts.map +1 -0
- package/types/interaction/lassoIntercept.d.ts +58 -0
- package/types/interaction/lassoIntercept.d.ts.map +1 -0
- package/types/interaction/legalTargets.d.ts +59 -0
- package/types/interaction/legalTargets.d.ts.map +1 -0
- package/types/interaction/snapAlignment.d.ts +85 -0
- package/types/interaction/snapAlignment.d.ts.map +1 -0
- package/types/interaction/snapChanges.d.ts +133 -0
- package/types/interaction/snapChanges.d.ts.map +1 -0
- package/types/interaction/spatialHash.d.ts +37 -0
- package/types/interaction/spatialHash.d.ts.map +1 -0
- package/types/interaction/useLassoSelect.d.ts +151 -0
- package/types/interaction/useLassoSelect.d.ts.map +1 -0
- package/types/knobs/KnobEnvelopeProvider.d.ts +45 -0
- package/types/knobs/KnobEnvelopeProvider.d.ts.map +1 -0
- package/types/knobs/envelope.d.ts +99 -0
- package/types/knobs/envelope.d.ts.map +1 -0
- package/types/knobs/graphKnobs.d.ts +26 -0
- package/types/knobs/graphKnobs.d.ts.map +1 -0
- package/types/knobs/useKnobEnvelope.d.ts +43 -0
- package/types/knobs/useKnobEnvelope.d.ts.map +1 -0
- package/types/layout/dagre.d.ts +39 -0
- package/types/layout/dagre.d.ts.map +1 -0
- package/types/layout/layout.d.ts +58 -0
- package/types/layout/layout.d.ts.map +1 -0
- package/types/layout/runner.d.ts +60 -0
- package/types/layout/runner.d.ts.map +1 -0
- package/types/layout/structuredCloneShim.d.ts +44 -0
- package/types/layout/structuredCloneShim.d.ts.map +1 -0
- package/types/layout/types.d.ts +113 -0
- package/types/layout/types.d.ts.map +1 -0
- package/types/layout/worker.entry.d.ts +34 -0
- package/types/layout/worker.entry.d.ts.map +1 -0
- package/types/layout/worker.generated.d.ts +26 -0
- package/types/layout/worker.generated.d.ts.map +1 -0
- package/types/model/commands.d.ts +49 -0
- package/types/model/commands.d.ts.map +1 -0
- package/types/model/connect.d.ts +83 -0
- package/types/model/connect.d.ts.map +1 -0
- package/types/model/document.d.ts +111 -0
- package/types/model/document.d.ts.map +1 -0
- package/types/model/history.d.ts +40 -0
- package/types/model/history.d.ts.map +1 -0
- package/types/model/index.d.ts +20 -0
- package/types/model/index.d.ts.map +1 -0
- package/types/model/schema.d.ts +136 -0
- package/types/model/schema.d.ts.map +1 -0
- package/types/model/select.d.ts +41 -0
- package/types/model/select.d.ts.map +1 -0
- package/types/model/serialize.d.ts +33 -0
- package/types/model/serialize.d.ts.map +1 -0
- package/types/native/DomOnlyStory.d.ts +49 -0
- package/types/native/DomOnlyStory.d.ts.map +1 -0
- package/types/native/GraphFallback.native.d.ts +41 -0
- package/types/native/GraphFallback.native.d.ts.map +1 -0
- package/types/native/GraphToolbar.d.ts +75 -0
- package/types/native/GraphToolbar.d.ts.map +1 -0
- package/types/native/NodeGraph.native.d.ts +128 -0
- package/types/native/NodeGraph.native.d.ts.map +1 -0
- package/types/native/domEntryRegistry.d.ts +33 -0
- package/types/native/domEntryRegistry.d.ts.map +1 -0
- package/types/native/graphChildren.d.ts +36 -0
- package/types/native/graphChildren.d.ts.map +1 -0
- package/types/nodes/GraphNode.d.ts +48 -0
- package/types/nodes/GraphNode.d.ts.map +1 -0
- package/types/nodes/GraphPort.d.ts +41 -0
- package/types/nodes/GraphPort.d.ts.map +1 -0
- package/types/nodes/handleGeometry.d.ts +183 -0
- package/types/nodes/handleGeometry.d.ts.map +1 -0
- package/types/nodes/lod.d.ts +55 -0
- package/types/nodes/lod.d.ts.map +1 -0
- package/types/nodes/nodeMeasure.d.ts +146 -0
- package/types/nodes/nodeMeasure.d.ts.map +1 -0
- package/types/nodes/overviewNode.d.ts +34 -0
- package/types/nodes/overviewNode.d.ts.map +1 -0
- package/types/react-flow/ConnectionPuck.d.ts +62 -0
- package/types/react-flow/ConnectionPuck.d.ts.map +1 -0
- package/types/react-flow/GraphActions.d.ts +45 -0
- package/types/react-flow/GraphActions.d.ts.map +1 -0
- package/types/react-flow/GraphCommandBridge.d.ts +45 -0
- package/types/react-flow/GraphCommandBridge.d.ts.map +1 -0
- package/types/react-flow/GraphNodeHost.d.ts +32 -0
- package/types/react-flow/GraphNodeHost.d.ts.map +1 -0
- package/types/react-flow/GraphPaintProbe.d.ts +26 -0
- package/types/react-flow/GraphPaintProbe.d.ts.map +1 -0
- package/types/react-flow/GraphZoomVar.d.ts +31 -0
- package/types/react-flow/GraphZoomVar.d.ts.map +1 -0
- package/types/react-flow/LassoOverlay.d.ts +39 -0
- package/types/react-flow/LassoOverlay.d.ts.map +1 -0
- package/types/react-flow/NodeGraphWeb.d.ts +195 -0
- package/types/react-flow/NodeGraphWeb.d.ts.map +1 -0
- package/types/react-flow/SnapGuides.d.ts +49 -0
- package/types/react-flow/SnapGuides.d.ts.map +1 -0
- package/types/react-flow/demoControlBody.d.ts +47 -0
- package/types/react-flow/demoControlBody.d.ts.map +1 -0
- package/types/react-flow/demoNodeBody.d.ts +37 -0
- package/types/react-flow/demoNodeBody.d.ts.map +1 -0
- package/types/react-flow/fixtures.d.ts +107 -0
- package/types/react-flow/fixtures.d.ts.map +1 -0
- package/types/react-flow/flowAdapter.d.ts +56 -0
- package/types/react-flow/flowAdapter.d.ts.map +1 -0
- package/types/react-flow/graphHandle.d.ts +90 -0
- package/types/react-flow/graphHandle.d.ts.map +1 -0
- package/types/react-flow/nodeCensus.d.ts +42 -0
- package/types/react-flow/nodeCensus.d.ts.map +1 -0
- package/types/react-flow/useGraphController.d.ts +93 -0
- package/types/react-flow/useGraphController.d.ts.map +1 -0
- package/types/react-flow/xy.d.ts +84 -0
- package/types/react-flow/xy.d.ts.map +1 -0
- package/types/theme/GraphFaces.d.ts +82 -0
- package/types/theme/GraphFaces.d.ts.map +1 -0
- package/types/theme/GraphVarsStyle.d.ts +56 -0
- package/types/theme/GraphVarsStyle.d.ts.map +1 -0
- package/types/theme/faces.d.ts +152 -0
- package/types/theme/faces.d.ts.map +1 -0
- package/types/theme/faces.generated.d.ts +27 -0
- package/types/theme/faces.generated.d.ts.map +1 -0
- package/types/theme/graphVars.d.ts +155 -0
- package/types/theme/graphVars.d.ts.map +1 -0
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `NodeGraph/GraphNode` — the node alone, off canvas (design §12.1).
|
|
3
|
+
*
|
|
4
|
+
* Off canvas still means inside a `ReactFlowProvider`: `useUpdateNodeInternals`
|
|
5
|
+
* reads the React Flow store, and a node that cannot report a port change is
|
|
6
|
+
* not the node that ships. The provider is the whole canvas this story needs.
|
|
7
|
+
*
|
|
8
|
+
* `FontProof` is task 2.5: design 6.3's corrupted-first-family control, live.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { Preset, Surface, fontCategoryStacks } from "@multiplatform.one/theme";
|
|
12
|
+
import type { Meta, StoryObj } from "@storybook/react-native-web-vite";
|
|
13
|
+
import { type ReactNode, useEffect, useRef, useState } from "react";
|
|
14
|
+
import { SizableText, Theme, XStack, YStack } from "tamagui";
|
|
15
|
+
import { hasDomRealm } from "../native/DomOnlyStory";
|
|
16
|
+
import { ReactFlowProvider } from "../react-flow/xy";
|
|
17
|
+
import { GraphFaces } from "../theme/GraphFaces";
|
|
18
|
+
import type { GraphFaceStatus } from "../theme/GraphFaces";
|
|
19
|
+
import { corruptFirstFamily, probeRenderedFamily } from "../theme/faces";
|
|
20
|
+
import type { FaceProbe } from "../theme/faces";
|
|
21
|
+
import { GraphNode } from "./GraphNode";
|
|
22
|
+
import type { GraphNodePort } from "./nodeMeasure";
|
|
23
|
+
|
|
24
|
+
const oneIn: GraphNodePort[] = [{ id: "in", side: "left", direction: "in", label: "source" }];
|
|
25
|
+
|
|
26
|
+
const inOut: GraphNodePort[] = [
|
|
27
|
+
{ id: "in", side: "left", direction: "in", label: "records" },
|
|
28
|
+
{ id: "out", side: "right", direction: "out", label: "result" },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const fourPorts: GraphNodePort[] = [
|
|
32
|
+
{ id: "rows", side: "left", direction: "in", label: "rows" },
|
|
33
|
+
{ id: "schema", side: "left", direction: "in", label: "schema" },
|
|
34
|
+
{ id: "ok", side: "right", direction: "out", label: "ok" },
|
|
35
|
+
{ id: "err", side: "right", direction: "out", label: "error" },
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const meta: Meta<typeof GraphNode> = {
|
|
39
|
+
title: "NodeGraph/GraphNode",
|
|
40
|
+
component: GraphNode,
|
|
41
|
+
parameters: {
|
|
42
|
+
status: { type: "beta" },
|
|
43
|
+
docs: {
|
|
44
|
+
description: {
|
|
45
|
+
component:
|
|
46
|
+
"The Tamagui node body, resolved through the real useResolvedKnobs stack (Preset / Surface / Intent). Width rides the per-kind measure table rather than the control-height ladder; radius is CONTAINER-CAP so a corner never clips a child; the frame is never overflow:hidden, because handles overhang it. This is where the knob fuzz for MPO-191 runs.",
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
argTypes: {
|
|
51
|
+
title: { control: "text" },
|
|
52
|
+
subtitle: { control: "text" },
|
|
53
|
+
intent: { control: "select", options: [undefined, "accent", "error", "warning", "success"] },
|
|
54
|
+
selected: { control: "boolean" },
|
|
55
|
+
dragging: { control: "boolean" },
|
|
56
|
+
coarsePointer: {
|
|
57
|
+
control: "boolean",
|
|
58
|
+
description: "Touch surface — widens the port pitch to 44",
|
|
59
|
+
},
|
|
60
|
+
renderMode: { control: "inline-radio", options: ["detail", "overview"] },
|
|
61
|
+
},
|
|
62
|
+
decorators: [
|
|
63
|
+
(Story) => (
|
|
64
|
+
<ReactFlowProvider>
|
|
65
|
+
<YStack padding="$4">
|
|
66
|
+
<Story />
|
|
67
|
+
</YStack>
|
|
68
|
+
</ReactFlowProvider>
|
|
69
|
+
),
|
|
70
|
+
],
|
|
71
|
+
};
|
|
72
|
+
export default meta;
|
|
73
|
+
|
|
74
|
+
type Story = StoryObj<typeof GraphNode>;
|
|
75
|
+
|
|
76
|
+
export const Main: Story = {
|
|
77
|
+
args: {
|
|
78
|
+
id: "transform",
|
|
79
|
+
title: "Transform",
|
|
80
|
+
subtitle: "Maps each row through the mapping expression",
|
|
81
|
+
ports: inOut,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const Intents: Story = {
|
|
86
|
+
render: () => (
|
|
87
|
+
<XStack gap="$5" flexWrap="wrap">
|
|
88
|
+
{[undefined, "accent", "error", "warning", "success"].map((intent) => (
|
|
89
|
+
<YStack key={intent ?? "default"} gap="$2">
|
|
90
|
+
<SizableText size="$2" opacity={0.6}>
|
|
91
|
+
{intent ?? "no intent"}
|
|
92
|
+
</SizableText>
|
|
93
|
+
<GraphNode
|
|
94
|
+
id={`intent-${intent ?? "default"}`}
|
|
95
|
+
title="Validate"
|
|
96
|
+
subtitle="Rejects rows that fail the schema"
|
|
97
|
+
intent={intent}
|
|
98
|
+
ports={inOut}
|
|
99
|
+
/>
|
|
100
|
+
</YStack>
|
|
101
|
+
))}
|
|
102
|
+
</XStack>
|
|
103
|
+
),
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export const Ports: Story = {
|
|
107
|
+
render: () => (
|
|
108
|
+
<XStack gap="$5" alignItems="flex-start" flexWrap="wrap">
|
|
109
|
+
{(
|
|
110
|
+
[
|
|
111
|
+
["none", []],
|
|
112
|
+
["one in", oneIn],
|
|
113
|
+
["in and out", inOut],
|
|
114
|
+
["four, two a side", fourPorts],
|
|
115
|
+
] as const
|
|
116
|
+
).map(([label, ports]) => (
|
|
117
|
+
<YStack key={label} gap="$2">
|
|
118
|
+
<SizableText size="$2" opacity={0.6}>
|
|
119
|
+
{label}
|
|
120
|
+
</SizableText>
|
|
121
|
+
<GraphNode id={`ports-${label}`} title="Join" ports={ports} />
|
|
122
|
+
</YStack>
|
|
123
|
+
))}
|
|
124
|
+
</XStack>
|
|
125
|
+
),
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* §7.1 H6 made visible. The magenta marker is positioned to overhang the
|
|
130
|
+
* frame the way a port's painted disc and its 44pt `::after` region will. If
|
|
131
|
+
* the frame ever becomes `overflow: hidden`, half of it disappears here before
|
|
132
|
+
* any spec runs.
|
|
133
|
+
*/
|
|
134
|
+
export const Overflow: Story = {
|
|
135
|
+
render: () => (
|
|
136
|
+
<XStack gap="$8" alignItems="flex-start">
|
|
137
|
+
{(["small", "medium", "large", "full"] as const).map((borderRadius) => (
|
|
138
|
+
<Preset key={borderRadius} cascade={false} overrides={{ borderRadius }}>
|
|
139
|
+
<YStack gap="$2">
|
|
140
|
+
<SizableText size="$2" opacity={0.6}>
|
|
141
|
+
borderRadius: {borderRadius}
|
|
142
|
+
</SizableText>
|
|
143
|
+
<GraphNode id={`overflow-${borderRadius}`} title="Overhang" ports={inOut}>
|
|
144
|
+
<YStack
|
|
145
|
+
position="absolute"
|
|
146
|
+
left={-10}
|
|
147
|
+
top={16}
|
|
148
|
+
width={20}
|
|
149
|
+
height={20}
|
|
150
|
+
borderRadius={9999}
|
|
151
|
+
backgroundColor="$color10"
|
|
152
|
+
/>
|
|
153
|
+
</GraphNode>
|
|
154
|
+
</YStack>
|
|
155
|
+
</Preset>
|
|
156
|
+
))}
|
|
157
|
+
</XStack>
|
|
158
|
+
),
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Seed `MPO-191-graphnode`, 3 combos, both schemes — the exact combos
|
|
163
|
+
* `node scripts/knob-fuzz.mjs MPO-191-graphnode 3` prints, so the verdicts
|
|
164
|
+
* posted on MPO-191 and this page are the same subject.
|
|
165
|
+
*/
|
|
166
|
+
const fuzzCombos = [
|
|
167
|
+
{
|
|
168
|
+
label: "combo 1",
|
|
169
|
+
knobs: {
|
|
170
|
+
fillStyle: "filled",
|
|
171
|
+
borderRadius: "medium",
|
|
172
|
+
borderWidth: "none",
|
|
173
|
+
elevation: "none",
|
|
174
|
+
space: "large",
|
|
175
|
+
size: "medium",
|
|
176
|
+
textAccent: "medium",
|
|
177
|
+
headingFont: "geometric",
|
|
178
|
+
bodyFont: "sans-serif",
|
|
179
|
+
fontWeight: "bold",
|
|
180
|
+
animation: "tooltip",
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
label: "combo 2",
|
|
185
|
+
knobs: {
|
|
186
|
+
fillStyle: "filled",
|
|
187
|
+
borderRadius: "none",
|
|
188
|
+
borderWidth: "none",
|
|
189
|
+
elevation: "small",
|
|
190
|
+
space: "small",
|
|
191
|
+
size: "small",
|
|
192
|
+
textAccent: "medium",
|
|
193
|
+
headingFont: "rounded",
|
|
194
|
+
bodyFont: "cursive",
|
|
195
|
+
fontWeight: "regular",
|
|
196
|
+
animation: "none",
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
label: "combo 3",
|
|
201
|
+
knobs: {
|
|
202
|
+
fillStyle: "filled",
|
|
203
|
+
borderRadius: "full",
|
|
204
|
+
borderWidth: "small",
|
|
205
|
+
elevation: "large",
|
|
206
|
+
space: "medium",
|
|
207
|
+
size: "large",
|
|
208
|
+
textAccent: "high",
|
|
209
|
+
headingFont: "mono",
|
|
210
|
+
bodyFont: "serif",
|
|
211
|
+
fontWeight: "bold",
|
|
212
|
+
animation: "bouncy",
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
] as const;
|
|
216
|
+
|
|
217
|
+
function FuzzColumn({ scheme, children }: { scheme: "light" | "dark"; children: ReactNode }) {
|
|
218
|
+
return (
|
|
219
|
+
<Theme name={scheme}>
|
|
220
|
+
<YStack gap="$4" padding="$4" backgroundColor="$background" borderRadius="$4">
|
|
221
|
+
<SizableText size="$2" opacity={0.6}>
|
|
222
|
+
{scheme}
|
|
223
|
+
</SizableText>
|
|
224
|
+
{children}
|
|
225
|
+
</YStack>
|
|
226
|
+
</Theme>
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export const KnobFuzz: Story = {
|
|
231
|
+
parameters: {
|
|
232
|
+
docs: {
|
|
233
|
+
description: {
|
|
234
|
+
story:
|
|
235
|
+
"Seed MPO-191-graphnode, 3 combos, light and dark. Measure the GraphNode FRAME against knob-laws.md § Radius › GraphNode frame (CONTAINER-CAP), § Size › GraphNode frame (remap to the measure table) and § Elevation › GraphNode frame (declared honour). Measuring an inset against the frame's row is the false FAIL the procedure warns about.",
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
render: () => (
|
|
240
|
+
<XStack gap="$5" alignItems="flex-start" flexWrap="wrap">
|
|
241
|
+
{(["light", "dark"] as const).map((scheme) => (
|
|
242
|
+
<FuzzColumn key={scheme} scheme={scheme}>
|
|
243
|
+
{fuzzCombos.map((combo) => (
|
|
244
|
+
<Preset key={combo.label} cascade={false} overrides={combo.knobs}>
|
|
245
|
+
<Surface size="medium" density="comfortable">
|
|
246
|
+
<YStack gap="$2">
|
|
247
|
+
<SizableText size="$1" opacity={0.6}>
|
|
248
|
+
{combo.label}
|
|
249
|
+
</SizableText>
|
|
250
|
+
<GraphNode
|
|
251
|
+
id={`fuzz-${scheme}-${combo.label}`}
|
|
252
|
+
title="Aggregate"
|
|
253
|
+
subtitle="Groups rows by the key expression"
|
|
254
|
+
ports={fourPorts}
|
|
255
|
+
/>
|
|
256
|
+
</YStack>
|
|
257
|
+
</Surface>
|
|
258
|
+
</Preset>
|
|
259
|
+
))}
|
|
260
|
+
</FuzzColumn>
|
|
261
|
+
))}
|
|
262
|
+
</XStack>
|
|
263
|
+
),
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
// ── FontProof (task 2.5) ─────────────────────────────────────────────────────
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* One probe row: what was measured, and whether the first family painted.
|
|
270
|
+
*
|
|
271
|
+
* Rendered as text on purpose. This story is read off a SCREENSHOT — on the
|
|
272
|
+
* iOS simulator and an Android emulator at tasks 2.7 and 2.8, where there is no
|
|
273
|
+
* console to open — so every number the control produces has to be legible in
|
|
274
|
+
* the picture.
|
|
275
|
+
*/
|
|
276
|
+
function ProbeRow({ label, probe }: { label: string; probe: FaceProbe | null }) {
|
|
277
|
+
if (!probe) {
|
|
278
|
+
return (
|
|
279
|
+
<SizableText size="$2" fontFamily="$mono">
|
|
280
|
+
{label}: measuring…
|
|
281
|
+
</SizableText>
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
const verdict = !probe.conclusive
|
|
285
|
+
? "INCONCLUSIVE"
|
|
286
|
+
: probe.matched
|
|
287
|
+
? "MATCHED — first family painted"
|
|
288
|
+
: "MISS — first family never painted";
|
|
289
|
+
return (
|
|
290
|
+
<YStack gap="$1">
|
|
291
|
+
<SizableText size="$2" fontFamily="$mono">
|
|
292
|
+
{label}: {verdict}
|
|
293
|
+
</SizableText>
|
|
294
|
+
<SizableText size="$1" fontFamily="$mono" opacity={0.7}>
|
|
295
|
+
stack {probe.widthStack.toFixed(2)}px · first-corrupted{" "}
|
|
296
|
+
{probe.widthFirstCorrupted.toFixed(2)}px
|
|
297
|
+
</SizableText>
|
|
298
|
+
<SizableText size="$1" fontFamily="$mono" opacity={0.5}>
|
|
299
|
+
{probe.stack}
|
|
300
|
+
</SizableText>
|
|
301
|
+
</YStack>
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* The corrupted-first-family control, live, with its own negative case beside
|
|
307
|
+
* it.
|
|
308
|
+
*
|
|
309
|
+
* Two targets, and the second is the point. A single MATCHED row proves nothing
|
|
310
|
+
* on its own — the gate's probe produced one of those while Inter had not
|
|
311
|
+
* rendered at all. So the story also probes a span whose first family is
|
|
312
|
+
* ALREADY absent, and shows the control reporting MISS for it. Two rows,
|
|
313
|
+
* opposite verdicts, same probe: that is the evidence.
|
|
314
|
+
*
|
|
315
|
+
* `assetUris` points at the URLs `apps/storybook` serves from
|
|
316
|
+
* `apps/storybook/public/fonts` (`staticDirs: ["../public"]`), so the web run
|
|
317
|
+
* exercises design §6.3's PRIMARY mechanism and the face table below says
|
|
318
|
+
* `asset` rather than `inline`. The preview head registers Inter from the same
|
|
319
|
+
* file, which is why the real cascade matches here even before `GraphFaces`
|
|
320
|
+
* mounts; the device runs at 2.7/2.8 are where the base64 path carries it
|
|
321
|
+
* alone.
|
|
322
|
+
*/
|
|
323
|
+
/**
|
|
324
|
+
* Whether this story is running somewhere the probe can run at all.
|
|
325
|
+
*
|
|
326
|
+
* A module constant, not a per-render check: it is the PLATFORM, and a value
|
|
327
|
+
* that could change between renders would put the hooks below in danger.
|
|
328
|
+
*/
|
|
329
|
+
/**
|
|
330
|
+
* The same check `DomOnlyStory` exports, imported rather than restated (task
|
|
331
|
+
* 6.8). It was declared here first, and a second copy is how two stories end up
|
|
332
|
+
* disagreeing about what "has a DOM" means.
|
|
333
|
+
*/
|
|
334
|
+
const hasDom = hasDomRealm;
|
|
335
|
+
|
|
336
|
+
function FontProofPanel() {
|
|
337
|
+
const hostRef = useRef<HTMLDivElement | null>(null);
|
|
338
|
+
const [real, setReal] = useState<FaceProbe | null>(null);
|
|
339
|
+
const [absent, setAbsent] = useState<FaceProbe | null>(null);
|
|
340
|
+
const [statuses, setStatuses] = useState<readonly GraphFaceStatus[]>([]);
|
|
341
|
+
|
|
342
|
+
useEffect(() => {
|
|
343
|
+
if (!hasDom) return;
|
|
344
|
+
let live = true;
|
|
345
|
+
const run = async () => {
|
|
346
|
+
// The faces have to be resolved before a width means anything.
|
|
347
|
+
await document.fonts.ready;
|
|
348
|
+
if (!live) return;
|
|
349
|
+
const host = hostRef.current;
|
|
350
|
+
if (!host) return;
|
|
351
|
+
const title = host.querySelector("[data-graph-node-title]");
|
|
352
|
+
const control = host.querySelector("[data-font-proof-absent]");
|
|
353
|
+
if (title) setReal(probeRenderedFamily(title));
|
|
354
|
+
if (control) setAbsent(probeRenderedFamily(control));
|
|
355
|
+
};
|
|
356
|
+
void run();
|
|
357
|
+
return () => {
|
|
358
|
+
live = false;
|
|
359
|
+
};
|
|
360
|
+
}, []);
|
|
361
|
+
|
|
362
|
+
const controlStack = corruptFirstFamily(fontCategoryStacks["sans-serif"]);
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* NATIVE STOPS HERE, and it is not a limitation of the story — it is the
|
|
366
|
+
* measurement being meaningless (MPO-211).
|
|
367
|
+
*
|
|
368
|
+
* Two things below are DOM and nothing else: the `<span>` negative control,
|
|
369
|
+
* and `probeRenderedFamily`, which measures on a `<canvas>` context against
|
|
370
|
+
* an element's computed style. React Native answers a lowercase intrinsic it
|
|
371
|
+
* does not know with `View config getter callback for component "span" must
|
|
372
|
+
* be a function` and takes the whole tree down — measured on the iPhone 16e,
|
|
373
|
+
* where the Kitchen Sink showed a red box for this story.
|
|
374
|
+
*
|
|
375
|
+
* Guarding it would be pointless if the answer were simply unavailable on
|
|
376
|
+
* device, and it is not: the probe runs INSIDE the WebView, on the canvas's
|
|
377
|
+
* way to `ready`, and `NodeGraph/Diagnostics` → `Live` renders the result.
|
|
378
|
+
* That is the story AC-3's DOM half is read from, so this one says so
|
|
379
|
+
* instead of pretending.
|
|
380
|
+
*/
|
|
381
|
+
if (!hasDom) {
|
|
382
|
+
return (
|
|
383
|
+
<YStack gap="$4" maxWidth={560}>
|
|
384
|
+
<GraphNode
|
|
385
|
+
id="font-proof"
|
|
386
|
+
title="Transform"
|
|
387
|
+
subtitle="Maps each row through the mapping expression"
|
|
388
|
+
ports={inOut}
|
|
389
|
+
/>
|
|
390
|
+
<YStack gap="$2" padding="$3" backgroundColor="$background" borderRadius="$4">
|
|
391
|
+
<SizableText size="$2" fontFamily="$mono">
|
|
392
|
+
probe not run — there is no DOM here
|
|
393
|
+
</SizableText>
|
|
394
|
+
<SizableText size="$1" opacity={0.7}>
|
|
395
|
+
The node above is the real Tamagui body, resolved through the real knob stack. The
|
|
396
|
+
corrupted-first-family control needs a document and a canvas measurer, so on device it
|
|
397
|
+
runs inside the WebView instead and its result arrives on the canvas's ready event.
|
|
398
|
+
</SizableText>
|
|
399
|
+
<SizableText size="$1" opacity={0.7}>
|
|
400
|
+
Read it at NodeGraph → Diagnostics → Live.
|
|
401
|
+
</SizableText>
|
|
402
|
+
</YStack>
|
|
403
|
+
</YStack>
|
|
404
|
+
);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
return (
|
|
408
|
+
<YStack ref={hostRef as never} gap="$4">
|
|
409
|
+
<GraphFaces
|
|
410
|
+
assetUris={{
|
|
411
|
+
"inter-400": "/fonts/inter-400.woff2",
|
|
412
|
+
"inter-700": "/fonts/inter-700.woff2",
|
|
413
|
+
}}
|
|
414
|
+
onStatus={setStatuses}
|
|
415
|
+
/>
|
|
416
|
+
<GraphNode
|
|
417
|
+
id="font-proof"
|
|
418
|
+
title="Transform"
|
|
419
|
+
subtitle="Maps each row through the mapping expression"
|
|
420
|
+
ports={inOut}
|
|
421
|
+
/>
|
|
422
|
+
{/* The negative control. Its first family is absent by construction. */}
|
|
423
|
+
<span data-font-proof-absent="" style={{ fontFamily: controlStack, fontSize: 16 }}>
|
|
424
|
+
AaBbGgQqRrWw0123456789
|
|
425
|
+
</span>
|
|
426
|
+
<YStack gap="$3" padding="$3" backgroundColor="$background" borderRadius="$4">
|
|
427
|
+
<ProbeRow label="GraphNode title (real cascade)" probe={real} />
|
|
428
|
+
<ProbeRow label="control, first family absent" probe={absent} />
|
|
429
|
+
<YStack gap="$1">
|
|
430
|
+
{statuses.map((status) => (
|
|
431
|
+
<SizableText key={status.id} size="$1" fontFamily="$mono" opacity={0.7}>
|
|
432
|
+
{status.id} · {status.family} {status.weight} · delivered by {status.source}
|
|
433
|
+
</SizableText>
|
|
434
|
+
))}
|
|
435
|
+
</YStack>
|
|
436
|
+
</YStack>
|
|
437
|
+
</YStack>
|
|
438
|
+
);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export const FontProof: Story = {
|
|
442
|
+
parameters: {
|
|
443
|
+
docs: {
|
|
444
|
+
description: {
|
|
445
|
+
story:
|
|
446
|
+
"Design 6.3's corrupted-first-family control, live. The first row probes the GraphNode title through the real knob cascade and must read MATCHED; the second probes a span whose first family is already absent and must read MISS. Equal widths mean the first family never rendered — the gate's probe compared against a wholly bogus family and could not tell that apart from the second family rendering. The face table says which of the two mechanisms of 6.3 delivered each face. WEB ONLY: the control is a span and a canvas measurer, so on device this story says where the on-device probe is read instead — NodeGraph → Diagnostics → Live, which renders the probe the canvas ran inside its own WebView.",
|
|
447
|
+
},
|
|
448
|
+
},
|
|
449
|
+
},
|
|
450
|
+
render: () => <FontProofPanel />,
|
|
451
|
+
};
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Tamagui node body.
|
|
3
|
+
*
|
|
4
|
+
* Knobs reach it through the REAL `useResolvedKnobs` — the resolver with its
|
|
5
|
+
* Preset / Surface / Intent context stack, not the pure functions — which is
|
|
6
|
+
* what MPO-191 AC-3 asks for. Every style comes from a whole `knobProps.*`
|
|
7
|
+
* fragment spread (AGENTS.md); nothing here cherry-picks a resolved token.
|
|
8
|
+
*
|
|
9
|
+
* Two things this component must NOT do, both from design §7.1:
|
|
10
|
+
* - clip. The frame is never `overflow: hidden`, because handles sit at the
|
|
11
|
+
* node edge under `translate(±50%)` and a clipping frame eats half the dot
|
|
12
|
+
* and most of the 44pt hit region.
|
|
13
|
+
* - re-measure the world on a knob flip. `useUpdateNodeInternals` fires for
|
|
14
|
+
* ONE node when its own `ports` identity changes — a port added or removed
|
|
15
|
+
* changes `handleBounds` with no size change for React Flow's per-node
|
|
16
|
+
* ResizeObserver to see. A knob flip DOES change height, the observer does
|
|
17
|
+
* catch that (measured, design §5), and firing 200 updates on top of it
|
|
18
|
+
* would stack a second forced-layout storm on the observer's.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { type ReactNode, useEffect, useRef } from "react";
|
|
22
|
+
import { useGraphNodeKnobs } from "../knobs/graphKnobs";
|
|
23
|
+
import { SizableText, XStack, YStack } from "tamagui";
|
|
24
|
+
import { useUpdateNodeInternals } from "../react-flow/xy";
|
|
25
|
+
import { paintedPortSize } from "./handleGeometry";
|
|
26
|
+
import { detailOpacity, isOverview } from "./lod";
|
|
27
|
+
import type { GraphRenderMode } from "./lod";
|
|
28
|
+
import {
|
|
29
|
+
containerRadiusPx,
|
|
30
|
+
type GraphNodeMeasure,
|
|
31
|
+
type GraphNodePort,
|
|
32
|
+
type GraphNodeSizeKnob,
|
|
33
|
+
graphNodeMinHeight,
|
|
34
|
+
graphNodeWidth,
|
|
35
|
+
portSpacing,
|
|
36
|
+
} from "./nodeMeasure";
|
|
37
|
+
|
|
38
|
+
export interface GraphNodeProps {
|
|
39
|
+
/** Node id. React Flow addresses `updateNodeInternals` by it. */
|
|
40
|
+
readonly id: string;
|
|
41
|
+
readonly title: string;
|
|
42
|
+
readonly subtitle?: string;
|
|
43
|
+
readonly ports?: readonly GraphNodePort[];
|
|
44
|
+
/** Semantic intent — reaches the resolver, never a colour prop. */
|
|
45
|
+
readonly intent?: string;
|
|
46
|
+
readonly selected?: boolean;
|
|
47
|
+
readonly dragging?: boolean;
|
|
48
|
+
/** `NodeKindSpec.measure`; falls back to the per-kind default table. */
|
|
49
|
+
readonly measure?: Partial<GraphNodeMeasure>;
|
|
50
|
+
/**
|
|
51
|
+
* "overview" below `overviewZoom` (design §5). Children FADE, they never
|
|
52
|
+
* unmount, so the box keeps the same height in both modes and React Flow's
|
|
53
|
+
* ResizeObserver has nothing to chase.
|
|
54
|
+
*/
|
|
55
|
+
readonly renderMode?: GraphRenderMode;
|
|
56
|
+
/** true on a touch surface — widens the port pitch to the press floor. */
|
|
57
|
+
readonly coarsePointer?: boolean;
|
|
58
|
+
/** Rendered inside each port row. Task 1.9 puts the painted disc here. */
|
|
59
|
+
readonly renderPort?: (port: GraphNodePort) => ReactNode;
|
|
60
|
+
readonly children?: ReactNode;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Fire `updateNodeInternals` for this node when, and only when, its `ports`
|
|
65
|
+
* array identity changes. Never on mount: React Flow measures a fresh node
|
|
66
|
+
* itself, so a mount-time call is a redundant forced layout.
|
|
67
|
+
*/
|
|
68
|
+
function usePortInternals(id: string, ports: readonly GraphNodePort[] | undefined) {
|
|
69
|
+
const updateNodeInternals = useUpdateNodeInternals();
|
|
70
|
+
const first = useRef(true);
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
if (first.current) {
|
|
73
|
+
first.current = false;
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
updateNodeInternals(id);
|
|
77
|
+
}, [id, ports, updateNodeInternals]);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function GraphNode({
|
|
81
|
+
id,
|
|
82
|
+
title,
|
|
83
|
+
subtitle,
|
|
84
|
+
ports,
|
|
85
|
+
intent,
|
|
86
|
+
selected = false,
|
|
87
|
+
dragging = false,
|
|
88
|
+
measure,
|
|
89
|
+
renderMode = "detail",
|
|
90
|
+
coarsePointer = false,
|
|
91
|
+
renderPort,
|
|
92
|
+
children,
|
|
93
|
+
}: GraphNodeProps) {
|
|
94
|
+
// `useGraphNodeKnobs`, not `useResolvedKnobs` directly: it is task 1.6's ONE
|
|
95
|
+
// node knob call site, so a §11 law gets added in one place rather than per
|
|
96
|
+
// node kind. It resolves through the same real Preset / Surface / Intent
|
|
97
|
+
// stack, which is what `KnobEnvelopeProvider` rebuilds inside the WebView —
|
|
98
|
+
// so this component needs no native branch (design §6.1).
|
|
99
|
+
const { knobProps, control } = useGraphNodeKnobs({ intent, selected, dragging });
|
|
100
|
+
|
|
101
|
+
usePortInternals(id, ports);
|
|
102
|
+
|
|
103
|
+
const size = knobProps.size as GraphNodeSizeKnob;
|
|
104
|
+
const portSpacingPx = portSpacing({ coarsePointer });
|
|
105
|
+
// The dot straddles the row's edge, so half of it lands inside the row. The
|
|
106
|
+
// label clears the whole diameter rather than the half it strictly needs, so
|
|
107
|
+
// the gutter still reads as a gutter at the `large` stop.
|
|
108
|
+
const portGutterPx = paintedPortSize(size);
|
|
109
|
+
const width = graphNodeWidth({ size, measure });
|
|
110
|
+
const minHeight = graphNodeMinHeight({ size, ports: ports ?? [], portSpacingPx, measure });
|
|
111
|
+
// The px the frame paints, read off the SAME fragment it is styled from.
|
|
112
|
+
const radiusPx = containerRadiusPx(knobProps.containerRadius.borderRadius);
|
|
113
|
+
const overview = isOverview(renderMode);
|
|
114
|
+
// ZERO, never `display: none` and never an unmount. Children at opacity 0
|
|
115
|
+
// are still laid out and still hold the box open, so the node's height is
|
|
116
|
+
// the same number in both modes and React Flow's per-node ResizeObserver has
|
|
117
|
+
// nothing to chase across a zoom tick. Design §5, and it is the invariant
|
|
118
|
+
// `lod.spec.tsx` exists for.
|
|
119
|
+
const fade = detailOpacity(renderMode);
|
|
120
|
+
|
|
121
|
+
return (
|
|
122
|
+
<YStack
|
|
123
|
+
data-graph-node={id}
|
|
124
|
+
data-graph-node-radius={String(radiusPx)}
|
|
125
|
+
data-graph-node-width={String(width)}
|
|
126
|
+
data-graph-node-render-mode={renderMode}
|
|
127
|
+
data-graph-node-port-spacing={String(portSpacingPx)}
|
|
128
|
+
{...knobProps.surface}
|
|
129
|
+
{...knobProps.containerRadius}
|
|
130
|
+
{...knobProps.panelPadding}
|
|
131
|
+
{...knobProps.gap}
|
|
132
|
+
{...knobProps.elevationChrome}
|
|
133
|
+
hoverStyle={{ ...control.hoverKnobProps }}
|
|
134
|
+
pressStyle={{ ...control.pressKnobProps }}
|
|
135
|
+
focusVisibleStyle={{ ...control.focusVisibleKnobProps }}
|
|
136
|
+
width={width}
|
|
137
|
+
minHeight={minHeight}
|
|
138
|
+
// The containing block for its own ports. React Flow positions every
|
|
139
|
+
// Handle absolutely, so a `static` frame hands them to whatever ancestor
|
|
140
|
+
// happens to be positioned — off canvas, that is the document, and the
|
|
141
|
+
// discs pile up in the page corner instead of on the node edge.
|
|
142
|
+
position="relative"
|
|
143
|
+
// §7.1 H6. Handles overhang the frame; a clipping node eats them.
|
|
144
|
+
overflow="visible"
|
|
145
|
+
opacity={dragging ? 0.85 : 1}
|
|
146
|
+
transition={knobProps.transition}
|
|
147
|
+
>
|
|
148
|
+
<XStack {...knobProps.gap} alignItems="center" justifyContent="space-between">
|
|
149
|
+
{/*
|
|
150
|
+
`label` ALONE, and deliberately not `{...knobProps.heading}` before
|
|
151
|
+
it. Measured in the MPO-191 knob fuzz: `label` carries
|
|
152
|
+
`fontFamily: bodyFontValue` (resolveKnobs.ts:648-652) and `heading`
|
|
153
|
+
carries the heading family, so spreading heading first and label
|
|
154
|
+
second made the title paint the BODY face while the source read as if
|
|
155
|
+
it painted the heading one. The rendered result was right — design §11
|
|
156
|
+
declares this ink honours `bodyFont` — but only by spread order, and a
|
|
157
|
+
reorder would have flipped a documented law silently. One fragment,
|
|
158
|
+
one law. `GraphNode.spec.tsx` pins that `headingFont` does not move it.
|
|
159
|
+
*/}
|
|
160
|
+
<SizableText {...knobProps.label} numberOfLines={1} data-graph-node-title="">
|
|
161
|
+
{title}
|
|
162
|
+
</SizableText>
|
|
163
|
+
{selected ? <YStack data-graph-node-selected="" /> : null}
|
|
164
|
+
</XStack>
|
|
165
|
+
|
|
166
|
+
{subtitle ? (
|
|
167
|
+
<SizableText
|
|
168
|
+
{...knobProps.body}
|
|
169
|
+
{...knobProps.label}
|
|
170
|
+
numberOfLines={2}
|
|
171
|
+
// 0.75 is the subtitle's own de-emphasis in detail; overview
|
|
172
|
+
// multiplies it to zero rather than replacing it, so the two laws
|
|
173
|
+
// compose instead of one silently overriding the other.
|
|
174
|
+
opacity={0.75 * fade}
|
|
175
|
+
>
|
|
176
|
+
{subtitle}
|
|
177
|
+
</SizableText>
|
|
178
|
+
) : null}
|
|
179
|
+
|
|
180
|
+
{ports?.length ? (
|
|
181
|
+
<YStack
|
|
182
|
+
data-graph-node-ports=""
|
|
183
|
+
gap={0}
|
|
184
|
+
opacity={fade}
|
|
185
|
+
// An invisible 44 px press target is a trap. The ports stay MOUNTED
|
|
186
|
+
// (the box depends on them) but stop taking a pointer while nothing
|
|
187
|
+
// is drawn there for the user to aim at.
|
|
188
|
+
pointerEvents={overview ? "none" : "auto"}
|
|
189
|
+
>
|
|
190
|
+
{ports.map((port) => (
|
|
191
|
+
<XStack
|
|
192
|
+
key={port.id}
|
|
193
|
+
data-graph-node-port-row={port.id}
|
|
194
|
+
data-graph-node-port-side={port.side}
|
|
195
|
+
height={portSpacingPx}
|
|
196
|
+
alignItems="center"
|
|
197
|
+
justifyContent={port.side === "right" ? "flex-end" : "flex-start"}
|
|
198
|
+
// Each row is the containing block for ITS OWN port. React Flow
|
|
199
|
+
// places a handle at `top: 50%` of the nearest positioned
|
|
200
|
+
// ancestor, so with only the frame positioned every left port on
|
|
201
|
+
// a six-port node lands on the same pixel — seen in the Crowded
|
|
202
|
+
// story before this line existed. Per-row makes the pitch real.
|
|
203
|
+
position="relative"
|
|
204
|
+
// The row is where the port's painted disc overhangs the frame.
|
|
205
|
+
overflow="visible"
|
|
206
|
+
>
|
|
207
|
+
{renderPort?.(port)}
|
|
208
|
+
<SizableText
|
|
209
|
+
{...knobProps.body}
|
|
210
|
+
{...knobProps.label}
|
|
211
|
+
numberOfLines={1}
|
|
212
|
+
paddingLeft={port.side === "right" ? 0 : portGutterPx}
|
|
213
|
+
paddingRight={port.side === "right" ? portGutterPx : 0}
|
|
214
|
+
>
|
|
215
|
+
{port.label ?? port.id}
|
|
216
|
+
</SizableText>
|
|
217
|
+
</XStack>
|
|
218
|
+
))}
|
|
219
|
+
</YStack>
|
|
220
|
+
) : null}
|
|
221
|
+
|
|
222
|
+
{/*
|
|
223
|
+
Wrapped, and the wrapper is present in BOTH modes. Rendering
|
|
224
|
+
`{children}` bare and switching it off in overview is what the previous
|
|
225
|
+
version did, and an unmount collapses the box — which is the one thing
|
|
226
|
+
design §5 forbids, because React Flow's observer then reports a new
|
|
227
|
+
height and every edge attached to this node moves.
|
|
228
|
+
*/}
|
|
229
|
+
{children ? (
|
|
230
|
+
<YStack
|
|
231
|
+
data-graph-node-children=""
|
|
232
|
+
opacity={fade}
|
|
233
|
+
pointerEvents={overview ? "none" : "auto"}
|
|
234
|
+
>
|
|
235
|
+
{children}
|
|
236
|
+
</YStack>
|
|
237
|
+
) : null}
|
|
238
|
+
</YStack>
|
|
239
|
+
);
|
|
240
|
+
}
|