This commit is contained in:
rustdesk 2024-10-11 14:33:16 +08:00
parent a1dcdda0b2
commit 082431f57e
14 changed files with 438 additions and 133 deletions

View File

@ -15,6 +15,8 @@ import astrowind from './vendor/integration';
import { readingTimeRemarkPlugin, responsiveTablesRehypePlugin, lazyImagesRehypePlugin } from './src/utils/frontmatter'; import { readingTimeRemarkPlugin, responsiveTablesRehypePlugin, lazyImagesRehypePlugin } from './src/utils/frontmatter';
import react from '@astrojs/react';
const __dirname = path.dirname(fileURLToPath(import.meta.url)); const __dirname = path.dirname(fileURLToPath(import.meta.url));
const hasExternalScripts = false; const hasExternalScripts = false;
@ -25,6 +27,7 @@ export default defineConfig({
output: 'static', output: 'static',
integrations: [ integrations: [
react(),
tailwind({ tailwind({
applyBaseStyles: false, applyBaseStyles: false,
}), }),

406
v3/package-lock.json generated
View File

@ -8,16 +8,30 @@
"name": "@onwidget/astrowind", "name": "@onwidget/astrowind",
"version": "1.0.0-beta.46", "version": "1.0.0-beta.46",
"dependencies": { "dependencies": {
"@astrojs/react": "^3.6.2",
"@astrojs/rss": "^4.0.7", "@astrojs/rss": "^4.0.7",
"@astrojs/sitemap": "^3.1.6", "@astrojs/sitemap": "^3.1.6",
"@astrolib/analytics": "^0.5.0", "@astrolib/analytics": "^0.5.0",
"@astrolib/seo": "^1.0.0-beta.6", "@astrolib/seo": "^1.0.0-beta.6",
"@fontsource-variable/inter": "^5.1.0", "@fontsource-variable/inter": "^5.1.0",
"@radix-ui/react-icons": "^1.3.0",
"@radix-ui/react-slot": "^1.1.0",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.0",
"astro": "^4.15.5", "astro": "^4.15.5",
"astro-embed": "^0.7.2", "astro-embed": "^0.7.2",
"astro-icon": "^1.1.1", "astro-icon": "^1.1.1",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"embla-carousel-react": "^8.3.0",
"limax": "4.1.0", "limax": "4.1.0",
"lodash.merge": "^4.6.2", "lodash.merge": "^4.6.2",
"lucide-react": "^0.451.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-img-placeholder": "^0.1.5",
"swiper": "^11.1.14",
"tailwindcss-animate": "^1.0.7",
"unpic": "^3.18.0", "unpic": "^3.18.0",
"vanilla-cookieconsent": "^3.0.1" "vanilla-cookieconsent": "^3.0.1"
}, },
@ -47,7 +61,7 @@
"prettier-plugin-astro": "^0.14.1", "prettier-plugin-astro": "^0.14.1",
"reading-time": "^1.5.0", "reading-time": "^1.5.0",
"sharp": "0.33.5", "sharp": "0.33.5",
"tailwind-merge": "^2.5.2", "tailwind-merge": "^2.5.3",
"tailwindcss": "^3.4.11", "tailwindcss": "^3.4.11",
"typescript": "^5.6.2", "typescript": "^5.6.2",
"typescript-eslint": "^8.6.0", "typescript-eslint": "^8.6.0",
@ -67,7 +81,6 @@
}, },
"node_modules/@alloc/quick-lru": { "node_modules/@alloc/quick-lru": {
"version": "5.2.0", "version": "5.2.0",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=10" "node": ">=10"
@ -325,6 +338,25 @@
"node": "^18.17.1 || ^20.3.0 || >=21.0.0" "node": "^18.17.1 || ^20.3.0 || >=21.0.0"
} }
}, },
"node_modules/@astrojs/react": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/@astrojs/react/-/react-3.6.2.tgz",
"integrity": "sha512-fK29lYI7zK/KG4ZBy956x4dmauZcZ18osFkuyGa8r3gmmCQa2NZ9XNu9WaVYEUm0j89f4Gii4tbxLoyM8nk2MA==",
"license": "MIT",
"dependencies": {
"@vitejs/plugin-react": "^4.3.1",
"ultrahtml": "^1.5.3"
},
"engines": {
"node": "^18.17.1 || ^20.3.0 || >=21.0.0"
},
"peerDependencies": {
"@types/react": "^17.0.50 || ^18.0.21",
"@types/react-dom": "^17.0.17 || ^18.0.6",
"react": "^17.0.2 || ^18.0.0 || ^19.0.0-beta",
"react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0-beta"
}
},
"node_modules/@astrojs/rss": { "node_modules/@astrojs/rss": {
"version": "4.0.7", "version": "4.0.7",
"resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.7.tgz", "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.7.tgz",
@ -534,9 +566,10 @@
} }
}, },
"node_modules/@babel/helper-plugin-utils": { "node_modules/@babel/helper-plugin-utils": {
"version": "7.24.8", "version": "7.25.7",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
"integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
"license": "MIT",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
@ -649,6 +682,36 @@
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@babel/plugin-transform-react-jsx-self": {
"version": "7.25.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz",
"integrity": "sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/plugin-transform-react-jsx-source": {
"version": "7.25.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz",
"integrity": "sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.25.0", "version": "7.25.0",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
@ -1744,7 +1807,6 @@
}, },
"node_modules/@isaacs/cliui": { "node_modules/@isaacs/cliui": {
"version": "8.0.2", "version": "8.0.2",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"string-width": "^5.1.2", "string-width": "^5.1.2",
@ -1760,7 +1822,6 @@
}, },
"node_modules/@isaacs/cliui/node_modules/string-width": { "node_modules/@isaacs/cliui/node_modules/string-width": {
"version": "5.1.2", "version": "5.1.2",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"eastasianwidth": "^0.2.0", "eastasianwidth": "^0.2.0",
@ -1892,7 +1953,6 @@
}, },
"node_modules/@pkgjs/parseargs": { "node_modules/@pkgjs/parseargs": {
"version": "0.11.0", "version": "0.11.0",
"dev": true,
"license": "MIT", "license": "MIT",
"optional": true, "optional": true,
"engines": { "engines": {
@ -1922,6 +1982,48 @@
"fast-glob": "3.3.2" "fast-glob": "3.3.2"
} }
}, },
"node_modules/@radix-ui/react-compose-refs": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz",
"integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/@radix-ui/react-icons": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz",
"integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==",
"license": "MIT",
"peerDependencies": {
"react": "^16.x || ^17.x || ^18.x"
}
},
"node_modules/@radix-ui/react-slot": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz",
"integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.0"
},
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/@rollup/pluginutils": { "node_modules/@rollup/pluginutils": {
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
@ -2379,6 +2481,31 @@
"undici-types": "~5.26.4" "undici-types": "~5.26.4"
} }
}, },
"node_modules/@types/prop-types": {
"version": "15.7.13",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz",
"integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==",
"license": "MIT"
},
"node_modules/@types/react": {
"version": "18.3.11",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz",
"integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==",
"license": "MIT",
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-dom": {
"version": "18.3.0",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
"integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
"license": "MIT",
"dependencies": {
"@types/react": "*"
}
},
"node_modules/@types/sax": { "node_modules/@types/sax": {
"version": "1.2.7", "version": "1.2.7",
"resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz",
@ -2603,6 +2730,25 @@
"version": "1.2.0", "version": "1.2.0",
"license": "ISC" "license": "ISC"
}, },
"node_modules/@vitejs/plugin-react": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz",
"integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.2",
"@babel/plugin-transform-react-jsx-self": "^7.24.7",
"@babel/plugin-transform-react-jsx-source": "^7.24.7",
"@types/babel__core": "^7.20.5",
"react-refresh": "^0.14.2"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"peerDependencies": {
"vite": "^4.2.0 || ^5.0.0"
}
},
"node_modules/@volar/kit": { "node_modules/@volar/kit": {
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.1.tgz", "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.1.tgz",
@ -2797,12 +2943,10 @@
}, },
"node_modules/any-promise": { "node_modules/any-promise": {
"version": "1.3.0", "version": "1.3.0",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/anymatch": { "node_modules/anymatch": {
"version": "3.1.3", "version": "3.1.3",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
@ -3688,7 +3832,6 @@
}, },
"node_modules/balanced-match": { "node_modules/balanced-match": {
"version": "1.0.2", "version": "1.0.2",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/base-64": { "node_modules/base-64": {
@ -3697,7 +3840,6 @@
}, },
"node_modules/binary-extensions": { "node_modules/binary-extensions": {
"version": "2.3.0", "version": "2.3.0",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -3757,7 +3899,6 @@
}, },
"node_modules/brace-expansion": { "node_modules/brace-expansion": {
"version": "2.0.1", "version": "2.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"balanced-match": "^1.0.0" "balanced-match": "^1.0.0"
@ -3852,7 +3993,6 @@
}, },
"node_modules/camelcase-css": { "node_modules/camelcase-css": {
"version": "2.0.1", "version": "2.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">= 6" "node": ">= 6"
@ -3991,7 +4131,6 @@
}, },
"node_modules/chokidar": { "node_modules/chokidar": {
"version": "3.6.0", "version": "3.6.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"anymatch": "~3.1.2", "anymatch": "~3.1.2",
@ -4033,6 +4172,27 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/class-variance-authority": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz",
"integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==",
"license": "Apache-2.0",
"dependencies": {
"clsx": "2.0.0"
},
"funding": {
"url": "https://joebell.co.uk"
}
},
"node_modules/class-variance-authority/node_modules/clsx": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
"integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/clean-css": { "node_modules/clean-css": {
"version": "5.3.3", "version": "5.3.3",
"dev": true, "dev": true,
@ -4196,6 +4356,7 @@
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
"license": "MIT",
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -4313,7 +4474,6 @@
}, },
"node_modules/cross-spawn": { "node_modules/cross-spawn": {
"version": "7.0.3", "version": "7.0.3",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"path-key": "^3.1.0", "path-key": "^3.1.0",
@ -4391,6 +4551,12 @@
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
"integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw=="
}, },
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"license": "MIT"
},
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.7", "version": "4.3.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
@ -4487,7 +4653,6 @@
}, },
"node_modules/didyoumean": { "node_modules/didyoumean": {
"version": "1.2.2", "version": "1.2.2",
"dev": true,
"license": "Apache-2.0" "license": "Apache-2.0"
}, },
"node_modules/diff": { "node_modules/diff": {
@ -4585,6 +4750,34 @@
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.832.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.832.tgz",
"integrity": "sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA==" "integrity": "sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA=="
}, },
"node_modules/embla-carousel": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.3.0.tgz",
"integrity": "sha512-Ve8dhI4w28qBqR8J+aMtv7rLK89r1ZA5HocwFz6uMB/i5EiC7bGI7y+AM80yAVUJw3qqaZYK7clmZMUR8kM3UA==",
"license": "MIT"
},
"node_modules/embla-carousel-react": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.3.0.tgz",
"integrity": "sha512-P1FlinFDcIvggcErRjNuVqnUR8anyo8vLMIH8Rthgofw7Nj8qTguCa2QjFAbzxAUTQTPNNjNL7yt0BGGinVdFw==",
"license": "MIT",
"dependencies": {
"embla-carousel": "8.3.0",
"embla-carousel-reactive-utils": "8.3.0"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.1 || ^18.0.0"
}
},
"node_modules/embla-carousel-reactive-utils": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.3.0.tgz",
"integrity": "sha512-EYdhhJ302SC4Lmkx8GRsp0sjUhEN4WyFXPOk0kGu9OXZSRMmcBlRgTvHcq8eKJE1bXWBsOi1T83B+BSSVZSmwQ==",
"license": "MIT",
"peerDependencies": {
"embla-carousel": "8.3.0"
}
},
"node_modules/emmet": { "node_modules/emmet": {
"version": "2.4.7", "version": "2.4.7",
"resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.7.tgz", "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.7.tgz",
@ -5336,7 +5529,6 @@
}, },
"node_modules/foreground-child": { "node_modules/foreground-child": {
"version": "3.1.1", "version": "3.1.1",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"cross-spawn": "^7.0.0", "cross-spawn": "^7.0.0",
@ -5414,7 +5606,6 @@
}, },
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.2", "version": "1.1.2",
"dev": true,
"license": "MIT", "license": "MIT",
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
@ -5454,7 +5645,6 @@
}, },
"node_modules/glob": { "node_modules/glob": {
"version": "10.3.12", "version": "10.3.12",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"foreground-child": "^3.1.0", "foreground-child": "^3.1.0",
@ -5485,7 +5675,6 @@
}, },
"node_modules/glob/node_modules/minipass": { "node_modules/glob/node_modules/minipass": {
"version": "7.0.4", "version": "7.0.4",
"dev": true,
"license": "ISC", "license": "ISC",
"engines": { "engines": {
"node": ">=16 || 14 >=14.17" "node": ">=16 || 14 >=14.17"
@ -5573,7 +5762,6 @@
}, },
"node_modules/hasown": { "node_modules/hasown": {
"version": "2.0.2", "version": "2.0.2",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"function-bind": "^1.1.2" "function-bind": "^1.1.2"
@ -5965,7 +6153,6 @@
}, },
"node_modules/is-binary-path": { "node_modules/is-binary-path": {
"version": "2.1.0", "version": "2.1.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"binary-extensions": "^2.0.0" "binary-extensions": "^2.0.0"
@ -5976,7 +6163,6 @@
}, },
"node_modules/is-core-module": { "node_modules/is-core-module": {
"version": "2.13.1", "version": "2.13.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"hasown": "^2.0.0" "hasown": "^2.0.0"
@ -6134,12 +6320,10 @@
}, },
"node_modules/isexe": { "node_modules/isexe": {
"version": "2.0.0", "version": "2.0.0",
"dev": true,
"license": "ISC" "license": "ISC"
}, },
"node_modules/jackspeak": { "node_modules/jackspeak": {
"version": "2.3.6", "version": "2.3.6",
"dev": true,
"license": "BlueOak-1.0.0", "license": "BlueOak-1.0.0",
"dependencies": { "dependencies": {
"@isaacs/cliui": "^8.0.2" "@isaacs/cliui": "^8.0.2"
@ -6156,7 +6340,6 @@
}, },
"node_modules/jiti": { "node_modules/jiti": {
"version": "1.21.0", "version": "1.21.0",
"dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
"jiti": "bin/jiti.js" "jiti": "bin/jiti.js"
@ -6471,7 +6654,6 @@
}, },
"node_modules/lilconfig": { "node_modules/lilconfig": {
"version": "3.1.1", "version": "3.1.1",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
@ -6495,7 +6677,6 @@
}, },
"node_modules/lines-and-columns": { "node_modules/lines-and-columns": {
"version": "1.2.4", "version": "1.2.4",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/linkedom": { "node_modules/linkedom": {
@ -6655,6 +6836,18 @@
"url": "https://github.com/sponsors/wooorm" "url": "https://github.com/sponsors/wooorm"
} }
}, },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
"bin": {
"loose-envify": "cli.js"
}
},
"node_modules/lower-case": { "node_modules/lower-case": {
"version": "2.0.2", "version": "2.0.2",
"dev": true, "dev": true,
@ -6671,6 +6864,15 @@
"yallist": "^3.0.2" "yallist": "^3.0.2"
} }
}, },
"node_modules/lucide-react": {
"version": "0.451.0",
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.451.0.tgz",
"integrity": "sha512-OwQ3uljZLp2cerj8sboy5rnhtGTCl9UCJIhT1J85/yOuGVlEH+xaUPR7tvNdddPvmV5M5VLdr7cQuWE3hzA4jw==",
"license": "ISC",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc"
}
},
"node_modules/magic-string": { "node_modules/magic-string": {
"version": "0.30.11", "version": "0.30.11",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz",
@ -7700,7 +7902,6 @@
}, },
"node_modules/minimatch": { "node_modules/minimatch": {
"version": "9.0.4", "version": "9.0.4",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
@ -7792,7 +7993,6 @@
}, },
"node_modules/mz": { "node_modules/mz": {
"version": "2.7.0", "version": "2.7.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"any-promise": "^1.0.0", "any-promise": "^1.0.0",
@ -7856,7 +8056,6 @@
}, },
"node_modules/normalize-path": { "node_modules/normalize-path": {
"version": "3.0.0", "version": "3.0.0",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
@ -7882,7 +8081,6 @@
}, },
"node_modules/object-assign": { "node_modules/object-assign": {
"version": "4.1.1", "version": "4.1.1",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
@ -7890,7 +8088,6 @@
}, },
"node_modules/object-hash": { "node_modules/object-hash": {
"version": "3.0.0", "version": "3.0.0",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">= 6" "node": ">= 6"
@ -8187,7 +8384,6 @@
}, },
"node_modules/path-key": { "node_modules/path-key": {
"version": "3.1.1", "version": "3.1.1",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -8195,12 +8391,10 @@
}, },
"node_modules/path-parse": { "node_modules/path-parse": {
"version": "1.0.7", "version": "1.0.7",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/path-scurry": { "node_modules/path-scurry": {
"version": "1.10.2", "version": "1.10.2",
"dev": true,
"license": "BlueOak-1.0.0", "license": "BlueOak-1.0.0",
"dependencies": { "dependencies": {
"lru-cache": "^10.2.0", "lru-cache": "^10.2.0",
@ -8215,7 +8409,6 @@
}, },
"node_modules/path-scurry/node_modules/lru-cache": { "node_modules/path-scurry/node_modules/lru-cache": {
"version": "10.2.0", "version": "10.2.0",
"dev": true,
"license": "ISC", "license": "ISC",
"engines": { "engines": {
"node": "14 || >=16.14" "node": "14 || >=16.14"
@ -8223,7 +8416,6 @@
}, },
"node_modules/path-scurry/node_modules/minipass": { "node_modules/path-scurry/node_modules/minipass": {
"version": "7.0.4", "version": "7.0.4",
"dev": true,
"license": "ISC", "license": "ISC",
"engines": { "engines": {
"node": ">=16 || 14 >=14.17" "node": ">=16 || 14 >=14.17"
@ -8275,7 +8467,6 @@
}, },
"node_modules/pify": { "node_modules/pify": {
"version": "2.3.0", "version": "2.3.0",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
@ -8287,7 +8478,6 @@
}, },
"node_modules/pirates": { "node_modules/pirates": {
"version": "4.0.6", "version": "4.0.6",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">= 6" "node": ">= 6"
@ -8392,7 +8582,6 @@
}, },
"node_modules/postcss-import": { "node_modules/postcss-import": {
"version": "15.1.0", "version": "15.1.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"postcss-value-parser": "^4.0.0", "postcss-value-parser": "^4.0.0",
@ -8408,7 +8597,6 @@
}, },
"node_modules/postcss-js": { "node_modules/postcss-js": {
"version": "4.0.1", "version": "4.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"camelcase-css": "^2.0.1" "camelcase-css": "^2.0.1"
@ -8426,7 +8614,6 @@
}, },
"node_modules/postcss-load-config": { "node_modules/postcss-load-config": {
"version": "4.0.2", "version": "4.0.2",
"dev": true,
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -8460,7 +8647,6 @@
}, },
"node_modules/postcss-nested": { "node_modules/postcss-nested": {
"version": "6.0.1", "version": "6.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"postcss-selector-parser": "^6.0.11" "postcss-selector-parser": "^6.0.11"
@ -8478,7 +8664,6 @@
}, },
"node_modules/postcss-nested/node_modules/postcss-selector-parser": { "node_modules/postcss-nested/node_modules/postcss-selector-parser": {
"version": "6.0.16", "version": "6.0.16",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cssesc": "^3.0.0", "cssesc": "^3.0.0",
@ -8502,7 +8687,6 @@
}, },
"node_modules/postcss-value-parser": { "node_modules/postcss-value-parser": {
"version": "4.2.0", "version": "4.2.0",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/preferred-pm": { "node_modules/preferred-pm": {
@ -8630,9 +8814,54 @@
], ],
"license": "MIT" "license": "MIT"
}, },
"node_modules/react": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
},
"peerDependencies": {
"react": "^18.3.1"
}
},
"node_modules/react-img-placeholder": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/react-img-placeholder/-/react-img-placeholder-0.1.5.tgz",
"integrity": "sha512-peXMI1ScTAw09Xm1ck42NeaZbQP97M0NqSoTBlVFKgdNh1x85y0ps0sjEb2RsOwUYzG0FL7x1+/6HOUx9JexiQ==",
"license": "MIT",
"engines": {
"node": ">=10"
},
"peerDependencies": {
"react": ">=16"
}
},
"node_modules/react-refresh": {
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
"integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/read-cache": { "node_modules/read-cache": {
"version": "1.0.0", "version": "1.0.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"pify": "^2.3.0" "pify": "^2.3.0"
@ -8640,7 +8869,6 @@
}, },
"node_modules/readdirp": { "node_modules/readdirp": {
"version": "3.6.0", "version": "3.6.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"picomatch": "^2.2.1" "picomatch": "^2.2.1"
@ -8832,7 +9060,6 @@
}, },
"node_modules/resolve": { "node_modules/resolve": {
"version": "1.22.8", "version": "1.22.8",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"is-core-module": "^2.13.0", "is-core-module": "^2.13.0",
@ -9013,6 +9240,15 @@
"resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
"integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="
}, },
"node_modules/scheduler": {
"version": "0.23.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
}
},
"node_modules/section-matter": { "node_modules/section-matter": {
"version": "1.0.0", "version": "1.0.0",
"license": "MIT", "license": "MIT",
@ -9084,7 +9320,6 @@
}, },
"node_modules/shebang-command": { "node_modules/shebang-command": {
"version": "2.0.0", "version": "2.0.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"shebang-regex": "^3.0.0" "shebang-regex": "^3.0.0"
@ -9095,7 +9330,6 @@
}, },
"node_modules/shebang-regex": { "node_modules/shebang-regex": {
"version": "3.0.0", "version": "3.0.0",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -9256,7 +9490,6 @@
"node_modules/string-width-cjs": { "node_modules/string-width-cjs": {
"name": "string-width", "name": "string-width",
"version": "4.2.3", "version": "4.2.3",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"emoji-regex": "^8.0.0", "emoji-regex": "^8.0.0",
@ -9269,7 +9502,6 @@
}, },
"node_modules/string-width-cjs/node_modules/ansi-regex": { "node_modules/string-width-cjs/node_modules/ansi-regex": {
"version": "5.0.1", "version": "5.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -9277,12 +9509,10 @@
}, },
"node_modules/string-width-cjs/node_modules/emoji-regex": { "node_modules/string-width-cjs/node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/string-width-cjs/node_modules/strip-ansi": { "node_modules/string-width-cjs/node_modules/strip-ansi": {
"version": "6.0.1", "version": "6.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"ansi-regex": "^5.0.1" "ansi-regex": "^5.0.1"
@ -9324,7 +9554,6 @@
"node_modules/strip-ansi-cjs": { "node_modules/strip-ansi-cjs": {
"name": "strip-ansi", "name": "strip-ansi",
"version": "6.0.1", "version": "6.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"ansi-regex": "^5.0.1" "ansi-regex": "^5.0.1"
@ -9335,7 +9564,6 @@
}, },
"node_modules/strip-ansi-cjs/node_modules/ansi-regex": { "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
"version": "5.0.1", "version": "5.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -9383,7 +9611,6 @@
}, },
"node_modules/sucrase": { "node_modules/sucrase": {
"version": "3.35.0", "version": "3.35.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/gen-mapping": "^0.3.2",
@ -9404,7 +9631,6 @@
}, },
"node_modules/sucrase/node_modules/commander": { "node_modules/sucrase/node_modules/commander": {
"version": "4.1.1", "version": "4.1.1",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">= 6" "node": ">= 6"
@ -9431,7 +9657,6 @@
}, },
"node_modules/supports-preserve-symlinks-flag": { "node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0", "version": "1.0.0",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@ -9481,6 +9706,25 @@
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
}, },
"node_modules/swiper": {
"version": "11.1.14",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-11.1.14.tgz",
"integrity": "sha512-VbQLQXC04io6AoAjIUWuZwW4MSYozkcP9KjLdrsG/00Q/yiwvhz9RQyt0nHXV10hi9NVnDNy1/wv7Dzq1lkOCQ==",
"funding": [
{
"type": "patreon",
"url": "https://www.patreon.com/swiperjs"
},
{
"type": "open_collective",
"url": "http://opencollective.com/swiper"
}
],
"license": "MIT",
"engines": {
"node": ">= 4.7.0"
}
},
"node_modules/synckit": { "node_modules/synckit": {
"version": "0.9.0", "version": "0.9.0",
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.0.tgz", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.0.tgz",
@ -9498,10 +9742,11 @@
} }
}, },
"node_modules/tailwind-merge": { "node_modules/tailwind-merge": {
"version": "2.5.2", "version": "2.5.3",
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.2.tgz", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.3.tgz",
"integrity": "sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==", "integrity": "sha512-d9ZolCAIzom1nf/5p4LdD5zvjmgSxY0BGgdSvmXIoMYAiPdAW/dSpP7joCDYFY7r/HkEa2qmPtkgsu0xjQeQtw==",
"dev": true, "dev": true,
"license": "MIT",
"funding": { "funding": {
"type": "github", "type": "github",
"url": "https://github.com/sponsors/dcastil" "url": "https://github.com/sponsors/dcastil"
@ -9511,7 +9756,6 @@
"version": "3.4.11", "version": "3.4.11",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.11.tgz", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.11.tgz",
"integrity": "sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==", "integrity": "sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@alloc/quick-lru": "^5.2.0", "@alloc/quick-lru": "^5.2.0",
@ -9545,9 +9789,17 @@
"node": ">=14.0.0" "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==",
"license": "MIT",
"peerDependencies": {
"tailwindcss": ">=3.0.0 || insiders"
}
},
"node_modules/tailwindcss/node_modules/glob-parent": { "node_modules/tailwindcss/node_modules/glob-parent": {
"version": "6.0.2", "version": "6.0.2",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"is-glob": "^4.0.3" "is-glob": "^4.0.3"
@ -9558,7 +9810,6 @@
}, },
"node_modules/tailwindcss/node_modules/lilconfig": { "node_modules/tailwindcss/node_modules/lilconfig": {
"version": "2.1.0", "version": "2.1.0",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=10" "node": ">=10"
@ -9566,7 +9817,6 @@
}, },
"node_modules/tailwindcss/node_modules/postcss-selector-parser": { "node_modules/tailwindcss/node_modules/postcss-selector-parser": {
"version": "6.0.16", "version": "6.0.16",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cssesc": "^3.0.0", "cssesc": "^3.0.0",
@ -9635,7 +9885,6 @@
}, },
"node_modules/thenify": { "node_modules/thenify": {
"version": "3.3.1", "version": "3.3.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"any-promise": "^1.0.0" "any-promise": "^1.0.0"
@ -9643,7 +9892,6 @@
}, },
"node_modules/thenify-all": { "node_modules/thenify-all": {
"version": "1.6.0", "version": "1.6.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"thenify": ">= 3.1.0 < 4" "thenify": ">= 3.1.0 < 4"
@ -9704,7 +9952,6 @@
}, },
"node_modules/ts-interface-checker": { "node_modules/ts-interface-checker": {
"version": "0.1.13", "version": "0.1.13",
"dev": true,
"license": "Apache-2.0" "license": "Apache-2.0"
}, },
"node_modules/tsconfck": { "node_modules/tsconfck": {
@ -9815,6 +10062,12 @@
"resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.2.0.tgz", "resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.2.0.tgz",
"integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==" "integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA=="
}, },
"node_modules/ultrahtml": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.5.3.tgz",
"integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==",
"license": "MIT"
},
"node_modules/undici": { "node_modules/undici": {
"version": "6.19.8", "version": "6.19.8",
"resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz",
@ -10029,7 +10282,6 @@
}, },
"node_modules/util-deprecate": { "node_modules/util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/vanilla-cookieconsent": { "node_modules/vanilla-cookieconsent": {
@ -10418,7 +10670,6 @@
}, },
"node_modules/which": { "node_modules/which": {
"version": "2.0.2", "version": "2.0.2",
"dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"isexe": "^2.0.0" "isexe": "^2.0.0"
@ -10494,7 +10745,6 @@
"node_modules/wrap-ansi-cjs": { "node_modules/wrap-ansi-cjs": {
"name": "wrap-ansi", "name": "wrap-ansi",
"version": "7.0.0", "version": "7.0.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"ansi-styles": "^4.0.0", "ansi-styles": "^4.0.0",
@ -10510,7 +10760,6 @@
}, },
"node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
"version": "5.0.1", "version": "5.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -10518,7 +10767,6 @@
}, },
"node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
"version": "4.3.0", "version": "4.3.0",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"color-convert": "^2.0.1" "color-convert": "^2.0.1"
@ -10532,7 +10780,6 @@
}, },
"node_modules/wrap-ansi-cjs/node_modules/color-convert": { "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
"version": "2.0.1", "version": "2.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"color-name": "~1.1.4" "color-name": "~1.1.4"
@ -10543,17 +10790,14 @@
}, },
"node_modules/wrap-ansi-cjs/node_modules/color-name": { "node_modules/wrap-ansi-cjs/node_modules/color-name": {
"version": "1.1.4", "version": "1.1.4",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/wrap-ansi-cjs/node_modules/string-width": { "node_modules/wrap-ansi-cjs/node_modules/string-width": {
"version": "4.2.3", "version": "4.2.3",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"emoji-regex": "^8.0.0", "emoji-regex": "^8.0.0",
@ -10566,7 +10810,6 @@
}, },
"node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
"version": "6.0.1", "version": "6.0.1",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"ansi-regex": "^5.0.1" "ansi-regex": "^5.0.1"
@ -10627,7 +10870,6 @@
"version": "2.5.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz",
"integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==",
"dev": true,
"bin": { "bin": {
"yaml": "bin.mjs" "yaml": "bin.mjs"
}, },

View File

@ -22,16 +22,29 @@
"fix:prettier": "prettier -w ." "fix:prettier": "prettier -w ."
}, },
"dependencies": { "dependencies": {
"@astrojs/react": "^3.6.2",
"@astrojs/rss": "^4.0.7", "@astrojs/rss": "^4.0.7",
"@astrojs/sitemap": "^3.1.6", "@astrojs/sitemap": "^3.1.6",
"@astrolib/analytics": "^0.5.0", "@astrolib/analytics": "^0.5.0",
"@astrolib/seo": "^1.0.0-beta.6", "@astrolib/seo": "^1.0.0-beta.6",
"@fontsource-variable/inter": "^5.1.0", "@fontsource-variable/inter": "^5.1.0",
"@radix-ui/react-icons": "^1.3.0",
"@radix-ui/react-slot": "^1.1.0",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.0",
"astro": "^4.15.5", "astro": "^4.15.5",
"astro-embed": "^0.7.2", "astro-embed": "^0.7.2",
"astro-icon": "^1.1.1", "astro-icon": "^1.1.1",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"embla-carousel-react": "^8.3.0",
"limax": "4.1.0", "limax": "4.1.0",
"lodash.merge": "^4.6.2", "lodash.merge": "^4.6.2",
"lucide-react": "^0.451.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"swiper": "^11.1.14",
"tailwindcss-animate": "^1.0.7",
"unpic": "^3.18.0", "unpic": "^3.18.0",
"vanilla-cookieconsent": "^3.0.1" "vanilla-cookieconsent": "^3.0.1"
}, },
@ -61,7 +74,7 @@
"prettier-plugin-astro": "^0.14.1", "prettier-plugin-astro": "^0.14.1",
"reading-time": "^1.5.0", "reading-time": "^1.5.0",
"sharp": "0.33.5", "sharp": "0.33.5",
"tailwind-merge": "^2.5.2", "tailwind-merge": "^2.5.3",
"tailwindcss": "^3.4.11", "tailwindcss": "^3.4.11",
"typescript": "^5.6.2", "typescript": "^5.6.2",
"typescript-eslint": "^8.6.0", "typescript-eslint": "^8.6.0",

