@peers-app/peers-ui 0.14.0 → 0.15.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 (438) hide show
  1. package/.github/workflows/publish.yml +8 -5
  2. package/babel.config.js +4 -4
  3. package/biome.json +191 -0
  4. package/dist/command-palette/command-palette-ui.d.ts +1 -2
  5. package/dist/command-palette/command-palette-ui.js +175 -244
  6. package/dist/command-palette/command-palette.js +65 -64
  7. package/dist/components/chat-overlay.d.ts +2 -2
  8. package/dist/components/chat-overlay.js +160 -217
  9. package/dist/components/checkbox.d.ts +5 -4
  10. package/dist/components/checkbox.js +4 -7
  11. package/dist/components/group-switcher.d.ts +1 -2
  12. package/dist/components/group-switcher.js +119 -159
  13. package/dist/components/input-date.d.ts +3 -3
  14. package/dist/components/input-date.js +6 -6
  15. package/dist/components/input-number.d.ts +7 -6
  16. package/dist/components/input-number.js +25 -20
  17. package/dist/components/input.d.ts +5 -4
  18. package/dist/components/input.js +4 -7
  19. package/dist/components/inverse-lazy-list.d.ts +3 -3
  20. package/dist/components/inverse-lazy-list.js +13 -47
  21. package/dist/components/io-schema-values.d.ts +5 -6
  22. package/dist/components/io-schema-values.js +28 -65
  23. package/dist/components/io-schema.d.ts +4 -5
  24. package/dist/components/io-schema.js +42 -79
  25. package/dist/components/lazy-list.d.ts +3 -3
  26. package/dist/components/lazy-list.js +38 -58
  27. package/dist/components/list-screen.d.ts +3 -8
  28. package/dist/components/list-screen.js +28 -23
  29. package/dist/components/loading-indicator.d.ts +1 -2
  30. package/dist/components/loading-indicator.js +2 -6
  31. package/dist/components/markdown-editor/autolink-plugin.js +5 -8
  32. package/dist/components/markdown-editor/editor-inline.d.ts +2 -3
  33. package/dist/components/markdown-editor/editor-inline.js +2 -6
  34. package/dist/components/markdown-editor/editor.d.ts +6 -6
  35. package/dist/components/markdown-editor/editor.js +9 -19
  36. package/dist/components/markdown-editor/markdown-plugin.d.ts +1 -1
  37. package/dist/components/markdown-editor/markdown-plugin.js +20 -21
  38. package/dist/components/markdown-editor/mention-node.d.ts +2 -2
  39. package/dist/components/markdown-editor/mention-node.js +24 -24
  40. package/dist/components/markdown-editor/mentions-plugin.d.ts +2 -2
  41. package/dist/components/markdown-editor/mentions-plugin.js +61 -62
  42. package/dist/components/markdown-editor/theme.js +28 -28
  43. package/dist/components/markdown-editor/toolbar.d.ts +2 -3
  44. package/dist/components/markdown-editor/toolbar.js +32 -49
  45. package/dist/components/markdown-with-mentions.d.ts +1 -1
  46. package/dist/components/markdown-with-mentions.js +43 -43
  47. package/dist/components/message-logs/message-logs.d.ts +1 -2
  48. package/dist/components/message-logs/message-logs.js +91 -116
  49. package/dist/components/messages/avatar.d.ts +3 -4
  50. package/dist/components/messages/avatar.js +37 -46
  51. package/dist/components/messages/channel-message-list.d.ts +5 -6
  52. package/dist/components/messages/channel-message-list.js +34 -34
  53. package/dist/components/messages/channel-view.d.ts +1 -2
  54. package/dist/components/messages/channel-view.js +23 -57
  55. package/dist/components/messages/message-compose.d.ts +3 -4
  56. package/dist/components/messages/message-compose.js +27 -38
  57. package/dist/components/messages/message-display.d.ts +2 -3
  58. package/dist/components/messages/message-display.js +42 -95
  59. package/dist/components/messages/thread-message-list.d.ts +4 -5
  60. package/dist/components/messages/thread-message-list.js +29 -29
  61. package/dist/components/router.d.ts +1 -2
  62. package/dist/components/router.js +58 -66
  63. package/dist/components/save-button.d.ts +3 -3
  64. package/dist/components/save-button.js +23 -33
  65. package/dist/components/sortable-list.d.ts +11 -12
  66. package/dist/components/sortable-list.js +42 -22
  67. package/dist/components/tabs.d.ts +3 -3
  68. package/dist/components/tabs.js +16 -47
  69. package/dist/components/tooltip.d.ts +4 -4
  70. package/dist/components/tooltip.js +4 -9
  71. package/dist/components/trust-level-badge.d.ts +2 -3
  72. package/dist/components/trust-level-badge.js +16 -16
  73. package/dist/components/trust-level-dropdown.d.ts +3 -4
  74. package/dist/components/trust-level-dropdown.js +32 -55
  75. package/dist/components/typeahead.d.ts +3 -3
  76. package/dist/components/typeahead.js +48 -89
  77. package/dist/components/voice-indicator.d.ts +2 -2
  78. package/dist/components/voice-indicator.js +93 -106
  79. package/dist/components/voice-subscribe-events.d.ts +32 -0
  80. package/dist/components/voice-subscribe-events.js +2 -0
  81. package/dist/globals.d.ts +3 -5
  82. package/dist/globals.js +22 -33
  83. package/dist/hooks.d.ts +5 -5
  84. package/dist/hooks.js +22 -12
  85. package/dist/hooks.test.js +129 -145
  86. package/dist/index.d.ts +9 -8
  87. package/dist/index.js +13 -12
  88. package/dist/mention-configs.d.ts +2 -2
  89. package/dist/mention-configs.js +55 -42
  90. package/dist/screens/assistants/assistant-config.d.ts +2 -3
  91. package/dist/screens/assistants/assistant-config.js +9 -22
  92. package/dist/screens/assistants/assistant-details.d.ts +1 -2
  93. package/dist/screens/assistants/assistant-details.js +13 -28
  94. package/dist/screens/assistants/assistant-info.d.ts +2 -3
  95. package/dist/screens/assistants/assistant-info.js +3 -17
  96. package/dist/screens/assistants/assistant-list.d.ts +1 -2
  97. package/dist/screens/assistants/assistant-list.js +15 -56
  98. package/dist/screens/assistants/assistant-tools.d.ts +2 -3
  99. package/dist/screens/assistants/assistant-tools.js +10 -24
  100. package/dist/screens/console-logs/console-logs-list.d.ts +1 -2
  101. package/dist/screens/console-logs/console-logs-list.js +130 -134
  102. package/dist/screens/console-logs/log-display.d.ts +2 -3
  103. package/dist/screens/console-logs/log-display.js +40 -42
  104. package/dist/screens/console-logs/log-filters.d.ts +1 -2
  105. package/dist/screens/console-logs/log-filters.js +2 -24
  106. package/dist/screens/console-logs/mobile-log-card.d.ts +2 -3
  107. package/dist/screens/console-logs/mobile-log-card.js +64 -67
  108. package/dist/screens/console-logs/resizable-table-header.d.ts +1 -2
  109. package/dist/screens/console-logs/resizable-table-header.js +31 -67
  110. package/dist/screens/contacts/contact-details.d.ts +1 -2
  111. package/dist/screens/contacts/contact-details.js +16 -46
  112. package/dist/screens/contacts/contact-list.d.ts +1 -2
  113. package/dist/screens/contacts/contact-list.js +44 -103
  114. package/dist/screens/contacts/index.d.ts +4 -4
  115. package/dist/screens/contacts/index.js +1 -1
  116. package/dist/screens/contacts/user-connect.d.ts +1 -2
  117. package/dist/screens/contacts/user-connect.js +85 -186
  118. package/dist/screens/data-explorer/data-explorer.d.ts +1 -2
  119. package/dist/screens/data-explorer/data-explorer.js +61 -181
  120. package/dist/screens/data-explorer/index.d.ts +2 -2
  121. package/dist/screens/data-explorer/query-executor.d.ts +1 -2
  122. package/dist/screens/data-explorer/query-executor.js +56 -166
  123. package/dist/screens/groups/group-details.d.ts +1 -2
  124. package/dist/screens/groups/group-details.js +27 -122
  125. package/dist/screens/groups/group-invite-listener.d.ts +2 -3
  126. package/dist/screens/groups/group-invite-listener.js +8 -104
  127. package/dist/screens/groups/group-list.d.ts +1 -2
  128. package/dist/screens/groups/group-list.js +56 -133
  129. package/dist/screens/groups/group-members.d.ts +2 -3
  130. package/dist/screens/groups/group-members.js +62 -132
  131. package/dist/screens/groups/index.d.ts +4 -4
  132. package/dist/screens/groups/index.js +1 -1
  133. package/dist/screens/join-group/index.d.ts +2 -2
  134. package/dist/screens/join-group/join-group.d.ts +1 -2
  135. package/dist/screens/join-group/join-group.js +9 -109
  136. package/dist/screens/network-viewer/connection-troubleshooter.d.ts +2 -3
  137. package/dist/screens/network-viewer/connection-troubleshooter.js +89 -193
  138. package/dist/screens/network-viewer/cpu-usage-graph.d.ts +1 -2
  139. package/dist/screens/network-viewer/cpu-usage-graph.js +60 -99
  140. package/dist/screens/network-viewer/device-details-modal.d.ts +1 -2
  141. package/dist/screens/network-viewer/device-details-modal.js +25 -177
  142. package/dist/screens/network-viewer/group-details-modal.d.ts +1 -2
  143. package/dist/screens/network-viewer/group-details-modal.js +31 -142
  144. package/dist/screens/network-viewer/index.d.ts +4 -4
  145. package/dist/screens/network-viewer/index.js +3 -3
  146. package/dist/screens/network-viewer/network-viewer-ipc.d.ts +22 -0
  147. package/dist/screens/network-viewer/network-viewer-ipc.js +6 -0
  148. package/dist/screens/network-viewer/network-viewer.d.ts +1 -2
  149. package/dist/screens/network-viewer/network-viewer.js +91 -296
  150. package/dist/screens/network-viewer/usage-graph.d.ts +1 -2
  151. package/dist/screens/network-viewer/usage-graph.js +78 -110
  152. package/dist/screens/packages/package-details.d.ts +1 -2
  153. package/dist/screens/packages/package-details.js +35 -41
  154. package/dist/screens/packages/package-info.d.ts +2 -2
  155. package/dist/screens/packages/package-info.js +33 -86
  156. package/dist/screens/packages/package-list.d.ts +1 -2
  157. package/dist/screens/packages/package-list.js +42 -106
  158. package/dist/screens/packages/package-new-local.d.ts +1 -2
  159. package/dist/screens/packages/package-new-local.js +13 -19
  160. package/dist/screens/packages/package-versions.d.ts +2 -3
  161. package/dist/screens/packages/package-versions.js +29 -96
  162. package/dist/screens/peer-types/peer-type-details.d.ts +3 -4
  163. package/dist/screens/peer-types/peer-type-details.js +26 -78
  164. package/dist/screens/peer-types/peer-type-list.d.ts +1 -2
  165. package/dist/screens/peer-types/peer-type-list.js +13 -24
  166. package/dist/screens/search/global-search.d.ts +1 -2
  167. package/dist/screens/search/global-search.js +104 -182
  168. package/dist/screens/settings/color-mode-dropdown.d.ts +3 -4
  169. package/dist/screens/settings/color-mode-dropdown.js +18 -37
  170. package/dist/screens/settings/settings-page.d.ts +1 -1
  171. package/dist/screens/settings/settings-page.js +86 -213
  172. package/dist/screens/settings/voice-settings-agent.d.ts +1 -1
  173. package/dist/screens/settings/voice-settings-agent.js +7 -44
  174. package/dist/screens/settings/voice-settings-api-keys.d.ts +2 -2
  175. package/dist/screens/settings/voice-settings-api-keys.js +2 -29
  176. package/dist/screens/settings/voice-settings-output.d.ts +2 -2
  177. package/dist/screens/settings/voice-settings-output.js +2 -40
  178. package/dist/screens/settings/voice-settings-providers.d.ts +2 -2
  179. package/dist/screens/settings/voice-settings-providers.js +2 -19
  180. package/dist/screens/settings/voice-settings-types.d.ts +4 -4
  181. package/dist/screens/settings/voice-settings-types.js +31 -31
  182. package/dist/screens/settings/voice-settings-wake-word.d.ts +2 -2
  183. package/dist/screens/settings/voice-settings-wake-word.js +2 -33
  184. package/dist/screens/settings/voice-settings.d.ts +1 -1
  185. package/dist/screens/settings/voice-settings.js +35 -112
  186. package/dist/screens/setup-user.d.ts +1 -2
  187. package/dist/screens/setup-user.js +38 -116
  188. package/dist/screens/tools/tool-code.d.ts +2 -3
  189. package/dist/screens/tools/tool-code.js +9 -13
  190. package/dist/screens/tools/tool-details.d.ts +1 -2
  191. package/dist/screens/tools/tool-details.js +26 -39
  192. package/dist/screens/tools/tool-info.d.ts +2 -3
  193. package/dist/screens/tools/tool-info.js +9 -48
  194. package/dist/screens/tools/tool-list.d.ts +1 -2
  195. package/dist/screens/tools/tool-list.js +33 -65
  196. package/dist/screens/tools/tool-schema.d.ts +2 -3
  197. package/dist/screens/tools/tool-schema.js +2 -13
  198. package/dist/screens/tools/tool-test-details.d.ts +1 -2
  199. package/dist/screens/tools/tool-test-details.js +12 -28
  200. package/dist/screens/tools/tool-test-list.d.ts +1 -2
  201. package/dist/screens/tools/tool-test-list.js +17 -56
  202. package/dist/screens/variables/variable-details.d.ts +1 -2
  203. package/dist/screens/variables/variable-details.js +19 -86
  204. package/dist/screens/variables/variable-list.d.ts +1 -2
  205. package/dist/screens/variables/variable-list.js +16 -27
  206. package/dist/screens/welcome-modal.d.ts +1 -2
  207. package/dist/screens/welcome-modal.js +44 -111
  208. package/dist/screens/workflows/workflow-details.d.ts +1 -2
  209. package/dist/screens/workflows/workflow-details.js +17 -31
  210. package/dist/screens/workflows/workflow-info.d.ts +2 -3
  211. package/dist/screens/workflows/workflow-info.js +2 -9
  212. package/dist/screens/workflows/workflow-instructions.d.ts +2 -3
  213. package/dist/screens/workflows/workflow-instructions.js +23 -55
  214. package/dist/screens/workflows/workflow-list.d.ts +1 -2
  215. package/dist/screens/workflows/workflow-list.js +23 -62
  216. package/dist/setupTests.d.ts +1 -1
  217. package/dist/setupTests.js +10 -11
  218. package/dist/system-apps/assistants.app.d.ts +1 -1
  219. package/dist/system-apps/assistants.app.js +3 -3
  220. package/dist/system-apps/console-logs.app.d.ts +1 -1
  221. package/dist/system-apps/console-logs.app.js +3 -3
  222. package/dist/system-apps/contacts.app.d.ts +1 -1
  223. package/dist/system-apps/contacts.app.js +4 -4
  224. package/dist/system-apps/data-explorer.app.d.ts +1 -1
  225. package/dist/system-apps/data-explorer.app.js +4 -4
  226. package/dist/system-apps/groups.app.d.ts +1 -1
  227. package/dist/system-apps/groups.app.js +4 -4
  228. package/dist/system-apps/index.d.ts +17 -17
  229. package/dist/system-apps/index.js +52 -52
  230. package/dist/system-apps/join-group.app.d.ts +1 -1
  231. package/dist/system-apps/join-group.app.js +4 -4
  232. package/dist/system-apps/mobile-settings.app.d.ts +1 -1
  233. package/dist/system-apps/mobile-settings.app.js +3 -3
  234. package/dist/system-apps/network-viewer.app.d.ts +1 -1
  235. package/dist/system-apps/network-viewer.app.js +4 -4
  236. package/dist/system-apps/packages.app.d.ts +1 -1
  237. package/dist/system-apps/packages.app.js +3 -3
  238. package/dist/system-apps/search.app.d.ts +1 -1
  239. package/dist/system-apps/search.app.js +4 -4
  240. package/dist/system-apps/settings.app.d.ts +1 -1
  241. package/dist/system-apps/settings.app.js +3 -3
  242. package/dist/system-apps/threads.app.d.ts +1 -1
  243. package/dist/system-apps/threads.app.js +3 -3
  244. package/dist/system-apps/tools.app.d.ts +1 -1
  245. package/dist/system-apps/tools.app.js +3 -3
  246. package/dist/system-apps/types.app.d.ts +1 -1
  247. package/dist/system-apps/types.app.js +3 -3
  248. package/dist/system-apps/variables.app.d.ts +1 -1
  249. package/dist/system-apps/variables.app.js +3 -3
  250. package/dist/system-apps/workflows.app.d.ts +1 -1
  251. package/dist/system-apps/workflows.app.js +3 -3
  252. package/dist/tabs-layout/tabs-layout.d.ts +2 -3
  253. package/dist/tabs-layout/tabs-layout.js +215 -246
  254. package/dist/tabs-layout/tabs-state.d.ts +2 -2
  255. package/dist/tabs-layout/tabs-state.js +73 -61
  256. package/dist/ui-defaults/index.d.ts +2 -2
  257. package/dist/ui-defaults/list-screen.d.ts +2 -3
  258. package/dist/ui-defaults/list-screen.js +33 -37
  259. package/dist/ui-defaults/markdown-field.js +24 -56
  260. package/dist/ui-router/routes-loader.d.ts +1 -1
  261. package/dist/ui-router/routes-loader.js +17 -13
  262. package/dist/ui-router/ui-loader.d.ts +6 -6
  263. package/dist/ui-router/ui-loader.js +172 -268
  264. package/dist/utils.js +49 -39
  265. package/jest.config.js +16 -16
  266. package/package.json +16 -14
  267. package/src/command-palette/command-palette-ui.tsx +261 -237
  268. package/src/command-palette/command-palette.ts +81 -78
  269. package/src/components/chat-overlay.tsx +366 -261
  270. package/src/components/checkbox.tsx +15 -12
  271. package/src/components/group-switcher.tsx +150 -105
  272. package/src/components/input-date.tsx +17 -16
  273. package/src/components/input-number.tsx +47 -31
  274. package/src/components/input.tsx +15 -12
  275. package/src/components/inverse-lazy-list.tsx +14 -13
  276. package/src/components/io-schema-values.tsx +51 -69
  277. package/src/components/io-schema.tsx +94 -69
  278. package/src/components/lazy-list.tsx +51 -34
  279. package/src/components/list-screen.tsx +51 -35
  280. package/src/components/loading-indicator.tsx +2 -4
  281. package/src/components/markdown-editor/autolink-plugin.tsx +4 -11
  282. package/src/components/markdown-editor/editor-inline.tsx +3 -4
  283. package/src/components/markdown-editor/editor.tsx +53 -51
  284. package/src/components/markdown-editor/markdown-plugin.tsx +48 -40
  285. package/src/components/markdown-editor/mention-node.ts +39 -38
  286. package/src/components/markdown-editor/mentions-plugin.tsx +99 -101
  287. package/src/components/markdown-editor/theme.ts +28 -29
  288. package/src/components/markdown-editor/toolbar.tsx +53 -47
  289. package/src/components/markdown-with-mentions.tsx +56 -46
  290. package/src/components/message-logs/message-logs.tsx +225 -165
  291. package/src/components/messages/avatar.tsx +70 -52
  292. package/src/components/messages/channel-message-list.tsx +80 -68
  293. package/src/components/messages/channel-view.tsx +34 -33
  294. package/src/components/messages/message-compose.tsx +84 -67
  295. package/src/components/messages/message-display.tsx +103 -89
  296. package/src/components/messages/thread-message-list.tsx +53 -44
  297. package/src/components/router.tsx +42 -43
  298. package/src/components/save-button.tsx +43 -39
  299. package/src/components/sortable-list.tsx +77 -49
  300. package/src/components/tabs.tsx +31 -31
  301. package/src/components/tooltip.tsx +21 -28
  302. package/src/components/trust-level-badge.tsx +15 -11
  303. package/src/components/trust-level-dropdown.tsx +49 -19
  304. package/src/components/typeahead.tsx +57 -59
  305. package/src/components/voice-indicator.tsx +158 -141
  306. package/src/components/voice-subscribe-events.ts +20 -0
  307. package/src/globals.tsx +42 -40
  308. package/src/hooks.test.tsx +141 -134
  309. package/src/hooks.ts +80 -48
  310. package/src/index.tsx +17 -10
  311. package/src/mention-configs.ts +122 -68
  312. package/src/screens/assistants/assistant-config.tsx +28 -18
  313. package/src/screens/assistants/assistant-details.tsx +35 -36
  314. package/src/screens/assistants/assistant-info.tsx +16 -11
  315. package/src/screens/assistants/assistant-list.tsx +37 -34
  316. package/src/screens/assistants/assistant-tools.tsx +41 -20
  317. package/src/screens/console-logs/console-logs-list.tsx +173 -140
  318. package/src/screens/console-logs/log-display.tsx +65 -38
  319. package/src/screens/console-logs/log-filters.tsx +4 -3
  320. package/src/screens/console-logs/mobile-log-card.tsx +78 -71
  321. package/src/screens/console-logs/resizable-table-header.tsx +29 -21
  322. package/src/screens/contacts/contact-details.tsx +29 -30
  323. package/src/screens/contacts/contact-list.tsx +71 -60
  324. package/src/screens/contacts/index.ts +5 -5
  325. package/src/screens/contacts/user-connect.tsx +177 -171
  326. package/src/screens/data-explorer/data-explorer.tsx +134 -98
  327. package/src/screens/data-explorer/index.ts +2 -3
  328. package/src/screens/data-explorer/query-executor.tsx +90 -80
  329. package/src/screens/groups/group-details.tsx +120 -101
  330. package/src/screens/groups/group-invite-listener.tsx +34 -37
  331. package/src/screens/groups/group-list.tsx +119 -103
  332. package/src/screens/groups/group-members.tsx +225 -164
  333. package/src/screens/groups/index.ts +5 -6
  334. package/src/screens/join-group/index.ts +2 -2
  335. package/src/screens/join-group/join-group.tsx +41 -39
  336. package/src/screens/network-viewer/connection-troubleshooter.tsx +145 -104
  337. package/src/screens/network-viewer/cpu-usage-graph.tsx +39 -43
  338. package/src/screens/network-viewer/device-details-modal.tsx +46 -59
  339. package/src/screens/network-viewer/group-details-modal.tsx +68 -49
  340. package/src/screens/network-viewer/index.ts +4 -5
  341. package/src/screens/network-viewer/network-viewer-ipc.ts +23 -0
  342. package/src/screens/network-viewer/network-viewer.tsx +261 -236
  343. package/src/screens/network-viewer/usage-graph.tsx +57 -49
  344. package/src/screens/packages/package-details.tsx +43 -35
  345. package/src/screens/packages/package-info.tsx +107 -66
  346. package/src/screens/packages/package-list.tsx +175 -98
  347. package/src/screens/packages/package-new-local.tsx +28 -26
  348. package/src/screens/packages/package-versions.tsx +102 -77
  349. package/src/screens/peer-types/peer-type-details.tsx +60 -50
  350. package/src/screens/peer-types/peer-type-list.tsx +20 -30
  351. package/src/screens/search/global-search.tsx +153 -137
  352. package/src/screens/settings/color-mode-dropdown.tsx +52 -35
  353. package/src/screens/settings/settings-page.tsx +215 -141
  354. package/src/screens/settings/voice-settings-agent.tsx +13 -12
  355. package/src/screens/settings/voice-settings-api-keys.tsx +14 -12
  356. package/src/screens/settings/voice-settings-output.tsx +12 -11
  357. package/src/screens/settings/voice-settings-providers.tsx +7 -3
  358. package/src/screens/settings/voice-settings-types.ts +52 -49
  359. package/src/screens/settings/voice-settings-wake-word.tsx +25 -9
  360. package/src/screens/settings/voice-settings.tsx +66 -43
  361. package/src/screens/setup-user.tsx +88 -41
  362. package/src/screens/tools/tool-code.tsx +12 -17
  363. package/src/screens/tools/tool-details.tsx +28 -28
  364. package/src/screens/tools/tool-info.tsx +14 -19
  365. package/src/screens/tools/tool-list.tsx +58 -40
  366. package/src/screens/tools/tool-schema.tsx +16 -9
  367. package/src/screens/tools/tool-test-details.tsx +11 -22
  368. package/src/screens/tools/tool-test-list.tsx +29 -30
  369. package/src/screens/variables/variable-details.tsx +63 -51
  370. package/src/screens/variables/variable-list.tsx +29 -30
  371. package/src/screens/welcome-modal.tsx +68 -48
  372. package/src/screens/workflows/workflow-details.tsx +40 -30
  373. package/src/screens/workflows/workflow-info.tsx +4 -11
  374. package/src/screens/workflows/workflow-instructions.tsx +35 -28
  375. package/src/screens/workflows/workflow-list.tsx +50 -40
  376. package/src/setupTests.ts +14 -13
  377. package/src/system-apps/assistants.app.ts +5 -5
  378. package/src/system-apps/console-logs.app.ts +4 -4
  379. package/src/system-apps/contacts.app.ts +6 -6
  380. package/src/system-apps/data-explorer.app.ts +5 -5
  381. package/src/system-apps/groups.app.ts +6 -6
  382. package/src/system-apps/index.ts +49 -49
  383. package/src/system-apps/join-group.app.ts +5 -5
  384. package/src/system-apps/mobile-settings.app.ts +4 -5
  385. package/src/system-apps/network-viewer.app.ts +5 -5
  386. package/src/system-apps/packages.app.ts +5 -5
  387. package/src/system-apps/search.app.ts +6 -6
  388. package/src/system-apps/settings.app.ts +5 -5
  389. package/src/system-apps/threads.app.ts +5 -5
  390. package/src/system-apps/tools.app.ts +5 -5
  391. package/src/system-apps/types.app.ts +5 -5
  392. package/src/system-apps/variables.app.ts +5 -5
  393. package/src/system-apps/workflows.app.ts +5 -5
  394. package/src/tabs-layout/tabs-layout.tsx +345 -254
  395. package/src/tabs-layout/tabs-state.ts +100 -81
  396. package/src/ui-defaults/index.ts +2 -3
  397. package/src/ui-defaults/list-screen.tsx +45 -40
  398. package/src/ui-defaults/markdown-field.tsx +22 -26
  399. package/src/ui-router/routes-loader.ts +40 -24
  400. package/src/ui-router/ui-loader.tsx +312 -214
  401. package/src/utils.ts +68 -81
  402. package/tsconfig.json +5 -10
  403. package/dist/components/input-datetime.d.ts +0 -7
  404. package/dist/components/input-datetime.js +0 -35
  405. package/dist/components/lazy-sortable-list.d.ts +0 -29
  406. package/dist/components/lazy-sortable-list.js +0 -12
  407. package/dist/components/left-bar.d.ts +0 -5
  408. package/dist/components/left-bar.js +0 -207
  409. package/dist/components/main-content-container.d.ts +0 -2
  410. package/dist/components/main-content-container.js +0 -92
  411. package/dist/components/messages/thread-view.d.ts +0 -6
  412. package/dist/components/messages/thread-view.js +0 -174
  413. package/dist/components/off-canvas.d.ts +0 -13
  414. package/dist/components/off-canvas.js +0 -89
  415. package/dist/components/text-list-editor.tsx/text-list-editor.d.ts +0 -6
  416. package/dist/components/text-list-editor.tsx/text-list-editor.js +0 -13
  417. package/dist/components/top-bar.d.ts +0 -2
  418. package/dist/components/top-bar.js +0 -51
  419. package/dist/components/typeahead/mentions-plugin.d.ts +0 -7
  420. package/dist/components/typeahead/mentions-plugin.js +0 -203
  421. package/dist/components/typeahead/typeahead-editor.d.ts +0 -15
  422. package/dist/components/typeahead/typeahead-editor.js +0 -134
  423. package/dist/components/typeahead/typeahead.d.ts +0 -12
  424. package/dist/components/typeahead/typeahead.js +0 -94
  425. package/dist/screens/profile.d.ts +0 -2
  426. package/dist/screens/profile.js +0 -76
  427. package/src/components/input-datetime.tsx +0 -41
  428. package/src/components/lazy-sortable-list.tsx +0 -51
  429. package/src/components/left-bar.tsx +0 -322
  430. package/src/components/main-content-container.tsx +0 -79
  431. package/src/components/messages/thread-view.tsx +0 -214
  432. package/src/components/off-canvas.tsx +0 -83
  433. package/src/components/text-list-editor.tsx/text-list-editor.tsx +0 -13
  434. package/src/components/top-bar.tsx +0 -119
  435. package/src/components/typeahead/mentions-plugin.tsx +0 -265
  436. package/src/components/typeahead/typeahead-editor.tsx +0 -140
  437. package/src/components/typeahead/typeahead.tsx +0 -77
  438. package/src/screens/profile.tsx +0 -75
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VoiceSettings = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
2
5
  /**
3
6
  * Voice Settings Component
4
7
  *
@@ -6,53 +9,23 @@
6
9
  * Settings are stored directly via pvars (auto-synced).
7
10
  * Keys are stored as secure pvars (write-only).
8
11
  */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || (function () {
26
- var ownKeys = function(o) {
27
- ownKeys = Object.getOwnPropertyNames || function (o) {
28
- var ar = [];
29
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
- return ar;
31
- };
32
- return ownKeys(o);
33
- };
34
- return function (mod) {
35
- if (mod && mod.__esModule) return mod;
36
- var result = {};
37
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
- __setModuleDefault(result, mod);
39
- return result;
40
- };
41
- })();
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.VoiceSettings = void 0;
44
- const react_1 = __importStar(require("react"));
45
12
  const peers_sdk_1 = require("@peers-app/peers-sdk");
