@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
package/dist/index.d.ts CHANGED
@@ -1,27 +1,34 @@
1
- export * from "./types";
2
- export * from "./telemetry";
3
- export * from "./experiments";
4
- export * from "./hooks/useShadowCanvasConfig";
5
- export * from "./components/TileCard";
6
- export * from "./components/ShadowCanvasOverlay";
7
- export * from "./components/TileWheel";
8
- export * from "./controller";
9
- export * from "./SmartCanvasApp";
10
- export * from "./SmartCanvasElement";
11
- export * from "./SmartCanvasPortal";
12
- export * from "./api";
13
- export * from "./configFetcher";
14
- export * from "./overlays/types";
15
- export * from "./overlays/schema";
16
- export * from "./overlays/fetcher";
17
- export * from "./metrics";
18
- export * from "./context";
19
- export * from "./events";
20
- export * from "./state";
21
- export * from "./decisions";
22
- export { createSmartCanvasRuntime, RUNTIME_VERSION, } from "./runtime";
23
- export type { SmartCanvasRuntime, SmartCanvasRuntimeOptions, RuntimeMode, } from "./runtime";
24
- export { Syntro } from "./bootstrap";
25
- export type { SyntroInitOptions, SyntroInitResult } from "./bootstrap";
26
- export { encodeToken, decodeToken } from "./token";
27
- export type { SyntroTokenPayload } from "./token";
1
+ export * from './version';
2
+ export * from './types';
3
+ export * from './config-validator';
4
+ export * from './telemetry';
5
+ export * from './experiments';
6
+ export * from './hooks/useShadowCanvasConfig';
7
+ export * from './components/TileCard';
8
+ export * from './components/ShadowCanvasOverlay';
9
+ export * from './components/TileWheel';
10
+ export * from './controller';
11
+ export * from './SmartCanvasApp';
12
+ export * from './SmartCanvasElement';
13
+ export * from './SmartCanvasPortal';
14
+ export * from './api';
15
+ export * from './configFetcher';
16
+ export * from './overlays/types';
17
+ export * from './overlays/schema';
18
+ export * from './overlays/fetcher';
19
+ export * from './metrics';
20
+ export * from './context';
21
+ export * from './events';
22
+ export * from './state';
23
+ export * from './decisions';
24
+ export * from './actions';
25
+ export * from './surfaces';
26
+ export * from './widgets';
27
+ export * from './apps';
28
+ export { createSmartCanvasRuntime, RUNTIME_VERSION } from './runtime';
29
+ export type { SmartCanvasRuntime, SmartCanvasRuntimeOptions, RuntimeMode } from './runtime';
30
+ export { RuntimeProvider, useRuntime, useRuntimeContext, usePageContext, useSessionContext, useViewportContext, useRuntimeEvents, useRuntimeState, useDecision, } from './RuntimeProvider';
31
+ export { Syntro } from './bootstrap';
32
+ export type { SyntroInitOptions, SyntroInitResult } from './bootstrap';
33
+ export { encodeToken, decodeToken } from './token';
34
+ export type { SyntroTokenPayload } from './token';
package/dist/index.js CHANGED
@@ -1,37 +1,49 @@
1
- export * from "./types";
2
- export * from "./telemetry";
3
- export * from "./experiments";
4
- export * from "./hooks/useShadowCanvasConfig";
5
- export * from "./components/TileCard";
6
- export * from "./components/ShadowCanvasOverlay";
7
- export * from "./components/TileWheel";
8
- export * from "./controller";
9
- export * from "./SmartCanvasApp";
10
- export * from "./SmartCanvasElement";
11
- export * from "./SmartCanvasPortal";
12
- export * from "./api";
13
- export * from "./configFetcher";
14
- export * from "./overlays/types";
15
- export * from "./overlays/schema";
16
- export * from "./overlays/fetcher";
1
+ export * from './version';
2
+ export * from './types';
3
+ export * from './config-validator';
4
+ export * from './telemetry';
5
+ export * from './experiments';
6
+ export * from './hooks/useShadowCanvasConfig';
7
+ export * from './components/TileCard';
8
+ export * from './components/ShadowCanvasOverlay';
9
+ export * from './components/TileWheel';
10
+ export * from './controller';
11
+ export * from './SmartCanvasApp';
12
+ export * from './SmartCanvasElement';
13
+ export * from './SmartCanvasPortal';
14
+ export * from './api';
15
+ export * from './configFetcher';
16
+ export * from './overlays/types';
17
+ export * from './overlays/schema';
18
+ export * from './overlays/fetcher';
17
19
  // Metrics for session-based targeting
