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>
19 lines
749 B
HTML
19 lines
749 B
HTML
{{/* v0.27.0: Generic container for extension surfaces.
|
|
Extension JS mounts into #extension-mount. The manifest is available
|
|
as window.__MANIFEST__ (injected in base.html). Platform primitives
|
|
(Theme, UI, API, ChatPane, etc.) are loaded by base.html before this
|
|
script runs.
|
|
|
|
Extensions can use any component available on the page:
|
|
- ChatPane.create(container, opts)
|
|
- UI.* primitives (toast, confirm, etc.)
|
|
- API.* (authenticated fetch)
|
|
- Theme.* (dark/light queries)
|
|
*/}}
|
|
{{define "surface-extension"}}
|
|
<div id="extension-surface" class="extension-surface"
|
|
data-surface-id="{{.Surface}}">
|
|
<div id="extension-mount" class="extension-mount" data-ext="{{.Surface}}"></div>
|
|
</div>
|
|
{{end}}
|