@nyaruka/temba-components 0.131.1 → 0.131.3

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 (485) hide show
  1. package/.github/workflows/publish.yml +4 -1
  2. package/CHANGELOG.md +75 -1
  3. package/demo/components/floating-tabs/example.html +400 -0
  4. package/demo/components/flow/index.html +1 -1
  5. package/demo/data/flows/food-order.json +2 -2
  6. package/demo/data/flows/sample-flow.json +113 -125
  7. package/demo/data/flows/voicemail.json +613 -0
  8. package/demo/index.html +6 -0
  9. package/dist/locales/es.js +5 -5
  10. package/dist/locales/es.js.map +1 -1
  11. package/dist/locales/fr.js +5 -5
  12. package/dist/locales/fr.js.map +1 -1
  13. package/dist/locales/locale-codes.js +11 -2
  14. package/dist/locales/locale-codes.js.map +1 -1
  15. package/dist/locales/pt.js +5 -5
  16. package/dist/locales/pt.js.map +1 -1
  17. package/dist/static/svg/index.svg +1 -1
  18. package/dist/temba-components.js +1773 -662
  19. package/dist/temba-components.js.map +1 -1
  20. package/out-tsc/src/Icons.js +4 -1
  21. package/out-tsc/src/Icons.js.map +1 -1
  22. package/out-tsc/src/display/FloatingTab.js +167 -0
  23. package/out-tsc/src/display/FloatingTab.js.map +1 -0
  24. package/out-tsc/src/display/ProgressBar.js +22 -2
  25. package/out-tsc/src/display/ProgressBar.js.map +1 -1
  26. package/out-tsc/src/events.js.map +1 -1
  27. package/out-tsc/src/flow/CanvasMenu.js +200 -0
  28. package/out-tsc/src/flow/CanvasMenu.js.map +1 -0
  29. package/out-tsc/src/flow/CanvasNode.js +489 -47
  30. package/out-tsc/src/flow/CanvasNode.js.map +1 -1
  31. package/out-tsc/src/flow/Editor.js +1417 -67
  32. package/out-tsc/src/flow/Editor.js.map +1 -1
  33. package/out-tsc/src/flow/NodeEditor.js +479 -112
  34. package/out-tsc/src/flow/NodeEditor.js.map +1 -1
  35. package/out-tsc/src/flow/NodeTypeSelector.js +540 -0
  36. package/out-tsc/src/flow/NodeTypeSelector.js.map +1 -0
  37. package/out-tsc/src/flow/StickyNote.js +12 -3
  38. package/out-tsc/src/flow/StickyNote.js.map +1 -1
  39. package/out-tsc/src/flow/actions/add_contact_groups.js +4 -3
  40. package/out-tsc/src/flow/actions/add_contact_groups.js.map +1 -1
  41. package/out-tsc/src/flow/actions/add_contact_urn.js +63 -4
  42. package/out-tsc/src/flow/actions/add_contact_urn.js.map +1 -1
  43. package/out-tsc/src/flow/actions/add_input_labels.js +4 -3
  44. package/out-tsc/src/flow/actions/add_input_labels.js.map +1 -1
  45. package/out-tsc/src/flow/actions/play_audio.js +3 -2
  46. package/out-tsc/src/flow/actions/play_audio.js.map +1 -1
  47. package/out-tsc/src/flow/actions/remove_contact_groups.js +7 -5
  48. package/out-tsc/src/flow/actions/remove_contact_groups.js.map +1 -1
  49. package/out-tsc/src/flow/actions/request_optin.js +3 -2
  50. package/out-tsc/src/flow/actions/request_optin.js.map +1 -1
  51. package/out-tsc/src/flow/actions/say_msg.js +3 -2
  52. package/out-tsc/src/flow/actions/say_msg.js.map +1 -1
  53. package/out-tsc/src/flow/actions/send_broadcast.js +77 -23
  54. package/out-tsc/src/flow/actions/send_broadcast.js.map +1 -1
  55. package/out-tsc/src/flow/actions/send_email.js +5 -5
  56. package/out-tsc/src/flow/actions/send_email.js.map +1 -1
  57. package/out-tsc/src/flow/actions/send_msg.js +101 -21
  58. package/out-tsc/src/flow/actions/send_msg.js.map +1 -1
  59. package/out-tsc/src/flow/actions/set_contact_channel.js +6 -9
  60. package/out-tsc/src/flow/actions/set_contact_channel.js.map +1 -1
  61. package/out-tsc/src/flow/actions/set_contact_field.js +20 -20
  62. package/out-tsc/src/flow/actions/set_contact_field.js.map +1 -1
  63. package/out-tsc/src/flow/actions/set_contact_language.js +3 -2
  64. package/out-tsc/src/flow/actions/set_contact_language.js.map +1 -1
  65. package/out-tsc/src/flow/actions/set_contact_name.js +3 -12
  66. package/out-tsc/src/flow/actions/set_contact_name.js.map +1 -1
  67. package/out-tsc/src/flow/actions/set_contact_status.js +3 -2
  68. package/out-tsc/src/flow/actions/set_contact_status.js.map +1 -1
  69. package/out-tsc/src/flow/actions/set_run_result.js +4 -3
  70. package/out-tsc/src/flow/actions/set_run_result.js.map +1 -1
  71. package/out-tsc/src/flow/actions/start_session.js +181 -6
  72. package/out-tsc/src/flow/actions/start_session.js.map +1 -1
  73. package/out-tsc/src/flow/config.js +11 -23
  74. package/out-tsc/src/flow/config.js.map +1 -1
  75. package/out-tsc/src/flow/currencies.js +45 -0
  76. package/out-tsc/src/flow/currencies.js.map +1 -0
  77. package/out-tsc/src/flow/nodes/shared-rules.js +257 -0
  78. package/out-tsc/src/flow/nodes/shared-rules.js.map +1 -0
  79. package/out-tsc/src/flow/nodes/shared.js +71 -0
  80. package/out-tsc/src/flow/nodes/shared.js.map +1 -0
  81. package/out-tsc/src/flow/nodes/split_by_airtime.js +211 -5
  82. package/out-tsc/src/flow/nodes/split_by_airtime.js.map +1 -1
  83. package/out-tsc/src/flow/nodes/split_by_contact_field.js +152 -3
  84. package/out-tsc/src/flow/nodes/split_by_contact_field.js.map +1 -1
  85. package/out-tsc/src/flow/nodes/split_by_expression.js +73 -2
  86. package/out-tsc/src/flow/nodes/split_by_expression.js.map +1 -1
  87. package/out-tsc/src/flow/nodes/split_by_groups.js +18 -10
  88. package/out-tsc/src/flow/nodes/split_by_groups.js.map +1 -1
  89. package/out-tsc/src/flow/nodes/split_by_intent.js +8 -0
  90. package/out-tsc/src/flow/nodes/split_by_intent.js.map +1 -0
  91. package/out-tsc/src/flow/nodes/split_by_llm.js +11 -3
  92. package/out-tsc/src/flow/nodes/split_by_llm.js.map +1 -1
  93. package/out-tsc/src/flow/nodes/split_by_llm_categorize.js +10 -3
  94. package/out-tsc/src/flow/nodes/split_by_llm_categorize.js.map +1 -1
  95. package/out-tsc/src/flow/nodes/split_by_random.js +10 -4
  96. package/out-tsc/src/flow/nodes/split_by_random.js.map +1 -1
  97. package/out-tsc/src/flow/nodes/split_by_resthook.js +113 -0
  98. package/out-tsc/src/flow/nodes/split_by_resthook.js.map +1 -0
  99. package/out-tsc/src/flow/nodes/split_by_run_result.js +211 -3
  100. package/out-tsc/src/flow/nodes/split_by_run_result.js.map +1 -1
  101. package/out-tsc/src/flow/nodes/split_by_scheme.js +158 -2
  102. package/out-tsc/src/flow/nodes/split_by_scheme.js.map +1 -1
  103. package/out-tsc/src/flow/nodes/split_by_subflow.js +13 -5
  104. package/out-tsc/src/flow/nodes/split_by_subflow.js.map +1 -1
  105. package/out-tsc/src/flow/nodes/split_by_ticket.js +10 -3
  106. package/out-tsc/src/flow/nodes/split_by_ticket.js.map +1 -1
  107. package/out-tsc/src/flow/nodes/split_by_webhook.js +10 -3
  108. package/out-tsc/src/flow/nodes/split_by_webhook.js.map +1 -1
  109. package/out-tsc/src/flow/nodes/wait_for_digits.js +3 -2
  110. package/out-tsc/src/flow/nodes/wait_for_digits.js.map +1 -1
  111. package/out-tsc/src/flow/nodes/wait_for_menu.js +3 -2
  112. package/out-tsc/src/flow/nodes/wait_for_menu.js.map +1 -1
  113. package/out-tsc/src/flow/nodes/wait_for_response.js +38 -568
  114. package/out-tsc/src/flow/nodes/wait_for_response.js.map +1 -1
  115. package/out-tsc/src/flow/types.js +86 -12
  116. package/out-tsc/src/flow/types.js.map +1 -1
  117. package/out-tsc/src/flow/utils.js +101 -14
  118. package/out-tsc/src/flow/utils.js.map +1 -1
  119. package/out-tsc/src/form/FieldRenderer.js +2 -4
  120. package/out-tsc/src/form/FieldRenderer.js.map +1 -1
  121. package/out-tsc/src/interfaces.js +3 -0
  122. package/out-tsc/src/interfaces.js.map +1 -1
  123. package/out-tsc/src/layout/FloatingWindow.js +346 -0
  124. package/out-tsc/src/layout/FloatingWindow.js.map +1 -0
  125. package/out-tsc/src/list/SortableList.js +98 -33
  126. package/out-tsc/src/list/SortableList.js.map +1 -1
  127. package/out-tsc/src/live/ContactChat.js +6 -25
  128. package/out-tsc/src/live/ContactChat.js.map +1 -1
  129. package/out-tsc/src/locales/es.js +5 -5
  130. package/out-tsc/src/locales/es.js.map +1 -1
  131. package/out-tsc/src/locales/fr.js +5 -5
  132. package/out-tsc/src/locales/fr.js.map +1 -1
  133. package/out-tsc/src/locales/locale-codes.js +11 -2
  134. package/out-tsc/src/locales/locale-codes.js.map +1 -1
  135. package/out-tsc/src/locales/pt.js +5 -5
  136. package/out-tsc/src/locales/pt.js.map +1 -1
  137. package/out-tsc/src/store/AppState.js +120 -0
  138. package/out-tsc/src/store/AppState.js.map +1 -1
  139. package/out-tsc/src/utils.js +254 -13
  140. package/out-tsc/src/utils.js.map +1 -1
  141. package/out-tsc/temba-modules.js +8 -0
  142. package/out-tsc/temba-modules.js.map +1 -1
  143. package/out-tsc/test/ActionHelper.js +3 -3
  144. package/out-tsc/test/ActionHelper.js.map +1 -1
  145. package/out-tsc/test/NodeHelper.js +6 -3
  146. package/out-tsc/test/NodeHelper.js.map +1 -1
  147. package/out-tsc/test/actions/add_contact_urn.test.js +202 -0
  148. package/out-tsc/test/actions/add_contact_urn.test.js.map +1 -0
  149. package/out-tsc/test/actions/send_broadcast.test.js +148 -0
  150. package/out-tsc/test/actions/send_broadcast.test.js.map +1 -0
  151. package/out-tsc/test/actions/send_email.test.js +17 -23
  152. package/out-tsc/test/actions/send_email.test.js.map +1 -1
  153. package/out-tsc/test/actions/send_msg.test.js +33 -15
  154. package/out-tsc/test/actions/send_msg.test.js.map +1 -1
  155. package/out-tsc/test/actions/start_session.test.js +116 -0
  156. package/out-tsc/test/actions/start_session.test.js.map +1 -0
  157. package/out-tsc/test/nodes/split_by_airtime.test.js +604 -0
  158. package/out-tsc/test/nodes/split_by_airtime.test.js.map +1 -0
  159. package/out-tsc/test/nodes/split_by_contact_field.test.js +387 -0
  160. package/out-tsc/test/nodes/split_by_contact_field.test.js.map +1 -0
  161. package/out-tsc/test/nodes/split_by_expression.test.js +614 -0
  162. package/out-tsc/test/nodes/split_by_expression.test.js.map +1 -0
  163. package/out-tsc/test/nodes/split_by_random.test.js +3 -3
  164. package/out-tsc/test/nodes/split_by_random.test.js.map +1 -1
  165. package/out-tsc/test/nodes/split_by_resthook.test.js +337 -0
  166. package/out-tsc/test/nodes/split_by_resthook.test.js.map +1 -0
  167. package/out-tsc/test/nodes/split_by_run_result.test.js +920 -0
  168. package/out-tsc/test/nodes/split_by_run_result.test.js.map +1 -0
  169. package/out-tsc/test/nodes/split_by_scheme.test.js +399 -0
  170. package/out-tsc/test/nodes/split_by_scheme.test.js.map +1 -0
  171. package/out-tsc/test/nodes/split_by_subflow.test.js +333 -0
  172. package/out-tsc/test/nodes/split_by_subflow.test.js.map +1 -0
  173. package/out-tsc/test/nodes/wait_for_digits.test.js +2 -2
  174. package/out-tsc/test/nodes/wait_for_digits.test.js.map +1 -1
  175. package/out-tsc/test/nodes/wait_for_response.test.js +2 -1
  176. package/out-tsc/test/nodes/wait_for_response.test.js.map +1 -1
  177. package/out-tsc/test/temba-action-drag-between-nodes.test.js +252 -0
  178. package/out-tsc/test/temba-action-drag-between-nodes.test.js.map +1 -0
  179. package/out-tsc/test/temba-canvas-menu.test.js +122 -0
  180. package/out-tsc/test/temba-canvas-menu.test.js.map +1 -0
  181. package/out-tsc/test/temba-floating-tab.test.js +91 -0
  182. package/out-tsc/test/temba-floating-tab.test.js.map +1 -0
  183. package/out-tsc/test/temba-floating-window.test.js +301 -0
  184. package/out-tsc/test/temba-floating-window.test.js.map +1 -0
  185. package/out-tsc/test/temba-flow-editor-node.test.js +202 -2
  186. package/out-tsc/test/temba-flow-editor-node.test.js.map +1 -1
  187. package/out-tsc/test/temba-flow-editor.test.js +7 -8
  188. package/out-tsc/test/temba-flow-editor.test.js.map +1 -1
  189. package/out-tsc/test/temba-localization.test.js +471 -0
  190. package/out-tsc/test/temba-localization.test.js.map +1 -0
  191. package/out-tsc/test/temba-node-editor.test.js +3 -1
  192. package/out-tsc/test/temba-node-editor.test.js.map +1 -1
  193. package/out-tsc/test/temba-node-type-selector.test.js +265 -0
  194. package/out-tsc/test/temba-node-type-selector.test.js.map +1 -0
  195. package/out-tsc/test/temba-omnibox.test.js +2 -1
  196. package/out-tsc/test/temba-omnibox.test.js.map +1 -1
  197. package/out-tsc/test/temba-sortable-list.test.js +51 -0
  198. package/out-tsc/test/temba-sortable-list.test.js.map +1 -1
  199. package/out-tsc/test/temba-utils-index.test.js +1 -27
  200. package/out-tsc/test/temba-utils-index.test.js.map +1 -1
  201. package/out-tsc/test/utils.test.js +20 -0
  202. package/out-tsc/test/utils.test.js.map +1 -1
  203. package/package.json +2 -1
  204. package/screenshots/truth/actions/add_contact_groups/editor/descriptive-group-names.png +0 -0
  205. package/screenshots/truth/actions/add_contact_groups/editor/long-group-names.png +0 -0
  206. package/screenshots/truth/actions/add_contact_groups/editor/many-groups.png +0 -0
  207. package/screenshots/truth/actions/add_contact_groups/editor/multiple-groups.png +0 -0
  208. package/screenshots/truth/actions/add_contact_groups/editor/single-group.png +0 -0
  209. package/screenshots/truth/actions/add_contact_groups/render/descriptive-group-names.png +0 -0
  210. package/screenshots/truth/actions/add_contact_groups/render/long-group-names.png +0 -0
  211. package/screenshots/truth/actions/add_contact_groups/render/many-groups.png +0 -0
  212. package/screenshots/truth/actions/add_contact_groups/render/multiple-groups.png +0 -0
  213. package/screenshots/truth/actions/add_contact_groups/render/single-group.png +0 -0
  214. package/screenshots/truth/actions/add_contact_urn/editor/expression-facebook.png +0 -0
  215. package/screenshots/truth/actions/add_contact_urn/editor/expression-phone.png +0 -0
  216. package/screenshots/truth/actions/add_contact_urn/editor/facebook-id.png +0 -0
  217. package/screenshots/truth/actions/add_contact_urn/editor/instagram-handle.png +0 -0
  218. package/screenshots/truth/actions/add_contact_urn/editor/line-id.png +0 -0
  219. package/screenshots/truth/actions/add_contact_urn/editor/phone-number.png +0 -0
  220. package/screenshots/truth/actions/add_contact_urn/editor/telegram-id.png +0 -0
  221. package/screenshots/truth/actions/add_contact_urn/editor/viber-id.png +0 -0
  222. package/screenshots/truth/actions/add_contact_urn/editor/wechat-id.png +0 -0
  223. package/screenshots/truth/actions/add_contact_urn/editor/whatsapp.png +0 -0
  224. package/screenshots/truth/actions/add_contact_urn/render/expression-facebook.png +0 -0
  225. package/screenshots/truth/actions/add_contact_urn/render/expression-phone.png +0 -0
  226. package/screenshots/truth/actions/add_contact_urn/render/facebook-id.png +0 -0
  227. package/screenshots/truth/actions/add_contact_urn/render/instagram-handle.png +0 -0
  228. package/screenshots/truth/actions/add_contact_urn/render/line-id.png +0 -0
  229. package/screenshots/truth/actions/add_contact_urn/render/phone-number.png +0 -0
  230. package/screenshots/truth/actions/add_contact_urn/render/telegram-id.png +0 -0
  231. package/screenshots/truth/actions/add_contact_urn/render/viber-id.png +0 -0
  232. package/screenshots/truth/actions/add_contact_urn/render/wechat-id.png +0 -0
  233. package/screenshots/truth/actions/add_contact_urn/render/whatsapp.png +0 -0
  234. package/screenshots/truth/actions/remove_contact_groups/editor/cleanup-groups.png +0 -0
  235. package/screenshots/truth/actions/remove_contact_groups/editor/long-descriptive-group-names.png +0 -0
  236. package/screenshots/truth/actions/remove_contact_groups/editor/many-groups.png +0 -0
  237. package/screenshots/truth/actions/remove_contact_groups/editor/multiple-groups.png +0 -0
  238. package/screenshots/truth/actions/remove_contact_groups/editor/remove-from-all-groups.png +0 -0
  239. package/screenshots/truth/actions/remove_contact_groups/editor/single-group.png +0 -0
  240. package/screenshots/truth/actions/remove_contact_groups/render/cleanup-groups.png +0 -0
  241. package/screenshots/truth/actions/remove_contact_groups/render/long-descriptive-group-names.png +0 -0
  242. package/screenshots/truth/actions/remove_contact_groups/render/many-groups.png +0 -0
  243. package/screenshots/truth/actions/remove_contact_groups/render/multiple-groups.png +0 -0
  244. package/screenshots/truth/actions/remove_contact_groups/render/remove-from-all-groups.png +0 -0
  245. package/screenshots/truth/actions/remove_contact_groups/render/single-group.png +0 -0
  246. package/screenshots/truth/actions/send_broadcast/editor/contacts-only.png +0 -0
  247. package/screenshots/truth/actions/send_broadcast/editor/groups-and-contacts.png +0 -0
  248. package/screenshots/truth/actions/send_broadcast/editor/groups-only.png +0 -0
  249. package/screenshots/truth/actions/send_broadcast/editor/many-groups.png +0 -0
  250. package/screenshots/truth/actions/send_broadcast/editor/multiline-text.png +0 -0
  251. package/screenshots/truth/actions/send_broadcast/editor/with-attachments.png +0 -0
  252. package/screenshots/truth/actions/send_broadcast/render/contacts-only.png +0 -0
  253. package/screenshots/truth/actions/send_broadcast/render/groups-and-contacts.png +0 -0
  254. package/screenshots/truth/actions/send_broadcast/render/groups-only.png +0 -0
  255. package/screenshots/truth/actions/send_broadcast/render/many-groups.png +0 -0
  256. package/screenshots/truth/actions/send_broadcast/render/multiline-text.png +0 -0
  257. package/screenshots/truth/actions/send_broadcast/render/with-attachments.png +0 -0
  258. package/screenshots/truth/actions/send_email/editor/complex-business-email.png +0 -0
  259. package/screenshots/truth/actions/send_email/editor/empty-body.png +0 -0
  260. package/screenshots/truth/actions/send_email/editor/empty-subject.png +0 -0
  261. package/screenshots/truth/actions/send_email/editor/long-subject.png +0 -0
  262. package/screenshots/truth/actions/send_email/editor/multiline-body.png +0 -0
  263. package/screenshots/truth/actions/send_email/editor/multiple-recipients.png +0 -0
  264. package/screenshots/truth/actions/send_email/editor/simple-email.png +0 -0
  265. package/screenshots/truth/actions/send_email/editor/with-expressions.png +0 -0
  266. package/screenshots/truth/actions/send_email/render/complex-business-email.png +0 -0
  267. package/screenshots/truth/actions/send_email/render/empty-body.png +0 -0
  268. package/screenshots/truth/actions/send_email/render/empty-subject.png +0 -0
  269. package/screenshots/truth/actions/send_email/render/long-subject.png +0 -0
  270. package/screenshots/truth/actions/send_email/render/multiline-body.png +0 -0
  271. package/screenshots/truth/actions/send_email/render/multiple-recipients.png +0 -0
  272. package/screenshots/truth/actions/send_email/render/simple-email.png +0 -0
  273. package/screenshots/truth/actions/send_email/render/with-expressions.png +0 -0
  274. package/screenshots/truth/actions/send_msg/editor/long-quick-replies.png +0 -0
  275. package/screenshots/truth/actions/send_msg/editor/multiline-text-with-replies.png +0 -0
  276. package/screenshots/truth/actions/send_msg/editor/simple-text.png +0 -0
  277. package/screenshots/truth/actions/send_msg/editor/text-with-linebreaks.png +0 -0
  278. package/screenshots/truth/actions/send_msg/editor/text-with-many-quick-replies.png +0 -0
  279. package/screenshots/truth/actions/send_msg/editor/text-with-quick-replies.png +0 -0
  280. package/screenshots/truth/actions/send_msg/editor/text-without-quick-replies.png +0 -0
  281. package/screenshots/truth/actions/send_msg/render/long-quick-replies.png +0 -0
  282. package/screenshots/truth/actions/send_msg/render/multiline-text-with-replies.png +0 -0
  283. package/screenshots/truth/actions/send_msg/render/simple-text.png +0 -0
  284. package/screenshots/truth/actions/send_msg/render/text-with-linebreaks.png +0 -0
  285. package/screenshots/truth/actions/send_msg/render/text-with-many-quick-replies.png +0 -0
  286. package/screenshots/truth/actions/send_msg/render/text-with-quick-replies.png +0 -0
  287. package/screenshots/truth/actions/send_msg/render/text-without-quick-replies.png +0 -0
  288. package/screenshots/truth/actions/start_session/editor/contact-query.png +0 -0
  289. package/screenshots/truth/actions/start_session/editor/contacts-only.png +0 -0
  290. package/screenshots/truth/actions/start_session/editor/create-contact.png +0 -0
  291. package/screenshots/truth/actions/start_session/editor/groups-and-contacts.png +0 -0
  292. package/screenshots/truth/actions/start_session/editor/groups-only.png +0 -0
  293. package/screenshots/truth/actions/start_session/editor/many-recipients.png +0 -0
  294. package/screenshots/truth/actions/start_session/render/contact-query.png +0 -0
  295. package/screenshots/truth/actions/start_session/render/contacts-only.png +0 -0
  296. package/screenshots/truth/actions/start_session/render/create-contact.png +0 -0
  297. package/screenshots/truth/actions/start_session/render/groups-and-contacts.png +0 -0
  298. package/screenshots/truth/actions/start_session/render/groups-only.png +0 -0
  299. package/screenshots/truth/actions/start_session/render/many-recipients.png +0 -0
  300. package/screenshots/truth/canvas-menu/open.png +0 -0
  301. package/screenshots/truth/editor/router.png +0 -0
  302. package/screenshots/truth/editor/wait.png +0 -0
  303. package/screenshots/truth/floating-tab/default.png +0 -0
  304. package/screenshots/truth/floating-tab/gray.png +0 -0
  305. package/screenshots/truth/floating-tab/green.png +0 -0
  306. package/screenshots/truth/floating-tab/hidden.png +0 -0
  307. package/screenshots/truth/floating-tab/hover.png +0 -0
  308. package/screenshots/truth/floating-tab/purple.png +0 -0
  309. package/screenshots/truth/floating-window/chromeless.png +0 -0
  310. package/screenshots/truth/floating-window/custom-size.png +0 -0
  311. package/screenshots/truth/floating-window/default.png +0 -0
  312. package/screenshots/truth/floating-window/with-header.png +0 -0
  313. package/screenshots/truth/list/fields-dragging.png +0 -0
  314. package/screenshots/truth/list/sortable-dragging.png +0 -0
  315. package/screenshots/truth/node-type-selector/action-mode.png +0 -0
  316. package/screenshots/truth/node-type-selector/split-mode.png +0 -0
  317. package/screenshots/truth/nodes/split_by_llm/editor/information-extraction.png +0 -0
  318. package/screenshots/truth/nodes/split_by_llm/editor/sentiment-analysis.png +0 -0
  319. package/screenshots/truth/nodes/split_by_llm/editor/summarization.png +0 -0
  320. package/screenshots/truth/nodes/split_by_llm/editor/translation-task.png +0 -0
  321. package/screenshots/truth/nodes/split_by_llm/render/information-extraction.png +0 -0
  322. package/screenshots/truth/nodes/split_by_llm/render/sentiment-analysis.png +0 -0
  323. package/screenshots/truth/nodes/split_by_llm/render/summarization.png +0 -0
  324. package/screenshots/truth/nodes/split_by_llm/render/translation-task.png +0 -0
  325. package/screenshots/truth/nodes/split_by_llm_categorize/editor/basic-categorization.png +0 -0
  326. package/screenshots/truth/nodes/split_by_llm_categorize/editor/custom-input-and-result-name.png +0 -0
  327. package/screenshots/truth/nodes/split_by_llm_categorize/editor/feedback-categorization.png +0 -0
  328. package/screenshots/truth/nodes/split_by_llm_categorize/editor/many-categories.png +0 -0
  329. package/screenshots/truth/nodes/split_by_llm_categorize/editor/minimal-categories.png +0 -0
  330. package/screenshots/truth/nodes/split_by_llm_categorize/render/basic-categorization.png +0 -0
  331. package/screenshots/truth/nodes/split_by_llm_categorize/render/custom-input-and-result-name.png +0 -0
  332. package/screenshots/truth/nodes/split_by_llm_categorize/render/feedback-categorization.png +0 -0
  333. package/screenshots/truth/nodes/split_by_llm_categorize/render/many-categories.png +0 -0
  334. package/screenshots/truth/nodes/split_by_llm_categorize/render/minimal-categories.png +0 -0
  335. package/screenshots/truth/nodes/split_by_random/editor/ab-test-multiple-variants.png +0 -0
  336. package/screenshots/truth/nodes/split_by_random/editor/sampling-split.png +0 -0
  337. package/screenshots/truth/nodes/split_by_random/editor/three-way-split.png +0 -0
  338. package/screenshots/truth/nodes/split_by_random/editor/two-bucket-split.png +0 -0
  339. package/screenshots/truth/nodes/split_by_random/render/ab-test-multiple-variants.png +0 -0
  340. package/screenshots/truth/nodes/split_by_random/render/sampling-split.png +0 -0
  341. package/screenshots/truth/nodes/split_by_random/render/three-way-split.png +0 -0
  342. package/screenshots/truth/nodes/split_by_random/render/two-bucket-split.png +0 -0
  343. package/screenshots/truth/nodes/wait_for_digits/editor/basic-digits-wait.png +0 -0
  344. package/screenshots/truth/nodes/wait_for_digits/editor/phone-number-collection.png +0 -0
  345. package/screenshots/truth/nodes/wait_for_digits/editor/single-digit-with-timeout.png +0 -0
  346. package/screenshots/truth/nodes/wait_for_digits/editor/verification-code.png +0 -0
  347. package/screenshots/truth/nodes/wait_for_digits/render/basic-digits-wait.png +0 -0
  348. package/screenshots/truth/nodes/wait_for_digits/render/phone-number-collection.png +0 -0
  349. package/screenshots/truth/nodes/wait_for_digits/render/single-digit-with-timeout.png +0 -0
  350. package/screenshots/truth/nodes/wait_for_digits/render/verification-code.png +0 -0
  351. package/screenshots/truth/nodes/wait_for_response/editor/basic-wait.png +0 -0
  352. package/screenshots/truth/nodes/wait_for_response/editor/custom-result-name.png +0 -0
  353. package/screenshots/truth/nodes/wait_for_response/editor/no-timeout.png +0 -0
  354. package/screenshots/truth/nodes/wait_for_response/editor/short-timeout.png +0 -0
  355. package/screenshots/truth/nodes/wait_for_response/render/basic-wait.png +0 -0
  356. package/screenshots/truth/nodes/wait_for_response/render/custom-result-name.png +0 -0
  357. package/screenshots/truth/nodes/wait_for_response/render/no-timeout.png +0 -0
  358. package/screenshots/truth/nodes/wait_for_response/render/short-timeout.png +0 -0
  359. package/src/Icons.ts +4 -1
  360. package/src/display/FloatingTab.ts +174 -0
  361. package/src/display/ProgressBar.ts +22 -2
  362. package/src/events.ts +2 -8
  363. package/src/flow/CanvasMenu.ts +217 -0
  364. package/src/flow/CanvasNode.ts +596 -40
  365. package/src/flow/Editor.ts +1721 -45
  366. package/src/flow/NodeEditor.ts +621 -144
  367. package/src/flow/NodeTypeSelector.ts +636 -0
  368. package/src/flow/StickyNote.ts +12 -3
  369. package/src/flow/actions/add_contact_groups.ts +5 -4
  370. package/src/flow/actions/add_contact_urn.ts +78 -4
  371. package/src/flow/actions/add_input_labels.ts +5 -4
  372. package/src/flow/actions/play_audio.ts +3 -2
  373. package/src/flow/actions/remove_contact_groups.ts +16 -6
  374. package/src/flow/actions/request_optin.ts +3 -2
  375. package/src/flow/actions/say_msg.ts +3 -2
  376. package/src/flow/actions/send_broadcast.ts +86 -23
  377. package/src/flow/actions/send_email.ts +12 -6
  378. package/src/flow/actions/send_msg.ts +155 -34
  379. package/src/flow/actions/set_contact_channel.ts +6 -11
  380. package/src/flow/actions/set_contact_field.ts +21 -25
  381. package/src/flow/actions/set_contact_language.ts +11 -4
  382. package/src/flow/actions/set_contact_name.ts +4 -15
  383. package/src/flow/actions/set_contact_status.ts +4 -3
  384. package/src/flow/actions/set_run_result.ts +5 -4
  385. package/src/flow/actions/start_session.ts +210 -6
  386. package/src/flow/config.ts +11 -23
  387. package/src/flow/currencies.ts +51 -0
  388. package/src/flow/nodes/shared-rules.ts +301 -0
  389. package/src/flow/nodes/shared.ts +87 -0
  390. package/src/flow/nodes/split_by_airtime.ts +255 -5
  391. package/src/flow/nodes/split_by_contact_field.ts +195 -3
  392. package/src/flow/nodes/split_by_expression.ts +104 -2
  393. package/src/flow/nodes/split_by_groups.ts +26 -11
  394. package/src/flow/nodes/split_by_intent.ts +8 -0
  395. package/src/flow/nodes/split_by_llm.ts +22 -4
  396. package/src/flow/nodes/split_by_llm_categorize.ts +22 -5
  397. package/src/flow/nodes/split_by_random.ts +16 -6
  398. package/src/flow/nodes/split_by_resthook.ts +140 -0
  399. package/src/flow/nodes/split_by_run_result.ts +259 -3
  400. package/src/flow/nodes/split_by_scheme.ts +202 -2
  401. package/src/flow/nodes/split_by_subflow.ts +17 -5
  402. package/src/flow/nodes/split_by_ticket.ts +15 -4
  403. package/src/flow/nodes/split_by_webhook.ts +17 -6
  404. package/src/flow/nodes/wait_for_digits.ts +3 -2
  405. package/src/flow/nodes/wait_for_menu.ts +3 -2
  406. package/src/flow/nodes/wait_for_response.ts +59 -680
  407. package/src/flow/types.ts +156 -23
  408. package/src/flow/utils.ts +108 -14
  409. package/src/form/FieldRenderer.ts +2 -4
  410. package/src/interfaces.ts +3 -0
  411. package/src/layout/FloatingWindow.ts +386 -0
  412. package/src/list/SortableList.ts +109 -34
  413. package/src/live/ContactChat.ts +7 -25
  414. package/src/locales/es.ts +18 -13
  415. package/src/locales/fr.ts +18 -13
  416. package/src/locales/locale-codes.ts +11 -2
  417. package/src/locales/pt.ts +18 -13
  418. package/src/store/AppState.ts +173 -0
  419. package/src/store/flow-definition.d.ts +2 -5
  420. package/src/utils.ts +332 -12
  421. package/static/api/channels.json +46 -0
  422. package/static/api/llms.json +18 -0
  423. package/static/api/resthooks.json +31 -0
  424. package/static/svg/index.svg +1 -1
  425. package/static/svg/work/traced/lightning-02.svg +1 -0
  426. package/static/svg/work/used/lightning-02.svg +3 -0
  427. package/temba-modules.ts +8 -0
  428. package/test/ActionHelper.ts +3 -3
  429. package/test/NodeHelper.ts +6 -3
  430. package/test/actions/add_contact_urn.test.ts +287 -0
  431. package/test/actions/send_broadcast.test.ts +190 -0
  432. package/test/actions/send_email.test.ts +17 -23
  433. package/test/actions/send_msg.test.ts +39 -15
  434. package/test/actions/start_session.test.ts +151 -0
  435. package/test/nodes/split_by_airtime.test.ts +673 -0
  436. package/test/nodes/split_by_contact_field.test.ts +451 -0
  437. package/test/nodes/split_by_expression.test.ts +751 -0
  438. package/test/nodes/split_by_random.test.ts +3 -3
  439. package/test/nodes/split_by_resthook.test.ts +398 -0
  440. package/test/nodes/split_by_run_result.test.ts +1109 -0
  441. package/test/nodes/split_by_scheme.test.ts +486 -0
  442. package/test/nodes/split_by_subflow.test.ts +381 -0
  443. package/test/nodes/wait_for_digits.test.ts +2 -2
  444. package/test/nodes/wait_for_response.test.ts +2 -1
  445. package/test/temba-action-drag-between-nodes.test.ts +301 -0
  446. package/test/temba-canvas-menu.test.ts +156 -0
  447. package/test/temba-floating-tab.test.ts +110 -0
  448. package/test/temba-floating-window.test.ts +477 -0
  449. package/test/temba-flow-editor-node.test.ts +246 -2
  450. package/test/temba-flow-editor.test.ts +7 -8
  451. package/test/temba-localization.test.ts +611 -0
  452. package/test/temba-node-editor.test.ts +3 -1
  453. package/test/temba-node-type-selector.test.ts +355 -0
  454. package/test/temba-omnibox.test.ts +2 -1
  455. package/test/temba-sortable-list.test.ts +69 -0
  456. package/test/temba-utils-index.test.ts +0 -35
  457. package/test/utils.test.ts +22 -0
  458. package/test-assets/contacts/history.json +14 -21
  459. package/test-assets/select/llms.json +2 -2
  460. package/web-dev-server.config.mjs +49 -1
  461. package/web-test-runner.config.mjs +0 -1
  462. package/out-tsc/src/flow/actions/call_classifier.js +0 -11
  463. package/out-tsc/src/flow/actions/call_classifier.js.map +0 -1
  464. package/out-tsc/src/flow/actions/call_resthook.js +0 -11
  465. package/out-tsc/src/flow/actions/call_resthook.js.map +0 -1
  466. package/out-tsc/src/flow/actions/split_by_expression_example.js +0 -77
  467. package/out-tsc/src/flow/actions/split_by_expression_example.js.map +0 -1
  468. package/out-tsc/src/flow/actions/transfer_airtime.js +0 -11
  469. package/out-tsc/src/flow/actions/transfer_airtime.js.map +0 -1
  470. package/out-tsc/src/flow/nodes/wait_for_audio.js +0 -7
  471. package/out-tsc/src/flow/nodes/wait_for_audio.js.map +0 -1
  472. package/out-tsc/src/flow/nodes/wait_for_image.js +0 -7
  473. package/out-tsc/src/flow/nodes/wait_for_image.js.map +0 -1
  474. package/out-tsc/src/flow/nodes/wait_for_location.js +0 -7
  475. package/out-tsc/src/flow/nodes/wait_for_location.js.map +0 -1
  476. package/out-tsc/src/flow/nodes/wait_for_video.js +0 -7
  477. package/out-tsc/src/flow/nodes/wait_for_video.js.map +0 -1
  478. package/src/flow/actions/call_classifier.ts +0 -12
  479. package/src/flow/actions/call_resthook.ts +0 -12
  480. package/src/flow/actions/split_by_expression_example.ts +0 -88
  481. package/src/flow/actions/transfer_airtime.ts +0 -12
  482. package/src/flow/nodes/wait_for_audio.ts +0 -7
  483. package/src/flow/nodes/wait_for_image.ts +0 -7
  484. package/src/flow/nodes/wait_for_location.ts +0 -7
  485. package/src/flow/nodes/wait_for_video.ts +0 -7
