@nyaruka/temba-components 0.129.3 → 0.129.5

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 (304) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.github/workflows/build.yml +135 -3
  3. package/CHANGELOG.md +19 -0
  4. package/demo/data/flows/sample-flow.json +110 -87
  5. package/demo/field-config-demo.html +135 -0
  6. package/dist/temba-components.js +1257 -675
  7. package/dist/temba-components.js.map +1 -1
  8. package/docs/ActionEditor-Migration.md +118 -0
  9. package/out-tsc/src/events.js.map +1 -1
  10. package/out-tsc/src/flow/{EditorNode.js → CanvasNode.js} +345 -42
  11. package/out-tsc/src/flow/CanvasNode.js.map +1 -0
  12. package/out-tsc/src/flow/Editor.js +107 -3
  13. package/out-tsc/src/flow/Editor.js.map +1 -1
  14. package/out-tsc/src/flow/NodeEditor.js +1211 -0
  15. package/out-tsc/src/flow/NodeEditor.js.map +1 -0
  16. package/out-tsc/src/flow/Plumber.js +0 -6
  17. package/out-tsc/src/flow/Plumber.js.map +1 -1
  18. package/out-tsc/src/flow/actions/add_contact_groups.js +40 -0
  19. package/out-tsc/src/flow/actions/add_contact_groups.js.map +1 -0
  20. package/out-tsc/src/flow/actions/add_contact_urn.js +16 -0
  21. package/out-tsc/src/flow/actions/add_contact_urn.js.map +1 -0
  22. package/out-tsc/src/flow/actions/add_input_labels.js +11 -0
  23. package/out-tsc/src/flow/actions/add_input_labels.js.map +1 -0
  24. package/out-tsc/src/flow/actions/call_classifier.js +11 -0
  25. package/out-tsc/src/flow/actions/call_classifier.js.map +1 -0
  26. package/out-tsc/src/flow/actions/call_llm.js +11 -0
  27. package/out-tsc/src/flow/actions/call_llm.js.map +1 -0
  28. package/out-tsc/src/flow/actions/call_resthook.js +11 -0
  29. package/out-tsc/src/flow/actions/call_resthook.js.map +1 -0
  30. package/out-tsc/src/flow/actions/call_webhook.js +122 -0
  31. package/out-tsc/src/flow/actions/call_webhook.js.map +1 -0
  32. package/out-tsc/src/flow/actions/enter_flow.js +14 -0
  33. package/out-tsc/src/flow/actions/enter_flow.js.map +1 -0
  34. package/out-tsc/src/flow/actions/open_ticket.js +11 -0
  35. package/out-tsc/src/flow/actions/open_ticket.js.map +1 -0
  36. package/out-tsc/src/flow/actions/play_audio.js +11 -0
  37. package/out-tsc/src/flow/actions/play_audio.js.map +1 -0
  38. package/out-tsc/src/flow/actions/remove_contact_groups.js +62 -0
  39. package/out-tsc/src/flow/actions/remove_contact_groups.js.map +1 -0
  40. package/out-tsc/src/flow/actions/request_optin.js +11 -0
  41. package/out-tsc/src/flow/actions/request_optin.js.map +1 -0
  42. package/out-tsc/src/flow/actions/say_msg.js +11 -0
  43. package/out-tsc/src/flow/actions/say_msg.js.map +1 -0
  44. package/out-tsc/src/flow/actions/send_broadcast.js +33 -0
  45. package/out-tsc/src/flow/actions/send_broadcast.js.map +1 -0
  46. package/out-tsc/src/flow/actions/send_email.js +56 -0
  47. package/out-tsc/src/flow/actions/send_email.js.map +1 -0
  48. package/out-tsc/src/flow/actions/send_msg.js +55 -0
  49. package/out-tsc/src/flow/actions/send_msg.js.map +1 -0
  50. package/out-tsc/src/flow/actions/set_contact_channel.js +12 -0
  51. package/out-tsc/src/flow/actions/set_contact_channel.js.map +1 -0
  52. package/out-tsc/src/flow/actions/set_contact_field.js +12 -0
  53. package/out-tsc/src/flow/actions/set_contact_field.js.map +1 -0
  54. package/out-tsc/src/flow/actions/set_contact_language.js +10 -0
  55. package/out-tsc/src/flow/actions/set_contact_language.js.map +1 -0
  56. package/out-tsc/src/flow/actions/set_contact_name.js +10 -0
  57. package/out-tsc/src/flow/actions/set_contact_name.js.map +1 -0
  58. package/out-tsc/src/flow/actions/set_contact_status.js +10 -0
  59. package/out-tsc/src/flow/actions/set_contact_status.js.map +1 -0
  60. package/out-tsc/src/flow/actions/set_run_result.js +10 -0
  61. package/out-tsc/src/flow/actions/set_run_result.js.map +1 -0
  62. package/out-tsc/src/flow/actions/split_by_expression_example.js +77 -0
  63. package/out-tsc/src/flow/actions/split_by_expression_example.js.map +1 -0
  64. package/out-tsc/src/flow/actions/start_session.js +11 -0
  65. package/out-tsc/src/flow/actions/start_session.js.map +1 -0
  66. package/out-tsc/src/flow/actions/transfer_airtime.js +11 -0
  67. package/out-tsc/src/flow/actions/transfer_airtime.js.map +1 -0
  68. package/out-tsc/src/flow/config.js +88 -193
  69. package/out-tsc/src/flow/config.js.map +1 -1
  70. package/out-tsc/src/flow/nodes/execute_actions.js +4 -0
  71. package/out-tsc/src/flow/nodes/execute_actions.js.map +1 -0
  72. package/out-tsc/src/flow/nodes/split_by_airtime.js +9 -0
  73. package/out-tsc/src/flow/nodes/split_by_airtime.js.map +1 -0
  74. package/out-tsc/src/flow/nodes/split_by_contact_field.js +7 -0
  75. package/out-tsc/src/flow/nodes/split_by_contact_field.js.map +1 -0
  76. package/out-tsc/src/flow/nodes/split_by_expression.js +7 -0
  77. package/out-tsc/src/flow/nodes/split_by_expression.js.map +1 -0
  78. package/out-tsc/src/flow/nodes/split_by_groups.js +7 -0
  79. package/out-tsc/src/flow/nodes/split_by_groups.js.map +1 -0
  80. package/out-tsc/src/flow/nodes/split_by_random.js +10 -0
  81. package/out-tsc/src/flow/nodes/split_by_random.js.map +1 -0
  82. package/out-tsc/src/flow/nodes/split_by_run_result.js +7 -0
  83. package/out-tsc/src/flow/nodes/split_by_run_result.js.map +1 -0
  84. package/out-tsc/src/flow/nodes/split_by_scheme.js +7 -0
  85. package/out-tsc/src/flow/nodes/split_by_scheme.js.map +1 -0
  86. package/out-tsc/src/flow/nodes/split_by_subflow.js +9 -0
  87. package/out-tsc/src/flow/nodes/split_by_subflow.js.map +1 -0
  88. package/out-tsc/src/flow/nodes/split_by_webhook.js +18 -0
  89. package/out-tsc/src/flow/nodes/split_by_webhook.js.map +1 -0
  90. package/out-tsc/src/flow/nodes/wait_for_audio.js +7 -0
  91. package/out-tsc/src/flow/nodes/wait_for_audio.js.map +1 -0
  92. package/out-tsc/src/flow/nodes/wait_for_digits.js +7 -0
  93. package/out-tsc/src/flow/nodes/wait_for_digits.js.map +1 -0
  94. package/out-tsc/src/flow/nodes/wait_for_image.js +7 -0
  95. package/out-tsc/src/flow/nodes/wait_for_image.js.map +1 -0
  96. package/out-tsc/src/flow/nodes/wait_for_location.js +7 -0
  97. package/out-tsc/src/flow/nodes/wait_for_location.js.map +1 -0
  98. package/out-tsc/src/flow/nodes/wait_for_menu.js +7 -0
  99. package/out-tsc/src/flow/nodes/wait_for_menu.js.map +1 -0
  100. package/out-tsc/src/flow/nodes/wait_for_response.js +7 -0
  101. package/out-tsc/src/flow/nodes/wait_for_response.js.map +1 -0
  102. package/out-tsc/src/flow/nodes/wait_for_video.js +7 -0
  103. package/out-tsc/src/flow/nodes/wait_for_video.js.map +1 -0
  104. package/out-tsc/src/flow/types.js +79 -0
  105. package/out-tsc/src/flow/types.js.map +1 -0
  106. package/out-tsc/src/flow/utils.js +65 -0
  107. package/out-tsc/src/flow/utils.js.map +1 -0
  108. package/out-tsc/src/form/ArrayEditor.js +199 -0
  109. package/out-tsc/src/form/ArrayEditor.js.map +1 -0
  110. package/out-tsc/src/form/BaseListEditor.js +128 -0
  111. package/out-tsc/src/form/BaseListEditor.js.map +1 -0
  112. package/out-tsc/src/form/Checkbox.js +17 -2
  113. package/out-tsc/src/form/Checkbox.js.map +1 -1
  114. package/out-tsc/src/form/Completion.js +6 -0
  115. package/out-tsc/src/form/Completion.js.map +1 -1
  116. package/out-tsc/src/form/FormField.js +110 -11
  117. package/out-tsc/src/form/FormField.js.map +1 -1
  118. package/out-tsc/src/form/KeyValueEditor.js +223 -0
  119. package/out-tsc/src/form/KeyValueEditor.js.map +1 -0
  120. package/out-tsc/src/form/select/Select.js +92 -32
  121. package/out-tsc/src/form/select/Select.js.map +1 -1
  122. package/out-tsc/src/interfaces.js +6 -0
  123. package/out-tsc/src/interfaces.js.map +1 -1
  124. package/out-tsc/src/live/ContactChat.js +2 -76
  125. package/out-tsc/src/live/ContactChat.js.map +1 -1
  126. package/out-tsc/temba-modules.js +9 -2
  127. package/out-tsc/temba-modules.js.map +1 -1
  128. package/out-tsc/test/ActionHelper.js +116 -0
  129. package/out-tsc/test/ActionHelper.js.map +1 -0
  130. package/out-tsc/test/actions/add_contact_groups.test.js +66 -0
  131. package/out-tsc/test/actions/add_contact_groups.test.js.map +1 -0
  132. package/out-tsc/test/actions/remove_contact_groups.test.js +226 -0
  133. package/out-tsc/test/actions/remove_contact_groups.test.js.map +1 -0
  134. package/out-tsc/test/actions/send_email.test.js +160 -0
  135. package/out-tsc/test/actions/send_email.test.js.map +1 -0
  136. package/out-tsc/test/actions/send_msg.test.js +95 -0
  137. package/out-tsc/test/actions/send_msg.test.js.map +1 -0
  138. package/out-tsc/test/temba-action-editing-integration.test.js +183 -0
  139. package/out-tsc/test/temba-action-editing-integration.test.js.map +1 -0
  140. package/out-tsc/test/temba-checkbox.test.js +1 -1
  141. package/out-tsc/test/temba-checkbox.test.js.map +1 -1
  142. package/out-tsc/test/temba-field-config.test.js +133 -0
  143. package/out-tsc/test/temba-field-config.test.js.map +1 -0
  144. package/out-tsc/test/temba-flow-editor-node.test.js +14 -14
  145. package/out-tsc/test/temba-flow-editor-node.test.js.map +1 -1
  146. package/out-tsc/test/temba-node-editor.test.js +283 -0
  147. package/out-tsc/test/temba-node-editor.test.js.map +1 -0
  148. package/out-tsc/test/temba-select.test.js +158 -0
  149. package/out-tsc/test/temba-select.test.js.map +1 -1
  150. package/package.json +1 -1
  151. package/screenshots/truth/actions/add_contact_groups/editor/descriptive-group-names.png +0 -0
  152. package/screenshots/truth/actions/add_contact_groups/editor/long-group-names.png +0 -0
  153. package/screenshots/truth/actions/add_contact_groups/editor/many-groups.png +0 -0
  154. package/screenshots/truth/actions/add_contact_groups/editor/multiple-groups.png +0 -0
  155. package/screenshots/truth/actions/add_contact_groups/editor/single-group.png +0 -0
  156. package/screenshots/truth/actions/add_contact_groups/render/descriptive-group-names.png +0 -0
  157. package/screenshots/truth/actions/add_contact_groups/render/long-group-names.png +0 -0
  158. package/screenshots/truth/actions/add_contact_groups/render/many-groups.png +0 -0
  159. package/screenshots/truth/actions/add_contact_groups/render/multiple-groups.png +0 -0
  160. package/screenshots/truth/actions/add_contact_groups/render/single-group.png +0 -0
  161. package/screenshots/truth/actions/remove_contact_groups/editor/cleanup-groups.png +0 -0
  162. package/screenshots/truth/actions/remove_contact_groups/editor/long-descriptive-group-names.png +0 -0
  163. package/screenshots/truth/actions/remove_contact_groups/editor/many-groups.png +0 -0
  164. package/screenshots/truth/actions/remove_contact_groups/editor/multiple-groups.png +0 -0
  165. package/screenshots/truth/actions/remove_contact_groups/editor/remove-from-all-groups.png +0 -0
  166. package/screenshots/truth/actions/remove_contact_groups/editor/single-group.png +0 -0
  167. package/screenshots/truth/actions/remove_contact_groups/render/cleanup-groups.png +0 -0
  168. package/screenshots/truth/actions/remove_contact_groups/render/long-descriptive-group-names.png +0 -0
  169. package/screenshots/truth/actions/remove_contact_groups/render/many-groups.png +0 -0
  170. package/screenshots/truth/actions/remove_contact_groups/render/multiple-groups.png +0 -0
  171. package/screenshots/truth/actions/remove_contact_groups/render/remove-from-all-groups.png +0 -0
  172. package/screenshots/truth/actions/remove_contact_groups/render/single-group.png +0 -0
  173. package/screenshots/truth/actions/send_email/editor/complex-business-email.png +0 -0
  174. package/screenshots/truth/actions/send_email/editor/empty-body.png +0 -0
  175. package/screenshots/truth/actions/send_email/editor/empty-subject.png +0 -0
  176. package/screenshots/truth/actions/send_email/editor/long-subject.png +0 -0
  177. package/screenshots/truth/actions/send_email/editor/multiline-body.png +0 -0
  178. package/screenshots/truth/actions/send_email/editor/multiple-recipients.png +0 -0
  179. package/screenshots/truth/actions/send_email/editor/simple-email.png +0 -0
  180. package/screenshots/truth/actions/send_email/editor/with-expressions.png +0 -0
  181. package/screenshots/truth/actions/send_email/render/complex-business-email.png +0 -0
  182. package/screenshots/truth/actions/send_email/render/empty-body.png +0 -0
  183. package/screenshots/truth/actions/send_email/render/empty-subject.png +0 -0
  184. package/screenshots/truth/actions/send_email/render/long-subject.png +0 -0
  185. package/screenshots/truth/actions/send_email/render/multiline-body.png +0 -0
  186. package/screenshots/truth/actions/send_email/render/multiple-recipients.png +0 -0
  187. package/screenshots/truth/actions/send_email/render/simple-email.png +0 -0
  188. package/screenshots/truth/actions/send_email/render/with-expressions.png +0 -0
  189. package/screenshots/truth/actions/send_msg/editor/long-quick-replies.png +0 -0
  190. package/screenshots/truth/actions/send_msg/editor/multiline-text-with-replies.png +0 -0
  191. package/screenshots/truth/actions/send_msg/editor/simple-text.png +0 -0
  192. package/screenshots/truth/actions/send_msg/editor/text-with-linebreaks.png +0 -0
  193. package/screenshots/truth/actions/send_msg/editor/text-with-many-quick-replies.png +0 -0
  194. package/screenshots/truth/actions/send_msg/editor/text-with-quick-replies.png +0 -0
  195. package/screenshots/truth/actions/send_msg/editor/text-without-quick-replies.png +0 -0
  196. package/screenshots/truth/actions/send_msg/render/long-quick-replies.png +0 -0
  197. package/screenshots/truth/actions/send_msg/render/multiline-text-with-replies.png +0 -0
  198. package/screenshots/truth/actions/send_msg/render/simple-text.png +0 -0
  199. package/screenshots/truth/actions/send_msg/render/text-with-linebreaks.png +0 -0
  200. package/screenshots/truth/actions/send_msg/render/text-with-many-quick-replies.png +0 -0
  201. package/screenshots/truth/actions/send_msg/render/text-with-quick-replies.png +0 -0
  202. package/screenshots/truth/actions/send_msg/render/text-without-quick-replies.png +0 -0
  203. package/screenshots/truth/editor/router.png +0 -0
  204. package/screenshots/truth/editor/send_msg.png +0 -0
  205. package/screenshots/truth/editor/set_contact_language.png +0 -0
  206. package/screenshots/truth/editor/set_contact_name.png +0 -0
  207. package/screenshots/truth/editor/set_run_result.png +0 -0
  208. package/screenshots/truth/editor/wait.png +0 -0
  209. package/screenshots/truth/formfield/markdown-errors.png +0 -0
  210. package/screenshots/truth/formfield/plain-text-errors.png +0 -0
  211. package/screenshots/truth/formfield/widget-only-markdown-errors.png +0 -0
  212. package/screenshots/truth/integration/checkbox-markdown-errors.png +0 -0
  213. package/src/events.ts +1 -40
  214. package/src/flow/{EditorNode.ts → CanvasNode.ts} +424 -48
  215. package/src/flow/Editor.ts +140 -4
  216. package/src/flow/NodeEditor.ts +1454 -0
  217. package/src/flow/Plumber.ts +0 -9
  218. package/src/flow/actions/add_contact_groups.ts +42 -0
  219. package/src/flow/actions/add_contact_urn.ts +17 -0
  220. package/src/flow/actions/add_input_labels.ts +12 -0
  221. package/src/flow/actions/call_classifier.ts +12 -0
  222. package/src/flow/actions/call_llm.ts +12 -0
  223. package/src/flow/actions/call_resthook.ts +12 -0
  224. package/src/flow/actions/call_webhook.ts +133 -0
  225. package/src/flow/actions/enter_flow.ts +15 -0
  226. package/src/flow/actions/open_ticket.ts +12 -0
  227. package/src/flow/actions/play_audio.ts +12 -0
  228. package/src/flow/actions/remove_contact_groups.ts +66 -0
  229. package/src/flow/actions/request_optin.ts +12 -0
  230. package/src/flow/actions/say_msg.ts +12 -0
  231. package/src/flow/actions/send_broadcast.ts +35 -0
  232. package/src/flow/actions/send_email.ts +60 -0
  233. package/src/flow/actions/send_msg.ts +58 -0
  234. package/src/flow/actions/set_contact_channel.ts +13 -0
  235. package/src/flow/actions/set_contact_field.ts +13 -0
  236. package/src/flow/actions/set_contact_language.ts +11 -0
  237. package/src/flow/actions/set_contact_name.ts +11 -0
  238. package/src/flow/actions/set_contact_status.ts +11 -0
  239. package/src/flow/actions/set_run_result.ts +11 -0
  240. package/src/flow/actions/split_by_expression_example.ts +88 -0
  241. package/src/flow/actions/start_session.ts +12 -0
  242. package/src/flow/actions/transfer_airtime.ts +12 -0
  243. package/src/flow/config.ts +93 -232
  244. package/src/flow/nodes/execute_actions.ts +5 -0
  245. package/src/flow/nodes/split_by_airtime.ts +9 -0
  246. package/src/flow/nodes/split_by_contact_field.ts +7 -0
  247. package/src/flow/nodes/split_by_expression.ts +7 -0
  248. package/src/flow/nodes/split_by_groups.ts +7 -0
  249. package/src/flow/nodes/split_by_random.ts +10 -0
  250. package/src/flow/nodes/split_by_run_result.ts +7 -0
  251. package/src/flow/nodes/split_by_scheme.ts +7 -0
  252. package/src/flow/nodes/split_by_subflow.ts +9 -0
  253. package/src/flow/nodes/split_by_webhook.ts +19 -0
  254. package/src/flow/nodes/wait_for_audio.ts +7 -0
  255. package/src/flow/nodes/wait_for_digits.ts +7 -0
  256. package/src/flow/nodes/wait_for_image.ts +7 -0
  257. package/src/flow/nodes/wait_for_location.ts +7 -0
  258. package/src/flow/nodes/wait_for_menu.ts +7 -0
  259. package/src/flow/nodes/wait_for_response.ts +7 -0
  260. package/src/flow/nodes/wait_for_video.ts +7 -0
  261. package/src/flow/types.ts +352 -0
  262. package/src/flow/utils.ts +76 -0
  263. package/src/form/ArrayEditor.ts +240 -0
  264. package/src/form/BaseListEditor.ts +177 -0
  265. package/src/form/Checkbox.ts +22 -3
  266. package/src/form/Completion.ts +6 -0
  267. package/src/form/FormField.ts +115 -11
  268. package/src/form/KeyValueEditor.ts +251 -0
  269. package/src/form/select/Select.ts +105 -32
  270. package/src/interfaces.ts +7 -2
  271. package/src/live/ContactChat.ts +3 -97
  272. package/src/store/flow-definition.d.ts +6 -1
  273. package/static/api/contacts.json +30 -0
  274. package/static/api/groups.json +4 -426
  275. package/static/api/locations.json +24 -0
  276. package/static/api/media.json +5 -0
  277. package/static/api/optins.json +16 -0
  278. package/static/api/orgs.json +13 -0
  279. package/static/api/topics.json +21 -0
  280. package/static/api/users.json +26 -0
  281. package/static/css/temba-components.css +3 -6
  282. package/temba-modules.ts +9 -2
  283. package/test/ActionHelper.ts +142 -0
  284. package/test/actions/add_contact_groups.test.ts +89 -0
  285. package/test/actions/remove_contact_groups.test.ts +265 -0
  286. package/test/actions/send_email.test.ts +214 -0
  287. package/test/actions/send_msg.test.ts +130 -0
  288. package/test/temba-action-editing-integration.test.ts +240 -0
  289. package/test/temba-checkbox.test.ts +1 -1
  290. package/test/temba-field-config.test.ts +152 -0
  291. package/test/temba-flow-editor-node.test.ts +18 -18
  292. package/test/temba-node-editor.test.ts +353 -0
  293. package/test/temba-select.test.ts +234 -0
  294. package/test-assets/contacts/history.json +11 -33
  295. package/web-dev-server.config.mjs +34 -0
  296. package/.github/workflows/coverage.yml +0 -80
  297. package/demo/sticky-note-demo.html +0 -155
  298. package/out-tsc/src/flow/EditorNode.js.map +0 -1
  299. package/out-tsc/src/flow/render.js +0 -358
  300. package/out-tsc/src/flow/render.js.map +0 -1
  301. package/out-tsc/test/temba-flow-render.test.js +0 -794
  302. package/out-tsc/test/temba-flow-render.test.js.map +0 -1
  303. package/src/flow/render.ts +0 -443
  304. package/test/temba-flow-render.test.ts +0 -1003
