@k2b/ui 0.32.0 → 0.34.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 (292) 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 +173 -102
  5. package/dist/browser/actions/Dropdown.js.map +1 -1
  6. package/dist/browser/actions/FilterChip.js +113 -56
  7. package/dist/browser/actions/FilterChip.js.map +1 -1
  8. package/dist/browser/actions/SelectionToolbar.js +129 -0
  9. package/dist/browser/actions/SelectionToolbar.js.map +1 -0
  10. package/dist/browser/actions/filter-messages.js +26 -2
  11. package/dist/browser/actions/filter-messages.js.map +1 -1
  12. package/dist/browser/actions/index.js +1 -0
  13. package/dist/browser/actions/index.js.map +1 -1
  14. package/dist/browser/actions/menu-rows.js +23 -3
  15. package/dist/browser/actions/menu-rows.js.map +1 -1
  16. package/dist/browser/actions/menu-sheet.js +2 -7
  17. package/dist/browser/actions/menu-sheet.js.map +1 -1
  18. package/dist/browser/charts.js +6 -0
  19. package/dist/browser/charts.js.map +1 -0
  20. package/dist/browser/chat/ChatComposer.js +616 -421
  21. package/dist/browser/chat/ChatComposer.js.map +1 -1
  22. package/dist/browser/chat/chat-messages.js +18 -0
  23. package/dist/browser/chat/chat-messages.js.map +1 -1
  24. package/dist/browser/chat/composer-document.js +19 -0
  25. package/dist/browser/chat/composer-document.js.map +1 -1
  26. package/dist/browser/chat/index.js.map +1 -1
  27. package/dist/browser/content/Calendar.js +39 -29
  28. package/dist/browser/content/Calendar.js.map +1 -1
  29. package/dist/browser/content/CalendarDayView.js +159 -165
  30. package/dist/browser/content/CalendarDayView.js.map +1 -1
  31. package/dist/browser/content/Chart.js +8 -0
  32. package/dist/browser/content/Chart.js.map +1 -1
  33. package/dist/browser/content/FileGrid.js +231 -9
  34. package/dist/browser/content/FileGrid.js.map +1 -1
  35. package/dist/browser/content/FileTypeIcon.js +15 -0
  36. package/dist/browser/content/FileTypeIcon.js.map +1 -1
  37. package/dist/browser/content/FileView.js +11 -4
  38. package/dist/browser/content/FileView.js.map +1 -1
  39. package/dist/browser/content/MessageRow.js +627 -343
  40. package/dist/browser/content/MessageRow.js.map +1 -1
  41. package/dist/browser/content/ReactionBar.js +20 -1
  42. package/dist/browser/content/ReactionBar.js.map +1 -1
  43. package/dist/browser/content/calendar-day-scroll.js +4 -3
  44. package/dist/browser/content/calendar-day-scroll.js.map +1 -1
  45. package/dist/browser/content/chart-bar.js +476 -0
  46. package/dist/browser/content/chart-bar.js.map +1 -0
  47. package/dist/browser/content/file-list-messages.js +52 -0
  48. package/dist/browser/content/file-list-messages.js.map +1 -0
  49. package/dist/browser/content/index.js +2 -2
  50. package/dist/browser/content/index.js.map +1 -1
  51. package/dist/browser/feedback/Tooltip.js +31 -14
  52. package/dist/browser/feedback/Tooltip.js.map +1 -1
  53. package/dist/browser/feedback/dialog-core.js +6 -0
  54. package/dist/browser/feedback/dialog-core.js.map +1 -1
  55. package/dist/browser/inputs/ChoiceList.js +178 -0
  56. package/dist/browser/inputs/ChoiceList.js.map +1 -0
  57. package/dist/browser/inputs/ChoiceSlider.js +314 -0
  58. package/dist/browser/inputs/ChoiceSlider.js.map +1 -0
  59. package/dist/browser/inputs/ChoiceTiles.js +135 -0
  60. package/dist/browser/inputs/ChoiceTiles.js.map +1 -0
  61. package/dist/browser/inputs/ColorChoices.js +120 -0
  62. package/dist/browser/inputs/ColorChoices.js.map +1 -0
  63. package/dist/browser/inputs/QrScanner.js +95 -13
  64. package/dist/browser/inputs/QrScanner.js.map +1 -1
  65. package/dist/browser/inputs/TextInput.js +19 -14
  66. package/dist/browser/inputs/TextInput.js.map +1 -1
  67. package/dist/browser/inputs/index.js +4 -0
  68. package/dist/browser/inputs/index.js.map +1 -1
  69. package/dist/browser/inputs/qr-messages.js +2 -0
  70. package/dist/browser/inputs/qr-messages.js.map +1 -1
  71. package/dist/browser/internal/radio-keys.js +13 -0
  72. package/dist/browser/internal/radio-keys.js.map +1 -0
  73. package/dist/browser/intl/shortcut-messages.js +4 -0
  74. package/dist/browser/intl/shortcut-messages.js.map +1 -1
  75. package/dist/browser/intl/shortcut.js +4 -0
  76. package/dist/browser/intl/shortcut.js.map +1 -1
  77. package/dist/browser/layout/AnchoredPopover.js +180 -0
  78. package/dist/browser/layout/AnchoredPopover.js.map +1 -0
  79. package/dist/browser/layout/AppWorkspace.js +684 -532
  80. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  81. package/dist/browser/layout/DetailPanel.js +443 -333
  82. package/dist/browser/layout/DetailPanel.js.map +1 -1
  83. package/dist/browser/layout/MobileShell.js +231 -42
  84. package/dist/browser/layout/MobileShell.js.map +1 -1
  85. package/dist/browser/layout/Settings.js +283 -175
  86. package/dist/browser/layout/Settings.js.map +1 -1
  87. package/dist/browser/layout/SidebarRailHint.js +79 -0
  88. package/dist/browser/layout/SidebarRailHint.js.map +1 -0
  89. package/dist/browser/layout/SidebarSwitcher.js +79 -66
  90. package/dist/browser/layout/SidebarSwitcher.js.map +1 -1
  91. package/dist/browser/layout/TabBar.js +18 -4
  92. package/dist/browser/layout/TabBar.js.map +1 -1
  93. package/dist/browser/layout/app-workspace-controller.js +11 -4
  94. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  95. package/dist/browser/layout/detail-panel-messages.js +4 -2
  96. package/dist/browser/layout/detail-panel-messages.js.map +1 -1
  97. package/dist/browser/layout/index.js +3 -1
  98. package/dist/browser/layout/index.js.map +1 -1
  99. package/dist/browser/layout/scroll-fade.js +32 -5
  100. package/dist/browser/layout/scroll-fade.js.map +1 -1
  101. package/dist/browser/layout/settings-messages.js +26 -2
  102. package/dist/browser/layout/settings-messages.js.map +1 -1
  103. package/dist/browser/surfaces/Avatar.js +2 -14
  104. package/dist/browser/surfaces/Avatar.js.map +1 -1
  105. package/dist/browser/surfaces/DotStrip.js +70 -0
  106. package/dist/browser/surfaces/DotStrip.js.map +1 -0
  107. package/dist/browser/surfaces/NoticeCard.js +46 -30
  108. package/dist/browser/surfaces/NoticeCard.js.map +1 -1
  109. package/dist/browser/surfaces/ProgressRing.js +3 -0
  110. package/dist/browser/surfaces/ProgressRing.js.map +1 -1
  111. package/dist/browser/surfaces/ResourceCard.js +125 -68
  112. package/dist/browser/surfaces/ResourceCard.js.map +1 -1
  113. package/dist/browser/surfaces/index.js +2 -0
  114. package/dist/browser/surfaces/index.js.map +1 -1
  115. package/dist/browser/surfaces/person-color.js +18 -0
  116. package/dist/browser/surfaces/person-color.js.map +1 -0
  117. package/dist/browser/surfaces/resource-messages.js +8 -4
  118. package/dist/browser/surfaces/resource-messages.js.map +1 -1
  119. package/dist/browser/widgets/Widget.js +3 -2
  120. package/dist/browser/widgets/Widget.js.map +1 -1
  121. package/dist/ssr/actions/ContextMenu.js +9 -0
  122. package/dist/ssr/actions/ContextMenu.js.map +1 -1
  123. package/dist/ssr/actions/Dropdown.js +65 -31
  124. package/dist/ssr/actions/Dropdown.js.map +1 -1
  125. package/dist/ssr/actions/FilterChip.js +67 -16
  126. package/dist/ssr/actions/FilterChip.js.map +1 -1
  127. package/dist/ssr/actions/SelectionToolbar.js +104 -0
  128. package/dist/ssr/actions/SelectionToolbar.js.map +1 -0
  129. package/dist/ssr/actions/filter-messages.js +26 -2
  130. package/dist/ssr/actions/filter-messages.js.map +1 -1
  131. package/dist/ssr/actions/index.js +1 -0
  132. package/dist/ssr/actions/index.js.map +1 -1
  133. package/dist/ssr/actions/menu-rows.js +23 -3
  134. package/dist/ssr/actions/menu-rows.js.map +1 -1
  135. package/dist/ssr/actions/menu-sheet.js +2 -7
  136. package/dist/ssr/actions/menu-sheet.js.map +1 -1
  137. package/dist/ssr/charts.js +6 -0
  138. package/dist/ssr/charts.js.map +1 -0
  139. package/dist/ssr/chat/ChatComposer.js +184 -76
  140. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  141. package/dist/ssr/chat/chat-messages.js +18 -0
  142. package/dist/ssr/chat/chat-messages.js.map +1 -1
  143. package/dist/ssr/chat/composer-document.js +19 -0
  144. package/dist/ssr/chat/composer-document.js.map +1 -1
  145. package/dist/ssr/chat/index.js.map +1 -1
  146. package/dist/ssr/content/Calendar.js +40 -31
  147. package/dist/ssr/content/Calendar.js.map +1 -1
  148. package/dist/ssr/content/CalendarDayView.js +40 -48
  149. package/dist/ssr/content/CalendarDayView.js.map +1 -1
  150. package/dist/ssr/content/Chart.js +8 -0
  151. package/dist/ssr/content/Chart.js.map +1 -1
  152. package/dist/ssr/content/FileGrid.js +132 -5
  153. package/dist/ssr/content/FileGrid.js.map +1 -1
  154. package/dist/ssr/content/FileTypeIcon.js +15 -0
  155. package/dist/ssr/content/FileTypeIcon.js.map +1 -1
  156. package/dist/ssr/content/FileView.js +11 -4
  157. package/dist/ssr/content/FileView.js.map +1 -1
  158. package/dist/ssr/content/MessageRow.js +274 -91
  159. package/dist/ssr/content/MessageRow.js.map +1 -1
  160. package/dist/ssr/content/ReactionBar.js +20 -1
  161. package/dist/ssr/content/ReactionBar.js.map +1 -1
  162. package/dist/ssr/content/calendar-day-scroll.js +4 -3
  163. package/dist/ssr/content/calendar-day-scroll.js.map +1 -1
  164. package/dist/ssr/content/chart-bar.js +476 -0
  165. package/dist/ssr/content/chart-bar.js.map +1 -0
  166. package/dist/ssr/content/file-list-messages.js +52 -0
  167. package/dist/ssr/content/file-list-messages.js.map +1 -0
  168. package/dist/ssr/content/index.js +2 -2
  169. package/dist/ssr/content/index.js.map +1 -1
  170. package/dist/ssr/feedback/Tooltip.js +31 -14
  171. package/dist/ssr/feedback/Tooltip.js.map +1 -1
  172. package/dist/ssr/feedback/dialog-core.js +6 -0
  173. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  174. package/dist/ssr/inputs/ChoiceList.js +95 -0
  175. package/dist/ssr/inputs/ChoiceList.js.map +1 -0
  176. package/dist/ssr/inputs/ChoiceSlider.js +191 -0
  177. package/dist/ssr/inputs/ChoiceSlider.js.map +1 -0
  178. package/dist/ssr/inputs/ChoiceTiles.js +61 -0
  179. package/dist/ssr/inputs/ChoiceTiles.js.map +1 -0
  180. package/dist/ssr/inputs/ColorChoices.js +60 -0
  181. package/dist/ssr/inputs/ColorChoices.js.map +1 -0
  182. package/dist/ssr/inputs/QrScanner.js +89 -10
  183. package/dist/ssr/inputs/QrScanner.js.map +1 -1
  184. package/dist/ssr/inputs/TextInput.js +17 -2
  185. package/dist/ssr/inputs/TextInput.js.map +1 -1
  186. package/dist/ssr/inputs/index.js +4 -0
  187. package/dist/ssr/inputs/index.js.map +1 -1
  188. package/dist/ssr/inputs/qr-messages.js +2 -0
  189. package/dist/ssr/inputs/qr-messages.js.map +1 -1
  190. package/dist/ssr/internal/radio-keys.js +13 -0
  191. package/dist/ssr/internal/radio-keys.js.map +1 -0
  192. package/dist/ssr/intl/shortcut-messages.js +4 -0
  193. package/dist/ssr/intl/shortcut-messages.js.map +1 -1
  194. package/dist/ssr/intl/shortcut.js +4 -0
  195. package/dist/ssr/intl/shortcut.js.map +1 -1
  196. package/dist/ssr/layout/AnchoredPopover.js +142 -0
  197. package/dist/ssr/layout/AnchoredPopover.js.map +1 -0
  198. package/dist/ssr/layout/AppWorkspace.js +287 -141
  199. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  200. package/dist/ssr/layout/DetailPanel.js +181 -108
  201. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  202. package/dist/ssr/layout/MobileShell.js +118 -24
  203. package/dist/ssr/layout/MobileShell.js.map +1 -1
  204. package/dist/ssr/layout/Settings.js +122 -45
  205. package/dist/ssr/layout/Settings.js.map +1 -1
  206. package/dist/ssr/layout/SidebarRailHint.js +79 -0
  207. package/dist/ssr/layout/SidebarRailHint.js.map +1 -0
  208. package/dist/ssr/layout/SidebarSwitcher.js +13 -3
  209. package/dist/ssr/layout/SidebarSwitcher.js.map +1 -1
  210. package/dist/ssr/layout/TabBar.js +11 -3
  211. package/dist/ssr/layout/TabBar.js.map +1 -1
  212. package/dist/ssr/layout/app-workspace-controller.js +11 -4
  213. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  214. package/dist/ssr/layout/detail-panel-messages.js +4 -2
  215. package/dist/ssr/layout/detail-panel-messages.js.map +1 -1
  216. package/dist/ssr/layout/index.js +3 -1
  217. package/dist/ssr/layout/index.js.map +1 -1
  218. package/dist/ssr/layout/scroll-fade.js +32 -5
  219. package/dist/ssr/layout/scroll-fade.js.map +1 -1
  220. package/dist/ssr/layout/settings-messages.js +26 -2
  221. package/dist/ssr/layout/settings-messages.js.map +1 -1
  222. package/dist/ssr/surfaces/Avatar.js +2 -14
  223. package/dist/ssr/surfaces/Avatar.js.map +1 -1
  224. package/dist/ssr/surfaces/DotStrip.js +31 -0
  225. package/dist/ssr/surfaces/DotStrip.js.map +1 -0
  226. package/dist/ssr/surfaces/NoticeCard.js +21 -12
  227. package/dist/ssr/surfaces/NoticeCard.js.map +1 -1
  228. package/dist/ssr/surfaces/ProgressRing.js +3 -0
  229. package/dist/ssr/surfaces/ProgressRing.js.map +1 -1
  230. package/dist/ssr/surfaces/ResourceCard.js +40 -15
  231. package/dist/ssr/surfaces/ResourceCard.js.map +1 -1
  232. package/dist/ssr/surfaces/index.js +2 -0
  233. package/dist/ssr/surfaces/index.js.map +1 -1
  234. package/dist/ssr/surfaces/person-color.js +18 -0
  235. package/dist/ssr/surfaces/person-color.js.map +1 -0
  236. package/dist/ssr/surfaces/resource-messages.js +8 -4
  237. package/dist/ssr/surfaces/resource-messages.js.map +1 -1
  238. package/dist/ssr/widgets/Widget.js +3 -2
  239. package/dist/ssr/widgets/Widget.js.map +1 -1
  240. package/dist/styles.css +1 -1
  241. package/dist/types/actions/ContextMenu.d.ts +5 -0
  242. package/dist/types/actions/Dropdown.d.ts +19 -0
  243. package/dist/types/actions/FilterChip.d.ts +11 -0
  244. package/dist/types/actions/SelectionToolbar.d.ts +38 -0
  245. package/dist/types/actions/filter-messages.d.ts +12 -0
  246. package/dist/types/actions/index.d.ts +2 -0
  247. package/dist/types/actions/menu-rows.d.ts +7 -2
  248. package/dist/types/charts.d.ts +5 -0
  249. package/dist/types/chat/ChatComposer.d.ts +28 -0
  250. package/dist/types/chat/chat-messages.d.ts +9 -0
  251. package/dist/types/chat/composer-document.d.ts +5 -0
  252. package/dist/types/chat/index.d.ts +1 -1
  253. package/dist/types/content/Calendar.d.ts +7 -0
  254. package/dist/types/content/Chart.d.ts +2 -1
  255. package/dist/types/content/FileGrid.d.ts +43 -3
  256. package/dist/types/content/FileTypeIcon.d.ts +10 -0
  257. package/dist/types/content/FileView.d.ts +5 -1
  258. package/dist/types/content/MessageRow.d.ts +66 -2
  259. package/dist/types/content/calendar-day-scroll.d.ts +2 -1
  260. package/dist/types/content/chart-bar.d.ts +60 -0
  261. package/dist/types/content/file-list-messages.d.ts +24 -0
  262. package/dist/types/content/index.d.ts +4 -4
  263. package/dist/types/feedback/Tooltip.d.ts +8 -2
  264. package/dist/types/feedback/dialog-core.d.ts +3 -0
  265. package/dist/types/inputs/ChoiceList.d.ts +28 -0
  266. package/dist/types/inputs/ChoiceSlider.d.ts +36 -0
  267. package/dist/types/inputs/ChoiceTiles.d.ts +25 -0
  268. package/dist/types/inputs/ColorChoices.d.ts +19 -0
  269. package/dist/types/inputs/index.d.ts +8 -0
  270. package/dist/types/inputs/qr-messages.d.ts +1 -0
  271. package/dist/types/internal/radio-keys.d.ts +5 -0
  272. package/dist/types/intl/shortcut-messages.d.ts +2 -0
  273. package/dist/types/layout/AnchoredPopover.d.ts +31 -0
  274. package/dist/types/layout/AppWorkspace.d.ts +12 -0
  275. package/dist/types/layout/DetailPanel.d.ts +17 -0
  276. package/dist/types/layout/MobileShell.d.ts +55 -5
  277. package/dist/types/layout/Settings.d.ts +22 -0
  278. package/dist/types/layout/SidebarRailHint.d.ts +26 -0
  279. package/dist/types/layout/TabBar.d.ts +5 -0
  280. package/dist/types/layout/detail-panel-messages.d.ts +1 -0
  281. package/dist/types/layout/index.d.ts +5 -3
  282. package/dist/types/layout/scroll-fade.d.ts +5 -0
  283. package/dist/types/layout/settings-messages.d.ts +12 -0
  284. package/dist/types/surfaces/DotStrip.d.ts +22 -0
  285. package/dist/types/surfaces/NoticeCard.d.ts +3 -0
  286. package/dist/types/surfaces/ProgressRing.d.ts +2 -1
  287. package/dist/types/surfaces/ResourceCard.d.ts +9 -0
  288. package/dist/types/surfaces/index.d.ts +4 -1
  289. package/dist/types/surfaces/person-color.d.ts +10 -0
  290. package/dist/types/surfaces/resource-messages.d.ts +2 -0
  291. package/dist/types/widgets/Widget.d.ts +3 -2
  292. package/package.json +7 -2
