@k2b/ui 0.33.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/dist/base.css +14 -1
  2. package/dist/browser/actions/ContextMenu.js +13 -0
  3. package/dist/browser/actions/ContextMenu.js.map +1 -1
  4. package/dist/browser/actions/Dropdown.js +16 -4
  5. package/dist/browser/actions/Dropdown.js.map +1 -1
  6. package/dist/browser/actions/SelectionToolbar.js +129 -0
  7. package/dist/browser/actions/SelectionToolbar.js.map +1 -0
  8. package/dist/browser/actions/index.js +1 -0
  9. package/dist/browser/actions/index.js.map +1 -1
  10. package/dist/browser/charts.js +6 -0
  11. package/dist/browser/charts.js.map +1 -0
  12. package/dist/browser/chat/ChatComposer.js +525 -407
  13. package/dist/browser/chat/ChatComposer.js.map +1 -1
  14. package/dist/browser/chat/chat-messages.js +4 -0
  15. package/dist/browser/chat/chat-messages.js.map +1 -1
  16. package/dist/browser/chat/composer-document.js +19 -0
  17. package/dist/browser/chat/composer-document.js.map +1 -1
  18. package/dist/browser/chat/index.js.map +1 -1
  19. package/dist/browser/content/Chart.js +8 -0
  20. package/dist/browser/content/Chart.js.map +1 -1
  21. package/dist/browser/content/FileGrid.js +231 -9
  22. package/dist/browser/content/FileGrid.js.map +1 -1
  23. package/dist/browser/content/FileTypeIcon.js +15 -0
  24. package/dist/browser/content/FileTypeIcon.js.map +1 -1
  25. package/dist/browser/content/FileView.js +11 -4
  26. package/dist/browser/content/FileView.js.map +1 -1
  27. package/dist/browser/content/MatchText.js +61 -0
  28. package/dist/browser/content/MatchText.js.map +1 -0
  29. package/dist/browser/content/MessageRow.js +73 -53
  30. package/dist/browser/content/MessageRow.js.map +1 -1
  31. package/dist/browser/content/ReactionBar.js +3 -1
  32. package/dist/browser/content/ReactionBar.js.map +1 -1
  33. package/dist/browser/content/calendar-day-scroll.js +4 -3
  34. package/dist/browser/content/calendar-day-scroll.js.map +1 -1
  35. package/dist/browser/content/chart-bar.js +476 -0
  36. package/dist/browser/content/chart-bar.js.map +1 -0
  37. package/dist/browser/content/file-list-messages.js +52 -0
  38. package/dist/browser/content/file-list-messages.js.map +1 -0
  39. package/dist/browser/content/index.js +2 -1
  40. package/dist/browser/content/index.js.map +1 -1
  41. package/dist/browser/feedback/Tooltip.js +31 -14
  42. package/dist/browser/feedback/Tooltip.js.map +1 -1
  43. package/dist/browser/inputs/ChoiceList.js +178 -0
  44. package/dist/browser/inputs/ChoiceList.js.map +1 -0
  45. package/dist/browser/inputs/ChoiceSlider.js +314 -0
  46. package/dist/browser/inputs/ChoiceSlider.js.map +1 -0
  47. package/dist/browser/inputs/ChoiceTiles.js +135 -0
  48. package/dist/browser/inputs/ChoiceTiles.js.map +1 -0
  49. package/dist/browser/inputs/ColorChoices.js +120 -0
  50. package/dist/browser/inputs/ColorChoices.js.map +1 -0
  51. package/dist/browser/inputs/QrScanner.js +95 -13
  52. package/dist/browser/inputs/QrScanner.js.map +1 -1
  53. package/dist/browser/inputs/TextInput.js +15 -13
  54. package/dist/browser/inputs/TextInput.js.map +1 -1
  55. package/dist/browser/inputs/index.js +4 -0
  56. package/dist/browser/inputs/index.js.map +1 -1
  57. package/dist/browser/inputs/qr-messages.js +2 -0
  58. package/dist/browser/inputs/qr-messages.js.map +1 -1
  59. package/dist/browser/internal/radio-keys.js +13 -0
  60. package/dist/browser/internal/radio-keys.js.map +1 -0
  61. package/dist/browser/layout/AnchoredPopover.js +180 -0
  62. package/dist/browser/layout/AnchoredPopover.js.map +1 -0
  63. package/dist/browser/layout/AppWorkspace.js +155 -20
  64. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  65. package/dist/browser/layout/DetailPanel.js +443 -333
  66. package/dist/browser/layout/DetailPanel.js.map +1 -1
  67. package/dist/browser/layout/MobileShell.js +21 -7
  68. package/dist/browser/layout/MobileShell.js.map +1 -1
  69. package/dist/browser/layout/Settings.js +283 -175
  70. package/dist/browser/layout/Settings.js.map +1 -1
  71. package/dist/browser/layout/SidebarRailHint.js +79 -0
  72. package/dist/browser/layout/SidebarRailHint.js.map +1 -0
  73. package/dist/browser/layout/SidebarSwitcher.js +79 -66
  74. package/dist/browser/layout/SidebarSwitcher.js.map +1 -1
  75. package/dist/browser/layout/TabBar.js +18 -4
  76. package/dist/browser/layout/TabBar.js.map +1 -1
  77. package/dist/browser/layout/app-workspace-controller.js +11 -4
  78. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  79. package/dist/browser/layout/detail-panel-messages.js +4 -2
  80. package/dist/browser/layout/detail-panel-messages.js.map +1 -1
  81. package/dist/browser/layout/index.js +2 -1
  82. package/dist/browser/layout/index.js.map +1 -1
  83. package/dist/browser/layout/settings-messages.js +26 -2
  84. package/dist/browser/layout/settings-messages.js.map +1 -1
  85. package/dist/browser/surfaces/Avatar.js +2 -14
  86. package/dist/browser/surfaces/Avatar.js.map +1 -1
  87. package/dist/browser/surfaces/DotStrip.js +70 -0
  88. package/dist/browser/surfaces/DotStrip.js.map +1 -0
  89. package/dist/browser/surfaces/ProgressRing.js +3 -0
  90. package/dist/browser/surfaces/ProgressRing.js.map +1 -1
  91. package/dist/browser/surfaces/ResourceCard.js +125 -68
  92. package/dist/browser/surfaces/ResourceCard.js.map +1 -1
  93. package/dist/browser/surfaces/index.js +2 -0
  94. package/dist/browser/surfaces/index.js.map +1 -1
  95. package/dist/browser/surfaces/person-color.js +18 -0
  96. package/dist/browser/surfaces/person-color.js.map +1 -0
  97. package/dist/browser/surfaces/resource-messages.js +6 -2
  98. package/dist/browser/surfaces/resource-messages.js.map +1 -1
  99. package/dist/browser/text-editor/TextEditor.js +1358 -0
  100. package/dist/browser/text-editor/TextEditor.js.map +1 -0
  101. package/dist/browser/text-editor/clipboard-html.js +152 -0
  102. package/dist/browser/text-editor/clipboard-html.js.map +1 -0
  103. package/dist/browser/text-editor/clipboard-loading.js +68 -0
  104. package/dist/browser/text-editor/clipboard-loading.js.map +1 -0
  105. package/dist/browser/text-editor/clipboard.js +51 -0
  106. package/dist/browser/text-editor/clipboard.js.map +1 -0
  107. package/dist/browser/text-editor/engine.js +125 -0
  108. package/dist/browser/text-editor/engine.js.map +1 -0
  109. package/dist/browser/text-editor/format.js +218 -0
  110. package/dist/browser/text-editor/format.js.map +1 -0
  111. package/dist/browser/text-editor/formatted.js +164 -0
  112. package/dist/browser/text-editor/formatted.js.map +1 -0
  113. package/dist/browser/text-editor/language.js +19 -0
  114. package/dist/browser/text-editor/language.js.map +1 -0
  115. package/dist/browser/text-editor/markdown-table.js +563 -0
  116. package/dist/browser/text-editor/markdown-table.js.map +1 -0
  117. package/dist/browser/text-editor/messages.js +233 -0
  118. package/dist/browser/text-editor/messages.js.map +1 -0
  119. package/dist/browser/text-editor/paste.js +115 -0
  120. package/dist/browser/text-editor/paste.js.map +1 -0
  121. package/dist/browser/text-editor/table.js +1760 -0
  122. package/dist/browser/text-editor/table.js.map +1 -0
  123. package/dist/browser/text-editor.js +5 -0
  124. package/dist/browser/text-editor.js.map +1 -0
  125. package/dist/browser/widgets/Widget.js +3 -2
  126. package/dist/browser/widgets/Widget.js.map +1 -1
  127. package/dist/ssr/actions/ContextMenu.js +9 -0
  128. package/dist/ssr/actions/ContextMenu.js.map +1 -1
  129. package/dist/ssr/actions/Dropdown.js +15 -4
  130. package/dist/ssr/actions/Dropdown.js.map +1 -1
  131. package/dist/ssr/actions/SelectionToolbar.js +104 -0
  132. package/dist/ssr/actions/SelectionToolbar.js.map +1 -0
  133. package/dist/ssr/actions/index.js +1 -0
  134. package/dist/ssr/actions/index.js.map +1 -1
  135. package/dist/ssr/charts.js +6 -0
  136. package/dist/ssr/charts.js.map +1 -0
  137. package/dist/ssr/chat/ChatComposer.js +132 -53
  138. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  139. package/dist/ssr/chat/chat-messages.js +4 -0
  140. package/dist/ssr/chat/chat-messages.js.map +1 -1
  141. package/dist/ssr/chat/composer-document.js +19 -0
  142. package/dist/ssr/chat/composer-document.js.map +1 -1
  143. package/dist/ssr/chat/index.js.map +1 -1
  144. package/dist/ssr/content/Chart.js +8 -0
  145. package/dist/ssr/content/Chart.js.map +1 -1
  146. package/dist/ssr/content/FileGrid.js +132 -5
  147. package/dist/ssr/content/FileGrid.js.map +1 -1
  148. package/dist/ssr/content/FileTypeIcon.js +15 -0
  149. package/dist/ssr/content/FileTypeIcon.js.map +1 -1
  150. package/dist/ssr/content/FileView.js +11 -4
  151. package/dist/ssr/content/FileView.js.map +1 -1
  152. package/dist/ssr/content/MatchText.js +56 -0
  153. package/dist/ssr/content/MatchText.js.map +1 -0
  154. package/dist/ssr/content/MessageRow.js +16 -6
  155. package/dist/ssr/content/MessageRow.js.map +1 -1
  156. package/dist/ssr/content/ReactionBar.js +3 -1
  157. package/dist/ssr/content/ReactionBar.js.map +1 -1
  158. package/dist/ssr/content/calendar-day-scroll.js +4 -3
  159. package/dist/ssr/content/calendar-day-scroll.js.map +1 -1
  160. package/dist/ssr/content/chart-bar.js +476 -0
  161. package/dist/ssr/content/chart-bar.js.map +1 -0
  162. package/dist/ssr/content/file-list-messages.js +52 -0
  163. package/dist/ssr/content/file-list-messages.js.map +1 -0
  164. package/dist/ssr/content/index.js +2 -1
  165. package/dist/ssr/content/index.js.map +1 -1
  166. package/dist/ssr/feedback/Tooltip.js +31 -14
  167. package/dist/ssr/feedback/Tooltip.js.map +1 -1
  168. package/dist/ssr/inputs/ChoiceList.js +95 -0
  169. package/dist/ssr/inputs/ChoiceList.js.map +1 -0
  170. package/dist/ssr/inputs/ChoiceSlider.js +191 -0
  171. package/dist/ssr/inputs/ChoiceSlider.js.map +1 -0
  172. package/dist/ssr/inputs/ChoiceTiles.js +61 -0
  173. package/dist/ssr/inputs/ChoiceTiles.js.map +1 -0
  174. package/dist/ssr/inputs/ColorChoices.js +60 -0
  175. package/dist/ssr/inputs/ColorChoices.js.map +1 -0
  176. package/dist/ssr/inputs/QrScanner.js +89 -10
  177. package/dist/ssr/inputs/QrScanner.js.map +1 -1
  178. package/dist/ssr/inputs/TextInput.js +13 -1
  179. package/dist/ssr/inputs/TextInput.js.map +1 -1
  180. package/dist/ssr/inputs/index.js +4 -0
  181. package/dist/ssr/inputs/index.js.map +1 -1
  182. package/dist/ssr/inputs/qr-messages.js +2 -0
  183. package/dist/ssr/inputs/qr-messages.js.map +1 -1
  184. package/dist/ssr/internal/radio-keys.js +13 -0
  185. package/dist/ssr/internal/radio-keys.js.map +1 -0
  186. package/dist/ssr/layout/AnchoredPopover.js +142 -0
  187. package/dist/ssr/layout/AnchoredPopover.js.map +1 -0
  188. package/dist/ssr/layout/AppWorkspace.js +154 -20
  189. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  190. package/dist/ssr/layout/DetailPanel.js +181 -108
  191. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  192. package/dist/ssr/layout/MobileShell.js +20 -6
  193. package/dist/ssr/layout/MobileShell.js.map +1 -1
  194. package/dist/ssr/layout/Settings.js +122 -45
  195. package/dist/ssr/layout/Settings.js.map +1 -1
  196. package/dist/ssr/layout/SidebarRailHint.js +79 -0
  197. package/dist/ssr/layout/SidebarRailHint.js.map +1 -0
  198. package/dist/ssr/layout/SidebarSwitcher.js +13 -3
  199. package/dist/ssr/layout/SidebarSwitcher.js.map +1 -1
  200. package/dist/ssr/layout/TabBar.js +11 -3
  201. package/dist/ssr/layout/TabBar.js.map +1 -1
  202. package/dist/ssr/layout/app-workspace-controller.js +11 -4
  203. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  204. package/dist/ssr/layout/detail-panel-messages.js +4 -2
  205. package/dist/ssr/layout/detail-panel-messages.js.map +1 -1
  206. package/dist/ssr/layout/index.js +2 -1
  207. package/dist/ssr/layout/index.js.map +1 -1
  208. package/dist/ssr/layout/settings-messages.js +26 -2
  209. package/dist/ssr/layout/settings-messages.js.map +1 -1
  210. package/dist/ssr/surfaces/Avatar.js +2 -14
  211. package/dist/ssr/surfaces/Avatar.js.map +1 -1
  212. package/dist/ssr/surfaces/DotStrip.js +31 -0
  213. package/dist/ssr/surfaces/DotStrip.js.map +1 -0
  214. package/dist/ssr/surfaces/ProgressRing.js +3 -0
  215. package/dist/ssr/surfaces/ProgressRing.js.map +1 -1
  216. package/dist/ssr/surfaces/ResourceCard.js +40 -15
  217. package/dist/ssr/surfaces/ResourceCard.js.map +1 -1
  218. package/dist/ssr/surfaces/index.js +2 -0
  219. package/dist/ssr/surfaces/index.js.map +1 -1
  220. package/dist/ssr/surfaces/person-color.js +18 -0
  221. package/dist/ssr/surfaces/person-color.js.map +1 -0
  222. package/dist/ssr/surfaces/resource-messages.js +6 -2
  223. package/dist/ssr/surfaces/resource-messages.js.map +1 -1
  224. package/dist/ssr/text-editor/TextEditor.js +1155 -0
  225. package/dist/ssr/text-editor/TextEditor.js.map +1 -0
  226. package/dist/ssr/text-editor/clipboard-html.js +152 -0
  227. package/dist/ssr/text-editor/clipboard-html.js.map +1 -0
  228. package/dist/ssr/text-editor/clipboard-loading.js +68 -0
  229. package/dist/ssr/text-editor/clipboard-loading.js.map +1 -0
  230. package/dist/ssr/text-editor/clipboard.js +51 -0
  231. package/dist/ssr/text-editor/clipboard.js.map +1 -0
  232. package/dist/ssr/text-editor/engine.js +125 -0
  233. package/dist/ssr/text-editor/engine.js.map +1 -0
  234. package/dist/ssr/text-editor/format.js +218 -0
  235. package/dist/ssr/text-editor/format.js.map +1 -0
  236. package/dist/ssr/text-editor/formatted.js +164 -0
  237. package/dist/ssr/text-editor/formatted.js.map +1 -0
  238. package/dist/ssr/text-editor/language.js +19 -0
  239. package/dist/ssr/text-editor/language.js.map +1 -0
  240. package/dist/ssr/text-editor/markdown-table.js +563 -0
  241. package/dist/ssr/text-editor/markdown-table.js.map +1 -0
  242. package/dist/ssr/text-editor/messages.js +233 -0
  243. package/dist/ssr/text-editor/messages.js.map +1 -0
  244. package/dist/ssr/text-editor/paste.js +115 -0
  245. package/dist/ssr/text-editor/paste.js.map +1 -0
  246. package/dist/ssr/text-editor/table.js +1760 -0
  247. package/dist/ssr/text-editor/table.js.map +1 -0
  248. package/dist/ssr/text-editor.js +5 -0
  249. package/dist/ssr/text-editor.js.map +1 -0
  250. package/dist/ssr/widgets/Widget.js +3 -2
  251. package/dist/ssr/widgets/Widget.js.map +1 -1
  252. package/dist/styles.css +1 -1
  253. package/dist/types/actions/ContextMenu.d.ts +5 -0
  254. package/dist/types/actions/Dropdown.d.ts +7 -0
  255. package/dist/types/actions/SelectionToolbar.d.ts +38 -0
  256. package/dist/types/actions/index.d.ts +2 -0
  257. package/dist/types/charts.d.ts +5 -0
  258. package/dist/types/chat/ChatComposer.d.ts +15 -0
  259. package/dist/types/chat/chat-messages.d.ts +2 -0
  260. package/dist/types/chat/composer-document.d.ts +5 -0
  261. package/dist/types/chat/index.d.ts +1 -1
  262. package/dist/types/content/Chart.d.ts +2 -1
  263. package/dist/types/content/FileGrid.d.ts +43 -3
  264. package/dist/types/content/FileTypeIcon.d.ts +10 -0
  265. package/dist/types/content/FileView.d.ts +5 -1
  266. package/dist/types/content/MatchText.d.ts +21 -0
  267. package/dist/types/content/MessageRow.d.ts +2 -0
  268. package/dist/types/content/calendar-day-scroll.d.ts +2 -1
  269. package/dist/types/content/chart-bar.d.ts +60 -0
  270. package/dist/types/content/file-list-messages.d.ts +24 -0
  271. package/dist/types/content/index.d.ts +3 -2
  272. package/dist/types/feedback/Tooltip.d.ts +8 -2
  273. package/dist/types/inputs/ChoiceList.d.ts +28 -0
  274. package/dist/types/inputs/ChoiceSlider.d.ts +36 -0
  275. package/dist/types/inputs/ChoiceTiles.d.ts +25 -0
  276. package/dist/types/inputs/ColorChoices.d.ts +19 -0
  277. package/dist/types/inputs/index.d.ts +8 -0
  278. package/dist/types/inputs/qr-messages.d.ts +1 -0
  279. package/dist/types/internal/radio-keys.d.ts +5 -0
  280. package/dist/types/layout/AnchoredPopover.d.ts +31 -0
  281. package/dist/types/layout/AppWorkspace.d.ts +10 -0
  282. package/dist/types/layout/DetailPanel.d.ts +17 -0
  283. package/dist/types/layout/MobileShell.d.ts +5 -2
  284. package/dist/types/layout/Settings.d.ts +22 -0
  285. package/dist/types/layout/SidebarRailHint.d.ts +26 -0
  286. package/dist/types/layout/TabBar.d.ts +5 -0
  287. package/dist/types/layout/detail-panel-messages.d.ts +1 -0
  288. package/dist/types/layout/index.d.ts +3 -2
  289. package/dist/types/layout/settings-messages.d.ts +12 -0
  290. package/dist/types/surfaces/DotStrip.d.ts +22 -0
  291. package/dist/types/surfaces/ProgressRing.d.ts +2 -1
  292. package/dist/types/surfaces/ResourceCard.d.ts +9 -0
  293. package/dist/types/surfaces/index.d.ts +4 -1
  294. package/dist/types/surfaces/person-color.d.ts +10 -0
  295. package/dist/types/surfaces/resource-messages.d.ts +2 -0
  296. package/dist/types/text-editor/TextEditor.d.ts +69 -0
  297. package/dist/types/text-editor/clipboard-html.d.ts +9 -0
  298. package/dist/types/text-editor/clipboard-loading.d.ts +8 -0
  299. package/dist/types/text-editor/clipboard.d.ts +20 -0
  300. package/dist/types/text-editor/engine.d.ts +34 -0
  301. package/dist/types/text-editor/format.d.ts +34 -0
  302. package/dist/types/text-editor/formatted.d.ts +1 -0
  303. package/dist/types/text-editor/language.d.ts +8 -0
  304. package/dist/types/text-editor/markdown-table.d.ts +105 -0
  305. package/dist/types/text-editor/messages.d.ts +113 -0
  306. package/dist/types/text-editor/paste.d.ts +6 -0
  307. package/dist/types/text-editor/table.d.ts +81 -0
  308. package/dist/types/text-editor.d.ts +4 -0
  309. package/dist/types/widgets/Widget.d.ts +3 -2
  310. package/package.json +28 -3
