@walkeros/explorer 3.0.0 → 3.0.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 (361) hide show
  1. package/dist/__mocks__/@monaco-editor/react.d.ts +3 -0
  2. package/dist/__mocks__/@monaco-editor/react.d.ts.map +1 -0
  3. package/dist/__mocks__/@monaco-editor/react.js +4 -0
  4. package/dist/__mocks__/@monaco-editor/react.js.map +1 -0
  5. package/dist/components/atoms/box.d.ts +27 -0
  6. package/dist/components/atoms/box.d.ts.map +1 -0
  7. package/dist/components/atoms/box.js +86 -0
  8. package/dist/components/atoms/box.js.map +1 -0
  9. package/dist/components/atoms/box.stories.d.ts +34 -0
  10. package/dist/components/atoms/box.stories.d.ts.map +1 -0
  11. package/dist/components/atoms/box.stories.js +104 -0
  12. package/dist/components/atoms/box.stories.js.map +1 -0
  13. package/dist/components/atoms/button-group.d.ts +17 -0
  14. package/dist/components/atoms/button-group.d.ts.map +1 -0
  15. package/dist/components/atoms/button-group.js +12 -0
  16. package/dist/components/atoms/button-group.js.map +1 -0
  17. package/dist/components/atoms/button-group.stories.d.ts +18 -0
  18. package/dist/components/atoms/button-group.stories.d.ts.map +1 -0
  19. package/dist/components/atoms/button-group.stories.js +39 -0
  20. package/dist/components/atoms/button-group.stories.js.map +1 -0
  21. package/dist/components/atoms/button-link.d.ts +12 -0
  22. package/dist/components/atoms/button-link.d.ts.map +1 -0
  23. package/dist/components/atoms/button-link.js +10 -0
  24. package/dist/components/atoms/button-link.js.map +1 -0
  25. package/dist/components/atoms/button-link.stories.d.ts +11 -0
  26. package/dist/components/atoms/button-link.stories.d.ts.map +1 -0
  27. package/dist/components/atoms/button-link.stories.js +50 -0
  28. package/dist/components/atoms/button-link.stories.js.map +1 -0
  29. package/dist/components/atoms/button.d.ts +15 -0
  30. package/dist/components/atoms/button.d.ts.map +1 -0
  31. package/dist/components/atoms/button.js +11 -0
  32. package/dist/components/atoms/button.js.map +1 -0
  33. package/dist/components/atoms/button.stories.d.ts +14 -0
  34. package/dist/components/atoms/button.stories.d.ts.map +1 -0
  35. package/dist/components/atoms/button.stories.js +25 -0
  36. package/dist/components/atoms/button.stories.js.map +1 -0
  37. package/dist/components/atoms/code.d.ts +92 -0
  38. package/dist/components/atoms/code.d.ts.map +1 -0
  39. package/dist/components/atoms/code.js +405 -0
  40. package/dist/components/atoms/code.js.map +1 -0
  41. package/dist/components/atoms/code.stories.d.ts +46 -0
  42. package/dist/components/atoms/code.stories.d.ts.map +1 -0
  43. package/dist/components/atoms/code.stories.js +156 -0
  44. package/dist/components/atoms/code.stories.js.map +1 -0
  45. package/dist/components/atoms/footer.d.ts +21 -0
  46. package/dist/components/atoms/footer.d.ts.map +1 -0
  47. package/dist/components/atoms/footer.js +19 -0
  48. package/dist/components/atoms/footer.js.map +1 -0
  49. package/dist/components/atoms/footer.stories.d.ts +14 -0
  50. package/dist/components/atoms/footer.stories.d.ts.map +1 -0
  51. package/dist/components/atoms/footer.stories.js +29 -0
  52. package/dist/components/atoms/footer.stories.js.map +1 -0
  53. package/dist/components/atoms/grid.d.ts +65 -0
  54. package/dist/components/atoms/grid.d.ts.map +1 -0
  55. package/dist/components/atoms/grid.js +169 -0
  56. package/dist/components/atoms/grid.js.map +1 -0
  57. package/dist/components/atoms/grid.stories.d.ts +18 -0
  58. package/dist/components/atoms/grid.stories.d.ts.map +1 -0
  59. package/dist/components/atoms/grid.stories.js +60 -0
  60. package/dist/components/atoms/grid.stories.js.map +1 -0
  61. package/dist/components/atoms/header.d.ts +7 -0
  62. package/dist/components/atoms/header.d.ts.map +1 -0
  63. package/dist/components/atoms/header.js +5 -0
  64. package/dist/components/atoms/header.js.map +1 -0
  65. package/dist/components/atoms/header.stories.d.ts +15 -0
  66. package/dist/components/atoms/header.stories.d.ts.map +1 -0
  67. package/dist/components/atoms/header.stories.js +37 -0
  68. package/dist/components/atoms/header.stories.js.map +1 -0
  69. package/dist/components/atoms/icons/icon.stories.d.ts +18 -0
  70. package/dist/components/atoms/icons/icon.stories.d.ts.map +1 -0
  71. package/dist/components/atoms/icons/icon.stories.js +37 -0
  72. package/dist/components/atoms/icons/icon.stories.js.map +1 -0
  73. package/dist/components/atoms/icons/icons.d.ts +2 -0
  74. package/dist/components/atoms/icons/icons.d.ts.map +1 -0
  75. package/dist/components/atoms/icons/icons.js +7 -0
  76. package/dist/components/atoms/icons/icons.js.map +1 -0
  77. package/dist/components/atoms/icons/index.d.ts +3 -0
  78. package/dist/components/atoms/icons/index.d.ts.map +1 -0
  79. package/dist/components/atoms/icons/index.js +3 -0
  80. package/dist/components/atoms/icons/index.js.map +1 -0
  81. package/dist/components/atoms/mdx-code.d.ts +33 -0
  82. package/dist/components/atoms/mdx-code.d.ts.map +1 -0
  83. package/dist/components/atoms/mdx-code.js +69 -0
  84. package/dist/components/atoms/mdx-code.js.map +1 -0
  85. package/dist/components/atoms/preview-footer.d.ts +32 -0
  86. package/dist/components/atoms/preview-footer.d.ts.map +1 -0
  87. package/dist/components/atoms/preview-footer.js +31 -0
  88. package/dist/components/atoms/preview-footer.js.map +1 -0
  89. package/dist/components/atoms/spinner.d.ts +17 -0
  90. package/dist/components/atoms/spinner.d.ts.map +1 -0
  91. package/dist/components/atoms/spinner.js +14 -0
  92. package/dist/components/atoms/spinner.js.map +1 -0
  93. package/dist/components/atoms/spinner.stories.d.ts +7 -0
  94. package/dist/components/atoms/spinner.stories.d.ts.map +1 -0
  95. package/dist/components/atoms/spinner.stories.js +9 -0
  96. package/dist/components/atoms/spinner.stories.js.map +1 -0
  97. package/dist/components/atoms/toggle.d.ts +9 -0
  98. package/dist/components/atoms/toggle.d.ts.map +1 -0
  99. package/dist/components/atoms/toggle.js +6 -0
  100. package/dist/components/atoms/toggle.js.map +1 -0
  101. package/dist/components/demos/DestinationDemo.d.ts +48 -0
  102. package/dist/components/demos/DestinationDemo.d.ts.map +1 -0
  103. package/dist/components/demos/DestinationDemo.js +105 -0
  104. package/dist/components/demos/DestinationDemo.js.map +1 -0
  105. package/dist/components/demos/DestinationDemo.stories.d.ts +17 -0
  106. package/dist/components/demos/DestinationDemo.stories.d.ts.map +1 -0
  107. package/dist/components/demos/DestinationDemo.stories.js +53 -0
  108. package/dist/components/demos/DestinationDemo.stories.js.map +1 -0
  109. package/dist/components/demos/DestinationInitDemo.d.ts +34 -0
  110. package/dist/components/demos/DestinationInitDemo.d.ts.map +1 -0
  111. package/dist/components/demos/DestinationInitDemo.js +73 -0
  112. package/dist/components/demos/DestinationInitDemo.js.map +1 -0
  113. package/dist/components/demos/DestinationInitDemo.stories.d.ts +17 -0
  114. package/dist/components/demos/DestinationInitDemo.stories.d.ts.map +1 -0
  115. package/dist/components/demos/DestinationInitDemo.stories.js +39 -0
  116. package/dist/components/demos/DestinationInitDemo.stories.js.map +1 -0
  117. package/dist/components/demos/PromotionPlayground.d.ts +30 -0
  118. package/dist/components/demos/PromotionPlayground.d.ts.map +1 -0
  119. package/dist/components/demos/PromotionPlayground.js +366 -0
  120. package/dist/components/demos/PromotionPlayground.js.map +1 -0
  121. package/dist/components/demos/PromotionPlayground.stories.d.ts +27 -0
  122. package/dist/components/demos/PromotionPlayground.stories.d.ts.map +1 -0
  123. package/dist/components/demos/PromotionPlayground.stories.js +32 -0
  124. package/dist/components/demos/PromotionPlayground.stories.js.map +1 -0
  125. package/dist/components/molecules/architecture-flow/ArchitectureFlow.d.ts +24 -0
  126. package/dist/components/molecules/architecture-flow/ArchitectureFlow.d.ts.map +1 -0
  127. package/dist/components/molecules/architecture-flow/ArchitectureFlow.js +10 -0
  128. package/dist/components/molecules/architecture-flow/ArchitectureFlow.js.map +1 -0
  129. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.d.ts +7 -0
  130. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.d.ts.map +1 -0
  131. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.js +71 -0
  132. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.js.map +1 -0
  133. package/dist/components/molecules/architecture-flow/index.d.ts +3 -0
  134. package/dist/components/molecules/architecture-flow/index.d.ts.map +1 -0
  135. package/dist/components/molecules/architecture-flow/index.js +2 -0
  136. package/dist/components/molecules/architecture-flow/index.js.map +1 -0
  137. package/dist/components/molecules/code-box.d.ts +75 -0
  138. package/dist/components/molecules/code-box.d.ts.map +1 -0
  139. package/dist/components/molecules/code-box.js +174 -0
  140. package/dist/components/molecules/code-box.js.map +1 -0
  141. package/dist/components/molecules/code-box.stories.d.ts +87 -0
  142. package/dist/components/molecules/code-box.stories.d.ts.map +1 -0
  143. package/dist/components/molecules/code-box.stories.js +300 -0
  144. package/dist/components/molecules/code-box.stories.js.map +1 -0
  145. package/dist/components/molecules/code-snippet.d.ts +58 -0
  146. package/dist/components/molecules/code-snippet.d.ts.map +1 -0
  147. package/dist/components/molecules/code-snippet.js +72 -0
  148. package/dist/components/molecules/code-snippet.js.map +1 -0
  149. package/dist/components/molecules/code-snippet.stories.d.ts +23 -0
  150. package/dist/components/molecules/code-snippet.stories.d.ts.map +1 -0
  151. package/dist/components/molecules/code-snippet.stories.js +87 -0
  152. package/dist/components/molecules/code-snippet.stories.js.map +1 -0
  153. package/dist/components/molecules/dropdown.d.ts +68 -0
  154. package/dist/components/molecules/dropdown.d.ts.map +1 -0
  155. package/dist/components/molecules/dropdown.js +47 -0
  156. package/dist/components/molecules/dropdown.js.map +1 -0
  157. package/dist/components/molecules/dropdown.stories.d.ts +7 -0
  158. package/dist/components/molecules/dropdown.stories.d.ts.map +1 -0
  159. package/dist/components/molecules/dropdown.stories.js +18 -0
  160. package/dist/components/molecules/dropdown.stories.js.map +1 -0
  161. package/dist/components/molecules/flow-map/FlowMap.d.ts +74 -0
  162. package/dist/components/molecules/flow-map/FlowMap.d.ts.map +1 -0
  163. package/dist/components/molecules/flow-map/FlowMap.js +1039 -0
  164. package/dist/components/molecules/flow-map/FlowMap.js.map +1 -0
  165. package/dist/components/molecules/flow-map/FlowMap.stories.d.ts +47 -0
  166. package/dist/components/molecules/flow-map/FlowMap.stories.d.ts.map +1 -0
  167. package/dist/components/molecules/flow-map/FlowMap.stories.js +355 -0
  168. package/dist/components/molecules/flow-map/FlowMap.stories.js.map +1 -0
  169. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.d.ts +29 -0
  170. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.d.ts.map +1 -0
  171. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.js +117 -0
  172. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.js.map +1 -0
  173. package/dist/components/molecules/flow-map/index.d.ts +3 -0
  174. package/dist/components/molecules/flow-map/index.d.ts.map +1 -0
  175. package/dist/components/molecules/flow-map/index.js +2 -0
  176. package/dist/components/molecules/flow-map/index.js.map +1 -0
  177. package/dist/components/molecules/preview.d.ts +23 -0
  178. package/dist/components/molecules/preview.d.ts.map +1 -0
  179. package/dist/components/molecules/preview.js +232 -0
  180. package/dist/components/molecules/preview.js.map +1 -0
  181. package/dist/components/molecules/preview.stories.d.ts +23 -0
  182. package/dist/components/molecules/preview.stories.d.ts.map +1 -0
  183. package/dist/components/molecules/preview.stories.js +186 -0
  184. package/dist/components/molecules/preview.stories.js.map +1 -0
  185. package/dist/components/molecules/property-table.d.ts +7 -0
  186. package/dist/components/molecules/property-table.d.ts.map +1 -0
  187. package/dist/components/molecules/property-table.js +88 -0
  188. package/dist/components/molecules/property-table.js.map +1 -0
  189. package/dist/components/molecules/property-table.stories.d.ts +24 -0
  190. package/dist/components/molecules/property-table.stories.d.ts.map +1 -0
  191. package/dist/components/molecules/property-table.stories.js +86 -0
  192. package/dist/components/molecules/property-table.stories.js.map +1 -0
  193. package/dist/components/organisms/browser-box.d.ts +31 -0
  194. package/dist/components/organisms/browser-box.d.ts.map +1 -0
  195. package/dist/components/organisms/browser-box.js +80 -0
  196. package/dist/components/organisms/browser-box.js.map +1 -0
  197. package/dist/components/organisms/browser-box.stories.d.ts +26 -0
  198. package/dist/components/organisms/browser-box.stories.d.ts.map +1 -0
  199. package/dist/components/organisms/browser-box.stories.js +102 -0
  200. package/dist/components/organisms/browser-box.stories.js.map +1 -0
  201. package/dist/components/organisms/collector-box.d.ts +24 -0
  202. package/dist/components/organisms/collector-box.d.ts.map +1 -0
  203. package/dist/components/organisms/collector-box.js +56 -0
  204. package/dist/components/organisms/collector-box.js.map +1 -0
  205. package/dist/components/organisms/collector-box.stories.d.ts +22 -0
  206. package/dist/components/organisms/collector-box.stories.d.ts.map +1 -0
  207. package/dist/components/organisms/collector-box.stories.js +59 -0
  208. package/dist/components/organisms/collector-box.stories.js.map +1 -0
  209. package/dist/components/organisms/live-code.d.ts +22 -0
  210. package/dist/components/organisms/live-code.d.ts.map +1 -0
  211. package/dist/components/organisms/live-code.js +50 -0
  212. package/dist/components/organisms/live-code.js.map +1 -0
  213. package/dist/components/organisms/live-code.stories.d.ts +24 -0
  214. package/dist/components/organisms/live-code.stories.d.ts.map +1 -0
  215. package/dist/components/organisms/live-code.stories.js +55 -0
  216. package/dist/components/organisms/live-code.stories.js.map +1 -0
  217. package/dist/components/ui/button.d.ts +4 -0
  218. package/dist/components/ui/button.d.ts.map +1 -0
  219. package/dist/components/ui/button.js +6 -0
  220. package/dist/components/ui/button.js.map +1 -0
  221. package/dist/components/ui/icon.d.ts +5 -0
  222. package/dist/components/ui/icon.d.ts.map +1 -0
  223. package/dist/components/ui/icon.js +5 -0
  224. package/dist/components/ui/icon.js.map +1 -0
  225. package/dist/contexts/GridHeightContext.d.ts +11 -0
  226. package/dist/contexts/GridHeightContext.d.ts.map +1 -0
  227. package/dist/contexts/GridHeightContext.js +14 -0
  228. package/dist/contexts/GridHeightContext.js.map +1 -0
  229. package/dist/helpers/capture.d.ts +83 -0
  230. package/dist/helpers/capture.d.ts.map +1 -0
  231. package/dist/helpers/capture.js +125 -0
  232. package/dist/helpers/capture.js.map +1 -0
  233. package/dist/helpers/destinations.d.ts +21 -0
  234. package/dist/helpers/destinations.d.ts.map +1 -0
  235. package/dist/helpers/destinations.js +46 -0
  236. package/dist/helpers/destinations.js.map +1 -0
  237. package/dist/hooks/useDropdown.d.ts +34 -0
  238. package/dist/hooks/useDropdown.d.ts.map +1 -0
  239. package/dist/hooks/useDropdown.js +66 -0
  240. package/dist/hooks/useDropdown.js.map +1 -0
  241. package/dist/hooks/useMonacoHeight.d.ts +31 -0
  242. package/dist/hooks/useMonacoHeight.d.ts.map +1 -0
  243. package/dist/hooks/useMonacoHeight.js +83 -0
  244. package/dist/hooks/useMonacoHeight.js.map +1 -0
  245. package/dist/hooks/useTreeState.d.ts +32 -0
  246. package/dist/hooks/useTreeState.d.ts.map +1 -0
  247. package/dist/hooks/useTreeState.js +94 -0
  248. package/dist/hooks/useTreeState.js.map +1 -0
  249. package/dist/index.d.ts +69 -1338
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +59 -1
  252. package/dist/index.js.map +1 -1
  253. package/dist/lib/utils.d.ts +7 -0
  254. package/dist/lib/utils.d.ts.map +1 -0
  255. package/dist/lib/utils.js +10 -0
  256. package/dist/lib/utils.js.map +1 -0
  257. package/dist/providers/MDXProvider.d.ts +40 -0
  258. package/dist/providers/MDXProvider.d.ts.map +1 -0
  259. package/dist/providers/MDXProvider.js +57 -0
  260. package/dist/providers/MDXProvider.js.map +1 -0
  261. package/dist/themes/index.d.ts +23 -0
  262. package/dist/themes/index.d.ts.map +1 -0
  263. package/dist/themes/index.js +29 -0
  264. package/dist/themes/index.js.map +1 -0
  265. package/dist/themes/lighthouse.d.ts +26 -0
  266. package/dist/themes/lighthouse.d.ts.map +1 -0
  267. package/dist/themes/lighthouse.js +230 -0
  268. package/dist/themes/lighthouse.js.map +1 -0
  269. package/dist/themes/palenight.d.ts +31 -0
  270. package/dist/themes/palenight.d.ts.map +1 -0
  271. package/dist/themes/palenight.js +236 -0
  272. package/dist/themes/palenight.js.map +1 -0
  273. package/dist/themes/types.d.ts +103 -0
  274. package/dist/themes/types.d.ts.map +1 -0
  275. package/dist/themes/types.js +8 -0
  276. package/dist/themes/types.js.map +1 -0
  277. package/dist/types/intellisense.d.ts +33 -0
  278. package/dist/types/intellisense.d.ts.map +1 -0
  279. package/dist/types/intellisense.js +2 -0
  280. package/dist/types/intellisense.js.map +1 -0
  281. package/dist/utils/code-normalizer.d.ts +11 -0
  282. package/dist/utils/code-normalizer.d.ts.map +1 -0
  283. package/dist/utils/code-normalizer.js +21 -0
  284. package/dist/utils/code-normalizer.js.map +1 -0
  285. package/dist/utils/contract-path-walker.d.ts +27 -0
  286. package/dist/utils/contract-path-walker.d.ts.map +1 -0
  287. package/dist/utils/contract-path-walker.js +145 -0
  288. package/dist/utils/contract-path-walker.js.map +1 -0
  289. package/dist/utils/format-code.d.ts +9 -0
  290. package/dist/utils/format-code.d.ts.map +1 -0
  291. package/dist/utils/format-code.js +77 -0
  292. package/dist/utils/format-code.js.map +1 -0
  293. package/dist/utils/mapping-context-detector.d.ts +17 -0
  294. package/dist/utils/mapping-context-detector.d.ts.map +1 -0
  295. package/dist/utils/mapping-context-detector.js +22 -0
  296. package/dist/utils/mapping-context-detector.js.map +1 -0
  297. package/dist/utils/monaco-context-types.d.ts +39 -0
  298. package/dist/utils/monaco-context-types.d.ts.map +1 -0
  299. package/dist/utils/monaco-context-types.js +426 -0
  300. package/dist/utils/monaco-context-types.js.map +1 -0
  301. package/dist/utils/monaco-decorators.d.ts +17 -0
  302. package/dist/utils/monaco-decorators.d.ts.map +1 -0
  303. package/dist/utils/monaco-decorators.js +81 -0
  304. package/dist/utils/monaco-decorators.js.map +1 -0
  305. package/dist/utils/monaco-formatters.d.ts +16 -0
  306. package/dist/utils/monaco-formatters.d.ts.map +1 -0
  307. package/dist/utils/monaco-formatters.js +139 -0
  308. package/dist/utils/monaco-formatters.js.map +1 -0
  309. package/dist/utils/monaco-intellisense-flow-extractor.d.ts +13 -0
  310. package/dist/utils/monaco-intellisense-flow-extractor.d.ts.map +1 -0
  311. package/dist/utils/monaco-intellisense-flow-extractor.js +168 -0
  312. package/dist/utils/monaco-intellisense-flow-extractor.js.map +1 -0
  313. package/dist/utils/monaco-json-path.d.ts +12 -0
  314. package/dist/utils/monaco-json-path.d.ts.map +1 -0
  315. package/dist/utils/monaco-json-path.js +68 -0
  316. package/dist/utils/monaco-json-path.js.map +1 -0
  317. package/dist/utils/monaco-json-schema.d.ts +45 -0
  318. package/dist/utils/monaco-json-schema.d.ts.map +1 -0
  319. package/dist/utils/monaco-json-schema.js +90 -0
  320. package/dist/utils/monaco-json-schema.js.map +1 -0
  321. package/dist/utils/monaco-schema-contract.d.ts +8 -0
  322. package/dist/utils/monaco-schema-contract.d.ts.map +1 -0
  323. package/dist/utils/monaco-schema-contract.js +73 -0
  324. package/dist/utils/monaco-schema-contract.js.map +1 -0
  325. package/dist/utils/monaco-schema-enrichment.d.ts +26 -0
  326. package/dist/utils/monaco-schema-enrichment.d.ts.map +1 -0
  327. package/dist/utils/monaco-schema-enrichment.js +31 -0
  328. package/dist/utils/monaco-schema-enrichment.js.map +1 -0
  329. package/dist/utils/monaco-schema-flow-config.d.ts +10 -0
  330. package/dist/utils/monaco-schema-flow-config.d.ts.map +1 -0
  331. package/dist/utils/monaco-schema-flow-config.js +201 -0
  332. package/dist/utils/monaco-schema-flow-config.js.map +1 -0
  333. package/dist/utils/monaco-schema-variables.d.ts +4 -0
  334. package/dist/utils/monaco-schema-variables.d.ts.map +1 -0
  335. package/dist/utils/monaco-schema-variables.js +26 -0
  336. package/dist/utils/monaco-schema-variables.js.map +1 -0
  337. package/dist/utils/monaco-types.d.ts +174 -0
  338. package/dist/utils/monaco-types.d.ts.map +1 -0
  339. package/dist/utils/monaco-types.js +378 -0
  340. package/dist/utils/monaco-types.js.map +1 -0
  341. package/dist/utils/monaco-walkeros-completions.d.ts +23 -0
  342. package/dist/utils/monaco-walkeros-completions.d.ts.map +1 -0
  343. package/dist/utils/monaco-walkeros-completions.js +258 -0
  344. package/dist/utils/monaco-walkeros-completions.js.map +1 -0
  345. package/dist/utils/monaco-walkeros-decorations.d.ts +29 -0
  346. package/dist/utils/monaco-walkeros-decorations.d.ts.map +1 -0
  347. package/dist/utils/monaco-walkeros-decorations.js +87 -0
  348. package/dist/utils/monaco-walkeros-decorations.js.map +1 -0
  349. package/dist/utils/monaco-walkeros-markers.d.ts +13 -0
  350. package/dist/utils/monaco-walkeros-markers.d.ts.map +1 -0
  351. package/dist/utils/monaco-walkeros-markers.js +69 -0
  352. package/dist/utils/monaco-walkeros-markers.js.map +1 -0
  353. package/dist/utils/monaco-walkeros-providers.d.ts +19 -0
  354. package/dist/utils/monaco-walkeros-providers.d.ts.map +1 -0
  355. package/dist/utils/monaco-walkeros-providers.js +284 -0
  356. package/dist/utils/monaco-walkeros-providers.js.map +1 -0
  357. package/dist/utils/path-analyzer.d.ts +88 -0
  358. package/dist/utils/path-analyzer.d.ts.map +1 -0
  359. package/dist/utils/path-analyzer.js +215 -0
  360. package/dist/utils/path-analyzer.js.map +1 -0
  361. package/package.json +6 -6