46
- const voice_settings_types_1 = require("./voice-settings-types");
13
+ const react_1 = require("react");
14
+ const voice_settings_agent_1 = require("./voice-settings-agent");
47
15
  const voice_settings_api_keys_1 = require("./voice-settings-api-keys");
48
- const voice_settings_wake_word_1 = require("./voice-settings-wake-word");
49
- const voice_settings_providers_1 = require("./voice-settings-providers");
50
16
  const voice_settings_output_1 = require("./voice-settings-output");
51
- const voice_settings_agent_1 = require("./voice-settings-agent");
17
+ const voice_settings_providers_1 = require("./voice-settings-providers");
18
+ const voice_settings_types_1 = require("./voice-settings-types");
19
+ const voice_settings_wake_word_1 = require("./voice-settings-wake-word");
52
20
  // Pvars - shared with voice service (writes here trigger service updates)
53
- const voiceSettingsPvar = (0, peers_sdk_1.userVar)('voiceSettings', { defaultValue: voice_settings_types_1.DEFAULT_SETTINGS });
54
- const picovoiceKeyPvar = (0, peers_sdk_1.userVar)('PICOVOICE_ACCESS_KEY', { isSecret: true, defaultValue: '' });
55
- const openaiKeyPvar = (0, peers_sdk_1.userVar)('OPENAI_API_KEY', { isSecret: true, defaultValue: '' });
21
+ const voiceSettingsPvar = (0, peers_sdk_1.userVar)("voiceSettings", {
22
+ defaultValue: voice_settings_types_1.DEFAULT_SETTINGS,
23
+ });
24
+ const picovoiceKeyPvar = (0, peers_sdk_1.userVar)("PICOVOICE_ACCESS_KEY", {
25
+ isSecret: true,
26
+ defaultValue: "",
27
+ });
28
+ const openaiKeyPvar = (0, peers_sdk_1.userVar)("OPENAI_API_KEY", { isSecret: true, defaultValue: "" });
56
29
  const VoiceSettings = () => {
57
30
  const [settings, setSettings] = (0, react_1.useState)({ ...voice_settings_types_1.DEFAULT_SETTINGS });
58
31
  const [loading, setLoading] = (0, react_1.useState)(true);
@@ -63,10 +36,10 @@ const VoiceSettings = () => {
63
36
  const [keyError, setKeyError] = (0, react_1.useState)(null);
64
37
  // Local state for unsaved changes
65
38
  const [localSettings, setLocalSettings] = (0, react_1.useState)(settings);
66
- const [picovoiceKey, setPicovoiceKey] = (0, react_1.useState)('');
67
- const [openaiKey, setOpenaiKey] = (0, react_1.useState)('');
39
+ const [picovoiceKey, setPicovoiceKey] = (0, react_1.useState)("");
40
+ const [openaiKey, setOpenaiKey] = (0, react_1.useState)("");
68
41
  const [hasUnsavedChanges, setHasUnsavedChanges] = (0, react_1.useState)(false);
69
- const [testText, setTestText] = (0, react_1.useState)('Hello, this is a test of the text to speech system.');
42
+ const [testText, setTestText] = (0, react_1.useState)("Hello, this is a test of the text to speech system.");
70
43
  // Load initial settings from pvars
71
44
  (0, react_1.useEffect)(() => {
72
45
  const loadSettings = async () => {
@@ -79,8 +52,8 @@ const VoiceSettings = () => {
79
52
  const openaiKeyValue = openaiKeyPvar();
80
53
  const loadedSettings = {
81
54
  ...savedSettings,
82
- picovoiceAccessKeySet: !!picovoiceKeyValue && picovoiceKeyValue !== '',
83
- openaiApiKeySet: !!openaiKeyValue && openaiKeyValue !== '',
55
+ picovoiceAccessKeySet: !!picovoiceKeyValue && picovoiceKeyValue !== "",
56
+ openaiApiKeySet: !!openaiKeyValue && openaiKeyValue !== "",
84
57
  };
85
58
  setSettings(loadedSettings);
86
59
  setLocalSettings(loadedSettings);
@@ -100,8 +73,8 @@ const VoiceSettings = () => {
100
73
  }
101
74
  }
102
75
  catch (err) {
103
- console.error('Failed to load voice settings:', err);
104
- setError('Failed to load voice settings.');
76
+ console.error("Failed to load voice settings:", err);
77
+ setError("Failed to load voice settings.");
105
78
  }
106
79
  finally {
107
80
  setLoading(false);
@@ -123,13 +96,13 @@ const VoiceSettings = () => {
123
96
  if (picovoiceKey) {
124
97
  await picovoiceKeyPvar.loadingPromise;
125
98
  picovoiceKeyPvar(picovoiceKey);
126
- setPicovoiceKey('');
99
+ setPicovoiceKey("");
127
100
  setKeyError(null);
128
101
  }
129
102
  if (openaiKey) {
130
103
  await openaiKeyPvar.loadingPromise;
131
104
  openaiKeyPvar(openaiKey);
132
- setOpenaiKey('');
105
+ setOpenaiKey("");
133
106
  }
134
107
  await voiceSettingsPvar.loadingPromise;
135
108
  voiceSettingsPvar({
@@ -150,11 +123,11 @@ const VoiceSettings = () => {
150
123
  };
151
124
  setSettings(updatedSettings);
152
125
  setLocalSettings(updatedSettings);
153
- setSuccess('Settings saved successfully!');
126
+ setSuccess("Settings saved successfully!");
154
127
  setTimeout(() => setSuccess(null), 3000);
155
128
  }
156
129
  catch (err) {
157
- console.error('Failed to save voice settings:', err);
130
+ console.error("Failed to save voice settings:", err);
158
131
  setError(err.message);
159
132
  }
160
133
  finally {
@@ -163,10 +136,10 @@ const VoiceSettings = () => {
163
136
  }, [localSettings, picovoiceKey, openaiKey]);
164
137
  const handleToggleEnabled = (0, react_1.useCallback)(async () => {
165
138
  if (!localSettings.picovoiceAccessKeySet && !picovoiceKey && !localSettings.enabled) {
166
- setError('Please enter and save a Picovoice Access Key first');
139
+ setError("Please enter and save a Picovoice Access Key first");
167
140
  return;
168
141
  }
169
- setLocalSettings(prev => ({ ...prev, enabled: !prev.enabled }));
142
+ setLocalSettings((prev) => ({ ...prev, enabled: !prev.enabled }));
170
143
  }, [localSettings.enabled, localSettings.picovoiceAccessKeySet, picovoiceKey]);
171
144
  const handleTestTTS = (0, react_1.useCallback)(async () => {
172
145
  try {
@@ -174,8 +147,8 @@ const VoiceSettings = () => {
174
147
  await peers_sdk_1.rpcServerCalls.voiceTestTTS(testText);
175
148
  }
176
149
  catch (err) {
177
- console.error('TTS test failed:', err);
178
- setError('TTS test failed: ' + err.message);
150
+ console.error("TTS test failed:", err);
151
+ setError(`TTS test failed: ${err.message}`);
179
152
  }
180
153
  }, [testText]);
181
154
  const handleTestRecording = (0, react_1.useCallback)(async () => {
@@ -184,67 +157,17 @@ const VoiceSettings = () => {
184
157
  await peers_sdk_1.rpcServerCalls.voiceStartRecording();
185
158
  }
186
159
  catch (err) {
187
- console.error('Recording test failed:', err);
160
+ console.error("Recording test failed:", err);
188
161
  setError(err.message);
189
162
  }
190
163
  }, []);
191
164
  const handleSettingsChange = (0, react_1.useCallback)((patch) => {
192
- setLocalSettings(prev => ({ ...prev, ...patch }));
165
+ setLocalSettings((prev) => ({ ...prev, ...patch }));
193
166
  }, []);
194
167
  if (loading) {
195
- return (react_1.default.createElement("div", { className: "d-flex justify-content-center p-4" },
196
- react_1.default.createElement("div", { className: "spinner-border text-primary", role: "status" },
197
- react_1.default.createElement("span", { className: "visually-hidden" }, "Loading..."))));
168
+ return ((0, jsx_runtime_1.jsx)("div", { className: "d-flex justify-content-center p-4", children: (0, jsx_runtime_1.jsx)("div", { className: "spinner-border text-primary", role: "status", children: (0, jsx_runtime_1.jsx)("span", { className: "visually-hidden", children: "Loading..." }) }) }));
198
169
  }
199
- return (react_1.default.createElement("div", { className: "voice-settings" },
200
- react_1.default.createElement("div", { className: "d-flex align-items-center mb-3" },
201
- react_1.default.createElement("h5", { className: "mb-0 me-3" }, "Voice Input"),
202
- react_1.default.createElement("div", { className: "form-check form-switch me-auto" },
203
- react_1.default.createElement("input", { className: "form-check-input", type: "checkbox", id: "voiceEnabled", checked: localSettings.enabled, onChange: handleToggleEnabled, disabled: saving }),
204
- react_1.default.createElement("label", { className: "form-check-label", htmlFor: "voiceEnabled" }, localSettings.enabled ? 'Enabled' : 'Disabled')),
205
- react_1.default.createElement("button", { className: "btn btn-primary btn-sm", onClick: handleSaveAll, disabled: saving || !hasUnsavedChanges }, saving ? 'Saving...' : 'Save')),
206
- localSettings.enabled && (react_1.default.createElement("div", { className: "d-flex align-items-center mb-3 ms-3" },
207
- react_1.default.createElement("h6", { className: "mb-0 me-3 text-muted" }, "Voice Output"),
208
- react_1.default.createElement("div", { className: "form-check form-switch" },
209
- react_1.default.createElement("input", { className: "form-check-input", type: "checkbox", id: "voiceOutputEnabled", checked: localSettings.voiceOutputEnabled !== false, onChange: (e) => handleSettingsChange({ voiceOutputEnabled: e.target.checked }), disabled: saving }),
210
- react_1.default.createElement("label", { className: "form-check-label", htmlFor: "voiceOutputEnabled" }, localSettings.voiceOutputEnabled !== false ? 'On' : 'Off')),
211
- react_1.default.createElement("small", { className: "text-muted ms-2" }, "Speak assistant responses aloud"))),
212
- error && (react_1.default.createElement("div", { className: "alert alert-danger alert-dismissible fade show", role: "alert" },
213
- error,
214
- react_1.default.createElement("button", { type: "button", className: "btn-close", onClick: () => setError(null) }))),
215
- success && (react_1.default.createElement("div", { className: "alert alert-success alert-dismissible fade show", role: "alert" },
216
- success,
217
- react_1.default.createElement("button", { type: "button", className: "btn-close", onClick: () => setSuccess(null) }))),
218
- react_1.default.createElement(voice_settings_api_keys_1.VoiceSettingsApiKeys, { settings: settings, picovoiceKey: picovoiceKey, openaiKey: openaiKey, keyError: keyError, onPicovoiceKeyChange: setPicovoiceKey, onOpenaiKeyChange: setOpenaiKey, onDismissKeyError: () => setKeyError(null) }),
219
- react_1.default.createElement("hr", { className: "my-4" }),
220
- react_1.default.createElement(voice_settings_wake_word_1.VoiceSettingsWakeWord, { localSettings: localSettings, saving: saving, onChange: handleSettingsChange }),
221
- react_1.default.createElement("hr", { className: "my-4" }),
222
- react_1.default.createElement(voice_settings_providers_1.VoiceSettingsProviders, { localSettings: localSettings, saving: saving, onChange: handleSettingsChange }),
223
- react_1.default.createElement(voice_settings_output_1.VoiceSettingsOutput, { settings: settings, localSettings: localSettings, saving: saving, testText: testText, hasUnsavedChanges: hasUnsavedChanges, audioDevices: audioDevices, onChange: handleSettingsChange, onTestTextChange: setTestText, onTestTTS: handleTestTTS, onTestRecording: handleTestRecording }),
224
- react_1.default.createElement("hr", { className: "my-4" }),
225
- react_1.default.createElement(voice_settings_agent_1.VoiceSettingsAgent, null),
226
- react_1.default.createElement("div", { className: "alert alert-info" },
227
- react_1.default.createElement("h6", { className: "alert-heading" },
228
- react_1.default.createElement("i", { className: "bi bi-info-circle me-2" }),
229
- "How to use"),
230
- react_1.default.createElement("ol", { className: "mb-0 small" },
231
- react_1.default.createElement("li", null, "Get a free Picovoice access key from the link above"),
232
- react_1.default.createElement("li", null,
233
- "Enter the key and click ",
234
- react_1.default.createElement("strong", null, "Save")),
235
- react_1.default.createElement("li", null,
236
- "Enable voice input and click ",
237
- react_1.default.createElement("strong", null, "Save"),
238
- " again"),
239
- react_1.default.createElement("li", null,
240
- "Say ",
241
- react_1.default.createElement("strong", null,
242
- "\"",
243
- voice_settings_types_1.BUILTIN_WAKE_WORDS.find(w => w.id === localSettings.wakeWord)?.name || 'Computer',
244
- "\""),
245
- " to activate voice recording"),
246
- react_1.default.createElement("li", null, "Speak your message - recording stops automatically when you pause"),
247
- react_1.default.createElement("li", null, "Your message will be sent to the assistant and the response will be spoken")))));
170
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "voice-settings", children: [(0, jsx_runtime_1.jsxs)("div", { className: "d-flex align-items-center mb-3", children: [(0, jsx_runtime_1.jsx)("h5", { className: "mb-0 me-3", children: "Voice Input" }), (0, jsx_runtime_1.jsxs)("div", { className: "form-check form-switch me-auto", children: [(0, jsx_runtime_1.jsx)("input", { className: "form-check-input", type: "checkbox", id: "voiceEnabled", checked: localSettings.enabled, onChange: handleToggleEnabled, disabled: saving }), (0, jsx_runtime_1.jsx)("label", { className: "form-check-label", htmlFor: "voiceEnabled", children: localSettings.enabled ? "Enabled" : "Disabled" })] }), (0, jsx_runtime_1.jsx)("button", { className: "btn btn-primary btn-sm", onClick: handleSaveAll, disabled: saving || !hasUnsavedChanges, children: saving ? "Saving..." : "Save" })] }), localSettings.enabled && ((0, jsx_runtime_1.jsxs)("div", { className: "d-flex align-items-center mb-3 ms-3", children: [(0, jsx_runtime_1.jsx)("h6", { className: "mb-0 me-3 text-muted", children: "Voice Output" }), (0, jsx_runtime_1.jsxs)("div", { className: "form-check form-switch", children: [(0, jsx_runtime_1.jsx)("input", { className: "form-check-input", type: "checkbox", id: "voiceOutputEnabled", checked: localSettings.voiceOutputEnabled !== false, onChange: (e) => handleSettingsChange({ voiceOutputEnabled: e.target.checked }), disabled: saving }), (0, jsx_runtime_1.jsx)("label", { className: "form-check-label", htmlFor: "voiceOutputEnabled", children: localSettings.voiceOutputEnabled !== false ? "On" : "Off" })] }), (0, jsx_runtime_1.jsx)("small", { className: "text-muted ms-2", children: "Speak assistant responses aloud" })] })), error && ((0, jsx_runtime_1.jsxs)("div", { className: "alert alert-danger alert-dismissible fade show", role: "alert", children: [error, (0, jsx_runtime_1.jsx)("button", { type: "button", className: "btn-close", onClick: () => setError(null) })] })), success && ((0, jsx_runtime_1.jsxs)("div", { className: "alert alert-success alert-dismissible fade show", role: "alert", children: [success, (0, jsx_runtime_1.jsx)("button", { type: "button", className: "btn-close", onClick: () => setSuccess(null) })] })), (0, jsx_runtime_1.jsx)(voice_settings_api_keys_1.VoiceSettingsApiKeys, { settings: settings, picovoiceKey: picovoiceKey, openaiKey: openaiKey, keyError: keyError, onPicovoiceKeyChange: setPicovoiceKey, onOpenaiKeyChange: setOpenaiKey, onDismissKeyError: () => setKeyError(null) }), (0, jsx_runtime_1.jsx)("hr", { className: "my-4" }), (0, jsx_runtime_1.jsx)(voice_settings_wake_word_1.VoiceSettingsWakeWord, { localSettings: localSettings, saving: saving, onChange: handleSettingsChange }), (0, jsx_runtime_1.jsx)("hr", { className: "my-4" }), (0, jsx_runtime_1.jsx)(voice_settings_providers_1.VoiceSettingsProviders, { localSettings: localSettings, saving: saving, onChange: handleSettingsChange }), (0, jsx_runtime_1.jsx)(voice_settings_output_1.VoiceSettingsOutput, { settings: settings, localSettings: localSettings, saving: saving, testText: testText, hasUnsavedChanges: hasUnsavedChanges, audioDevices: audioDevices, onChange: handleSettingsChange, onTestTextChange: setTestText, onTestTTS: handleTestTTS, onTestRecording: handleTestRecording }), (0, jsx_runtime_1.jsx)("hr", { className: "my-4" }), (0, jsx_runtime_1.jsx)(voice_settings_agent_1.VoiceSettingsAgent, {}), (0, jsx_runtime_1.jsxs)("div", { className: "alert alert-info", children: [(0, jsx_runtime_1.jsxs)("h6", { className: "alert-heading", children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-info-circle me-2" }), "How to use"] }), (0, jsx_runtime_1.jsxs)("ol", { className: "mb-0 small", children: [(0, jsx_runtime_1.jsx)("li", { children: "Get a free Picovoice access key from the link above" }), (0, jsx_runtime_1.jsxs)("li", { children: ["Enter the key and click ", (0, jsx_runtime_1.jsx)("strong", { children: "Save" })] }), (0, jsx_runtime_1.jsxs)("li", { children: ["Enable voice input and click ", (0, jsx_runtime_1.jsx)("strong", { children: "Save" }), " again"] }), (0, jsx_runtime_1.jsxs)("li", { children: ["Say", " ", (0, jsx_runtime_1.jsxs)("strong", { children: ["\"", voice_settings_types_1.BUILTIN_WAKE_WORDS.find((w) => w.id === localSettings.wakeWord)?.name || "Computer", "\""] }), " ", "to activate voice recording"] }), (0, jsx_runtime_1.jsx)("li", { children: "Speak your message - recording stops automatically when you pause" }), (0, jsx_runtime_1.jsx)("li", { children: "Your message will be sent to the assistant and the response will be spoken" })] })] })] }));
248
171
  };