18
- export * from "./metrics";
20
+ export * from './metrics';
19
21
  // ============================================================================
20
22
  // v2 Runtime Modules
21
23
  // ============================================================================
22
24
  // Context - Page/session/viewport state management
23
- export * from "./context";
25
+ export * from './context';
24
26
  // Events - Normalized event stream
25
- export * from "./events";
27
+ export * from './events';
26
28
  // State - Persistent state storage with helpers
27
- export * from "./state";
29
+ export * from './state';
28
30
  // Decisions - Strategy-based conditional rendering
29
- export * from "./decisions";
31
+ export * from './decisions';
32
+ // Actions - Unified execution layer for interventions
33
+ export * from './actions';
34
+ // Surfaces - Managed surface system for rendering UI
35
+ export * from './surfaces';
36
+ // Widgets - Mountable component registry
37
+ export * from './widgets';
38
+ // Apps - SynOS app system
39
+ export * from './apps';
30
40
  // Unified runtime
31
- export { createSmartCanvasRuntime, RUNTIME_VERSION, } from "./runtime";
41
+ export { createSmartCanvasRuntime, RUNTIME_VERSION } from './runtime';
42
+ // React context for runtime access
43
+ export { RuntimeProvider, useRuntime, useRuntimeContext, usePageContext, useSessionContext, useViewportContext, useRuntimeEvents, useRuntimeState, useDecision, } from './RuntimeProvider';
32
44
  // ============================================================================
33
45
  // Single-token initialization
34
46
  // ============================================================================