View File

Before

Width:  |  Height:  |  Size: 427 KiB

After

Width:  |  Height:  |  Size: 427 KiB

BIN
v3/public/custom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

BIN
v3/public/main.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

BIN
v3/public/remote.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,39 @@
/* https://swiperjs.com/demos */
import 'swiper/css';
import 'swiper/css/pagination';
import { Autoplay, Pagination, Scrollbar, Mousewheel } from 'swiper/modules';
import { Swiper, SwiperSlide } from 'swiper/react';
const Carousel = ({ list }) => {
return (
<Swiper
spaceBetween={0}
slidesPerView={1}
onSlideChange={() => console.log('slide change')}
onSwiper={(swiper) => console.log(swiper)}
pagination={{ clickable: true }}
style={{
'--swiper-pagination-bullet-inactive-color': '#fff',
'--swiper-pagination-bullet-size': '12px',
}}
mousewheel={{ forceToAxis: true, sensitivity: 0.1, releaseOnEdges: true }}
autoplay={{
delay: 2500,
disableOnInteraction: true,
}}
lazy={true}
scrollbar
modules={[Pagination, Autoplay, Scrollbar, Mousewheel]}
>
{list.map((item, i) => (
<SwiperSlide key={'p' + i}>
<img src={item.src} className={item.className} loading="lazy" alt={item.alt} />
<div className="swiper-lazy-preloader swiper-lazy-preloader-white"></div>
</SwiperSlide>
))}
</Swiper>
);
};
export default Carousel;

