diff --git a/package-lock.json b/package-lock.json index e731ba6..1c7208a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "dependencies": { "@intechstudio/grid-protocol": "1.20260828.1315", - "@intechstudio/grid-uikit": "1.20261014.1208", + "@intechstudio/grid-uikit": "1.20261014.1352", "@melt-ui/svelte": "^0.86.6", "firebase": "^12.2.1", "marked": "^12.0.2", @@ -1254,9 +1254,9 @@ } }, "node_modules/@intechstudio/grid-uikit": { - "version": "1.20261014.1208", - "resolved": "https://registry.npmjs.org/@intechstudio/grid-uikit/-/grid-uikit-1.20261014.1208.tgz", - "integrity": "sha512-Lvqp2VujI/GCOh92rQfGXxoYcLa1bDqRxPsthlDj/GrjfZUDdosI4h5EIDGSVpvYmeLUiaxead6UL2n9GXt+Og==", + "version": "1.20261014.1352", + "resolved": "https://registry.npmjs.org/@intechstudio/grid-uikit/-/grid-uikit-1.20261014.1352.tgz", + "integrity": "sha512-GiYmRdRXy6hY5S+oBHvnTQ8fh9n71OZ5455Opi9FxsKJbFtaC99uiker2obN/51WUbxQ6Yc1hOfsKhvjcceMXw==", "dependencies": { "@melt-ui/svelte": "^0.86.6", "color-convert": "^2.0.1", diff --git a/package.json b/package.json index d5f65d4..7c12709 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "type": "module", "dependencies": { "@intechstudio/grid-protocol": "1.20260828.1315", - "@intechstudio/grid-uikit": "1.20261014.1208", + "@intechstudio/grid-uikit": "1.20261014.1352", "@melt-ui/svelte": "^0.86.6", "firebase": "^12.2.1", "marked": "^12.0.2", diff --git a/vite.config.webcomponent.ts b/vite.config.webcomponent.ts index b6e2f34..363b1c7 100644 --- a/vite.config.webcomponent.ts +++ b/vite.config.webcomponent.ts @@ -1,48 +1,8 @@ -import { defineConfig, type Plugin } from "vite"; +import { defineConfig } from "vite"; import { svelte } from "@sveltejs/vite-plugin-svelte"; import { sveltePreprocess } from "svelte-preprocess"; import { notifyEditorAfterBuildPlugin } from "./vite.postbuild"; import path from "path"; -import { existsSync, readFileSync, writeFileSync } from "fs"; - -// The host editor only loads components.js, so any CSS vite extracts into a -// separate file (e.g. grid-uikit's splitpanes theme) never reaches the page. -// Vite attaches the extracted CSS to a different output format depending on -// the mode (build vs --watch), so inject it into every entry file after all -// formats are written instead of per bundle. -function injectCssIntoJsPlugin(): Plugin { - const marker = "/*inject-css-into-js*/"; - let outDir = ""; - let css = ""; - const entryFiles = new Set(); - return { - name: "inject-css-into-js", - apply: "build", - enforce: "post", - configResolved(config) { - outDir = path.resolve(config.root, config.build.outDir); - }, - generateBundle(_, bundle) { - for (const [name, file] of Object.entries(bundle)) { - if (file.type === "chunk" && file.isEntry) entryFiles.add(name); - if (file.type === "asset" && name.endsWith(".css")) { - css = String(file.source); - delete bundle[name]; - } - } - }, - closeBundle() { - if (!css) return; - const snippet = `\n${marker};(function(){try{var s=document.createElement("style");s.textContent=${JSON.stringify(css)};document.head.appendChild(s);}catch(e){}})();`; - for (const name of entryFiles) { - const file = path.join(outDir, name); - if (!existsSync(file)) continue; - const code = readFileSync(file, "utf8"); - if (!code.includes(marker)) writeFileSync(file, code + snippet); - } - }, - }; -} export default defineConfig({ resolve: { @@ -86,7 +46,6 @@ export default defineConfig({ }, emitCss: false, }), - injectCssIntoJsPlugin(), notifyEditorAfterBuildPlugin(), ], build: {