diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb5050fd..d5ec1f8b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -817,6 +817,49 @@ importers: specifier: ^6.0.3 version: 6.0.3 + rsbuild/tanstack-start-solid: + dependencies: + '@tanstack/router-plugin': + specifier: ^1.133.21 + version: 1.168.14(@rsbuild/core@2.0.11)(@tanstack/react-router@1.170.11)(vite@8.0.16)(webpack@5.102.1) + '@tanstack/solid-router': + specifier: ^1.170.11 + version: 1.170.11(solid-js@1.9.13) + '@tanstack/solid-router-devtools': + specifier: ^1.167.0 + version: 1.167.0(@tanstack/router-core@1.171.9)(@tanstack/solid-router@1.170.11)(csstype@3.2.3)(solid-js@1.9.13) + '@tanstack/solid-router-ssr-query': + specifier: ^1.167.1 + version: 1.167.1(@tanstack/query-core@5.101.0)(@tanstack/router-core@1.171.9)(@tanstack/solid-query@5.101.0)(@tanstack/solid-router@1.170.11)(solid-js@1.9.13) + '@tanstack/solid-start': + specifier: ^1.168.19 + version: 1.168.19(@rsbuild/core@2.0.11)(@tanstack/react-router@1.170.11)(crossws@0.4.5)(solid-js@1.9.13)(vite@8.0.16)(webpack@5.102.1) + solid-js: + specifier: ^1.9.12 + version: 1.9.13 + tailwindcss: + specifier: ^4.1.18 + version: 4.3.0 + devDependencies: + '@rsbuild/core': + specifier: ^2.0.11 + version: 2.0.11(@module-federation/runtime-tools@2.5.0)(core-js@3.49.0) + '@rsbuild/plugin-babel': + specifier: ^1.2.1 + version: 1.2.1(@rsbuild/core@2.0.11) + '@rsbuild/plugin-solid': + specifier: ^1.2.1 + version: 1.2.1(@babel/core@7.29.7)(@rsbuild/core@2.0.11)(solid-js@1.9.13) + '@rsbuild/plugin-tailwindcss': + specifier: ^2.0.1 + version: 2.0.1(@rsbuild/core@2.0.11)(webpack@5.102.1) + '@types/node': + specifier: ^25.9.1 + version: 25.9.1 + typescript: + specifier: ^6.0.2 + version: 6.0.3 + rsbuild/umd: devDependencies: '@rsbuild/core': @@ -6725,6 +6768,9 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@nothing-but/utils@0.17.0': + resolution: {integrity: sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ==} + '@nuxt/opencollective@0.4.1': resolution: {integrity: sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==} engines: {node: ^14.18.0 || >=16.10.0, npm: '>=5.10.0'} @@ -8219,6 +8265,26 @@ packages: '@socket.io/component-emitter@3.1.0': resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + '@solid-devtools/debugger@0.28.1': + resolution: {integrity: sha512-6qIUI6VYkXoRnL8oF5bvh2KgH71qlJ18hNw/mwSyY6v48eb80ZR48/5PDXufUa3q+MBSuYa1uqTMwLewpay9eg==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-devtools/logger@0.9.11': + resolution: {integrity: sha512-THbiY1iQlieL6vdgJc4FIsLe7V8a57hod/Thm8zdKrTkWL88UPZjkBBfM+mVNGusd4OCnAN20tIFBhNnuT1Dew==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-devtools/shared@0.20.0': + resolution: {integrity: sha512-o5TACmUOQsxpzpOKCjbQqGk8wL8PMi+frXG9WNu4Lh3PQVUB6hs95Kl/S8xc++zwcMguUKZJn8h5URUiMOca6Q==} + peerDependencies: + solid-js: ^1.9.0 + + '@solid-primitives/bounds@0.1.5': + resolution: {integrity: sha512-JFym8zijMfWp1FaAmJlH3xMfenCuhjaUsoBn3kt9FtoWwLj+yt+EGYt+p3SkOKwF7h4gaGtZ5PIdSbSNVWkRmg==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/event-listener@2.4.5': resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==} peerDependencies: @@ -8229,6 +8295,16 @@ packages: peerDependencies: solid-js: ^1.6.12 + '@solid-primitives/media@2.3.5': + resolution: {integrity: sha512-LX9fB5WDaK87FMDtUB1qokBOfT2et9Uobv/zZaKLH9caFSz4+P70MBKEIBHcZQy+9MV5M2XvGYLTbLskjkzMjA==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/refs@1.1.3': + resolution: {integrity: sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/resize-observer@2.1.5': resolution: {integrity: sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw==} peerDependencies: @@ -8239,16 +8315,31 @@ packages: peerDependencies: solid-js: ^1.6.12 + '@solid-primitives/scheduled@1.5.3': + resolution: {integrity: sha512-oNwLE6E6lxJAWrc8QXuwM0k2oU1BnANnkChwMw82aK1j3+mWGJkG1IFe5gCwbV+afYmjI76t9JJV3md/8tLw+g==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/static-store@0.1.3': resolution: {integrity: sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ==} peerDependencies: solid-js: ^1.6.12 + '@solid-primitives/styles@0.1.3': + resolution: {integrity: sha512-7YdA21prMeCX+oOF/1RAn02+cGz/pG4dyPWtHBC2H8aZvnC7IfThBt80mP+TioejrdfE7Lc54Uh18f7Pig+gRQ==} + peerDependencies: + solid-js: ^1.6.12 + '@solid-primitives/utils@6.4.0': resolution: {integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==} peerDependencies: solid-js: ^1.6.12 + '@solidjs/meta@0.29.4': + resolution: {integrity: sha512-zdIWBGpR9zGx1p1bzIPqF5Gs+Ks/BH8R6fWhmUa/dcK1L2rUC8BAcZJzNRYBQv74kScf1TSOs0EY//Vd/I0V8g==} + peerDependencies: + solid-js: '>=1.8.4' + '@storybook/addon-docs@10.4.1': resolution: {integrity: sha512-IYqUdjoZe4VO2LFZlKL/gwy7DsQSWCq6hX+zc1MBmZo04yycDASk1tte57n9pdlW3ajw9yYMF/+lVBi+xQjyvw==} peerDependencies: @@ -8672,6 +8763,9 @@ packages: resolution: {integrity: sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA==} engines: {node: '>=20.19'} + '@tanstack/query-core@5.101.0': + resolution: {integrity: sha512-cQetA74EB+seWySv1TTKr828TnP0u39m6LykwDXIo84SNortpDkp30TMEjkqtYCNP9c40uT/iwl6MLiufEt0Ow==} + '@tanstack/react-devtools@0.10.5': resolution: {integrity: sha512-orVsRJ7oAXFb7oyafQCgx9YuK44jpILh5T/ddYuxAsolNfN5DZBr5/NLrWErD7HCGIzvYzg1TZI4sPxmiKvtvA==} engines: {node: '>=18'} @@ -8793,10 +8887,73 @@ packages: webpack: optional: true + '@tanstack/router-ssr-query-core@1.169.1': + resolution: {integrity: sha512-rngux8s/3mPQzcjLYDLkNU31coYVyCgrVTfpdwqUdY5jIEHqGTXrO73DTkPR1PppwYUeVhmNCgl8TctRcnupjg==} + engines: {node: '>=20.19'} + peerDependencies: + '@tanstack/query-core': '>=5.90.0' + '@tanstack/router-core': '>=1.127.0' + '@tanstack/router-utils@1.162.1': resolution: {integrity: sha512-62layyTGmclHDQS/eidwKRfN1hhCKwViG7iEBcVmL0MXgcAB3OOucWCEcDDGd9Cu11H6b4QQ5oOo47MWIqwz0A==} engines: {node: '>=20.19'} + '@tanstack/solid-query@5.101.0': + resolution: {integrity: sha512-XoPWynbaWquvSisMvUirakfD9OmLas1cOwt1gBDUTn8HC2CVkZm+O/jBgEa5SL5LrY6vxmWjzzskhXkywLfymw==} + peerDependencies: + solid-js: ^1.6.0 + + '@tanstack/solid-router-devtools@1.167.0': + resolution: {integrity: sha512-vwQz5NUBxbos30ndUj08eeJ17nwWxniUq4oOFL7YOK2Q8PhdiqS65SSuFwzU96Ij3dfLlp+nv3uht6n7X9UOVw==} + engines: {node: '>=20.19'} + peerDependencies: + '@tanstack/router-core': ^1.170.0 + '@tanstack/solid-router': ^1.170.0 + solid-js: ^1.9.10 + peerDependenciesMeta: + '@tanstack/router-core': + optional: true + + '@tanstack/solid-router-ssr-query@1.167.1': + resolution: {integrity: sha512-N76V3oz1ZQlTveBTRpLGOTlUtXU5GKOD++IkMnLBtuHEsge9ReluB94QBgVA+ElpQgdeso9uKUs/JsPluAynUA==} + engines: {node: '>=20.19'} + peerDependencies: + '@tanstack/query-core': '>=5.90.0' + '@tanstack/solid-query': '>=5.90.0' + '@tanstack/solid-router': '>=1.127.0' + solid-js: ^1.9.10 + + '@tanstack/solid-router@1.170.11': + resolution: {integrity: sha512-YTHU4OB74KUj30dBco0rBiw8GGiUHK4849TfLWrPFmcVDUpWcKMz49O1hqEPYP7rLqp/poICvZdTZVDRMG5bUQ==} + engines: {node: '>=20.19'} + peerDependencies: + solid-js: ^1.9.10 + + '@tanstack/solid-start-client@1.168.8': + resolution: {integrity: sha512-MGCygKT+XMQPbxQ3tb50YQkgYJ7wkLzVsjx0NWF+zG5BbH1qzq2cIUJewMCQI6ZDu/dXl18KsHE36mNrhh5Drg==} + engines: {node: '>=22.12.0'} + peerDependencies: + solid-js: '>=1.0.0' + + '@tanstack/solid-start-server@1.167.14': + resolution: {integrity: sha512-aIg3+fHzhj/8oj15RIM4UUcxrdSiSQRccpV3sr44lRkaJvMPBw/JR214pwyM5D1KUGk3Koi76v/oPJCD1I4RqQ==} + engines: {node: '>=22.12.0'} + peerDependencies: + solid-js: ^1.0.0 + + '@tanstack/solid-start@1.168.19': + resolution: {integrity: sha512-v7JdCNZoHVZ1ASZ7DgPubvqXJ+27hiQVrhE4i/n7+clSX5fnl/o+vWFSQPWHzPj5RU39A/eTE9bVyU4Bhp2Obg==} + engines: {node: '>=22.12.0'} + peerDependencies: + '@rsbuild/core': ^2.0.0 + solid-js: '>=1.0.0' + vite: '>=7.0.0' + peerDependenciesMeta: + '@rsbuild/core': + optional: true + vite: + optional: true + '@tanstack/start-client-core@1.170.7': resolution: {integrity: sha512-LKNHeK3n8DZ2ub1KpidWCISvJNq7wGuErrd2oSyoUDHSo90ldl7JJcG4OpbDS7GQjqIZ79M47eklajwgKXBxrQ==} engines: {node: '>=22.12.0'} @@ -18780,7 +18937,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -19561,6 +19718,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@nothing-but/utils@0.17.0': {} + '@nuxt/opencollective@0.4.1': dependencies: consola: 3.4.2 @@ -21211,6 +21370,48 @@ snapshots: '@socket.io/component-emitter@3.1.0': {} + '@solid-devtools/debugger@0.28.1(solid-js@1.9.13)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-devtools/shared': 0.20.0(solid-js@1.9.13) + '@solid-primitives/bounds': 0.1.5(solid-js@1.9.13) + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) + '@solid-primitives/keyboard': 1.3.5(solid-js@1.9.13) + '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) + '@solid-primitives/scheduled': 1.5.3(solid-js@1.9.13) + '@solid-primitives/static-store': 0.1.3(solid-js@1.9.13) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + solid-js: 1.9.13 + + '@solid-devtools/logger@0.9.11(solid-js@1.9.13)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-devtools/debugger': 0.28.1(solid-js@1.9.13) + '@solid-devtools/shared': 0.20.0(solid-js@1.9.13) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + solid-js: 1.9.13 + + '@solid-devtools/shared@0.20.0(solid-js@1.9.13)': + dependencies: + '@nothing-but/utils': 0.17.0 + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) + '@solid-primitives/media': 2.3.5(solid-js@1.9.13) + '@solid-primitives/refs': 1.1.3(solid-js@1.9.13) + '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) + '@solid-primitives/scheduled': 1.5.3(solid-js@1.9.13) + '@solid-primitives/static-store': 0.1.3(solid-js@1.9.13) + '@solid-primitives/styles': 0.1.3(solid-js@1.9.13) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + solid-js: 1.9.13 + + '@solid-primitives/bounds@0.1.5(solid-js@1.9.13)': + dependencies: + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) + '@solid-primitives/resize-observer': 2.1.5(solid-js@1.9.13) + '@solid-primitives/static-store': 0.1.3(solid-js@1.9.13) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + solid-js: 1.9.13 + '@solid-primitives/event-listener@2.4.5(solid-js@1.9.13)': dependencies: '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) @@ -21223,6 +21424,19 @@ snapshots: '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 + '@solid-primitives/media@2.3.5(solid-js@1.9.13)': + dependencies: + '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) + '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) + '@solid-primitives/static-store': 0.1.3(solid-js@1.9.13) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + solid-js: 1.9.13 + + '@solid-primitives/refs@1.1.3(solid-js@1.9.13)': + dependencies: + '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + solid-js: 1.9.13 + '@solid-primitives/resize-observer@2.1.5(solid-js@1.9.13)': dependencies: '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13) @@ -21236,15 +21450,29 @@ snapshots: '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 + '@solid-primitives/scheduled@1.5.3(solid-js@1.9.13)': + dependencies: + solid-js: 1.9.13 + '@solid-primitives/static-store@0.1.3(solid-js@1.9.13)': dependencies: '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) solid-js: 1.9.13 + '@solid-primitives/styles@0.1.3(solid-js@1.9.13)': + dependencies: + '@solid-primitives/rootless': 1.5.3(solid-js@1.9.13) + '@solid-primitives/utils': 6.4.0(solid-js@1.9.13) + solid-js: 1.9.13 + '@solid-primitives/utils@6.4.0(solid-js@1.9.13)': dependencies: solid-js: 1.9.13 + '@solidjs/meta@0.29.4(solid-js@1.9.13)': + dependencies: + solid-js: 1.9.13 + '@storybook/addon-docs@10.4.1(@types/react-dom@19.2.3)(@types/react@19.2.15)(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.4.1)(vite@7.1.1)(webpack@5.102.1)': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.15)(react@19.2.7) @@ -21675,7 +21903,7 @@ snapshots: '@tailwindcss/node': 4.3.0 '@tailwindcss/oxide': 4.3.0 tailwindcss: 4.3.0 - webpack: 5.102.1 + webpack: 5.102.1(esbuild@0.28.0) '@tanstack/devtools-client@0.0.6': dependencies: @@ -21717,6 +21945,8 @@ snapshots: '@tanstack/history@1.162.0': {} + '@tanstack/query-core@5.101.0': {} + '@tanstack/react-devtools@0.10.5(@types/react-dom@19.2.3)(@types/react@19.2.15)(csstype@3.2.3)(react-dom@19.2.7)(react@19.2.7)(solid-js@1.9.13)': dependencies: '@tanstack/devtools': 0.12.2(csstype@3.2.3)(solid-js@1.9.13) @@ -21879,6 +22109,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@tanstack/router-ssr-query-core@1.169.1(@tanstack/query-core@5.101.0)(@tanstack/router-core@1.171.9)': + dependencies: + '@tanstack/query-core': 5.101.0 + '@tanstack/router-core': 1.171.9 + '@tanstack/router-utils@1.162.1': dependencies: '@babel/core': 7.29.7 @@ -21893,6 +22128,80 @@ snapshots: transitivePeerDependencies: - supports-color + '@tanstack/solid-query@5.101.0(solid-js@1.9.13)': + dependencies: + '@tanstack/query-core': 5.101.0 + solid-js: 1.9.13 + + '@tanstack/solid-router-devtools@1.167.0(@tanstack/router-core@1.171.9)(@tanstack/solid-router@1.170.11)(csstype@3.2.3)(solid-js@1.9.13)': + dependencies: + '@tanstack/router-devtools-core': 1.168.0(@tanstack/router-core@1.171.9)(csstype@3.2.3) + '@tanstack/solid-router': 1.170.11(solid-js@1.9.13) + solid-js: 1.9.13 + optionalDependencies: + '@tanstack/router-core': 1.171.9 + transitivePeerDependencies: + - csstype + + '@tanstack/solid-router-ssr-query@1.167.1(@tanstack/query-core@5.101.0)(@tanstack/router-core@1.171.9)(@tanstack/solid-query@5.101.0)(@tanstack/solid-router@1.170.11)(solid-js@1.9.13)': + dependencies: + '@tanstack/query-core': 5.101.0 + '@tanstack/router-ssr-query-core': 1.169.1(@tanstack/query-core@5.101.0)(@tanstack/router-core@1.171.9) + '@tanstack/solid-query': 5.101.0(solid-js@1.9.13) + '@tanstack/solid-router': 1.170.11(solid-js@1.9.13) + solid-js: 1.9.13 + transitivePeerDependencies: + - '@tanstack/router-core' + + '@tanstack/solid-router@1.170.11(solid-js@1.9.13)': + dependencies: + '@solid-devtools/logger': 0.9.11(solid-js@1.9.13) + '@solid-primitives/refs': 1.1.3(solid-js@1.9.13) + '@solidjs/meta': 0.29.4(solid-js@1.9.13) + '@tanstack/history': 1.162.0 + '@tanstack/router-core': 1.171.9 + isbot: 5.1.40 + solid-js: 1.9.13 + + '@tanstack/solid-start-client@1.168.8(solid-js@1.9.13)': + dependencies: + '@tanstack/router-core': 1.171.9 + '@tanstack/solid-router': 1.170.11(solid-js@1.9.13) + '@tanstack/start-client-core': 1.170.7 + solid-js: 1.9.13 + + '@tanstack/solid-start-server@1.167.14(crossws@0.4.5)(solid-js@1.9.13)': + dependencies: + '@solidjs/meta': 0.29.4(solid-js@1.9.13) + '@tanstack/history': 1.162.0 + '@tanstack/router-core': 1.171.9 + '@tanstack/solid-router': 1.170.11(solid-js@1.9.13) + '@tanstack/start-client-core': 1.170.7 + '@tanstack/start-server-core': 1.169.9(crossws@0.4.5) + solid-js: 1.9.13 + transitivePeerDependencies: + - crossws + + '@tanstack/solid-start@1.168.19(@rsbuild/core@2.0.11)(@tanstack/react-router@1.170.11)(crossws@0.4.5)(solid-js@1.9.13)(vite@8.0.16)(webpack@5.102.1)': + dependencies: + '@tanstack/solid-router': 1.170.11(solid-js@1.9.13) + '@tanstack/solid-start-client': 1.168.8(solid-js@1.9.13) + '@tanstack/solid-start-server': 1.167.14(crossws@0.4.5)(solid-js@1.9.13) + '@tanstack/start-client-core': 1.170.7 + '@tanstack/start-plugin-core': 1.171.11(@rsbuild/core@2.0.11)(@tanstack/react-router@1.170.11)(crossws@0.4.5)(vite@8.0.16)(webpack@5.102.1) + '@tanstack/start-server-core': 1.169.9(crossws@0.4.5) + pathe: 2.0.3 + solid-js: 1.9.13 + optionalDependencies: + '@rsbuild/core': 2.0.11(@module-federation/runtime-tools@2.5.0)(core-js@3.49.0) + vite: 8.0.16(@types/node@25.9.1)(esbuild@0.28.0)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.100.0)(sass@1.100.0)(stylus@0.64.0)(terser@5.37.0)(tsx@4.19.2)(yaml@2.9.0) + transitivePeerDependencies: + - '@tanstack/react-router' + - crossws + - supports-color + - vite-plugin-solid + - webpack + '@tanstack/start-client-core@1.170.7': dependencies: '@tanstack/router-core': 1.171.9 @@ -22069,7 +22378,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/chai@5.2.3': dependencies: @@ -22078,17 +22387,17 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/cookie@0.4.1': {} '@types/cors@2.8.17': dependencies: - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/debug@4.1.12': dependencies: @@ -22120,7 +22429,7 @@ snapshots: '@types/express-serve-static-core@5.0.2': dependencies: - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -22223,12 +22532,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/styled-components@5.1.36': dependencies: @@ -22254,7 +22563,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/yargs-parser@21.0.3': {} @@ -24109,7 +24418,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 24.12.4 + '@types/node': 25.9.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -24579,7 +24888,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 24.12.4 + '@types/node': 25.9.1 require-like: 0.1.2 eventemitter3@4.0.7: {} @@ -25120,7 +25429,7 @@ snapshots: happy-dom@20.9.0: dependencies: - '@types/node': 24.12.4 + '@types/node': 25.9.1 '@types/whatwg-mimetype': 3.0.2 '@types/ws': 8.18.1 entities: 7.0.1 @@ -25888,7 +26197,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.12.4 + '@types/node': 25.9.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -30077,7 +30386,6 @@ snapshots: webpack: 5.102.1(esbuild@0.28.0) optionalDependencies: esbuild: 0.28.0 - optional: true terser-webpack-plugin@5.6.1(lightningcss@1.32.0)(webpack@5.102.1): dependencies: @@ -31036,7 +31344,6 @@ snapshots: - lightningcss - postcss - uglify-js - optional: true webpack@5.102.1(esbuild@0.28.0)(lightningcss@1.32.0): dependencies: diff --git a/rsbuild/tanstack-start-rsc/tsconfig.json b/rsbuild/tanstack-start-rsc/tsconfig.json index 49d832df..4a67b0d8 100644 --- a/rsbuild/tanstack-start-rsc/tsconfig.json +++ b/rsbuild/tanstack-start-rsc/tsconfig.json @@ -10,7 +10,7 @@ "~/*": ["./src/*"] }, "lib": ["ES2022", "DOM", "DOM.Iterable"], - "types": ["node"], + "types": ["node", "@rsbuild/core/types"], /* Bundler mode */ "moduleResolution": "bundler", diff --git a/rsbuild/tanstack-start-solid/.gitignore b/rsbuild/tanstack-start-solid/.gitignore new file mode 100644 index 00000000..e2395bd8 --- /dev/null +++ b/rsbuild/tanstack-start-solid/.gitignore @@ -0,0 +1,12 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local +.env +.nitro +.tanstack +.wrangler +.output +.vinxi +__unconfig* diff --git a/rsbuild/tanstack-start-solid/README.md b/rsbuild/tanstack-start-solid/README.md new file mode 100644 index 00000000..3c43e51e --- /dev/null +++ b/rsbuild/tanstack-start-solid/README.md @@ -0,0 +1,32 @@ +Welcome to your new TanStack Start app! + +# Getting Started + +To run this application: + +```bash +npm install +npm run dev +``` + +# Building For Production + +To build this application for production: + +```bash +npm run build +``` + +## Styling + +This project uses [Tailwind CSS](https://tailwindcss.com/) for styling. + +## Routing + +This project uses [TanStack Router](https://tanstack.com/router) with file-based routing. Routes are managed as files in `src/routes`. + +# Learn More + +You can learn more about all of the offerings from TanStack in the [TanStack documentation](https://tanstack.com). + +For TanStack Start specific documentation, visit [TanStack Start](https://tanstack.com/start). diff --git a/rsbuild/tanstack-start-solid/package.json b/rsbuild/tanstack-start-solid/package.json new file mode 100644 index 00000000..b8b05719 --- /dev/null +++ b/rsbuild/tanstack-start-solid/package.json @@ -0,0 +1,27 @@ +{ + "name": "@rsbuild-example/tanstack-start-solid", + "private": true, + "type": "module", + "scripts": { + "dev": "rsbuild", + "build": "rsbuild build", + "preview": "rsbuild preview" + }, + "dependencies": { + "@tanstack/router-plugin": "^1.133.21", + "@tanstack/solid-router": "^1.170.11", + "@tanstack/solid-router-devtools": "^1.167.0", + "@tanstack/solid-router-ssr-query": "^1.167.1", + "@tanstack/solid-start": "^1.168.19", + "solid-js": "^1.9.12", + "tailwindcss": "^4.1.18" + }, + "devDependencies": { + "@rsbuild/core": "^2.0.11", + "@rsbuild/plugin-babel": "^1.2.1", + "@rsbuild/plugin-solid": "^1.2.1", + "@rsbuild/plugin-tailwindcss": "^2.0.1", + "@types/node": "^25.9.1", + "typescript": "^6.0.2" + } +} diff --git a/rsbuild/tanstack-start-solid/public/favicon.ico b/rsbuild/tanstack-start-solid/public/favicon.ico new file mode 100644 index 00000000..a11777cc Binary files /dev/null and b/rsbuild/tanstack-start-solid/public/favicon.ico differ diff --git a/rsbuild/tanstack-start-solid/public/logo192.png b/rsbuild/tanstack-start-solid/public/logo192.png new file mode 100644 index 00000000..fc44b0a3 Binary files /dev/null and b/rsbuild/tanstack-start-solid/public/logo192.png differ diff --git a/rsbuild/tanstack-start-solid/public/logo512.png b/rsbuild/tanstack-start-solid/public/logo512.png new file mode 100644 index 00000000..a4e47a65 Binary files /dev/null and b/rsbuild/tanstack-start-solid/public/logo512.png differ diff --git a/rsbuild/tanstack-start-solid/public/manifest.json b/rsbuild/tanstack-start-solid/public/manifest.json new file mode 100644 index 00000000..078ef501 --- /dev/null +++ b/rsbuild/tanstack-start-solid/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "TanStack App", + "name": "Create TanStack App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/rsbuild/tanstack-start-solid/public/robots.txt b/rsbuild/tanstack-start-solid/public/robots.txt new file mode 100644 index 00000000..e9e57dc4 --- /dev/null +++ b/rsbuild/tanstack-start-solid/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/rsbuild/tanstack-start-solid/rsbuild.config.ts b/rsbuild/tanstack-start-solid/rsbuild.config.ts new file mode 100644 index 00000000..198a1486 --- /dev/null +++ b/rsbuild/tanstack-start-solid/rsbuild.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from '@rsbuild/core'; +import { pluginBabel } from '@rsbuild/plugin-babel'; +import { pluginSolid } from '@rsbuild/plugin-solid'; +import { pluginTailwindcss } from '@rsbuild/plugin-tailwindcss'; +import { tanstackStart } from '@tanstack/solid-start/plugin/rsbuild'; + +export default defineConfig({ + plugins: [ + pluginBabel({ + include: /\.(?:jsx|tsx)$/, + }), + pluginSolid(), + pluginTailwindcss(), + tanstackStart(), + ], +}); diff --git a/rsbuild/tanstack-start-solid/src/components/Header.tsx b/rsbuild/tanstack-start-solid/src/components/Header.tsx new file mode 100644 index 00000000..07d9e4ab --- /dev/null +++ b/rsbuild/tanstack-start-solid/src/components/Header.tsx @@ -0,0 +1,35 @@ +import { Link } from '@tanstack/solid-router'; + +export default function Header() { + return ( + + ); +} diff --git a/rsbuild/tanstack-start-solid/src/routeTree.gen.ts b/rsbuild/tanstack-start-solid/src/routeTree.gen.ts new file mode 100644 index 00000000..3cc45c07 --- /dev/null +++ b/rsbuild/tanstack-start-solid/src/routeTree.gen.ts @@ -0,0 +1,86 @@ +/* eslint-disable */ + +// @ts-nocheck + +// noinspection JSUnusedGlobalSymbols + +// This file was automatically generated by TanStack Router. +// You should NOT make any changes in this file as it will be overwritten. +// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. + +import { Route as rootRouteImport } from './routes/__root' +import { Route as AboutRouteImport } from './routes/about' +import { Route as IndexRouteImport } from './routes/index' + +const AboutRoute = AboutRouteImport.update({ + id: '/about', + path: '/about', + getParentRoute: () => rootRouteImport, +} as any) +const IndexRoute = IndexRouteImport.update({ + id: '/', + path: '/', + getParentRoute: () => rootRouteImport, +} as any) + +export interface FileRoutesByFullPath { + '/': typeof IndexRoute + '/about': typeof AboutRoute +} +export interface FileRoutesByTo { + '/': typeof IndexRoute + '/about': typeof AboutRoute +} +export interface FileRoutesById { + __root__: typeof rootRouteImport + '/': typeof IndexRoute + '/about': typeof AboutRoute +} +export interface FileRouteTypes { + fileRoutesByFullPath: FileRoutesByFullPath + fullPaths: '/' | '/about' + fileRoutesByTo: FileRoutesByTo + to: '/' | '/about' + id: '__root__' | '/' | '/about' + fileRoutesById: FileRoutesById +} +export interface RootRouteChildren { + IndexRoute: typeof IndexRoute + AboutRoute: typeof AboutRoute +} + +declare module '@tanstack/solid-router' { + interface FileRoutesByPath { + '/about': { + id: '/about' + path: '/about' + fullPath: '/about' + preLoaderRoute: typeof AboutRouteImport + parentRoute: typeof rootRouteImport + } + '/': { + id: '/' + path: '/' + fullPath: '/' + preLoaderRoute: typeof IndexRouteImport + parentRoute: typeof rootRouteImport + } + } +} + +const rootRouteChildren: RootRouteChildren = { + IndexRoute: IndexRoute, + AboutRoute: AboutRoute, +} +export const routeTree = rootRouteImport + ._addFileChildren(rootRouteChildren) + ._addFileTypes() + +import type { getRouter } from './router.tsx' +import type { createStart } from '@tanstack/solid-start' +declare module '@tanstack/solid-start' { + interface Register { + ssr: true + router: Awaited> + } +} diff --git a/rsbuild/tanstack-start-solid/src/router.tsx b/rsbuild/tanstack-start-solid/src/router.tsx new file mode 100644 index 00000000..22aab37d --- /dev/null +++ b/rsbuild/tanstack-start-solid/src/router.tsx @@ -0,0 +1,20 @@ +import { createRouter as createTanStackRouter } from '@tanstack/solid-router'; +import { routeTree } from './routeTree.gen'; + +export function getRouter() { + const router = createTanStackRouter({ + routeTree, + + scrollRestoration: true, + defaultPreload: 'intent', + defaultPreloadStaleTime: 0, + }); + + return router; +} + +declare module '@tanstack/solid-router' { + interface Register { + router: ReturnType; + } +} diff --git a/rsbuild/tanstack-start-solid/src/routes/__root.tsx b/rsbuild/tanstack-start-solid/src/routes/__root.tsx new file mode 100644 index 00000000..f6114efd --- /dev/null +++ b/rsbuild/tanstack-start-solid/src/routes/__root.tsx @@ -0,0 +1,35 @@ +import { HeadContent, Outlet, Scripts, createRootRouteWithContext } from '@tanstack/solid-router'; +import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools'; + +import { HydrationScript } from 'solid-js/web'; +import { Suspense } from 'solid-js'; + +import Header from '../components/Header'; + +import styleCss from '../styles.css?url'; + +export const Route = createRootRouteWithContext()({ + head: () => ({ + links: [{ rel: 'stylesheet', href: styleCss }], + }), + shellComponent: RootComponent, +}); + +function RootComponent() { + return ( + + + + + + + +
+ + + + + + + ); +} diff --git a/rsbuild/tanstack-start-solid/src/routes/about.tsx b/rsbuild/tanstack-start-solid/src/routes/about.tsx new file mode 100644 index 00000000..80014df7 --- /dev/null +++ b/rsbuild/tanstack-start-solid/src/routes/about.tsx @@ -0,0 +1,22 @@ +import { createFileRoute } from '@tanstack/solid-router'; + +export const Route = createFileRoute('/about')({ + component: About, +}); + +function About() { + return ( +
+
+

About

+

+ A small starter with room to grow. +

+

+ TanStack Start gives you type-safe routing, server functions, and modern SSR defaults. Use + this as a clean foundation, then layer in your own routes, styling, and add-ons. +

+
+
+ ); +} diff --git a/rsbuild/tanstack-start-solid/src/routes/index.tsx b/rsbuild/tanstack-start-solid/src/routes/index.tsx new file mode 100644 index 00000000..a56a51d2 --- /dev/null +++ b/rsbuild/tanstack-start-solid/src/routes/index.tsx @@ -0,0 +1,71 @@ +import { createFileRoute } from '@tanstack/solid-router'; + +export const Route = createFileRoute('/')({ component: App }); + +function App() { + return ( +
+
+
+
+

TanStack Start Base Template

+

+ Start simple, ship quickly. +

+

+ This base starter intentionally keeps things light: two routes, clean structure, and the + essentials you need to build from scratch. +

+ +
+ +
+ {[ + ['Type-Safe Routing', 'Routes and links stay in sync across every page.'], + ['Server Functions', 'Call server code from your UI without creating API boilerplate.'], + ['Streaming by Default', 'Ship progressively rendered responses for faster experiences.'], + ['Tailwind Native', 'Design quickly with utility-first styling and reusable tokens.'], + ].map(([title, desc], index) => ( +
+

{title}

+

{desc}

+
+ ))} +
+ +
+

Quick Start

+
    +
  • + Edit src/routes/index.tsx to customize the home page. +
  • +
  • + Update src/components/Header.tsx for navigation and product links. +
  • +
  • + Add routes in src/routes and tweak visual tokens in{' '} + src/styles.css. +
  • +
+
+
+ ); +} diff --git a/rsbuild/tanstack-start-solid/src/styles.css b/rsbuild/tanstack-start-solid/src/styles.css new file mode 100644 index 00000000..a1952e4a --- /dev/null +++ b/rsbuild/tanstack-start-solid/src/styles.css @@ -0,0 +1,195 @@ +@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Manrope:wght@400;500;600;700;800&display=swap'); +@import 'tailwindcss'; + +:root { + --sea-ink: #173a40; + --sea-ink-soft: #416166; + --lagoon: #4fb8b2; + --lagoon-deep: #328f97; + --palm: #2f6a4a; + --sand: #e7f0e8; + --foam: #f3faf5; + --surface: rgba(255, 255, 255, 0.74); + --surface-strong: rgba(255, 255, 255, 0.9); + --line: rgba(23, 58, 64, 0.14); + --inset-glint: rgba(255, 255, 255, 0.82); + --kicker: rgba(47, 106, 74, 0.9); + --bg-base: #e7f3ec; + --header-bg: rgba(251, 255, 248, 0.84); + --chip-bg: rgba(255, 255, 255, 0.8); + --chip-line: rgba(47, 106, 74, 0.18); + --link-bg-hover: rgba(255, 255, 255, 0.9); + --hero-a: rgba(79, 184, 178, 0.36); + --hero-b: rgba(47, 106, 74, 0.2); +} + +* { + box-sizing: border-box; +} + +html, +body, +#app { + min-height: 100%; +} + +body { + margin: 0; + color: var(--sea-ink); + font-family: 'Manrope', ui-sans-serif, system-ui, sans-serif; + background-color: var(--bg-base); + background: + radial-gradient(1100px 620px at -8% -10%, var(--hero-a), transparent 58%), + radial-gradient(1050px 620px at 112% -12%, var(--hero-b), transparent 62%), + radial-gradient(720px 380px at 50% 115%, rgba(79, 184, 178, 0.1), transparent 68%), + linear-gradient( + 180deg, + color-mix(in oklab, var(--sand) 68%, white) 0%, + var(--foam) 44%, + var(--bg-base) 100% + ); + overflow-x: hidden; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + color: var(--lagoon-deep); + text-decoration-color: rgba(50, 143, 151, 0.4); + text-decoration-thickness: 1px; + text-underline-offset: 2px; +} + +a:hover { + color: #246f76; +} + +code { + font-size: 0.9em; + border: 1px solid var(--line); + background: color-mix(in oklab, var(--surface-strong) 82%, white 18%); + border-radius: 7px; + padding: 2px 7px; +} + +.page-wrap { + width: min(1080px, calc(100% - 2rem)); + margin-inline: auto; +} + +.display-title { + font-family: 'Fraunces', Georgia, serif; +} + +.island-shell { + border: 1px solid var(--line); + background: linear-gradient(165deg, var(--surface-strong), var(--surface)); + box-shadow: + 0 1px 0 var(--inset-glint) inset, + 0 22px 44px rgba(30, 90, 72, 0.1), + 0 6px 18px rgba(23, 58, 64, 0.08); + backdrop-filter: blur(4px); +} + +.feature-card { + background: linear-gradient( + 165deg, + color-mix(in oklab, var(--surface-strong) 93%, white 7%), + var(--surface) + ); + box-shadow: + 0 1px 0 var(--inset-glint) inset, + 0 18px 34px rgba(30, 90, 72, 0.1), + 0 4px 14px rgba(23, 58, 64, 0.06); +} + +.site-header { + position: sticky; + top: 0; + z-index: 50; + border-bottom: 1px solid var(--line); + background: var(--header-bg); + backdrop-filter: blur(10px); +} + +.nav-shell { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.5rem 0.75rem; + padding: 0.75rem 0; +} + +.brand-pill { + display: inline-flex; + align-items: center; + gap: 0.5rem; + border-radius: 999px; + border: 1px solid var(--chip-line); + background: var(--chip-bg); + padding: 0.5rem 0.875rem; + color: var(--sea-ink); + text-decoration: none; + box-shadow: 0 8px 24px rgba(30, 90, 72, 0.08); +} + +.brand-dot { + height: 0.5rem; + width: 0.5rem; + border-radius: 999px; + background: linear-gradient(90deg, #56c6be, #7ed3bf); +} + +.island-kicker { + letter-spacing: 0.16em; + text-transform: uppercase; + font-weight: 700; + font-size: 0.69rem; + color: var(--kicker); +} + +.nav-link { + position: relative; + display: inline-flex; + align-items: center; + color: var(--sea-ink-soft); + text-decoration: none; +} + +.nav-link::after { + content: ''; + position: absolute; + left: 0; + bottom: -6px; + width: 100%; + height: 2px; + transform: scaleX(0); + transform-origin: left; + background: linear-gradient(90deg, var(--lagoon), #7ed3bf); + transition: transform 170ms ease; +} + +.nav-link:hover, +.nav-link.is-active { + color: var(--sea-ink); +} + +.nav-link:hover::after, +.nav-link.is-active::after { + transform: scaleX(1); +} + +.rise-in { + animation: rise-in 700ms cubic-bezier(0.16, 1, 0.3, 1) both; +} + +@keyframes rise-in { + from { + opacity: 0; + transform: translateY(12px); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/rsbuild/tanstack-start-solid/tsconfig.json b/rsbuild/tanstack-start-solid/tsconfig.json new file mode 100644 index 00000000..7e963097 --- /dev/null +++ b/rsbuild/tanstack-start-solid/tsconfig.json @@ -0,0 +1,25 @@ +{ + "include": ["**/*.ts", "**/*.tsx"], + "compilerOptions": { + "target": "ES2022", + "jsx": "preserve", + "jsxImportSource": "solid-js", + "module": "ESNext", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": ["node", "@rsbuild/core/types"], + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + /* Linting */ + "skipLibCheck": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + } +} diff --git a/rsbuild/tanstack-start/tsconfig.json b/rsbuild/tanstack-start/tsconfig.json index f7511c70..a17116f9 100644 --- a/rsbuild/tanstack-start/tsconfig.json +++ b/rsbuild/tanstack-start/tsconfig.json @@ -9,7 +9,7 @@ "@/*": ["./src/*"] }, "lib": ["ES2022", "DOM", "DOM.Iterable"], - "types": ["node"], + "types": ["node", "@rsbuild/core/types"], /* Bundler mode */ "moduleResolution": "bundler",