@@ -0,0 +1,53 @@
1
+ import { DestinationDemo } from './DestinationDemo';
2
+ import { captureDestinationPush } from '../../helpers/capture';
3
+ import { getEvent } from '@walkeros/core';
4
+ import destinationGtag from '@walkeros/web-destination-gtag';
5
+ import * as examples from '@walkeros/web-destination-gtag/examples';
6
+ /**
7
+ * DestinationDemo - Interactive destination testing component
8
+ *
9
+ * Tests destination implementations with real walkerOS events.
10
+ * Automatically captures destination.push() calls and displays output.
11
+ * Perfect for testing and debugging destination configurations.
12
+ */
13
+ const meta = {
14
+ component: DestinationDemo,
15
+ title: 'Demos/DestinationDemo',
16
+ tags: ['autodocs'],
17
+ parameters: {
18
+ layout: 'fullscreen',
19
+ },
20
+ };
21
+ export default meta;
22
+ // Create documentation gtag destination with examples
23
+ // Cast to generic Destination.Instance to avoid type conflicts with specific gtag types
24
+ const documentationGtag = {
25
+ ...destinationGtag,
26
+ examples,
27
+ };
28
+ /**
29
+ * Default destination demo with gtag GA4 purchase event
30
+ */
31
+ export const Default = {
32
+ args: {
33
+ destination: documentationGtag,
34
+ event: getEvent('order complete', {
35
+ data: {
36
+ id: 'T12345',
37
+ total: 99.99,
38
+ taxes: 9.0,
39
+ shipping: 5.99,
40
+ currency: 'EUR',
41
+ },
42
+ }),
43
+ mapping: examples.step.purchase.mapping,
44
+ settings: {
45
+ ga4: {
46
+ measurementId: 'G-XXXXXXXXXX',
47
+ },
48
+ },
49
+ generic: true,
50
+ fn: captureDestinationPush(documentationGtag, examples?.env?.push),
51
+ },
52
+ };
53
+ //# sourceMappingURL=DestinationDemo.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DestinationDemo.stories.js","sourceRoot":"","sources":["../../../src/components/demos/DestinationDemo.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAkC,MAAM,gBAAgB,CAAC;AAC1E,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,yCAAyC,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,IAAI,GAAiC;IACzC,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;KACrB;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,sDAAsD;AACtD,wFAAwF;AACxF,MAAM,iBAAiB,GAAG;IACxB,GAAG,eAAe;IAClB,QAAQ;CAC0D,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,WAAW,EAAE,iBAAiB;QAC9B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,EAAE;YAChC,IAAI,EAAE;gBACJ,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC;QACF,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAuB;QACvD,QAAQ,EAAE;YACR,GAAG,EAAE;gBACH,aAAa,EAAE,cAAc;aAC9B;SACF;QACD,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,sBAAsB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;KACnE;CACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { Destination } from '@walkeros/core';
2
+ export interface DestinationInitDemoProps {
3
+ destination: Destination.Instance;
4
+ settings?: unknown;
5
+ labelSettings?: string;
6
+ labelOutput?: string;
7
+ }
8
+ /**
9
+ * DestinationInitDemo - Interactive destination initialization testing component
10
+ *
11
+ * Automatically captures destination.init() calls and displays the output.
12
+ * The component auto-detects the destination's env from destination.examples.env.init.
13
+ *
14
+ * Props:
15
+ * - destination: Destination instance with examples.env.init export
16
+ * - settings: Initial destination-specific settings
17
+ * - labelSettings: Label for settings panel (default: 'Settings')
18
+ * - labelOutput: Label for output panel (default: 'Result')
19
+ *
20
+ * Example:
21
+ * ```tsx
22
+ * import destinationGtag from '@walkeros/web-destination-gtag';
23
+ * import { examples } from '@walkeros/web-destination-gtag';
24
+ *
25
+ * const destination = { ...destinationGtag, examples };
26
+ *
27
+ * <DestinationInitDemo
28
+ * destination={destination}
29
+ * settings={{ ga4: { measurementId: 'G-XXXXXXXXXX' } }}
30
+ * />
31
+ * ```
32
+ */
33
+ export declare function DestinationInitDemo({ destination, settings: initialSettings, labelSettings, labelOutput, }: DestinationInitDemoProps): import("react/jsx-runtime").JSX.Element;
34
+ //# sourceMappingURL=DestinationInitDemo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DestinationInitDemo.d.ts","sourceRoot":"","sources":["../../../src/components/demos/DestinationInitDemo.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,QAAQ,EAAE,eAAoB,EAC9B,aAA0B,EAC1B,WAAsB,GACvB,EAAE,wBAAwB,2CAyE1B"}
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback, useEffect } from 'react';
3
+ import { tryCatchAsync } from '@walkeros/core';
4
+ import { startFlow } from '@walkeros/collector';
5
+ import { CodeBox } from '../molecules/code-box';
6
+ import { Grid } from '../atoms/grid';
7
+ import { captureDestinationInit } from '../../helpers/capture';
8
+ /**
9
+ * DestinationInitDemo - Interactive destination initialization testing component
10
+ *
11
+ * Automatically captures destination.init() calls and displays the output.
12
+ * The component auto-detects the destination's env from destination.examples.env.init.
13
+ *
14
+ * Props:
15
+ * - destination: Destination instance with examples.env.init export
16
+ * - settings: Initial destination-specific settings
17
+ * - labelSettings: Label for settings panel (default: 'Settings')
18
+ * - labelOutput: Label for output panel (default: 'Result')
19
+ *
20
+ * Example:
21
+ * ```tsx
22
+ * import destinationGtag from '@walkeros/web-destination-gtag';
23
+ * import { examples } from '@walkeros/web-destination-gtag';
24
+ *
25
+ * const destination = { ...destinationGtag, examples };
26
+ *
27
+ * <DestinationInitDemo
28
+ * destination={destination}
29
+ * settings={{ ga4: { measurementId: 'G-XXXXXXXXXX' } }}
30
+ * />
31
+ * ```
32
+ */
33
+ export function DestinationInitDemo({ destination, settings: initialSettings = {}, labelSettings = 'Settings', labelOutput = 'Result', }) {
34
+ const [settingsInput, setSettingsInput] = useState(typeof initialSettings === 'string'
35
+ ? initialSettings
36
+ : JSON.stringify(initialSettings, null, 2));
37
+ const [output, setOutput] = useState('');
38
+ const executeInit = useCallback(async () => {
39
+ await tryCatchAsync(async () => {
40
+ const settingsData = JSON.parse(settingsInput);
41
+ // Build config
42
+ const config = {
43
+ settings: settingsData,
44
+ };
45
+ // Create minimal collector
46
+ const { collector } = await startFlow({});
47
+ // Build context for destination.init()
48
+ const context = {
49
+ id: 'demo',
50
+ collector,
51
+ config,
52
+ env: destination.env || {},
53
+ logger: collector.logger,
54
+ };
55
+ if (!destination.init) {
56
+ setOutput('No init method defined for this destination');
57
+ return;
58
+ }
59
+ // Auto-detect destination.examples.env.init (for init method)
60
+ const destinationEnv = destination.examples?.env?.init;
61
+ // Use captureDestinationInit to automatically capture output
62
+ const captureFn = captureDestinationInit(destination, destinationEnv);
63
+ const result = await captureFn(context);
64
+ setOutput(result);
65
+ }, (error) => setOutput(`Error: ${error}`))();
66
+ }, [settingsInput, destination]);
67
+ useEffect(() => {
68
+ const timeoutId = setTimeout(executeInit, 500);
69
+ return () => clearTimeout(timeoutId);
70
+ }, [executeInit]);
71
+ return (_jsxs(Grid, { columns: 2, rowHeight: "synced", children: [_jsx(CodeBox, { label: labelSettings, code: settingsInput, onChange: setSettingsInput, language: "json", showFormat: true, autoHeight: true }), _jsx(CodeBox, { label: labelOutput, code: output, disabled: true, language: "javascript", autoHeight: true })] }));
72
+ }
73
+ //# sourceMappingURL=DestinationInitDemo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DestinationInitDemo.js","sourceRoot":"","sources":["../../../src/components/demos/DestinationInitDemo.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { DestinationInitDemo } from './DestinationInitDemo';
3
+ /**
4
+ * DestinationInitDemo - Interactive destination initialization testing
5
+ *
6
+ * Tests destination.init() methods with configuration settings.
7
+ * Automatically captures initialization calls and displays output.
8
+ * Perfect for testing destination setup and configuration.
9
+ */
10
+ declare const meta: Meta<typeof DestinationInitDemo>;
11
+ export default meta;
12
+ type Story = StoryObj<typeof DestinationInitDemo>;
13
+ /**
14
+ * Default destination initialization demo with gtag GA4 settings
15
+ */
16
+ export declare const Default: Story;
17
+ //# sourceMappingURL=DestinationInitDemo.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DestinationInitDemo.stories.d.ts","sourceRoot":"","sources":["../../../src/components/demos/DestinationInitDemo.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D;;;;;;GAMG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,mBAAmB,CAO1C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,CAAC;AASlD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { DestinationInitDemo } from './DestinationInitDemo';
2
+ import destinationGtag from '@walkeros/web-destination-gtag';
3
+ import * as examples from '@walkeros/web-destination-gtag/examples';
4
+ /**
5
+ * DestinationInitDemo - Interactive destination initialization testing
6
+ *
7
+ * Tests destination.init() methods with configuration settings.
8
+ * Automatically captures initialization calls and displays output.
9
+ * Perfect for testing destination setup and configuration.
10
+ */
11
+ const meta = {
12
+ component: DestinationInitDemo,
13
+ title: 'Demos/DestinationInitDemo',
14
+ tags: ['autodocs'],
15
+ parameters: {
16
+ layout: 'fullscreen',
17
+ },
18
+ };
19
+ export default meta;
20
+ // Create documentation gtag destination with examples
21
+ // Cast to generic Destination.Instance to avoid type conflicts with specific gtag types
22
+ const documentationGtag = {
23
+ ...destinationGtag,
24
+ examples,
25
+ };
26
+ /**
27
+ * Default destination initialization demo with gtag GA4 settings
28
+ */
29
+ export const Default = {
30
+ args: {
31
+ destination: documentationGtag,
32
+ settings: {
33
+ ga4: {
34
+ measurementId: 'G-XXXXXXXXXX',
35
+ },
36
+ },
37
+ },
38
+ };
39
+ //# sourceMappingURL=DestinationInitDemo.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DestinationInitDemo.stories.js","sourceRoot":"","sources":["../../../src/components/demos/DestinationInitDemo.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,yCAAyC,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,IAAI,GAAqC;IAC7C,SAAS,EAAE,mBAAmB;IAC9B,KAAK,EAAE,2BAA2B;IAClC,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;KACrB;CACF,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,sDAAsD;AACtD,wFAAwF;AACxF,MAAM,iBAAiB,GAAG;IACxB,GAAG,eAAe;IAClB,QAAQ;CAC0D,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE;QACJ,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE;YACR,GAAG,EAAE;gBACH,aAAa,EAAE,cAAc;aAC9B;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type DestinationCode } from '../../helpers/destinations';
2
+ export interface PromotionPlaygroundProps {
3
+ initialHtml?: string;
4
+ initialCss?: string;
5
+ initialJs?: string;
6
+ initialMapping?: string;
7
+ labelCode?: string;
8
+ labelPreview?: string;
9
+ labelEvents?: string;
10
+ labelMapping?: string;
11
+ labelResult?: string;
12
+ destination?: DestinationCode;
13
+ }
14
+ /**
15
+ * PromotionPlayground - Full walkerOS demonstration with live code editing
16
+ *
17
+ * Shows the complete chain:
18
+ * 1. Code Editor - Edit HTML/CSS/JS with walkerOS data attributes
19
+ * 2. Preview - Live rendered output that captures real events
20
+ * 3. Events - Real events captured from preview interactions
21
+ * 4. Mapping - Apply transformations and see destination output
22
+ * 5. Result - Final destination function calls
23
+ *
24
+ * Uses a single unified collector flow:
25
+ * - PromotionPlayground owns the collector with destinations
26
+ * - Preview initializes browser source using parent's elb
27
+ * - Events flow through one collector to all destinations
28
+ */
29
+ export declare function PromotionPlayground({ initialHtml, initialCss, initialJs, initialMapping, labelCode, labelPreview, labelEvents, labelMapping, labelResult, destination: destinationProp, }: PromotionPlaygroundProps): import("react/jsx-runtime").JSX.Element;
30
+ //# sourceMappingURL=PromotionPlayground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromotionPlayground.d.ts","sourceRoot":"","sources":["../../../src/components/demos/PromotionPlayground.tsx"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AA2PD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,WAAyB,EACzB,UAAuB,EACvB,SAAc,EACd,cAA+B,EAC/B,SAAkB,EAClB,YAAwB,EACxB,WAAsB,EACtB,YAAwB,EACxB,WAAsB,EACtB,WAAW,EAAE,eAAe,GAC7B,EAAE,wBAAwB,2CAiK1B"}
@@ -0,0 +1,366 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useRef, useCallback, useMemo, } from 'react';
3
+ import { startFlow } from '@walkeros/collector';
4
+ import { Grid } from '../atoms/grid';
5
+ import { Preview } from '../molecules/preview';
6
+ import { BrowserBox } from '../organisms/browser-box';
7
+ import { CodeBox } from '../molecules/code-box';
8
+ import { createGtagDestination, } from '../../helpers/destinations';
9
+ const defaultHtml = `<div
10
+ data-elb="product"
11
+ data-elbaction="load:view"
12
+ data-elbcontext="stage:inspire"
13
+ class="product-card"
14
+ >
15
+ <figure class="product-figure">
16
+ <div class="product-badge-container">
17
+ <div data-elb-product="badge:delicious" class="product-badge">delicious</div>
18
+ </div>
19
+ </figure>
20
+ <div class="product-body">
21
+ <h3 data-elb-product="name:#innerText" class="product-title">
22
+ Everyday Ruck Snack
23
+ </h3>
24
+ <div class="form-control">
25
+ <label class="form-label">Taste</label>
26
+ <select
27
+ data-elb-product="taste:#value"
28
+ class="form-select"
29
+ >
30
+ <option value="sweet">Sweet</option>
31
+ <option value="spicy">Spicy</option>
32
+ </select>
33
+ </div>
34
+ <p data-elb-product="price:2.50" class="product-price">
35
+ € 2.50 <span data-elb-product="old_price:3.14" class="product-old-price">€ 3.14</span>
36
+ </p>
37
+ <div data-elbcontext="stage:hooked" class="product-actions">
38
+ <button
39
+ data-elbaction="click:save"
40
+ class="btn btn-secondary"
41
+ >
42
+ Maybe later
43
+ </button>
44
+ <button
45
+ data-elbaction="click:add"
46
+ class="btn btn-primary"
47
+ >
48
+ Add to Cart
49
+ </button>
50
+ </div>
51
+ </div>
52
+ </div>`;
53
+ const defaultCss = `* {
54
+ box-sizing: border-box;
55
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
56
+ }
57
+
58
+ .product-card {
59
+ width: 100%;
60
+ max-width: 400px;
61
+ margin: 0 auto;
62
+ background: #ffffff;
63
+ border-radius: 16px;
64
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
65
+ overflow: hidden;
66
+ }
67
+
68
+ .product-figure {
69
+ position: relative;
70
+ margin: 0;
71
+ padding: 0;
72
+ width: 100%;
73
+ height: 160px;
74
+ background:
75
+ linear-gradient(135deg, rgba(243, 244, 246, 0.9) 0%, rgba(229, 231, 235, 0.9) 100%),
76
+ repeating-linear-gradient(
77
+ 45deg,
78
+ #f9fafb,
79
+ #f9fafb 10px,
80
+ #f3f4f6 10px,
81
+ #f3f4f6 20px
82
+ );
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: center;
86
+ }
87
+
88
+ .product-figure::before {
89
+ content: '🍟';
90
+ font-size: 8rem;
91
+ opacity: 0.8;
92
+ }
93
+
94
+ .product-badge-container {
95
+ position: absolute;
96
+ top: 0.5rem;
97
+ right: 0.5rem;
98
+ }
99
+
100
+ .product-badge {
101
+ background: #01b5e2;
102
+ color: white;
103
+ padding: 0.25rem 0.75rem;
104
+ border-radius: 9999px;
105
+ font-size: 0.75rem;
106
+ font-weight: 600;
107
+ text-transform: uppercase;
108
+ letter-spacing: 0.025em;
109
+ }
110
+
111
+ .product-body {
112
+ padding: 1.5rem;
113
+ }
114
+
115
+ .product-title {
116
+ font-size: 1.125rem;
117
+ font-weight: 700;
118
+ margin: 0 0 1rem 0;
119
+ color: #111827;
120
+ }
121
+
122
+ .form-control {
123
+ margin-bottom: 1rem;
124
+ }
125
+
126
+ .form-label {
127
+ display: block;
128
+ font-size: 0.875rem;
129
+ font-weight: 500;
130
+ color: #6b7280;
131
+ margin-bottom: 0.5rem;
132
+ }
133
+
134
+ .form-select {
135
+ width: 100%;
136
+ padding: 0.5rem 0.75rem;
137
+ border: 1px solid #d1d5db;
138
+ border-radius: 8px;
139
+ font-size: 0.875rem;
140
+ color: #111827;
141
+ background: white;
142
+ cursor: pointer;
143
+ transition: border-color 0.2s;
144
+ }
145
+
146
+ .form-select:hover {
147
+ border-color: #9ca3af;
148
+ }
149
+
150
+ .form-select:focus {
151
+ outline: none;
152
+ border-color: #01b5e2;
153
+ box-shadow: 0 0 0 3px rgba(1, 181, 226, 0.1);
154
+ }
155
+
156
+ .product-price {
157
+ font-size: 1.25rem;
158
+ font-weight: 700;
159
+ color: #111827;
160
+ margin: 0 0 1rem 0;
161
+ }
162
+
163
+ .product-old-price {
164
+ font-size: 1rem;
165
+ font-weight: 400;
166
+ color: #9ca3af;
167
+ text-decoration: line-through;
168
+ margin-left: 0.5rem;
169
+ }
170
+
171
+ .product-actions {
172
+ display: flex;
173
+ justify-content: space-between;
174
+ gap: 0.5rem;
175
+ }
176
+
177
+ .btn {
178
+ flex: 1;
179
+ padding: 0.75rem 1rem;
180
+ border: none;
181
+ border-radius: 8px;
182
+ font-size: 0.875rem;
183
+ font-weight: 600;
184
+ cursor: pointer;
185
+ transition: all 0.2s;
186
+ text-align: center;
187
+ }
188
+
189
+ .btn:hover {
190
+ transform: translateY(-1px);
191
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
192
+ }
193
+
194
+ .btn:active {
195
+ transform: translateY(0);
196
+ }
197
+
198
+ .btn-primary {
199
+ background: #01b5e2;
200
+ color: white;
201
+ }
202
+
203
+ .btn-primary:hover {
204
+ background: #0195b8;
205
+ }
206
+
207
+ .btn-secondary {
208
+ background: #ffffff;
209
+ color: #01b5e2;
210
+ border: 1px solid #01b5e2;
211
+ }
212
+
213
+ .btn-secondary:hover {
214
+ background: #01b5e2;
215
+ color: #ffffff;
216
+ }`;
217
+ const defaultMapping = `{
218
+ "product": {
219
+ "view": {
220
+ "name": "view_item",
221
+ "data": {
222
+ "map": {
223
+ "event": "name",
224
+ "price": "data.price",
225
+ "stage": "context.stage.0"
226
+ }
227
+ }
228
+ },
229
+ "add": {
230
+ "name": "add_to_cart",
231
+ "data": {
232
+ "map": {
233
+ "event": "event",
234
+ "price": "data.price",
235
+ "user": {
236
+ "consent": { "marketing": true },
237
+ "key": "user.session"
238
+ },
239
+ "isSale": {
240
+ "fn": "(e) => !!e.data.old_price"
241
+ }
242
+ }
243
+ }
244
+ },
245
+ "save": {
246
+ "data": {
247
+ "map": {
248
+ "event": "event",
249
+ "data": "data"
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }`;
255
+ /**
256
+ * PromotionPlayground - Full walkerOS demonstration with live code editing
257
+ *
258
+ * Shows the complete chain:
259
+ * 1. Code Editor - Edit HTML/CSS/JS with walkerOS data attributes
260
+ * 2. Preview - Live rendered output that captures real events
261
+ * 3. Events - Real events captured from preview interactions
262
+ * 4. Mapping - Apply transformations and see destination output
263
+ * 5. Result - Final destination function calls
264
+ *
265
+ * Uses a single unified collector flow:
266
+ * - PromotionPlayground owns the collector with destinations
267
+ * - Preview initializes browser source using parent's elb
268
+ * - Events flow through one collector to all destinations
269
+ */
270
+ export function PromotionPlayground({ initialHtml = defaultHtml, initialCss = defaultCss, initialJs = '', initialMapping = defaultMapping, labelCode = 'Code', labelPreview = 'Preview', labelEvents = 'Events', labelMapping = 'Mapping', labelResult = 'Result', destination: destinationProp, }) {
271
+ // Memoize destination to prevent useEffect re-runs on every render
272
+ // Default prop values create new objects each render, breaking effect dependencies
273
+ const destination = useMemo(() => destinationProp ?? createGtagDestination(), [destinationProp]);
274
+ const [html, setHtml] = useState(initialHtml);
275
+ const [css, setCss] = useState(initialCss);
276
+ const [js, setJs] = useState(initialJs);
277
+ const [mappingInput, setMappingInput] = useState(initialMapping);
278
+ const [eventJson, setEventJson] = useState('// Click elements in the preview to see events');
279
+ const [outputString, setOutputString] = useState('// Click elements in the preview to see function call');
280
+ const collectorRef = useRef(null);
281
+ const elbRef = useRef(null);
282
+ const lastEventRef = useRef(null);
283
+ const [isReady, setIsReady] = useState(false);
284
+ // Initialize collector once on mount
285
+ useEffect(() => {
286
+ let mounted = true;
287
+ const init = async () => {
288
+ try {
289
+ const parsedMapping = JSON.parse(initialMapping);
290
+ const { collector, elb } = await startFlow({
291
+ destinations: {
292
+ // Capture raw events for display in Events column
293
+ rawCapture: {
294
+ code: {
295
+ type: 'rawCapture',
296
+ config: {},
297
+ push: async (event) => {
298
+ if (!mounted)
299
+ return;
300
+ lastEventRef.current = event;
301
+ setEventJson(JSON.stringify(event, null, 2));
302
+ },
303
+ },
304
+ },
305
+ // Transform and display formatted output in Result column
306
+ gtag: {
307
+ code: destination,
308
+ config: {
309
+ mapping: parsedMapping,
310
+ },
311
+ env: {
312
+ elb: (output) => {
313
+ if (!mounted)
314
+ return;
315
+ setOutputString(output);
316
+ },
317
+ },
318
+ },
319
+ },
320
+ consent: { functional: true, marketing: true },
321
+ user: { session: 'playground' },
322
+ });
323
+ if (!mounted)
324
+ return;
325
+ collectorRef.current = collector;
326
+ elbRef.current = elb;
327
+ setIsReady(true);
328
+ }
329
+ catch {
330
+ // Initialization failed - component will show placeholder
331
+ }
332
+ };
333
+ init();
334
+ return () => {
335
+ mounted = false;
336
+ // Cleanup collector
337
+ if (collectorRef.current) {
338
+ // Sources cleanup would happen here if needed
339
+ }
340
+ };
341
+ }, [initialMapping, destination]);
342
+ // Handle mapping changes - update collector destination config
343
+ const handleMappingChange = useCallback((newMapping) => {
344
+ setMappingInput(newMapping);
345
+ // Debounced update to collector
346
+ const timeoutId = setTimeout(() => {
347
+ try {
348
+ const parsed = JSON.parse(newMapping);
349
+ // Update destination config directly
350
+ if (collectorRef.current?.destinations?.gtag?.config) {
351
+ collectorRef.current.destinations.gtag.config.mapping = parsed;
352
+ }
353
+ // Re-process last event to update Result column
354
+ if (lastEventRef.current && collectorRef.current) {
355
+ collectorRef.current.push(lastEventRef.current);
356
+ }
357
+ }
358
+ catch {
359
+ // Invalid JSON - don't update
360
+ }
361
+ }, 500);
362
+ return () => clearTimeout(timeoutId);
363
+ }, []);
364
+ return (_jsxs(Grid, { columns: 5, rowHeight: 600, children: [_jsx(BrowserBox, { label: labelCode, html: html, css: css, js: js, onHtmlChange: setHtml, onCssChange: setCss, onJsChange: setJs, showPreview: false, initialTab: "html", lineNumbers: false, wordWrap: true }), _jsx(Preview, { label: labelPreview, html: html, css: css, elb: isReady ? (elbRef.current ?? undefined) : undefined }), _jsx(CodeBox, { label: labelEvents, code: eventJson, onChange: setEventJson, language: "json", wordWrap: true }), _jsx(CodeBox, { label: labelMapping, code: mappingInput, onChange: handleMappingChange, language: "json", wordWrap: true }), _jsx(CodeBox, { label: labelResult, code: outputString, language: "javascript", disabled: true, wordWrap: true })] }));
365
+ }
366
+ //# sourceMappingURL=PromotionPlayground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromotionPlayground.js","sourceRoot":"","sources":["../../../src/components/demos/PromotionPlayground.tsx"],"names":[],"mappings":"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"}