@dialpad/dialtone 9.54.2 → 9.55.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 (94) hide show
  1. package/dist/css/dialtone.css +21 -2
  2. package/dist/css/dialtone.min.css +1 -1
  3. package/dist/tokens/css/variables-dark.css +2 -1
  4. package/dist/tokens/css/variables-expressive-dark.css +30 -29
  5. package/dist/tokens/css/variables-expressive-light.css +30 -29
  6. package/dist/tokens/css/variables-expressive-sm-dark.css +30 -29
  7. package/dist/tokens/css/variables-expressive-sm-light.css +30 -29
  8. package/dist/tokens/css/variables-light.css +2 -1
  9. package/dist/tokens/css/variables-tmo-dark.css +2 -1
  10. package/dist/tokens/css/variables-tmo-light.css +2 -1
  11. package/dist/tokens/doc.json +350 -224
  12. package/dist/tokens/less/variables-dark.less +2 -1
  13. package/dist/tokens/less/variables-expressive-dark.less +30 -29
  14. package/dist/tokens/less/variables-expressive-light.less +30 -29
  15. package/dist/tokens/less/variables-expressive-sm-dark.less +30 -29
  16. package/dist/tokens/less/variables-expressive-sm-light.less +30 -29
  17. package/dist/tokens/less/variables-light.less +2 -1
  18. package/dist/tokens/less/variables-tmo-dark.less +2 -1
  19. package/dist/tokens/less/variables-tmo-light.less +2 -1
  20. package/dist/tokens/tokens-dark.json +1 -0
  21. package/dist/tokens/tokens-light.json +1 -0
  22. package/dist/vue2/dialtone-vue.cjs +2 -0
  23. package/dist/vue2/dialtone-vue.cjs.map +1 -1
  24. package/dist/vue2/dialtone-vue.js +2 -0
  25. package/dist/vue2/dialtone-vue.js.map +1 -1
  26. package/dist/vue2/lib/combobox-multi-select.cjs +12 -6
  27. package/dist/vue2/lib/combobox-multi-select.cjs.map +1 -1
  28. package/dist/vue2/lib/combobox-multi-select.js +12 -6
  29. package/dist/vue2/lib/combobox-multi-select.js.map +1 -1
  30. package/dist/vue2/lib/message-input.cjs +1 -19
  31. package/dist/vue2/lib/message-input.cjs.map +1 -1
  32. package/dist/vue2/lib/message-input.js +1 -19
  33. package/dist/vue2/lib/message-input.js.map +1 -1
  34. package/dist/vue2/lib/rich-text-editor.cjs +153 -57
  35. package/dist/vue2/lib/rich-text-editor.cjs.map +1 -1
  36. package/dist/vue2/lib/rich-text-editor.js +153 -57
  37. package/dist/vue2/lib/rich-text-editor.js.map +1 -1
  38. package/dist/vue2/lib/scrollbar-directive.cjs +2402 -0
  39. package/dist/vue2/lib/scrollbar-directive.cjs.map +1 -0
  40. package/dist/vue2/lib/scrollbar-directive.js +2402 -0
  41. package/dist/vue2/lib/scrollbar-directive.js.map +1 -0
  42. package/dist/vue2/style.css +653 -9
  43. package/dist/vue2/types/components/rich_text_editor/extensions/channels/suggestion.d.ts.map +1 -1
  44. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/suggestion.d.ts.map +1 -1
  45. package/dist/vue2/types/components/rich_text_editor/extensions/mentions/suggestion.d.ts.map +1 -1
  46. package/dist/vue2/types/components/rich_text_editor/extensions/slash_command/suggestion.d.ts.map +1 -1
  47. package/dist/vue2/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +1 -1
  48. package/dist/vue2/types/components/rich_text_editor/extensions/tippy_plugins/hide_on_esc.d.ts +12 -0
  49. package/dist/vue2/types/components/rich_text_editor/extensions/tippy_plugins/hide_on_esc.d.ts.map +1 -0
  50. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
  51. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  52. package/dist/vue2/types/directives/scrollbar/index.d.ts +2 -0
  53. package/dist/vue2/types/directives/scrollbar/index.d.ts.map +1 -0
  54. package/dist/vue2/types/directives/scrollbar/scrollbar.d.ts +6 -0
  55. package/dist/vue2/types/directives/scrollbar/scrollbar.d.ts.map +1 -0
  56. package/dist/vue2/types/index.d.ts +1 -0
  57. package/dist/vue2/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts +1 -0
  58. package/dist/vue2/types/recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue.d.ts.map +1 -1
  59. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +0 -3
  60. package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  61. package/dist/vue3/dialtone-vue.cjs +2 -0
  62. package/dist/vue3/dialtone-vue.cjs.map +1 -1
  63. package/dist/vue3/dialtone-vue.js +2 -0
  64. package/dist/vue3/dialtone-vue.js.map +1 -1
  65. package/dist/vue3/lib/message-input.cjs +14 -24
  66. package/dist/vue3/lib/message-input.cjs.map +1 -1
  67. package/dist/vue3/lib/message-input.js +15 -25
  68. package/dist/vue3/lib/message-input.js.map +1 -1
  69. package/dist/vue3/lib/rich-text-editor.cjs +154 -57
  70. package/dist/vue3/lib/rich-text-editor.cjs.map +1 -1
  71. package/dist/vue3/lib/rich-text-editor.js +154 -57
  72. package/dist/vue3/lib/rich-text-editor.js.map +1 -1
  73. package/dist/vue3/lib/scrollbar-directive.cjs +2402 -0
  74. package/dist/vue3/lib/scrollbar-directive.cjs.map +1 -0
  75. package/dist/vue3/lib/scrollbar-directive.js +2402 -0
  76. package/dist/vue3/lib/scrollbar-directive.js.map +1 -0
  77. package/dist/vue3/style.css +648 -4
  78. package/dist/vue3/types/components/rich_text_editor/extensions/channels/suggestion.d.ts.map +1 -1
  79. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/suggestion.d.ts.map +1 -1
  80. package/dist/vue3/types/components/rich_text_editor/extensions/mentions/suggestion.d.ts.map +1 -1
  81. package/dist/vue3/types/components/rich_text_editor/extensions/slash_command/suggestion.d.ts.map +1 -1
  82. package/dist/vue3/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +1 -1
  83. package/dist/vue3/types/components/rich_text_editor/extensions/tippy_plugins/hide_on_esc.d.ts +12 -0
  84. package/dist/vue3/types/components/rich_text_editor/extensions/tippy_plugins/hide_on_esc.d.ts.map +1 -0
  85. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +2 -1
  86. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  87. package/dist/vue3/types/directives/scrollbar/index.d.ts +2 -0
  88. package/dist/vue3/types/directives/scrollbar/index.d.ts.map +1 -0
  89. package/dist/vue3/types/directives/scrollbar/scrollbar.d.ts +6 -0
  90. package/dist/vue3/types/directives/scrollbar/scrollbar.d.ts.map +1 -0
  91. package/dist/vue3/types/index.d.ts +1 -0
  92. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +0 -3
  93. package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  94. package/package.json +3 -3
