From 1c15f8f623216f658649d4468ccbfafe07099933 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Wed, 18 Mar 2026 10:11:12 +1300 Subject: [PATCH 1/4] New version. --- package.json | 2 +- src/renderer/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5cbed2d5..3708e6c5 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "url": "git+https://github.com/opencor/webapp.git" }, "type": "module", - "version": "0.20260318.0", + "version": "0.20260318.1", "engines": { "bun": ">=1.2.0" }, diff --git a/src/renderer/package.json b/src/renderer/package.json index 2eff04ff..aa2b2e97 100644 --- a/src/renderer/package.json +++ b/src/renderer/package.json @@ -42,7 +42,7 @@ }, "./style.css": "./dist/opencor.css" }, - "version": "0.20260318.0", + "version": "0.20260318.1", "scripts": { "build": "vite build && bun scripts/generate.version.js", "build:lib": "vite build --config vite.lib.config.ts && bun scripts/copy.indexdts.js", From 593a36af8b3ed5b871dc143a6f501e4becb6b7b7 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Wed, 18 Mar 2026 10:12:32 +1300 Subject: [PATCH 2/4] Updated our dependencies. --- bun.lock | 2 +- src/renderer/bun.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bun.lock b/bun.lock index 6688d63b..0fdb0831 100644 --- a/bun.lock +++ b/bun.lock @@ -698,7 +698,7 @@ "flat-cache": ["flat-cache@6.1.20", "", { "dependencies": { "cacheable": "^2.3.2", "flatted": "^3.3.3", "hookified": "^1.15.0" } }, "sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ=="], - "flatted": ["flatted@3.4.1", "", {}, "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ=="], + "flatted": ["flatted@3.4.2", "", {}, "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA=="], "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], diff --git a/src/renderer/bun.lock b/src/renderer/bun.lock index b13d0cbe..33114cf8 100644 --- a/src/renderer/bun.lock +++ b/src/renderer/bun.lock @@ -429,7 +429,7 @@ "flat-cache": ["flat-cache@6.1.20", "", { "dependencies": { "cacheable": "^2.3.2", "flatted": "^3.3.3", "hookified": "^1.15.0" } }, "sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ=="], - "flatted": ["flatted@3.4.1", "", {}, "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ=="], + "flatted": ["flatted@3.4.2", "", {}, "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA=="], "fraction.js": ["fraction.js@5.3.4", "", {}, "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ=="], From a7c355827d5932c03f2a73e0dd97de648ded4745 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Wed, 18 Mar 2026 10:11:02 +1300 Subject: [PATCH 3/4] Make sure that the Tailwind CSS classes we use don't get overridden. --- bun.lock | 1 + package.json | 1 + src/renderer/bun.lock | 1 + src/renderer/package.json | 1 + src/renderer/vite.lib.config.ts | 74 ++++++++------------------------- 5 files changed, 21 insertions(+), 57 deletions(-) diff --git a/bun.lock b/bun.lock index 0fdb0831..1f3053bf 100644 --- a/bun.lock +++ b/bun.lock @@ -33,6 +33,7 @@ "electron-vite": "^5.0.0", "esbuild": "^0.27.4", "node-addon-api": "^8.6.0", + "postcss": "^8.5.8", "rollup-plugin-visualizer": "^7.0.1", "stylelint": "^17.4.0", "stylelint-config-standard": "^40.0.0", diff --git a/package.json b/package.json index 3708e6c5..9a765447 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,7 @@ "electron-vite": "^5.0.0", "esbuild": "^0.27.4", "node-addon-api": "^8.6.0", + "postcss": "^8.5.8", "rollup-plugin-visualizer": "^7.0.1", "stylelint": "^17.4.0", "stylelint-config-standard": "^40.0.0", diff --git a/src/renderer/bun.lock b/src/renderer/bun.lock index 33114cf8..63d07fdd 100644 --- a/src/renderer/bun.lock +++ b/src/renderer/bun.lock @@ -23,6 +23,7 @@ "@vue/tsconfig": "^0.9.0", "autoprefixer": "^10.4.27", "esbuild": "^0.27.4", + "postcss": "^8.5.8", "rollup-plugin-visualizer": "^7.0.1", "stylelint": "^17.4.0", "stylelint-config-standard": "^40.0.0", diff --git a/src/renderer/package.json b/src/renderer/package.json index aa2b2e97..7d5d253a 100644 --- a/src/renderer/package.json +++ b/src/renderer/package.json @@ -84,6 +84,7 @@ "@vue/tsconfig": "^0.9.0", "autoprefixer": "^10.4.27", "esbuild": "^0.27.4", + "postcss": "^8.5.8", "rollup-plugin-visualizer": "^7.0.1", "stylelint": "^17.4.0", "stylelint-config-standard": "^40.0.0", diff --git a/src/renderer/vite.lib.config.ts b/src/renderer/vite.lib.config.ts index 167e56b1..e2351b90 100644 --- a/src/renderer/vite.lib.config.ts +++ b/src/renderer/vite.lib.config.ts @@ -2,6 +2,7 @@ import * as primeVueAutoImportResolver from '@primevue/auto-import-resolver'; import tailwindcssPlugin from '@tailwindcss/vite'; import vuePlugin from '@vitejs/plugin-vue'; +import * as postcss from 'postcss'; import vitePlugin from 'unplugin-vue-components/vite'; import * as vite from 'vite'; @@ -53,71 +54,30 @@ export default vite.defineConfig({ generateBundle(_options, bundle) { for (const asset of Object.values(bundle)) { if (asset.type === 'asset' && typeof asset.source === 'string' && asset.fileName.endsWith('.css')) { - // Process @layer blocks: strip base, unwrap others. + // Process @layer blocks through a CSS AST: + // 1. Remove @layer base blocks; + // 2. Unwrap remaining @layer blocks; and + // 3. Remove bare @layer ordering declarations. - const processLayers = (source: string): string => { - const layerBlockRegEx = /@layer\s+([\w-]+)\s*\{/g; - let res = ''; - let pos = 0; + const root = postcss.parse(asset.source); - for (;;) { - layerBlockRegEx.lastIndex = pos; + root.walkAtRules('layer', (atRule) => { + if (!atRule.nodes || atRule.nodes.length === 0) { + atRule.remove(); - const match = layerBlockRegEx.exec(source); - - if (!match) { - res += source.slice(pos); - - break; - } - - const layerName = match[1] ?? ''; - const start = match.index; - const contentStart = start + match[0].length; - - // Scan forward to find the matching closing brace. - - let depth = 1; - let i = contentStart; - - while (i < source.length && depth > 0) { - if (source[i] === '{') { - ++depth; - } else if (source[i] === '}') { - --depth; - } - - ++i; - } - - const end = i; // One past the closing '}'. - - // Append everything before this @layer block unchanged. - - res += source.slice(pos, start); - - if (layerName !== 'base') { - // Unwrap: keep content, remove @layer wrapper. - // Note: we recurse so any nested @layer blocks are also processed. - - res += processLayers(source.slice(contentStart, end - 1)); - } - - // 'base' is stripped entirely (no append). - - pos = end; + return; } - return res; - }; + if (atRule.params.trim() === 'base') { + atRule.remove(); - let css = processLayers(asset.source); - - // Remove bare @layer ordering declarations (e.g., "@layer base, components;"). + return; + } - css = css.replace(/@layer\s+[\w\s,-]+;/g, ''); + atRule.replaceWith(...atRule.nodes); + }); - asset.source = css; + asset.source = root.toString(); } } } From 835882c6015d7f19a67b69ede8fbc110a446e386 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Thu, 12 Mar 2026 16:19:33 +1300 Subject: [PATCH 4/4] OpenCOR: slight improvements to our dropping zone. --- src/renderer/src/components/DragNDropComponent.vue | 6 +++++- src/renderer/src/components/OpenCOR.vue | 11 ++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/components/DragNDropComponent.vue b/src/renderer/src/components/DragNDropComponent.vue index 919f499e..b4b32915 100644 --- a/src/renderer/src/components/DragNDropComponent.vue +++ b/src/renderer/src/components/DragNDropComponent.vue @@ -1,5 +1,5 @@