@@ -30,37 +30,43 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span><strong>`),
30
30
  _tmpl$13 = /*#__PURE__*/_$template(`<button class=k2b-chat-composer__command type=button role=option tabindex=-1><i aria-hidden=true></i><span class=k2b-chat-composer__command-text><strong></strong><!$><!/></span><!$><!/>`),
31
31
  _tmpl$14 = /*#__PURE__*/_$template(`<b>`),
32
32
  _tmpl$15 = /*#__PURE__*/_$template(`<small>`),
33
- _tmpl$16 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer-accessory><div class=k2b-chat-composer__commands role=listbox>`),
34
- _tmpl$17 = /*#__PURE__*/_$template(`<label class=k2b-chat-composer__command-search><i class="ti ti-search"aria-hidden=true></i><input type=text role=combobox aria-autocomplete=list aria-expanded=true autocomplete=off autocapitalize=off>`),
35
- _tmpl$18 = /*#__PURE__*/_$template(`<div role=status class=k2b-chat-composer__loading><i class="ti ti-loader-2 k2b-spin"aria-hidden=true></i><strong>`),
36
- _tmpl$19 = /*#__PURE__*/_$template(`<div role=status><i class="ti ti-alert-circle"></i> <!$><!/>`),
37
- _tmpl$20 = /*#__PURE__*/_$template(`<div role=status>`),
38
- _tmpl$21 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer-accessory data-commands><!$><!/><div class=k2b-chat-composer__commands role=listbox><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
39
- _tmpl$22 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer-slot><div></div><!$><!/><!$><!/>`),
40
- _tmpl$23 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__hint aria-live=polite>`),
41
- _tmpl$24 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachments role=list tabindex=0>`),
42
- _tmpl$25 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__error role=alert><i class="ti ti-alert-circle"aria-hidden=true></i><!$><!/>`),
43
- _tmpl$26 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__row><!$><!/><!$><!/><div class=k2b-chat-composer__field><!$><!/><div class=k2b-chat-composer__field-tools><!$><!/><!$><!/><!$><!/></div></div><!$><!/>`),
44
- _tmpl$27 = /*#__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><!$><!/><!$><!/>`),
45
- _tmpl$28 = /*#__PURE__*/_$template(`<button type=button role=option tabindex=-1><span class=k2b-chat-composer__emoji-glyph aria-hidden=true></span><strong></strong><!$><!/>`),
46
- _tmpl$29 = /*#__PURE__*/_$template(`<small>:<!$><!/>:`),
47
- _tmpl$30 = /*#__PURE__*/_$template(`<i class="ti ti-loader-2 k2b-spin"aria-hidden=true>`),
48
- _tmpl$31 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__command-group role=group><div class=k2b-chat-composer__command-heading role=presentation><span></span><!$><!/></div><!$><!/><!$><!/>`),
49
- _tmpl$32 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__command-placeholder aria-hidden=true><span></span><span><span></span><span>`),
50
- _tmpl$33 = /*#__PURE__*/_$template(`<span class=k2b-chat-composer__hint-text>`),
51
- _tmpl$34 = /*#__PURE__*/_$template(`<span class=k2b-chat-composer__dictation><i aria-hidden=true></i><span>`),
52
- _tmpl$35 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__hint-action>`),
53
- _tmpl$36 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-remove><i class="ti ti-x"aria-hidden=true>`),
54
- _tmpl$37 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment role=listitem><div class=k2b-chat-composer__attachment-content><!$><!/><!$><!/></div><!$><!/>`),
55
- _tmpl$38 = /*#__PURE__*/_$template(`<img>`),
56
- _tmpl$39 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment-identity><!$><!/><!$><!/>`),
57
- _tmpl$40 = /*#__PURE__*/_$template(`<a class=k2b-chat-composer__attachment-link target=_blank rel="noopener noreferrer"><!$><!/><!$><!/>`),
58
- _tmpl$41 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-action><!$><!/><!$><!/>`),
59
- _tmpl$42 = /*#__PURE__*/_$template(`<footer class=k2b-chat-composer__footer>`),
60
- _tmpl$43 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__tools><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
61
- _tmpl$44 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__submit><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
62
- _tmpl$45 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__status-line><i aria-hidden=true></i><span>`),
63
- _tmpl$46 = /*#__PURE__*/_$template(`<span class=k2b-sr-only>`);
33
+ _tmpl$16 = /*#__PURE__*/_$template(`<span class=k2b-message-row__quote-author><span class=k2b-sr-only><!$><!/> </span><!$><!/>`),
34
+ _tmpl$17 = /*#__PURE__*/_$template(`<span class=k2b-message-row__quote-text>`),
35
+ _tmpl$18 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer-accessory><div class=k2b-chat-composer__commands role=listbox>`),
36
+ _tmpl$19 = /*#__PURE__*/_$template(`<label class=k2b-chat-composer__command-search><i class="ti ti-search"aria-hidden=true></i><input type=text role=combobox aria-autocomplete=list aria-expanded=true autocomplete=off autocapitalize=off>`),
37
+ _tmpl$20 = /*#__PURE__*/_$template(`<div role=status class=k2b-chat-composer__loading><i class="ti ti-loader-2 k2b-spin"aria-hidden=true></i><strong>`),
38
+ _tmpl$21 = /*#__PURE__*/_$template(`<div role=status><i class="ti ti-alert-circle"></i> <!$><!/>`),
39
+ _tmpl$22 = /*#__PURE__*/_$template(`<div role=status>`),
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><!$><!/><!$><!/><!$><!/>`),
42
+ _tmpl$25 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__hint aria-live=polite>`),
43
+ _tmpl$26 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachments role=list tabindex=0>`),
44
+ _tmpl$27 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__error role=alert><i class="ti ti-alert-circle"aria-hidden=true></i><!$><!/>`),
45
+ _tmpl$28 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__row><!$><!/><!$><!/><div class=k2b-chat-composer__field><!$><!/><div class=k2b-chat-composer__field-tools><!$><!/><!$><!/><!$><!/></div></div><!$><!/>`),
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
+ _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
+ _tmpl$31 = /*#__PURE__*/_$template(`<small>:<!$><!/>:`),
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>`);
64
70
  import { batch, children, createEffect, createMemo, createSignal, createUniqueId, For, Index, on, onCleanup, onMount, Show, untrack } from "solid-js";
65
71
  import { Dropdown } from "../actions/Dropdown";
66
72
  import { dialogHistorySettled, holdDialogHistory } from "../feedback/dialog-core";
@@ -79,7 +85,7 @@ import { ChatContextUsage as ContextUsage } from "./ChatPrimitives";
79
85
  import { chatCommandKey, conversationEnterAction, executeChatAction, nextChatCommandIndex, reportChatFailure, runChatSubmission } from "./chat-behavior";
80
86
  import { useChatMessages } from "./chat-messages";
81
87
  import { chatCommandListModel, parseChatCommandQuery } from "./command-search";
82
- import { chatCommandQuery, chatMentionSegments, reconcileChatMentions } from "./composer-document";
88
+ import { chatCommandQuery, chatMentionSegments, chatPeopleQuery, reconcileChatMentions } from "./composer-document";
83
89
  const composerMaxInputHeight = 309;
84
90
  const commandDoneMs = 3_000;
85
91
  /** Emoji suggestions for a `:shortcode`, as many as fit the list without scrolling on a phone. */
@@ -105,6 +111,10 @@ const composerUndoBudgetChars = 1_000_000;
105
111
 
106
112
  /** Passed as the third argument to `searchCommands`. */
107
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
+
108
118
  /** The row stays short: what a chat message needs. Other Markdown, typed by hand, keeps working. */
109
119
  const formatTools = [{
110
120
  id: "bold",
@@ -302,6 +312,32 @@ export function ChatComposer(props) {
302
312
  return token && index ? suggestEmoji(index, token.query, emojiSuggestionLimit) : [];
303
313
  });
304
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;
305
341
  // From "+", the search field's text is the query of an empty token at the field's stored caret.
306
342
  const caretCommandToken = createMemo(() => {
307
343
  const search = addSearch();
@@ -396,7 +432,7 @@ export function ChatComposer(props) {
396
432
  currentCommandQuery();
397
433
  setCommandMoved(false);
398
434
  });
399
- const commandsOpen = () => Boolean(!emojiOpen() && commandQuery() && (localCommands().length || props.searchCommands || commandFallbackRow()));
435
+ const commandsOpen = () => Boolean(!emojiOpen() && !peopleOpen() && commandQuery() && (localCommands().length || props.searchCommands || commandFallbackRow()));
400
436
  // Rows that arrive for a pending section never move a visible row of the overview: until the person types, the list
401
437
  // keeps the height it had with its placeholders and scrolls what does not fit. A list below its maximum height grows
402
438
  // upward from the field, so a change of height alone would move its first row. While searching, the rows arrive
@@ -466,7 +502,7 @@ export function ChatComposer(props) {
466
502
  if (!commandSheetHeld()) return;
467
503
  onCleanup(holdDialogHistory(() => closeCommandList()));
468
504
  });
469
- const suggestionsOpen = () => commandsOpen() || emojiOpen();
505
+ const suggestionsOpen = () => commandsOpen() || emojiOpen() || peopleOpen();
470
506
  const fieldOwnsList = () => suggestionsOpen() && !addSearch();
471
507
  // From "+", the panel keeps the height it opened with while the person types or rows arrive, so neither the search
472
508
  // field nor the first row moves; what does not fit scrolls. The space above the field still bounds it.
@@ -781,7 +817,7 @@ export function ChatComposer(props) {
781
817
  const editBlocked = () => conversation() ? busy() : blocked();
782
818
  const hasDraft = () => Boolean(props.value.trim() || !running() && attachments().length > 0);
783
819
  /** The draft may go out now, apart from a submission that is already on its way. */
784
- const submittable = () => !busy() && hasDraft() && !(running() && runningSubmitIntent() === "steer" && mentions().length);
820
+ const submittable = () => !busy() && !props.submitDisabled && hasDraft() && !(running() && runningSubmitIntent() === "steer" && mentions().length);
785
821
  const canSubmit = () => !submitting() && submittable();
786
822
  const canSelectFiles = () => Boolean(props.fileSelection && !props.fileSelection.disabled && !running() && !blocked());
787
823
  const hasAddMenu = () => Boolean(props.fileSelection || props.menuActions?.length);
@@ -811,7 +847,16 @@ export function ChatComposer(props) {
811
847
  label: action.label,
812
848
  variant: action.variant,
813
849
  disabled: action.disabled,
814
- action: () => reportChatFailure(() => executeChatAction(action), props.onError)
850
+ action: () => reportChatFailure(async () => {
851
+ await executeChatAction(action);
852
+ // Like attaching files, an add action returns to the field when the focus is still on this composer's add
853
+ // button or nowhere; focus the action moved somewhere on purpose stays there.
854
+ queueMicrotask(() => {
855
+ const active = textareaRef?.ownerDocument.activeElement;
856
+ const root = textareaRef?.closest(".k2b-chat-composer");
857
+ if (!active || active === active.ownerDocument.body || root?.contains(active) && active.matches("[data-chat-composer-add]")) focus();
858
+ });
859
+ }, props.onError)
815
860
  });
816
861
  }
817
862
  return items;
@@ -842,11 +887,12 @@ export function ChatComposer(props) {
842
887
  });
843
888
  createEffect(() => {
844
889
  emojiMatches();
890
+ peopleMatches();
845
891
  setSelectedCommandIndex(0);
846
892
  });
847
893
  createEffect(() => {
848
894
  const command = selectedCommand();
849
- const id = emojiOpen() ? `${commandListId}-${selectedCommandIndex()}` : command ? commandOptionId(command) : undefined;
895
+ const id = emojiOpen() || peopleOpen() ? `${commandListId}-${selectedCommandIndex()}` : command ? commandOptionId(command) : undefined;
850
896
  queueMicrotask(() => {
851
897
  const list = commandListRef;
852
898
  const item = id ? list?.querySelector(`[id="${id}"]`) : undefined;
@@ -1299,6 +1345,32 @@ export function ChatComposer(props) {
1299
1345
  syncCaret();
1300
1346
  reportChatFailure(() => props.emoji?.onPick?.(emoji), props.onError);
1301
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
+ };
1302
1374
  const pickEmojiSuggestion = position => {
1303
1375
  const token = emojiQuery();
1304
1376
  const entry = emojiMatches()[position];
@@ -1397,17 +1469,18 @@ export function ChatComposer(props) {
1397
1469
  restoreHistory(event.shiftKey ? 1 : -1);
1398
1470
  return;
1399
1471
  }
1400
- if (emojiOpen()) {
1472
+ if (emojiOpen() || peopleOpen()) {
1473
+ const count = emojiOpen() ? emojiMatches().length : peopleMatches().length;
1401
1474
  if (event.key === "ArrowUp" || event.key === "ArrowDown") {
1402
1475
  event.preventDefault();
1403
- setSelectedCommandIndex(index => nextChatCommandIndex(index, emojiMatches().length, event.key === "ArrowUp" ? -1 : 1));
1476
+ setSelectedCommandIndex(index => nextChatCommandIndex(index, count, event.key === "ArrowUp" ? -1 : 1));
1404
1477
  return;
1405
1478
  }
1406
1479
  // Only a plain Enter or Tab picks: Shift+Enter still breaks the line, Shift+Tab still moves the focus back.
1407
1480
  const plain = !event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey;
1408
1481
  if (plain && (event.key === "Enter" || event.key === "Tab")) {
1409
1482
  event.preventDefault();
1410
- pickEmojiSuggestion(selectedCommandIndex());
1483
+ if (emojiOpen()) pickEmojiSuggestion(selectedCommandIndex());else pickPersonSuggestion(selectedCommandIndex());
1411
1484
  return;
1412
1485
  }
1413
1486
  if (event.key === "Escape") {
@@ -1546,6 +1619,7 @@ export function ChatComposer(props) {
1546
1619
  return _$createComponent(Dropdown.Trigger, {
1547
1620
  appearance: "plain",
1548
1621
  "class": `k2b-chat-composer__icon-action${extraClass}`,
1622
+ "data-chat-composer-add": "",
1549
1623
  get label() {
1550
1624
  return chatMessages().addToChat;
1551
1625
  },
@@ -2007,7 +2081,7 @@ export function ChatComposer(props) {
2007
2081
  _v$1 = fieldOwnsList() ? "list" : undefined,
2008
2082
  _v$10 = fieldOwnsList() ? commandListId : undefined,
2009
2083
  _v$11 = fieldOwnsList() ? "true" : undefined,
2010
- _v$12 = !fieldOwnsList() ? undefined : emojiOpen() ? `${commandListId}-${selectedCommandIndex()}` : selectedCommand() ? commandOptionId(selectedCommand()) : undefined;
2084
+ _v$12 = !fieldOwnsList() ? undefined : emojiOpen() || peopleOpen() ? `${commandListId}-${selectedCommandIndex()}` : selectedCommand() ? commandOptionId(selectedCommand()) : undefined;
2011
2085
  _v$3 !== _p$.e && _$setAttribute(_el$18, "aria-label", _p$.e = _v$3);
2012
2086
  _v$4 !== _p$.t && _el$23.classList.toggle("k2b-chat-composer__textarea--highlighted", _p$.t = _v$4);
2013
2087
  _v$5 !== _p$.a && _$setProperty(_el$23, "disabled", _p$.a = _v$5);
@@ -2159,86 +2233,163 @@ export function ChatComposer(props) {
2159
2233
  return _el$30;
2160
2234
  })();
2161
2235
  };
2236
+ const replyQuote = reply => [(() => {
2237
+ var _el$49 = _$getNextElement(_tmpl$16),
2238
+ _el$50 = _el$49.firstChild,
2239
+ _el$52 = _el$50.firstChild,
2240
+ [_el$53, _co$9] = _$getNextMarker(_el$52.nextSibling),
2241
+ _el$51 = _el$53.nextSibling,
2242
+ _el$54 = _el$50.nextSibling,
2243
+ [_el$55, _co$0] = _$getNextMarker(_el$54.nextSibling);
2244
+ _$insert(_el$50, () => chatMessages().replyingTo, _el$53, _co$9);
2245
+ _$insert(_el$49, () => reply.author, _el$55, _co$0);
2246
+ return _el$49;
2247
+ })(), (() => {
2248
+ var _el$56 = _$getNextElement(_tmpl$17);
2249
+ _$insert(_el$56, () => reply.text);
2250
+ return _el$56;
2251
+ })()];
2162
2252
  return (() => {
2163
- var _el$49 = _$getNextElement(_tmpl$27),
2164
- _el$122 = _el$49.firstChild,
2165
- [_el$123, _co$30] = _$getNextMarker(_el$122.nextSibling),
2166
- _el$84 = _el$123.nextSibling,
2167
- _el$108 = _el$84.firstChild,
2168
- [_el$109, _co$24] = _$getNextMarker(_el$108.nextSibling),
2169
- _el$110 = _el$109.nextSibling,
2170
- [_el$111, _co$25] = _$getNextMarker(_el$110.nextSibling),
2171
- _el$112 = _el$111.nextSibling,
2172
- [_el$113, _co$26] = _$getNextMarker(_el$112.nextSibling),
2173
- _el$114 = _el$113.nextSibling,
2174
- [_el$115, _co$27] = _$getNextMarker(_el$114.nextSibling),
2175
- _el$116 = _el$84.nextSibling,
2176
- _el$117 = _el$116.nextSibling,
2177
- _el$118 = _el$117.firstChild,
2178
- [_el$119, _co$28] = _$getNextMarker(_el$118.nextSibling),
2179
- _el$120 = _el$119.nextSibling,
2180
- [_el$121, _co$29] = _$getNextMarker(_el$120.nextSibling);
2253
+ var _el$57 = _$getNextElement(_tmpl$29),
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),
2259
+ _el$122 = _el$121.nextSibling,
2260
+ [_el$123, _co$28] = _$getNextMarker(_el$122.nextSibling),
2261
+ _el$124 = _el$123.nextSibling,
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,
2266
+ [_el$129, _co$31] = _$getNextMarker(_el$128.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);
2181
2273
  var _ref$7 = shellRef;
2182
- typeof _ref$7 === "function" ? _$use(_ref$7, _el$49) : shellRef = _el$49;
2183
- _$insert(_el$49, _$createComponent(Show, {
2274
+ typeof _ref$7 === "function" ? _$use(_ref$7, _el$57) : shellRef = _el$57;
2275
+ _$insert(_el$57, _$createComponent(Show, {
2184
2276
  get when() {
2185
2277
  return suggestionsOpen() || hasAccessory();
2186
2278
  },
2187
2279
  get children() {
2188
- var _el$50 = _$getNextElement(_tmpl$22),
2189
- _el$51 = _el$50.firstChild,
2190
- _el$80 = _el$51.nextSibling,
2191
- [_el$81, _co$14] = _$getNextMarker(_el$80.nextSibling),
2192
- _el$82 = _el$81.nextSibling,
2193
- [_el$83, _co$15] = _$getNextMarker(_el$82.nextSibling);
2194
- _$insert(_el$51, accessory);
2195
- _$insert(_el$50, _$createComponent(Show, {
2280
+ var _el$58 = _$getNextElement(_tmpl$24),
2281
+ _el$59 = _el$58.firstChild,
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);
2288
+ _$insert(_el$59, accessory);
2289
+ _$insert(_el$58, _$createComponent(Show, {
2196
2290
  get when() {
2197
2291
  return emojiOpen();
2198
2292
  },
2199
2293
  get children() {
2200
- var _el$52 = _$getNextElement(_tmpl$16),
2201
- _el$53 = _el$52.firstChild;
2294
+ var _el$60 = _$getNextElement(_tmpl$18),
2295
+ _el$61 = _el$60.firstChild;
2202
2296
  var _ref$8 = commandListRef;
2203
- typeof _ref$8 === "function" ? _$use(_ref$8, _el$53) : commandListRef = _el$53;
2204
- _$setAttribute(_el$53, "id", commandListId);
2205
- _$insert(_el$53, _$createComponent(For, {
2297
+ typeof _ref$8 === "function" ? _$use(_ref$8, _el$61) : commandListRef = _el$61;
2298
+ _$setAttribute(_el$61, "id", commandListId);
2299
+ _$insert(_el$61, _$createComponent(For, {
2206
2300
  get each() {
2207
2301
  return emojiMatches();
2208
2302
  },
2209
2303
  children: (entry, index) => (() => {
2210
- var _el$124 = _$getNextElement(_tmpl$28),
2211
- _el$125 = _el$124.firstChild,
2212
- _el$126 = _el$125.nextSibling,
2213
- _el$127 = _el$126.nextSibling,
2214
- [_el$128, _co$31] = _$getNextMarker(_el$127.nextSibling);
2215
- _el$124.$$click = () => pickEmojiSuggestion(index());
2216
- _el$124.$$mousedown = keepFieldFocus;
2217
- _$insert(_el$125, () => emojiInTone(entry, props.emoji?.skinTone ?? 0));
2218
- _$insert(_el$126, () => emojiName(entry, locale()));
2219
- _$insert(_el$124, _$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, {
2220
2314
  get when() {
2221
2315
  return entry.shortcodes[0];
2222
2316
  },
2223
2317
  children: code => (() => {
2224
- var _el$129 = _$getNextElement(_tmpl$29),
2225
- _el$130 = _el$129.firstChild,
2226
- _el$132 = _el$130.nextSibling,
2227
- [_el$133, _co$32] = _$getNextMarker(_el$132.nextSibling),
2228
- _el$131 = _el$133.nextSibling;
2229
- _$insert(_el$129, code, _el$133, _co$32);
2230
- return _el$129;
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;
2231
2325
  })()
2232
- }), _el$128, _co$31);
2326
+ }), _el$142, _co$35);
2233
2327
  _$effect(_p$ => {
2234
2328
  var _v$38 = `${commandListId}-${index()}`,
2235
2329
  _v$39 = index() === selectedCommandIndex(),
2236
2330
  _v$40 = emojiName(entry, locale()),
2237
2331
  _v$41 = index() === selectedCommandIndex() ? "true" : undefined;
2238
- _v$38 !== _p$.e && _$setAttribute(_el$124, "id", _p$.e = _v$38);
2239
- _v$39 !== _p$.t && _$setAttribute(_el$124, "aria-selected", _p$.t = _v$39);
2240
- _v$40 !== _p$.a && _$setAttribute(_el$124, "aria-label", _p$.a = _v$40);
2241
- _v$41 !== _p$.o && _$setAttribute(_el$124, "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);
2336
+ return _p$;
2337
+ }, {
2338
+ e: undefined,
2339
+ t: undefined,
2340
+ a: undefined,
2341
+ o: undefined
2342
+ });
2343
+ _$runHydrationEvents();
2344
+ return _el$138;
2345
+ })()
2346
+ }));
2347
+ _$effect(() => _$setAttribute(_el$61, "aria-label", chatMessages().emojiSuggestions));
2348
+ return _el$60;
2349
+ }
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);
2242
2393
  return _p$;
2243
2394
  }, {
2244
2395
  e: undefined,
@@ -2247,44 +2398,44 @@ export function ChatComposer(props) {
2247
2398
  o: undefined
2248
2399
  });
2249
2400
  _$runHydrationEvents();
2250
- return _el$124;
2401
+ return _el$148;
2251
2402
  })()
2252
2403
  }));
2253
- _$effect(() => _$setAttribute(_el$53, "aria-label", chatMessages().emojiSuggestions));
2254
- return _el$52;
2404
+ _$effect(() => _$setAttribute(_el$63, "aria-label", chatMessages().peopleSuggestions));
2405
+ return _el$62;
2255
2406
  }
2256
- }), _el$81, _co$14);
2257
- _$insert(_el$50, _$createComponent(Show, {
2407
+ }), _el$93, _co$17);
2408
+ _$insert(_el$58, _$createComponent(Show, {
2258
2409
  get when() {
2259
2410
  return commandsOpen();
2260
2411
  },
2261
2412
  get children() {
2262
- var _el$54 = _$getNextElement(_tmpl$21),
2263
- _el$78 = _el$54.firstChild,
2264
- [_el$79, _co$13] = _$getNextMarker(_el$78.nextSibling),
2265
- _el$58 = _el$79.nextSibling,
2266
- _el$68 = _el$58.firstChild,
2267
- [_el$69, _co$0] = _$getNextMarker(_el$68.nextSibling),
2268
- _el$70 = _el$69.nextSibling,
2269
- [_el$71, _co$1] = _$getNextMarker(_el$70.nextSibling),
2270
- _el$72 = _el$71.nextSibling,
2271
- [_el$73, _co$10] = _$getNextMarker(_el$72.nextSibling),
2272
- _el$74 = _el$73.nextSibling,
2273
- [_el$75, _co$11] = _$getNextMarker(_el$74.nextSibling),
2274
- _el$76 = _el$75.nextSibling,
2275
- [_el$77, _co$12] = _$getNextMarker(_el$76.nextSibling);
2276
- _el$54.$$mousedown = event => {
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),
2419
+ _el$80 = _el$79.nextSibling,
2420
+ [_el$81, _co$11] = _$getNextMarker(_el$80.nextSibling),
2421
+ _el$82 = _el$81.nextSibling,
2422
+ [_el$83, _co$12] = _$getNextMarker(_el$82.nextSibling),
2423
+ _el$84 = _el$83.nextSibling,
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 => {
2277
2428
  if (addSearch() && event.target !== addSearchRef) event.preventDefault();
2278
2429
  };
2279
- _$insert(_el$54, _$createComponent(Show, {
2430
+ _$insert(_el$64, _$createComponent(Show, {
2280
2431
  get when() {
2281
2432
  return addSearch();
2282
2433
  },
2283
2434
  get children() {
2284
- var _el$55 = _$getNextElement(_tmpl$17),
2285
- _el$56 = _el$55.firstChild,
2286
- _el$57 = _el$56.nextSibling;
2287
- _el$57.$$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 => {
2288
2439
  const next = event.relatedTarget;
2289
2440
  if (next instanceof Node && commandListRef?.parentElement?.contains(next)) return;
2290
2441
  // Focus that leaves another way, such as with Shift+Tab, closes the list and stays where it went.
@@ -2292,27 +2443,27 @@ export function ChatComposer(props) {
2292
2443
  if (addSearch() && document.activeElement !== addSearchRef) endAddSearch(false);
2293
2444
  });
2294
2445
  };
2295
- _el$57.addEventListener("compositionend", () => {
2446
+ _el$67.addEventListener("compositionend", () => {
2296
2447
  addComposing = false;
2297
2448
  });
2298
- _el$57.addEventListener("compositionstart", () => {
2449
+ _el$67.addEventListener("compositionstart", () => {
2299
2450
  addComposing = true;
2300
2451
  });
2301
- _el$57.$$keydown = onAddSearchKeyDown;
2302
- _el$57.$$input = event => setAddQuery(event.currentTarget.value);
2303
- var _ref$9 = addSearchRef;
2304
- typeof _ref$9 === "function" ? _$use(_ref$9, _el$57) : addSearchRef = _el$57;
2305
- _$setAttribute(_el$57, "aria-controls", commandListId);
2306
- _$setAttribute(_el$57, "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);
2307
2458
  _$effect(_p$ => {
2308
2459
  var _v$24 = chatMessages().commandSearch,
2309
2460
  _v$25 = chatMessages().commandSearchLabel,
2310
2461
  _v$26 = selectedCommand() ? commandOptionId(selectedCommand()) : undefined,
2311
2462
  _v$27 = openingRow() !== undefined;
2312
- _v$24 !== _p$.e && _$setAttribute(_el$57, "placeholder", _p$.e = _v$24);
2313
- _v$25 !== _p$.t && _$setAttribute(_el$57, "aria-label", _p$.t = _v$25);
2314
- _v$26 !== _p$.a && _$setAttribute(_el$57, "aria-activedescendant", _p$.a = _v$26);
2315
- _v$27 !== _p$.o && _$setProperty(_el$57, "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);
2316
2467
  return _p$;
2317
2468
  }, {
2318
2469
  e: undefined,
@@ -2320,15 +2471,15 @@ export function ChatComposer(props) {
2320
2471
  a: undefined,
2321
2472
  o: undefined
2322
2473
  });
2323
- _$effect(() => _$setProperty(_el$57, "value", addQuery()));
2474
+ _$effect(() => _$setProperty(_el$67, "value", addQuery()));
2324
2475
  _$runHydrationEvents();
2325
- return _el$55;
2476
+ return _el$65;
2326
2477
  }
2327
- }), _el$79, _co$13);
2328
- var _ref$0 = commandListRef;
2329
- typeof _ref$0 === "function" ? _$use(_ref$0, _el$58) : commandListRef = _el$58;
2330
- _$setAttribute(_el$58, "id", commandListId);
2331
- _$insert(_el$58, _$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, {
2332
2483
  get each() {
2333
2484
  return commandModel().groups.map(commandGroupKey);
2334
2485
  },
@@ -2347,108 +2498,108 @@ export function ChatComposer(props) {
2347
2498
  });
2348
2499
  },
2349
2500
  get children() {
2350
- var _el$134 = _$getNextElement(_tmpl$31),
2351
- _el$135 = _el$134.firstChild,
2352
- _el$136 = _el$135.firstChild,
2353
- _el$138 = _el$136.nextSibling,
2354
- [_el$139, _co$33] = _$getNextMarker(_el$138.nextSibling),
2355
- _el$140 = _el$135.nextSibling,
2356
- [_el$141, _co$34] = _$getNextMarker(_el$140.nextSibling),
2357
- _el$142 = _el$141.nextSibling,
2358
- [_el$143, _co$35] = _$getNextMarker(_el$142.nextSibling);
2359
- _$insert(_el$136, () => group()?.scopeTitle ?? group()?.section?.label);
2360
- _$insert(_el$135, _$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, {
2361
2512
  get when() {
2362
2513
  return group()?.loading;
2363
2514
  },
2364
2515
  get children() {
2365
- return _$getNextElement(_tmpl$30);
2516
+ return _$getNextElement(_tmpl$33);
2366
2517
  }
2367
- }), _el$139, _co$33);
2368
- _$insert(_el$134, _$createComponent(For, {
2518
+ }), _el$159, _co$38);
2519
+ _$insert(_el$154, _$createComponent(For, {
2369
2520
  get each() {
2370
2521
  return rows();
2371
2522
  },
2372
2523
  children: renderCommandRow
2373
- }), _el$141, _co$34);
2374
- _$insert(_el$134, _$createComponent(Index, {
2524
+ }), _el$161, _co$39);
2525
+ _$insert(_el$154, _$createComponent(Index, {
2375
2526
  get each() {
2376
2527
  return Array.from({
2377
2528
  length: Math.max(group()?.placeholder ? 1 : 0, group()?.pendingRows ?? 0)
2378
2529
  });
2379
2530
  },
2380
- children: () => _$getNextElement(_tmpl$32)
2381
- }), _el$143, _co$35);
2531
+ children: () => _$getNextElement(_tmpl$35)
2532
+ }), _el$163, _co$40);
2382
2533
  _$effect(_p$ => {
2383
- var _v$42 = headingId(),
2384
- _v$43 = headingId();
2385
- _v$42 !== _p$.e && _$setAttribute(_el$134, "aria-labelledby", _p$.e = _v$42);
2386
- _v$43 !== _p$.t && _$setAttribute(_el$135, "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);
2387
2538
  return _p$;
2388
2539
  }, {
2389
2540
  e: undefined,
2390
2541
  t: undefined
2391
2542
  });
2392
- return _el$134;
2543
+ return _el$154;
2393
2544
  }
2394
2545
  });
2395
2546
  }
2396
- }), _el$69, _co$0);
2397
- _$insert(_el$58, _$createComponent(Show, {
2547
+ }), _el$79, _co$10);
2548
+ _$insert(_el$68, _$createComponent(Show, {
2398
2549
  get when() {
2399
2550
  return _$memo(() => !!(searching() && foundCommandCount() === 0))() && !commandModel().groups.some(group => group.section || group.scopeTitle);
2400
2551
  },
2401
2552
  get children() {
2402
- var _el$59 = _$getNextElement(_tmpl$18),
2403
- _el$60 = _el$59.firstChild,
2404
- _el$61 = _el$60.nextSibling;
2405
- _$insert(_el$61, () => messages().loading);
2406
- return _el$59;
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;
2407
2558
  }
2408
- }), _el$71, _co$1);
2409
- _$insert(_el$58, _$createComponent(Show, {
2559
+ }), _el$81, _co$11);
2560
+ _$insert(_el$68, _$createComponent(Show, {
2410
2561
  get when() {
2411
2562
  return searchError();
2412
2563
  },
2413
2564
  get children() {
2414
- var _el$62 = _$getNextElement(_tmpl$19),
2415
- _el$63 = _el$62.firstChild,
2416
- _el$64 = _el$63.nextSibling,
2417
- _el$65 = _el$64.nextSibling,
2418
- [_el$66, _co$9] = _$getNextMarker(_el$65.nextSibling);
2419
- _$insert(_el$62, () => messages().error, _el$66, _co$9);
2420
- return _el$62;
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;
2421
2572
  }
2422
- }), _el$73, _co$10);
2423
- _$insert(_el$58, _$createComponent(Show, {
2573
+ }), _el$83, _co$12);
2574
+ _$insert(_el$68, _$createComponent(Show, {
2424
2575
  get when() {
2425
2576
  return _$memo(() => !!(!searching() && !searchError() && foundCommandCount() === 0))() && !commandModel().groups.some(group => group.pendingRows);
2426
2577
  },
2427
2578
  get children() {
2428
- var _el$67 = _$getNextElement(_tmpl$20);
2429
- _$insert(_el$67, (() => {
2579
+ var _el$77 = _$getNextElement(_tmpl$22);
2580
+ _$insert(_el$77, (() => {
2430
2581
  var _c$ = _$memo(() => !!!parsedCommandQuery().query.trim());
2431
2582
  return () => _c$() ? messages().noResults : chatMessages().commandsNothingFound({
2432
2583
  query: parsedCommandQuery().query.trim()
2433
2584
  });
2434
2585
  })());
2435
- return _el$67;
2586
+ return _el$77;
2436
2587
  }
2437
- }), _el$75, _co$11);
2438
- _$insert(_el$58, _$createComponent(Show, {
2588
+ }), _el$85, _co$13);
2589
+ _$insert(_el$68, _$createComponent(Show, {
2439
2590
  get when() {
2440
2591
  return commandModel().fallback?.command;
2441
2592
  },
2442
2593
  keyed: true,
2443
2594
  children: command => renderCommandRow(command)
2444
- }), _el$77, _co$12);
2595
+ }), _el$87, _co$14);
2445
2596
  _$effect(_p$ => {
2446
2597
  var _v$28 = addSearch() ? "" : undefined,
2447
2598
  _v$29 = chatMessages().commands,
2448
2599
  _v$30 = searching() ? "true" : undefined;
2449
- _v$28 !== _p$.e && _$setAttribute(_el$54, "data-search", _p$.e = _v$28);
2450
- _v$29 !== _p$.t && _$setAttribute(_el$58, "aria-label", _p$.t = _v$29);
2451
- _v$30 !== _p$.a && _$setAttribute(_el$58, "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);
2452
2603
  return _p$;
2453
2604
  }, {
2454
2605
  e: undefined,
@@ -2456,245 +2607,289 @@ export function ChatComposer(props) {
2456
2607
  a: undefined
2457
2608
  });
2458
2609
  _$runHydrationEvents();
2459
- return _el$54;
2610
+ return _el$64;
2460
2611
  }
2461
- }), _el$83, _co$15);
2612
+ }), _el$95, _co$18);
2462
2613
  _$effect(_p$ => {
2463
2614
  var _v$31 = hasAccessory() ? undefined : "true",
2464
2615
  _v$32 = suggestionsOpen() ? "hidden" : undefined,
2465
2616
  _v$33 = suggestionsOpen();
2466
- _v$31 !== _p$.e && _$setAttribute(_el$50, "data-overlay", _p$.e = _v$31);
2467
- _v$32 !== _p$.t && _$setStyleProperty(_el$51, "visibility", _p$.t = _v$32);
2468
- _v$33 !== _p$.a && _$setProperty(_el$51, "inert", _p$.a = _v$33);
2617
+ _v$31 !== _p$.e && _$setAttribute(_el$58, "data-overlay", _p$.e = _v$31);
2618
+ _v$32 !== _p$.t && _$setStyleProperty(_el$59, "visibility", _p$.t = _v$32);
2619
+ _v$33 !== _p$.a && _$setProperty(_el$59, "inert", _p$.a = _v$33);
2469
2620
  return _p$;
2470
2621
  }, {
2471
2622
  e: undefined,
2472
2623
  t: undefined,
2473
2624
  a: undefined
2474
2625
  });
2475
- return _el$50;
2626
+ return _el$58;
2476
2627
  }
2477
- }), _el$123, _co$30);
2478
- var _ref$1 = composerRef;
2479
- typeof _ref$1 === "function" ? _$use(_ref$1, _el$84) : composerRef = _el$84;
2480
- _$insert(_el$84, _$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, {
2481
2632
  get when() {
2482
2633
  return showHint();
2483
2634
  },
2484
2635
  get children() {
2485
- var _el$85 = _$getNextElement(_tmpl$23);
2486
- _$insert(_el$85, _$createComponent(Show, {
2636
+ var _el$97 = _$getNextElement(_tmpl$25);
2637
+ _$insert(_el$97, _$createComponent(Show, {
2487
2638
  get when() {
2488
2639
  return dictationStatus();
2489
2640
  },
2490
2641
  get fallback() {
2491
2642
  return (() => {
2492
- var _el$145 = _$getNextElement(_tmpl$33);
2493
- _$insert(_el$145, hint);
2494
- return _el$145;
2643
+ var _el$165 = _$getNextElement(_tmpl$36);
2644
+ _$insert(_el$165, hint);
2645
+ return _el$165;
2495
2646
  })();
2496
2647
  },
2497
2648
  children: status => [(() => {
2498
- var _el$146 = _$getNextElement(_tmpl$34),
2499
- _el$147 = _el$146.firstChild,
2500
- _el$148 = _el$147.nextSibling;
2501
- _$insert(_el$148, () => 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);
2502
2653
  _$effect(_p$ => {
2503
- var _v$44 = dictation() ?? undefined,
2504
- _v$45 = status().icon;
2505
- _v$44 !== _p$.e && _$setAttribute(_el$146, "data-state", _p$.e = _v$44);
2506
- _v$45 !== _p$.t && _$className(_el$147, _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);
2507
2658
  return _p$;
2508
2659
  }, {
2509
2660
  e: undefined,
2510
2661
  t: undefined
2511
2662
  });
2512
- return _el$146;
2663
+ return _el$166;
2513
2664
  })(), _$createComponent(Show, {
2514
2665
  get when() {
2515
2666
  return _$memo(() => dictation() === "refined")() ? props.microphone?.onRestoreOriginal : undefined;
2516
2667
  },
2517
2668
  children: restore => (() => {
2518
- var _el$149 = _$getNextElement(_tmpl$35);
2519
- _el$149.$$click = () => reportChatFailure(restore(), props.onError);
2520
- _el$149.$$mousedown = keepFieldFocus;
2521
- _$insert(_el$149, () => chatMessages().restoreOriginal);
2522
- _$effect(() => _$setProperty(_el$149, "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()));
2523
2674
  _$runHydrationEvents();
2524
- return _el$149;
2675
+ return _el$169;
2525
2676
  })()
2526
2677
  })]
2527
2678
  }));
2528
- return _el$85;
2679
+ return _el$97;
2529
2680
  }
2530
- }), _el$109, _co$24);
2531
- _$insert(_el$84, _$createComponent(Show, {
2681
+ }), _el$121, _co$27);
2682
+ _$insert(_el$96, _$createComponent(Show, {
2683
+ get when() {
2684
+ return props.reply;
2685
+ },
2686
+ children: reply => (() => {
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, {
2692
+ get when() {
2693
+ return reply().onSelect;
2694
+ },
2695
+ get fallback() {
2696
+ return (() => {
2697
+ var _el$174 = _$getNextElement(_tmpl$40);
2698
+ _$insert(_el$174, () => replyQuote(reply()));
2699
+ return _el$174;
2700
+ })();
2701
+ },
2702
+ children: select => (() => {
2703
+ var _el$175 = _$getNextElement(_tmpl$41);
2704
+ _el$175.$$click = () => select()();
2705
+ _$insert(_el$175, () => replyQuote(reply()));
2706
+ _$runHydrationEvents();
2707
+ return _el$175;
2708
+ })()
2709
+ }), _el$173, _co$41);
2710
+ _el$171.$$click = () => reply().onCancel();
2711
+ _el$171.$$mousedown = keepFieldFocus;
2712
+ _$effect(_p$ => {
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);
2717
+ return _p$;
2718
+ }, {
2719
+ e: undefined,
2720
+ t: undefined
2721
+ });
2722
+ _$runHydrationEvents();
2723
+ return _el$170;
2724
+ })()
2725
+ }), _el$123, _co$28);
2726
+ _$insert(_el$96, _$createComponent(Show, {
2532
2727
  get when() {
2533
2728
  return attachments().length > 0;
2534
2729
  },
2535
2730
  get children() {
2536
- var _el$86 = _$getNextElement(_tmpl$24);
2537
- _$insert(_el$86, _$createComponent(For, {
2731
+ var _el$98 = _$getNextElement(_tmpl$26);
2732
+ _$insert(_el$98, _$createComponent(For, {
2538
2733
  get each() {
2539
2734
  return attachments();
2540
2735
  },
2541
2736
  children: attachment => (() => {
2542
- var _el$150 = _$getNextElement(_tmpl$37),
2543
- _el$151 = _el$150.firstChild,
2544
- _el$152 = _el$151.firstChild,
2545
- [_el$153, _co$36] = _$getNextMarker(_el$152.nextSibling),
2546
- _el$154 = _el$153.nextSibling,
2547
- [_el$155, _co$37] = _$getNextMarker(_el$154.nextSibling),
2548
- _el$157 = _el$151.nextSibling,
2549
- [_el$158, _co$38] = _$getNextMarker(_el$157.nextSibling);
2550
- _$insert(_el$151, _$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, {
2551
2746
  get when() {
2552
2747
  return attachment.href;
2553
2748
  },
2554
2749
  get fallback() {
2555
2750
  return (() => {
2556
- var _el$159 = _$getNextElement(_tmpl$39),
2557
- _el$161 = _el$159.firstChild,
2558
- [_el$162, _co$39] = _$getNextMarker(_el$161.nextSibling),
2559
- _el$163 = _el$162.nextSibling,
2560
- [_el$164, _co$40] = _$getNextMarker(_el$163.nextSibling);
2561
- _$insert(_el$159, _$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, {
2562
2757
  get when() {
2563
2758
  return _$memo(() => attachment.kind === "image")() && attachment.previewUrl;
2564
2759
  },
2565
2760
  get fallback() {
2566
2761
  return (() => {
2567
- var _el$165 = _$getNextElement(_tmpl$3);
2568
- _$effect(() => _$className(_el$165, attachmentIcon(attachment)));
2569
- return _el$165;
2762
+ var _el$191 = _$getNextElement(_tmpl$3);
2763
+ _$effect(() => _$className(_el$191, attachmentIcon(attachment)));
2764
+ return _el$191;
2570
2765
  })();
2571
2766
  },
2572
2767
  get children() {
2573
- var _el$160 = _$getNextElement(_tmpl$38);
2768
+ var _el$186 = _$getNextElement(_tmpl$44);
2574
2769
  _$effect(_p$ => {
2575
- var _v$48 = attachment.previewUrl,
2576
- _v$49 = attachment.alt ?? "";
2577
- _v$48 !== _p$.e && _$setAttribute(_el$160, "src", _p$.e = _v$48);
2578
- _v$49 !== _p$.t && _$setAttribute(_el$160, "alt", _p$.t = _v$49);
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);
2579
2774
  return _p$;
2580
2775
  }, {
2581
2776
  e: undefined,
2582
2777
  t: undefined
2583
2778
  });
2584
- return _el$160;
2779
+ return _el$186;
2585
2780
  }
2586
- }), _el$162, _co$39);
2587
- _$insert(_el$159, () => renderAttachmentCopy(attachment), _el$164, _co$40);
2588
- return _el$159;
2781
+ }), _el$188, _co$45);
2782
+ _$insert(_el$185, () => renderAttachmentCopy(attachment), _el$190, _co$46);
2783
+ return _el$185;
2589
2784
  })();
2590
2785
  },
2591
2786
  children: href => (() => {
2592
- var _el$166 = _$getNextElement(_tmpl$40),
2593
- _el$168 = _el$166.firstChild,
2594
- [_el$169, _co$41] = _$getNextMarker(_el$168.nextSibling),
2595
- _el$170 = _el$169.nextSibling,
2596
- [_el$171, _co$42] = _$getNextMarker(_el$170.nextSibling);
2597
- _$insert(_el$166, _$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, {
2598
2793
  get when() {
2599
2794
  return _$memo(() => attachment.kind === "image")() && attachment.previewUrl;
2600
2795
  },
2601
2796
  get fallback() {
2602
2797
  return (() => {
2603
- var _el$172 = _$getNextElement(_tmpl$3);
2604
- _$effect(() => _$className(_el$172, attachmentIcon(attachment)));
2605
- return _el$172;
2798
+ var _el$198 = _$getNextElement(_tmpl$3);
2799
+ _$effect(() => _$className(_el$198, attachmentIcon(attachment)));
2800
+ return _el$198;
2606
2801
  })();
2607
2802
  },
2608
2803
  get children() {
2609
- var _el$167 = _$getNextElement(_tmpl$38);
2804
+ var _el$193 = _$getNextElement(_tmpl$44);
2610
2805
  _$effect(_p$ => {
2611
- var _v$50 = attachment.previewUrl,
2612
- _v$51 = attachment.alt ?? "";
2613
- _v$50 !== _p$.e && _$setAttribute(_el$167, "src", _p$.e = _v$50);
2614
- _v$51 !== _p$.t && _$setAttribute(_el$167, "alt", _p$.t = _v$51);
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);
2615
2810
  return _p$;
2616
2811
  }, {
2617
2812
  e: undefined,
2618
2813
  t: undefined
2619
2814
  });
2620
- return _el$167;
2815
+ return _el$193;
2621
2816
  }
2622
- }), _el$169, _co$41);
2623
- _$insert(_el$166, () => renderAttachmentCopy(attachment), _el$171, _co$42);
2817
+ }), _el$195, _co$47);
2818
+ _$insert(_el$192, () => renderAttachmentCopy(attachment), _el$197, _co$48);
2624
2819
  _$effect(_p$ => {
2625
- var _v$52 = href(),
2626
- _v$53 = chatMessages().openInNewTab({
2820
+ var _v$58 = href(),
2821
+ _v$59 = chatMessages().openInNewTab({
2627
2822
  name: attachment.name
2628
2823
  });
2629
- _v$52 !== _p$.e && _$setAttribute(_el$166, "href", _p$.e = _v$52);
2630
- _v$53 !== _p$.t && _$setAttribute(_el$166, "aria-label", _p$.t = _v$53);
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);
2631
2826
  return _p$;
2632
2827
  }, {
2633
2828
  e: undefined,
2634
2829
  t: undefined
2635
2830
  });
2636
- return _el$166;
2831
+ return _el$192;
2637
2832
  })()
2638
- }), _el$153, _co$36);
2639
- _$insert(_el$151, _$createComponent(Show, {
2833
+ }), _el$179, _co$42);
2834
+ _$insert(_el$177, _$createComponent(Show, {
2640
2835
  get when() {
2641
2836
  return attachment.action;
2642
2837
  },
2643
2838
  children: action => (() => {
2644
- var _el$173 = _$getNextElement(_tmpl$41),
2645
- _el$174 = _el$173.firstChild,
2646
- [_el$175, _co$43] = _$getNextMarker(_el$174.nextSibling),
2647
- _el$176 = _el$175.nextSibling,
2648
- [_el$177, _co$44] = _$getNextMarker(_el$176.nextSibling);
2649
- _el$173.$$click = () => reportChatFailure(() => executeChatAction(action()), props.onError);
2650
- _$insert(_el$173, _$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, {
2651
2846
  get when() {
2652
2847
  return action().icon;
2653
2848
  },
2654
2849
  children: icon => (() => {
2655
- var _el$178 = _$getNextElement(_tmpl$3);
2656
- _$effect(() => _$className(_el$178, icon()));
2657
- return _el$178;
2850
+ var _el$204 = _$getNextElement(_tmpl$3);
2851
+ _$effect(() => _$className(_el$204, icon()));
2852
+ return _el$204;
2658
2853
  })()
2659
- }), _el$175, _co$43);
2660
- _$insert(_el$173, () => action().label, _el$177, _co$44);
2661
- _$effect(() => _$setProperty(_el$173, "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));
2662
2857
  _$runHydrationEvents();
2663
- return _el$173;
2858
+ return _el$199;
2664
2859
  })()
2665
- }), _el$155, _co$37);
2666
- _$insert(_el$150, _$createComponent(Show, {
2860
+ }), _el$181, _co$43);
2861
+ _$insert(_el$176, _$createComponent(Show, {
2667
2862
  get when() {
2668
2863
  return props.onAttachmentsChange;
2669
2864
  },
2670
2865
  get children() {
2671
- var _el$156 = _$getNextElement(_tmpl$36);
2672
- _el$156.$$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));
2673
2868
  _$effect(_p$ => {
2674
- var _v$46 = selectMessages().removeNamed({
2869
+ var _v$52 = selectMessages().removeNamed({
2675
2870
  name: attachment.name
2676
2871
  }),
2677
- _v$47 = blocked();
2678
- _v$46 !== _p$.e && _$setAttribute(_el$156, "aria-label", _p$.e = _v$46);
2679
- _v$47 !== _p$.t && _$setProperty(_el$156, "disabled", _p$.t = _v$47);
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);
2680
2875
  return _p$;
2681
2876
  }, {
2682
2877
  e: undefined,
2683
2878
  t: undefined
2684
2879
  });
2685
2880
  _$runHydrationEvents();
2686
- return _el$156;
2881
+ return _el$182;
2687
2882
  }
2688
- }), _el$158, _co$38);
2689
- _$effect(() => _el$151.classList.toggle("k2b-chat-composer__attachment-content--action", !!Boolean(attachment.action)));
2690
- return _el$150;
2883
+ }), _el$184, _co$44);
2884
+ _$effect(() => _el$177.classList.toggle("k2b-chat-composer__attachment-content--action", !!Boolean(attachment.action)));
2885
+ return _el$176;
2691
2886
  })()
2692
2887
  }));
2693
- _$effect(() => _$setAttribute(_el$86, "aria-label", chatMessages().attachments));
2694
- return _el$86;
2888
+ _$effect(() => _$setAttribute(_el$98, "aria-label", chatMessages().attachments));
2889
+ return _el$98;
2695
2890
  }
2696
- }), _el$111, _co$25);
2697
- _$insert(_el$84, _$createComponent(Show, {
2891
+ }), _el$125, _co$29);
2892
+ _$insert(_el$96, _$createComponent(Show, {
2698
2893
  get when() {
2699
2894
  return conversation();
2700
2895
  },
@@ -2704,38 +2899,38 @@ export function ChatComposer(props) {
2704
2899
  return props.error;
2705
2900
  },
2706
2901
  get children() {
2707
- var _el$179 = _$getNextElement(_tmpl$25),
2708
- _el$180 = _el$179.firstChild,
2709
- _el$181 = _el$180.nextSibling,
2710
- [_el$182, _co$45] = _$getNextMarker(_el$181.nextSibling);
2711
- _$insert(_el$179, () => props.error, _el$182, _co$45);
2712
- return _el$179;
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;
2713
2908
  }
2714
2909
  }), _$memo(formatRow), (() => {
2715
- var _el$183 = _$getNextElement(_tmpl$42);
2716
- _$insert(_el$183, _$createComponent(Show, {
2910
+ var _el$209 = _$getNextElement(_tmpl$48);
2911
+ _$insert(_el$209, _$createComponent(Show, {
2717
2912
  get when() {
2718
2913
  return footer();
2719
2914
  },
2720
2915
  get fallback() {
2721
2916
  return [(() => {
2722
- var _el$184 = _$getNextElement(_tmpl$43),
2723
- _el$185 = _el$184.firstChild,
2724
- [_el$186, _co$46] = _$getNextMarker(_el$185.nextSibling),
2725
- _el$187 = _el$186.nextSibling,
2726
- [_el$188, _co$47] = _$getNextMarker(_el$187.nextSibling),
2727
- _el$189 = _el$188.nextSibling,
2728
- [_el$190, _co$48] = _$getNextMarker(_el$189.nextSibling),
2729
- _el$191 = _el$190.nextSibling,
2730
- [_el$192, _co$49] = _$getNextMarker(_el$191.nextSibling),
2731
- _el$193 = _el$192.nextSibling,
2732
- [_el$194, _co$50] = _$getNextMarker(_el$193.nextSibling),
2733
- _el$195 = _el$194.nextSibling,
2734
- [_el$196, _co$51] = _$getNextMarker(_el$195.nextSibling),
2735
- _el$197 = _el$196.nextSibling,
2736
- [_el$198, _co$52] = _$getNextMarker(_el$197.nextSibling);
2737
- _$insert(_el$184, () => props.footerTools, _el$186, _co$46);
2738
- _$insert(_el$184, _$createComponent(Show, {
2917
+ var _el$210 = _$getNextElement(_tmpl$49),
2918
+ _el$211 = _el$210.firstChild,
2919
+ [_el$212, _co$52] = _$getNextMarker(_el$211.nextSibling),
2920
+ _el$213 = _el$212.nextSibling,
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, {
2739
2934
  get when() {
2740
2935
  return addOpensCommands();
2741
2936
  },
@@ -2752,11 +2947,11 @@ export function ChatComposer(props) {
2752
2947
  get children() {
2753
2948
  return addSearchButton();
2754
2949
  }
2755
- }), _el$188, _co$47);
2756
- _$insert(_el$184, fileInput, _el$190, _co$48);
2757
- _$insert(_el$184, formatToggle, _el$192, _co$49);
2758
- _$insert(_el$184, emojiButton, _el$194, _co$50);
2759
- _$insert(_el$184, _$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, {
2760
2955
  get when() {
2761
2956
  return (props.models?.length ?? 0) > 0;
2762
2957
  },
@@ -2802,22 +2997,22 @@ export function ChatComposer(props) {
2802
2997
  }
2803
2998
  });
2804
2999
  }
2805
- }), _el$196, _co$51);
2806
- _$insert(_el$184, () => props.modelDetails, _el$198, _co$52);
2807
- return _el$184;
3000
+ }), _el$222, _co$57);
3001
+ _$insert(_el$210, () => props.modelDetails, _el$224, _co$58);
3002
+ return _el$210;
2808
3003
  })(), (() => {
2809
- var _el$199 = _$getNextElement(_tmpl$44),
2810
- _el$200 = _el$199.firstChild,
2811
- [_el$201, _co$53] = _$getNextMarker(_el$200.nextSibling),
2812
- _el$202 = _el$201.nextSibling,
2813
- [_el$203, _co$54] = _$getNextMarker(_el$202.nextSibling),
2814
- _el$204 = _el$203.nextSibling,
2815
- [_el$205, _co$55] = _$getNextMarker(_el$204.nextSibling),
2816
- _el$206 = _el$205.nextSibling,
2817
- [_el$207, _co$56] = _$getNextMarker(_el$206.nextSibling),
2818
- _el$208 = _el$207.nextSibling,
2819
- [_el$209, _co$57] = _$getNextMarker(_el$208.nextSibling);
2820
- _$insert(_el$199, _$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, {
2821
3016
  get each() {
2822
3017
  return props.contextActions;
2823
3018
  },
@@ -2841,13 +3036,13 @@ export function ChatComposer(props) {
2841
3036
  },
2842
3037
  onClick: () => reportChatFailure(() => executeChatAction(action), props.onError),
2843
3038
  get children() {
2844
- var _el$210 = _$getNextElement(_tmpl$3);
2845
- _$effect(() => _$className(_el$210, action.icon ?? "ti ti-dots"));
2846
- return _el$210;
3039
+ var _el$236 = _$getNextElement(_tmpl$3);
3040
+ _$effect(() => _$className(_el$236, action.icon ?? "ti ti-dots"));
3041
+ return _el$236;
2847
3042
  }
2848
3043
  })
2849
- }), _el$201, _co$53);
2850
- _$insert(_el$199, _$createComponent(Show, {
3044
+ }), _el$227, _co$59);
3045
+ _$insert(_el$225, _$createComponent(Show, {
2851
3046
  get when() {
2852
3047
  return _$memo(() => !!hasContextUsage())() ? props.contextUsage ?? {} : undefined;
2853
3048
  },
@@ -2859,18 +3054,18 @@ export function ChatComposer(props) {
2859
3054
  return props.onError;
2860
3055
  }
2861
3056
  }))
2862
- }), _el$203, _co$54);
2863
- _$insert(_el$199, () => props.submitTools, _el$205, _co$55);
2864
- _$insert(_el$199, microphoneControl, _el$207, _co$56);
2865
- _$insert(_el$199, sendControl, _el$209, _co$57);
2866
- return _el$199;
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;
2867
3062
  })()];
2868
3063
  },
2869
3064
  get children() {
2870
3065
  return footer();
2871
3066
  }
2872
3067
  }));
2873
- return _el$183;
3068
+ return _el$209;
2874
3069
  })()];
2875
3070
  },
2876
3071
  get children() {
@@ -2879,43 +3074,43 @@ export function ChatComposer(props) {
2879
3074
  return props.error;
2880
3075
  },
2881
3076
  get children() {
2882
- var _el$87 = _$getNextElement(_tmpl$25),
2883
- _el$88 = _el$87.firstChild,
2884
- _el$89 = _el$88.nextSibling,
2885
- [_el$90, _co$16] = _$getNextMarker(_el$89.nextSibling);
2886
- _$insert(_el$87, () => props.error, _el$90, _co$16);
2887
- return _el$87;
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;
2888
3083
  }
2889
3084
  }), _$memo(() => formatRow()), (() => {
2890
- var _el$91 = _$getNextElement(_tmpl$26),
2891
- _el$102 = _el$91.firstChild,
2892
- [_el$103, _co$21] = _$getNextMarker(_el$102.nextSibling),
2893
- _el$104 = _el$103.nextSibling,
2894
- [_el$105, _co$22] = _$getNextMarker(_el$104.nextSibling),
2895
- _el$92 = _el$105.nextSibling,
2896
- _el$100 = _el$92.firstChild,
2897
- [_el$101, _co$20] = _$getNextMarker(_el$100.nextSibling),
2898
- _el$93 = _el$101.nextSibling,
2899
- _el$94 = _el$93.firstChild,
2900
- [_el$95, _co$17] = _$getNextMarker(_el$94.nextSibling),
2901
- _el$96 = _el$95.nextSibling,
2902
- [_el$97, _co$18] = _$getNextMarker(_el$96.nextSibling),
2903
- _el$98 = _el$97.nextSibling,
2904
- [_el$99, _co$19] = _$getNextMarker(_el$98.nextSibling),
2905
- _el$106 = _el$92.nextSibling,
2906
- [_el$107, _co$23] = _$getNextMarker(_el$106.nextSibling);
2907
- _$insert(_el$91, attachControl, _el$103, _co$21);
2908
- _$insert(_el$91, fileInput, _el$105, _co$22);
2909
- _$insert(_el$92, field, _el$101, _co$20);
2910
- _$insert(_el$93, formatToggle, _el$95, _co$17);
2911
- _$insert(_el$93, emojiButton, _el$97, _co$18);
2912
- _$insert(_el$93, microphoneControl, _el$99, _co$19);
2913
- _$insert(_el$91, sendControl, _el$107, _co$23);
2914
- return _el$91;
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;
2915
3110
  })()];
2916
3111
  }
2917
- }), _el$113, _co$26);
2918
- _$insert(_el$84, _$createComponent(Show, {
3112
+ }), _el$127, _co$30);
3113
+ _$insert(_el$96, _$createComponent(Show, {
2919
3114
  get when() {
2920
3115
  return props.fileSelection;
2921
3116
  },
@@ -2934,60 +3129,60 @@ export function ChatComposer(props) {
2934
3129
  },
2935
3130
  onDrop: files => void runFiles(files)
2936
3131
  })
2937
- }), _el$115, _co$27);
2938
- _$insert(_el$116, _$createComponent(Show, {
3132
+ }), _el$129, _co$31);
3133
+ _$insert(_el$130, _$createComponent(Show, {
2939
3134
  get when() {
2940
3135
  return suggestionAnnouncement();
2941
3136
  },
2942
3137
  keyed: true,
2943
3138
  children: announced => (() => {
2944
- var _el$211 = _$getNextElement(_tmpl$10);
2945
- _$insert(_el$211, () => announced.text);
2946
- return _el$211;
3139
+ var _el$237 = _$getNextElement(_tmpl$10);
3140
+ _$insert(_el$237, () => announced.text);
3141
+ return _el$237;
2947
3142
  })()
2948
3143
  }));
2949
- _$insert(_el$117, _$createComponent(Show, {
3144
+ _$insert(_el$131, _$createComponent(Show, {
2950
3145
  get when() {
2951
3146
  return _$memo(() => !!!suggestionsOpen())() && commandStatus();
2952
3147
  },
2953
3148
  children: status => (() => {
2954
- var _el$212 = _$getNextElement(_tmpl$45),
2955
- _el$213 = _el$212.firstChild,
2956
- _el$214 = _el$213.nextSibling;
2957
- _$insert(_el$214, () => 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);
2958
3153
  _$effect(_p$ => {
2959
- var _v$54 = status().tone,
2960
- _v$55 = status().tone === "busy" ? "ti ti-loader-2 k2b-spin" : status().tone === "done" ? "ti ti-check" : "ti ti-alert-circle";
2961
- _v$54 !== _p$.e && _$setAttribute(_el$212, "data-tone", _p$.e = _v$54);
2962
- _v$55 !== _p$.t && _$className(_el$213, _p$.t = _v$55);
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);
2963
3158
  return _p$;
2964
3159
  }, {
2965
3160
  e: undefined,
2966
3161
  t: undefined
2967
3162
  });
2968
- return _el$212;
3163
+ return _el$238;
2969
3164
  })()
2970
- }), _el$119, _co$28);
2971
- _$insert(_el$117, _$createComponent(Show, {
3165
+ }), _el$133, _co$32);
3166
+ _$insert(_el$131, _$createComponent(Show, {
2972
3167
  get when() {
2973
3168
  return _$memo(() => !!suggestionsOpen())() && announcement();
2974
3169
  },
2975
3170
  keyed: true,
2976
3171
  children: announced => (() => {
2977
- var _el$215 = _$getNextElement(_tmpl$46);
2978
- _$insert(_el$215, () => announced.text);
2979
- return _el$215;
3172
+ var _el$241 = _$getNextElement(_tmpl$52);
3173
+ _$insert(_el$241, () => announced.text);
3174
+ return _el$241;
2980
3175
  })()
2981
- }), _el$121, _co$29);
3176
+ }), _el$135, _co$33);
2982
3177
  _$effect(_p$ => {
2983
3178
  var _v$34 = `k2b-chat-composer ${props.class ?? ""}`,
2984
3179
  _v$35 = running() ? "true" : undefined,
2985
3180
  _v$36 = conversation() ? "conversation" : undefined,
2986
3181
  _v$37 = props.label ?? chatMessages().messageComposer;
2987
- _v$34 !== _p$.e && _$className(_el$84, _p$.e = _v$34);
2988
- _v$35 !== _p$.t && _$setAttribute(_el$84, "data-running", _p$.t = _v$35);
2989
- _v$36 !== _p$.a && _$setAttribute(_el$84, "data-variant", _p$.a = _v$36);
2990
- _v$37 !== _p$.o && _$setAttribute(_el$84, "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);
2991
3186
  return _p$;
2992
3187
  }, {
2993
3188
  e: undefined,
@@ -2995,7 +3190,7 @@ export function ChatComposer(props) {
2995
3190
  a: undefined,
2996
3191
  o: undefined
2997
3192
  });
2998
- return _el$49;
3193
+ return _el$57;
2999
3194
  })();
3000
3195
  }
3001
3196
  _$delegateEvents(["input", "click", "keyup", "beforeinput", "keydown", "mousedown", "focusout"]);