35
- export { Syntro } from "./bootstrap";
36
- export { encodeToken, decodeToken } from "./token";
47
+ export { Syntro } from './bootstrap';
48
+ export { encodeToken, decodeToken } from './token';
37
49
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,sCAAsC;AACtC,cAAc,WAAW,CAAC;AAE1B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,mDAAmD;AACnD,cAAc,WAAW,CAAC;AAE1B,mCAAmC;AACnC,cAAc,UAAU,CAAC;AAEzB,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,mDAAmD;AACnD,cAAc,aAAa,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EACL,wBAAwB,EACxB,eAAe,GAChB,MAAM,WAAW,CAAC;AAOnB,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,sCAAsC;AACtC,cAAc,WAAW,CAAC;AAE1B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,mDAAmD;AACnD,cAAc,WAAW,CAAC;AAE1B,mCAAmC;AACnC,cAAc,UAAU,CAAC;AAEzB,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,mDAAmD;AACnD,cAAc,aAAa,CAAC;AAE5B,sDAAsD;AACtD,cAAc,WAAW,CAAC;AAE1B,qDAAqD;AACrD,cAAc,YAAY,CAAC;AAE3B,yCAAyC;AACzC,cAAc,WAAW,CAAC;AAE1B,0BAA0B;AAC1B,cAAc,QAAQ,CAAC;AAEvB,kBAAkB;AAClB,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGtE,mCAAmC;AACnC,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Debug logger for Syntro SDK.
3
+ *
4
+ * Debug mode is enabled by:
5
+ * 1. URL param: ?syntro_debug=true (highest priority)
6
+ * 2. Token field: d: true
7
+ * 3. Default: false
8
+ */
9
+ /**
10
+ * Initialize the logger with token debug flag.
11
+ * URL param always overrides token setting.
12
+ */
13
+ export declare function initLogger(tokenDebug?: boolean): void;
14
+ /**
15
+ * Check if debug mode is currently enabled.
16
+ */
17
+ export declare function isDebugEnabled(): boolean;
18
+ /**
19
+ * Log a debug message (only if debug mode enabled).
20
+ */
21
+ export declare function debug(prefix: string, message: string, data?: any): void;
22
+ /**
23
+ * Log a warning (always shown).
24
+ */
25
+ export declare function warn(prefix: string, message: string, data?: any): void;
26
+ /**
27
+ * Log an error (always shown).
28
+ */
29
+ export declare function error(prefix: string, message: string, data?: any): void;
package/dist/logger.js ADDED
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Debug logger for Syntro SDK.
3
+ *
4
+ * Debug mode is enabled by:
5
+ * 1. URL param: ?syntro_debug=true (highest priority)
6
+ * 2. Token field: d: true
7
+ * 3. Default: false
8
+ */
9
+ let debugEnabled = false;
10
+ /**
11
+ * Check if debug mode is enabled via URL param.
12
+ */
13
+ function checkUrlParam() {
14
+ if (typeof window === 'undefined')
15
+ return false;
16
+ try {
17
+ const params = new URLSearchParams(window.location.search);
18
+ return params.get('syntro_debug') === 'true';
19
+ }
20
+ catch {
21
+ return false;
22
+ }
23
+ }
24
+ /**
25
+ * Initialize the logger with token debug flag.
26
+ * URL param always overrides token setting.
27
+ */
28
+ export function initLogger(tokenDebug) {
29
+ // URL param takes priority
30
+ if (checkUrlParam()) {
31
+ debugEnabled = true;
32
+ return;
33
+ }
34
+ // Otherwise use token setting (default false)
35
+ debugEnabled = tokenDebug !== null && tokenDebug !== void 0 ? tokenDebug : false;
36
+ }
37
+ /**
38
+ * Check if debug mode is currently enabled.
39
+ */
40
+ export function isDebugEnabled() {
41
+ // Always check URL param first (allows runtime override)
42
+ if (checkUrlParam())
43
+ return true;
44
+ return debugEnabled;
45
+ }
46
+ /**
47
+ * Log a debug message (only if debug mode enabled).
48
+ */
49
+ export function debug(prefix, message, data) {
50
+ if (!isDebugEnabled())
51
+ return;
52
+ if (data !== undefined) {
53
+ console.log(`[${prefix}]`, message, data);
54
+ }
55
+ else {
56
+ console.log(`[${prefix}]`, message);
57
+ }
58
+ }
59
+ /**
60
+ * Log a warning (always shown).
61
+ */
62
+ export function warn(prefix, message, data) {
63
+ if (data !== undefined) {
64
+ console.warn(`[${prefix}]`, message, data);
65
+ }
66
+ else {
67
+ console.warn(`[${prefix}]`, message);
68
+ }
69
+ }
70
+ /**
71
+ * Log an error (always shown).
72
+ */
73
+ export function error(prefix, message, data) {
74
+ if (data !== undefined) {
75
+ console.error(`[${prefix}]`, message, data);
76
+ }
77
+ else {
78
+ console.error(`[${prefix}]`, message);
79
+ }
80
+ }
81
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB;;GAEG;AACH,SAAS,aAAa;IACpB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,UAAoB;IAC7C,2BAA2B;IAC3B,IAAI,aAAa,EAAE,EAAE,CAAC;QACpB,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO;IACT,CAAC;IACD,8CAA8C;IAC9C,YAAY,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,yDAAyD;IACzD,IAAI,aAAa,EAAE;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,OAAe,EAAE,IAAU;IAC/D,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,MAAc,EAAE,OAAe,EAAE,IAAU;IAC9D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,OAAe,EAAE,IAAU;IAC/D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Metrics module for session-based real-time targeting.
3
3
  */
4
- export { SessionMetricTracker, createSessionMetricTracker, type SessionMetricTrackerOptions, } from "./sessionMetrics";
4
+ export { SessionMetricTracker, createSessionMetricTracker, type SessionMetricTrackerOptions, } from './sessionMetrics';
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Metrics module for session-based real-time targeting.
3
3
  */
4
- export { SessionMetricTracker, createSessionMetricTracker, } from "./sessionMetrics";
4
+ export { SessionMetricTracker, createSessionMetricTracker, } from './sessionMetrics';
5
5
  //# sourceMappingURL=index.js.map
@@ -10,7 +10,7 @@
10
10
  * - "Target users who viewed 5+ products this session"
11
11
  * - "Trigger intervention when user hovers a CTA 2+ times"
12
12
  */
13
- import type { ExperimentClient } from "../experiments/types";
13
+ import type { ExperimentClient } from '../experiments/types';
14
14
  /**
15
15
  * Options for creating a SessionMetricTracker.
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * - "Target users who viewed 5+ products this session"
11
11
  * - "Trigger intervention when user hovers a CTA 2+ times"
12
12
  */
