@peers-app/peers-ui 0.0.14

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 (404) hide show
  1. package/.github/README.md +52 -0
  2. package/.github/workflows/publish.yml +45 -0
  3. package/babel.config.js +7 -0
  4. package/dist/app.d.ts +9 -0
  5. package/dist/app.js +54 -0
  6. package/dist/command-palette/command-palette-ui.d.ts +2 -0
  7. package/dist/command-palette/command-palette-ui.js +192 -0
  8. package/dist/command-palette/command-palette.d.ts +23 -0
  9. package/dist/command-palette/command-palette.js +371 -0
  10. package/dist/components/checkbox.d.ts +7 -0
  11. package/dist/components/checkbox.js +20 -0
  12. package/dist/components/group-switcher.d.ts +6 -0
  13. package/dist/components/group-switcher.js +301 -0
  14. package/dist/components/input-date.d.ts +7 -0
  15. package/dist/components/input-date.js +19 -0
  16. package/dist/components/input-datetime.d.ts +7 -0
  17. package/dist/components/input-datetime.js +35 -0
  18. package/dist/components/input-number.d.ts +9 -0
  19. package/dist/components/input-number.js +87 -0
  20. package/dist/components/input.d.ts +7 -0
  21. package/dist/components/input.js +20 -0
  22. package/dist/components/io-schema-values.d.ts +15 -0
  23. package/dist/components/io-schema-values.js +105 -0
  24. package/dist/components/io-schema.d.ts +13 -0
  25. package/dist/components/io-schema.js +163 -0
  26. package/dist/components/lazy-list.d.ts +13 -0
  27. package/dist/components/lazy-list.js +91 -0
  28. package/dist/components/lazy-sortable-list.d.ts +29 -0
  29. package/dist/components/lazy-sortable-list.js +12 -0
  30. package/dist/components/left-bar.d.ts +3 -0
  31. package/dist/components/left-bar.js +130 -0
  32. package/dist/components/list-screen.d.ts +16 -0
  33. package/dist/components/list-screen.js +100 -0
  34. package/dist/components/loading-indicator.d.ts +2 -0
  35. package/dist/components/loading-indicator.js +12 -0
  36. package/dist/components/main-content-container.d.ts +2 -0
  37. package/dist/components/main-content-container.js +90 -0
  38. package/dist/components/markdown-editor/autolink-plugin.d.ts +2 -0
  39. package/dist/components/markdown-editor/autolink-plugin.js +29 -0
  40. package/dist/components/markdown-editor/editor-inline.d.ts +3 -0
  41. package/dist/components/markdown-editor/editor-inline.js +13 -0
  42. package/dist/components/markdown-editor/editor.d.ts +18 -0
  43. package/dist/components/markdown-editor/editor.js +143 -0
  44. package/dist/components/markdown-editor/markdown-plugin.d.ts +9 -0
  45. package/dist/components/markdown-editor/markdown-plugin.js +194 -0
  46. package/dist/components/markdown-editor/mention-node.d.ts +21 -0
  47. package/dist/components/markdown-editor/mention-node.js +160 -0
  48. package/dist/components/markdown-editor/mentions-plugin.d.ts +7 -0
  49. package/dist/components/markdown-editor/mentions-plugin.js +268 -0
  50. package/dist/components/markdown-editor/theme.d.ts +46 -0
  51. package/dist/components/markdown-editor/theme.js +48 -0
  52. package/dist/components/markdown-editor/toolbar.d.ts +10 -0
  53. package/dist/components/markdown-editor/toolbar.js +112 -0
  54. package/dist/components/markdown-with-mentions.d.ts +4 -0
  55. package/dist/components/markdown-with-mentions.js +140 -0
  56. package/dist/components/message-logs/message-logs.d.ts +6 -0
  57. package/dist/components/message-logs/message-logs.js +307 -0
  58. package/dist/components/messages/avatar.d.ts +10 -0
  59. package/dist/components/messages/avatar.js +65 -0
  60. package/dist/components/messages/channel-message-list.d.ts +14 -0
  61. package/dist/components/messages/channel-message-list.js +158 -0
  62. package/dist/components/messages/channel-view.d.ts +6 -0
  63. package/dist/components/messages/channel-view.js +82 -0
  64. package/dist/components/messages/message-compose.d.ts +11 -0
  65. package/dist/components/messages/message-compose.js +152 -0
  66. package/dist/components/messages/message-display.d.ts +10 -0
  67. package/dist/components/messages/message-display.js +152 -0
  68. package/dist/components/messages/thread-message-list.d.ts +11 -0
  69. package/dist/components/messages/thread-message-list.js +122 -0
  70. package/dist/components/messages/thread-view.d.ts +6 -0
  71. package/dist/components/messages/thread-view.js +174 -0
  72. package/dist/components/off-canvas.d.ts +13 -0
  73. package/dist/components/off-canvas.js +89 -0
  74. package/dist/components/router.d.ts +6 -0
  75. package/dist/components/router.js +240 -0
  76. package/dist/components/save-button.d.ts +13 -0
  77. package/dist/components/save-button.js +75 -0
  78. package/dist/components/sortable-list.d.ts +36 -0
  79. package/dist/components/sortable-list.js +77 -0
  80. package/dist/components/tabs.d.ts +11 -0
  81. package/dist/components/tabs.js +69 -0
  82. package/dist/components/text-list-editor.tsx/text-list-editor.d.ts +6 -0
  83. package/dist/components/text-list-editor.tsx/text-list-editor.js +13 -0
  84. package/dist/components/tooltip.d.ts +11 -0
  85. package/dist/components/tooltip.js +20 -0
  86. package/dist/components/top-bar.d.ts +2 -0
  87. package/dist/components/top-bar.js +51 -0
  88. package/dist/components/typeahead/mentions-plugin.d.ts +7 -0
  89. package/dist/components/typeahead/mentions-plugin.js +203 -0
  90. package/dist/components/typeahead/typeahead-editor.d.ts +15 -0
  91. package/dist/components/typeahead/typeahead-editor.js +134 -0
  92. package/dist/components/typeahead/typeahead.d.ts +12 -0
  93. package/dist/components/typeahead/typeahead.js +94 -0
  94. package/dist/components/typeahead.d.ts +22 -0
  95. package/dist/components/typeahead.js +270 -0
  96. package/dist/globals.d.ts +29 -0
  97. package/dist/globals.js +148 -0
  98. package/dist/hooks.d.ts +34 -0
  99. package/dist/hooks.js +137 -0
  100. package/dist/index.d.ts +4 -0
  101. package/dist/index.js +20 -0
  102. package/dist/layout-vars.d.ts +6 -0
  103. package/dist/layout-vars.js +10 -0
  104. package/dist/mention-configs.d.ts +18 -0
  105. package/dist/mention-configs.js +149 -0
  106. package/dist/screens/assistants/assistant-config.d.ts +5 -0
  107. package/dist/screens/assistants/assistant-config.js +52 -0
  108. package/dist/screens/assistants/assistant-details.d.ts +4 -0
  109. package/dist/screens/assistants/assistant-details.js +85 -0
  110. package/dist/screens/assistants/assistant-info.d.ts +6 -0
  111. package/dist/screens/assistants/assistant-info.js +28 -0
  112. package/dist/screens/assistants/assistant-list.d.ts +2 -0
  113. package/dist/screens/assistants/assistant-list.js +114 -0
  114. package/dist/screens/assistants/assistant-tools.d.ts +5 -0
  115. package/dist/screens/assistants/assistant-tools.js +38 -0
  116. package/dist/screens/contacts/contact-details.d.ts +6 -0
  117. package/dist/screens/contacts/contact-details.js +100 -0
  118. package/dist/screens/contacts/contact-list.d.ts +2 -0
  119. package/dist/screens/contacts/contact-list.js +213 -0
  120. package/dist/screens/contacts/index.d.ts +4 -0
  121. package/dist/screens/contacts/index.js +21 -0
  122. package/dist/screens/events/cron.d.ts +3 -0
  123. package/dist/screens/events/cron.js +77 -0
  124. package/dist/screens/events/event-details.d.ts +6 -0
  125. package/dist/screens/events/event-details.js +112 -0
  126. package/dist/screens/events/event-handlers.d.ts +7 -0
  127. package/dist/screens/events/event-handlers.js +84 -0
  128. package/dist/screens/events/event-info.d.ts +5 -0
  129. package/dist/screens/events/event-info.js +19 -0
  130. package/dist/screens/events/event-list.d.ts +2 -0
  131. package/dist/screens/events/event-list.js +107 -0
  132. package/dist/screens/events/event-schedule.d.ts +5 -0
  133. package/dist/screens/events/event-schedule.js +124 -0
  134. package/dist/screens/groups/group-details.d.ts +6 -0
  135. package/dist/screens/groups/group-details.js +218 -0
  136. package/dist/screens/groups/group-list.d.ts +2 -0
  137. package/dist/screens/groups/group-list.js +275 -0
  138. package/dist/screens/groups/group-members.d.ts +8 -0
  139. package/dist/screens/groups/group-members.js +315 -0
  140. package/dist/screens/groups/index.d.ts +6 -0
  141. package/dist/screens/groups/index.js +23 -0
  142. package/dist/screens/knowledge/knowledge-frame-details.bk.d.ts +6 -0
  143. package/dist/screens/knowledge/knowledge-frame-details.bk.js +84 -0
  144. package/dist/screens/knowledge/knowledge-frame-details.d.ts +8 -0
  145. package/dist/screens/knowledge/knowledge-frame-details.js +143 -0
  146. package/dist/screens/knowledge/knowledge-frame-list.d.ts +2 -0
  147. package/dist/screens/knowledge/knowledge-frame-list.js +45 -0
  148. package/dist/screens/knowledge/knowledge-value-details.d.ts +6 -0
  149. package/dist/screens/knowledge/knowledge-value-details.js +150 -0
  150. package/dist/screens/knowledge/knowledge-value-list-item.d.ts +5 -0
  151. package/dist/screens/knowledge/knowledge-value-list-item.js +39 -0
  152. package/dist/screens/knowledge/knowledge-value-list.d.ts +3 -0
  153. package/dist/screens/knowledge/knowledge-value-list.js +123 -0
  154. package/dist/screens/packages/package-details.d.ts +6 -0
  155. package/dist/screens/packages/package-details.js +82 -0
  156. package/dist/screens/packages/package-info.d.ts +5 -0
  157. package/dist/screens/packages/package-info.js +42 -0
  158. package/dist/screens/packages/package-list.d.ts +2 -0
  159. package/dist/screens/packages/package-list.js +182 -0
  160. package/dist/screens/packages/package-new-local.d.ts +2 -0
  161. package/dist/screens/packages/package-new-local.js +82 -0
  162. package/dist/screens/peer-types/peer-type-details.d.ts +10 -0
  163. package/dist/screens/peer-types/peer-type-details.js +126 -0
  164. package/dist/screens/peer-types/peer-type-list.d.ts +2 -0
  165. package/dist/screens/peer-types/peer-type-list.js +57 -0
  166. package/dist/screens/predicates/predicate-details.d.ts +6 -0
  167. package/dist/screens/predicates/predicate-details.js +103 -0
  168. package/dist/screens/predicates/predicate-list.d.ts +2 -0
  169. package/dist/screens/predicates/predicate-list.js +46 -0
  170. package/dist/screens/profile.d.ts +2 -0
  171. package/dist/screens/profile.js +66 -0
  172. package/dist/screens/search/global-search.d.ts +2 -0
  173. package/dist/screens/search/global-search.js +186 -0
  174. package/dist/screens/settings/color-mode-dropdown.d.ts +6 -0
  175. package/dist/screens/settings/color-mode-dropdown.js +63 -0
  176. package/dist/screens/settings/settings-page.d.ts +2 -0
  177. package/dist/screens/settings/settings-page.js +49 -0
  178. package/dist/screens/setup-user.d.ts +2 -0
  179. package/dist/screens/setup-user.js +270 -0
  180. package/dist/screens/tools/tool-code.d.ts +5 -0
  181. package/dist/screens/tools/tool-code.js +32 -0
  182. package/dist/screens/tools/tool-details.d.ts +6 -0
  183. package/dist/screens/tools/tool-details.js +68 -0
  184. package/dist/screens/tools/tool-info.d.ts +5 -0
  185. package/dist/screens/tools/tool-info.js +74 -0
  186. package/dist/screens/tools/tool-list.d.ts +2 -0
  187. package/dist/screens/tools/tool-list.js +123 -0
  188. package/dist/screens/tools/tool-schema.d.ts +5 -0
  189. package/dist/screens/tools/tool-schema.js +30 -0
  190. package/dist/screens/tools/tool-test-details.d.ts +4 -0
  191. package/dist/screens/tools/tool-test-details.js +54 -0
  192. package/dist/screens/tools/tool-test-list.d.ts +4 -0
  193. package/dist/screens/tools/tool-test-list.js +82 -0
  194. package/dist/screens/variables/variable-details.d.ts +6 -0
  195. package/dist/screens/variables/variable-details.js +140 -0
  196. package/dist/screens/variables/variable-list.d.ts +2 -0
  197. package/dist/screens/variables/variable-list.js +58 -0
  198. package/dist/screens/workflows/workflow-details.d.ts +6 -0
  199. package/dist/screens/workflows/workflow-details.js +122 -0
  200. package/dist/screens/workflows/workflow-info.d.ts +5 -0
  201. package/dist/screens/workflows/workflow-info.js +18 -0
  202. package/dist/screens/workflows/workflow-instructions.d.ts +5 -0
  203. package/dist/screens/workflows/workflow-instructions.js +118 -0
  204. package/dist/screens/workflows/workflow-list.d.ts +2 -0
  205. package/dist/screens/workflows/workflow-list.js +109 -0
  206. package/dist/screens/workflows/workflow-subscriptions.d.ts +6 -0
  207. package/dist/screens/workflows/workflow-subscriptions.js +81 -0
  208. package/dist/setupTests.d.ts +1 -0
  209. package/dist/setupTests.js +31 -0
  210. package/dist/system-apps/assistants.app.d.ts +2 -0
  211. package/dist/system-apps/assistants.app.js +8 -0
  212. package/dist/system-apps/contacts.app.d.ts +2 -0
  213. package/dist/system-apps/contacts.app.js +9 -0
  214. package/dist/system-apps/events.app.d.ts +2 -0
  215. package/dist/system-apps/events.app.js +8 -0
  216. package/dist/system-apps/groups.app.d.ts +2 -0
  217. package/dist/system-apps/groups.app.js +9 -0
  218. package/dist/system-apps/index.d.ts +19 -0
  219. package/dist/system-apps/index.js +90 -0
  220. package/dist/system-apps/knowledge-frames.app.d.ts +2 -0
  221. package/dist/system-apps/knowledge-frames.app.js +9 -0
  222. package/dist/system-apps/knowledge-values.app.d.ts +2 -0
  223. package/dist/system-apps/knowledge-values.app.js +9 -0
  224. package/dist/system-apps/packages.app.d.ts +2 -0
  225. package/dist/system-apps/packages.app.js +8 -0
  226. package/dist/system-apps/predicates.app.d.ts +2 -0
  227. package/dist/system-apps/predicates.app.js +8 -0
  228. package/dist/system-apps/profile.app.d.ts +2 -0
  229. package/dist/system-apps/profile.app.js +8 -0
  230. package/dist/system-apps/search.app.d.ts +2 -0
  231. package/dist/system-apps/search.app.js +9 -0
  232. package/dist/system-apps/settings.app.d.ts +2 -0
  233. package/dist/system-apps/settings.app.js +8 -0
  234. package/dist/system-apps/threads.app.d.ts +2 -0
  235. package/dist/system-apps/threads.app.js +8 -0
  236. package/dist/system-apps/tools.app.d.ts +2 -0
  237. package/dist/system-apps/tools.app.js +8 -0
  238. package/dist/system-apps/types.app.d.ts +2 -0
  239. package/dist/system-apps/types.app.js +8 -0
  240. package/dist/system-apps/variables.app.d.ts +2 -0
  241. package/dist/system-apps/variables.app.js +8 -0
  242. package/dist/system-apps/workflows.app.d.ts +2 -0
  243. package/dist/system-apps/workflows.app.js +8 -0
  244. package/dist/tabs-layout/tabs-layout.d.ts +5 -0
  245. package/dist/tabs-layout/tabs-layout.js +374 -0
  246. package/dist/tabs-layout/tabs-state.d.ts +26 -0
  247. package/dist/tabs-layout/tabs-state.js +239 -0
  248. package/dist/three-bar-layout/left-bar-content.d.ts +7 -0
  249. package/dist/three-bar-layout/left-bar-content.js +151 -0
  250. package/dist/three-bar-layout/right-bar-content.d.ts +2 -0
  251. package/dist/three-bar-layout/right-bar-content.js +64 -0
  252. package/dist/three-bar-layout/three-bar-layout.d.ts +5 -0
  253. package/dist/three-bar-layout/three-bar-layout.js +218 -0
  254. package/dist/ui-defaults/index.d.ts +2 -0
  255. package/dist/ui-defaults/index.js +4 -0
  256. package/dist/ui-defaults/list-screen.d.ts +6 -0
  257. package/dist/ui-defaults/list-screen.js +74 -0
  258. package/dist/ui-defaults/notes-editor.d.ts +7 -0
  259. package/dist/ui-defaults/notes-editor.js +41 -0
  260. package/dist/ui-router/routes-loader.d.ts +25 -0
  261. package/dist/ui-router/routes-loader.js +97 -0
  262. package/dist/ui-router/ui-loader.d.ts +18 -0
  263. package/dist/ui-router/ui-loader.js +481 -0
  264. package/dist/utils.d.ts +9 -0
  265. package/dist/utils.js +250 -0
  266. package/docs/conversation-tab.md +201 -0
  267. package/docs/getting-started.md +284 -0
  268. package/docs/knowledge.md +187 -0
  269. package/docs/tabs-ui.md +696 -0
  270. package/docs/user-contacts-ui.md +384 -0
  271. package/jest.config.js +25 -0
  272. package/package.json +109 -0
  273. package/src/app.tsx +59 -0
  274. package/src/command-palette/command-palette-ui.tsx +264 -0
  275. package/src/command-palette/command-palette.ts +364 -0
  276. package/src/components/checkbox.tsx +22 -0
  277. package/src/components/group-switcher.tsx +469 -0
  278. package/src/components/input-date.tsx +28 -0
  279. package/src/components/input-datetime.tsx +41 -0
  280. package/src/components/input-number.tsx +67 -0
  281. package/src/components/input.tsx +22 -0
  282. package/src/components/io-schema-values.tsx +122 -0
  283. package/src/components/io-schema.tsx +234 -0
  284. package/src/components/lazy-list.tsx +98 -0
  285. package/src/components/lazy-sortable-list.tsx +51 -0
  286. package/src/components/left-bar.tsx +264 -0
  287. package/src/components/list-screen.tsx +105 -0
  288. package/src/components/loading-indicator.tsx +9 -0
  289. package/src/components/main-content-container.tsx +76 -0
  290. package/src/components/markdown-editor/autolink-plugin.tsx +36 -0
  291. package/src/components/markdown-editor/editor-inline.tsx +10 -0
  292. package/src/components/markdown-editor/editor.tsx +152 -0
  293. package/src/components/markdown-editor/markdown-plugin.tsx +224 -0
  294. package/src/components/markdown-editor/mention-node.ts +199 -0
  295. package/src/components/markdown-editor/mentions-plugin.tsx +356 -0
  296. package/src/components/markdown-editor/theme.ts +47 -0
  297. package/src/components/markdown-editor/toolbar.tsx +263 -0
  298. package/src/components/markdown-with-mentions.tsx +183 -0
  299. package/src/components/message-logs/message-logs.tsx +406 -0
  300. package/src/components/messages/avatar.tsx +95 -0
  301. package/src/components/messages/channel-message-list.tsx +177 -0
  302. package/src/components/messages/channel-view.tsx +74 -0
  303. package/src/components/messages/message-compose.tsx +162 -0
  304. package/src/components/messages/message-display.tsx +217 -0
  305. package/src/components/messages/thread-message-list.tsx +126 -0
  306. package/src/components/messages/thread-view.tsx +214 -0
  307. package/src/components/off-canvas.tsx +83 -0
  308. package/src/components/router.tsx +224 -0
  309. package/src/components/save-button.tsx +109 -0
  310. package/src/components/sortable-list.tsx +102 -0
  311. package/src/components/tabs.tsx +70 -0
  312. package/src/components/text-list-editor.tsx/text-list-editor.tsx +13 -0
  313. package/src/components/tooltip.tsx +50 -0
  314. package/src/components/top-bar.tsx +119 -0
  315. package/src/components/typeahead/mentions-plugin.tsx +265 -0
  316. package/src/components/typeahead/typeahead-editor.tsx +140 -0
  317. package/src/components/typeahead/typeahead.tsx +77 -0
  318. package/src/components/typeahead.tsx +359 -0
  319. package/src/globals.tsx +162 -0
  320. package/src/hooks.ts +144 -0
  321. package/src/index.tsx +8 -0
  322. package/src/layout-vars.ts +8 -0
  323. package/src/mention-configs.ts +166 -0
  324. package/src/screens/assistants/assistant-config.tsx +80 -0
  325. package/src/screens/assistants/assistant-details.tsx +77 -0
  326. package/src/screens/assistants/assistant-info.tsx +45 -0
  327. package/src/screens/assistants/assistant-list.tsx +115 -0
  328. package/src/screens/assistants/assistant-tools.tsx +61 -0
  329. package/src/screens/contacts/contact-details.tsx +175 -0
  330. package/src/screens/contacts/contact-list.tsx +251 -0
  331. package/src/screens/contacts/index.ts +6 -0
  332. package/src/screens/events/cron.ts +74 -0
  333. package/src/screens/events/event-details.tsx +117 -0
  334. package/src/screens/events/event-handlers.tsx +61 -0
  335. package/src/screens/events/event-info.tsx +29 -0
  336. package/src/screens/events/event-list.tsx +104 -0
  337. package/src/screens/events/event-schedule.tsx +130 -0
  338. package/src/screens/groups/group-details.tsx +306 -0
  339. package/src/screens/groups/group-list.tsx +366 -0
  340. package/src/screens/groups/group-members.tsx +455 -0
  341. package/src/screens/groups/index.ts +9 -0
  342. package/src/screens/knowledge/knowledge-frame-details.bk.tsx +160 -0
  343. package/src/screens/knowledge/knowledge-frame-details.tsx +176 -0
  344. package/src/screens/knowledge/knowledge-frame-list.tsx +49 -0
  345. package/src/screens/knowledge/knowledge-value-details.tsx +181 -0
  346. package/src/screens/knowledge/knowledge-value-list-item.tsx +48 -0
  347. package/src/screens/knowledge/knowledge-value-list.tsx +131 -0
  348. package/src/screens/packages/package-details.tsx +117 -0
  349. package/src/screens/packages/package-info.tsx +83 -0
  350. package/src/screens/packages/package-list.tsx +191 -0
  351. package/src/screens/packages/package-new-local.tsx +93 -0
  352. package/src/screens/peer-types/peer-type-details.tsx +162 -0
  353. package/src/screens/peer-types/peer-type-list.tsx +74 -0
  354. package/src/screens/predicates/predicate-details.tsx +125 -0
  355. package/src/screens/predicates/predicate-list.tsx +50 -0
  356. package/src/screens/profile.tsx +68 -0
  357. package/src/screens/search/global-search.tsx +274 -0
  358. package/src/screens/settings/color-mode-dropdown.tsx +57 -0
  359. package/src/screens/settings/settings-page.tsx +76 -0
  360. package/src/screens/setup-user.tsx +367 -0
  361. package/src/screens/tools/tool-code.tsx +35 -0
  362. package/src/screens/tools/tool-details.tsx +101 -0
  363. package/src/screens/tools/tool-info.tsx +60 -0
  364. package/src/screens/tools/tool-list.tsx +121 -0
  365. package/src/screens/tools/tool-schema.tsx +42 -0
  366. package/src/screens/tools/tool-test-details.tsx +100 -0
  367. package/src/screens/tools/tool-test-list.tsx +74 -0
  368. package/src/screens/variables/variable-details.tsx +183 -0
  369. package/src/screens/variables/variable-list.tsx +74 -0
  370. package/src/screens/workflows/workflow-details.tsx +130 -0
  371. package/src/screens/workflows/workflow-info.tsx +29 -0
  372. package/src/screens/workflows/workflow-instructions.tsx +127 -0
  373. package/src/screens/workflows/workflow-list.tsx +107 -0
  374. package/src/screens/workflows/workflow-subscriptions.tsx +58 -0
  375. package/src/setupTests.ts +32 -0
  376. package/src/system-apps/assistants.app.ts +7 -0
  377. package/src/system-apps/contacts.app.ts +8 -0
  378. package/src/system-apps/events.app.ts +7 -0
  379. package/src/system-apps/groups.app.ts +8 -0
  380. package/src/system-apps/index.ts +79 -0
  381. package/src/system-apps/knowledge-frames.app.ts +8 -0
  382. package/src/system-apps/knowledge-values.app.ts +8 -0
  383. package/src/system-apps/packages.app.ts +7 -0
  384. package/src/system-apps/predicates.app.ts +7 -0
  385. package/src/system-apps/profile.app.ts +7 -0
  386. package/src/system-apps/search.app.ts +8 -0
  387. package/src/system-apps/settings.app.ts +7 -0
  388. package/src/system-apps/threads.app.ts +7 -0
  389. package/src/system-apps/tools.app.ts +7 -0
  390. package/src/system-apps/types.app.ts +7 -0
  391. package/src/system-apps/variables.app.ts +7 -0
  392. package/src/system-apps/workflows.app.ts +7 -0
  393. package/src/tabs-layout/tabs-layout.tsx +672 -0
  394. package/src/tabs-layout/tabs-state.ts +269 -0
  395. package/src/three-bar-layout/left-bar-content.tsx +202 -0
  396. package/src/three-bar-layout/right-bar-content.tsx +67 -0
  397. package/src/three-bar-layout/three-bar-layout.tsx +297 -0
  398. package/src/ui-defaults/index.ts +3 -0
  399. package/src/ui-defaults/list-screen.tsx +92 -0
  400. package/src/ui-defaults/notes-editor.tsx +51 -0
  401. package/src/ui-router/routes-loader.ts +98 -0
  402. package/src/ui-router/ui-loader.tsx +497 -0
  403. package/src/utils.ts +266 -0
  404. package/tsconfig.json +24 -0
