@ai-ecoverse/slicc-spectrum 1.23.3 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -3
- package/dist/slicc-dummy.js +52 -2
- package/dist/slicc-dummy.js.map +3 -3
- package/dist/slicc-ui.js +119 -16
- package/dist/slicc-ui.js.map +3 -3
- package/dist/types/app/sprinkle.d.ts +7 -1
- package/dist/types/dummy/sprinkles.d.ts +4 -2
- package/dist/types/model/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -3,13 +3,18 @@ import type { SliccModel } from '../model/types.js';
|
|
|
3
3
|
import { type Color, ThemedElement } from './base.js';
|
|
4
4
|
import { type FontFile } from './fonts.js';
|
|
5
5
|
export declare const bridge = "(() => {\n const post = (message) => parent.postMessage(message, '*');\n window.slicc = {\n name: document.currentScript.dataset.name,\n lick(event) {\n const value = typeof event === 'string' ? { action: event } : event || {};\n post({ type: 'slicc-lick', action: String(value.action || ''), data: value.data ?? null, target: value.target ?? null });\n },\n };\n const wanted = new Set();\n let timer = 0;\n window.LucideIcons = {\n render() {\n for (const node of document.querySelectorAll('i[data-lucide]')) wanted.add(node.dataset.lucide);\n clearTimeout(timer);\n timer = setTimeout(() => post({ type: 'slicc-icons', names: [...wanted] }));\n },\n };\n const swap = (found) => {\n for (const node of document.querySelectorAll('i[data-lucide]')) {\n const markup = found[node.dataset.lucide];\n if (!markup) continue;\n const template = document.createElement('template');\n template.innerHTML = markup;\n const svg = template.content.firstElementChild;\n for (const { name, value } of node.attributes) {\n if (name === 'class') svg.setAttribute('class', svg.getAttribute('class') + ' ' + value);\n else if (name !== 'data-lucide') svg.setAttribute(name, value);\n }\n node.replaceWith(svg);\n }\n };\n const fonts = (list) => {\n for (const font of list) {\n const face = new FontFace(font.family, font.data, { weight: String(font.weight) });\n document.fonts.add(face);\n face.load().catch(() => {});\n }\n };\n addEventListener('message', (event) => {\n if (event.source !== parent) return;\n const message = event.data || {};\n if (message.type === 'slicc-icons') swap(message.icons);\n if (message.type === 'slicc-fonts') fonts(message.fonts);\n if (message.type === 'slicc-theme') document.documentElement.classList.toggle('theme-light', message.color === 'light');\n });\n const size = () => {\n const style = getComputedStyle(document.body);\n post({ type: 'slicc-size', height: Math.ceil(document.body.offsetHeight + parseFloat(style.marginTop) + parseFloat(style.marginBottom)) });\n };\n document.addEventListener('DOMContentLoaded', () => {\n window.LucideIcons.render();\n new ResizeObserver(size).observe(document.body);\n });\n post({ type: 'slicc-ready' });\n})();";
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function literal(value: unknown): string;
|
|
7
|
+
export declare function store(state: unknown): string;
|
|
8
|
+
export declare function frameDocument(source: string, color: Color, name: string, state?: {
|
|
9
|
+
value: unknown;
|
|
10
|
+
}): string;
|
|
7
11
|
export declare function fontData(url: string): Promise<ArrayBuffer | null>;
|
|
8
12
|
export declare function frameFonts(files: readonly FontFile[], base: string): Promise<Array<{
|
|
9
13
|
family: string;
|
|
10
14
|
weight: number | string;
|
|
11
15
|
data: ArrayBuffer;
|
|
12
16
|
}>>;
|
|
17
|
+
export declare const sprinkleMethods: ReadonlySet<string>;
|
|
13
18
|
export declare class SliccSprinkle extends ThemedElement {
|
|
14
19
|
#private;
|
|
15
20
|
static properties: {
|
|
@@ -30,6 +35,7 @@ export declare class SliccSprinkle extends ThemedElement {
|
|
|
30
35
|
height: number;
|
|
31
36
|
constructor();
|
|
32
37
|
static styles: import("lit").CSSResult;
|
|
38
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
33
39
|
focus(): void;
|
|
34
40
|
protected subscribe(model: SliccModel): Array<() => void>;
|
|
35
41
|
protected updated(changed: PropertyValues): void;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Emitter } from '../model/emitter.js';
|
|
2
|
-
import type { Sprinkle, SprinkleEvents, SprinklePort } from '../model/types.js';
|
|
2
|
+
import type { FilePort, Sprinkle, SprinkleEvents, SprinkleMethod, SprinklePort } from '../model/types.js';
|
|
3
3
|
import type { DummyAgent } from './agent.js';
|
|
4
|
+
export declare function homePath(path: unknown): string;
|
|
4
5
|
export declare class DummySprinkles extends Emitter<SprinkleEvents> implements SprinklePort {
|
|
5
6
|
#private;
|
|
6
|
-
constructor(sprinkles: readonly Sprinkle[], agent: DummyAgent);
|
|
7
|
+
constructor(sprinkles: readonly Sprinkle[], agent: DummyAgent, files: FilePort);
|
|
7
8
|
list(): readonly Sprinkle[];
|
|
8
9
|
send(id: string, payload: unknown): void;
|
|
10
|
+
call(id: string, method: SprinkleMethod, args: readonly unknown[]): Promise<unknown>;
|
|
9
11
|
}
|
|
@@ -442,9 +442,11 @@ export interface Sprinkle {
|
|
|
442
442
|
export interface SprinkleEvents {
|
|
443
443
|
sprinkles: readonly Sprinkle[];
|
|
444
444
|
}
|
|
445
|
+
export type SprinkleMethod = 'readFile' | 'exists' | 'getState' | 'setState';
|
|
445
446
|
export interface SprinklePort extends Subscribable<SprinkleEvents> {
|
|
446
447
|
list(): readonly Sprinkle[];
|
|
447
448
|
send(id: string, payload: unknown): void;
|
|
449
|
+
call?(id: string, method: SprinkleMethod, args: readonly unknown[]): Promise<unknown>;
|
|
448
450
|
}
|
|
449
451
|
export type TrayConnection = 'offline' | 'connecting' | 'live' | 'stalled' | 'reconnecting' | 'error';
|
|
450
452
|
export type FloatKind = 'npx' | 'sliccstart' | 'extension' | 'standalone' | 'cherry' | 'electron' | 'hosted';
|
package/package.json
CHANGED