249
172
  exports.VoiceSettings = VoiceSettings;
250
173
  exports.default = exports.VoiceSettings;
@@ -1,2 +1 @@
1
- import React from "react";
2
- export declare const SetupUser: () => React.JSX.Element | null;
1
+ export declare const SetupUser: () => import("react/jsx-runtime").JSX.Element | null;
@@ -1,55 +1,23 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.SetupUser = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
37
5
  const peers_sdk_1 = require("@peers-app/peers-sdk");
38
- const react_1 = __importStar(require("react"));
6
+ const react_1 = require("react");
39
7
  const hooks_1 = require("../hooks");
40
8
  const color_mode_dropdown_1 = require("./settings/color-mode-dropdown");
41
9
  const SetupUser = () => {
42
10
  const [_colorMode] = (0, hooks_1.useObservable)(color_mode_dropdown_1.colorMode);
43
- const [step, setStep] = (0, react_1.useState)('select-user-type');
11
+ const [step, _setStep] = (0, react_1.useState)("select-user-type");
44
12
  const [isExistingUser, setIsExistingUser] = (0, react_1.useState)(null);
45
- const [userId, setUserId] = (0, react_1.useState)('');
46
- const [secretKey, setSecretKey] = (0, react_1.useState)('');
47
- const [error, setError] = (0, react_1.useState)('');
13
+ const [userId, setUserId] = (0, react_1.useState)("");
14
+ const [secretKey, setSecretKey] = (0, react_1.useState)("");
15
+ const [error, setError] = (0, react_1.useState)("");
48
16
  const [isValidating, setIsValidating] = (0, react_1.useState)(false);
49
- document.getElementById('appLoadingDiv')?.remove();
50
- const isDark = _colorMode === 'dark';
17
+ document.getElementById("appLoadingDiv")?.remove();
18
+ const isDark = _colorMode === "dark";
51
19
  const handleNewUser = async () => {
52
- setError('');
20
+ setError("");
53
21
  setIsValidating(true);
54
22
  try {
55
23
  // Generate new user credentials
@@ -58,26 +26,28 @@ const SetupUser = () => {
58
26
  // Call setUserIdAndSecretKey
59
27
  await peers_sdk_1.rpcServerCalls.setUserIdAndSecretKey(_userId, keys.secretKey);
60
28
  // Auto-install peers-core for the new user
61
- await peers_sdk_1.rpcServerCalls.addOrUpdatePackage(peers_sdk_1.peersCorePackageId, { dataContextId: _userId }).catch((err) => {
62
- console.error('Error auto-installing peers-core:', err);
29
+ await peers_sdk_1.rpcServerCalls
30
+ .addOrUpdatePackage(peers_sdk_1.peersCorePackageId, { dataContextId: _userId })
31
+ .catch((err) => {
32
+ console.error("Error auto-installing peers-core:", err);
63
33
  });
64
34
  // Success - reload the app
65
35
  window.location.reload();
66
36
  }
67
37
  catch (err) {
68
- setError('Error creating new user: ' + String(err).replaceAll('\n', ' '));
38
+ setError(`Error creating new user: ${String(err).replaceAll("\n", " ")}`);
69
39
  setIsValidating(false);
70
40
  }
71
41
  };
72
42
  const handleExistingUser = async () => {
73
- setError('');
43
+ setError("");
74
44
  // Validate inputs
75
45
  if (!userId.trim() || !secretKey.trim()) {
76
- setError('Please enter both User ID and Secret Key');
46
+ setError("Please enter both User ID and Secret Key");
77
47
  return;
78
48
  }
79
49
  if ((0, peers_sdk_1.isid)(userId) !== true) {
80
- setError('Invalid User ID format');
50
+ setError("Invalid User ID format");
81
51
  return;
82
52
  }
83
53
  setIsValidating(true);
@@ -88,7 +58,7 @@ const SetupUser = () => {
88
58
  const msgSigned = (0, peers_sdk_1.signMessageWithSecretKey)(msg, keys.secretKey);
89
59
  const msgOpened = (0, peers_sdk_1.openMessageWithPublicKey)(msgSigned, keys.publicKey);
90
60
  if (msg !== msgOpened) {
91
- throw new Error('Secret key validation failed');
61
+ throw new Error("Secret key validation failed");
92
62
  }
93
63
  // Call setUserIdAndSecretKey
94
64
  await peers_sdk_1.rpcServerCalls.setUserIdAndSecretKey(userId, keys.secretKey);
@@ -96,84 +66,36 @@ const SetupUser = () => {
96
66
  window.location.reload();
97
67
  }
98
68
  catch (err) {
99
- setError('Invalid credentials: ' + String(err).replaceAll('\n', ' '));
69
+ setError(`Invalid credentials: ${String(err).replaceAll("\n", " ")}`);
100
70
  setIsValidating(false);
101
71
  }
102
72
  };
103
73
  // Step 1: Select User Type
104
- if (step === 'select-user-type' && isExistingUser === null) {
105
- return (react_1.default.createElement("div", { className: "container-fluid d-flex align-items-start justify-content-center", style: { paddingTop: '20px', backgroundColor: isDark ? '#212529' : '#f8f9fa' } },
106
- react_1.default.createElement("div", { className: "card shadow", style: { maxWidth: '500px', width: '100%', backgroundColor: isDark ? '#2d3238' : '#ffffff' } },
107
- react_1.default.createElement("div", { className: "card-body p-4 p-md-5" },
108
- react_1.default.createElement("div", { className: "text-center mb-4" },
109
- react_1.default.createElement("h2", { className: `fw-bold mb-2 ${isDark ? 'text-light' : ''}` }, "Welcome to Peers"),
110
- react_1.default.createElement("p", { className: isDark ? 'text-light opacity-75' : 'text-muted' }, "Let's get you set up")),
111
- react_1.default.createElement("div", { className: "d-grid gap-3" },
112
- react_1.default.createElement("button", { className: "btn btn-lg btn-primary py-3", onClick: () => setIsExistingUser(false) },
113
- react_1.default.createElement("div", { className: "d-flex align-items-center justify-content-center" },
114
- react_1.default.createElement("i", { className: "bi bi-person-plus fs-4 me-2" }),
115
- react_1.default.createElement("div", { className: "text-start" },
116
- react_1.default.createElement("div", { className: "fw-semibold" }, "I'm a New User"),
117
- react_1.default.createElement("small", { className: "opacity-75" }, "Create a new account")))),
118
- react_1.default.createElement("button", { className: `btn btn-lg py-3 ${isDark ? 'btn-outline-light' : 'btn-outline-primary'}`, onClick: () => setIsExistingUser(true) },
119
- react_1.default.createElement("div", { className: "d-flex align-items-center justify-content-center" },
120
- react_1.default.createElement("i", { className: "bi bi-box-arrow-in-right fs-4 me-2" }),
121
- react_1.default.createElement("div", { className: "text-start" },
122
- react_1.default.createElement("div", { className: "fw-semibold" }, "I'm an Existing User"),
123
- react_1.default.createElement("small", { className: "opacity-75" }, "Sign in with your credentials")))))))));
74
+ if (step === "select-user-type" && isExistingUser === null) {
75
+ return ((0, jsx_runtime_1.jsx)("div", { className: "container-fluid d-flex align-items-start justify-content-center", style: { paddingTop: "20px", backgroundColor: isDark ? "#212529" : "#f8f9fa" }, children: (0, jsx_runtime_1.jsx)("div", { className: "card shadow", style: {
76
+ maxWidth: "500px",
77
+ width: "100%",
78
+ backgroundColor: isDark ? "#2d3238" : "#ffffff",
79
+ }, children: (0, jsx_runtime_1.jsxs)("div", { className: "card-body p-4 p-md-5", children: [(0, jsx_runtime_1.jsxs)("div", { className: "text-center mb-4", children: [(0, jsx_runtime_1.jsx)("h2", { className: `fw-bold mb-2 ${isDark ? "text-light" : ""}`, children: "Welcome to Peers" }), (0, jsx_runtime_1.jsx)("p", { className: isDark ? "text-light opacity-75" : "text-muted", children: "Let's get you set up" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "d-grid gap-3", children: [(0, jsx_runtime_1.jsx)("button", { className: "btn btn-lg btn-primary py-3", onClick: () => setIsExistingUser(false), children: (0, jsx_runtime_1.jsxs)("div", { className: "d-flex align-items-center justify-content-center", children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-person-plus fs-4 me-2" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-start", children: [(0, jsx_runtime_1.jsx)("div", { className: "fw-semibold", children: "I'm a New User" }), (0, jsx_runtime_1.jsx)("small", { className: "opacity-75", children: "Create a new account" })] })] }) }), (0, jsx_runtime_1.jsx)("button", { className: `btn btn-lg py-3 ${isDark ? "btn-outline-light" : "btn-outline-primary"}`, onClick: () => setIsExistingUser(true), children: (0, jsx_runtime_1.jsxs)("div", { className: "d-flex align-items-center justify-content-center", children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-box-arrow-in-right fs-4 me-2" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-start", children: [(0, jsx_runtime_1.jsx)("div", { className: "fw-semibold", children: "I'm an Existing User" }), (0, jsx_runtime_1.jsx)("small", { className: "opacity-75", children: "Sign in with your credentials" })] })] }) })] })] }) }) }));
124
80
  }
125
81
  // Step 2: New User Confirmation
126
82
  if (isExistingUser === false) {
127
- return (react_1.default.createElement("div", { className: "container-fluid d-flex align-items-start justify-content-center", style: { paddingTop: '20px', backgroundColor: isDark ? '#212529' : '#f8f9fa' } },
128
- react_1.default.createElement("div", { className: "card shadow", style: { maxWidth: '500px', width: '100%', backgroundColor: isDark ? '#2d3238' : '#ffffff' } },
129
- react_1.default.createElement("div", { className: "card-body p-4 p-md-5" },
130
- react_1.default.createElement("div", { className: "text-center mb-4" },
131
- react_1.default.createElement("i", { className: "bi bi-person-plus-fill text-primary fs-1 mb-3 d-block" }),
132
- react_1.default.createElement("h3", { className: `fw-bold mb-2 ${isDark ? 'text-light' : ''}` }, "Create New Account"),
133
- react_1.default.createElement("p", { className: isDark ? 'text-light opacity-75' : 'text-muted' }, "We'll generate secure credentials for you")),
134
- error && (react_1.default.createElement("div", { className: "alert alert-danger", role: "alert" },
135
- react_1.default.createElement("i", { className: "bi bi-exclamation-triangle me-2" }),
136
- error)),
137
- react_1.default.createElement("div", { className: "d-grid gap-2" },
138
- react_1.default.createElement("button", { className: "btn btn-lg btn-primary", onClick: handleNewUser, disabled: isValidating }, isValidating ? (react_1.default.createElement(react_1.default.Fragment, null,
139
- react_1.default.createElement("span", { className: "spinner-border spinner-border-sm me-2" }),
140
- "Creating Account...")) : (react_1.default.createElement(react_1.default.Fragment, null,
141
- react_1.default.createElement("i", { className: "bi bi-check-circle me-2" }),
142
- "Create Account"))),
143
- react_1.default.createElement("button", { className: "btn btn-outline-secondary", onClick: () => setIsExistingUser(null), disabled: isValidating },
144
- react_1.default.createElement("i", { className: "bi bi-arrow-left me-2" }),
145
- "Back"))))));
83
+ return ((0, jsx_runtime_1.jsx)("div", { className: "container-fluid d-flex align-items-start justify-content-center", style: { paddingTop: "20px", backgroundColor: isDark ? "#212529" : "#f8f9fa" }, children: (0, jsx_runtime_1.jsx)("div", { className: "card shadow", style: {
84
+ maxWidth: "500px",
85
+ width: "100%",
86
+ backgroundColor: isDark ? "#2d3238" : "#ffffff",
87
+ }, children: (0, jsx_runtime_1.jsxs)("div", { className: "card-body p-4 p-md-5", children: [(0, jsx_runtime_1.jsxs)("div", { className: "text-center mb-4", children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-person-plus-fill text-primary fs-1 mb-3 d-block" }), (0, jsx_runtime_1.jsx)("h3", { className: `fw-bold mb-2 ${isDark ? "text-light" : ""}`, children: "Create New Account" }), (0, jsx_runtime_1.jsx)("p", { className: isDark ? "text-light opacity-75" : "text-muted", children: "We'll generate secure credentials for you" })] }), error && ((0, jsx_runtime_1.jsxs)("div", { className: "alert alert-danger", role: "alert", children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-exclamation-triangle me-2" }), error] })), (0, jsx_runtime_1.jsxs)("div", { className: "d-grid gap-2", children: [(0, jsx_runtime_1.jsx)("button", { className: "btn btn-lg btn-primary", onClick: handleNewUser, disabled: isValidating, children: isValidating ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "spinner-border spinner-border-sm me-2" }), "Creating Account..."] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-check-circle me-2" }), "Create Account"] })) }), (0, jsx_runtime_1.jsxs)("button", { className: "btn btn-outline-secondary", onClick: () => setIsExistingUser(null), disabled: isValidating, children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-arrow-left me-2" }), "Back"] })] })] }) }) }));
146
88
  }
147
89
  // Step 3: Existing User Sign In
148
90
  if (isExistingUser === true) {
149
- return (react_1.default.createElement("div", { className: "container-fluid d-flex align-items-start justify-content-center", style: { paddingTop: '20px', backgroundColor: isDark ? '#212529' : '#f8f9fa' } },
150
- react_1.default.createElement("div", { className: "card shadow", style: { maxWidth: '500px', width: '100%', backgroundColor: isDark ? '#2d3238' : '#ffffff' } },
151
- react_1.default.createElement("div", { className: "card-body p-4 p-md-5" },
152
- react_1.default.createElement("div", { className: "text-center mb-2" },
153
- react_1.default.createElement("h3", { className: `fw-bold mb-2 ${isDark ? 'text-light' : ''}` },
154
- react_1.default.createElement("span", null, "Sign In"),
155
- "\u00A0\u00A0",
156
- react_1.default.createElement("i", { className: "bi bi-box-arrow-in-right text-primary" })),
157
- react_1.default.createElement("p", { className: isDark ? 'text-light opacity-75' : 'text-muted' }, "Enter your existing credentials")),
158
- error && (react_1.default.createElement("div", { className: "alert alert-danger", role: "alert" },
159
- react_1.default.createElement("i", { className: "bi bi-exclamation-triangle me-2" }),
160
- error)),
161
- react_1.default.createElement("form", { onSubmit: (e) => { e.preventDefault(); handleExistingUser(); } },
162
- react_1.default.createElement("div", { className: "mb-3" },
163
- react_1.default.createElement("label", { htmlFor: "userId", className: "form-label fw-semibold" }, "User ID"),
164
- react_1.default.createElement("input", { id: "userId", type: "text", className: "form-control form-control-lg", placeholder: "Enter your user ID", value: userId, onChange: (e) => setUserId(e.target.value), disabled: isValidating, autoFocus: true })),
165
- react_1.default.createElement("div", { className: "mb-4" },
166
- react_1.default.createElement("label", { htmlFor: "secretKey", className: "form-label fw-semibold" }, "Secret Key"),
167
- react_1.default.createElement("input", { id: "secretKey", type: "password", className: "form-control form-control-lg", placeholder: "Enter your secret key", value: secretKey, onChange: (e) => setSecretKey(e.target.value), disabled: isValidating })),
168
- react_1.default.createElement("div", { className: "d-grid gap-2" },
169
- react_1.default.createElement("button", { type: "submit", className: "btn btn-lg btn-primary", disabled: isValidating }, isValidating ? (react_1.default.createElement(react_1.default.Fragment, null,
170
- react_1.default.createElement("span", { className: "spinner-border spinner-border-sm me-2" }),
171
- "Signing In...")) : (react_1.default.createElement(react_1.default.Fragment, null,
172
- react_1.default.createElement("i", { className: "bi bi-check-circle me-2" }),
173
- "Sign In"))),
174
- react_1.default.createElement("button", { type: "button", className: "btn btn-outline-secondary", onClick: () => setIsExistingUser(null), disabled: isValidating },
175
- react_1.default.createElement("i", { className: "bi bi-arrow-left me-2" }),
176
- "Back")))))));
91
+ return ((0, jsx_runtime_1.jsx)("div", { className: "container-fluid d-flex align-items-start justify-content-center", style: { paddingTop: "20px", backgroundColor: isDark ? "#212529" : "#f8f9fa" }, children: (0, jsx_runtime_1.jsx)("div", { className: "card shadow", style: {
92
+ maxWidth: "500px",
93
+ width: "100%",
94
+ backgroundColor: isDark ? "#2d3238" : "#ffffff",
95
+ }, children: (0, jsx_runtime_1.jsxs)("div", { className: "card-body p-4 p-md-5", children: [(0, jsx_runtime_1.jsxs)("div", { className: "text-center mb-2", children: [(0, jsx_runtime_1.jsxs)("h3", { className: `fw-bold mb-2 ${isDark ? "text-light" : ""}`, children: [(0, jsx_runtime_1.jsx)("span", { children: "Sign In" }), "\u00A0\u00A0", (0, jsx_runtime_1.jsx)("i", { className: "bi bi-box-arrow-in-right text-primary" })] }), (0, jsx_runtime_1.jsx)("p", { className: isDark ? "text-light opacity-75" : "text-muted", children: "Enter your existing credentials" })] }), error && ((0, jsx_runtime_1.jsxs)("div", { className: "alert alert-danger", role: "alert", children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-exclamation-triangle me-2" }), error] })), (0, jsx_runtime_1.jsxs)("form", { onSubmit: (e) => {
96
+ e.preventDefault();
97
+ handleExistingUser();
98
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { className: "mb-3", children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "userId", className: "form-label fw-semibold", children: "User ID" }), (0, jsx_runtime_1.jsx)("input", { id: "userId", type: "text", className: "form-control form-control-lg", placeholder: "Enter your user ID", value: userId, onChange: (e) => setUserId(e.target.value), disabled: isValidating })] }), (0, jsx_runtime_1.jsxs)("div", { className: "mb-4", children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "secretKey", className: "form-label fw-semibold", children: "Secret Key" }), (0, jsx_runtime_1.jsx)("input", { id: "secretKey", type: "password", className: "form-control form-control-lg", placeholder: "Enter your secret key", value: secretKey, onChange: (e) => setSecretKey(e.target.value), disabled: isValidating })] }), (0, jsx_runtime_1.jsxs)("div", { className: "d-grid gap-2", children: [(0, jsx_runtime_1.jsx)("button", { type: "submit", className: "btn btn-lg btn-primary", disabled: isValidating, children: isValidating ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "spinner-border spinner-border-sm me-2" }), "Signing In..."] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-check-circle me-2" }), "Sign In"] })) }), (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "btn btn-outline-secondary", onClick: () => setIsExistingUser(null), disabled: isValidating, children: [(0, jsx_runtime_1.jsx)("i", { className: "bi bi-arrow-left me-2" }), "Back"] })] })] })] }) }) }));
177
99
  }
178
100
  return null;
179
101
  };
@@ -1,5 +1,4 @@
1
- import { IDoc, ITool } from "@peers-app/peers-sdk";
2
- import React from "react";
1
+ import { type IDoc, type ITool } from "@peers-app/peers-sdk";
3
2
  export declare const ToolCode: (props: {
4
3
  tool: IDoc<ITool>;
5
- }) => React.JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,32 +1,28 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.ToolCode = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
5
  const peers_sdk_1 = require("@peers-app/peers-sdk");
8
- const react_1 = __importDefault(require("react"));
9
6
  const editor_inline_1 = require("../../components/markdown-editor/editor-inline");
10
7
  const ToolCode = (props) => {
11
8
  const { tool } = props;
12
- let code = tool.qs.code() ?? '';
9
+ let code = tool.qs.code() ?? "";
13
10
  const toolCodeObs = (0, peers_sdk_1.computed)({
14
11
  read: () => {
15
- if (!code.startsWith('```')) {
16
- code = '```javascript\n' + code + '\n```';
12
+ if (!code.startsWith("```")) {
13
+ code = `\`\`\`javascript\n${code}\n\`\`\``;
17
14
  }
18
15
  return code;
19
16
  },
20
17
  write: (newCode) => {
21
18
  code = newCode;
22
- if (code.startsWith('```javascript\n')) {
23
- code = code.replace('```javascript\n', '');
24
- code = code.replace('\n```', '');
19
+ if (code.startsWith("```javascript\n")) {
20
+ code = code.replace("```javascript\n", "");
21
+ code = code.replace("\n```", "");
25
22
  }
26
23
  tool.qs.code(code);
27
- }
24
+ },
28
25
  });
29
- return (react_1.default.createElement("div", null,
30
- react_1.default.createElement(editor_inline_1.MarkdownEditorInline, { value: toolCodeObs, hideToolbar: true })));
26
+ return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(editor_inline_1.MarkdownEditorInline, { value: toolCodeObs, hideToolbar: true }) }));
31
27
  };
32
28
  exports.ToolCode = ToolCode;
@@ -1,6 +1,5 @@
1
- import React from "react";
2
1
  interface IToolDetailsProps {
3
2
  toolId: string;
4
3
  }
5
- export declare const ToolDetails: (props: IToolDetailsProps) => React.JSX.Element;
4
+ export declare const ToolDetails: (props: IToolDetailsProps) => import("react/jsx-runtime").JSX.Element;
6
5
  export {};