From 5dfccc17b45eb4eade9314b1b53efa8a76581aed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Bokisch?= Date: Wed, 25 Mar 2026 10:04:08 +0100 Subject: [PATCH 1/2] Add Dependabot for automated dependency updates Weekly checks for npm and GitHub Actions deps. Groups @pyreon/*, @tanstack/*, @vitus-labs/* updates together. Resolves OpenSSF Scorecard DependencyUpdateToolID alert. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/dependabot.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..72b445a --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,23 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + groups: + pyreon: + patterns: + - "@pyreon/*" + tanstack: + patterns: + - "@tanstack/*" + vitus-labs: + patterns: + - "@vitus-labs/*" + open-pull-requests-limit: 10 + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + open-pull-requests-limit: 5 From 4483355febc06c26ab9b2b9b23eea1908e91c007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Bokisch?= Date: Wed, 25 Mar 2026 10:09:20 +0100 Subject: [PATCH 2/2] Bump core to ^0.7.12, fix link ref type properly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump all core @pyreon/* to ^0.7.12 (fixed types). Fix useLink() ref: HTMLElement → HTMLAnchorElement, remove as any cast. Co-Authored-By: Claude Opus 4.6 (1M context) --- bun.lock | 46 +++++++++++++++---------------- package.json | 2 +- packages/cli/package.json | 4 +-- packages/create-zero/src/index.ts | 2 +- packages/meta/package.json | 2 +- packages/zero/package.json | 16 +++++------ packages/zero/src/link.tsx | 8 +++--- 7 files changed, 40 insertions(+), 40 deletions(-) diff --git a/bun.lock b/bun.lock index e0b49c7..c3a3a48 100644 --- a/bun.lock +++ b/bun.lock @@ -9,7 +9,7 @@ "@changesets/cli": "^2.30.0", "@clack/core": "^1.1.0", "@clack/prompts": "^1.1.0", - "@pyreon/typescript": "^0.7.11", + "@pyreon/typescript": "^0.7.12", "@types/bun": "^1.3.11", "@types/node": "^25.5.0", "@vitus-labs/tools-lint": "^1.15.4", @@ -27,9 +27,9 @@ "zero": "./bin/zero.js", }, "dependencies": { - "@pyreon/cli": "^0.7.11", + "@pyreon/cli": "^0.7.12", "@pyreon/create-zero": "workspace:^", - "@pyreon/server": "^0.7.11", + "@pyreon/server": "^0.7.12", "@pyreon/zero": "workspace:^", "cac": "^7.0.0", "vite": "^8.0.0", @@ -77,25 +77,25 @@ "@pyreon/virtual": "^0.10.0", }, "peerDependencies": { - "@pyreon/reactivity": "^0.7.11", + "@pyreon/reactivity": "^0.7.12", }, }, "packages/zero": { "name": "@pyreon/zero", "version": "0.4.1", "dependencies": { - "@pyreon/core": "^0.7.11", - "@pyreon/head": "^0.7.11", + "@pyreon/core": "^0.7.12", + "@pyreon/head": "^0.7.12", "@pyreon/meta": "workspace:^", - "@pyreon/router": "^0.7.11", - "@pyreon/runtime-dom": "^0.7.11", - "@pyreon/runtime-server": "^0.7.11", - "@pyreon/server": "^0.7.11", - "@pyreon/vite-plugin": "^0.7.11", + "@pyreon/router": "^0.7.12", + "@pyreon/runtime-dom": "^0.7.12", + "@pyreon/runtime-server": "^0.7.12", + "@pyreon/server": "^0.7.12", + "@pyreon/vite-plugin": "^0.7.12", "vite": "^8.0.0", }, "peerDependencies": { - "@pyreon/reactivity": "^0.7.11", + "@pyreon/reactivity": "^0.7.12", }, }, }, @@ -306,15 +306,15 @@ "@pyreon/charts": ["@pyreon/charts@0.10.0", "", { "peerDependencies": { "@pyreon/core": ">=0.7.0 <0.8.0", "@pyreon/reactivity": ">=0.7.0 <0.8.0", "echarts": ">=5.6.0" } }, "sha512-XiTwMk4FNfe4ahwlrAzobVVpkPP3OD9Ke89uIKtlo8tX4buwu/5coG+PXKswYM3BLZyrq8zwMYKeoOMw2lDoTQ=="], - "@pyreon/cli": ["@pyreon/cli@0.7.11", "", { "dependencies": { "@pyreon/compiler": "^0.7.11" }, "peerDependencies": { "typescript": ">=5.0.0" }, "bin": { "pyreon": "lib/index.js" } }, "sha512-56yqTCw/8BII27m+ErqnwrX/uzRqqVMoFWhsABHjbmHKTXlQjxTR7iFpxl6e96qEbh/rwdcBwCUZzj2vg7Q5UA=="], + "@pyreon/cli": ["@pyreon/cli@0.7.12", "", { "dependencies": { "@pyreon/compiler": "^0.7.12" }, "peerDependencies": { "typescript": ">=5.0.0" }, "bin": { "pyreon": "lib/index.js" } }, "sha512-yovNPHS+0bXralzcj8tOzxiZec7rQDv2H1u/QTYy6ZUqCJlU9c7+QgBXINsnGcwWFqBWSjl+RTSI9oSwoNUHig=="], "@pyreon/code": ["@pyreon/code@0.10.0", "", { "dependencies": { "@codemirror/autocomplete": "^6.20.1", "@codemirror/commands": "^6.10.3", "@codemirror/language": "^6.12.2", "@codemirror/lint": "^6.9.5", "@codemirror/merge": "^6.12.1", "@codemirror/search": "^6.6.0", "@codemirror/state": "^6.6.0", "@codemirror/view": "^6.40.0", "codemirror": "^6.0.2" }, "optionalDependencies": { "@codemirror/lang-cpp": "^6.0.2", "@codemirror/lang-css": "^6.3.1", "@codemirror/lang-go": "^6.0.1", "@codemirror/lang-html": "^6.4.11", "@codemirror/lang-java": "^6.0.1", "@codemirror/lang-javascript": "^6.2.5", "@codemirror/lang-json": "^6.0.2", "@codemirror/lang-markdown": "^6.5.0", "@codemirror/lang-php": "^6.0.1", "@codemirror/lang-python": "^6.2.1", "@codemirror/lang-rust": "^6.0.2", "@codemirror/lang-sql": "^6.10.0", "@codemirror/lang-xml": "^6.1.0", "@codemirror/lang-yaml": "^6.1.2" }, "peerDependencies": { "@pyreon/core": ">=0.7.0 <0.8.0", "@pyreon/reactivity": ">=0.7.0 <0.8.0" } }, "sha512-I3t4K/1C8toicoAvRaUB1InA1DmgOPzCn3MQZ4+9yI+Vs6Jh7RPiLJ+eZdUybLIo27wqpFSG1HzytNI2Ygk+lQ=="], - "@pyreon/compiler": ["@pyreon/compiler@0.7.11", "", { "peerDependencies": { "typescript": ">=5.0.0" } }, "sha512-Zr26ThMy0xVgJyJy87hZH6bugGrlbr9eRVHBd/iGWSKwhaNwJdHZ7bhMs1d842R9LtXz8cWFxc0sMUVG2OJpcQ=="], + "@pyreon/compiler": ["@pyreon/compiler@0.7.12", "", { "peerDependencies": { "typescript": ">=5.0.0" } }, "sha512-wql/Hu81kWzp0aIKy4UAxhdh7INIc2G8VBoebVFn23Zk9nqIM59bj96sqvDBcdPFZXgpnmZwqz7JC9xPU6IiPg=="], "@pyreon/coolgrid": ["@pyreon/coolgrid@0.2.0", "", { "peerDependencies": { "@pyreon/core": ">=0.4.0 <1.0.0", "@pyreon/reactivity": ">=0.4.0 <1.0.0", "@pyreon/styler": "^0.2.0", "@pyreon/ui-core": "^0.2.0", "@pyreon/unistyle": "^0.2.0" } }, "sha512-2Wroc/QUTmCvwbn935J5Jbj/26klWJXwfo2+bahmTpSkrSrp7rqrXBFz4tv7xqlxK+va3f6eQ7CEAAENQy1rPg=="], - "@pyreon/core": ["@pyreon/core@0.7.11", "", { "dependencies": { "@pyreon/reactivity": "^0.7.11" } }, "sha512-MtCXArpSNWUV6JV951zzO2vWe+26Z6+vJTF0aTYgR8HwZddcscjFCZ+6sO8laiiycJm/LhaGBcCxulm5csmOkw=="], + "@pyreon/core": ["@pyreon/core@0.7.12", "", { "dependencies": { "@pyreon/reactivity": "^0.7.12" } }, "sha512-h0O5lWoTMrOAIGrtmzo3koIvrIU/QL2jRlyxP/zY2GxRwrm3ul1Z6XYO/AGGq0bzJ/cs//10Va3srtk+J2h3Bg=="], "@pyreon/create-zero": ["@pyreon/create-zero@workspace:packages/create-zero"], @@ -326,7 +326,7 @@ "@pyreon/form": ["@pyreon/form@0.10.0", "", { "peerDependencies": { "@pyreon/core": ">=0.7.0 <0.8.0", "@pyreon/reactivity": ">=0.7.0 <0.8.0" } }, "sha512-Gi8dgsve1SnfVTZFT+Gjf/uPf5lvXUS/MpFBYdd9PupVwmA0G+uMR9hSnRWSynJbB6EkMdPHj1rw//4GLVnWoA=="], - "@pyreon/head": ["@pyreon/head@0.7.11", "", { "dependencies": { "@pyreon/core": "^0.7.11", "@pyreon/reactivity": "^0.7.11", "@pyreon/runtime-server": "^0.7.11" } }, "sha512-5dE3kMHftxUw9p8P8Ap/lJ1KPMmijtweeq5pNdxBpB4wCm6N38UlVDzP7rV+ZEHd3n6O9znNaYR4unoO48Z4RA=="], + "@pyreon/head": ["@pyreon/head@0.7.12", "", { "dependencies": { "@pyreon/core": "^0.7.12", "@pyreon/reactivity": "^0.7.12", "@pyreon/runtime-server": "^0.7.12" } }, "sha512-DAXE0bari3tlyMb0jacdmMXkN0xwwmpS+Yx+fCPQFpbP0/1YCCtqNK8n2vECevt8x41e9b5ChV7atLOMD4Bxeg=="], "@pyreon/hooks": ["@pyreon/hooks@0.2.0", "", { "peerDependencies": { "@pyreon/core": ">=0.4.0 <1.0.0", "@pyreon/reactivity": ">=0.4.0 <1.0.0", "@pyreon/styler": ">=0.2.0", "@pyreon/ui-core": ">=0.2.0" } }, "sha512-cjF8/OADdfhXGWEuJoCwqmNYqy/066Y7VJWpuOqTJM3z8YI1PYlQlg95YzF2q+rhkMgsbW2cr7ou3G0Z8EobJg=="], @@ -346,17 +346,17 @@ "@pyreon/query": ["@pyreon/query@0.10.0", "", { "dependencies": { "@tanstack/query-core": "^5.0.0" }, "peerDependencies": { "@pyreon/core": ">=0.7.0 <0.8.0", "@pyreon/reactivity": ">=0.7.0 <0.8.0" } }, "sha512-pt6MTq/Wt8p2utGnYhbuFCcNDMeNd/2lOOHxaZytdn6DeXyNvTbbuvVEcB8OP0onXQW/L9Xw5hq5HD4PKvO3Cg=="], - "@pyreon/reactivity": ["@pyreon/reactivity@0.7.11", "", {}, "sha512-LZ0cfY+EMOtgwOQp4aCCUBslHpdxCil1IAKkqVE3BsamIKioWo2SWA0sVEQU58DL4Ml+0mg/akyDZVawaKv9ow=="], + "@pyreon/reactivity": ["@pyreon/reactivity@0.7.12", "", {}, "sha512-hKNJIE8hfO7rgxObuPhE5t+5ZPpRj3w2LFhUWsqPvAhQKwz2jsemOnqo64XQRbszWOFFkoXUVw5lG0QEvhrR0A=="], "@pyreon/rocketstyle": ["@pyreon/rocketstyle@0.2.0", "", { "peerDependencies": { "@pyreon/core": ">=0.4.0 <1.0.0", "@pyreon/reactivity": ">=0.4.0 <1.0.0", "@pyreon/styler": ">=0.2.0", "@pyreon/ui-core": ">=0.2.0" } }, "sha512-hcbM8coltaMN385xxJYWlaKVujnlThdf58LHpcjLSu0FhpOyMrjd0F6F+AZcMWI8TRlzeZtV38hWYxpgY7ZxIw=="], - "@pyreon/router": ["@pyreon/router@0.7.11", "", { "dependencies": { "@pyreon/core": "^0.7.11", "@pyreon/reactivity": "^0.7.11", "@pyreon/runtime-dom": "^0.7.11" } }, "sha512-g0TJJSZvErrl/7MisWpkTMctcWTHUKTelMrl0sE3qzbP3mdnXZ8ybc8EDY0Epi1qSBX3HuUfbKV26cnHDvbCcw=="], + "@pyreon/router": ["@pyreon/router@0.7.12", "", { "dependencies": { "@pyreon/core": "^0.7.12", "@pyreon/reactivity": "^0.7.12", "@pyreon/runtime-dom": "^0.7.12" } }, "sha512-VUnpb56S9slN4Nkg3DUITH6TSL+sNSx3yaAVaLvx8jhBIoOKU/cAdbfrr9cfViBv6B/4NKY//DfQWjsiZvhETA=="], - "@pyreon/runtime-dom": ["@pyreon/runtime-dom@0.7.11", "", { "dependencies": { "@pyreon/core": "^0.7.11", "@pyreon/reactivity": "^0.7.11" } }, "sha512-uVuwcoVQgUtBY6PokC3dpKi0O1LfiRKHpLT4P8I4Ozp/ATdMDq47xuLNgFwVqpQ8WrSN/vEj2LM0tVACFs5JIg=="], + "@pyreon/runtime-dom": ["@pyreon/runtime-dom@0.7.12", "", { "dependencies": { "@pyreon/core": "^0.7.12", "@pyreon/reactivity": "^0.7.12" } }, "sha512-7aJ/YZ7Y0KQdU4IWDJxM2cvTKLzjM5pQ2sl9eZ9foFyvt5qBXCaSFW61fEubtOhj/TJE4GBe8Xsw84vn0mg3vA=="], - "@pyreon/runtime-server": ["@pyreon/runtime-server@0.7.11", "", { "dependencies": { "@pyreon/core": "^0.7.11", "@pyreon/reactivity": "^0.7.11" } }, "sha512-S7Jgwg9D8z9UjF+NUHzXvIRVcDvYH1cZ/+n7Qa86+32Pq8lwHeUslfREhymIHVMOZvJ61gf1JlX/+/7jS4ZA9A=="], + "@pyreon/runtime-server": ["@pyreon/runtime-server@0.7.12", "", { "dependencies": { "@pyreon/core": "^0.7.12", "@pyreon/reactivity": "^0.7.12" } }, "sha512-Unvev8R3kuvqklie3PwV36JPbJkWPv76AvCitH+4NxUyYDuJkECaapdGsliSGVIC0YP5f/FbsSAUgPWDgXnMuw=="], - "@pyreon/server": ["@pyreon/server@0.7.11", "", { "dependencies": { "@pyreon/core": "^0.7.11", "@pyreon/head": "^0.7.11", "@pyreon/reactivity": "^0.7.11", "@pyreon/router": "^0.7.11", "@pyreon/runtime-dom": "^0.7.11", "@pyreon/runtime-server": "^0.7.11" } }, "sha512-okTaIExp7RuNLaP7wtP2tMEb4HGJbAB2cA2X6I7FReRxPqtejGWkqguopPEYcbr0J3jUgH4UTm9orN0MQGJThA=="], + "@pyreon/server": ["@pyreon/server@0.7.12", "", { "dependencies": { "@pyreon/core": "^0.7.12", "@pyreon/head": "^0.7.12", "@pyreon/reactivity": "^0.7.12", "@pyreon/router": "^0.7.12", "@pyreon/runtime-dom": "^0.7.12", "@pyreon/runtime-server": "^0.7.12" } }, "sha512-nWNL1bO9ZRhhWvy3LvFiPN0yLJtEWPeaGkcscQhCANR6oxI7nmhOZSEsSGgkNAvMO/jedyAF4C+HpoIc+p3uzA=="], "@pyreon/state-tree": ["@pyreon/state-tree@0.10.0", "", { "peerDependencies": { "@pyreon/reactivity": ">=0.7.0 <0.8.0" } }, "sha512-6Zi0nGMNmfsmX5dainkTHrId78eniYRbd8YqWFH5MdwCxl23wkkdHQSLgpJP5TXV4ZlpqhkyNUW/A/qNRA2GCQ=="], @@ -368,7 +368,7 @@ "@pyreon/table": ["@pyreon/table@0.10.0", "", { "dependencies": { "@tanstack/table-core": "^8.0.0" }, "peerDependencies": { "@pyreon/core": ">=0.7.0 <0.8.0", "@pyreon/reactivity": ">=0.7.0 <0.8.0" } }, "sha512-Bskyr1FVMtxWAmGCAgyicbZUr1IjoLji9k8YWWtebVOPSHQIcvqPBsAIFw1O1/opF6Oaqv6QYDIee83N4f4lqg=="], - "@pyreon/typescript": ["@pyreon/typescript@0.7.11", "", { "peerDependencies": { "@pyreon/core": ">=0.7.2", "typescript": ">=5.9.0" } }, "sha512-npHddXFndK6NBwCrXV9IQ2YFvwOFsuIBMzsaFXyOR3nJeQVujtqezrPUdvLkUVUQH5TK0T//SY8OpqD105BAhQ=="], + "@pyreon/typescript": ["@pyreon/typescript@0.7.12", "", { "peerDependencies": { "@pyreon/core": ">=0.7.2", "typescript": ">=5.9.0" } }, "sha512-6mHyg4RNdq2M3FSASdDNq0f4g16N2tlwQSQTHj2DL5k6nlZbvey5Os8ckvAfgG8XCovsJ3K4J7ujJ6iZKGWQ4g=="], "@pyreon/ui-core": ["@pyreon/ui-core@0.2.0", "", { "peerDependencies": { "@pyreon/core": ">=0.4.0 <1.0.0", "@pyreon/styler": ">=0.2.0" } }, "sha512-v63R5rTv8SmWgbAwYnNs7NtIyDDq4smjQXnBqDiym4BymYa+wuy6IboWgEuZOLEdIBVxeyvsf2k+fMQtydTcgg=="], @@ -378,7 +378,7 @@ "@pyreon/virtual": ["@pyreon/virtual@0.10.0", "", { "dependencies": { "@tanstack/virtual-core": "^3.0.0" }, "peerDependencies": { "@pyreon/core": ">=0.7.0 <0.8.0", "@pyreon/reactivity": ">=0.7.0 <0.8.0" } }, "sha512-BcX3ZczvsF42bRAC1hMYAOdYBUW8nZ7rsUzrvuU3BHAwVX2TKxdr5l7TfhZuZHAUDSgQoHv9wEhryoCyxoidWg=="], - "@pyreon/vite-plugin": ["@pyreon/vite-plugin@0.7.11", "", { "dependencies": { "@pyreon/compiler": "^0.7.11" }, "peerDependencies": { "vite": ">=8.0.0" } }, "sha512-TSnwT6sMBvBZyal4Pv2+DwiM5wgaqQqOF/CAa8DthIPQDHqjKAONr97cvXXLLcqyCPoKx5fbFvPUz1QBy9wRdg=="], + "@pyreon/vite-plugin": ["@pyreon/vite-plugin@0.7.12", "", { "dependencies": { "@pyreon/compiler": "^0.7.12" }, "peerDependencies": { "vite": ">=8.0.0" } }, "sha512-eoKNunM8FQ+4eQ+JruPQbTWyUEzdpGPOiPBwtY26VaHi0r1VYHB8pUzMqKShFnrH0+tCf3s15tPriW/OerLwXA=="], "@pyreon/zero": ["@pyreon/zero@workspace:packages/zero"], diff --git a/package.json b/package.json index dd3db8d..d80f23b 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@changesets/cli": "^2.30.0", "@clack/core": "^1.1.0", "@clack/prompts": "^1.1.0", - "@pyreon/typescript": "^0.7.11", + "@pyreon/typescript": "^0.7.12", "@types/bun": "^1.3.11", "@types/node": "^25.5.0", "@vitus-labs/tools-lint": "^1.15.4", diff --git a/packages/cli/package.json b/packages/cli/package.json index 8869662..72b0723 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -27,9 +27,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@pyreon/cli": "^0.7.11", + "@pyreon/cli": "^0.7.12", "@pyreon/create-zero": "workspace:^", - "@pyreon/server": "^0.7.11", + "@pyreon/server": "^0.7.12", "@pyreon/zero": "workspace:^", "cac": "^7.0.0", "vite": "^8.0.0" diff --git a/packages/create-zero/src/index.ts b/packages/create-zero/src/index.ts index bf8799f..1ef3083 100644 --- a/packages/create-zero/src/index.ts +++ b/packages/create-zero/src/index.ts @@ -306,7 +306,7 @@ async function scaffold(config: ProjectConfig) { function pyreonVersion(pkg: string): string { // Core packages const core = ['core', 'reactivity', 'runtime-dom', 'runtime-server', 'server', 'head', 'router', 'vite-plugin', 'compiler', 'cli', 'mcp'] - if (core.some((c) => pkg === `@pyreon/${c}`)) return '^0.7.11' + if (core.some((c) => pkg === `@pyreon/${c}`)) return '^0.7.12' // Zero framework packages if (pkg === '@pyreon/zero' || pkg === '@pyreon/meta' || pkg === '@pyreon/zero-cli' || pkg === '@pyreon/create-zero') return '^0.3.0' // Fundamentals diff --git a/packages/meta/package.json b/packages/meta/package.json index 6359164..dd7e46b 100644 --- a/packages/meta/package.json +++ b/packages/meta/package.json @@ -62,6 +62,6 @@ "@pyreon/unistyle": "^0.2.0" }, "peerDependencies": { - "@pyreon/reactivity": "^0.7.11" + "@pyreon/reactivity": "^0.7.12" } } diff --git a/packages/zero/package.json b/packages/zero/package.json index e5488da..8b48d27 100644 --- a/packages/zero/package.json +++ b/packages/zero/package.json @@ -115,17 +115,17 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@pyreon/core": "^0.7.11", - "@pyreon/head": "^0.7.11", + "@pyreon/core": "^0.7.12", + "@pyreon/head": "^0.7.12", "@pyreon/meta": "workspace:^", - "@pyreon/router": "^0.7.11", - "@pyreon/runtime-dom": "^0.7.11", - "@pyreon/runtime-server": "^0.7.11", - "@pyreon/server": "^0.7.11", - "@pyreon/vite-plugin": "^0.7.11", + "@pyreon/router": "^0.7.12", + "@pyreon/runtime-dom": "^0.7.12", + "@pyreon/runtime-server": "^0.7.12", + "@pyreon/server": "^0.7.12", + "@pyreon/vite-plugin": "^0.7.12", "vite": "^8.0.0" }, "peerDependencies": { - "@pyreon/reactivity": "^0.7.11" + "@pyreon/reactivity": "^0.7.12" } } diff --git a/packages/zero/src/link.tsx b/packages/zero/src/link.tsx index b2e6df9..289f370 100644 --- a/packages/zero/src/link.tsx +++ b/packages/zero/src/link.tsx @@ -35,7 +35,7 @@ export interface LinkProps { /** Props passed to a custom component via createLink. */ export interface LinkRenderProps { href: string - ref: import('@pyreon/core').Ref + ref: import('@pyreon/core').Ref onClick: (e: MouseEvent) => void onMouseEnter: () => void onTouchStart: () => void @@ -53,7 +53,7 @@ export interface LinkRenderProps { /** Return type of useLink. */ export interface UseLinkReturn { /** Ref object — attach to the root element for viewport-based prefetch. */ - ref: import('@pyreon/core').Ref + ref: import('@pyreon/core').Ref /** Click handler — performs client-side navigation. */ handleClick: (e: MouseEvent) => void /** Mouse enter handler — triggers hover prefetch. */ @@ -108,7 +108,7 @@ function doPrefetch(href: string) { */ export function useLink(props: LinkProps): UseLinkReturn { const router = useRouter() - const elementRef = createRef() + const elementRef = createRef() const strategy = props.prefetch ?? 'hover' function handleClick(e: MouseEvent) { @@ -248,7 +248,7 @@ export function createLink( */ export const Link = createLink((props: LinkRenderProps) => (