@@ -0,0 +1,109 @@
1
+ import React from "react";
2
+ import { IDoc } from "@peers-app/peers-sdk";
3
+ import { isDesktop, mainContentPath } from "../globals";
4
+ import { useObservable } from "../hooks";
5
+
6
+ export interface ISaveButtonProps {
7
+ doc: IDoc<any>
8
+ onClick?: () => void | Promise<void>;
9
+ addActions?: (
10
+ {
11
+ label: string;
12
+ onClick: () => void;
13
+ className?: string;
14
+ }
15
+ | React.ReactNode
16
+ )[]
17
+ noBuiltInActions?: boolean;
18
+ }
19
+
20
+ export const SaveButton = (props: ISaveButtonProps) => {
21
+ let { doc, addActions } = props;
22
+ useObservable(doc.q);
23
+ const q = doc.q;
24
+
25
+ if (!addActions) {
26
+ addActions = [];
27
+ }
28
+ const allActions: ISaveButtonProps['addActions'] = props.addActions ? [...addActions] : [];
29
+
30
+ if (!props.noBuiltInActions) {
31
+ if (q()) {
32
+ allActions.unshift({
33
+ label: 'Discard Changes',
34
+ className: 'text-bg-warning',
35
+ onClick: () => {
36
+ if (confirm('Are you sure you want to discard your changes?')) {
37
+ doc.load()
38
+ .then(() => {
39
+ setTimeout(() => doc.q(0), 100);
40
+ });
41
+ }
42
+ }
43
+ });
44
+ }
45
+ if (allActions.length) {
46
+ allActions.push(<hr className="dropdown-divider mt-3" />);
47
+ }
48
+ allActions.push({
49
+ label: 'Delete',
50
+ className: `text-bg-danger`,
51
+ onClick: async () => {
52
+ if (confirm('Are you sure you want to delete this?')) {
53
+ await doc.delete();
54
+ const pathParts = mainContentPath().split('/');
55
+ pathParts.pop();
56
+ const path = pathParts.join('/') ?? '';
57
+ mainContentPath(path);
58
+ }
59
+ }
60
+ });
61
+ }
62
+
63
+
64
+
65
+ let className = `btn `;
66
+ if (q()) {
67
+ className += 'btn-primary';
68
+ } else {
69
+ className += 'disabled';
70
+ }
71
+
72
+ if (!addActions?.length && props.noBuiltInActions) {
73
+ return (
74
+ <button className={className} onClick={props.onClick ?? doc.save} disabled={!q()}>
75
+ {isDesktop() ? 'Save Changes' : 'Save'}
76
+ </button>
77
+ )
78
+ }
79
+
80
+ return (
81
+ <div style={{ display: 'inline-block' }}>
82
+ <div className="input-group" >
83
+ <button className={className} onClick={props.onClick ?? doc.save} disabled={!q()}>
84
+ {isDesktop() ? 'Save Changes' : 'Save'}
85
+ </button>
86
+ <button type="button" data-bs-toggle="dropdown" aria-expanded="false"
87
+ // className={`btn dropdown-toggle dropdown-toggle-split ${q() ? 'btn-primary' : 'btn-secondary'}`}
88
+ className={`btn dropdown-toggle dropdown-toggle-split btn-secondary`}
89
+ >
90
+ <span className="visually-hidden">Toggle Dropdown</span>
91
+ </button>
92
+ <ul className="dropdown-menu dropdown-menu-end">
93
+ {allActions.map(action => {
94
+ if (typeof action !== 'object' || action === null || !('label' in action)) {
95
+ return (<li key={Math.random()}>{action}</li>);
96
+ }
97
+ return (
98
+ <li key={action.label}>
99
+ <button className={`dropdown-item rounded mt-2 ${action.className || ''}`} onClick={action.onClick}>
100
+ {action.label}
101
+ </button>
102
+ </li>
103
+ )
104
+ })}
105
+ </ul>
106
+ </div>
107
+ </div>
108
+ );
109
+ }
@@ -0,0 +1,102 @@
1
+ import React from 'react';
2
+ import Sortable from 'sortablejs';
3
+ import { last, sortBy } from 'lodash';
4
+ import { Observable, unwrapObservable } from "@peers-app/peers-sdk";
5
+
6
+
7
+ export interface ISortable {
8
+ sortOrder: number
9
+ }
10
+
11
+ interface ISortableListProps<T extends ISortable> {
12
+ items: Observable<T[]> | T[],
13
+ renderItem: (props: { item: T, listId: string, sortHandle: string }) => React.ReactNode,
14
+ listsGroup?: string
15
+ onAdd?: ((itemId: string, sortOrder: number) => any),
16
+ onUpdate?: ((args: { items: T[], ixMoved: number[] }) => any),
17
+ hidden?: boolean,
18
+ containerProps?: Record<string, any>
19
+ dragHandleClassName?: string
20
+ sortDirection?: 'asc' | 'desc'
21
+ minHeight?: string | number
22
+ paddingBottom?: string | number
23
+ }
24
+
25
+ export class SortableList<T extends ISortable> extends React.Component<ISortableListProps<T>, {}>
26
+ {
27
+
28
+ constructor(props: any) {
29
+ super(props);
30
+ this.sortHandle = this.props.dragHandleClassName && `.${this.props.dragHandleClassName}` || this.sortHandle;
31
+ }
32
+
33
+ self: any
34
+
35
+ items: any[] = [];
36
+
37
+ listId = `${Date.now()}_${Math.round(Math.random()*100000)}`;
38
+ sortHandle = `.sort-handle-${this.listId}`;
39
+
40
+ calculateSortOrder(index: number) {
41
+ const items = this.items;
42
+ if (index === 0) return Date.now();
43
+ if (index >= items.length) return last(items).sortOrder - 10000;
44
+ const above = items[index - 1].sortOrder ?? Date.now();
45
+ const below = items[index].sortOrder ?? Number.MIN_VALUE;
46
+ if (above === below) alert('sort order has converged to the same number in this area. Try moving items to the top or bottom of the list to fix it')
47
+ return above - ((above - below) / 2)
48
+ }
49
+
50
+ componentDidMount() {
51
+ const self = this;
52
+ const listDiv = document.getElementById(this.listId) as any;
53
+
54
+ Sortable.create(listDiv, {
55
+ handle: this.sortHandle,
56
+ group: { name: this.props.listsGroup || this.listId, put: !!this.props.onAdd },
57
+ animation: 100,
58
+
59
+ onUpdate: evt => {
60
+ const items = self.items;
61
+ const item = items.splice(evt.oldIndex!, 1)[0];
62
+ item.sortOrder = this.calculateSortOrder(evt.newIndex!);
63
+ items.splice(evt.newIndex!, 0, item);
64
+ // console.log(items.map(i => i.toJS()));
65
+ if (this.props.onUpdate) {
66
+ this.props.onUpdate({ items, ixMoved: [evt.newIndex!] })
67
+ }
68
+ },
69
+
70
+ onAdd: evt => {
71
+ const itemEl = evt.item; // dragged HTMLElement
72
+ if (evt.to !== evt.from) {
73
+ // first restore html hierarchy so html doesn't get out of sync with react
74
+ evt.to.removeChild(itemEl);
75
+ evt.from.appendChild(itemEl);
76
+
77
+ // now if we were given an `onAdd` function, call it
78
+ if (this.props.onAdd) {
79
+ const itemId = evt.item.id;
80
+ this.props.onAdd(itemId, this.calculateSortOrder(evt.newIndex!));
81
+ }
82
+ }
83
+ },
84
+ });
85
+ }
86
+
87
+ public render() {
88
+ let items = unwrapObservable(this.props.items);
89
+ if (this.props.sortDirection === 'asc') {
90
+ items = sortBy(items, i => i.sortOrder ?? -Infinity);
91
+ } else {
92
+ // @ts-ignore
93
+ items = sortBy(items, i => -i.sortOrder ?? Infinity);
94
+ }
95
+ this.items = items;
96
+ return (
97
+ <div id={this.listId} style={{ minHeight: this.props.minHeight ?? "25px", paddingBottom: this.props.paddingBottom ?? "10px" }} {...this.props.containerProps} >
98
+ {items.map(item => this.props.renderItem({ item, listId: this.listId, sortHandle: this.sortHandle.substring(1) }))}
99
+ </div>
100
+ )
101
+ }
102
+ }
@@ -0,0 +1,70 @@
1
+ import React, { useState } from "react";
2
+ import { queryParam } from "../globals";
3
+
4
+ interface ITabsProps {
5
+ tabs: {
6
+ name: string,
7
+ content: JSX.Element,
8
+ active?: true
9
+ }[];
10
+ }
11
+
12
+ let lastActive = '';
13
+
14
+ export const Tabs = (props: ITabsProps) => {
15
+ const { tabs } = props;
16
+
17
+ const [activeTab, _setActiveTab] = useState(() => {
18
+ let activeTabName = tabs.find(tab => tab.active)?.name || queryParam('tab') || lastActive;
19
+ activeTabName = activeTabName.toLowerCase();
20
+ const _activeTab = tabs.find(tab => tab.name.toLowerCase() === activeTabName) || tabs[0];
21
+ lastActive = _activeTab.name;
22
+ setTimeout(() => queryParam('tab', lastActive.toLowerCase()));
23
+ return _activeTab;
24
+ });
25
+
26
+ function setActiveTab(tab: { name: string, content: JSX.Element }) {
27
+ _setActiveTab(tab);
28
+ queryParam('tab', tab.name.toLowerCase());
29
+ lastActive = tab.name;
30
+ }
31
+
32
+ return (
33
+ <>
34
+ <ul className="nav nav-tabs">
35
+ {tabs.map((tab, iTab) => {
36
+ return (
37
+ <li key={tab.name + iTab} className="nav-item">
38
+ <a
39
+ href="#"
40
+ className={"nav-link " + (activeTab.name === tab.name ? 'active' : '')}
41
+ onClick={evt => (evt.preventDefault(), setActiveTab(tab))}
42
+ >
43
+ {tab.name}
44
+ </a>
45
+ </li>
46
+ )
47
+ })}
48
+ </ul>
49
+ <br />
50
+ {tabs.map((tab, iTab) => {
51
+ return (
52
+ <div key={tab.name + iTab} hidden={activeTab.name !== tab.name}>
53
+ {tab.content}
54
+ </div>
55
+ )
56
+ })}
57
+ </>
58
+ )
59
+ }
60
+
61
+
62
+ export const ScreenTabBody = (props: React.PropsWithChildren) => {
63
+ return (
64
+ <div
65
+ style={{ maxHeight: 'calc(100vh - 138px)', overflowY: 'auto' }}
66
+ >
67
+ {props.children}
68
+ </div>
69
+ )
70
+ }
@@ -0,0 +1,13 @@
1
+ import React from 'react'
2
+ import { IMarkdownEditorProps, MarkdownEditor } from '../markdown-editor/editor'
3
+
4
+ interface TextListEditorProps extends IMarkdownEditorProps {}
5
+
6
+ export const TextListEditor = (props: TextListEditorProps) => {
7
+
8
+ return (
9
+ <div className="border rounded border-dark-subtle">
10
+ <MarkdownEditor {...props} />
11
+ </div>
12
+ )
13
+ }
@@ -0,0 +1,50 @@
1
+ import { Observable } from "@peers-app/peers-sdk";
2
+ import React from 'react';
3
+ import { Popover } from 'react-tiny-popover';
4
+ import { MarkdownWithMentions } from './markdown-with-mentions';
5
+ import { useObservable, useObservableState } from "../hooks";
6
+
7
+ interface IProps {
8
+ markdownContent?: string | Observable<string> | Observable<string | undefined>;
9
+ handle?: React.ReactNode;
10
+ handleClassName?: string;
11
+ positions?: ('right' | 'bottom' | 'left' | 'top')[];
12
+ genericContent?: React.ReactNode
13
+ }
14
+
15
+ export const Tooltip = (props: IProps) => {
16
+ const { handle } = props;
17
+ let [markdownContent] = useObservable(props.markdownContent);
18
+
19
+ markdownContent = markdownContent ?? '';
20
+
21
+ const showPopover = useObservableState(false);
22
+
23
+ return (
24
+ <Popover
25
+ isOpen={showPopover()}
26
+ onClickOutside={() => showPopover(false)}
27
+ positions={props.positions ?? ['right', 'bottom', 'left', 'top']}
28
+ content={
29
+ () => (
30
+ <div
31
+ className='card p-2 bg-light-subtle'
32
+ style={{ maxWidth: 500, maxHeight: 400, overflowY: 'auto', zIndex: 1000001 }}
33
+ >
34
+ {
35
+ props.genericContent ||
36
+ <MarkdownWithMentions
37
+ content={markdownContent}
38
+ />
39
+ }
40
+ </div>
41
+ )
42
+ }
43
+ >
44
+ <span className={props.handleClassName ?? 'p-2'} onClick={() => showPopover(!showPopover())}>
45
+ {handle ?? <i className="bi bi-info-circle" style={{ cursor: 'pointer' }}></i>}
46
+ {/* <i className="fa-solid fa-note-sticky" onClick={() => showPopover(!showPopover())}></i> */}
47
+ </span>
48
+ </Popover >
49
+ )
50
+ }
@@ -0,0 +1,119 @@
1
+ import React from 'react'
2
+ import * as globals from '../globals';
3
+ // import { visibleNotifications } from '../notifications';
4
+
5
+
6
+ export const TopBar = () => {
7
+ // const [_notifications] = useObservable(visibleNotifications);
8
+ // const unreadNotifications = _notifications.filter(n => !n.status);
9
+ // const unreadNotificationCount = unreadNotifications.length;
10
+ // const [group] = useObservable(globals.activeGroup);
11
+
12
+ let connections = [1,2,3];
13
+ let connectionsSyncing = [1,2];
14
+ let unreadNotificationCount = 0;
15
+
16
+ return (
17
+ <nav className="navbar navbar-expand-lg navbar-dark bg-body-tertiary fixed-top peers-top-bar"
18
+ // style={{ borderLeft: 'solid', borderColor: '#606365', borderWidth: globals.isDesktop() ? '1px' : 0, }}
19
+ // style={{ borderBottom: 'solid', borderColor: '#606365', borderWidth: '1px', }}
20
+ style={{ height: '50px' }}
21
+ >
22
+ <div className="container-fluid">
23
+ {/* <a className="dropdown-toggle logo" href="#"
24
+ id="brandDD" data-bs-toggle="dropdown" aria-expanded="false"
25
+ >
26
+ <img src="/android/android-launchericon-512-512.png" alt="" width="40" height="40" className="d-inline-block align-top"></img>
27
+ </a> */}
28
+
29
+ <div>
30
+ <button className="navbar-toggler collapsed" type="button"
31
+ data-bs-toggle="offcanvas"
32
+ data-bs-target="#leftBar"
33
+ aria-controls="leftBar"
34
+ aria-expanded="false"
35
+ aria-label="Toggle Left Bar"
36
+ >
37
+ <span className="navbar-toggler-icon"></span>
38
+ </button>
39
+ </div>
40
+
41
+ <div>
42
+ <span className="text-white">
43
+ {/* {group?.name} */} open tabs here
44
+ </span>
45
+ </div>
46
+
47
+ <div>
48
+ <span className="navbar-text" style={{ marginRight: 8, fontSize: "12pt" }}>
49
+ <span style={{ display: 'inline-block' }}>
50
+ {Boolean(connectionsSyncing.length) && [
51
+ connectionsSyncing.length + " ",
52
+ <i key="1" className="bi bi-arrow-repeat"></i>,
53
+ <span key="2">&nbsp;&nbsp;&nbsp;</span>
54
+ ]}
55
+ {connections.length} <i className="bi bi-arrow-down-up"></i>
56
+ </span>
57
+ </span>
58
+
59
+ <button type="button" className="btn btn-dark position-relative"
60
+ data-bs-toggle="offcanvas"
61
+ data-bs-target="#rightBar"
62
+ aria-controls="rightBar"
63
+ aria-expanded="false"
64
+ aria-label="Toggle Right Bar"
65
+ // TODO take this out once we are ready to show content in the right bar
66
+ hidden
67
+ >
68
+ <i className={`bi bi-bell${unreadNotificationCount > 0 ? '-fill' : ''}`}></i>
69
+ <span
70
+ className="translate-middle badge rounded-pill bg-danger"
71
+ style={{
72
+ display: unreadNotificationCount < 1 ? 'none' : '',
73
+ position: 'absolute',
74
+ top: unreadNotificationCount > 9 ? 4 : 7,
75
+ right: unreadNotificationCount > 9 ? -27 : -16
76
+ }}
77
+ >
78
+ {unreadNotificationCount > 9 ? "9+" : unreadNotificationCount}
79
+ <span className="visually-hidden">unread notifications</span>
80
+ </span>
81
+ </button>
82
+
83
+ </div>
84
+
85
+ {/* <div className="d-flex">
86
+ <input className="form-control me-2" type="search" placeholder="Search" aria-label="Search" />
87
+ </div> */}
88
+
89
+ {/*
90
+ <button className="navbar-toggler collapsed" type="button" data-bs-toggle="collapse"
91
+ data-bs-target="#navbarMain" aria-controls="navbarMain" aria-expanded="false"
92
+ aria-label="Toggle navigation"
93
+ >
94
+ <span className="navbar-toggler-icon"></span>
95
+ </button>
96
+
97
+ <div className="navbar-collapse collapse" id="navbarMain" >
98
+ <ul className="navbar-nav me-auto mb-2 mb-md-0">
99
+ {[
100
+ { path: 'new-order', name: 'New Order' },
101
+ { path: 'inventory', name: 'Inventory' },
102
+ ].map(({ path, name }) => {
103
+ return (
104
+ <li key={path + name} className="nav-item"
105
+ >
106
+ <a className={'nav-link'}
107
+ aria-current="page"
108
+ href={`#/${path}`}>{name}</a>
109
+ </li>
110
+ )
111
+ })
112
+
113
+ }
114
+ </ul>
115
+ </div> */}
116
+ </div>
117
+ </nav>
118
+ );
119
+ }