Changeset 0.27.0 (#166)
This commit is contained in:
@@ -189,6 +189,13 @@ window.addEventListener('unhandledrejection', function(e) {
|
||||
<span class="sb-label">Editor</span>
|
||||
</a>
|
||||
{{end}}
|
||||
{{/* v0.27.0: Extension surface nav items */}}
|
||||
{{range .ExtensionSurfaces}}
|
||||
<a href="{{$.BasePath}}{{.Route}}" class="sb-btn sidebar-extension-btn" title="{{.Title}}" data-surface-id="{{.ID}}">
|
||||
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg>
|
||||
<span class="sb-label">{{.Title}}</span>
|
||||
</a>
|
||||
{{end}}
|
||||
<div class="sidebar-bottom-divider"></div>
|
||||
{{template "user-menu" dict "ID" ""}}
|
||||
</div>
|
||||
|
||||
21
server/pages/templates/surfaces/extension.html
Normal file
21
server/pages/templates/surfaces/extension.html
Normal file
@@ -0,0 +1,21 @@
|
||||
{{/* 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}}">
|
||||
{{/* User menu — must pass dict with ID field, not raw PageData */}}
|
||||
{{template "user-menu" dict "ID" "ext"}}
|
||||
|
||||
<div id="extension-mount" class="extension-mount"></div>
|
||||
</div>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user