@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.
Files changed (67) hide show
  1. package/README.md +1 -0
  2. package/dist/SmartCanvasElementLit.d.ts +166 -0
  3. package/dist/actions/schema.d.ts +776 -776
  4. package/dist/actions/schema.js +4 -3
  5. package/dist/actions/types.d.ts +8 -2
  6. package/dist/anchor/AnchorResolver.d.ts +1 -0
  7. package/dist/api-lit.d.ts +84 -0
  8. package/dist/apps/builtinRuntimeModules-lit.d.ts +20 -0
  9. package/dist/bootstrap-types.d.ts +10 -0
  10. package/dist/chunk-2IQ2PTLJ.js +871 -0
  11. package/dist/chunk-2IQ2PTLJ.js.map +7 -0
  12. package/dist/chunk-4HXPGXUC.js +226 -0
  13. package/dist/chunk-4HXPGXUC.js.map +7 -0
  14. package/dist/{chunk-GF364MMB.js → chunk-CVMZW3II.js} +1102 -1098
  15. package/dist/chunk-CVMZW3II.js.map +7 -0
  16. package/dist/{chunk-XDYJ64IN.js → chunk-GX7BBYX6.js} +4 -4
  17. package/dist/chunk-GX7BBYX6.js.map +7 -0
  18. package/dist/chunk-JMHRHAEL.js +18 -0
  19. package/dist/chunk-JMHRHAEL.js.map +7 -0
  20. package/dist/{chunk-L6RJMBR2.js → chunk-XVRDKBYF.js} +3 -3
  21. package/dist/components/ShadowCanvasOverlay.d.ts +1 -2
  22. package/dist/components/SyntroCanvasOverlay.d.ts +100 -0
  23. package/dist/components/SyntroDrawer.d.ts +110 -0
  24. package/dist/components/SyntroLauncher.d.ts +105 -0
  25. package/dist/components/SyntroTileCard.d.ts +74 -0
  26. package/dist/components/SyntroTileWheel.d.ts +51 -0
  27. package/dist/config/schema.d.ts +147 -136
  28. package/dist/config/schema.js +3 -2
  29. package/dist/controllers/DecisionController.d.ts +48 -0
  30. package/dist/controllers/NotificationsController.d.ts +59 -0
  31. package/dist/controllers/RuntimeController.d.ts +52 -0
  32. package/dist/controllers/RuntimeEventsController.d.ts +42 -0
  33. package/dist/controllers/ThemeController.d.ts +110 -0
  34. package/dist/controllers/index.d.ts +13 -0
  35. package/dist/decisions/schema.d.ts +47 -47
  36. package/dist/decisions/schema.js +2 -1
  37. package/dist/decisions/types.d.ts +4 -0
  38. package/dist/editorLoader.d.ts +5 -0
  39. package/dist/fetchers/experimentsFetcher.d.ts +3 -3
  40. package/dist/fetchers/mergeConfigs.d.ts +7 -7
  41. package/dist/index-lit.d.ts +40 -0
  42. package/dist/index.js +1264 -19
  43. package/dist/index.js.map +4 -4
  44. package/dist/interop/LitInReact.d.ts +27 -0
  45. package/dist/interop/ReactInLit.d.ts +42 -0
  46. package/dist/interop/index.d.ts +7 -0
  47. package/dist/metrics/sessionMetrics.d.ts +4 -0
  48. package/dist/notifications/SyntroToastStack.d.ts +43 -0
  49. package/dist/react-compat.d.ts +114 -0
  50. package/dist/react.js +6 -4
  51. package/dist/react.js.map +1 -1
  52. package/dist/smart-canvas.esm.js +856 -240
  53. package/dist/smart-canvas.esm.js.map +4 -4
  54. package/dist/smart-canvas.js +31387 -39860
  55. package/dist/smart-canvas.js.map +4 -4
  56. package/dist/smart-canvas.min.js +855 -240
  57. package/dist/smart-canvas.min.js.map +4 -4
  58. package/dist/theme/index.js +30 -0
  59. package/dist/theme/index.js.map +7 -0
  60. package/dist/version.d.ts +1 -1
  61. package/package.json +10 -1
  62. package/schema/canvas-config.schema.json +2347 -11396
  63. package/dist/chunk-BU4Z6PD7.js +0 -218
  64. package/dist/chunk-BU4Z6PD7.js.map +0 -7
  65. package/dist/chunk-GF364MMB.js.map +0 -7
  66. package/dist/chunk-XDYJ64IN.js.map +0 -7
  67. /package/dist/{chunk-L6RJMBR2.js.map → chunk-XVRDKBYF.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ActivationConfigZ,
3
3
  ConditionZ
4
- } from "./chunk-BU4Z6PD7.js";
4
+ } from "./chunk-4HXPGXUC.js";
5
5
 
