@supernal/interface 1.0.0

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 (519) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +165 -0
  3. package/dist/cjs/names/API.js +104 -0
  4. package/dist/cjs/names/API.js.map +1 -0
  5. package/dist/cjs/names/Components.js +104 -0
  6. package/dist/cjs/names/Components.js.map +1 -0
  7. package/dist/cjs/names/Containers.js +99 -0
  8. package/dist/cjs/names/Containers.js.map +1 -0
  9. package/dist/cjs/names/Functions.js +114 -0
  10. package/dist/cjs/names/Functions.js.map +1 -0
  11. package/dist/cjs/names/index.js +118 -0
  12. package/dist/cjs/names/index.js.map +1 -0
  13. package/dist/cjs/src/adapters/ChatUIProvider.js +176 -0
  14. package/dist/cjs/src/adapters/ChatUIProvider.js.map +1 -0
  15. package/dist/cjs/src/adapters/bridge.js +225 -0
  16. package/dist/cjs/src/adapters/bridge.js.map +1 -0
  17. package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js +289 -0
  18. package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -0
  19. package/dist/cjs/src/adapters/copilotkit/index.js +10 -0
  20. package/dist/cjs/src/adapters/copilotkit/index.js.map +1 -0
  21. package/dist/cjs/src/adapters/index.js +63 -0
  22. package/dist/cjs/src/adapters/index.js.map +1 -0
  23. package/dist/cjs/src/adapters/native/NativeAdapter.js +268 -0
  24. package/dist/cjs/src/adapters/native/NativeAdapter.js.map +1 -0
  25. package/dist/cjs/src/adapters/native/index.js +10 -0
  26. package/dist/cjs/src/adapters/native/index.js.map +1 -0
  27. package/dist/cjs/src/adapters/types/index.js +9 -0
  28. package/dist/cjs/src/adapters/types/index.js.map +1 -0
  29. package/dist/cjs/src/ai/ToolExecutor.js +211 -0
  30. package/dist/cjs/src/ai/ToolExecutor.js.map +1 -0
  31. package/dist/cjs/src/ai/ToolMatcher.js +202 -0
  32. package/dist/cjs/src/ai/ToolMatcher.js.map +1 -0
  33. package/dist/cjs/src/ai/index.js +29 -0
  34. package/dist/cjs/src/ai/index.js.map +1 -0
  35. package/dist/cjs/src/architecture/createContainer.js +106 -0
  36. package/dist/cjs/src/architecture/createContainer.js.map +1 -0
  37. package/dist/cjs/src/architecture/initialize.js +125 -0
  38. package/dist/cjs/src/architecture/initialize.js.map +1 -0
  39. package/dist/cjs/src/architecture/registry.js +111 -0
  40. package/dist/cjs/src/architecture/registry.js.map +1 -0
  41. package/dist/cjs/src/background/architecture/ArchitectureInitializer.js +174 -0
  42. package/dist/cjs/src/background/architecture/ArchitectureInitializer.js.map +1 -0
  43. package/dist/cjs/src/background/architecture/Containers.js +46 -0
  44. package/dist/cjs/src/background/architecture/Containers.js.map +1 -0
  45. package/dist/cjs/src/background/architecture/DataContractTypes.js +28 -0
  46. package/dist/cjs/src/background/architecture/DataContractTypes.js.map +1 -0
  47. package/dist/cjs/src/background/architecture/index.js +24 -0
  48. package/dist/cjs/src/background/architecture/index.js.map +1 -0
  49. package/dist/cjs/src/background/navigation/NavigationGraph.js +71 -0
  50. package/dist/cjs/src/background/navigation/NavigationGraph.js.map +1 -0
  51. package/dist/cjs/src/background/navigation/RuntimeTreeBuilder.js +66 -0
  52. package/dist/cjs/src/background/navigation/RuntimeTreeBuilder.js.map +1 -0
  53. package/dist/cjs/src/background/navigation/useComponentTracking.js +20 -0
  54. package/dist/cjs/src/background/navigation/useComponentTracking.js.map +1 -0
  55. package/dist/cjs/src/background/registry/ComponentRegistry.js +340 -0
  56. package/dist/cjs/src/background/registry/ComponentRegistry.js.map +1 -0
  57. package/dist/cjs/src/background/registry/ToolRegistry.js +668 -0
  58. package/dist/cjs/src/background/registry/ToolRegistry.js.map +1 -0
  59. package/dist/cjs/src/browser.js +70 -0
  60. package/dist/cjs/src/browser.js.map +1 -0
  61. package/dist/cjs/src/components/ComponentScanner.js +362 -0
  62. package/dist/cjs/src/components/ComponentScanner.js.map +1 -0
  63. package/dist/cjs/src/components/index.js +24 -0
  64. package/dist/cjs/src/components/index.js.map +1 -0
  65. package/dist/cjs/src/data/TestDataManager.js +187 -0
  66. package/dist/cjs/src/data/TestDataManager.js.map +1 -0
  67. package/dist/cjs/src/data/index.js +23 -0
  68. package/dist/cjs/src/data/index.js.map +1 -0
  69. package/dist/cjs/src/decorators/Component.js +108 -0
  70. package/dist/cjs/src/decorators/Component.js.map +1 -0
  71. package/dist/cjs/src/decorators/ContainerHelpers.js +45 -0
  72. package/dist/cjs/src/decorators/ContainerHelpers.js.map +1 -0
  73. package/dist/cjs/src/decorators/SpecializedTools.js +386 -0
  74. package/dist/cjs/src/decorators/SpecializedTools.js.map +1 -0
  75. package/dist/cjs/src/decorators/Tool.js +700 -0
  76. package/dist/cjs/src/decorators/Tool.js.map +1 -0
  77. package/dist/cjs/src/decorators/ToolHelpers.js +261 -0
  78. package/dist/cjs/src/decorators/ToolHelpers.js.map +1 -0
  79. package/dist/cjs/src/decorators/ToolPreset.js +270 -0
  80. package/dist/cjs/src/decorators/ToolPreset.js.map +1 -0
  81. package/dist/cjs/src/decorators/ToolProvider.js +86 -0
  82. package/dist/cjs/src/decorators/ToolProvider.js.map +1 -0
  83. package/dist/cjs/src/decorators/index.js +44 -0
  84. package/dist/cjs/src/decorators/index.js.map +1 -0
  85. package/dist/cjs/src/execution/DOMExecutor.js +233 -0
  86. package/dist/cjs/src/execution/DOMExecutor.js.map +1 -0
  87. package/dist/cjs/src/execution/PlaywrightExecutor.js +196 -0
  88. package/dist/cjs/src/execution/PlaywrightExecutor.js.map +1 -0
  89. package/dist/cjs/src/exposure/ExposureCollector.js +358 -0
  90. package/dist/cjs/src/exposure/ExposureCollector.js.map +1 -0
  91. package/dist/cjs/src/exposure/index.js +26 -0
  92. package/dist/cjs/src/exposure/index.js.map +1 -0
  93. package/dist/cjs/src/index.js +187 -0
  94. package/dist/cjs/src/index.js.map +1 -0
  95. package/dist/cjs/src/interfaces/StatefulComponent.js +50 -0
  96. package/dist/cjs/src/interfaces/StatefulComponent.js.map +1 -0
  97. package/dist/cjs/src/name-contracts/ContractScanner.js +15 -0
  98. package/dist/cjs/src/name-contracts/ContractScanner.js.map +1 -0
  99. package/dist/cjs/src/name-contracts/RouteContractScanner.js +225 -0
  100. package/dist/cjs/src/name-contracts/RouteContractScanner.js.map +1 -0
  101. package/dist/cjs/src/name-contracts/index.js +15 -0
  102. package/dist/cjs/src/name-contracts/index.js.map +1 -0
  103. package/dist/cjs/src/names/createNames.js +86 -0
  104. package/dist/cjs/src/names/createNames.js.map +1 -0
  105. package/dist/cjs/src/react/hooks/useChatWithContext.js +221 -0
  106. package/dist/cjs/src/react/hooks/useChatWithContext.js.map +1 -0
  107. package/dist/cjs/src/react/index.js +28 -0
  108. package/dist/cjs/src/react/index.js.map +1 -0
  109. package/dist/cjs/src/react/useNavigationHandler.js +88 -0
  110. package/dist/cjs/src/react/useNavigationHandler.js.map +1 -0
  111. package/dist/cjs/src/react/usePersistedState.js +72 -0
  112. package/dist/cjs/src/react/usePersistedState.js.map +1 -0
  113. package/dist/cjs/src/react/useToolBinding.js +110 -0
  114. package/dist/cjs/src/react/useToolBinding.js.map +1 -0
  115. package/dist/cjs/src/routes/RouteContractGenerator.js +119 -0
  116. package/dist/cjs/src/routes/RouteContractGenerator.js.map +1 -0
  117. package/dist/cjs/src/routes/RouteContractsConfig.js +39 -0
  118. package/dist/cjs/src/routes/RouteContractsConfig.js.map +1 -0
  119. package/dist/cjs/src/routes/index.js +20 -0
  120. package/dist/cjs/src/routes/index.js.map +1 -0
  121. package/dist/cjs/src/routes/scanners/NameExtractor.js +193 -0
  122. package/dist/cjs/src/routes/scanners/NameExtractor.js.map +1 -0
  123. package/dist/cjs/src/routes/scanners/NextjsDynamicScanner.js +102 -0
  124. package/dist/cjs/src/routes/scanners/NextjsDynamicScanner.js.map +1 -0
  125. package/dist/cjs/src/routes/scanners/RouteScanner.js +13 -0
  126. package/dist/cjs/src/routes/scanners/RouteScanner.js.map +1 -0
  127. package/dist/cjs/src/storage/LocalStorageAdapter.js +87 -0
  128. package/dist/cjs/src/storage/LocalStorageAdapter.js.map +1 -0
  129. package/dist/cjs/src/storage/StateManager.js +299 -0
  130. package/dist/cjs/src/storage/StateManager.js.map +1 -0
  131. package/dist/cjs/src/storage/StorageAdapter.js +164 -0
  132. package/dist/cjs/src/storage/StorageAdapter.js.map +1 -0
  133. package/dist/cjs/src/storage/index.js +37 -0
  134. package/dist/cjs/src/storage/index.js.map +1 -0
  135. package/dist/cjs/src/testing/BrowserStateInjection.js +130 -0
  136. package/dist/cjs/src/testing/BrowserStateInjection.js.map +1 -0
  137. package/dist/cjs/src/testing/ComponentStateHelpers.js +200 -0
  138. package/dist/cjs/src/testing/ComponentStateHelpers.js.map +1 -0
  139. package/dist/cjs/src/testing/GherkinParser.js +252 -0
  140. package/dist/cjs/src/testing/GherkinParser.js.map +1 -0
  141. package/dist/cjs/src/testing/PlaywrightStateHelpers.js +254 -0
  142. package/dist/cjs/src/testing/PlaywrightStateHelpers.js.map +1 -0
  143. package/dist/cjs/src/testing/TestRunner.js +158 -0
  144. package/dist/cjs/src/testing/TestRunner.js.map +1 -0
  145. package/dist/cjs/src/testing/index.js +46 -0
  146. package/dist/cjs/src/testing/index.js.map +1 -0
  147. package/dist/cjs/src/testing/selectors.js +84 -0
  148. package/dist/cjs/src/testing/selectors.js.map +1 -0
  149. package/dist/cjs/src/tools/SystemTools.js +262 -0
  150. package/dist/cjs/src/tools/SystemTools.js.map +1 -0
  151. package/dist/cjs/src/types/ClassifiedTool.js +50 -0
  152. package/dist/cjs/src/types/ClassifiedTool.js.map +1 -0
  153. package/dist/cjs/src/types/ComponentState.js +30 -0
  154. package/dist/cjs/src/types/ComponentState.js.map +1 -0
  155. package/dist/cjs/src/types/DiscoverableToolProvider.js +9 -0
  156. package/dist/cjs/src/types/DiscoverableToolProvider.js.map +1 -0
  157. package/dist/cjs/src/types/ExposureState.js +25 -0
  158. package/dist/cjs/src/types/ExposureState.js.map +1 -0
  159. package/dist/cjs/src/types/NavigationGraph.js +8 -0
  160. package/dist/cjs/src/types/NavigationGraph.js.map +1 -0
  161. package/dist/cjs/src/types/OperationType.js +49 -0
  162. package/dist/cjs/src/types/OperationType.js.map +1 -0
  163. package/dist/cjs/src/types/StateManagers.js +39 -0
  164. package/dist/cjs/src/types/StateManagers.js.map +1 -0
  165. package/dist/cjs/src/types/Tool.js +41 -0
  166. package/dist/cjs/src/types/Tool.js.map +1 -0
  167. package/dist/cjs/src/types/ToolPermissions.js +54 -0
  168. package/dist/cjs/src/types/ToolPermissions.js.map +1 -0
  169. package/dist/cjs/src/types/ToolResult.js +25 -0
  170. package/dist/cjs/src/types/ToolResult.js.map +1 -0
  171. package/dist/cjs/src/types/index.js +59 -0
  172. package/dist/cjs/src/types/index.js.map +1 -0
  173. package/dist/cjs/src/ui/react/chat/ChatBubble.js +221 -0
  174. package/dist/cjs/src/ui/react/chat/ChatBubble.js.map +1 -0
  175. package/dist/esm/names/API.d.ts +77 -0
  176. package/dist/esm/names/API.d.ts.map +1 -0
  177. package/dist/esm/names/API.js +99 -0
  178. package/dist/esm/names/API.js.map +1 -0
  179. package/dist/esm/names/Components.d.ts +77 -0
  180. package/dist/esm/names/Components.d.ts.map +1 -0
  181. package/dist/esm/names/Components.js +99 -0
  182. package/dist/esm/names/Components.js.map +1 -0
  183. package/dist/esm/names/Containers.d.ts +84 -0
  184. package/dist/esm/names/Containers.d.ts.map +1 -0
  185. package/dist/esm/names/Containers.js +94 -0
  186. package/dist/esm/names/Containers.js.map +1 -0
  187. package/dist/esm/names/Functions.d.ts +87 -0
  188. package/dist/esm/names/Functions.d.ts.map +1 -0
  189. package/dist/esm/names/Functions.js +109 -0
  190. package/dist/esm/names/Functions.js.map +1 -0
  191. package/dist/esm/names/index.d.ts +187 -0
  192. package/dist/esm/names/index.d.ts.map +1 -0
  193. package/dist/esm/names/index.js +99 -0
  194. package/dist/esm/names/index.js.map +1 -0
  195. package/dist/esm/src/adapters/ChatUIProvider.d.ts +76 -0
  196. package/dist/esm/src/adapters/ChatUIProvider.d.ts.map +1 -0
  197. package/dist/esm/src/adapters/ChatUIProvider.js +136 -0
  198. package/dist/esm/src/adapters/ChatUIProvider.js.map +1 -0
  199. package/dist/esm/src/adapters/bridge.d.ts +145 -0
  200. package/dist/esm/src/adapters/bridge.d.ts.map +1 -0
  201. package/dist/esm/src/adapters/bridge.js +218 -0
  202. package/dist/esm/src/adapters/bridge.js.map +1 -0
  203. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.d.ts +49 -0
  204. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.d.ts.map +1 -0
  205. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js +251 -0
  206. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -0
  207. package/dist/esm/src/adapters/copilotkit/index.d.ts +6 -0
  208. package/dist/esm/src/adapters/copilotkit/index.d.ts.map +1 -0
  209. package/dist/esm/src/adapters/copilotkit/index.js +5 -0
  210. package/dist/esm/src/adapters/copilotkit/index.js.map +1 -0
  211. package/dist/esm/src/adapters/index.d.ts +31 -0
  212. package/dist/esm/src/adapters/index.d.ts.map +1 -0
  213. package/dist/esm/src/adapters/index.js +32 -0
  214. package/dist/esm/src/adapters/index.js.map +1 -0
  215. package/dist/esm/src/adapters/native/NativeAdapter.d.ts +47 -0
  216. package/dist/esm/src/adapters/native/NativeAdapter.d.ts.map +1 -0
  217. package/dist/esm/src/adapters/native/NativeAdapter.js +230 -0
  218. package/dist/esm/src/adapters/native/NativeAdapter.js.map +1 -0
  219. package/dist/esm/src/adapters/native/index.d.ts +6 -0
  220. package/dist/esm/src/adapters/native/index.d.ts.map +1 -0
  221. package/dist/esm/src/adapters/native/index.js +5 -0
  222. package/dist/esm/src/adapters/native/index.js.map +1 -0
  223. package/dist/esm/src/adapters/types/index.d.ts +155 -0
  224. package/dist/esm/src/adapters/types/index.d.ts.map +1 -0
  225. package/dist/esm/src/adapters/types/index.js +8 -0
  226. package/dist/esm/src/adapters/types/index.js.map +1 -0
  227. package/dist/esm/src/ai/ToolExecutor.d.ts +49 -0
  228. package/dist/esm/src/ai/ToolExecutor.d.ts.map +1 -0
  229. package/dist/esm/src/ai/ToolExecutor.js +174 -0
  230. package/dist/esm/src/ai/ToolExecutor.js.map +1 -0
  231. package/dist/esm/src/ai/ToolMatcher.d.ts +61 -0
  232. package/dist/esm/src/ai/ToolMatcher.d.ts.map +1 -0
  233. package/dist/esm/src/ai/ToolMatcher.js +198 -0
  234. package/dist/esm/src/ai/ToolMatcher.js.map +1 -0
  235. package/dist/esm/src/ai/index.d.ts +9 -0
  236. package/dist/esm/src/ai/index.d.ts.map +1 -0
  237. package/dist/esm/src/ai/index.js +13 -0
  238. package/dist/esm/src/ai/index.js.map +1 -0
  239. package/dist/esm/src/architecture/createContainer.d.ts +60 -0
  240. package/dist/esm/src/architecture/createContainer.d.ts.map +1 -0
  241. package/dist/esm/src/architecture/createContainer.js +102 -0
  242. package/dist/esm/src/architecture/createContainer.js.map +1 -0
  243. package/dist/esm/src/architecture/initialize.d.ts +81 -0
  244. package/dist/esm/src/architecture/initialize.d.ts.map +1 -0
  245. package/dist/esm/src/architecture/initialize.js +121 -0
  246. package/dist/esm/src/architecture/initialize.js.map +1 -0
  247. package/dist/esm/src/architecture/registry.d.ts +61 -0
  248. package/dist/esm/src/architecture/registry.d.ts.map +1 -0
  249. package/dist/esm/src/architecture/registry.js +107 -0
  250. package/dist/esm/src/architecture/registry.js.map +1 -0
  251. package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts +95 -0
  252. package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts.map +1 -0
  253. package/dist/esm/src/background/architecture/ArchitectureInitializer.js +170 -0
  254. package/dist/esm/src/background/architecture/ArchitectureInitializer.js.map +1 -0
  255. package/dist/esm/src/background/architecture/Containers.d.ts +52 -0
  256. package/dist/esm/src/background/architecture/Containers.d.ts.map +1 -0
  257. package/dist/esm/src/background/architecture/Containers.js +40 -0
  258. package/dist/esm/src/background/architecture/Containers.js.map +1 -0
  259. package/dist/esm/src/background/architecture/DataContractTypes.d.ts +33 -0
  260. package/dist/esm/src/background/architecture/DataContractTypes.d.ts.map +1 -0
  261. package/dist/esm/src/background/architecture/DataContractTypes.js +22 -0
  262. package/dist/esm/src/background/architecture/DataContractTypes.js.map +1 -0
  263. package/dist/esm/src/background/architecture/index.d.ts +12 -0
  264. package/dist/esm/src/background/architecture/index.d.ts.map +1 -0
  265. package/dist/esm/src/background/architecture/index.js +13 -0
  266. package/dist/esm/src/background/architecture/index.js.map +1 -0
  267. package/dist/esm/src/background/navigation/NavigationGraph.d.ts +48 -0
  268. package/dist/esm/src/background/navigation/NavigationGraph.d.ts.map +1 -0
  269. package/dist/esm/src/background/navigation/NavigationGraph.js +67 -0
  270. package/dist/esm/src/background/navigation/NavigationGraph.js.map +1 -0
  271. package/dist/esm/src/background/navigation/RuntimeTreeBuilder.d.ts +30 -0
  272. package/dist/esm/src/background/navigation/RuntimeTreeBuilder.d.ts.map +1 -0
  273. package/dist/esm/src/background/navigation/RuntimeTreeBuilder.js +60 -0
  274. package/dist/esm/src/background/navigation/RuntimeTreeBuilder.js.map +1 -0
  275. package/dist/esm/src/background/navigation/useComponentTracking.d.ts +10 -0
  276. package/dist/esm/src/background/navigation/useComponentTracking.d.ts.map +1 -0
  277. package/dist/esm/src/background/navigation/useComponentTracking.js +17 -0
  278. package/dist/esm/src/background/navigation/useComponentTracking.js.map +1 -0
  279. package/dist/esm/src/background/registry/ComponentRegistry.d.ts +192 -0
  280. package/dist/esm/src/background/registry/ComponentRegistry.d.ts.map +1 -0
  281. package/dist/esm/src/background/registry/ComponentRegistry.js +336 -0
  282. package/dist/esm/src/background/registry/ComponentRegistry.js.map +1 -0
  283. package/dist/esm/src/background/registry/ToolRegistry.d.ts +232 -0
  284. package/dist/esm/src/background/registry/ToolRegistry.d.ts.map +1 -0
  285. package/dist/esm/src/background/registry/ToolRegistry.js +664 -0
  286. package/dist/esm/src/background/registry/ToolRegistry.js.map +1 -0
  287. package/dist/esm/src/browser.d.ts +21 -0
  288. package/dist/esm/src/browser.d.ts.map +1 -0
  289. package/dist/esm/src/browser.js +31 -0
  290. package/dist/esm/src/browser.js.map +1 -0
  291. package/dist/esm/src/components/ComponentScanner.d.ts +99 -0
  292. package/dist/esm/src/components/ComponentScanner.d.ts.map +1 -0
  293. package/dist/esm/src/components/ComponentScanner.js +325 -0
  294. package/dist/esm/src/components/ComponentScanner.js.map +1 -0
  295. package/dist/esm/src/components/index.d.ts +9 -0
  296. package/dist/esm/src/components/index.d.ts.map +1 -0
  297. package/dist/esm/src/components/index.js +8 -0
  298. package/dist/esm/src/components/index.js.map +1 -0
  299. package/dist/esm/src/data/TestDataManager.d.ts +125 -0
  300. package/dist/esm/src/data/TestDataManager.d.ts.map +1 -0
  301. package/dist/esm/src/data/TestDataManager.js +183 -0
  302. package/dist/esm/src/data/TestDataManager.js.map +1 -0
  303. package/dist/esm/src/data/index.d.ts +7 -0
  304. package/dist/esm/src/data/index.d.ts.map +1 -0
  305. package/dist/esm/src/data/index.js +7 -0
  306. package/dist/esm/src/data/index.js.map +1 -0
  307. package/dist/esm/src/decorators/Component.d.ts +59 -0
  308. package/dist/esm/src/decorators/Component.d.ts.map +1 -0
  309. package/dist/esm/src/decorators/Component.js +103 -0
  310. package/dist/esm/src/decorators/Component.js.map +1 -0
  311. package/dist/esm/src/decorators/ContainerHelpers.d.ts +26 -0
  312. package/dist/esm/src/decorators/ContainerHelpers.d.ts.map +1 -0
  313. package/dist/esm/src/decorators/ContainerHelpers.js +42 -0
  314. package/dist/esm/src/decorators/ContainerHelpers.js.map +1 -0
  315. package/dist/esm/src/decorators/SpecializedTools.d.ts +218 -0
  316. package/dist/esm/src/decorators/SpecializedTools.d.ts.map +1 -0
  317. package/dist/esm/src/decorators/SpecializedTools.js +383 -0
  318. package/dist/esm/src/decorators/SpecializedTools.js.map +1 -0
  319. package/dist/esm/src/decorators/Tool.d.ts +210 -0
  320. package/dist/esm/src/decorators/Tool.d.ts.map +1 -0
  321. package/dist/esm/src/decorators/Tool.js +694 -0
  322. package/dist/esm/src/decorators/Tool.js.map +1 -0
  323. package/dist/esm/src/decorators/ToolHelpers.d.ts +74 -0
  324. package/dist/esm/src/decorators/ToolHelpers.d.ts.map +1 -0
  325. package/dist/esm/src/decorators/ToolHelpers.js +219 -0
  326. package/dist/esm/src/decorators/ToolHelpers.js.map +1 -0
  327. package/dist/esm/src/decorators/ToolPreset.d.ts +138 -0
  328. package/dist/esm/src/decorators/ToolPreset.d.ts.map +1 -0
  329. package/dist/esm/src/decorators/ToolPreset.js +259 -0
  330. package/dist/esm/src/decorators/ToolPreset.js.map +1 -0
  331. package/dist/esm/src/decorators/ToolProvider.d.ts +65 -0
  332. package/dist/esm/src/decorators/ToolProvider.d.ts.map +1 -0
  333. package/dist/esm/src/decorators/ToolProvider.js +81 -0
  334. package/dist/esm/src/decorators/ToolProvider.js.map +1 -0
  335. package/dist/esm/src/decorators/index.d.ts +13 -0
  336. package/dist/esm/src/decorators/index.d.ts.map +1 -0
  337. package/dist/esm/src/decorators/index.js +14 -0
  338. package/dist/esm/src/decorators/index.js.map +1 -0
  339. package/dist/esm/src/execution/DOMExecutor.d.ts +43 -0
  340. package/dist/esm/src/execution/DOMExecutor.d.ts.map +1 -0
  341. package/dist/esm/src/execution/DOMExecutor.js +229 -0
  342. package/dist/esm/src/execution/DOMExecutor.js.map +1 -0
  343. package/dist/esm/src/execution/PlaywrightExecutor.d.ts +38 -0
  344. package/dist/esm/src/execution/PlaywrightExecutor.d.ts.map +1 -0
  345. package/dist/esm/src/execution/PlaywrightExecutor.js +192 -0
  346. package/dist/esm/src/execution/PlaywrightExecutor.js.map +1 -0
  347. package/dist/esm/src/exposure/ExposureCollector.d.ts +88 -0
  348. package/dist/esm/src/exposure/ExposureCollector.d.ts.map +1 -0
  349. package/dist/esm/src/exposure/ExposureCollector.js +354 -0
  350. package/dist/esm/src/exposure/ExposureCollector.js.map +1 -0
  351. package/dist/esm/src/exposure/index.d.ts +8 -0
  352. package/dist/esm/src/exposure/index.d.ts.map +1 -0
  353. package/dist/esm/src/exposure/index.js +10 -0
  354. package/dist/esm/src/exposure/index.js.map +1 -0
  355. package/dist/esm/src/index.d.ts +49 -0
  356. package/dist/esm/src/index.d.ts.map +1 -0
  357. package/dist/esm/src/index.js +79 -0
  358. package/dist/esm/src/index.js.map +1 -0
  359. package/dist/esm/src/interfaces/StatefulComponent.d.ts +72 -0
  360. package/dist/esm/src/interfaces/StatefulComponent.d.ts.map +1 -0
  361. package/dist/esm/src/interfaces/StatefulComponent.js +47 -0
  362. package/dist/esm/src/interfaces/StatefulComponent.js.map +1 -0
  363. package/dist/esm/src/name-contracts/ContractScanner.d.ts +61 -0
  364. package/dist/esm/src/name-contracts/ContractScanner.d.ts.map +1 -0
  365. package/dist/esm/src/name-contracts/ContractScanner.js +11 -0
  366. package/dist/esm/src/name-contracts/ContractScanner.js.map +1 -0
  367. package/dist/esm/src/name-contracts/RouteContractScanner.d.ts +30 -0
  368. package/dist/esm/src/name-contracts/RouteContractScanner.d.ts.map +1 -0
  369. package/dist/esm/src/name-contracts/RouteContractScanner.js +188 -0
  370. package/dist/esm/src/name-contracts/RouteContractScanner.js.map +1 -0
  371. package/dist/esm/src/name-contracts/index.d.ts +10 -0
  372. package/dist/esm/src/name-contracts/index.d.ts.map +1 -0
  373. package/dist/esm/src/name-contracts/index.js +10 -0
  374. package/dist/esm/src/name-contracts/index.js.map +1 -0
  375. package/dist/esm/src/names/createNames.d.ts +49 -0
  376. package/dist/esm/src/names/createNames.d.ts.map +1 -0
  377. package/dist/esm/src/names/createNames.js +81 -0
  378. package/dist/esm/src/names/createNames.js.map +1 -0
  379. package/dist/esm/src/react/hooks/useChatWithContext.d.ts +68 -0
  380. package/dist/esm/src/react/hooks/useChatWithContext.d.ts.map +1 -0
  381. package/dist/esm/src/react/hooks/useChatWithContext.js +218 -0
  382. package/dist/esm/src/react/hooks/useChatWithContext.js.map +1 -0
  383. package/dist/esm/src/react/index.d.ts +12 -0
  384. package/dist/esm/src/react/index.d.ts.map +1 -0
  385. package/dist/esm/src/react/index.js +21 -0
  386. package/dist/esm/src/react/index.js.map +1 -0
  387. package/dist/esm/src/react/useNavigationHandler.d.ts +42 -0
  388. package/dist/esm/src/react/useNavigationHandler.d.ts.map +1 -0
  389. package/dist/esm/src/react/useNavigationHandler.js +85 -0
  390. package/dist/esm/src/react/useNavigationHandler.js.map +1 -0
  391. package/dist/esm/src/react/usePersistedState.d.ts +13 -0
  392. package/dist/esm/src/react/usePersistedState.d.ts.map +1 -0
  393. package/dist/esm/src/react/usePersistedState.js +69 -0
  394. package/dist/esm/src/react/usePersistedState.js.map +1 -0
  395. package/dist/esm/src/react/useToolBinding.d.ts +8 -0
  396. package/dist/esm/src/react/useToolBinding.d.ts.map +1 -0
  397. package/dist/esm/src/react/useToolBinding.js +107 -0
  398. package/dist/esm/src/react/useToolBinding.js.map +1 -0
  399. package/dist/esm/src/routes/RouteContractGenerator.d.ts +37 -0
  400. package/dist/esm/src/routes/RouteContractGenerator.d.ts.map +1 -0
  401. package/dist/esm/src/routes/RouteContractGenerator.js +115 -0
  402. package/dist/esm/src/routes/RouteContractGenerator.js.map +1 -0
  403. package/dist/esm/src/routes/RouteContractsConfig.d.ts +93 -0
  404. package/dist/esm/src/routes/RouteContractsConfig.d.ts.map +1 -0
  405. package/dist/esm/src/routes/RouteContractsConfig.js +36 -0
  406. package/dist/esm/src/routes/RouteContractsConfig.js.map +1 -0
  407. package/dist/esm/src/routes/index.d.ts +13 -0
  408. package/dist/esm/src/routes/index.d.ts.map +1 -0
  409. package/dist/esm/src/routes/index.js +13 -0
  410. package/dist/esm/src/routes/index.js.map +1 -0
  411. package/dist/esm/src/routes/scanners/NameExtractor.d.ts +36 -0
  412. package/dist/esm/src/routes/scanners/NameExtractor.d.ts.map +1 -0
  413. package/dist/esm/src/routes/scanners/NameExtractor.js +156 -0
  414. package/dist/esm/src/routes/scanners/NameExtractor.js.map +1 -0
  415. package/dist/esm/src/routes/scanners/NextjsDynamicScanner.d.ts +35 -0
  416. package/dist/esm/src/routes/scanners/NextjsDynamicScanner.d.ts.map +1 -0
  417. package/dist/esm/src/routes/scanners/NextjsDynamicScanner.js +98 -0
  418. package/dist/esm/src/routes/scanners/NextjsDynamicScanner.js.map +1 -0
  419. package/dist/esm/src/routes/scanners/RouteScanner.d.ts +64 -0
  420. package/dist/esm/src/routes/scanners/RouteScanner.d.ts.map +1 -0
  421. package/dist/esm/src/routes/scanners/RouteScanner.js +9 -0
  422. package/dist/esm/src/routes/scanners/RouteScanner.js.map +1 -0
  423. package/dist/esm/src/storage/LocalStorageAdapter.d.ts +29 -0
  424. package/dist/esm/src/storage/LocalStorageAdapter.d.ts.map +1 -0
  425. package/dist/esm/src/storage/LocalStorageAdapter.js +83 -0
  426. package/dist/esm/src/storage/LocalStorageAdapter.js.map +1 -0
  427. package/dist/esm/src/storage/StateManager.d.ts +175 -0
  428. package/dist/esm/src/storage/StateManager.d.ts.map +1 -0
  429. package/dist/esm/src/storage/StateManager.js +295 -0
  430. package/dist/esm/src/storage/StateManager.js.map +1 -0
  431. package/dist/esm/src/storage/StorageAdapter.d.ts +94 -0
  432. package/dist/esm/src/storage/StorageAdapter.d.ts.map +1 -0
  433. package/dist/esm/src/storage/StorageAdapter.js +158 -0
  434. package/dist/esm/src/storage/StorageAdapter.js.map +1 -0
  435. package/dist/esm/src/storage/index.d.ts +12 -0
  436. package/dist/esm/src/storage/index.d.ts.map +1 -0
  437. package/dist/esm/src/storage/index.js +17 -0
  438. package/dist/esm/src/storage/index.js.map +1 -0
  439. package/dist/esm/src/testing/BrowserStateInjection.d.ts +74 -0
  440. package/dist/esm/src/testing/BrowserStateInjection.d.ts.map +1 -0
  441. package/dist/esm/src/testing/BrowserStateInjection.js +126 -0
  442. package/dist/esm/src/testing/BrowserStateInjection.js.map +1 -0
  443. package/dist/esm/src/testing/ComponentStateHelpers.d.ts +121 -0
  444. package/dist/esm/src/testing/ComponentStateHelpers.d.ts.map +1 -0
  445. package/dist/esm/src/testing/ComponentStateHelpers.js +190 -0
  446. package/dist/esm/src/testing/ComponentStateHelpers.js.map +1 -0
  447. package/dist/esm/src/testing/GherkinParser.d.ts +87 -0
  448. package/dist/esm/src/testing/GherkinParser.d.ts.map +1 -0
  449. package/dist/esm/src/testing/GherkinParser.js +248 -0
  450. package/dist/esm/src/testing/GherkinParser.js.map +1 -0
  451. package/dist/esm/src/testing/PlaywrightStateHelpers.d.ts +163 -0
  452. package/dist/esm/src/testing/PlaywrightStateHelpers.d.ts.map +1 -0
  453. package/dist/esm/src/testing/PlaywrightStateHelpers.js +242 -0
  454. package/dist/esm/src/testing/PlaywrightStateHelpers.js.map +1 -0
  455. package/dist/esm/src/testing/TestRunner.d.ts +50 -0
  456. package/dist/esm/src/testing/TestRunner.d.ts.map +1 -0
  457. package/dist/esm/src/testing/TestRunner.js +121 -0
  458. package/dist/esm/src/testing/TestRunner.js.map +1 -0
  459. package/dist/esm/src/testing/index.d.ts +12 -0
  460. package/dist/esm/src/testing/index.d.ts.map +1 -0
  461. package/dist/esm/src/testing/index.js +25 -0
  462. package/dist/esm/src/testing/index.js.map +1 -0
  463. package/dist/esm/src/testing/selectors.d.ts +65 -0
  464. package/dist/esm/src/testing/selectors.d.ts.map +1 -0
  465. package/dist/esm/src/testing/selectors.js +76 -0
  466. package/dist/esm/src/testing/selectors.js.map +1 -0
  467. package/dist/esm/src/tools/SystemTools.d.ts +139 -0
  468. package/dist/esm/src/tools/SystemTools.d.ts.map +1 -0
  469. package/dist/esm/src/tools/SystemTools.js +258 -0
  470. package/dist/esm/src/tools/SystemTools.js.map +1 -0
  471. package/dist/esm/src/types/ClassifiedTool.d.ts +61 -0
  472. package/dist/esm/src/types/ClassifiedTool.d.ts.map +1 -0
  473. package/dist/esm/src/types/ClassifiedTool.js +47 -0
  474. package/dist/esm/src/types/ClassifiedTool.js.map +1 -0
  475. package/dist/esm/src/types/ComponentState.d.ts +207 -0
  476. package/dist/esm/src/types/ComponentState.d.ts.map +1 -0
  477. package/dist/esm/src/types/ComponentState.js +25 -0
  478. package/dist/esm/src/types/ComponentState.js.map +1 -0
  479. package/dist/esm/src/types/DiscoverableToolProvider.d.ts +59 -0
  480. package/dist/esm/src/types/DiscoverableToolProvider.d.ts.map +1 -0
  481. package/dist/esm/src/types/DiscoverableToolProvider.js +8 -0
  482. package/dist/esm/src/types/DiscoverableToolProvider.js.map +1 -0
  483. package/dist/esm/src/types/ExposureState.d.ts +75 -0
  484. package/dist/esm/src/types/ExposureState.d.ts.map +1 -0
  485. package/dist/esm/src/types/ExposureState.js +22 -0
  486. package/dist/esm/src/types/ExposureState.js.map +1 -0
  487. package/dist/esm/src/types/NavigationGraph.d.ts +98 -0
  488. package/dist/esm/src/types/NavigationGraph.d.ts.map +1 -0
  489. package/dist/esm/src/types/NavigationGraph.js +7 -0
  490. package/dist/esm/src/types/NavigationGraph.js.map +1 -0
  491. package/dist/esm/src/types/OperationType.d.ts +45 -0
  492. package/dist/esm/src/types/OperationType.d.ts.map +1 -0
  493. package/dist/esm/src/types/OperationType.js +46 -0
  494. package/dist/esm/src/types/OperationType.js.map +1 -0
  495. package/dist/esm/src/types/StateManagers.d.ts +35 -0
  496. package/dist/esm/src/types/StateManagers.d.ts.map +1 -0
  497. package/dist/esm/src/types/StateManagers.js +36 -0
  498. package/dist/esm/src/types/StateManagers.js.map +1 -0
  499. package/dist/esm/src/types/Tool.d.ts +162 -0
  500. package/dist/esm/src/types/Tool.d.ts.map +1 -0
  501. package/dist/esm/src/types/Tool.js +38 -0
  502. package/dist/esm/src/types/Tool.js.map +1 -0
  503. package/dist/esm/src/types/ToolPermissions.d.ts +73 -0
  504. package/dist/esm/src/types/ToolPermissions.d.ts.map +1 -0
  505. package/dist/esm/src/types/ToolPermissions.js +51 -0
  506. package/dist/esm/src/types/ToolPermissions.js.map +1 -0
  507. package/dist/esm/src/types/ToolResult.d.ts +129 -0
  508. package/dist/esm/src/types/ToolResult.d.ts.map +1 -0
  509. package/dist/esm/src/types/ToolResult.js +22 -0
  510. package/dist/esm/src/types/ToolResult.js.map +1 -0
  511. package/dist/esm/src/types/index.d.ts +47 -0
  512. package/dist/esm/src/types/index.d.ts.map +1 -0
  513. package/dist/esm/src/types/index.js +42 -0
  514. package/dist/esm/src/types/index.js.map +1 -0
  515. package/dist/esm/src/ui/react/chat/ChatBubble.d.ts +23 -0
  516. package/dist/esm/src/ui/react/chat/ChatBubble.d.ts.map +1 -0
  517. package/dist/esm/src/ui/react/chat/ChatBubble.js +184 -0
  518. package/dist/esm/src/ui/react/chat/ChatBubble.js.map +1 -0
  519. package/package.json +118 -0
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Tools Types - Index File
4
+ *
5
+ * This is the main entry point for all tool-related types.
6
+ * It re-exports all tool types from their specialized modules.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.ActionType = exports.ElementType = void 0;
24
+ // Export tool types
25
+ __exportStar(require("./Tool"), exports);
26
+ __exportStar(require("./ToolPermissions"), exports);
27
+ __exportStar(require("./ToolResult"), exports);
28
+ __exportStar(require("./ExposureState"), exports);
29
+ __exportStar(require("./NavigationGraph"), exports);
30
+ __exportStar(require("./ClassifiedTool"), exports);
31
+ __exportStar(require("./DiscoverableToolProvider"), exports);
32
+ // Export state system types
33
+ __exportStar(require("./StateManagers"), exports);
34
+ __exportStar(require("./OperationType"), exports);
35
+ __exportStar(require("./ComponentState"), exports);
36
+ var ElementType;
37
+ (function (ElementType) {
38
+ ElementType["BUTTON"] = "button";
39
+ ElementType["INPUT"] = "input";
40
+ ElementType["SELECT"] = "select";
41
+ ElementType["TEXTAREA"] = "textarea";
42
+ ElementType["LINK"] = "link";
43
+ ElementType["DIV"] = "div";
44
+ })(ElementType || (exports.ElementType = ElementType = {}));
45
+ var ActionType;
46
+ (function (ActionType) {
47
+ ActionType["CLICK"] = "click";
48
+ ActionType["TYPE"] = "type";
49
+ ActionType["SELECT"] = "select";
50
+ ActionType["NAVIGATE"] = "navigate";
51
+ ActionType["HOVER"] = "hover";
52
+ ActionType["SCROLL"] = "scroll";
53
+ })(ActionType || (exports.ActionType = ActionType = {}));
54
+ /**
55
+ * Tools Types
56
+ *
57
+ * Export of all tool-related types, interfaces and constants
58
+ */
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,oBAAoB;AACpB,yCAAuB;AACvB,oDAAkC;AAClC,+CAA6B;AAC7B,kDAAgC;AAChC,oDAAkC;AAClC,mDAAiC;AACjC,6DAA2C;AAE3C,4BAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC;AAajC,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,0BAAW,CAAA;AACb,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AAED,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,6BAAe,CAAA;IACf,+BAAiB,CAAA;AACnB,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB;AAED;;;;GAIG"}
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ /**
3
+ * Persistent Chat Bubble Component
4
+ *
5
+ * Fixed position chat bubble in lower right corner that:
6
+ * - Appears on every page
7
+ * - Expands/collapses without blocking content
8
+ * - Provides AI interface for tool execution
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.ChatBubble = void 0;
45
+ const react_1 = __importStar(require("react"));
46
+ const Components_1 = require("../../../../names/Components");
47
+ // Chat component names (use the flat Components namespace)
48
+ const ChatNames = {
49
+ bubble: Components_1.Components.ChatToggleButton,
50
+ input: Components_1.Components.ChatInput,
51
+ sendButton: Components_1.Components.ChatSendButton,
52
+ clearButton: Components_1.Components.ChatClearButton,
53
+ };
54
+ // Mock useChatInput for now - this should be injected via props or context
55
+ const useChatInput = () => ({
56
+ registerInput: (callback) => { }
57
+ });
58
+ const CHAT_EXPANDED_KEY = 'supernal-chat-expanded';
59
+ const ChatBubble = ({ messages, onSendMessage, onClearChat }) => {
60
+ // Initialize with default value (true) for both server and client to prevent hydration mismatch
61
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(true);
62
+ const [inputValue, setInputValue] = (0, react_1.useState)('');
63
+ const [lastReadMessageCount, setLastReadMessageCount] = (0, react_1.useState)(0);
64
+ const [showWelcome, setShowWelcome] = (0, react_1.useState)(messages.length === 0);
65
+ const messagesEndRef = (0, react_1.useRef)(null);
66
+ const inputRef = (0, react_1.useRef)(null);
67
+ // Load expanded state from localStorage after hydration
68
+ (0, react_1.useEffect)(() => {
69
+ try {
70
+ const stored = localStorage.getItem(CHAT_EXPANDED_KEY);
71
+ if (stored !== null) {
72
+ setIsExpanded(JSON.parse(stored));
73
+ }
74
+ }
75
+ catch {
76
+ // Keep default value
77
+ }
78
+ }, []);
79
+ // Register with chat input context
80
+ const { registerInput } = useChatInput();
81
+ (0, react_1.useEffect)(() => {
82
+ registerInput((text, submit = false) => {
83
+ setInputValue(text);
84
+ if (!isExpanded) {
85
+ setIsExpanded(true);
86
+ }
87
+ // Auto-focus and submit if requested
88
+ setTimeout(() => {
89
+ inputRef.current?.focus();
90
+ if (submit) {
91
+ onSendMessage(text);
92
+ setInputValue('');
93
+ }
94
+ }, 100);
95
+ });
96
+ }, [registerInput, onSendMessage, isExpanded]);
97
+ // Track unread messages
98
+ const unreadCount = Math.max(0, messages.length - lastReadMessageCount);
99
+ const hasUnread = unreadCount > 0 && !isExpanded;
100
+ (0, react_1.useEffect)(() => {
101
+ if (isExpanded) {
102
+ // Position at bottom without scrolling animation
103
+ messagesEndRef.current?.scrollIntoView({ behavior: 'auto' });
104
+ // Mark all messages as read when chat is expanded
105
+ setLastReadMessageCount(messages.length);
106
+ // Hide welcome if messages exist
107
+ if (messages.length > 0) {
108
+ setShowWelcome(false);
109
+ }
110
+ // Auto-focus input when expanded
111
+ inputRef.current?.focus();
112
+ }
113
+ }, [messages, isExpanded]);
114
+ // Auto-focus on mount
115
+ (0, react_1.useEffect)(() => {
116
+ if (isExpanded) {
117
+ inputRef.current?.focus();
118
+ }
119
+ }, [isExpanded]);
120
+ // Command+/ keyboard shortcut to focus input
121
+ (0, react_1.useEffect)(() => {
122
+ const handleKeyDown = (e) => {
123
+ if ((e.metaKey || e.ctrlKey) && e.key === '/') {
124
+ e.preventDefault();
125
+ if (!isExpanded) {
126
+ setIsExpanded(true);
127
+ }
128
+ inputRef.current?.focus();
129
+ }
130
+ };
131
+ window.addEventListener('keydown', handleKeyDown);
132
+ return () => window.removeEventListener('keydown', handleKeyDown);
133
+ }, [isExpanded]);
134
+ const handleSend = (e) => {
135
+ e.preventDefault();
136
+ if (!inputValue.trim())
137
+ return;
138
+ onSendMessage(inputValue.trim());
139
+ setInputValue('');
140
+ // Re-focus input after sending
141
+ setTimeout(() => inputRef.current?.focus(), 0);
142
+ };
143
+ const handleToggle = () => {
144
+ const newExpandedState = !isExpanded;
145
+ setIsExpanded(newExpandedState);
146
+ // Persist the expanded state to localStorage
147
+ try {
148
+ localStorage.setItem(CHAT_EXPANDED_KEY, JSON.stringify(newExpandedState));
149
+ }
150
+ catch (error) {
151
+ console.error('Failed to save chat expanded state:', error);
152
+ }
153
+ };
154
+ return (react_1.default.createElement(react_1.default.Fragment, null,
155
+ react_1.default.createElement("div", { className: "fixed bottom-4 right-4 sm:bottom-6 sm:right-6 z-50" },
156
+ isExpanded && (react_1.default.createElement("div", { className: "absolute bottom-16 right-0 w-[calc(100vw-2rem)] sm:w-[500px] lg:w-[600px] h-[calc(100vh-10rem)] sm:h-[600px] lg:h-[700px] bg-white rounded-lg shadow-2xl border border-gray-200 flex flex-col" },
157
+ react_1.default.createElement("div", { className: "flex items-center justify-between p-3 sm:p-4 border-b border-gray-200 bg-gradient-to-r from-blue-50 to-purple-50 rounded-t-lg" },
158
+ react_1.default.createElement("div", { className: "flex items-center space-x-2 sm:space-x-3" },
159
+ react_1.default.createElement("div", { className: "relative" },
160
+ react_1.default.createElement("div", { className: "w-8 h-8 sm:w-10 sm:h-10 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center" },
161
+ react_1.default.createElement("span", { className: "text-white text-base sm:text-lg" }, "\uD83E\uDD16")),
162
+ react_1.default.createElement("div", { className: "absolute -bottom-1 -right-1 w-3 h-3 sm:w-4 sm:h-4 bg-green-500 rounded-full border-2 border-white" })),
163
+ react_1.default.createElement("div", null,
164
+ react_1.default.createElement("h3", { className: "font-bold text-gray-900 text-sm sm:text-base" }, "Supernal AI Interface"),
165
+ react_1.default.createElement("p", { className: "text-xs text-gray-600 hidden sm:block" }, "I'm a TOOL system AI can use to control this site"))),
166
+ react_1.default.createElement("div", { className: "flex items-center space-x-1" },
167
+ onClearChat && (react_1.default.createElement("button", { onClick: onClearChat, className: "p-1 text-gray-400 hover:text-gray-600 transition-colors", title: "Clear chat", "data-testid": ChatNames.clearButton },
168
+ react_1.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
169
+ react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" })))),
170
+ react_1.default.createElement("button", { onClick: handleToggle, className: "p-1 text-gray-400 hover:text-gray-600 transition-colors", title: "Minimize chat" },
171
+ react_1.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
172
+ react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))))),
173
+ react_1.default.createElement("div", { className: "flex-1 overflow-y-auto p-3 sm:p-4 space-y-3" },
174
+ showWelcome && messages.length === 0 && (react_1.default.createElement("div", { className: "bg-gradient-to-br from-blue-50 to-purple-50 p-3 sm:p-4 rounded-lg border border-blue-200 mb-4" },
175
+ react_1.default.createElement("h4", { className: "font-bold text-gray-900 mb-2 text-xs sm:text-sm" }, "\uD83D\uDC4B Welcome! I'm NOT an AI"),
176
+ react_1.default.createElement("p", { className: "text-xs text-gray-700 mb-3" },
177
+ "I'm a ",
178
+ react_1.default.createElement("strong", null, "tool system"),
179
+ " that AI assistants (like Claude, GPT) can use to navigate and control this site. This enables ",
180
+ react_1.default.createElement("strong", null, "agentic UX"),
181
+ " \u2014 instead of clicking around, you tell an AI what you want, and it uses me to do it."),
182
+ react_1.default.createElement("div", { className: "bg-white p-2 sm:p-3 rounded border border-gray-200 mb-3" },
183
+ react_1.default.createElement("p", { className: "text-xs font-medium text-gray-900 mb-2" }, "Try these commands:"),
184
+ react_1.default.createElement("div", { className: "space-y-1" }, [
185
+ { text: 'open the docs', desc: 'Navigate to documentation' },
186
+ { text: 'show me the story system', desc: 'View story system guide' },
187
+ { text: 'go to examples', desc: 'Browse code examples' },
188
+ ].map((cmd, idx) => (react_1.default.createElement("button", { key: idx, onClick: () => {
189
+ setInputValue(cmd.text);
190
+ setShowWelcome(false);
191
+ setTimeout(() => inputRef.current?.focus(), 0);
192
+ }, className: "w-full text-left px-2 py-1.5 rounded hover:bg-blue-50 transition-colors group" },
193
+ react_1.default.createElement("div", { className: "text-xs font-mono text-blue-700 group-hover:text-blue-900" },
194
+ "\"",
195
+ cmd.text,
196
+ "\""),
197
+ react_1.default.createElement("div", { className: "text-xs text-gray-500 hidden sm:block" }, cmd.desc)))))),
198
+ react_1.default.createElement("p", { className: "text-xs text-gray-600 italic" }, "Type a command or click a suggestion above to start"))),
199
+ messages.map((message) => (react_1.default.createElement("div", { key: message.id, className: "flex flex-col" },
200
+ react_1.default.createElement("div", { className: `inline-block px-3 py-2 rounded-lg max-w-[85%] sm:max-w-xs text-xs sm:text-sm ${message.type === 'user'
201
+ ? 'bg-blue-600 text-white ml-auto'
202
+ : message.type === 'ai'
203
+ ? 'bg-gray-200 text-gray-800'
204
+ : 'bg-yellow-100 text-yellow-800 text-xs'}`, "data-testid": `chat-message-${message.type}` }, message.text),
205
+ react_1.default.createElement("div", { className: "text-xs text-gray-400 mt-1 px-1" }, typeof window !== 'undefined' ? new Date(message.timestamp).toLocaleTimeString() : '')))),
206
+ react_1.default.createElement("div", { ref: messagesEndRef })),
207
+ react_1.default.createElement("form", { onSubmit: handleSend, className: "p-3 sm:p-4 border-t border-gray-200" },
208
+ react_1.default.createElement("div", { className: "flex space-x-2" },
209
+ react_1.default.createElement("input", { ref: inputRef, type: "text", value: inputValue, onChange: (e) => setInputValue(e.target.value), placeholder: "Try: toggle notifications", className: "flex-1 px-3 py-2 text-xs sm:text-sm border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-800", "data-testid": ChatNames.input }),
210
+ react_1.default.createElement("button", { type: "submit", disabled: !inputValue.trim(), className: "px-3 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:bg-gray-300 disabled:cursor-not-allowed transition-colors text-xs sm:text-sm font-medium", "data-testid": ChatNames.sendButton }, "Execute")),
211
+ react_1.default.createElement("div", { className: "mt-2 text-xs text-gray-500 hidden sm:block" },
212
+ react_1.default.createElement("strong", null, "Demo:"),
213
+ " Commands execute @Tool methods and update widgets above")))),
214
+ react_1.default.createElement("button", { onClick: handleToggle, className: "absolute bottom-0 right-0 w-12 h-12 sm:w-14 sm:h-14 bg-blue-600 hover:bg-blue-700 text-white rounded-full shadow-lg transition-all duration-200 flex items-center justify-center", "data-testid": ChatNames.bubble, title: isExpanded ? 'Minimize chat' : 'Open AI chat' }, isExpanded ? (react_1.default.createElement("svg", { className: "w-5 h-5 sm:w-6 sm:h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
215
+ react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))) : (react_1.default.createElement("svg", { className: "w-5 h-5 sm:w-6 sm:h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
216
+ react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" })))),
217
+ hasUnread && (react_1.default.createElement("div", { className: "absolute -top-1 -right-1 w-4 h-4 sm:w-5 sm:h-5 bg-red-500 rounded-full flex items-center justify-center animate-pulse", "data-testid": "unread-indicator" },
218
+ react_1.default.createElement("span", { className: "text-xs text-white font-bold" }, unreadCount > 9 ? '9+' : unreadCount))))));
219
+ };
220
+ exports.ChatBubble = ChatBubble;
221
+ //# sourceMappingURL=ChatBubble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatBubble.js","sourceRoot":"","sources":["../../../../../../src/ui/react/chat/ChatBubble.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * API Endpoint Names - Hierarchical ID Contracts
3
+ *
4
+ * This file defines stable, hierarchical ID constants for API endpoints.
5
+ * Services import these IDs before tools are generated, establishing
6
+ * a contract between the API layer and the tool system.
7
+ *
8
+ * Pattern: API.Resource.Action
9
+ */
10
+ export declare const API: {
11
+ /**
12
+ * User Management Endpoints
13
+ */
14
+ readonly Users: {
15
+ readonly list: "api-users-list";
16
+ readonly get: "api-users-get";
17
+ readonly create: "api-users-create";
18
+ readonly update: "api-users-update";
19
+ readonly delete: "api-users-delete";
20
+ readonly search: "api-users-search";
21
+ };
22
+ /**
23
+ * Authentication Endpoints
24
+ */
25
+ readonly Auth: {
26
+ readonly login: "api-auth-login";
27
+ readonly logout: "api-auth-logout";
28
+ readonly register: "api-auth-register";
29
+ readonly refreshToken: "api-auth-refresh-token";
30
+ readonly verifyEmail: "api-auth-verify-email";
31
+ readonly resetPassword: "api-auth-reset-password";
32
+ };
33
+ /**
34
+ * Data Management Endpoints
35
+ */
36
+ readonly Data: {
37
+ readonly fetch: "api-data-fetch";
38
+ readonly save: "api-data-save";
39
+ readonly sync: "api-data-sync";
40
+ readonly export: "api-data-export";
41
+ readonly import: "api-data-import";
42
+ };
43
+ /**
44
+ * Settings Endpoints
45
+ */
46
+ readonly Settings: {
47
+ readonly get: "api-settings-get";
48
+ readonly update: "api-settings-update";
49
+ readonly reset: "api-settings-reset";
50
+ };
51
+ /**
52
+ * Notification Endpoints
53
+ */
54
+ readonly Notifications: {
55
+ readonly list: "api-notifications-list";
56
+ readonly markRead: "api-notifications-mark-read";
57
+ readonly markAllRead: "api-notifications-mark-all-read";
58
+ readonly delete: "api-notifications-delete";
59
+ };
60
+ };
61
+ /**
62
+ * Helper function to get all API IDs as a flat array
63
+ */
64
+ export declare function getAllAPIIds(): string[];
65
+ /**
66
+ * Helper function to validate API ID uniqueness
67
+ */
68
+ export declare function validateAPIIds(): {
69
+ valid: boolean;
70
+ duplicates: string[];
71
+ };
72
+ /**
73
+ * Type-safe API ID access
74
+ */
75
+ export type APIPath = typeof API;
76
+ export type APIId = ReturnType<typeof getAllAPIIds>[number];
77
+ //# sourceMappingURL=API.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.d.ts","sourceRoot":"","sources":["../../../names/API.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,GAAG;IACd;;OAEG;;;;;;;;;IAUH;;OAEG;;;;;;;;;IAUH;;OAEG;;;;;;;;IASH;;OAEG;;;;;;IAOH;;OAEG;;;;;;;CAOK,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAevC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAiBzE;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC;AACjC,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * API Endpoint Names - Hierarchical ID Contracts
3
+ *
4
+ * This file defines stable, hierarchical ID constants for API endpoints.
5
+ * Services import these IDs before tools are generated, establishing
6
+ * a contract between the API layer and the tool system.
7
+ *
8
+ * Pattern: API.Resource.Action
9
+ */
10
+ export const API = {
11
+ /**
12
+ * User Management Endpoints
13
+ */
14
+ Users: {
15
+ list: 'api-users-list',
16
+ get: 'api-users-get',
17
+ create: 'api-users-create',
18
+ update: 'api-users-update',
19
+ delete: 'api-users-delete',
20
+ search: 'api-users-search',
21
+ },
22
+ /**
23
+ * Authentication Endpoints
24
+ */
25
+ Auth: {
26
+ login: 'api-auth-login',
27
+ logout: 'api-auth-logout',
28
+ register: 'api-auth-register',
29
+ refreshToken: 'api-auth-refresh-token',
30
+ verifyEmail: 'api-auth-verify-email',
31
+ resetPassword: 'api-auth-reset-password',
32
+ },
33
+ /**
34
+ * Data Management Endpoints
35
+ */
36
+ Data: {
37
+ fetch: 'api-data-fetch',
38
+ save: 'api-data-save',
39
+ sync: 'api-data-sync',
40
+ export: 'api-data-export',
41
+ import: 'api-data-import',
42
+ },
43
+ /**
44
+ * Settings Endpoints
45
+ */
46
+ Settings: {
47
+ get: 'api-settings-get',
48
+ update: 'api-settings-update',
49
+ reset: 'api-settings-reset',
50
+ },
51
+ /**
52
+ * Notification Endpoints
53
+ */
54
+ Notifications: {
55
+ list: 'api-notifications-list',
56
+ markRead: 'api-notifications-mark-read',
57
+ markAllRead: 'api-notifications-mark-all-read',
58
+ delete: 'api-notifications-delete',
59
+ },
60
+ };
61
+ /**
62
+ * Helper function to get all API IDs as a flat array
63
+ */
64
+ export function getAllAPIIds() {
65
+ const ids = [];
66
+ function collectIds(obj) {
67
+ for (const key in obj) {
68
+ if (typeof obj[key] === 'string') {
69
+ ids.push(obj[key]);
70
+ }
71
+ else if (typeof obj[key] === 'object') {
72
+ collectIds(obj[key]);
73
+ }
74
+ }
75
+ }
76
+ collectIds(API);
77
+ return ids;
78
+ }
79
+ /**
80
+ * Helper function to validate API ID uniqueness
81
+ */
82
+ export function validateAPIIds() {
83
+ const ids = getAllAPIIds();
84
+ const seen = new Set();
85
+ const duplicates = [];
86
+ for (const id of ids) {
87
+ if (seen.has(id)) {
88
+ duplicates.push(id);
89
+ }
90
+ else {
91
+ seen.add(id);
92
+ }
93
+ }
94
+ return {
95
+ valid: duplicates.length === 0,
96
+ duplicates,
97
+ };
98
+ }
99
+ //# sourceMappingURL=API.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.js","sourceRoot":"","sources":["../../../names/API.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB;;OAEG;IACH,KAAK,EAAE;QACL,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,eAAe;QACpB,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,kBAAkB;KAC3B;IAED;;OAEG;IACH,IAAI,EAAE;QACJ,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,iBAAiB;QACzB,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,wBAAwB;QACtC,WAAW,EAAE,uBAAuB;QACpC,aAAa,EAAE,yBAAyB;KACzC;IAED;;OAEG;IACH,IAAI,EAAE;QACJ,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;KAC1B;IAED;;OAEG;IACH,QAAQ,EAAE;QACR,GAAG,EAAE,kBAAkB;QACvB,MAAM,EAAE,qBAAqB;QAC7B,KAAK,EAAE,oBAAoB;KAC5B;IAED;;OAEG;IACH,aAAa,EAAE;QACb,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,6BAA6B;QACvC,WAAW,EAAE,iCAAiC;QAC9C,MAAM,EAAE,0BAA0B;KACnC;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,SAAS,UAAU,CAAC,GAAQ;QAC1B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACrB,CAAC;iBAAM,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACxC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAC9B,UAAU;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Component Names - Atomic UI Element IDs
3
+ *
4
+ * Components are individual UI elements (buttons, inputs, etc.) that tools interact with.
5
+ * These are flat, reusable identifiers that can appear in multiple containers.
6
+ *
7
+ * Containers define WHICH components they contain (see Containers.ts).
8
+ * ToolProviders operate within a Container namespace and act on Components.
9
+ *
10
+ * Pattern: Components.ElementName = 'element-id'
11
+ */
12
+ export declare const Components: {
13
+ readonly ChatInput: "chat-message-input";
14
+ readonly ChatSendButton: "chat-send-button";
15
+ readonly ChatClearButton: "chat-clear-button";
16
+ readonly ChatToggleButton: "chat-bubble-toggle";
17
+ readonly ChatMessageList: "chat-message-list";
18
+ readonly ChatTypingIndicator: "chat-typing-indicator";
19
+ readonly OpenMenuButton: "open-main-menu";
20
+ readonly CloseMenuButton: "close-main-menu";
21
+ readonly FeatureToggle: "feature-toggle";
22
+ readonly NotificationsToggle: "notification-toggle";
23
+ readonly PriorityHighRadio: "priority-high";
24
+ readonly PriorityMediumRadio: "priority-medium";
25
+ readonly PriorityLowRadio: "priority-low";
26
+ readonly StatusSelect: "status-dropdown";
27
+ readonly ThemeSelect: "theme-toggle";
28
+ readonly FormNameInput: "form-name";
29
+ readonly DemoFormSubmitButton: "form-submit";
30
+ readonly WidgetButton: "widget-button";
31
+ readonly WidgetInput: "widget-input";
32
+ readonly WidgetSelect: "widget-select";
33
+ readonly WidgetCheckbox: "widget-checkbox";
34
+ readonly WidgetRadio: "widget-radio";
35
+ readonly WidgetTextarea: "widget-textarea";
36
+ readonly ToolCommandsList: "tool-commands-list";
37
+ readonly ToolExecuteButton: "tool-execute-button";
38
+ readonly ToolApprovalButton: "tool-approval-button";
39
+ readonly ToolMetadataDisplay: "tool-metadata-display";
40
+ readonly NavMainMenu: "nav-main-menu";
41
+ readonly NavHomeLink: "nav-home-link";
42
+ readonly NavToolsLink: "nav-tools-link";
43
+ readonly NavSettingsLink: "nav-settings-link";
44
+ readonly NavBackButton: "nav-back-button";
45
+ readonly FormSubmitButton: "form-submit-button";
46
+ readonly FormCancelButton: "form-cancel-button";
47
+ readonly FormResetButton: "form-reset-button";
48
+ readonly FormTextInput: "form-text-input";
49
+ readonly FormEmailInput: "form-email-input";
50
+ readonly FormPasswordInput: "form-password-input";
51
+ readonly ModalCloseButton: "modal-close-button";
52
+ readonly ModalConfirmButton: "modal-confirm-button";
53
+ readonly ModalCancelButton: "modal-cancel-button";
54
+ readonly ModalOverlay: "modal-overlay";
55
+ readonly StatusSuccessMessage: "status-success-message";
56
+ readonly StatusErrorMessage: "status-error-message";
57
+ readonly StatusWarningMessage: "status-warning-message";
58
+ readonly StatusLoadingSpinner: "status-loading-spinner";
59
+ readonly StatusProgressBar: "status-progress-bar";
60
+ };
61
+ /**
62
+ * Helper function to get all component IDs as a flat array
63
+ */
64
+ export declare function getAllComponentIds(): string[];
65
+ /**
66
+ * Helper function to validate component ID uniqueness
67
+ */
68
+ export declare function validateComponentIds(): {
69
+ valid: boolean;
70
+ duplicates: string[];
71
+ };
72
+ /**
73
+ * Type-safe component ID access
74
+ */
75
+ export type ComponentPath = typeof Components;
76
+ export type ComponentId = (typeof Components)[keyof typeof Components];
77
+ //# sourceMappingURL=Components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Components.d.ts","sourceRoot":"","sources":["../../../names/Components.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEb,CAAC;AAEX;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAiB/E;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,UAAU,CAAC;AAC9C,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC"}