@nyaruka/temba-components 0.129.9 → 0.129.11

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 (323) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/demo/data/flows/sample-flow.json +96 -56
  3. package/demo/test-colorpicker.html +30 -0
  4. package/dist/temba-components.js +896 -934
  5. package/dist/temba-components.js.map +1 -1
  6. package/out-tsc/src/events.js.map +1 -1
  7. package/out-tsc/src/flow/Editor.js +9 -6
  8. package/out-tsc/src/flow/Editor.js.map +1 -1
  9. package/out-tsc/src/flow/actions/set_contact_channel.js +1 -1
  10. package/out-tsc/src/flow/actions/set_contact_channel.js.map +1 -1
  11. package/out-tsc/src/flow/actions/set_contact_field.js +1 -1
  12. package/out-tsc/src/flow/actions/set_contact_field.js.map +1 -1
  13. package/out-tsc/src/flow/actions/set_contact_language.js +1 -1
  14. package/out-tsc/src/flow/actions/set_contact_language.js.map +1 -1
  15. package/out-tsc/src/flow/actions/set_contact_status.js +1 -1
  16. package/out-tsc/src/flow/actions/set_contact_status.js.map +1 -1
  17. package/out-tsc/src/flow/config.js +2 -8
  18. package/out-tsc/src/flow/config.js.map +1 -1
  19. package/out-tsc/src/flow/nodes/split_by_llm.js +101 -0
  20. package/out-tsc/src/flow/nodes/split_by_llm.js.map +1 -0
  21. package/out-tsc/src/flow/nodes/split_by_llm_categorize.js +4 -89
  22. package/out-tsc/src/flow/nodes/split_by_llm_categorize.js.map +1 -1
  23. package/out-tsc/src/flow/nodes/split_by_subflow.js +123 -3
  24. package/out-tsc/src/flow/nodes/split_by_subflow.js.map +1 -1
  25. package/out-tsc/src/flow/nodes/split_by_ticket.js +115 -13
  26. package/out-tsc/src/flow/nodes/split_by_ticket.js.map +1 -1
  27. package/out-tsc/src/flow/nodes/split_by_webhook.js +160 -12
  28. package/out-tsc/src/flow/nodes/split_by_webhook.js.map +1 -1
  29. package/out-tsc/src/form/ArrayEditor.js +45 -56
  30. package/out-tsc/src/form/ArrayEditor.js.map +1 -1
  31. package/out-tsc/src/form/BaseListEditor.js +4 -3
  32. package/out-tsc/src/form/BaseListEditor.js.map +1 -1
  33. package/out-tsc/src/form/Checkbox.js +77 -24
  34. package/out-tsc/src/form/Checkbox.js.map +1 -1
  35. package/out-tsc/src/form/ColorPicker.js +28 -40
  36. package/out-tsc/src/form/ColorPicker.js.map +1 -1
  37. package/out-tsc/src/form/Completion.js +44 -53
  38. package/out-tsc/src/form/Completion.js.map +1 -1
  39. package/out-tsc/src/form/Compose.js +7 -8
  40. package/out-tsc/src/form/Compose.js.map +1 -1
  41. package/out-tsc/src/form/ContactSearch.js +3 -4
  42. package/out-tsc/src/form/ContactSearch.js.map +1 -1
  43. package/out-tsc/src/form/DatePicker.js +29 -36
  44. package/out-tsc/src/form/DatePicker.js.map +1 -1
  45. package/out-tsc/src/form/{FormField.js → FieldElement.js} +78 -50
  46. package/out-tsc/src/form/FieldElement.js.map +1 -0
  47. package/out-tsc/src/form/FieldRenderer.js +2 -1
  48. package/out-tsc/src/form/FieldRenderer.js.map +1 -1
  49. package/out-tsc/src/form/ImagePicker.js +122 -126
  50. package/out-tsc/src/form/ImagePicker.js.map +1 -1
  51. package/out-tsc/src/form/KeyValueEditor.js +41 -37
  52. package/out-tsc/src/form/KeyValueEditor.js.map +1 -1
  53. package/out-tsc/src/form/MessageEditor.js +55 -63
  54. package/out-tsc/src/form/MessageEditor.js.map +1 -1
  55. package/out-tsc/src/form/TembaSlider.js +3 -3
  56. package/out-tsc/src/form/TembaSlider.js.map +1 -1
  57. package/out-tsc/src/form/TemplateEditor.js +3 -3
  58. package/out-tsc/src/form/TemplateEditor.js.map +1 -1
  59. package/out-tsc/src/form/TextInput.js +22 -26
  60. package/out-tsc/src/form/TextInput.js.map +1 -1
  61. package/out-tsc/src/form/select/Select.js +9 -15
  62. package/out-tsc/src/form/select/Select.js.map +1 -1
  63. package/out-tsc/src/form/select/UserSelect.js +8 -9
  64. package/out-tsc/src/form/select/UserSelect.js.map +1 -1
  65. package/out-tsc/src/form/select/WorkspaceSelect.js +7 -8
  66. package/out-tsc/src/form/select/WorkspaceSelect.js.map +1 -1
  67. package/out-tsc/src/live/ContactChat.js +73 -99
  68. package/out-tsc/src/live/ContactChat.js.map +1 -1
  69. package/out-tsc/src/live/ContactFieldEditor.js.map +1 -1
  70. package/out-tsc/src/utils.js +115 -0
  71. package/out-tsc/src/utils.js.map +1 -1
  72. package/out-tsc/temba-modules.js +3 -2
  73. package/out-tsc/temba-modules.js.map +1 -1
  74. package/out-tsc/test/nodes/split_by_llm.test.js +174 -0
  75. package/out-tsc/test/nodes/split_by_llm.test.js.map +1 -0
  76. package/out-tsc/test/temba-checkbox.test.js +16 -0
  77. package/out-tsc/test/temba-checkbox.test.js.map +1 -1
  78. package/out-tsc/test/temba-integration-markdown.test.js +2 -4
  79. package/out-tsc/test/temba-integration-markdown.test.js.map +1 -1
  80. package/out-tsc/test/temba-slider.test.js +0 -1
  81. package/out-tsc/test/temba-slider.test.js.map +1 -1
  82. package/package.json +1 -1
  83. package/screenshots/truth/actions/add_contact_groups/editor/descriptive-group-names.png +0 -0
  84. package/screenshots/truth/actions/add_contact_groups/editor/long-group-names.png +0 -0
  85. package/screenshots/truth/actions/add_contact_groups/editor/many-groups.png +0 -0
  86. package/screenshots/truth/actions/add_contact_groups/editor/multiple-groups.png +0 -0
  87. package/screenshots/truth/actions/add_contact_groups/editor/single-group.png +0 -0
  88. package/screenshots/truth/actions/call_llm/editor/information-extraction.png +0 -0
  89. package/screenshots/truth/actions/call_llm/editor/sentiment-analysis.png +0 -0
  90. package/screenshots/truth/actions/call_llm/editor/summarization.png +0 -0
  91. package/screenshots/truth/actions/call_llm/editor/translation-task.png +0 -0
  92. package/screenshots/truth/actions/remove_contact_groups/editor/cleanup-groups.png +0 -0
  93. package/screenshots/truth/actions/remove_contact_groups/editor/long-descriptive-group-names.png +0 -0
  94. package/screenshots/truth/actions/remove_contact_groups/editor/many-groups.png +0 -0
  95. package/screenshots/truth/actions/remove_contact_groups/editor/multiple-groups.png +0 -0
  96. package/screenshots/truth/actions/remove_contact_groups/editor/remove-from-all-groups.png +0 -0
  97. package/screenshots/truth/actions/remove_contact_groups/editor/single-group.png +0 -0
  98. package/screenshots/truth/actions/send_email/editor/complex-business-email.png +0 -0
  99. package/screenshots/truth/actions/send_email/editor/empty-body.png +0 -0
  100. package/screenshots/truth/actions/send_email/editor/empty-subject.png +0 -0
  101. package/screenshots/truth/actions/send_email/editor/long-subject.png +0 -0
  102. package/screenshots/truth/actions/send_email/editor/multiline-body.png +0 -0
  103. package/screenshots/truth/actions/send_email/editor/multiple-recipients.png +0 -0
  104. package/screenshots/truth/actions/send_email/editor/simple-email.png +0 -0
  105. package/screenshots/truth/actions/send_email/editor/with-expressions.png +0 -0
  106. package/screenshots/truth/actions/send_msg/editor/long-quick-replies.png +0 -0
  107. package/screenshots/truth/actions/send_msg/editor/multiline-text-with-replies.png +0 -0
  108. package/screenshots/truth/actions/send_msg/editor/simple-text.png +0 -0
  109. package/screenshots/truth/actions/send_msg/editor/text-with-linebreaks.png +0 -0
  110. package/screenshots/truth/actions/send_msg/editor/text-with-many-quick-replies.png +0 -0
  111. package/screenshots/truth/actions/send_msg/editor/text-with-quick-replies.png +0 -0
  112. package/screenshots/truth/actions/send_msg/editor/text-without-quick-replies.png +0 -0
  113. package/screenshots/truth/checkbox/checkbox-label-background-hover.png +0 -0
  114. package/screenshots/truth/checkbox/checkbox-no-label-no-background-hover.png +0 -0
  115. package/screenshots/truth/checkbox/checkbox-whitespace-label-no-background-hover.png +0 -0
  116. package/screenshots/truth/checkbox/checkbox-with-help-text.png +0 -0
  117. package/screenshots/truth/checkbox/checked.png +0 -0
  118. package/screenshots/truth/checkbox/default.png +0 -0
  119. package/screenshots/truth/colorpicker/default.png +0 -0
  120. package/screenshots/truth/colorpicker/focused.png +0 -0
  121. package/screenshots/truth/colorpicker/initialized.png +0 -0
  122. package/screenshots/truth/colorpicker/selected.png +0 -0
  123. package/screenshots/truth/compose/attachments-tab.png +0 -0
  124. package/screenshots/truth/compose/attachments-with-files.png +0 -0
  125. package/screenshots/truth/compose/intial-text.png +0 -0
  126. package/screenshots/truth/compose/no-counter.png +0 -0
  127. package/screenshots/truth/compose/wraps-text-and-spaces.png +0 -0
  128. package/screenshots/truth/compose/wraps-text-and-url.png +0 -0
  129. package/screenshots/truth/compose/wraps-text-no-spaces.png +0 -0
  130. package/screenshots/truth/contacts/chat-failure.png +0 -0
  131. package/screenshots/truth/contacts/chat-for-active-contact.png +0 -0
  132. package/screenshots/truth/contacts/chat-sends-attachments-only.png +0 -0
  133. package/screenshots/truth/contacts/chat-sends-text-and-attachments.png +0 -0
  134. package/screenshots/truth/contacts/chat-sends-text-only.png +0 -0
  135. package/screenshots/truth/counter/summary.png +0 -0
  136. package/screenshots/truth/counter/text.png +0 -0
  137. package/screenshots/truth/counter/unicode-variables.png +0 -0
  138. package/screenshots/truth/counter/unicode.png +0 -0
  139. package/screenshots/truth/counter/variable.png +0 -0
  140. package/screenshots/truth/datepicker/date-truncated-time.png +0 -0
  141. package/screenshots/truth/datepicker/date.png +0 -0
  142. package/screenshots/truth/datepicker/initial-timezone.png +0 -0
  143. package/screenshots/truth/datepicker/range-picker-editing-start.png +0 -0
  144. package/screenshots/truth/datepicker/updated-keyboard-date.png +0 -0
  145. package/screenshots/truth/dialog/focused.png +0 -0
  146. package/screenshots/truth/dropdown/right-edge-collision.png +0 -0
  147. package/screenshots/truth/editor/router.png +0 -0
  148. package/screenshots/truth/editor/send_msg.png +0 -0
  149. package/screenshots/truth/editor/set_contact_language.png +0 -0
  150. package/screenshots/truth/editor/set_contact_name.png +0 -0
  151. package/screenshots/truth/editor/set_run_result.png +0 -0
  152. package/screenshots/truth/editor/wait.png +0 -0
  153. package/screenshots/truth/field-renderer/checkbox-checked.png +0 -0
  154. package/screenshots/truth/field-renderer/checkbox-unchecked.png +0 -0
  155. package/screenshots/truth/field-renderer/checkbox-with-errors.png +0 -0
  156. package/screenshots/truth/field-renderer/context-comparison.png +0 -0
  157. package/screenshots/truth/field-renderer/key-value-with-label.png +0 -0
  158. package/screenshots/truth/field-renderer/message-editor-with-label.png +0 -0
  159. package/screenshots/truth/field-renderer/select-multi.png +0 -0
  160. package/screenshots/truth/field-renderer/select-no-label.png +0 -0
  161. package/screenshots/truth/field-renderer/select-with-label.png +0 -0
  162. package/screenshots/truth/field-renderer/text-evaluated.png +0 -0
  163. package/screenshots/truth/field-renderer/text-no-label.png +0 -0
  164. package/screenshots/truth/field-renderer/text-with-errors.png +0 -0
  165. package/screenshots/truth/field-renderer/text-with-label.png +0 -0
  166. package/screenshots/truth/field-renderer/textarea-evaluated.png +0 -0
  167. package/screenshots/truth/field-renderer/textarea-with-label.png +0 -0
  168. package/screenshots/truth/integration/checkbox-markdown-errors.png +0 -0
  169. package/screenshots/truth/list/fields-dragging.png +0 -0
  170. package/screenshots/truth/list/fields-filtered.png +0 -0
  171. package/screenshots/truth/list/fields-hovered.png +0 -0
  172. package/screenshots/truth/list/fields.png +0 -0
  173. package/screenshots/truth/list/items-selected.png +0 -0
  174. package/screenshots/truth/list/items-updated.png +0 -0
  175. package/screenshots/truth/list/items.png +0 -0
  176. package/screenshots/truth/menu/menu-focused-with items.png +0 -0
  177. package/screenshots/truth/menu/menu-refresh-1.png +0 -0
  178. package/screenshots/truth/menu/menu-refresh-2.png +0 -0
  179. package/screenshots/truth/menu/menu-submenu.png +0 -0
  180. package/screenshots/truth/menu/menu-tasks-nextup.png +0 -0
  181. package/screenshots/truth/menu/menu-tasks.png +0 -0
  182. package/screenshots/truth/message-editor/autogrow-initial-content.png +0 -0
  183. package/screenshots/truth/message-editor/default.png +0 -0
  184. package/screenshots/truth/message-editor/drag-highlight.png +0 -0
  185. package/screenshots/truth/message-editor/filtered-attachments.png +0 -0
  186. package/screenshots/truth/message-editor/with-completion.png +0 -0
  187. package/screenshots/truth/message-editor/with-properties.png +0 -0
  188. package/screenshots/truth/modax/form.png +0 -0
  189. package/screenshots/truth/modax/simple.png +0 -0
  190. package/screenshots/truth/nodes/split_by_llm/editor/information-extraction.png +0 -0
  191. package/screenshots/truth/nodes/split_by_llm/editor/sentiment-analysis.png +0 -0
  192. package/screenshots/truth/nodes/split_by_llm/editor/summarization.png +0 -0
  193. package/screenshots/truth/nodes/split_by_llm/editor/translation-task.png +0 -0
  194. package/screenshots/truth/nodes/split_by_llm/render/information-extraction.png +0 -0
  195. package/screenshots/truth/nodes/split_by_llm/render/sentiment-analysis.png +0 -0
  196. package/screenshots/truth/nodes/split_by_llm/render/summarization.png +0 -0
  197. package/screenshots/truth/nodes/split_by_llm/render/translation-task.png +0 -0
  198. package/screenshots/truth/nodes/split_by_llm_categorize/editor/basic-categorization.png +0 -0
  199. package/screenshots/truth/nodes/split_by_llm_categorize/editor/custom-input-and-result-name.png +0 -0
  200. package/screenshots/truth/nodes/split_by_llm_categorize/editor/feedback-categorization.png +0 -0
  201. package/screenshots/truth/nodes/split_by_llm_categorize/editor/many-categories.png +0 -0
  202. package/screenshots/truth/nodes/split_by_llm_categorize/editor/minimal-categories.png +0 -0
  203. package/screenshots/truth/nodes/split_by_random/editor/ab-test-multiple-variants.png +0 -0
  204. package/screenshots/truth/nodes/split_by_random/editor/sampling-split.png +0 -0
  205. package/screenshots/truth/nodes/split_by_random/editor/three-way-split.png +0 -0
  206. package/screenshots/truth/nodes/split_by_random/editor/two-bucket-split.png +0 -0
  207. package/screenshots/truth/nodes/wait_for_digits/editor/basic-digits-wait.png +0 -0
  208. package/screenshots/truth/nodes/wait_for_digits/editor/phone-number-collection.png +0 -0
  209. package/screenshots/truth/nodes/wait_for_digits/editor/single-digit-with-timeout.png +0 -0
  210. package/screenshots/truth/nodes/wait_for_digits/editor/verification-code.png +0 -0
  211. package/screenshots/truth/nodes/wait_for_response/editor/basic-wait.png +0 -0
  212. package/screenshots/truth/nodes/wait_for_response/editor/custom-result-name.png +0 -0
  213. package/screenshots/truth/nodes/wait_for_response/editor/no-timeout.png +0 -0
  214. package/screenshots/truth/nodes/wait_for_response/editor/short-timeout.png +0 -0
  215. package/screenshots/truth/omnibox/selected.png +0 -0
  216. package/screenshots/truth/options/block.png +0 -0
  217. package/screenshots/truth/run-list/basic.png +0 -0
  218. package/screenshots/truth/select/disabled-multi-selection.png +0 -0
  219. package/screenshots/truth/select/disabled-selection.png +0 -0
  220. package/screenshots/truth/select/disabled.png +0 -0
  221. package/screenshots/truth/select/embedded.png +0 -0
  222. package/screenshots/truth/select/empty-options.png +0 -0
  223. package/screenshots/truth/select/expression-selected.png +0 -0
  224. package/screenshots/truth/select/expressions.png +0 -0
  225. package/screenshots/truth/select/functions.png +0 -0
  226. package/screenshots/truth/select/local-options.png +0 -0
  227. package/screenshots/truth/select/multi-with-endpoint.png +0 -0
  228. package/screenshots/truth/select/multiple-initial-values.png +0 -0
  229. package/screenshots/truth/select/remote-options.png +0 -0
  230. package/screenshots/truth/select/search-enabled.png +0 -0
  231. package/screenshots/truth/select/search-multi-no-matches.png +0 -0
  232. package/screenshots/truth/select/search-selected-focus.png +0 -0
  233. package/screenshots/truth/select/search-selected.png +0 -0
  234. package/screenshots/truth/select/search-with-selected.png +0 -0
  235. package/screenshots/truth/select/searching.png +0 -0
  236. package/screenshots/truth/select/selected-multi-maxitems-reached.png +0 -0
  237. package/screenshots/truth/select/selected-multi.png +0 -0
  238. package/screenshots/truth/select/selected-single.png +0 -0
  239. package/screenshots/truth/select/selection-clearable.png +0 -0
  240. package/screenshots/truth/select/static-initial-value.png +0 -0
  241. package/screenshots/truth/select/static-initial-via-selected.png +0 -0
  242. package/screenshots/truth/select/truncated-selection.png +0 -0
  243. package/screenshots/truth/select/with-placeholder.png +0 -0
  244. package/screenshots/truth/select/without-placeholder.png +0 -0
  245. package/screenshots/truth/slider/update-slider-on-circle-dragged.png +0 -0
  246. package/screenshots/truth/templates/default.png +0 -0
  247. package/screenshots/truth/templates/unapproved.png +0 -0
  248. package/screenshots/truth/textinput/autogrow-initial.png +0 -0
  249. package/screenshots/truth/textinput/input-disabled.png +0 -0
  250. package/screenshots/truth/textinput/input-focused.png +0 -0
  251. package/screenshots/truth/textinput/input-form.png +0 -0
  252. package/screenshots/truth/textinput/input-inserted.png +0 -0
  253. package/screenshots/truth/textinput/input-placeholder.png +0 -0
  254. package/screenshots/truth/textinput/input-updated.png +0 -0
  255. package/screenshots/truth/textinput/input.png +0 -0
  256. package/screenshots/truth/textinput/textarea-focused.png +0 -0
  257. package/screenshots/truth/textinput/textarea.png +0 -0
  258. package/src/events.ts +9 -8
  259. package/src/flow/Editor.ts +6 -3
  260. package/src/flow/actions/set_contact_channel.ts +1 -1
  261. package/src/flow/actions/set_contact_field.ts +1 -1
  262. package/src/flow/actions/set_contact_language.ts +1 -1
  263. package/src/flow/actions/set_contact_status.ts +1 -1
  264. package/src/flow/config.ts +2 -8
  265. package/src/flow/nodes/split_by_llm.ts +119 -0
  266. package/src/flow/nodes/split_by_llm_categorize.ts +13 -116
  267. package/src/flow/nodes/split_by_subflow.ts +153 -3
  268. package/src/flow/nodes/split_by_ticket.ts +135 -12
  269. package/src/flow/nodes/split_by_webhook.ts +187 -12
  270. package/src/form/ArrayEditor.ts +45 -57
  271. package/src/form/BaseListEditor.ts +4 -4
  272. package/src/form/Checkbox.ts +81 -24
  273. package/src/form/ColorPicker.ts +31 -43
  274. package/src/form/Completion.ts +49 -56
  275. package/src/form/Compose.ts +8 -8
  276. package/src/form/ContactSearch.ts +3 -4
  277. package/src/form/DatePicker.ts +32 -38
  278. package/src/form/{FormField.ts → FieldElement.ts} +105 -52
  279. package/src/form/FieldRenderer.ts +2 -1
  280. package/src/form/ImagePicker.ts +107 -110
  281. package/src/form/KeyValueEditor.ts +43 -39
  282. package/src/form/MessageEditor.ts +61 -67
  283. package/src/form/TembaSlider.ts +3 -3
  284. package/src/form/TemplateEditor.ts +3 -3
  285. package/src/form/TextInput.ts +25 -28
  286. package/src/form/select/Select.ts +12 -17
  287. package/src/form/select/UserSelect.ts +10 -11
  288. package/src/form/select/WorkspaceSelect.ts +9 -10
  289. package/src/live/ContactChat.ts +81 -92
  290. package/src/live/ContactFieldEditor.ts +2 -2
  291. package/src/store/flow-definition.d.ts +2 -1
  292. package/src/utils.ts +192 -0
  293. package/temba-modules.ts +3 -2
  294. package/test/nodes/split_by_llm.test.ts +232 -0
  295. package/test/temba-checkbox.test.ts +26 -0
  296. package/test/temba-integration-markdown.test.ts +2 -4
  297. package/test/temba-slider.test.ts +0 -1
  298. package/test-assets/contacts/history.json +7 -20
  299. package/test-assets/style.css +36 -234
  300. package/web-dev-server.config.mjs +26 -0
  301. package/web-test-runner.config.mjs +1 -1
  302. package/out-tsc/src/flow/actions/call_llm.js +0 -64
  303. package/out-tsc/src/flow/actions/call_llm.js.map +0 -1
  304. package/out-tsc/src/flow/actions/call_webhook.js +0 -131
  305. package/out-tsc/src/flow/actions/call_webhook.js.map +0 -1
  306. package/out-tsc/src/flow/actions/enter_flow.js +0 -14
  307. package/out-tsc/src/flow/actions/enter_flow.js.map +0 -1
  308. package/out-tsc/src/flow/actions/open_ticket.js +0 -73
  309. package/out-tsc/src/flow/actions/open_ticket.js.map +0 -1
  310. package/out-tsc/src/form/FormElement.js +0 -67
  311. package/out-tsc/src/form/FormElement.js.map +0 -1
  312. package/out-tsc/src/form/FormField.js.map +0 -1
  313. package/out-tsc/test/actions/call_llm.test.js +0 -103
  314. package/out-tsc/test/actions/call_llm.test.js.map +0 -1
  315. package/out-tsc/test/temba-formfield.test.js +0 -94
  316. package/out-tsc/test/temba-formfield.test.js.map +0 -1
  317. package/src/flow/actions/call_llm.ts +0 -66
  318. package/src/flow/actions/call_webhook.ts +0 -143
  319. package/src/flow/actions/enter_flow.ts +0 -15
  320. package/src/flow/actions/open_ticket.ts +0 -83
  321. package/src/form/FormElement.ts +0 -69
  322. package/test/actions/call_llm.test.ts +0 -137
  323. package/test/temba-formfield.test.ts +0 -121