@@ -113,9 +113,7 @@ const _sfc_main$8 = {
113
113
  return true;
114
114
  }
115
115
  if (event.key === "Enter" || event.key === "Tab") {
116
- event.preventDefault();
117
116
  this.selectHandler();
118
- event.stopPropagation();
119
117
  return true;
120
118
  }
121
119
  return false;
@@ -128,7 +126,8 @@ const _sfc_main$8 = {
128
126
  this.selectedIndex = (this.selectedIndex + 1) % this.items.length;
129
127
  this.scrollActiveElementIntoView();
130
128
  },
131
- scrollActiveElementIntoView() {
129
+ async scrollActiveElementIntoView() {
130
+ await this.$nextTick();
132
131
  const activeElement = this.$refs.suggestionList.querySelector(".dt-list-item--highlighted");
133
132
  if (activeElement) {
134
133
  activeElement.scrollIntoView({
@@ -161,7 +160,7 @@ const _sfc_main$8 = {
161
160
  };
162
161
  var _sfc_render$8 = function render2() {
163
162
  var _vm = this, _c = _vm._self._c;
164
- return _c("div", { staticClass: "d-popover__dialog" }, [_c("ul", { directives: [{ name: "show", rawName: "v-show", value: _vm.items.length, expression: "items.length" }], ref: "suggestionList", staticClass: "dt-suggestion-list" }, _vm._l(_vm.items, function(item, index) {
163
+ return _c("div", { staticClass: "d-popover__dialog dt-suggestion-list__container" }, [_c("ul", { directives: [{ name: "show", rawName: "v-show", value: _vm.items.length, expression: "items.length" }], ref: "suggestionList", staticClass: "dt-suggestion-list" }, _vm._l(_vm.items, function(item, index) {
165
164
  return _c("dt-list-item", { key: item.id, class: [
166
165
  "dt-suggestion-list--item",
167
166
  { "dt-list-item--highlighted": index === _vm.selectedIndex }
@@ -169,7 +168,6 @@ var _sfc_render$8 = function render2() {
169
168
  return _vm.selectItem(index);
170
169
  }, "keydown": function($event) {
171
170
  $event.preventDefault();
172
- $event.stopPropagation();
173
171
  return _vm.onKeyDown.apply(null, arguments);
174
172
  } } }, [_c(_vm.itemComponent, { tag: "component", attrs: { "item": item } })], 1);
175
173
  }), 1)]);
@@ -215,6 +213,25 @@ var __component__$7 = /* @__PURE__ */ normalizeComponent(
215
213
  null
216
214
  );
217
215
  const EmojiSuggestion = __component__$7.exports;
216
+ const hideOnEsc = {
217
+ name: "hideOnEsc",
218
+ defaultValue: true,
219
+ fn({ hide }) {
220
+ function onKeyDown(event) {
221
+ if (event.keyCode === 27) {
222
+ hide();
223
+ }
224
+ }
225
+ return {
226
+ onShow() {
227
+ document.addEventListener("keydown", onKeyDown);
228
+ },
229
+ onHide() {
230
+ document.removeEventListener("keydown", onKeyDown);
231
+ }
232
+ };
233
+ }
234
+ };
218
235
  const suggestionOptions = {
219
236
  items: ({ query }) => {
220
237
  if (query.length < 2) {
@@ -253,6 +270,7 @@ const suggestionOptions = {
253
270
  render: () => {
254
271
  let component;
255
272
  let popup;
273
+ let popupIsOpen = false;
256
274
  return {
257
275
  onStart: (props) => {
258
276
  component = new VueRenderer(SuggestionList, {
@@ -271,33 +289,45 @@ const suggestionOptions = {
271
289
  getReferenceClientRect: props.clientRect,
272
290
  appendTo: () => document.body,
273
291
  content: component.element,
274
- showOnCreate: true,
292
+ showOnCreate: false,
293
+ onShow: () => {
294
+ popupIsOpen = true;
295
+ },
296
+ onHidden: () => {
297
+ popupIsOpen = false;
298
+ },
275
299
  interactive: true,
276
300
  trigger: "manual",
277
301
  placement: "top-start",
278
- zIndex: 650
302
+ zIndex: 650,
303
+ plugins: [hideOnEsc]
279
304
  });
305
+ if (props.items.length > 0) {
306
+ popup == null ? void 0 : popup[0].show();
307
+ }
280
308
  },
281
309
  onUpdate(props) {
282
- component.updateProps(props);
283
- if (!props.clientRect) {
284
- return;
310
+ component == null ? void 0 : component.updateProps(props);
311
+ if (props.items.length > 0) {
312
+ popup == null ? void 0 : popup[0].show();
313
+ } else {
314
+ popup == null ? void 0 : popup[0].hide();
285
315
  }
286
- popup[0].setProps({
316
+ popup == null ? void 0 : popup[0].setProps({
287
317
  getReferenceClientRect: props.clientRect
288
318
  });
289
319
  },
290
320
  onKeyDown(props) {
291
321
  var _a;
292
- if (props.event.key === "Escape") {
293
- popup[0].hide();
294
- return true;
322
+ if (popupIsOpen) {
323
+ return (_a = component == null ? void 0 : component.ref) == null ? void 0 : _a.onKeyDown(props);
295
324
  }
296
- return (_a = component.ref) == null ? void 0 : _a.onKeyDown(props);
297
325
  },
298
326
  onExit() {
299
- popup[0].destroy();
300
- component.destroy();
327
+ popup == null ? void 0 : popup[0].destroy();
328
+ popup = null;
329
+ component == null ? void 0 : component.destroy();
330
+ component = null;
301
331
  }
302
332
  };
303
333
  }
@@ -894,6 +924,7 @@ const mentionSuggestion = {
894
924
  render: () => {
895
925
  let component;
896
926
  let popup;
927
+ let popupIsOpen = false;
897
928
  return {
898
929
  onStart: (props) => {
899
930
  component = new VueRenderer(SuggestionList, {
@@ -912,31 +943,48 @@ const mentionSuggestion = {
912
943
  getReferenceClientRect: props.clientRect,
913
944
  appendTo: () => document.body,
914
945
  content: component.element,
915
- showOnCreate: true,
946
+ showOnCreate: false,
947
+ onShow: () => {
948
+ popupIsOpen = true;
949
+ },
950
+ onHidden: () => {
951
+ popupIsOpen = false;
952
+ },
916
953
  interactive: true,
917
954
  trigger: "manual",
918
- placement: "top-start"
955
+ placement: "top-start",
956
+ zIndex: 650,
957
+ plugins: [hideOnEsc]
919
958
  });
959
+ if (props.items.length > 0) {
960
+ popup == null ? void 0 : popup[0].show();
961
+ }
920
962
  },
921
963
  onUpdate(props) {
922
- component.updateProps(props);
964
+ component == null ? void 0 : component.updateProps(props);
965
+ if (props.items.length > 0) {
966
+ popup == null ? void 0 : popup[0].show();
967
+ } else {
968
+ popup == null ? void 0 : popup[0].hide();
969
+ }
923
970
  if (!props.clientRect) {
924
971
  return;
925
972
  }
926
- popup[0].setProps({
973
+ popup == null ? void 0 : popup[0].setProps({
927
974
  getReferenceClientRect: props.clientRect
928
975
  });
929
976
  },
930
977
  onKeyDown(props) {
931
- if (props.event.key === "Escape") {
932
- popup[0].hide();
933
- return true;
978
+ var _a;
979
+ if (popupIsOpen) {
980
+ return (_a = component == null ? void 0 : component.ref) == null ? void 0 : _a.onKeyDown(props);
934
981
  }
935
- return component == null ? void 0 : component.ref.onKeyDown(props);
936
982
  },
937
983
  onExit() {
938
- popup[0].destroy();
939
- component.destroy();
984
+ popup == null ? void 0 : popup[0].destroy();
985
+ popup = null;
986
+ component == null ? void 0 : component.destroy();
987
+ component = null;
940
988
  }
941
989
  };
942
990
  }
@@ -984,6 +1032,7 @@ const channelSuggestion = {
984
1032
  render: () => {
985
1033
  let component;
986
1034
  let popup;
1035
+ let popupIsOpen = false;
987
1036
  return {
988
1037
  onStart: (props) => {
989
1038
  component = new VueRenderer(SuggestionList, {
@@ -1002,31 +1051,48 @@ const channelSuggestion = {
1002
1051
  getReferenceClientRect: props.clientRect,
1003
1052
  appendTo: () => document.body,
1004
1053
  content: component.element,
1005
- showOnCreate: true,
1054
+ showOnCreate: false,
1055
+ onShow: () => {
1056
+ popupIsOpen = true;
1057
+ },
1058
+ onHidden: () => {
1059
+ popupIsOpen = false;
1060
+ },
1006
1061
  interactive: true,
1007
1062
  trigger: "manual",
1008
- placement: "top-start"
1063
+ placement: "top-start",
1064
+ zIndex: 650,
1065
+ plugins: [hideOnEsc]
1009
1066
  });
1067
+ if (props.items.length > 0) {
1068
+ popup == null ? void 0 : popup[0].show();
1069
+ }
1010
1070
  },
1011
1071
  onUpdate(props) {
1012
- component.updateProps(props);
1072
+ component == null ? void 0 : component.updateProps(props);
1073
+ if (props.items.length > 0) {
1074
+ popup == null ? void 0 : popup[0].show();
1075
+ } else {
1076
+ popup == null ? void 0 : popup[0].hide();
1077
+ }
1013
1078
  if (!props.clientRect) {
1014
1079
  return;
1015
1080
  }
1016
- popup[0].setProps({
1081
+ popup == null ? void 0 : popup[0].setProps({
1017
1082
  getReferenceClientRect: props.clientRect
1018
1083
  });
1019
1084
  },
1020
1085
  onKeyDown(props) {
1021
- if (props.event.key === "Escape") {
1022
- popup[0].hide();
1023
- return true;
1086
+ var _a;
1087
+ if (popupIsOpen) {
1088
+ return (_a = component == null ? void 0 : component.ref) == null ? void 0 : _a.onKeyDown(props);
1024
1089
  }
1025
- return component == null ? void 0 : component.ref.onKeyDown(props);
1026
1090
  },
1027
1091
  onExit() {
1028
- popup[0].destroy();
1029
- component.destroy();
1092
+ popup == null ? void 0 : popup[0].destroy();
1093
+ popup = null;
1094
+ component == null ? void 0 : component.destroy();
1095
+ component = null;
1030
1096
  }
1031
1097
  };
1032
1098
  }
@@ -1053,7 +1119,7 @@ const _sfc_main$1 = {
1053
1119
  };
1054
1120
  var _sfc_render$1 = function render9() {
1055
1121
  var _vm = this, _c = _vm._self._c;
1056
- return _c("div", [_c("div", { staticClass: "d-body--md-compact" }, [_c("span", [_vm._v("/" + _vm._s(_vm.command))]), _vm.parametersExample ? _c("span", [_vm._v(" " + _vm._s(_vm.parametersExample))]) : _vm._e()]), _c("div", { staticClass: "d-body--sm" }, [_vm._v(" " + _vm._s(_vm.description) + " ")])]);
1122
+ return _c("div", [_c("div", { staticClass: "d-body--md-compact" }, [_c("span", [_vm._v("/" + _vm._s(_vm.command))]), _vm.parametersExample ? _c("span", [_vm._v(" " + _vm._s(_vm.parametersExample))]) : _vm._e()]), _c("div", { staticClass: "d-body--sm d-fc-tertiary" }, [_vm._v(" " + _vm._s(_vm.description) + " ")])]);
1057
1123
  };
1058
1124
  var _sfc_staticRenderFns$1 = [];
1059
1125
  var __component__$1 = /* @__PURE__ */ normalizeComponent(
@@ -1076,6 +1142,7 @@ const slashCommandSuggestion = {
1076
1142
  render: () => {
1077
1143
  let component;
1078
1144
  let popup;
1145
+ let popupIsOpen = false;
1079
1146
  return {
1080
1147
  onStart: (props) => {
1081
1148
  component = new VueRenderer(SuggestionList, {
@@ -1094,31 +1161,48 @@ const slashCommandSuggestion = {
1094
1161
  getReferenceClientRect: props.clientRect,
1095
1162
  appendTo: () => document.body,
1096
1163
  content: component.element,
1097
- showOnCreate: true,
1164
+ showOnCreate: false,
1165
+ onShow: () => {
1166
+ popupIsOpen = true;
1167
+ },
1168
+ onHidden: () => {
1169
+ popupIsOpen = false;
1170
+ },
1098
1171
  interactive: true,
1099
1172
  trigger: "manual",
1100
- placement: "top-start"
1173
+ placement: "top-start",
1174
+ zIndex: 650,
1175
+ plugins: [hideOnEsc]
1101
1176
  });
1177
+ if (props.items.length > 0) {
1178
+ popup == null ? void 0 : popup[0].show();
1179
+ }
1102
1180
  },
1103
1181
  onUpdate(props) {
1104
- component.updateProps(props);
1182
+ component == null ? void 0 : component.updateProps(props);
1183
+ if (props.items.length > 0) {
1184
+ popup == null ? void 0 : popup[0].show();
1185
+ } else {
1186
+ popup == null ? void 0 : popup[0].hide();
1187
+ }
1105
1188
  if (!props.clientRect) {
1106
1189
  return;
1107
1190
  }
1108
- popup[0].setProps({
1191
+ popup == null ? void 0 : popup[0].setProps({
1109
1192
  getReferenceClientRect: props.clientRect
1110
1193
  });
1111
1194
  },
1112
1195
  onKeyDown(props) {
1113
- if (props.event.key === "Escape") {
1114
- popup[0].hide();
1115
- return true;
1196
+ var _a;
1197
+ if (popupIsOpen) {
1198
+ return (_a = component == null ? void 0 : component.ref) == null ? void 0 : _a.onKeyDown(props);
1116
1199
  }
1117
- return component == null ? void 0 : component.ref.onKeyDown(props);
1118
1200
  },
1119
1201
  onExit() {
1120
- popup[0].destroy();
1121
- component.destroy();
1202
+ popup == null ? void 0 : popup[0].destroy();
1203
+ popup = null;
1204
+ component == null ? void 0 : component.destroy();
1205
+ component = null;
1122
1206
  }
1123
1207
  };
1124
1208
  }
@@ -1368,7 +1452,13 @@ const _sfc_main = {
1368
1452
  * @event focus
1369
1453
  * @type {FocusEvent}
1370
1454
  */
1371
- "focus"
1455
+ "focus",
1456
+ /**
1457
+ * Enter was pressed. Note that shift enter must be pressed to line break the input.
1458
+ * @event enter
1459
+ * @type {String}
1460
+ */
1461
+ "enter"
1372
1462
  ],
1373
1463
  data() {
1374
1464
  return {
@@ -1433,14 +1523,20 @@ const _sfc_main = {
1433
1523
  HardBreak.extend({
1434
1524
  addKeyboardShortcuts() {
1435
1525
  return {
1436
- Enter: () => true,
1437
- "Shift-Enter": () => this.editor.commands.first(({ commands }) => [
1438
- () => commands.newlineInCode(),
1439
- () => self.allowBulletList && commands.splitListItem("listItem"),
1440
- () => commands.createParagraphNear(),
1441
- () => commands.liftEmptyBlock(),
1442
- () => commands.splitBlock()
1443
- ])
1526
+ Enter: () => {
1527
+ self.$emit("enter");
1528
+ return true;
1529
+ },
1530
+ "Shift-Enter": () => {
1531
+ this.editor.commands.first(({ commands }) => [
1532
+ () => commands.newlineInCode(),
1533
+ () => self.allowBulletList && commands.splitListItem("listItem"),
1534
+ () => commands.createParagraphNear(),
1535
+ () => commands.liftEmptyBlock(),
1536
+ () => commands.splitBlock()
1537
+ ]);
1538
+ return true;
1539
+ }
1444
1540
  };
1445
1541
  }
1446
1542
  })