@syntrologie/runtime-sdk 0.2.21 → 1.0.0-canary.1

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 (311) hide show
  1. package/CAPABILITIES.md +721 -460
  2. package/README.md +310 -68
  3. package/dist/RuntimeProvider.d.ts +51 -0
  4. package/dist/RuntimeProvider.js +113 -0
  5. package/dist/RuntimeProvider.js.map +1 -0
  6. package/dist/SmartCanvasApp.d.ts +16 -10
  7. package/dist/SmartCanvasApp.js +45 -49
  8. package/dist/SmartCanvasApp.js.map +1 -1
  9. package/dist/SmartCanvasElement.d.ts +5 -5
  10. package/dist/SmartCanvasElement.js +24 -14
  11. package/dist/SmartCanvasElement.js.map +1 -1
  12. package/dist/SmartCanvasPortal.d.ts +2 -2
  13. package/dist/SmartCanvasPortal.js +2 -2
  14. package/dist/actions/ActionEngine.d.ts +11 -0
  15. package/dist/actions/ActionEngine.js +274 -0
  16. package/dist/actions/ActionEngine.js.map +1 -0
  17. package/dist/actions/executors/index.d.ts +117 -0
  18. package/dist/actions/executors/index.js +242 -0
  19. package/dist/actions/executors/index.js.map +1 -0
  20. package/dist/actions/executors/tour.d.ts +18 -0
  21. package/dist/actions/executors/tour.js +332 -0
  22. package/dist/actions/executors/tour.js.map +1 -0
  23. package/dist/actions/index.d.ts +10 -0
  24. package/dist/actions/index.js +12 -0
  25. package/dist/actions/index.js.map +1 -0
  26. package/dist/actions/types.d.ts +399 -0
  27. package/dist/actions/types.js +8 -0
  28. package/dist/actions/types.js.map +1 -0
  29. package/dist/actions/validation.d.ts +14 -0
  30. package/dist/actions/validation.js +602 -0
  31. package/dist/actions/validation.js.map +1 -0
  32. package/dist/antiFlicker.js +1 -1
  33. package/dist/api.d.ts +40 -26
  34. package/dist/api.js +86 -56
  35. package/dist/api.js.map +1 -1
  36. package/dist/apps/AppContext.d.ts +31 -0
  37. package/dist/apps/AppContext.js +93 -0
  38. package/dist/apps/AppContext.js.map +1 -0
  39. package/dist/apps/AppLoader.d.ts +84 -0
  40. package/dist/apps/AppLoader.js +256 -0
  41. package/dist/apps/AppLoader.js.map +1 -0
  42. package/dist/apps/AppRegistry.d.ts +102 -0
  43. package/dist/apps/AppRegistry.js +317 -0
  44. package/dist/apps/AppRegistry.js.map +1 -0
  45. package/dist/apps/adaptive-chatbot/index.js +7 -0
  46. package/dist/apps/adaptive-chatbot/index.js.map +7 -0
  47. package/dist/apps/examples/gamification-app.example.d.ts +305 -0
  48. package/dist/apps/examples/gamification-app.example.js +329 -0
  49. package/dist/apps/examples/gamification-app.example.js.map +1 -0
  50. package/dist/apps/faq/index.js +11 -0
  51. package/dist/apps/faq/index.js.map +7 -0
  52. package/dist/apps/gamification/index.js +2 -0
  53. package/dist/apps/gamification/index.js.map +7 -0
  54. package/dist/apps/index.d.ts +15 -0
  55. package/dist/apps/index.js +17 -0
  56. package/dist/apps/index.js.map +1 -0
  57. package/dist/apps/nav/index.js +11 -0
  58. package/dist/apps/nav/index.js.map +7 -0
  59. package/dist/apps/types.d.ts +231 -0
  60. package/dist/apps/types.js +8 -0
  61. package/dist/apps/types.js.map +1 -0
  62. package/dist/blocks/data/ComparisonBlock.d.ts +1 -1
  63. package/dist/blocks/data/ComparisonBlock.js +40 -40
  64. package/dist/blocks/data/ComparisonBlock.js.map +1 -1
  65. package/dist/blocks/data/StatsBlock.d.ts +1 -1
  66. package/dist/blocks/data/StatsBlock.js +41 -41
  67. package/dist/blocks/data/StatsBlock.js.map +1 -1
  68. package/dist/blocks/data/index.d.ts +2 -2
  69. package/dist/blocks/data/index.js +2 -2
  70. package/dist/blocks/index.d.ts +5 -5
  71. package/dist/blocks/index.js +29 -29
  72. package/dist/blocks/index.js.map +1 -1
  73. package/dist/blocks/interactive/ChecklistBlock.d.ts +1 -1
  74. package/dist/blocks/interactive/ChecklistBlock.js +60 -60
  75. package/dist/blocks/interactive/ChecklistBlock.js.map +1 -1
  76. package/dist/blocks/interactive/RatingBlock.d.ts +1 -1
  77. package/dist/blocks/interactive/RatingBlock.js +75 -65
  78. package/dist/blocks/interactive/RatingBlock.js.map +1 -1
  79. package/dist/blocks/interactive/index.d.ts +2 -2
  80. package/dist/blocks/interactive/index.js +2 -2
  81. package/dist/blocks/notification/NotificationBlock.d.ts +2 -2
  82. package/dist/blocks/notification/NotificationBlock.js +67 -63
  83. package/dist/blocks/notification/NotificationBlock.js.map +1 -1
  84. package/dist/blocks/notification/index.d.ts +1 -1
  85. package/dist/blocks/notification/index.js +1 -1
  86. package/dist/bootstrap.d.ts +32 -8
  87. package/dist/bootstrap.js +204 -85
  88. package/dist/bootstrap.js.map +1 -1
  89. package/dist/components/ShadowCanvasOverlay.d.ts +6 -6
  90. package/dist/components/ShadowCanvasOverlay.js +144 -107
  91. package/dist/components/ShadowCanvasOverlay.js.map +1 -1
  92. package/dist/components/TileCard.d.ts +5 -5
  93. package/dist/components/TileCard.js +204 -154
  94. package/dist/components/TileCard.js.map +1 -1
  95. package/dist/components/TileWheel.d.ts +3 -3
  96. package/dist/components/TileWheel.js +7 -7
  97. package/dist/components/TileWheel.js.map +1 -1
  98. package/dist/config-validator.d.ts +49 -0
  99. package/dist/config-validator.js +173 -0
  100. package/dist/config-validator.js.map +1 -0
  101. package/dist/configFetcher.d.ts +2 -2
  102. package/dist/configFetcher.js +20 -8
  103. package/dist/configFetcher.js.map +1 -1
  104. package/dist/context/ContextManager.d.ts +3 -3
  105. package/dist/context/ContextManager.js +15 -15
  106. package/dist/context/ContextManager.js.map +1 -1
  107. package/dist/context/index.d.ts +4 -4
  108. package/dist/context/index.js +3 -3
  109. package/dist/context/schema.d.ts +17 -17
  110. package/dist/context/schema.js +1 -1
  111. package/dist/decisions/engine.d.ts +5 -5
  112. package/dist/decisions/engine.js +13 -13
  113. package/dist/decisions/index.d.ts +6 -6
  114. package/dist/decisions/index.js +5 -5
  115. package/dist/decisions/schema.d.ts +97 -97
  116. package/dist/decisions/schema.js +20 -20
  117. package/dist/decisions/strategies/rules.d.ts +1 -1
  118. package/dist/decisions/strategies/rules.js +24 -24
  119. package/dist/decisions/strategies/rules.js.map +1 -1
  120. package/dist/decisions/strategies/score.d.ts +1 -1
  121. package/dist/decisions/strategies/score.js +3 -3
  122. package/dist/decisions/types.d.ts +19 -19
  123. package/dist/earlyPatcher.d.ts +8 -20
  124. package/dist/earlyPatcher.js +13 -62
  125. package/dist/earlyPatcher.js.map +1 -1
  126. package/dist/editorLoader.d.ts +2 -0
  127. package/dist/editorLoader.js +104 -58
  128. package/dist/editorLoader.js.map +1 -1
  129. package/dist/events/EventBus.d.ts +3 -3
  130. package/dist/events/EventBus.js +5 -7
  131. package/dist/events/EventBus.js.map +1 -1
  132. package/dist/events/index.d.ts +6 -6
  133. package/dist/events/index.js +5 -5
  134. package/dist/events/normalizers/canvas.d.ts +2 -2
  135. package/dist/events/normalizers/canvas.js +3 -3
  136. package/dist/events/normalizers/canvas.js.map +1 -1
  137. package/dist/events/normalizers/posthog.d.ts +25 -1
  138. package/dist/events/normalizers/posthog.js +35 -27
  139. package/dist/events/normalizers/posthog.js.map +1 -1
  140. package/dist/events/schema.d.ts +13 -13
  141. package/dist/events/schema.js +2 -2
  142. package/dist/events/types.d.ts +7 -1
  143. package/dist/events/types.js +29 -21
  144. package/dist/events/types.js.map +1 -1
  145. package/dist/experiments/adapters/growthbook.d.ts +4 -4
  146. package/dist/experiments/adapters/growthbook.js +5 -5
  147. package/dist/experiments/adapters/growthbook.js.map +1 -1
  148. package/dist/experiments/index.d.ts +3 -3
  149. package/dist/experiments/index.js +1 -1
  150. package/dist/experiments/registry.d.ts +2 -2
  151. package/dist/experiments/registry.js +2 -2
  152. package/dist/experiments/types.d.ts +5 -1
  153. package/dist/fetchers/cdnFetcher.d.ts +1 -1
  154. package/dist/fetchers/cdnFetcher.js +4 -8
  155. package/dist/fetchers/cdnFetcher.js.map +1 -1
  156. package/dist/fetchers/experimentsFetcher.d.ts +2 -2
  157. package/dist/fetchers/experimentsFetcher.js +7 -7
  158. package/dist/fetchers/experimentsFetcher.js.map +1 -1
  159. package/dist/fetchers/index.d.ts +3 -3
  160. package/dist/fetchers/index.js +2 -2
  161. package/dist/fetchers/index.js.map +1 -1
  162. package/dist/fetchers/registry.d.ts +1 -1
  163. package/dist/fetchers/registry.js +4 -4
  164. package/dist/fetchers/types.d.ts +1 -1
  165. package/dist/hooks/useCanvasOverlays.d.ts +8 -5
  166. package/dist/hooks/useCanvasOverlays.js +66 -17
  167. package/dist/hooks/useCanvasOverlays.js.map +1 -1
  168. package/dist/hooks/useHostPatches.d.ts +2 -2
  169. package/dist/hooks/useHostPatches.js +8 -8
  170. package/dist/hooks/useHostPatches.js.map +1 -1
  171. package/dist/hooks/useShadowCanvasConfig.d.ts +5 -9
  172. package/dist/hooks/useShadowCanvasConfig.js +7 -5
  173. package/dist/hooks/useShadowCanvasConfig.js.map +1 -1
  174. package/dist/hostPatcher/core/patcher.d.ts +1 -1
  175. package/dist/hostPatcher/core/patcher.js +18 -9
  176. package/dist/hostPatcher/core/patcher.js.map +1 -1
  177. package/dist/hostPatcher/core/sanitizer.js +24 -3
  178. package/dist/hostPatcher/core/sanitizer.js.map +1 -1
  179. package/dist/hostPatcher/policy/defaultPolicy.js +15 -5
  180. package/dist/hostPatcher/policy/defaultPolicy.js.map +1 -1
  181. package/dist/hostPatcher/utils/anchors.js +4 -6
  182. package/dist/hostPatcher/utils/anchors.js.map +1 -1
  183. package/dist/index.d.ts +34 -27
  184. package/dist/index.js +36 -24
  185. package/dist/index.js.map +1 -1
  186. package/dist/logger.d.ts +29 -0
  187. package/dist/logger.js +81 -0
  188. package/dist/logger.js.map +1 -0
  189. package/dist/metrics/index.d.ts +1 -1
  190. package/dist/metrics/index.js +1 -1
  191. package/dist/metrics/sessionMetrics.d.ts +1 -1
  192. package/dist/metrics/sessionMetrics.js +6 -6
  193. package/dist/overlays/fetcher.d.ts +2 -2
  194. package/dist/overlays/fetcher.js +4 -4
  195. package/dist/overlays/recipeRegistry.js +2 -2
  196. package/dist/overlays/recipeRegistry.js.map +1 -1
  197. package/dist/overlays/runtime/anchor/resolve.js +1 -1
  198. package/dist/overlays/runtime/anchor/resolve.js.map +1 -1
  199. package/dist/overlays/runtime/index.d.ts +7 -7
  200. package/dist/overlays/runtime/index.js +7 -7
  201. package/dist/overlays/runtime/overlay/highlight.js +39 -39
  202. package/dist/overlays/runtime/overlay/highlight.js.map +1 -1
  203. package/dist/overlays/runtime/overlay/modal.js +5 -5
  204. package/dist/overlays/runtime/overlay/modal.js.map +1 -1
  205. package/dist/overlays/runtime/overlay/root.js +1 -1
  206. package/dist/overlays/runtime/overlay/runner.js +70 -23
  207. package/dist/overlays/runtime/overlay/runner.js.map +1 -1
  208. package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
  209. package/dist/overlays/runtime/overlay/tooltip.js +10 -10
  210. package/dist/overlays/runtime/overlay/tooltip.js.map +1 -1
  211. package/dist/overlays/runtime/utils/dom.js +4 -1
  212. package/dist/overlays/runtime/utils/dom.js.map +1 -1
  213. package/dist/overlays/schema.d.ts +146 -146
  214. package/dist/overlays/schema.js +12 -8
  215. package/dist/overlays/schema.js.map +1 -1
  216. package/dist/react.d.ts +7 -7
  217. package/dist/react.js +4 -4
  218. package/dist/react.js.map +1 -1
  219. package/dist/render/RenderContext.d.ts +2 -2
  220. package/dist/render/RenderContext.js +5 -5
  221. package/dist/render/RenderContext.js.map +1 -1
  222. package/dist/render/index.d.ts +3 -3
  223. package/dist/render/index.js +1 -1
  224. package/dist/render/types.d.ts +4 -4
  225. package/dist/runtime.d.ts +32 -8
  226. package/dist/runtime.js +87 -13
  227. package/dist/runtime.js.map +1 -1
  228. package/dist/smart-canvas.esm.js +155 -78
  229. package/dist/smart-canvas.esm.js.map +4 -4
  230. package/dist/smart-canvas.js +38776 -33216
  231. package/dist/smart-canvas.js.map +4 -4
  232. package/dist/smart-canvas.min.js +156 -78
  233. package/dist/smart-canvas.min.js.map +4 -4
  234. package/dist/state/StateStore.d.ts +1 -1
  235. package/dist/state/StateStore.js +9 -9
  236. package/dist/state/StateStore.js.map +1 -1
  237. package/dist/state/helpers/cooldowns.d.ts +1 -1
  238. package/dist/state/helpers/cooldowns.js +1 -1
  239. package/dist/state/helpers/dismissals.d.ts +1 -1
  240. package/dist/state/helpers/dismissals.js +1 -1
  241. package/dist/state/helpers/frequency.d.ts +1 -1
  242. package/dist/state/helpers/frequency.js +1 -1
  243. package/dist/state/index.d.ts +4 -4
  244. package/dist/state/index.js +3 -3
  245. package/dist/state/schema.d.ts +1 -1
  246. package/dist/state/schema.js +1 -1
  247. package/dist/store/example.d.ts +1 -0
  248. package/dist/store/example.js +43 -0
  249. package/dist/store/example.js.map +1 -0
  250. package/dist/store/mini-effector.d.ts +46 -0
  251. package/dist/store/mini-effector.js +88 -0
  252. package/dist/store/mini-effector.js.map +1 -0
  253. package/dist/surfaces/Surfaces.d.ts +11 -0
  254. package/dist/surfaces/Surfaces.js +361 -0
  255. package/dist/surfaces/Surfaces.js.map +1 -0
  256. package/dist/surfaces/index.d.ts +9 -0
  257. package/dist/surfaces/index.js +12 -0
  258. package/dist/surfaces/index.js.map +1 -0
  259. package/dist/surfaces/positioning.d.ts +50 -0
  260. package/dist/surfaces/positioning.js +228 -0
  261. package/dist/surfaces/positioning.js.map +1 -0
  262. package/dist/surfaces/types.d.ts +167 -0
  263. package/dist/surfaces/types.js +23 -0
  264. package/dist/surfaces/types.js.map +1 -0
  265. package/dist/telemetry/adapters/noop.d.ts +12 -0
  266. package/dist/telemetry/adapters/noop.js +42 -0
  267. package/dist/telemetry/adapters/noop.js.map +1 -0
  268. package/dist/telemetry/adapters/posthog.d.ts +8 -2
  269. package/dist/telemetry/adapters/posthog.js +36 -14
  270. package/dist/telemetry/adapters/posthog.js.map +1 -1
  271. package/dist/telemetry/index.d.ts +4 -3
  272. package/dist/telemetry/index.js +3 -2
  273. package/dist/telemetry/index.js.map +1 -1
  274. package/dist/telemetry/registry.d.ts +2 -2
  275. package/dist/telemetry/registry.js +4 -2
  276. package/dist/telemetry/registry.js.map +1 -1
  277. package/dist/telemetry/types.d.ts +1 -1
  278. package/dist/theme/ThemeProvider.d.ts +2 -2
  279. package/dist/theme/ThemeProvider.js +21 -21
  280. package/dist/theme/ThemeProvider.js.map +1 -1
  281. package/dist/theme/defaultTheme.d.ts +2 -2
  282. package/dist/theme/defaultTheme.js +111 -111
  283. package/dist/theme/defaultTheme.js.map +1 -1
  284. package/dist/theme/extractHostTheme.d.ts +1 -1
  285. package/dist/theme/extractHostTheme.js +42 -44
  286. package/dist/theme/extractHostTheme.js.map +1 -1
  287. package/dist/theme/index.d.ts +5 -5
  288. package/dist/theme/index.js +3 -3
  289. package/dist/theme/index.js.map +1 -1
  290. package/dist/theme/types.d.ts +2 -2
  291. package/dist/token.d.ts +2 -0
  292. package/dist/token.js +3 -6
  293. package/dist/token.js.map +1 -1
  294. package/dist/types-only.d.ts +32 -0
  295. package/dist/types-only.js +11 -0
  296. package/dist/types-only.js.map +1 -0
  297. package/dist/types.d.ts +89 -56
  298. package/dist/types.js +15 -2
  299. package/dist/types.js.map +1 -1
  300. package/dist/version.d.ts +13 -0
  301. package/dist/version.js +14 -0
  302. package/dist/version.js.map +1 -0
  303. package/dist/widgets/WidgetRegistry.d.ts +139 -0
  304. package/dist/widgets/WidgetRegistry.js +182 -0
  305. package/dist/widgets/WidgetRegistry.js.map +1 -0
  306. package/dist/widgets/index.d.ts +7 -0
  307. package/dist/widgets/index.js +7 -0
  308. package/dist/widgets/index.js.map +1 -0
  309. package/package.json +26 -10
  310. package/schema/canvas-config.schema.json +488 -254
  311. package/schema/runtime-context.schema.json +1 -5