@@ -0,0 +1,613 @@
1
+ {
2
+ "definition": {
3
+ "name": "Voicemail",
4
+ "uuid": "b18355ca-9a7a-4cf9-944e-bb9d025d3ff0",
5
+ "spec_version": "14.3.0",
6
+ "language": "eng",
7
+ "type": "voice",
8
+ "nodes": [
9
+ {
10
+ "uuid": "47b02aca-3a16-43e6-8e95-45b482bd932b",
11
+ "actions": [
12
+ {
13
+ "text": "Thanks for calling. If you know the extension for the party you are trying to reach, press one. Otherwise, press two.",
14
+ "audio_url": "https://minio.dev/temba-default/orgs/1/media/20af/20afa0c5-a003-4e85-81e7-26a4a78f6684/baby.mp3",
15
+ "type": "say_msg",
16
+ "uuid": "988daea2-6c57-45ae-8b02-fbc888b9ba21"
17
+ }
18
+ ],
19
+ "exits": [
20
+ {
21
+ "uuid": "d2bffcb8-5c4b-41a3-843d-675cdcf5f6a6",
22
+ "destination_uuid": "bb1d58bb-6098-46f5-9d51-a9b3c80fb83d"
23
+ }
24
+ ]
25
+ },
26
+ {
27
+ "uuid": "709d745e-2aaf-41d9-bddd-1b1ab65641a3",
28
+ "actions": [],
29
+ "router": {
30
+ "type": "switch",
31
+ "wait": {
32
+ "type": "dial",
33
+ "phone": "123456789",
34
+ "dial_limit_seconds": 60,
35
+ "call_limit_seconds": 7200
36
+ },
37
+ "default_category_uuid": "48b88a78-51c7-467f-a702-8436dabbb635",
38
+ "categories": [
39
+ {
40
+ "uuid": "803b110b-7956-4ae0-9537-5ee7a4e9b2f5",
41
+ "name": "Answered",
42
+ "exit_uuid": "4a511b19-6e24-4000-bce3-782b16720e7b"
43
+ },
44
+ {
45
+ "uuid": "62b39f90-4f67-4175-8cd3-646451b32325",
46
+ "name": "No Answer",
47
+ "exit_uuid": "b5376458-52d6-4ea2-a3e3-17af247e5862"
48
+ },
49
+ {
50
+ "uuid": "8a4080e9-9389-4ab7-a555-24f53bce7143",
51
+ "name": "Busy",
52
+ "exit_uuid": "3ce340db-8e7b-476b-9fc6-e8c0d0ac35c4"
53
+ },
54
+ {
55
+ "uuid": "48b88a78-51c7-467f-a702-8436dabbb635",
56
+ "name": "Failed",
57
+ "exit_uuid": "5e1f4d99-34ee-4f11-acef-3a2af959571a"
58
+ }
59
+ ],
60
+ "cases": [
61
+ {
62
+ "uuid": "24c9b2f2-4afa-4e21-87fe-4f8d2f473e04",
63
+ "type": "has_only_text",
64
+ "arguments": ["answered"],
65
+ "category_uuid": "803b110b-7956-4ae0-9537-5ee7a4e9b2f5"
66
+ },
67
+ {
68
+ "uuid": "00acddd4-1360-4a0f-92d2-f42ad13ce4df",
69
+ "type": "has_only_text",
70
+ "arguments": ["no_answer"],
71
+ "category_uuid": "62b39f90-4f67-4175-8cd3-646451b32325"
72
+ },
73
+ {
74
+ "uuid": "23443e57-2f9a-4612-a44f-8c4385b8c313",
75
+ "type": "has_only_text",
76
+ "arguments": ["busy"],
77
+ "category_uuid": "8a4080e9-9389-4ab7-a555-24f53bce7143"
78
+ }
79
+ ],
80
+ "operand": "@(default(resume.dial.status, \"\"))"
81
+ },
82
+ "exits": [
83
+ {
84
+ "uuid": "4a511b19-6e24-4000-bce3-782b16720e7b",
85
+ "destination_uuid": "79d8f3f6-6513-42ed-8208-dd52e19e0a2a"
86
+ },
87
+ {
88
+ "uuid": "b5376458-52d6-4ea2-a3e3-17af247e5862",
89
+ "destination_uuid": "4c373efc-b440-4c50-b8aa-3c98f37b731c"
90
+ },
91
+ {
92
+ "uuid": "3ce340db-8e7b-476b-9fc6-e8c0d0ac35c4",
93
+ "destination_uuid": "4c373efc-b440-4c50-b8aa-3c98f37b731c"
94
+ },
95
+ {
96
+ "uuid": "5e1f4d99-34ee-4f11-acef-3a2af959571a",
97
+ "destination_uuid": "4c373efc-b440-4c50-b8aa-3c98f37b731c"
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ "uuid": "bb1d58bb-6098-46f5-9d51-a9b3c80fb83d",
103
+ "actions": [],
104
+ "router": {
105
+ "type": "switch",
106
+ "operand": "@input.text",
107
+ "default_category_uuid": "1edb7488-6eff-4ab0-ae9b-b8ca632ba0c9",
108
+ "cases": [
109
+ {
110
+ "uuid": "b0e6c14f-6d76-419b-99d5-4db92c0c4648",
111
+ "arguments": ["1"],
112
+ "type": "has_number_eq",
113
+ "category_uuid": "6dd2fa30-989b-450b-a52d-c74dd5e4f302"
114
+ },
115
+ {
116
+ "uuid": "3f6d2394-3d0d-47eb-8dc0-d58cb1cad08c",
117
+ "arguments": ["2"],
118
+ "type": "has_number_eq",
119
+ "category_uuid": "b83f1f46-83b4-4691-a344-d839e81c2eae"
120
+ }
121
+ ],
122
+ "categories": [
123
+ {
124
+ "uuid": "6dd2fa30-989b-450b-a52d-c74dd5e4f302",
125
+ "name": "Extension",
126
+ "exit_uuid": "055710b2-3506-41bc-9e5e-6aa1d7c21bca"
127
+ },
128
+ {
129
+ "uuid": "b83f1f46-83b4-4691-a344-d839e81c2eae",
130
+ "name": "Operator",
131
+ "exit_uuid": "01b95cbc-7493-4ca3-b8b1-8757311bb890"
132
+ },
133
+ {
134
+ "uuid": "1edb7488-6eff-4ab0-ae9b-b8ca632ba0c9",
135
+ "name": "Other",
136
+ "exit_uuid": "c3dfe1e3-8db8-41b2-acd9-e42752a64629"
137
+ }
138
+ ],
139
+ "wait": {
140
+ "type": "msg",
141
+ "hint": {
142
+ "type": "digits",
143
+ "count": 1
144
+ }
145
+ },
146
+ "result_name": "Branch"
147
+ },
148
+ "exits": [
149
+ {
150
+ "uuid": "055710b2-3506-41bc-9e5e-6aa1d7c21bca",
151
+ "destination_uuid": "002d5fa0-6b1f-49c4-9f8c-43a9c89ca5bf"
152
+ },
153
+ {
154
+ "uuid": "01b95cbc-7493-4ca3-b8b1-8757311bb890"
155
+ },
156
+ {
157
+ "uuid": "c3dfe1e3-8db8-41b2-acd9-e42752a64629",
158
+ "destination_uuid": "709d745e-2aaf-41d9-bddd-1b1ab65641a3"
159
+ }
160
+ ]
161
+ },
162
+ {
163
+ "uuid": "4c373efc-b440-4c50-b8aa-3c98f37b731c",
164
+ "actions": [
165
+ {
166
+ "text": "Sorry, didn't work out.",
167
+ "type": "say_msg",
168
+ "uuid": "afa47f08-762c-4d55-82ff-78f61b1f0f91"
169
+ }
170
+ ],
171
+ "exits": [
172
+ {
173
+ "uuid": "5c727bf0-8b5d-4513-af93-87824b9ddd9b",
174
+ "destination_uuid": null
175
+ }
176
+ ]
177
+ },
178
+ {
179
+ "uuid": "79d8f3f6-6513-42ed-8208-dd52e19e0a2a",
180
+ "actions": [
181
+ {
182
+ "text": "Call complete.",
183
+ "type": "say_msg",
184
+ "uuid": "b5fd0487-3c76-46d2-a2bf-cffd68cc51f1"
185
+ }
186
+ ],
187
+ "exits": [
188
+ {
189
+ "uuid": "1aa86816-ea3c-4a84-aa1b-0641efab452b",
190
+ "destination_uuid": null
191
+ }
192
+ ]
193
+ },
194
+ {
195
+ "uuid": "002d5fa0-6b1f-49c4-9f8c-43a9c89ca5bf",
196
+ "actions": [
197
+ {
198
+ "text": "Enter the extension of the person you are trying to reach followed by the pound sign.",
199
+ "type": "say_msg",
200
+ "uuid": "208bd65b-7943-454f-8195-263ed09e1bb0"
201
+ }
202
+ ],
203
+ "exits": [
204
+ {
205
+ "uuid": "0749b469-a96f-42db-a360-6bdba60ef1e3",
206
+ "destination_uuid": "33b0519a-1f18-43cf-9e23-1327aa4dde65"
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "uuid": "e0b83ee7-6154-4bf5-bea6-c48efb22ea6a",
212
+ "actions": [
213
+ {
214
+ "text": "I don't know that extension, please try again.",
215
+ "type": "say_msg",
216
+ "uuid": "b25355c5-56c1-4c13-9e99-fdf239127946"
217
+ }
218
+ ],
219
+ "exits": [
220
+ {
221
+ "uuid": "ca098b07-5b0f-473e-8d9a-1ec02720c101",
222
+ "destination_uuid": "33b0519a-1f18-43cf-9e23-1327aa4dde65"
223
+ }
224
+ ]
225
+ },
226
+ {
227
+ "uuid": "33b0519a-1f18-43cf-9e23-1327aa4dde65",
228
+ "actions": [],
229
+ "router": {
230
+ "type": "switch",
231
+ "default_category_uuid": "8a1ce5fe-57d6-4ac3-9d41-605075d6bf37",
232
+ "categories": [
233
+ {
234
+ "uuid": "c078ff06-749f-4956-9025-66976013d469",
235
+ "name": "Joe",
236
+ "exit_uuid": "a5a9cf24-7452-46f4-a745-170d0207b964"
237
+ },
238
+ {
239
+ "uuid": "c6fd326c-1e01-4f1b-87c0-5a43936c9705",
240
+ "name": "Mary",
241
+ "exit_uuid": "4afc8b81-7a8f-46da-9c9c-d6a1e7be4cfa"
242
+ },
243
+ {
244
+ "uuid": "8a1ce5fe-57d6-4ac3-9d41-605075d6bf37",
245
+ "name": "Other",
246
+ "exit_uuid": "4a0c899d-9530-453f-a95f-f46925a6b4a8"
247
+ }
248
+ ],
249
+ "cases": [
250
+ {
251
+ "arguments": ["123"],
252
+ "type": "has_beginning",
253
+ "uuid": "45e73e46-ad57-4408-a42a-d72e1692e8ff",
254
+ "category_uuid": "c078ff06-749f-4956-9025-66976013d469"
255
+ },
256
+ {
257
+ "arguments": ["456"],
258
+ "type": "has_beginning",
259
+ "uuid": "c57d0306-2106-4552-a2e1-60747a53378e",
260
+ "category_uuid": "c6fd326c-1e01-4f1b-87c0-5a43936c9705"
261
+ }
262
+ ],
263
+ "operand": "@input.text",
264
+ "wait": {
265
+ "type": "msg",
266
+ "hint": {
267
+ "type": "digits"
268
+ }
269
+ },
270
+ "result_name": "Extension"
271
+ },
272
+ "exits": [
273
+ {
274
+ "uuid": "a5a9cf24-7452-46f4-a745-170d0207b964",
275
+ "destination_uuid": "15b0c539-a919-4758-a435-915a78d45b77"
276
+ },
277
+ {
278
+ "uuid": "4afc8b81-7a8f-46da-9c9c-d6a1e7be4cfa",
279
+ "destination_uuid": "15b0c539-a919-4758-a435-915a78d45b77"
280
+ },
281
+ {
282
+ "uuid": "4a0c899d-9530-453f-a95f-f46925a6b4a8",
283
+ "destination_uuid": "e0b83ee7-6154-4bf5-bea6-c48efb22ea6a"
284
+ }
285
+ ]
286
+ },
287
+ {
288
+ "uuid": "76752fda-700d-40f9-9539-791f62d094b9",
289
+ "actions": [],
290
+ "router": {
291
+ "type": "switch",
292
+ "operand": "@input.text",
293
+ "default_category_uuid": "5279221d-00bb-4f50-bc1d-5c35af468d72",
294
+ "cases": [
295
+ {
296
+ "uuid": "88db789e-8857-4336-a9dc-6f75e4903c8a",
297
+ "arguments": ["1"],
298
+ "type": "has_number_eq",
299
+ "category_uuid": "67afd548-d2c3-40ef-9036-cfe73df708d0"
300
+ },
301
+ {
302
+ "uuid": "76e90d23-4ea8-40da-aff1-a83d6f06049d",
303
+ "arguments": ["2"],
304
+ "type": "has_number_eq",
305
+ "category_uuid": "acd5bb27-d3e7-4d17-aeb3-d4cc26a85ec8"
306
+ }
307
+ ],
308
+ "categories": [
309
+ {
310
+ "uuid": "67afd548-d2c3-40ef-9036-cfe73df708d0",
311
+ "name": "Correct",
312
+ "exit_uuid": "cdb4619d-3b66-4f10-800b-fe02fd408806"
313
+ },
314
+ {
315
+ "uuid": "acd5bb27-d3e7-4d17-aeb3-d4cc26a85ec8",
316
+ "name": "Wrong",
317
+ "exit_uuid": "b421b0c5-eb24-458c-9339-754c00f615ee"
318
+ },
319
+ {
320
+ "uuid": "5279221d-00bb-4f50-bc1d-5c35af468d72",
321
+ "name": "Other",
322
+ "exit_uuid": "8b55299d-88c2-4ee2-8a7c-31852e5c03cf"
323
+ }
324
+ ],
325
+ "wait": {
326
+ "type": "msg",
327
+ "hint": {
328
+ "type": "digits",
329
+ "count": 1
330
+ }
331
+ },
332
+ "result_name": "Correct"
333
+ },
334
+ "exits": [
335
+ {
336
+ "uuid": "cdb4619d-3b66-4f10-800b-fe02fd408806",
337
+ "destination_uuid": "a5f77a9b-cb99-415f-99d7-5d4830bef069"
338
+ },
339
+ {
340
+ "uuid": "b421b0c5-eb24-458c-9339-754c00f615ee",
341
+ "destination_uuid": "002d5fa0-6b1f-49c4-9f8c-43a9c89ca5bf"
342
+ },
343
+ {
344
+ "uuid": "8b55299d-88c2-4ee2-8a7c-31852e5c03cf",
345
+ "destination_uuid": "15b0c539-a919-4758-a435-915a78d45b77"
346
+ }
347
+ ]
348
+ },
349
+ {
350
+ "uuid": "15b0c539-a919-4758-a435-915a78d45b77",
351
+ "actions": [
352
+ {
353
+ "text": "You've entered the extension for @results.extension.category, press one if that is correct or two if not.",
354
+ "type": "say_msg",
355
+ "uuid": "2e3ee73d-ce9d-420a-9bdd-4544c0d51485"
356
+ }
357
+ ],
358
+ "exits": [
359
+ {
360
+ "uuid": "aadd2f92-9d8d-4fe7-bfbc-309a682dccbb",
361
+ "destination_uuid": "76752fda-700d-40f9-9539-791f62d094b9"
362
+ }
363
+ ]
364
+ },
365
+ {
366
+ "uuid": "a5f77a9b-cb99-415f-99d7-5d4830bef069",
367
+ "actions": [
368
+ {
369
+ "text": "@results.extension.category is not available right now, at the tone please record your message.",
370
+ "type": "say_msg",
371
+ "uuid": "8dc6aa73-0135-4da0-9506-aef46707699b"
372
+ }
373
+ ],
374
+ "exits": [
375
+ {
376
+ "uuid": "708c3307-1f23-4c53-be52-1376cd9fd410",
377
+ "destination_uuid": "ad0edd46-62aa-43c2-a81f-80a2766144db"
378
+ }
379
+ ]
380
+ },
381
+ {
382
+ "uuid": "ad0edd46-62aa-43c2-a81f-80a2766144db",
383
+ "actions": [],
384
+ "router": {
385
+ "type": "switch",
386
+ "default_category_uuid": "43c6dcdf-04f2-4634-a6c9-b36202bfd6b9",
387
+ "cases": [],
388
+ "categories": [
389
+ {
390
+ "uuid": "43c6dcdf-04f2-4634-a6c9-b36202bfd6b9",
391
+ "name": "All Responses",
392
+ "exit_uuid": "ec245fef-ae2b-48d2-9dc1-14e2675296e8"
393
+ }
394
+ ],
395
+ "wait": {
396
+ "type": "msg",
397
+ "hint": {
398
+ "type": "audio"
399
+ }
400
+ },
401
+ "operand": "@input",
402
+ "result_name": "Recording"
403
+ },
404
+ "exits": [
405
+ {
406
+ "uuid": "ec245fef-ae2b-48d2-9dc1-14e2675296e8",
407
+ "destination_uuid": "86fd1342-4c0f-46e4-83cf-f021ec9a1632"
408
+ }
409
+ ]
410
+ },
411
+ {
412
+ "uuid": "86fd1342-4c0f-46e4-83cf-f021ec9a1632",
413
+ "actions": [
414
+ {
415
+ "audio_url": "@results.recording",
416
+ "type": "play_audio",
417
+ "uuid": "a886f9b1-feee-43ca-9af6-9d75240c8eeb"
418
+ }
419
+ ],
420
+ "exits": [
421
+ {
422
+ "uuid": "e5e941c6-e5f6-4453-b4a5-06cae66b9530",
423
+ "destination_uuid": null
424
+ }
425
+ ]
426
+ }
427
+ ],
428
+ "_ui": {
429
+ "nodes": {
430
+ "47b02aca-3a16-43e6-8e95-45b482bd932b": {
431
+ "position": {
432
+ "left": 0,
433
+ "top": 0
434
+ },
435
+ "type": "execute_actions"
436
+ },
437
+ "709d745e-2aaf-41d9-bddd-1b1ab65641a3": {
438
+ "type": "wait_for_dial",
439
+ "position": {
440
+ "left": 300,
441
+ "top": 160
442
+ },
443
+ "config": {}
444
+ },
445
+ "bb1d58bb-6098-46f5-9d51-a9b3c80fb83d": {
446
+ "type": "wait_for_response",
447
+ "position": {
448
+ "left": 0,
449
+ "top": 200
450
+ },
451
+ "config": {
452
+ "cases": {}
453
+ }
454
+ },
455
+ "4c373efc-b440-4c50-b8aa-3c98f37b731c": {
456
+ "position": {
457
+ "left": 700,
458
+ "top": 220
459
+ },
460
+ "type": "execute_actions"
461
+ },
462
+ "79d8f3f6-6513-42ed-8208-dd52e19e0a2a": {
463
+ "position": {
464
+ "left": 420,
465
+ "top": 280
466
+ },
467
+ "type": "execute_actions"
468
+ },
469
+ "002d5fa0-6b1f-49c4-9f8c-43a9c89ca5bf": {
470
+ "position": {
471
+ "left": 60,
472
+ "top": 440
473
+ },
474
+ "type": "execute_actions"
475
+ },
476
+ "e0b83ee7-6154-4bf5-bea6-c48efb22ea6a": {
477
+ "position": {
478
+ "left": 320,
479
+ "top": 600
480
+ },
481
+ "type": "execute_actions"
482
+ },
483
+ "33b0519a-1f18-43cf-9e23-1327aa4dde65": {
484
+ "type": "wait_for_response",
485
+ "position": {
486
+ "left": 60,
487
+ "top": 640
488
+ },
489
+ "config": {
490
+ "cases": {}
491
+ }
492
+ },
493
+ "76752fda-700d-40f9-9539-791f62d094b9": {
494
+ "type": "wait_for_response",
495
+ "position": {
496
+ "left": 300,
497
+ "top": 800
498
+ },
499
+ "config": {
500
+ "cases": {}
501
+ }
502
+ },
503
+ "15b0c539-a919-4758-a435-915a78d45b77": {
504
+ "position": {
505
+ "left": 40,
506
+ "top": 820
507
+ },
508
+ "type": "execute_actions"
509
+ },
510
+ "a5f77a9b-cb99-415f-99d7-5d4830bef069": {
511
+ "position": {
512
+ "left": 340,
513
+ "top": 980
514
+ },
515
+ "type": "execute_actions"
516
+ },
517
+ "ad0edd46-62aa-43c2-a81f-80a2766144db": {
518
+ "type": "wait_for_response",
519
+ "position": {
520
+ "left": 440,
521
+ "top": 1120
522
+ },
523
+ "config": {
524
+ "cases": {}
525
+ }
526
+ },
527
+ "86fd1342-4c0f-46e4-83cf-f021ec9a1632": {
528
+ "position": {
529
+ "left": 440,
530
+ "top": 1260
531
+ },
532
+ "type": "execute_actions"
533
+ }
534
+ }
535
+ },
536
+ "revision": 29,
537
+ "expire_after_minutes": 5,
538
+ "localization": {}
539
+ },
540
+ "info": {
541
+ "counts": {
542
+ "nodes": 13,
543
+ "languages": 0
544
+ },
545
+ "issues": [],
546
+ "locals": [],
547
+ "results": [
548
+ {
549
+ "key": "branch",
550
+ "name": "Branch",
551
+ "categories": ["Extension", "Operator", "Other"],
552
+ "node_uuids": ["bb1d58bb-6098-46f5-9d51-a9b3c80fb83d"]
553
+ },
554
+ {
555
+ "key": "extension",
556
+ "name": "Extension",
557
+ "categories": ["Joe", "Mary", "Other"],
558
+ "node_uuids": ["33b0519a-1f18-43cf-9e23-1327aa4dde65"]
559
+ },
560
+ {
561
+ "key": "correct",
562
+ "name": "Correct",
563
+ "categories": ["Correct", "Wrong", "Other"],
564
+ "node_uuids": ["76752fda-700d-40f9-9539-791f62d094b9"]
565
+ },
566
+ {
567
+ "key": "recording",
568
+ "name": "Recording",
569
+ "categories": ["All Responses"],
570
+ "node_uuids": ["ad0edd46-62aa-43c2-a81f-80a2766144db"]
571
+ }
572
+ ],
573
+ "parent_refs": [],
574
+ "dependencies": []
575
+ },
576
+ "issues": [],
577
+ "metadata": {
578
+ "counts": {
579
+ "languages": 0,
580
+ "nodes": 13
581
+ },
582
+ "dependencies": [],
583
+ "locals": [],
584
+ "results": [
585
+ {
586
+ "key": "branch",
587
+ "name": "Branch",
588
+ "categories": ["Extension", "Operator", "Other"],
589
+ "node_uuids": ["bb1d58bb-6098-46f5-9d51-a9b3c80fb83d"]
590
+ },
591
+ {
592
+ "key": "extension",
593
+ "name": "Extension",
594
+ "categories": ["Joe", "Mary", "Other"],
595
+ "node_uuids": ["33b0519a-1f18-43cf-9e23-1327aa4dde65"]
596
+ },
597
+ {
598
+ "key": "correct",
599
+ "name": "Correct",
600
+ "categories": ["Correct", "Wrong", "Other"],
601
+ "node_uuids": ["76752fda-700d-40f9-9539-791f62d094b9"]
602
+ },
603
+ {
604
+ "key": "recording",
605
+ "name": "Recording",
606
+ "categories": ["All Responses"],
607
+ "node_uuids": ["ad0edd46-62aa-43c2-a81f-80a2766144db"]
608
+ }
609
+ ],
610
+ "parent_refs": [],
611
+ "issues": []
612
+ }
613
+ }
package/demo/index.html CHANGED
@@ -113,6 +113,12 @@
113
113
  <p>Drag-and-drop sortable list components</p>
114
114
  <a href="components/sortable-list/example.html">Examples</a>
115
115
  </div>
116
+
117
+ <div class="component-card">
118
+ <h3>Floating Tabs & Windows</h3>
119
+ <p>Floating tab anchors with moveable dialog windows</p>
120
+ <a href="components/floating-tabs/example.html">Examples</a>
121
+ </div>
116
122
  </div>
117
123
 
118
124
  <!-- Feedback Components -->
@@ -3,10 +3,10 @@
3
3
  /* eslint-disable no-irregular-whitespace */
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  export const templates = {
6
- scf1453991c986b25: `Tab para completar, enter para seleccionar`,
7
- s73b4d70c02f4b4e0: `No options`,
8
- s8f02e3a18ffc083a: `Are not currently in a flow`,
9
- s638236250662c6b3: `Have sent a message in the last`,
10
- s4788ee206c4570c7: `Have not started this flow in the last 90 days`
6
+ 'scf1453991c986b25': `Tab para completar, enter para seleccionar`,
7
+ 's73b4d70c02f4b4e0': `No options`,
8
+ 's8f02e3a18ffc083a': `Are not currently in a flow`,
9
+ 's638236250662c6b3': `Have sent a message in the last`,
10
+ 's4788ee206c4570c7': `Have not started this flow in the last 90 days`,
11
11
  };
12
12
  //# sourceMappingURL=es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"es.js","sourceRoot":"","sources":["../../../src/locales/es.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,gDAAgD;AAEhD,4CAA4C;AAC5C,uDAAuD;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,4CAA4C;IAC/D,iBAAiB,EAAE,YAAY;IAC/B,iBAAiB,EAAE,6BAA6B;IAChD,iBAAiB,EAAE,iCAAiC;IACpD,iBAAiB,EAAE,gDAAgD;CACpE,CAAC","sourcesContent":["// Do not modify this file by hand!\n// Re-generate this file by running lit-localize\n\n/* eslint-disable no-irregular-whitespace */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const templates = {\n scf1453991c986b25: `Tab para completar, enter para seleccionar`,\n s73b4d70c02f4b4e0: `No options`,\n s8f02e3a18ffc083a: `Are not currently in a flow`,\n s638236250662c6b3: `Have sent a message in the last`,\n s4788ee206c4570c7: `Have not started this flow in the last 90 days`\n};\n"]}
1
+ {"version":3,"file":"es.js","sourceRoot":"","sources":["../../../src/locales/es.ts"],"names":[],"mappings":"AACI,mCAAmC;AACnC,gDAAgD;AAKhD,4CAA4C;AAC5C,uDAAuD;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,mBAAmB,EAAE,4CAA4C;IACvE,mBAAmB,EAAE,YAAY;IACjC,mBAAmB,EAAE,6BAA6B;IAClD,mBAAmB,EAAE,iCAAiC;IACtD,mBAAmB,EAAE,gDAAgD;CAChE,CAAC","sourcesContent":["\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 'scf1453991c986b25': `Tab para completar, enter para seleccionar`,\n's73b4d70c02f4b4e0': `No options`,\n's8f02e3a18ffc083a': `Are not currently in a flow`,\n's638236250662c6b3': `Have sent a message in the last`,\n's4788ee206c4570c7': `Have not started this flow in the last 90 days`,\n };\n "]}
@@ -3,10 +3,10 @@
3
3
  /* eslint-disable no-irregular-whitespace */
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  export const templates = {
6
- s73b4d70c02f4b4e0: `No options`,
7
- scf1453991c986b25: `Tab to complete, enter to select`,
8
- s8f02e3a18ffc083a: `Are not currently in a flow`,
9
- s638236250662c6b3: `Have sent a message in the last`,
10
- s4788ee206c4570c7: `Have not started this flow in the last 90 days`
6
+ 's73b4d70c02f4b4e0': `No options`,
7
+ 'scf1453991c986b25': `Tab to complete, enter to select`,
8
+ 's8f02e3a18ffc083a': `Are not currently in a flow`,
9
+ 's638236250662c6b3': `Have sent a message in the last`,
10
+ 's4788ee206c4570c7': `Have not started this flow in the last 90 days`,
11
11
  };
12
12
  //# sourceMappingURL=fr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fr.js","sourceRoot":"","sources":["../../../src/locales/fr.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,gDAAgD;AAEhD,4CAA4C;AAC5C,uDAAuD;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,YAAY;IAC/B,iBAAiB,EAAE,kCAAkC;IACrD,iBAAiB,EAAE,6BAA6B;IAChD,iBAAiB,EAAE,iCAAiC;IACpD,iBAAiB,EAAE,gDAAgD;CACpE,CAAC","sourcesContent":["// Do not modify this file by hand!\n// Re-generate this file by running lit-localize\n\n/* eslint-disable no-irregular-whitespace */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport const templates = {\n s73b4d70c02f4b4e0: `No options`,\n scf1453991c986b25: `Tab to complete, enter to select`,\n s8f02e3a18ffc083a: `Are not currently in a flow`,\n s638236250662c6b3: `Have sent a message in the last`,\n s4788ee206c4570c7: `Have not started this flow in the last 90 days`\n};\n"]}
1
+ {"version":3,"file":"fr.js","sourceRoot":"","sources":["../../../src/locales/fr.ts"],"names":[],"mappings":"AACI,mCAAmC;AACnC,gDAAgD;AAKhD,4CAA4C;AAC5C,uDAAuD;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,mBAAmB,EAAE,YAAY;IACvC,mBAAmB,EAAE,kCAAkC;IACvD,mBAAmB,EAAE,6BAA6B;IAClD,mBAAmB,EAAE,iCAAiC;IACtD,mBAAmB,EAAE,gDAAgD;CAChE,CAAC","sourcesContent":["\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's73b4d70c02f4b4e0': `No options`,\n'scf1453991c986b25': `Tab to complete, enter to select`,\n's8f02e3a18ffc083a': `Are not currently in a flow`,\n's638236250662c6b3': `Have sent a message in the last`,\n's4788ee206c4570c7': `Have not started this flow in the last 90 days`,\n };\n "]}