clone

a browser-first diagram editor with live svg previews, local drafts and encrypted, accountless sharing

fix: restore Excalidraw renderer CSP

Dami committed d06b002
commit
d06b002692dc1e39710e75c43e6395195ddcd3bf
parent
cf9fe25be513277a2cbee4d7b05ea4c6b0a057f6
author
Dami <dami.etoile@gmail.com>
13 files changed, +3683 -3
Mapps/docs/scripts/check-rendered-examples.mjs24+
Mapps/docs/src/components/DiagramExample/rendererRouting.mjs2+-
Mapps/editor/src/client-renderers.js2+-
Mapps/editor/test/client-renderers.test.js2+-
Arenderers/client/excalidraw/.gitignore2+
Arenderers/client/excalidraw/package-lock.json3472++++++++++++++++++++++++++++++
Arenderers/client/excalidraw/package.json19+
Arenderers/client/excalidraw/scripts/build.mjs24+
Arenderers/client/excalidraw/src/frame.js61+
Arenderers/client/excalidraw/unit/_headers15+
Arenderers/client/excalidraw/unit/index.html14+
Arenderers/client/excalidraw/unit/worker.js34+
Arenderers/client/excalidraw/wrangler.jsonc15+
M apps/docs/scripts/check-rendered-examples.mjs +24 -0
@@ -8,6 +8,20 @@ const site = join(dirname(fileURLToPath(import.meta.url)), '..')
88 const examplesDir = join(site, 'static', 'examples')99 const names = (await readdir(examplesDir)).filter((name) => name.endsWith('.json')).sort()1010 11+function cspSource(document, headers) {12+ return headers.get('Content-Security-Policy')13+ ?? document.match(/http-equiv="Content-Security-Policy"\s+content="([^"]+)"/i)?.[1]14+ ?? ''15+}16+17+function cspAllows(csp, directive, origin) {18+ const values = csp.split(';')19+ .map(value => value.trim().split(/\s+/))20+ .find(([name]) => name === directive)21+ ?.slice(1) ?? []22+ return values.includes('*') || values.includes(origin)23+}24+1125 async function check(name) {1226 const example = JSON.parse(await readFile(join(examplesDir, name), 'utf8'))1327 if (CLIENT_RENDERERS[example.engine]) {
@@ -27,6 +41,16 @@ async function check(name) {
2741 if (!response.ok || !hasProtocol) {2842 throw new Error(`${example.engine}: client frame unavailable (HTTP ${response.status})`)2943 }44+ if (example.engine === 'excalidraw' && scripts.some((script) => script.body.includes('https://esm.sh'))) {45+ const fallbackOrigin = 'https://esm.sh'46+ if (!cspAllows(cspSource(body, response.headers), 'font-src', fallbackOrigin)) {47+ throw new Error(`${example.engine}: frame CSP font-src blocks ${fallbackOrigin}`)48+ }49+ const fallbackFont = await fetch(`${fallbackOrigin}/@excalidraw/excalidraw@0.18.1/dist/prod/fonts/Cascadia/CascadiaCode-Regular.woff2`)50+ if (!fallbackFont.ok || fallbackFont.headers.get('Access-Control-Allow-Origin') !== '*') {51+ throw new Error(`${example.engine}: packaged font fallback is unavailable (HTTP ${fallbackFont.status})`)52+ }53+ }3054 return `${example.engine} client frame`3155 }3256 const response = await fetch(httpRendererUrlFor(example.engine), {
M apps/docs/src/components/DiagramExample/rendererRouting.mjs +1 -1
M apps/editor/src/client-renderers.js +1 -1
M apps/editor/test/client-renderers.test.js +1 -1
A renderers/client/excalidraw/.gitignore +2 -0
@@ -0,0 +1,2 @@
1+node_modules/2+dist/
A renderers/client/excalidraw/package-lock.json +3472 -0
@@ -0,0 +1,3472 @@
1+{2+ "name": "@diagramzip/renderer-excalidraw",3+ "version": "1.0.0",4+ "lockfileVersion": 3,5+ "requires": true,6+ "packages": {7+ "": {8+ "name": "@diagramzip/renderer-excalidraw",9+ "version": "1.0.0",10+ "dependencies": {11+ "@excalidraw/excalidraw": "0.18.1",12+ "react": "18.3.1",13+ "react-dom": "18.3.1"14+ },15+ "devDependencies": {16+ "esbuild": "0.28.1"17+ },18+ "engines": {19+ "node": ">=24"20+ }21+ },22+ "node_modules/@antfu/install-pkg": {23+ "version": "1.1.0",24+ "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz",25+ "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==",26+ "license": "MIT",27+ "dependencies": {28+ "package-manager-detector": "^1.3.0",29+ "tinyexec": "^1.0.1"30+ },31+ "funding": {32+ "url": "https://github.com/sponsors/antfu"33+ }34+ },35+ "node_modules/@babel/runtime": {36+ "version": "7.29.7",37+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz",38+ "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==",39+ "license": "MIT",40+ "engines": {41+ "node": ">=6.9.0"42+ }43+ },44+ "node_modules/@braintree/sanitize-url": {45+ "version": "6.0.2",46+ "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz",47+ "integrity": "sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==",48+ "license": "MIT"49+ },50+ "node_modules/@chevrotain/cst-dts-gen": {51+ "version": "11.0.3",52+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",53+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",54+ "license": "Apache-2.0",55+ "dependencies": {56+ "@chevrotain/gast": "11.0.3",57+ "@chevrotain/types": "11.0.3",58+ "lodash-es": "4.17.21"59+ }60+ },61+ "node_modules/@chevrotain/gast": {62+ "version": "11.0.3",63+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",64+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",65+ "license": "Apache-2.0",66+ "dependencies": {67+ "@chevrotain/types": "11.0.3",68+ "lodash-es": "4.17.21"69+ }70+ },71+ "node_modules/@chevrotain/regexp-to-ast": {72+ "version": "11.0.3",73+ "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",74+ "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==",75+ "license": "Apache-2.0"76+ },77+ "node_modules/@chevrotain/types": {78+ "version": "11.0.3",79+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",80+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==",81+ "license": "Apache-2.0"82+ },83+ "node_modules/@chevrotain/utils": {84+ "version": "11.0.3",85+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",86+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==",87+ "license": "Apache-2.0"88+ },89+ "node_modules/@esbuild/aix-ppc64": {90+ "version": "0.28.1",91+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz",92+ "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==",93+ "cpu": [94+ "ppc64"95+ ],96+ "dev": true,97+ "license": "MIT",98+ "optional": true,99+ "os": [100+ "aix"101+ ],102+ "engines": {103+ "node": ">=18"104+ }105+ },106+ "node_modules/@esbuild/android-arm": {107+ "version": "0.28.1",108+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz",109+ "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==",110+ "cpu": [111+ "arm"112+ ],113+ "dev": true,114+ "license": "MIT",115+ "optional": true,116+ "os": [117+ "android"118+ ],119+ "engines": {120+ "node": ">=18"121+ }122+ },123+ "node_modules/@esbuild/android-arm64": {124+ "version": "0.28.1",125+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz",126+ "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==",127+ "cpu": [128+ "arm64"129+ ],130+ "dev": true,131+ "license": "MIT",132+ "optional": true,133+ "os": [134+ "android"135+ ],136+ "engines": {137+ "node": ">=18"138+ }139+ },140+ "node_modules/@esbuild/android-x64": {141+ "version": "0.28.1",142+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz",143+ "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==",144+ "cpu": [145+ "x64"146+ ],147+ "dev": true,148+ "license": "MIT",149+ "optional": true,150+ "os": [151+ "android"152+ ],153+ "engines": {154+ "node": ">=18"155+ }156+ },157+ "node_modules/@esbuild/darwin-arm64": {158+ "version": "0.28.1",159+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz",160+ "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==",161+ "cpu": [162+ "arm64"163+ ],164+ "dev": true,165+ "license": "MIT",166+ "optional": true,167+ "os": [168+ "darwin"169+ ],170+ "engines": {171+ "node": ">=18"172+ }173+ },174+ "node_modules/@esbuild/darwin-x64": {175+ "version": "0.28.1",176+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz",177+ "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==",178+ "cpu": [179+ "x64"180+ ],181+ "dev": true,182+ "license": "MIT",183+ "optional": true,184+ "os": [185+ "darwin"186+ ],187+ "engines": {188+ "node": ">=18"189+ }190+ },191+ "node_modules/@esbuild/freebsd-arm64": {192+ "version": "0.28.1",193+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz",194+ "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==",195+ "cpu": [196+ "arm64"197+ ],198+ "dev": true,199+ "license": "MIT",200+ "optional": true,201+ "os": [202+ "freebsd"203+ ],204+ "engines": {205+ "node": ">=18"206+ }207+ },208+ "node_modules/@esbuild/freebsd-x64": {209+ "version": "0.28.1",210+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz",211+ "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==",212+ "cpu": [213+ "x64"214+ ],215+ "dev": true,216+ "license": "MIT",217+ "optional": true,218+ "os": [219+ "freebsd"220+ ],221+ "engines": {222+ "node": ">=18"223+ }224+ },225+ "node_modules/@esbuild/linux-arm": {226+ "version": "0.28.1",227+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz",228+ "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==",229+ "cpu": [230+ "arm"231+ ],232+ "dev": true,233+ "license": "MIT",234+ "optional": true,235+ "os": [236+ "linux"237+ ],238+ "engines": {239+ "node": ">=18"240+ }241+ },242+ "node_modules/@esbuild/linux-arm64": {243+ "version": "0.28.1",244+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz",245+ "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==",246+ "cpu": [247+ "arm64"248+ ],249+ "dev": true,250+ "license": "MIT",251+ "optional": true,252+ "os": [253+ "linux"254+ ],255+ "engines": {256+ "node": ">=18"257+ }258+ },259+ "node_modules/@esbuild/linux-ia32": {260+ "version": "0.28.1",261+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz",262+ "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==",263+ "cpu": [264+ "ia32"265+ ],266+ "dev": true,267+ "license": "MIT",268+ "optional": true,269+ "os": [270+ "linux"271+ ],272+ "engines": {273+ "node": ">=18"274+ }275+ },276+ "node_modules/@esbuild/linux-loong64": {277+ "version": "0.28.1",278+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz",279+ "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==",280+ "cpu": [281+ "loong64"282+ ],283+ "dev": true,284+ "license": "MIT",285+ "optional": true,286+ "os": [287+ "linux"288+ ],289+ "engines": {290+ "node": ">=18"291+ }292+ },293+ "node_modules/@esbuild/linux-mips64el": {294+ "version": "0.28.1",295+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz",296+ "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==",297+ "cpu": [298+ "mips64el"299+ ],300+ "dev": true,301+ "license": "MIT",302+ "optional": true,303+ "os": [304+ "linux"305+ ],306+ "engines": {307+ "node": ">=18"308+ }309+ },310+ "node_modules/@esbuild/linux-ppc64": {311+ "version": "0.28.1",312+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz",313+ "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==",314+ "cpu": [315+ "ppc64"316+ ],317+ "dev": true,318+ "license": "MIT",319+ "optional": true,320+ "os": [321+ "linux"322+ ],323+ "engines": {324+ "node": ">=18"325+ }326+ },327+ "node_modules/@esbuild/linux-riscv64": {328+ "version": "0.28.1",329+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz",330+ "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==",331+ "cpu": [332+ "riscv64"333+ ],334+ "dev": true,335+ "license": "MIT",336+ "optional": true,337+ "os": [338+ "linux"339+ ],340+ "engines": {341+ "node": ">=18"342+ }343+ },344+ "node_modules/@esbuild/linux-s390x": {345+ "version": "0.28.1",346+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz",347+ "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==",348+ "cpu": [349+ "s390x"350+ ],351+ "dev": true,352+ "license": "MIT",353+ "optional": true,354+ "os": [355+ "linux"356+ ],357+ "engines": {358+ "node": ">=18"359+ }360+ },361+ "node_modules/@esbuild/linux-x64": {362+ "version": "0.28.1",363+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz",364+ "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==",365+ "cpu": [366+ "x64"367+ ],368+ "dev": true,369+ "license": "MIT",370+ "optional": true,371+ "os": [372+ "linux"373+ ],374+ "engines": {375+ "node": ">=18"376+ }377+ },378+ "node_modules/@esbuild/netbsd-arm64": {379+ "version": "0.28.1",380+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz",381+ "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==",382+ "cpu": [383+ "arm64"384+ ],385+ "dev": true,386+ "license": "MIT",387+ "optional": true,388+ "os": [389+ "netbsd"390+ ],391+ "engines": {392+ "node": ">=18"393+ }394+ },395+ "node_modules/@esbuild/netbsd-x64": {396+ "version": "0.28.1",397+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz",398+ "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==",399+ "cpu": [400+ "x64"401+ ],402+ "dev": true,403+ "license": "MIT",404+ "optional": true,405+ "os": [406+ "netbsd"407+ ],408+ "engines": {409+ "node": ">=18"410+ }411+ },412+ "node_modules/@esbuild/openbsd-arm64": {413+ "version": "0.28.1",414+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz",415+ "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==",416+ "cpu": [417+ "arm64"418+ ],419+ "dev": true,420+ "license": "MIT",421+ "optional": true,422+ "os": [423+ "openbsd"424+ ],425+ "engines": {426+ "node": ">=18"427+ }428+ },429+ "node_modules/@esbuild/openbsd-x64": {430+ "version": "0.28.1",431+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz",432+ "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==",433+ "cpu": [434+ "x64"435+ ],436+ "dev": true,437+ "license": "MIT",438+ "optional": true,439+ "os": [440+ "openbsd"441+ ],442+ "engines": {443+ "node": ">=18"444+ }445+ },446+ "node_modules/@esbuild/openharmony-arm64": {447+ "version": "0.28.1",448+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz",449+ "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==",450+ "cpu": [451+ "arm64"452+ ],453+ "dev": true,454+ "license": "MIT",455+ "optional": true,456+ "os": [457+ "openharmony"458+ ],459+ "engines": {460+ "node": ">=18"461+ }462+ },463+ "node_modules/@esbuild/sunos-x64": {464+ "version": "0.28.1",465+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz",466+ "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==",467+ "cpu": [468+ "x64"469+ ],470+ "dev": true,471+ "license": "MIT",472+ "optional": true,473+ "os": [474+ "sunos"475+ ],476+ "engines": {477+ "node": ">=18"478+ }479+ },480+ "node_modules/@esbuild/win32-arm64": {481+ "version": "0.28.1",482+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz",483+ "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==",484+ "cpu": [485+ "arm64"486+ ],487+ "dev": true,488+ "license": "MIT",489+ "optional": true,490+ "os": [491+ "win32"492+ ],493+ "engines": {494+ "node": ">=18"495+ }496+ },497+ "node_modules/@esbuild/win32-ia32": {498+ "version": "0.28.1",499+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz",500+ "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==",501+ "cpu": [502+ "ia32"503+ ],504+ "dev": true,505+ "license": "MIT",506+ "optional": true,507+ "os": [508+ "win32"509+ ],510+ "engines": {511+ "node": ">=18"512+ }513+ },514+ "node_modules/@esbuild/win32-x64": {515+ "version": "0.28.1",516+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz",517+ "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==",518+ "cpu": [519+ "x64"520+ ],521+ "dev": true,522+ "license": "MIT",523+ "optional": true,524+ "os": [525+ "win32"526+ ],527+ "engines": {528+ "node": ">=18"529+ }530+ },531+ "node_modules/@excalidraw/excalidraw": {532+ "version": "0.18.1",533+ "resolved": "https://registry.npmjs.org/@excalidraw/excalidraw/-/excalidraw-0.18.1.tgz",534+ "integrity": "sha512-6i5Gt7IDTOH//qa0Z315Ly5iVRhjWpu2whrlQFqkuwrkKUWgRsMk0P5qdE7bpyDpai7jeLeWYkyj1eVAfni1lw==",535+ "license": "MIT",536+ "dependencies": {537+ "@braintree/sanitize-url": "6.0.2",538+ "@excalidraw/laser-pointer": "1.3.1",539+ "@excalidraw/mermaid-to-excalidraw": "2.2.2",540+ "@excalidraw/random-username": "1.1.0",541+ "@radix-ui/react-popover": "1.1.6",542+ "@radix-ui/react-tabs": "1.0.2",543+ "browser-fs-access": "0.29.1",544+ "canvas-roundrect-polyfill": "0.0.1",545+ "clsx": "1.1.1",546+ "cross-env": "7.0.3",547+ "es6-promise-pool": "2.5.0",548+ "fractional-indexing": "3.2.0",549+ "fuzzy": "0.1.3",550+ "image-blob-reduce": "3.0.1",551+ "jotai": "2.11.0",552+ "jotai-scope": "0.7.2",553+ "lodash.debounce": "4.0.8",554+ "lodash.throttle": "4.1.1",555+ "nanoid": "3.3.3",556+ "open-color": "1.9.1",557+ "pako": "2.0.3",558+ "perfect-freehand": "1.2.0",559+ "pica": "7.1.1",560+ "png-chunk-text": "1.0.0",561+ "png-chunks-encode": "1.0.0",562+ "png-chunks-extract": "1.0.0",563+ "points-on-curve": "1.0.1",564+ "pwacompat": "2.0.17",565+ "roughjs": "4.6.4",566+ "sass": "1.51.0",567+ "tunnel-rat": "0.1.2"568+ },569+ "peerDependencies": {570+ "react": "^17.0.2 || ^18.2.0 || ^19.0.0",571+ "react-dom": "^17.0.2 || ^18.2.0 || ^19.0.0"572+ }573+ },574+ "node_modules/@excalidraw/laser-pointer": {575+ "version": "1.3.1",576+ "resolved": "https://registry.npmjs.org/@excalidraw/laser-pointer/-/laser-pointer-1.3.1.tgz",577+ "integrity": "sha512-psA1z1N2qeAfsORdXc9JmD2y4CmDwmuMRxnNdJHZexIcPwaNEyIpNcelw+QkL9rz9tosaN9krXuKaRqYpRAR6g==",578+ "license": "MIT"579+ },580+ "node_modules/@excalidraw/markdown-to-text": {581+ "version": "0.1.2",582+ "resolved": "https://registry.npmjs.org/@excalidraw/markdown-to-text/-/markdown-to-text-0.1.2.tgz",583+ "integrity": "sha512-1nDXBNAojfi3oSFwJswKREkFm5wrSjqay81QlyRv2pkITG/XYB5v+oChENVBQLcxQwX4IUATWvXM5BcaNhPiIg==",584+ "license": "MIT"585+ },586+ "node_modules/@excalidraw/mermaid-to-excalidraw": {587+ "version": "2.2.2",588+ "resolved": "https://registry.npmjs.org/@excalidraw/mermaid-to-excalidraw/-/mermaid-to-excalidraw-2.2.2.tgz",589+ "integrity": "sha512-5VKQq5CdRocC82vOIUpQ5ufJOVV9FpBTdHGA+ULqazeIVV+cr299877omQCibsdS3Bpitz2fsnTwnIXEmLVDSg==",590+ "license": "MIT",591+ "dependencies": {592+ "@excalidraw/markdown-to-text": "0.1.2",593+ "@mermaid-js/parser": "^0.6.3",594+ "mermaid": "^11.12.1",595+ "nanoid": "4.0.2"596+ }597+ },598+ "node_modules/@excalidraw/mermaid-to-excalidraw/node_modules/nanoid": {599+ "version": "4.0.2",600+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz",601+ "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==",602+ "funding": [603+ {604+ "type": "github",605+ "url": "https://github.com/sponsors/ai"606+ }607+ ],608+ "license": "MIT",609+ "bin": {610+ "nanoid": "bin/nanoid.js"611+ },612+ "engines": {613+ "node": "^14 || ^16 || >=18"614+ }615+ },616+ "node_modules/@excalidraw/random-username": {617+ "version": "1.1.0",618+ "resolved": "https://registry.npmjs.org/@excalidraw/random-username/-/random-username-1.1.0.tgz",619+ "integrity": "sha512-nULYsQxkWHnbmHvcs+efMkJ4/9TtvNyFeLyHdeGxW0zHs6P+jYVqcRff9A6Vq9w9JXeDRnRh2VKvTtS19GW2qA==",620+ "license": "MIT",621+ "engines": {622+ "node": ">=10"623+ }624+ },625+ "node_modules/@floating-ui/core": {626+ "version": "1.8.0",627+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz",628+ "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==",629+ "license": "MIT",630+ "dependencies": {631+ "@floating-ui/utils": "^0.2.12"632+ }633+ },634+ "node_modules/@floating-ui/dom": {635+ "version": "1.8.0",636+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz",637+ "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==",638+ "license": "MIT",639+ "dependencies": {640+ "@floating-ui/core": "^1.8.0",641+ "@floating-ui/utils": "^0.2.12"642+ }643+ },644+ "node_modules/@floating-ui/react-dom": {645+ "version": "2.1.9",646+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz",647+ "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==",648+ "license": "MIT",649+ "dependencies": {650+ "@floating-ui/dom": "^1.8.0"651+ },652+ "peerDependencies": {653+ "react": ">=16.8.0",654+ "react-dom": ">=16.8.0"655+ }656+ },657+ "node_modules/@floating-ui/utils": {658+ "version": "0.2.12",659+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz",660+ "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==",661+ "license": "MIT"662+ },663+ "node_modules/@iconify/types": {664+ "version": "2.0.0",665+ "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",666+ "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",667+ "license": "MIT"668+ },669+ "node_modules/@iconify/utils": {670+ "version": "3.1.4",671+ "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.4.tgz",672+ "integrity": "sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==",673+ "license": "MIT",674+ "dependencies": {675+ "@antfu/install-pkg": "^1.1.0",676+ "@iconify/types": "^2.0.0",677+ "import-meta-resolve": "^4.2.0"678+ }679+ },680+ "node_modules/@mermaid-js/parser": {681+ "version": "0.6.3",682+ "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.3.tgz",683+ "integrity": "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==",684+ "license": "MIT",685+ "dependencies": {686+ "langium": "3.3.1"687+ }688+ },689+ "node_modules/@radix-ui/primitive": {690+ "version": "1.1.1",691+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz",692+ "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==",693+ "license": "MIT"694+ },695+ "node_modules/@radix-ui/react-arrow": {696+ "version": "1.1.2",697+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.2.tgz",698+ "integrity": "sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==",699+ "license": "MIT",700+ "dependencies": {701+ "@radix-ui/react-primitive": "2.0.2"702+ },703+ "peerDependencies": {704+ "@types/react": "*",705+ "@types/react-dom": "*",706+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",707+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"708+ },709+ "peerDependenciesMeta": {710+ "@types/react": {711+ "optional": true712+ },713+ "@types/react-dom": {714+ "optional": true715+ }716+ }717+ },718+ "node_modules/@radix-ui/react-collection": {719+ "version": "1.0.1",720+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.1.tgz",721+ "integrity": "sha512-uuiFbs+YCKjn3X1DTSx9G7BHApu4GHbi3kgiwsnFUbOKCrwejAJv4eE4Vc8C0Oaxt9T0aV4ox0WCOdx+39Xo+g==",722+ "license": "MIT",723+ "dependencies": {724+ "@babel/runtime": "^7.13.10",725+ "@radix-ui/react-compose-refs": "1.0.0",726+ "@radix-ui/react-context": "1.0.0",727+ "@radix-ui/react-primitive": "1.0.1",728+ "@radix-ui/react-slot": "1.0.1"729+ },730+ "peerDependencies": {731+ "react": "^16.8 || ^17.0 || ^18.0",732+ "react-dom": "^16.8 || ^17.0 || ^18.0"733+ }734+ },735+ "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-compose-refs": {736+ "version": "1.0.0",737+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz",738+ "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==",739+ "license": "MIT",740+ "dependencies": {741+ "@babel/runtime": "^7.13.10"742+ },743+ "peerDependencies": {744+ "react": "^16.8 || ^17.0 || ^18.0"745+ }746+ },747+ "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": {748+ "version": "1.0.0",749+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.0.tgz",750+ "integrity": "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==",751+ "license": "MIT",752+ "dependencies": {753+ "@babel/runtime": "^7.13.10"754+ },755+ "peerDependencies": {756+ "react": "^16.8 || ^17.0 || ^18.0"757+ }758+ },759+ "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-primitive": {760+ "version": "1.0.1",761+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.1.tgz",762+ "integrity": "sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==",763+ "license": "MIT",764+ "dependencies": {765+ "@babel/runtime": "^7.13.10",766+ "@radix-ui/react-slot": "1.0.1"767+ },768+ "peerDependencies": {769+ "react": "^16.8 || ^17.0 || ^18.0",770+ "react-dom": "^16.8 || ^17.0 || ^18.0"771+ }772+ },773+ "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": {774+ "version": "1.0.1",775+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz",776+ "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==",777+ "license": "MIT",778+ "dependencies": {779+ "@babel/runtime": "^7.13.10",780+ "@radix-ui/react-compose-refs": "1.0.0"781+ },782+ "peerDependencies": {783+ "react": "^16.8 || ^17.0 || ^18.0"784+ }785+ },786+ "node_modules/@radix-ui/react-compose-refs": {787+ "version": "1.1.1",788+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz",789+ "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==",790+ "license": "MIT",791+ "peerDependencies": {792+ "@types/react": "*",793+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"794+ },795+ "peerDependenciesMeta": {796+ "@types/react": {797+ "optional": true798+ }799+ }800+ },801+ "node_modules/@radix-ui/react-context": {802+ "version": "1.1.1",803+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz",804+ "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==",805+ "license": "MIT",806+ "peerDependencies": {807+ "@types/react": "*",808+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"809+ },810+ "peerDependenciesMeta": {811+ "@types/react": {812+ "optional": true813+ }814+ }815+ },816+ "node_modules/@radix-ui/react-direction": {817+ "version": "1.0.0",818+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.0.tgz",819+ "integrity": "sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==",820+ "license": "MIT",821+ "dependencies": {822+ "@babel/runtime": "^7.13.10"823+ },824+ "peerDependencies": {825+ "react": "^16.8 || ^17.0 || ^18.0"826+ }827+ },828+ "node_modules/@radix-ui/react-dismissable-layer": {829+ "version": "1.1.5",830+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.5.tgz",831+ "integrity": "sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==",832+ "license": "MIT",833+ "dependencies": {834+ "@radix-ui/primitive": "1.1.1",835+ "@radix-ui/react-compose-refs": "1.1.1",836+ "@radix-ui/react-primitive": "2.0.2",837+ "@radix-ui/react-use-callback-ref": "1.1.0",838+ "@radix-ui/react-use-escape-keydown": "1.1.0"839+ },840+ "peerDependencies": {841+ "@types/react": "*",842+ "@types/react-dom": "*",843+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",844+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"845+ },846+ "peerDependenciesMeta": {847+ "@types/react": {848+ "optional": true849+ },850+ "@types/react-dom": {851+ "optional": true852+ }853+ }854+ },855+ "node_modules/@radix-ui/react-focus-guards": {856+ "version": "1.1.1",857+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz",858+ "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==",859+ "license": "MIT",860+ "peerDependencies": {861+ "@types/react": "*",862+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"863+ },864+ "peerDependenciesMeta": {865+ "@types/react": {866+ "optional": true867+ }868+ }869+ },870+ "node_modules/@radix-ui/react-focus-scope": {871+ "version": "1.1.2",872+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.2.tgz",873+ "integrity": "sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==",874+ "license": "MIT",875+ "dependencies": {876+ "@radix-ui/react-compose-refs": "1.1.1",877+ "@radix-ui/react-primitive": "2.0.2",878+ "@radix-ui/react-use-callback-ref": "1.1.0"879+ },880+ "peerDependencies": {881+ "@types/react": "*",882+ "@types/react-dom": "*",883+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",884+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"885+ },886+ "peerDependenciesMeta": {887+ "@types/react": {888+ "optional": true889+ },890+ "@types/react-dom": {891+ "optional": true892+ }893+ }894+ },895+ "node_modules/@radix-ui/react-id": {896+ "version": "1.1.0",897+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz",898+ "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==",899+ "license": "MIT",900+ "dependencies": {901+ "@radix-ui/react-use-layout-effect": "1.1.0"902+ },903+ "peerDependencies": {904+ "@types/react": "*",905+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"906+ },907+ "peerDependenciesMeta": {908+ "@types/react": {909+ "optional": true910+ }911+ }912+ },913+ "node_modules/@radix-ui/react-popover": {914+ "version": "1.1.6",915+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.6.tgz",916+ "integrity": "sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==",917+ "license": "MIT",918+ "dependencies": {919+ "@radix-ui/primitive": "1.1.1",920+ "@radix-ui/react-compose-refs": "1.1.1",921+ "@radix-ui/react-context": "1.1.1",922+ "@radix-ui/react-dismissable-layer": "1.1.5",923+ "@radix-ui/react-focus-guards": "1.1.1",924+ "@radix-ui/react-focus-scope": "1.1.2",925+ "@radix-ui/react-id": "1.1.0",926+ "@radix-ui/react-popper": "1.2.2",927+ "@radix-ui/react-portal": "1.1.4",928+ "@radix-ui/react-presence": "1.1.2",929+ "@radix-ui/react-primitive": "2.0.2",930+ "@radix-ui/react-slot": "1.1.2",931+ "@radix-ui/react-use-controllable-state": "1.1.0",932+ "aria-hidden": "^1.2.4",933+ "react-remove-scroll": "^2.6.3"934+ },935+ "peerDependencies": {936+ "@types/react": "*",937+ "@types/react-dom": "*",938+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",939+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"940+ },941+ "peerDependenciesMeta": {942+ "@types/react": {943+ "optional": true944+ },945+ "@types/react-dom": {946+ "optional": true947+ }948+ }949+ },950+ "node_modules/@radix-ui/react-popper": {951+ "version": "1.2.2",952+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.2.tgz",953+ "integrity": "sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==",954+ "license": "MIT",955+ "dependencies": {956+ "@floating-ui/react-dom": "^2.0.0",957+ "@radix-ui/react-arrow": "1.1.2",958+ "@radix-ui/react-compose-refs": "1.1.1",959+ "@radix-ui/react-context": "1.1.1",960+ "@radix-ui/react-primitive": "2.0.2",961+ "@radix-ui/react-use-callback-ref": "1.1.0",962+ "@radix-ui/react-use-layout-effect": "1.1.0",963+ "@radix-ui/react-use-rect": "1.1.0",964+ "@radix-ui/react-use-size": "1.1.0",965+ "@radix-ui/rect": "1.1.0"966+ },967+ "peerDependencies": {968+ "@types/react": "*",969+ "@types/react-dom": "*",970+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",971+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"972+ },973+ "peerDependenciesMeta": {974+ "@types/react": {975+ "optional": true976+ },977+ "@types/react-dom": {978+ "optional": true979+ }980+ }981+ },982+ "node_modules/@radix-ui/react-portal": {983+ "version": "1.1.4",984+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.4.tgz",985+ "integrity": "sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==",986+ "license": "MIT",987+ "dependencies": {988+ "@radix-ui/react-primitive": "2.0.2",989+ "@radix-ui/react-use-layout-effect": "1.1.0"990+ },991+ "peerDependencies": {992+ "@types/react": "*",993+ "@types/react-dom": "*",994+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",995+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"996+ },997+ "peerDependenciesMeta": {998+ "@types/react": {999+ "optional": true1000+ },1001+ "@types/react-dom": {1002+ "optional": true1003+ }1004+ }1005+ },1006+ "node_modules/@radix-ui/react-presence": {1007+ "version": "1.1.2",1008+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz",1009+ "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==",1010+ "license": "MIT",1011+ "dependencies": {1012+ "@radix-ui/react-compose-refs": "1.1.1",1013+ "@radix-ui/react-use-layout-effect": "1.1.0"1014+ },1015+ "peerDependencies": {1016+ "@types/react": "*",1017+ "@types/react-dom": "*",1018+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",1019+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1020+ },1021+ "peerDependenciesMeta": {1022+ "@types/react": {1023+ "optional": true1024+ },1025+ "@types/react-dom": {1026+ "optional": true1027+ }1028+ }1029+ },1030+ "node_modules/@radix-ui/react-primitive": {1031+ "version": "2.0.2",1032+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz",1033+ "integrity": "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==",1034+ "license": "MIT",1035+ "dependencies": {1036+ "@radix-ui/react-slot": "1.1.2"1037+ },1038+ "peerDependencies": {1039+ "@types/react": "*",1040+ "@types/react-dom": "*",1041+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",1042+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1043+ },1044+ "peerDependenciesMeta": {1045+ "@types/react": {1046+ "optional": true1047+ },1048+ "@types/react-dom": {1049+ "optional": true1050+ }1051+ }1052+ },1053+ "node_modules/@radix-ui/react-roving-focus": {1054+ "version": "1.0.2",1055+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.2.tgz",1056+ "integrity": "sha512-HLK+CqD/8pN6GfJm3U+cqpqhSKYAWiOJDe+A+8MfxBnOue39QEeMa43csUn2CXCHQT0/mewh1LrrG4tfkM9DMA==",1057+ "license": "MIT",1058+ "dependencies": {1059+ "@babel/runtime": "^7.13.10",1060+ "@radix-ui/primitive": "1.0.0",1061+ "@radix-ui/react-collection": "1.0.1",1062+ "@radix-ui/react-compose-refs": "1.0.0",1063+ "@radix-ui/react-context": "1.0.0",1064+ "@radix-ui/react-direction": "1.0.0",1065+ "@radix-ui/react-id": "1.0.0",1066+ "@radix-ui/react-primitive": "1.0.1",1067+ "@radix-ui/react-use-callback-ref": "1.0.0",1068+ "@radix-ui/react-use-controllable-state": "1.0.0"1069+ },1070+ "peerDependencies": {1071+ "react": "^16.8 || ^17.0 || ^18.0",1072+ "react-dom": "^16.8 || ^17.0 || ^18.0"1073+ }1074+ },1075+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/primitive": {1076+ "version": "1.0.0",1077+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.0.tgz",1078+ "integrity": "sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==",1079+ "license": "MIT",1080+ "dependencies": {1081+ "@babel/runtime": "^7.13.10"1082+ }1083+ },1084+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-compose-refs": {1085+ "version": "1.0.0",1086+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz",1087+ "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==",1088+ "license": "MIT",1089+ "dependencies": {1090+ "@babel/runtime": "^7.13.10"1091+ },1092+ "peerDependencies": {1093+ "react": "^16.8 || ^17.0 || ^18.0"1094+ }1095+ },1096+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": {1097+ "version": "1.0.0",1098+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.0.tgz",1099+ "integrity": "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==",1100+ "license": "MIT",1101+ "dependencies": {1102+ "@babel/runtime": "^7.13.10"1103+ },1104+ "peerDependencies": {1105+ "react": "^16.8 || ^17.0 || ^18.0"1106+ }1107+ },1108+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-id": {1109+ "version": "1.0.0",1110+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz",1111+ "integrity": "sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==",1112+ "license": "MIT",1113+ "dependencies": {1114+ "@babel/runtime": "^7.13.10",1115+ "@radix-ui/react-use-layout-effect": "1.0.0"1116+ },1117+ "peerDependencies": {1118+ "react": "^16.8 || ^17.0 || ^18.0"1119+ }1120+ },1121+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-primitive": {1122+ "version": "1.0.1",1123+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.1.tgz",1124+ "integrity": "sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==",1125+ "license": "MIT",1126+ "dependencies": {1127+ "@babel/runtime": "^7.13.10",1128+ "@radix-ui/react-slot": "1.0.1"1129+ },1130+ "peerDependencies": {1131+ "react": "^16.8 || ^17.0 || ^18.0",1132+ "react-dom": "^16.8 || ^17.0 || ^18.0"1133+ }1134+ },1135+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-slot": {1136+ "version": "1.0.1",1137+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz",1138+ "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==",1139+ "license": "MIT",1140+ "dependencies": {1141+ "@babel/runtime": "^7.13.10",1142+ "@radix-ui/react-compose-refs": "1.0.0"1143+ },1144+ "peerDependencies": {1145+ "react": "^16.8 || ^17.0 || ^18.0"1146+ }1147+ },1148+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-use-callback-ref": {1149+ "version": "1.0.0",1150+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz",1151+ "integrity": "sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==",1152+ "license": "MIT",1153+ "dependencies": {1154+ "@babel/runtime": "^7.13.10"1155+ },1156+ "peerDependencies": {1157+ "react": "^16.8 || ^17.0 || ^18.0"1158+ }1159+ },1160+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-use-controllable-state": {1161+ "version": "1.0.0",1162+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz",1163+ "integrity": "sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==",1164+ "license": "MIT",1165+ "dependencies": {1166+ "@babel/runtime": "^7.13.10",1167+ "@radix-ui/react-use-callback-ref": "1.0.0"1168+ },1169+ "peerDependencies": {1170+ "react": "^16.8 || ^17.0 || ^18.0"1171+ }1172+ },1173+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-use-layout-effect": {1174+ "version": "1.0.0",1175+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz",1176+ "integrity": "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==",1177+ "license": "MIT",1178+ "dependencies": {1179+ "@babel/runtime": "^7.13.10"1180+ },1181+ "peerDependencies": {1182+ "react": "^16.8 || ^17.0 || ^18.0"1183+ }1184+ },1185+ "node_modules/@radix-ui/react-slot": {1186+ "version": "1.1.2",1187+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.2.tgz",1188+ "integrity": "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==",1189+ "license": "MIT",1190+ "dependencies": {1191+ "@radix-ui/react-compose-refs": "1.1.1"1192+ },1193+ "peerDependencies": {1194+ "@types/react": "*",1195+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1196+ },1197+ "peerDependenciesMeta": {1198+ "@types/react": {1199+ "optional": true1200+ }1201+ }1202+ },1203+ "node_modules/@radix-ui/react-tabs": {1204+ "version": "1.0.2",1205+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.0.2.tgz",1206+ "integrity": "sha512-gOUwh+HbjCuL0UCo8kZ+kdUEG8QtpdO4sMQduJ34ZEz0r4922g9REOBM+vIsfwtGxSug4Yb1msJMJYN2Bk8TpQ==",1207+ "license": "MIT",1208+ "dependencies": {1209+ "@babel/runtime": "^7.13.10",1210+ "@radix-ui/primitive": "1.0.0",1211+ "@radix-ui/react-context": "1.0.0",1212+ "@radix-ui/react-direction": "1.0.0",1213+ "@radix-ui/react-id": "1.0.0",1214+ "@radix-ui/react-presence": "1.0.0",1215+ "@radix-ui/react-primitive": "1.0.1",1216+ "@radix-ui/react-roving-focus": "1.0.2",1217+ "@radix-ui/react-use-controllable-state": "1.0.0"1218+ },1219+ "peerDependencies": {1220+ "react": "^16.8 || ^17.0 || ^18.0",1221+ "react-dom": "^16.8 || ^17.0 || ^18.0"1222+ }1223+ },1224+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/primitive": {1225+ "version": "1.0.0",1226+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.0.tgz",1227+ "integrity": "sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==",1228+ "license": "MIT",1229+ "dependencies": {1230+ "@babel/runtime": "^7.13.10"1231+ }1232+ },1233+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-compose-refs": {1234+ "version": "1.0.0",1235+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz",1236+ "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==",1237+ "license": "MIT",1238+ "dependencies": {1239+ "@babel/runtime": "^7.13.10"1240+ },1241+ "peerDependencies": {1242+ "react": "^16.8 || ^17.0 || ^18.0"1243+ }1244+ },1245+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-context": {1246+ "version": "1.0.0",1247+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.0.tgz",1248+ "integrity": "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==",1249+ "license": "MIT",1250+ "dependencies": {1251+ "@babel/runtime": "^7.13.10"1252+ },1253+ "peerDependencies": {1254+ "react": "^16.8 || ^17.0 || ^18.0"1255+ }1256+ },1257+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-id": {1258+ "version": "1.0.0",1259+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz",1260+ "integrity": "sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==",1261+ "license": "MIT",1262+ "dependencies": {1263+ "@babel/runtime": "^7.13.10",1264+ "@radix-ui/react-use-layout-effect": "1.0.0"1265+ },1266+ "peerDependencies": {1267+ "react": "^16.8 || ^17.0 || ^18.0"1268+ }1269+ },1270+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-presence": {1271+ "version": "1.0.0",1272+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.0.tgz",1273+ "integrity": "sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==",1274+ "license": "MIT",1275+ "dependencies": {1276+ "@babel/runtime": "^7.13.10",1277+ "@radix-ui/react-compose-refs": "1.0.0",1278+ "@radix-ui/react-use-layout-effect": "1.0.0"1279+ },1280+ "peerDependencies": {1281+ "react": "^16.8 || ^17.0 || ^18.0",1282+ "react-dom": "^16.8 || ^17.0 || ^18.0"1283+ }1284+ },1285+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-primitive": {1286+ "version": "1.0.1",1287+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.1.tgz",1288+ "integrity": "sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==",1289+ "license": "MIT",1290+ "dependencies": {1291+ "@babel/runtime": "^7.13.10",1292+ "@radix-ui/react-slot": "1.0.1"1293+ },1294+ "peerDependencies": {1295+ "react": "^16.8 || ^17.0 || ^18.0",1296+ "react-dom": "^16.8 || ^17.0 || ^18.0"1297+ }1298+ },1299+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-slot": {1300+ "version": "1.0.1",1301+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.1.tgz",1302+ "integrity": "sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==",1303+ "license": "MIT",1304+ "dependencies": {1305+ "@babel/runtime": "^7.13.10",1306+ "@radix-ui/react-compose-refs": "1.0.0"1307+ },1308+ "peerDependencies": {1309+ "react": "^16.8 || ^17.0 || ^18.0"1310+ }1311+ },1312+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-use-callback-ref": {1313+ "version": "1.0.0",1314+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz",1315+ "integrity": "sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==",1316+ "license": "MIT",1317+ "dependencies": {1318+ "@babel/runtime": "^7.13.10"1319+ },1320+ "peerDependencies": {1321+ "react": "^16.8 || ^17.0 || ^18.0"1322+ }1323+ },1324+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-use-controllable-state": {1325+ "version": "1.0.0",1326+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz",1327+ "integrity": "sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==",1328+ "license": "MIT",1329+ "dependencies": {1330+ "@babel/runtime": "^7.13.10",1331+ "@radix-ui/react-use-callback-ref": "1.0.0"1332+ },1333+ "peerDependencies": {1334+ "react": "^16.8 || ^17.0 || ^18.0"1335+ }1336+ },1337+ "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-use-layout-effect": {1338+ "version": "1.0.0",1339+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz",1340+ "integrity": "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==",1341+ "license": "MIT",1342+ "dependencies": {1343+ "@babel/runtime": "^7.13.10"1344+ },1345+ "peerDependencies": {1346+ "react": "^16.8 || ^17.0 || ^18.0"1347+ }1348+ },1349+ "node_modules/@radix-ui/react-use-callback-ref": {1350+ "version": "1.1.0",1351+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",1352+ "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==",1353+ "license": "MIT",1354+ "peerDependencies": {1355+ "@types/react": "*",1356+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1357+ },1358+ "peerDependenciesMeta": {1359+ "@types/react": {1360+ "optional": true1361+ }1362+ }1363+ },1364+ "node_modules/@radix-ui/react-use-controllable-state": {1365+ "version": "1.1.0",1366+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz",1367+ "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==",1368+ "license": "MIT",1369+ "dependencies": {1370+ "@radix-ui/react-use-callback-ref": "1.1.0"1371+ },1372+ "peerDependencies": {1373+ "@types/react": "*",1374+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1375+ },1376+ "peerDependenciesMeta": {1377+ "@types/react": {1378+ "optional": true1379+ }1380+ }1381+ },1382+ "node_modules/@radix-ui/react-use-escape-keydown": {1383+ "version": "1.1.0",1384+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz",1385+ "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==",1386+ "license": "MIT",1387+ "dependencies": {1388+ "@radix-ui/react-use-callback-ref": "1.1.0"1389+ },1390+ "peerDependencies": {1391+ "@types/react": "*",1392+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1393+ },1394+ "peerDependenciesMeta": {1395+ "@types/react": {1396+ "optional": true1397+ }1398+ }1399+ },1400+ "node_modules/@radix-ui/react-use-layout-effect": {1401+ "version": "1.1.0",1402+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz",1403+ "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==",1404+ "license": "MIT",1405+ "peerDependencies": {1406+ "@types/react": "*",1407+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1408+ },1409+ "peerDependenciesMeta": {1410+ "@types/react": {1411+ "optional": true1412+ }1413+ }1414+ },1415+ "node_modules/@radix-ui/react-use-rect": {1416+ "version": "1.1.0",1417+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz",1418+ "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==",1419+ "license": "MIT",1420+ "dependencies": {1421+ "@radix-ui/rect": "1.1.0"1422+ },1423+ "peerDependencies": {1424+ "@types/react": "*",1425+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1426+ },1427+ "peerDependenciesMeta": {1428+ "@types/react": {1429+ "optional": true1430+ }1431+ }1432+ },1433+ "node_modules/@radix-ui/react-use-size": {1434+ "version": "1.1.0",1435+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz",1436+ "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==",1437+ "license": "MIT",1438+ "dependencies": {1439+ "@radix-ui/react-use-layout-effect": "1.1.0"1440+ },1441+ "peerDependencies": {1442+ "@types/react": "*",1443+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"1444+ },1445+ "peerDependenciesMeta": {1446+ "@types/react": {1447+ "optional": true1448+ }1449+ }1450+ },1451+ "node_modules/@radix-ui/rect": {1452+ "version": "1.1.0",1453+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz",1454+ "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==",1455+ "license": "MIT"1456+ },1457+ "node_modules/@types/d3": {1458+ "version": "7.4.3",1459+ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",1460+ "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",1461+ "license": "MIT",1462+ "dependencies": {1463+ "@types/d3-array": "*",1464+ "@types/d3-axis": "*",1465+ "@types/d3-brush": "*",1466+ "@types/d3-chord": "*",1467+ "@types/d3-color": "*",1468+ "@types/d3-contour": "*",1469+ "@types/d3-delaunay": "*",1470+ "@types/d3-dispatch": "*",1471+ "@types/d3-drag": "*",1472+ "@types/d3-dsv": "*",1473+ "@types/d3-ease": "*",1474+ "@types/d3-fetch": "*",1475+ "@types/d3-force": "*",1476+ "@types/d3-format": "*",1477+ "@types/d3-geo": "*",1478+ "@types/d3-hierarchy": "*",1479+ "@types/d3-interpolate": "*",1480+ "@types/d3-path": "*",1481+ "@types/d3-polygon": "*",1482+ "@types/d3-quadtree": "*",1483+ "@types/d3-random": "*",1484+ "@types/d3-scale": "*",1485+ "@types/d3-scale-chromatic": "*",1486+ "@types/d3-selection": "*",1487+ "@types/d3-shape": "*",1488+ "@types/d3-time": "*",1489+ "@types/d3-time-format": "*",1490+ "@types/d3-timer": "*",1491+ "@types/d3-transition": "*",1492+ "@types/d3-zoom": "*"1493+ }1494+ },1495+ "node_modules/@types/d3-array": {1496+ "version": "3.2.2",1497+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz",1498+ "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",1499+ "license": "MIT"1500+ },1501+ "node_modules/@types/d3-axis": {1502+ "version": "3.0.6",1503+ "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",1504+ "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",1505+ "license": "MIT",1506+ "dependencies": {1507+ "@types/d3-selection": "*"1508+ }1509+ },1510+ "node_modules/@types/d3-brush": {1511+ "version": "3.0.6",1512+ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",1513+ "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",1514+ "license": "MIT",1515+ "dependencies": {1516+ "@types/d3-selection": "*"1517+ }1518+ },1519+ "node_modules/@types/d3-chord": {1520+ "version": "3.0.6",1521+ "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",1522+ "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==",1523+ "license": "MIT"1524+ },1525+ "node_modules/@types/d3-color": {1526+ "version": "3.1.3",1527+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",1528+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",1529+ "license": "MIT"1530+ },1531+ "node_modules/@types/d3-contour": {1532+ "version": "3.0.6",1533+ "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",1534+ "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",1535+ "license": "MIT",1536+ "dependencies": {1537+ "@types/d3-array": "*",1538+ "@types/geojson": "*"1539+ }1540+ },1541+ "node_modules/@types/d3-delaunay": {1542+ "version": "6.0.4",1543+ "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",1544+ "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",1545+ "license": "MIT"1546+ },1547+ "node_modules/@types/d3-dispatch": {1548+ "version": "3.0.7",1549+ "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz",1550+ "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==",1551+ "license": "MIT"1552+ },1553+ "node_modules/@types/d3-drag": {1554+ "version": "3.0.7",1555+ "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",1556+ "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",1557+ "license": "MIT",1558+ "dependencies": {1559+ "@types/d3-selection": "*"1560+ }1561+ },1562+ "node_modules/@types/d3-dsv": {1563+ "version": "3.0.7",1564+ "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",1565+ "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",1566+ "license": "MIT"1567+ },1568+ "node_modules/@types/d3-ease": {1569+ "version": "3.0.2",1570+ "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",1571+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",1572+ "license": "MIT"1573+ },1574+ "node_modules/@types/d3-fetch": {1575+ "version": "3.0.7",1576+ "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",1577+ "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",1578+ "license": "MIT",1579+ "dependencies": {1580+ "@types/d3-dsv": "*"1581+ }1582+ },1583+ "node_modules/@types/d3-force": {1584+ "version": "3.0.10",1585+ "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",1586+ "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",1587+ "license": "MIT"1588+ },1589+ "node_modules/@types/d3-format": {1590+ "version": "3.0.4",1591+ "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",1592+ "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",1593+ "license": "MIT"1594+ },1595+ "node_modules/@types/d3-geo": {1596+ "version": "3.1.1",1597+ "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.1.tgz",1598+ "integrity": "sha512-65Emv9fQiQQqphLlRkuQ5ypPsOmWPhtBGCMv61JDPEPMvsx+gzhGf74yw1a78xFKPj6zw4AgQICJoQv0vK9M2w==",1599+ "license": "MIT",1600+ "dependencies": {1601+ "@types/geojson": "*"1602+ }1603+ },1604+ "node_modules/@types/d3-hierarchy": {1605+ "version": "3.1.7",1606+ "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",1607+ "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",1608+ "license": "MIT"1609+ },1610+ "node_modules/@types/d3-interpolate": {1611+ "version": "3.0.4",1612+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",1613+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",1614+ "license": "MIT",1615+ "dependencies": {1616+ "@types/d3-color": "*"1617+ }1618+ },1619+ "node_modules/@types/d3-path": {1620+ "version": "3.1.1",1621+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",1622+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",1623+ "license": "MIT"1624+ },1625+ "node_modules/@types/d3-polygon": {1626+ "version": "3.0.2",1627+ "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",1628+ "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==",1629+ "license": "MIT"1630+ },1631+ "node_modules/@types/d3-quadtree": {1632+ "version": "3.0.6",1633+ "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",1634+ "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",1635+ "license": "MIT"1636+ },1637+ "node_modules/@types/d3-random": {1638+ "version": "3.0.4",1639+ "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.4.tgz",1640+ "integrity": "sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA==",1641+ "license": "MIT"1642+ },1643+ "node_modules/@types/d3-scale": {1644+ "version": "4.0.9",1645+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",1646+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",1647+ "license": "MIT",1648+ "dependencies": {1649+ "@types/d3-time": "*"1650+ }1651+ },1652+ "node_modules/@types/d3-scale-chromatic": {1653+ "version": "3.1.0",1654+ "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",1655+ "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",1656+ "license": "MIT"1657+ },1658+ "node_modules/@types/d3-selection": {1659+ "version": "3.0.11",1660+ "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",1661+ "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",1662+ "license": "MIT"1663+ },1664+ "node_modules/@types/d3-shape": {1665+ "version": "3.1.8",1666+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz",1667+ "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==",1668+ "license": "MIT",1669+ "dependencies": {1670+ "@types/d3-path": "*"1671+ }1672+ },1673+ "node_modules/@types/d3-time": {1674+ "version": "3.0.4",1675+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",1676+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",1677+ "license": "MIT"1678+ },1679+ "node_modules/@types/d3-time-format": {1680+ "version": "4.0.3",1681+ "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",1682+ "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==",1683+ "license": "MIT"1684+ },1685+ "node_modules/@types/d3-timer": {1686+ "version": "3.0.2",1687+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",1688+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",1689+ "license": "MIT"1690+ },1691+ "node_modules/@types/d3-transition": {1692+ "version": "3.0.9",1693+ "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",1694+ "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==",1695+ "license": "MIT",1696+ "dependencies": {1697+ "@types/d3-selection": "*"1698+ }1699+ },1700+ "node_modules/@types/d3-zoom": {1701+ "version": "3.0.8",1702+ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",1703+ "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",1704+ "license": "MIT",1705+ "dependencies": {1706+ "@types/d3-interpolate": "*",1707+ "@types/d3-selection": "*"1708+ }1709+ },1710+ "node_modules/@types/geojson": {1711+ "version": "7946.0.16",1712+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",1713+ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",1714+ "license": "MIT"1715+ },1716+ "node_modules/@types/trusted-types": {1717+ "version": "2.0.7",1718+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",1719+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",1720+ "license": "MIT",1721+ "optional": true1722+ },1723+ "node_modules/@upsetjs/venn.js": {1724+ "version": "2.0.0",1725+ "resolved": "https://registry.npmjs.org/@upsetjs/venn.js/-/venn.js-2.0.0.tgz",1726+ "integrity": "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==",1727+ "license": "MIT",1728+ "optionalDependencies": {1729+ "d3-selection": "^3.0.0",1730+ "d3-transition": "^3.0.1"1731+ }1732+ },1733+ "node_modules/anymatch": {1734+ "version": "3.1.3",1735+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",1736+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",1737+ "license": "ISC",1738+ "dependencies": {1739+ "normalize-path": "^3.0.0",1740+ "picomatch": "^2.0.4"1741+ },1742+ "engines": {1743+ "node": ">= 8"1744+ }1745+ },1746+ "node_modules/aria-hidden": {1747+ "version": "1.2.6",1748+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",1749+ "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",1750+ "license": "MIT",1751+ "dependencies": {1752+ "tslib": "^2.0.0"1753+ },1754+ "engines": {1755+ "node": ">=10"1756+ }1757+ },1758+ "node_modules/binary-extensions": {1759+ "version": "2.3.0",1760+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",1761+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",1762+ "license": "MIT",1763+ "engines": {1764+ "node": ">=8"1765+ },1766+ "funding": {1767+ "url": "https://github.com/sponsors/sindresorhus"1768+ }1769+ },1770+ "node_modules/braces": {1771+ "version": "3.0.3",1772+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",1773+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",1774+ "license": "MIT",1775+ "dependencies": {1776+ "fill-range": "^7.1.1"1777+ },1778+ "engines": {1779+ "node": ">=8"1780+ }1781+ },1782+ "node_modules/browser-fs-access": {1783+ "version": "0.29.1",1784+ "resolved": "https://registry.npmjs.org/browser-fs-access/-/browser-fs-access-0.29.1.tgz",1785+ "integrity": "sha512-LSvVX5e21LRrXqVMhqtAwj5xPgDb+fXAIH80NsnCQ9xuZPs2xWsOREi24RKgZa1XOiQRbcmVrv87+ulOKsgjxw==",1786+ "license": "Apache-2.0"1787+ },1788+ "node_modules/canvas-roundrect-polyfill": {1789+ "version": "0.0.1",1790+ "resolved": "https://registry.npmjs.org/canvas-roundrect-polyfill/-/canvas-roundrect-polyfill-0.0.1.tgz",1791+ "integrity": "sha512-yWq+R3U3jE+coOeEb3a3GgE2j/0MMiDKM/QpLb6h9ihf5fGY9UXtvK9o4vNqjWXoZz7/3EaSVU3IX53TvFFUOw==",1792+ "license": "MIT"1793+ },1794+ "node_modules/chevrotain": {1795+ "version": "11.0.3",1796+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",1797+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",1798+ "license": "Apache-2.0",1799+ "dependencies": {1800+ "@chevrotain/cst-dts-gen": "11.0.3",1801+ "@chevrotain/gast": "11.0.3",1802+ "@chevrotain/regexp-to-ast": "11.0.3",1803+ "@chevrotain/types": "11.0.3",1804+ "@chevrotain/utils": "11.0.3",1805+ "lodash-es": "4.17.21"1806+ }1807+ },1808+ "node_modules/chevrotain-allstar": {1809+ "version": "0.3.1",1810+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",1811+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",1812+ "license": "MIT",1813+ "dependencies": {1814+ "lodash-es": "^4.17.21"1815+ },1816+ "peerDependencies": {1817+ "chevrotain": "^11.0.0"1818+ }1819+ },1820+ "node_modules/chokidar": {1821+ "version": "3.6.0",1822+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",1823+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",1824+ "license": "MIT",1825+ "dependencies": {1826+ "anymatch": "~3.1.2",1827+ "braces": "~3.0.2",1828+ "glob-parent": "~5.1.2",1829+ "is-binary-path": "~2.1.0",1830+ "is-glob": "~4.0.1",1831+ "normalize-path": "~3.0.0",1832+ "readdirp": "~3.6.0"1833+ },1834+ "engines": {1835+ "node": ">= 8.10.0"1836+ },1837+ "funding": {1838+ "url": "https://paulmillr.com/funding/"1839+ },1840+ "optionalDependencies": {1841+ "fsevents": "~2.3.2"1842+ }1843+ },1844+ "node_modules/clsx": {1845+ "version": "1.1.1",1846+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",1847+ "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==",1848+ "license": "MIT",1849+ "engines": {1850+ "node": ">=6"1851+ }1852+ },1853+ "node_modules/commander": {1854+ "version": "7.2.0",1855+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",1856+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",1857+ "license": "MIT",1858+ "engines": {1859+ "node": ">= 10"1860+ }1861+ },1862+ "node_modules/cose-base": {1863+ "version": "1.0.3",1864+ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz",1865+ "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==",1866+ "license": "MIT",1867+ "dependencies": {1868+ "layout-base": "^1.0.0"1869+ }1870+ },1871+ "node_modules/crc-32": {1872+ "version": "0.3.0",1873+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-0.3.0.tgz",1874+ "integrity": "sha512-kucVIjOmMc1f0tv53BJ/5WIX+MGLcKuoBhnGqQrgKJNqLByb/sVMWfW/Aw6hw0jgcqjJ2pi9E5y32zOIpaUlsA==",1875+ "license": "Apache-2.0",1876+ "engines": {1877+ "node": ">=0.8"1878+ }1879+ },1880+ "node_modules/cross-env": {1881+ "version": "7.0.3",1882+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",1883+ "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",1884+ "license": "MIT",1885+ "dependencies": {1886+ "cross-spawn": "^7.0.1"1887+ },1888+ "bin": {1889+ "cross-env": "src/bin/cross-env.js",1890+ "cross-env-shell": "src/bin/cross-env-shell.js"1891+ },1892+ "engines": {1893+ "node": ">=10.14",1894+ "npm": ">=6",1895+ "yarn": ">=1"1896+ }1897+ },1898+ "node_modules/cross-spawn": {1899+ "version": "7.0.6",1900+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",1901+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",1902+ "license": "MIT",1903+ "dependencies": {1904+ "path-key": "^3.1.0",1905+ "shebang-command": "^2.0.0",1906+ "which": "^2.0.1"1907+ },1908+ "engines": {1909+ "node": ">= 8"1910+ }1911+ },1912+ "node_modules/cytoscape": {1913+ "version": "3.34.1",1914+ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.34.1.tgz",1915+ "integrity": "sha512-Lr0RvH9H75y9ar8h9Toy6u4lxRSCcxUq+hHcQ26sVWo6BnaQp1gwEZOYqwuYTZhyW7npyKnNLP8oJ2p1/3OZ7g==",1916+ "license": "MIT",1917+ "engines": {1918+ "node": ">=0.10"1919+ }1920+ },1921+ "node_modules/cytoscape-cose-bilkent": {1922+ "version": "4.1.0",1923+ "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz",1924+ "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==",1925+ "license": "MIT",1926+ "dependencies": {1927+ "cose-base": "^1.0.0"1928+ },1929+ "peerDependencies": {1930+ "cytoscape": "^3.2.0"1931+ }1932+ },1933+ "node_modules/cytoscape-fcose": {1934+ "version": "2.2.0",1935+ "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz",1936+ "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==",1937+ "license": "MIT",1938+ "dependencies": {1939+ "cose-base": "^2.2.0"1940+ },1941+ "peerDependencies": {1942+ "cytoscape": "^3.2.0"1943+ }1944+ },1945+ "node_modules/cytoscape-fcose/node_modules/cose-base": {1946+ "version": "2.2.0",1947+ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz",1948+ "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==",1949+ "license": "MIT",1950+ "dependencies": {1951+ "layout-base": "^2.0.0"1952+ }1953+ },1954+ "node_modules/cytoscape-fcose/node_modules/layout-base": {1955+ "version": "2.0.1",1956+ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz",1957+ "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==",1958+ "license": "MIT"1959+ },1960+ "node_modules/d3": {1961+ "version": "7.9.0",1962+ "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",1963+ "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",1964+ "license": "ISC",1965+ "dependencies": {1966+ "d3-array": "3",1967+ "d3-axis": "3",1968+ "d3-brush": "3",1969+ "d3-chord": "3",1970+ "d3-color": "3",1971+ "d3-contour": "4",1972+ "d3-delaunay": "6",1973+ "d3-dispatch": "3",1974+ "d3-drag": "3",1975+ "d3-dsv": "3",1976+ "d3-ease": "3",1977+ "d3-fetch": "3",1978+ "d3-force": "3",1979+ "d3-format": "3",1980+ "d3-geo": "3",1981+ "d3-hierarchy": "3",1982+ "d3-interpolate": "3",1983+ "d3-path": "3",1984+ "d3-polygon": "3",1985+ "d3-quadtree": "3",1986+ "d3-random": "3",1987+ "d3-scale": "4",1988+ "d3-scale-chromatic": "3",1989+ "d3-selection": "3",1990+ "d3-shape": "3",1991+ "d3-time": "3",1992+ "d3-time-format": "4",1993+ "d3-timer": "3",1994+ "d3-transition": "3",1995+ "d3-zoom": "3"1996+ },1997+ "engines": {1998+ "node": ">=12"1999+ }2000+ },2001+ "node_modules/d3-array": {2002+ "version": "3.2.4",2003+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",2004+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",2005+ "license": "ISC",2006+ "dependencies": {2007+ "internmap": "1 - 2"2008+ },2009+ "engines": {2010+ "node": ">=12"2011+ }2012+ },2013+ "node_modules/d3-axis": {2014+ "version": "3.0.0",2015+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",2016+ "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",2017+ "license": "ISC",2018+ "engines": {2019+ "node": ">=12"2020+ }2021+ },2022+ "node_modules/d3-brush": {2023+ "version": "3.0.0",2024+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",2025+ "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",2026+ "license": "ISC",2027+ "dependencies": {2028+ "d3-dispatch": "1 - 3",2029+ "d3-drag": "2 - 3",2030+ "d3-interpolate": "1 - 3",2031+ "d3-selection": "3",2032+ "d3-transition": "3"2033+ },2034+ "engines": {2035+ "node": ">=12"2036+ }2037+ },2038+ "node_modules/d3-chord": {2039+ "version": "3.0.1",2040+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",2041+ "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",2042+ "license": "ISC",2043+ "dependencies": {2044+ "d3-path": "1 - 3"2045+ },2046+ "engines": {2047+ "node": ">=12"2048+ }2049+ },2050+ "node_modules/d3-color": {2051+ "version": "3.1.0",2052+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",2053+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",2054+ "license": "ISC",2055+ "engines": {2056+ "node": ">=12"2057+ }2058+ },2059+ "node_modules/d3-contour": {2060+ "version": "4.0.2",2061+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",2062+ "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",2063+ "license": "ISC",2064+ "dependencies": {2065+ "d3-array": "^3.2.0"2066+ },2067+ "engines": {2068+ "node": ">=12"2069+ }2070+ },2071+ "node_modules/d3-delaunay": {2072+ "version": "6.0.4",2073+ "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",2074+ "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",2075+ "license": "ISC",2076+ "dependencies": {2077+ "delaunator": "5"2078+ },2079+ "engines": {2080+ "node": ">=12"2081+ }2082+ },2083+ "node_modules/d3-dispatch": {2084+ "version": "3.0.1",2085+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",2086+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",2087+ "license": "ISC",2088+ "engines": {2089+ "node": ">=12"2090+ }2091+ },2092+ "node_modules/d3-drag": {2093+ "version": "3.0.0",2094+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",2095+ "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",2096+ "license": "ISC",2097+ "dependencies": {2098+ "d3-dispatch": "1 - 3",2099+ "d3-selection": "3"2100+ },2101+ "engines": {2102+ "node": ">=12"2103+ }2104+ },2105+ "node_modules/d3-dsv": {2106+ "version": "3.0.1",2107+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",2108+ "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",2109+ "license": "ISC",2110+ "dependencies": {2111+ "commander": "7",2112+ "iconv-lite": "0.6",2113+ "rw": "1"2114+ },2115+ "bin": {2116+ "csv2json": "bin/dsv2json.js",2117+ "csv2tsv": "bin/dsv2dsv.js",2118+ "dsv2dsv": "bin/dsv2dsv.js",2119+ "dsv2json": "bin/dsv2json.js",2120+ "json2csv": "bin/json2dsv.js",2121+ "json2dsv": "bin/json2dsv.js",2122+ "json2tsv": "bin/json2dsv.js",2123+ "tsv2csv": "bin/dsv2dsv.js",2124+ "tsv2json": "bin/dsv2json.js"2125+ },2126+ "engines": {2127+ "node": ">=12"2128+ }2129+ },2130+ "node_modules/d3-ease": {2131+ "version": "3.0.1",2132+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",2133+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",2134+ "license": "BSD-3-Clause",2135+ "engines": {2136+ "node": ">=12"2137+ }2138+ },2139+ "node_modules/d3-fetch": {2140+ "version": "3.0.1",2141+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",2142+ "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",2143+ "license": "ISC",2144+ "dependencies": {2145+ "d3-dsv": "1 - 3"2146+ },2147+ "engines": {2148+ "node": ">=12"2149+ }2150+ },2151+ "node_modules/d3-force": {2152+ "version": "3.0.0",2153+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",2154+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",2155+ "license": "ISC",2156+ "dependencies": {2157+ "d3-dispatch": "1 - 3",2158+ "d3-quadtree": "1 - 3",2159+ "d3-timer": "1 - 3"2160+ },2161+ "engines": {2162+ "node": ">=12"2163+ }2164+ },2165+ "node_modules/d3-format": {2166+ "version": "3.1.2",2167+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz",2168+ "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==",2169+ "license": "ISC",2170+ "engines": {2171+ "node": ">=12"2172+ }2173+ },2174+ "node_modules/d3-geo": {2175+ "version": "3.1.1",2176+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",2177+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",2178+ "license": "ISC",2179+ "dependencies": {2180+ "d3-array": "2.5.0 - 3"2181+ },2182+ "engines": {2183+ "node": ">=12"2184+ }2185+ },2186+ "node_modules/d3-hierarchy": {2187+ "version": "3.1.2",2188+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",2189+ "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",2190+ "license": "ISC",2191+ "engines": {2192+ "node": ">=12"2193+ }2194+ },2195+ "node_modules/d3-interpolate": {2196+ "version": "3.0.1",2197+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",2198+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",2199+ "license": "ISC",2200+ "dependencies": {2201+ "d3-color": "1 - 3"2202+ },2203+ "engines": {2204+ "node": ">=12"2205+ }2206+ },2207+ "node_modules/d3-path": {2208+ "version": "3.1.0",2209+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",2210+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",2211+ "license": "ISC",2212+ "engines": {2213+ "node": ">=12"2214+ }2215+ },2216+ "node_modules/d3-polygon": {2217+ "version": "3.0.1",2218+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",2219+ "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",2220+ "license": "ISC",2221+ "engines": {2222+ "node": ">=12"2223+ }2224+ },2225+ "node_modules/d3-quadtree": {2226+ "version": "3.0.1",2227+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",2228+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",2229+ "license": "ISC",2230+ "engines": {2231+ "node": ">=12"2232+ }2233+ },2234+ "node_modules/d3-random": {2235+ "version": "3.0.1",2236+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",2237+ "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",2238+ "license": "ISC",2239+ "engines": {2240+ "node": ">=12"2241+ }2242+ },2243+ "node_modules/d3-sankey": {2244+ "version": "0.12.3",2245+ "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",2246+ "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",2247+ "license": "BSD-3-Clause",2248+ "dependencies": {2249+ "d3-array": "1 - 2",2250+ "d3-shape": "^1.2.0"2251+ }2252+ },2253+ "node_modules/d3-sankey/node_modules/d3-array": {2254+ "version": "2.12.1",2255+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",2256+ "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",2257+ "license": "BSD-3-Clause",2258+ "dependencies": {2259+ "internmap": "^1.0.0"2260+ }2261+ },2262+ "node_modules/d3-sankey/node_modules/d3-path": {2263+ "version": "1.0.9",2264+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",2265+ "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",2266+ "license": "BSD-3-Clause"2267+ },2268+ "node_modules/d3-sankey/node_modules/d3-shape": {2269+ "version": "1.3.7",2270+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",2271+ "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",2272+ "license": "BSD-3-Clause",2273+ "dependencies": {2274+ "d3-path": "1"2275+ }2276+ },2277+ "node_modules/d3-sankey/node_modules/internmap": {2278+ "version": "1.0.1",2279+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",2280+ "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==",2281+ "license": "ISC"2282+ },2283+ "node_modules/d3-scale": {2284+ "version": "4.0.2",2285+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",2286+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",2287+ "license": "ISC",2288+ "dependencies": {2289+ "d3-array": "2.10.0 - 3",2290+ "d3-format": "1 - 3",2291+ "d3-interpolate": "1.2.0 - 3",2292+ "d3-time": "2.1.1 - 3",2293+ "d3-time-format": "2 - 4"2294+ },2295+ "engines": {2296+ "node": ">=12"2297+ }2298+ },2299+ "node_modules/d3-scale-chromatic": {2300+ "version": "3.1.0",2301+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",2302+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",2303+ "license": "ISC",2304+ "dependencies": {2305+ "d3-color": "1 - 3",2306+ "d3-interpolate": "1 - 3"2307+ },2308+ "engines": {2309+ "node": ">=12"2310+ }2311+ },2312+ "node_modules/d3-selection": {2313+ "version": "3.0.0",2314+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",2315+ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",2316+ "license": "ISC",2317+ "engines": {2318+ "node": ">=12"2319+ }2320+ },2321+ "node_modules/d3-shape": {2322+ "version": "3.2.0",2323+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",2324+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",2325+ "license": "ISC",2326+ "dependencies": {2327+ "d3-path": "^3.1.0"2328+ },2329+ "engines": {2330+ "node": ">=12"2331+ }2332+ },2333+ "node_modules/d3-time": {2334+ "version": "3.1.0",2335+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",2336+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",2337+ "license": "ISC",2338+ "dependencies": {2339+ "d3-array": "2 - 3"2340+ },2341+ "engines": {2342+ "node": ">=12"2343+ }2344+ },2345+ "node_modules/d3-time-format": {2346+ "version": "4.1.0",2347+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",2348+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",2349+ "license": "ISC",2350+ "dependencies": {2351+ "d3-time": "1 - 3"2352+ },2353+ "engines": {2354+ "node": ">=12"2355+ }2356+ },2357+ "node_modules/d3-timer": {2358+ "version": "3.0.1",2359+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",2360+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",2361+ "license": "ISC",2362+ "engines": {2363+ "node": ">=12"2364+ }2365+ },2366+ "node_modules/d3-transition": {2367+ "version": "3.0.1",2368+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",2369+ "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",2370+ "license": "ISC",2371+ "dependencies": {2372+ "d3-color": "1 - 3",2373+ "d3-dispatch": "1 - 3",2374+ "d3-ease": "1 - 3",2375+ "d3-interpolate": "1 - 3",2376+ "d3-timer": "1 - 3"2377+ },2378+ "engines": {2379+ "node": ">=12"2380+ },2381+ "peerDependencies": {2382+ "d3-selection": "2 - 3"2383+ }2384+ },2385+ "node_modules/d3-zoom": {2386+ "version": "3.0.0",2387+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",2388+ "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",2389+ "license": "ISC",2390+ "dependencies": {2391+ "d3-dispatch": "1 - 3",2392+ "d3-drag": "2 - 3",2393+ "d3-interpolate": "1 - 3",2394+ "d3-selection": "2 - 3",2395+ "d3-transition": "2 - 3"2396+ },2397+ "engines": {2398+ "node": ">=12"2399+ }2400+ },2401+ "node_modules/dagre-d3-es": {2402+ "version": "7.0.14",2403+ "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.14.tgz",2404+ "integrity": "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==",2405+ "license": "MIT",2406+ "dependencies": {2407+ "d3": "^7.9.0",2408+ "lodash-es": "^4.17.21"2409+ }2410+ },2411+ "node_modules/dayjs": {2412+ "version": "1.11.23",2413+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.23.tgz",2414+ "integrity": "sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==",2415+ "license": "MIT"2416+ },2417+ "node_modules/delaunator": {2418+ "version": "5.1.0",2419+ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.1.0.tgz",2420+ "integrity": "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==",2421+ "license": "ISC",2422+ "dependencies": {2423+ "robust-predicates": "^3.0.2"2424+ }2425+ },2426+ "node_modules/detect-node-es": {2427+ "version": "1.1.0",2428+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",2429+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",2430+ "license": "MIT"2431+ },2432+ "node_modules/dompurify": {2433+ "version": "3.4.14",2434+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.14.tgz",2435+ "integrity": "sha512-dVoH9z+MY+C9IilgGCk3YfFqjLi3fChm2OiKJMzh6axrJ5qwxqWaZamgmHrpv22CN/KdbZJuGEGgfQoL00LTdg==",2436+ "license": "(MPL-2.0 OR Apache-2.0)",2437+ "optionalDependencies": {2438+ "@types/trusted-types": "^2.0.7"2439+ }2440+ },2441+ "node_modules/es-toolkit": {2442+ "version": "1.51.0",2443+ "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.51.0.tgz",2444+ "integrity": "sha512-zC2lQGkM7QX+Gm6iM3+WIdZJzthsEd14LvRNJneSO2hzyz/zNBENR8+YXWo1cKxgPBtV6ksPYHELbcwBRzmdCw==",2445+ "license": "MIT",2446+ "workspaces": [2447+ "docs",2448+ "benchmarks",2449+ "tests/types",2450+ "tests/browser-compat"2451+ ]2452+ },2453+ "node_modules/es6-promise-pool": {2454+ "version": "2.5.0",2455+ "resolved": "https://registry.npmjs.org/es6-promise-pool/-/es6-promise-pool-2.5.0.tgz",2456+ "integrity": "sha512-VHErXfzR/6r/+yyzPKeBvO0lgjfC5cbDCQWjWwMZWSb6YU39TGIl51OUmCfWCq4ylMdJSB8zkz2vIuIeIxXApA==",2457+ "license": "MIT",2458+ "engines": {2459+ "node": ">=0.10.0"2460+ }2461+ },2462+ "node_modules/esbuild": {2463+ "version": "0.28.1",2464+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz",2465+ "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==",2466+ "dev": true,2467+ "hasInstallScript": true,2468+ "license": "MIT",2469+ "bin": {2470+ "esbuild": "bin/esbuild"2471+ },2472+ "engines": {2473+ "node": ">=18"2474+ },2475+ "optionalDependencies": {2476+ "@esbuild/aix-ppc64": "0.28.1",2477+ "@esbuild/android-arm": "0.28.1",2478+ "@esbuild/android-arm64": "0.28.1",2479+ "@esbuild/android-x64": "0.28.1",2480+ "@esbuild/darwin-arm64": "0.28.1",2481+ "@esbuild/darwin-x64": "0.28.1",2482+ "@esbuild/freebsd-arm64": "0.28.1",2483+ "@esbuild/freebsd-x64": "0.28.1",2484+ "@esbuild/linux-arm": "0.28.1",2485+ "@esbuild/linux-arm64": "0.28.1",2486+ "@esbuild/linux-ia32": "0.28.1",2487+ "@esbuild/linux-loong64": "0.28.1",2488+ "@esbuild/linux-mips64el": "0.28.1",2489+ "@esbuild/linux-ppc64": "0.28.1",2490+ "@esbuild/linux-riscv64": "0.28.1",2491+ "@esbuild/linux-s390x": "0.28.1",2492+ "@esbuild/linux-x64": "0.28.1",2493+ "@esbuild/netbsd-arm64": "0.28.1",2494+ "@esbuild/netbsd-x64": "0.28.1",2495+ "@esbuild/openbsd-arm64": "0.28.1",2496+ "@esbuild/openbsd-x64": "0.28.1",2497+ "@esbuild/openharmony-arm64": "0.28.1",2498+ "@esbuild/sunos-x64": "0.28.1",2499+ "@esbuild/win32-arm64": "0.28.1",2500+ "@esbuild/win32-ia32": "0.28.1",2501+ "@esbuild/win32-x64": "0.28.1"2502+ }2503+ },2504+ "node_modules/fastdom": {2505+ "version": "1.0.12",2506+ "resolved": "https://registry.npmjs.org/fastdom/-/fastdom-1.0.12.tgz",2507+ "integrity": "sha512-LB+xjSTEbjHE1cWsxu+tN2Xqr1kpi+V9aADI7sVM5ZMaXyYGPHULQMzpJMYqOTULK/73pUkWVzzObFRBkPr+hg==",2508+ "license": "MIT",2509+ "dependencies": {2510+ "strictdom": "^1.0.1"2511+ }2512+ },2513+ "node_modules/fill-range": {2514+ "version": "7.1.1",2515+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",2516+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",2517+ "license": "MIT",2518+ "dependencies": {2519+ "to-regex-range": "^5.0.1"2520+ },2521+ "engines": {2522+ "node": ">=8"2523+ }2524+ },2525+ "node_modules/fractional-indexing": {2526+ "version": "3.2.0",2527+ "resolved": "https://registry.npmjs.org/fractional-indexing/-/fractional-indexing-3.2.0.tgz",2528+ "integrity": "sha512-PcOxmqwYCW7O2ovKRU8OoQQj2yqTfEB/yeTYk4gPid6dN5ODRfU1hXd9tTVZzax/0NkO7AxpHykvZnT1aYp/BQ==",2529+ "license": "CC0-1.0",2530+ "engines": {2531+ "node": "^14.13.1 || >=16.0.0"2532+ }2533+ },2534+ "node_modules/fsevents": {2535+ "version": "2.3.3",2536+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",2537+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",2538+ "hasInstallScript": true,2539+ "license": "MIT",2540+ "optional": true,2541+ "os": [2542+ "darwin"2543+ ],2544+ "engines": {2545+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"2546+ }2547+ },2548+ "node_modules/fuzzy": {2549+ "version": "0.1.3",2550+ "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz",2551+ "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==",2552+ "engines": {2553+ "node": ">= 0.6.0"2554+ }2555+ },2556+ "node_modules/get-nonce": {2557+ "version": "1.0.1",2558+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",2559+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",2560+ "license": "MIT",2561+ "engines": {2562+ "node": ">=6"2563+ }2564+ },2565+ "node_modules/glob-parent": {2566+ "version": "5.1.2",2567+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",2568+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",2569+ "license": "ISC",2570+ "dependencies": {2571+ "is-glob": "^4.0.1"2572+ },2573+ "engines": {2574+ "node": ">= 6"2575+ }2576+ },2577+ "node_modules/glur": {2578+ "version": "1.1.2",2579+ "resolved": "https://registry.npmjs.org/glur/-/glur-1.1.2.tgz",2580+ "integrity": "sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==",2581+ "license": "MIT"2582+ },2583+ "node_modules/hachure-fill": {2584+ "version": "0.5.2",2585+ "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz",2586+ "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==",2587+ "license": "MIT"2588+ },2589+ "node_modules/iconv-lite": {2590+ "version": "0.6.3",2591+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",2592+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",2593+ "license": "MIT",2594+ "dependencies": {2595+ "safer-buffer": ">= 2.1.2 < 3.0.0"2596+ },2597+ "engines": {2598+ "node": ">=0.10.0"2599+ }2600+ },2601+ "node_modules/image-blob-reduce": {2602+ "version": "3.0.1",2603+ "resolved": "https://registry.npmjs.org/image-blob-reduce/-/image-blob-reduce-3.0.1.tgz",2604+ "integrity": "sha512-/VmmWgIryG/wcn4TVrV7cC4mlfUC/oyiKIfSg5eVM3Ten/c1c34RJhMYKCWTnoSMHSqXLt3tsrBR4Q2HInvN+Q==",2605+ "license": "MIT",2606+ "dependencies": {2607+ "pica": "^7.1.0"2608+ }2609+ },2610+ "node_modules/immutable": {2611+ "version": "4.3.9",2612+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.9.tgz",2613+ "integrity": "sha512-ObHy4YN7ycwZOUCLI1/6svfyAFu7vL8RhAvVu/bh/RZW9EPlOyDaQ9jDQWCtdqzaXUjgXZCW1migtHE7YI7UGQ==",2614+ "license": "MIT"2615+ },2616+ "node_modules/import-meta-resolve": {2617+ "version": "4.2.0",2618+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz",2619+ "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==",2620+ "license": "MIT",2621+ "funding": {2622+ "type": "github",2623+ "url": "https://github.com/sponsors/wooorm"2624+ }2625+ },2626+ "node_modules/inherits": {2627+ "version": "2.0.4",2628+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",2629+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",2630+ "license": "ISC"2631+ },2632+ "node_modules/internmap": {2633+ "version": "2.0.3",2634+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",2635+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",2636+ "license": "ISC",2637+ "engines": {2638+ "node": ">=12"2639+ }2640+ },2641+ "node_modules/is-binary-path": {2642+ "version": "2.1.0",2643+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",2644+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",2645+ "license": "MIT",2646+ "dependencies": {2647+ "binary-extensions": "^2.0.0"2648+ },2649+ "engines": {2650+ "node": ">=8"2651+ }2652+ },2653+ "node_modules/is-extglob": {2654+ "version": "2.1.1",2655+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",2656+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",2657+ "license": "MIT",2658+ "engines": {2659+ "node": ">=0.10.0"2660+ }2661+ },2662+ "node_modules/is-glob": {2663+ "version": "4.0.3",2664+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",2665+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",2666+ "license": "MIT",2667+ "dependencies": {2668+ "is-extglob": "^2.1.1"2669+ },2670+ "engines": {2671+ "node": ">=0.10.0"2672+ }2673+ },2674+ "node_modules/is-number": {2675+ "version": "7.0.0",2676+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",2677+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",2678+ "license": "MIT",2679+ "engines": {2680+ "node": ">=0.12.0"2681+ }2682+ },2683+ "node_modules/isexe": {2684+ "version": "2.0.0",2685+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",2686+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",2687+ "license": "ISC"2688+ },2689+ "node_modules/jotai": {2690+ "version": "2.11.0",2691+ "resolved": "https://registry.npmjs.org/jotai/-/jotai-2.11.0.tgz",2692+ "integrity": "sha512-zKfoBBD1uDw3rljwHkt0fWuja1B76R7CjznuBO+mSX6jpsO1EBeWNRKpeaQho9yPI/pvCv4recGfgOXGxwPZvQ==",2693+ "license": "MIT",2694+ "engines": {2695+ "node": ">=12.20.0"2696+ },2697+ "peerDependencies": {2698+ "@types/react": ">=17.0.0",2699+ "react": ">=17.0.0"2700+ },2701+ "peerDependenciesMeta": {2702+ "@types/react": {2703+ "optional": true2704+ },2705+ "react": {2706+ "optional": true2707+ }2708+ }2709+ },2710+ "node_modules/jotai-scope": {2711+ "version": "0.7.2",2712+ "resolved": "https://registry.npmjs.org/jotai-scope/-/jotai-scope-0.7.2.tgz",2713+ "integrity": "sha512-Gwed97f3dDObrO43++2lRcgOqw4O2sdr4JCjP/7eHK1oPACDJ7xKHGScpJX9XaflU+KBHXF+VhwECnzcaQiShg==",2714+ "license": "MIT",2715+ "peerDependencies": {2716+ "jotai": ">=2.9.2",2717+ "react": ">=17.0.0"2718+ }2719+ },2720+ "node_modules/js-tokens": {2721+ "version": "4.0.0",2722+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",2723+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",2724+ "license": "MIT"2725+ },2726+ "node_modules/katex": {2727+ "version": "0.16.47",2728+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz",2729+ "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==",2730+ "funding": [2731+ "https://opencollective.com/katex",2732+ "https://github.com/sponsors/katex"2733+ ],2734+ "license": "MIT",2735+ "dependencies": {2736+ "commander": "^8.3.0"2737+ },2738+ "bin": {2739+ "katex": "cli.js"2740+ }2741+ },2742+ "node_modules/katex/node_modules/commander": {2743+ "version": "8.3.0",2744+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",2745+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",2746+ "license": "MIT",2747+ "engines": {2748+ "node": ">= 12"2749+ }2750+ },2751+ "node_modules/khroma": {2752+ "version": "2.1.0",2753+ "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz",2754+ "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="2755+ },2756+ "node_modules/langium": {2757+ "version": "3.3.1",2758+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz",2759+ "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==",2760+ "license": "MIT",2761+ "dependencies": {2762+ "chevrotain": "~11.0.3",2763+ "chevrotain-allstar": "~0.3.0",2764+ "vscode-languageserver": "~9.0.1",2765+ "vscode-languageserver-textdocument": "~1.0.11",2766+ "vscode-uri": "~3.0.8"2767+ },2768+ "engines": {2769+ "node": ">=16.0.0"2770+ }2771+ },2772+ "node_modules/layout-base": {2773+ "version": "1.0.2",2774+ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",2775+ "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==",2776+ "license": "MIT"2777+ },2778+ "node_modules/lodash-es": {2779+ "version": "4.17.21",2780+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",2781+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",2782+ "license": "MIT"2783+ },2784+ "node_modules/lodash.debounce": {2785+ "version": "4.0.8",2786+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",2787+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",2788+ "license": "MIT"2789+ },2790+ "node_modules/lodash.throttle": {2791+ "version": "4.1.1",2792+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",2793+ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",2794+ "license": "MIT"2795+ },2796+ "node_modules/loose-envify": {2797+ "version": "1.4.0",2798+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",2799+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",2800+ "license": "MIT",2801+ "dependencies": {2802+ "js-tokens": "^3.0.0 || ^4.0.0"2803+ },2804+ "bin": {2805+ "loose-envify": "cli.js"2806+ }2807+ },2808+ "node_modules/marked": {2809+ "version": "16.4.2",2810+ "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz",2811+ "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==",2812+ "license": "MIT",2813+ "bin": {2814+ "marked": "bin/marked.js"2815+ },2816+ "engines": {2817+ "node": ">= 20"2818+ }2819+ },2820+ "node_modules/mermaid": {2821+ "version": "11.17.0",2822+ "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.17.0.tgz",2823+ "integrity": "sha512-Jo9N377Wb4MSnHFPTbLi2SxFpsQl4eVHoxnW5U1Md9EazvgMp3s+4ohDxr81YNTgbn5Kj7HJ3yslrSJ52kwpbA==",2824+ "license": "MIT",2825+ "dependencies": {2826+ "@braintree/sanitize-url": "^7.1.2",2827+ "@iconify/utils": "^3.0.2",2828+ "@mermaid-js/parser": "^1.2.1",2829+ "@types/d3": "^7.4.3",2830+ "@upsetjs/venn.js": "^2.0.0",2831+ "cytoscape": "^3.34.0",2832+ "cytoscape-cose-bilkent": "^4.1.0",2833+ "cytoscape-fcose": "^2.2.0",2834+ "d3": "^7.9.0",2835+ "d3-sankey": "^0.12.3",2836+ "dagre-d3-es": "7.0.14",2837+ "dayjs": "^1.11.21",2838+ "dompurify": "^3.3.3",2839+ "es-toolkit": "^1.45.1",2840+ "fastdom": "1.0.12",2841+ "katex": "^0.16.47",2842+ "khroma": "^2.1.0",2843+ "marked": "^16.3.0",2844+ "roughjs": "^4.6.6",2845+ "stylis": "^4.3.6",2846+ "ts-dedent": "^2.2.0",2847+ "uuid": "^11.1.0 || ^12 || ^13 || ^14.0.0"2848+ }2849+ },2850+ "node_modules/mermaid/node_modules/@braintree/sanitize-url": {2851+ "version": "7.1.2",2852+ "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz",2853+ "integrity": "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==",2854+ "license": "MIT"2855+ },2856+ "node_modules/mermaid/node_modules/@chevrotain/types": {2857+ "version": "11.1.2",2858+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.1.2.tgz",2859+ "integrity": "sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==",2860+ "license": "Apache-2.0"2861+ },2862+ "node_modules/mermaid/node_modules/@mermaid-js/parser": {2863+ "version": "1.2.1",2864+ "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-1.2.1.tgz",2865+ "integrity": "sha512-n12NohV3mrUyUL2o93IgG/ifeW9FTyeJn3zDxkhwa8MJ9Fxg3HQMlA3RiGmD/3UnJvheztkjjQAjA2T4LmUcpw==",2866+ "license": "MIT",2867+ "dependencies": {2868+ "@chevrotain/types": "~11.1.2"2869+ }2870+ },2871+ "node_modules/mermaid/node_modules/points-on-curve": {2872+ "version": "0.2.0",2873+ "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz",2874+ "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==",2875+ "license": "MIT"2876+ },2877+ "node_modules/mermaid/node_modules/roughjs": {2878+ "version": "4.6.6",2879+ "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz",2880+ "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==",2881+ "license": "MIT",2882+ "dependencies": {2883+ "hachure-fill": "^0.5.2",2884+ "path-data-parser": "^0.1.0",2885+ "points-on-curve": "^0.2.0",2886+ "points-on-path": "^0.2.1"2887+ }2888+ },2889+ "node_modules/multimath": {2890+ "version": "2.0.0",2891+ "resolved": "https://registry.npmjs.org/multimath/-/multimath-2.0.0.tgz",2892+ "integrity": "sha512-toRx66cAMJ+Ccz7pMIg38xSIrtnbozk0dchXezwQDMgQmbGpfxjtv68H+L00iFL8hxDaVjrmwAFSb3I6bg8Q2g==",2893+ "license": "MIT",2894+ "dependencies": {2895+ "glur": "^1.1.2",2896+ "object-assign": "^4.1.1"2897+ }2898+ },2899+ "node_modules/nanoid": {2900+ "version": "3.3.3",2901+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",2902+ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",2903+ "license": "MIT",2904+ "bin": {2905+ "nanoid": "bin/nanoid.cjs"2906+ },2907+ "engines": {2908+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"2909+ }2910+ },2911+ "node_modules/normalize-path": {2912+ "version": "3.0.0",2913+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",2914+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",2915+ "license": "MIT",2916+ "engines": {2917+ "node": ">=0.10.0"2918+ }2919+ },2920+ "node_modules/object-assign": {2921+ "version": "4.1.1",2922+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",2923+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",2924+ "license": "MIT",2925+ "engines": {2926+ "node": ">=0.10.0"2927+ }2928+ },2929+ "node_modules/open-color": {2930+ "version": "1.9.1",2931+ "resolved": "https://registry.npmjs.org/open-color/-/open-color-1.9.1.tgz",2932+ "integrity": "sha512-vCseG/EQ6/RcvxhUcGJiHViOgrtz4x0XbZepXvKik66TMGkvbmjeJrKFyBEx6daG5rNyyd14zYXhz0hZVwQFOw==",2933+ "license": "MIT"2934+ },2935+ "node_modules/package-manager-detector": {2936+ "version": "1.8.0",2937+ "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz",2938+ "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==",2939+ "license": "MIT"2940+ },2941+ "node_modules/pako": {2942+ "version": "2.0.3",2943+ "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.3.tgz",2944+ "integrity": "sha512-WjR1hOeg+kki3ZIOjaf4b5WVcay1jaliKSYiEaB1XzwhMQZJxRdQRv0V31EKBYlxb4T7SK3hjfc/jxyU64BoSw==",2945+ "license": "(MIT AND Zlib)"2946+ },2947+ "node_modules/path-data-parser": {2948+ "version": "0.1.0",2949+ "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz",2950+ "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==",2951+ "license": "MIT"2952+ },2953+ "node_modules/path-key": {2954+ "version": "3.1.1",2955+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",2956+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",2957+ "license": "MIT",2958+ "engines": {2959+ "node": ">=8"2960+ }2961+ },2962+ "node_modules/perfect-freehand": {2963+ "version": "1.2.0",2964+ "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.2.0.tgz",2965+ "integrity": "sha512-h/0ikF1M3phW7CwpZ5MMvKnfpHficWoOEyr//KVNTxV4F6deRK1eYMtHyBKEAKFK0aXIEUK9oBvlF6PNXMDsAw==",2966+ "license": "MIT"2967+ },2968+ "node_modules/pica": {2969+ "version": "7.1.1",2970+ "resolved": "https://registry.npmjs.org/pica/-/pica-7.1.1.tgz",2971+ "integrity": "sha512-WY73tMvNzXWEld2LicT9Y260L43isrZ85tPuqRyvtkljSDLmnNFQmZICt4xUJMVulmcc6L9O7jbBrtx3DOz/YQ==",2972+ "license": "MIT",2973+ "dependencies": {2974+ "glur": "^1.1.2",2975+ "inherits": "^2.0.3",2976+ "multimath": "^2.0.0",2977+ "object-assign": "^4.1.1",2978+ "webworkify": "^1.5.0"2979+ }2980+ },2981+ "node_modules/picomatch": {2982+ "version": "2.3.2",2983+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",2984+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",2985+ "license": "MIT",2986+ "engines": {2987+ "node": ">=8.6"2988+ },2989+ "funding": {2990+ "url": "https://github.com/sponsors/jonschlinkert"2991+ }2992+ },2993+ "node_modules/png-chunk-text": {2994+ "version": "1.0.0",2995+ "resolved": "https://registry.npmjs.org/png-chunk-text/-/png-chunk-text-1.0.0.tgz",2996+ "integrity": "sha512-DEROKU3SkkLGWNMzru3xPVgxyd48UGuMSZvioErCure6yhOc/pRH2ZV+SEn7nmaf7WNf3NdIpH+UTrRdKyq9Lw==",2997+ "license": "MIT"2998+ },2999+ "node_modules/png-chunks-encode": {3000+ "version": "1.0.0",
diff truncated
A renderers/client/excalidraw/package.json +19 -0
A renderers/client/excalidraw/scripts/build.mjs +24 -0
A renderers/client/excalidraw/src/frame.js +61 -0
@@ -0,0 +1,61 @@
1+const CHANNEL = 'diagram.zip:renderer:v1'2+const ENGINE = 'excalidraw'3+const VERSION = '@excalidraw/excalidraw@0.18.1'4+const BUILD = 'excalidraw-0.18.1-client-unit-2'5+const MAX_SOURCE_LENGTH = 524_2886+7+// The frame has an opaque origin because diagram.zip omits allow-same-origin.8+// Resolve the packaged fonts against the document URL rather than location.origin.9+window.EXCALIDRAW_ASSET_PATH = new URL('/', window.location.href).href10+const library = import('@excalidraw/excalidraw')11+12+let queue = Promise.resolve()13+14+function sceneFrom(source) {15+ if (typeof source !== 'string' || source.length > MAX_SOURCE_LENGTH) {16+ throw new Error('Excalidraw source must be a JSON string no larger than 512 KiB.')17+ }18+ const scene = JSON.parse(source)19+ if (typeof scene !== 'object' || scene === null || Array.isArray(scene)) {20+ throw new Error('Excalidraw source must be a JSON object.')21+ }22+ return scene23+}24+25+window.addEventListener('message', event => {26+ const message = event.data27+ if (28+ event.source !== parent29+ || message?.channel !== CHANNEL30+ || message?.type !== 'render'31+ || message?.engine !== ENGINE32+ || typeof message?.requestId !== 'string'33+ ) return34+35+ queue = queue.then(async () => {36+ try {37+ const { exportToSvg } = await library38+ const svg = await exportToSvg(sceneFrom(message.source))39+ parent.postMessage({40+ channel: CHANNEL,41+ type: 'result',42+ requestId: message.requestId,43+ ok: true,44+ svg: svg.outerHTML,45+ version: VERSION,46+ build: BUILD,47+ pipeline: [ENGINE],48+ }, '*')49+ } catch (error) {50+ parent.postMessage({51+ channel: CHANNEL,52+ type: 'result',53+ requestId: message.requestId,54+ ok: false,55+ error: error instanceof Error ? error.message.slice(0, 500) : 'Excalidraw rendering failed.',56+ }, '*')57+ }58+ })59+})60+61+parent.postMessage({ channel: CHANNEL, type: 'ready', engine: ENGINE, version: VERSION, build: BUILD }, '*')
A renderers/client/excalidraw/unit/_headers +15 -0
A renderers/client/excalidraw/unit/index.html +14 -0
A renderers/client/excalidraw/unit/worker.js +34 -0
A renderers/client/excalidraw/wrangler.jsonc +15 -0