@@ -9,285 +9,17 @@
9
9
  "status": "ready",
10
10
  "count": 0
11
11
  },
12
- {
13
- "uuid": "fe782b0f-7cd8-41b9-88c3-9556bbabc01e",
14
- "name": "My Missing Group",
15
- "query": null,
16
- "status": "ready",
17
- "count": 0
18
- },
19
- {
20
- "uuid": "2ab97b37-66fe-41ef-af63-be571943d742",
21
- "name": "hey ho",
22
- "query": null,
23
- "status": "ready",
24
- "count": 0
25
- },
26
- {
27
- "uuid": "23155115-9ea9-48a2-8196-9048becb3012",
28
- "name": "My Doo",
29
- "query": null,
30
- "status": "ready",
31
- "count": 0
32
- },
33
12
  {
34
13
  "uuid": "f80ed7b6-5e6a-49eb-94b6-4631a9677cd8",
35
- "name": "Reporters Group",
36
- "query": null,
37
- "status": "ready",
38
- "count": 0
39
- },
40
- {
41
- "uuid": "df1e0363-77ce-4ec0-be06-de5cc0ca27c7",
42
- "name": "my dog",
43
- "query": null,
44
- "status": "ready",
45
- "count": 0
46
- },
47
- {
48
- "uuid": "fe340775-8405-4984-845c-9674668f36db",
49
- "name": "hey there",
50
- "query": null,
51
- "status": "ready",
52
- "count": 0
53
- },
54
- {
55
- "uuid": "1194ce92-af22-4b61-b47d-89022f12c90e",
56
- "name": "test",
57
- "query": null,
58
- "status": "ready",
59
- "count": 0
60
- },
61
- {
62
- "uuid": "b9c04add-6265-4dbb-a491-277273707a89",
63
- "name": "heep",
64
- "query": null,
65
- "status": "ready",
66
- "count": 0
67
- },
68
- {
69
- "uuid": "148d7d29-2391-462e-834f-6009f03dcc06",
70
- "name": "help",
71
- "query": null,
72
- "status": "ready",
73
- "count": 0
74
- },
75
- {
76
- "uuid": "2501c14e-1714-44eb-9054-1a1d361b2953",
77
- "name": "bloop",
78
- "query": null,
79
- "status": "ready",
80
- "count": 0
81
- },
82
- {
83
- "uuid": "cc7540c9-6330-4c6b-952a-60da501ea34c",
84
- "name": "meep",
85
- "query": null,
86
- "status": "ready",
87
- "count": 0
88
- },
89
- {
90
- "uuid": "b13e01ec-6c83-4349-b153-a2e48d0fd394",
91
- "name": "aaaa",
92
- "query": null,
93
- "status": "ready",
94
- "count": 1
95
- },
96
- {
97
- "uuid": "bf1a785d-1ed4-4dfe-b2bc-9826c3f4d09e",
98
- "name": "my new group",
99
- "query": null,
100
- "status": "ready",
101
- "count": 0
102
- },
103
- {
104
- "uuid": "e469ed98-1105-48ee-85c1-b068f4382105",
105
- "name": "this group",
106
- "query": null,
107
- "status": "ready",
108
- "count": 0
109
- },
110
- {
111
- "uuid": "7e9bbac3-3b3b-4624-98dc-d803fe1651e5",
112
- "name": "hello",
113
- "query": null,
114
- "status": "ready",
115
- "count": 0
116
- },
117
- {
118
- "uuid": "3b980c25-fa59-4bb0-80cf-83593ab7063a",
119
- "name": "binksy",
120
- "query": null,
121
- "status": "ready",
122
- "count": 3
123
- },
124
- {
125
- "uuid": "d86561c4-d55d-492f-9ab0-2c2bea0dc874",
126
- "name": "binks",
127
- "query": null,
128
- "status": "ready",
129
- "count": 0
130
- },
131
- {
132
- "uuid": "1afa9dc0-bdb3-41bb-9775-74f1f5d88b86",
133
- "name": "dinks",
134
- "query": null,
135
- "status": "ready",
136
- "count": 0
137
- },
138
- {
139
- "uuid": "b3cbbe34-5d5f-407d-b580-3b2ca9685b04",
140
- "name": "beep",
141
- "query": null,
142
- "status": "ready",
143
- "count": 4
144
- },
145
- {
146
- "uuid": "2287162b-3ac5-47d6-90c5-fff29c0b81d6",
147
- "name": "testing this out",
148
- "query": null,
149
- "status": "ready",
150
- "count": 0
151
- },
152
- {
153
- "uuid": "d67b02da-d6f8-4726-97c1-8ee44f523b7a",
154
- "name": "this is a new group",
155
- "query": null,
156
- "status": "ready",
157
- "count": 0
158
- },
159
- {
160
- "uuid": "50c14517-c9df-4e74-960f-29ca8d632a21",
161
- "name": "my contact group",
162
- "query": null,
163
- "status": "ready",
164
- "count": 0
165
- },
166
- {
167
- "uuid": "e6dce1fa-ef95-40b4-8bcd-564b65e23e25",
168
- "name": "tonk",
169
- "query": null,
170
- "status": "ready",
171
- "count": 0
172
- },
173
- {
174
- "uuid": "d6ef5c52-d9c3-4e72-b394-3622523560c3",
175
- "name": "tink",
176
- "query": null,
177
- "status": "ready",
178
- "count": 0
179
- },
180
- {
181
- "uuid": "d6bcf908-5d4f-4a83-991b-6b22e774ede1",
182
- "name": "dink",
183
- "query": null,
184
- "status": "ready",
185
- "count": 0
186
- },
187
- {
188
- "uuid": "a0a93723-5c32-4ce6-909b-6ae51f458685",
189
- "name": "find",
190
- "query": null,
191
- "status": "ready",
192
- "count": 0
193
- },
194
- {
195
- "uuid": "d64b5828-550c-492f-98f0-d7d6119d75da",
196
- "name": "zzz if you're not first you're last",
14
+ "name": "Reporters",
197
15
  "query": null,
198
16
  "status": "ready",
199
17
  "count": 0
200
18
  },