@@ -38,7 +38,7 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span><strong>`),
38
38
  _tmpl$21 = /*#__PURE__*/_$template(`<div role=status><i class="ti ti-alert-circle"></i> <!$><!/>`),
39
39
  _tmpl$22 = /*#__PURE__*/_$template(`<div role=status>`),
40
40
  _tmpl$23 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer-accessory data-commands><!$><!/><div class=k2b-chat-composer__commands role=listbox><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
41
- _tmpl$24 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer-slot><div></div><!$><!/><!$><!/>`),
41
+ _tmpl$24 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer-slot><div></div><!$><!/><!$><!/><!$><!/>`),
42
42
  _tmpl$25 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__hint aria-live=polite>`),
43
43
  _tmpl$26 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachments role=list tabindex=0>`),
44
44
  _tmpl$27 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__error role=alert><i class="ti ti-alert-circle"aria-hidden=true></i><!$><!/>`),
@@ -46,26 +46,27 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span><strong>`),
46
46
  _tmpl$29 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer-shell><!$><!/><section role=group><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/></section><div class=k2b-sr-only role=status aria-live=polite></div><div class=k2b-chat-composer__status role=status><!$><!/><!$><!/>`),
47
47
  _tmpl$30 = /*#__PURE__*/_$template(`<button type=button role=option tabindex=-1><span class=k2b-chat-composer__emoji-glyph aria-hidden=true></span><strong></strong><!$><!/>`),
48
48
  _tmpl$31 = /*#__PURE__*/_$template(`<small>:<!$><!/>:`),
49
- _tmpl$32 = /*#__PURE__*/_$template(`<i class="ti ti-loader-2 k2b-spin"aria-hidden=true>`),
50
- _tmpl$33 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__command-group role=group><div class=k2b-chat-composer__command-heading role=presentation><span></span><!$><!/></div><!$><!/><!$><!/>`),
51
- _tmpl$34 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__command-placeholder aria-hidden=true><span></span><span><span></span><span>`),
52
- _tmpl$35 = /*#__PURE__*/_$template(`<span class=k2b-chat-composer__hint-text>`),
53
- _tmpl$36 = /*#__PURE__*/_$template(`<span class=k2b-chat-composer__dictation><i aria-hidden=true></i><span>`),
54
- _tmpl$37 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__hint-action>`),
55
- _tmpl$38 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__reply><!$><!/><button type=button class="k2b-chat-composer__icon-action k2b-chat-composer__reply-cancel"><i class="ti ti-x"aria-hidden=true>`),
56
- _tmpl$39 = /*#__PURE__*/_$template(`<div class=k2b-message-row__quote>`),
57
- _tmpl$40 = /*#__PURE__*/_$template(`<button type=button class=k2b-message-row__quote>`),
58
- _tmpl$41 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-remove><i class="ti ti-x"aria-hidden=true>`),
59
- _tmpl$42 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment role=listitem><div class=k2b-chat-composer__attachment-content><!$><!/><!$><!/></div><!$><!/>`),
60
- _tmpl$43 = /*#__PURE__*/_$template(`<img>`),
61
- _tmpl$44 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment-identity><!$><!/><!$><!/>`),
62
- _tmpl$45 = /*#__PURE__*/_$template(`<a class=k2b-chat-composer__attachment-link target=_blank rel="noopener noreferrer"><!$><!/><!$><!/>`),
63
- _tmpl$46 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-action><!$><!/><!$><!/>`),
64
- _tmpl$47 = /*#__PURE__*/_$template(`<footer class=k2b-chat-composer__footer>`),
65
- _tmpl$48 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__tools><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
66
- _tmpl$49 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__submit><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
67
- _tmpl$50 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__status-line><i aria-hidden=true></i><span>`),
68
- _tmpl$51 = /*#__PURE__*/_$template(`<span class=k2b-sr-only>`);
49
+ _tmpl$32 = /*#__PURE__*/_$template(`<button type=button role=option tabindex=-1><i aria-hidden=true></i><strong></strong><!$><!/>`),
50
+ _tmpl$33 = /*#__PURE__*/_$template(`<i class="ti ti-loader-2 k2b-spin"aria-hidden=true>`),
51
+ _tmpl$34 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__command-group role=group><div class=k2b-chat-composer__command-heading role=presentation><span></span><!$><!/></div><!$><!/><!$><!/>`),
52
+ _tmpl$35 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__command-placeholder aria-hidden=true><span></span><span><span></span><span>`),
53
+ _tmpl$36 = /*#__PURE__*/_$template(`<span class=k2b-chat-composer__hint-text>`),
54
+ _tmpl$37 = /*#__PURE__*/_$template(`<span class=k2b-chat-composer__dictation><i aria-hidden=true></i><span>`),
55
+ _tmpl$38 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__hint-action>`),
56
+ _tmpl$39 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__reply><!$><!/><button type=button class="k2b-chat-composer__icon-action k2b-chat-composer__reply-cancel"><i class="ti ti-x"aria-hidden=true>`),
57
+ _tmpl$40 = /*#__PURE__*/_$template(`<div class=k2b-message-row__quote>`),
58
+ _tmpl$41 = /*#__PURE__*/_$template(`<button type=button class=k2b-message-row__quote>`),
59
+ _tmpl$42 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-remove><i class="ti ti-x"aria-hidden=true>`),
60
+ _tmpl$43 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment role=listitem><div class=k2b-chat-composer__attachment-content><!$><!/><!$><!/></div><!$><!/>`),
61
+ _tmpl$44 = /*#__PURE__*/_$template(`<img>`),
62
+ _tmpl$45 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment-identity><!$><!/><!$><!/>`),
63
+ _tmpl$46 = /*#__PURE__*/_$template(`<a class=k2b-chat-composer__attachment-link target=_blank rel="noopener noreferrer"><!$><!/><!$><!/>`),
64
+ _tmpl$47 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-action><!$><!/><!$><!/>`),
65
+ _tmpl$48 = /*#__PURE__*/_$template(`<footer class=k2b-chat-composer__footer>`),
66
+ _tmpl$49 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__tools><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
67
+ _tmpl$50 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__submit><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
68
+ _tmpl$51 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__status-line><i aria-hidden=true></i><span>`),
69
+ _tmpl$52 = /*#__PURE__*/_$template(`<span class=k2b-sr-only>`);
69
70
  import { batch, children, createEffect, createMemo, createSignal, createUniqueId, For, Index, on, onCleanup, onMount, Show, untrack } from "solid-js";