View File

@ -157,7 +157,7 @@ const currentPath = `/${trimSlash(new URL(Astro.url).pathname)}`;
title="If you like RustDesk, give us a star." title="If you like RustDesk, give us a star."
href="https://github.com/rustdesk/rustdesk" href="https://github.com/rustdesk/rustdesk"
> >
<span class="w-[5.6rem] h-[1.25rem] bg-contain bg-[url(https://img.shields.io/github/stars/rustdesk/rustdesk.svg?style=social&label=Stars&maxAge=86400)]" /> <span class="w-[5.6rem] h-[1.25rem] bg-cover bg-[url(https://img.shields.io/github/stars/rustdesk/rustdesk.svg?style=social&label=Stars&maxAge=86400)]" />
</a> </a>
) )
} }

View File

@ -1,7 +1,7 @@
--- ---
import Layout from '~/layouts/Layout.astro'; import Layout from '~/layouts/Layout.astro';
import Header from '~/components/widgets/Header.astro'; import Header from '~/components/widgets/Header.astro';
import Footer from '~/components/widgets/Footer.astro'; import Footer, {type Props as FD} from '~/components/widgets/Footer.astro';
import Announcement from '~/components/widgets/Announcement.astro'; import Announcement from '~/components/widgets/Announcement.astro';
import { headerData, footerData } from '~/navigation'; import { headerData, footerData } from '~/navigation';
@ -26,6 +26,6 @@ const { metadata } = Astro.props;
<slot /> <slot />
</main> </main>
<slot name="footer"> <slot name="footer">
<Footer {...footerData} /> <Footer {...footerData as FD} />
</slot> </slot>
</Layout> </Layout>

