@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
@@ -0,0 +1,67 @@
1
+ import {
2
+ AddClassZ,
3
+ BadgePositionZ,
4
+ BadgeZ,
5
+ CtaButtonZ,
6
+ HighlightStyleZ,
7
+ HighlightZ,
8
+ InsertHtmlZ,
9
+ InsertPositionZ,
10
+ ModalContentZ,
11
+ ModalZ,
12
+ MountWidgetZ,
13
+ NavigateZ,
14
+ ParallelZ,
15
+ PlacementZ,
16
+ PulseZ,
17
+ RemoveClassZ,
18
+ ScrollBehaviorZ,
19
+ ScrollLogicalPositionZ,
20
+ ScrollToZ,
21
+ SequenceZ,
22
+ SetAttrZ,
23
+ SetStyleZ,
24
+ SetTextZ,
25
+ TooltipContentZ,
26
+ TooltipTriggerZ,
27
+ TooltipZ,
28
+ TourStepForSchemaZ,
29
+ TourZ,
30
+ WaitZ,
31
+ WidgetConfigZ,
32
+ coreActionStepSchemas
33
+ } from "../chunk-AYTRRBR5.js";
34
+ export {
35
+ AddClassZ,
36
+ BadgePositionZ,
37
+ BadgeZ,
38
+ CtaButtonZ,
39
+ HighlightStyleZ,
40
+ HighlightZ,
41
+ InsertHtmlZ,
42
+ InsertPositionZ,
43
+ ModalContentZ,
44
+ ModalZ,
45
+ MountWidgetZ,
46
+ NavigateZ,
47
+ ParallelZ,
48
+ PlacementZ,
49
+ PulseZ,
50
+ RemoveClassZ,
51
+ ScrollBehaviorZ,
52
+ ScrollLogicalPositionZ,
53
+ ScrollToZ,
54
+ SequenceZ,
55
+ SetAttrZ,
56
+ SetStyleZ,
57
+ SetTextZ,
58
+ TooltipContentZ,
59
+ TooltipTriggerZ,
60
+ TooltipZ,
61
+ TourStepForSchemaZ,
62
+ TourZ,
63
+ WaitZ,
64
+ WidgetConfigZ,
65
+ coreActionStepSchemas
66
+ };
67
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,9 +1,9 @@
1
- function m(...t){return t.filter(Boolean).join(" ")}function Y(){return typeof SynOS<"u"&&SynOS.React||{}}function Q(t,n,s){var o=Y(),a=n||{},l=a.children;return delete a.children,s!==void 0&&(a.key=s),Array.isArray(l)?o.createElement.apply(null,[t,a].concat(l)):l!==void 0?o.createElement(t,a,l):o.createElement(t,a)}var r=Q,i=Q,be=Y().Fragment;function q({children:t}){return r("div",{className:"se-flex se-flex-col se-h-full se-font-sans",children:t})}function z({title:t,subtitle:n,onBack:s}){return i("div",{className:"se-p-4 se-border-b se-border-border-primary se-flex se-items-center se-gap-3",children:[r("button",{onClick:s,className:"se-px-3 se-py-1.5 se-rounded-md se-border se-border-btn-neutral-border se-bg-transparent se-text-btn-neutral-text se-text-sm se-cursor-pointer hover:se-text-btn-neutral-text-hover",children:"\u2190 Back"}),i("div",{children:[r("h2",{className:"se-m-0 se-text-base se-font-semibold se-text-text-primary",children:t}),n&&r("p",{className:"se-mt-0.5 se-mb-0 se-text-xs se-text-text-secondary",children:n})]})]})}function U({children:t}){return r("div",{className:"se-flex-1 se-overflow-auto se-p-6",children:t})}function G({onSave:t,onPublish:n}){return i("div",{className:"se-py-3 se-px-4 se-border-t se-border-border-primary se-flex se-gap-2",children:[r("button",{onClick:t,className:"se-flex-1 se-py-2.5 se-rounded-lg se-border-none se-bg-blue-5/15 se-text-blue-5 se-text-base se-font-semibold se-cursor-pointer",children:"Save Draft"}),r("button",{onClick:n,className:"se-flex-1 se-py-2.5 se-rounded-lg se-border-none se-bg-green-4 se-text-white se-text-base se-font-semibold se-cursor-pointer",children:"Publish"})]})}function M(){return typeof SynOS<"u"&&SynOS.React||{}}var Z=new Proxy({},{get:function(t,n){return M()[n]}});function w(){return M().useState.apply(null,arguments)}function _(){return M().useEffect.apply(null,arguments)}function O(){return M().useCallback.apply(null,arguments)}function h(){return M().useRef.apply(null,arguments)}var N=M(),Le=N.Fragment,Oe=N.Suspense,Te=N.Children,Fe=N.Component,We=N.PureComponent;function D({label:t,className:n,...s}){return i("div",{children:[t&&r("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:t}),r("input",{...s,className:m("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",n)})]})}function J({label:t,className:n,...s}){return i("div",{children:[t&&r("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:t}),r("textarea",{...s,className:m("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-input-field-bg se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-resize-y se-min-h-[60px] se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-ring-1 focus:se-ring-input-field-border-selected","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",n)})]})}function ge({config:t,onChange:n,editor:s}){let o=t,a=h(!1);_(()=>{!a.current&&(s.initialEditKey!=null||s.initialCreate)&&(a.current=!0,s.clearInitialState?.())},[s]);let l=(u,v)=>{n({...t,[u]:v}),s.setDirty(!0)};return i(q,{children:[r(z,{title:"Chat Assistant",subtitle:"Configure AI chat assistant",onBack:()=>s.navigateHome()}),i(U,{children:[i("div",{className:"se-mb-6",children:[r("div",{className:"se-text-xs se-font-semibold se-text-slate-grey-8 se-uppercase se-tracking-wide se-mb-3",children:"API Configuration"}),r(D,{label:"Backend URL",type:"text",value:o.backendUrl||"",onChange:u=>l("backendUrl",u.target.value),placeholder:"/api/chat/message"}),r(D,{label:"MLflow Run ID (optional)",type:"text",value:o.mlflowRunId||"",onChange:u=>l("mlflowRunId",u.target.value),placeholder:"e.g., abc123"})]}),i("div",{className:"se-mb-6",children:[r("div",{className:"se-text-xs se-font-semibold se-text-slate-grey-8 se-uppercase se-tracking-wide se-mb-3",children:"Chat Settings"}),r(J,{label:"Greeting Message",value:o.greeting||"",onChange:u=>l("greeting",u.target.value),placeholder:"Hi! How can I help?"}),r(D,{label:"Max History (messages sent to backend)",type:"number",value:o.maxHistory||20,onChange:u=>l("maxHistory",parseInt(u.target.value,10)),min:1,max:100})]})]}),r(G,{onSave:()=>s.save(),onPublish:()=>s.publish()})]})}var ee={title:"Chat Assistant",icon:"\u{1F4AC}",description:"AI chat assistant with action execution"},te=ge;var b={white:"#ffffff",black:"#000000"},f={0:"#2c0b0a",1:"#5b1715",2:"#89221f",3:"#b72e2a",4:"#d44844",5:"#dd6d69",6:"#e5918f",7:"#eeb6b4",8:"#f6dada",9:"#faebea"},e={0:"#07080a",1:"#0f1318",2:"#0e1114",3:"#1c222a",4:"#2b333f",5:"#394454",6:"#475569",7:"#677384",8:"#87919f",9:"#a8afba",10:"#cbd0d7",11:"#e8eaee",12:"#f6f7f9"},c={0:"#07230a",1:"#0e4514",2:"#16681e",3:"#1d8a28",4:"#24ad32",5:"#4fbd5a",6:"#7acd82",7:"#a5deab",8:"#d0eed3",9:"#e5f6e7"},g={0:"#301f09",1:"#5f3e12",2:"#8f5e1b",3:"#be7d24",4:"#ee9c2d",5:"#f1b057",6:"#f5c481",7:"#f8d7ab",8:"#fcebd5",9:"#fdf5ea"},d={0:"#330707",1:"#660f0e",2:"#991616",3:"#cc1e1d",4:"#ff2524",5:"#ff5150",6:"#ff7c7c",7:"#ffa8a7",8:"#ffd3d3",9:"#ffe9e9"},I={0:"#051533",1:"#0a2a66",2:"#0f3f98",3:"#1454cb",4:"#1969fe",5:"#4787fe",6:"#75a5fe",7:"#a3c3ff",8:"#d1e1ff",9:"#e8f0ff"},A={0:"#662500",1:"#993d00",2:"#cc5800",3:"#ff7700",4:"#fea85d",5:"#fec58f",6:"#ffd6ae",7:"#fee6cd",8:"#fff1e1",9:"#fff8f0"},y={0:"#151229",1:"#2a2452",2:"#40357c",3:"#5547a5",4:"#6a59ce",5:"#887ad8",6:"#a69be2",7:"#c3bdeb",8:"#e1def5",9:"#f0eefa"},$={0:"#37091f",1:"#69123c",2:"#9b1c58",3:"#cd2575",4:"#ff2e92",5:"#ff58a8",6:"#ff82be",7:"#ffabd3",8:"#ffd5e9",9:"#ffeaf4"};var er={primary:e[10],secondary:e[9],tertiary:e[8]},tr={primary:e[2],secondary:e[0]},rr={primary:e[4],secondary:e[3]},sr={primary:{text:b.white,icon:b.white,border:f[3],backgroundDefault:f[3],backgroundHover:f[2]},neutral:{text:e[10],textHover:b.white,icon:e[10],iconHover:b.white,border:e[4],background:e[2]},link:{text:b.white,icon:b.white,hover:f[5]},error:{text:d[5],hover:d[6]},success:{text:c[5],hover:c[6]}},nr={slateGrey:{content:e[10],pillOutline:e[10],borderPrimary:e[5],borderSecondary:e[5],background:e[3]},brand:{content:f[9],pillOutline:f[9],borderPrimary:f[6],borderSecondary:f[6],background:f[0]},red:{content:d[8],pillOutline:d[4],borderPrimary:d[2],borderSecondary:d[2],background:d[0]},yellow:{content:g[8],pillOutline:g[4],borderPrimary:g[2],borderSecondary:g[2],background:g[0]},green:{content:c[8],pillOutline:c[4],borderPrimary:c[2],borderSecondary:c[2],background:c[0]},purple:{content:y[8],pillOutline:y[4],borderPrimary:y[2],borderSecondary:y[2],background:y[0]},blue:{content:I[8],pillOutline:I[4],borderPrimary:I[2],borderSecondary:I[2],background:I[0]},orange:{content:A[8],pillOutline:A[4],borderPrimary:A[2],borderSecondary:A[2],background:A[0]},pink:{content:$[8],pillOutline:$[4],borderPrimary:$[2],borderSecondary:$[2],background:$[0]}},or={green:{content:c[8],border:c[2],background:c[0]},yellow:{content:g[8],border:g[2],background:g[0]},red:{content:d[8],border:d[2],background:d[0]}},ar={green:{content:c[1],background:c[9]},yellow:{content:g[1],background:g[9]},red:{content:d[1],background:d[9]}},ir={content:e[10],border:e[4],background:"#1c2124"},lr={backgroundDefault:e[2],backgroundHover:e[1],selected:e[3]},cr={background:e[2],icon:e[10],borderDefault:e[4],borderSelected:f[3],textLabel:e[9],textPlaceholder:e[8],textHint:e[8]},dr={backgroundDefault:e[2],backgroundDisabled:e[0],textLabel:e[9],textPlaceholder:e[8],textHint:e[8],textError:d[5],iconDefault:e[9],iconPlaceholder:e[10],iconError:d[5],borderDefault:e[4],borderSelected:f[3],borderError:d[5]},ur={handleDefault:b.white,handleDisabled:e[10],off:{backgroundDefault:e[4],backgroundHover:e[5],backgroundDisabled:e[4]},on:{backgroundDefault:c[3],backgroundHover:c[2],backgroundDisabled:e[4]}},pr={off:{backgroundDefault:"#00000000",backgroundHover:e[5],backgroundDisabled:e[2],border:e[6]},on:{backgroundDefault:c[0],backgroundHover:c[1],backgroundDisabled:e[2],border:c[3]}},fr={content:e[10],background:e[4]},mr={background:e[4],active:c[3]},br={background:e[1],content:e[9],border:e[4]},xr={backgroundDefault:e[1],backgroundHover:e[3],backgroundActive:e[4],border:e[4],contentPrimary:e[10],contentSecondary:e[9],contentTertiary:e[8]},gr={background:e[1],content:e[9],border:e[4]},hr={activeBackground:e[3],activeContent:f[5],inactiveContent:e[9],border:e[4]},yr={header:{textDefault:e[9],textHover:e[8],backgroundDefault:e[1]},border:e[4],cell:{textPrimary:e[10],textSecondary:e[9],backgroundDefault:e[2],backgroundHover:e[1]}},vr={textPrimaryDefault:e[10],textPrimaryHover:e[10],textSecondaryDefault:e[8],textSecondaryHover:e[9],iconPrimary:e[10],iconSecondary:e[8]},kr={background:c[1],active:c[5]},wr={textDefault:e[10],textSelected:b.white,textDisabled:e[7],backgroundDefault:e[2],backgroundMiddle:e[3],backgroundSelected:f[3],border:e[4]},Cr=e[9];function re(){return typeof SynOS<"u"&&SynOS.ReactDOM||{}}var Hr=new Proxy({},{get:function(t,n){return re()[n]}});function V(){return re().createRoot.apply(null,arguments)}var se=/```json\s*\n([\s\S]*?)```/g;function ne(t){let n=[],s=t,o=[],a;for(se.lastIndex=0;(a=se.exec(t))!==null;)o.push({fullMatch:a[0],json:a[1],index:a.index});for(let l=o.length-1;l>=0;l--){let{fullMatch:u,json:v}=o[l],p;try{p=JSON.parse(v)}catch{continue}typeof p=="object"&&p!==null&&"kind"in p&&typeof p.kind=="string"&&(n.unshift(p),s=s.replace(u,""))}return s=s.replace(/\n{3,}/g,`
1
+ function m(...t){return t.filter(Boolean).join(" ")}function re(){return typeof SynOS<"u"&&SynOS.React||{}}function oe(t,n,r){var s=re(),a=n||{},i=a.children;return delete a.children,r!==void 0&&(a.key=r),Array.isArray(i)?s.createElement.apply(null,[t,a].concat(i)):i!==void 0?s.createElement(t,a,i):s.createElement(t,a)}var o=oe,l=oe,ne=re().Fragment;function T(){return typeof SynOS<"u"&&SynOS.React||{}}var se=new Proxy({},{get:function(t,n){return T()[n]}});function y(){return T().useState.apply(null,arguments)}function v(){return T().useEffect.apply(null,arguments)}function k(){return T().useCallback.apply(null,arguments)}function g(){return T().useRef.apply(null,arguments)}var A=T(),Ye=A.Fragment,Ve=A.Suspense,Ze=A.Children,Je=A.Component,Xe=A.PureComponent;function ke(){return typeof SynOS<"u"&&SynOS.ReactDOM||{}}var Qe=new Proxy({},{get:function(t,n){return ke()[n]}});var f={id:"id",class:"class",tag:"tag",attribute:"attribute",nthchild:"nthchild",nthoftype:"nthoftype"};var Re="CssSelectorGenerator";function z(t="unknown problem",...n){console.warn(`${Re}: ${t}`,...n)}var ut={selectors:[f.id,f.class,f.tag,f.attribute],includeTag:!1,whitelist:[],blacklist:[],combineWithinSelector:!0,combineBetweenSelectors:!0,root:null,maxCombinations:Number.POSITIVE_INFINITY,maxCandidates:Number.POSITIVE_INFINITY,useScope:!1};function ae(t){return t instanceof RegExp}function $e(t){return t.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".+")}function q(t){let n=t.map(r=>{if(ae(r))return s=>r.test(s);if(typeof r=="function")return s=>{let a=r(s);return typeof a!="boolean"?(z("pattern matcher function invalid","Provided pattern matching function does not return boolean. It's result will be ignored.",r),!1):a};if(typeof r=="string"){let s=new RegExp("^"+$e(r)+"$");return a=>s.test(a)}return z("pattern matcher invalid","Pattern matching only accepts strings, regular expressions and/or functions. This item is invalid and will be ignored.",r),()=>!1});return r=>n.some(s=>s(r))}var Te=new RegExp(["^$","\\s"].join("|")),Ie=new RegExp(["^$"].join("|")),ie=[f.nthoftype,f.tag,f.id,f.class,f.attribute,f.nthchild];var Et=q(["class","id","ng-*"]);var yr="3a".toUpperCase();function V({children:t}){return o("div",{className:"se-flex-1 se-overflow-auto se-p-6",children:t})}function Z({onSave:t,onPublish:n}){return l("div",{className:"se-py-3 se-px-4 se-border-t se-border-border-primary se-flex se-gap-2",children:[o("button",{onClick:t,className:"se-flex-1 se-h-10 se-px-4 se-py-2 se-rounded-md se-bg-btn-neutral se-text-btn-neutral-text se-border se-border-btn-neutral-border hover:se-text-btn-neutral-text-hover se-text-sm se-font-medium se-cursor-pointer se-inline-flex se-items-center se-justify-center focus-visible:se-shadow-focus-primary focus-visible:se-outline-none",children:"Save Draft"}),o("button",{onClick:n,className:"se-flex-1 se-h-10 se-px-4 se-py-2 se-rounded-md se-border-none se-bg-btn-primary se-text-btn-primary-text hover:se-bg-btn-primary-hover se-text-sm se-font-medium se-cursor-pointer se-inline-flex se-items-center se-justify-center focus-visible:se-shadow-focus-primary focus-visible:se-outline-none",children:"Publish"})]})}function J({title:t,subtitle:n}){return l("div",{className:"se-px-4 se-pt-3 se-pb-2",children:[o("h2",{className:"se-m-0 se-text-base se-font-semibold se-text-text-primary",children:t}),n&&o("p",{className:"se-mt-0.5 se-mb-0 se-text-xs se-text-text-secondary",children:n})]})}function P({label:t,className:n,...r}){return l("div",{children:[t&&o("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:t}),o("input",{...r,className:m("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-slate-grey-3 se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-shadow-focus-primary","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",n)})]})}function X({children:t}){return o("div",{className:"se-flex se-flex-col se-h-full se-font-sans",children:t})}function K({label:t,className:n,value:r,...s}){let a=g(null);return v(()=>{let i=a.current;i&&(i.style.height="auto",i.style.height=`${i.scrollHeight}px`)},[r]),l("div",{children:[t&&o("label",{className:"se-text-sm se-font-medium se-text-input-field-text-label se-mb-1 se-block",children:t}),o("textarea",{ref:a,value:r,...s,className:m("se-w-full se-py-2 se-px-3 se-rounded-lg se-border se-border-input-field-border se-bg-slate-grey-3 se-text-text-primary se-text-sm se-font-[inherit] se-mb-2 se-resize-y se-min-h-[60px] se-max-h-[50vh] se-overflow-y-auto se-box-border","placeholder:se-text-input-field-text-placeholder","focus:se-border-input-field-border-selected focus:se-outline-none focus:se-shadow-focus-primary","disabled:se-bg-input-field-bg-disabled disabled:se-cursor-not-allowed disabled:se-opacity-50",n)})]})}function Be({config:t,onChange:n,editor:r}){let s=t,a=g(!1);v(()=>{!a.current&&(r.initialEditKey!=null||r.initialCreate)&&(a.current=!0,r.clearInitialState?.())},[r]);let i=(d,S)=>{n({...t,[d]:S}),r.setDirty(!0)};return l(X,{children:[o(J,{title:"Chat Assistant",subtitle:"Configure AI chat assistant",onBack:()=>r.navigateHome()}),l(V,{children:[l("div",{className:"se-mb-6",children:[o("div",{className:"se-text-xs se-font-semibold se-text-slate-grey-8 se-uppercase se-tracking-wide se-mb-3",children:"API Configuration"}),o(P,{label:"Backend URL",type:"text",value:s.backendUrl||"",onChange:d=>i("backendUrl",d.target.value),placeholder:"/api/chat/message"}),o(P,{label:"MLflow Run ID (optional)",type:"text",value:s.mlflowRunId||"",onChange:d=>i("mlflowRunId",d.target.value),placeholder:"e.g., abc123"})]}),l("div",{className:"se-mb-6",children:[o("div",{className:"se-text-xs se-font-semibold se-text-slate-grey-8 se-uppercase se-tracking-wide se-mb-3",children:"Chat Settings"}),o(K,{label:"Greeting Message",value:s.greeting||"",onChange:d=>i("greeting",d.target.value),placeholder:"Hi! How can I help?"}),o(P,{label:"Max History (messages sent to backend)",type:"number",value:s.maxHistory||20,onChange:d=>i("maxHistory",parseInt(d.target.value,10)),min:1,max:100})]})]}),o(Z,{onSave:()=>r.save(),onPublish:()=>r.publish()})]})}var ue={title:"Chat Assistant",icon:"\u{1F4AC}",description:"AI chat assistant with action execution"},de=Be;var b={white:"#ffffff",black:"#000000"},x={0:"#2c0b0a",1:"#5b1715",2:"#89221f",3:"#b72e2a",4:"#d44844",5:"#dd6d69",6:"#e5918f",7:"#eeb6b4",8:"#f6dada",9:"#faebea"},e={0:"#07080a",1:"#0f1318",2:"#0e1114",3:"#1c222a",4:"#2b333f",5:"#394454",6:"#475569",7:"#677384",8:"#87919f",9:"#a8afba",10:"#cbd0d7",11:"#e8eaee",12:"#f6f7f9"},c={0:"#07230a",1:"#0e4514",2:"#16681e",3:"#1d8a28",4:"#24ad32",5:"#4fbd5a",6:"#7acd82",7:"#a5deab",8:"#d0eed3",9:"#e5f6e7"},C={0:"#301f09",1:"#5f3e12",2:"#8f5e1b",3:"#be7d24",4:"#ee9c2d",5:"#f1b057",6:"#f5c481",7:"#f8d7ab",8:"#fcebd5",9:"#fdf5ea"},u={0:"#330707",1:"#660f0e",2:"#991616",3:"#cc1e1d",4:"#ff2524",5:"#ff5150",6:"#ff7c7c",7:"#ffa8a7",8:"#ffd3d3",9:"#ffe9e9"},M={0:"#051533",1:"#0a2a66",2:"#0f3f98",3:"#1454cb",4:"#1969fe",5:"#4787fe",6:"#75a5fe",7:"#a3c3ff",8:"#d1e1ff",9:"#e8f0ff"},j={0:"#662500",1:"#993d00",2:"#cc5800",3:"#ff7700",4:"#fea85d",5:"#fec58f",6:"#ffd6ae",7:"#fee6cd",8:"#fff1e1",9:"#fff8f0"},w={0:"#151229",1:"#2a2452",2:"#40357c",3:"#5547a5",4:"#6a59ce",5:"#887ad8",6:"#a69be2",7:"#c3bdeb",8:"#e1def5",9:"#f0eefa"},O={0:"#37091f",1:"#69123c",2:"#9b1c58",3:"#cd2575",4:"#ff2e92",5:"#ff58a8",6:"#ff82be",7:"#ffabd3",8:"#ffd5e9",9:"#ffeaf4"};var Vn={primary:e[10],secondary:e[9],tertiary:e[8]},Zn={primary:e[2],secondary:e[0]},Jn={primary:e[4],secondary:e[3]},Xn={primary:{text:b.white,icon:b.white,border:x[3],backgroundDefault:x[3],backgroundHover:x[2]},neutral:{text:e[10],textHover:b.white,icon:e[10],iconHover:b.white,border:e[4],background:e[2]},link:{text:b.white,icon:b.white,hover:x[5]},error:{text:u[5],hover:u[6]},success:{text:c[5],hover:c[6]}},Kn={slateGrey:{content:e[10],pillOutline:e[10],borderPrimary:e[5],borderSecondary:e[5],background:e[3]},brand:{content:x[9],pillOutline:x[9],borderPrimary:x[6],borderSecondary:x[6],background:x[0]},red:{content:u[8],pillOutline:u[4],borderPrimary:u[2],borderSecondary:u[2],background:u[0]},yellow:{content:C[8],pillOutline:C[4],borderPrimary:C[2],borderSecondary:C[2],background:C[0]},green:{content:c[8],pillOutline:c[4],borderPrimary:c[2],borderSecondary:c[2],background:c[0]},purple:{content:w[8],pillOutline:w[4],borderPrimary:w[2],borderSecondary:w[2],background:w[0]},blue:{content:M[8],pillOutline:M[4],borderPrimary:M[2],borderSecondary:M[2],background:M[0]},orange:{content:j[8],pillOutline:j[4],borderPrimary:j[2],borderSecondary:j[2],background:j[0]},pink:{content:O[8],pillOutline:O[4],borderPrimary:O[2],borderSecondary:O[2],background:O[0]}},Qn={green:{content:c[8],border:c[2],background:c[0]},yellow:{content:C[8],border:C[2],background:C[0]},red:{content:u[8],border:u[2],background:u[0]}},es={green:{content:c[1],background:c[9]},yellow:{content:C[1],background:C[9]},red:{content:u[1],background:u[9]}},ts={content:e[10],border:e[4],background:"#1c2124"},rs={backgroundDefault:e[2],backgroundHover:e[1],selected:e[3]},os={background:e[2],icon:e[10],borderDefault:e[4],borderSelected:x[3],textLabel:e[9],textPlaceholder:e[8],textHint:e[8]},ns={backgroundDefault:e[2],backgroundDisabled:e[0],textLabel:e[9],textPlaceholder:e[8],textHint:e[8],textError:u[5],iconDefault:e[9],iconPlaceholder:e[10],iconError:u[5],borderDefault:e[4],borderSelected:x[3],borderError:u[5]},ss={handleDefault:b.white,handleDisabled:e[10],off:{backgroundDefault:e[4],backgroundHover:e[5],backgroundDisabled:e[4]},on:{backgroundDefault:c[3],backgroundHover:c[2],backgroundDisabled:e[4]}},as={off:{backgroundDefault:"#00000000",backgroundHover:e[5],backgroundDisabled:e[2],border:e[6]},on:{backgroundDefault:c[0],backgroundHover:c[1],backgroundDisabled:e[2],border:c[3]}},is={content:e[10],background:e[4]},ls={background:e[4],active:c[3]},cs={background:e[1],content:e[9],border:e[4]},us={backgroundDefault:e[1],backgroundHover:e[3],backgroundActive:e[4],border:e[4],contentPrimary:e[10],contentSecondary:e[9],contentTertiary:e[8]},ds={background:e[1],content:e[9],border:e[4]},ps={activeBackground:e[3],activeContent:x[5],inactiveContent:e[9],border:e[4]},fs={header:{textDefault:e[9],textHover:e[8],backgroundDefault:e[1]},border:e[4],cell:{textPrimary:e[10],textSecondary:e[9],backgroundDefault:e[2],backgroundHover:e[1]}},ms={textPrimaryDefault:e[10],textPrimaryHover:e[10],textSecondaryDefault:e[8],textSecondaryHover:e[9],iconPrimary:e[10],iconSecondary:e[8]},xs={background:c[1],active:c[5]},gs={textDefault:e[10],textSelected:b.white,textDisabled:e[7],backgroundDefault:e[2],backgroundMiddle:e[3],backgroundSelected:x[3],border:e[4]},bs=e[9];function pe(){return typeof SynOS<"u"&&SynOS.ReactDOM||{}}var Ns=new Proxy({},{get:function(t,n){return pe()[n]}});function Q(){return pe().createRoot.apply(null,arguments)}var fe=/```json\s*\n([\s\S]*?)```/g;function me(t){let n=[],r=t,s=[],a;for(fe.lastIndex=0;(a=fe.exec(t))!==null;)s.push({fullMatch:a[0],json:a[1],index:a.index});for(let i=s.length-1;i>=0;i--){let{fullMatch:d,json:S}=s[i],p;try{p=JSON.parse(S)}catch{continue}typeof p=="object"&&p!==null&&"kind"in p&&typeof p.kind=="string"&&(n.unshift(p),r=r.replace(d,""))}return r=r.replace(/\n{3,}/g,`
2
2
 
3
- `).trim(),{displayText:s,actions:n}}var P=class extends Error{constructor(n){super(n),this.name="AuthError"}};function he(){let t=document.cookie.match(/stytch_session_jwt=([^;]*)/);if(!t||!t[1])throw new P("No authentication token found");let n=localStorage.getItem("syntrologie_workspace_id");if(!n)throw new P("No workspace ID found");return{Authorization:`Bearer ${t[1]}`,"X-Workspace-Id":n}}async function oe(t,n){let s=he(),o=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json",...s},body:JSON.stringify(n)});if(!o.ok)throw o.status===401?new P("Session expired or unauthorized"):new Error(`Chat request failed: ${o.status} ${o.statusText}`);return o.json()}var ye=0;function X(){return`msg-${Date.now()}-${++ye}`}function ae(t){let{backendUrl:n,tileId:s,runtime:o,greeting:a,maxHistory:l=20,mlflowRunId:u,config:v}=t,[p,C]=w(()=>a?[{id:X(),role:"assistant",text:a,timestamp:Date.now()}]:[]),[T,k]=w(!1),[S,j]=w(null),E=h(null),ce=O(async ue=>{let F=ue.trim();if(!F)return;j(null);let K={id:X(),role:"user",text:F,timestamp:Date.now()};C(H=>[...H,K]),k(!0);try{let W=[...p,K].slice(-l).map(R=>({role:R.role,content:R.text})),pe=await oe(n,{message:F,history:W,mlflow_run_id:u,current_config:v}),{displayText:fe,actions:L}=ne(pe.response),me={id:X(),role:"assistant",text:fe,timestamp:Date.now()};C(R=>[...R,me]),L.length>0&&(E.current?.isApplied()&&await E.current.revertAll(),E.current=await o.actions.applyBatch(L),o.events.publish("chatbot.actions_applied",{count:L.length,kinds:L.map(R=>R.kind),tileId:s}))}catch(H){let W=H instanceof Error?H.message:"An unexpected error occurred";j(W)}finally{k(!1)}},[n,p,l,u,v,o,s]),de=O(()=>{C([]),j(null),E.current?.isApplied()&&(E.current.revertAll(),E.current=null),sessionStorage.removeItem(`syntro:chatbot:history:${s}`)},[s]);return{messages:p,isLoading:T,error:S,sendMessage:ce,clearMessages:de}}var x={container:{display:"flex",flexDirection:"column",height:"100%",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"14px"},messageList:{flex:1,overflowY:"auto",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"},messageBubble:{maxWidth:"85%",padding:"8px 12px",borderRadius:"12px",lineHeight:1.5,wordBreak:"break-word"},userMessage:{alignSelf:"flex-end",backgroundColor:y[4],color:b.white,borderBottomRightRadius:"4px"},assistantMessage:{alignSelf:"flex-start",backgroundColor:"rgba(255, 255, 255, 0.08)",color:e[10],borderBottomLeftRadius:"4px"},loadingDots:{alignSelf:"flex-start",padding:"8px 16px",backgroundColor:"rgba(255, 255, 255, 0.05)",borderRadius:"12px",color:e[8],fontSize:"13px"},errorBanner:{padding:"8px 12px",backgroundColor:"rgba(239, 68, 68, 0.1)",color:d[4],fontSize:"13px",borderRadius:"8px",margin:"0 12px"},inputForm:{display:"flex",gap:"8px",padding:"12px",borderTop:"1px solid rgba(255, 255, 255, 0.06)"},input:{flex:1,padding:"8px 12px",borderRadius:"8px",border:"1px solid rgba(255, 255, 255, 0.1)",backgroundColor:"rgba(0, 0, 0, 0.2)",color:e[12],fontSize:"14px",outline:"none",fontFamily:"inherit"},sendButton:{padding:"8px 16px",borderRadius:"8px",border:"none",backgroundColor:y[4],color:b.white,fontWeight:600,fontSize:"13px",cursor:"pointer",whiteSpace:"nowrap"},sendButtonDisabled:{opacity:.5,cursor:"not-allowed"}};function ve({message:t}){let n=t.role==="user",s={...x.messageBubble,...n?x.userMessage:x.assistantMessage};return r("div",{style:s,children:t.text})}function ke({config:t,runtime:n,tileId:s}){let{messages:o,isLoading:a,error:l,sendMessage:u,clearMessages:v}=ae({backendUrl:t.backendUrl,tileId:s,runtime:n,greeting:t.greeting,maxHistory:t.maxHistory,mlflowRunId:t.mlflowRunId}),p=h(null),C=h(null);_(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[o,a]);let T=k=>{k.preventDefault();let S=C.current;if(!S||!S.value.trim()||a)return;let j=S.value;S.value="",u(j)};return i("div",{style:x.container,"data-testid":"chat-assistant",children:[i("div",{ref:p,style:x.messageList,children:[o.map(k=>r(ve,{message:k},k.id)),a&&r("div",{style:x.loadingDots,children:"Thinking..."})]}),l&&r("div",{style:x.errorBanner,children:l}),i("form",{onSubmit:T,style:x.inputForm,children:[r("input",{ref:C,style:x.input,placeholder:"Ask anything...",disabled:a,"data-testid":"chat-input"}),r("button",{type:"submit",disabled:a,style:{...x.sendButton,...a?x.sendButtonDisabled:{}},"data-testid":"chat-send",children:"Send"})]})]})}var ie={mount(t,n){let{config:s,runtime:o,tileId:a="chatbot-widget"}=n||{};if(s&&o&&typeof V=="function"){let l=V(t);return l.render(Z.createElement(ke,{config:s,runtime:o,tileId:a})),()=>{l.unmount()}}return!s||!o?(t.innerHTML=`<div style="padding: 16px; color: ${e[8]};">Chat widget requires config and runtime.</div>`,()=>{t.innerHTML=""}):(t.innerHTML=`
3
+ `).trim(),{displayText:r,actions:n}}var D=class extends Error{constructor(n){super(n),this.name="AuthError"}};function ze(){let t=document.cookie.match(/stytch_session_jwt=([^;]*)/);if(!t||!t[1])throw new D("No authentication token found");let n=localStorage.getItem("syntrologie_workspace_id");if(!n)throw new D("No workspace ID found");return{Authorization:`Bearer ${t[1]}`,"X-Workspace-Id":n}}async function xe(t,n){let r=ze(),s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json",...r},body:JSON.stringify(n)});if(!s.ok)throw s.status===401?new D("Session expired or unauthorized"):new Error(`Chat request failed: ${s.status} ${s.statusText}`);return s.json()}var Fe=0;function ee(){return`msg-${Date.now()}-${++Fe}`}function ge(t){let{backendUrl:n,tileId:r,runtime:s,greeting:a,maxHistory:i=20,mlflowRunId:d,config:S}=t,[p,R]=y(()=>a?[{id:ee(),role:"assistant",text:a,timestamp:Date.now()}]:[]),[W,E]=y(!1),[N,I]=y(null),$=g(null),ye=k(async Ce=>{let G=Ce.trim();if(!G)return;I(null);let te={id:ee(),role:"user",text:G,timestamp:Date.now()};R(L=>[...L,te]),E(!0);try{let U=[...p,te].slice(-i).map(_=>({role:_.role,content:_.text})),we=await xe(n,{message:G,history:U,mlflow_run_id:d,current_config:S}),{displayText:Se,actions:B}=me(we.response),Ee={id:ee(),role:"assistant",text:Se,timestamp:Date.now()};R(_=>[..._,Ee]),B.length>0&&($.current?.isApplied()&&await $.current.revertAll(),$.current=await s.actions.applyBatch(B),s.events.publish("chatbot.actions_applied",{count:B.length,kinds:B.map(_=>_.kind),tileId:r}))}catch(L){let U=L instanceof Error?L.message:"An unexpected error occurred";I(U)}finally{E(!1)}},[n,p,i,d,S,s,r]),ve=k(()=>{R([]),I(null),$.current?.isApplied()&&($.current.revertAll(),$.current=null),sessionStorage.removeItem(`syntro:chatbot:history:${r}`)},[r]);return{messages:p,isLoading:W,error:N,sendMessage:ye,clearMessages:ve}}var h={container:{display:"flex",flexDirection:"column",height:"100%",fontFamily:"system-ui, -apple-system, sans-serif",fontSize:"14px"},messageList:{flex:1,overflowY:"auto",padding:"12px",display:"flex",flexDirection:"column",gap:"8px"},messageBubble:{maxWidth:"85%",padding:"8px 12px",borderRadius:"12px",lineHeight:1.5,wordBreak:"break-word"},userMessage:{alignSelf:"flex-end",backgroundColor:w[4],color:b.white,borderBottomRightRadius:"4px"},assistantMessage:{alignSelf:"flex-start",backgroundColor:"rgba(255, 255, 255, 0.08)",color:e[10],borderBottomLeftRadius:"4px"},loadingDots:{alignSelf:"flex-start",padding:"8px 16px",backgroundColor:"rgba(255, 255, 255, 0.05)",borderRadius:"12px",color:e[8],fontSize:"13px"},errorBanner:{padding:"8px 12px",backgroundColor:"rgba(239, 68, 68, 0.1)",color:u[4],fontSize:"13px",borderRadius:"8px",margin:"0 12px"},inputForm:{display:"flex",gap:"8px",padding:"12px",borderTop:"1px solid rgba(255, 255, 255, 0.06)"},input:{flex:1,padding:"8px 12px",borderRadius:"8px",border:"1px solid rgba(255, 255, 255, 0.1)",backgroundColor:"rgba(0, 0, 0, 0.2)",color:e[12],fontSize:"14px",outline:"none",fontFamily:"inherit"},sendButton:{padding:"8px 16px",borderRadius:"8px",border:"none",backgroundColor:w[4],color:b.white,fontWeight:600,fontSize:"13px",cursor:"pointer",whiteSpace:"nowrap"},sendButtonDisabled:{opacity:.5,cursor:"not-allowed"}};function We({message:t}){let n=t.role==="user",r={...h.messageBubble,...n?h.userMessage:h.assistantMessage};return o("div",{style:r,children:t.text})}function Ge({config:t,runtime:n,tileId:r}){let{messages:s,isLoading:a,error:i,sendMessage:d,clearMessages:S}=ge({backendUrl:t.backendUrl,tileId:r,runtime:n,greeting:t.greeting,maxHistory:t.maxHistory,mlflowRunId:t.mlflowRunId}),p=g(null),R=g(null);v(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[]);let W=E=>{E.preventDefault();let N=R.current;if(!N||!N.value.trim()||a)return;let I=N.value;N.value="",d(I)};return l("div",{style:h.container,"data-testid":"chat-assistant",children:[l("div",{ref:p,style:h.messageList,children:[s.map(E=>o(We,{message:E},E.id)),a&&o("div",{style:h.loadingDots,children:"Thinking..."})]}),i&&o("div",{style:h.errorBanner,children:i}),l("form",{onSubmit:W,style:h.inputForm,children:[o("input",{ref:R,style:h.input,placeholder:"Ask anything...",disabled:a,"data-testid":"chat-input"}),o("button",{type:"submit",disabled:a,style:{...h.sendButton,...a?h.sendButtonDisabled:{}},"data-testid":"chat-send",children:"Send"})]})]})}var be={mount(t,n){let{config:r,runtime:s,tileId:a="chatbot-widget"}=n||{};if(r&&s&&typeof Q=="function"){let i=Q(t);return i.render(se.createElement(Ge,{config:r,runtime:s,tileId:a})),()=>{i.unmount()}}return!r||!s?(t.innerHTML=`<div style="padding: 16px; color: ${e[8]};">Chat widget requires config and runtime.</div>`,()=>{t.innerHTML=""}):(t.innerHTML=`
4
4
  <div style="padding: 16px; font-family: system-ui; color: ${e[10]};">
5
- <p style="margin: 0 0 8px; color: ${e[8]};">${s.greeting||"Hi! How can I help?"}</p>
5
+ <p style="margin: 0 0 8px; color: ${e[8]};">${r.greeting||"Hi! How can I help?"}</p>
6
6
  <p style="margin: 0; font-size: 12px; color: ${e[7]};">Chat widget mounted. Awaiting React renderer.</p>
7
7
  </div>
8
- `,()=>{t.innerHTML=""})}};var B={id:"adaptive-chatbot",version:"1.0.0",name:"Chat Assistant",description:"AI chat assistant with action execution capabilities",executors:[],widgets:[{id:"adaptive-chatbot:assistant",component:ie,metadata:{name:"Chat Assistant",description:"AI-powered chat assistant that can execute DOM actions",icon:"\u{1F4AC}"}}]};var le={id:"adaptive-chatbot",version:B.version,name:B.name,description:B.description,runtime:{actions:[],widgets:B.widgets},editor:{component:te,panel:ee},metadata:{isBuiltIn:!1}};if(typeof window<"u"){let t=window.SynOS?.appRegistry;t&&typeof t.register=="function"&&t.register(le)}var Jr=le;export{Jr as default,le as manifest};
8
+ `,()=>{t.innerHTML=""})}};var H={id:"adaptive-chatbot",version:"1.0.0",name:"Chat Assistant",description:"AI chat assistant with action execution capabilities",executors:[],widgets:[{id:"adaptive-chatbot:assistant",component:be,metadata:{name:"Chat Assistant",description:"AI-powered chat assistant that can execute DOM actions",icon:"\u{1F4AC}"}}]};var he={id:"adaptive-chatbot",version:H.version,name:H.name,description:H.description,runtime:{actions:[],widgets:H.widgets},editor:{component:de,panel:ue},metadata:{isBuiltIn:!1}};if(typeof window<"u"){let t=window.SynOS?.appRegistry;t&&typeof t.register=="function"&&t.register(he)}var Us=he;export{Us as default,he as manifest};
9
9
  //# sourceMappingURL=index.js.map