201
19
  {
202
- "uuid": "fa596957-8e52-493b-b743-996939824162",
203
- "name": "Autopal Borrowers Balance (3) 2",
204
- "query": null,
205
- "status": "ready",
206
- "count": 998
207
- },
208
- {
209
- "uuid": "d4296fdb-d90f-459f-acd3-55112d3fa107",
210
- "name": "Autopal Borrowers Balance (3)",
211
- "query": null,
212
- "status": "ready",
213
- "count": 996
214
- },
215
- {
216
- "uuid": "5b714f8f-3994-45a0-8750-357788f34fd8",
217
- "name": "Contacts 6",
218
- "query": null,
219
- "status": "ready",
220
- "count": 1
221
- },
222
- {
223
- "uuid": "3816370b-cb64-422e-9ab6-2db7bfc662f4",
224
- "name": "Contacts 5",
225
- "query": null,
226
- "status": "ready",
227
- "count": 1
228
- },
229
- {
230
- "uuid": "7e5d414e-664c-4f27-9f3f-f86e1a946a9b",
231
- "name": "Contact Export 17 Unesco Nigeria 2",
232
- "query": null,
233
- "status": "ready",
234
- "count": 1
235
- },
236
- {
237
- "uuid": "27454bea-8784-40d3-9226-037baf5cc31b",
238
- "name": "Contacts 2 3",
239
- "query": null,
240
- "status": "ready",
241
- "count": 1
242
- },
243
- {
244
- "uuid": "8c3afb1c-2ac3-4857-a098-f62e28104220",
245
- "name": "Contact Export 17 Unesco Nigeria",
246
- "query": null,
247
- "status": "ready",
248
- "count": 1
249
- },
250
- {
251
- "uuid": "60649afb-5ece-4974-accc-54e5d9905348",
252
- "name": "Contacts 4",
253
- "query": null,
254
- "status": "ready",
255
- "count": 1
256
- },
257
- {
258
- "uuid": "1e77bcd1-5d29-4be3-97f5-25560cbf3d69",
259
- "name": "Contacts 2 2",
260
- "query": null,
261
- "status": "ready",
262
- "count": 1
263
- },
264
- {
265
- "uuid": "d195e5de-f743-4099-907a-8e716f61a25d",
266
- "name": "Contacts 3",
267
- "query": null,
268
- "status": "ready",
269
- "count": 1
270
- },
271
- {
272
- "uuid": "88939a6c-ef74-4a8f-b1d4-b546eb341ad1",
273
- "name": "Contacts 2",
274
- "query": null,
275
- "status": "ready",
276
- "count": 1
277
- },
278
- {
279
- "uuid": "012b7e81-7c17-40b1-a560-035ca020225e",
280
- "name": "Contacts",
281
- "query": null,
282
- "status": "ready",
283
- "count": 1
284
- },
285
- {
286
- "uuid": "2d26927d-df0f-4399-8955-08bbec9e9510",
287
- "name": "Empty Group",
288
- "query": null,
289
- "status": "ready",
290
- "count": 0
20
+ "uuid": "76e7a094-22ea-441d-91c4-283d8168e8e3",
21
+ "name": "Some Really Long Group Name",
22
+ "count": 2028
291
23
  },