70
71
  import { Dropdown } from "../actions/Dropdown";
71
72
  import { dialogHistorySettled, holdDialogHistory } from "../feedback/dialog-core";
@@ -84,7 +85,7 @@ import { ChatContextUsage as ContextUsage } from "./ChatPrimitives";
84
85
  import { chatCommandKey, conversationEnterAction, executeChatAction, nextChatCommandIndex, reportChatFailure, runChatSubmission } from "./chat-behavior";
85
86
  import { useChatMessages } from "./chat-messages";
86
87
  import { chatCommandListModel, parseChatCommandQuery } from "./command-search";
87
- import { chatCommandQuery, chatMentionSegments, reconcileChatMentions } from "./composer-document";
88
+ import { chatCommandQuery, chatMentionSegments, chatPeopleQuery, reconcileChatMentions } from "./composer-document";
88
89
  const composerMaxInputHeight = 309;
89
90
  const commandDoneMs = 3_000;
90
91
  /** Emoji suggestions for a `:shortcode`, as many as fit the list without scrolling on a phone. */
@@ -110,6 +111,10 @@ const composerUndoBudgetChars = 1_000_000;
110
111
 
111
112
  /** Passed as the third argument to `searchCommands`. */
112
113
 
114
+ /** A person `@` can mention: a member of the conversation, a person or an agent. */
115
+
116
+ /** Suggests people for `@`; the composer inserts the chosen one as a mention named "@Name". */
117
+
113
118
  /** The row stays short: what a chat message needs. Other Markdown, typed by hand, keeps working. */
