mirror of
https://github.com/documenso/documenso.git
synced 2026-07-13 22:37:24 +10:00
Compare commits
7 Commits
release
...
deps/vite-8
| Author | SHA1 | Date | |
|---|---|---|---|
| fae1798eeb | |||
| 69e08ac7cd | |||
| f69f3c9473 | |||
| 9747fd1800 | |||
| 53afafe5db | |||
| 38ab1cd4a7 | |||
| b3ef92feb9 |
@@ -12,6 +12,20 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
typecheck:
|
||||||
|
name: Typecheck
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
- uses: ./.github/actions/node-install
|
||||||
|
|
||||||
|
- name: Typecheck
|
||||||
|
run: npm run typecheck -w @documenso/remix
|
||||||
|
|
||||||
build_app:
|
build_app:
|
||||||
name: Build App
|
name: Build App
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -14,9 +14,5 @@
|
|||||||
"luxon": "^3.7.2",
|
"luxon": "^3.7.2",
|
||||||
"next": "15.5.12"
|
"next": "15.5.12"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {}
|
||||||
"@types/node": "^20",
|
|
||||||
"@types/react": "18.3.27",
|
|
||||||
"typescript": "5.6.2"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ start_time=$(date +%s)
|
|||||||
echo "[Build]: Extracting and compiling translations"
|
echo "[Build]: Extracting and compiling translations"
|
||||||
npm run translate --prefix ../../
|
npm run translate --prefix ../../
|
||||||
|
|
||||||
|
echo "[Build]: Typechecking app"
|
||||||
|
npm run typecheck
|
||||||
|
|
||||||
echo "[Build]: Building app"
|
echo "[Build]: Building app"
|
||||||
npm run build:app
|
npm run build:app
|
||||||
|
|
||||||
@@ -28,10 +31,11 @@ npm run build:server
|
|||||||
# Copy over the entry point for the server.
|
# Copy over the entry point for the server.
|
||||||
cp server/main.js build/server/main.js
|
cp server/main.js build/server/main.js
|
||||||
|
|
||||||
# Copy over all web.js translations
|
# Copy over all web.js translations.
|
||||||
|
# Rolldown preserveModules mirrors the source tree under build/server/hono/.
|
||||||
cp -r ../../packages/lib/translations build/server/hono/packages/lib/translations
|
cp -r ../../packages/lib/translations build/server/hono/packages/lib/translations
|
||||||
|
|
||||||
# Time taken
|
# Time taken
|
||||||
end_time=$(date +%s)
|
end_time=$(date +%s)
|
||||||
|
|
||||||
echo "[Build]: Done in $((end_time - start_time)) seconds"
|
echo "[Build]: Done in $((end_time - start_time)) seconds"
|
||||||
|
|||||||
+3
-33
@@ -4,8 +4,8 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "./.bin/build.sh",
|
"build": "./.bin/build.sh",
|
||||||
"build:app": "npm run typecheck && cross-env NODE_ENV=production react-router build",
|
"build:app": "react-router typegen && cross-env NODE_ENV=production react-router build",
|
||||||
"build:server": "cross-env NODE_ENV=production rollup -c rollup.config.mjs",
|
"build:server": "cross-env NODE_ENV=production rolldown -c rolldown.config.mjs",
|
||||||
"dev": "npm run with:env -- react-router dev",
|
"dev": "npm run with:env -- react-router dev",
|
||||||
"dev:billing": "bash .bin/stripe-dev.sh",
|
"dev:billing": "bash .bin/stripe-dev.sh",
|
||||||
"start": "npm run with:env -- cross-env NODE_ENV=production node build/server/main.js",
|
"start": "npm run with:env -- cross-env NODE_ENV=production node build/server/main.js",
|
||||||
@@ -74,36 +74,6 @@
|
|||||||
"ua-parser-js": "^1.0.41",
|
"ua-parser-js": "^1.0.41",
|
||||||
"uqr": "^0.1.2"
|
"uqr": "^0.1.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {},
|
||||||
"@babel/core": "^7.28.5",
|
|
||||||
"@babel/preset-react": "^7.28.5",
|
|
||||||
"@babel/preset-typescript": "^7.28.5",
|
|
||||||
"@lingui/babel-plugin-lingui-macro": "^5.6.0",
|
|
||||||
"@lingui/vite-plugin": "^5.6.0",
|
|
||||||
"@react-router/dev": "^7.12.0",
|
|
||||||
"@react-router/remix-routes-option-adapter": "^7.12.0",
|
|
||||||
"@rollup/plugin-babel": "^6.1.0",
|
|
||||||
"@rollup/plugin-commonjs": "^28.0.9",
|
|
||||||
"@rollup/plugin-json": "^6.1.0",
|
|
||||||
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
||||||
"@rollup/plugin-typescript": "^12.3.0",
|
|
||||||
"@types/content-disposition": "^0.5.9",
|
|
||||||
"@types/formidable": "^3.4.6",
|
|
||||||
"@types/luxon": "^3.7.1",
|
|
||||||
"@types/node": "^20",
|
|
||||||
"@types/papaparse": "^5.5.0",
|
|
||||||
"@types/react": "18.3.27",
|
|
||||||
"@types/react-dom": "^18",
|
|
||||||
"@types/ua-parser-js": "^0.7.39",
|
|
||||||
"cross-env": "^10.1.0",
|
|
||||||
"esbuild": "^0.27.0",
|
|
||||||
"remix-flat-routes": "^0.8.5",
|
|
||||||
"rollup": "^4.53.3",
|
|
||||||
"tsx": "^4.20.6",
|
|
||||||
"typescript": "5.6.2",
|
|
||||||
"vite": "^7.2.4",
|
|
||||||
"vite-plugin-babel-macros": "^1.0.6",
|
|
||||||
"vite-tsconfig-paths": "^5.1.4"
|
|
||||||
},
|
|
||||||
"version": "2.8.0"
|
"version": "2.8.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
import babel from '@rolldown/plugin-babel';
|
||||||
|
import { defineConfig } from 'rolldown';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rolldown config for building the Hono server entry.
|
||||||
|
*
|
||||||
|
* Replaces the previous rollup.config.mjs. Rolldown provides built-in
|
||||||
|
* TypeScript, JSX (automatic runtime), JSON, CJS interop, and node
|
||||||
|
* resolution — so we only need a single plugin for lingui macro compilation.
|
||||||
|
*/
|
||||||
|
export default defineConfig({
|
||||||
|
input: 'server/router.ts',
|
||||||
|
output: {
|
||||||
|
dir: 'build/server/hono',
|
||||||
|
format: 'esm',
|
||||||
|
sourcemap: true,
|
||||||
|
preserveModules: true,
|
||||||
|
preserveModulesRoot: '.',
|
||||||
|
},
|
||||||
|
// Externalize all third-party deps from node_modules.
|
||||||
|
// Workspace packages (@documenso/*) resolve to their actual source paths
|
||||||
|
// (outside node_modules) via npm workspace symlinks, so they get bundled.
|
||||||
|
external: [/node_modules/],
|
||||||
|
platform: 'node',
|
||||||
|
resolve: {
|
||||||
|
extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
|
||||||
|
tsconfigFilename: 'tsconfig.json',
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
babel({
|
||||||
|
plugins: ['@lingui/babel-plugin-lingui-macro'],
|
||||||
|
parserOpts: {
|
||||||
|
plugins: ['typescript', 'jsx'],
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
});
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
import linguiMacro from '@lingui/babel-plugin-lingui-macro';
|
|
||||||
import babel from '@rollup/plugin-babel';
|
|
||||||
import commonjs from '@rollup/plugin-commonjs';
|
|
||||||
import json from '@rollup/plugin-json';
|
|
||||||
import resolve from '@rollup/plugin-node-resolve';
|
|
||||||
import typescript from '@rollup/plugin-typescript';
|
|
||||||
import path from 'node:path';
|
|
||||||
|
|
||||||
/** @type {import('rollup').RollupOptions} */
|
|
||||||
const config = {
|
|
||||||
/**
|
|
||||||
* We specifically target the router.ts instead of the entry point so the rollup doesn't go through the
|
|
||||||
* already prebuilt RR7 server files.
|
|
||||||
*/
|
|
||||||
input: 'server/router.ts',
|
|
||||||
output: {
|
|
||||||
dir: 'build/server/hono',
|
|
||||||
format: 'esm',
|
|
||||||
sourcemap: true,
|
|
||||||
preserveModules: true,
|
|
||||||
preserveModulesRoot: '.',
|
|
||||||
},
|
|
||||||
external: [/node_modules/],
|
|
||||||
plugins: [
|
|
||||||
typescript({
|
|
||||||
noEmitOnError: true,
|
|
||||||
moduleResolution: 'bundler',
|
|
||||||
include: ['server/**/*', '../../packages/**/*', '../../packages/lib/translations/**/*'],
|
|
||||||
jsx: 'preserve',
|
|
||||||
}),
|
|
||||||
resolve({
|
|
||||||
rootDir: path.join(process.cwd(), '../..'),
|
|
||||||
preferBuiltins: true,
|
|
||||||
resolveOnly: [
|
|
||||||
'@documenso/api/*',
|
|
||||||
'@documenso/auth/*',
|
|
||||||
'@documenso/lib/*',
|
|
||||||
'@documenso/trpc/*',
|
|
||||||
'@documenso/email/*',
|
|
||||||
],
|
|
||||||
extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
|
|
||||||
}),
|
|
||||||
json(),
|
|
||||||
commonjs(),
|
|
||||||
babel({
|
|
||||||
babelHelpers: 'bundled',
|
|
||||||
extensions: ['.ts', '.tsx'],
|
|
||||||
presets: ['@babel/preset-typescript', ['@babel/preset-react', { runtime: 'automatic' }]],
|
|
||||||
plugins: [linguiMacro],
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export default config;
|
|
||||||
+20
-10
@@ -1,14 +1,13 @@
|
|||||||
import { lingui } from '@lingui/vite-plugin';
|
import { lingui } from '@lingui/vite-plugin';
|
||||||
import { reactRouter } from '@react-router/dev/vite';
|
import { reactRouter } from '@react-router/dev/vite';
|
||||||
|
import babel from '@rolldown/plugin-babel';
|
||||||
import autoprefixer from 'autoprefixer';
|
import autoprefixer from 'autoprefixer';
|
||||||
import serverAdapter from 'hono-react-router-adapter/vite';
|
import serverAdapter from 'hono-react-router-adapter/vite';
|
||||||
import { createRequire } from 'node:module';
|
import { createRequire } from 'node:module';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import tailwindcss from 'tailwindcss';
|
import tailwindcss from 'tailwindcss';
|
||||||
import { defineConfig, normalizePath } from 'vite';
|
import { defineConfig, normalizePath } from 'vite';
|
||||||
import macrosPlugin from 'vite-plugin-babel-macros';
|
|
||||||
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
||||||
import tsconfigPaths from 'vite-tsconfig-paths';
|
|
||||||
|
|
||||||
const require = createRequire(import.meta.url);
|
const require = createRequire(import.meta.url);
|
||||||
|
|
||||||
@@ -40,16 +39,24 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
|
babel({
|
||||||
|
plugins: ['@lingui/babel-plugin-lingui-macro'],
|
||||||
|
// @rolldown/plugin-babel's built-in TypeScript parser overrides use
|
||||||
|
// `test: "**/*.tsx"` globs which fail to match when React Router appends
|
||||||
|
// query strings (e.g. `?__react-router-build-client-route`) to module IDs.
|
||||||
|
// Specify parser plugins explicitly so they apply unconditionally.
|
||||||
|
parserOpts: {
|
||||||
|
plugins: ['typescript', 'jsx'],
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
lingui().filter((plugin) => plugin.name === 'vite-plugin-lingui'),
|
||||||
reactRouter(),
|
reactRouter(),
|
||||||
macrosPlugin(),
|
|
||||||
lingui(),
|
|
||||||
tsconfigPaths(),
|
|
||||||
serverAdapter({
|
serverAdapter({
|
||||||
entry: 'server/router.ts',
|
entry: 'server/router.ts',
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
ssr: {
|
ssr: {
|
||||||
noExternal: ['react-dropzone', 'plausible-tracker'],
|
noExternal: ['react-dropzone'],
|
||||||
external: [
|
external: [
|
||||||
'@napi-rs/canvas',
|
'@napi-rs/canvas',
|
||||||
'@node-rs/bcrypt',
|
'@node-rs/bcrypt',
|
||||||
@@ -62,10 +69,8 @@ export default defineConfig({
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
optimizeDeps: {
|
optimizeDeps: {
|
||||||
entries: ['./app/**/*', '../../packages/ui/**/*', '../../packages/lib/**/*'],
|
|
||||||
include: ['prop-types', 'file-selector', 'attr-accept'],
|
include: ['prop-types', 'file-selector', 'attr-accept'],
|
||||||
exclude: [
|
exclude: [
|
||||||
'node_modules',
|
|
||||||
'@napi-rs/canvas',
|
'@napi-rs/canvas',
|
||||||
'@node-rs/bcrypt',
|
'@node-rs/bcrypt',
|
||||||
'sharp',
|
'sharp',
|
||||||
@@ -75,6 +80,7 @@ export default defineConfig({
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
|
tsconfigPaths: true,
|
||||||
alias: {
|
alias: {
|
||||||
https: 'node:https',
|
https: 'node:https',
|
||||||
'.prisma/client/default': path.resolve(
|
'.prisma/client/default': path.resolve(
|
||||||
@@ -89,11 +95,15 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Note: Re run rollup again to build the server afterwards.
|
* Note: Re run rolldown again to build the server afterwards.
|
||||||
*
|
*
|
||||||
* See rollup.config.mjs which is used for that.
|
* See rolldown.config.mjs which is used for that.
|
||||||
*/
|
*/
|
||||||
build: {
|
build: {
|
||||||
|
// LightningCSS (Vite 8 default) is stricter and rejects nested @page
|
||||||
|
// rules and some Tailwind theme() edge cases. Use esbuild for CSS
|
||||||
|
// minification until LightningCSS support matures or the CSS is updated.
|
||||||
|
cssMinify: 'esbuild',
|
||||||
rollupOptions: {
|
rollupOptions: {
|
||||||
external: [
|
external: [
|
||||||
'@napi-rs/canvas',
|
'@napi-rs/canvas',
|
||||||
|
|||||||
Generated
+2062
-1282
File diff suppressed because it is too large
Load Diff
+22
-1
@@ -47,19 +47,37 @@
|
|||||||
"node": ">=22.0.0"
|
"node": ">=22.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.28.5",
|
||||||
|
"@types/babel__core": "^7.20.5",
|
||||||
"@commitlint/cli": "^20.1.0",
|
"@commitlint/cli": "^20.1.0",
|
||||||
"@commitlint/config-conventional": "^20.0.0",
|
"@commitlint/config-conventional": "^20.0.0",
|
||||||
"@datadog/pprof": "^5.13.5",
|
"@datadog/pprof": "^5.13.5",
|
||||||
|
"@lingui/babel-plugin-lingui-macro": "^5.6.0",
|
||||||
"@lingui/cli": "^5.6.0",
|
"@lingui/cli": "^5.6.0",
|
||||||
|
"@lingui/vite-plugin": "^5.6.0",
|
||||||
"@prisma/client": "^6.19.0",
|
"@prisma/client": "^6.19.0",
|
||||||
|
"@react-router/dev": "^7.12.0",
|
||||||
|
"@react-router/remix-routes-option-adapter": "^7.12.0",
|
||||||
|
"@rolldown/plugin-babel": "^0.2.0",
|
||||||
"@trpc/client": "11.8.1",
|
"@trpc/client": "11.8.1",
|
||||||
"@trpc/react-query": "11.8.1",
|
"@trpc/react-query": "11.8.1",
|
||||||
"@trpc/server": "11.8.1",
|
"@trpc/server": "11.8.1",
|
||||||
"@ts-rest/core": "^3.52.1",
|
"@ts-rest/core": "^3.52.1",
|
||||||
"@ts-rest/open-api": "^3.52.1",
|
"@ts-rest/open-api": "^3.52.1",
|
||||||
"@ts-rest/serverless": "^3.52.1",
|
"@ts-rest/serverless": "^3.52.1",
|
||||||
|
"@types/content-disposition": "^0.5.9",
|
||||||
|
"@types/formidable": "^3.4.6",
|
||||||
|
"@types/luxon": "^3.7.1",
|
||||||
|
"@types/node": "^20",
|
||||||
|
"@types/papaparse": "^5.5.0",
|
||||||
|
"@types/react": "18.3.27",
|
||||||
|
"@types/react-dom": "^18",
|
||||||
|
"@types/ua-parser-js": "^0.7.39",
|
||||||
|
"babel-plugin-macros": "^3.1.0",
|
||||||
|
"cross-env": "^10.1.0",
|
||||||
"dotenv": "^17.2.3",
|
"dotenv": "^17.2.3",
|
||||||
"dotenv-cli": "^11.0.0",
|
"dotenv-cli": "^11.0.0",
|
||||||
|
"esbuild": "^0.27.0",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"husky": "^9.1.7",
|
"husky": "^9.1.7",
|
||||||
"inngest-cli": "^1.16.1",
|
"inngest-cli": "^1.16.1",
|
||||||
@@ -75,11 +93,13 @@
|
|||||||
"prisma-extension-kysely": "^3.0.0",
|
"prisma-extension-kysely": "^3.0.0",
|
||||||
"prisma-json-types-generator": "^3.6.2",
|
"prisma-json-types-generator": "^3.6.2",
|
||||||
"prisma-kysely": "^2.3.0",
|
"prisma-kysely": "^2.3.0",
|
||||||
|
"remix-flat-routes": "^0.8.5",
|
||||||
"rimraf": "^6.1.2",
|
"rimraf": "^6.1.2",
|
||||||
"superjson": "^2.2.5",
|
"superjson": "^2.2.5",
|
||||||
"syncpack": "^14.0.0-alpha.27",
|
"syncpack": "^14.0.0-alpha.27",
|
||||||
|
"tsx": "^4.20.6",
|
||||||
"turbo": "^1.13.4",
|
"turbo": "^1.13.4",
|
||||||
"vite": "^7.2.4",
|
"vite": "^8.0.0",
|
||||||
"vite-plugin-static-copy": "^3.1.4",
|
"vite-plugin-static-copy": "^3.1.4",
|
||||||
"zod-openapi": "^4.2.4",
|
"zod-openapi": "^4.2.4",
|
||||||
"zod-prisma-types": "3.3.5"
|
"zod-prisma-types": "3.3.5"
|
||||||
@@ -104,6 +124,7 @@
|
|||||||
"lodash": "4.17.23",
|
"lodash": "4.17.23",
|
||||||
"pdfjs-dist": "5.4.296",
|
"pdfjs-dist": "5.4.296",
|
||||||
"typescript": "5.6.2",
|
"typescript": "5.6.2",
|
||||||
|
"vite": "$vite",
|
||||||
"zod": "$zod",
|
"zod": "$zod",
|
||||||
"fumadocs-mdx": {
|
"fumadocs-mdx": {
|
||||||
"zod": "^4.3.5"
|
"zod": "^4.3.5"
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
"eslint-config-turbo": "^1.13.4",
|
"eslint-config-turbo": "^1.13.4",
|
||||||
"eslint-plugin-package-json": "^0.85.0",
|
"eslint-plugin-package-json": "^0.85.0",
|
||||||
"eslint-plugin-react": "^7.37.5",
|
"eslint-plugin-react": "^7.37.5",
|
||||||
"eslint-plugin-unused-imports": "^4.3.0",
|
"eslint-plugin-unused-imports": "^4.3.0"
|
||||||
"typescript": "5.6.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,6 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@playwright/browser-chromium": "1.56.1",
|
"@playwright/browser-chromium": "1.56.1",
|
||||||
"@types/luxon": "^3.7.1",
|
|
||||||
"@types/pg": "^8.15.6"
|
"@types/pg": "^8.15.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,10 +32,5 @@
|
|||||||
"zod": "^3.25.76",
|
"zod": "^3.25.76",
|
||||||
"zod-prisma-types": "3.3.5"
|
"zod-prisma-types": "3.3.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {}
|
||||||
"dotenv": "^17.2.3",
|
|
||||||
"dotenv-cli": "^11.0.0",
|
|
||||||
"tsx": "^4.20.6",
|
|
||||||
"typescript": "5.6.2"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,11 +19,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@documenso/tailwind-config": "*",
|
"@documenso/tailwind-config": "*",
|
||||||
"@documenso/tsconfig": "*",
|
"@documenso/tsconfig": "*",
|
||||||
"@types/luxon": "^3.7.1",
|
"react": "^18"
|
||||||
"@types/react": "18.3.27",
|
|
||||||
"@types/react-dom": "^18",
|
|
||||||
"react": "^18",
|
|
||||||
"typescript": "5.6.2"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@documenso/lib": "*",
|
"@documenso/lib": "*",
|
||||||
|
|||||||
@@ -30,15 +30,14 @@ const Card = React.forwardRef<HTMLDivElement, CardProps>(
|
|||||||
} as React.CSSProperties
|
} as React.CSSProperties
|
||||||
}
|
}
|
||||||
className={cn(
|
className={cn(
|
||||||
'bg-background text-foreground group relative rounded-lg border-2',
|
'group relative rounded-lg border-2 bg-background text-foreground',
|
||||||
{
|
{
|
||||||
'backdrop-blur-[2px]': backdropBlur,
|
'backdrop-blur-[2px]': backdropBlur,
|
||||||
'gradient-border-mask before:pointer-events-none before:absolute before:-inset-[2px] before:rounded-lg before:p-[2px] before:[background:linear-gradient(var(--card-gradient-degrees),theme(colors.primary.DEFAULT/50%)_5%,theme(colors.border/80%)_30%)]':
|
'gradient-border-mask before:pointer-events-none before:absolute before:-inset-[2px] before:rounded-lg before:p-[2px] before:[background:linear-gradient(var(--card-gradient-degrees),theme(colors.primary.DEFAULT/50%)_5%,theme(colors.border/80%)_30%)]':
|
||||||
gradient,
|
gradient,
|
||||||
'dark:gradient-border-mask before:pointer-events-none before:absolute before:-inset-[2px] before:rounded-lg before:p-[2px] before:[background:linear-gradient(var(--card-gradient-degrees),theme(colors.primary.DEFAULT/70%)_5%,theme(colors.border/80%)_30%)]':
|
'dark:gradient-border-mask before:pointer-events-none before:absolute before:-inset-[2px] before:rounded-lg before:p-[2px] before:[background:linear-gradient(var(--card-gradient-degrees),theme(colors.primary.DEFAULT/70%)_5%,theme(colors.border/80%)_30%)]':
|
||||||
gradient,
|
gradient,
|
||||||
'shadow-[0_0_0_4px_theme(colors.gray.100/70%),0_0_0_1px_theme(colors.gray.100/70%),0_0_0_0.5px_var(colors.primary.DEFAULT/70%)]':
|
'shadow-[0_0_0_4px_theme(colors.gray.100/70%),0_0_0_1px_theme(colors.gray.100/70%),0_0_0_0.5px_theme(colors.primary.DEFAULT/70%)]': true,
|
||||||
true,
|
|
||||||
'dark:shadow-[0]': true,
|
'dark:shadow-[0]': true,
|
||||||
},
|
},
|
||||||
className,
|
className,
|
||||||
@@ -77,7 +76,7 @@ const CardDescription = React.forwardRef<
|
|||||||
HTMLParagraphElement,
|
HTMLParagraphElement,
|
||||||
React.HTMLAttributes<HTMLParagraphElement>
|
React.HTMLAttributes<HTMLParagraphElement>
|
||||||
>(({ className, ...props }, ref) => (
|
>(({ className, ...props }, ref) => (
|
||||||
<p ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />
|
<p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />
|
||||||
));
|
));
|
||||||
|
|
||||||
CardDescription.displayName = 'CardDescription';
|
CardDescription.displayName = 'CardDescription';
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
diff --git a/node_modules/@lingui/vite-plugin/dist/index.cjs b/node_modules/@lingui/vite-plugin/dist/index.cjs
|
||||||
|
index cb4db5d..c0a881a 100644
|
||||||
|
--- a/node_modules/@lingui/vite-plugin/dist/index.cjs
|
||||||
|
+++ b/node_modules/@lingui/vite-plugin/dist/index.cjs
|
||||||
|
@@ -114,8 +114,12 @@ You see this error because \`failOnMissing=true\` in Vite Plugin configuration.`
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
code,
|
||||||
|
- map: null
|
||||||
|
+ map: null,
|
||||||
|
// provide source map if available
|
||||||
|
+ // Vite 8+ (Rolldown) auto-detects module types by file extension.
|
||||||
|
+ // Since .po files are transformed to JS, we must explicitly declare
|
||||||
|
+ // the module type to avoid misinterpretation.
|
||||||
|
+ moduleType: "js"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/node_modules/@lingui/vite-plugin/dist/index.mjs b/node_modules/@lingui/vite-plugin/dist/index.mjs
|
||||||
|
index 609d48d..66fa6cc 100644
|
||||||
|
--- a/node_modules/@lingui/vite-plugin/dist/index.mjs
|
||||||
|
+++ b/node_modules/@lingui/vite-plugin/dist/index.mjs
|
||||||
|
@@ -106,8 +106,12 @@ You see this error because \`failOnMissing=true\` in Vite Plugin configuration.`
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
code,
|
||||||
|
- map: null
|
||||||
|
+ map: null,
|
||||||
|
// provide source map if available
|
||||||
|
+ // Vite 8+ (Rolldown) auto-detects module types by file extension.
|
||||||
|
+ // Since .po files are transformed to JS, we must explicitly declare
|
||||||
|
+ // the module type to avoid misinterpretation.
|
||||||
|
+ moduleType: "js"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user