diff --git a/app/globals.css b/app/globals.css
index 066f1bf..4c0bc3f 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -12,47 +12,6 @@ body {
background: rgb(var(--background-rgb));
}
-/* Flow Animation */
-@keyframes flowAnimation {
- from {
- stroke-dashoffset: 16;
- }
- to {
- stroke-dashoffset: 0;
- }
-}
-
-/* React Flow Customization */
-.react-flow__node {
- cursor: grab;
-}
-
-.react-flow__node:active {
- cursor: grabbing;
-}
-
-.react-flow__controls {
- background: #1e293b !important;
- border: 1px solid #334155 !important;
- border-radius: 8px !important;
-}
-
-.react-flow__controls-button {
- background: #1e293b !important;
- border-bottom: 1px solid #334155 !important;
- fill: #94a3b8 !important;
-}
-
-.react-flow__controls-button:hover {
- background: #334155 !important;
-}
-
-.react-flow__minimap {
- background: #0f172a !important;
- border: 1px solid #334155 !important;
- border-radius: 8px !important;
-}
-
/* Scrollbar */
::-webkit-scrollbar {
width: 8px;
diff --git a/components/FlowCanvas.tsx b/components/FlowCanvas.tsx
deleted file mode 100644
index 96ffa14..0000000
--- a/components/FlowCanvas.tsx
+++ /dev/null
@@ -1,246 +0,0 @@
-'use client'
-
-import { useCallback, useState, useEffect } from 'react'
-import {
- ReactFlow,
- MiniMap,
- Controls,
- Background,
- BackgroundVariant,
- useNodesState,
- useEdgesState,
- addEdge,
- type Connection,
- type Node,
- type Edge,
-} from '@xyflow/react'
-import '@xyflow/react/dist/style.css'
-
-import SourceNode from './nodes/SourceNode'
-import RecipientNode from './nodes/RecipientNode'
-import ThresholdGate from './nodes/ThresholdGate'
-import AnimatedFlowEdge from './edges/AnimatedFlowEdge'
-
-const nodeTypes = {
- source: SourceNode,
- recipient: RecipientNode,
- threshold: ThresholdGate,
-}
-
-const edgeTypes = {
- animated: AnimatedFlowEdge,
-}
-
-// Demo initial nodes
-const initialNodes: Node[] = [
- {
- id: 'treasury',
- type: 'source',
- position: { x: 50, y: 200 },
- data: {
- label: 'Community Treasury',
- balance: 50000,
- flowRate: 100,
- isActive: true,
- },
- },
- {
- id: 'gate1',
- type: 'threshold',
- position: { x: 300, y: 100 },
- data: {
- threshold: 5000,
- currentValue: 8000,
- label: 'Project Gate',
- },
- },
- {
- id: 'gate2',
- type: 'threshold',
- position: { x: 300, y: 300 },
- data: {
- threshold: 10000,
- currentValue: 7500,
- label: 'Research Gate',
- },
- },
- {
- id: 'project-a',
- type: 'recipient',
- position: { x: 550, y: 50 },
- data: {
- label: 'Project Alpha',
- received: 12340,
- incomingRate: 85,
- threshold: 15000,
- isReceiving: true,
- },
- },
- {
- id: 'project-b',
- type: 'recipient',
- position: { x: 550, y: 200 },
- data: {
- label: 'Project Beta',
- received: 8200,
- incomingRate: 50,
- threshold: 20000,
- isReceiving: true,
- },
- },
- {
- id: 'project-c',
- type: 'recipient',
- position: { x: 550, y: 350 },
- data: {
- label: 'Research Fund',
- received: 3100,
- incomingRate: 0,
- threshold: 10000,
- isReceiving: false,
- },
- },
-]
-
-const initialEdges: Edge[] = [
- {
- id: 'e-treasury-gate1',
- source: 'treasury',
- target: 'gate1',
- type: 'animated',
- data: { flowRate: 100, isActive: true, color: '#3B82F6' },
- },
- {
- id: 'e-treasury-gate2',
- source: 'treasury',
- target: 'gate2',
- type: 'animated',
- data: { flowRate: 75, isActive: true, color: '#3B82F6' },
- },
- {
- id: 'e-gate1-projecta',
- source: 'gate1',
- target: 'project-a',
- type: 'animated',
- data: { flowRate: 85, isActive: true, color: '#10B981' },
- },
- {
- id: 'e-gate1-projectb',
- source: 'gate1',
- target: 'project-b',
- type: 'animated',
- data: { flowRate: 50, isActive: true, color: '#10B981' },
- },
- {
- id: 'e-gate2-projectc',
- source: 'gate2',
- target: 'project-c',
- type: 'animated',
- data: { flowRate: 0, isActive: false, color: '#F43F5E' },
- },
-]
-
-export default function FlowCanvas() {
- const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes)
- const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges)
-
- const onConnect = useCallback(
- (params: Connection) => setEdges((eds) => addEdge({
- ...params,
- type: 'animated',
- data: { flowRate: 50, isActive: true, color: '#8B5CF6' },
- }, eds)),
- [setEdges]
- )
-
- // Simulate flow updates
- useEffect(() => {
- const interval = setInterval(() => {
- setNodes((nds) =>
- nds.map((node) => {
- if (node.type === 'recipient' && node.data.isReceiving) {
- const hourlyRate = node.data.incomingRate / 3600 // per second
- return {
- ...node,
- data: {
- ...node.data,
- received: node.data.received + hourlyRate,
- },
- }
- }
- if (node.type === 'source' && node.data.isActive) {
- const hourlyRate = node.data.flowRate / 3600
- return {
- ...node,
- data: {
- ...node.data,
- balance: Math.max(0, node.data.balance - hourlyRate),
- },
- }
- }
- return node
- })
- )
- }, 1000)
-
- return () => clearInterval(interval)
- }, [setNodes])
-
- return (
-
-
-
- {
- switch (node.type) {
- case 'source':
- return '#3B82F6'
- case 'recipient':
- return '#8B5CF6'
- case 'threshold':
- return '#F59E0B'
- default:
- return '#64748B'
- }
- }}
- />
-
-
-
- {/* Stats Bar */}
-
-
-
-
-
-
Total Flowing:
-
$175/hr
-
-
- Active Flows:
- 4
-
-
- Blocked:
- 1
-
-
-
- Drag nodes to rearrange • Click to inspect • Connect nodes to create flows
-
-
-
-
- )
-}
diff --git a/components/edges/AnimatedFlowEdge.tsx b/components/edges/AnimatedFlowEdge.tsx
deleted file mode 100644
index dbfbb94..0000000
--- a/components/edges/AnimatedFlowEdge.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-'use client'
-
-import { memo } from 'react'
-import { BaseEdge, EdgeProps, getBezierPath } from '@xyflow/react'
-
-export interface AnimatedFlowEdgeData {
- flowRate: number
- isActive: boolean
- color?: string
-}
-
-function AnimatedFlowEdge({
- id,
- sourceX,
- sourceY,
- targetX,
- targetY,
- sourcePosition,
- targetPosition,
- data,
- style = {},
-}: EdgeProps) {
- const { flowRate = 0, isActive = false, color = '#3B82F6' } = (data || {}) as AnimatedFlowEdgeData
-
- const [edgePath] = getBezierPath({
- sourceX,
- sourceY,
- targetX,
- targetY,
- sourcePosition,
- targetPosition,
- })
-
- // Calculate animation speed based on flow rate
- const animationDuration = Math.max(2 - (flowRate / 100), 0.5)
-
- return (
- <>
- {/* Background path */}
-
-
- {/* Animated dashed overlay when active */}
- {isActive && (
-
- )}
-
- {/* Flow particles */}
- {isActive && (
- <>
-
-
-
-
-
-
-
-
-
- >
- )}
-
- {/* Flow rate label */}
- {isActive && flowRate > 0 && (
-
- ${flowRate}/hr
-
- )}
- >
- )
-}
-
-export default memo(AnimatedFlowEdge)
diff --git a/components/nodes/RecipientNode.tsx b/components/nodes/RecipientNode.tsx
deleted file mode 100644
index 3ed9882..0000000
--- a/components/nodes/RecipientNode.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-'use client'
-
-import { memo } from 'react'
-import { Handle, Position, type NodeProps } from '@xyflow/react'
-
-export interface RecipientNodeData {
- label: string
- received: number
- incomingRate: number
- threshold: number
- isReceiving: boolean
-}
-
-function RecipientNode({ data }: NodeProps) {
- const { label, received, incomingRate, threshold, isReceiving } = data as RecipientNodeData
- const progress = Math.min((received / threshold) * 100, 100)
- const thresholdMet = received >= threshold
-
- return (
-
-
-
-
-
-
-
- Received
-
- ${received.toLocaleString()}
-
-
-
- Rate
-
- +${incomingRate}/hr
-
-
-
-
- {/* Threshold Progress Bar */}
-
-
- Threshold
-
- {progress.toFixed(0)}%
-
-
-
-
75 ? 'bg-amber-500' : 'bg-purple-500'
- }`}
- style={{ width: `${progress}%` }}
- />
-
-
- ${received.toLocaleString()}
- ${threshold.toLocaleString()}
-
-
-
- {thresholdMet && (
-
- ✓
- Threshold Met!
-
- )}
-
- {/* Optional: outgoing handle for cascading flows */}
-
-
- )
-}
-
-export default memo(RecipientNode)
diff --git a/components/nodes/SourceNode.tsx b/components/nodes/SourceNode.tsx
deleted file mode 100644
index 7d7fd6c..0000000
--- a/components/nodes/SourceNode.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-'use client'
-
-import { memo } from 'react'
-import { Handle, Position, type NodeProps } from '@xyflow/react'
-
-export interface SourceNodeData {
- label: string
- balance: number
- flowRate: number
- isActive: boolean
-}
-
-function SourceNode({ data }: NodeProps
) {
- const { label, balance, flowRate, isActive } = data as SourceNodeData
-
- return (
-
-
-
-
-
- Balance
-
- ${balance.toLocaleString()}
-
-
-
- Flow Rate
-
- ${flowRate}/hr
-
-
-
-
-
- {isActive ? 'Flowing' : 'Inactive'}
-
-
-
-
-
-
- )
-}
-
-export default memo(SourceNode)
diff --git a/components/nodes/ThresholdGate.tsx b/components/nodes/ThresholdGate.tsx
deleted file mode 100644
index b83750e..0000000
--- a/components/nodes/ThresholdGate.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-'use client'
-
-import { memo } from 'react'
-import { Handle, Position, type NodeProps } from '@xyflow/react'
-
-export interface ThresholdGateData {
- threshold: number
- currentValue: number
- label?: string
-}
-
-function ThresholdGate({ data }: NodeProps) {
- const { threshold, currentValue, label } = data as ThresholdGateData
- const isOpen = currentValue >= threshold
- const progress = Math.min((currentValue / threshold) * 100, 100)
-
- return (
- 75 ? 'border-amber-500' : 'border-rose-500'}
- transition-all duration-300
- `}>
-
-
- {/* Gate Icon */}
-
-
- {isOpen ? '🔓' : progress > 75 ? '⚠️' : '🔒'}
-
-
- {label && (
-
{label}
- )}
-
- {/* Mini threshold meter */}
-
-
-
75 ? 'bg-amber-500' : 'bg-rose-500'
- }`}
- style={{ width: `${progress}%` }}
- />
-
-
-
-
-
- ${currentValue.toLocaleString()}
-
-
- / ${threshold.toLocaleString()}
-
-
-
-
75 ? 'bg-amber-500/20 text-amber-400' : 'bg-rose-500/20 text-rose-400'}
- `}>
- {isOpen ? 'OPEN' : progress > 75 ? 'NEAR' : 'LOCKED'}
-
-
-
-
-
- )
-}
-
-export default memo(ThresholdGate)
diff --git a/components/nodes/index.ts b/components/nodes/index.ts
deleted file mode 100644
index 2c7974a..0000000
--- a/components/nodes/index.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export { default as SourceNode } from './SourceNode'
-export { default as RecipientNode } from './RecipientNode'
-export { default as ThresholdGate } from './ThresholdGate'
-
-export type { SourceNodeData } from './SourceNode'
-export type { RecipientNodeData } from './RecipientNode'
-export type { ThresholdGateData } from './ThresholdGate'
diff --git a/package.json b/package.json
index 75dc6f0..cb3e3c6 100644
--- a/package.json
+++ b/package.json
@@ -11,12 +11,9 @@
"dependencies": {
"next": "^14.2.0",
"react": "^18.3.0",
- "react-dom": "^18.3.0",
- "@xyflow/react": "^12.0.0",
- "d3": "^7.9.0"
+ "react-dom": "^18.3.0"
},
"devDependencies": {
- "@types/d3": "^7.4.0",
"@types/node": "^20.0.0",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f196bd4..65abb57 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,12 +8,6 @@ importers:
.:
dependencies:
- '@xyflow/react':
- specifier: ^12.0.0
- version: 12.10.0(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- d3:
- specifier: ^7.9.0
- version: 7.9.0
next:
specifier: ^14.2.0
version: 14.2.35(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -24,9 +18,6 @@ importers:
specifier: ^18.3.0
version: 18.3.1(react@18.3.1)
devDependencies:
- '@types/d3':
- specifier: ^7.4.0
- version: 7.4.3
'@types/node':
specifier: ^20.0.0
version: 20.19.30
@@ -143,102 +134,6 @@ packages:
'@swc/helpers@0.5.5':
resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
- '@types/d3-array@3.2.2':
- resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==}
-
- '@types/d3-axis@3.0.6':
- resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==}
-
- '@types/d3-brush@3.0.6':
- resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==}
-
- '@types/d3-chord@3.0.6':
- resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==}
-
- '@types/d3-color@3.1.3':
- resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
-
- '@types/d3-contour@3.0.6':
- resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==}
-
- '@types/d3-delaunay@6.0.4':
- resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==}
-
- '@types/d3-dispatch@3.0.7':
- resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==}
-
- '@types/d3-drag@3.0.7':
- resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==}
-
- '@types/d3-dsv@3.0.7':
- resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==}
-
- '@types/d3-ease@3.0.2':
- resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
-
- '@types/d3-fetch@3.0.7':
- resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==}
-
- '@types/d3-force@3.0.10':
- resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==}
-
- '@types/d3-format@3.0.4':
- resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==}
-
- '@types/d3-geo@3.1.0':
- resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==}
-
- '@types/d3-hierarchy@3.1.7':
- resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==}
-
- '@types/d3-interpolate@3.0.4':
- resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
-
- '@types/d3-path@3.1.1':
- resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==}
-
- '@types/d3-polygon@3.0.2':
- resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==}
-
- '@types/d3-quadtree@3.0.6':
- resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==}
-
- '@types/d3-random@3.0.3':
- resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==}
-
- '@types/d3-scale-chromatic@3.1.0':
- resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==}
-
- '@types/d3-scale@4.0.9':
- resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==}
-
- '@types/d3-selection@3.0.11':
- resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==}
-
- '@types/d3-shape@3.1.8':
- resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==}
-
- '@types/d3-time-format@4.0.3':
- resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==}
-
- '@types/d3-time@3.0.4':
- resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==}
-
- '@types/d3-timer@3.0.2':
- resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==}
-
- '@types/d3-transition@3.0.9':
- resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==}
-
- '@types/d3-zoom@3.0.8':
- resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==}
-
- '@types/d3@7.4.3':
- resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==}
-
- '@types/geojson@7946.0.16':
- resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
-
'@types/node@20.19.30':
resolution: {integrity: sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==}
@@ -253,15 +148,6 @@ packages:
'@types/react@18.3.27':
resolution: {integrity: sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==}
- '@xyflow/react@12.10.0':
- resolution: {integrity: sha512-eOtz3whDMWrB4KWVatIBrKuxECHqip6PfA8fTpaS2RUGVpiEAe+nqDKsLqkViVWxDGreq0lWX71Xth/SPAzXiw==}
- peerDependencies:
- react: '>=17'
- react-dom: '>=17'
-
- '@xyflow/system@0.0.74':
- resolution: {integrity: sha512-7v7B/PkiVrkdZzSbL+inGAo6tkR/WQHHG0/jhSvLQToCsfa8YubOGmBYd1s08tpKpihdHDZFwzQZeR69QSBb4Q==}
-
any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
@@ -311,9 +197,6 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
- classcat@5.0.5:
- resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==}
-
client-only@0.0.1:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
@@ -321,10 +204,6 @@ packages:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
- commander@7.2.0:
- resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
- engines: {node: '>= 10'}
-
cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
@@ -333,136 +212,6 @@ packages:
csstype@3.2.3:
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
- d3-array@3.2.4:
- resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
- engines: {node: '>=12'}
-
- d3-axis@3.0.0:
- resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==}
- engines: {node: '>=12'}
-
- d3-brush@3.0.0:
- resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==}
- engines: {node: '>=12'}
-
- d3-chord@3.0.1:
- resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==}
- engines: {node: '>=12'}
-
- d3-color@3.1.0:
- resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
- engines: {node: '>=12'}
-
- d3-contour@4.0.2:
- resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==}
- engines: {node: '>=12'}
-
- d3-delaunay@6.0.4:
- resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==}
- engines: {node: '>=12'}
-
- d3-dispatch@3.0.1:
- resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==}
- engines: {node: '>=12'}
-
- d3-drag@3.0.0:
- resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==}
- engines: {node: '>=12'}
-
- d3-dsv@3.0.1:
- resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==}
- engines: {node: '>=12'}
- hasBin: true
-
- d3-ease@3.0.1:
- resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
- engines: {node: '>=12'}
-
- d3-fetch@3.0.1:
- resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==}
- engines: {node: '>=12'}
-
- d3-force@3.0.0:
- resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==}
- engines: {node: '>=12'}
-
- d3-format@3.1.2:
- resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==}
- engines: {node: '>=12'}
-
- d3-geo@3.1.1:
- resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==}
- engines: {node: '>=12'}
-
- d3-hierarchy@3.1.2:
- resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==}
- engines: {node: '>=12'}
-
- d3-interpolate@3.0.1:
- resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
- engines: {node: '>=12'}
-
- d3-path@3.1.0:
- resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
- engines: {node: '>=12'}
-
- d3-polygon@3.0.1:
- resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==}
- engines: {node: '>=12'}
-
- d3-quadtree@3.0.1:
- resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==}
- engines: {node: '>=12'}
-
- d3-random@3.0.1:
- resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==}
- engines: {node: '>=12'}
-
- d3-scale-chromatic@3.1.0:
- resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==}
- engines: {node: '>=12'}
-
- d3-scale@4.0.2:
- resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
- engines: {node: '>=12'}
-
- d3-selection@3.0.0:
- resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==}
- engines: {node: '>=12'}
-
- d3-shape@3.2.0:
- resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
- engines: {node: '>=12'}
-
- d3-time-format@4.1.0:
- resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
- engines: {node: '>=12'}
-
- d3-time@3.1.0:
- resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==}
- engines: {node: '>=12'}
-
- d3-timer@3.0.1:
- resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
- engines: {node: '>=12'}
-
- d3-transition@3.0.1:
- resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==}
- engines: {node: '>=12'}
- peerDependencies:
- d3-selection: 2 - 3
-
- d3-zoom@3.0.0:
- resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==}
- engines: {node: '>=12'}
-
- d3@7.9.0:
- resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==}
- engines: {node: '>=12'}
-
- delaunator@5.0.1:
- resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==}
-
didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
@@ -522,14 +271,6 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
- iconv-lite@0.6.3:
- resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
- engines: {node: '>=0.10.0'}
-
- internmap@2.0.3:
- resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
- engines: {node: '>=12'}
-
is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
@@ -718,18 +459,9 @@ packages:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- robust-predicates@3.0.2:
- resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
-
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
- rw@1.3.3:
- resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
-
- safer-buffer@2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
-
scheduler@0.23.2:
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
@@ -803,29 +535,9 @@ packages:
peerDependencies:
browserslist: '>= 4.21.0'
- use-sync-external-store@1.6.0:
- resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- zustand@4.5.7:
- resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==}
- engines: {node: '>=12.7.0'}
- peerDependencies:
- '@types/react': '>=16.8'
- immer: '>=9.0.6'
- react: '>=16.8'
- peerDependenciesMeta:
- '@types/react':
- optional: true
- immer:
- optional: true
- react:
- optional: true
-
snapshots:
'@alloc/quick-lru@5.2.0': {}
@@ -892,125 +604,6 @@ snapshots:
'@swc/counter': 0.1.3
tslib: 2.8.1
- '@types/d3-array@3.2.2': {}
-
- '@types/d3-axis@3.0.6':
- dependencies:
- '@types/d3-selection': 3.0.11
-
- '@types/d3-brush@3.0.6':
- dependencies:
- '@types/d3-selection': 3.0.11
-
- '@types/d3-chord@3.0.6': {}
-
- '@types/d3-color@3.1.3': {}
-
- '@types/d3-contour@3.0.6':
- dependencies:
- '@types/d3-array': 3.2.2
- '@types/geojson': 7946.0.16
-
- '@types/d3-delaunay@6.0.4': {}
-
- '@types/d3-dispatch@3.0.7': {}
-
- '@types/d3-drag@3.0.7':
- dependencies:
- '@types/d3-selection': 3.0.11
-
- '@types/d3-dsv@3.0.7': {}
-
- '@types/d3-ease@3.0.2': {}
-
- '@types/d3-fetch@3.0.7':
- dependencies:
- '@types/d3-dsv': 3.0.7
-
- '@types/d3-force@3.0.10': {}
-
- '@types/d3-format@3.0.4': {}
-
- '@types/d3-geo@3.1.0':
- dependencies:
- '@types/geojson': 7946.0.16
-
- '@types/d3-hierarchy@3.1.7': {}
-
- '@types/d3-interpolate@3.0.4':
- dependencies:
- '@types/d3-color': 3.1.3
-
- '@types/d3-path@3.1.1': {}
-
- '@types/d3-polygon@3.0.2': {}
-
- '@types/d3-quadtree@3.0.6': {}
-
- '@types/d3-random@3.0.3': {}
-
- '@types/d3-scale-chromatic@3.1.0': {}
-
- '@types/d3-scale@4.0.9':
- dependencies:
- '@types/d3-time': 3.0.4
-
- '@types/d3-selection@3.0.11': {}
-
- '@types/d3-shape@3.1.8':
- dependencies:
- '@types/d3-path': 3.1.1
-
- '@types/d3-time-format@4.0.3': {}
-
- '@types/d3-time@3.0.4': {}
-
- '@types/d3-timer@3.0.2': {}
-
- '@types/d3-transition@3.0.9':
- dependencies:
- '@types/d3-selection': 3.0.11
-
- '@types/d3-zoom@3.0.8':
- dependencies:
- '@types/d3-interpolate': 3.0.4
- '@types/d3-selection': 3.0.11
-
- '@types/d3@7.4.3':
- dependencies:
- '@types/d3-array': 3.2.2
- '@types/d3-axis': 3.0.6
- '@types/d3-brush': 3.0.6
- '@types/d3-chord': 3.0.6
- '@types/d3-color': 3.1.3
- '@types/d3-contour': 3.0.6
- '@types/d3-delaunay': 6.0.4
- '@types/d3-dispatch': 3.0.7
- '@types/d3-drag': 3.0.7
- '@types/d3-dsv': 3.0.7
- '@types/d3-ease': 3.0.2
- '@types/d3-fetch': 3.0.7
- '@types/d3-force': 3.0.10
- '@types/d3-format': 3.0.4
- '@types/d3-geo': 3.1.0
- '@types/d3-hierarchy': 3.1.7
- '@types/d3-interpolate': 3.0.4
- '@types/d3-path': 3.1.1
- '@types/d3-polygon': 3.0.2
- '@types/d3-quadtree': 3.0.6
- '@types/d3-random': 3.0.3
- '@types/d3-scale': 4.0.9
- '@types/d3-scale-chromatic': 3.1.0
- '@types/d3-selection': 3.0.11
- '@types/d3-shape': 3.1.8
- '@types/d3-time': 3.0.4
- '@types/d3-time-format': 4.0.3
- '@types/d3-timer': 3.0.2
- '@types/d3-transition': 3.0.9
- '@types/d3-zoom': 3.0.8
-
- '@types/geojson@7946.0.16': {}
-
'@types/node@20.19.30':
dependencies:
undici-types: 6.21.0
@@ -1026,29 +619,6 @@ snapshots:
'@types/prop-types': 15.7.15
csstype: 3.2.3
- '@xyflow/react@12.10.0(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@xyflow/system': 0.0.74
- classcat: 5.0.5
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- zustand: 4.5.7(@types/react@18.3.27)(react@18.3.1)
- transitivePeerDependencies:
- - '@types/react'
- - immer
-
- '@xyflow/system@0.0.74':
- dependencies:
- '@types/d3-drag': 3.0.7
- '@types/d3-interpolate': 3.0.4
- '@types/d3-selection': 3.0.11
- '@types/d3-transition': 3.0.9
- '@types/d3-zoom': 3.0.8
- d3-drag: 3.0.0
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-zoom: 3.0.0
-
any-promise@1.3.0: {}
anymatch@3.1.3:
@@ -1103,174 +673,14 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- classcat@5.0.5: {}
-
client-only@0.0.1: {}
commander@4.1.1: {}
- commander@7.2.0: {}
-
cssesc@3.0.0: {}
csstype@3.2.3: {}
- d3-array@3.2.4:
- dependencies:
- internmap: 2.0.3
-
- d3-axis@3.0.0: {}
-
- d3-brush@3.0.0:
- dependencies:
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-transition: 3.0.1(d3-selection@3.0.0)
-
- d3-chord@3.0.1:
- dependencies:
- d3-path: 3.1.0
-
- d3-color@3.1.0: {}
-
- d3-contour@4.0.2:
- dependencies:
- d3-array: 3.2.4
-
- d3-delaunay@6.0.4:
- dependencies:
- delaunator: 5.0.1
-
- d3-dispatch@3.0.1: {}
-
- d3-drag@3.0.0:
- dependencies:
- d3-dispatch: 3.0.1
- d3-selection: 3.0.0
-
- d3-dsv@3.0.1:
- dependencies:
- commander: 7.2.0
- iconv-lite: 0.6.3
- rw: 1.3.3
-
- d3-ease@3.0.1: {}
-
- d3-fetch@3.0.1:
- dependencies:
- d3-dsv: 3.0.1
-
- d3-force@3.0.0:
- dependencies:
- d3-dispatch: 3.0.1
- d3-quadtree: 3.0.1
- d3-timer: 3.0.1
-
- d3-format@3.1.2: {}
-
- d3-geo@3.1.1:
- dependencies:
- d3-array: 3.2.4
-
- d3-hierarchy@3.1.2: {}
-
- d3-interpolate@3.0.1:
- dependencies:
- d3-color: 3.1.0
-
- d3-path@3.1.0: {}
-
- d3-polygon@3.0.1: {}
-
- d3-quadtree@3.0.1: {}
-
- d3-random@3.0.1: {}
-
- d3-scale-chromatic@3.1.0:
- dependencies:
- d3-color: 3.1.0
- d3-interpolate: 3.0.1
-
- d3-scale@4.0.2:
- dependencies:
- d3-array: 3.2.4
- d3-format: 3.1.2
- d3-interpolate: 3.0.1
- d3-time: 3.1.0
- d3-time-format: 4.1.0
-
- d3-selection@3.0.0: {}
-
- d3-shape@3.2.0:
- dependencies:
- d3-path: 3.1.0
-
- d3-time-format@4.1.0:
- dependencies:
- d3-time: 3.1.0
-
- d3-time@3.1.0:
- dependencies:
- d3-array: 3.2.4
-
- d3-timer@3.0.1: {}
-
- d3-transition@3.0.1(d3-selection@3.0.0):
- dependencies:
- d3-color: 3.1.0
- d3-dispatch: 3.0.1
- d3-ease: 3.0.1
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-timer: 3.0.1
-
- d3-zoom@3.0.0:
- dependencies:
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-interpolate: 3.0.1
- d3-selection: 3.0.0
- d3-transition: 3.0.1(d3-selection@3.0.0)
-
- d3@7.9.0:
- dependencies:
- d3-array: 3.2.4
- d3-axis: 3.0.0
- d3-brush: 3.0.0
- d3-chord: 3.0.1
- d3-color: 3.1.0
- d3-contour: 4.0.2
- d3-delaunay: 6.0.4
- d3-dispatch: 3.0.1
- d3-drag: 3.0.0
- d3-dsv: 3.0.1
- d3-ease: 3.0.1
- d3-fetch: 3.0.1
- d3-force: 3.0.0
- d3-format: 3.1.2
- d3-geo: 3.1.1
- d3-hierarchy: 3.1.2
- d3-interpolate: 3.0.1
- d3-path: 3.1.0
- d3-polygon: 3.0.1
- d3-quadtree: 3.0.1
- d3-random: 3.0.1
- d3-scale: 4.0.2
- d3-scale-chromatic: 3.1.0
- d3-selection: 3.0.0
- d3-shape: 3.2.0
- d3-time: 3.1.0
- d3-time-format: 4.1.0
- d3-timer: 3.0.1
- d3-transition: 3.0.1(d3-selection@3.0.0)
- d3-zoom: 3.0.0
-
- delaunator@5.0.1:
- dependencies:
- robust-predicates: 3.0.2
-
didyoumean@1.2.2: {}
dlv@1.1.3: {}
@@ -1320,12 +730,6 @@ snapshots:
dependencies:
function-bind: 1.1.2
- iconv-lite@0.6.3:
- dependencies:
- safer-buffer: 2.1.2
-
- internmap@2.0.3: {}
-
is-binary-path@2.1.0:
dependencies:
binary-extensions: 2.3.0
@@ -1485,16 +889,10 @@ snapshots:
reusify@1.1.0: {}
- robust-predicates@3.0.2: {}
-
run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
- rw@1.3.3: {}
-
- safer-buffer@2.1.2: {}
-
scheduler@0.23.2:
dependencies:
loose-envify: 1.4.0
@@ -1579,15 +977,4 @@ snapshots:
escalade: 3.2.0
picocolors: 1.1.1
- use-sync-external-store@1.6.0(react@18.3.1):
- dependencies:
- react: 18.3.1
-
util-deprecate@1.0.2: {}
-
- zustand@4.5.7(@types/react@18.3.27)(react@18.3.1):
- dependencies:
- use-sync-external-store: 1.6.0(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.27
- react: 18.3.1