@dialpad/dialtone 9.54.2 → 9.55.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 (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 +2407 -0
  39. package/dist/vue2/lib/scrollbar-directive.cjs.map +1 -0
  40. package/dist/vue2/lib/scrollbar-directive.js +2407 -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 +2407 -0
  74. package/dist/vue3/lib/scrollbar-directive.cjs.map +1 -0
  75. package/dist/vue3/lib/scrollbar-directive.js +2407 -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 +1 -1
@@ -110,9 +110,7 @@ const _sfc_main$8 = {
110
110
  return true;
111
111
  }
112
112
  if (event.key === "Enter" || event.key === "Tab") {
113
- event.preventDefault();
114
113
  this.selectHandler();
115
- event.stopPropagation();
116
114
  return true;
117
115
  }
118
116
  return false;
@@ -125,7 +123,8 @@ const _sfc_main$8 = {
125
123
  this.selectedIndex = (this.selectedIndex + 1) % this.items.length;
126
124
  this.scrollActiveElementIntoView();
127
125
  },
128
- scrollActiveElementIntoView() {
126
+ async scrollActiveElementIntoView() {
127
+ await this.$nextTick();
129
128
  const activeElement = this.$refs.suggestionList.querySelector(".dt-list-item--highlighted");
130
129
  if (activeElement) {
131
130
  activeElement.scrollIntoView({
@@ -156,7 +155,7 @@ const _sfc_main$8 = {
156
155
  }
157
156
  }
158
157
  };
159
- const _hoisted_1$1 = { class: "d-popover__dialog" };
158
+ const _hoisted_1$1 = { class: "d-popover__dialog dt-suggestion-list__container" };
160
159
  const _hoisted_2$1 = {
161
160
  ref: "suggestionList",
162
161
  class: "dt-suggestion-list"
@@ -174,7 +173,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
174
173
  ]),
175
174
  "navigation-type": "arrow-keys",
176
175
  onClick: ($event) => $options.selectItem(index),
177
- onKeydown: withModifiers($options.onKeyDown, ["prevent", "stop"])
176
+ onKeydown: withModifiers($options.onKeyDown, ["prevent"])
178
177
  }, {
179
178
  default: withCtx(() => [
180
179
  (openBlock(), createBlock(resolveDynamicComponent($props.itemComponent), { item }, null, 8, ["item"]))
@@ -219,6 +218,25 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
219
218
  });
220
219
  }
221
220
  const EmojiSuggestion = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7]]);
