@dialpad/dialtone-vue 3.131.0 → 3.132.1

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 (29) hide show
  1. package/dist/component-documentation.json +1 -1
  2. package/dist/lib/hovercard.cjs +9 -1
  3. package/dist/lib/hovercard.cjs.map +1 -1
  4. package/dist/lib/hovercard.js +9 -1
  5. package/dist/lib/hovercard.js.map +1 -1
  6. package/dist/lib/input.cjs +2 -0
  7. package/dist/lib/input.cjs.map +1 -1
  8. package/dist/lib/input.js +2 -0
  9. package/dist/lib/input.js.map +1 -1
  10. package/dist/lib/message-input.cjs +205 -146
  11. package/dist/lib/message-input.cjs.map +1 -1
  12. package/dist/lib/message-input.js +208 -149
  13. package/dist/lib/message-input.js.map +1 -1
  14. package/dist/lib/rich-text-editor.cjs +40 -19
  15. package/dist/lib/rich-text-editor.cjs.map +1 -1
  16. package/dist/lib/rich-text-editor.js +42 -21
  17. package/dist/lib/rich-text-editor.js.map +1 -1
  18. package/dist/style.css +64 -6
  19. package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  20. package/dist/types/components/rich_text_editor/extensions/emoji/emoji.d.ts.map +1 -1
  21. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +38 -5
  22. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  23. package/dist/types/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.d.ts +73 -0
  24. package/dist/types/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.d.ts.map +1 -0
  25. package/dist/types/recipes/conversation_view/message_input/meeting_pill/meeting_pill.d.ts +4 -0
  26. package/dist/types/recipes/conversation_view/message_input/meeting_pill/meeting_pill.d.ts.map +1 -0
  27. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts +18 -6
  28. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  29. package/package.json +2 -2
@@ -1,29 +1,31 @@
1
- import { resolveComponent, resolveDirective, openBlock, createElementBlock, normalizeClass, withKeys, withModifiers, createElementVNode, normalizeStyle, createVNode, mergeProps, renderSlot, createBlock, withCtx, createCommentVNode, withDirectives, toDisplayString, vShow, createSlots } from "vue";
1
+ import { Node, mergeAttributes } from "@tiptap/core";
2
+ import { NodeViewWrapper, nodeViewProps, VueNodeViewRenderer } from "@tiptap/vue-3";
3
+ import { resolveComponent, openBlock, createBlock, withCtx, createVNode, createElementVNode, createTextVNode, toDisplayString, resolveDirective, createElementBlock, normalizeClass, withKeys, withModifiers, normalizeStyle, mergeProps, renderSlot, withDirectives, createCommentVNode, vShow, createSlots } from "vue";
2
4
  import { _export_sfc } from "../chunks/_plugin-vue_export-helper-caHeSgYY.js";
3
- import { DtButton } from "./button.js";
4
- import { DtEmojiPicker as _sfc_main$1 } from "./emoji-picker.js";
5
+ import { DtItemLayout } from "./item-layout.js";
5
6
  import { DtIcon } from "./icon.js";
7
+ import { DtButton } from "./button.js";
8
+ import { DtEmojiPicker as _sfc_main$2 } from "./emoji-picker.js";
6
9
  import { DtInput } from "./input.js";
7
10
  import { DtPopover } from "./popover.js";
8
11
  import { DtRichTextEditor, RICH_TEXT_EDITOR_AUTOFOCUS_TYPES, RICH_TEXT_EDITOR_OUTPUT_FORMATS } from "./rich-text-editor.js";
9
12
  import { DtTooltip } from "./tooltip.js";
10
13
  import "../common/utils.js";
11
14
  import "../common/constants.js";
15
+ import "@dialpad/dialtone-icons/vue3";
16
+ import "../chunks/icon_constants-Dy4MEUJL.js";
17
+ import "@dialpad/dialtone-icons/icons.json";
12
18
  import "../chunks/link_constants-AfTWrr-n.js";
13
19
  import "../chunks/tab-RTDgnD9-.js";
14
20
  import "@dialpad/dialtone-emojis";
15
21
  import "../chunks/input-NmYDD5bn.js";
16
22
  import "../common/validators.js";
17
23
  import "./validation-messages.js";