292
24
  {
293
25
  "uuid": "66e7a094-22ea-441d-91c4-283d8168e8e4",
@@ -296,166 +28,12 @@
296
28
  "status": "ready",
297
29
  "count": 1028
298
30
  },
299
- {
300
- "uuid": "7e0de6cc-e6a9-47cd-a9b4-c08f33d597e7",
301
- "name": "Cathies",
302
- "query": "name ~ \"cathy\" OR name ~ \"dave\"",
303
- "status": "ready",
304
- "count": 1097
305
- },
306
- {
307
- "uuid": "bb2149b2-19ef-4fe2-9fd4-d7dd190133de",
308
- "name": "Tiger Owners",
309
- "query": "tel ~ 123123",
310
- "status": "ready",
311
- "count": 1
312
- },
313
- {
314
- "uuid": "44aa1430-9541-4424-8e6f-f9bb8804f0c3",
315
- "name": "Men",
316
- "query": "gender = \"M\"",
317
- "status": "ready",
318
- "count": 1947
319
- },
320
- {
321
- "uuid": "a023ec42-a5e0-46a4-a58b-04aa70e4541b",
322
- "name": "Over 30",
323
- "query": "age > 30",
324
- "status": "ready",
325
- "count": 3050
326
- },
327
- {
328
- "uuid": "3da236a9-9eed-4db3-a18e-cfb58030c249",
329
- "name": "Daves",
330
- "query": "name ~ \"dave\"",
331
- "status": "ready",
332
- "count": 558
333
- },
334
- {
335
- "uuid": "a881c17e-1c3d-4690-ae5d-b09d7afce751",
336
- "name": "An empty group",
337
- "query": null,
338
- "status": "ready",
339
- "count": 3
340
- },
341
- {
342
- "uuid": "713294f8-7b2f-4085-bb8a-1a73e9aab010",
343
- "name": "Another group",
344
- "query": null,
345
- "status": "ready",
346
- "count": 0
347
- },
348
- {
349
- "uuid": "2388a980-895c-4ad2-aa6b-8b277b38e9e2",
350
- "name": "Fredas",
351
- "query": "name ~ \"freda\"",
352
- "status": "ready",
353
- "count": 585
354
- },
355
- {
356
- "uuid": "c7686017-8067-496c-9742-67c70f8b2a06",
357
- "name": "More Groups",
358
- "query": null,
359
- "status": "ready",
360
- "count": 0
361
- },
362
- {
363
- "uuid": "c251795b-4883-46e7-82a1-579a017e1de1",
364
- "name": "a new groupss",
365
- "query": null,
366
- "status": "ready",
367
- "count": 3
368
- },
369
- {
370
- "uuid": "37a71055-6559-4ca5-9650-b49f92d0e97c",
371
- "name": "boom",
372
- "query": null,
373
- "status": "ready",
374
- "count": 3
375
- },
376
- {
377
- "uuid": "10659ca2-c3bf-4093-a5cb-2bdb899c90b1",
378
- "name": "Female Daves",
379
- "query": "gender = \"F\" AND name ~ \"Dave\"",
380
- "status": "ready",
381
- "count": 239
382
- },
383
- {
384
- "uuid": "2956776e-2ffc-40c5-b90c-81ad8166fca0",
385
- "name": "CoronaBots",
386
- "query": null,
387
- "status": "ready",
388
- "count": 4
389
- },
390
- {
391
- "uuid": "b344c90c-6fb9-4780-b736-6ce155b05885",
392
- "name": "My Empty Group",
393
- "query": null,
394
- "status": "ready",
395
- "count": 0
396
- },
397
- {
398
- "uuid": "ec05d996-de96-4bb7-b899-43bf6c6a1d2a",
399
- "name": "Districts",
400
- "query": "(district = \"Faskari\" OR district = \"Zuru\") OR district = \"Anka\"",
401
- "status": "ready",
402
- "count": 48
403
- },
404
- {
405
- "uuid": "b0764c75-d127-476d-a289-f6c2f386a78e",
406
- "name": "Unregistered",
407
- "query": "joined = \"\"",
408
- "status": "ready",
409
- "count": 2001
410
- },
411
31
  {
412
32
  "uuid": "94e3ff12-9206-4ce8-87ab-934a864a1819",
413
33
  "name": "Youth",
414
34
  "query": "age <= 18",
415
35
  "status": "ready",
416
36
  "count": 174
417
- },
418
- {
419
- "uuid": "773e8f9e-763d-499d-bcb1-29033583d1cb",
420
- "name": "Testers",
421
- "query": null,
422
- "status": "ready",
423
- "count": 489
424
- },
425
- {
426
- "uuid": "7721e314-6736-4486-8ba0-ee76863c1e8a",
427
- "name": "Drivers",
428
- "query": null,
429
- "status": "ready",
430
- "count": 1014
431
- },
432
- {
433
- "uuid": "53001dcd-3a37-4e91-92ec-ea0316355d23",
434
- "name": "Teachers",
435
- "query": null,
436
- "status": "ready",
437
- "count": 1513
438
- },
439
- {
440
- "uuid": "fd44d497-5d2d-42d5-b020-bdbd90b5458e",
441
- "name": "Doctors",
442
- "query": null,
443
- "status": "ready",
444
- "count": 1989
445
- },
446
- {
447
- "uuid": "1085bab0-5a4d-4a04-a44c-dba53809e5c1",
448
- "name": "Farmers",
449
- "query": null,
450
- "status": "ready",
451
- "count": 2535
452
- },
453
- {
454
- "uuid": "ecf14ec4-5c9f-4e6b-84f8-9b0f191f92b6",
455
- "name": "Reporters",
456
- "query": null,
457
- "status": "ready",
458
- "count": 4768
459
37
  }
