@k2b/ui 0.46.0 → 0.48.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 (103) hide show
  1. package/dist/browser/chat/ChatComposer.js +244 -193
  2. package/dist/browser/chat/ChatComposer.js.map +1 -1
  3. package/dist/browser/chat/ChatDecision.js +10 -6
  4. package/dist/browser/chat/ChatDecision.js.map +1 -1
  5. package/dist/browser/chat/chat-messages.js +6 -0
  6. package/dist/browser/chat/chat-messages.js.map +1 -1
  7. package/dist/browser/chat/types.js.map +1 -1
  8. package/dist/browser/content/Calendar.js +40 -5
  9. package/dist/browser/content/Calendar.js.map +1 -1
  10. package/dist/browser/content/VirtualFeed.js +26 -21
  11. package/dist/browser/content/VirtualFeed.js.map +1 -1
  12. package/dist/browser/content/calendar-event-detail.js +328 -0
  13. package/dist/browser/content/calendar-event-detail.js.map +1 -0
  14. package/dist/browser/content/calendar-messages.js +34 -2
  15. package/dist/browser/content/calendar-messages.js.map +1 -1
  16. package/dist/browser/content/calendar-shared.js +189 -82
  17. package/dist/browser/content/calendar-shared.js.map +1 -1
  18. package/dist/browser/content/calendar-time-view.js +101 -96
  19. package/dist/browser/content/calendar-time-view.js.map +1 -1
  20. package/dist/browser/content/index.js.map +1 -1
  21. package/dist/browser/inputs/Combobox.js +14 -6
  22. package/dist/browser/inputs/Combobox.js.map +1 -1
  23. package/dist/browser/inputs/dictation/Dictation.js +114 -108
  24. package/dist/browser/inputs/dictation/Dictation.js.map +1 -1
  25. package/dist/browser/inputs/dictation/dictation-messages.js +2 -0
  26. package/dist/browser/inputs/dictation/dictation-messages.js.map +1 -1
  27. package/dist/browser/layout/AnchoredPopover.js +2 -1
  28. package/dist/browser/layout/AnchoredPopover.js.map +1 -1
  29. package/dist/browser/layout/AppWorkspace.js +340 -440
  30. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  31. package/dist/browser/layout/AppWorkspaceSidebarItemStatus.js +113 -0
  32. package/dist/browser/layout/AppWorkspaceSidebarItemStatus.js.map +1 -0
  33. package/dist/browser/layout/DetailPanel.js +1 -1
  34. package/dist/browser/layout/DetailPanel.js.map +1 -1
  35. package/dist/browser/layout/DetailSections.js +236 -132
  36. package/dist/browser/layout/DetailSections.js.map +1 -1
  37. package/dist/browser/layout/MobileShell.js +30 -13
  38. package/dist/browser/layout/MobileShell.js.map +1 -1
  39. package/dist/browser/layout/detail-sections-messages.js +4 -0
  40. package/dist/browser/layout/detail-sections-messages.js.map +1 -1
  41. package/dist/browser/layout/index.js +1 -0
  42. package/dist/browser/layout/index.js.map +1 -1
  43. package/dist/ssr/chat/ChatComposer.js +53 -30
  44. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  45. package/dist/ssr/chat/ChatDecision.js +10 -6
  46. package/dist/ssr/chat/ChatDecision.js.map +1 -1
  47. package/dist/ssr/chat/chat-messages.js +6 -0
  48. package/dist/ssr/chat/chat-messages.js.map +1 -1
  49. package/dist/ssr/chat/types.js.map +1 -1
  50. package/dist/ssr/content/Calendar.js +36 -4
  51. package/dist/ssr/content/Calendar.js.map +1 -1
  52. package/dist/ssr/content/VirtualFeed.js +26 -21
  53. package/dist/ssr/content/VirtualFeed.js.map +1 -1
  54. package/dist/ssr/content/calendar-event-detail.js +212 -0
  55. package/dist/ssr/content/calendar-event-detail.js.map +1 -0
  56. package/dist/ssr/content/calendar-messages.js +34 -2
  57. package/dist/ssr/content/calendar-messages.js.map +1 -1
  58. package/dist/ssr/content/calendar-shared.js +117 -36
  59. package/dist/ssr/content/calendar-shared.js.map +1 -1
  60. package/dist/ssr/content/calendar-time-view.js +6 -4
  61. package/dist/ssr/content/calendar-time-view.js.map +1 -1
  62. package/dist/ssr/content/index.js.map +1 -1
  63. package/dist/ssr/inputs/Combobox.js +6 -3
  64. package/dist/ssr/inputs/Combobox.js.map +1 -1
  65. package/dist/ssr/inputs/dictation/Dictation.js +3 -1
  66. package/dist/ssr/inputs/dictation/Dictation.js.map +1 -1
  67. package/dist/ssr/inputs/dictation/dictation-messages.js +2 -0
  68. package/dist/ssr/inputs/dictation/dictation-messages.js.map +1 -1
  69. package/dist/ssr/layout/AnchoredPopover.js +2 -1
  70. package/dist/ssr/layout/AnchoredPopover.js.map +1 -1
  71. package/dist/ssr/layout/AppWorkspace.js +61 -127
  72. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  73. package/dist/ssr/layout/AppWorkspaceSidebarItemStatus.js +76 -0
  74. package/dist/ssr/layout/AppWorkspaceSidebarItemStatus.js.map +1 -0
  75. package/dist/ssr/layout/DetailPanel.js +1 -1
  76. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  77. package/dist/ssr/layout/DetailSections.js +126 -50
  78. package/dist/ssr/layout/DetailSections.js.map +1 -1
  79. package/dist/ssr/layout/MobileShell.js +16 -2
  80. package/dist/ssr/layout/MobileShell.js.map +1 -1
  81. package/dist/ssr/layout/detail-sections-messages.js +4 -0
  82. package/dist/ssr/layout/detail-sections-messages.js.map +1 -1
  83. package/dist/ssr/layout/index.js +1 -0
  84. package/dist/ssr/layout/index.js.map +1 -1
  85. package/dist/styles.css +1 -1
  86. package/dist/types/chat/ChatDecision.d.ts +5 -0
  87. package/dist/types/chat/chat-messages.d.ts +3 -0
  88. package/dist/types/chat/types.d.ts +5 -0
  89. package/dist/types/content/Calendar.d.ts +29 -5
  90. package/dist/types/content/calendar-event-detail.d.ts +21 -0
  91. package/dist/types/content/calendar-messages.d.ts +16 -0
  92. package/dist/types/content/calendar-shared.d.ts +16 -1
  93. package/dist/types/content/calendar-time-view.d.ts +1 -1
  94. package/dist/types/content/index.d.ts +1 -1
  95. package/dist/types/inputs/Combobox.d.ts +2 -0
  96. package/dist/types/inputs/dictation/dictation-messages.d.ts +1 -0
  97. package/dist/types/layout/AppWorkspace.d.ts +2 -28
  98. package/dist/types/layout/AppWorkspaceSidebarItemStatus.d.ts +30 -0
  99. package/dist/types/layout/DetailSections.d.ts +32 -2
  100. package/dist/types/layout/MobileShell.d.ts +12 -0
  101. package/dist/types/layout/detail-sections-messages.d.ts +2 -0
  102. package/dist/types/layout/index.d.ts +1 -0
  103. package/package.json +1 -1