6
6
  // src/config/schema.ts
7
7
  import { z } from "zod";
@@ -46,7 +46,8 @@ var LauncherElementConfigZ = z.object({
46
46
  color: z.string().optional(),
47
47
  size: z.string().optional(),
48
48
  shadow: z.string().optional(),
49
- borderRadius: z.string().optional()
49
+ borderRadius: z.string().optional(),
50
+ icon: z.string().optional()
50
51
  });
51
52
  var TileElementConfigZ = z.object({
52
53
  background: z.string().optional(),
@@ -126,7 +127,6 @@ var CanvasThemeConfigZ = z.object({
126
127
  var LauncherConfigZ = z.object({
127
128
  enabled: z.boolean().optional(),
128
129
  label: z.string().optional(),
129
- icon: z.string().optional(),
130
130
  position: z.string().optional(),
131
131
  animate: z.boolean().optional(),
132
132
  animationStyle: z.enum(["pulse", "bounce", "glow"]).optional(),
@@ -175,4 +175,4 @@ export {
175
175
  CanvasConfigResponseZ,
176
176
  configSchemas
177
177
  };
178
- //# sourceMappingURL=chunk-XDYJ64IN.js.map
178
+ //# sourceMappingURL=chunk-GX7BBYX6.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/config/schema.ts"],
4
+ "sourcesContent": ["/**\n * Zod schemas for canvas configuration types.\n *\n * Single source of truth for tile, theme, launcher, and top-level\n * CanvasConfigResponse shapes. These schemas are converted to JSON Schema\n * during build and merged into the unified canvas-config.schema.json.\n *\n * Design decisions:\n * - `.strict()` on top-level objects \u2192 `additionalProperties: false` in JSON Schema\n * - Element sub-schemas (canvas, tile, etc.) are NOT strict to allow future expansion\n */\n\nimport { z } from 'zod';\nimport { ActivationConfigZ, ConditionZ } from '../decisions/schema';\n\n// ============================================================================\n// Tile Notification Sub-Types\n// ============================================================================\n\nconst NotificationDeepLinkZ = z\n .object({\n tileId: z.string(),\n itemId: z.string().optional(),\n })\n .strict();\n\nconst TileNotificationRuleZ = z\n .object({\n on: z.string(),\n title: z.string(),\n body: z.string().optional(),\n icon: z.string().optional(),\n ttl: z.number().optional(),\n cooldown: z.number().optional(),\n deepLink: NotificationDeepLinkZ.optional(),\n })\n .strict();\n\n// ============================================================================\n// Tile\n// ============================================================================\n\nexport const TileZ = z\n .object({\n id: z.string(),\n title: z.string().optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n priority: z.number().optional(),\n widget: z.string(),\n props: z.record(z.unknown()).optional(),\n activation: ActivationConfigZ.optional(),\n notifications: z.array(TileNotificationRuleZ).optional(),\n })\n .strict();\n\n// ============================================================================\n// Theme Config \u2014 Element Sub-Schemas\n// ============================================================================\n\nexport const CanvasElementConfigZ = z.object({\n position: z.enum(['left', 'right']).optional(),\n layout: z.enum(['overlay', 'push']).optional(),\n background: z.string().optional(),\n blur: z.string().optional(),\n border: z.string().optional(),\n width: z.string().optional(),\n transitionDuration: z.string().optional(),\n transitionEasing: z.string().optional(),\n transitionFade: z.string().optional(),\n});\n\nexport const LauncherElementConfigZ = z.object({\n background: z.string().optional(),\n backgroundHover: z.string().optional(),\n color: z.string().optional(),\n size: z.string().optional(),\n shadow: z.string().optional(),\n borderRadius: z.string().optional(),\n icon: z.string().optional(),\n});\n\nexport const TileElementConfigZ = z.object({\n background: z.string().optional(),\n backgroundHover: z.string().optional(),\n border: z.string().optional(),\n borderRadius: z.string().optional(),\n shadow: z.string().optional(),\n titleColor: z.string().optional(),\n textColor: z.string().optional(),\n iconBackground: z.string().optional(),\n iconShadow: z.string().optional(),\n headerPadding: z.string().optional(),\n bodyPadding: z.string().optional(),\n gap: z.string().optional(),\n});\n\nexport const OverlayElementConfigZ = z.object({\n background: z.string().optional(),\n textColor: z.string().optional(),\n titleColor: z.string().optional(),\n arrowColor: z.string().optional(),\n arrowSize: z.string().optional(),\n border: z.string().optional(),\n borderRadius: z.string().optional(),\n scrimOpacity: z.string().optional(),\n highlightRing: z.string().optional(),\n});\n\nexport const NotificationElementConfigZ = z.object({\n background: z.string().optional(),\n textColor: z.string().optional(),\n textSecondaryColor: z.string().optional(),\n border: z.string().optional(),\n borderRadius: z.string().optional(),\n successColor: z.string().optional(),\n warningColor: z.string().optional(),\n errorColor: z.string().optional(),\n iconBackground: z.string().optional(),\n progressGradient: z.string().optional(),\n});\n\nexport const ContentElementConfigZ = z.object({\n background: z.string().optional(),\n backgroundHover: z.string().optional(),\n border: z.string().optional(),\n borderRadius: z.string().optional(),\n textColor: z.string().optional(),\n textSecondaryColor: z.string().optional(),\n // Accordion layout\n itemDivider: z.string().optional(),\n itemGap: z.string().optional(),\n itemPadding: z.string().optional(),\n itemFontSize: z.string().optional(),\n // Expanded content\n bodyPadding: z.string().optional(),\n bodyFontSize: z.string().optional(),\n // Category headers\n categoryPadding: z.string().optional(),\n categoryGap: z.string().optional(),\n categoryFontSize: z.string().optional(),\n // Search\n searchBackground: z.string().optional(),\n searchColor: z.string().optional(),\n // Chevron\n chevronColor: z.string().optional(),\n});\n\n// ============================================================================\n// Theme Config \u2014 Top-Level\n// ============================================================================\n\nexport const CanvasThemeConfigZ = z\n .object({\n mode: z.enum(['dark', 'light']).optional(),\n fontFamily: z.string().optional(),\n colorPrimary: z.string().optional(),\n colorPrimaryHover: z.string().optional(),\n borderRadius: z.string().optional(),\n canvas: CanvasElementConfigZ.optional(),\n launcher: LauncherElementConfigZ.optional(),\n tile: TileElementConfigZ.optional(),\n overlay: OverlayElementConfigZ.optional(),\n notification: NotificationElementConfigZ.optional(),\n content: ContentElementConfigZ.optional(),\n })\n .strict();\n\n// ============================================================================\n// Launcher Config\n// ============================================================================\n\nexport const LauncherConfigZ = z\n .object({\n enabled: z.boolean().optional(),\n label: z.string().optional(),\n position: z.string().optional(),\n animate: z.boolean().optional(),\n animationStyle: z.enum(['pulse', 'bounce', 'glow']).optional(),\n notificationCount: z.number().optional(),\n })\n .strict();\n\n// ============================================================================\n// Canvas Config Response (top-level)\n// ============================================================================\n\nexport const CanvasConfigResponseZ = z\n .object({\n schemaVersion: z.string().optional(),\n fetchedAt: z.string().datetime(),\n configVersion: z.string().optional(),\n canvasTitle: z.string().optional(),\n tiles: z.array(TileZ),\n actions: z.array(z.any()),\n theme: CanvasThemeConfigZ.optional(),\n launcher: LauncherConfigZ.optional(),\n meta: z\n .object({\n verificationSteps: z\n .array(\n z.union([\n z.string(),\n z.object({\n text: z.string(),\n check: ConditionZ.optional(),\n }),\n ])\n )\n .optional(),\n })\n .passthrough()\n .optional(),\n })\n .strict();\n\n// ============================================================================\n// Export: Array for unified schema generation\n// ============================================================================\n\n/**\n * Config schemas for unified JSON Schema generation.\n * The generator imports this array and converts each to a JSON Schema $def.\n */\nexport const configSchemas = [\n { defName: 'tile', schema: TileZ },\n { defName: 'themeConfig', schema: CanvasThemeConfigZ },\n { defName: 'launcherConfig', schema: LauncherConfigZ },\n { defName: 'canvasConfigResponse', schema: CanvasConfigResponseZ },\n];\n\n// ============================================================================\n// Named Exports\n// ============================================================================\n\nexport { NotificationDeepLinkZ, TileNotificationRuleZ };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,18 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __typeError = (msg) => {
3
+ throw TypeError(msg);
4
+ };
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
8
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
9
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
11
+
12
+ export {
13
+ __publicField,
14
+ __privateGet,
15
+ __privateAdd,
16
+ __privateSet
17
+ };
18
+ //# sourceMappingURL=chunk-JMHRHAEL.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  NotificationDeepLinkZ
3
- } from "./chunk-XDYJ64IN.js";
3
+ } from "./chunk-GX7BBYX6.js";
4
4
  import {
5
5
  TriggerWhenZ
6
- } from "./chunk-BU4Z6PD7.js";
6
+ } from "./chunk-4HXPGXUC.js";
7
7
 
8
8
  // src/actions/schema.ts
9
9
  import { z } from "zod";
@@ -249,4 +249,4 @@ export {
249
249
  TourZ,
250
250
  coreActionStepSchemas
251
251
  };
252
- //# sourceMappingURL=chunk-L6RJMBR2.js.map
252
+ //# sourceMappingURL=chunk-XVRDKBYF.js.map
@@ -6,7 +6,6 @@ export interface ShadowCanvasOverlayProps {
6
6
  onToggle: () => void;
7
7
  telemetry?: TelemetryClient;
8
8
  launcherLabel?: string;
9
- launcherIcon?: string;
10
9
  launcherAnimate?: boolean;
11
10
  launcherAnimationStyle?: 'pulse' | 'bounce' | 'glow';
12
11
  notificationCount?: number;
@@ -17,4 +16,4 @@ export interface ShadowCanvasOverlayProps {
17
16
  canvasTitle?: string;
18
17
  displayMode?: 'standard' | 'focused';
19
18
  }
20
- export declare function ShadowCanvasOverlay({ isOpen, onToggle, telemetry, launcherLabel: _launcherLabel, launcherIcon, launcherAnimate, launcherAnimationStyle: _launcherAnimationStyle, notificationCount: _notificationCount, footerSlot, tiles, isLoading, error, canvasTitle, displayMode, }: ShadowCanvasOverlayProps): import("react/jsx-runtime").JSX.Element | null;
19
+ export declare function ShadowCanvasOverlay({ isOpen, onToggle, telemetry, launcherLabel: _launcherLabel, launcherAnimate, launcherAnimationStyle: _launcherAnimationStyle, notificationCount: _notificationCount, footerSlot, tiles, isLoading, error, canvasTitle, displayMode, }: ShadowCanvasOverlayProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,100 @@
1
+ /**
2
+ * SyntroCanvasOverlay — Lit web component equivalent of ShadowCanvasOverlay.tsx.
3
+ *
4
+ * Composes three child custom elements:
5
+ * - <syntro-launcher> FAB button
6
+ * - <syntro-drawer> Side panel
7
+ * - <syntro-toast-stack> Notification toasts
8
+ *
9
+ * Wiring responsibilities:
10
+ * - Manages open/closed state via isOpen property
11
+ * - Runs NotifyWatcher loop (equivalent of useNotifyWatcher) to fire
12
+ * notification events even when the drawer is closed
13
+ * - Handles notification clicks: publish telemetry events, open canvas,
14
+ * deep-link, dismiss toast
15
+ * - Tracks tile viewed telemetry when canvas opens
16
+ * - Publishes canvas.opened / canvas.closed on each toggle
17
+ * - Forwards all properties to child elements via Lit bindings
18
+ *
19
+ * Uses light DOM (createRenderRoot returns this) so that host-page CSS
20
+ * variables reach the child elements without piercing shadow boundaries.
21
+ *
22
+ * Decorator-free: uses `static override properties` (tsconfig has no
23
+ * experimentalDecorators).
24
+ */
25
+ import { LitElement } from 'lit';
26
+ import type { SmartCanvasRuntime } from '../runtime.js';
27
+ import type { TelemetryClient } from '../telemetry/types.js';
28
+ import type { TileConfig } from '../types.js';
29
+ export declare class SyntroCanvasOverlay extends LitElement {
30
+ static properties: {
31
+ isOpen: {
32
+ type: BooleanConstructor;
33
+ };
34
+ tiles: {
35
+ attribute: boolean;
36
+ };
37
+ isLoading: {
38
+ type: BooleanConstructor;
39
+ };
40
+ error: {
41
+ type: StringConstructor;
42
+ };
43
+ canvasTitle: {
44
+ type: StringConstructor;
45
+ };
46
+ displayMode: {
47
+ type: StringConstructor;
48
+ };
49
+ runtimeRef: {
50
+ attribute: boolean;
51
+ };
52
+ telemetry: {
53
+ attribute: boolean;
54
+ };
55
+ themeConfig: {
56
+ attribute: boolean;
57
+ };
58
+ launcherAnimate: {
59
+ type: BooleanConstructor;
60
+ };
61
+ };
62
+ isOpen: boolean;
63
+ tiles: TileConfig[];
64
+ isLoading: boolean;
65
+ error: string | undefined;
66
+ canvasTitle: string | undefined;
67
+ displayMode: 'standard' | 'focused';
68
+ runtimeRef: SmartCanvasRuntime | null;
69
+ telemetry: TelemetryClient | null;
70
+ themeConfig: Record<string, any>;
71
+ launcherAnimate: boolean;
72
+ private _notifications;
73
+ /** Prev-state map: entry.id → last evaluated boolean */
74
+ private _notifyPrevState;
75
+ /** Unsubscribe for the EventBus notify-watcher subscription */
76
+ private _notifyUnsub;
77
+ /** Unsubscribe for the sessionMetrics notify-watcher subscription */
78
+ private _notifyUnsubMetrics;
79
+ constructor();
80
+ createRenderRoot(): this;
81
+ connectedCallback(): void;
82
+ disconnectedCallback(): void;
83
+ updated(changed: Map<string, unknown>): void;
84
+ private _syncNotificationsController;
85
+ private _startNotifyWatcher;
86
+ private _stopNotifyWatcher;
87
+ private _restartNotifyWatcher;
88
+ private _trackTilesViewed;
89
+ private _toggle;
90
+ private _handleNotificationClick;
91
+ private _handleNotificationDismiss;
92
+ private _onLauncherToggle;
93
+ private _onDrawerClose;
94
+ render(): import("lit-html").TemplateResult<1>;
95
+ }
96
+ declare global {
97
+ interface HTMLElementTagNameMap {
98
+ 'syntro-canvas-overlay': SyntroCanvasOverlay;
99
+ }
100
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * SyntroDrawer — Lit web component equivalent of the drawer panel from
3
+ * ShadowCanvasOverlay.tsx.
4
+ *
5
+ * Renders the slide-in/out side panel with:
6
+ * - CSS transform (translateX) + opacity transition
7
+ * - Configurable position (left/right), width, blur, border, border-radius
8
+ * - Tile cards (standard: stacked, focused: single full-width)
9
+ * - Loading and error states
10
+ * - Optional canvas title header (focused mode)
11
+ * - Push-mode margin on document.documentElement
12
+ * - ResizeObserver to keep push margin in sync
13
+ * - Outside-click-to-close via document mousedown + composedPath()
14
+ * - Configurable transition duration / easing from theme config
15
+ * - Mask-image fade at leading edge (disabled when border is visible)
16
+ *
17
+ * Decorator-free: uses static `properties` (tsconfig has no experimentalDecorators).
18
+ *
19
+ * Usage:
20
+ * <syntro-drawer
21
+ * .isOpen=${true}
22
+ * .tiles=${tiles}
23
+ * .isLoading=${false}
24
+ * .error=${undefined}
25
+ * .canvasTitle=${'My Canvas'}
26
+ * .displayMode=${'standard'}
27
+ * .runtimeRef=${runtime}
28
+ * .telemetry=${telemetry}
29
+ * .themeConfig=${themeConfig}
30
+ * @drawer-close=${handleClose}
31
+ * ></syntro-drawer>
32
+ */
33
+ import { LitElement } from 'lit';
34
+ import type { SmartCanvasRuntime } from '../runtime.js';
35
+ import type { TelemetryClient } from '../telemetry/types.js';
36
+ import type { TileConfig } from '../types.js';
37
+ export interface DrawerThemeConfig {
38
+ canvas: {
39
+ position?: string;
40
+ width?: string;
41
+ layout?: string;
42
+ blur?: string;
43
+ border?: string;
44
+ transitionDuration?: string;
45
+ transitionEasing?: string;
46
+ transitionFade?: string;
47
+ };
48
+ }
49
+ export declare class SyntroDrawer extends LitElement {
50
+ static properties: {
51
+ isOpen: {
52
+ type: BooleanConstructor;
53
+ };
54
+ tiles: {
55
+ attribute: boolean;
56
+ };
57
+ isLoading: {
58
+ type: BooleanConstructor;
59
+ };
60
+ error: {
61
+ type: StringConstructor;
62
+ };
63
+ canvasTitle: {
64
+ type: StringConstructor;
65
+ };
66
+ displayMode: {
67
+ type: StringConstructor;
68
+ };
69
+ runtimeRef: {
70
+ attribute: boolean;
71
+ };
72
+ telemetry: {
73
+ attribute: boolean;
74
+ };
75
+ themeConfig: {
76
+ attribute: boolean;
77
+ };
78
+ };
79
+ isOpen: boolean;
80
+ tiles: TileConfig[];
81
+ isLoading: boolean;
82
+ error: string | undefined;
83
+ canvasTitle: string | undefined;
84
+ displayMode: 'standard' | 'focused';
85
+ runtimeRef: SmartCanvasRuntime | null;
86
+ telemetry: TelemetryClient | null;
87
+ themeConfig: DrawerThemeConfig;
88
+ private _containerEl;
89
+ private _resizeObserver;
90
+ private _onDocumentMousedown;
91
+ createRenderRoot(): this;
92
+ private get _canvas();
93
+ private get _isRight();
94
+ private get _isPush();
95
+ private get _isFocused();
96
+ private get _canvasBorder();
97
+ private get _duration();
98
+ private get _easing();
99
+ connectedCallback(): void;
100
+ updated(changed: Map<string, unknown>): void;
101
+ disconnectedCallback(): void;
102
+ private _teardownResizeObserver;
103
+ private _cleanupPushMargin;
104
+ render(): import("lit-html").TemplateResult<1>;
105
+ }
106
+ declare global {
107
+ interface HTMLElementTagNameMap {
108
+ 'syntro-drawer': SyntroDrawer;
109
+ }
110
+ }
@@ -0,0 +1,105 @@
1
+ /**
2
+ * SyntroLauncher — Lit web component equivalent of the launcher FAB
3
+ * from ShadowCanvasOverlay.tsx.
4
+ *
5
+ * Renders a floating action button that:
6
+ * - Toggles the canvas open/closed (fires `launcher-toggle`)
7
+ * - Supports drag-to-reposition (pointerdown/move/up with 5px threshold)
8
+ * - Shows different icons: X when open, custom image if configured, sparkles default
9
+ * - Pulse/glow animation when `launcherAnimate` is true and canvas is closed
10
+ * - Notification badge with count, ping ring, glow pulse, and bounce animation
11
+ * - Hover changes background color using theme config values
12
+ * - CSS keyframe animations built dynamically using theme colors
13
+ *
14
+ * Usage:
15
+ * <syntro-launcher
16
+ * .isOpen=${false}
17
+ * .launcherAnimate=${true}
18
+ * .notificationCount=${3}
19
+ * .position=${'right'}
20
+ * .launcherIcon=${null}
21
+ * .colorPrimary=${primaryHex}
22
+ * .colorPrimaryHover=${primaryHoverHex}
23
+ * .launcherConfig=${{ background: bgHex, backgroundHover: hoverHex }}
24
+ * ></syntro-launcher>
25
+ *
26
+ * element.addEventListener('launcher-toggle', () => { ... });
27
+ *
28
+ * Decorator-free: uses `static override properties` (tsconfig has no experimentalDecorators).
29
+ * Light DOM: uses `createRenderRoot() { return this; }` to inherit parent shadow CSS vars.
30
+ */
31
+ import { LitElement } from 'lit';
32
+ import type { LauncherElementConfig } from '../theme/types.js';
33
+ export declare class SyntroLauncher extends LitElement {
34
+ static properties: {
35
+ isOpen: {
36
+ type: BooleanConstructor;
37
+ };
38
+ launcherAnimate: {
39
+ type: BooleanConstructor;
40
+ };
41
+ notificationCount: {
42
+ type: NumberConstructor;
43
+ };
44
+ position: {
45
+ type: StringConstructor;
46
+ };
47
+ launcherIcon: {
48
+ attribute: boolean;
49
+ };
50
+ colorPrimary: {
51
+ type: StringConstructor;
52
+ };
53
+ colorPrimaryHover: {
54
+ type: StringConstructor;
55
+ };
56
+ launcherConfig: {
57
+ attribute: boolean;
58
+ };
59
+ _launcherPos: {
60
+ state: boolean;
61
+ };
62
+ _hovered: {
63
+ state: boolean;
64
+ };
65
+ };
66
+ isOpen: boolean;
67
+ launcherAnimate: boolean;
68
+ notificationCount: number;
69
+ position: 'left' | 'right';
70
+ launcherIcon: string | null;
71
+ colorPrimary: string;
72
+ colorPrimaryHover: string;
73
+ launcherConfig: LauncherElementConfig;
74
+ _launcherPos: {
75
+ x: number;
76
+ y: number;
77
+ } | null;
78
+ _hovered: boolean;
79
+ private _drag;
80
+ private _styleEl;
81
+ createRenderRoot(): this;
82
+ connectedCallback(): void;
83
+ updated(changed: Map<string, unknown>): void;
84
+ disconnectedCallback(): void;
85
+ /**
86
+ * Inject/update a <style> element with dynamic keyframe CSS that uses
87
+ * the current colorPrimary and colorPrimaryHover values.
88
+ * These cannot live in `static styles` because keyframe values
89
+ * need to be literal colors (var() is unreliable in keyframes).
90
+ */
91
+ private _ensureDynamicStyles;
92
+ private _onPointerDown;
93
+ private _onPointerMove;
94
+ private _onPointerUp;
95
+ private _onMouseEnter;
96
+ private _onMouseLeave;
97
+ render(): import("lit-html").TemplateResult<1>;
98
+ private _renderIcon;
99
+ private _renderBadge;
100
+ }
101
+ declare global {
102
+ interface HTMLElementTagNameMap {
103
+ 'syntro-launcher': SyntroLauncher;
104
+ }
105
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * SyntroTileCard — Lit web component equivalent of TileCard.tsx.
3
+ *
4
+ * Renders a tile card with header (icon + title + subtitle) and body
5
+ * (imperatively mounted widget). Preserves:
6
+ * - IntersectionObserver tracking for `syntro_intervention_seen`
7
+ * - EventBus subscription for `syntro_intervention_interacted`
8
+ * - Hover effects (scale + background change)
9
+ * - CSS variable theming (var(--sc-tile-*))
10
+ * - Imperative widget mounting via WidgetRegistry
11
+ * - Late widget registration (subscribes to registry for re-render)
12
+ * - Prop forwarding without remounting
13
+ *
14
+ * Usage:
15
+ * <syntro-tile-card
16
+ * .config=${tileConfig}
17
+ * .surface=${'overlay'}
18
+ * .runtimeRef=${runtime}
19
+ * ></syntro-tile-card>
20
+ *
21
+ * Decorator-free: uses static `properties` (tsconfig has no experimentalDecorators).
22
+ */
23
+ import { LitElement, nothing } from 'lit';
24
+ import type { SmartCanvasRuntime } from '../runtime.js';
25
+ import type { TileConfig } from '../types.js';
26
+ export declare class SyntroTileCard extends LitElement {
27
+ static properties: {
28
+ config: {
29
+ attribute: boolean;
30
+ };
31
+ surface: {
32
+ type: StringConstructor;
33
+ };
34
+ runtimeRef: {
35
+ attribute: boolean;
36
+ };
37
+ _hovered: {
38
+ state: boolean;
39
+ };
40
+ };
41
+ config: TileConfig | null;
42
+ surface: 'overlay' | 'wheel';
43
+ runtimeRef: SmartCanvasRuntime | null;
44
+ _hovered: boolean;
45
+ private _widgetHandle;
46
+ private _widgetContainer;
47
+ private _mountedWidgetId;
48
+ private _registryUnsub;
49
+ private _eventBusUnsub;
50
+ private _intersectionObserver;
51
+ private _prevPropsJson;
52
+ createRenderRoot(): this;
53
+ connectedCallback(): void;
54
+ updated(changed: Map<string, unknown>): void;
55
+ disconnectedCallback(): void;
56
+ private _mountWidgetIfReady;
57
+ private _unmountWidget;
58
+ private _forwardPropUpdates;
59
+ private _setupRegistrySubscription;
60
+ private _setupIntersectionObserver;
61
+ private _setupEventBusSubscription;
62
+ private _teardownSubscriptions;
63
+ private get _registration();
64
+ private get _resolvedIcon();
65
+ private get _resolvedSubtitle();
66
+ render(): import("lit-html").TemplateResult<1> | typeof nothing;
67
+ private _onMouseEnter;
68
+ private _onMouseLeave;
69
+ }
70
+ declare global {
71
+ interface HTMLElementTagNameMap {
72
+ 'syntro-tile-card': SyntroTileCard;
73
+ }
74
+ }
@@ -0,0 +1,51 @@
1
+ import { LitElement, nothing } from 'lit';
2
+ import type { SmartCanvasRuntime } from '../runtime.js';
3
+ import type { TelemetryClient } from '../telemetry/types.js';
4
+ import type { TileConfig } from '../types.js';
5
+ /**
6
+ * <syntro-tile-wheel>
7
+ *
8
+ * Lit port of TileWheel.tsx — a carousel that auto-rotates through a sorted
9
+ * list of tiles, tracks telemetry, and shows clickable dot indicators.
10
+ *
11
+ * Uses static properties (no decorators) — tsconfig has no experimentalDecorators.
12
+ */
13
+ export declare class SyntroTileWheel extends LitElement {
14
+ static styles: import("lit").CSSResult;
15
+ static properties: {
16
+ tiles: {
17
+ type: ArrayConstructor;
18
+ };
19
+ intervalMs: {
20
+ type: NumberConstructor;
21
+ };
22
+ telemetry: {
23
+ type: ObjectConstructor;
24
+ };
25
+ runtimeRef: {
26
+ type: ObjectConstructor;
27
+ };
28
+ _index: {
29
+ type: NumberConstructor;
30
+ state: boolean;
31
+ };
32
+ };
33
+ tiles: TileConfig[];
34
+ intervalMs: number;
35
+ telemetry: TelemetryClient | null;
36
+ runtimeRef: SmartCanvasRuntime | null;
37
+ private _index;
38
+ private _ordered;
39
+ private _intervalId;
40
+ private _canvasOpenedTracked;
41
+ connectedCallback(): void;
42
+ disconnectedCallback(): void;
43
+ updated(changed: Map<string, unknown>): void;
44
+ private _syncOrdered;
45
+ private _trackCanvasOpened;
46
+ private _trackRectangleViewed;
47
+ private _startInterval;
48
+ private _stopInterval;
49
+ private _goTo;
50
+ render(): import("lit-html").TemplateResult<1> | typeof nothing;
51
+ }