@syntrologie/runtime-sdk 2.1.0 → 2.2.0-canary.2

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 (356) hide show
  1. package/CAPABILITIES.md +50 -43
  2. package/README.md +7 -7
  3. package/dist/RuntimeProvider.d.ts +1 -1
  4. package/dist/ShadowRootContext.d.ts +19 -0
  5. package/dist/SmartCanvasApp.d.ts +3 -3
  6. package/dist/SmartCanvasElement.d.ts +7 -2
  7. package/dist/SmartCanvasPortal.d.ts +1 -1
  8. package/dist/actions/executors/index.d.ts +3 -3
  9. package/dist/actions/executors/tour.d.ts +1 -1
  10. package/dist/actions/index.d.ts +4 -3
  11. package/dist/actions/schema.d.ts +1229 -0
  12. package/dist/actions/schema.js +67 -0
  13. package/dist/actions/schema.js.map +7 -0
  14. package/dist/adaptives/adaptive-chatbot/index.js +4 -4
  15. package/dist/adaptives/adaptive-chatbot/index.js.map +4 -4
  16. package/dist/adaptives/adaptive-content/index.js +2 -2
  17. package/dist/adaptives/adaptive-content/index.js.map +4 -4
  18. package/dist/adaptives/adaptive-faq/index.js +23 -6
  19. package/dist/adaptives/adaptive-faq/index.js.map +4 -4
  20. package/dist/adaptives/adaptive-gamification/index.js.map +1 -1
  21. package/dist/adaptives/adaptive-nav/index.js +22 -7
  22. package/dist/adaptives/adaptive-nav/index.js.map +4 -4
  23. package/dist/adaptives/adaptive-overlays/index.js +13 -13
  24. package/dist/adaptives/adaptive-overlays/index.js.map +4 -4
  25. package/dist/api.d.ts +2 -2
  26. package/dist/apps/examples/gamification-app.example.d.ts +4 -4
  27. package/dist/apps/index.d.ts +7 -7
  28. package/dist/blocks/data/index.d.ts +1 -1
  29. package/dist/blocks/index.d.ts +2 -2
  30. package/dist/blocks/interactive/index.d.ts +1 -1
  31. package/dist/blocks/notification/NotificationBlock.d.ts +1 -1
  32. package/dist/blocks/notification/index.d.ts +1 -1
  33. package/dist/bootstrap.d.ts +4 -4
  34. package/dist/chunk-AYTRRBR5.js +251 -0
  35. package/dist/chunk-AYTRRBR5.js.map +7 -0
  36. package/dist/chunk-CU354JTM.js +7921 -0
  37. package/dist/chunk-CU354JTM.js.map +7 -0
  38. package/dist/components/ShadowCanvasOverlay.d.ts +2 -2
  39. package/dist/components/TileCard.d.ts +1 -1
  40. package/dist/context/ContextManager.d.ts +1 -1
  41. package/dist/context/index.d.ts +3 -3
  42. package/dist/decisions/engine.d.ts +1 -1
  43. package/dist/decisions/index.d.ts +3 -3
  44. package/dist/decisions/schema.d.ts +24 -24
  45. package/dist/decisions/strategies/rules.d.ts +1 -1
  46. package/dist/decisions/strategies/score.d.ts +1 -1
  47. package/dist/editorLoader.d.ts +4 -4
  48. package/dist/events/EventAccumulator.d.ts +1 -1
  49. package/dist/events/EventBus.d.ts +1 -1
  50. package/dist/events/index.d.ts +7 -6
  51. package/dist/events/registerConfigPredicates.d.ts +19 -0
  52. package/dist/experiments/adapters/growthbook.d.ts +1 -1
  53. package/dist/experiments/index.d.ts +2 -2
  54. package/dist/experiments/registry.d.ts +1 -1
  55. package/dist/fetchers/index.d.ts +2 -2
  56. package/dist/hooks/useShadowCanvasConfig.d.ts +1 -1
  57. package/dist/hostPatcher/index.d.ts +2 -2
  58. package/dist/index.d.ts +24 -21
  59. package/dist/index.js +816 -75
  60. package/dist/index.js.map +7 -1
  61. package/dist/metrics/index.d.ts +1 -1
  62. package/dist/notifications/index.d.ts +6 -6
  63. package/dist/overlays/runtime/index.d.ts +3 -3
  64. package/dist/overlays/runtime/overlay/root.d.ts +17 -1
  65. package/dist/overlays/runtime/overlay/tooltip.d.ts +1 -1
  66. package/dist/react.js +90 -134
  67. package/dist/react.js.map +7 -1
  68. package/dist/render/RenderContext.d.ts +2 -2
  69. package/dist/render/index.d.ts +2 -2
  70. package/dist/render/types.d.ts +2 -2
  71. package/dist/runtime.d.ts +8 -8
  72. package/dist/smart-canvas.esm.js +127 -124
  73. package/dist/smart-canvas.esm.js.map +4 -4
  74. package/dist/smart-canvas.js +17160 -16782
  75. package/dist/smart-canvas.js.map +4 -4
  76. package/dist/smart-canvas.min.js +127 -124
  77. package/dist/smart-canvas.min.js.map +4 -4
  78. package/dist/state/StateStore.d.ts +1 -1
  79. package/dist/state/helpers/cooldowns.d.ts +1 -1
  80. package/dist/state/helpers/dismissals.d.ts +1 -1
  81. package/dist/state/helpers/frequency.d.ts +1 -1
  82. package/dist/state/index.d.ts +3 -3
  83. package/dist/surfaces/index.d.ts +3 -3
  84. package/dist/surfaces/positioning.d.ts +1 -1
  85. package/dist/telemetry/adapters/posthog.d.ts +2 -2
  86. package/dist/telemetry/index.d.ts +3 -3
  87. package/dist/telemetry/registry.d.ts +1 -1
  88. package/dist/theme/ThemeProvider.d.ts +1 -1
  89. package/dist/theme/extractHostTheme.d.ts +1 -1
  90. package/dist/theme/index.d.ts +4 -4
  91. package/dist/types-only.d.ts +1 -1
  92. package/dist/types-only.js +1 -11
  93. package/dist/types-only.js.map +7 -1
  94. package/dist/types.d.ts +1 -1
  95. package/dist/version.d.ts +1 -1
  96. package/dist/widgets/index.d.ts +1 -1
  97. package/package.json +24 -17
  98. package/schema/canvas-config.base.schema.json +351 -0
  99. package/schema/canvas-config.schema.json +3202 -440
  100. package/scripts/validate-config.mjs +54 -58
  101. package/dist/RuntimeProvider.js +0 -113
  102. package/dist/RuntimeProvider.js.map +0 -1
  103. package/dist/SmartCanvasApp.js +0 -143
  104. package/dist/SmartCanvasApp.js.map +0 -1
  105. package/dist/SmartCanvasElement.js +0 -138
  106. package/dist/SmartCanvasElement.js.map +0 -1
  107. package/dist/SmartCanvasPortal.js +0 -17
  108. package/dist/SmartCanvasPortal.js.map +0 -1
  109. package/dist/actions/ActionEngine.js +0 -272
  110. package/dist/actions/ActionEngine.js.map +0 -1
  111. package/dist/actions/executors/index.js +0 -240
  112. package/dist/actions/executors/index.js.map +0 -1
  113. package/dist/actions/executors/tour.js +0 -332
  114. package/dist/actions/executors/tour.js.map +0 -1
  115. package/dist/actions/index.js +0 -12
  116. package/dist/actions/index.js.map +0 -1
  117. package/dist/actions/types.js +0 -8
  118. package/dist/actions/types.js.map +0 -1
  119. package/dist/actions/validation.js +0 -577
  120. package/dist/actions/validation.js.map +0 -1
  121. package/dist/antiFlicker.js +0 -39
  122. package/dist/antiFlicker.js.map +0 -1
  123. package/dist/api.js +0 -205
  124. package/dist/api.js.map +0 -1
  125. package/dist/apps/AppContext.js +0 -91
  126. package/dist/apps/AppContext.js.map +0 -1
  127. package/dist/apps/AppLoader.js +0 -293
  128. package/dist/apps/AppLoader.js.map +0 -1
  129. package/dist/apps/AppRegistry.js +0 -317
  130. package/dist/apps/AppRegistry.js.map +0 -1
  131. package/dist/apps/examples/gamification-app.example.js +0 -329
  132. package/dist/apps/examples/gamification-app.example.js.map +0 -1
  133. package/dist/apps/index.js +0 -16
  134. package/dist/apps/index.js.map +0 -1
  135. package/dist/apps/types.js +0 -8
  136. package/dist/apps/types.js.map +0 -1
  137. package/dist/blocks/data/ComparisonBlock.js +0 -95
  138. package/dist/blocks/data/ComparisonBlock.js.map +0 -1
  139. package/dist/blocks/data/StatsBlock.js +0 -102
  140. package/dist/blocks/data/StatsBlock.js.map +0 -1
  141. package/dist/blocks/data/index.js +0 -3
  142. package/dist/blocks/data/index.js.map +0 -1
  143. package/dist/blocks/index.js +0 -93
  144. package/dist/blocks/index.js.map +0 -1
  145. package/dist/blocks/interactive/ChecklistBlock.js +0 -111
  146. package/dist/blocks/interactive/ChecklistBlock.js.map +0 -1
  147. package/dist/blocks/interactive/RatingBlock.js +0 -147
  148. package/dist/blocks/interactive/RatingBlock.js.map +0 -1
  149. package/dist/blocks/interactive/index.js +0 -3
  150. package/dist/blocks/interactive/index.js.map +0 -1
  151. package/dist/blocks/notification/NotificationBlock.js +0 -171
  152. package/dist/blocks/notification/NotificationBlock.js.map +0 -1
  153. package/dist/blocks/notification/index.js +0 -2
  154. package/dist/blocks/notification/index.js.map +0 -1
  155. package/dist/blocks/theme-tokens.js +0 -25
  156. package/dist/blocks/theme-tokens.js.map +0 -1
  157. package/dist/bootstrap.js +0 -448
  158. package/dist/bootstrap.js.map +0 -1
  159. package/dist/bundle-entry.js +0 -9
  160. package/dist/bundle-entry.js.map +0 -1
  161. package/dist/components/ShadowCanvasOverlay.js +0 -327
  162. package/dist/components/ShadowCanvasOverlay.js.map +0 -1
  163. package/dist/components/TileCard.js +0 -103
  164. package/dist/components/TileCard.js.map +0 -1
  165. package/dist/components/TileWheel.js +0 -50
  166. package/dist/components/TileWheel.js.map +0 -1
  167. package/dist/config-validator.js +0 -173
  168. package/dist/config-validator.js.map +0 -1
  169. package/dist/configFetcher.js +0 -131
  170. package/dist/configFetcher.js.map +0 -1
  171. package/dist/context/ContextManager.js +0 -269
  172. package/dist/context/ContextManager.js.map +0 -1
  173. package/dist/context/index.js +0 -7
  174. package/dist/context/index.js.map +0 -1
  175. package/dist/context/schema.js +0 -50
  176. package/dist/context/schema.js.map +0 -1
  177. package/dist/context/types.js +0 -8
  178. package/dist/context/types.js.map +0 -1
  179. package/dist/controller.js +0 -34
  180. package/dist/controller.js.map +0 -1
  181. package/dist/decisions/engine.js +0 -117
  182. package/dist/decisions/engine.js.map +0 -1
  183. package/dist/decisions/index.js +0 -10
  184. package/dist/decisions/index.js.map +0 -1
  185. package/dist/decisions/schema.js +0 -151
  186. package/dist/decisions/schema.js.map +0 -1
  187. package/dist/decisions/strategies/rules.js +0 -166
  188. package/dist/decisions/strategies/rules.js.map +0 -1
  189. package/dist/decisions/strategies/score.js +0 -29
  190. package/dist/decisions/strategies/score.js.map +0 -1
  191. package/dist/decisions/types.js +0 -2
  192. package/dist/decisions/types.js.map +0 -1
  193. package/dist/earlyPatcher.js +0 -20
  194. package/dist/earlyPatcher.js.map +0 -1
  195. package/dist/editorLoader.js +0 -254
  196. package/dist/editorLoader.js.map +0 -1
  197. package/dist/events/EventAccumulator.js +0 -101
  198. package/dist/events/EventAccumulator.js.map +0 -1
  199. package/dist/events/EventBus.js +0 -152
  200. package/dist/events/EventBus.js.map +0 -1
  201. package/dist/events/index.js +0 -11
  202. package/dist/events/index.js.map +0 -1
  203. package/dist/events/normalizers/canvas.js +0 -116
  204. package/dist/events/normalizers/canvas.js.map +0 -1
  205. package/dist/events/normalizers/posthog.js +0 -171
  206. package/dist/events/normalizers/posthog.js.map +0 -1
  207. package/dist/events/schema.js +0 -30
  208. package/dist/events/schema.js.map +0 -1
  209. package/dist/events/types.js +0 -54
  210. package/dist/events/types.js.map +0 -1
  211. package/dist/experiments/adapters/growthbook.js +0 -81
  212. package/dist/experiments/adapters/growthbook.js.map +0 -1
  213. package/dist/experiments/index.js +0 -4
  214. package/dist/experiments/index.js.map +0 -1
  215. package/dist/experiments/registry.js +0 -30
  216. package/dist/experiments/registry.js.map +0 -1
  217. package/dist/experiments/types.js +0 -2
  218. package/dist/experiments/types.js.map +0 -1
  219. package/dist/fetchers/cdnFetcher.js +0 -96
  220. package/dist/fetchers/cdnFetcher.js.map +0 -1
  221. package/dist/fetchers/experimentsFetcher.js +0 -109
  222. package/dist/fetchers/experimentsFetcher.js.map +0 -1
  223. package/dist/fetchers/index.js +0 -5
  224. package/dist/fetchers/index.js.map +0 -1
  225. package/dist/fetchers/mergeConfigs.js +0 -38
  226. package/dist/fetchers/mergeConfigs.js.map +0 -1
  227. package/dist/fetchers/registry.js +0 -58
  228. package/dist/fetchers/registry.js.map +0 -1
  229. package/dist/fetchers/types.js +0 -2
  230. package/dist/fetchers/types.js.map +0 -1
  231. package/dist/hooks/useCanvasOverlays.js +0 -128
  232. package/dist/hooks/useCanvasOverlays.js.map +0 -1
  233. package/dist/hooks/useHostPatches.js +0 -40
  234. package/dist/hooks/useHostPatches.js.map +0 -1
  235. package/dist/hooks/useShadowCanvasConfig.js +0 -63
  236. package/dist/hooks/useShadowCanvasConfig.js.map +0 -1
  237. package/dist/hostPatcher/core/patcher.js +0 -181
  238. package/dist/hostPatcher/core/patcher.js.map +0 -1
  239. package/dist/hostPatcher/core/sanitizer.js +0 -66
  240. package/dist/hostPatcher/core/sanitizer.js.map +0 -1
  241. package/dist/hostPatcher/core/types.js +0 -2
  242. package/dist/hostPatcher/core/types.js.map +0 -1
  243. package/dist/hostPatcher/index.js +0 -7
  244. package/dist/hostPatcher/index.js.map +0 -1
  245. package/dist/hostPatcher/policy/defaultPolicy.js +0 -23
  246. package/dist/hostPatcher/policy/defaultPolicy.js.map +0 -1
  247. package/dist/hostPatcher/utils/anchors.js +0 -105
  248. package/dist/hostPatcher/utils/anchors.js.map +0 -1
  249. package/dist/hostPatcher/utils/observer.js +0 -11
  250. package/dist/hostPatcher/utils/observer.js.map +0 -1
  251. package/dist/logger.js +0 -81
  252. package/dist/logger.js.map +0 -1
  253. package/dist/metrics/index.js +0 -5
  254. package/dist/metrics/index.js.map +0 -1
  255. package/dist/metrics/sessionMetrics.js +0 -178
  256. package/dist/metrics/sessionMetrics.js.map +0 -1
  257. package/dist/notifications/NotificationToastStack.js +0 -118
  258. package/dist/notifications/NotificationToastStack.js.map +0 -1
  259. package/dist/notifications/index.js +0 -6
  260. package/dist/notifications/index.js.map +0 -1
  261. package/dist/notifications/matcher.js +0 -66
  262. package/dist/notifications/matcher.js.map +0 -1
  263. package/dist/notifications/types.js +0 -13
  264. package/dist/notifications/types.js.map +0 -1
  265. package/dist/notifications/useNotifications.js +0 -104
  266. package/dist/notifications/useNotifications.js.map +0 -1
  267. package/dist/notifications/useNotifyWatcher.js +0 -62
  268. package/dist/notifications/useNotifyWatcher.js.map +0 -1
  269. package/dist/overlays/fetcher.js +0 -15
  270. package/dist/overlays/fetcher.js.map +0 -1
  271. package/dist/overlays/recipeRegistry.js +0 -32
  272. package/dist/overlays/recipeRegistry.js.map +0 -1
  273. package/dist/overlays/runtime/anchor/resolve.js +0 -87
  274. package/dist/overlays/runtime/anchor/resolve.js.map +0 -1
  275. package/dist/overlays/runtime/index.js +0 -8
  276. package/dist/overlays/runtime/index.js.map +0 -1
  277. package/dist/overlays/runtime/overlay/highlight.js +0 -160
  278. package/dist/overlays/runtime/overlay/highlight.js.map +0 -1
  279. package/dist/overlays/runtime/overlay/modal.js +0 -78
  280. package/dist/overlays/runtime/overlay/modal.js.map +0 -1
  281. package/dist/overlays/runtime/overlay/root.js +0 -297
  282. package/dist/overlays/runtime/overlay/root.js.map +0 -1
  283. package/dist/overlays/runtime/overlay/runner.js +0 -602
  284. package/dist/overlays/runtime/overlay/runner.js.map +0 -1
  285. package/dist/overlays/runtime/overlay/tooltip.js +0 -232
  286. package/dist/overlays/runtime/overlay/tooltip.js.map +0 -1
  287. package/dist/overlays/runtime/utils/dom.js +0 -12
  288. package/dist/overlays/runtime/utils/dom.js.map +0 -1
  289. package/dist/overlays/schema.js +0 -52
  290. package/dist/overlays/schema.js.map +0 -1
  291. package/dist/overlays/types.js +0 -2
  292. package/dist/overlays/types.js.map +0 -1
  293. package/dist/render/RenderContext.js +0 -69
  294. package/dist/render/RenderContext.js.map +0 -1
  295. package/dist/render/index.js +0 -3
  296. package/dist/render/index.js.map +0 -1
  297. package/dist/render/types.js +0 -2
  298. package/dist/render/types.js.map +0 -1
  299. package/dist/runtime.js +0 -237
  300. package/dist/runtime.js.map +0 -1
  301. package/dist/state/StateStore.js +0 -176
  302. package/dist/state/StateStore.js.map +0 -1
  303. package/dist/state/helpers/cooldowns.js +0 -31
  304. package/dist/state/helpers/cooldowns.js.map +0 -1
  305. package/dist/state/helpers/dismissals.js +0 -34
  306. package/dist/state/helpers/dismissals.js.map +0 -1
  307. package/dist/state/helpers/frequency.js +0 -43
  308. package/dist/state/helpers/frequency.js.map +0 -1
  309. package/dist/state/index.js +0 -7
  310. package/dist/state/index.js.map +0 -1
  311. package/dist/state/schema.js +0 -25
  312. package/dist/state/schema.js.map +0 -1
  313. package/dist/state/types.js +0 -9
  314. package/dist/state/types.js.map +0 -1
  315. package/dist/store/example.js +0 -43
  316. package/dist/store/example.js.map +0 -1
  317. package/dist/store/mini-effector.js +0 -88
  318. package/dist/store/mini-effector.js.map +0 -1
  319. package/dist/surfaces/Surfaces.js +0 -361
  320. package/dist/surfaces/Surfaces.js.map +0 -1
  321. package/dist/surfaces/index.js +0 -12
  322. package/dist/surfaces/index.js.map +0 -1
  323. package/dist/surfaces/positioning.js +0 -228
  324. package/dist/surfaces/positioning.js.map +0 -1
  325. package/dist/surfaces/types.js +0 -23
  326. package/dist/surfaces/types.js.map +0 -1
  327. package/dist/telemetry/adapters/noop.js +0 -42
  328. package/dist/telemetry/adapters/noop.js.map +0 -1
  329. package/dist/telemetry/adapters/posthog.js +0 -180
  330. package/dist/telemetry/adapters/posthog.js.map +0 -1
  331. package/dist/telemetry/index.js +0 -4
  332. package/dist/telemetry/index.js.map +0 -1
  333. package/dist/telemetry/registry.js +0 -29
  334. package/dist/telemetry/registry.js.map +0 -1
  335. package/dist/telemetry/types.js +0 -2
  336. package/dist/telemetry/types.js.map +0 -1
  337. package/dist/theme/ThemeProvider.js +0 -109
  338. package/dist/theme/ThemeProvider.js.map +0 -1
  339. package/dist/theme/defaultTheme.js +0 -190
  340. package/dist/theme/defaultTheme.js.map +0 -1
  341. package/dist/theme/extractHostTheme.js +0 -259
  342. package/dist/theme/extractHostTheme.js.map +0 -1
  343. package/dist/theme/index.js +0 -7
  344. package/dist/theme/index.js.map +0 -1
  345. package/dist/theme/types.js +0 -6
  346. package/dist/theme/types.js.map +0 -1
  347. package/dist/token.js +0 -44
  348. package/dist/token.js.map +0 -1
  349. package/dist/types.js +0 -17
  350. package/dist/types.js.map +0 -1
  351. package/dist/version.js +0 -14
  352. package/dist/version.js.map +0 -1
  353. package/dist/widgets/WidgetRegistry.js +0 -190
  354. package/dist/widgets/WidgetRegistry.js.map +0 -1
  355. package/dist/widgets/index.js +0 -7
  356. package/dist/widgets/index.js.map +0 -1
