@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,36 +1,76 @@
1
- import { ICursorIterable, IPackage, observable, Packages, PackageVersions, packagesRootDir, rpcServerCalls, doesTagMatch } from "@peers-app/peers-sdk";
2
- import React, { useEffect, useState } from 'react';
1
+ import {
2
+ doesTagMatch,
3
+ type ICursorIterable,
4
+ type IPackage,
5
+ observable,
6
+ Packages,
7
+ PackageVersions,
8
+ packagesRootDir,
9
+ rpcServerCalls,
10
+ } from "@peers-app/peers-sdk";
11
+ import type React from "react";
12
+ import { useCallback, useEffect, useState } from "react";
3
13
  import { Input } from "../../components/input";
4
14
  import { LazyList } from "../../components/lazy-list";
5
- import { LoadingIndicator } from '../../components/loading-indicator';
6
- import { Tooltip } from '../../components/tooltip';
7
- import { isDesktop, mainContentPath } from '../../globals';
15
+ import { LoadingIndicator } from "../../components/loading-indicator";
16
+ import { Tooltip } from "../../components/tooltip";
17
+ import { isDesktop, mainContentPath } from "../../globals";
8
18
  import { useObservable, useObservableState, usePromise } from "../../hooks";
9
19
  import { registerInternalPeersUI } from "../../ui-router/ui-loader";
10
20
 
