@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,6 +1,5 @@
1
- import { fromJSONString, toJSON, IConsoleLog } from "@peers-app/peers-sdk";
2
- import moment from 'moment';
3
- import React from 'react';
1
+ import { fromJSONString, type IConsoleLog, toJSON } from "@peers-app/peers-sdk";
2
+ import moment from "moment";
4
3
 
5
4
  interface Column {
6
5
  key: string;
@@ -15,61 +14,75 @@ interface LogDisplayProps {
15
14
 
16
15
  const getLevelColor = (level: string) => {
17
16
  switch (level) {
18
- case 'error': return '#dc3545'; // Red - matches console error
19
- case 'warn': return '#ffc107'; // Yellow - matches console warn
20
- case 'info': return '#0dcaf0'; // Cyan - matches console info
21
- case 'log': return '#6c757d'; // Gray - default log color
22
- case 'debug': return '#6c757d'; // Gray - debug color
23
- default: return '#6c757d';
17
+ case "error":
18
+ return "#dc3545"; // Red - matches console error
19
+ case "warn":
20
+ return "#ffc107"; // Yellow - matches console warn
21
+ case "info":
22
+ return "#0dcaf0"; // Cyan - matches console info
23
+ case "log":
24
+ return "#6c757d"; // Gray - default log color
25
+ case "debug":
26
+ return "#6c757d"; // Gray - debug color
27
+ default:
28
+ return "#6c757d";
24
29
  }
25
30
  };
26
31
 
27
32
  const getProcessColor = (process: string) => {
28
33
  switch (process) {
29
- case 'ui':
30
- case 'renderer': return '#0dcaf0'; // Cyan - matches console logger
31
- case 'electron':
32
- case 'main': return '#d946ef'; // Magenta - matches console logger
33
- default: return '#6c757d'; // Gray for unknown
34
+ case "ui":
35
+ case "renderer":
36
+ return "#0dcaf0"; // Cyan - matches console logger
37
+ case "electron":
38
+ case "main":
39
+ return "#d946ef"; // Magenta - matches console logger
40
+ default:
41
+ return "#6c757d"; // Gray for unknown
34
42
  }
35
43
  };
36
44
 
37
45
  const getLevelIcon = (level: string) => {
38
46
  switch (level) {
39
- case 'error': return 'bi-x-circle-fill';
40
- case 'warn': return 'bi-exclamation-triangle-fill';
41
- case 'info': return 'bi-info-circle-fill';
42
- case 'debug': return 'bi-bug-fill';
43
- default: return 'bi-chat-square-text';
47
+ case "error":
48
+ return "bi-x-circle-fill";
49
+ case "warn":
50
+ return "bi-exclamation-triangle-fill";
51
+ case "info":
52
+ return "bi-info-circle-fill";
53
+ case "debug":
54
+ return "bi-bug-fill";
55
+ default:
56
+ return "bi-chat-square-text";
44
57
  }
45
58
  };
46
59
 
47
60
  export const LogDisplay = ({ log, columns }: LogDisplayProps) => {
48
61
  const getColumnWidth = (key: string) => {
49
- const column = columns.find(c => c.key === key);
50
- return column ? `${column.width}px` : 'auto';
62
+ const column = columns.find((c) => c.key === key);
63
+ return column ? `${column.width}px` : "auto";
51
64
  };
52
- if (typeof log.context === 'string') {
65
+ if (typeof log.context === "string") {
53
66
  try {
54
67
  log.context = fromJSONString(log.context);
55
- } catch (err) {}
68
+ } catch (_err) {}
56
69
  }
57
70
 
58
71
  return (
59
72
  <tr>
60
- <td className="text-nowrap" style={{ fontSize: '0.75rem', width: getColumnWidth('timestamp'), padding: '0.5rem' }}>
61
- {moment(log.timestamp).format('MM/DD HH:mm:ss.SSS')}
73
+ <td
74
+ className="text-nowrap"
75
+ style={{ fontSize: "0.75rem", width: getColumnWidth("timestamp"), padding: "0.5rem" }}
76
+ >
77
+ {moment(log.timestamp).format("MM/DD HH:mm:ss.SSS")}
62
78
  </td>
63
- <td style={{ width: getColumnWidth('level'), padding: '0.5rem' }}>
64
- <span
65
- className="badge text-white"
66
- style={{ backgroundColor: getLevelColor(log.level) }}
67
- >
79
+ <td style={{ width: getColumnWidth("level"), padding: "0.5rem" }}>
80
+ <span className="badge text-white" style={{ backgroundColor: getLevelColor(log.level) }}>
68
81
  <i className={`${getLevelIcon(log.level)} me-1`}></i>
69
82
  {log.level}
70
83
  </span>
71
84
  </td>
72
- <td style={{ width: getColumnWidth('process'), padding: '0.5rem' }}>
85
+ <td style={{ width: getColumnWidth("process"), padding: "0.5rem" }}>
73
86
  <span
74
87
  className="badge text-white"
75
88
  style={{ backgroundColor: getProcessColor(log.process) }}
@@ -77,29 +90,43 @@ export const LogDisplay = ({ log, columns }: LogDisplayProps) => {
77
90
  {log.process}
78
91
  </span>
79
92
  </td>
80
- <td className="text-truncate" style={{ width: getColumnWidth('source'), padding: '0.5rem', maxWidth: getColumnWidth('source') }} title={log.source || ''}>
81
- {log.source || '-'}
93
+ <td
94
+ className="text-truncate"
95
+ style={{
96
+ width: getColumnWidth("source"),
97
+ padding: "0.5rem",
98
+ maxWidth: getColumnWidth("source"),
99
+ }}
100
+ title={log.source || ""}
101
+ >
102
+ {log.source || "-"}
82
103
  </td>
83
- <td style={{ width: getColumnWidth('message'), wordBreak: 'break-word', padding: '0.5rem' }}>
104
+ <td style={{ width: getColumnWidth("message"), wordBreak: "break-word", padding: "0.5rem" }}>
84
105
  {log.message}
85
106
  {log.context && (
86
107
  <details className="mt-1">
87
- <summary className="text-muted small" style={{ cursor: 'pointer' }}>
108
+ <summary className="text-muted small" style={{ cursor: "pointer" }}>
88
109
  <i className="bi bi-code-square me-1"></i>
89
110
  Context
90
111
  </summary>
91
- <pre className="small mt-1 p-2 bg-secondary bg-opacity-10 rounded" style={{ fontSize: '0.7rem' }}>
112
+ <pre
113
+ className="small mt-1 p-2 bg-secondary bg-opacity-10 rounded"
114
+ style={{ fontSize: "0.7rem" }}
115
+ >
92
116
  {JSON.stringify(toJSON(log.context), null, 2)}
93
117
  </pre>
94
118
  </details>
95
119
  )}
96
120
  {log.stackTrace && (
97
121
  <details className="mt-1">
98
- <summary className="text-danger small" style={{ cursor: 'pointer' }}>
122
+ <summary className="text-danger small" style={{ cursor: "pointer" }}>
99
123
  <i className="bi bi-bug me-1"></i>
100
124
  Stack Trace
101
125
  </summary>
102
- <pre className="small mt-1 p-2 bg-danger bg-opacity-10 rounded text-danger" style={{ fontSize: '0.7rem' }}>
126
+ <pre
127
+ className="small mt-1 p-2 bg-danger bg-opacity-10 rounded text-danger"
128
+ style={{ fontSize: "0.7rem" }}
129
+ >
103
130
  {log.stackTrace}
104
131
  </pre>
105
132
  </details>
@@ -1,5 +1,3 @@
1
- import React from 'react';
2
-
3
1
  interface LogFiltersProps {
4
2
  levelFilter: string;
5
3
  setLevelFilter: (value: string) => void;
@@ -18,7 +16,10 @@ export const LogFilters = ({
18
16
  setSearchText,
19
17
  }: LogFiltersProps) => {
20
18
  return (
21
- <div className="mb-3" style={{ position: 'sticky', top: 0, zIndex: 10, backgroundColor: 'inherit' }}>
19
+ <div
20
+ className="mb-3"
21
+ style={{ position: "sticky", top: 0, zIndex: 10, backgroundColor: "inherit" }}
22
+ >
22
23
  <div className="row g-2">
23
24
  <div className="col-md-3">
24
25
  <label className="form-label small">Level</label>
@@ -1,6 +1,5 @@
1
- import { fromJSONString, IConsoleLog } from "@peers-app/peers-sdk";
2
- import moment from 'moment';
3
- import React from 'react';
1
+ import { fromJSONString, type IConsoleLog } from "@peers-app/peers-sdk";
2
+ import moment from "moment";
4
3
 
5
4
  interface MobileLogCardProps {
6
5
  log: IConsoleLog;
@@ -9,66 +8,81 @@ interface MobileLogCardProps {
9
8
 
10
9
  const getLevelColor = (level: string) => {
11
10
  switch (level) {
12
- case 'error': return '#dc3545';
13
- case 'warn': return '#ffc107';
14
- case 'info': return '#0dcaf0';
15
- case 'log': return '#6c757d';
16
- case 'debug': return '#6c757d';
17
- default: return '#6c757d';
11
+ case "error":
12
+ return "#dc3545";
13
+ case "warn":
14
+ return "#ffc107";
15
+ case "info":
16
+ return "#0dcaf0";
17
+ case "log":
18
+ return "#6c757d";
19
+ case "debug":
20
+ return "#6c757d";
21
+ default:
22
+ return "#6c757d";
18
23
  }
19
24
  };
20
25
 
21
26
  const getProcessColor = (process: string) => {
22
27
  switch (process) {
23
- case 'ui':
24
- case 'renderer': return '#0dcaf0';
25
- case 'electron':
26
- case 'main': return '#d946ef';
27
- case 'react-native': return '#61dafb';
28
- default: return '#6c757d';
28
+ case "ui":
29
+ case "renderer":
30
+ return "#0dcaf0";
31
+ case "electron":
32
+ case "main":
33
+ return "#d946ef";
34
+ case "react-native":
35
+ return "#61dafb";
36
+ default:
37
+ return "#6c757d";
29
38
  }
30
39
  };
31
40
 
32
41
  const getLevelIcon = (level: string) => {
33
42
  switch (level) {
34
- case 'error': return 'bi-x-circle-fill';
35
- case 'warn': return 'bi-exclamation-triangle-fill';
36
- case 'info': return 'bi-info-circle-fill';
37
- case 'debug': return 'bi-bug-fill';
38
- default: return 'bi-chat-square-text';
43
+ case "error":
44
+ return "bi-x-circle-fill";
45
+ case "warn":
46
+ return "bi-exclamation-triangle-fill";
47
+ case "info":
48
+ return "bi-info-circle-fill";
49
+ case "debug":
50
+ return "bi-bug-fill";
51
+ default:
52
+ return "bi-chat-square-text";
39
53
  }
40
54
  };
41
55
 
42
56
  export const MobileLogCard = ({ log, colorMode }: MobileLogCardProps) => {
43
- const isDark = colorMode === 'dark';
44
-
57
+ const isDark = colorMode === "dark";
58
+
45
59
  // Parse context if it's a string
46
60
  let context = log.context;
47
- if (typeof context === 'string') {
61
+ if (typeof context === "string") {
48
62
  try {
49
63
  context = fromJSONString(context);
50
- } catch (err) {}
64
+ } catch (_err) {}
51
65
  }
52
66
 
53
67
  return (
54
68
  <div
55
69
  style={{
56
- padding: '10px 12px',
57
- borderBottom: `1px solid ${isDark ? '#333' : '#e9ecef'}`,
58
- backgroundColor: isDark ? '#1a1a1a' : '#fff',
70
+ padding: "10px 12px",
71
+ borderBottom: `1px solid ${isDark ? "#333" : "#e9ecef"}`,
72
+ backgroundColor: isDark ? "#1a1a1a" : "#fff",
59
73
  }}
60
74
  >
61
75
  {/* Header row: timestamp, level, process */}
62
- <div className="d-flex align-items-center gap-2 mb-1" style={{ flexWrap: 'wrap' }}>
63
- <span style={{ fontSize: '0.7rem', color: isDark ? '#888' : '#666' }}>
64
- {moment(log.timestamp).format('HH:mm:ss.SSS')}
76
+ <div className="d-flex align-items-center gap-2 mb-1" style={{ flexWrap: "wrap" }}>
77
+ <span style={{ fontSize: "0.7rem", color: isDark ? "#888" : "#666" }}>
78
+ {moment(log.timestamp).format("HH:mm:ss.SSS")}
65
79
  </span>
66
80
  <span
67
81
  className="badge text-white"
68
- style={{
82
+ style={{
69
83
  backgroundColor: getLevelColor(log.level),
70
- fontSize: '0.65rem',
71
- padding: '2px 6px'
84
+ fontSize: "0.65rem",
85
+ padding: "2px 6px",
72
86
  }}
73
87
  >
74
88
  <i className={`${getLevelIcon(log.level)} me-1`}></i>
@@ -76,72 +90,66 @@ export const MobileLogCard = ({ log, colorMode }: MobileLogCardProps) => {
76
90
  </span>
77
91
  <span
78
92
  className="badge text-white"
79
- style={{
93
+ style={{
80
94
  backgroundColor: getProcessColor(log.process),
81
- fontSize: '0.65rem',
82
- padding: '2px 6px'
95
+ fontSize: "0.65rem",
96
+ padding: "2px 6px",
83
97
  }}
84
98
  >
85
99
  {log.process}
86
100
  </span>
87
101
  {log.source && (
88
- <span style={{ fontSize: '0.65rem', color: isDark ? '#666' : '#999' }}>
89
- {log.source}
90
- </span>
102
+ <span style={{ fontSize: "0.65rem", color: isDark ? "#666" : "#999" }}>{log.source}</span>
91
103
  )}
92
104
  </div>
93
-
105
+
94
106
  {/* Message */}
95
- <div style={{
96
- fontSize: '0.8rem',
97
- wordBreak: 'break-word',
98
- color: isDark ? '#e0e0e0' : '#333'
99
- }}>
107
+ <div
108
+ style={{
109
+ fontSize: "0.8rem",
110
+ wordBreak: "break-word",
111
+ color: isDark ? "#e0e0e0" : "#333",
112
+ }}
113
+ >
100
114
  {log.message}
101
115
  </div>
102
-
116
+
103
117
  {/* Context (collapsible) */}
104
118
  {context && (
105
119
  <details className="mt-1">
106
- <summary
107
- className="text-muted"
108
- style={{ cursor: 'pointer', fontSize: '0.7rem' }}
109
- >
120
+ <summary className="text-muted" style={{ cursor: "pointer", fontSize: "0.7rem" }}>
110
121
  <i className="bi bi-code-square me-1"></i>
111
122
  Context
112
123
  </summary>
113
- <pre
114
- className="mt-1 p-2 rounded"
115
- style={{
116
- fontSize: '0.65rem',
117
- backgroundColor: isDark ? '#252525' : '#f8f9fa',
118
- color: isDark ? '#aaa' : '#333',
119
- overflow: 'auto',
120
- maxHeight: '150px'
124
+ <pre
125
+ className="mt-1 p-2 rounded"
126
+ style={{
127
+ fontSize: "0.65rem",
128
+ backgroundColor: isDark ? "#252525" : "#f8f9fa",
129
+ color: isDark ? "#aaa" : "#333",
130
+ overflow: "auto",
131
+ maxHeight: "150px",
121
132
  }}
122
133
  >
123
134
  {JSON.stringify(context, null, 2)}
124
135
  </pre>
125
136
  </details>
126
137
  )}
127
-
138
+
128
139
  {/* Stack trace (collapsible) */}
129
140
  {log.stackTrace && (
130
141
  <details className="mt-1">
131
- <summary
132
- className="text-danger"
133
- style={{ cursor: 'pointer', fontSize: '0.7rem' }}
134
- >
142
+ <summary className="text-danger" style={{ cursor: "pointer", fontSize: "0.7rem" }}>
135
143
  <i className="bi bi-bug me-1"></i>
136
144
  Stack Trace
137
145
  </summary>
138
- <pre
139
- className="mt-1 p-2 rounded text-danger"
140
- style={{
141
- fontSize: '0.6rem',
142
- backgroundColor: isDark ? '#2a1a1a' : '#fff0f0',
143
- overflow: 'auto',
144
- maxHeight: '150px'
146
+ <pre
147
+ className="mt-1 p-2 rounded text-danger"
148
+ style={{
149
+ fontSize: "0.6rem",
150
+ backgroundColor: isDark ? "#2a1a1a" : "#fff0f0",
151
+ overflow: "auto",
152
+ maxHeight: "150px",
145
153
  }}
146
154
  >
147
155
  {log.stackTrace}
@@ -151,4 +159,3 @@ export const MobileLogCard = ({ log, colorMode }: MobileLogCardProps) => {
151
159
  </div>
152
160
  );
153
161
  };
154
-
@@ -1,4 +1,5 @@
1
- import React, { useState, useRef, useEffect } from 'react';
1
+ import type React from "react";
2
+ import { useEffect, useRef, useState } from "react";
2
3
 
3
4
  interface Column {
4
5
  key: string;
@@ -13,7 +14,11 @@ interface ResizableTableHeaderProps {
13
14
  colorMode: string;
14
15
  }
15
16
 
16
- export const ResizableTableHeader = ({ columns, onColumnsChange, colorMode }: ResizableTableHeaderProps) => {
17
+ export const ResizableTableHeader = ({
18
+ columns,
19
+ onColumnsChange,
20
+ colorMode,
21
+ }: ResizableTableHeaderProps) => {
17
22
  const [resizingColumn, setResizingColumn] = useState<string | null>(null);
18
23
  const startXRef = useRef<number>(0);
19
24
  const startWidthRef = useRef<number>(0);
@@ -32,8 +37,8 @@ export const ResizableTableHeader = ({ columns, onColumnsChange, colorMode }: Re
32
37
  const diff = e.clientX - startXRef.current;
33
38
  const newWidth = Math.max(startWidthRef.current + diff, 50); // Min width 50px
34
39
 
35
- const updatedColumns = columns.map(col =>
36
- col.key === resizingColumn ? { ...col, width: newWidth } : col
40
+ const updatedColumns = columns.map((col) =>
41
+ col.key === resizingColumn ? { ...col, width: newWidth } : col,
37
42
  );
38
43
  onColumnsChange(updatedColumns);
39
44
  };
@@ -43,52 +48,55 @@ export const ResizableTableHeader = ({ columns, onColumnsChange, colorMode }: Re
43
48
  };
44
49
 
45
50
  if (resizingColumn) {
46
- document.addEventListener('mousemove', handleMouseMove);
47
- document.addEventListener('mouseup', handleMouseUp);
51
+ document.addEventListener("mousemove", handleMouseMove);
52
+ document.addEventListener("mouseup", handleMouseUp);
48
53
 
49
54
  return () => {
50
- document.removeEventListener('mousemove', handleMouseMove);
51
- document.removeEventListener('mouseup', handleMouseUp);
55
+ document.removeEventListener("mousemove", handleMouseMove);
56
+ document.removeEventListener("mouseup", handleMouseUp);
52
57
  };
53
58
  }
54
59
  }, [resizingColumn, columns, onColumnsChange]);
55
60
 
56
61
  return (
57
- <table className="table table-sm mb-0" style={{ fontSize: '0.85rem', tableLayout: 'fixed', width: '100%' }}>
58
- <thead style={{ backgroundColor: colorMode === 'dark' ? '#2a2a2a' : '#ffffff' }}>
62
+ <table
63
+ className="table table-sm mb-0"
64
+ style={{ fontSize: "0.85rem", tableLayout: "fixed", width: "100%" }}
65
+ >
66
+ <thead style={{ backgroundColor: colorMode === "dark" ? "#2a2a2a" : "#ffffff" }}>
59
67
  <tr>
60
68
  {columns.map((column) => (
61
69
  <th
62
70
  key={column.key}
63
71
  style={{
64
72
  width: `${column.width}px`,
65
- position: 'relative',
66
- padding: '0.5rem',
67
- borderRight: '1px solid #dee2e6',
73
+ position: "relative",
74
+ padding: "0.5rem",
75
+ borderRight: "1px solid #dee2e6",
68
76
  }}
69
77
  >
70
78
  {column.label}
71
- {column.key !== 'message' && (
79
+ {column.key !== "message" && (
72
80
  <div
73
81
  onMouseDown={(e) => handleMouseDown(e, column.key, column.width)}
74
82
  style={{
75
- position: 'absolute',
83
+ position: "absolute",
76
84
  right: 0,
77
85
  top: 0,
78
86
  bottom: 0,
79
- width: '5px',
80
- cursor: 'col-resize',
81
- userSelect: 'none',
82
- backgroundColor: resizingColumn === column.key ? '#0d6efd' : 'transparent',
87
+ width: "5px",
88
+ cursor: "col-resize",
89
+ userSelect: "none",
90
+ backgroundColor: resizingColumn === column.key ? "#0d6efd" : "transparent",
83
91
  }}
84
92
  onMouseEnter={(e) => {
85
93
  if (!resizingColumn) {
86
- e.currentTarget.style.backgroundColor = '#dee2e6';
94
+ e.currentTarget.style.backgroundColor = "#dee2e6";
87
95
  }
88
96
  }}
89
97
  onMouseLeave={(e) => {
90
98
  if (!resizingColumn) {
91
- e.currentTarget.style.backgroundColor = 'transparent';
99
+ e.currentTarget.style.backgroundColor = "transparent";
92
100
  }
93
101
  }}
94
102
  />
@@ -1,10 +1,9 @@
1
- import { getUserContext, IDoc, IUser, Users } from "@peers-app/peers-sdk";
2
- import React from "react";
1
+ import { getUserContext, type IDoc, type IUser, Users } from "@peers-app/peers-sdk";
3
2
  import { Input } from "../../components/input";
4
3
  import { LoadingIndicator } from "../../components/loading-indicator";
5
4
  import { SaveButton } from "../../components/save-button";
6
- import { TrustLevelDropdown } from "../../components/trust-level-dropdown";
7
5
  import { ScreenTabBody, Tabs } from "../../components/tabs";
6
+ import { TrustLevelDropdown } from "../../components/trust-level-dropdown";
8
7
  import { usePromise } from "../../hooks";
9
8
  import { updateActiveTabTitle } from "../../tabs-layout/tabs-state";
10
9
  import { registerInternalPeersUI } from "../../ui-router/ui-loader";
@@ -14,16 +13,19 @@ interface IProps {
14
13
  }
15
14
 
16
15
  export const ContactDetails = (props: IProps) => {
17
-
18
- const contact = usePromise(async () => {
19
- const userContext = await getUserContext();
20
- const contact = await Users(userContext.userDataContext).get(props.userId);
21
- if (!contact) {
22
- throw new Error('Contact not found');
23
- }
24
- updateActiveTabTitle(contact.name || "Contact");
25
- return Users(userContext.userDataContext).initDoc(contact);
26
- }, undefined, [props.userId]);
16
+ const contact = usePromise(
17
+ async () => {
18
+ const userContext = await getUserContext();
19
+ const contact = await Users(userContext.userDataContext).get(props.userId);
20
+ if (!contact) {
21
+ throw new Error("Contact not found");
22
+ }
23
+ updateActiveTabTitle(contact.name || "Contact");
24
+ return Users(userContext.userDataContext).initDoc(contact);
25
+ },
26
+ undefined,
27
+ [props.userId],
28
+ );
27
29
 
28
30
  if (!contact) {
29
31
  return <LoadingIndicator />;
@@ -31,7 +33,6 @@ export const ContactDetails = (props: IProps) => {
31
33
 
32
34
  return (
33
35
  <div className="container-fluid p-3">
34
-
35
36
  <div className="d-flex">
36
37
  <div>
37
38
  <h4>
@@ -42,17 +43,14 @@ export const ContactDetails = (props: IProps) => {
42
43
  <h4>
43
44
  <Input
44
45
  key={contact.userId}
45
- className='border border-0'
46
- style={{ width: '100%', outline: 'none', backgroundColor: 'transparent' }}
46
+ className="border border-0"
47
+ style={{ width: "100%", outline: "none", backgroundColor: "transparent" }}
47
48
  value={contact.qs.name}
48
49
  />
49
50
  </h4>
50
51
  </div>
51
52
  <div>
52
- <SaveButton
53
- key={contact.userId}
54
- doc={contact}
55
- />
53
+ <SaveButton key={contact.userId} doc={contact} />
56
54
  </div>
57
55
  </div>
58
56
 
@@ -60,16 +58,18 @@ export const ContactDetails = (props: IProps) => {
60
58
  key={contact.userId}
61
59
  tabs={[
62
60
  {
63
- name: 'Info', content:
61
+ name: "Info",
62
+ content: (
64
63
  <ScreenTabBody>
65
64
  <ContactInfo contact={contact} />
66
65
  </ScreenTabBody>
66
+ ),
67
67
  },
68
68
  ]}
69
69
  />
70
70
  </div>
71
- )
72
- }
71
+ );
72
+ };
73
73
 
74
74
  const ContactInfo = (props: { contact: IDoc<IUser> }) => {
75
75
  const { contact } = props;
@@ -117,13 +117,12 @@ const ContactInfo = (props: { contact: IDoc<IUser> }) => {
117
117
  title="Public box key"
118
118
  />
119
119
  </div>
120
-
121
120
  </div>
122
121
  );
123
122
  };
124
123
 
125
124
  registerInternalPeersUI({
126
- peersUIId: '00contact00details00component',
125
+ peersUIId: "00contact00details00component",
127
126
  component: ContactDetails,
128
127
  routes: [
129
128
  {
@@ -135,8 +134,8 @@ registerInternalPeersUI({
135
134
  }
136
135
  return false;
137
136
  },
138
- uiCategory: 'screen',
139
- priority: 2
140
- }
141
- ]
142
- });
137
+ uiCategory: "screen",
138
+ priority: 2,
139
+ },
140
+ ],
141
+ });