18
- import "@dialpad/dialtone-icons/vue3";
19
- import "../chunks/icon_constants-Dy4MEUJL.js";
20
- import "@dialpad/dialtone-icons/icons.json";
21
24
  import "../chunks/popover_constants-kQaX7G4a.js";
22
25
  import "tippy.js";
23
26
  import "../chunks/modal-XOr4kiNZ.js";
24
27
  import "../chunks/sr_only_close_button-3EdsV-dH.js";
25
28
  import "./lazy-show.js";
26
- import "@tiptap/vue-3";
27
29
  import "@tiptap/extension-blockquote";
28
30
  import "@tiptap/extension-code-block";
29
31
  import "@tiptap/extension-document";
@@ -40,7 +42,6 @@ import "@tiptap/extension-strike";
40
42
  import "@tiptap/extension-underline";
41
43
  import "@tiptap/extension-text";
42
44
  import "@tiptap/extension-text-align";
43
- import "@tiptap/core";
44
45
  import "./emoji.js";
45
46
  import "../chunks/index-GVD15GIB.js";
46
47
  import "./skeleton.js";
@@ -48,7 +49,6 @@ import "@tiptap/pm/state";
48
49
  import "@tiptap/suggestion";
49
50
  import "./list-item.js";
50
51
  import "../chunks/list_item_constants-u1xcN9Dd.js";
51
- import "./item-layout.js";
52
52
  import "./stack.js";
53
53
  import "../chunks/stack_constants-HraCekPm.js";
54
54
  import "@tiptap/extension-mention";
@@ -57,11 +57,106 @@ import "./avatar.js";
57
57
  import "./presence.js";
58
58
  import "@dialpad/dialtone-icons/vue3/hash";
59
59
  import "@dialpad/dialtone-icons/vue3/lock";