@@ -1,259 +0,0 @@
1
- import { darkTheme, lightTheme } from './defaultTheme';
2
- /**
3
- * Common CSS variable prefixes used by popular frameworks
4
- */
5
- const _CSS_VAR_PATTERNS = [
6
- // Tailwind
7
- /^--color-/,
8
- /^--tw-/,
9
- // Chakra UI
10
- /^--chakra-/,
11
- // MUI
12
- /^--mui-/,
13
- // Radix
14
- /^--radix-/,
15
- // shadcn/ui
16
- /^--primary/,
17
- /^--secondary/,
18
- /^--background/,
19
- /^--foreground/,
20
- /^--muted/,
21
- /^--accent/,
22
- /^--destructive/,
23
- /^--border/,
24
- /^--ring/,
25
- /^--radius/,
26
- // Bootstrap
27
- /^--bs-/,
28
- // Generic brand patterns
29
- /^--brand/,
30
- /^--theme/,
31
- /^--app-/,
32
- ];
33
- /**
34
- * Extract CSS custom properties from :root
35
- */
36
- function extractCssVariables() {
37
- const variables = {};
38
- if (typeof document === 'undefined')
39
- return variables;
40
- try {
41
- const root = document.documentElement;
42
- const computedStyle = getComputedStyle(root);
43
- // Get all stylesheets
44
- for (const sheet of document.styleSheets) {
45
- try {
46
- for (const rule of sheet.cssRules) {
47
- if (rule instanceof CSSStyleRule && rule.selectorText === ':root') {
48
- for (const prop of rule.style) {
49
- if (prop.startsWith('--')) {
50
- const value = rule.style.getPropertyValue(prop).trim();
51
- if (value) {
52
- variables[prop] = value;
53
- }
54
- }
55
- }
56
- }
57
- }
58
- }
59
- catch {
60
- // Cross-origin stylesheets will throw, skip them
61
- }
62
- }
63
- // Also check computed style for inline CSS variables
64
- for (const prop of computedStyle) {
65
- if (prop.startsWith('--') && !variables[prop]) {
66
- const value = computedStyle.getPropertyValue(prop).trim();
67
- if (value) {
68
- variables[prop] = value;
69
- }
70
- }
71
- }
72
- }
73
- catch (err) {
74
- console.warn('[SmartCanvas] Error extracting CSS variables:', err);
75
- }
76
- return variables;
77
- }
78
- /**
79
- * Get computed color from an element
80
- */
81
- function getComputedColor(element, property) {
82
- try {
83
- const style = getComputedStyle(element);
84
- const value = style.getPropertyValue(property);
85
- return value && value !== 'rgba(0, 0, 0, 0)' ? value.trim() : null;
86
- }
87
- catch {
88
- return null;
89
- }
90
- }
91
- /**
92
- * Find primary color by analyzing interactive elements
93
- */
94
- function findPrimaryColor() {
95
- if (typeof document === 'undefined')
96
- return null;
97
- // Look for common button/link patterns
98
- const selectors = [
99
- 'button[class*="primary"]',
100
- 'button[class*="brand"]',
101
- '.btn-primary',
102
- "[data-variant='primary']",
103
- "a[class*='primary']",
104
- '.cta',
105
- 'button:not([disabled]):not([class*="secondary"]):not([class*="ghost"])',
106
- ];
107
- for (const selector of selectors) {
108
- try {
109
- const element = document.querySelector(selector);
110
- if (element) {
111
- const bgColor = getComputedColor(element, 'background-color');
112
- if (bgColor && bgColor !== 'transparent' && !bgColor.includes('255, 255, 255')) {
113
- return bgColor;
114
- }
115
- }
116
- }
117
- catch {
118
- // Selector might be invalid
119
- }
120
- }
121
- // Fallback: check links
122
- const link = document.querySelector('a:not([class])') || document.querySelector('a');
123
- if (link) {
124
- const color = getComputedColor(link, 'color');
125
- if (color)
126
- return color;
127
- }
128
- return null;
129
- }
130
- /**
131
- * Detect if page is in dark mode
132
- */
133
- function detectDarkMode() {
134
- var _a, _b;
135
- if (typeof document === 'undefined')
136
- return true;
137
- // Check prefers-color-scheme
138
- if ((_b = (_a = window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, '(prefers-color-scheme: dark)')) === null || _b === void 0 ? void 0 : _b.matches) {
139
- return true;
140
- }
141
- // Check body background luminance
142
- const { body } = document;
143
- const bgColor = getComputedColor(body, 'background-color');
144
- if (bgColor) {
145
- const match = bgColor.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
146
- if (match) {
147
- const [, r, g, b] = match.map(Number);
148
- const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
149
- return luminance < 0.5;
150
- }
151
- }
152
- // Check for dark mode classes
153
- const html = document.documentElement;
154
- if (html.classList.contains('dark') ||
155
- html.dataset.theme === 'dark' ||
156
- body.classList.contains('dark')) {
157
- return true;
158
- }
159
- return false;
160
- }
161
- /**
162
- * Extract theme information from the host page
163
- */
164
- export function extractHostTheme() {
165
- const cssVariables = extractCssVariables();
166
- // Try to find primary color
167
- let primaryColor = null;
168
- // First check CSS variables
169
- const primaryVarNames = [
170
- '--primary',
171
- '--color-primary',
172
- '--brand-color',
173
- '--accent-color',
174
- '--theme-primary',
175
- '--app-primary',
176
- ];
177
- for (const varName of primaryVarNames) {
178
- if (cssVariables[varName]) {
179
- primaryColor = cssVariables[varName];
180
- break;
181
- }
182
- }
183
- // If not found, analyze elements
184
- if (!primaryColor) {
185
- primaryColor = findPrimaryColor();
186
- }
187
- // Extract other colors
188
- const backgroundColor = cssVariables['--background'] ||
189
- cssVariables['--color-background'] ||
190
- getComputedColor(document.body, 'background-color');
191
- const textColor = cssVariables['--foreground'] ||
192
- cssVariables['--color-text'] ||
193
- getComputedColor(document.body, 'color');
194
- const borderColor = cssVariables['--border'] || cssVariables['--color-border'] || null;
195
- const borderRadius = cssVariables['--radius'] || cssVariables['--border-radius'] || null;
196
- const fontFamily = getComputedColor(document.body, 'font-family');
197
- return {
198
- primaryColor,
199
- backgroundColor,
200
- surfaceColor: cssVariables['--card'] || cssVariables['--surface'] || null,
201
- textColor,
202
- textSecondaryColor: cssVariables['--muted-foreground'] || cssVariables['--color-text-secondary'] || null,
203
- borderColor,
204
- borderRadius,
205
- fontFamily,
206
- cssVariables,
207
- };
208
- }
209
- /**
210
- * Merge extracted theme with default theme tokens
211
- */
212
- export function mergeWithExtractedTheme(extracted, baseTheme) {
213
- const isDark = detectDarkMode();
214
- const defaultTheme = baseTheme !== null && baseTheme !== void 0 ? baseTheme : (isDark ? darkTheme : lightTheme);
215
- // Create merged theme, applying extracted values where available
216
- const merged = { ...defaultTheme };
217
- if (extracted.primaryColor) {
218
- merged.colorPrimary = extracted.primaryColor;
219
- // Generate hover variant (slightly lighter)
220
- merged.colorPrimaryHover = extracted.primaryColor; // TODO: compute lighter variant
221
- merged.colorPrimaryMuted = extracted.primaryColor
222
- .replace(')', ', 0.15)')
223
- .replace('rgb', 'rgba');
224
- }
225
- if (extracted.backgroundColor) {
226
- merged.colorBackground = extracted.backgroundColor;
227
- }
228
- if (extracted.surfaceColor) {
229
- merged.colorSurface = extracted.surfaceColor;
230
- }
231
- if (extracted.textColor) {
232
- merged.colorText = extracted.textColor;
233
- }
234
- if (extracted.textSecondaryColor) {
235
- merged.colorTextSecondary = extracted.textSecondaryColor;
236
- }
237
- if (extracted.borderColor) {
238
- merged.colorBorder = extracted.borderColor;
239
- }
240
- if (extracted.borderRadius) {
241
- merged.borderRadiusMd = extracted.borderRadius;
242
- }
243
- if (extracted.fontFamily) {
244
- merged.fontFamily = extracted.fontFamily;
245
- }
246
- return merged;
247
- }
248
- /**
249
- * Auto-detect and extract theme from host page
250
- * Returns merged theme tokens ready to use
251
- */
252
- export function autoDetectTheme(baseTheme) {
253
- if (typeof document === 'undefined') {
254
- return baseTheme !== null && baseTheme !== void 0 ? baseTheme : darkTheme;
255
- }
256
- const extracted = extractHostTheme();
257
- return mergeWithExtractedTheme(extracted, baseTheme);
258
- }
259
- //# sourceMappingURL=extractHostTheme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractHostTheme.js","sourceRoot":"","sources":["../../src/theme/extractHostTheme.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- // Default themes
2
- export { darkTheme, lightTheme, getDefaultTheme, themeToCssVariables, withAlpha } from './defaultTheme';
3
- // Theme extraction
4
- export { extractHostTheme, mergeWithExtractedTheme, autoDetectTheme } from './extractHostTheme';
5
- // Theme provider and hooks
6
- export { ThemeProvider, useTheme, useThemeToken, useThemeVar } from './ThemeProvider';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAGA,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAExG,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhG,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Theme token definitions for Smart Canvas
3
- * Inspired by macOS design language and react.email aesthetics
4
- */
5
- export {};
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/dist/token.js DELETED
@@ -1,44 +0,0 @@
1
- /**
2
- * Token encoding/decoding utilities for Syntro client keys.
3
- *
4
- * A Syntro token is a base64url-encoded JSON payload prefixed with "syn_".
5
- * It bundles all necessary credentials (experiments, telemetry, config) into
6
- * a single string that clients can use to initialize the SDK.
7
- */
8
- const TOKEN_PREFIX = 'syn_';
9
- /**
10
- * Decode a Syntro token into its payload.
11
- *
12
- * @param token - The token string (e.g., "syn_eyJ2IjoxfQ")
13
- * @returns The decoded payload
14
- * @throws Error if the token is invalid or unsupported version
15
- */
16
- export function decodeToken(token) {
17
- if (!token.startsWith(TOKEN_PREFIX)) {
18
- throw new Error("Invalid Syntro token: must start with 'syn_'");
19
- }
20
- const base64 = token.slice(TOKEN_PREFIX.length);
21
- // Convert base64url to standard base64
22
- const standardBase64 = base64.replace(/-/g, '+').replace(/_/g, '/');
23
- const json = atob(standardBase64);
24
- const payload = JSON.parse(json);
25
- if (payload.v !== 1) {
26
- throw new Error(`Unsupported token version: ${payload.v}`);
27
- }
28
- return payload;
29
- }
30
- /**
31
- * Encode a payload into a Syntro token.
32
- *
33
- * This is primarily for admin/dashboard use, but exported for testing.
34
- *
35
- * @param payload - The payload to encode
36
- * @returns The encoded token string
37
- */
38
- export function encodeToken(payload) {
39
- const json = JSON.stringify(payload);
40
- // Convert to base64url (URL-safe, no padding)
41
- const base64 = btoa(json).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
42
- return TOKEN_PREFIX + base64;
43
- }
44
- //# sourceMappingURL=token.js.map
package/dist/token.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,YAAY,GAAG,MAAM,CAAC;AA4B5B;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,uCAAuC;IACvC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAC;IAEvD,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,8CAA8C;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrF,OAAO,YAAY,GAAG,MAAM,CAAC;AAC/B,CAAC"}
package/dist/types.js DELETED
@@ -1,17 +0,0 @@
1
- // =============================================================================
2
- // SDK VERSION CONSTANTS
3
- // =============================================================================
4
- export { SDK_VERSION } from './version';
5
- /**
6
- * SDK schema version in Major.Minor format (e.g., "2.0", "2.1").
7
- * Used for compatibility checking between SDK and backend configs.
8
- * Sent in X-SDK-Schema-Version header.
9
- *
10
- * Bump rules:
11
- * - Major: Breaking changes (field removal, type changes)
12
- * - Minor: Backwards-compatible additions (new optional fields)
13
- *
14
- * @since 2.0.0
15
- */
16
- export const SDK_SCHEMA_VERSION = '2.0';
17
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAUhF,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC"}
package/dist/version.js DELETED
@@ -1,14 +0,0 @@
1
- /**
2
- * SDK package version.
3
- *
4
- * This file is auto-generated at release time by `scripts/prepare-release.mjs`.
5
- * The sentinel value below is overwritten with the real semver version
6
- * during the semantic-release prepare phase.
7
- *
8
- * DO NOT import version from package.json — this constant is the single
9
- * source of truth for the runtime bundle.
10
- *
11
- * @since 2.0.0
12
- */
13
- export const SDK_VERSION = '2.1.0';
14
- //# sourceMappingURL=version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
@@ -1,190 +0,0 @@
1
- /**
2
- * Widget Registry
3
- *
4
- * Extensible registry for mountable widget components.
5
- * Apps can register custom widgets that can be rendered via mountWidget actions.
6
- */
7
- /**
8
- * Extensible registry for widget components.
9
- *
10
- * Allows apps to register custom widgets that can be rendered via
11
- * mountWidget actions or directly through the Surfaces system.
12
- */
13
- export class WidgetRegistry {
14
- constructor() {
15
- this.widgets = new Map();
16
- this.mountedWidgets = new Map();
17
- this.mountIdCounter = 0;
18
- }
19
- /**
20
- * Bind a runtime reference so it can be injected into widget mount() calls.
21
- * Uses `unknown` to avoid circular imports (WidgetRegistry ← runtime.ts).
22
- */
23
- bindRuntime(runtime) {
24
- this.runtimeRef = runtime;
25
- }
26
- /**
27
- * Register a widget.
28
- *
29
- * @param id - The widget ID (e.g., "gamification:leaderboard")
30
- * @param widget - The widget component
31
- * @param source - The source app ID (for tracking)
32
- * @param metadata - Optional metadata about the widget
33
- */
34
- register(id, widget, source = 'custom', metadata) {
35
- if (this.widgets.has(id)) {
36
- const existing = this.widgets.get(id);
37
- if (existing.source === 'built-in') {
38
- throw new Error(`Cannot override built-in widget: ${id}`);
39
- }
40
- console.warn(`[WidgetRegistry] Overriding widget: ${id}`);
41
- }
42
- this.widgets.set(id, {
43
- id,
44
- widget,
45
- source,
46
- metadata,
47
- });
48
- }
49
- /**
50
- * Unregister a widget.
51
- *
52
- * @param id - The widget ID to unregister
53
- * @returns true if the widget was unregistered, false if not found or built-in
54
- */
55
- unregister(id) {
56
- const existing = this.widgets.get(id);
57
- if (!existing) {
58
- return false;
59
- }
60
- if (existing.source === 'built-in') {
61
- console.warn(`[WidgetRegistry] Cannot unregister built-in widget: ${id}`);
62
- return false;
63
- }
64
- this.widgets.delete(id);
65
- return true;
66
- }
67
- /**
68
- * Unregister all widgets from a specific source.
69
- *
70
- * @param source - The source app ID
71
- */
72
- unregisterBySource(source) {
73
- for (const [id, registration] of this.widgets.entries()) {
74
- if (registration.source === source) {
75
- this.widgets.delete(id);
76
- }
77
- }
78
- }
79
- /**
80
- * Get a widget by ID.
81
- */
82
- get(id) {
83
- var _a;
84
- return (_a = this.widgets.get(id)) === null || _a === void 0 ? void 0 : _a.widget;
85
- }
86
- /**
87
- * Get the full registration for a widget.
88
- */
89
- getRegistration(id) {
90
- return this.widgets.get(id);
91
- }
92
- /**
93
- * Check if a widget exists.
94
- */
95
- has(id) {
96
- return this.widgets.has(id);
97
- }
98
- /**
99
- * Mount a widget into a container.
100
- *
101
- * @param id - The widget ID
102
- * @param container - The DOM element to mount into
103
- * @param config - Configuration/props for the widget
104
- * @returns A handle for managing the mounted widget
105
- */
106
- mount(id, container, config) {
107
- const registration = this.widgets.get(id);
108
- if (!registration) {
109
- throw new Error(`Widget not found: ${id}`);
110
- }
111
- const mountId = `widget-mount-${++this.mountIdCounter}`;
112
- container.setAttribute('data-widget-mount-id', mountId);
113
- container.setAttribute('data-widget-id', id);
114
- // Mount the widget — inject runtime so widgets can render as React components
115
- const enrichedConfig = { ...config, runtime: this.runtimeRef };
116
- const cleanup = registration.widget.mount(container, enrichedConfig);
117
- // Track the mounted widget
118
- this.mountedWidgets.set(mountId, {
119
- cleanup: cleanup !== null && cleanup !== void 0 ? cleanup : undefined,
120
- container,
121
- });
122
- const handle = {
123
- widgetId: id,
124
- container,
125
- unmount: () => {
126
- var _a;
127
- const mounted = this.mountedWidgets.get(mountId);
128
- if (mounted) {
129
- (_a = mounted.cleanup) === null || _a === void 0 ? void 0 : _a.call(mounted);
130
- this.mountedWidgets.delete(mountId);
131
- container.removeAttribute('data-widget-mount-id');
132
- container.removeAttribute('data-widget-id');
133
- container.innerHTML = '';
134
- }
135
- },
136
- update: (newConfig) => {
137
- var _a;
138
- if (registration.widget.update) {
139
- registration.widget.update(container, newConfig);
140
- }
141
- else {
142
- // Unmount and remount with new config
143
- const mounted = this.mountedWidgets.get(mountId);
144
- if (mounted) {
145
- (_a = mounted.cleanup) === null || _a === void 0 ? void 0 : _a.call(mounted);
146
- container.innerHTML = '';
147
- const enrichedNewConfig = { ...newConfig, runtime: this.runtimeRef };
148
- const newCleanup = registration.widget.mount(container, enrichedNewConfig);
149
- mounted.cleanup = newCleanup !== null && newCleanup !== void 0 ? newCleanup : undefined;
150
- }
151
- }
152
- },
153
- };
154
- return handle;
155
- }
156
- /**
157
- * List all registered widget IDs.
158
- */
159
- list() {
160
- return Array.from(this.widgets.keys());
161
- }
162
- /**
163
- * List all registrations.
164
- */
165
- listRegistrations() {
166
- return Array.from(this.widgets.values());
167
- }
168
- /**
169
- * Get all widgets from a specific source.
170
- */
171
- getBySource(source) {
172
- return Array.from(this.widgets.values()).filter((registration) => registration.source === source);
173
- }
174
- /**
175
- * Clean up all mounted widgets.
176
- */
177
- destroy() {
178
- var _a;
179
- for (const [_mountId, mounted] of this.mountedWidgets.entries()) {
180
- (_a = mounted.cleanup) === null || _a === void 0 ? void 0 : _a.call(mounted);
181
- mounted.container.innerHTML = '';
182
- }
183
- this.mountedWidgets.clear();
184
- }
185
- }
186
- /**
187
- * Default singleton instance of WidgetRegistry.
188
- */
189
- export const widgetRegistry = new WidgetRegistry();
190
- //# sourceMappingURL=WidgetRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetRegistry.js","sourceRoot":"","sources":["../../src/widgets/WidgetRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Widgets Module
3
- *
4
- * Extensible widget registry for mountable components.
5
- */
6
- export { WidgetRegistry, widgetRegistry } from './WidgetRegistry';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}