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