221
+ const hideOnEsc = {
222
+ name: "hideOnEsc",
223
+ defaultValue: true,
224
+ fn({ hide }) {
225
+ function onKeyDown(event) {
226
+ if (event.keyCode === 27) {
227
+ hide();
228
+ }
229
+ }
230
+ return {
231
+ onShow() {
232
+ document.addEventListener("keydown", onKeyDown);
233
+ },
234
+ onHide() {
235
+ document.removeEventListener("keydown", onKeyDown);
236
+ }
237
+ };
238
+ }
239
+ };
222
240
  const suggestionOptions = {
223
241
  items: ({ query }) => {
224
242
  if (query.length < 2) {
@@ -257,6 +275,7 @@ const suggestionOptions = {
257
275
  render: () => {
258
276
  let component;
259
277
  let popup;
278
+ let popupIsOpen = false;
260
279
  return {
261
280
  onStart: (props) => {
262
281
  component = new VueRenderer(SuggestionList, {
@@ -274,33 +293,45 @@ const suggestionOptions = {
274
293
  getReferenceClientRect: props.clientRect,
275
294
  appendTo: () => document.body,
276
295
  content: component.element,
277
- showOnCreate: true,
296
+ showOnCreate: false,
297
+ onShow: () => {
298
+ popupIsOpen = true;
299
+ },
300
+ onHidden: () => {
301
+ popupIsOpen = false;
302
+ },
278
303
  interactive: true,
279
304
  trigger: "manual",
280
305
  placement: "top-start",
281
- zIndex: 650
306
+ zIndex: 650,
307
+ plugins: [hideOnEsc]
282
308
  });
309
+ if (props.items.length > 0) {
310
+ popup == null ? void 0 : popup[0].show();
311
+ }
283
312
  },
284
313
  onUpdate(props) {
285
- component.updateProps(props);
286
- if (!props.clientRect) {
287
- return;
314
+ component == null ? void 0 : component.updateProps(props);
315
+ if (props.items.length > 0) {
316
+ popup == null ? void 0 : popup[0].show();
317
+ } else {
318
+ popup == null ? void 0 : popup[0].hide();
288
319
  }
289
- popup[0].setProps({
320
+ popup == null ? void 0 : popup[0].setProps({
290
321
  getReferenceClientRect: props.clientRect
291
322
  });
292
323
  },
293
324
  onKeyDown(props) {
294
325
  var _a;
295
- if (props.event.key === "Escape") {
296
- popup[0].hide();
297
- return true;
326
+ if (popupIsOpen) {
327
+ return (_a = component == null ? void 0 : component.ref) == null ? void 0 : _a.onKeyDown(props);
298
328
  }
299
- return (_a = component.ref) == null ? void 0 : _a.onKeyDown(props);
300
329
  },
301
330
  onExit() {
302
- popup[0].destroy();
303
- component.destroy();
331
+ popup == null ? void 0 : popup[0].destroy();
332
+ popup = null;
333
+ component == null ? void 0 : component.destroy();
334
+ component = null;
304
335
  }
305
336
  };
306
337
  }
@@ -895,6 +926,7 @@ const mentionSuggestion = {
895
926
  render: () => {
896
927
  let component;
897
928
  let popup;
929
+ let popupIsOpen = false;
898
930
  return {
899
931
  onStart: (props) => {
900
932
  component = new VueRenderer(SuggestionList, {
@@ -912,31 +944,48 @@ const mentionSuggestion = {
912
944
  getReferenceClientRect: props.clientRect,
913
945
  appendTo: () => document.body,
914
946
  content: component.element,
915
- showOnCreate: true,
947
+ showOnCreate: false,
948
+ onShow: () => {
949
+ popupIsOpen = true;
950
+ },
951
+ onHidden: () => {
952
+ popupIsOpen = false;
953
+ },
916
954
  interactive: true,
917
955
  trigger: "manual",
918
- placement: "top-start"
956
+ placement: "top-start",
957
+ zIndex: 650,
958
+ plugins: [hideOnEsc]
919
959
  });
960
+ if (props.items.length > 0) {
961
+ popup == null ? void 0 : popup[0].show();
962
+ }
920
963
  },
921
964
  onUpdate(props) {
922
- component.updateProps(props);
965
+ component == null ? void 0 : component.updateProps(props);
966
+ if (props.items.length > 0) {
967
+ popup == null ? void 0 : popup[0].show();
968
+ } else {
969
+ popup == null ? void 0 : popup[0].hide();
970
+ }
923
971
  if (!props.clientRect) {
924
972
  return;
925
973
  }
926
- popup[0].setProps({
974
+ popup == null ? void 0 : popup[0].setProps({
927
975
  getReferenceClientRect: props.clientRect
928
976
  });
929
977
  },
930
978
  onKeyDown(props) {
931
- if (props.event.key === "Escape") {
932
- popup[0].hide();
933
- return true;
979
+ var _a;
980
+ if (popupIsOpen) {
981
+ return (_a = component == null ? void 0 : component.ref) == null ? void 0 : _a.onKeyDown(props);
934
982
  }
935
- return component == null ? void 0 : component.ref.onKeyDown(props);
936
983
  },
937
984
  onExit() {
938
- popup[0].destroy();
939
- component.destroy();
985
+ popup == null ? void 0 : popup[0].destroy();
986
+ popup = null;
987
+ component == null ? void 0 : component.destroy();
988
+ component = null;
940
989
  }
941
990
  };
942
991
  }
@@ -990,6 +1039,7 @@ const channelSuggestion = {
990
1039
  render: () => {
991
1040
  let component;
992
1041
  let popup;
1042
+ let popupIsOpen = false;
993
1043
  return {
994
1044
  onStart: (props) => {
995
1045
  component = new VueRenderer(SuggestionList, {
@@ -1007,31 +1057,48 @@ const channelSuggestion = {
1007
1057
  getReferenceClientRect: props.clientRect,
1008
1058
  appendTo: () => document.body,
1009
1059
  content: component.element,
1010
- showOnCreate: true,
1060
+ showOnCreate: false,
1061
+ onShow: () => {
1062
+ popupIsOpen = true;
1063
+ },
1064
+ onHidden: () => {
1065
+ popupIsOpen = false;
1066
+ },
1011
1067
  interactive: true,
1012
1068
  trigger: "manual",
1013
- placement: "top-start"
1069
+ placement: "top-start",
1070
+ zIndex: 650,
1071
+ plugins: [hideOnEsc]
1014
1072
  });
1073
+ if (props.items.length > 0) {
1074
+ popup == null ? void 0 : popup[0].show();
1075
+ }
1015
1076
  },
1016
1077
  onUpdate(props) {
1017
- component.updateProps(props);
1078
+ component == null ? void 0 : component.updateProps(props);
1079
+ if (props.items.length > 0) {
1080
+ popup == null ? void 0 : popup[0].show();
1081
+ } else {
1082
+ popup == null ? void 0 : popup[0].hide();
1083
+ }
1018
1084
  if (!props.clientRect) {
1019
1085
  return;
1020
1086
  }
1021
- popup[0].setProps({
1087
+ popup == null ? void 0 : popup[0].setProps({
1022
1088
  getReferenceClientRect: props.clientRect
1023
1089
  });
1024
1090
  },
1025
1091
  onKeyDown(props) {
1026
- if (props.event.key === "Escape") {
1027
- popup[0].hide();
1028
- return true;
1092
+ var _a;
1093
+ if (popupIsOpen) {
1094
+ return (_a = component == null ? void 0 : component.ref) == null ? void 0 : _a.onKeyDown(props);
1029
1095
  }
1030
- return component == null ? void 0 : component.ref.onKeyDown(props);
1031
1096
  },
1032
1097
  onExit() {
1033
- popup[0].destroy();
1034
- component.destroy();
1098
+ popup == null ? void 0 : popup[0].destroy();
1099
+ popup = null;
1100
+ component == null ? void 0 : component.destroy();
1101
+ component = null;
1035
1102
  }
1036
1103
  };
1037
1104
  }
@@ -1058,7 +1125,7 @@ const _sfc_main$1 = {
1058
1125
  };
1059
1126
  const _hoisted_1 = { class: "d-body--md-compact" };
1060
1127
  const _hoisted_2 = { key: 0 };
1061
- const _hoisted_3 = { class: "d-body--sm" };
1128
+ const _hoisted_3 = { class: "d-body--sm d-fc-tertiary" };
1062
1129
  function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
1063
1130
  return openBlock(), createElementBlock("div", null, [
1064
1131
  createElementVNode("div", _hoisted_1, [
@@ -1078,6 +1145,7 @@ const slashCommandSuggestion = {
1078
1145
  render: () => {
1079
1146
  let component;
1080
1147
  let popup;
1148
+ let popupIsOpen = false;
1081
1149
  return {
1082
1150
  onStart: (props) => {
1083
1151
  component = new VueRenderer(SuggestionList, {
@@ -1096,31 +1164,48 @@ const slashCommandSuggestion = {
1096
1164
  getReferenceClientRect: props.clientRect,
1097
1165
  appendTo: () => document.body,
1098
1166
  content: component.element,
1099
- showOnCreate: true,
1167
+ showOnCreate: false,
1168
+ onShow: () => {
1169
+ popupIsOpen = true;
1170
+ },
1171
+ onHidden: () => {
1172
+ popupIsOpen = false;
1173
+ },
1100
1174
  interactive: true,
1101
1175
  trigger: "manual",
1102
- placement: "top-start"
1176
+ placement: "top-start",
1177
+ zIndex: 650,
1178
+ plugins: [hideOnEsc]
1103
1179
  });
1180
+ if (props.items.length > 0) {
1181
+ popup == null ? void 0 : popup[0].show();
1182
+ }
1104
1183
  },
1105
1184
  onUpdate(props) {
1106
- component.updateProps(props);
1185
+ component == null ? void 0 : component.updateProps(props);
1186
+ if (props.items.length > 0) {
1187
+ popup == null ? void 0 : popup[0].show();
1188
+ } else {
1189
+ popup == null ? void 0 : popup[0].hide();
1190
+ }
1107
1191
  if (!props.clientRect) {
1108
1192
  return;
1109
1193
  }
1110
- popup[0].setProps({
1194
+ popup == null ? void 0 : popup[0].setProps({
1111
1195
  getReferenceClientRect: props.clientRect
1112
1196
  });
1113
1197
  },
1114
1198
  onKeyDown(props) {
1115
- if (props.event.key === "Escape") {
1116
- popup[0].hide();
1117
- return true;
1199
+ var _a;
1200
+ if (popupIsOpen) {
1201
+ return (_a = component == null ? void 0 : component.ref) == null ? void 0 : _a.onKeyDown(props);
1118
1202
  }
1119
- return component == null ? void 0 : component.ref.onKeyDown(props);
1120
1203
  },
1121
1204
  onExit() {
1122
- popup[0].destroy();
1123
- component.destroy();
1205
+ popup == null ? void 0 : popup[0].destroy();
1206
+ popup = null;
1207
+ component == null ? void 0 : component.destroy();
1208
+ component = null;
1124
1209
  }
1125
1210
  };
1126
1211
  }
@@ -1370,7 +1455,13 @@ const _sfc_main = {
1370
1455
  * @event focus
1371
1456
  * @type {FocusEvent}
1372
1457
  */
1373
- "focus"
1458
+ "focus",
1459
+ /**
1460
+ * Enter was pressed. Note that shift enter must be pressed to line break the input.
1461
+ * @event enter
1462
+ * @type {String}
1463
+ */
1464
+ "enter"
1374
1465
  ],
1375
1466
  data() {
1376
1467
  return {
@@ -1435,14 +1526,20 @@ const _sfc_main = {
1435
1526
  HardBreak.extend({
1436
1527
  addKeyboardShortcuts() {
1437
1528
  return {
1438
- Enter: () => true,
1439
- "Shift-Enter": () => this.editor.commands.first(({ commands }) => [
1440
- () => commands.newlineInCode(),
1441
- () => self.allowBulletList && commands.splitListItem("listItem"),
1442
- () => commands.createParagraphNear(),
1443
- () => commands.liftEmptyBlock(),
1444
- () => commands.splitBlock()
1445
- ])
1529
+ Enter: () => {
1530
+ self.$emit("enter");
1531
+ return true;
1532
+ },
1533
+ "Shift-Enter": () => {
1534
+ this.editor.commands.first(({ commands }) => [
1535
+ () => commands.newlineInCode(),
1536
+ () => self.allowBulletList && commands.splitListItem("listItem"),
1537
+ () => commands.createParagraphNear(),
1538
+ () => commands.liftEmptyBlock(),
1539
+ () => commands.splitBlock()
1540
+ ]);
1541
+ return true;
1542
+ }
1446
1543
  };
1447
1544
  }
1448
1545
  })