@@ -58,17 +58,18 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span><strong>`),
58
58
  _tmpl$41 = /*#__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>`),
59
59
  _tmpl$42 = /*#__PURE__*/_$template(`<div class=k2b-message-row__quote>`),
60
60
  _tmpl$43 = /*#__PURE__*/_$template(`<button type=button class=k2b-message-row__quote>`),
61
- _tmpl$44 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-remove><i class="ti ti-x"aria-hidden=true>`),
62
- _tmpl$45 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment role=listitem><div class=k2b-chat-composer__attachment-content><!$><!/><!$><!/></div><!$><!/>`),
63
- _tmpl$46 = /*#__PURE__*/_$template(`<img>`),
64
- _tmpl$47 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment-identity><!$><!/><!$><!/>`),
65
- _tmpl$48 = /*#__PURE__*/_$template(`<a class=k2b-chat-composer__attachment-link target=_blank rel="noopener noreferrer"><!$><!/><!$><!/>`),
66
- _tmpl$49 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-action><!$><!/><!$><!/>`),
67
- _tmpl$50 = /*#__PURE__*/_$template(`<footer class=k2b-chat-composer__footer>`),
68
- _tmpl$51 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__tools><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
69
- _tmpl$52 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__submit><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
70
- _tmpl$53 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__status-line><i aria-hidden=true></i><span>`),
71
- _tmpl$54 = /*#__PURE__*/_$template(`<span class=k2b-sr-only>`);
61
+ _tmpl$44 = /*#__PURE__*/_$template(`<span class="k2b-chat-composer__attachment-action k2b-chat-composer__attachment-progress"><!$><!/><!$><!/>`),
62
+ _tmpl$45 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-remove><i class="ti ti-x"aria-hidden=true>`),
63
+ _tmpl$46 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment role=listitem><div class=k2b-chat-composer__attachment-content><!$><!/><!$><!/><!$><!/></div><!$><!/>`),
64
+ _tmpl$47 = /*#__PURE__*/_$template(`<img>`),
65
+ _tmpl$48 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__attachment-identity><!$><!/><!$><!/>`),
66
+ _tmpl$49 = /*#__PURE__*/_$template(`<a class=k2b-chat-composer__attachment-link target=_blank rel="noopener noreferrer"><!$><!/><!$><!/>`),
67
+ _tmpl$50 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-composer__attachment-action><!$><!/><!$><!/>`),
68
+ _tmpl$51 = /*#__PURE__*/_$template(`<footer class=k2b-chat-composer__footer>`),
69
+ _tmpl$52 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__tools><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
70
+ _tmpl$53 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__submit><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>`),
71
+ _tmpl$54 = /*#__PURE__*/_$template(`<div class=k2b-chat-composer__status-line><i aria-hidden=true></i><span>`),
72
+ _tmpl$55 = /*#__PURE__*/_$template(`<span class=k2b-sr-only>`);
72
73
  import { batch, children, createEffect, createMemo, createSignal, createUniqueId, For, Index, on, onCleanup, onMount, Show, untrack } from "solid-js";
73
74
  import { Dropdown } from "../actions/Dropdown";
74
75
  import { dialogHistorySettled, holdDialogHistory } from "../feedback/dialog-core";
@@ -86,6 +87,7 @@ import { SelectChip } from "../inputs/SelectChip";
86
87
  import { useSelectMessages } from "../inputs/select-messages";
87
88
  import { useLocale } from "../intl/locale";
88
89
  import { useUiMessages } from "../intl/messages";
90
+ import { ProgressRing } from "../surfaces/ProgressRing";
89
91
  import { ChatContextUsage as ContextUsage } from "./ChatPrimitives";
90
92
  import { chatCommandKey, conversationEnterAction, executeChatAction, nextChatCommandIndex, reportChatFailure, runChatSubmission } from "./chat-behavior";
91
93
  import { useChatMessages } from "./chat-messages";
@@ -246,7 +248,10 @@ export function ChatComposer(props) {
246
248
  const [microphoneMenuOpen, setMicrophoneMenuOpen] = createSignal(false);
247
249
  const dictation = () => props.microphone?.dictation ?? null;
248
250
  const showHint = () => conversation() || dictation() !== null || hasContent(hint.toArray());
249
- const state = () => props.state ?? "idle";
251
+
252
+ // Handlers such as sending read these outside any owner. A host's conditional prop is a getter that creates a
253
+ // computation on each read, which would never be disposed there; memos read it inside the composer's owner.
254
+ const state = createMemo(() => props.state ?? "idle");
250
255
  const running = () => state() === "running";
251
256
  const stopping = () => state() === "stopping";
252
257
  const runningSubmitIntent = () => props.runningSubmitIntent ?? "steer";
@@ -933,7 +938,7 @@ export function ChatComposer(props) {
933
938
  selectedCommandKey();
934
939
  setAnnouncement(undefined);
935
940
  });
936
- const busy = () => Boolean(props.disabled || stopping() || state() === "submitting" || executing() || addingFiles());
941
+ const busy = createMemo(() => Boolean(props.disabled || stopping() || state() === "submitting" || executing() || addingFiles()));
937
942
  const blocked = () => busy() || submitting();
938
943
  /** The conversation field stays editable while a message is sent, so it keeps the focus and a phone its keyboard. */
939
944
  const editBlocked = () => conversation() ? busy() : blocked();
