From 7a396f64a627423a8be8b6ed531645e4b01c7daf Mon Sep 17 00:00:00 2001 From: Amit Haridas Date: Wed, 3 Jun 2026 23:23:59 +0530 Subject: [PATCH] feat(renderer): setup React, Vite, Tailwind CSS and Zustand state management --- assets/icon.ico | Bin 0 -> 370070 bytes package-lock.json | 1850 +++++++++++++++++++++++++++++- package.json | 21 +- postcss.config.js | 6 + src/renderer/App.tsx | 47 + src/renderer/index.html | 16 + src/renderer/main.tsx | 10 + src/renderer/styles/globals.css | 82 ++ src/renderer/types/electron.d.ts | 90 ++ tailwind.config.js | 47 + vite.renderer.config.ts | 23 + 11 files changed, 2152 insertions(+), 40 deletions(-) create mode 100644 assets/icon.ico create mode 100644 postcss.config.js create mode 100644 src/renderer/App.tsx create mode 100644 src/renderer/index.html create mode 100644 src/renderer/main.tsx create mode 100644 src/renderer/styles/globals.css create mode 100644 src/renderer/types/electron.d.ts create mode 100644 tailwind.config.js create mode 100644 vite.renderer.config.ts diff --git a/assets/icon.ico b/assets/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..144bf090514dca5b97b7c25c374cd00adb49cbaa GIT binary patch literal 370070 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 Sf5m>GxQxIu0{>M;;Qs=kMJ7oA literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 30ec880..ace7b51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "markdown-converter", - "version": "4.4.1", + "version": "4.4.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "markdown-converter", - "version": "4.4.1", + "version": "4.4.2", "license": "MIT", "dependencies": { "@codemirror/autocomplete": "^6.20.1", @@ -23,6 +23,7 @@ "@codemirror/state": "^6.5.4", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.39.16", + "@tanstack/react-table": "^8.21.3", "codemirror": "^6.0.2", "core-util-is": "^1.0.3", "docx": "^9.6.0", @@ -40,11 +41,20 @@ "pdfjs-dist": "^5.5.207", "pdfkit": "^0.17.2", "pizzip": "^3.2.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", "simple-git": "^3.32.3", - "tslib": "^2.8.1" + "tslib": "^2.8.1", + "zustand": "^5.0.14" }, "devDependencies": { "@testing-library/dom": "^10.4.1", + "@types/react": "^19.2.16", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", + "autoprefixer": "^10.5.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", "cross-env": "^10.0.0", "electron": "^41.1.1", "electron-builder": "^26.0.12", @@ -53,8 +63,28 @@ "eslint-plugin-prettier": "^5.5.4", "jest": "^30.2.0", "jest-environment-jsdom": "^30.2.0", + "lucide-react": "^1.17.0", + "postcss": "^8.5.15", "prettier": "^3.7.4", - "sharp": "^0.34.3" + "sharp": "^0.34.3", + "tailwind-merge": "^3.6.0", + "tailwindcss": "^3.4.19", + "tailwindcss-animate": "^1.0.7", + "typescript": "^6.0.3", + "vite": "^8.0.16" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@antfu/install-pkg": { @@ -1409,21 +1439,21 @@ } }, "node_modules/@emnapi/core": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", - "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", - "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "dev": true, "license": "MIT", "optional": true, @@ -1432,9 +1462,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", - "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, "license": "MIT", "optional": true, @@ -3422,6 +3452,44 @@ "@tybys/wasm-util": "^0.10.0" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@npmcli/agent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", @@ -3472,6 +3540,16 @@ "node": ">=10" } }, + "node_modules/@oxc-project/types": { + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, "node_modules/@pdf-lib/standard-fonts": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", @@ -3526,6 +3604,307 @@ "url": "https://opencollective.com/pkgr" } }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", + "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", + "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", + "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", + "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", + "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", + "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", + "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", + "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", + "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", + "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", + "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", + "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", + "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", + "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", + "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, "node_modules/@simple-git/args-pathspec": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@simple-git/args-pathspec/-/args-pathspec-1.0.3.tgz", @@ -3603,6 +3982,39 @@ "node": ">=10" } }, + "node_modules/@tanstack/react-table": { + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.21.3.tgz", + "integrity": "sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==", + "license": "MIT", + "dependencies": { + "@tanstack/table-core": "8.21.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.21.3.tgz", + "integrity": "sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@testing-library/dom": { "version": "10.4.1", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", @@ -4089,6 +4501,26 @@ "license": "MIT", "optional": true }, + "node_modules/@types/react": { + "version": "19.2.16", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.16.tgz", + "integrity": "sha512-esJiCAnl0kfpNdE69f3So4WJUXy95dLZydX0KwK46riIHDzHM7O9Vtf9xCHW0PXIqvgqNrswl522kA/5yx+F4w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -4442,6 +4874,32 @@ "d3-transition": "^3.0.1" } }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.2.tgz", + "integrity": "sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, "node_modules/@xmldom/xmldom": { "version": "0.8.13", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz", @@ -4642,6 +5100,13 @@ "dev": true, "license": "MIT" }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -4868,6 +5333,13 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -4951,6 +5423,43 @@ "when-exit": "^2.1.4" } }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/babel-jest": { "version": "30.3.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.3.0.tgz", @@ -5090,9 +5599,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.10.10", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz", - "integrity": "sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==", + "version": "2.10.33", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.33.tgz", + "integrity": "sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5102,6 +5611,19 @@ "node": ">=6.0.0" } }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -5136,6 +5658,19 @@ "node": "18 || 20 || >=22" } }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/brotli": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", @@ -5146,9 +5681,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "dev": true, "funding": [ { @@ -5166,11 +5701,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -5456,10 +5991,20 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001781", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz", - "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==", + "version": "1.0.30001793", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", + "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", "dev": true, "funding": [ { @@ -5530,6 +6075,44 @@ "node": ">=10" } }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", @@ -5570,6 +6153,19 @@ "dev": true, "license": "MIT" }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -5651,6 +6247,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -5924,6 +6530,19 @@ "utrie": "^1.0.2" } }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/cssstyle": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", @@ -5938,6 +6557,13 @@ "node": ">=18" } }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "devOptional": true, + "license": "MIT" + }, "node_modules/cytoscape": { "version": "3.33.1", "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", @@ -6700,6 +7326,13 @@ "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", "license": "MIT" }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/dir-compare": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", @@ -6742,6 +7375,13 @@ "node": "*" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, "node_modules/dmg-builder": { "version": "26.8.1", "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-26.8.1.tgz", @@ -7118,9 +7758,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.325", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.325.tgz", - "integrity": "sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==", + "version": "1.5.366", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.366.tgz", + "integrity": "sha512-OlRuhb688YTCzzU3gXPLn6nGyd+F+53INE1qaKKlu6kETErE8FYsyDh0XqXEU+uBRn0MpCzz2vfNwORhkap8qg==", "dev": true, "license": "ISC" }, @@ -7699,6 +8339,36 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -7740,6 +8410,16 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -7878,6 +8558,19 @@ "node": ">=10" } }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -7980,6 +8673,20 @@ "node": ">= 6" } }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -8371,9 +9078,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "dev": true, "license": "MIT", "dependencies": { @@ -8687,6 +9394,35 @@ "dev": true, "license": "MIT" }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -8740,6 +9476,16 @@ "node": ">=8" } }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -10274,6 +11020,292 @@ "immediate": "~3.0.5" } }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, "node_modules/linebreak": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.1.0.tgz", @@ -10376,6 +11408,16 @@ "node": ">=10" } }, + "node_modules/lucide-react": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.17.0.tgz", + "integrity": "sha512-9FA9evdox/JQL5PT57fdA1x/yg8T7knJ98+zjTL3UfKza6pflQUUh3XtaQIHKvnsJw1lmsEyHVlt5jchYxOQ5w==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/lz-string": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", @@ -10509,6 +11551,16 @@ "dev": true, "license": "MIT" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/mermaid": { "version": "11.15.0", "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.15.0.tgz", @@ -10550,6 +11602,33 @@ "node": ">= 20" } }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", @@ -10814,6 +11893,18 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz", @@ -11066,6 +12157,26 @@ "dev": true, "license": "MIT" }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -11328,6 +12439,13 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", @@ -11457,6 +12575,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", @@ -11592,6 +12720,188 @@ "points-on-curve": "0.2.0" } }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/postject": { "version": "1.0.0-alpha.6", "resolved": "https://registry.npmjs.org/postject/-/postject-1.0.0-alpha.6.tgz", @@ -11766,6 +13076,27 @@ ], "license": "MIT" }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -11789,6 +13120,27 @@ "performance-now": "^2.1.0" } }, + "node_modules/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.7" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -11809,6 +13161,16 @@ "read-binary-file-arch": "cli.js" } }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -11823,6 +13185,32 @@ "node": ">= 6" } }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", @@ -11867,6 +13255,28 @@ "url": "https://github.com/sponsors/jet2jet" } }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", @@ -11950,6 +13360,17 @@ "node": ">= 4" } }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rgbcolor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", @@ -12000,6 +13421,40 @@ "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==", "license": "Unlicense" }, + "node_modules/rolldown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", + "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.133.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.3", + "@rolldown/binding-darwin-arm64": "1.0.3", + "@rolldown/binding-darwin-x64": "1.0.3", + "@rolldown/binding-freebsd-x64": "1.0.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", + "@rolldown/binding-linux-arm64-gnu": "1.0.3", + "@rolldown/binding-linux-arm64-musl": "1.0.3", + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", + "@rolldown/binding-linux-s390x-gnu": "1.0.3", + "@rolldown/binding-linux-x64-gnu": "1.0.3", + "@rolldown/binding-linux-x64-musl": "1.0.3", + "@rolldown/binding-openharmony-arm64": "1.0.3", + "@rolldown/binding-wasm32-wasi": "1.0.3", + "@rolldown/binding-win32-arm64-msvc": "1.0.3", + "@rolldown/binding-win32-x64-msvc": "1.0.3" + } + }, "node_modules/roughjs": { "version": "4.6.6", "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", @@ -12019,6 +13474,30 @@ "dev": true, "license": "MIT" }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -12083,6 +13562,12 @@ "node": ">=v12.22.7" } }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -12346,6 +13831,16 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -12562,6 +14057,39 @@ "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", "license": "MIT" }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", @@ -12588,6 +14116,19 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/svg-pathdata": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", @@ -12621,6 +14162,75 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tailwind-merge": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.6.0.tgz", + "integrity": "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tailwindcss/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/tar": { "version": "7.5.13", "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", @@ -12767,6 +14377,29 @@ "utrie": "^1.0.2" } }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/tiny-async-pool": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", @@ -12803,14 +14436,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -12866,6 +14499,19 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/tough-cookie": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", @@ -12911,6 +14557,13 @@ "node": ">=6.10" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -12958,6 +14611,20 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "license": "MIT" }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/ufo": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", @@ -13194,6 +14861,84 @@ "license": "MIT", "optional": true }, + "node_modules/vite": { + "version": "8.0.16", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", + "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.15", + "rolldown": "1.0.3", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.18", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", @@ -13542,6 +15287,35 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zustand": { + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.14.tgz", + "integrity": "sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } } } } diff --git a/package.json b/package.json index 5fa26c9..e00fc8b 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,12 @@ }, "devDependencies": { "@testing-library/dom": "^10.4.1", + "@types/react": "^19.2.16", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", + "autoprefixer": "^10.5.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", "cross-env": "^10.0.0", "electron": "^41.1.1", "electron-builder": "^26.0.12", @@ -52,8 +58,15 @@ "eslint-plugin-prettier": "^5.5.4", "jest": "^30.2.0", "jest-environment-jsdom": "^30.2.0", + "lucide-react": "^1.17.0", + "postcss": "^8.5.15", "prettier": "^3.7.4", - "sharp": "^0.34.3" + "sharp": "^0.34.3", + "tailwind-merge": "^3.6.0", + "tailwindcss": "^3.4.19", + "tailwindcss-animate": "^1.0.7", + "typescript": "^6.0.3", + "vite": "^8.0.16" }, "dependencies": { "@codemirror/autocomplete": "^6.20.1", @@ -70,6 +83,7 @@ "@codemirror/state": "^6.5.4", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.39.16", + "@tanstack/react-table": "^8.21.3", "codemirror": "^6.0.2", "core-util-is": "^1.0.3", "docx": "^9.6.0", @@ -87,8 +101,11 @@ "pdfjs-dist": "^5.5.207", "pdfkit": "^0.17.2", "pizzip": "^3.2.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", "simple-git": "^3.32.3", - "tslib": "^2.8.1" + "tslib": "^2.8.1", + "zustand": "^5.0.14" }, "overrides": { "jszip": "^3.10.1", diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx new file mode 100644 index 0000000..0a54a89 --- /dev/null +++ b/src/renderer/App.tsx @@ -0,0 +1,47 @@ +import React from 'react'; +import { AppHeader } from './components/layout/AppHeader'; +import { TabBar } from './components/layout/TabBar'; +import { Toolbar } from './components/layout/Toolbar'; +import { Breadcrumb } from './components/layout/Breadcrumb'; +import { Sidebar } from './components/sidebar/Sidebar'; +import { EditorPane } from './components/editor/EditorPane'; +import { PreviewPane } from './components/preview/PreviewPane'; +import { StatusBar } from './components/layout/StatusBar'; +import { CommandPalette } from './components/modals/CommandPalette'; +import { ExportDialog } from './components/modals/ExportDialog'; +import { SettingsDialog } from './components/modals/SettingsDialog'; +import { useAppStore } from './stores/appStore'; + +function App() { + const { sidebarVisible, previewVisible, activeTabId } = useAppStore(); + + return ( +
+ + + + + +
+ {sidebarVisible && } + +
+ + {previewVisible && ( + <> +
+ + + )} +
+
+ + + + + +
+ ); +} + +export default App; diff --git a/src/renderer/index.html b/src/renderer/index.html new file mode 100644 index 0000000..f95dba7 --- /dev/null +++ b/src/renderer/index.html @@ -0,0 +1,16 @@ + + + + + + + MarkdownConverter + + + + + +
+ + + diff --git a/src/renderer/main.tsx b/src/renderer/main.tsx new file mode 100644 index 0000000..1f860e3 --- /dev/null +++ b/src/renderer/main.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; +import './styles/globals.css'; + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + +); diff --git a/src/renderer/styles/globals.css b/src/renderer/styles/globals.css new file mode 100644 index 0000000..e3821b0 --- /dev/null +++ b/src/renderer/styles/globals.css @@ -0,0 +1,82 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 0 0% 9%; + --card: 0 0% 100%; + --card-foreground: 0 0% 9%; + --popover: 0 0% 100%; + --popover-foreground: 0 0% 9%; + --primary: 11 79% 51%; + --primary-foreground: 0 0% 100%; + --secondary: 0 0% 96%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96%; + --muted-foreground: 0 0% 45%; + --accent: 0 0% 96%; + --accent-foreground: 0 0% 9%; + --destructive: 0 84% 60%; + --destructive-foreground: 0 0% 100%; + --border: 0 0% 90%; + --input: 0 0% 90%; + --ring: 11 79% 51%; + --radius: 0.5rem; + } + + .dark { + --background: 30 14% 4%; + --foreground: 0 0% 98%; + --card: 30 14% 6%; + --card-foreground: 0 0% 98%; + --popover: 30 14% 6%; + --popover-foreground: 0 0% 98%; + --primary: 11 79% 51%; + --primary-foreground: 0 0% 100%; + --secondary: 30 6% 15%; + --secondary-foreground: 0 0% 98%; + --muted: 30 6% 15%; + --muted-foreground: 0 0% 63%; + --accent: 30 6% 15%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62% 30%; + --destructive-foreground: 0 0% 100%; + --border: 30 6% 15%; + --input: 30 6% 15%; + --ring: 11 79% 51%; + } + + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground; + } +} + +/* Custom scrollbar */ +::-webkit-scrollbar { + width: 6px; + height: 6px; +} +::-webkit-scrollbar-track { + background: transparent; +} +::-webkit-scrollbar-thumb { + background: hsl(var(--muted-foreground) / 0.3); + border-radius: 3px; +} +::-webkit-scrollbar-thumb:hover { + background: hsl(var(--muted-foreground) / 0.5); +} + +/* CodeMirror integration */ +.cm-editor { + @apply h-full; +} +.cm-editor .cm-scroller { + @apply font-mono text-sm; +} diff --git a/src/renderer/types/electron.d.ts b/src/renderer/types/electron.d.ts new file mode 100644 index 0000000..36653ff --- /dev/null +++ b/src/renderer/types/electron.d.ts @@ -0,0 +1,90 @@ +export interface ElectronAPI { + // App info + getAppVersion: () => Promise; + + // File operations + openFile: () => Promise<{ canceled: boolean; filePaths: string[] }>; + saveFile: (data: { path: string; content: string }) => Promise; + readFile: (path: string) => Promise; + setCurrentFile: (path: string | null) => void; + + // Export + exportDocument: (format: string, options?: Record) => Promise; + + // Theme + getTheme: () => void; + onThemeChanged: (callback: (theme: string) => void) => () => void; + + // File events + onFileOpened: (callback: (data: { path: string; content: string }) => void) => () => void; + onFileNew: (callback: () => void) => () => void; + onFileSave: (callback: () => void) => () => void; + + // Conversion status + onConversionStatus: (callback: (message: string) => void) => () => void; + onConversionComplete: (callback: (data: { format: string; outputPath: string }) => void) => () => void; + + // Dialogs + showExportDialog: (format: string) => void; + showBatchDialog: () => void; + showUniversalConverterDialog: () => void; + showTableGenerator: () => void; + showPdfEditorDialog: () => void; + showHeaderFooterDialog: () => void; + showFieldPickerDialog: () => void; + + // Settings + getSettings: (key: string) => Promise; + setSettings: (key: string, value: any) => Promise; + + // Plugin settings + getPluginSetting: (key: string) => Promise; + setPluginSetting: (key: string, value: any) => Promise; + + // Sidebar + toggleSidebar: () => void; + toggleBottomPanel: () => void; + + // Print + doPrint: (options?: any) => void; + + // PDF + openPdfViewer: (filePath: string) => void; + processPdfOperation: (data: any) => void; + + // Images + selectFolder: () => Promise; + savePastedImage: (data: { base64: string; ext: string }) => Promise<{ relativePath: string } | null>; + + // Templates + loadTemplate: (file: string) => Promise; + getSnippets: () => Promise; + saveSnippet: (snippet: any) => Promise; + deleteSnippet: (id: string) => Promise; + + // Git + gitStatus: () => Promise; + gitDiff: (file: string) => Promise; + gitStage: (files: string[]) => Promise; + gitCommit: (message: string) => Promise; + gitLog: () => Promise; + + // Directory + listDirectory: (dir: string) => Promise; + openFilePath: (path: string) => void; + + // Custom CSS + selectCustomCSS: () => Promise; + loadCustomCSS: () => void; + clearCustomCSS: () => void; + + // Generic invoke/on + invoke: (channel: string, data?: any) => Promise; + on: (channel: string, callback: (...args: any[]) => void) => () => void; +} + +declare global { + interface Window { + electronAPI: ElectronAPI; + } +} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..c052c60 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,47 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: ['class'], + content: [ + './src/renderer/**/*.{js,ts,jsx,tsx}', + './src/renderer/index.html', + ], + theme: { + extend: { + colors: { + brand: { + DEFAULT: '#e5461f', + dark: '#c93a18', + light: '#ff6b47', + }, + success: '#1a7a56', + warning: '#eab308', + danger: '#ef4444', + info: '#0ea5e9', + warm: { + 50: '#fafbfc', + 100: '#f5f5f5', + 200: '#e3e3e3', + 300: '#d1d1d1', + 400: '#b0b0b0', + 500: '#9a9696', + 600: '#7a7878', + 700: '#5a5858', + 800: '#4e4e4e', + 900: '#464646', + 950: '#0d0b09', + }, + }, + fontFamily: { + sans: ['"Plus Jakarta Sans"', 'system-ui', 'sans-serif'], + display: ['"Barlow Condensed"', 'system-ui', 'sans-serif'], + mono: ['"JetBrains Mono"', '"Fira Code"', '"SF Mono"', 'Consolas', 'monospace'], + }, + borderRadius: { + lg: '0.75rem', + md: '0.5rem', + sm: '0.25rem', + }, + }, + }, + plugins: [require('tailwindcss-animate')], +}; diff --git a/vite.renderer.config.ts b/vite.renderer.config.ts new file mode 100644 index 0000000..dfd5240 --- /dev/null +++ b/vite.renderer.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; +import path from 'path'; + +export default defineConfig({ + plugins: [react()], + root: path.join(__dirname, 'src/renderer'), + base: './', + build: { + outDir: path.join(__dirname, 'dist/renderer'), + emptyOutDir: true, + sourcemap: true, + }, + resolve: { + alias: { + '@': path.join(__dirname, 'src/renderer'), + }, + }, + server: { + port: 5173, + strictPort: true, + }, +});