@@ -4,7 +4,7 @@ export const SelectorZ = z.union([
4
4
  z.object({ type: z.literal('css'), value: z.string() }),
5
5
  z.object({ type: z.literal('aria'), role: z.string().optional(), label: z.string().optional() }),
6
6
  z.object({ type: z.literal('shadow-css'), value: z.string() }),
7
- z.object({ type: z.literal('ref'), el: z.any() }) // runtime-only
7
+ z.object({ type: z.literal('ref'), el: z.any() }), // runtime-only
8
8
  ]);
9
9
  export const TooltipStepZ = z.object({
10
10
  kind: z.literal('tooltip'),
@@ -15,11 +15,13 @@ export const TooltipStepZ = z.object({
15
15
  offsetPx: z.number().optional(),
16
16
  blocking: z.boolean().optional(),
17
17
  trigger: z.enum(['immediate', 'hover', 'click']).optional(),
18
- dismiss: z.object({
18
+ dismiss: z
19
+ .object({
19
20
  onEsc: z.boolean().optional(),
20
21
  closeButton: z.boolean().optional(),
21
- timeoutMs: z.number().optional()
22
- }).optional()
22
+ timeoutMs: z.number().optional(),
23
+ })
24
+ .optional(),
23
25
  });
24
26
  export const HighlightStepZ = z.object({
25
27
  kind: z.literal('highlight'),
@@ -30,17 +32,19 @@ export const HighlightStepZ = z.object({
30
32
  scrim: z.object({ opacity: z.number().optional() }).optional(),
31
33
  ringColor: z.string().optional(),
32
34
  blocking: z.boolean().optional(),
33
- dismiss: z.object({
35
+ dismiss: z
36
+ .object({
34
37
  onClickOutside: z.boolean().optional(),
35
38
  onEsc: z.boolean().optional(),
36
- timeoutMs: z.number().optional()
37
- }).optional()
39
+ timeoutMs: z.number().optional(),
40
+ })
41
+ .optional(),
38
42
  });
39
43
  export const CanvasRecipeZ = z.object({
40
44
  id: z.string(),
41
45
  version: z.number(),
42
46
  routes: z.array(z.string()).optional(),
43
- steps: z.array(z.union([TooltipStepZ, HighlightStepZ]))
47
+ steps: z.array(z.union([TooltipStepZ, HighlightStepZ])),
44
48
  });
45
49
  export function validateRecipe(json) {
46
50
  return CanvasRecipeZ.parse(json);
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/overlays/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/overlays/schema.ts"],"names":[],"mappings":"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"}
package/dist/react.d.ts CHANGED
@@ -19,11 +19,11 @@
19
19
  * }
20
20
  * ```
21
21
  */
22
- import { type ReactNode } from "react";
23
- import { type SyntroInitOptions, type SyntroInitResult } from "./bootstrap";
24
- import type { SmartCanvasHandle } from "./api";
25
- import type { ExperimentClient } from "./experiments/types";
26
- import type { TelemetryClient } from "./telemetry/types";
22
+ import { type ReactNode } from 'react';
23
+ import { type SyntroInitOptions, type SyntroInitResult } from './bootstrap';
24
+ import type { SmartCanvasHandle } from './api';
25
+ import type { ExperimentClient } from './experiments/types';
26
+ import type { TelemetryClient } from './telemetry/types';
27
27
  export interface SyntroContextValue {
28
28
  /** The SmartCanvas handle */
29
29
  canvas: SmartCanvasHandle | null;
@@ -44,12 +44,12 @@ export interface SyntroProviderProps {
44
44
  /**
45
45
  * Optional canvas configuration overrides.
46
46
  */
47
- canvasOptions?: SyntroInitOptions["canvas"];
47
+ canvasOptions?: SyntroInitOptions['canvas'];
48
48
  /**
49
49
  * Custom config fetcher to override the default experiment-based fetcher.
50
50
  * Use this for local development or when bypassing the experiment server.
51
51
  */
52
- fetcher?: SyntroInitOptions["fetcher"];
52
+ fetcher?: SyntroInitOptions['fetcher'];
53
53
  /**
54
54
  * Children to render.
55
55
  */
package/dist/react.js CHANGED
@@ -20,8 +20,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
20
20
  * }
21
21
  * ```
22
22
  */
23
- import { createContext, useContext, useEffect, useState, useRef, } from "react";
24
- import { Syntro } from "./bootstrap";
23
+ import { createContext, useContext, useEffect, useState, useRef, } from 'react';
24
+ import { Syntro } from './bootstrap';
25
25
  const SyntroContext = createContext(null);
26
26
  // Global tracking to handle React Strict Mode double-mounting
27
27
  let globalInitPromise = null;
@@ -90,7 +90,7 @@ export function SyntroProvider({ token, canvasOptions, fetcher, children, onRead
90
90
  // Don't destroy on unmount in dev mode - React Strict Mode will remount
91
91
  // The canvas persists and will be reused on remount
92
92
  }, [token]);
93
- return (_jsx(SyntroContext.Provider, { value: state, children: children }));
93
+ return _jsx(SyntroContext.Provider, { value: state, children: children });
94
94
  }
95
95
  /**
96
96
  * Hook to access the Syntro SDK.
@@ -102,7 +102,7 @@ export function SyntroProvider({ token, canvasOptions, fetcher, children, onRead
102
102
  export function useSyntro() {
103
103
  const context = useContext(SyntroContext);
104
104
  if (!context) {
105
- throw new Error("useSyntro must be used within a SyntroProvider");
105
+ throw new Error('useSyntro must be used within a SyntroProvider');
106
106
  }
107
107
  return context;
108
108
  }
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { ReactNode } from "react";
2
- import type { RenderProps, RenderData, DefaultRenderer, AppearanceConfig, ActionHandler } from "./types";
1
+ import { ReactNode } from 'react';
2
+ import type { RenderProps, RenderData, DefaultRenderer, AppearanceConfig, ActionHandler } from './types';
3
3
  interface RenderContextValue {
4
4
  renderProps: RenderProps;
5
5
  appearance: AppearanceConfig;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useMemo } from "react";
2
+ import { createContext, useContext, useMemo } from 'react';
3
3
  const RenderContext = createContext(null);
4
4
  /**
5
5
  * Provider for render props and appearance configuration
@@ -13,21 +13,21 @@ export function RenderProvider({ children, renderProps = {}, appearance = {}, ac
13
13
  var _a;
14
14
  const renderProp = renderProps[propName];
15
15
  // Check for type-specific override first
16
- if (propName === "renderContent" && renderProps.renderByType) {
16
+ if (propName === 'renderContent' && renderProps.renderByType) {
17
17
  const contentType = (_a = data.content) === null || _a === void 0 ? void 0 : _a.type;
18
18
  if (contentType && renderProps.renderByType[contentType]) {
19
19
  return renderProps.renderByType[contentType](data, defaultRenderer);
20
20
  }
21
21
  }
22
22
  // Use custom render prop if provided
23
- if (typeof renderProp === "function") {
23
+ if (typeof renderProp === 'function') {
24
24
  return renderProp(data, defaultRenderer);
25
25
  }
26
26
  // Fall back to default renderer
27
27
  return defaultRenderer(data);
28
28
  },
29
29
  }), [renderProps, appearance, actionHandlers]);
30
- return (_jsx(RenderContext.Provider, { value: value, children: children }));
30
+ return _jsx(RenderContext.Provider, { value: value, children: children });
31
31
  }
32
32
  /**
33
33
  * Hook to access render context
@@ -35,7 +35,7 @@ export function RenderProvider({ children, renderProps = {}, appearance = {}, ac
35
35
  export function useRenderContext() {
36
36
  const context = useContext(RenderContext);
37
37
  if (!context) {
38
- throw new Error("useRenderContext must be used within a RenderProvider");
38
+ throw new Error('useRenderContext must be used within a RenderProvider');
39
39
  }
40
40
  return context;
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RenderContext.js","sourceRoot":"","sources":["../../src/render/RenderContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAsBtE,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AASrE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAW,GAAG,EAAE,EAChB,UAAU,GAAG,EAAE,EACf,cAAc,GAAG,EAAE,GACC;IACpB,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,WAAW;QACX,UAAU;QACV,cAAc;QACd,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;;YAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEzC,yCAAyC;YACzC,IAAI,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC;gBACvC,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzD,OAAO,WAAW,CAAC,YAAY,CAAC,WAAW,CAAE,CAC3C,IAAI,EACJ,eAAkC,CAC5B,CAAC;gBACX,CAAC;YACH,CAAC;YAED,qCAAqC;YACrC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,OAAO,UAAU,CAAC,IAAI,EAAE,eAAkC,CAAQ,CAAC;YACrE,CAAC;YAED,gCAAgC;YAChC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,EACF,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAC1C,CAAC;IAEF,OAAO,CACL,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA0B,CAC1E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,gBAAgB,EAAE,CAAC,WAAW,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,gBAAgB,EAAE,CAAC,UAAU,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,gBAAgB,EAAE,CAAC,cAAc,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,QAA2B,EAC3B,IAAgB,EAChB,eAAmC;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"RenderContext.js","sourceRoot":"","sources":["../../src/render/RenderContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAsBtE,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AASrE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAW,GAAG,EAAE,EAChB,UAAU,GAAG,EAAE,EACf,cAAc,GAAG,EAAE,GACC;IACpB,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,WAAW;QACX,UAAU;QACV,cAAc;QACd,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;;YAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEzC,yCAAyC;YACzC,IAAI,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC;gBACvC,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzD,OAAO,WAAW,CAAC,YAAY,CAAC,WAAW,CAAE,CAC3C,IAAI,EACJ,eAAkC,CAC5B,CAAC;gBACX,CAAC;YACH,CAAC;YAED,qCAAqC;YACrC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrC,OAAO,UAAU,CAAC,IAAI,EAAE,eAAkC,CAAQ,CAAC;YACrE,CAAC;YAED,gCAAgC;YAChC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,EACF,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAC1C,CAAC;IAEF,OAAO,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA0B,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,gBAAgB,EAAE,CAAC,WAAW,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,gBAAgB,EAAE,CAAC,UAAU,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,gBAAgB,EAAE,CAAC,cAAc,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,QAA2B,EAC3B,IAAgB,EAChB,eAAmC;IAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC"}
@@ -1,3 +1,3 @@
1
- export type { RenderData, DefaultRenderer, RenderProp, RenderProps, StyleOverrides, ClassNameOverrides, AppearanceConfig, ActionHandler, } from "./types";
2
- export { RenderProvider, useRenderContext, useRenderProps, useAppearance, useActionHandlers, useRender, } from "./RenderContext";
3
- export type { RenderProviderProps } from "./RenderContext";
1
+ export type { RenderData, DefaultRenderer, RenderProp, RenderProps, StyleOverrides, ClassNameOverrides, AppearanceConfig, ActionHandler, } from './types';
2
+ export { RenderProvider, useRenderContext, useRenderProps, useAppearance, useActionHandlers, useRender, } from './RenderContext';
3
+ export type { RenderProviderProps } from './RenderContext';
@@ -1,3 +1,3 @@
1
1
  // Context and hooks
2
- export { RenderProvider, useRenderContext, useRenderProps, useAppearance, useActionHandlers, useRender, } from "./RenderContext";
2
+ export { RenderProvider, useRenderContext, useRenderProps, useAppearance, useActionHandlers, useRender, } from './RenderContext';
3
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- import type { ReactNode, CSSProperties } from "react";
2
- import type { TileConfig, TileContent, BlockType, TileAction } from "../types";
1
+ import type { ReactNode, CSSProperties } from 'react';
2
+ import type { TileConfig, TileContent, BlockType, TileAction } from '../types';
3
3
  /**
4
4
  * Data passed to render props
5
5
  */
@@ -7,7 +7,7 @@ export interface RenderData {
7
7
  tile: TileConfig;
8
8
  content: TileContent;
9
9
  isExpanded: boolean;
10
- surface: "overlay" | "wheel";
10
+ surface: 'overlay' | 'wheel';
11
11
  }
12
12
  /**
13
13
  * Default renderer function signature
@@ -66,7 +66,7 @@ export interface AppearanceConfig {
66
66
  variables?: Partial<Record<`--sc-${string}`, string>>;
67
67
  styles?: StyleOverrides;
68
68
  classNames?: ClassNameOverrides;
69
- baseTheme?: "light" | "dark" | "system";
69
+ baseTheme?: 'light' | 'dark' | 'system';
70
70
  }
71
71
  /**
72
72
  * Action handler for interactive elements
package/dist/runtime.d.ts CHANGED
@@ -6,18 +6,24 @@
6
6
  * - context: Page/session/viewport state
7
7
  * - events: Normalized event stream
8
8
  * - state: Persistent state storage
9
+ * - actions: ActionEngine for interventions
10
+ * - surfaces: Surfaces for UI rendering
9
11
  *
10
12
  * Note: ExperimentClient (GrowthBook) is NOT part of the runtime.
11
13
  * GrowthBook's job is done at page load when it selects which config to deliver.
12
14
  * The runtime receives the config and makes decisions using DecisionStrategy.
13
15
  */
14
- import type { TelemetryClient } from "./telemetry/types";
15
- import { ContextManager } from "./context/ContextManager";
16
- import { EventBus } from "./events/EventBus";
17
- import { StateStore } from "./state/StateStore";
18
- import type { DecisionStrategy, DecisionResult } from "./decisions/types";
19
- import type { SessionMetricTracker } from "./metrics/sessionMetrics";
20
- import type { RoutesConfig, TileConfig } from "./types";
16
+ import type { TelemetryClient } from './telemetry/types';
17
+ import { ContextManager } from './context/ContextManager';
18
+ import { EventBus } from './events/EventBus';
19
+ import { StateStore } from './state/StateStore';
20
+ import type { DecisionStrategy, DecisionResult } from './decisions/types';
21
+ import type { SessionMetricTracker } from './metrics/sessionMetrics';
22
+ import type { RoutesConfig, TileConfig } from './types';
23
+ import { type ActionEngine, ExecutorRegistry } from './actions';
24
+ import { type Surfaces } from './surfaces';
25
+ import { WidgetRegistry } from './widgets';
26
+ import { AppRegistry } from './apps';
21
27
  /**
22
28
  * Runtime version.
23
29
  */
@@ -25,7 +31,7 @@ export declare const RUNTIME_VERSION = "2.0.0";
25
31
  /**
26
32
  * Runtime mode.
27
33
  */
28
- export type RuntimeMode = "production" | "development" | "editor" | "audit";
34
+ export type RuntimeMode = 'production' | 'development' | 'editor' | 'audit';
29
35
  /**
30
36
  * SmartCanvasRuntime interface.
31
37
  */
@@ -40,6 +46,16 @@ export interface SmartCanvasRuntime {
40
46
  state: StateStore;
41
47
  /** Session metric tracker (optional) */
42
48
  sessionMetrics?: SessionMetricTracker;
49
+ /** ActionEngine for applying interventions */
50
+ actions: ActionEngine;
51
+ /** Surfaces for rendering UI into named slots */
52
+ surfaces: Surfaces;
53
+ /** Widget registry for mountable components */
54
+ widgets: WidgetRegistry;
55
+ /** Executor registry for action executors */
56
+ executors: ExecutorRegistry;
57
+ /** App registry for SynOS apps */
58
+ apps: AppRegistry;
43
59
  /** Runtime version */
44
60
  version: string;
45
61
  /** Runtime mode */
@@ -79,6 +95,14 @@ export interface SmartCanvasRuntimeOptions {
79
95
  mode?: RuntimeMode;
80
96
  /** State namespace */
81
97
  namespace?: string;
98
+ /** External EventBus (if not provided, one will be created) */
99
+ events?: EventBus;
100
+ /** Custom widget registry (if not provided, default singleton is used) */
101
+ widgets?: WidgetRegistry;
102
+ /** Custom executor registry (if not provided, default singleton is used) */
103
+ executors?: ExecutorRegistry;
104
+ /** Custom app registry (if not provided, default singleton is used) */
105
+ apps?: AppRegistry;
82
106
  }
83
107
  /**
84
108
  * Create a SmartCanvasRuntime instance.
package/dist/runtime.js CHANGED
@@ -1,11 +1,16 @@
1
- import { createContextManager } from "./context/ContextManager";
2
- import { createEventBus } from "./events/EventBus";
3
- import { createStateStore } from "./state/StateStore";
4
- import { createDecisionEngine } from "./decisions/engine";
1
+ import { createContextManager } from './context/ContextManager';
2
+ import { createEventBus } from './events/EventBus';
3
+ import { createStateStore } from './state/StateStore';
4
+ import { createDecisionEngine } from './decisions/engine';
5
+ import { createActionEngine, executorRegistry, } from './actions';
6
+ import { createSurfaces } from './surfaces';
7
+ import { ensureOverlayRoot } from './overlays/runtime/overlay/root';
8
+ import { widgetRegistry as defaultWidgetRegistry } from './widgets';
9
+ import { appRegistry as defaultAppRegistry } from './apps';
5
10
  /**
6
11
  * Runtime version.
7
12
  */
8
- export const RUNTIME_VERSION = "2.0.0";
13
+ export const RUNTIME_VERSION = '2.0.0';
9
14
  /**
10
15
  * Check if a URL matches a route filter.
11
16
  */
@@ -21,7 +26,7 @@ function matchesRouteFilter(url, filter) {
21
26
  pathname = url;
22
27
  }
23
28
  // Normalize pathname
24
- const normalizedPath = pathname.replace(/\/$/, "") || "/";
29
+ const normalizedPath = pathname.replace(/\/$/, '') || '/';
25
30
  // Check exclude patterns first
26
31
  if (filter.exclude) {
27
32
  for (const pattern of filter.exclude) {
@@ -46,30 +51,67 @@ function matchesRouteFilter(url, filter) {
46
51
  * Match a pathname against a route pattern.
47
52
  */
48
53
  function matchRoutePattern(pathname, pattern) {
49
- const normalizedPattern = pattern.replace(/\/$/, "") || "/";
54
+ const normalizedPattern = pattern.replace(/\/$/, '') || '/';
50
55
  // Exact match
51
56
  if (pathname === normalizedPattern)
52
57
  return true;
53
58
  // Convert pattern to regex
54
59
  const regexPattern = normalizedPattern
55
- .replace(/[.+^${}()|[\]\\]/g, "\\$&") // Escape regex chars
56
- .replace(/\*\*/g, ".*") // ** matches anything
57
- .replace(/\*/g, "[^/]*") // * matches within path segment
58
- .replace(/:[^/]+/g, "[^/]+"); // :param matches any segment
60
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex chars
61
+ .replace(/\*\*/g, '.*') // ** matches anything
62
+ .replace(/\*/g, '[^/]*') // * matches within path segment
63
+ .replace(/:[^/]+/g, '[^/]+'); // :param matches any segment
59
64
  const regex = new RegExp(`^${regexPattern}$`);
60
65
  return regex.test(pathname);
61
66
  }
67
+ /**
68
+ * Resolve an anchor ID to an element.
69
+ * Supports CSS selectors, data attributes, and direct IDs.
70
+ */
71
+ function resolveAnchorById(anchorId, ctx) {
72
+ // First check if it's a data attribute selector
73
+ if (anchorId.startsWith('[data-')) {
74
+ return document.querySelector(anchorId);
75
+ }
76
+ // Check anchors tracked in context
77
+ const runtimeContext = ctx.get();
78
+ if (runtimeContext.anchors) {
79
+ const anchorState = runtimeContext.anchors.find((a) => a.anchorId === anchorId);
80
+ if (anchorState === null || anchorState === void 0 ? void 0 : anchorState.present) {
81
+ // Try to find element by data attribute first
82
+ const el = document.querySelector(`[data-syntro-anchor="${anchorId}"]`);
83
+ if (el)
84
+ return el;
85
+ }
86
+ }
87
+ // Try as CSS selector (must start with . or # or [)
88
+ if (anchorId.startsWith('.') || anchorId.startsWith('#') || anchorId.startsWith('[')) {
89
+ return document.querySelector(anchorId);
90
+ }
91
+ // Try as ID
92
+ const byId = document.getElementById(anchorId);
93
+ if (byId)
94
+ return byId;
95
+ // Try as data attribute
96
+ return document.querySelector(`[data-syntro-anchor="${anchorId}"]`);
97
+ }
62
98
  /**
63
99
  * Create a SmartCanvasRuntime instance.
64
100
  */
65
101
  export function createSmartCanvasRuntime(options = {}) {
66
- const { telemetry, sessionMetrics, routes, mode = "production", namespace } = options;
102
+ var _a, _b, _c, _d;
103
+ const { telemetry, sessionMetrics, routes, mode = 'production', namespace } = options;
104
+ // Use provided registries or defaults
105
+ const widgets = (_a = options.widgets) !== null && _a !== void 0 ? _a : defaultWidgetRegistry;
106
+ const executors = (_b = options.executors) !== null && _b !== void 0 ? _b : executorRegistry;
107
+ const apps = (_c = options.apps) !== null && _c !== void 0 ? _c : defaultAppRegistry;
67
108
  // Create core providers
68
109
  const context = createContextManager({
69
110
  telemetry,
70
111
  routes,
71
112
  });
72
- const events = createEventBus();
113
+ // Use external EventBus if provided, otherwise create one
114
+ const events = (_d = options.events) !== null && _d !== void 0 ? _d : createEventBus();
73
115
  const state = createStateStore({
74
116
  namespace,
75
117
  });
@@ -79,12 +121,36 @@ export function createSmartCanvasRuntime(options = {}) {
79
121
  events,
80
122
  sessionMetrics,
81
123
  });
124
+ // Create overlay root for Surfaces and ActionEngine
125
+ const overlayRoot = ensureOverlayRoot();
126
+ // Anchor resolver bound to context
127
+ const anchorResolver = (anchorId) => resolveAnchorById(anchorId, context);
128
+ // Create Surfaces provider with widget registry
129
+ const surfaces = createSurfaces({
130
+ overlayRoot,
131
+ eventBus: events,
132
+ anchorResolver,
133
+ widgetRegistry: widgets,
134
+ });
135
+ // Create ActionEngine provider with executor registry
136
+ const actions = createActionEngine({
137
+ overlayRoot,
138
+ eventBus: events,
139
+ surfaces,
140
+ anchorResolver,
141
+ executorRegistry: executors,
142
+ });
82
143
  const runtime = {
83
144
  telemetry,
84
145
  context,
85
146
  events,
86
147
  state,
87
148
  sessionMetrics,
149
+ actions,
150
+ surfaces,
151
+ widgets,
152
+ executors,
153
+ apps,
88
154
  version: RUNTIME_VERSION,
89
155
  mode,
90
156
  async evaluate(strategy) {
@@ -124,9 +190,17 @@ export function createSmartCanvasRuntime(options = {}) {
124
190
  context.setRoutes(routes);
125
191
  },
126
192
  destroy() {
193
+ // Unbind and clean up apps registry
194
+ apps.unbind().catch((err) => {
195
+ console.error('[Runtime] Error unbinding apps registry:', err);
196
+ });
127
197
  context.destroy();
198
+ actions.destroy();
199
+ surfaces.destroy();
128
200
  },
129
201
  };
202
+ // Bind apps registry to runtime
203
+ apps.bind(runtime);
130
204
  return runtime;
131
205
  }
132
206
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAcA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAc,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAK1D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AA8EvC;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAAW,EAAE,MAAoB;IAC3D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,mBAAmB;IACnB,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,qBAAqB;IACrB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAE1D,+BAA+B;IAC/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC,CAAC,sBAAsB;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,CAAC,uBAAuB;YACtC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,mCAAmC;IACnD,CAAC;IAED,uCAAuC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB,EAAE,OAAe;IAC1D,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IAE5D,cAAc;IACd,IAAI,QAAQ,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAEhD,2BAA2B;IAC3B,MAAM,YAAY,GAAG,iBAAiB;SACnC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,qBAAqB;SAC1D,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,sBAAsB;SAC7C,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,gCAAgC;SACxD,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,6BAA6B;IAE7D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAqC,EAAE;IAEvC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,GAAG,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEtF,wBAAwB;IACxB,MAAM,OAAO,GAAG,oBAAoB,CAAC;QACnC,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAG,gBAAgB,CAAC;QAC7B,SAAS;KACV,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,cAAc,GAAG,oBAAoB,CAAC;QAC1C,KAAK;QACL,MAAM;QACN,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,OAAO,GAAuB;QAClC,SAAS;QACT,OAAO;QACP,MAAM;QACN,KAAK;QACL,cAAc;QACd,OAAO,EAAE,eAAe;QACxB,IAAI;QAEJ,KAAK,CAAC,QAAQ,CAAI,QAA6B;YAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,YAAY,CAAI,QAA6B;YAC3C,OAAO,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,KAAmB;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1C,MAAM,OAAO,GAAiB,EAAE,CAAC;YAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAI,IAAY,CAAC,UAA0C,CAAC;gBAE5E,+CAA+C;gBAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvD,SAAS,CAAC,6BAA6B;gBACzC,CAAC;gBAED,qDAAqD;gBACrD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;gBAED,oBAAoB;gBACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAU,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACjE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,SAAS,CAAC,MAAoB;YAC5B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO;YACL,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}