@@ -947,7 +952,7 @@ export function ChatComposer(props) {
947
952
  }));
948
953
  const hasDraft = () => Boolean(props.value.trim() || !running() && attachments().length > 0);
949
954
  /** The draft may go out now, apart from a submission that is already on its way. */
950
- const submittable = () => !busy() && !props.submitDisabled && hasDraft() && !(props.dictation && liveDictation.active()) && !(running() && runningSubmitIntent() === "steer" && mentions().length);
955
+ const submittable = createMemo(() => !busy() && !props.submitDisabled && hasDraft() && !(props.dictation && liveDictation.active()) && !(running() && runningSubmitIntent() === "steer" && mentions().length));
951
956
  const canSubmit = () => !submitting() && submittable();
952
957
  const canSelectFiles = () => Boolean(props.fileSelection && !props.fileSelection.disabled && !running() && !blocked());
953
958
  const hasAddMenu = () => Boolean(props.fileSelection || props.menuActions?.length);
@@ -2501,14 +2506,14 @@ export function ChatComposer(props) {
2501
2506
  })()
2502
2507
  }), _el$146, _co$36);
2503
2508
  _$effect(_p$ => {
2504
- var _v$40 = `${commandListId}-${index()}`,
2505
- _v$41 = index() === selectedCommandIndex(),
2506
- _v$42 = emojiName(entry, locale()),
2507
- _v$43 = index() === selectedCommandIndex() ? "true" : undefined;
2508
- _v$40 !== _p$.e && _$setAttribute(_el$142, "id", _p$.e = _v$40);
2509
- _v$41 !== _p$.t && _$setAttribute(_el$142, "aria-selected", _p$.t = _v$41);
2510
- _v$42 !== _p$.a && _$setAttribute(_el$142, "aria-label", _p$.a = _v$42);
2511
- _v$43 !== _p$.o && _$setAttribute(_el$142, "data-active", _p$.o = _v$43);
2509
+ var _v$42 = `${commandListId}-${index()}`,
2510
+ _v$43 = index() === selectedCommandIndex(),
2511
+ _v$44 = emojiName(entry, locale()),
2512
+ _v$45 = index() === selectedCommandIndex() ? "true" : undefined;
2513
+ _v$42 !== _p$.e && _$setAttribute(_el$142, "id", _p$.e = _v$42);
2514
+ _v$43 !== _p$.t && _$setAttribute(_el$142, "aria-selected", _p$.t = _v$43);
2515
+ _v$44 !== _p$.a && _$setAttribute(_el$142, "aria-label", _p$.a = _v$44);
2516
+ _v$45 !== _p$.o && _$setAttribute(_el$142, "data-active", _p$.o = _v$45);
2512
2517
  return _p$;
2513
2518
  }, {
2514
2519
  e: undefined,
@@ -2558,14 +2563,14 @@ export function ChatComposer(props) {
2558
2563
  }
2559
2564
  }), _el$157, _co$38);
2560
2565
  _$effect(_p$ => {
2561
- var _v$44 = `${commandListId}-${index()}`,
2562
- _v$45 = index() === selectedCommandIndex(),
2563
- _v$46 = index() === selectedCommandIndex() ? "true" : undefined,
2564
- _v$47 = person.agent ? "ti ti-robot" : "ti ti-user";
2565
- _v$44 !== _p$.e && _$setAttribute(_el$152, "id", _p$.e = _v$44);
2566
- _v$45 !== _p$.t && _$setAttribute(_el$152, "aria-selected", _p$.t = _v$45);
2567
- _v$46 !== _p$.a && _$setAttribute(_el$152, "data-active", _p$.a = _v$46);
2568
- _v$47 !== _p$.o && _$className(_el$153, _p$.o = _v$47);
2566
+ var _v$46 = `${commandListId}-${index()}`,
2567
+ _v$47 = index() === selectedCommandIndex(),
2568
+ _v$48 = index() === selectedCommandIndex() ? "true" : undefined,
2569
+ _v$49 = person.agent ? "ti ti-robot" : "ti ti-user";
2570
+ _v$46 !== _p$.e && _$setAttribute(_el$152, "id", _p$.e = _v$46);
2571
+ _v$47 !== _p$.t && _$setAttribute(_el$152, "aria-selected", _p$.t = _v$47);
2572
+ _v$48 !== _p$.a && _$setAttribute(_el$152, "data-active", _p$.a = _v$48);
2573
+ _v$49 !== _p$.o && _$className(_el$153, _p$.o = _v$49);
2569
2574
  return _p$;
2570
2575
  }, {
2571
2576
  e: undefined,
@@ -2708,10 +2713,10 @@ export function ChatComposer(props) {
2708
2713
  children: () => _$getNextElement(_tmpl$37)
2709
2714
  }), _el$167, _co$41);