60
+ const _sfc_main$1 = {
61
+ name: "MeetingPill",
62
+ components: {
63
+ NodeViewWrapper,
64
+ DtItemLayout,
65
+ DtIcon,
66
+ DtButton
67
+ },
68
+ props: nodeViewProps,
69
+ emits: ["meeting-pill-close"],
70
+ methods: {
71
+ close(e) {
72
+ this.$parent.$emit("meeting-pill-close", e);
73
+ }
74
+ }
75
+ };
76
+ const _hoisted_1$1 = { class: "dt-message-input-meeting-pill__icon" };
77
+ const _hoisted_2$1 = { class: "dt-message-input-meeting-pill__close" };
78
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
79
+ const _component_dt_icon = resolveComponent("dt-icon");
80
+ const _component_dt_button = resolveComponent("dt-button");
81
+ const _component_dt_item_layout = resolveComponent("dt-item-layout");
82
+ const _component_node_view_wrapper = resolveComponent("node-view-wrapper");
83
+ return openBlock(), createBlock(_component_node_view_wrapper, { class: "dt-message-input-meeting-pill" }, {
84
+ default: withCtx(() => [
85
+ createVNode(_component_dt_item_layout, {
86
+ class: "dt-message-input-meeting-pill__layout",
87
+ unstyled: ""
88
+ }, {
89
+ left: withCtx(() => [
90
+ createElementVNode("div", _hoisted_1$1, [
91
+ createVNode(_component_dt_icon, {
92
+ name: "video",
93
+ size: "400"
94
+ })
95
+ ])
96
+ ]),
97
+ right: withCtx(() => [
98
+ createElementVNode("div", _hoisted_2$1, [
99
+ createVNode(_component_dt_button, {
100
+ circle: "",
101
+ "aria-label": _ctx.node.attrs["close-button-aria-label"],
102
+ size: "xs",
103
+ importance: "clear",
104
+ onClick: $options.close
105
+ }, {
106
+ icon: withCtx(() => [
107
+ createVNode(_component_dt_icon, {
108
+ name: "close",
109
+ size: "300"
110
+ })
111
+ ]),
112
+ _: 1
113
+ }, 8, ["aria-label", "onClick"])
114
+ ])
115
+ ]),
116
+ default: withCtx(() => [
117
+ createTextVNode(" " + toDisplayString(_ctx.node.attrs.text) + " ", 1)
118
+ ]),
119
+ _: 1
120
+ })
121
+ ]),
122
+ _: 1
123
+ });
124
+ }
125
+ const MeetingPill = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
126
+ const meetingPill = Node.create({
127
+ atom: true,
128
+ group: "inline",
129
+ inline: true,
130
+ addNodeView() {
131
+ return VueNodeViewRenderer(MeetingPill);
132
+ },
133
+ addAttributes() {
134
+ return {
135
+ text: {
136
+ default: 'Please pass in "text" attribute'
137
+ },
138
+ "close-button-aria-label": {}
139
+ };
140
+ },
141
+ parseHTML() {
142
+ return [
143
+ {
144
+ tag: "meeting-pill"
145
+ }
146
+ ];
147
+ },
148
+ renderText({ node }) {
149
+ return "/dpm";
150
+ },
151
+ renderHTML({ HTMLAttributes }) {
152
+ return ["meeting-pill", mergeAttributes(HTMLAttributes)];
153
+ }
154
+ });
60
155
  const _sfc_main = {
61
156
  name: "DtRecipeMessageInput",
62
157
  components: {
63
158
  DtButton,
64
- DtEmojiPicker: _sfc_main$1,
159
+ DtEmojiPicker: _sfc_main$2,
65
160
  DtIcon,
66
161
  DtInput,
67
162
  DtPopover,
@@ -94,6 +189,13 @@ const _sfc_main = {
94
189
  required: true,
95
190
  default: ""
96
191
  },
192
+ /**
193
+ * Prevents the user from typing any further. Deleting text will still work.
194
+ */
195
+ preventTyping: {
196
+ type: Boolean,
197
+ default: false
198
+ },
97
199
  /**
98
200
  * Additional class name for the input element. Only accepts a String value
99
201
  * because this is passed to the editor via options. For multiple classes,
@@ -382,23 +484,12 @@ const _sfc_main = {
382
484
  */
383
485
  "selected-command",
384
486
  /**
385
- * Native focus event
386
- * @event input
387
- * @type {String|JSON}
388
- */
389
- "focus",
390
- /**
391
- * Native blur event
392
- * @event input
393
- * @type {String|JSON}
394
- */
395
- "blur",
396
- /**
397
- * Native input event
398
- * @event input
399
- * @type {String|JSON}
487
+ * Fires when meeting pill is closed
488
+ *
489
+ * @event meeting-pill-close
490
+ * @type {String}
400
491
  */
401
- "input",
492
+ "meeting-pill-close",
402
493
  /**
403
494
  * Event to sync the value with the parent
404
495
  * @event update:modelValue
@@ -408,12 +499,12 @@ const _sfc_main = {
408
499
  ],
409
500
  data() {
410
501
  return {
502
+ additionalExtensions: [meetingPill],
411
503
  internalInputValue: this.modelValue,
412
504
  // internal input content
413
505
  hasFocus: false,
414
506
  imagePickerFocus: false,
415
507
  emojiPickerFocus: false,
416
- sendButtonFocus: false,
417
508
  emojiPickerOpened: false
418
509
  };
419
510
  },
@@ -485,9 +576,6 @@ const _sfc_main = {
485
576
  });
486
577
  this.$emit("selected-emoji", emoji);
487
578
  },
488
- onSelectedCommand(command) {
489
- this.$emit("selected-command", command);
490
- },
491
579
  onSelectImage() {
492
580
  this.$refs.messageInputImageUpload.$refs.input.click();
493
581
  },
@@ -510,55 +598,45 @@ const _sfc_main = {
510
598
  var _a;
511
599
  this.hasFocus = true;
512
600
  (_a = this.$refs.richTextEditor) == null ? void 0 : _a.focusEditor();
513
- this.$emit("focus", event);
514
601
  },
515
602
  onBlur(event) {
516
603
  this.hasFocus = false;
517
- this.$emit("blur", event);
518
604
  },
519
605
  onInput(event) {
520
- this.$emit("input", event);
521
606
  this.$emit("update:modelValue", event);
522
607
  }
523
608
  }
524
609
  };
525
- const _hoisted_1 = { class: "d-d-flex d-jc-space-between d-mx8 d-my4" };
526
- const _hoisted_2 = { class: "d-d-flex" };
527
- const _hoisted_3 = { class: "d-d-flex" };
610
+ const _hoisted_1 = { class: "dt-message-input__bottom-section" };
611
+ const _hoisted_2 = { class: "dt-message-input__bottom-section-left" };
612
+ const _hoisted_3 = { class: "dt-message-input__bottom-section-right" };
528
613
  const _hoisted_4 = { key: 0 };
529
614
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
615
+ var _a, _b;
530
616
  const _component_dt_rich_text_editor = resolveComponent("dt-rich-text-editor");
531
617
  const _component_dt_icon = resolveComponent("dt-icon");
532
618
  const _component_dt_button = resolveComponent("dt-button");
533
619
  const _component_dt_input = resolveComponent("dt-input");
534
- const _component_dt_tooltip = resolveComponent("dt-tooltip");
535
620
  const _component_dt_emoji_picker = resolveComponent("dt-emoji-picker");
536
621
  const _component_dt_popover = resolveComponent("dt-popover");
622
+ const _component_dt_tooltip = resolveComponent("dt-tooltip");
537
623
  const _directive_dt_tooltip = resolveDirective("dt-tooltip");
538
624
  return openBlock(), createElementBlock("div", {
539
625
  "data-qa": "dt-message-input",
540
626
  role: "presentation",
541
- class: normalizeClass([
542
- "d-d-flex",
543
- "d-fd-column",
544
- "d-bar8",
545
- "d-baw1",
546
- "d-ba",
547
- "d-c-text",
548
- { "d-bc-bold d-bs-sm": $data.hasFocus, "d-bc-default": !$data.hasFocus }
549
- ]),
550
- onClick: _cache[15] || (_cache[15] = ($event) => {
551
- var _a;
552
- return (_a = _ctx.$refs.richTextEditor) == null ? void 0 : _a.focusEditor();
627
+ class: normalizeClass(["dt-message-input", { "dt-message-input--focused": $data.hasFocus }]),
628
+ onClick: _cache[10] || (_cache[10] = ($event) => {
629
+ var _a2;
630
+ return (_a2 = _ctx.$refs.richTextEditor) == null ? void 0 : _a2.focusEditor();
553
631
  }),
554
- onDragEnter: _cache[16] || (_cache[16] = (...args) => $options.onDrag && $options.onDrag(...args)),
555
- onDragOver: _cache[17] || (_cache[17] = (...args) => $options.onDrag && $options.onDrag(...args)),
556
- onDrop: _cache[18] || (_cache[18] = (...args) => $options.onDrop && $options.onDrop(...args)),
557
- onKeydown: _cache[19] || (_cache[19] = withKeys(withModifiers((...args) => $options.onSend && $options.onSend(...args), ["exact"]), ["enter"])),
558
- onPaste: _cache[20] || (_cache[20] = (...args) => $options.onPaste && $options.onPaste(...args))
632
+ onDragEnter: _cache[11] || (_cache[11] = (...args) => $options.onDrag && $options.onDrag(...args)),
633
+ onDragOver: _cache[12] || (_cache[12] = (...args) => $options.onDrag && $options.onDrag(...args)),
634
+ onDrop: _cache[13] || (_cache[13] = (...args) => $options.onDrop && $options.onDrop(...args)),
635
+ onKeydown: _cache[14] || (_cache[14] = withKeys(withModifiers((...args) => $options.onSend && $options.onSend(...args), ["exact"]), ["enter"])),
636
+ onPaste: _cache[15] || (_cache[15] = (...args) => $options.onPaste && $options.onPaste(...args))
559
637
  }, [
560
638
  createElementVNode("div", {
561
- class: "d-of-auto d-mx16 d-mt8 d-mb4",
639
+ class: "dt-message-input__editor-wrapper",
562
640
  style: normalizeStyle({ "max-height": $props.maxHeight })
563
641
  }, [
564
642
  createVNode(_component_dt_rich_text_editor, mergeProps({
@@ -579,64 +657,58 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
579
657
  "auto-focus": $props.autoFocus,
580
658
  link: $props.link,
581
659
  placeholder: $props.placeholder,
660
+ "prevent-typing": $props.preventTyping,
582
661
  "mention-suggestion": $props.mentionSuggestion,
583
662
  "channel-suggestion": $props.channelSuggestion,
584
- "slash-command-suggestion": $props.slashCommandSuggestion
663
+ "slash-command-suggestion": $props.slashCommandSuggestion,
664
+ "additional-extensions": $data.additionalExtensions
585
665
  }, _ctx.$attrs, {
586
666
  onFocus: $options.onFocus,
587
667
  onBlur: $options.onBlur,
588
- onInput: _cache[1] || (_cache[1] = ($event) => $options.onInput($event)),
589
- onSelectedCommand: $options.onSelectedCommand
590
- }), null, 16, ["modelValue", "allow-blockquote", "allow-bold", "allow-bullet-list", "allow-codeblock", "allow-italic", "allow-strike", "allow-underline", "editable", "input-aria-label", "input-class", "output-format", "auto-focus", "link", "placeholder", "mention-suggestion", "channel-suggestion", "slash-command-suggestion", "onFocus", "onBlur", "onSelectedCommand"])
668
+ onInput: $options.onInput
669
+ }), null, 16, ["modelValue", "allow-blockquote", "allow-bold", "allow-bullet-list", "allow-codeblock", "allow-italic", "allow-strike", "allow-underline", "editable", "input-aria-label", "input-class", "output-format", "auto-focus", "link", "placeholder", "prevent-typing", "mention-suggestion", "channel-suggestion", "slash-command-suggestion", "additional-extensions", "onFocus", "onBlur", "onInput"])
591
670
  ], 4),
592
671
  renderSlot(_ctx.$slots, "middle"),
593
672
  createElementVNode("section", _hoisted_1, [
594
673
  createElementVNode("div", _hoisted_2, [
595
- $props.showImagePicker ? (openBlock(), createBlock(_component_dt_tooltip, {
674
+ $props.showImagePicker ? withDirectives((openBlock(), createBlock(_component_dt_button, {
596
675
  key: 0,
597
- placement: "top-start",
598
- message: $props.showImagePicker.tooltipLabel,
599
- offset: [-4, 12]
676
+ "data-qa": "dt-message-input-image-btn",
677
+ size: "sm",
678
+ circle: "",
679
+ kind: $data.imagePickerFocus ? "default" : "muted",
680
+ importance: "clear",
681
+ "aria-label": $props.showImagePicker.ariaLabel,
682
+ onClick: $options.onSelectImage,
683
+ onMouseenter: _cache[1] || (_cache[1] = ($event) => $data.imagePickerFocus = true),
684
+ onMouseleave: _cache[2] || (_cache[2] = ($event) => $data.imagePickerFocus = false),
685
+ onFocus: _cache[3] || (_cache[3] = ($event) => $data.imagePickerFocus = true),
686
+ onBlur: _cache[4] || (_cache[4] = ($event) => $data.imagePickerFocus = false)
600
687
  }, {
601
- anchor: withCtx(() => [
602
- createVNode(_component_dt_button, {
603
- "data-qa": "dt-message-input-image-btn",
604
- size: "sm",
605
- circle: "",
606
- kind: $data.imagePickerFocus ? "default" : "muted",
607
- importance: "clear",
608
- "aria-label": $props.showImagePicker.ariaLabel,
609
- onClick: $options.onSelectImage,
610
- onMouseenter: _cache[2] || (_cache[2] = ($event) => $data.imagePickerFocus = true),
611
- onMouseleave: _cache[3] || (_cache[3] = ($event) => $data.imagePickerFocus = false),
612
- onFocus: _cache[4] || (_cache[4] = ($event) => $data.imagePickerFocus = true),
613
- onBlur: _cache[5] || (_cache[5] = ($event) => $data.imagePickerFocus = false)
614
- }, {
615
- icon: withCtx(() => [
616
- createVNode(_component_dt_icon, {
617
- name: "image",
618
- size: "300"
619
- })
620
- ]),
621
- _: 1
622
- }, 8, ["kind", "aria-label", "onClick"]),
623
- createVNode(_component_dt_input, {
624
- ref: "messageInputImageUpload",
625
- "data-qa": "dt-message-input-image-input",
626
- accept: "image/*, video/*",
627
- type: "file",
628
- class: "d-ps-absolute",
629
- multiple: "",
630
- hidden: "",
631
- onInput: $options.onImageUpload
632
- }, null, 8, ["onInput"])
688
+ icon: withCtx(() => [
689
+ createVNode(_component_dt_icon, {
690
+ name: "image",
691
+ size: "300"
692
+ })
633
693
  ]),
634
694
  _: 1
635
- }, 8, ["message"])) : createCommentVNode("", true),
695
+ }, 8, ["kind", "aria-label", "onClick"])), [
696
+ [_directive_dt_tooltip, (_a = $props.showImagePicker) == null ? void 0 : _a.tooltipLabel, "top-start"]
697
+ ]) : createCommentVNode("", true),
698
+ createVNode(_component_dt_input, {
699
+ ref: "messageInputImageUpload",
700
+ "data-qa": "dt-message-input-image-input",
701
+ accept: "image/*, video/*",
702
+ type: "file",
703
+ class: "dt-message-input__image-input",
704
+ multiple: "",
705
+ hidden: "",
706
+ onInput: $options.onImageUpload
707
+ }, null, 8, ["onInput"]),
636
708
  $props.showEmojiPicker ? (openBlock(), createBlock(_component_dt_popover, {
637
709
  key: 1,
638
710
  open: $data.emojiPickerOpened,
639
- "onUpdate:open": _cache[10] || (_cache[10] = ($event) => $data.emojiPickerOpened = $event),
711
+ "onUpdate:open": _cache[9] || (_cache[9] = ($event) => $data.emojiPickerOpened = $event),
640
712
  "data-qa": "dt-message-input-emoji-picker-popover",
641
713
  "initial-focus-element": "#searchInput",
642
714
  padding: "none"
@@ -650,10 +722,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
650
722
  importance: "clear",
651
723
  "aria-label": $props.emojiButtonAriaLabel,
652
724
  onClick: $options.toggleEmojiPicker,
653
- onMouseenter: _cache[6] || (_cache[6] = ($event) => $data.emojiPickerFocus = true),
654
- onMouseleave: _cache[7] || (_cache[7] = ($event) => $data.emojiPickerFocus = false),
655
- onFocus: _cache[8] || (_cache[8] = ($event) => $data.emojiPickerFocus = true),
656
- onBlur: _cache[9] || (_cache[9] = ($event) => $data.emojiPickerFocus = false)
725
+ onMouseenter: _cache[5] || (_cache[5] = ($event) => $data.emojiPickerFocus = true),
726
+ onMouseleave: _cache[6] || (_cache[6] = ($event) => $data.emojiPickerFocus = false),
727
+ onFocus: _cache[7] || (_cache[7] = ($event) => $data.emojiPickerFocus = true),
728
+ onBlur: _cache[8] || (_cache[8] = ($event) => $data.emojiPickerFocus = false)
657
729
  }), {
658
730
  icon: withCtx(() => [
659
731
  createVNode(_component_dt_icon, {
@@ -682,7 +754,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
682
754
  createElementVNode("div", _hoisted_3, [
683
755
  Boolean($props.showCharacterLimit) ? (openBlock(), createBlock(_component_dt_tooltip, {
684
756
  key: 0,
685
- class: "dt-message-input--remaining-char-tooltip",
757
+ class: "dt-message-input__remaining-char-tooltip",
686
758
  placement: "top-end",
687
759
  enabled: $options.characterLimitTooltipEnabled,
688
760
  message: $props.showCharacterLimit.message,
@@ -690,7 +762,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
690
762
  }, {
691
763
  anchor: withCtx(() => [
692
764
  withDirectives(createElementVNode("p", {
693
- class: "d-fc-error d-mr16 dt-message-input--remaining-char",
765
+ class: "dt-message-input__remaining-char",
694
766
  "data-qa": "dt-message-input-character-limit"
695
767
  }, toDisplayString($props.showCharacterLimit.count - $options.inputLength), 513), [
696
768
  [vShow, $options.displayCharacterLimitWarning]
@@ -701,7 +773,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
701
773
  $props.showCancel ? (openBlock(), createBlock(_component_dt_button, {
702
774
  key: 1,
703
775
  "data-qa": "dt-message-input-cancel-button",
704
- class: "dt-message-input--cancel-button",
776
+ class: "dt-message-input__cancel-button",
705
777
  size: "sm",
706
778
  kind: "muted",
707
779
  importance: "clear",
@@ -713,53 +785,40 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
713
785
  ]),
714
786
  _: 1
715
787
  }, 8, ["aria-label", "onClick"])) : createCommentVNode("", true),
716
- $props.showSend ? (openBlock(), createBlock(_component_dt_tooltip, {
788
+ $props.showSend ? withDirectives((openBlock(), createBlock(_component_dt_button, {
717
789
  key: 2,
718
- placement: "top-end",
719
- enabled: !$props.showSend,
720
- message: $props.showSend.tooltipLabel,
721
- show: !$options.isSendDisabled && $data.sendButtonFocus,
722
- offset: [6, 8]
723
- }, {
724
- anchor: withCtx(() => [
725
- createVNode(_component_dt_button, {
726
- "data-qa": "dt-message-input-send-btn",
727
- size: "sm",
728
- kind: "default",
729
- importance: "primary",
730
- class: normalizeClass([
731
- {
732
- "message-input-button__disabled d-fc-muted": $options.isSendDisabled,
733
- "d-btn--circle": $props.showSend.icon
734
- }
735
- ]),
736
- "aria-label": $props.showSend.ariaLabel,
737
- "aria-disabled": $options.isSendDisabled,
738
- onClick: $options.onSend,
739
- onMouseenter: _cache[11] || (_cache[11] = ($event) => $data.sendButtonFocus = true),
740
- onMouseleave: _cache[12] || (_cache[12] = ($event) => $data.sendButtonFocus = false),
741
- onFocus: _cache[13] || (_cache[13] = ($event) => $data.sendButtonFocus = true),
742
- onBlur: _cache[14] || (_cache[14] = ($event) => $data.sendButtonFocus = false)
743
- }, createSlots({
744
- default: withCtx(() => [
745
- $props.showSend.text ? (openBlock(), createElementBlock("p", _hoisted_4, toDisplayString($props.showSend.text), 1)) : createCommentVNode("", true)
746
- ]),
747
- _: 2
748
- }, [
749
- $props.showSend.icon ? {
750
- name: "icon",
751
- fn: withCtx(() => [
752
- createVNode(_component_dt_icon, {
753
- name: $props.showSend.icon,
754
- size: "300"
755
- }, null, 8, ["name"])
756
- ]),
757
- key: "0"
758
- } : void 0
759
- ]), 1032, ["class", "aria-label", "aria-disabled", "onClick"])
790
+ "data-qa": "dt-message-input-send-btn",
791
+ size: "sm",
792
+ kind: "default",
793
+ importance: "primary",
794
+ class: normalizeClass([
795
+ {
796
+ "dt-message-input__send-button--disabled": $options.isSendDisabled,
797
+ "d-btn--circle": $props.showSend.icon
798
+ }
760
799
  ]),
761
- _: 1
762
- }, 8, ["enabled", "message", "show"])) : createCommentVNode("", true)
800
+ "aria-label": $props.showSend.ariaLabel,
801
+ "aria-disabled": $options.isSendDisabled,
802
+ onClick: $options.onSend
803
+ }, createSlots({
804
+ default: withCtx(() => [
805
+ $props.showSend.text ? (openBlock(), createElementBlock("p", _hoisted_4, toDisplayString($props.showSend.text), 1)) : createCommentVNode("", true)
806
+ ]),
807
+ _: 2
808
+ }, [
809
+ $props.showSend.icon ? {
810
+ name: "icon",
811
+ fn: withCtx(() => [
812
+ createVNode(_component_dt_icon, {
813
+ name: $props.showSend.icon,
814
+ size: "300"
815
+ }, null, 8, ["name"])
816
+ ]),
817
+ key: "0"
818
+ } : void 0
819
+ ]), 1032, ["class", "aria-label", "aria-disabled", "onClick"])), [
820
+ [_directive_dt_tooltip, (_b = $props.showSend) == null ? void 0 : _b.tooltipLabel, "top-end"]
821
+ ]) : createCommentVNode("", true)
763
822
  ])
764
823
  ])
765
824
  ], 34);