Documentation Index
Fetch the complete documentation index at: https://docs.sdk.fdo.alexvwan.me/llms.txt
Use this file to discover all available pages before exploring further.
Quick Reference: Injected Libraries
This is a quick reference for developers who want to quickly look up available libraries and their basic usage.
These helpers and libraries are for the iframe UI runtime. Do not assume they exist in backend/bootstrap/plugin-host failure paths.
Window Helpers (Always Available)
// Backend Communication through a registered backend handler
const response = await window.createBackendReq("UI_MESSAGE", {
handler: "plugin.handlerName",
content: { data },
});
// If handler returns a privileged-action envelope:
const requestPayload =
response?.result?.request ??
response?.request ??
response;
const privileged = await window.createBackendReq("requestPrivilegedAction", requestPayload);
// For non-ok responses, prefer SDK formatPrivilegedActionError(...) in plugin code.
// DOM Utilities
window.waitForElement('#my-element', (el) => { /* ... */ });
window.applyClassToSelector('my-class', '#target');
window.executeInjectedScript('console.log("hello")');
// Event Management
window.addGlobalEventListener('click', handler);
window.removeGlobalEventListener('click', handler);
CSS Libraries (Already Loaded)
Pure CSS
<div class="pure-g">
<div class="pure-u-1-2">Column 1</div>
<div class="pure-u-1-2">Column 2</div>
</div>
<button class="pure-button pure-button-primary">Click</button>
JavaScript Libraries
Notyf (Notifications)
const notyf = new Notyf();
notyf.success('Success!');
notyf.error('Error!');
Highlight.js (Syntax Highlighting)
<pre><code class="language-javascript">
const code = "example";
</code></pre>
<script>hljs.highlightAll();</script>
FontAwesome (Icons)
<i class="fas fa-home"></i> <!-- Solid -->
<i class="far fa-star"></i> <!-- Regular -->
<i class="fab fa-github"></i> <!-- Brands -->
ACE Editor (Code Editor)
const editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.session.setMode("ace/mode/javascript");
editor.setValue("const x = 1;");
Split Grid (Resizable Panels)
Split({
columnGutters: [{ track: 1, element: document.querySelector('.gutter') }]
});
Full Documentation
For complete documentation with examples, see INJECTED_LIBRARIES.md