2710
2715
  _$effect(_p$ => {
2711
- var _v$48 = headingId(),
2712
- _v$49 = headingId();
2713
- _v$48 !== _p$.e && _$setAttribute(_el$158, "aria-labelledby", _p$.e = _v$48);
2714
- _v$49 !== _p$.t && _$setAttribute(_el$159, "id", _p$.t = _v$49);
2716
+ var _v$50 = headingId(),
2717
+ _v$51 = headingId();
2718
+ _v$50 !== _p$.e && _$setAttribute(_el$158, "aria-labelledby", _p$.e = _v$50);
2719
+ _v$51 !== _p$.t && _$setAttribute(_el$159, "id", _p$.t = _v$51);
2715
2720
  return _p$;
2716
2721
  }, {
2717
2722
  e: undefined,
@@ -2828,10 +2833,10 @@ export function ChatComposer(props) {
2828
2833
  _el$172 = _el$171.nextSibling;
2829
2834
  _$insert(_el$172, () => status().text);
2830
2835
  _$effect(_p$ => {
2831
- var _v$50 = dictation() ?? undefined,
2832
- _v$51 = status().icon;
2833
- _v$50 !== _p$.e && _$setAttribute(_el$170, "data-state", _p$.e = _v$50);
2834
- _v$51 !== _p$.t && _$className(_el$171, _p$.t = _v$51);
2836
+ var _v$52 = dictation() ?? undefined,
2837
+ _v$53 = status().icon;
2838
+ _v$52 !== _p$.e && _$setAttribute(_el$170, "data-state", _p$.e = _v$52);
2839
+ _v$53 !== _p$.t && _$className(_el$171, _p$.t = _v$53);
2835
2840
  return _p$;
2836
2841
  }, {
2837
2842
  e: undefined,
@@ -2887,10 +2892,10 @@ export function ChatComposer(props) {
2887
2892
  _el$175.$$click = () => reply().onCancel();
2888
2893
  _el$175.$$mousedown = keepFieldFocus;
2889
2894
  _$effect(_p$ => {
2890
- var _v$52 = chatMessages().cancelReply,
2891
- _v$53 = chatMessages().cancelReply;
2892
- _v$52 !== _p$.e && _$setAttribute(_el$175, "aria-label", _p$.e = _v$52);
2893
- _v$53 !== _p$.t && _$setAttribute(_el$175, "title", _p$.t = _v$53);
2895
+ var _v$54 = chatMessages().cancelReply,
2896
+ _v$55 = chatMessages().cancelReply;
2897
+ _v$54 !== _p$.e && _$setAttribute(_el$175, "aria-label", _p$.e = _v$54);
2898
+ _v$55 !== _p$.t && _$setAttribute(_el$175, "title", _p$.t = _v$55);
2894
2899
  return _p$;
2895
2900
  }, {
2896
2901
  e: undefined,
@@ -2911,154 +2916,194 @@ export function ChatComposer(props) {
2911
2916
  return attachments();
2912
2917
  },
2913
2918
  children: attachment => (() => {
2914
- var _el$180 = _$getNextElement(_tmpl$45),
2919
+ var _el$180 = _$getNextElement(_tmpl$46),
2915
2920
  _el$181 = _el$180.firstChild,
2916
- _el$182 = _el$181.firstChild,
2917
- [_el$183, _co$43] = _$getNextMarker(_el$182.nextSibling),
2918
- _el$184 = _el$183.nextSibling,
2919
- [_el$185, _co$44] = _$getNextMarker(_el$184.nextSibling),
2920
- _el$187 = _el$181.nextSibling,
2921
- [_el$188, _co$45] = _$getNextMarker(_el$187.nextSibling);
2921
+ _el$187 = _el$181.firstChild,
2922
+ [_el$188, _co$45] = _$getNextMarker(_el$187.nextSibling),
2923
+ _el$189 = _el$188.nextSibling,
2924
+ [_el$190, _co$46] = _$getNextMarker(_el$189.nextSibling),
2925
+ _el$191 = _el$190.nextSibling,
2926
+ [_el$192, _co$47] = _$getNextMarker(_el$191.nextSibling),
2927
+ _el$194 = _el$181.nextSibling,
2928
+ [_el$195, _co$48] = _$getNextMarker(_el$194.nextSibling);
2922
2929
  _$insert(_el$181, _$createComponent(Show, {
2923
2930
  get when() {
2924
2931
  return attachment.href;
2925
2932
  },
2926
2933
  get fallback() {
2927
2934
  return (() => {
2928
- var _el$189 = _$getNextElement(_tmpl$47),
2929
- _el$191 = _el$189.firstChild,
2930
- [_el$192, _co$46] = _$getNextMarker(_el$191.nextSibling),
2931
- _el$193 = _el$192.nextSibling,
2932
- [_el$194, _co$47] = _$getNextMarker(_el$193.nextSibling);
2933
- _$insert(_el$189, _$createComponent(Show, {
2935
+ var _el$196 = _$getNextElement(_tmpl$48),
2936
+ _el$198 = _el$196.firstChild,
2937
+ [_el$199, _co$49] = _$getNextMarker(_el$198.nextSibling),
2938
+ _el$200 = _el$199.nextSibling,
2939
+ [_el$201, _co$50] = _$getNextMarker(_el$200.nextSibling);
2940
+ _$insert(_el$196, _$createComponent(Show, {
2934
2941
  get when() {
2935
2942
  return _$memo(() => attachment.kind === "image")() && attachment.previewUrl;
2936
2943
  },
2937
2944
  get fallback() {
2938
2945
  return (() => {
2939
- var _el$195 = _$getNextElement(_tmpl$3);
2940
- _$effect(() => _$className(_el$195, attachmentIcon(attachment)));
2941
- return _el$195;
2946
+ var _el$202 = _$getNextElement(_tmpl$3);
2947
+ _$effect(() => _$className(_el$202, attachmentIcon(attachment)));
2948
+ return _el$202;
2942
2949
  })();
2943
2950
  },
2944
2951
  get children() {
2945
- var _el$190 = _$getNextElement(_tmpl$46);
2952
+ var _el$197 = _$getNextElement(_tmpl$47);
2946
2953
  _$effect(_p$ => {
2947
- var _v$56 = attachment.previewUrl,
2948
- _v$57 = attachment.alt ?? "";
2949
- _v$56 !== _p$.e && _$setAttribute(_el$190, "src", _p$.e = _v$56);
2950
- _v$57 !== _p$.t && _$setAttribute(_el$190, "alt", _p$.t = _v$57);
2954
+ var _v$58 = attachment.previewUrl,
2955
+ _v$59 = attachment.alt ?? "";
2956
+ _v$58 !== _p$.e && _$setAttribute(_el$197, "src", _p$.e = _v$58);
2957
+ _v$59 !== _p$.t && _$setAttribute(_el$197, "alt", _p$.t = _v$59);
2951
2958
  return _p$;
2952
2959
  }, {
2953
2960
  e: undefined,
2954
2961
  t: undefined
2955
2962
  });
2956
- return _el$190;
2963
+ return _el$197;
2957
2964
  }
2958
- }), _el$192, _co$46);
2959
- _$insert(_el$189, () => renderAttachmentCopy(attachment), _el$194, _co$47);
2960
- return _el$189;
2965
+ }), _el$199, _co$49);
2966
+ _$insert(_el$196, () => renderAttachmentCopy(attachment), _el$201, _co$50);
2967
+ return _el$196;
2961
2968
  })();
2962
2969
  },
2963
2970
  children: href => (() => {
2964
- var _el$196 = _$getNextElement(_tmpl$48),
2965
- _el$198 = _el$196.firstChild,
2966
- [_el$199, _co$48] = _$getNextMarker(_el$198.nextSibling),
2967
- _el$200 = _el$199.nextSibling,
2968
- [_el$201, _co$49] = _$getNextMarker(_el$200.nextSibling);
2969
- _$insert(_el$196, _$createComponent(Show, {
2971
+ var _el$203 = _$getNextElement(_tmpl$49),
2972
+ _el$205 = _el$203.firstChild,
2973
+ [_el$206, _co$51] = _$getNextMarker(_el$205.nextSibling),
2974
+ _el$207 = _el$206.nextSibling,
2975
+ [_el$208, _co$52] = _$getNextMarker(_el$207.nextSibling);
2976
+ _$insert(_el$203, _$createComponent(Show, {
2970
2977
  get when() {
2971
2978
  return _$memo(() => attachment.kind === "image")() && attachment.previewUrl;
2972
2979
  },
2973
2980
  get fallback() {
2974
2981
  return (() => {
2975
- var _el$202 = _$getNextElement(_tmpl$3);
2976
- _$effect(() => _$className(_el$202, attachmentIcon(attachment)));
2977
- return _el$202;
2982
+ var _el$209 = _$getNextElement(_tmpl$3);
2983
+ _$effect(() => _$className(_el$209, attachmentIcon(attachment)));
2984
+ return _el$209;
2978
2985
  })();
2979
2986
  },
2980
2987
  get children() {
2981
- var _el$197 = _$getNextElement(_tmpl$46);
2988
+ var _el$204 = _$getNextElement(_tmpl$47);
2982
2989
  _$effect(_p$ => {
2983
- var _v$58 = attachment.previewUrl,
2984
- _v$59 = attachment.alt ?? "";
2985
- _v$58 !== _p$.e && _$setAttribute(_el$197, "src", _p$.e = _v$58);
2986
- _v$59 !== _p$.t && _$setAttribute(_el$197, "alt", _p$.t = _v$59);
2990
+ var _v$60 = attachment.previewUrl,
2991
+ _v$61 = attachment.alt ?? "";
2992
+ _v$60 !== _p$.e && _$setAttribute(_el$204, "src", _p$.e = _v$60);
2993
+ _v$61 !== _p$.t && _$setAttribute(_el$204, "alt", _p$.t = _v$61);
2987
2994
  return _p$;
2988
2995
  }, {
2989
2996
  e: undefined,
2990
2997
  t: undefined
2991
2998
  });
2992
- return _el$197;
2999
+ return _el$204;
2993
3000
  }
2994
- }), _el$199, _co$48);
2995
- _$insert(_el$196, () => renderAttachmentCopy(attachment), _el$201, _co$49);
3001
+ }), _el$206, _co$51);
3002
+ _$insert(_el$203, () => renderAttachmentCopy(attachment), _el$208, _co$52);
2996
3003
  _$effect(_p$ => {
2997
- var _v$60 = href(),
2998
- _v$61 = chatMessages().openInNewTab({
3004
+ var _v$62 = href(),
3005
+ _v$63 = chatMessages().openInNewTab({
2999
3006
  name: attachment.name
3000
3007
  });
3001
- _v$60 !== _p$.e && _$setAttribute(_el$196, "href", _p$.e = _v$60);
3002
- _v$61 !== _p$.t && _$setAttribute(_el$196, "aria-label", _p$.t = _v$61);
3008
+ _v$62 !== _p$.e && _$setAttribute(_el$203, "href", _p$.e = _v$62);
3009
+ _v$63 !== _p$.t && _$setAttribute(_el$203, "aria-label", _p$.t = _v$63);
3003
3010
  return _p$;
3004
3011
  }, {
3005
3012
  e: undefined,
3006
3013
  t: undefined
3007
3014
  });
3008
- return _el$196;
3015
+ return _el$203;
3009
3016
  })()
3010
- }), _el$183, _co$43);
3017
+ }), _el$188, _co$45);
3018
+ _$insert(_el$181, _$createComponent(Show, {
3019
+ get when() {
3020
+ return attachment.progress !== undefined;
3021
+ },
3022
+ get children() {
3023
+ var _el$182 = _$getNextElement(_tmpl$44),
3024
+ _el$183 = _el$182.firstChild,
3025
+ [_el$184, _co$43] = _$getNextMarker(_el$183.nextSibling),
3026
+ _el$185 = _el$184.nextSibling,
3027
+ [_el$186, _co$44] = _$getNextMarker(_el$185.nextSibling);
3028
+ _$insert(_el$182, _$createComponent(ProgressRing, {
3029
+ get value() {
3030
+ return attachment.progress ?? 0;
3031
+ },
3032
+ get label() {
3033
+ return chatMessages().uploading({
3034
+ name: attachment.name
3035
+ });
3036
+ }
3037
+ }), _el$184, _co$43);
3038
+ _$insert(_el$182, () => new Intl.NumberFormat(locale(), {
3039
+ style: "percent"
3040
+ }).format(Math.round(attachment.progress ?? 0) / 100), _el$186, _co$44);
3041
+ return _el$182;
3042
+ }
3043
+ }), _el$190, _co$46);
3011
3044
  _$insert(_el$181, _$createComponent(Show, {
3012
3045
  get when() {
3013
- return attachment.action;
3046
+ return _$memo(() => attachment.progress === undefined)() && attachment.action;
3014
3047
  },
3015
3048
  children: action => (() => {
3016
- var _el$203 = _$getNextElement(_tmpl$49),
3017
- _el$204 = _el$203.firstChild,
3018
- [_el$205, _co$50] = _$getNextMarker(_el$204.nextSibling),
3019
- _el$206 = _el$205.nextSibling,
3020
- [_el$207, _co$51] = _$getNextMarker(_el$206.nextSibling);
3021
- _el$203.$$click = () => reportChatFailure(() => executeChatAction(action()), props.onError);
3022
- _$insert(_el$203, _$createComponent(Show, {
3049
+ var _el$210 = _$getNextElement(_tmpl$50),
3050
+ _el$211 = _el$210.firstChild,
3051
+ [_el$212, _co$53] = _$getNextMarker(_el$211.nextSibling),
3052
+ _el$213 = _el$212.nextSibling,
3053
+ [_el$214, _co$54] = _$getNextMarker(_el$213.nextSibling);
3054
+ _el$210.$$click = () => reportChatFailure(() => executeChatAction(action()), props.onError);
3055
+ _$insert(_el$210, _$createComponent(Show, {
3023
3056
  get when() {
3024
3057
  return action().icon;
3025
3058
  },
3026
3059
  children: icon => (() => {
3027
- var _el$208 = _$getNextElement(_tmpl$3);
3028
- _$effect(() => _$className(_el$208, icon()));
3029
- return _el$208;
3060
+ var _el$215 = _$getNextElement(_tmpl$3);
3061
+ _$effect(() => _$className(_el$215, icon()));
3062
+ return _el$215;
3030
3063
  })()
3031
- }), _el$205, _co$50);
3032
- _$insert(_el$203, () => action().label, _el$207, _co$51);
3033
- _$effect(() => _$setProperty(_el$203, "disabled", blocked() || action().disabled));
3064
+ }), _el$212, _co$53);
3065
+ _$insert(_el$210, () => action().label, _el$214, _co$54);
3066
+ _$effect(_p$ => {
3067
+ var _v$64 = action().variant === "danger" ? "danger" : undefined,
3068
+ _v$65 = action().disabled ? "" : undefined,
3069
+ _v$66 = blocked() || action().disabled;
3070
+ _v$64 !== _p$.e && _$setAttribute(_el$210, "data-tone", _p$.e = _v$64);
3071
+ _v$65 !== _p$.t && _$setAttribute(_el$210, "data-waiting", _p$.t = _v$65);
3072
+ _v$66 !== _p$.a && _$setProperty(_el$210, "disabled", _p$.a = _v$66);
3073
+ return _p$;
3074
+ }, {
3075
+ e: undefined,
3076
+ t: undefined,
3077
+ a: undefined
3078
+ });
3034
3079
  _$runHydrationEvents();
3035
- return _el$203;
3080
+ return _el$210;
3036
3081
  })()
3037
- }), _el$185, _co$44);
3082
+ }), _el$192, _co$47);
3038
3083
  _$insert(_el$180, _$createComponent(Show, {
3039
3084
  get when() {
3040
3085
  return props.onAttachmentsChange;
3041
3086
  },
3042
3087
  get children() {
3043
- var _el$186 = _$getNextElement(_tmpl$44);
3044
- _el$186.$$click = () => setAttachments(attachments().filter(candidate => candidate.id !== attachment.id));
3088
+ var _el$193 = _$getNextElement(_tmpl$45);
3089
+ _el$193.$$click = () => setAttachments(attachments().filter(candidate => candidate.id !== attachment.id));
3045
3090
  _$effect(_p$ => {
3046
- var _v$54 = selectMessages().removeNamed({
3091
+ var _v$56 = selectMessages().removeNamed({
3047
3092
  name: attachment.name
3048
3093
  }),
3049
- _v$55 = blocked();
3050
- _v$54 !== _p$.e && _$setAttribute(_el$186, "aria-label", _p$.e = _v$54);
3051
- _v$55 !== _p$.t && _$setProperty(_el$186, "disabled", _p$.t = _v$55);
3094
+ _v$57 = blocked();
3095
+ _v$56 !== _p$.e && _$setAttribute(_el$193, "aria-label", _p$.e = _v$56);
3096
+ _v$57 !== _p$.t && _$setProperty(_el$193, "disabled", _p$.t = _v$57);
3052
3097
  return _p$;
3053
3098
  }, {
3054
3099
  e: undefined,
3055
3100
  t: undefined
3056
3101
  });
3057
3102
  _$runHydrationEvents();
3058
- return _el$186;
3103
+ return _el$193;
3059
3104
  }
3060
- }), _el$188, _co$45);
3061
- _$effect(() => _el$181.classList.toggle("k2b-chat-composer__attachment-content--action", !!Boolean(attachment.action)));
3105
+ }), _el$195, _co$48);
3106
+ _$effect(() => _el$181.classList.toggle("k2b-chat-composer__attachment-content--action", !!(Boolean(attachment.action) || attachment.progress !== undefined)));
3062
3107
  return _el$180;
3063
3108
  })()
3064
3109
  }));
