@syntrologie/runtime-sdk 2.13.0 → 2.15.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 +1 -0
- package/dist/SmartCanvasElementLit.d.ts +166 -0
- package/dist/actions/schema.d.ts +776 -776
- package/dist/actions/schema.js +4 -3
- package/dist/actions/types.d.ts +8 -2
- package/dist/anchor/AnchorResolver.d.ts +1 -0
- package/dist/api-lit.d.ts +84 -0
- package/dist/apps/builtinRuntimeModules-lit.d.ts +20 -0
- package/dist/bootstrap-types.d.ts +10 -0
- package/dist/chunk-2IQ2PTLJ.js +871 -0
- package/dist/chunk-2IQ2PTLJ.js.map +7 -0
- package/dist/chunk-4HXPGXUC.js +226 -0
- package/dist/chunk-4HXPGXUC.js.map +7 -0
- package/dist/{chunk-GF364MMB.js → chunk-CVMZW3II.js} +1102 -1098
- package/dist/chunk-CVMZW3II.js.map +7 -0
- package/dist/{chunk-XDYJ64IN.js → chunk-GX7BBYX6.js} +4 -4
- package/dist/chunk-GX7BBYX6.js.map +7 -0
- package/dist/chunk-JMHRHAEL.js +18 -0
- package/dist/chunk-JMHRHAEL.js.map +7 -0
- package/dist/{chunk-L6RJMBR2.js → chunk-XVRDKBYF.js} +3 -3
- package/dist/components/ShadowCanvasOverlay.d.ts +1 -2
- package/dist/components/SyntroCanvasOverlay.d.ts +100 -0
- package/dist/components/SyntroDrawer.d.ts +110 -0
- package/dist/components/SyntroLauncher.d.ts +105 -0
- package/dist/components/SyntroTileCard.d.ts +74 -0
- package/dist/components/SyntroTileWheel.d.ts +51 -0
- package/dist/config/schema.d.ts +147 -136
- package/dist/config/schema.js +3 -2
- package/dist/controllers/DecisionController.d.ts +48 -0
- package/dist/controllers/NotificationsController.d.ts +59 -0
- package/dist/controllers/RuntimeController.d.ts +52 -0
- package/dist/controllers/RuntimeEventsController.d.ts +42 -0
- package/dist/controllers/ThemeController.d.ts +110 -0
- package/dist/controllers/index.d.ts +13 -0
- package/dist/decisions/schema.d.ts +47 -47
- package/dist/decisions/schema.js +2 -1
- package/dist/decisions/types.d.ts +4 -0
- package/dist/editorLoader.d.ts +5 -0
- package/dist/fetchers/experimentsFetcher.d.ts +3 -3
- package/dist/fetchers/mergeConfigs.d.ts +7 -7
- package/dist/index-lit.d.ts +40 -0
- package/dist/index.js +1264 -19
- package/dist/index.js.map +4 -4
- package/dist/interop/LitInReact.d.ts +27 -0
- package/dist/interop/ReactInLit.d.ts +42 -0
- package/dist/interop/index.d.ts +7 -0
- package/dist/metrics/sessionMetrics.d.ts +4 -0
- package/dist/notifications/SyntroToastStack.d.ts +43 -0
- package/dist/react-compat.d.ts +114 -0
- package/dist/react.js +6 -4
- package/dist/react.js.map +1 -1
- package/dist/smart-canvas.esm.js +856 -240
- package/dist/smart-canvas.esm.js.map +4 -4
- package/dist/smart-canvas.js +31387 -39860
- package/dist/smart-canvas.js.map +4 -4
- package/dist/smart-canvas.min.js +855 -240
- package/dist/smart-canvas.min.js.map +4 -4
- package/dist/theme/index.js +30 -0
- package/dist/theme/index.js.map +7 -0
- package/dist/version.d.ts +1 -1
- package/package.json +10 -1
- package/schema/canvas-config.schema.json +2347 -11396
- package/dist/chunk-BU4Z6PD7.js +0 -218
- package/dist/chunk-BU4Z6PD7.js.map +0 -7
- package/dist/chunk-GF364MMB.js.map +0 -7
- package/dist/chunk-XDYJ64IN.js.map +0 -7
- /package/dist/{chunk-L6RJMBR2.js.map → chunk-XVRDKBYF.js.map} +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LitInReact — A React wrapper that renders a Lit custom element.
|
|
3
|
+
*
|
|
4
|
+
* Used during the React → Lit migration to embed Lit elements within
|
|
5
|
+
* React-based parent components. Properties are forwarded to the
|
|
6
|
+
* custom element via ref + direct property assignment.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* const SyntroTileCard = createLitReactWrapper('syntro-tile-card');
|
|
10
|
+
* <SyntroTileCard tile={tileData} />
|
|
11
|
+
*
|
|
12
|
+
* This is a temporary bridge — delete when all React parents are migrated to Lit.
|
|
13
|
+
*/
|
|
14
|
+
import { type FC } from 'react';
|
|
15
|
+
interface LitWrapperProps {
|
|
16
|
+
tagName: string;
|
|
17
|
+
props?: Record<string, unknown>;
|
|
18
|
+
className?: string;
|
|
19
|
+
style?: React.CSSProperties;
|
|
20
|
+
}
|
|
21
|
+
export declare const LitWrapper: FC<LitWrapperProps>;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a React component that wraps a specific Lit custom element.
|
|
24
|
+
* All props are forwarded as element properties.
|
|
25
|
+
*/
|
|
26
|
+
export declare function createLitReactWrapper(tagName: string): FC<Record<string, unknown>>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReactInLit — A Lit element that mounts a React component inside itself.
|
|
3
|
+
*
|
|
4
|
+
* Used during the React → Lit migration to embed React subtrees within
|
|
5
|
+
* Lit-based parent components. The React root is created in firstUpdated()
|
|
6
|
+
* and re-rendered whenever Lit reactive properties change.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* class MyLitElement extends LitElement {
|
|
10
|
+
* render() {
|
|
11
|
+
* return html`<react-bridge .component=${MyReactComponent} .props=${{ name: 'Alex' }}></react-bridge>`;
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* This is a temporary bridge — delete when all React components are migrated.
|
|
16
|
+
*/
|
|
17
|
+
import type { PropertyValues } from 'lit';
|
|
18
|
+
import { LitElement } from 'lit';
|
|
19
|
+
import type { ComponentType } from 'react';
|
|
20
|
+
export declare class ReactBridge extends LitElement {
|
|
21
|
+
#private;
|
|
22
|
+
static properties: {
|
|
23
|
+
component: {
|
|
24
|
+
attribute: boolean;
|
|
25
|
+
};
|
|
26
|
+
props: {
|
|
27
|
+
attribute: boolean;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
component: ComponentType<Record<string, unknown>> | null;
|
|
31
|
+
props: Record<string, unknown>;
|
|
32
|
+
createRenderRoot(): this;
|
|
33
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
34
|
+
firstUpdated(): void;
|
|
35
|
+
updated(_changed: PropertyValues): void;
|
|
36
|
+
disconnectedCallback(): void;
|
|
37
|
+
}
|
|
38
|
+
declare global {
|
|
39
|
+
interface HTMLElementTagNameMap {
|
|
40
|
+
'react-bridge': ReactBridge;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React ↔ Lit interop bridges for incremental migration.
|
|
3
|
+
*
|
|
4
|
+
* These are temporary utilities — delete once all components are migrated to Lit.
|
|
5
|
+
*/
|
|
6
|
+
export { createLitReactWrapper, LitWrapper } from './LitInReact.js';
|
|
7
|
+
export { ReactBridge } from './ReactInLit.js';
|
|
@@ -36,6 +36,7 @@ export interface SessionMetricTrackerOptions {
|
|
|
36
36
|
*/
|
|
37
37
|
export declare class SessionMetricTracker {
|
|
38
38
|
private metrics;
|
|
39
|
+
private subscribers;
|
|
39
40
|
private experiments?;
|
|
40
41
|
private attributePrefix;
|
|
41
42
|
private onMetricChange?;
|
|
@@ -86,12 +87,15 @@ export declare class SessionMetricTracker {
|
|
|
86
87
|
* Reset all metrics (clear the session).
|
|
87
88
|
*/
|
|
88
89
|
resetAll(): void;
|
|
90
|
+
subscribe(callback: () => void): () => void;
|
|
91
|
+
destroy(): void;
|
|
89
92
|
/**
|
|
90
93
|
* Update the experiment client (useful if experiments client changes).
|
|
91
94
|
*/
|
|
92
95
|
setExperiments(experiments: ExperimentClient): void;
|
|
93
96
|
private updateExperimentAttributes;
|
|
94
97
|
private syncAllToExperiments;
|
|
98
|
+
private notifySubscribers;
|
|
95
99
|
private loadFromStorage;
|
|
96
100
|
private saveToStorage;
|
|
97
101
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SyntroToastStack — Lit web component equivalent of NotificationToastStack.tsx.
|
|
3
|
+
*
|
|
4
|
+
* Renders a fixed-position stack of notification toasts with:
|
|
5
|
+
* - Slide-in entrance animation
|
|
6
|
+
* - Progress bar with hover-pause
|
|
7
|
+
* - Dismiss button (fires `notification-dismiss` event)
|
|
8
|
+
* - Click-to-open (fires `notification-click` event)
|
|
9
|
+
* - CSS variable theming (--sc-notification-*)
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* <syntro-toast-stack
|
|
13
|
+
* .notifications=${activeNotifications}
|
|
14
|
+
* .position=${'right'}
|
|
15
|
+
* ></syntro-toast-stack>
|
|
16
|
+
*
|
|
17
|
+
* element.addEventListener('notification-dismiss', (e) => dismiss(e.detail.id));
|
|
18
|
+
* element.addEventListener('notification-click', (e) => open(e.detail.notification));
|
|
19
|
+
*
|
|
20
|
+
* Decorator-free: uses `static override properties` (tsconfig has no experimentalDecorators).
|
|
21
|
+
*/
|
|
22
|
+
import { LitElement } from 'lit';
|
|
23
|
+
import type { ActiveNotification } from './types.js';
|
|
24
|
+
export declare class SyntroToastStack extends LitElement {
|
|
25
|
+
#private;
|
|
26
|
+
static properties: {
|
|
27
|
+
notifications: {
|
|
28
|
+
attribute: boolean;
|
|
29
|
+
};
|
|
30
|
+
position: {
|
|
31
|
+
type: StringConstructor;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
notifications: ActiveNotification[];
|
|
35
|
+
position: 'left' | 'right';
|
|
36
|
+
static styles: import("lit").CSSResult;
|
|
37
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
38
|
+
}
|
|
39
|
+
declare global {
|
|
40
|
+
interface HTMLElementTagNameMap {
|
|
41
|
+
'syntro-toast-stack': SyntroToastStack;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React compatibility layer for the Syntro SDK.
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper that calls the framework-agnostic Syntro.init() and exposes
|
|
5
|
+
* the result via React context. This file is the React entry point — it does
|
|
6
|
+
* NOT import any React UI components from the SDK (no SmartCanvasApp, no
|
|
7
|
+
* RuntimeProvider). The Lit bundle powers all rendering; this layer only
|
|
8
|
+
* provides React hooks for customers who embed the SDK in a React app.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```tsx
|
|
12
|
+
* import { SyntroProvider, useSyntro } from '@syntrologie/runtime-sdk/react';
|
|
13
|
+
*
|
|
14
|
+
* function App() {
|
|
15
|
+
* return (
|
|
16
|
+
* <SyntroProvider token="syn_xxx">
|
|
17
|
+
* <MyApp />
|
|
18
|
+
* </SyntroProvider>
|
|
19
|
+
* );
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* function MyComponent() {
|
|
23
|
+
* const { canvas, experiments, telemetry, isReady } = useSyntro();
|
|
24
|
+
* // ...
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
import { type ReactNode } from 'react';
|
|
29
|
+
import type { SmartCanvasHandle } from './api';
|
|
30
|
+
import { type SyntroInitOptions, type SyntroInitResult } from './bootstrap';
|
|
31
|
+
import type { ExperimentClient } from './experiments/types';
|
|
32
|
+
import type { TelemetryClient } from './telemetry/types';
|
|
33
|
+
export interface SyntroContextValue {
|
|
34
|
+
/** The SmartCanvas handle */
|
|
35
|
+
canvas: SmartCanvasHandle | null;
|
|
36
|
+
/** The experiment client */
|
|
37
|
+
experiments: ExperimentClient | null;
|
|
38
|
+
/** The telemetry client */
|
|
39
|
+
telemetry: TelemetryClient | null;
|
|
40
|
+
/** Whether the SDK has finished initializing */
|
|
41
|
+
isReady: boolean;
|
|
42
|
+
/** Any error that occurred during initialization */
|
|
43
|
+
error: Error | null;
|
|
44
|
+
}
|
|
45
|
+
export interface SyntroProviderProps {
|
|
46
|
+
/**
|
|
47
|
+
* The Syntro token containing all credentials.
|
|
48
|
+
*/
|
|
49
|
+
token: string;
|
|
50
|
+
/**
|
|
51
|
+
* Optional canvas configuration overrides.
|
|
52
|
+
*/
|
|
53
|
+
canvasOptions?: SyntroInitOptions['canvas'];
|
|
54
|
+
/**
|
|
55
|
+
* Custom config fetcher to override the default experiment-based fetcher.
|
|
56
|
+
* Use this for local development or when bypassing the experiment server.
|
|
57
|
+
*/
|
|
58
|
+
fetcher?: SyntroInitOptions['fetcher'];
|
|
59
|
+
/**
|
|
60
|
+
* Children to render.
|
|
61
|
+
*/
|
|
62
|
+
children: ReactNode;
|
|
63
|
+
/**
|
|
64
|
+
* Called when initialization completes.
|
|
65
|
+
*/
|
|
66
|
+
onReady?: (result: SyntroInitResult) => void;
|
|
67
|
+
/**
|
|
68
|
+
* Called when initialization fails.
|
|
69
|
+
*/
|
|
70
|
+
onError?: (error: Error) => void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Provider component that initializes the Syntro SDK.
|
|
74
|
+
*
|
|
75
|
+
* Calls `Syntro.init()` (framework-agnostic) in a useEffect, stores the
|
|
76
|
+
* result in React state, and provides it via context. Does NOT render any
|
|
77
|
+
* SDK UI — the Lit custom element handles all rendering.
|
|
78
|
+
*
|
|
79
|
+
* Place this at the root of your app or at the top of any subtree
|
|
80
|
+
* that needs access to the SDK.
|
|
81
|
+
*/
|
|
82
|
+
export declare function SyntroProvider({ token, canvasOptions, fetcher, children, onReady, onError, }: SyntroProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
83
|
+
/**
|
|
84
|
+
* Hook to access the Syntro SDK.
|
|
85
|
+
*
|
|
86
|
+
* Must be used within a SyntroProvider.
|
|
87
|
+
*
|
|
88
|
+
* @returns The SDK context containing canvas, experiments, telemetry, and status
|
|
89
|
+
*/
|
|
90
|
+
export declare function useSyntro(): SyntroContextValue;
|
|
91
|
+
/**
|
|
92
|
+
* Hook to check if the SDK is ready.
|
|
93
|
+
*
|
|
94
|
+
* Shorthand for `useSyntro().isReady`.
|
|
95
|
+
*/
|
|
96
|
+
export declare function useSyntroReady(): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Hook to access the experiment client.
|
|
99
|
+
*
|
|
100
|
+
* @returns The experiment client, or null if not configured
|
|
101
|
+
*/
|
|
102
|
+
export declare function useSyntroExperiments(): ExperimentClient | null;
|
|
103
|
+
/**
|
|
104
|
+
* Hook to access the telemetry client.
|
|
105
|
+
*
|
|
106
|
+
* @returns The telemetry client, or null if not configured
|
|
107
|
+
*/
|
|
108
|
+
export declare function useSyntroTelemetry(): TelemetryClient | null;
|
|
109
|
+
/**
|
|
110
|
+
* Hook to access the canvas handle.
|
|
111
|
+
*
|
|
112
|
+
* @returns The canvas handle, or null if not ready
|
|
113
|
+
*/
|
|
114
|
+
export declare function useSyntroCanvas(): SmartCanvasHandle | null;
|
package/dist/react.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Syntro
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-CVMZW3II.js";
|
|
4
|
+
import "./chunk-2IQ2PTLJ.js";
|
|
5
|
+
import "./chunk-XVRDKBYF.js";
|
|
6
|
+
import "./chunk-GX7BBYX6.js";
|
|
7
|
+
import "./chunk-4HXPGXUC.js";
|
|
8
|
+
import "./chunk-JMHRHAEL.js";
|
|
7
9
|
|
|
8
10
|
// src/react.tsx
|
|
9
11
|
import { createContext, useContext, useEffect, useRef, useState } from "react";
|
package/dist/react.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/react.tsx"],
|
|
4
4
|
"sourcesContent": ["/**\n * React bindings for the Syntro SDK.\n *\n * Usage:\n * ```tsx\n * import { SyntroProvider, useSyntro } from '@syntrologie/runtime-sdk/react';\n *\n * function App() {\n * return (\n * <SyntroProvider token=\"syn_xxx\">\n * <MyApp />\n * </SyntroProvider>\n * );\n * }\n *\n * function MyComponent() {\n * const { canvas, experiments, telemetry, isReady } = useSyntro();\n * // ...\n * }\n * ```\n */\nimport { createContext, type ReactNode, useContext, useEffect, useRef, useState } from 'react';\n\nimport type { SmartCanvasHandle } from './api';\nimport { Syntro, type SyntroInitOptions, type SyntroInitResult } from './bootstrap';\nimport type { ExperimentClient } from './experiments/types';\nimport type { TelemetryClient } from './telemetry/types';\n\nexport interface SyntroContextValue {\n /** The SmartCanvas handle */\n canvas: SmartCanvasHandle | null;\n /** The experiment client */\n experiments: ExperimentClient | null;\n /** The telemetry client */\n telemetry: TelemetryClient | null;\n /** Whether the SDK has finished initializing */\n isReady: boolean;\n /** Any error that occurred during initialization */\n error: Error | null;\n}\n\nconst SyntroContext = createContext<SyntroContextValue | null>(null);\n\n// Global tracking to handle React Strict Mode double-mounting\nlet globalInitPromise: Promise<SyntroInitResult | undefined> | null = null;\nlet globalInitToken: string | null = null;\n\nexport interface SyntroProviderProps {\n /**\n * The Syntro token containing all credentials.\n */\n token: string;\n\n /**\n * Optional canvas configuration overrides.\n */\n canvasOptions?: SyntroInitOptions['canvas'];\n\n /**\n * Custom config fetcher to override the default experiment-based fetcher.\n * Use this for local development or when bypassing the experiment server.\n */\n fetcher?: SyntroInitOptions['fetcher'];\n\n /**\n * Children to render.\n */\n children: ReactNode;\n\n /**\n * Called when initialization completes.\n */\n onReady?: (result: SyntroInitResult) => void;\n\n /**\n * Called when initialization fails.\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Provider component that initializes the Syntro SDK.\n *\n * Place this at the root of your app or at the top of any subtree\n * that needs access to the SDK.\n */\nexport function SyntroProvider({\n token,\n canvasOptions,\n fetcher,\n children,\n onReady,\n onError,\n}: SyntroProviderProps) {\n const [state, setState] = useState<SyntroContextValue>({\n canvas: null,\n experiments: null,\n telemetry: null,\n isReady: false,\n error: null,\n });\n\n const initRef = useRef(false);\n const handleRef = useRef<SmartCanvasHandle | null>(null);\n\n useEffect(() => {\n if (!token) return;\n\n // Reuse existing init if same token (handles React Strict Mode remounts)\n if (globalInitPromise && globalInitToken === token) {\n globalInitPromise.then((result) => {\n if (!result) return;\n handleRef.current = result.canvas;\n setState({\n canvas: result.canvas,\n experiments: result.experiments ?? null,\n telemetry: result.telemetry ?? null,\n isReady: true,\n error: null,\n });\n });\n return;\n }\n\n // Prevent double init\n if (initRef.current) return;\n initRef.current = true;\n\n globalInitToken = token;\n globalInitPromise = Syntro.init({ token, canvas: canvasOptions, fetcher });\n\n globalInitPromise\n .then((result) => {\n if (!result) return;\n handleRef.current = result.canvas;\n setState({\n canvas: result.canvas,\n experiments: result.experiments ?? null,\n telemetry: result.telemetry ?? null,\n isReady: true,\n error: null,\n });\n onReady?.(result);\n })\n .catch((err) => {\n const error = err instanceof Error ? err : new Error(String(err));\n setState((prev) => ({ ...prev, error, isReady: true }));\n onError?.(error);\n // Clear global state on error so retry is possible\n globalInitPromise = null;\n globalInitToken = null;\n });\n\n // Don't destroy on unmount in dev mode - React Strict Mode will remount\n // The canvas persists and will be reused on remount\n }, [token, canvasOptions, fetcher, onError, onReady]);\n\n return <SyntroContext.Provider value={state}>{children}</SyntroContext.Provider>;\n}\n\n/**\n * Hook to access the Syntro SDK.\n *\n * Must be used within a SyntroProvider.\n *\n * @returns The SDK context containing canvas, experiments, telemetry, and status\n */\nexport function useSyntro(): SyntroContextValue {\n const context = useContext(SyntroContext);\n if (!context) {\n throw new Error('useSyntro must be used within a SyntroProvider');\n }\n return context;\n}\n\n/**\n * Hook to check if the SDK is ready.\n *\n * Shorthand for `useSyntro().isReady`.\n */\nexport function useSyntroReady(): boolean {\n return useSyntro().isReady;\n}\n\n/**\n * Hook to access the experiment client.\n *\n * @returns The experiment client, or null if not configured\n */\nexport function useSyntroExperiments(): ExperimentClient | null {\n return useSyntro().experiments;\n}\n\n/**\n * Hook to access the telemetry client.\n *\n * @returns The telemetry client, or null if not configured\n */\nexport function useSyntroTelemetry(): TelemetryClient | null {\n return useSyntro().telemetry;\n}\n\n/**\n * Hook to access the canvas handle.\n *\n * @returns The canvas handle, or null if not ready\n */\nexport function useSyntroCanvas(): SmartCanvasHandle | null {\n return useSyntro().canvas;\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;AAqBA,SAAS,eAA+B,YAAY,WAAW,QAAQ,gBAAgB;AAwI9E;AApHT,IAAM,gBAAgB,cAAyC,IAAI;AAGnE,IAAI,oBAAkE;AACtE,IAAI,kBAAiC;AAyC9B,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA6B;AAAA,IACrD,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,WAAW;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACT,CAAC;AAED,QAAM,UAAU,OAAO,KAAK;AAC5B,QAAM,YAAY,OAAiC,IAAI;AAEvD,YAAU,MAAM;AACd,QAAI,CAAC,MAAO;AAGZ,QAAI,qBAAqB,oBAAoB,OAAO;AAClD,wBAAkB,KAAK,CAAC,WAAW;AA9GzC;AA+GQ,YAAI,CAAC,OAAQ;AACb,kBAAU,UAAU,OAAO;AAC3B,iBAAS;AAAA,UACP,QAAQ,OAAO;AAAA,UACf,cAAa,YAAO,gBAAP,YAAsB;AAAA,UACnC,YAAW,YAAO,cAAP,YAAoB;AAAA,UAC/B,SAAS;AAAA,UACT,OAAO;AAAA,QACT,CAAC;AAAA,MACH,CAAC;AACD;AAAA,IACF;AAGA,QAAI,QAAQ,QAAS;AACrB,YAAQ,UAAU;AAElB,sBAAkB;AAClB,wBAAoB,OAAO,KAAK,EAAE,OAAO,QAAQ,eAAe,QAAQ,CAAC;AAEzE,sBACG,KAAK,CAAC,WAAW;AApIxB;AAqIQ,UAAI,CAAC,OAAQ;AACb,gBAAU,UAAU,OAAO;AAC3B,eAAS;AAAA,QACP,QAAQ,OAAO;AAAA,QACf,cAAa,YAAO,gBAAP,YAAsB;AAAA,QACnC,YAAW,YAAO,cAAP,YAAoB;AAAA,QAC/B,SAAS;AAAA,QACT,OAAO;AAAA,MACT,CAAC;AACD,yCAAU;AAAA,IACZ,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,YAAM,QAAQ,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAChE,eAAS,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,SAAS,KAAK,EAAE;AACtD,yCAAU;AAEV,0BAAoB;AACpB,wBAAkB;AAAA,IACpB,CAAC;AAAA,EAIL,GAAG,CAAC,OAAO,eAAe,SAAS,SAAS,OAAO,CAAC;AAEpD,SAAO,oBAAC,cAAc,UAAd,EAAuB,OAAO,OAAQ,UAAS;AACzD;AASO,SAAS,YAAgC;AAC9C,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,SAAO;AACT;AAOO,SAAS,iBAA0B;AACxC,SAAO,UAAU,EAAE;AACrB;AAOO,SAAS,uBAAgD;AAC9D,SAAO,UAAU,EAAE;AACrB;AAOO,SAAS,qBAA6C;AAC3D,SAAO,UAAU,EAAE;AACrB;AAOO,SAAS,kBAA4C;AAC1D,SAAO,UAAU,EAAE;AACrB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|