460
38
  ]
461
39
  }
@@ -0,0 +1,24 @@
1
+ {
2
+ "next": null,
3
+ "previous": null,
4
+ "results": [
5
+ {
6
+ "level": 0,
7
+ "boundary": "country-1",
8
+ "name": "United States",
9
+ "aliases": ["US", "USA"]
10
+ },
11
+ {
12
+ "level": 1,
13
+ "boundary": "state-1",
14
+ "name": "New York",
15
+ "parent": "country-1"
16
+ },
17
+ {
18
+ "level": 2,
19
+ "boundary": "city-1",
20
+ "name": "New York City",
21
+ "parent": "state-1"
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "next": null,
3
+ "previous": null,
4
+ "results": []
5
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "next": null,
3
+ "previous": null,
4
+ "results": [
5
+ {
6
+ "uuid": "optin-1",
7
+ "name": "Newsletter Signup",
8
+ "created_on": "2024-01-01T00:00:00Z"
9
+ },
10
+ {
11
+ "uuid": "optin-2",
12
+ "name": "Marketing Updates",
13
+ "created_on": "2024-01-01T00:00:00Z"
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "next": null,
3
+ "previous": null,
4
+ "results": [
5
+ {
6
+ "uuid": "org-1",
7
+ "name": "Demo Organization",
8
+ "plan": "pro",
9
+ "timezone": "America/New_York",
10
+ "created_on": "2024-01-01T00:00:00Z"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "next": null,
3
+ "previous": null,
4
+ "results": [
5
+ {
6
+ "uuid": "topic-1",
7
+ "name": "General Support",
8
+ "created_on": "2024-01-01T00:00:00Z"
9
+ },
10
+ {
11
+ "uuid": "topic-2",
12
+ "name": "Technical Issues",
13
+ "created_on": "2024-01-01T00:00:00Z"
14
+ },
15
+ {
16
+ "uuid": "topic-3",
17
+ "name": "Billing Questions",
18
+ "created_on": "2024-01-01T00:00:00Z"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "next": null,
3
+ "previous": null,
4
+ "results": [
5
+ {
6
+ "uuid": "user-1",
7
+ "email": "admin@example.com",
8
+ "first_name": "Admin",
9
+ "last_name": "User",
10
+ "username": "admin",
11
+ "is_active": true,
12
+ "is_staff": true,
13
+ "date_joined": "2024-01-01T00:00:00Z"
14
+ },
15
+ {
16
+ "uuid": "user-2",
17
+ "email": "editor@example.com",
18
+ "first_name": "Editor",
19
+ "last_name": "User",
20
+ "username": "editor",
21
+ "is_active": true,
22
+ "is_staff": false,
23
+ "date_joined": "2024-01-01T00:00:00Z"
24
+ }
25
+ ]
26
+ }
@@ -32,7 +32,6 @@
32
32
 
33
33
  /* primary colors, should be dark */
34
34
  --color-selection: #f0f6ff;
35
-
36
35
  --color-success: #3ca96a;
37
36
 
38
37
  --widget-box-shadow: rgba(-1, -1, 0, .15) 0px 1px 7px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;
@@ -43,8 +42,8 @@
43
42
  --shadow-widget: 0 3px 20px 0 rgba(0, 0, 0, 0.04), 0 1px 2px 0 rgba(0, 0, 0, 0.02);
44
43
 
45
44
  /* page text, borders, widgets */
46
- --color-text: #555;
47
- --color-widget-text: #555;
45
+ --color-text: #333;;
46
+ --color-widget-text: #333;
48
47
  --color-borders: rgba(0, 0, 0, 0.07);
49
48
  --color-placeholder: rgb(167, 167, 167);
50
49
 
@@ -58,11 +57,9 @@
58
57
 
59
58
  /* light text goes over dark, dark over lights */
60
59
  --color-text-light: rgba(255, 255, 255, 1);
61
- --color-text-dark: rgba(0, 0, 0, 0.5);
60
+ --color-text-dark: rgba(0, 0, 0, 0.8);
62
61
  --color-text-dark-secondary: rgba(0, 0, 0, 0.25);
63
62
  --color-text-help: rgba(0, 0, 0, 0.35);
64
-
65
-
66
63
  --color-tertiary: rgb(var(--tertiary-rgb));
67
64
 
68
65
  --help-text-size: 0.85em;
package/temba-modules.ts CHANGED
@@ -56,7 +56,7 @@ import { Toast } from './src/display/Toast';
56
56
  import { Chat } from './src/display/Chat';
57
57
  import { MediaPicker } from './src/form/MediaPicker';
58
58
  import { Editor } from './src/flow/Editor';
59
- import { EditorNode } from './src/flow/EditorNode';
59
+ import { CanvasNode } from './src/flow/CanvasNode';
60
60
  import { StickyNote } from './src/flow/StickyNote';
61
61
  import { ContactNotepad } from './src/live/ContactNotepad';
62
62
  import { ProgressBar } from './src/display/ProgressBar';
@@ -67,6 +67,10 @@ import { UserSelect } from './src/form/select/UserSelect';
67
67
  import { WorkspaceSelect } from './src/form/select/WorkspaceSelect';
68
68
  import { TembaChart } from './src/live/TembaChart';
69
69
  import { RangePicker } from './src/form/RangePicker';
70
+ import { NodeEditor } from './src/flow/NodeEditor';
71
+ import { KeyValueEditor } from './src/form/KeyValueEditor';
72
+ import { TembaArrayEditor } from './src/form/ArrayEditor';
73
+ import './src/form/BaseListEditor'; // Import base class
70
74
 
71
75
  export function addCustomElement(name: string, comp: any) {
72
76
  if (!window.customElements.get(name)) {
@@ -134,7 +138,8 @@ addCustomElement('temba-toast', Toast);
134
138
  addCustomElement('temba-chat', Chat);
135
139
  addCustomElement('temba-media-picker', MediaPicker);
136
140
  addCustomElement('temba-flow-editor', Editor);
137
- addCustomElement('temba-flow-node', EditorNode);
141
+ addCustomElement('temba-node-editor', NodeEditor);
142
+ addCustomElement('temba-flow-node', CanvasNode);
138
143
  addCustomElement('temba-sticky-note', StickyNote);
139
144
  addCustomElement('temba-contact-notepad', ContactNotepad);
140
145
  addCustomElement('temba-progress', ProgressBar);
@@ -144,3 +149,5 @@ addCustomElement('temba-popup-select', PopupSelect);
144
149
  addCustomElement('temba-user-select', UserSelect);
145
150
  addCustomElement('temba-workspace-select', WorkspaceSelect);
146
151
  addCustomElement('temba-chart', TembaChart);
152
+ addCustomElement('temba-key-value-editor', KeyValueEditor);
153
+ addCustomElement('temba-array-editor', TembaArrayEditor);