@@ -3076,38 +3121,38 @@ export function ChatComposer(props) {
3076
3121
  return props.error;
3077
3122
  },
3078
3123
  get children() {
3079
- var _el$209 = _$getNextElement(_tmpl$28),
3080
- _el$210 = _el$209.firstChild,
3081
- _el$211 = _el$210.nextSibling,
3082
- [_el$212, _co$52] = _$getNextMarker(_el$211.nextSibling);
3083
- _$insert(_el$209, () => props.error, _el$212, _co$52);
3084
- return _el$209;
3124
+ var _el$216 = _$getNextElement(_tmpl$28),
3125
+ _el$217 = _el$216.firstChild,
3126
+ _el$218 = _el$217.nextSibling,
3127
+ [_el$219, _co$55] = _$getNextMarker(_el$218.nextSibling);
3128
+ _$insert(_el$216, () => props.error, _el$219, _co$55);
3129
+ return _el$216;
3085
3130
  }
3086
3131
  }), _$memo(formatRow), (() => {
3087
- var _el$213 = _$getNextElement(_tmpl$50);
3088
- _$insert(_el$213, _$createComponent(Show, {
3132
+ var _el$220 = _$getNextElement(_tmpl$51);
3133
+ _$insert(_el$220, _$createComponent(Show, {
3089
3134
  get when() {
3090
3135
  return dictating() || footer();
3091
3136
  },
3092
3137
  get fallback() {
3093
3138
  return [(() => {
3094
- var _el$214 = _$getNextElement(_tmpl$51),
3095
- _el$215 = _el$214.firstChild,
3096
- [_el$216, _co$53] = _$getNextMarker(_el$215.nextSibling),
3097
- _el$217 = _el$216.nextSibling,
3098
- [_el$218, _co$54] = _$getNextMarker(_el$217.nextSibling),
3099
- _el$219 = _el$218.nextSibling,
3100
- [_el$220, _co$55] = _$getNextMarker(_el$219.nextSibling),
3101
- _el$221 = _el$220.nextSibling,
3102
- [_el$222, _co$56] = _$getNextMarker(_el$221.nextSibling),
3103
- _el$223 = _el$222.nextSibling,
3104
- [_el$224, _co$57] = _$getNextMarker(_el$223.nextSibling),
3105
- _el$225 = _el$224.nextSibling,
3106
- [_el$226, _co$58] = _$getNextMarker(_el$225.nextSibling),
3107
- _el$227 = _el$226.nextSibling,
3108
- [_el$228, _co$59] = _$getNextMarker(_el$227.nextSibling);
3109
- _$insert(_el$214, () => props.footerTools, _el$216, _co$53);
3110
- _$insert(_el$214, _$createComponent(Show, {
3139
+ var _el$221 = _$getNextElement(_tmpl$52),
3140
+ _el$222 = _el$221.firstChild,
3141
+ [_el$223, _co$56] = _$getNextMarker(_el$222.nextSibling),
3142
+ _el$224 = _el$223.nextSibling,
3143
+ [_el$225, _co$57] = _$getNextMarker(_el$224.nextSibling),
3144
+ _el$226 = _el$225.nextSibling,
3145
+ [_el$227, _co$58] = _$getNextMarker(_el$226.nextSibling),
3146
+ _el$228 = _el$227.nextSibling,
3147
+ [_el$229, _co$59] = _$getNextMarker(_el$228.nextSibling),
3148
+ _el$230 = _el$229.nextSibling,
3149
+ [_el$231, _co$60] = _$getNextMarker(_el$230.nextSibling),
3150
+ _el$232 = _el$231.nextSibling,
3151
+ [_el$233, _co$61] = _$getNextMarker(_el$232.nextSibling),
3152
+ _el$234 = _el$233.nextSibling,
3153
+ [_el$235, _co$62] = _$getNextMarker(_el$234.nextSibling);
3154
+ _$insert(_el$221, () => props.footerTools, _el$223, _co$56);
3155
+ _$insert(_el$221, _$createComponent(Show, {
3111
3156
  get when() {
3112
3157
  return addOpensCommands();
3113
3158
  },
@@ -3124,11 +3169,11 @@ export function ChatComposer(props) {
3124
3169
  get children() {
3125
3170
  return addSearchButton();
3126
3171
  }
3127
- }), _el$218, _co$54);
3128
- _$insert(_el$214, fileInput, _el$220, _co$55);
3129
- _$insert(_el$214, formatToggle, _el$222, _co$56);
3130
- _$insert(_el$214, emojiButton, _el$224, _co$57);
3131
- _$insert(_el$214, _$createComponent(Show, {
3172
+ }), _el$225, _co$57);
3173
+ _$insert(_el$221, fileInput, _el$227, _co$58);
3174
+ _$insert(_el$221, formatToggle, _el$229, _co$59);
3175
+ _$insert(_el$221, emojiButton, _el$231, _co$60);
3176
+ _$insert(_el$221, _$createComponent(Show, {
3132
3177
  get when() {
3133
3178
  return (props.models?.length ?? 0) > 0;
3134
3179
  },
@@ -3174,24 +3219,24 @@ export function ChatComposer(props) {
3174
3219
  }
3175
3220
  });
3176
3221
  }
3177
- }), _el$226, _co$58);
3178
- _$insert(_el$214, () => props.modelDetails, _el$228, _co$59);
3179
- return _el$214;
3222
+ }), _el$233, _co$61);
3223
+ _$insert(_el$221, () => props.modelDetails, _el$235, _co$62);
3224
+ return _el$221;
3180
3225
  })(), (() => {
3181
- var _el$229 = _$getNextElement(_tmpl$52),
3182
- _el$230 = _el$229.firstChild,
3183
- [_el$231, _co$60] = _$getNextMarker(_el$230.nextSibling),
3184
- _el$232 = _el$231.nextSibling,
3185
- [_el$233, _co$61] = _$getNextMarker(_el$232.nextSibling),
3186
- _el$234 = _el$233.nextSibling,
3187
- [_el$235, _co$62] = _$getNextMarker(_el$234.nextSibling),
3188
- _el$236 = _el$235.nextSibling,
3189
- [_el$237, _co$63] = _$getNextMarker(_el$236.nextSibling),
3190
- _el$238 = _el$237.nextSibling,
3191
- [_el$239, _co$64] = _$getNextMarker(_el$238.nextSibling),
3192
- _el$240 = _el$239.nextSibling,
3193
- [_el$241, _co$65] = _$getNextMarker(_el$240.nextSibling);
3194
- _$insert(_el$229, _$createComponent(For, {
3226
+ var _el$236 = _$getNextElement(_tmpl$53),
3227
+ _el$237 = _el$236.firstChild,
3228
+ [_el$238, _co$63] = _$getNextMarker(_el$237.nextSibling),
3229
+ _el$239 = _el$238.nextSibling,
3230
+ [_el$240, _co$64] = _$getNextMarker(_el$239.nextSibling),
3231
+ _el$241 = _el$240.nextSibling,
3232
+ [_el$242, _co$65] = _$getNextMarker(_el$241.nextSibling),
3233
+ _el$243 = _el$242.nextSibling,
3234
+ [_el$244, _co$66] = _$getNextMarker(_el$243.nextSibling),
3235
+ _el$245 = _el$244.nextSibling,
3236
+ [_el$246, _co$67] = _$getNextMarker(_el$245.nextSibling),
3237
+ _el$247 = _el$246.nextSibling,
3238
+ [_el$248, _co$68] = _$getNextMarker(_el$247.nextSibling);
3239
+ _$insert(_el$236, _$createComponent(For, {
3195
3240
  get each() {
3196
3241
  return props.contextActions;
3197
3242
  },
@@ -3215,13 +3260,13 @@ export function ChatComposer(props) {
3215
3260
  },
3216
3261
  onClick: () => reportChatFailure(() => executeChatAction(action), props.onError),
3217
3262
  get children() {
3218
- var _el$242 = _$getNextElement(_tmpl$3);
3219
- _$effect(() => _$className(_el$242, action.icon ?? "ti ti-dots"));
3220
- return _el$242;
3263
+ var _el$249 = _$getNextElement(_tmpl$3);
3264
+ _$effect(() => _$className(_el$249, action.icon ?? "ti ti-dots"));
3265
+ return _el$249;
3221
3266
  }
3222
3267
  })
3223
- }), _el$231, _co$60);
3224
- _$insert(_el$229, _$createComponent(Show, {
3268
+ }), _el$238, _co$63);
3269
+ _$insert(_el$236, _$createComponent(Show, {
3225
3270
  get when() {
3226
3271
  return _$memo(() => !!hasContextUsage())() ? props.contextUsage ?? {} : undefined;
3227
3272
  },
@@ -3233,9 +3278,9 @@ export function ChatComposer(props) {
3233
3278
  return props.onError;
3234
3279
  }
3235
3280
  }))
3236
- }), _el$233, _co$61);
3237
- _$insert(_el$229, () => props.submitTools, _el$235, _co$62);
3238
- _$insert(_el$229, _$createComponent(Show, {
3281
+ }), _el$240, _co$64);
3282
+ _$insert(_el$236, () => props.submitTools, _el$242, _co$65);
3283
+ _$insert(_el$236, _$createComponent(Show, {
3239
3284
  get when() {
3240
3285
  return props.dictation;
3241
3286
  },
@@ -3246,10 +3291,10 @@ export function ChatComposer(props) {
3246
3291
  cardAnchor: () => shellRef
3247
3292
  });
3248
3293
  }
3249
- }), _el$237, _co$63);
3250
- _$insert(_el$229, microphoneControl, _el$239, _co$64);
3251
- _$insert(_el$229, sendControl, _el$241, _co$65);
3252
- return _el$229;
3294
+ }), _el$244, _co$66);
3295
+ _$insert(_el$236, microphoneControl, _el$246, _co$67);
3296
+ _$insert(_el$236, sendControl, _el$248, _co$68);
3297
+ return _el$236;
3253
3298
  })()];
