@supernal/interface 1.0.8 → 1.0.11

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 (294) hide show
  1. package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js +3 -5
  2. package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -1
  3. package/dist/cjs/src/adapters/index.js +3 -4
  4. package/dist/cjs/src/adapters/index.js.map +1 -1
  5. package/dist/cjs/src/ai/AIInterface.js +111 -61
  6. package/dist/cjs/src/ai/AIInterface.js.map +1 -1
  7. package/dist/cjs/src/ai/ToolExecutor.js +36 -1
  8. package/dist/cjs/src/ai/ToolExecutor.js.map +1 -1
  9. package/dist/cjs/src/ai/ToolMatcher.js +6 -0
  10. package/dist/cjs/src/ai/ToolMatcher.js.map +1 -1
  11. package/dist/cjs/src/background/architecture/ArchitectureInitializer.js +13 -2
  12. package/dist/cjs/src/background/architecture/ArchitectureInitializer.js.map +1 -1
  13. package/dist/cjs/src/background/architecture/Containers.js +72 -2
  14. package/dist/cjs/src/background/architecture/Containers.js.map +1 -1
  15. package/dist/cjs/src/background/architecture/index.js +2 -1
  16. package/dist/cjs/src/background/architecture/index.js.map +1 -1
  17. package/dist/cjs/src/background/location/LocationContext.js +19 -2
  18. package/dist/cjs/src/background/location/LocationContext.js.map +1 -1
  19. package/dist/cjs/src/background/navigation/NavigationGraph.js +7 -0
  20. package/dist/cjs/src/background/navigation/NavigationGraph.js.map +1 -1
  21. package/dist/cjs/src/background/registry/ComponentRegistry.js +0 -2
  22. package/dist/cjs/src/background/registry/ComponentRegistry.js.map +1 -1
  23. package/dist/cjs/src/background/registry/ToolRegistry.js +83 -123
  24. package/dist/cjs/src/background/registry/ToolRegistry.js.map +1 -1
  25. package/dist/cjs/src/browser.js +48 -1
  26. package/dist/cjs/src/browser.js.map +1 -1
  27. package/dist/cjs/src/decorators/Component.js +4 -5
  28. package/dist/cjs/src/decorators/Component.js.map +1 -1
  29. package/dist/cjs/src/decorators/ContainerHelpers.js +16 -1
  30. package/dist/cjs/src/decorators/ContainerHelpers.js.map +1 -1
  31. package/dist/cjs/src/decorators/Tool.js +3 -9
  32. package/dist/cjs/src/decorators/Tool.js.map +1 -1
  33. package/dist/cjs/src/decorators/ToolHelpers.js +1 -3
  34. package/dist/cjs/src/decorators/ToolHelpers.js.map +1 -1
  35. package/dist/cjs/src/decorators/ToolPreset.js +14 -14
  36. package/dist/cjs/src/decorators/ToolPreset.js.map +1 -1
  37. package/dist/cjs/src/decorators/ToolProvider.js +30 -20
  38. package/dist/cjs/src/decorators/ToolProvider.js.map +1 -1
  39. package/dist/cjs/src/decorators/index.js +8 -13
  40. package/dist/cjs/src/decorators/index.js.map +1 -1
  41. package/dist/cjs/src/exposure/ExposureCollector.js +27 -0
  42. package/dist/cjs/src/exposure/ExposureCollector.js.map +1 -1
  43. package/dist/cjs/src/index.js +6 -9
  44. package/dist/cjs/src/index.js.map +1 -1
  45. package/dist/cjs/src/mcp/server.js +12 -14
  46. package/dist/cjs/src/mcp/server.js.map +1 -1
  47. package/dist/cjs/src/react/hooks/useChatWithContext.js +4 -10
  48. package/dist/cjs/src/react/hooks/useChatWithContext.js.map +1 -1
  49. package/dist/cjs/src/testing/graph-tester/core/GraphTester.js +339 -0
  50. package/dist/cjs/src/testing/graph-tester/core/GraphTester.js.map +1 -0
  51. package/dist/cjs/src/testing/graph-tester/core/TestFunction.js +189 -0
  52. package/dist/cjs/src/testing/graph-tester/core/TestFunction.js.map +1 -0
  53. package/dist/cjs/src/testing/graph-tester/core/types.js +24 -0
  54. package/dist/cjs/src/testing/graph-tester/core/types.js.map +1 -0
  55. package/dist/cjs/src/testing/graph-tester/fixtures/index.js +13 -0
  56. package/dist/cjs/src/testing/graph-tester/fixtures/index.js.map +1 -0
  57. package/dist/cjs/src/testing/graph-tester/fixtures/portPool.js +184 -0
  58. package/dist/cjs/src/testing/graph-tester/fixtures/portPool.js.map +1 -0
  59. package/dist/cjs/src/testing/graph-tester/index.js +98 -0
  60. package/dist/cjs/src/testing/graph-tester/index.js.map +1 -0
  61. package/dist/cjs/src/testing/graph-tester/modes/AccessibilityMode.js +230 -0
  62. package/dist/cjs/src/testing/graph-tester/modes/AccessibilityMode.js.map +1 -0
  63. package/dist/cjs/src/testing/graph-tester/modes/PerformanceMode.js +168 -0
  64. package/dist/cjs/src/testing/graph-tester/modes/PerformanceMode.js.map +1 -0
  65. package/dist/cjs/src/testing/graph-tester/modes/SEOMode.js +264 -0
  66. package/dist/cjs/src/testing/graph-tester/modes/SEOMode.js.map +1 -0
  67. package/dist/cjs/src/testing/graph-tester/modes/VisualRegressionMode.js +199 -0
  68. package/dist/cjs/src/testing/graph-tester/modes/VisualRegressionMode.js.map +1 -0
  69. package/dist/cjs/src/testing/graph-tester/modes/index.js +17 -0
  70. package/dist/cjs/src/testing/graph-tester/modes/index.js.map +1 -0
  71. package/dist/cjs/src/testing/graph-tester/reporters/HTMLReporter.js +411 -0
  72. package/dist/cjs/src/testing/graph-tester/reporters/HTMLReporter.js.map +1 -0
  73. package/dist/cjs/src/testing/graph-tester/reporters/JSONReporter.js +127 -0
  74. package/dist/cjs/src/testing/graph-tester/reporters/JSONReporter.js.map +1 -0
  75. package/dist/cjs/src/testing/graph-tester/reporters/MarkdownReporter.js +169 -0
  76. package/dist/cjs/src/testing/graph-tester/reporters/MarkdownReporter.js.map +1 -0
  77. package/dist/cjs/src/testing/graph-tester/reporters/UnifiedReporter.js +118 -0
  78. package/dist/cjs/src/testing/graph-tester/reporters/UnifiedReporter.js.map +1 -0
  79. package/dist/cjs/src/testing/graph-tester/reporters/index.js +17 -0
  80. package/dist/cjs/src/testing/graph-tester/reporters/index.js.map +1 -0
  81. package/dist/cjs/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js +47 -0
  82. package/dist/cjs/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js.map +1 -0
  83. package/dist/cjs/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js +584 -0
  84. package/dist/cjs/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js.map +1 -0
  85. package/dist/cjs/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js +376 -0
  86. package/dist/cjs/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js.map +1 -0
  87. package/dist/cjs/src/testing/graph-tester/screenshot/index.js +15 -0
  88. package/dist/cjs/src/testing/graph-tester/screenshot/index.js.map +1 -0
  89. package/dist/cjs/src/testing/graph-tester/screenshot/types.js +11 -0
  90. package/dist/cjs/src/testing/graph-tester/screenshot/types.js.map +1 -0
  91. package/dist/cjs/src/testing/selectors.js +1 -1
  92. package/dist/cjs/src/types/ComponentState.js.map +1 -1
  93. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.d.ts.map +1 -1
  94. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js +3 -5
  95. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -1
  96. package/dist/esm/src/adapters/index.d.ts +0 -2
  97. package/dist/esm/src/adapters/index.d.ts.map +1 -1
  98. package/dist/esm/src/adapters/index.js +2 -1
  99. package/dist/esm/src/adapters/index.js.map +1 -1
  100. package/dist/esm/src/adapters/types/index.d.ts +0 -2
  101. package/dist/esm/src/adapters/types/index.d.ts.map +1 -1
  102. package/dist/esm/src/ai/AIInterface.d.ts +5 -1
  103. package/dist/esm/src/ai/AIInterface.d.ts.map +1 -1
  104. package/dist/esm/src/ai/AIInterface.js +111 -61
  105. package/dist/esm/src/ai/AIInterface.js.map +1 -1
  106. package/dist/esm/src/ai/ToolExecutor.js +36 -1
  107. package/dist/esm/src/ai/ToolExecutor.js.map +1 -1
  108. package/dist/esm/src/ai/ToolMatcher.d.ts +1 -0
  109. package/dist/esm/src/ai/ToolMatcher.d.ts.map +1 -1
  110. package/dist/esm/src/ai/ToolMatcher.js +6 -0
  111. package/dist/esm/src/ai/ToolMatcher.js.map +1 -1
  112. package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts +1 -1
  113. package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts.map +1 -1
  114. package/dist/esm/src/background/architecture/ArchitectureInitializer.js +13 -2
  115. package/dist/esm/src/background/architecture/ArchitectureInitializer.js.map +1 -1
  116. package/dist/esm/src/background/architecture/Containers.d.ts +35 -2
  117. package/dist/esm/src/background/architecture/Containers.d.ts.map +1 -1
  118. package/dist/esm/src/background/architecture/Containers.js +70 -2
  119. package/dist/esm/src/background/architecture/Containers.js.map +1 -1
  120. package/dist/esm/src/background/architecture/index.d.ts +1 -1
  121. package/dist/esm/src/background/architecture/index.d.ts.map +1 -1
  122. package/dist/esm/src/background/architecture/index.js +1 -1
  123. package/dist/esm/src/background/architecture/index.js.map +1 -1
  124. package/dist/esm/src/background/location/LocationContext.d.ts +3 -2
  125. package/dist/esm/src/background/location/LocationContext.d.ts.map +1 -1
  126. package/dist/esm/src/background/location/LocationContext.js +19 -2
  127. package/dist/esm/src/background/location/LocationContext.js.map +1 -1
  128. package/dist/esm/src/background/navigation/NavigationGraph.d.ts +5 -0
  129. package/dist/esm/src/background/navigation/NavigationGraph.d.ts.map +1 -1
  130. package/dist/esm/src/background/navigation/NavigationGraph.js +7 -0
  131. package/dist/esm/src/background/navigation/NavigationGraph.js.map +1 -1
  132. package/dist/esm/src/background/registry/ComponentRegistry.d.ts +0 -4
  133. package/dist/esm/src/background/registry/ComponentRegistry.d.ts.map +1 -1
  134. package/dist/esm/src/background/registry/ComponentRegistry.js +0 -2
  135. package/dist/esm/src/background/registry/ComponentRegistry.js.map +1 -1
  136. package/dist/esm/src/background/registry/ToolRegistry.d.ts +24 -38
  137. package/dist/esm/src/background/registry/ToolRegistry.d.ts.map +1 -1
  138. package/dist/esm/src/background/registry/ToolRegistry.js +81 -121
  139. package/dist/esm/src/background/registry/ToolRegistry.js.map +1 -1
  140. package/dist/esm/src/browser.d.ts +12 -1
  141. package/dist/esm/src/browser.d.ts.map +1 -1
  142. package/dist/esm/src/browser.js +17 -1
  143. package/dist/esm/src/browser.js.map +1 -1
  144. package/dist/esm/src/decorators/Component.d.ts +1 -8
  145. package/dist/esm/src/decorators/Component.d.ts.map +1 -1
  146. package/dist/esm/src/decorators/Component.js +4 -5
  147. package/dist/esm/src/decorators/Component.js.map +1 -1
  148. package/dist/esm/src/decorators/ContainerHelpers.d.ts +2 -1
  149. package/dist/esm/src/decorators/ContainerHelpers.d.ts.map +1 -1
  150. package/dist/esm/src/decorators/ContainerHelpers.js +16 -1
  151. package/dist/esm/src/decorators/ContainerHelpers.js.map +1 -1
  152. package/dist/esm/src/decorators/Tool.d.ts +1 -6
  153. package/dist/esm/src/decorators/Tool.d.ts.map +1 -1
  154. package/dist/esm/src/decorators/Tool.js +3 -9
  155. package/dist/esm/src/decorators/Tool.js.map +1 -1
  156. package/dist/esm/src/decorators/ToolHelpers.d.ts.map +1 -1
  157. package/dist/esm/src/decorators/ToolHelpers.js +1 -3
  158. package/dist/esm/src/decorators/ToolHelpers.js.map +1 -1
  159. package/dist/esm/src/decorators/ToolPreset.d.ts +12 -9
  160. package/dist/esm/src/decorators/ToolPreset.d.ts.map +1 -1
  161. package/dist/esm/src/decorators/ToolPreset.js +13 -13
  162. package/dist/esm/src/decorators/ToolPreset.js.map +1 -1
  163. package/dist/esm/src/decorators/ToolProvider.d.ts +5 -21
  164. package/dist/esm/src/decorators/ToolProvider.d.ts.map +1 -1
  165. package/dist/esm/src/decorators/ToolProvider.js +30 -19
  166. package/dist/esm/src/decorators/ToolProvider.js.map +1 -1
  167. package/dist/esm/src/decorators/index.d.ts +6 -12
  168. package/dist/esm/src/decorators/index.d.ts.map +1 -1
  169. package/dist/esm/src/decorators/index.js +7 -12
  170. package/dist/esm/src/decorators/index.js.map +1 -1
  171. package/dist/esm/src/exposure/ExposureCollector.d.ts +8 -0
  172. package/dist/esm/src/exposure/ExposureCollector.d.ts.map +1 -1
  173. package/dist/esm/src/exposure/ExposureCollector.js +27 -0
  174. package/dist/esm/src/exposure/ExposureCollector.js.map +1 -1
  175. package/dist/esm/src/index.d.ts +5 -6
  176. package/dist/esm/src/index.d.ts.map +1 -1
  177. package/dist/esm/src/index.js +5 -6
  178. package/dist/esm/src/index.js.map +1 -1
  179. package/dist/esm/src/mcp/server.d.ts +1 -1
  180. package/dist/esm/src/mcp/server.d.ts.map +1 -1
  181. package/dist/esm/src/mcp/server.js +12 -14
  182. package/dist/esm/src/mcp/server.js.map +1 -1
  183. package/dist/esm/src/react/hooks/useChatWithContext.d.ts +0 -2
  184. package/dist/esm/src/react/hooks/useChatWithContext.d.ts.map +1 -1
  185. package/dist/esm/src/react/hooks/useChatWithContext.js +4 -10
  186. package/dist/esm/src/react/hooks/useChatWithContext.js.map +1 -1
  187. package/dist/esm/src/testing/graph-tester/core/GraphTester.d.ts +110 -0
  188. package/dist/esm/src/testing/graph-tester/core/GraphTester.d.ts.map +1 -0
  189. package/dist/esm/src/testing/graph-tester/core/GraphTester.js +335 -0
  190. package/dist/esm/src/testing/graph-tester/core/GraphTester.js.map +1 -0
  191. package/dist/esm/src/testing/graph-tester/core/TestFunction.d.ts +120 -0
  192. package/dist/esm/src/testing/graph-tester/core/TestFunction.d.ts.map +1 -0
  193. package/dist/esm/src/testing/graph-tester/core/TestFunction.js +184 -0
  194. package/dist/esm/src/testing/graph-tester/core/TestFunction.js.map +1 -0
  195. package/dist/esm/src/testing/graph-tester/core/types.d.ts +331 -0
  196. package/dist/esm/src/testing/graph-tester/core/types.d.ts.map +1 -0
  197. package/dist/esm/src/testing/graph-tester/core/types.js +21 -0
  198. package/dist/esm/src/testing/graph-tester/core/types.js.map +1 -0
  199. package/dist/esm/src/testing/graph-tester/fixtures/index.d.ts +8 -0
  200. package/dist/esm/src/testing/graph-tester/fixtures/index.d.ts.map +1 -0
  201. package/dist/esm/src/testing/graph-tester/fixtures/index.js +7 -0
  202. package/dist/esm/src/testing/graph-tester/fixtures/index.js.map +1 -0
  203. package/dist/esm/src/testing/graph-tester/fixtures/portPool.d.ts +40 -0
  204. package/dist/esm/src/testing/graph-tester/fixtures/portPool.d.ts.map +1 -0
  205. package/dist/esm/src/testing/graph-tester/fixtures/portPool.js +147 -0
  206. package/dist/esm/src/testing/graph-tester/fixtures/portPool.js.map +1 -0
  207. package/dist/esm/src/testing/graph-tester/index.d.ts +84 -0
  208. package/dist/esm/src/testing/graph-tester/index.d.ts.map +1 -0
  209. package/dist/esm/src/testing/graph-tester/index.js +77 -0
  210. package/dist/esm/src/testing/graph-tester/index.js.map +1 -0
  211. package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.d.ts +40 -0
  212. package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.d.ts.map +1 -0
  213. package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.js +193 -0
  214. package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.js.map +1 -0
  215. package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.d.ts +42 -0
  216. package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.d.ts.map +1 -0
  217. package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.js +131 -0
  218. package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.js.map +1 -0
  219. package/dist/esm/src/testing/graph-tester/modes/SEOMode.d.ts +39 -0
  220. package/dist/esm/src/testing/graph-tester/modes/SEOMode.d.ts.map +1 -0
  221. package/dist/esm/src/testing/graph-tester/modes/SEOMode.js +227 -0
  222. package/dist/esm/src/testing/graph-tester/modes/SEOMode.js.map +1 -0
  223. package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.d.ts +83 -0
  224. package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.d.ts.map +1 -0
  225. package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.js +162 -0
  226. package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.js.map +1 -0
  227. package/dist/esm/src/testing/graph-tester/modes/index.d.ts +14 -0
  228. package/dist/esm/src/testing/graph-tester/modes/index.d.ts.map +1 -0
  229. package/dist/esm/src/testing/graph-tester/modes/index.js +10 -0
  230. package/dist/esm/src/testing/graph-tester/modes/index.js.map +1 -0
  231. package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.d.ts +38 -0
  232. package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.d.ts.map +1 -0
  233. package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.js +374 -0
  234. package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.js.map +1 -0
  235. package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.d.ts +50 -0
  236. package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.d.ts.map +1 -0
  237. package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.js +90 -0
  238. package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.js.map +1 -0
  239. package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.d.ts +33 -0
  240. package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.d.ts.map +1 -0
  241. package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.js +132 -0
  242. package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.js.map +1 -0
  243. package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.d.ts +30 -0
  244. package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.d.ts.map +1 -0
  245. package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.js +81 -0
  246. package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.js.map +1 -0
  247. package/dist/esm/src/testing/graph-tester/reporters/index.d.ts +14 -0
  248. package/dist/esm/src/testing/graph-tester/reporters/index.d.ts.map +1 -0
  249. package/dist/esm/src/testing/graph-tester/reporters/index.js +10 -0
  250. package/dist/esm/src/testing/graph-tester/reporters/index.js.map +1 -0
  251. package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.d.ts +33 -0
  252. package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.d.ts.map +1 -0
  253. package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js +43 -0
  254. package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js.map +1 -0
  255. package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.d.ts +70 -0
  256. package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.d.ts.map +1 -0
  257. package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js +547 -0
  258. package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js.map +1 -0
  259. package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.d.ts +83 -0
  260. package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.d.ts.map +1 -0
  261. package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js +339 -0
  262. package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js.map +1 -0
  263. package/dist/esm/src/testing/graph-tester/screenshot/index.d.ts +11 -0
  264. package/dist/esm/src/testing/graph-tester/screenshot/index.d.ts.map +1 -0
  265. package/dist/esm/src/testing/graph-tester/screenshot/index.js +9 -0
  266. package/dist/esm/src/testing/graph-tester/screenshot/index.js.map +1 -0
  267. package/dist/esm/src/testing/graph-tester/screenshot/types.d.ts +331 -0
  268. package/dist/esm/src/testing/graph-tester/screenshot/types.d.ts.map +1 -0
  269. package/dist/esm/src/testing/graph-tester/screenshot/types.js +10 -0
  270. package/dist/esm/src/testing/graph-tester/screenshot/types.js.map +1 -0
  271. package/dist/esm/src/testing/selectors.d.ts +1 -1
  272. package/dist/esm/src/testing/selectors.js +1 -1
  273. package/dist/esm/src/types/ComponentState.d.ts +0 -4
  274. package/dist/esm/src/types/ComponentState.d.ts.map +1 -1
  275. package/dist/esm/src/types/ComponentState.js.map +1 -1
  276. package/package.json +22 -8
  277. package/dist/cjs/src/adapters/native/NativeAdapter.js +0 -268
  278. package/dist/cjs/src/adapters/native/NativeAdapter.js.map +0 -1
  279. package/dist/cjs/src/adapters/native/index.js +0 -10
  280. package/dist/cjs/src/adapters/native/index.js.map +0 -1
  281. package/dist/cjs/src/ui/react/chat/ChatBubble.js +0 -221
  282. package/dist/cjs/src/ui/react/chat/ChatBubble.js.map +0 -1
  283. package/dist/esm/src/adapters/native/NativeAdapter.d.ts +0 -47
  284. package/dist/esm/src/adapters/native/NativeAdapter.d.ts.map +0 -1
  285. package/dist/esm/src/adapters/native/NativeAdapter.js +0 -230
  286. package/dist/esm/src/adapters/native/NativeAdapter.js.map +0 -1
  287. package/dist/esm/src/adapters/native/index.d.ts +0 -6
  288. package/dist/esm/src/adapters/native/index.d.ts.map +0 -1
  289. package/dist/esm/src/adapters/native/index.js +0 -5
  290. package/dist/esm/src/adapters/native/index.js.map +0 -1
  291. package/dist/esm/src/ui/react/chat/ChatBubble.d.ts +0 -27
  292. package/dist/esm/src/ui/react/chat/ChatBubble.d.ts.map +0 -1
  293. package/dist/esm/src/ui/react/chat/ChatBubble.js +0 -184
  294. package/dist/esm/src/ui/react/chat/ChatBubble.js.map +0 -1
