Feat v0.6.12 extension css isolation
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / build-and-deploy (pull_request) Has been cancelled
CI/CD / test-sqlite (pull_request) Has been cancelled
CI/CD / test-go-pg (pull_request) Has been cancelled
CI/CD / test-frontend (pull_request) Has been cancelled
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / build-and-deploy (pull_request) Has been cancelled
CI/CD / test-sqlite (pull_request) Has been cancelled
CI/CD / test-go-pg (pull_request) Has been cancelled
CI/CD / test-frontend (pull_request) Has been cancelled
Prefix enforcement prevents extension CSS from leaking into the kernel
or sibling extensions. All 12 in-tree packages migrated to .ext-{slug}-*
naming convention.
- Add data-ext attribute to extension mount container
- Add CSS linter (scripts/lint-package-css.sh) enforcing .ext-{slug} prefix
- Add kernel CSS contract doc (docs/EXTENSION-CSS.md)
- Migrate 12 packages: chat, dashboard, editor, git-board, hello-dashboard,
icd-test-runner, notes, schedules, sdk-test-runner, tasks,
team-activity-log, workflow-demo (CSS + JS in lockstep)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,38 +1,38 @@
|
||||
/* ICD Test Runner — Surface Styles */
|
||||
|
||||
#extension-mount {
|
||||
.ext-icd-test-runner-root {
|
||||
font-family: var(--font, 'DM Sans', sans-serif);
|
||||
}
|
||||
|
||||
#extension-mount h1 {
|
||||
.ext-icd-test-runner-root h1 {
|
||||
font-family: var(--font, 'DM Sans', sans-serif);
|
||||
letter-spacing: -0.3px;
|
||||
}
|
||||
|
||||
#extension-mount table {
|
||||
.ext-icd-test-runner-root table {
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
#extension-mount table td,
|
||||
#extension-mount table th {
|
||||
.ext-icd-test-runner-root table td,
|
||||
.ext-icd-test-runner-root table th {
|
||||
border-color: var(--border);
|
||||
}
|
||||
|
||||
#extension-mount table tbody tr:last-child {
|
||||
.ext-icd-test-runner-root table tbody tr:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
#extension-mount table tbody tr:hover {
|
||||
.ext-icd-test-runner-root table tbody tr:hover {
|
||||
background: var(--bg-hover) !important;
|
||||
}
|
||||
|
||||
/* Buttons — uses kernel sw-btn system, minor overrides for weight */
|
||||
#extension-mount .sw-btn {
|
||||
.ext-icd-test-runner-root .sw-btn {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* Status dot animation for running state */
|
||||
@keyframes pulse-dot {
|
||||
@keyframes ext-icd-test-runner-pulse-dot {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.4; }
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
var mount = document.getElementById('extension-mount');
|
||||
if (!mount) return;
|
||||
mount.classList.add('ext-icd-test-runner-root');
|
||||
|
||||
// ─── Boot Preact SDK (v0.37.14) ───────────────────────────
|
||||
// Extension surfaces don't load Preact vendors or the SDK.
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
await T.test('sdk', 'pipe-render', 'Render filter modifies DOM', async function () {
|
||||
sw.pipe.render(1, function (ctx) {
|
||||
if (ctx.element.dataset.sdkRenderTest) {
|
||||
ctx.element.classList.add('sdk-render-modified');
|
||||
ctx.element.classList.add('ext-icd-test-runner-sdk-render-modified');
|
||||
}
|
||||
return ctx;
|
||||
}, { source: '_test-render-dom' });
|
||||
@@ -348,7 +348,7 @@
|
||||
element: el, message: null,
|
||||
channel: { id: 'fake', type: 'direct' }
|
||||
});
|
||||
T.assert(el.classList.contains('sdk-render-modified'), 'element should have class');
|
||||
T.assert(el.classList.contains('ext-icd-test-runner-sdk-render-modified'), 'element should have class');
|
||||
});
|
||||
|
||||
await T.test('sdk', 'pipe-render', 'Priority ordering in render chain', async function () {
|
||||
|
||||
Reference in New Issue
Block a user