3254
3299
  },
3255
3300
  get children() {
@@ -3268,7 +3313,7 @@ export function ChatComposer(props) {
3268
3313
  });
3269
3314
  }
3270
3315
  }));
3271
- return _el$213;
3316
+ return _el$220;
3272
3317
  })()];
3273
3318
  },
3274
3319
  get children() {
@@ -3367,9 +3412,9 @@ export function ChatComposer(props) {
3367
3412
  },
3368
3413
  keyed: true,
3369
3414
  children: announced => (() => {
3370
- var _el$243 = _$getNextElement(_tmpl$11);
3371
- _$insert(_el$243, () => announced.text);
3372
- return _el$243;
3415
+ var _el$250 = _$getNextElement(_tmpl$11);
3416
+ _$insert(_el$250, () => announced.text);
3417
+ return _el$250;
3373
3418
  })()
3374
3419
  }));
3375
3420
  _$insert(_el$135, _$createComponent(Show, {
@@ -3377,21 +3422,21 @@ export function ChatComposer(props) {
3377
3422
  return _$memo(() => !!!suggestionsOpen())() && commandStatus();
3378
3423
  },
3379
3424
  children: status => (() => {
3380
- var _el$244 = _$getNextElement(_tmpl$53),
3381
- _el$245 = _el$244.firstChild,
3382
- _el$246 = _el$245.nextSibling;
3383
- _$insert(_el$246, () => status().text);
3425
+ var _el$251 = _$getNextElement(_tmpl$54),
3426
+ _el$252 = _el$251.firstChild,
3427
+ _el$253 = _el$252.nextSibling;
3428
+ _$insert(_el$253, () => status().text);
3384
3429
  _$effect(_p$ => {
3385
- var _v$62 = status().tone,
3386
- _v$63 = status().tone === "busy" ? "ti ti-loader-2 k2b-spin" : status().tone === "done" ? "ti ti-check" : "ti ti-alert-circle";
3387
- _v$62 !== _p$.e && _$setAttribute(_el$244, "data-tone", _p$.e = _v$62);
3388
- _v$63 !== _p$.t && _$className(_el$245, _p$.t = _v$63);
3430
+ var _v$67 = status().tone,
3431
+ _v$68 = status().tone === "busy" ? "ti ti-loader-2 k2b-spin" : status().tone === "done" ? "ti ti-check" : "ti ti-alert-circle";
3432
+ _v$67 !== _p$.e && _$setAttribute(_el$251, "data-tone", _p$.e = _v$67);
3433
+ _v$68 !== _p$.t && _$className(_el$252, _p$.t = _v$68);
3389
3434
  return _p$;
3390
3435
  }, {
3391
3436
  e: undefined,
3392
3437
  t: undefined
3393
3438
  });
3394
- return _el$244;
3439
+ return _el$251;
3395
3440
  })()
3396
3441
  }), _el$137, _co$33);
