diff --git a/renderers/react/package-lock.json b/renderers/react/package-lock.json index 68d1059ca..81736fb07 100644 --- a/renderers/react/package-lock.json +++ b/renderers/react/package-lock.json @@ -9,7 +9,7 @@ "version": "0.8.0", "license": "Apache-2.0", "dependencies": { - "@a2ui/web_core": "^0.8.0", + "@a2ui/web_core": ">=0.8.0 <0.8.4", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, diff --git a/renderers/react/package.json b/renderers/react/package.json index 921eeca17..72559c0cb 100644 --- a/renderers/react/package.json +++ b/renderers/react/package.json @@ -48,7 +48,7 @@ "clean": "rm -rf dist" }, "dependencies": { - "@a2ui/web_core": "^0.8.0", + "@a2ui/web_core": ">=0.8.0 <0.8.4", "clsx": "^2.1.0", "markdown-it": "^14.0.0" }, diff --git a/renderers/react/visual-parity/package-lock.json b/renderers/react/visual-parity/package-lock.json index 5ce8c4949..3b197b3ac 100644 --- a/renderers/react/visual-parity/package-lock.json +++ b/renderers/react/visual-parity/package-lock.json @@ -9,7 +9,7 @@ "version": "0.8.0", "dependencies": { "@a2ui/lit": "file:../../lit", - "@a2ui/markdown-it": "^0.0.1", + "@a2ui/markdown-it": "file:../../markdown/markdown-it", "@a2ui/react": "file:..", "@lit/context": "^1.1.0", "lit": "^3.1.0", @@ -51,6 +51,7 @@ "eslint-config-prettier": "^10.0.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^5.0.0", + "gts": "^7.0.0", "jsdom": "^28.0.0", "prettier": "^3.4.0", "react": "^18.3.0", @@ -70,7 +71,7 @@ }, "../../lit": { "name": "@a2ui/lit", - "version": "0.8.1", + "version": "0.8.2", "license": "Apache-2.0", "dependencies": { "@a2ui/web_core": "file:../web_core", @@ -86,6 +87,29 @@ "wireit": "^0.15.0-pre.2" } }, + "../../markdown/markdown-it": { + "name": "@a2ui/markdown-it", + "version": "0.0.2", + "license": "Apache-2.0", + "dependencies": { + "dompurify": "^3.3.1", + "markdown-it": "^14.1.0" + }, + "devDependencies": { + "@a2ui/web_core": "file:../../web_core", + "@types/dompurify": "^3.0.5", + "@types/jsdom": "^28.0.0", + "@types/markdown-it": "^14.1.2", + "@types/node": "^24.10.1", + "jsdom": "^28.1.0", + "prettier": "^3.4.2", + "typescript": "^5.8.3", + "wireit": "^0.15.0-pre.2" + }, + "peerDependencies": { + "@a2ui/web_core": "file:../../web_core" + } + }, "../lit": { "name": "@a2ui/lit", "version": "0.8.1", @@ -141,33 +165,13 @@ "link": true }, "node_modules/@a2ui/markdown-it": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@a2ui/markdown-it/-/markdown-it-0.0.1.tgz", - "integrity": "sha512-SIYNeUvBBO8mCa1n2haeZ3lZ5AVZSmZCpeyIMHDIMGYbGUXLCaSVU3qCdlzX78wR3xPEQ8zo8DvcezBBnVZLuA==", - "license": "Apache-2.0", - "dependencies": { - "dompurify": "^3.3.1", - "markdown-it": "^14.1.0" - }, - "peerDependencies": { - "@a2ui/web_core": "^0.8.0" - } + "resolved": "../../markdown/markdown-it", + "link": true }, "node_modules/@a2ui/react": { "resolved": "..", "link": true }, - "node_modules/@a2ui/web_core": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@a2ui/web_core/-/web_core-0.8.0.tgz", - "integrity": "sha512-UG8IDsiLYuZjnEmqH7129EbN1Ds3DfC8FXPSI/E+0kcZ4VGxo//Kij6ZF2jBXBKyrHYPehoDtffFFIIFvgBp6g==", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "zod": "^3.25.76", - "zod-to-json-schema": "^3.25.1" - } - }, "node_modules/@babel/code-frame": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", @@ -1695,18 +1699,6 @@ } } }, - "node_modules/dompurify": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.2.tgz", - "integrity": "sha512-6obghkliLdmKa56xdbLOpUZ43pAR6xFy1uOrxBaIDjT+yaRuuybLjGS9eVBoSR/UPU5fq3OXClEHLJNGvbxKpQ==", - "license": "(MPL-2.0 OR Apache-2.0)", - "engines": { - "node": ">=20" - }, - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, "node_modules/electron-to-chromium": { "version": "1.5.267", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", @@ -2552,26 +2544,6 @@ "engines": { "node": ">=12" } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-to-json-schema": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", - "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", - "license": "ISC", - "peer": true, - "peerDependencies": { - "zod": "^3.25 || ^4" - } } } } diff --git a/renderers/react/visual-parity/package.json b/renderers/react/visual-parity/package.json index fcdd23d23..8a7a777da 100644 --- a/renderers/react/visual-parity/package.json +++ b/renderers/react/visual-parity/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@a2ui/lit": "file:../../lit", - "@a2ui/markdown-it": "^0.0.1", + "@a2ui/markdown-it": "file:../../markdown/markdown-it", "@a2ui/react": "file:..", "@lit/context": "^1.1.0", "lit": "^3.1.0", diff --git a/renderers/react/visual-parity/react/vite.config.ts b/renderers/react/visual-parity/react/vite.config.ts index e3cb339d8..cbe0d9b52 100644 --- a/renderers/react/visual-parity/react/vite.config.ts +++ b/renderers/react/visual-parity/react/vite.config.ts @@ -28,6 +28,12 @@ export default defineConfig({ optimizeDeps: { // Always re-optimize on startup so rebuilds of file: deps don't cause 504s force: true, + // Pre-bundle web_core subpath imports so Vite doesn't discover them lazily + // (which causes "optimized dependencies changed. reloading" mid-page-load) + include: [ + '@a2ui/web_core/styles/index', + '@a2ui/web_core/data/model-processor', + ], exclude: [ '@a2ui/react', '@a2ui/lit',