11
- const PackageVersionBadge = ({ activePackageVersionId, packageId, followVersionTags }: { activePackageVersionId?: string, packageId: string, followVersionTags?: string }) => {
12
- const data = usePromise(async () => {
13
- if (!activePackageVersionId) return null;
14
- const all = await PackageVersions().list({ packageId });
15
- const active = all.find(v => v.packageVersionId === activePackageVersionId);
16
- if (!active) return null;
17
-
18
- let newerLevel: 'major' | 'minor' | 'patch' | null = null;
19
- if (active.version) {
20
- const parse = (v: string) => v.split('.').map(Number);
21
- const [aMaj, aMin, aPat] = parse(active.version);
22
- for (const v of all) {
23
- if (!v.version || v.packageVersionId === activePackageVersionId) continue;
24
- if (!doesTagMatch(active.versionTag, v.versionTag, followVersionTags, undefined)) continue;
25
- const [maj, min, pat] = parse(v.version);
26
- if (maj > aMaj) { newerLevel = 'major'; break; }
27
- if (maj === aMaj && min > aMin) { newerLevel = 'minor'; continue; }
28
- if (maj === aMaj && min === aMin && pat > aPat && !newerLevel) { newerLevel = 'patch'; continue; }
29
- if (maj === aMaj && min === aMin && pat === aPat && (v.createdAt || '') > (active.createdAt || '') && !newerLevel) { newerLevel = 'patch'; }
21
+ const PackageVersionBadge = ({
22
+ activePackageVersionId,
23
+ packageId,
24
+ followVersionTags,
25
+ }: {
26
+ activePackageVersionId?: string;
27
+ packageId: string;
28
+ followVersionTags?: string;
29
+ }) => {
30
+ const data = usePromise(
31
+ async () => {
32
+ if (!activePackageVersionId) return null;
33
+ const all = await PackageVersions().list({ packageId });
34
+ const active = all.find((v) => v.packageVersionId === activePackageVersionId);
35
+ if (!active) return null;
36
+
37
+ let newerLevel: "major" | "minor" | "patch" | null = null;
38
+ if (active.version) {
39
+ const parse = (v: string) => v.split(".").map(Number);
40
+ const [aMaj, aMin, aPat] = parse(active.version);
41
+ for (const v of all) {
42
+ if (!v.version || v.packageVersionId === activePackageVersionId) continue;
43
+ if (!doesTagMatch(active.versionTag, v.versionTag, followVersionTags, undefined))
44
+ continue;
45
+ const [maj, min, pat] = parse(v.version);
46
+ if (maj > aMaj) {
47
+ newerLevel = "major";
48
+ break;
49
+ }
50
+ if (maj === aMaj && min > aMin) {
51
+ newerLevel = "minor";
52
+ continue;
53
+ }
54
+ if (maj === aMaj && min === aMin && pat > aPat && !newerLevel) {
55
+ newerLevel = "patch";
56
+ continue;
57
+ }
58
+ if (
59
+ maj === aMaj &&
60
+ min === aMin &&
61
+ pat === aPat &&
62
+ (v.createdAt || "") > (active.createdAt || "") &&
63
+ !newerLevel
64
+ ) {
65
+ newerLevel = "patch";
66
+ }
67
+ }
30
68
  }
31
- }
32
- return { pv: active, newerLevel };
33
- }, undefined, [activePackageVersionId, packageId, followVersionTags]);
69
+ return { pv: active, newerLevel };
70
+ },
71
+ undefined,
72
+ [activePackageVersionId, packageId, followVersionTags],
73
+ );
34
74
 
35
75
  if (!data) return null;
36
76
  const { pv, newerLevel } = data;
@@ -39,53 +79,60 @@ const PackageVersionBadge = ({ activePackageVersionId, packageId, followVersionT
39
79
  <span className="ms-2">
40
80
  <small className="text-muted">v{pv.version}</small>
41
81
  {pv.versionTag && (
42
- <span className={`badge ms-1 ${pv.versionTag.startsWith('beta') ? 'text-bg-warning' : 'text-bg-info'}`}
43
- style={{ fontSize: '0.65em' }}
82
+ <span
83
+ className={`badge ms-1 ${pv.versionTag.startsWith("beta") ? "text-bg-warning" : "text-bg-info"}`}
84
+ style={{ fontSize: "0.65em" }}
44
85
  >
45
86
  {pv.versionTag}
46
87
  </span>
47
88
  )}
48
89
  {newerLevel ? (
49
- <span className={`badge ms-1 text-bg-${newerLevel === 'major' ? 'danger' : newerLevel === 'minor' ? 'warning' : 'info'}`}
50
- style={{ fontSize: '0.65em' }}
90
+ <span
91
+ className={`badge ms-1 text-bg-${newerLevel === "major" ? "danger" : newerLevel === "minor" ? "warning" : "info"}`}
92
+ style={{ fontSize: "0.65em" }}
51
93
  >
52
94
  {newerLevel} update
53
95
  </span>
54
96
  ) : (
55
- <span className="badge ms-1 text-bg-success" style={{ fontSize: '0.65em' }}>up to date</span>
97
+ <span className="badge ms-1 text-bg-success" style={{ fontSize: "0.65em" }}>
98
+ up to date
99
+ </span>
56
100
  )}
57
101
  </span>
58
102
  );
59
103
  };
60
104
 
61
105
  export const PackageList = () => {
62
- const [searchTextObs] = useState(() => observable(''));
106
+ const [searchTextObs] = useState(() => observable(""));
63
107
  const [searchText] = useObservable(searchTextObs);
64
108
  const addingPackage = useObservableState(false);
65
109
 
66
110
  const [cursorObs] = useState(() => observable<ICursorIterable<IPackage> | undefined>());
67
111
 
68
- async function newCursor() {
69
- const cursor = await Packages().cursor({
70
- $or: [
71
- { name: { $matchWords: searchText } },
72
- { description: { $matchWords: searchText } },
73
- { remoteRepo: { $matchWords: searchText } },
74
- ]
75
- }, { sortBy: ['-packageId'] });
112
+ const newCursor = useCallback(async () => {
113
+ const cursor = await Packages().cursor(
114
+ {
115
+ $or: [
116
+ { name: { $matchWords: searchText } },
117
+ { description: { $matchWords: searchText } },
118
+ { remoteRepo: { $matchWords: searchText } },
119
+ ],
120
+ },
121
+ { sortBy: ["-packageId"] },
122
+ );
76
123
  cursorObs(cursor);
77
124
  return cursor;
78
- }
125
+ }, [searchText, cursorObs]);
79
126
 
80
127
  useEffect(() => {
81
- newCursor();
82
- }, [searchText]);
128
+ void newCursor();
129
+ }, [newCursor]);
83
130
 
84
131
  async function loadMore(existing: IPackage[]): Promise<IPackage[]> {
85
- let moreMatches: IPackage[] = [];
86
- let cursor = cursorObs() || await newCursor();
132
+ const moreMatches: IPackage[] = [];
133
+ const cursor = cursorObs() || (await newCursor());
87
134
  for await (const nextRecord of cursor) {
88
- if (existing.find(e => e.packageId === nextRecord.packageId)) continue;
135
+ if (existing.find((e) => e.packageId === nextRecord.packageId)) continue;
89
136
  moreMatches.push(nextRecord);
90
137
  if (searchText.length && moreMatches.length > 5) break;
91
138
  if (moreMatches.length >= 50) break;
@@ -96,14 +143,13 @@ export const PackageList = () => {
96
143
  return moreMatches;
97
144
  }
98
145
 
99
-
100
146
  async function searchSubmit(evt: React.KeyboardEvent<HTMLInputElement>) {
101
147
  if (evt.key !== "Enter") return;
102
148
  const name = searchText.trim();
103
149
  if (!name) return;
104
150
 
105
151
  // check if name is a remote repo url
106
- if (name.startsWith('http') || name.endsWith('.git')) {
152
+ if (name.startsWith("http") || name.endsWith(".git")) {
107
153
  if (!confirm(`Add remote package: ${name}`)) return;
108
154
  try {
109
155
  addingPackage(true);
@@ -112,13 +158,12 @@ export const PackageList = () => {
112
158
  if (pkg) {
113
159
  mainContentPath(`packages/${packageId}`);
114
160
  }
115
- } catch (err: any) {
116
- let errMessage = err?.message || err;
161
+ } catch (err: unknown) {
162
+ let errMessage = err instanceof Error ? err.message : String(err);
117
163
  // replace all whitespace with a single space for confirm dialog
118
- errMessage = errMessage.replace(/\s+/g, ' ');
119
- confirm('Error adding remote package: ' + errMessage);
120
- }
121
- finally {
164
+ errMessage = errMessage.replace(/\s+/g, " ");
165
+ confirm(`Error adding remote package: ${errMessage}`);
166
+ } finally {
122
167
  addingPackage(false);
123
168
  }
124
169
  return;
@@ -133,8 +178,8 @@ export const PackageList = () => {
133
178
  if (pkg) {
134
179
  mainContentPath(`packages/${packageId}`);
135
180
  }
136
- } catch (err) {
137
- confirm('Error creating package: ' + err);
181
+ } catch (err: unknown) {
182
+ confirm(`Error creating package: ${err instanceof Error ? err.message : String(err)}`);
138
183
  } finally {
139
184
  addingPackage(false);
140
185
  }
@@ -143,13 +188,22 @@ export const PackageList = () => {
143
188
  if (addingPackage()) {
144
189
  return (
145
190
  <div>
146
- <div className='container-fluid d-flex justify-content-center mt-5'>
147
- <i className="bi bi-box-seam"></i>&nbsp;
148
- Adding Package
191
+ <div className="container-fluid d-flex justify-content-center mt-5">
192
+ <i className="bi bi-box-seam"></i>&nbsp; Adding Package
149
193
  </div>
150
- <div className='container-fluid d-flex justify-content-center mt-2'>
151
- <div className="progress" role="progressbar" aria-label="Animated striped example" aria-valuenow={100} aria-valuemin={0} aria-valuemax={100}>
152
- <div className="progress-bar progress-bar-striped progress-bar-animated" style={{ width: 150 }}></div>
194
+ <div className="container-fluid d-flex justify-content-center mt-2">
195
+ <div
196
+ className="progress"
197
+ role="progressbar"
198
+ aria-label="Animated striped example"
199
+ aria-valuenow={100}
200
+ aria-valuemin={0}
201
+ aria-valuemax={100}
202
+ >
203
+ <div
204
+ className="progress-bar progress-bar-striped progress-bar-animated"
205
+ style={{ width: 150 }}
206
+ ></div>
153
207
  </div>
154
208
  </div>
155
209
  </div>
@@ -157,26 +211,51 @@ export const PackageList = () => {
157
211
  }
158
212
 
159
213
  return (
160
- <div className='container-fluid'>
161
-
214
+ <div className="container-fluid">
162
215
  <div className="input-group mt-3 mb-3">
163
- <Input value={searchTextObs} className="form-control" placeholder="Search, add, or create package"
164
- autoFocus={isDesktop() ? true : false}
165
- onKeyUp={evt => searchSubmit(evt)}
216
+ <Input
217
+ value={searchTextObs}
218
+ className="form-control"
219
+ placeholder="Search, add, or create package"
220
+ autoFocus={!!isDesktop()}
221
+ onKeyUp={(evt) => searchSubmit(evt)}
166
222
  />
167
- <button className="btn btn-outline-secondary dropdown-toggle sm" type="button" data-bs-toggle="dropdown" aria-expanded="false">
223
+ <button
224
+ className="btn btn-outline-secondary dropdown-toggle sm"
225
+ type="button"
226
+ data-bs-toggle="dropdown"
227
+ aria-expanded="false"
228
+ >
168
229
  <i className="bi bi-plus-lg"></i>
169
230
  </button>
170
231
  <ul className="dropdown-menu dropdown-menu-end">
171
- <li><a className="dropdown-item" href="#packages/newlocal">New Local Package</a></li>
172
- <li><a className="dropdown-item disabled" href="#">Add Local Package</a></li>
173
- <li><a className="dropdown-item disabled" href="#">Add Remote Package</a></li>
174
- <li><hr className="dropdown-divider" /></li>
175
- <li><a className="dropdown-item"
176
- onClick={() => rpcServerCalls.openPath(packagesRootDir)}
177
- style={{ cursor: 'pointer' }}
178
- >Open Packages Directory</a></li>
179
-
232
+ <li>
233
+ <a className="dropdown-item" href="#packages/newlocal">
234
+ New Local Package
235
+ </a>
236
+ </li>
237
+ <li>
238
+ <a className="dropdown-item disabled" href="#">
239
+ Add Local Package
240
+ </a>
241
+ </li>
242
+ <li>
243
+ <a className="dropdown-item disabled" href="#">
244
+ Add Remote Package
245
+ </a>
246
+ </li>
247
+ <li>
248
+ <hr className="dropdown-divider" />
249
+ </li>
250
+ <li>
251
+ <a
252
+ className="dropdown-item"
253
+ onClick={() => rpcServerCalls.openPath(packagesRootDir)}
254
+ style={{ cursor: "pointer" }}
255
+ >
256
+ Open Packages Directory
257
+ </a>
258
+ </li>
180
259
  </ul>
181
260
  </div>
182
261
 
@@ -186,25 +265,23 @@ export const PackageList = () => {
186
265
  loadMore={loadMore}
187
266
  scrollThreshold={0.6}
188
267
  renderItems={(packages) => {
189
- return packages.map(pkg => {
268
+ return packages.map((pkg) => {
190
269
  return (
191
- <div
192
- key={pkg.packageId}
193
- className='container-fluid pb-4'
194
- >
270
+ <div key={pkg.packageId} className="container-fluid pb-4">
195
271
  <i className="bi bi-box-fill"></i>&nbsp;&nbsp;
196
- <a href={`#packages/${pkg.packageId}`}>
197
- {pkg.name}
198
- </a>
199
- <PackageVersionBadge activePackageVersionId={pkg.activePackageVersionId} packageId={pkg.packageId} followVersionTags={pkg.followVersionTags} />
272
+ <a href={`#packages/${pkg.packageId}`}>{pkg.name}</a>
273
+ <PackageVersionBadge
274
+ activePackageVersionId={pkg.activePackageVersionId}
275
+ packageId={pkg.packageId}
276
+ followVersionTags={pkg.followVersionTags}
277
+ />
200
278
  <Tooltip
201
279
  markdownContent={pkg.description}
202
- positions={['bottom', 'top', 'right', 'left']}
280
+ positions={["bottom", "top", "right", "left"]}
203
281
  />
204
-
205
282
  </div>
206
- )
207
- })
283
+ );
284
+ });
208
285
  }}
209
286
  loadingIndicator={
210
287
  <div className="d-flex justify-content-center" style={{ height: 200 }}>
@@ -223,13 +300,13 @@ export const PackageList = () => {
223
300
  };
224
301
 
225
302
  registerInternalPeersUI({
226
- peersUIId: '00m5fre6r5m2p2wd1m4x6nx0b',
303
+ peersUIId: "00m5fre6r5m2p2wd1m4x6nx0b",
227
304
  component: PackageList,
228
305
  routes: [
229
306
  {
230
- isMatch: (props, context) => context.path == 'packages',
231
- uiCategory: 'screen',
232
- priority: 1
233
- }
234
- ]
235
- })
307
+ isMatch: (_props, context) => context.path === "packages",
308
+ uiCategory: "screen",
309
+ priority: 1,
310
+ },
311
+ ],
312
+ });
@@ -1,25 +1,29 @@
1
- import React, { useState } from 'react';
2
- import { mainContentPath } from '../../globals';
3
- import { rpcServerCalls, Packages, packagesRootDir, camelCaseToHyphens } from "@peers-app/peers-sdk";
1
+ import {
2
+ camelCaseToHyphens,
3
+ Packages,
4
+ packagesRootDir,
5
+ rpcServerCalls,
6
+ } from "@peers-app/peers-sdk";
7
+ import React, { useState } from "react";
8
+ import { mainContentPath } from "../../globals";
4
9
 
5
10
  export const PackageNewLocal = () => {
6
-
7
11
  const defaultName = "New Package";
8
- const [packageName, setPackageName] = useState('');
12
+ const [packageName, setPackageName] = useState("");
9
13
 
10
- const [packageLocation, setPackageLocation] = useState('');
14
+ const [packageLocation, setPackageLocation] = useState("");
11
15
 
12
16
  let packageFolderName = packageName || defaultName;
13
- packageFolderName = packageFolderName.replace(/[^a-zA-Z0-9]/g, ' ');
14
- packageFolderName = packageFolderName.replace(/\s+/g, ' ').trim();
17
+ packageFolderName = packageFolderName.replace(/[^a-zA-Z0-9]/g, " ");
18
+ packageFolderName = packageFolderName.replace(/\s+/g, " ").trim();
15
19
  packageFolderName = camelCaseToHyphens(packageFolderName);
16
20
 
17
- const packageLocationDefault = packagesRootDir + '/' + packageFolderName;
21
+ const packageLocationDefault = `${packagesRootDir}/${packageFolderName}`;
18
22
 
19
23
  const hiddenFileInput = React.useRef<HTMLInputElement>(null);
20
24
 
21
25
  const handleFolderSelect = (e: React.ChangeEvent<HTMLInputElement>) => {
22
- // @ts-ignore
26
+ // @ts-expect-error
23
27
  const path = e.target.files?.[0]?.path;
24
28
  const folderPath = path;
25
29
  if (folderPath) {
@@ -30,7 +34,7 @@ export const PackageNewLocal = () => {
30
34
  const createLocalPackage = async () => {
31
35
  try {
32
36
  const packageId = await rpcServerCalls.addOrUpdatePackage(packageName, {
33
- packageLocation: packageLocation || packageLocationDefault
37
+ packageLocation: packageLocation || packageLocationDefault,
34
38
  });
35
39
  const pkg = await Packages().get(packageId);
36
40
  if (pkg) {
@@ -38,31 +42,30 @@ export const PackageNewLocal = () => {
38
42
  rpcServerCalls.openPackage(packageLocation || packageLocationDefault);
39
43
  }
40
44
  } catch (err) {
41
- confirm('Error creating package: ' + err);
45
+ confirm(`Error creating package: ${err}`);
42
46
  }
43
47
  };
44
48
 
45
49
  return (
46
- <div className='container mt-2'>
47
- <h4 className='text-center'>
48
- New Local Package
49
- </h4>
50
+ <div className="container mt-2">
51
+ <h4 className="text-center">New Local Package</h4>
50
52
 
51
53
  <div className="input-group mt-3 mb-3">
52
- <input type="text" className="form-control"
54
+ <input
55
+ type="text"
56
+ className="form-control"
53
57
  placeholder="Package Name"
54
58
  value={packageName}
55
- onChange={e => setPackageName(e.target.value)}
56
- autoFocus
59
+ onChange={(e) => setPackageName(e.target.value)}
57
60
  />
58
61
  </div>
59
62
 
60
63
  <input
61
64
  ref={hiddenFileInput}
62
65
  type="file"
63
- className='visually-hidden'
66
+ className="visually-hidden"
64
67
  onChange={handleFolderSelect}
65
- // @ts-ignore
68
+ // @ts-expect-error
66
69
  directory=""
67
70
  webkitdirectory=""
68
71
  />
@@ -72,7 +75,7 @@ export const PackageNewLocal = () => {
72
75
  className="form-control"
73
76
  placeholder={packageLocationDefault}
74
77
  value={packageLocation}
75
- onChange={e => setPackageLocation(e.target.value)}
78
+ onChange={(e) => setPackageLocation(e.target.value)}
76
79
  disabled
77
80
  />
78
81
  {/* <button className="btn btn-outline-secondary" type="button"
@@ -81,15 +84,14 @@ export const PackageNewLocal = () => {
81
84
  </button> */}
82
85
  </div>
83
86
 
84
- <button
85
- className="btn btn-primary float-end"
86
- type="button"
87
+ <button
88
+ className="btn btn-primary float-end"
89
+ type="button"
87
90
  onClick={() => createLocalPackage()}
88
91
  disabled={!packageName}
89
92
  >
90
93
  Create Package
91
94
  </button>
92
-
93
95
  </div>
94
96
  );
95
97
  };