3397
3442
  _$insert(_el$135, _$createComponent(Show, {
@@ -3400,26 +3445,32 @@ export function ChatComposer(props) {
3400
3445
  },
3401
3446
  keyed: true,
3402
3447
  children: announced => (() => {
3403
- var _el$247 = _$getNextElement(_tmpl$54);
3404
- _$insert(_el$247, () => announced.text);
3405
- return _el$247;
3448
+ var _el$254 = _$getNextElement(_tmpl$55);
3449
+ _$insert(_el$254, () => announced.text);
3450
+ return _el$254;
3406
3451
  })()
3407
3452
  }), _el$139, _co$34);
3408
3453
  _$effect(_p$ => {
3409
3454
  var _v$36 = `k2b-chat-composer ${props.class ?? ""}`,
3410
3455
  _v$37 = running() ? "true" : undefined,
3411
3456
  _v$38 = conversation() ? "conversation" : undefined,
3412
- _v$39 = props.label ?? chatMessages().messageComposer;
3457
+ _v$39 = props.error ? "true" : undefined,
3458
+ _v$40 = props.disabled ? "true" : undefined,
3459
+ _v$41 = props.label ?? chatMessages().messageComposer;
3413
3460
  _v$36 !== _p$.e && _$className(_el$97, _p$.e = _v$36);
3414
3461
  _v$37 !== _p$.t && _$setAttribute(_el$97, "data-running", _p$.t = _v$37);
3415
3462
  _v$38 !== _p$.a && _$setAttribute(_el$97, "data-variant", _p$.a = _v$38);
3416
- _v$39 !== _p$.o && _$setAttribute(_el$97, "aria-label", _p$.o = _v$39);
3463
+ _v$39 !== _p$.o && _$setAttribute(_el$97, "data-invalid", _p$.o = _v$39);
3464
+ _v$40 !== _p$.i && _$setAttribute(_el$97, "data-disabled", _p$.i = _v$40);
3465
+ _v$41 !== _p$.n && _$setAttribute(_el$97, "aria-label", _p$.n = _v$41);
3417
3466
  return _p$;
3418
3467
  }, {
3419
3468
  e: undefined,
3420
3469
  t: undefined,
3421
3470
  a: undefined,
3422
- o: undefined
3471
+ o: undefined,
3472
+ i: undefined,
3473
+ n: undefined
3423
3474
  });
3424
3475
  return _el$58;
3425
3476
  })();