View File

@ -7,6 +7,7 @@ import Content from '~/components/widgets/Content.astro';
import BlogLatestPosts from '~/components/widgets/BlogLatestPosts.astro'; import BlogLatestPosts from '~/components/widgets/BlogLatestPosts.astro';
import Stats from '~/components/widgets/Stats.astro'; import Stats from '~/components/widgets/Stats.astro';
import CallToAction from '~/components/widgets/CallToAction.astro'; import CallToAction from '~/components/widgets/CallToAction.astro';
import Carousel from '~/components/widgets/Carousel.jsx';
const metadata = { const metadata = {
title: 'RustDesk: Open-Source Remote Desktop with Self-Hosted Server Solutions', title: 'RustDesk: Open-Source Remote Desktop with Self-Hosted Server Solutions',
@ -16,7 +17,6 @@ const metadata = {
<Layout metadata={metadata}> <Layout metadata={metadata}>
<!-- Hero Widget ******************* --> <!-- Hero Widget ******************* -->
<Hero <Hero
actions={[ actions={[
{ {
@ -28,14 +28,24 @@ const metadata = {
}, },
{ text: 'Self-Hosting', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' }, { text: 'Self-Hosting', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' },
]} ]}
image={{ src: '~/assets/images/console.png', alt: 'RustDesk Web Console Image', class: "rounded-lg border border-gray-700" }}
> >
<Fragment slot="title"> <Fragment slot="title"> The Fast Open-Source Remote Access and Support Software </Fragment>
The Fast Open-Source Remote Access and Support Software
</Fragment>
<Fragment slot="subtitle"> <Fragment slot="subtitle">
Switch from TeamViewer, AnyDesk, and Splashtop to RustDesk for a secure and reliable remote desktop experience with your own self-hosted servers. Switch from TeamViewer, AnyDesk, and Splashtop to RustDesk for a secure and reliable remote desktop experience
with your own self-hosted servers.
</Fragment>
<Fragment slot="content">
<br /><br />
<Carousel
client:load
list={[
{ src: 'remote.jpg', className: 'rounded-[15px] border border-gray-700' },
{ src: 'main.png', className: 'rounded-[15px] border border-gray-700' },
{ src: 'console.png', className: 'rounded-[15px] border border-gray-700' },
{ src: 'custom.png', className: 'rounded-[15px] border border-gray-700' },
]}
/>
</Fragment> </Fragment>
</Hero> </Hero>
@ -52,23 +62,19 @@ const metadata = {
items={[ items={[
{ {
title: 'Data sovereignty', title: 'Data sovereignty',
description: description: 'Regulatory compliance made easy: self-hosted RustDesk ensures data sovereignty.',
'Regulatory compliance made easy: self-hosted RustDesk ensures data sovereignty.',
}, },
{ {
title: 'Enhanced security', title: 'Enhanced security',
description: description: 'Fortify your security: on-premise deployment keeps your data under your control.',
'Fortify your security: on-premise deployment keeps your data under your control.',
}, },
{ {
title: 'Performance and reliability', title: 'Performance and reliability',
description: description: 'Guaranteed uptime: on-premise deployment ensures optimal performance and minimal downtime.',
'Guaranteed uptime: on-premise deployment ensures optimal performance and minimal downtime.',
}, },
{ {
title: 'Flexibility and customization', title: 'Flexibility and customization',
description: description: 'Tailor RustDesk on-premise to fit your unique requirements.',
'Tailor RustDesk on-premise to fit your unique requirements.',
}, },
]} ]}
image={{ image={{
@ -78,7 +84,8 @@ const metadata = {
> >
<Fragment slot="content"> <Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Why self-hosting?</h3> <h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Why self-hosting?</h3>
Are you frustrated with SaaS platforms due to their unstable performance, lack of transparency, and uncertain data security risks? Are you frustrated with SaaS platforms due to their unstable performance, lack of transparency, and uncertain data
security risks?
</Fragment> </Fragment>
<Fragment slot="bg"> <Fragment slot="bg">
@ -119,7 +126,7 @@ const metadata = {
}} }}
> >
<Fragment slot="content"> <Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Custom client</h3> <h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Custom Client</h3>
Customize your client with your brand and make it truly yours. Customize your client with your brand and make it truly yours.
</Fragment> </Fragment>
@ -136,18 +143,18 @@ const metadata = {
items={[ items={[
{ {
title: 'Step 1: Install Docker', title: 'Step 1: Install Docker',
description: description: '<code>sudo apt install -y docker.io</code>',
"<code>sudo apt install -y docker.io</code>",
icon: 'tabler:package', icon: 'tabler:package',
}, },
{ {
title: 'Step 2: Download compose.yml', title: 'Step 2: Download compose.yml',
description: '<code>wget rustdesk.com/oss.yml -O compose.yml<br>or<br>wget rustdesk.com/pro.yml -O compose.yml</code>', description:
'<code>wget rustdesk.com/oss.yml -O compose.yml<br>or<br>wget rustdesk.com/pro.yml -O compose.yml</code>',
icon: 'tabler:download', icon: 'tabler:download',
}, },
{ {
title: `Step 3: Compose`, title: `Step 3: Compose`,
description: "<code>docker compose up -d</code>", description: '<code>docker compose up -d</code>',
icon: 'tabler:hammer', icon: 'tabler:hammer',
}, },
{ {
@ -163,27 +170,25 @@ const metadata = {
<!-- Stats Widget ****************** --> <!-- Stats Widget ****************** -->
<Stats <Stats
tagline="Scenarios" tagline="Scenarios"
title="Who are using self-hosting?" title="Who are using self-hosting?"
subtitle='The data below is from our online survey covering over 1,000 self-hosting users.' subtitle="The data below is from our online survey covering over 1,000 self-hosting users."
stats={[ stats={[
{ title: 'IT Support', amount: '37%' }, { title: 'IT Support', amount: '37%' },
{ title: 'IT Administration', amount: '25%' }, { title: 'IT Administration', amount: '25%' },
{ title: 'Remote Work', amount: '29%' }, { title: 'Remote Work', amount: '29%' },
{ title: 'Industrial and others', amount: '9%' }, { title: 'Industrial and others', amount: '9%' },
]} ]}
/> />
<!-- HighlightedPosts Widget ******* --> <!-- HighlightedPosts Widget ******* -->
<BlogLatestPosts <BlogLatestPosts title="Find out more content in our Blog" />
title="Find out more content in our Blog"
/>
<Stats <Stats
tagline="Open Source" tagline="Open Source"
title="Built in public with a vibrant community" title="Built in public with a vibrant community"
subtitle='Join a community driven solution that has millions of downloads and used by thousands of organisations.' subtitle="Join a community driven solution that has millions of downloads and used by thousands of organisations."
stats={[ stats={[
{ title: 'Client downloads', amount: '10M+' }, { title: 'Client downloads', amount: '10M+' },
{ title: 'Docker downloads', amount: '1M+' }, { title: 'Docker downloads', amount: '1M+' },
@ -217,13 +222,9 @@ const metadata = {
}, },
]} ]}
> >
<Fragment slot="title"> <Fragment slot="title"> Join the community </Fragment>
Join the community
</Fragment>
<Fragment slot="subtitle"> <Fragment slot="subtitle"> Discover what our community has to say about their RustDesk experience. </Fragment>
Discover what our community has to say about their RustDesk experience.
</Fragment>
</Hero> </Hero>
<CallToAction <CallToAction
@ -238,8 +239,6 @@ const metadata = {
{ text: 'Self-Hosting', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' }, { text: 'Self-Hosting', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' },
]} ]}
> >
<Fragment slot="title"> <Fragment slot="title"> Experience RustDesk for yourself </Fragment>
Experience RustDesk for yourself
</Fragment>
</CallToAction> </CallToAction>
</Layout> </Layout>

View File

@ -5,8 +5,17 @@
"allowJs": true, "allowJs": true,
"baseUrl": ".", "baseUrl": ".",
"paths": { "paths": {
"~/*": ["src/*"] "~/*": [
} "src/*"
],
"@/*": [
"./src/*"
]
},
"jsx": "react-jsx",
"jsxImportSource": "react"
}, },
"exclude": ["dist/"] "exclude": [
} "dist/"
]
}