@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,82 +1,29 @@
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.UserConnect = UserConnect;
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 globals_1 = require("../../globals");
40
8
  const hooks_1 = require("../../hooks");
41
9
  const ui_loader_1 = require("../../ui-router/ui-loader");
42
10
  function UserConnect() {
43
- const [mode, setMode] = (0, react_1.useState)('select');
44
- const [status, setStatus] = (0, react_1.useState)('idle');
45
- const [connectionCode, setConnectionCode] = (0, react_1.useState)('');
46
- const [inputCode, setInputCode] = (0, react_1.useState)('');
11
+ const [mode, setMode] = (0, react_1.useState)("select");
12
+ const [status, setStatus] = (0, react_1.useState)("idle");
13
+ const [connectionCode, setConnectionCode] = (0, react_1.useState)("");
14
+ const [inputCode, setInputCode] = (0, react_1.useState)("");
47
15
  const [result, setResult] = (0, react_1.useState)(null);
48
- const [error, setError] = (0, react_1.useState)('');
16
+ const [error, setError] = (0, react_1.useState)("");
49
17
  const [copied, setCopied] = (0, react_1.useState)(false);
50
18
  // Subscribe to userConnectStatus from the device layer
51
19
  const [connectStatus] = (0, hooks_1.useObservable)(peers_sdk_1.userConnectStatus);
52
- // Also set up a direct subscription after loading is complete
53
- (0, react_1.useEffect)(() => {
54
- let disposed = false;
55
- let subscription;
56
- peers_sdk_1.userConnectStatus.loadingPromise.then(() => {
57
- if (disposed)
58
- return;
59
- subscription = peers_sdk_1.userConnectStatus.subscribe(() => {
60
- // Force a re-render by checking the current value
61
- const currentStatus = (0, peers_sdk_1.userConnectStatus)();
62
- if (currentStatus && typeof currentStatus === 'string') {
63
- handleConnectStatusChange(currentStatus);
64
- }
65
- });
66
- });
67
- return () => {
68
- disposed = true;
69
- subscription?.dispose();
70
- };
71
- }, []);
72
- // Handle connect status changes
73
20
  const handleConnectStatusChange = (0, react_1.useCallback)(async (connectStatusValue) => {
74
- if (!connectStatusValue || status === 'success')
21
+ if (!connectStatusValue || status === "success")
75
22
  return;
76
- if (connectStatusValue.startsWith('Error:')) {
23
+ if (connectStatusValue.startsWith("Error:")) {
77
24
  // Error status
78
- setError(connectStatusValue.replace('Error: ', ''));
79
- setStatus('error');
25
+ setError(connectStatusValue.replace("Error: ", ""));
26
+ setStatus("error");
80
27
  }
81
28
  else if (connectStatusValue.length > 0) {
82
29
  // Success - connectStatus is the remote userId
@@ -86,14 +33,16 @@ function UserConnect() {
86
33
  const me = await (0, peers_sdk_1.getMe)();
87
34
  const remoteUser = await (0, peers_sdk_1.Users)(userContext.userDataContext).get(remoteUserId);
88
35
  if (!remoteUser) {
89
- setError('Could not find connected user');
90
- setStatus('error');
36
+ setError("Could not find connected user");
37
+ setStatus("error");
91
38
  return;
92
39
  }
93
- const remoteDevice = await (0, peers_sdk_1.Devices)(userContext.userDataContext).findOne({ userId: remoteUserId });
40
+ const remoteDevice = await (0, peers_sdk_1.Devices)(userContext.userDataContext).findOne({
41
+ userId: remoteUserId,
42
+ });
94
43
  if (!remoteDevice) {
95
- setError('Could not find connected device but connection was successful');
96
- setStatus('error');
44
+ setError("Could not find connected device but connection was successful");
45
+ setStatus("error");
97
46
  return;
98
47
  }
99
48
  // Build user connect info for confirmation hash
@@ -111,37 +60,57 @@ function UserConnect() {
111
60
  };
112
61
  const confirmationHash = (0, peers_sdk_1.generateConfirmationHash)(myInfo, remoteInfo);
113
62
  setResult({ remoteUser, confirmationHash });
114
- setStatus('success');
63
+ setStatus("success");
115
64
  // Clear the codes
116
- (0, peers_sdk_1.userConnectCodeOffer)('');
117
- (0, peers_sdk_1.userConnectCodeAnswer)('');
65
+ (0, peers_sdk_1.userConnectCodeOffer)("");
66
+ (0, peers_sdk_1.userConnectCodeAnswer)("");
118
67
  }
119
68
  catch (err) {
120
- setError(err.message || 'Failed to complete connection');
121
- setStatus('error');
69
+ setError(err instanceof Error ? err.message : String(err));
70
+ setStatus("error");
122
71
  }
123
72
  }
124
73
  }, [status]);
74
+ // Also set up a direct subscription after loading is complete
75
+ (0, react_1.useEffect)(() => {
76
+ let disposed = false;
77
+ let subscription;
78
+ peers_sdk_1.userConnectStatus.loadingPromise.then(() => {
79
+ if (disposed)
80
+ return;
81
+ subscription = peers_sdk_1.userConnectStatus.subscribe(() => {
82
+ // Force a re-render by checking the current value
83
+ const currentStatus = (0, peers_sdk_1.userConnectStatus)();
84
+ if (currentStatus && typeof currentStatus === "string") {
85
+ handleConnectStatusChange(currentStatus);
86
+ }
87
+ });
88
+ });
89
+ return () => {
90
+ disposed = true;
91
+ subscription?.dispose();
92
+ };
93
+ }, [handleConnectStatusChange]);
125
94
  // React to userConnectStatus changes from useObservable
126
95
  (0, react_1.useEffect)(() => {
127
- if (connectStatus && typeof connectStatus === 'string') {
96
+ if (connectStatus && typeof connectStatus === "string") {
128
97
  handleConnectStatusChange(connectStatus);
129
98
  }
130
99
  }, [connectStatus, handleConnectStatusChange]);
131
100
  // Clean up on unmount
132
101
  (0, react_1.useEffect)(() => {
133
102
  return () => {
134
- if (mode === 'initiate' && status === 'waiting') {
135
- (0, peers_sdk_1.userConnectCodeOffer)('');
136
- (0, peers_sdk_1.userConnectCodeAnswer)('');
103
+ if (mode === "initiate" && status === "waiting") {
104
+ (0, peers_sdk_1.userConnectCodeOffer)("");
105
+ (0, peers_sdk_1.userConnectCodeAnswer)("");
137
106
  }
138
107
  };
139
108
  }, [mode, status]);
140
109
  const handleInitiate = (0, react_1.useCallback)(async () => {
141
- setMode('initiate');
142
- setStatus('waiting');
143
- setError('');
144
- (0, peers_sdk_1.userConnectStatus)(''); // Clear any previous status
110
+ setMode("initiate");
111
+ setStatus("waiting");
112
+ setError("");
113
+ (0, peers_sdk_1.userConnectStatus)(""); // Clear any previous status
145
114
  // Generate the connection code
146
115
  const code = (0, peers_sdk_1.generateConnectionCode)();
147
116
  (0, peers_sdk_1.userConnectCodeOffer)(code.code);
@@ -149,34 +118,34 @@ function UserConnect() {
149
118
  setConnectionCode(formattedCode);
150
119
  }, []);
151
120
  const handleRespond = (0, react_1.useCallback)(async () => {
152
- if (inputCode.replace(/[^0-9A-Za-z]/g, '').length !== 12) {
153
- setError('Please enter a valid 12-character connection code');
121
+ if (inputCode.replace(/[^0-9A-Za-z]/g, "").length !== 12) {
122
+ setError("Please enter a valid 12-character connection code");
154
123
  return;
155
124
  }
156
- setStatus('waiting');
157
- setError('');
158
- (0, peers_sdk_1.userConnectStatus)(''); // Clear any previous status
125
+ setStatus("waiting");
126
+ setError("");
127
+ (0, peers_sdk_1.userConnectStatus)(""); // Clear any previous status
159
128
  (0, peers_sdk_1.userConnectCodeAnswer)(inputCode);
160
129
  }, [inputCode]);
161
130
  const handleCancel = (0, react_1.useCallback)(async () => {
162
- (0, peers_sdk_1.userConnectCodeOffer)('');
163
- (0, peers_sdk_1.userConnectCodeAnswer)('');
164
- (0, peers_sdk_1.userConnectStatus)('');
165
- setMode('select');
166
- setStatus('idle');
167
- setConnectionCode('');
168
- setError('');
131
+ (0, peers_sdk_1.userConnectCodeOffer)("");
132
+ (0, peers_sdk_1.userConnectCodeAnswer)("");
133
+ (0, peers_sdk_1.userConnectStatus)("");
134
+ setMode("select");
135
+ setStatus("idle");
136
+ setConnectionCode("");
137
+ setError("");
169
138
  }, []);
170
139
  const handleReset = (0, react_1.useCallback)(() => {
171
- (0, peers_sdk_1.userConnectCodeOffer)('');
172
- (0, peers_sdk_1.userConnectCodeAnswer)('');
173
- (0, peers_sdk_1.userConnectStatus)('');
174
- setMode('select');
175
- setStatus('idle');
176
- setConnectionCode('');
177
- setInputCode('');
140
+ (0, peers_sdk_1.userConnectCodeOffer)("");
141
+ (0, peers_sdk_1.userConnectCodeAnswer)("");
142
+ (0, peers_sdk_1.userConnectStatus)("");
143
+ setMode("select");
144
+ setStatus("idle");
145
+ setConnectionCode("");
146
+ setInputCode("");
178
147
  setResult(null);
179
- setError('');
148
+ setError("");
180
149
  setCopied(false);
181
150
  }, []);
182
151
  const handleSaveContact = (0, react_1.useCallback)(async () => {
@@ -190,7 +159,7 @@ function UserConnect() {
190
159
  (0, globals_1.mainContentPath)(`contacts/${result.remoteUser.userId}`);
191
160
  }
192
161
  catch (err) {
193
- setError(err.message || 'Failed to save contact');
162
+ setError(err instanceof Error ? err.message : String(err));
194
163
  }
195
164
  }, [result]);
196
165
  // Copy connection code to clipboard
@@ -202,13 +171,13 @@ function UserConnect() {
202
171
  setCopied(true);
203
172
  setTimeout(() => setCopied(false), 2000);
204
173
  }
205
- catch (err) {
174
+ catch (_err) {
206
175
  // Fallback for older browsers
207
- const textArea = document.createElement('textarea');
176
+ const textArea = document.createElement("textarea");
208
177
  textArea.value = connectionCode;
209
178
  document.body.appendChild(textArea);
210
179
  textArea.select();
211
- document.execCommand('copy');
180
+ document.execCommand("copy");
212
181
  document.body.removeChild(textArea);
213
182
  setCopied(true);
214
183
  setTimeout(() => setCopied(false), 2000);
@@ -217,96 +186,26 @@ function UserConnect() {
217
186
  // Format input code as user types
218
187
  const handleCodeInput = (value) => {
219
188
  // Remove non-alphanumeric characters
220
- const cleaned = value.toUpperCase().replace(/[^0-9A-Z]/g, '');
189
+ const cleaned = value.toUpperCase().replace(/[^0-9A-Z]/g, "");
221
190
  // Format as XXXX-YYYY-ZZZZ
222
- let formatted = '';
191
+ let formatted = "";
223
192
  for (let i = 0; i < cleaned.length && i < 12; i++) {
224
193
  if (i === 4 || i === 8)
225
- formatted += '-';
194
+ formatted += "-";
226
195
  formatted += cleaned[i];
227
196
  }
228
197
  setInputCode(formatted);
229
198
  };
230
- return (react_1.default.createElement("div", { className: "container-fluid p-3" },
231
- react_1.default.createElement("div", { className: "d-flex justify-content-between align-items-center mb-4" },
232
- react_1.default.createElement("h4", null,
233
- react_1.default.createElement("i", { className: "bi-person-plus-fill me-2" }),
234
- "Connect to New User"),
235
- mode !== 'select' && (react_1.default.createElement("button", { className: "btn btn-outline-secondary btn-sm", onClick: handleReset },
236
- react_1.default.createElement("i", { className: "bi-arrow-left me-1" }),
237
- "Back"))),
238
- mode === 'select' && (react_1.default.createElement("div", { className: "row g-3" },
239
- react_1.default.createElement("div", { className: "col-md-6" },
240
- react_1.default.createElement("div", { className: "card h-100 border-primary", style: { cursor: 'pointer' }, onClick: handleInitiate },
241
- react_1.default.createElement("div", { className: "card-body text-center p-4" },
242
- react_1.default.createElement("i", { className: "bi-qr-code display-4 text-primary mb-3" }),
243
- react_1.default.createElement("h5", { className: "card-title" }, "Create Connection Code"),
244
- react_1.default.createElement("p", { className: "card-text text-muted" }, "Generate a code to share with someone who wants to connect with you")))),
245
- react_1.default.createElement("div", { className: "col-md-6" },
246
- react_1.default.createElement("div", { className: "card h-100 border-success", style: { cursor: 'pointer' }, onClick: () => setMode('respond') },
247
- react_1.default.createElement("div", { className: "card-body text-center p-4" },
248
- react_1.default.createElement("i", { className: "bi-keyboard display-4 text-success mb-3" }),
249
- react_1.default.createElement("h5", { className: "card-title" }, "Enter Connection Code"),
250
- react_1.default.createElement("p", { className: "card-text text-muted" }, "Enter a code that someone shared with you to connect")))))),
251
- mode === 'initiate' && status === 'waiting' && (react_1.default.createElement("div", { className: "text-center" },
252
- react_1.default.createElement("div", { className: "mb-4" },
253
- react_1.default.createElement("p", { className: "text-muted" }, "Share this code with the person you want to connect with:")),
254
- react_1.default.createElement("div", { className: "mb-4", style: { maxWidth: '400px', margin: '0 auto' } },
255
- react_1.default.createElement("div", { className: "input-group" },
256
- react_1.default.createElement("input", { type: "text", className: "form-control form-control-lg text-center font-monospace", value: connectionCode || 'XXXX-YYYY-ZZZZ', readOnly: true, style: { letterSpacing: '0.15em', fontSize: '1.5rem' } }),
257
- react_1.default.createElement("button", { className: "btn btn-outline-primary", onClick: handleCopyCode, title: "Copy to clipboard" },
258
- react_1.default.createElement("i", { className: copied ? "bi-check-lg" : "bi-clipboard" }))),
259
- copied && (react_1.default.createElement("small", { className: "text-success mt-1 d-block" }, "Copied!"))),
260
- react_1.default.createElement("div", { className: "mb-4" },
261
- react_1.default.createElement("div", { className: "spinner-border spinner-border-sm text-primary me-2", role: "status" }),
262
- react_1.default.createElement("span", { className: "text-muted" }, "Waiting for connection...")),
263
- react_1.default.createElement("p", { className: "text-muted small" }, "This code will expire in 10 minutes"),
264
- react_1.default.createElement("button", { className: "btn btn-outline-secondary", onClick: handleCancel }, "Cancel"))),
265
- mode === 'respond' && status !== 'success' && (react_1.default.createElement("div", { className: "text-center" },
266
- react_1.default.createElement("div", { className: "mb-4" },
267
- react_1.default.createElement("p", { className: "text-muted" }, "Enter the connection code shared with you:")),
268
- react_1.default.createElement("div", { className: "mb-4", style: { maxWidth: '400px', margin: '0 auto' } },
269
- react_1.default.createElement("input", { type: "text", className: "form-control form-control-lg text-center font-monospace", placeholder: "XXXX-YYYY-ZZZZ", value: inputCode, onChange: (e) => handleCodeInput(e.target.value), maxLength: 14, style: { letterSpacing: '0.15em', fontSize: '1.5rem' }, autoFocus: true })),
270
- error && (react_1.default.createElement("div", { className: "alert alert-danger", style: { maxWidth: '400px', margin: '0 auto 1rem' } }, error)),
271
- react_1.default.createElement("button", { className: "btn btn-primary btn-lg", onClick: handleRespond, disabled: status === 'waiting' || inputCode.replace(/[^0-9A-Z]/gi, '').length !== 12 }, status === 'waiting' ? (react_1.default.createElement(react_1.default.Fragment, null,
272
- react_1.default.createElement("span", { className: "spinner-border spinner-border-sm me-2", role: "status" }),
273
- "Connecting...")) : (react_1.default.createElement(react_1.default.Fragment, null,
274
- react_1.default.createElement("i", { className: "bi-link-45deg me-2" }),
275
- "Connect"))))),
276
- status === 'success' && result && (react_1.default.createElement("div", { className: "text-center" },
277
- react_1.default.createElement("div", { className: "mb-4" },
278
- react_1.default.createElement("i", { className: "bi-check-circle-fill text-success display-3" })),
279
- react_1.default.createElement("h5", { className: "mb-4" }, "Connection Successful!"),
280
- react_1.default.createElement("div", { className: "card mb-4", style: { maxWidth: '400px', margin: '0 auto' } },
281
- react_1.default.createElement("div", { className: "card-body" },
282
- react_1.default.createElement("p", { className: "text-muted mb-2" }, "Verify with the other person that you both see:"),
283
- react_1.default.createElement("h3", { className: "font-monospace text-primary mb-3", style: { letterSpacing: '0.2em' } }, result.confirmationHash),
284
- react_1.default.createElement("hr", null),
285
- react_1.default.createElement("div", { className: "text-start" },
286
- react_1.default.createElement("small", { className: "text-muted" }, "Name:"),
287
- react_1.default.createElement("p", { className: "mb-2" }, result.remoteUser.name),
288
- react_1.default.createElement("small", { className: "text-muted" }, "User ID:"),
289
- react_1.default.createElement("p", { className: "font-monospace small mb-0" }, result.remoteUser.userId)))),
290
- react_1.default.createElement("div", { className: "d-flex gap-2 justify-content-center" },
291
- react_1.default.createElement("button", { className: "btn btn-primary", onClick: handleSaveContact },
292
- react_1.default.createElement("i", { className: "bi-check-lg me-2" }),
293
- "Trust & View Contact"),
294
- react_1.default.createElement("button", { className: "btn btn-outline-secondary", onClick: handleReset }, "Connect Another")))),
295
- status === 'error' && (react_1.default.createElement("div", { className: "text-center" },
296
- react_1.default.createElement("div", { className: "mb-4" },
297
- react_1.default.createElement("i", { className: "bi-x-circle-fill text-danger display-3" })),
298
- react_1.default.createElement("h5", { className: "mb-4" }, "Connection Failed"),
299
- react_1.default.createElement("div", { className: "alert alert-danger", style: { maxWidth: '400px', margin: '0 auto 1rem' } }, error),
300
- react_1.default.createElement("button", { className: "btn btn-primary", onClick: handleReset }, "Try Again")))));
199
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "container-fluid p-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "d-flex justify-content-between align-items-center mb-4", children: [(0, jsx_runtime_1.jsxs)("h4", { children: [(0, jsx_runtime_1.jsx)("i", { className: "bi-person-plus-fill me-2" }), "Connect to New User"] }), mode !== "select" && ((0, jsx_runtime_1.jsxs)("button", { className: "btn btn-outline-secondary btn-sm", onClick: handleReset, children: [(0, jsx_runtime_1.jsx)("i", { className: "bi-arrow-left me-1" }), "Back"] }))] }), mode === "select" && ((0, jsx_runtime_1.jsxs)("div", { className: "row g-3", children: [(0, jsx_runtime_1.jsx)("div", { className: "col-md-6", children: (0, jsx_runtime_1.jsx)("div", { className: "card h-100 border-primary", style: { cursor: "pointer" }, onClick: handleInitiate, children: (0, jsx_runtime_1.jsxs)("div", { className: "card-body text-center p-4", children: [(0, jsx_runtime_1.jsx)("i", { className: "bi-qr-code display-4 text-primary mb-3" }), (0, jsx_runtime_1.jsx)("h5", { className: "card-title", children: "Create Connection Code" }), (0, jsx_runtime_1.jsx)("p", { className: "card-text text-muted", children: "Generate a code to share with someone who wants to connect with you" })] }) }) }), (0, jsx_runtime_1.jsx)("div", { className: "col-md-6", children: (0, jsx_runtime_1.jsx)("div", { className: "card h-100 border-success", style: { cursor: "pointer" }, onClick: () => setMode("respond"), children: (0, jsx_runtime_1.jsxs)("div", { className: "card-body text-center p-4", children: [(0, jsx_runtime_1.jsx)("i", { className: "bi-keyboard display-4 text-success mb-3" }), (0, jsx_runtime_1.jsx)("h5", { className: "card-title", children: "Enter Connection Code" }), (0, jsx_runtime_1.jsx)("p", { className: "card-text text-muted", children: "Enter a code that someone shared with you to connect" })] }) }) })] })), mode === "initiate" && status === "waiting" && ((0, jsx_runtime_1.jsxs)("div", { className: "text-center", children: [(0, jsx_runtime_1.jsx)("div", { className: "mb-4", children: (0, jsx_runtime_1.jsx)("p", { className: "text-muted", children: "Share this code with the person you want to connect with:" }) }), (0, jsx_runtime_1.jsxs)("div", { className: "mb-4", style: { maxWidth: "400px", margin: "0 auto" }, children: [(0, jsx_runtime_1.jsxs)("div", { className: "input-group", children: [(0, jsx_runtime_1.jsx)("input", { type: "text", className: "form-control form-control-lg text-center font-monospace", value: connectionCode || "XXXX-YYYY-ZZZZ", readOnly: true, style: { letterSpacing: "0.15em", fontSize: "1.5rem" } }), (0, jsx_runtime_1.jsx)("button", { className: "btn btn-outline-primary", onClick: handleCopyCode, title: "Copy to clipboard", children: (0, jsx_runtime_1.jsx)("i", { className: copied ? "bi-check-lg" : "bi-clipboard" }) })] }), copied && (0, jsx_runtime_1.jsx)("small", { className: "text-success mt-1 d-block", children: "Copied!" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "mb-4", children: [(0, jsx_runtime_1.jsx)("div", { className: "spinner-border spinner-border-sm text-primary me-2", role: "status" }), (0, jsx_runtime_1.jsx)("span", { className: "text-muted", children: "Waiting for connection..." })] }), (0, jsx_runtime_1.jsx)("p", { className: "text-muted small", children: "This code will expire in 10 minutes" }), (0, jsx_runtime_1.jsx)("button", { className: "btn btn-outline-secondary", onClick: handleCancel, children: "Cancel" })] })), mode === "respond" && status !== "success" && ((0, jsx_runtime_1.jsxs)("div", { className: "text-center", children: [(0, jsx_runtime_1.jsx)("div", { className: "mb-4", children: (0, jsx_runtime_1.jsx)("p", { className: "text-muted", children: "Enter the connection code shared with you:" }) }), (0, jsx_runtime_1.jsx)("div", { className: "mb-4", style: { maxWidth: "400px", margin: "0 auto" }, children: (0, jsx_runtime_1.jsx)("input", { type: "text", className: "form-control form-control-lg text-center font-monospace", placeholder: "XXXX-YYYY-ZZZZ", value: inputCode, onChange: (e) => handleCodeInput(e.target.value), maxLength: 14, style: { letterSpacing: "0.15em", fontSize: "1.5rem" } }) }), error && ((0, jsx_runtime_1.jsx)("div", { className: "alert alert-danger", style: { maxWidth: "400px", margin: "0 auto 1rem" }, children: error })), (0, jsx_runtime_1.jsx)("button", { className: "btn btn-primary btn-lg", onClick: handleRespond, disabled: status === "waiting" || inputCode.replace(/[^0-9A-Z]/gi, "").length !== 12, children: status === "waiting" ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "spinner-border spinner-border-sm me-2", role: "status" }), "Connecting..."] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("i", { className: "bi-link-45deg me-2" }), "Connect"] })) })] })), status === "success" && result && ((0, jsx_runtime_1.jsxs)("div", { className: "text-center", children: [(0, jsx_runtime_1.jsx)("div", { className: "mb-4", children: (0, jsx_runtime_1.jsx)("i", { className: "bi-check-circle-fill text-success display-3" }) }), (0, jsx_runtime_1.jsx)("h5", { className: "mb-4", children: "Connection Successful!" }), (0, jsx_runtime_1.jsx)("div", { className: "card mb-4", style: { maxWidth: "400px", margin: "0 auto" }, children: (0, jsx_runtime_1.jsxs)("div", { className: "card-body", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-muted mb-2", children: "Verify with the other person that you both see:" }), (0, jsx_runtime_1.jsx)("h3", { className: "font-monospace text-primary mb-3", style: { letterSpacing: "0.2em" }, children: result.confirmationHash }), (0, jsx_runtime_1.jsx)("hr", {}), (0, jsx_runtime_1.jsxs)("div", { className: "text-start", children: [(0, jsx_runtime_1.jsx)("small", { className: "text-muted", children: "Name:" }), (0, jsx_runtime_1.jsx)("p", { className: "mb-2", children: result.remoteUser.name }), (0, jsx_runtime_1.jsx)("small", { className: "text-muted", children: "User ID:" }), (0, jsx_runtime_1.jsx)("p", { className: "font-monospace small mb-0", children: result.remoteUser.userId })] })] }) }), (0, jsx_runtime_1.jsxs)("div", { className: "d-flex gap-2 justify-content-center", children: [(0, jsx_runtime_1.jsxs)("button", { className: "btn btn-primary", onClick: handleSaveContact, children: [(0, jsx_runtime_1.jsx)("i", { className: "bi-check-lg me-2" }), "Trust & View Contact"] }), (0, jsx_runtime_1.jsx)("button", { className: "btn btn-outline-secondary", onClick: handleReset, children: "Connect Another" })] })] })), status === "error" && ((0, jsx_runtime_1.jsxs)("div", { className: "text-center", children: [(0, jsx_runtime_1.jsx)("div", { className: "mb-4", children: (0, jsx_runtime_1.jsx)("i", { className: "bi-x-circle-fill text-danger display-3" }) }), (0, jsx_runtime_1.jsx)("h5", { className: "mb-4", children: "Connection Failed" }), (0, jsx_runtime_1.jsx)("div", { className: "alert alert-danger", style: { maxWidth: "400px", margin: "0 auto 1rem" }, children: error }), (0, jsx_runtime_1.jsx)("button", { className: "btn btn-primary", onClick: handleReset, children: "Try Again" })] }))] }));
301
200
  }
302
201
  (0, ui_loader_1.registerInternalPeersUI)({
303
- peersUIId: '000user00connect0screen01',
202
+ peersUIId: "000user00connect0screen01",
304
203
  component: UserConnect,
305
204
  routes: [
306
205
  {
307
- isMatch: (props, context) => context.path === 'contacts/connect',
308
- uiCategory: 'screen',
309
- priority: 3
310
- }
311
- ]
206
+ isMatch: (_props, context) => context.path === "contacts/connect",
207
+ uiCategory: "screen",
208
+ priority: 3,
209
+ },
210
+ ],
312
211
  });
@@ -1,2 +1 @@
1
- import React from 'react';
2
- export declare function DataExplorerList(): React.JSX.Element;
1
+ export declare function DataExplorerList(): import("react/jsx-runtime").JSX.Element;