package/CHANGELOG.md CHANGED
@@ -4,8 +4,31 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ #### [v0.129.11](https://github.com/nyaruka/temba-components/compare/v0.129.10...v0.129.11)
8
+
9
+ - Add support for rendering `contact_status_changed` events [`#682`](https://github.com/nyaruka/temba-components/pull/682)
10
+ - Cleanup code for no longer used channel event types [`#681`](https://github.com/nyaruka/temba-components/pull/681)
11
+ - Split by subflow [`#678`](https://github.com/nyaruka/temba-components/pull/678)
12
+ - Fixes for node-based actions [`#677`](https://github.com/nyaruka/temba-components/pull/677)
13
+ - Make tests and demos more consistent [`#676`](https://github.com/nyaruka/temba-components/pull/676)
14
+ - Move call_llm into split_by_llm [`0f829f9`](https://github.com/nyaruka/temba-components/commit/0f829f9415df607fc5cba3eac87d6c5be06b4817)
15
+ - Some shared functionality for router categories [`918a97a`](https://github.com/nyaruka/temba-components/commit/918a97a4da47b72e9681862e6897a08e8be51380)
16
+ - Add editor for subflow [`8d335a1`](https://github.com/nyaruka/temba-components/commit/8d335a1667e42270ec90b7f505c91b6867137985)
17
+
18
+ #### [v0.129.10](https://github.com/nyaruka/temba-components/compare/v0.129.9...v0.129.10)
19
+
20
+ > 26 August 2025
21
+
22
+ - Add support for new event types, remove no longer used ones [`#675`](https://github.com/nyaruka/temba-components/pull/675)
23
+ - Refactor form components to use FieldElement base class instead of manual temba-field embedding [`#674`](https://github.com/nyaruka/temba-components/pull/674)
24
+ - Finish FieldElement refactor [`ee5bf8b`](https://github.com/nyaruka/temba-components/commit/ee5bf8ba8d7fb2cdda14778ad114448ccc73c641)
25
+ - Complete FieldElement implementation and migrate all target components [`4ba612e`](https://github.com/nyaruka/temba-components/commit/4ba612e4c49923a463f71bf326f6ed9401850516)
26
+ - Create FieldElement base class and migrate ColorPicker [`5a25ee3`](https://github.com/nyaruka/temba-components/commit/5a25ee37be9810886a047f2678f546a41c0166be)
27
+
7
28
  #### [v0.129.9](https://github.com/nyaruka/temba-components/compare/v0.129.8...v0.129.9)
8
29
 
30
+ > 25 August 2025
31
+
9
32
  - Node helper tests [`#672`](https://github.com/nyaruka/temba-components/pull/672)
10
33
  - Node refactor to support split_by_llm_categorize [`#671`](https://github.com/nyaruka/temba-components/pull/671)
11
34
  - Implement editor for add_input_labels [`#670`](https://github.com/nyaruka/temba-components/pull/670)
@@ -6,6 +6,49 @@
6
6
  "language": "eng",
7
7
  "type": "messaging",
8
8
  "nodes": [
9
+ {
10
+ "uuid": "fb7bbf99-65cd-4e08-825a-68fc7293cc05",
11
+ "actions": [
12
+ {
13
+ "uuid": "1c68d488-7ce7-4c7d-ae05-f767589e00ff",
14
+ "type": "set_contact_channel",
15
+ "channel": {
16
+ "uuid": "d70a531e-25d8-45dc-9a5b-19ff80cee571",
17
+ "name": "Facebook"
18
+ }
19
+ },
20
+ {
21
+ "uuid": "cc5c9892-4ba0-450a-a9d6-8567381eab1c",
22
+ "type": "set_contact_name",
23
+ "name": "The name"
24
+ },
25
+ {
26
+ "uuid": "2de0b3d2-8b84-43f7-8716-640c879b6730",
27
+ "type": "set_contact_language",
28
+ "language": "eng"
29
+ },
30
+ {
31
+ "uuid": "0020495f-f919-41bc-b0a7-5e109e72a6ac",
32
+ "type": "set_contact_field",
33
+ "field": {
34
+ "name": "Gender",
35
+ "key": "gender"
36
+ },
37
+ "value": "Male"
38
+ },
39
+ {
40
+ "uuid": "542b9033-2578-4ba1-bac8-dee26fd608fb",
41
+ "type": "set_contact_status",
42
+ "status": "active"
43
+ }
44
+ ],
45
+ "exits": [
46
+ {
47
+ "uuid": "8e90179d-bdbe-443f-8548-4911e09c6d46",
48
+ "destination_uuid": null
49
+ }
50
+ ]
51
+ },
9
52
  {
10
53
  "uuid": "a229fa3c-16bb-440b-9ae8-b7ee7a723f44",
11
54
  "actions": [
@@ -132,32 +175,20 @@
132
175
  "uuid": "e1f22e97-a170-44b4-a79b-98ab916f4c34",
133
176
  "actions": [
134
177
  {
135
- "uuid": "cb497975-a8fb-4d28-a662-277eb7a699f9",
136
178
  "type": "call_webhook",
137
- "url": "http://google.com",
179
+ "uuid": "e1f22e97-a170-44b4-a79b-98ab916f4c34",
138
180
  "method": "POST",
181
+ "url": "http://google.com",
139
182
  "headers": {
140
183
  "Accepts": "application/json",
141
184
  "Content-Type": "application/json",
142
185
  "Authorization": "Bearer token here"
143
186
  },
144
- "body": "@(json(object(\n \"contact\", object(\n \"uuid\", contact.uuid, \n \"name\", contact.name, \n \"urn\", contact.urn\n ),\n \"flow\", object(\n \"uuid\", run.flow.uuid, \n \"name\", run.flow.name\n ),\n \"results\", foreach_value(results, extract_object, \"value\", \"category\")\n)))ast"
187
+ "body": "@(json(object(\n \"contact\", object(\n \"uuid\", contact.uuid, \n \"name\", contact.name, \n \"urn\", contact.urn\n ),\n \"flow\", object(\n \"uuid\", run.flow.uuid, \n \"name\", run.flow.name\n ),\n \"results\", foreach_value(results, extract_object, \"value\", \"category\")\n)))"
145
188
  }
146
189
  ],
147
190
  "router": {
148
191
  "type": "switch",
149
- "operand": "@webhook.status",
150
- "cases": [
151
- {
152
- "uuid": "024a8d66-be1e-4821-bec4-8c54fd7135c6",
153
- "type": "has_number_between",
154
- "arguments": [
155
- "200",
156
- "299"
157
- ],
158
- "category_uuid": "0bb08076-45e2-4ca1-b321-1506f1779198"
159
- }
160
- ],
161
192
  "categories": [
162
193
  {
163
194
  "uuid": "1b9100a4-f3f0-410e-8b6f-d339bf58a13a",
@@ -170,8 +201,19 @@
170
201
  "exit_uuid": "8087c747-eebc-4f35-8032-33490ba390d6"
171
202
  }
172
203
  ],
173
- "default_category_uuid": "67fc0e41-eeb2-4f54-9f71-abdd64c097f4",
174
- "result_name": ""
204
+ "default_category_uuid": "13915377-5eb1-46c5-8955-78646b75b8ef",
205
+ "operand": "@webhook.status",
206
+ "cases": [
207
+ {
208
+ "uuid": "8b9201ff-b195-4e18-8124-3362d310a2e5",
209
+ "type": "has_number_between",
210
+ "arguments": [
211
+ "200",
212
+ "299"
213
+ ],
214
+ "category_uuid": "1b9100a4-f3f0-410e-8b6f-d339bf58a13a"
215
+ }
216
+ ]
175
217
  },
176
218
  "exits": [
177
219
  {
@@ -601,35 +643,16 @@
601
643
  "uuid": "2c60c381-487d-42cd-80be-a31f44c36fd9",
602
644
  "actions": [
603
645
  {
604
- "uuid": "f842eab5-b7d0-4899-811f-e631c1a442ad",
605
646
  "type": "enter_flow",
647
+ "uuid": "2c60c381-487d-42cd-80be-a31f44c36fd9",
606
648
  "flow": {
607
- "uuid": "78d2429c-8fdc-421c-bd37-b381ae99b7c7",
608
- "name": "Support"
649
+ "uuid": "8f1fa2e3-740a-4f06-b67b-d521643eb52b",
650
+ "name": "Food Order"
609
651
  }
610
652
  }
611
653
  ],
612
654
  "router": {
613
655
  "type": "switch",
614
- "operand": "@child.status",
615
- "cases": [
616
- {
617
- "uuid": "625daede-4c37-45d4-9af6-5607ad4b1ce0",
618
- "type": "has_only_text",
619
- "arguments": [
620
- "completed"
621
- ],
622
- "category_uuid": "894652f9-cc6c-4192-827d-3c5543778478"
623
- },
624
- {
625
- "uuid": "1e5f9d1e-794d-4279-ad93-3c7541962388",
626
- "arguments": [
627
- "expired"
628
- ],
629
- "type": "has_only_text",
630
- "category_uuid": "48e318f7-4153-471a-856a-be01ac2f18a0"
631
- }
632
- ],
633
656
  "categories": [
634
657
  {
635
658
  "uuid": "894652f9-cc6c-4192-827d-3c5543778478",
@@ -642,7 +665,18 @@
642
665
  "exit_uuid": "e3314f8b-5598-4592-b5f9-2999c4a28a4f"
643
666
  }
644
667
  ],
645
- "default_category_uuid": "48e318f7-4153-471a-856a-be01ac2f18a0"
668
+ "default_category_uuid": "48e318f7-4153-471a-856a-be01ac2f18a0",
669
+ "operand": "@child.status",
670
+ "cases": [
671
+ {
672
+ "uuid": "625daede-4c37-45d4-9af6-5607ad4b1ce0",
673
+ "type": "has_only_text",
674
+ "arguments": [
675
+ "completed"
676
+ ],
677
+ "category_uuid": "894652f9-cc6c-4192-827d-3c5543778478"
678
+ }
679
+ ]
646
680
  },
647
681
  "exits": [
648
682
  {
@@ -738,8 +772,8 @@
738
772
  "uuid": "21ff86c2-5276-4448-afb6-54d1f832ba0c",
739
773
  "actions": [
740
774
  {
741
- "uuid": "a7f21fc4-8bf1-47ab-a6c7-3e072f88afe7",
742
775
  "type": "open_ticket",
776
+ "uuid": "21ff86c2-5276-4448-afb6-54d1f832ba0c",
743
777
  "topic": {
744
778
  "uuid": "1b1cb507-e079-4b30-818c-1898edcbd178",
745
779
  "name": "General"
@@ -753,15 +787,6 @@
753
787
  ],
754
788
  "router": {
755
789
  "type": "switch",
756
- "operand": "@locals._new_ticket",
757
- "cases": [
758
- {
759
- "uuid": "f32a3e1b-976d-4897-af3b-964041af1361",
760
- "type": "has_text",
761
- "arguments": [],
762
- "category_uuid": "1ec9135f-e670-4bae-a6d7-2f6aa6ce9b59"
763
- }
764
- ],
765
790
  "categories": [
766
791
  {
767
792
  "uuid": "1ec9135f-e670-4bae-a6d7-2f6aa6ce9b59",
@@ -775,7 +800,15 @@
775
800
  }
776
801
  ],
777
802
  "default_category_uuid": "6c1b355d-7d3e-4c17-abef-7861bac5cf48",
778
- "result_name": ""
803
+ "operand": "@locals._new_ticket",
804
+ "cases": [
805
+ {
806
+ "uuid": "f32a3e1b-976d-4897-af3b-964041af1361",
807
+ "type": "has_text",
808
+ "arguments": [],
809
+ "category_uuid": "1ec9135f-e670-4bae-a6d7-2f6aa6ce9b59"
810
+ }
811
+ ]
779
812
  },
780
813
  "exits": [
781
814
  {
@@ -895,6 +928,13 @@
895
928
  ],
896
929
  "_ui": {
897
930
  "nodes": {
931
+ "fb7bbf99-65cd-4e08-825a-68fc7293cc05": {
932
+ "position": {
933
+ "left": 1100,
934
+ "top": 480
935
+ },
936
+ "type": "execute_actions"
937
+ },
898
938
  "145eb3d3-b841-4e66-abac-297ae525c7ad": {
899
939
  "position": {
900
940
  "left": 720,
@@ -938,7 +978,7 @@
938
978
  "type": "split_by_subflow",
939
979
  "position": {
940
980
  "left": 460,
941
- "top": 740
981
+ "top": 680
942
982
  },
943
983
  "config": {}
944
984
  },
@@ -993,7 +1033,7 @@
993
1033
  "5f1394c1-4b8c-4357-8863-db24817b2aa3": {
994
1034
  "type": "split_by_groups",
995
1035
  "position": {
996
- "left": 480,
1036
+ "left": 460,
997
1037
  "top": 380
998
1038
  },
999
1039
  "config": {
@@ -1004,7 +1044,7 @@
1004
1044
  "type": "split_by_scheme",
1005
1045
  "position": {
1006
1046
  "left": 460,
1007
- "top": 600
1047
+ "top": 540
1008
1048
  },
1009
1049
  "config": {
1010
1050
  "cases": {}
@@ -1014,7 +1054,7 @@
1014
1054
  "type": "split_by_llm",
1015
1055
  "position": {
1016
1056
  "left": 460,
1017
- "top": 900
1057
+ "top": 840
1018
1058
  },
1019
1059
  "config": {}
1020
1060
  },
@@ -1038,7 +1078,7 @@
1038
1078
  "1a32aff1-36b9-48e3-a51e-382efdcb9a83": {
1039
1079
  "position": {
1040
1080
  "left": 0,
1041
- "top": 0
1081
+ "top": 40
1042
1082
  },
1043
1083
  "title": "Yellow Note",
1044
1084
  "body": "This flow makes no sense. That's because it's just for general testing. We can keep typing in this div though and it is interesting how it just keeps expanding even if it isn't a textarea. Even this seems okay and I can keep typing as long as I like.\n\nI can even add some extra line breaks.",
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>ColorPicker Test</title>
5
+ <style>
6
+ body { padding: 20px; font-family: Arial, sans-serif; }
7
+ .test-section { margin: 20px 0; border: 1px solid #ccc; padding: 20px; }
8
+ temba-color-picker { width: 300px; }
9
+ </style>
10
+ <script type="module" src="/dist/temba-components.js"></script>
11
+ </head>
12
+ <body>
13
+ <h1>ColorPicker Visual Test</h1>
14
+
15
+ <div class="test-section">
16
+ <h3>ColorPicker with label (new behavior)</h3>
17
+ <temba-color-picker name="primary" label="Primary Color"></temba-color-picker>
18
+ </div>
19
+
20
+ <div class="test-section">
21
+ <h3>ColorPicker with widgetOnly (should match old behavior)</h3>
22
+ <temba-color-picker name="primary" label="Primary Color" widgetOnly></temba-color-picker>
23
+ </div>
24
+
25
+ <div class="test-section">
26
+ <h3>ColorPicker without label</h3>
27
+ <temba-color-picker name="primary"></temba-color-picker>
28
+ </div>
29
+ </body>
30
+ </html>