114
119
  const formatTools = [{
115
120
  id: "bold",
@@ -307,6 +312,32 @@ export function ChatComposer(props) {
307
312
  return token && index ? suggestEmoji(index, token.query, emojiSuggestionLimit) : [];
308
313
  });
309
314
  const emojiOpen = () => emojiMatches().length > 0;
315
+ // People for `@name`: each change of the query asks again and gives up the previous question.
316
+ const peopleQuery = createMemo(() => !props.people || dismissed() || composing() ? null : chatPeopleQuery(props.value, caret(), selectionEnd(), mentions()));
317
+ // Results belong to the query they answer; while a newer query is asked, the older results show nothing to pick.
318
+ const [peopleResults, setPeopleResults] = createSignal();
319
+ const peopleMatches = () => {
320
+ const results = peopleResults();
321
+ return results && results.query === peopleQuery()?.query ? results.people : [];
322
+ };
323
+ const setPeopleMatches = (people, query = peopleQuery()?.query ?? "") => setPeopleResults({
324
+ query,
325
+ people
326
+ });
327
+ createEffect(on(() => [peopleQuery()?.start, peopleQuery()?.query], ([start, query]) => {
328
+ if (start === undefined || query === undefined || !props.people) {
329
+ setPeopleMatches([]);
330
+ return;
331
+ }
332
+ const abort = new AbortController();
333
+ onCleanup(() => abort.abort());
334
+ props.people.search(query, abort.signal).then(found => {
335
+ if (!abort.signal.aborted) setPeopleMatches(found.slice(0, 8), query);
336
+ }, () => {
337
+ if (!abort.signal.aborted) setPeopleMatches([], query);
338
+ });
339
+ }));
340
+ const peopleOpen = () => !emojiOpen() && Boolean(peopleQuery()) && peopleMatches().length > 0;
310
341
  // From "+", the search field's text is the query of an empty token at the field's stored caret.
311
342
  const caretCommandToken = createMemo(() => {
312
343
  const search = addSearch();
@@ -401,7 +432,7 @@ export function ChatComposer(props) {
401
432
  currentCommandQuery();
402
433
  setCommandMoved(false);
403
434
  });
404
- const commandsOpen = () => Boolean(!emojiOpen() && commandQuery() && (localCommands().length || props.searchCommands || commandFallbackRow()));
435
+ const commandsOpen = () => Boolean(!emojiOpen() && !peopleOpen() && commandQuery() && (localCommands().length || props.searchCommands || commandFallbackRow()));
405
436
  // Rows that arrive for a pending section never move a visible row of the overview: until the person types, the list
406
437
  // keeps the height it had with its placeholders and scrolls what does not fit. A list below its maximum height grows
407
438
  // upward from the field, so a change of height alone would move its first row. While searching, the rows arrive
@@ -471,7 +502,7 @@ export function ChatComposer(props) {
471
502
  if (!commandSheetHeld()) return;
472
503
  onCleanup(holdDialogHistory(() => closeCommandList()));
473
504
  });
474
- const suggestionsOpen = () => commandsOpen() || emojiOpen();
505
+ const suggestionsOpen = () => commandsOpen() || emojiOpen() || peopleOpen();
475
506
  const fieldOwnsList = () => suggestionsOpen() && !addSearch();
476
507
  // From "+", the panel keeps the height it opened with while the person types or rows arrive, so neither the search
477
508
  // field nor the first row moves; what does not fit scrolls. The space above the field still bounds it.
@@ -786,7 +817,7 @@ export function ChatComposer(props) {
786
817
  const editBlocked = () => conversation() ? busy() : blocked();
787
818
  const hasDraft = () => Boolean(props.value.trim() || !running() && attachments().length > 0);
788
819
  /** The draft may go out now, apart from a submission that is already on its way. */
789
- const submittable = () => !busy() && hasDraft() && !(running() && runningSubmitIntent() === "steer" && mentions().length);
820
+ const submittable = () => !busy() && !props.submitDisabled && hasDraft() && !(running() && runningSubmitIntent() === "steer" && mentions().length);
790
821
  const canSubmit = () => !submitting() && submittable();
791
822
  const canSelectFiles = () => Boolean(props.fileSelection && !props.fileSelection.disabled && !running() && !blocked());
792
823
  const hasAddMenu = () => Boolean(props.fileSelection || props.menuActions?.length);
@@ -856,11 +887,12 @@ export function ChatComposer(props) {
856
887
  });
857
888
  createEffect(() => {
858
889
  emojiMatches();
890
+ peopleMatches();
859
891
  setSelectedCommandIndex(0);
860
892
  });
861
893
  createEffect(() => {
862
894
  const command = selectedCommand();
863
- const id = emojiOpen() ? `${commandListId}-${selectedCommandIndex()}` : command ? commandOptionId(command) : undefined;
895
+ const id = emojiOpen() || peopleOpen() ? `${commandListId}-${selectedCommandIndex()}` : command ? commandOptionId(command) : undefined;
864
896
  queueMicrotask(() => {
865
897
  const list = commandListRef;
866
898
  const item = id ? list?.querySelector(`[id="${id}"]`) : undefined;
@@ -1313,6 +1345,32 @@ export function ChatComposer(props) {
1313
1345
  syncCaret();
1314
1346
  reportChatFailure(() => props.emoji?.onPick?.(emoji), props.onError);
1315
1347
  };
1348
+ /** Replaces `@query` with "@Name" as a mention and a space, as one edit the person can undo. */
1349
+ const pickPersonSuggestion = position => {
1350
+ const token = peopleQuery();
1351
+ const person = peopleMatches()[position];
1352
+ if (!token || !person || !textareaRef || editBlocked()) return;
1353
+ const text = `@${person.name}`;
1354
+ const nextValue = `${props.value.slice(0, token.start)}${text} ${props.value.slice(token.end)}`;
1355
+ const nextMentions = reconcileChatMentions(props.value, nextValue, mentions());
1356
+ nextMentions.push({
1357
+ start: token.start,
1358
+ end: token.start + text.length,
1359
+ attachment: {
1360
+ id: person.id,
1361
+ name: text,
1362
+ kind: "resource",
1363
+ icon: person.agent ? "ti ti-robot" : "ti ti-user"
1364
+ }
1365
+ });
1366
+ edit(nextValue, nextMentions);
1367
+ setPeopleMatches([]);
1368
+ const after = token.start + text.length + 1;
1369
+ queueMicrotask(() => {
1370
+ textareaRef?.setSelectionRange(after, after);
1371
+ syncCaret();
1372
+ });
1373
+ };
1316
1374
  const pickEmojiSuggestion = position => {
1317
1375
  const token = emojiQuery();
1318
1376
  const entry = emojiMatches()[position];
@@ -1411,17 +1469,18 @@ export function ChatComposer(props) {
1411
1469
  restoreHistory(event.shiftKey ? 1 : -1);
1412
1470
  return;
1413
1471
  }
1414
- if (emojiOpen()) {
1472
+ if (emojiOpen() || peopleOpen()) {
1473
+ const count = emojiOpen() ? emojiMatches().length : peopleMatches().length;
1415
1474
  if (event.key === "ArrowUp" || event.key === "ArrowDown") {
1416
1475
  event.preventDefault();
1417
- setSelectedCommandIndex(index => nextChatCommandIndex(index, emojiMatches().length, event.key === "ArrowUp" ? -1 : 1));
1476
+ setSelectedCommandIndex(index => nextChatCommandIndex(index, count, event.key === "ArrowUp" ? -1 : 1));
1418
1477
  return;
1419
1478
  }
1420
1479
  // Only a plain Enter or Tab picks: Shift+Enter still breaks the line, Shift+Tab still moves the focus back.
1421
1480
  const plain = !event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey;
1422
1481
  if (plain && (event.key === "Enter" || event.key === "Tab")) {
1423
1482
  event.preventDefault();
1424
- pickEmojiSuggestion(selectedCommandIndex());
1483
+ if (emojiOpen()) pickEmojiSuggestion(selectedCommandIndex());else pickPersonSuggestion(selectedCommandIndex());
1425
1484
  return;
1426
1485
  }
1427
1486
  if (event.key === "Escape") {
@@ -2022,7 +2081,7 @@ export function ChatComposer(props) {
2022
2081
  _v$1 = fieldOwnsList() ? "list" : undefined,
2023
2082
  _v$10 = fieldOwnsList() ? commandListId : undefined,
2024
2083
  _v$11 = fieldOwnsList() ? "true" : undefined,
2025
- _v$12 = !fieldOwnsList() ? undefined : emojiOpen() ? `${commandListId}-${selectedCommandIndex()}` : selectedCommand() ? commandOptionId(selectedCommand()) : undefined;
2084
+ _v$12 = !fieldOwnsList() ? undefined : emojiOpen() || peopleOpen() ? `${commandListId}-${selectedCommandIndex()}` : selectedCommand() ? commandOptionId(selectedCommand()) : undefined;
2026
2085
  _v$3 !== _p$.e && _$setAttribute(_el$18, "aria-label", _p$.e = _v$3);
2027
2086
  _v$4 !== _p$.t && _el$23.classList.toggle("k2b-chat-composer__textarea--highlighted", _p$.t = _v$4);
2028
2087
  _v$5 !== _p$.a && _$setProperty(_el$23, "disabled", _p$.a = _v$5);
@@ -2192,25 +2251,25 @@ export function ChatComposer(props) {
2192
2251
  })()];
2193
2252
  return (() => {
2194
2253
  var _el$57 = _$getNextElement(_tmpl$29),
2195
- _el$132 = _el$57.firstChild,
2196
- [_el$133, _co$33] = _$getNextMarker(_el$132.nextSibling),
2197
- _el$92 = _el$133.nextSibling,
2198
- _el$116 = _el$92.firstChild,
2199
- [_el$117, _co$26] = _$getNextMarker(_el$116.nextSibling),
2200
- _el$118 = _el$117.nextSibling,
2201
- [_el$119, _co$27] = _$getNextMarker(_el$118.nextSibling),
2202
- _el$120 = _el$119.nextSibling,
2203
- [_el$121, _co$28] = _$getNextMarker(_el$120.nextSibling),
2254
+ _el$136 = _el$57.firstChild,
2255
+ [_el$137, _co$34] = _$getNextMarker(_el$136.nextSibling),
2256
+ _el$96 = _el$137.nextSibling,
2257
+ _el$120 = _el$96.firstChild,
2258
+ [_el$121, _co$27] = _$getNextMarker(_el$120.nextSibling),
2204
2259
  _el$122 = _el$121.nextSibling,
2205
- [_el$123, _co$29] = _$getNextMarker(_el$122.nextSibling),
2260
+ [_el$123, _co$28] = _$getNextMarker(_el$122.nextSibling),
2206
2261
  _el$124 = _el$123.nextSibling,
2207
- [_el$125, _co$30] = _$getNextMarker(_el$124.nextSibling),
2208
- _el$126 = _el$92.nextSibling,
2209
- _el$127 = _el$126.nextSibling,
2210
- _el$128 = _el$127.firstChild,
2262
+ [_el$125, _co$29] = _$getNextMarker(_el$124.nextSibling),
2263
+ _el$126 = _el$125.nextSibling,
2264
+ [_el$127, _co$30] = _$getNextMarker(_el$126.nextSibling),
2265
+ _el$128 = _el$127.nextSibling,
2211
2266
  [_el$129, _co$31] = _$getNextMarker(_el$128.nextSibling),
2212
- _el$130 = _el$129.nextSibling,
2213
- [_el$131, _co$32] = _$getNextMarker(_el$130.nextSibling);
2267
+ _el$130 = _el$96.nextSibling,
2268
+ _el$131 = _el$130.nextSibling,
2269
+ _el$132 = _el$131.firstChild,
2270
+ [_el$133, _co$32] = _$getNextMarker(_el$132.nextSibling),
2271
+ _el$134 = _el$133.nextSibling,
2272
+ [_el$135, _co$33] = _$getNextMarker(_el$134.nextSibling);
2214
2273
  var _ref$7 = shellRef;
2215
2274
  typeof _ref$7 === "function" ? _$use(_ref$7, _el$57) : shellRef = _el$57;
2216
2275
  _$insert(_el$57, _$createComponent(Show, {
@@ -2220,10 +2279,12 @@ export function ChatComposer(props) {
2220
2279
  get children() {
2221
2280
  var _el$58 = _$getNextElement(_tmpl$24),
2222
2281
  _el$59 = _el$58.firstChild,
2223
- _el$88 = _el$59.nextSibling,
2224
- [_el$89, _co$16] = _$getNextMarker(_el$88.nextSibling),
2225
- _el$90 = _el$89.nextSibling,
2226
- [_el$91, _co$17] = _$getNextMarker(_el$90.nextSibling);
2282
+ _el$90 = _el$59.nextSibling,
2283
+ [_el$91, _co$16] = _$getNextMarker(_el$90.nextSibling),
2284
+ _el$92 = _el$91.nextSibling,
2285
+ [_el$93, _co$17] = _$getNextMarker(_el$92.nextSibling),
2286
+ _el$94 = _el$93.nextSibling,
2287
+ [_el$95, _co$18] = _$getNextMarker(_el$94.nextSibling);
2227
2288
  _$insert(_el$59, accessory);
2228
2289
  _$insert(_el$58, _$createComponent(Show, {
2229
2290
  get when() {
@@ -2240,38 +2301,38 @@ export function ChatComposer(props) {
2240
2301
  return emojiMatches();
2241
2302
  },
2242
2303
  children: (entry, index) => (() => {
2243
- var _el$134 = _$getNextElement(_tmpl$30),
2244
- _el$135 = _el$134.firstChild,
2245
- _el$136 = _el$135.nextSibling,
2246
- _el$137 = _el$136.nextSibling,
2247
- [_el$138, _co$34] = _$getNextMarker(_el$137.nextSibling);
2248
- _el$134.$$click = () => pickEmojiSuggestion(index());
2249
- _el$134.$$mousedown = keepFieldFocus;
2250
- _$insert(_el$135, () => emojiInTone(entry, props.emoji?.skinTone ?? 0));
2251
- _$insert(_el$136, () => emojiName(entry, locale()));
2252
- _$insert(_el$134, _$createComponent(Show, {
2304
+ var _el$138 = _$getNextElement(_tmpl$30),
2305
+ _el$139 = _el$138.firstChild,
2306
+ _el$140 = _el$139.nextSibling,
2307
+ _el$141 = _el$140.nextSibling,
2308
+ [_el$142, _co$35] = _$getNextMarker(_el$141.nextSibling);
2309
+ _el$138.$$click = () => pickEmojiSuggestion(index());
2310
+ _el$138.$$mousedown = keepFieldFocus;
2311
+ _$insert(_el$139, () => emojiInTone(entry, props.emoji?.skinTone ?? 0));
2312
+ _$insert(_el$140, () => emojiName(entry, locale()));
2313
+ _$insert(_el$138, _$createComponent(Show, {
2253
2314
  get when() {
2254
2315
  return entry.shortcodes[0];
2255
2316
  },
2256
2317
  children: code => (() => {
2257
- var _el$139 = _$getNextElement(_tmpl$31),
2258
- _el$140 = _el$139.firstChild,
2259
- _el$142 = _el$140.nextSibling,
2260
- [_el$143, _co$35] = _$getNextMarker(_el$142.nextSibling),
2261
- _el$141 = _el$143.nextSibling;
2262
- _$insert(_el$139, code, _el$143, _co$35);
2263
- return _el$139;
2318
+ var _el$143 = _$getNextElement(_tmpl$31),
2319
+ _el$144 = _el$143.firstChild,
2320
+ _el$146 = _el$144.nextSibling,
2321
+ [_el$147, _co$36] = _$getNextMarker(_el$146.nextSibling),
2322
+ _el$145 = _el$147.nextSibling;
2323
+ _$insert(_el$143, code, _el$147, _co$36);
2324
+ return _el$143;
2264
2325
  })()
2265
- }), _el$138, _co$34);
2326
+ }), _el$142, _co$35);
2266
2327
  _$effect(_p$ => {
2267
2328
  var _v$38 = `${commandListId}-${index()}`,
2268
2329
  _v$39 = index() === selectedCommandIndex(),
2269
2330
  _v$40 = emojiName(entry, locale()),
2270
2331
  _v$41 = index() === selectedCommandIndex() ? "true" : undefined;
2271
- _v$38 !== _p$.e && _$setAttribute(_el$134, "id", _p$.e = _v$38);
2272
- _v$39 !== _p$.t && _$setAttribute(_el$134, "aria-selected", _p$.t = _v$39);
2273
- _v$40 !== _p$.a && _$setAttribute(_el$134, "aria-label", _p$.a = _v$40);
2274
- _v$41 !== _p$.o && _$setAttribute(_el$134, "data-active", _p$.o = _v$41);
2332
+ _v$38 !== _p$.e && _$setAttribute(_el$138, "id", _p$.e = _v$38);
2333
+ _v$39 !== _p$.t && _$setAttribute(_el$138, "aria-selected", _p$.t = _v$39);
2334
+ _v$40 !== _p$.a && _$setAttribute(_el$138, "aria-label", _p$.a = _v$40);
2335
+ _v$41 !== _p$.o && _$setAttribute(_el$138, "data-active", _p$.o = _v$41);
2275
2336
  return _p$;
2276
2337
  }, {
2277
2338
  e: undefined,
@@ -2280,44 +2341,101 @@ export function ChatComposer(props) {
2280
2341
  o: undefined
2281
2342
  });
2282
2343
  _$runHydrationEvents();
2283
- return _el$134;
2344
+ return _el$138;
2284
2345
  })()
2285
2346
  }));
2286
2347
  _$effect(() => _$setAttribute(_el$61, "aria-label", chatMessages().emojiSuggestions));
2287
2348
  return _el$60;
2288
2349
  }
2289
- }), _el$89, _co$16);
2350
+ }), _el$91, _co$16);
2351
+ _$insert(_el$58, _$createComponent(Show, {
2352
+ get when() {
2353
+ return peopleOpen();
2354
+ },
2355
+ get children() {
2356
+ var _el$62 = _$getNextElement(_tmpl$18),
2357
+ _el$63 = _el$62.firstChild;
2358
+ var _ref$9 = commandListRef;
2359
+ typeof _ref$9 === "function" ? _$use(_ref$9, _el$63) : commandListRef = _el$63;
2360
+ _$setAttribute(_el$63, "id", commandListId);
2361
+ _$insert(_el$63, _$createComponent(For, {
2362
+ get each() {
2363
+ return peopleMatches();
2364
+ },
2365
+ children: (person, index) => (() => {
2366
+ var _el$148 = _$getNextElement(_tmpl$32),
2367
+ _el$149 = _el$148.firstChild,
2368
+ _el$150 = _el$149.nextSibling,
2369
+ _el$152 = _el$150.nextSibling,
2370
+ [_el$153, _co$37] = _$getNextMarker(_el$152.nextSibling);
2371
+ _el$148.$$click = () => pickPersonSuggestion(index());
2372
+ _el$148.$$mousedown = keepFieldFocus;
2373
+ _$insert(_el$150, () => person.name);
2374
+ _$insert(_el$148, _$createComponent(Show, {
2375
+ get when() {
2376
+ return person.agent;
2377
+ },
2378
+ get children() {
2379
+ var _el$151 = _$getNextElement(_tmpl$15);
2380
+ _$insert(_el$151, () => chatMessages().agentLabel);
2381
+ return _el$151;
2382
+ }
2383
+ }), _el$153, _co$37);
2384
+ _$effect(_p$ => {
2385
+ var _v$42 = `${commandListId}-${index()}`,
2386
+ _v$43 = index() === selectedCommandIndex(),
2387
+ _v$44 = index() === selectedCommandIndex() ? "true" : undefined,
2388
+ _v$45 = person.agent ? "ti ti-robot" : "ti ti-user";
2389
+ _v$42 !== _p$.e && _$setAttribute(_el$148, "id", _p$.e = _v$42);
2390
+ _v$43 !== _p$.t && _$setAttribute(_el$148, "aria-selected", _p$.t = _v$43);
2391
+ _v$44 !== _p$.a && _$setAttribute(_el$148, "data-active", _p$.a = _v$44);
2392
+ _v$45 !== _p$.o && _$className(_el$149, _p$.o = _v$45);
2393
+ return _p$;
2394
+ }, {
2395
+ e: undefined,
2396
+ t: undefined,
2397
+ a: undefined,
2398
+ o: undefined
2399
+ });
2400
+ _$runHydrationEvents();
2401
+ return _el$148;
2402
+ })()
2403
+ }));
2404
+ _$effect(() => _$setAttribute(_el$63, "aria-label", chatMessages().peopleSuggestions));
2405
+ return _el$62;
2406
+ }
2407
+ }), _el$93, _co$17);
2290
2408
  _$insert(_el$58, _$createComponent(Show, {
2291
2409
  get when() {
2292
2410
  return commandsOpen();
2293
2411
  },
2294
2412
  get children() {
2295
- var _el$62 = _$getNextElement(_tmpl$23),
2296
- _el$86 = _el$62.firstChild,
2297
- [_el$87, _co$15] = _$getNextMarker(_el$86.nextSibling),
2298
- _el$66 = _el$87.nextSibling,
2299
- _el$76 = _el$66.firstChild,
2300
- [_el$77, _co$10] = _$getNextMarker(_el$76.nextSibling),
2301
- _el$78 = _el$77.nextSibling,
2302
- [_el$79, _co$11] = _$getNextMarker(_el$78.nextSibling),
2413
+ var _el$64 = _$getNextElement(_tmpl$23),
2414
+ _el$88 = _el$64.firstChild,
2415
+ [_el$89, _co$15] = _$getNextMarker(_el$88.nextSibling),
2416
+ _el$68 = _el$89.nextSibling,
2417
+ _el$78 = _el$68.firstChild,
2418
+ [_el$79, _co$10] = _$getNextMarker(_el$78.nextSibling),
2303
2419
  _el$80 = _el$79.nextSibling,
2304
- [_el$81, _co$12] = _$getNextMarker(_el$80.nextSibling),
2420
+ [_el$81, _co$11] = _$getNextMarker(_el$80.nextSibling),
2305
2421
  _el$82 = _el$81.nextSibling,
2306
- [_el$83, _co$13] = _$getNextMarker(_el$82.nextSibling),
2422
+ [_el$83, _co$12] = _$getNextMarker(_el$82.nextSibling),
2307
2423
  _el$84 = _el$83.nextSibling,
2308
- [_el$85, _co$14] = _$getNextMarker(_el$84.nextSibling);
2309
- _el$62.$$mousedown = event => {
2424
+ [_el$85, _co$13] = _$getNextMarker(_el$84.nextSibling),
2425
+ _el$86 = _el$85.nextSibling,
2426
+ [_el$87, _co$14] = _$getNextMarker(_el$86.nextSibling);
2427
+ _el$64.$$mousedown = event => {
2310
2428
  if (addSearch() && event.target !== addSearchRef) event.preventDefault();
2311
2429
  };
2312
- _$insert(_el$62, _$createComponent(Show, {
2430
+ _$insert(_el$64, _$createComponent(Show, {
2313
2431
  get when() {
2314
2432
  return addSearch();
2315
2433
  },
2316
2434
  get children() {
2317
- var _el$63 = _$getNextElement(_tmpl$19),
2318
- _el$64 = _el$63.firstChild,
2319
- _el$65 = _el$64.nextSibling;
2320
- _el$65.$$focusout = event => {
2435
+ var _el$65 = _$getNextElement(_tmpl$19),
2436
+ _el$66 = _el$65.firstChild,
2437
+ _el$67 = _el$66.nextSibling;
2438
+ _el$67.$$focusout = event => {
2321
2439
  const next = event.relatedTarget;
2322
2440
  if (next instanceof Node && commandListRef?.parentElement?.contains(next)) return;
2323
2441
  // Focus that leaves another way, such as with Shift+Tab, closes the list and stays where it went.
@@ -2325,27 +2443,27 @@ export function ChatComposer(props) {
2325
2443
  if (addSearch() && document.activeElement !== addSearchRef) endAddSearch(false);
2326
2444
  });
2327
2445
  };
2328
- _el$65.addEventListener("compositionend", () => {
2446
+ _el$67.addEventListener("compositionend", () => {
2329
2447
  addComposing = false;
2330
2448
  });
2331
- _el$65.addEventListener("compositionstart", () => {
2449
+ _el$67.addEventListener("compositionstart", () => {
2332
2450
  addComposing = true;
2333
2451
  });
2334
- _el$65.$$keydown = onAddSearchKeyDown;
2335
- _el$65.$$input = event => setAddQuery(event.currentTarget.value);
2336
- var _ref$9 = addSearchRef;
2337
- typeof _ref$9 === "function" ? _$use(_ref$9, _el$65) : addSearchRef = _el$65;
2338
- _$setAttribute(_el$65, "aria-controls", commandListId);
2339
- _$setAttribute(_el$65, "spellcheck", false);
2452
+ _el$67.$$keydown = onAddSearchKeyDown;
2453
+ _el$67.$$input = event => setAddQuery(event.currentTarget.value);
2454
+ var _ref$0 = addSearchRef;
2455
+ typeof _ref$0 === "function" ? _$use(_ref$0, _el$67) : addSearchRef = _el$67;
2456
+ _$setAttribute(_el$67, "aria-controls", commandListId);
2457
+ _$setAttribute(_el$67, "spellcheck", false);
2340
2458
  _$effect(_p$ => {
2341
2459
  var _v$24 = chatMessages().commandSearch,
2342
2460
  _v$25 = chatMessages().commandSearchLabel,
2343
2461
  _v$26 = selectedCommand() ? commandOptionId(selectedCommand()) : undefined,
2344
2462
  _v$27 = openingRow() !== undefined;
2345
- _v$24 !== _p$.e && _$setAttribute(_el$65, "placeholder", _p$.e = _v$24);
2346
- _v$25 !== _p$.t && _$setAttribute(_el$65, "aria-label", _p$.t = _v$25);
2347
- _v$26 !== _p$.a && _$setAttribute(_el$65, "aria-activedescendant", _p$.a = _v$26);
2348
- _v$27 !== _p$.o && _$setProperty(_el$65, "readOnly", _p$.o = _v$27);
2463
+ _v$24 !== _p$.e && _$setAttribute(_el$67, "placeholder", _p$.e = _v$24);
2464
+ _v$25 !== _p$.t && _$setAttribute(_el$67, "aria-label", _p$.t = _v$25);
2465
+ _v$26 !== _p$.a && _$setAttribute(_el$67, "aria-activedescendant", _p$.a = _v$26);
2466
+ _v$27 !== _p$.o && _$setProperty(_el$67, "readOnly", _p$.o = _v$27);
2349
2467
  return _p$;
2350
2468
  }, {
2351
2469
  e: undefined,
@@ -2353,15 +2471,15 @@ export function ChatComposer(props) {
2353
2471
  a: undefined,
2354
2472
  o: undefined
2355
2473
  });
2356
- _$effect(() => _$setProperty(_el$65, "value", addQuery()));
2474
+ _$effect(() => _$setProperty(_el$67, "value", addQuery()));
2357
2475
  _$runHydrationEvents();
2358
- return _el$63;
2476
+ return _el$65;
2359
2477
  }
2360
- }), _el$87, _co$15);
2361
- var _ref$0 = commandListRef;
2362
- typeof _ref$0 === "function" ? _$use(_ref$0, _el$66) : commandListRef = _el$66;
2363
- _$setAttribute(_el$66, "id", commandListId);
2364
- _$insert(_el$66, _$createComponent(For, {
2478
+ }), _el$89, _co$15);
2479
+ var _ref$1 = commandListRef;
2480
+ typeof _ref$1 === "function" ? _$use(_ref$1, _el$68) : commandListRef = _el$68;
2481
+ _$setAttribute(_el$68, "id", commandListId);
2482
+ _$insert(_el$68, _$createComponent(For, {
2365
2483
  get each() {
2366
2484
  return commandModel().groups.map(commandGroupKey);
2367
2485
  },
@@ -2380,108 +2498,108 @@ export function ChatComposer(props) {
2380
2498
  });
2381
2499
  },
2382
2500
  get children() {
2383
- var _el$144 = _$getNextElement(_tmpl$33),
2384
- _el$145 = _el$144.firstChild,
2385
- _el$146 = _el$145.firstChild,
2386
- _el$148 = _el$146.nextSibling,
2387
- [_el$149, _co$36] = _$getNextMarker(_el$148.nextSibling),
2388
- _el$150 = _el$145.nextSibling,
2389
- [_el$151, _co$37] = _$getNextMarker(_el$150.nextSibling),
2390
- _el$152 = _el$151.nextSibling,
2391
- [_el$153, _co$38] = _$getNextMarker(_el$152.nextSibling);
2392
- _$insert(_el$146, () => group()?.scopeTitle ?? group()?.section?.label);
2393
- _$insert(_el$145, _$createComponent(Show, {
2501
+ var _el$154 = _$getNextElement(_tmpl$34),
2502
+ _el$155 = _el$154.firstChild,
2503
+ _el$156 = _el$155.firstChild,
2504
+ _el$158 = _el$156.nextSibling,
2505
+ [_el$159, _co$38] = _$getNextMarker(_el$158.nextSibling),
2506
+ _el$160 = _el$155.nextSibling,
2507
+ [_el$161, _co$39] = _$getNextMarker(_el$160.nextSibling),
2508
+ _el$162 = _el$161.nextSibling,
2509
+ [_el$163, _co$40] = _$getNextMarker(_el$162.nextSibling);
2510
+ _$insert(_el$156, () => group()?.scopeTitle ?? group()?.section?.label);
2511
+ _$insert(_el$155, _$createComponent(Show, {
2394
2512
  get when() {
2395
2513
  return group()?.loading;
2396
2514
  },
2397
2515
  get children() {
2398
- return _$getNextElement(_tmpl$32);
2516
+ return _$getNextElement(_tmpl$33);
2399
2517
  }
2400
- }), _el$149, _co$36);
2401
- _$insert(_el$144, _$createComponent(For, {
2518
+ }), _el$159, _co$38);
2519
+ _$insert(_el$154, _$createComponent(For, {
2402
2520
  get each() {
2403
2521
  return rows();
2404
2522
  },
2405
2523
  children: renderCommandRow
2406
- }), _el$151, _co$37);
2407
- _$insert(_el$144, _$createComponent(Index, {
2524
+ }), _el$161, _co$39);
2525
+ _$insert(_el$154, _$createComponent(Index, {
2408
2526
  get each() {
2409
2527
  return Array.from({
2410
2528
  length: Math.max(group()?.placeholder ? 1 : 0, group()?.pendingRows ?? 0)
2411
2529
  });
2412
2530
  },
2413
- children: () => _$getNextElement(_tmpl$34)
2414
- }), _el$153, _co$38);
2531
+ children: () => _$getNextElement(_tmpl$35)
2532
+ }), _el$163, _co$40);
2415
2533
  _$effect(_p$ => {
2416
- var _v$42 = headingId(),
2417
- _v$43 = headingId();
2418
- _v$42 !== _p$.e && _$setAttribute(_el$144, "aria-labelledby", _p$.e = _v$42);
2419
- _v$43 !== _p$.t && _$setAttribute(_el$145, "id", _p$.t = _v$43);
2534
+ var _v$46 = headingId(),
2535
+ _v$47 = headingId();
2536
+ _v$46 !== _p$.e && _$setAttribute(_el$154, "aria-labelledby", _p$.e = _v$46);
2537
+ _v$47 !== _p$.t && _$setAttribute(_el$155, "id", _p$.t = _v$47);
2420
2538
  return _p$;
2421
2539
  }, {
2422
2540
  e: undefined,
2423
2541
  t: undefined
2424
2542
  });
2425
- return _el$144;
2543
+ return _el$154;
2426
2544
  }
2427
2545
  });
2428
2546
  }
2429
- }), _el$77, _co$10);
2430
- _$insert(_el$66, _$createComponent(Show, {
2547
+ }), _el$79, _co$10);
2548
+ _$insert(_el$68, _$createComponent(Show, {
2431
2549
  get when() {
2432
2550
  return _$memo(() => !!(searching() && foundCommandCount() === 0))() && !commandModel().groups.some(group => group.section || group.scopeTitle);
2433
2551
  },
2434
2552
  get children() {
2435
- var _el$67 = _$getNextElement(_tmpl$20),
2436
- _el$68 = _el$67.firstChild,
2437
- _el$69 = _el$68.nextSibling;
2438
- _$insert(_el$69, () => messages().loading);
2439
- return _el$67;
2553
+ var _el$69 = _$getNextElement(_tmpl$20),
2554
+ _el$70 = _el$69.firstChild,
2555
+ _el$71 = _el$70.nextSibling;
2556
+ _$insert(_el$71, () => messages().loading);
2557
+ return _el$69;
2440
2558
  }
2441
- }), _el$79, _co$11);
2442
- _$insert(_el$66, _$createComponent(Show, {
2559
+ }), _el$81, _co$11);
2560
+ _$insert(_el$68, _$createComponent(Show, {
2443
2561
  get when() {
2444
2562
  return searchError();
2445
2563
  },
2446
2564
  get children() {
2447
- var _el$70 = _$getNextElement(_tmpl$21),
2448
- _el$71 = _el$70.firstChild,
2449
- _el$72 = _el$71.nextSibling,
2450
- _el$73 = _el$72.nextSibling,
2451
- [_el$74, _co$1] = _$getNextMarker(_el$73.nextSibling);
2452
- _$insert(_el$70, () => messages().error, _el$74, _co$1);
2453
- return _el$70;
2565
+ var _el$72 = _$getNextElement(_tmpl$21),
2566
+ _el$73 = _el$72.firstChild,
2567
+ _el$74 = _el$73.nextSibling,
2568
+ _el$75 = _el$74.nextSibling,
2569
+ [_el$76, _co$1] = _$getNextMarker(_el$75.nextSibling);
2570
+ _$insert(_el$72, () => messages().error, _el$76, _co$1);
2571
+ return _el$72;
2454
2572
  }
2455
- }), _el$81, _co$12);
2456
- _$insert(_el$66, _$createComponent(Show, {
2573
+ }), _el$83, _co$12);
2574
+ _$insert(_el$68, _$createComponent(Show, {
2457
2575
  get when() {
2458
2576
  return _$memo(() => !!(!searching() && !searchError() && foundCommandCount() === 0))() && !commandModel().groups.some(group => group.pendingRows);
2459
2577
  },
2460
2578
  get children() {
2461
- var _el$75 = _$getNextElement(_tmpl$22);
2462
- _$insert(_el$75, (() => {
2579
+ var _el$77 = _$getNextElement(_tmpl$22);
2580
+ _$insert(_el$77, (() => {
2463
2581
  var _c$ = _$memo(() => !!!parsedCommandQuery().query.trim());
2464
2582
  return () => _c$() ? messages().noResults : chatMessages().commandsNothingFound({
2465
2583
  query: parsedCommandQuery().query.trim()
2466
2584
  });
2467
2585
  })());
2468
- return _el$75;
2586
+ return _el$77;
2469
2587
  }
2470
- }), _el$83, _co$13);
2471
- _$insert(_el$66, _$createComponent(Show, {
2588
+ }), _el$85, _co$13);
2589
+ _$insert(_el$68, _$createComponent(Show, {
2472
2590
  get when() {
2473
2591
  return commandModel().fallback?.command;
2474
2592
  },
2475
2593
  keyed: true,
2476
2594
  children: command => renderCommandRow(command)
2477
- }), _el$85, _co$14);
2595
+ }), _el$87, _co$14);
2478
2596
  _$effect(_p$ => {
2479
2597
  var _v$28 = addSearch() ? "" : undefined,
2480
2598
  _v$29 = chatMessages().commands,
2481
2599
  _v$30 = searching() ? "true" : undefined;
2482
- _v$28 !== _p$.e && _$setAttribute(_el$62, "data-search", _p$.e = _v$28);
2483
- _v$29 !== _p$.t && _$setAttribute(_el$66, "aria-label", _p$.t = _v$29);
2484
- _v$30 !== _p$.a && _$setAttribute(_el$66, "aria-busy", _p$.a = _v$30);
2600
+ _v$28 !== _p$.e && _$setAttribute(_el$64, "data-search", _p$.e = _v$28);
2601
+ _v$29 !== _p$.t && _$setAttribute(_el$68, "aria-label", _p$.t = _v$29);
2602
+ _v$30 !== _p$.a && _$setAttribute(_el$68, "aria-busy", _p$.a = _v$30);
2485
2603
  return _p$;
2486
2604
  }, {
2487
2605
  e: undefined,
@@ -2489,9 +2607,9 @@ export function ChatComposer(props) {
2489
2607
  a: undefined
2490
2608
  });
2491
2609
  _$runHydrationEvents();
2492
- return _el$62;
2610
+ return _el$64;
2493
2611
  }
2494
- }), _el$91, _co$17);
2612
+ }), _el$95, _co$18);
2495
2613
  _$effect(_p$ => {
2496
2614
  var _v$31 = hasAccessory() ? undefined : "true",
2497
2615
  _v$32 = suggestionsOpen() ? "hidden" : undefined,
@@ -2507,271 +2625,271 @@ export function ChatComposer(props) {
2507
2625
  });
2508
2626
  return _el$58;
2509
2627
  }
2510
- }), _el$133, _co$33);
2511
- var _ref$1 = composerRef;
2512
- typeof _ref$1 === "function" ? _$use(_ref$1, _el$92) : composerRef = _el$92;
2513
- _$insert(_el$92, _$createComponent(Show, {
2628
+ }), _el$137, _co$34);
2629
+ var _ref$10 = composerRef;
2630
+ typeof _ref$10 === "function" ? _$use(_ref$10, _el$96) : composerRef = _el$96;
2631
+ _$insert(_el$96, _$createComponent(Show, {
2514
2632
  get when() {
2515
2633
  return showHint();
2516
2634
  },
2517
2635
  get children() {
2518
- var _el$93 = _$getNextElement(_tmpl$25);
2519
- _$insert(_el$93, _$createComponent(Show, {
2636
+ var _el$97 = _$getNextElement(_tmpl$25);
2637
+ _$insert(_el$97, _$createComponent(Show, {
2520
2638
  get when() {
2521
2639
  return dictationStatus();
2522
2640
  },
2523
2641
  get fallback() {
2524
2642
  return (() => {
2525
- var _el$155 = _$getNextElement(_tmpl$35);
2526
- _$insert(_el$155, hint);
2527
- return _el$155;
2643
+ var _el$165 = _$getNextElement(_tmpl$36);
2644
+ _$insert(_el$165, hint);
2645
+ return _el$165;
2528
2646
  })();
2529
2647
  },
2530
2648
  children: status => [(() => {
2531
- var _el$156 = _$getNextElement(_tmpl$36),
2532
- _el$157 = _el$156.firstChild,
2533
- _el$158 = _el$157.nextSibling;
2534
- _$insert(_el$158, () => status().text);
2649
+ var _el$166 = _$getNextElement(_tmpl$37),
2650
+ _el$167 = _el$166.firstChild,
2651
+ _el$168 = _el$167.nextSibling;
2652
+ _$insert(_el$168, () => status().text);
2535
2653
  _$effect(_p$ => {
2536
- var _v$44 = dictation() ?? undefined,
2537
- _v$45 = status().icon;
2538
- _v$44 !== _p$.e && _$setAttribute(_el$156, "data-state", _p$.e = _v$44);
2539
- _v$45 !== _p$.t && _$className(_el$157, _p$.t = _v$45);
2654
+ var _v$48 = dictation() ?? undefined,
2655
+ _v$49 = status().icon;
2656
+ _v$48 !== _p$.e && _$setAttribute(_el$166, "data-state", _p$.e = _v$48);
2657
+ _v$49 !== _p$.t && _$className(_el$167, _p$.t = _v$49);
2540
2658
  return _p$;
2541
2659
  }, {
2542
2660
  e: undefined,
2543
2661
  t: undefined
2544
2662
  });
2545
- return _el$156;
2663
+ return _el$166;
2546
2664
  })(), _$createComponent(Show, {
2547
2665
  get when() {
2548
2666
  return _$memo(() => dictation() === "refined")() ? props.microphone?.onRestoreOriginal : undefined;
2549
2667
  },
2550
2668
  children: restore => (() => {
2551
- var _el$159 = _$getNextElement(_tmpl$37);
2552
- _el$159.$$click = () => reportChatFailure(restore(), props.onError);
2553
- _el$159.$$mousedown = keepFieldFocus;
2554
- _$insert(_el$159, () => chatMessages().restoreOriginal);
2555
- _$effect(() => _$setProperty(_el$159, "disabled", microphoneDisabled()));
2669
+ var _el$169 = _$getNextElement(_tmpl$38);
2670
+ _el$169.$$click = () => reportChatFailure(restore(), props.onError);
2671
+ _el$169.$$mousedown = keepFieldFocus;
2672
+ _$insert(_el$169, () => chatMessages().restoreOriginal);
2673
+ _$effect(() => _$setProperty(_el$169, "disabled", microphoneDisabled()));
2556
2674
  _$runHydrationEvents();
2557
- return _el$159;
2675
+ return _el$169;
2558
2676
  })()
2559
2677
  })]
2560
2678
  }));
2561
- return _el$93;
2679
+ return _el$97;
2562
2680
  }
2563
- }), _el$117, _co$26);
2564
- _$insert(_el$92, _$createComponent(Show, {
2681
+ }), _el$121, _co$27);
2682
+ _$insert(_el$96, _$createComponent(Show, {
2565
2683
  get when() {
2566
2684
  return props.reply;
2567
2685
  },
2568
2686
  children: reply => (() => {
2569
- var _el$160 = _$getNextElement(_tmpl$38),
2570
- _el$162 = _el$160.firstChild,
2571
- [_el$163, _co$39] = _$getNextMarker(_el$162.nextSibling),
2572
- _el$161 = _el$163.nextSibling;
2573
- _$insert(_el$160, _$createComponent(Show, {
2687
+ var _el$170 = _$getNextElement(_tmpl$39),
2688
+ _el$172 = _el$170.firstChild,
2689
+ [_el$173, _co$41] = _$getNextMarker(_el$172.nextSibling),
2690
+ _el$171 = _el$173.nextSibling;
2691
+ _$insert(_el$170, _$createComponent(Show, {
2574
2692
  get when() {
2575
2693
  return reply().onSelect;
2576
2694
  },
2577
2695
  get fallback() {
2578
2696
  return (() => {
2579
- var _el$164 = _$getNextElement(_tmpl$39);
2580
- _$insert(_el$164, () => replyQuote(reply()));
2581
- return _el$164;
2697
+ var _el$174 = _$getNextElement(_tmpl$40);
2698
+ _$insert(_el$174, () => replyQuote(reply()));
2699
+ return _el$174;
2582
2700
  })();
2583
2701
  },
2584
2702
  children: select => (() => {
2585
- var _el$165 = _$getNextElement(_tmpl$40);
2586
- _el$165.$$click = () => select()();
2587
- _$insert(_el$165, () => replyQuote(reply()));
2703
+ var _el$175 = _$getNextElement(_tmpl$41);
2704
+ _el$175.$$click = () => select()();
2705
+ _$insert(_el$175, () => replyQuote(reply()));
2588
2706
  _$runHydrationEvents();
2589
- return _el$165;
2707
+ return _el$175;
2590
2708
  })()
2591
- }), _el$163, _co$39);
2592
- _el$161.$$click = () => reply().onCancel();
2593
- _el$161.$$mousedown = keepFieldFocus;
2709
+ }), _el$173, _co$41);
2710
+ _el$171.$$click = () => reply().onCancel();
2711
+ _el$171.$$mousedown = keepFieldFocus;
2594
2712
  _$effect(_p$ => {
2595
- var _v$46 = chatMessages().cancelReply,
2596
- _v$47 = chatMessages().cancelReply;
2597
- _v$46 !== _p$.e && _$setAttribute(_el$161, "aria-label", _p$.e = _v$46);
2598
- _v$47 !== _p$.t && _$setAttribute(_el$161, "title", _p$.t = _v$47);
2713
+ var _v$50 = chatMessages().cancelReply,
2714
+ _v$51 = chatMessages().cancelReply;
2715
+ _v$50 !== _p$.e && _$setAttribute(_el$171, "aria-label", _p$.e = _v$50);
2716
+ _v$51 !== _p$.t && _$setAttribute(_el$171, "title", _p$.t = _v$51);
2599
2717
  return _p$;
2600
2718
  }, {
2601
2719
  e: undefined,
2602
2720
  t: undefined
2603
2721
  });
2604
2722
  _$runHydrationEvents();
2605
- return _el$160;
2723
+ return _el$170;
2606
2724
  })()
2607
- }), _el$119, _co$27);
2608
- _$insert(_el$92, _$createComponent(Show, {
2725
+ }), _el$123, _co$28);
2726
+ _$insert(_el$96, _$createComponent(Show, {
2609
2727
  get when() {
2610
2728
  return attachments().length > 0;
2611
2729
  },
2612
2730
  get children() {
2613
- var _el$94 = _$getNextElement(_tmpl$26);
2614
- _$insert(_el$94, _$createComponent(For, {
2731
+ var _el$98 = _$getNextElement(_tmpl$26);
2732
+ _$insert(_el$98, _$createComponent(For, {
2615
2733
  get each() {
2616
2734
  return attachments();
2617
2735
  },
2618
2736
  children: attachment => (() => {
2619
- var _el$166 = _$getNextElement(_tmpl$42),
2620
- _el$167 = _el$166.firstChild,
2621
- _el$168 = _el$167.firstChild,
2622
- [_el$169, _co$40] = _$getNextMarker(_el$168.nextSibling),
2623
- _el$170 = _el$169.nextSibling,
2624
- [_el$171, _co$41] = _$getNextMarker(_el$170.nextSibling),
2625
- _el$173 = _el$167.nextSibling,
2626
- [_el$174, _co$42] = _$getNextMarker(_el$173.nextSibling);
2627
- _$insert(_el$167, _$createComponent(Show, {
2737
+ var _el$176 = _$getNextElement(_tmpl$43),
2738
+ _el$177 = _el$176.firstChild,
2739
+ _el$178 = _el$177.firstChild,
2740
+ [_el$179, _co$42] = _$getNextMarker(_el$178.nextSibling),
2741
+ _el$180 = _el$179.nextSibling,
2742
+ [_el$181, _co$43] = _$getNextMarker(_el$180.nextSibling),
2743
+ _el$183 = _el$177.nextSibling,
2744
+ [_el$184, _co$44] = _$getNextMarker(_el$183.nextSibling);
2745
+ _$insert(_el$177, _$createComponent(Show, {
2628
2746
  get when() {
2629
2747
  return attachment.href;
2630
2748
  },
2631
2749
  get fallback() {
2632
2750
  return (() => {
2633
- var _el$175 = _$getNextElement(_tmpl$44),
2634
- _el$177 = _el$175.firstChild,
2635
- [_el$178, _co$43] = _$getNextMarker(_el$177.nextSibling),
2636
- _el$179 = _el$178.nextSibling,
2637
- [_el$180, _co$44] = _$getNextMarker(_el$179.nextSibling);
2638
- _$insert(_el$175, _$createComponent(Show, {
2751
+ var _el$185 = _$getNextElement(_tmpl$45),
2752
+ _el$187 = _el$185.firstChild,
2753
+ [_el$188, _co$45] = _$getNextMarker(_el$187.nextSibling),
2754
+ _el$189 = _el$188.nextSibling,
2755
+ [_el$190, _co$46] = _$getNextMarker(_el$189.nextSibling);
2756
+ _$insert(_el$185, _$createComponent(Show, {
2639
2757
  get when() {
2640
2758
  return _$memo(() => attachment.kind === "image")() && attachment.previewUrl;
2641
2759
  },
2642
2760
  get fallback() {
2643
2761
  return (() => {
2644
- var _el$181 = _$getNextElement(_tmpl$3);
2645
- _$effect(() => _$className(_el$181, attachmentIcon(attachment)));
2646
- return _el$181;
2762
+ var _el$191 = _$getNextElement(_tmpl$3);
2763
+ _$effect(() => _$className(_el$191, attachmentIcon(attachment)));
2764
+ return _el$191;
2647
2765
  })();
2648
2766
  },
2649
2767
  get children() {
2650
- var _el$176 = _$getNextElement(_tmpl$43);
2768
+ var _el$186 = _$getNextElement(_tmpl$44);
2651
2769
  _$effect(_p$ => {
2652
- var _v$50 = attachment.previewUrl,
2653
- _v$51 = attachment.alt ?? "";
2654
- _v$50 !== _p$.e && _$setAttribute(_el$176, "src", _p$.e = _v$50);
2655
- _v$51 !== _p$.t && _$setAttribute(_el$176, "alt", _p$.t = _v$51);
2770
+ var _v$54 = attachment.previewUrl,
2771
+ _v$55 = attachment.alt ?? "";
2772
+ _v$54 !== _p$.e && _$setAttribute(_el$186, "src", _p$.e = _v$54);
2773
+ _v$55 !== _p$.t && _$setAttribute(_el$186, "alt", _p$.t = _v$55);
2656
2774
  return _p$;
2657
2775
  }, {
2658
2776
  e: undefined,
2659
2777
  t: undefined
2660
2778
  });
2661
- return _el$176;
2779
+ return _el$186;
2662
2780
  }
2663
- }), _el$178, _co$43);
2664
- _$insert(_el$175, () => renderAttachmentCopy(attachment), _el$180, _co$44);
2665
- return _el$175;
2781
+ }), _el$188, _co$45);
2782
+ _$insert(_el$185, () => renderAttachmentCopy(attachment), _el$190, _co$46);
2783
+ return _el$185;
2666
2784
  })();
2667
2785
  },
2668
2786
  children: href => (() => {
2669
- var _el$182 = _$getNextElement(_tmpl$45),
2670
- _el$184 = _el$182.firstChild,
2671
- [_el$185, _co$45] = _$getNextMarker(_el$184.nextSibling),
2672
- _el$186 = _el$185.nextSibling,
2673
- [_el$187, _co$46] = _$getNextMarker(_el$186.nextSibling);
2674
- _$insert(_el$182, _$createComponent(Show, {
2787
+ var _el$192 = _$getNextElement(_tmpl$46),
2788
+ _el$194 = _el$192.firstChild,
2789
+ [_el$195, _co$47] = _$getNextMarker(_el$194.nextSibling),
2790
+ _el$196 = _el$195.nextSibling,
2791
+ [_el$197, _co$48] = _$getNextMarker(_el$196.nextSibling);
2792
+ _$insert(_el$192, _$createComponent(Show, {
2675
2793
  get when() {
2676
2794
  return _$memo(() => attachment.kind === "image")() && attachment.previewUrl;
2677
2795
  },
2678
2796
  get fallback() {
2679
2797
  return (() => {
2680
- var _el$188 = _$getNextElement(_tmpl$3);
2681
- _$effect(() => _$className(_el$188, attachmentIcon(attachment)));
2682
- return _el$188;
2798
+ var _el$198 = _$getNextElement(_tmpl$3);
2799
+ _$effect(() => _$className(_el$198, attachmentIcon(attachment)));
2800
+ return _el$198;
2683
2801
  })();
2684
2802
  },
2685
2803
  get children() {
2686
- var _el$183 = _$getNextElement(_tmpl$43);
2804
+ var _el$193 = _$getNextElement(_tmpl$44);
2687
2805
  _$effect(_p$ => {
2688
- var _v$52 = attachment.previewUrl,
2689
- _v$53 = attachment.alt ?? "";
2690
- _v$52 !== _p$.e && _$setAttribute(_el$183, "src", _p$.e = _v$52);
2691
- _v$53 !== _p$.t && _$setAttribute(_el$183, "alt", _p$.t = _v$53);
2806
+ var _v$56 = attachment.previewUrl,
2807
+ _v$57 = attachment.alt ?? "";
2808
+ _v$56 !== _p$.e && _$setAttribute(_el$193, "src", _p$.e = _v$56);
2809
+ _v$57 !== _p$.t && _$setAttribute(_el$193, "alt", _p$.t = _v$57);
2692
2810
  return _p$;
2693
2811
  }, {
2694
2812
  e: undefined,
2695
2813
  t: undefined
2696
2814
  });
2697
- return _el$183;
2815
+ return _el$193;
2698
2816
  }
2699
- }), _el$185, _co$45);
2700
- _$insert(_el$182, () => renderAttachmentCopy(attachment), _el$187, _co$46);
2817
+ }), _el$195, _co$47);
2818
+ _$insert(_el$192, () => renderAttachmentCopy(attachment), _el$197, _co$48);
2701
2819
  _$effect(_p$ => {
2702
- var _v$54 = href(),
2703
- _v$55 = chatMessages().openInNewTab({
2820
+ var _v$58 = href(),
2821
+ _v$59 = chatMessages().openInNewTab({
2704
2822
  name: attachment.name
2705
2823
  });
2706
- _v$54 !== _p$.e && _$setAttribute(_el$182, "href", _p$.e = _v$54);
2707
- _v$55 !== _p$.t && _$setAttribute(_el$182, "aria-label", _p$.t = _v$55);
2824
+ _v$58 !== _p$.e && _$setAttribute(_el$192, "href", _p$.e = _v$58);
2825
+ _v$59 !== _p$.t && _$setAttribute(_el$192, "aria-label", _p$.t = _v$59);
2708
2826
  return _p$;
2709
2827
  }, {
2710
2828
  e: undefined,
2711
2829
  t: undefined
2712
2830
  });
2713
- return _el$182;
2831
+ return _el$192;
2714
2832
  })()
2715
- }), _el$169, _co$40);
2716
- _$insert(_el$167, _$createComponent(Show, {
2833
+ }), _el$179, _co$42);
2834
+ _$insert(_el$177, _$createComponent(Show, {
2717
2835
  get when() {
2718
2836
  return attachment.action;
2719
2837
  },
2720
2838
  children: action => (() => {
2721
- var _el$189 = _$getNextElement(_tmpl$46),
2722
- _el$190 = _el$189.firstChild,
2723
- [_el$191, _co$47] = _$getNextMarker(_el$190.nextSibling),
2724
- _el$192 = _el$191.nextSibling,
2725
- [_el$193, _co$48] = _$getNextMarker(_el$192.nextSibling);
2726
- _el$189.$$click = () => reportChatFailure(() => executeChatAction(action()), props.onError);
2727
- _$insert(_el$189, _$createComponent(Show, {
2839
+ var _el$199 = _$getNextElement(_tmpl$47),
2840
+ _el$200 = _el$199.firstChild,
2841
+ [_el$201, _co$49] = _$getNextMarker(_el$200.nextSibling),
2842
+ _el$202 = _el$201.nextSibling,
2843
+ [_el$203, _co$50] = _$getNextMarker(_el$202.nextSibling);
2844
+ _el$199.$$click = () => reportChatFailure(() => executeChatAction(action()), props.onError);
2845
+ _$insert(_el$199, _$createComponent(Show, {
2728
2846
  get when() {
2729
2847
  return action().icon;
2730
2848
  },
2731
2849
  children: icon => (() => {
2732
- var _el$194 = _$getNextElement(_tmpl$3);
2733
- _$effect(() => _$className(_el$194, icon()));
2734
- return _el$194;
2850
+ var _el$204 = _$getNextElement(_tmpl$3);
2851
+ _$effect(() => _$className(_el$204, icon()));
2852
+ return _el$204;
2735
2853
  })()
2736
- }), _el$191, _co$47);
2737
- _$insert(_el$189, () => action().label, _el$193, _co$48);
2738
- _$effect(() => _$setProperty(_el$189, "disabled", blocked() || action().disabled));
2854
+ }), _el$201, _co$49);
2855
+ _$insert(_el$199, () => action().label, _el$203, _co$50);
2856
+ _$effect(() => _$setProperty(_el$199, "disabled", blocked() || action().disabled));
2739
2857
  _$runHydrationEvents();
2740
- return _el$189;
2858
+ return _el$199;
2741
2859
  })()
2742
- }), _el$171, _co$41);
2743
- _$insert(_el$166, _$createComponent(Show, {
2860
+ }), _el$181, _co$43);
2861
+ _$insert(_el$176, _$createComponent(Show, {
2744
2862
  get when() {
2745
2863
  return props.onAttachmentsChange;
2746
2864
  },
2747
2865
  get children() {
2748
- var _el$172 = _$getNextElement(_tmpl$41);
2749
- _el$172.$$click = () => setAttachments(attachments().filter(candidate => candidate.id !== attachment.id));
2866
+ var _el$182 = _$getNextElement(_tmpl$42);
2867
+ _el$182.$$click = () => setAttachments(attachments().filter(candidate => candidate.id !== attachment.id));
2750
2868
  _$effect(_p$ => {
2751
- var _v$48 = selectMessages().removeNamed({
2869
+ var _v$52 = selectMessages().removeNamed({
2752
2870
  name: attachment.name
2753
2871
  }),
2754
- _v$49 = blocked();
2755
- _v$48 !== _p$.e && _$setAttribute(_el$172, "aria-label", _p$.e = _v$48);
2756
- _v$49 !== _p$.t && _$setProperty(_el$172, "disabled", _p$.t = _v$49);
2872
+ _v$53 = blocked();
2873
+ _v$52 !== _p$.e && _$setAttribute(_el$182, "aria-label", _p$.e = _v$52);
2874
+ _v$53 !== _p$.t && _$setProperty(_el$182, "disabled", _p$.t = _v$53);
2757
2875
  return _p$;
2758
2876
  }, {
2759
2877
  e: undefined,
2760
2878
  t: undefined
2761
2879
  });
2762
2880
  _$runHydrationEvents();
2763
- return _el$172;
2881
+ return _el$182;
2764
2882
  }
2765
- }), _el$174, _co$42);
2766
- _$effect(() => _el$167.classList.toggle("k2b-chat-composer__attachment-content--action", !!Boolean(attachment.action)));
2767
- return _el$166;
2883
+ }), _el$184, _co$44);
2884
+ _$effect(() => _el$177.classList.toggle("k2b-chat-composer__attachment-content--action", !!Boolean(attachment.action)));
2885
+ return _el$176;
2768
2886
  })()
2769
2887
  }));
2770
- _$effect(() => _$setAttribute(_el$94, "aria-label", chatMessages().attachments));
2771
- return _el$94;
2888
+ _$effect(() => _$setAttribute(_el$98, "aria-label", chatMessages().attachments));
2889
+ return _el$98;
2772
2890
  }
2773
- }), _el$121, _co$28);
2774
- _$insert(_el$92, _$createComponent(Show, {
2891
+ }), _el$125, _co$29);
2892
+ _$insert(_el$96, _$createComponent(Show, {
2775
2893
  get when() {
2776
2894
  return conversation();
2777
2895
  },
@@ -2781,38 +2899,38 @@ export function ChatComposer(props) {
2781
2899
  return props.error;
2782
2900
  },
2783
2901
  get children() {
2784
- var _el$195 = _$getNextElement(_tmpl$27),
2785
- _el$196 = _el$195.firstChild,
2786
- _el$197 = _el$196.nextSibling,
2787
- [_el$198, _co$49] = _$getNextMarker(_el$197.nextSibling);
2788
- _$insert(_el$195, () => props.error, _el$198, _co$49);
2789
- return _el$195;
2902
+ var _el$205 = _$getNextElement(_tmpl$27),
2903
+ _el$206 = _el$205.firstChild,
2904
+ _el$207 = _el$206.nextSibling,
2905
+ [_el$208, _co$51] = _$getNextMarker(_el$207.nextSibling);
2906
+ _$insert(_el$205, () => props.error, _el$208, _co$51);
2907
+ return _el$205;
2790
2908
  }
2791
2909
  }), _$memo(formatRow), (() => {
2792
- var _el$199 = _$getNextElement(_tmpl$47);
2793
- _$insert(_el$199, _$createComponent(Show, {
2910
+ var _el$209 = _$getNextElement(_tmpl$48);
2911
+ _$insert(_el$209, _$createComponent(Show, {
2794
2912
  get when() {
2795
2913
  return footer();
2796
2914
  },
2797
2915
  get fallback() {
2798
2916
  return [(() => {
2799
- var _el$200 = _$getNextElement(_tmpl$48),
2800
- _el$201 = _el$200.firstChild,
2801
- [_el$202, _co$50] = _$getNextMarker(_el$201.nextSibling),
2802
- _el$203 = _el$202.nextSibling,
2803
- [_el$204, _co$51] = _$getNextMarker(_el$203.nextSibling),
2804
- _el$205 = _el$204.nextSibling,
2805
- [_el$206, _co$52] = _$getNextMarker(_el$205.nextSibling),
2806
- _el$207 = _el$206.nextSibling,
2807
- [_el$208, _co$53] = _$getNextMarker(_el$207.nextSibling),
2808
- _el$209 = _el$208.nextSibling,
2809
- [_el$210, _co$54] = _$getNextMarker(_el$209.nextSibling),
2810
- _el$211 = _el$210.nextSibling,
2811
- [_el$212, _co$55] = _$getNextMarker(_el$211.nextSibling),
2917
+ var _el$210 = _$getNextElement(_tmpl$49),
2918
+ _el$211 = _el$210.firstChild,
2919
+ [_el$212, _co$52] = _$getNextMarker(_el$211.nextSibling),
2812
2920
  _el$213 = _el$212.nextSibling,
2813
- [_el$214, _co$56] = _$getNextMarker(_el$213.nextSibling);
2814
- _$insert(_el$200, () => props.footerTools, _el$202, _co$50);
2815
- _$insert(_el$200, _$createComponent(Show, {
2921
+ [_el$214, _co$53] = _$getNextMarker(_el$213.nextSibling),
2922
+ _el$215 = _el$214.nextSibling,
2923
+ [_el$216, _co$54] = _$getNextMarker(_el$215.nextSibling),
2924
+ _el$217 = _el$216.nextSibling,
2925
+ [_el$218, _co$55] = _$getNextMarker(_el$217.nextSibling),
2926
+ _el$219 = _el$218.nextSibling,
2927
+ [_el$220, _co$56] = _$getNextMarker(_el$219.nextSibling),
2928
+ _el$221 = _el$220.nextSibling,
2929
+ [_el$222, _co$57] = _$getNextMarker(_el$221.nextSibling),
2930
+ _el$223 = _el$222.nextSibling,
2931
+ [_el$224, _co$58] = _$getNextMarker(_el$223.nextSibling);
2932
+ _$insert(_el$210, () => props.footerTools, _el$212, _co$52);
2933
+ _$insert(_el$210, _$createComponent(Show, {
2816
2934
  get when() {
2817
2935
  return addOpensCommands();
2818
2936
  },
@@ -2829,11 +2947,11 @@ export function ChatComposer(props) {
2829
2947
  get children() {
2830
2948
  return addSearchButton();
2831
2949
  }
2832
- }), _el$204, _co$51);
2833
- _$insert(_el$200, fileInput, _el$206, _co$52);
2834
- _$insert(_el$200, formatToggle, _el$208, _co$53);
2835
- _$insert(_el$200, emojiButton, _el$210, _co$54);
2836
- _$insert(_el$200, _$createComponent(Show, {
2950
+ }), _el$214, _co$53);
2951
+ _$insert(_el$210, fileInput, _el$216, _co$54);
2952
+ _$insert(_el$210, formatToggle, _el$218, _co$55);
2953
+ _$insert(_el$210, emojiButton, _el$220, _co$56);
2954
+ _$insert(_el$210, _$createComponent(Show, {
2837
2955
  get when() {
2838
2956
  return (props.models?.length ?? 0) > 0;
2839
2957
  },
@@ -2879,22 +2997,22 @@ export function ChatComposer(props) {
2879
2997
  }
2880
2998
  });
2881
2999
  }
2882
- }), _el$212, _co$55);
2883
- _$insert(_el$200, () => props.modelDetails, _el$214, _co$56);
2884
- return _el$200;
3000
+ }), _el$222, _co$57);
3001
+ _$insert(_el$210, () => props.modelDetails, _el$224, _co$58);
3002
+ return _el$210;
2885
3003
  })(), (() => {
2886
- var _el$215 = _$getNextElement(_tmpl$49),
2887
- _el$216 = _el$215.firstChild,
2888
- [_el$217, _co$57] = _$getNextMarker(_el$216.nextSibling),
2889
- _el$218 = _el$217.nextSibling,
2890
- [_el$219, _co$58] = _$getNextMarker(_el$218.nextSibling),
2891
- _el$220 = _el$219.nextSibling,
2892
- [_el$221, _co$59] = _$getNextMarker(_el$220.nextSibling),
2893
- _el$222 = _el$221.nextSibling,
2894
- [_el$223, _co$60] = _$getNextMarker(_el$222.nextSibling),
2895
- _el$224 = _el$223.nextSibling,
2896
- [_el$225, _co$61] = _$getNextMarker(_el$224.nextSibling);
2897
- _$insert(_el$215, _$createComponent(For, {
3004
+ var _el$225 = _$getNextElement(_tmpl$50),
3005
+ _el$226 = _el$225.firstChild,
3006
+ [_el$227, _co$59] = _$getNextMarker(_el$226.nextSibling),
3007
+ _el$228 = _el$227.nextSibling,
3008
+ [_el$229, _co$60] = _$getNextMarker(_el$228.nextSibling),
3009
+ _el$230 = _el$229.nextSibling,
3010
+ [_el$231, _co$61] = _$getNextMarker(_el$230.nextSibling),
3011
+ _el$232 = _el$231.nextSibling,
3012
+ [_el$233, _co$62] = _$getNextMarker(_el$232.nextSibling),
3013
+ _el$234 = _el$233.nextSibling,
3014
+ [_el$235, _co$63] = _$getNextMarker(_el$234.nextSibling);
3015
+ _$insert(_el$225, _$createComponent(For, {
2898
3016
  get each() {
2899
3017
  return props.contextActions;
2900
3018
  },
@@ -2918,13 +3036,13 @@ export function ChatComposer(props) {
2918
3036
  },
2919
3037
  onClick: () => reportChatFailure(() => executeChatAction(action), props.onError),
2920
3038
  get children() {
2921
- var _el$226 = _$getNextElement(_tmpl$3);
2922
- _$effect(() => _$className(_el$226, action.icon ?? "ti ti-dots"));
2923
- return _el$226;
3039
+ var _el$236 = _$getNextElement(_tmpl$3);
3040
+ _$effect(() => _$className(_el$236, action.icon ?? "ti ti-dots"));
3041
+ return _el$236;
2924
3042
  }
2925
3043
  })
2926
- }), _el$217, _co$57);
2927
- _$insert(_el$215, _$createComponent(Show, {
3044
+ }), _el$227, _co$59);
3045
+ _$insert(_el$225, _$createComponent(Show, {
2928
3046
  get when() {
2929
3047
  return _$memo(() => !!hasContextUsage())() ? props.contextUsage ?? {} : undefined;
2930
3048
  },
@@ -2936,18 +3054,18 @@ export function ChatComposer(props) {
2936
3054
  return props.onError;
2937
3055
  }
2938
3056
  }))
2939
- }), _el$219, _co$58);
2940
- _$insert(_el$215, () => props.submitTools, _el$221, _co$59);
2941
- _$insert(_el$215, microphoneControl, _el$223, _co$60);
2942
- _$insert(_el$215, sendControl, _el$225, _co$61);
2943
- return _el$215;
3057
+ }), _el$229, _co$60);
3058
+ _$insert(_el$225, () => props.submitTools, _el$231, _co$61);
3059
+ _$insert(_el$225, microphoneControl, _el$233, _co$62);
3060
+ _$insert(_el$225, sendControl, _el$235, _co$63);
3061
+ return _el$225;
2944
3062
  })()];
2945
3063
  },
2946
3064
  get children() {
2947
3065
  return footer();
2948
3066
  }
2949
3067
  }));
2950
- return _el$199;
3068
+ return _el$209;
2951
3069
  })()];
2952
3070
  },
2953
3071
  get children() {
@@ -2956,43 +3074,43 @@ export function ChatComposer(props) {
2956
3074
  return props.error;
2957
3075
  },
2958
3076
  get children() {
2959
- var _el$95 = _$getNextElement(_tmpl$27),
2960
- _el$96 = _el$95.firstChild,
2961
- _el$97 = _el$96.nextSibling,
2962
- [_el$98, _co$18] = _$getNextMarker(_el$97.nextSibling);
2963
- _$insert(_el$95, () => props.error, _el$98, _co$18);
2964
- return _el$95;
3077
+ var _el$99 = _$getNextElement(_tmpl$27),
3078
+ _el$100 = _el$99.firstChild,
3079
+ _el$101 = _el$100.nextSibling,
3080
+ [_el$102, _co$19] = _$getNextMarker(_el$101.nextSibling);
3081
+ _$insert(_el$99, () => props.error, _el$102, _co$19);
3082
+ return _el$99;
2965
3083
  }
2966
3084
  }), _$memo(() => formatRow()), (() => {
2967
- var _el$99 = _$getNextElement(_tmpl$28),
2968
- _el$110 = _el$99.firstChild,
2969
- [_el$111, _co$23] = _$getNextMarker(_el$110.nextSibling),
2970
- _el$112 = _el$111.nextSibling,
2971
- [_el$113, _co$24] = _$getNextMarker(_el$112.nextSibling),
2972
- _el$100 = _el$113.nextSibling,
2973
- _el$108 = _el$100.firstChild,
2974
- [_el$109, _co$22] = _$getNextMarker(_el$108.nextSibling),
2975
- _el$101 = _el$109.nextSibling,
2976
- _el$102 = _el$101.firstChild,
2977
- [_el$103, _co$19] = _$getNextMarker(_el$102.nextSibling),
2978
- _el$104 = _el$103.nextSibling,
2979
- [_el$105, _co$20] = _$getNextMarker(_el$104.nextSibling),
2980
- _el$106 = _el$105.nextSibling,
2981
- [_el$107, _co$21] = _$getNextMarker(_el$106.nextSibling),
2982
- _el$114 = _el$100.nextSibling,
2983
- [_el$115, _co$25] = _$getNextMarker(_el$114.nextSibling);
2984
- _$insert(_el$99, attachControl, _el$111, _co$23);
2985
- _$insert(_el$99, fileInput, _el$113, _co$24);
2986
- _$insert(_el$100, field, _el$109, _co$22);
2987
- _$insert(_el$101, formatToggle, _el$103, _co$19);
2988
- _$insert(_el$101, emojiButton, _el$105, _co$20);
2989
- _$insert(_el$101, microphoneControl, _el$107, _co$21);
2990
- _$insert(_el$99, sendControl, _el$115, _co$25);
2991
- return _el$99;
3085
+ var _el$103 = _$getNextElement(_tmpl$28),
3086
+ _el$114 = _el$103.firstChild,
3087
+ [_el$115, _co$24] = _$getNextMarker(_el$114.nextSibling),
3088
+ _el$116 = _el$115.nextSibling,
3089
+ [_el$117, _co$25] = _$getNextMarker(_el$116.nextSibling),
3090
+ _el$104 = _el$117.nextSibling,
3091
+ _el$112 = _el$104.firstChild,
3092
+ [_el$113, _co$23] = _$getNextMarker(_el$112.nextSibling),
3093
+ _el$105 = _el$113.nextSibling,
3094
+ _el$106 = _el$105.firstChild,
3095
+ [_el$107, _co$20] = _$getNextMarker(_el$106.nextSibling),
3096
+ _el$108 = _el$107.nextSibling,
3097
+ [_el$109, _co$21] = _$getNextMarker(_el$108.nextSibling),
3098
+ _el$110 = _el$109.nextSibling,
3099
+ [_el$111, _co$22] = _$getNextMarker(_el$110.nextSibling),
3100
+ _el$118 = _el$104.nextSibling,
3101
+ [_el$119, _co$26] = _$getNextMarker(_el$118.nextSibling);
3102
+ _$insert(_el$103, attachControl, _el$115, _co$24);
3103
+ _$insert(_el$103, fileInput, _el$117, _co$25);
3104
+ _$insert(_el$104, field, _el$113, _co$23);
3105
+ _$insert(_el$105, formatToggle, _el$107, _co$20);
3106
+ _$insert(_el$105, emojiButton, _el$109, _co$21);
3107
+ _$insert(_el$105, microphoneControl, _el$111, _co$22);
3108
+ _$insert(_el$103, sendControl, _el$119, _co$26);
3109
+ return _el$103;
2992
3110
  })()];
2993
3111
  }
2994
- }), _el$123, _co$29);
2995
- _$insert(_el$92, _$createComponent(Show, {
3112
+ }), _el$127, _co$30);
3113
+ _$insert(_el$96, _$createComponent(Show, {
2996
3114
  get when() {
2997
3115
  return props.fileSelection;
2998
3116
  },
@@ -3011,60 +3129,60 @@ export function ChatComposer(props) {
3011
3129
  },
3012
3130
  onDrop: files => void runFiles(files)
3013
3131
  })
3014
- }), _el$125, _co$30);
3015
- _$insert(_el$126, _$createComponent(Show, {
3132
+ }), _el$129, _co$31);
3133
+ _$insert(_el$130, _$createComponent(Show, {
3016
3134
  get when() {
3017
3135
  return suggestionAnnouncement();
3018
3136
  },
3019
3137
  keyed: true,
3020
3138
  children: announced => (() => {
3021
- var _el$227 = _$getNextElement(_tmpl$10);
3022
- _$insert(_el$227, () => announced.text);
3023
- return _el$227;
3139
+ var _el$237 = _$getNextElement(_tmpl$10);
3140
+ _$insert(_el$237, () => announced.text);
3141
+ return _el$237;
3024
3142
  })()
3025
3143
  }));
3026
- _$insert(_el$127, _$createComponent(Show, {
3144
+ _$insert(_el$131, _$createComponent(Show, {
3027
3145
  get when() {
3028
3146
  return _$memo(() => !!!suggestionsOpen())() && commandStatus();
3029
3147
  },
3030
3148
  children: status => (() => {
3031
- var _el$228 = _$getNextElement(_tmpl$50),
3032
- _el$229 = _el$228.firstChild,
3033
- _el$230 = _el$229.nextSibling;
3034
- _$insert(_el$230, () => status().text);
3149
+ var _el$238 = _$getNextElement(_tmpl$51),
3150
+ _el$239 = _el$238.firstChild,
3151
+ _el$240 = _el$239.nextSibling;
3152
+ _$insert(_el$240, () => status().text);
3035
3153
  _$effect(_p$ => {
3036
- var _v$56 = status().tone,
3037
- _v$57 = status().tone === "busy" ? "ti ti-loader-2 k2b-spin" : status().tone === "done" ? "ti ti-check" : "ti ti-alert-circle";
3038
- _v$56 !== _p$.e && _$setAttribute(_el$228, "data-tone", _p$.e = _v$56);
3039
- _v$57 !== _p$.t && _$className(_el$229, _p$.t = _v$57);
3154
+ var _v$60 = status().tone,
3155
+ _v$61 = status().tone === "busy" ? "ti ti-loader-2 k2b-spin" : status().tone === "done" ? "ti ti-check" : "ti ti-alert-circle";
3156
+ _v$60 !== _p$.e && _$setAttribute(_el$238, "data-tone", _p$.e = _v$60);
3157
+ _v$61 !== _p$.t && _$className(_el$239, _p$.t = _v$61);
3040
3158
  return _p$;
3041
3159
  }, {
3042
3160
  e: undefined,
3043
3161
  t: undefined
3044
3162
  });
3045
- return _el$228;
3163
+ return _el$238;
3046
3164
  })()
3047
- }), _el$129, _co$31);
3048
- _$insert(_el$127, _$createComponent(Show, {
3165
+ }), _el$133, _co$32);
3166
+ _$insert(_el$131, _$createComponent(Show, {
3049
3167
  get when() {
3050
3168
  return _$memo(() => !!suggestionsOpen())() && announcement();
3051
3169
  },
3052
3170
  keyed: true,
3053
3171
  children: announced => (() => {
3054
- var _el$231 = _$getNextElement(_tmpl$51);
3055
- _$insert(_el$231, () => announced.text);
3056
- return _el$231;
3172
+ var _el$241 = _$getNextElement(_tmpl$52);
3173
+ _$insert(_el$241, () => announced.text);
3174
+ return _el$241;
3057
3175
  })()
3058
- }), _el$131, _co$32);
3176
+ }), _el$135, _co$33);
3059
3177
  _$effect(_p$ => {
3060
3178
  var _v$34 = `k2b-chat-composer ${props.class ?? ""}`,
3061
3179
  _v$35 = running() ? "true" : undefined,
3062
3180
  _v$36 = conversation() ? "conversation" : undefined,
3063
3181
  _v$37 = props.label ?? chatMessages().messageComposer;
3064
- _v$34 !== _p$.e && _$className(_el$92, _p$.e = _v$34);
3065
- _v$35 !== _p$.t && _$setAttribute(_el$92, "data-running", _p$.t = _v$35);
3066
- _v$36 !== _p$.a && _$setAttribute(_el$92, "data-variant", _p$.a = _v$36);
3067
- _v$37 !== _p$.o && _$setAttribute(_el$92, "aria-label", _p$.o = _v$37);
3182
+ _v$34 !== _p$.e && _$className(_el$96, _p$.e = _v$34);
3183
+ _v$35 !== _p$.t && _$setAttribute(_el$96, "data-running", _p$.t = _v$35);
3184
+ _v$36 !== _p$.a && _$setAttribute(_el$96, "data-variant", _p$.a = _v$36);
3185
+ _v$37 !== _p$.o && _$setAttribute(_el$96, "aria-label", _p$.o = _v$37);
3068
3186
  return _p$;
3069
3187
  }, {
3070
3188
  e: undefined,