13
- const STORAGE_KEY = "syntro_session_metrics";
13
+ const STORAGE_KEY = 'syntro_session_metrics';
14
14
  /**
15
15
  * Tracks session-based metrics for real-time segment targeting.
16
16
  */
@@ -19,7 +19,7 @@ export class SessionMetricTracker {
19
19
  var _a;
20
20
  this.metrics = new Map();
21
21
  this.experiments = options.experiments;
22
- this.attributePrefix = (_a = options.attributePrefix) !== null && _a !== void 0 ? _a : "session_";
22
+ this.attributePrefix = (_a = options.attributePrefix) !== null && _a !== void 0 ? _a : 'session_';
23
23
  this.onMetricChange = options.onMetricChange;
24
24
  // Restore metrics from sessionStorage
25
25
  this.loadFromStorage();
@@ -139,7 +139,7 @@ export class SessionMetricTracker {
139
139
  this.experiments.setAttributes(attrs);
140
140
  }
141
141
  loadFromStorage() {
142
- if (typeof window === "undefined" || typeof sessionStorage === "undefined")
142
+ if (typeof window === 'undefined' || typeof sessionStorage === 'undefined')
143
143
  return;
144
144
  try {
145
145
  const stored = sessionStorage.getItem(STORAGE_KEY);
@@ -151,11 +151,11 @@ export class SessionMetricTracker {
151
151
  }
152
152
  }
153
153
  catch (err) {
154
- console.warn("[SessionMetricTracker] Failed to load from sessionStorage:", err);
154
+ console.warn('[SessionMetricTracker] Failed to load from sessionStorage:', err);
155
155
  }
156
156
  }
157
157
  saveToStorage() {
158
- if (typeof window === "undefined" || typeof sessionStorage === "undefined")
158
+ if (typeof window === 'undefined' || typeof sessionStorage === 'undefined')
159
159
  return;
160
160
  try {
161
161
  const data = {};
@@ -165,7 +165,7 @@ export class SessionMetricTracker {
165
165
  sessionStorage.setItem(STORAGE_KEY, JSON.stringify(data));
166
166
  }
167
167
  catch (err) {
168
- console.warn("[SessionMetricTracker] Failed to save to sessionStorage:", err);
168
+ console.warn('[SessionMetricTracker] Failed to save to sessionStorage:', err);
169
169
  }
170
170
  }
171
171
  }
@@ -1,4 +1,4 @@
1
- import type { CanvasRecipe } from "./types";
2
- import { type CanvasFetcherOptions } from "../configFetcher";
1
+ import type { CanvasRecipe } from './types';
2
+ import { type CanvasFetcherOptions } from '../configFetcher';
3
3
  export type OverlayRecipeFetcher = () => Promise<CanvasRecipe>;
4
4
  export declare const createOverlayRecipeFetcher: ({ configUri, experiments, featureKey, credentials, }?: CanvasFetcherOptions) => OverlayRecipeFetcher;
@@ -1,10 +1,10 @@
1
- import { CanvasRecipeZ } from "./schema";
2
- import { resolveConfigUri } from "../configFetcher";
3
- export const createOverlayRecipeFetcher = ({ configUri, experiments, featureKey = "smart-canvas-overlay-uri", credentials = "include", } = {}) => {
1
+ import { CanvasRecipeZ } from './schema';
2
+ import { resolveConfigUri } from '../configFetcher';
3
+ export const createOverlayRecipeFetcher = ({ configUri, experiments, featureKey = 'smart-canvas-overlay-uri', credentials = 'include', } = {}) => {
4
4
  return async () => {
5
5
  const uri = resolveConfigUri({ configUri, experiments, featureKey });
6
6
  if (!uri) {
7
- throw new Error("SmartCanvas overlays: recipe URI missing (env + feature unset).");
7
+ throw new Error('SmartCanvas overlays: recipe URI missing (env + feature unset).');
8
8
  }
9
9
  const response = await fetch(uri, { credentials });
10
10
  if (!response.ok) {
@@ -10,7 +10,7 @@ export function registerRecipes(recipes) {
10
10
  }
11
11
  /** Get a recipe by ID */
12
12
  export function getRecipeById(id) {
13
- return registeredRecipes.find(r => r.id === id);
13
+ return registeredRecipes.find((r) => r.id === id);
14
14
  }
15
15
  /** Get the first step's route for a recipe */
16
16
  export function getRecipeStartRoute(recipeId) {
@@ -22,7 +22,7 @@ export function getRecipeStartRoute(recipeId) {
22
22
  const startStepId = recipe.startStep || ((_a = recipe.steps[0]) === null || _a === void 0 ? void 0 : _a.id);
23
23
  if (!startStepId)
24
24
  return undefined;
25
- const startStep = recipe.steps.find(s => s.id === startStepId);
25
+ const startStep = recipe.steps.find((s) => s.id === startStepId);
26
26
  return startStep === null || startStep === void 0 ? void 0 : startStep.route;
27
27
  }
28
28
  /** Clear the registry */
@@ -1 +1 @@
1
- {"version":3,"file":"recipeRegistry.js","sourceRoot":"","sources":["../../src/overlays/recipeRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,IAAI,iBAAiB,GAAmB,EAAE,CAAC;AAE3C,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,iBAAiB,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,mBAAmB,CAAC,QAAgB;;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,sBAAsB;IACtB,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,KAAI,MAAA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAE,EAAE,CAAA,CAAC;IAC5D,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IAC/D,OAAQ,SAAiB,aAAjB,SAAS,uBAAT,SAAS,CAAU,KAAK,CAAC;AACnC,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,YAAY;IAC1B,iBAAiB,GAAG,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"recipeRegistry.js","sourceRoot":"","sources":["../../src/overlays/recipeRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,IAAI,iBAAiB,GAAmB,EAAE,CAAC;AAE3C,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,iBAAiB,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,mBAAmB,CAAC,QAAgB;;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,sBAAsB;IACtB,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,KAAI,MAAA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAE,EAAE,CAAA,CAAC;IAC5D,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IACjE,OAAQ,SAAiB,aAAjB,SAAS,uBAAT,SAAS,CAAU,KAAK,CAAC;AACnC,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,YAAY;IAC1B,iBAAiB,GAAG,EAAE,CAAC;AACzB,CAAC"}
@@ -16,7 +16,7 @@ function validateSelector(selector) {
16
16
  console.warn('[SmartCanvas] Selector too long or empty:', selector === null || selector === void 0 ? void 0 : selector.slice(0, 50));
17
17
  return false;
18
18
  }
19
- if (DANGEROUS_SELECTOR_PATTERNS.some(p => p.test(selector))) {
19
+ if (DANGEROUS_SELECTOR_PATTERNS.some((p) => p.test(selector))) {
20
20
  console.warn('[SmartCanvas] Dangerous selector pattern blocked:', selector);
21
21
  return false;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/overlays/runtime/anchor/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/overlays/runtime/anchor/resolve.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- export { ensureOverlayRoot, injectBaseStyles } from "./overlay/root";
2
- export { showTooltip } from "./overlay/tooltip";
3
- export { showHighlight } from "./overlay/highlight";
4
- export { showModal } from "./overlay/modal";
5
- export { runOverlays } from "./overlay/runner";
6
- export { createAnchorResolver } from "./anchor/resolve";
7
- export { isVisible, scrollIntoViewIfNeeded } from "./utils/dom";
1
+ export { ensureOverlayRoot, injectBaseStyles } from './overlay/root';
2
+ export { showTooltip } from './overlay/tooltip';
3
+ export { showHighlight } from './overlay/highlight';
4
+ export { showModal } from './overlay/modal';
5
+ export { runOverlays } from './overlay/runner';
6
+ export { createAnchorResolver } from './anchor/resolve';
7
+ export { isVisible, scrollIntoViewIfNeeded } from './utils/dom';
@@ -1,8 +1,8 @@
1
- export { ensureOverlayRoot, injectBaseStyles } from "./overlay/root";
2
- export { showTooltip } from "./overlay/tooltip";
3
- export { showHighlight } from "./overlay/highlight";
4
- export { showModal } from "./overlay/modal";
5
- export { runOverlays } from "./overlay/runner";
6
- export { createAnchorResolver } from "./anchor/resolve";
7
- export { isVisible, scrollIntoViewIfNeeded } from "./utils/dom";
1
+ export { ensureOverlayRoot, injectBaseStyles } from './overlay/root';
2
+ export { showTooltip } from './overlay/tooltip';
3
+ export { showHighlight } from './overlay/highlight';
4
+ export { showModal } from './overlay/modal';
5
+ export { runOverlays } from './overlay/runner';
6
+ export { createAnchorResolver } from './anchor/resolve';
7
+ export { isVisible, scrollIntoViewIfNeeded } from './utils/dom';
8
8
  //# sourceMappingURL=index.js.map
@@ -1,50 +1,50 @@
1
1
  var _a;
2
- const supportsPathClip = typeof CSS !== "undefined" && ((_a = CSS.supports) === null || _a === void 0 ? void 0 : _a.call(CSS, "clip-path", "path('M0 0 H1 V1 Z')"));
2
+ const supportsPathClip = typeof CSS !== 'undefined' && ((_a = CSS.supports) === null || _a === void 0 ? void 0 : _a.call(CSS, 'clip-path', "path('M0 0 H1 V1 Z')"));
3
3
  export function showHighlight(anchorEl, overlayRoot, opts) {
4
4
  var _a, _b, _c, _d, _e, _f, _g;
5
5
  const padding = (_a = opts === null || opts === void 0 ? void 0 : opts.paddingPx) !== null && _a !== void 0 ? _a : 12;
6
6
  const radius = (_b = opts === null || opts === void 0 ? void 0 : opts.radiusPx) !== null && _b !== void 0 ? _b : 12;
7
7
  const opacity = Math.min(Math.max((_c = opts === null || opts === void 0 ? void 0 : opts.scrimOpacity) !== null && _c !== void 0 ? _c : 0.55, 0), 1);
8
- const ringColor = (_d = opts === null || opts === void 0 ? void 0 : opts.ringColor) !== null && _d !== void 0 ? _d : "var(--syntro-ring, #5b8cff)";
8
+ const ringColor = (_d = opts === null || opts === void 0 ? void 0 : opts.ringColor) !== null && _d !== void 0 ? _d : 'var(--syntro-ring, #5b8cff)';
9
9
  const blocking = (_e = opts === null || opts === void 0 ? void 0 : opts.blocking) !== null && _e !== void 0 ? _e : false;
10
10
  const onClickOutside = (_f = opts === null || opts === void 0 ? void 0 : opts.onClickOutside) !== null && _f !== void 0 ? _f : true; // Default to true for backwards compat
11
11
  const onEsc = (_g = opts === null || opts === void 0 ? void 0 : opts.onEsc) !== null && _g !== void 0 ? _g : true; // Default to true for backwards compat
12
12
  const rootStyles = getComputedStyle(document.documentElement);
13
- const tokenScrim = rootStyles.getPropertyValue("--syntro-spotlight-backdrop").trim();
14
- const tokenRing = rootStyles.getPropertyValue("--syntro-ring").trim();
15
- const scrim = document.createElement("div");
16
- scrim.className = "syntro-spotlight-scrim";
13
+ const tokenScrim = rootStyles.getPropertyValue('--syntro-spotlight-backdrop').trim();
14
+ const tokenRing = rootStyles.getPropertyValue('--syntro-ring').trim();
15
+ const scrim = document.createElement('div');
16
+ scrim.className = 'syntro-spotlight-scrim';
17
17
  // Enable pointer events if blocking OR if we want to dismiss on click outside
18
18
  const needsPointerEvents = blocking || onClickOutside;
19
19
  Object.assign(scrim.style, {
20
- position: "fixed",
21
- inset: "0",
22
- zIndex: "2147483646",
23
- pointerEvents: needsPointerEvents ? "auto" : "none",
20
+ position: 'fixed',
21
+ inset: '0',
22
+ zIndex: '2147483646',
23
+ pointerEvents: needsPointerEvents ? 'auto' : 'none',
24
24
  background: tokenScrim || `rgba(2, 6, 23, ${opacity})`,
25
- transition: "opacity 220ms ease",
26
- opacity: "0",
25
+ transition: 'opacity 220ms ease',
26
+ opacity: '0',
27
27
  });
28
28
  overlayRoot.appendChild(scrim);
29
- requestAnimationFrame(() => (scrim.style.opacity = "1"));
30
- const ring = document.createElement("div");
31
- ring.className = "syntro-spotlight-ring";
29
+ requestAnimationFrame(() => (scrim.style.opacity = '1'));
30
+ const ring = document.createElement('div');
31
+ ring.className = 'syntro-spotlight-ring';
32
32
  Object.assign(ring.style, {
33
- position: "fixed",
34
- pointerEvents: "none",
33
+ position: 'fixed',
34
+ pointerEvents: 'none',
35
35
  borderRadius: `${radius}px`,
36
- border: `2px solid ${ringColor || tokenRing || "#5b8cff"}`,
36
+ border: `2px solid ${ringColor || tokenRing || '#5b8cff'}`,
37
37
  boxShadow: `0 0 0 4px rgba(255,255,255,0.35)`,
38
- zIndex: "2147483647",
39
- transition: "all 220ms cubic-bezier(0.16,1,0.3,1)",
38
+ zIndex: '2147483647',
39
+ transition: 'all 220ms cubic-bezier(0.16,1,0.3,1)',
40
40
  });
41
41
  overlayRoot.appendChild(ring);
42
42
  const fallbackSlices = [];
43
43
  if (!supportsPathClip) {
44
44
  for (let i = 0; i < 4; i++) {
45
- const slice = document.createElement("div");
46
- slice.style.position = "fixed";
47
- slice.style.background = "inherit";
45
+ const slice = document.createElement('div');
46
+ slice.style.position = 'fixed';
47
+ slice.style.background = 'inherit';
48
48
  fallbackSlices.push(slice);
49
49
  scrim.appendChild(slice);
50
50
  }
@@ -90,19 +90,19 @@ export function showHighlight(anchorEl, overlayRoot, opts) {
90
90
  else {
91
91
  const [top, right, bottom, left] = fallbackSlices;
92
92
  Object.assign(top.style, {
93
- left: "0px",
94
- top: "0px",
95
- width: "100vw",
93
+ left: '0px',
94
+ top: '0px',
95
+ width: '100vw',
96
96
  height: `${y}px`,
97
97
  });
98
98
  Object.assign(bottom.style, {
99
- left: "0px",
99
+ left: '0px',
100
100
  top: `${y + h}px`,
101
- width: "100vw",
101
+ width: '100vw',
102
102
  height: `${Math.max(0, window.innerHeight - (y + h))}px`,
103
103
  });
104
104
  Object.assign(left.style, {
105
- left: "0px",
105
+ left: '0px',
106
106
  top: `${y}px`,
107
107
  width: `${x}px`,
108
108
  height: `${h}px`,
@@ -119,14 +119,14 @@ export function showHighlight(anchorEl, overlayRoot, opts) {
119
119
  ro.observe(anchorEl);
120
120
  const onScroll = () => requestAnimationFrame(update);
121
121
  const onResize = () => requestAnimationFrame(update);
122
- window.addEventListener("scroll", onScroll, true);
123
- window.addEventListener("resize", onResize);
122
+ window.addEventListener('scroll', onScroll, true);
123
+ window.addEventListener('resize', onResize);
124
124
  const onKey = (e) => {
125
- if (e.key === "Escape" && onEsc)
125
+ if (e.key === 'Escape' && onEsc)
126
126
  handle.destroy();
127
127
  };
128
128
  if (onEsc) {
129
- window.addEventListener("keydown", onKey);
129
+ window.addEventListener('keydown', onKey);
130
130
  }
131
131
  const onClick = (event) => {
132
132
  if (blocking) {
@@ -137,17 +137,17 @@ export function showHighlight(anchorEl, overlayRoot, opts) {
137
137
  handle.destroy();
138
138
  }
139
139
  };
140
- scrim.addEventListener("click", onClick);
140
+ scrim.addEventListener('click', onClick);
141
141
  const handle = {
142
142
  destroy() {
143
143
  ro.disconnect();
144
- window.removeEventListener("scroll", onScroll, true);
145
- window.removeEventListener("resize", onResize);
144
+ window.removeEventListener('scroll', onScroll, true);
145
+ window.removeEventListener('resize', onResize);
146
146
  if (onEsc) {
147
- window.removeEventListener("keydown", onKey);
147
+ window.removeEventListener('keydown', onKey);
148
148
  }
149
- scrim.removeEventListener("click", onClick);
150
- scrim.style.opacity = "0";
149
+ scrim.removeEventListener('click', onClick);
150
+ scrim.style.opacity = '0';
151
151
  setTimeout(() => {
152
152
  scrim.remove();
153
153
  ring.remove();