@@ -0,0 +1,584 @@
1
+ "use strict";
2
+ /**
3
+ * HTML annotation renderer.
4
+ *
5
+ * Generates interactive HTML overlay with:
6
+ * - Hoverable bounding boxes
7
+ * - Sidebar with annotation details
8
+ * - Click-to-highlight functionality
9
+ * - Search/filter capabilities
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.HTMLAnnotationRenderer = void 0;
48
+ const fs = __importStar(require("fs/promises"));
49
+ /**
50
+ * HTML annotation renderer.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const renderer = new HTMLAnnotationRenderer({
55
+ * includeSidebar: true,
56
+ * enableHover: true,
57
+ * outputPath: './screenshots/dashboard.html'
58
+ * });
59
+ *
60
+ * const result = await renderer.render(annotatedScreenshot);
61
+ * console.log(`HTML rendered: ${result.outputPath}`);
62
+ * ```
63
+ */
64
+ class HTMLAnnotationRenderer {
65
+ constructor(config) {
66
+ this.config = {
67
+ includeSidebar: true,
68
+ enableHover: true,
69
+ enableClickToHighlight: true,
70
+ boundingBoxColor: '#00ff00',
71
+ boundingBoxWidth: 2,
72
+ ...config,
73
+ };
74
+ }
75
+ /**
76
+ * Render annotated screenshot as interactive HTML.
77
+ *
78
+ * @param screenshot - Annotated screenshot
79
+ * @returns Render result
80
+ */
81
+ async render(screenshot) {
82
+ const startTime = Date.now();
83
+ // Generate HTML
84
+ const html = this.generateHTML(screenshot);
85
+ // Write to file
86
+ await fs.writeFile(this.config.outputPath, html, 'utf-8');
87
+ const stats = await fs.stat(this.config.outputPath);
88
+ return {
89
+ outputPath: this.config.outputPath,
90
+ rendererType: 'html',
91
+ fileSize: stats.size,
92
+ duration: Date.now() - startTime,
93
+ };
94
+ }
95
+ /**
96
+ * Generate complete HTML document.
97
+ *
98
+ * @param screenshot - Annotated screenshot
99
+ * @returns HTML string
100
+ */
101
+ generateHTML(screenshot) {
102
+ const { annotations, pageMetadata } = screenshot;
103
+ // Convert screenshot buffer to base64 data URL
104
+ const screenshotDataUrl = `data:image/png;base64,${screenshot.screenshot.toString('base64')}`;
105
+ return `<!DOCTYPE html>
106
+ <html lang="en">
107
+ <head>
108
+ <meta charset="UTF-8">
109
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
110
+ <title>Annotated Screenshot: ${screenshot.route}</title>
111
+ <style>
112
+ * {
113
+ margin: 0;
114
+ padding: 0;
115
+ box-sizing: border-box;
116
+ }
117
+
118
+ body {
119
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
120
+ background: #1e1e1e;
121
+ color: #d4d4d4;
122
+ overflow: hidden;
123
+ }
124
+
125
+ .container {
126
+ display: flex;
127
+ height: 100vh;
128
+ }
129
+
130
+ .screenshot-container {
131
+ flex: 1;
132
+ position: relative;
133
+ overflow: auto;
134
+ background: #2d2d2d;
135
+ }
136
+
137
+ .screenshot {
138
+ position: relative;
139
+ display: inline-block;
140
+ }
141
+
142
+ .screenshot img {
143
+ display: block;
144
+ max-width: 100%;
145
+ height: auto;
146
+ }
147
+
148
+ .annotation-box {
149
+ position: absolute;
150
+ border: ${this.config.boundingBoxWidth}px solid ${this.config.boundingBoxColor};
151
+ pointer-events: ${this.config.enableHover ? 'auto' : 'none'};
152
+ cursor: ${this.config.enableClickToHighlight ? 'pointer' : 'default'};
153
+ transition: border-color 0.2s, box-shadow 0.2s;
154
+ z-index: 1;
155
+ }
156
+
157
+ .annotation-box:hover {
158
+ border-color: #ff00ff;
159
+ box-shadow: 0 0 0 2px rgba(255, 0, 255, 0.3);
160
+ z-index: 100;
161
+ }
162
+
163
+ .annotation-box.highlighted {
164
+ border-color: #ffff00;
165
+ box-shadow: 0 0 0 4px rgba(255, 255, 0, 0.5);
166
+ z-index: 200;
167
+ }
168
+
169
+ .annotation-label {
170
+ position: absolute;
171
+ top: -24px;
172
+ left: 0;
173
+ background: rgba(0, 255, 0, 0.9);
174
+ color: #000;
175
+ padding: 2px 6px;
176
+ border-radius: 3px;
177
+ font-size: 11px;
178
+ font-weight: 600;
179
+ white-space: nowrap;
180
+ display: none;
181
+ z-index: 2;
182
+ }
183
+
184
+ .annotation-box:hover .annotation-label {
185
+ display: block;
186
+ }
187
+
188
+ ${this.config.includeSidebar ? this.getSidebarStyles() : ''}
189
+ </style>
190
+ </head>
191
+ <body>
192
+ <div class="container">
193
+ <div class="screenshot-container">
194
+ <div class="screenshot" style="width: ${pageMetadata.pageSize.width}px; height: ${pageMetadata.pageSize.height}px;">
195
+ <img src="${screenshotDataUrl}" alt="Screenshot" />
196
+ ${this.renderAnnotationBoxes(annotations, pageMetadata)}
197
+ </div>
198
+ </div>
199
+ ${this.config.includeSidebar ? this.renderSidebar(screenshot) : ''}
200
+ </div>
201
+
202
+ <script>
203
+ ${this.generateJavaScript(annotations)}
204
+ </script>
205
+ </body>
206
+ </html>`;
207
+ }
208
+ /**
209
+ * Get sidebar CSS styles.
210
+ */
211
+ getSidebarStyles() {
212
+ return `
213
+ .sidebar {
214
+ width: 400px;
215
+ background: #252526;
216
+ border-left: 1px solid #3e3e42;
217
+ display: flex;
218
+ flex-direction: column;
219
+ overflow: hidden;
220
+ }
221
+
222
+ .sidebar-header {
223
+ padding: 16px;
224
+ border-bottom: 1px solid #3e3e42;
225
+ }
226
+
227
+ .sidebar-header h2 {
228
+ font-size: 16px;
229
+ margin-bottom: 8px;
230
+ }
231
+
232
+ .sidebar-stats {
233
+ display: flex;
234
+ gap: 16px;
235
+ font-size: 13px;
236
+ color: #858585;
237
+ }
238
+
239
+ .sidebar-stat {
240
+ display: flex;
241
+ flex-direction: column;
242
+ gap: 4px;
243
+ }
244
+
245
+ .sidebar-stat-value {
246
+ font-size: 20px;
247
+ font-weight: 600;
248
+ color: #d4d4d4;
249
+ }
250
+
251
+ .sidebar-search {
252
+ padding: 12px 16px;
253
+ border-bottom: 1px solid #3e3e42;
254
+ }
255
+
256
+ .search-input {
257
+ width: 100%;
258
+ padding: 8px 12px;
259
+ background: #3c3c3c;
260
+ border: 1px solid #3e3e42;
261
+ border-radius: 4px;
262
+ color: #d4d4d4;
263
+ font-size: 13px;
264
+ }
265
+
266
+ .search-input:focus {
267
+ outline: none;
268
+ border-color: #007acc;
269
+ }
270
+
271
+ .sidebar-content {
272
+ flex: 1;
273
+ overflow-y: auto;
274
+ padding: 16px;
275
+ }
276
+
277
+ .annotation-item {
278
+ background: #2d2d2d;
279
+ border: 1px solid #3e3e42;
280
+ border-radius: 4px;
281
+ padding: 12px;
282
+ margin-bottom: 8px;
283
+ cursor: pointer;
284
+ transition: background 0.2s, border-color 0.2s;
285
+ }
286
+
287
+ .annotation-item:hover {
288
+ background: #37373d;
289
+ border-color: #007acc;
290
+ }
291
+
292
+ .annotation-item.active {
293
+ background: #37373d;
294
+ border-color: #ffff00;
295
+ }
296
+
297
+ .annotation-item-header {
298
+ display: flex;
299
+ justify-content: space-between;
300
+ align-items: center;
301
+ margin-bottom: 8px;
302
+ }
303
+
304
+ .annotation-item-tag {
305
+ font-size: 13px;
306
+ font-weight: 600;
307
+ color: #4ec9b0;
308
+ }
309
+
310
+ .annotation-item-badge {
311
+ background: #007acc;
312
+ color: #fff;
313
+ padding: 2px 6px;
314
+ border-radius: 3px;
315
+ font-size: 10px;
316
+ font-weight: 600;
317
+ }
318
+
319
+ .annotation-item-testid {
320
+ color: #ce9178;
321
+ font-size: 12px;
322
+ margin-bottom: 4px;
323
+ }
324
+
325
+ .annotation-item-interactions {
326
+ display: flex;
327
+ flex-wrap: wrap;
328
+ gap: 4px;
329
+ margin-top: 8px;
330
+ }
331
+
332
+ .interaction-badge {
333
+ background: #3e3e42;
334
+ color: #d4d4d4;
335
+ padding: 2px 6px;
336
+ border-radius: 3px;
337
+ font-size: 10px;
338
+ }
339
+
340
+ .annotation-details {
341
+ display: none;
342
+ margin-top: 12px;
343
+ padding-top: 12px;
344
+ border-top: 1px solid #3e3e42;
345
+ font-size: 12px;
346
+ color: #858585;
347
+ }
348
+
349
+ .annotation-item.active .annotation-details {
350
+ display: block;
351
+ }
352
+
353
+ .detail-row {
354
+ display: flex;
355
+ gap: 8px;
356
+ margin-bottom: 4px;
357
+ }
358
+
359
+ .detail-label {
360
+ font-weight: 600;
361
+ color: #d4d4d4;
362
+ }
363
+
364
+ .detail-value {
365
+ flex: 1;
366
+ word-break: break-all;
367
+ }`;
368
+ }
369
+ /**
370
+ * Render annotation bounding boxes.
371
+ */
372
+ renderAnnotationBoxes(annotations, pageMetadata) {
373
+ return annotations
374
+ .filter((a) => a.isVisible)
375
+ .map((annotation) => {
376
+ const box = annotation.pageBoundingBox || annotation.boundingBox;
377
+ const label = annotation.testId || annotation.tagName;
378
+ return `
379
+ <div
380
+ class="annotation-box"
381
+ data-annotation-id="${annotation.id}"
382
+ style="
383
+ left: ${box.x}px;
384
+ top: ${box.y}px;
385
+ width: ${box.width}px;
386
+ height: ${box.height}px;
387
+ "
388
+ title="${annotation.selector}"
389
+ >
390
+ <div class="annotation-label">${label}</div>
391
+ </div>`;
392
+ })
393
+ .join('\n');
394
+ }
395
+ /**
396
+ * Render sidebar with annotation list.
397
+ */
398
+ renderSidebar(screenshot) {
399
+ const { annotations, pageMetadata } = screenshot;
400
+ const visibleAnnotations = annotations.filter((a) => a.isVisible);
401
+ const interactiveCount = visibleAnnotations.filter((a) => a.isInteractive).length;
402
+ return `
403
+ <div class="sidebar">
404
+ <div class="sidebar-header">
405
+ <h2>${screenshot.route}</h2>
406
+ <div class="sidebar-stats">
407
+ <div class="sidebar-stat">
408
+ <div class="sidebar-stat-value">${visibleAnnotations.length}</div>
409
+ <div>Elements</div>
410
+ </div>
411
+ <div class="sidebar-stat">
412
+ <div class="sidebar-stat-value">${interactiveCount}</div>
413
+ <div>Interactive</div>
414
+ </div>
415
+ </div>
416
+ </div>
417
+
418
+ <div class="sidebar-search">
419
+ <input
420
+ type="text"
421
+ class="search-input"
422
+ placeholder="Search by tag, testid, or selector..."
423
+ id="search-input"
424
+ />
425
+ </div>
426
+
427
+ <div class="sidebar-content" id="annotation-list">
428
+ ${visibleAnnotations.map((a) => this.renderAnnotationItem(a)).join('\n')}
429
+ </div>
430
+ </div>`;
431
+ }
432
+ /**
433
+ * Render annotation item for sidebar.
434
+ */
435
+ renderAnnotationItem(annotation) {
436
+ const interactions = annotation.interactions.map((i) => i.type).join(', ');
437
+ return `
438
+ <div class="annotation-item" data-annotation-id="${annotation.id}">
439
+ <div class="annotation-item-header">
440
+ <div class="annotation-item-tag">&lt;${annotation.tagName}&gt;</div>
441
+ ${annotation.isInteractive ? '<div class="annotation-item-badge">Interactive</div>' : ''}
442
+ </div>
443
+ ${annotation.testId ? `<div class="annotation-item-testid">data-testid="${annotation.testId}"</div>` : ''}
444
+ ${annotation.interactions.length > 0
445
+ ? `
446
+ <div class="annotation-item-interactions">
447
+ ${annotation.interactions.map((i) => `<div class="interaction-badge">${i.type}</div>`).join('')}
448
+ </div>
449
+ `
450
+ : ''}
451
+ <div class="annotation-details">
452
+ <div class="detail-row">
453
+ <div class="detail-label">Selector:</div>
454
+ <div class="detail-value">${annotation.selector}</div>
455
+ </div>
456
+ <div class="detail-row">
457
+ <div class="detail-label">Size:</div>
458
+ <div class="detail-value">${Math.round(annotation.boundingBox.width)}×${Math.round(annotation.boundingBox.height)}px</div>
459
+ </div>
460
+ ${annotation.textContent
461
+ ? `
462
+ <div class="detail-row">
463
+ <div class="detail-label">Text:</div>
464
+ <div class="detail-value">${this.escapeHtml(annotation.textContent.substring(0, 100))}</div>
465
+ </div>
466
+ `
467
+ : ''}
468
+ </div>
469
+ </div>`;
470
+ }
471
+ /**
472
+ * Generate JavaScript for interactivity.
473
+ */
474
+ generateJavaScript(annotations) {
475
+ return `
476
+ const annotations = ${JSON.stringify(annotations, null, 2)};
477
+
478
+ // Click to highlight
479
+ ${this.config.enableClickToHighlight
480
+ ? `
481
+ document.querySelectorAll('.annotation-box').forEach(box => {
482
+ box.addEventListener('click', (e) => {
483
+ e.stopPropagation();
484
+ const id = box.dataset.annotationId;
485
+
486
+ // Remove previous highlights
487
+ document.querySelectorAll('.annotation-box.highlighted').forEach(b => {
488
+ b.classList.remove('highlighted');
489
+ });
490
+ document.querySelectorAll('.annotation-item.active').forEach(item => {
491
+ item.classList.remove('active');
492
+ });
493
+
494
+ // Highlight this annotation
495
+ box.classList.add('highlighted');
496
+ const sidebarItem = document.querySelector(\`.annotation-item[data-annotation-id="\${id}"]\`);
497
+ if (sidebarItem) {
498
+ sidebarItem.classList.add('active');
499
+ sidebarItem.scrollIntoView({ behavior: 'smooth', block: 'center' });
500
+ }
501
+ });
502
+ });
503
+
504
+ // Sidebar item click
505
+ document.querySelectorAll('.annotation-item').forEach(item => {
506
+ item.addEventListener('click', () => {
507
+ const id = item.dataset.annotationId;
508
+
509
+ // Remove previous highlights
510
+ document.querySelectorAll('.annotation-box.highlighted').forEach(b => {
511
+ b.classList.remove('highlighted');
512
+ });
513
+ document.querySelectorAll('.annotation-item.active').forEach(i => {
514
+ i.classList.remove('active');
515
+ });
516
+
517
+ // Highlight this annotation
518
+ item.classList.add('active');
519
+ const box = document.querySelector(\`.annotation-box[data-annotation-id="\${id}"]\`);
520
+ if (box) {
521
+ box.classList.add('highlighted');
522
+ box.scrollIntoView({ behavior: 'smooth', block: 'center' });
523
+ }
524
+ });
525
+ });
526
+ `
527
+ : ''}
528
+
529
+ // Search functionality
530
+ const searchInput = document.getElementById('search-input');
531
+ if (searchInput) {
532
+ searchInput.addEventListener('input', (e) => {
533
+ const query = e.target.value.toLowerCase();
534
+ const items = document.querySelectorAll('.annotation-item');
535
+
536
+ items.forEach(item => {
537
+ const annotation = annotations.find(a => a.id === item.dataset.annotationId);
538
+ if (!annotation) return;
539
+
540
+ const searchText = [
541
+ annotation.tagName,
542
+ annotation.testId,
543
+ annotation.selector,
544
+ annotation.textContent
545
+ ].filter(Boolean).join(' ').toLowerCase();
546
+
547
+ if (searchText.includes(query)) {
548
+ item.style.display = '';
549
+ } else {
550
+ item.style.display = 'none';
551
+ }
552
+ });
553
+ });
554
+ }
555
+
556
+ // Clear highlights on background click
557
+ document.querySelector('.screenshot-container').addEventListener('click', (e) => {
558
+ if (e.target.classList.contains('screenshot-container') || e.target.tagName === 'IMG') {
559
+ document.querySelectorAll('.annotation-box.highlighted').forEach(b => {
560
+ b.classList.remove('highlighted');
561
+ });
562
+ document.querySelectorAll('.annotation-item.active').forEach(item => {
563
+ item.classList.remove('active');
564
+ });
565
+ }
566
+ });
567
+ `;
568
+ }
569
+ /**
570
+ * Escape HTML entities.
571
+ */
572
+ escapeHtml(text) {
573
+ const map = {
574
+ '&': '&amp;',
575
+ '<': '&lt;',
576
+ '>': '&gt;',
577
+ '"': '&quot;',
578
+ "'": '&#039;',
579
+ };
580
+ return text.replace(/[&<>"']/g, (m) => map[m]);
581
+ }
582
+ }
583
+ exports.HTMLAnnotationRenderer = HTMLAnnotationRenderer;
584
+ //# sourceMappingURL=HTMLAnnotationRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLAnnotationRenderer.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,gDAAkC;AASlC;;;;;;;;;;;;;;GAcG;AACH,MAAa,sBAAsB;IAGjC,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG;YACZ,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,IAAI;YACjB,sBAAsB,EAAE,IAAI;YAC5B,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,CAAC;YACnB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,UAA+B;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,gBAAgB;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE3C,gBAAgB;QAChB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEpD,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACjC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,YAAY,CAAC,UAA+B;QAClD,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QAEjD,+CAA+C;QAC/C,MAAM,iBAAiB,GAAG,yBAAyB,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAE9F,OAAO;;;;;iCAKsB,UAAU,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAwCjC,IAAI,CAAC,MAAM,CAAC,gBAAgB,YAAY,IAAI,CAAC,MAAM,CAAC,gBAAgB;wBAC5D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBACjD,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoCpE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;8CAMjB,YAAY,CAAC,QAAQ,CAAC,KAAK,eAAe,YAAY,CAAC,QAAQ,CAAC,MAAM;oBAChG,iBAAiB;UAC3B,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,YAAY,CAAC;;;MAGzD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;;;;MAIhE,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;;;QAGlC,CAAC;IACP,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2JL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,WAAgC,EAChC,YAAiD;QAEjD,OAAO,WAAW;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aAC1B,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAClB,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,WAAW,CAAC;YACjE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC;YAEtD,OAAO;;;gCAGiB,UAAU,CAAC,EAAE;;oBAEzB,GAAG,CAAC,CAAC;mBACN,GAAG,CAAC,CAAC;qBACH,GAAG,CAAC,KAAK;sBACR,GAAG,CAAC,MAAM;;mBAEb,UAAU,CAAC,QAAQ;;0CAEI,KAAK;eAChC,CAAC;QACV,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,UAA+B;QACnD,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QACjD,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;QAElF,OAAO;;;cAGG,UAAU,CAAC,KAAK;;;8CAGgB,kBAAkB,CAAC,MAAM;;;;8CAIzB,gBAAgB;;;;;;;;;;;;;;;;UAgBpD,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;WAErE,CAAC;IACV,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,UAA6B;QACxD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3E,OAAO;uDAC4C,UAAU,CAAC,EAAE;;+CAErB,UAAU,CAAC,OAAO;UACvD,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE;;QAExF,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,oDAAoD,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE;QAEvG,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAChC,CAAC,CAAC;;YAEA,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kCAAkC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;OAElG;YACG,CAAC,CAAC,EACN;;;;sCAIgC,UAAU,CAAC,QAAQ;;;;sCAInB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;;UAGjH,UAAU,CAAC,WAAW;YACpB,CAAC,CAAC;;;wCAG0B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;;SAExF;YACG,CAAC,CAAC,EACN;;WAEG,CAAC;IACV,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,WAAgC;QACzD,OAAO;0BACe,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;;;MAIxD,IAAI,CAAC,MAAM,CAAC,sBAAsB;YAChC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8CL;YACG,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwCC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,IAAY;QAC7B,MAAM,GAAG,GAA2B;YAClC,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,QAAQ;SACd,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;CACF;AAliBD,wDAkiBC"}