@dialpad/dialtone 9.63.0 → 9.64.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 (128) hide show
  1. package/dist/css/dialtone-default-theme.css +96 -17
  2. package/dist/css/dialtone-default-theme.min.css +1 -1
  3. package/dist/css/dialtone.css +84 -17
  4. package/dist/css/dialtone.min.css +1 -1
  5. package/dist/css/tokens/tokens-dp-dark.css +12 -0
  6. package/dist/css/tokens/tokens-dp-light.css +12 -0
  7. package/dist/css/tokens/tokens-expressive-dark.css +12 -0
  8. package/dist/css/tokens/tokens-expressive-light.css +12 -0
  9. package/dist/css/tokens/tokens-expressive-sm-dark.css +12 -0
  10. package/dist/css/tokens/tokens-expressive-sm-light.css +12 -0
  11. package/dist/css/tokens/tokens-tmo-dark.css +12 -0
  12. package/dist/css/tokens/tokens-tmo-light.css +12 -0
  13. package/dist/themes/dp-dark.cjs +1 -1
  14. package/dist/themes/dp-dark.js +1 -1
  15. package/dist/themes/dp-light.cjs +1 -1
  16. package/dist/themes/dp-light.js +1 -1
  17. package/dist/themes/expressive-dark.cjs +1 -1
  18. package/dist/themes/expressive-dark.js +1 -1
  19. package/dist/themes/expressive-light.cjs +1 -1
  20. package/dist/themes/expressive-light.js +1 -1
  21. package/dist/themes/expressive-sm-dark.cjs +1 -1
  22. package/dist/themes/expressive-sm-dark.js +1 -1
  23. package/dist/themes/expressive-sm-light.cjs +1 -1
  24. package/dist/themes/expressive-sm-light.js +1 -1
  25. package/dist/themes/tmo-dark.cjs +1 -1
  26. package/dist/themes/tmo-dark.js +1 -1
  27. package/dist/themes/tmo-light.cjs +1 -1
  28. package/dist/themes/tmo-light.js +1 -1
  29. package/dist/tokens/css/tokens-dp-dark.css +12 -0
  30. package/dist/tokens/css/tokens-dp-light.css +12 -0
  31. package/dist/tokens/css/tokens-expressive-dark.css +12 -0
  32. package/dist/tokens/css/tokens-expressive-light.css +12 -0
  33. package/dist/tokens/css/tokens-expressive-sm-dark.css +12 -0
  34. package/dist/tokens/css/tokens-expressive-sm-light.css +12 -0
  35. package/dist/tokens/css/tokens-tmo-dark.css +12 -0
  36. package/dist/tokens/css/tokens-tmo-light.css +12 -0
  37. package/dist/tokens/doc.json +8274 -7922
  38. package/dist/tokens/less/tokens-dp-dark.less +2 -0
  39. package/dist/tokens/less/tokens-dp-light.less +2 -0
  40. package/dist/tokens/less/tokens-expressive-dark.less +2 -0
  41. package/dist/tokens/less/tokens-expressive-light.less +2 -0
  42. package/dist/tokens/less/tokens-expressive-sm-dark.less +2 -0
  43. package/dist/tokens/less/tokens-expressive-sm-light.less +2 -0
  44. package/dist/tokens/less/tokens-tmo-dark.less +2 -0
  45. package/dist/tokens/less/tokens-tmo-light.less +2 -0
  46. package/dist/tokens/tokens-dp-dark.json +2 -0
  47. package/dist/tokens/tokens-dp-light.json +2 -0
  48. package/dist/tokens/tokens-expressive-dark.json +2 -0
  49. package/dist/tokens/tokens-expressive-light.json +2 -0
  50. package/dist/tokens/tokens-expressive-sm-dark.json +2 -0
  51. package/dist/tokens/tokens-expressive-sm-light.json +2 -0
  52. package/dist/tokens/tokens-tmo-dark.json +2 -0
  53. package/dist/tokens/tokens-tmo-light.json +2 -0
  54. package/dist/vue2/component-documentation.json +1 -1
  55. package/dist/vue2/dialtone-vue.cjs +3 -0
  56. package/dist/vue2/dialtone-vue.cjs.map +1 -1
  57. package/dist/vue2/dialtone-vue.js +3 -0
  58. package/dist/vue2/dialtone-vue.js.map +1 -1
  59. package/dist/vue2/lib/button.cjs +2 -8
  60. package/dist/vue2/lib/button.cjs.map +1 -1
  61. package/dist/vue2/lib/button.js +2 -8
  62. package/dist/vue2/lib/button.js.map +1 -1
  63. package/dist/vue2/lib/general-row.cjs +2 -2
  64. package/dist/vue2/lib/general-row.cjs.map +1 -1
  65. package/dist/vue2/lib/general-row.js +2 -2
  66. package/dist/vue2/lib/general-row.js.map +1 -1
  67. package/dist/vue2/lib/rich-text-editor.cjs +1 -9
  68. package/dist/vue2/lib/rich-text-editor.cjs.map +1 -1
  69. package/dist/vue2/lib/rich-text-editor.js +1 -9
  70. package/dist/vue2/lib/rich-text-editor.js.map +1 -1
  71. package/dist/vue2/lib/split-button.cjs +512 -0
  72. package/dist/vue2/lib/split-button.cjs.map +1 -0
  73. package/dist/vue2/lib/split-button.js +512 -0
  74. package/dist/vue2/lib/split-button.js.map +1 -0
  75. package/dist/vue2/style.css +65 -65
  76. package/dist/vue2/types/components/button/button.vue.d.ts +2 -14
  77. package/dist/vue2/types/components/button/button.vue.d.ts.map +1 -1
  78. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  79. package/dist/vue2/types/components/split_button/index.d.ts +3 -0
  80. package/dist/vue2/types/components/split_button/index.d.ts.map +1 -0
  81. package/dist/vue2/types/components/split_button/split_button-alpha.vue.d.ts +183 -0
  82. package/dist/vue2/types/components/split_button/split_button-alpha.vue.d.ts.map +1 -0
  83. package/dist/vue2/types/components/split_button/split_button-omega.vue.d.ts +136 -0
  84. package/dist/vue2/types/components/split_button/split_button-omega.vue.d.ts.map +1 -0
  85. package/dist/vue2/types/components/split_button/split_button.vue.d.ts +347 -0
  86. package/dist/vue2/types/components/split_button/split_button.vue.d.ts.map +1 -0
  87. package/dist/vue2/types/components/split_button/split_button_constants.d.ts +12 -0
  88. package/dist/vue2/types/components/split_button/split_button_constants.d.ts.map +1 -0
  89. package/dist/vue2/types/index.d.ts +1 -0
  90. package/dist/vue2/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  91. package/dist/vue3/component-documentation.json +1 -1
  92. package/dist/vue3/dialtone-vue.cjs +3 -0
  93. package/dist/vue3/dialtone-vue.cjs.map +1 -1
  94. package/dist/vue3/dialtone-vue.js +3 -0
  95. package/dist/vue3/dialtone-vue.js.map +1 -1
  96. package/dist/vue3/lib/button.cjs +3 -9
  97. package/dist/vue3/lib/button.cjs.map +1 -1
  98. package/dist/vue3/lib/button.js +3 -9
  99. package/dist/vue3/lib/button.js.map +1 -1
  100. package/dist/vue3/lib/general-row.cjs +3 -3
  101. package/dist/vue3/lib/general-row.cjs.map +1 -1
  102. package/dist/vue3/lib/general-row.js +3 -3
  103. package/dist/vue3/lib/general-row.js.map +1 -1
  104. package/dist/vue3/lib/rich-text-editor.cjs +1 -9
  105. package/dist/vue3/lib/rich-text-editor.cjs.map +1 -1
  106. package/dist/vue3/lib/rich-text-editor.js +1 -9
  107. package/dist/vue3/lib/rich-text-editor.js.map +1 -1
  108. package/dist/vue3/lib/split-button.cjs +544 -0
  109. package/dist/vue3/lib/split-button.cjs.map +1 -0
  110. package/dist/vue3/lib/split-button.js +544 -0
  111. package/dist/vue3/lib/split-button.js.map +1 -0
  112. package/dist/vue3/style.css +65 -65
  113. package/dist/vue3/types/components/button/button.vue.d.ts +4 -16
  114. package/dist/vue3/types/components/button/button.vue.d.ts.map +1 -1
  115. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  116. package/dist/vue3/types/components/split_button/index.d.ts +3 -0
  117. package/dist/vue3/types/components/split_button/index.d.ts.map +1 -0
  118. package/dist/vue3/types/components/split_button/split_button-alpha.vue.d.ts +183 -0
  119. package/dist/vue3/types/components/split_button/split_button-alpha.vue.d.ts.map +1 -0
  120. package/dist/vue3/types/components/split_button/split_button-omega.vue.d.ts +136 -0
  121. package/dist/vue3/types/components/split_button/split_button-omega.vue.d.ts.map +1 -0
  122. package/dist/vue3/types/components/split_button/split_button.vue.d.ts +348 -0
  123. package/dist/vue3/types/components/split_button/split_button.vue.d.ts.map +1 -0
  124. package/dist/vue3/types/components/split_button/split_button_constants.d.ts +12 -0
  125. package/dist/vue3/types/components/split_button/split_button_constants.d.ts.map +1 -0
  126. package/dist/vue3/types/index.d.ts +1 -0
  127. package/dist/vue3/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  128. package/package.json +2 -2
@@ -0,0 +1,512 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const _pluginVue2_normalizer = require("../chunks/_plugin-vue2_normalizer-1aBeR4AK.js");
4
+ const lib_button = require("./button.cjs");
5
+ const vue2 = require("@dialpad/dialtone-icons/vue2");
6
+ const common_utils = require("../common/utils.cjs");
7
+ const dropdown = require("../chunks/dropdown-pHxnQPzT.js");
8
+ require("vue");
9
+ require("../chunks/link_constants-x8NwdqmA.js");
10
+ require("../common/constants.cjs");
11
+ require("../chunks/keyboard_list_navigation-fJnl_Iox.js");
12
+ require("../chunks/dropdown_constants-2pGCXy7m.js");
13
+ require("../chunks/sr_only_close_button-ZaGdAHz7.js");
14
+ require("./icon.cjs");
15
+ require("../chunks/icon_constants-QYpmdE0R.js");
16
+ require("@dialpad/dialtone-icons/icons.json");
17
+ require("./popover.cjs");
18
+ require("../chunks/popover_constants-XnGWXaxX.js");
19
+ require("tippy.js");
20
+ require("@linusborg/vue-simple-portal");
21
+ require("../chunks/modal-VgxXAQFP.js");
22
+ require("./lazy-show.cjs");
23
+ require("../chunks/list_item_constants-EiqkqZvP.js");
24
+ const _sfc_main$2 = {
25
+ name: "SplitButtonAlpha",
26
+ components: {
27
+ DtButton: lib_button.DtButton
28
+ },
29
+ props: {
30
+ /**
31
+ * Determines whether the button should have active styling
32
+ */
33
+ active: {
34
+ type: Boolean,
35
+ default: false
36
+ },
37
+ /**
38
+ * Descriptive label for the button
39
+ */
40
+ ariaLabel: {
41
+ type: String,
42
+ default: null
43
+ },
44
+ /**
45
+ * The position of the icon slot within the button.
46
+ */
47
+ iconPosition: {
48
+ type: String,
49
+ default: "left"
50
+ },
51
+ /**
52
+ * Used to customize the label container
53
+ */
54
+ labelClass: {
55
+ type: [String, Array, Object],
56
+ default: ""
57
+ },
58
+ /**
59
+ * Whether the button should display a loading animation or not.
60
+ */
61
+ loading: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ /**
66
+ * Text shown in tooltip when you hover the button
67
+ */
68
+ tooltipText: {
69
+ type: String,
70
+ default: ""
71
+ },
72
+ /**
73
+ * Determines whether a screenreader reads live updates of
74
+ * the button content to the user while the button is in focus.
75
+ */
76
+ assertiveOnFocus: {
77
+ type: Boolean,
78
+ default: false
79
+ },
80
+ /**
81
+ * HTML button disabled attribute
82
+ */
83
+ disabled: {
84
+ type: Boolean,
85
+ default: false
86
+ },
87
+ /**
88
+ * The fill and outline of the button associated with its visual importance.
89
+ */
90
+ importance: {
91
+ type: String,
92
+ default: "primary"
93
+ },
94
+ /**
95
+ * The color of the button.
96
+ */
97
+ kind: {
98
+ type: String,
99
+ default: "default"
100
+ },
101
+ /**
102
+ * The size of the button.
103
+ */
104
+ size: {
105
+ type: String,
106
+ default: "md"
107
+ }
108
+ },
109
+ data() {
110
+ return {
111
+ BUTTON_ICON_SIZES: lib_button.BUTTON_ICON_SIZES
112
+ };
113
+ }
114
+ };
115
+ var _sfc_render$2 = function render() {
116
+ var _vm = this, _c = _vm._self._c;
117
+ return _c("dt-button", { directives: [{ name: "dt-tooltip", rawName: "v-dt-tooltip", value: _vm.tooltipText, expression: "tooltipText" }], class: `d-split-btn__alpha d-split-btn__alpha--${_vm.size}`, attrs: { "data-qa": "dt-split-button-alpha", "active": _vm.active, "aria-label": _vm.ariaLabel, "assertive-on-focus": _vm.assertiveOnFocus, "disabled": _vm.disabled, "icon-position": _vm.iconPosition, "importance": _vm.importance, "kind": _vm.kind, "label-class": _vm.labelClass, "loading": _vm.loading, "size": _vm.size }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
118
+ return [_vm._t("icon", null, { "size": _vm.BUTTON_ICON_SIZES[_vm.size] })];
119
+ }, proxy: true }], null, true) }, [_vm._t("default")], 2);
120
+ };
121
+ var _sfc_staticRenderFns$2 = [];
122
+ var __component__$2 = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
123
+ _sfc_main$2,
124
+ _sfc_render$2,
125
+ _sfc_staticRenderFns$2,
126
+ false,
127
+ null,
128
+ null,
129
+ null,
130
+ null
131
+ );
132
+ const SplitButtonAlpha = __component__$2.exports;
133
+ const SPLIT_BUTTON_ICON_SIZES = {
134
+ xs: "100",
135
+ sm: "100",
136
+ md: "200",
137
+ lg: "200",
138
+ xl: "300"
139
+ };
140
+ const _sfc_main$1 = {
141
+ name: "SplitButtonOmega",
142
+ components: {
143
+ DtButton: lib_button.DtButton,
144
+ DtIconChevronDown: vue2.DtIconChevronDown
145
+ },
146
+ props: {
147
+ /**
148
+ * Determines whether the button should have active styling
149
+ */
150
+ active: {
151
+ type: Boolean,
152
+ default: false
153
+ },
154
+ /**
155
+ * Descriptive label for the button
156
+ */
157
+ ariaLabel: {
158
+ type: String,
159
+ default: null
160
+ },
161
+ /**
162
+ * HTML button disabled attribute
163
+ */
164
+ disabled: {
165
+ type: Boolean,
166
+ default: false
167
+ },
168
+ /**
169
+ * Element ID, useful in case you need to reference the button
170
+ * as an external anchor for popover
171
+ */
172
+ id: {
173
+ type: String,
174
+ default: common_utils.getUniqueString()
175
+ },
176
+ /**
177
+ * The fill and outline of the button associated with its visual importance.
178
+ */
179
+ importance: {
180
+ type: String,
181
+ default: "primary"
182
+ },
183
+ /**
184
+ * The color of the button.
185
+ */
186
+ kind: {
187
+ type: String,
188
+ default: "default"
189
+ },
190
+ /**
191
+ * The size of the button.
192
+ */
193
+ size: {
194
+ type: String,
195
+ default: "md"
196
+ },
197
+ /**
198
+ * Text shown in tooltip when you hover the button
199
+ */
200
+ tooltipText: {
201
+ type: String,
202
+ default: ""
203
+ }
204
+ },
205
+ data() {
206
+ return {
207
+ SPLIT_BUTTON_ICON_SIZES
208
+ };
209
+ }
210
+ };
211
+ var _sfc_render$1 = function render2() {
212
+ var _vm = this, _c = _vm._self._c;
213
+ return _c("dt-button", { directives: [{ name: "dt-tooltip", rawName: "v-dt-tooltip", value: _vm.tooltipText, expression: "tooltipText" }], class: `d-split-btn__omega d-split-btn__omega--${_vm.size}`, attrs: { "id": _vm.id, "data-qa": "dt-split-button-omega", "active": _vm.active, "aria-label": _vm.ariaLabel, "disabled": _vm.disabled, "importance": _vm.importance, "kind": _vm.kind, "size": _vm.size }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
214
+ return [_vm._t("icon", function() {
215
+ return [_c("dt-icon-chevron-down", { attrs: { "size": _vm.SPLIT_BUTTON_ICON_SIZES[_vm.size] } })];
216
+ }, { "size": _vm.SPLIT_BUTTON_ICON_SIZES[_vm.size] })];
217
+ }, proxy: true }], null, true) });
218
+ };
219
+ var _sfc_staticRenderFns$1 = [];
220
+ var __component__$1 = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
221
+ _sfc_main$1,
222
+ _sfc_render$1,
223
+ _sfc_staticRenderFns$1,
224
+ false,
225
+ null,
226
+ null,
227
+ null,
228
+ null
229
+ );
230
+ const SplitButtonOmega = __component__$1.exports;
231
+ const _sfc_main = {
232
+ name: "DtSplitButton",
233
+ components: {
234
+ SplitButtonOmega,
235
+ DtDropdown: dropdown.DtDropdown,
236
+ SplitButtonAlpha
237
+ },
238
+ inheritAttrs: false,
239
+ props: {
240
+ /**
241
+ * Determines whether the alpha button should have active styling
242
+ * @values true, false
243
+ */
244
+ alphaActive: {
245
+ type: Boolean,
246
+ default: false
247
+ },
248
+ /**
249
+ * Descriptive label for the alpha button
250
+ */
251
+ alphaAriaLabel: {
252
+ type: String,
253
+ default: null
254
+ },
255
+ /**
256
+ * The position of the icon slot within the alpha button.
257
+ * @values left, right, top, bottom
258
+ */
259
+ alphaIconPosition: {
260
+ type: String,
261
+ default: "left",
262
+ validator: (position) => Object.keys(lib_button.ICON_POSITION_MODIFIERS).includes(position)
263
+ },
264
+ /**
265
+ * Used to customize the alpha label container
266
+ */
267
+ alphaLabelClass: {
268
+ type: [String, Array, Object],
269
+ default: ""
270
+ },
271
+ /**
272
+ * Whether the alpha button should display a loading animation or not.
273
+ * @values true, false
274
+ */
275
+ alphaLoading: {
276
+ type: Boolean,
277
+ default: false
278
+ },
279
+ /**
280
+ * Text shown in tooltip when you hover the alpha button,
281
+ * required if no content is passed to default slot
282
+ */
283
+ alphaTooltipText: {
284
+ type: String,
285
+ default: void 0
286
+ },
287
+ /**
288
+ * Determines whether a screenreader reads live updates of
289
+ * the button content to the user while the button
290
+ * is in focus.
291
+ * @values true, false
292
+ */
293
+ assertiveOnFocus: {
294
+ type: Boolean,
295
+ default: false
296
+ },
297
+ /**
298
+ * HTML button disabled attribute
299
+ * <a class="d-link" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled" target="_blank">
300
+ * (Reference)
301
+ * </a>
302
+ * @values true, false
303
+ */
304
+ disabled: {
305
+ type: Boolean,
306
+ default: false
307
+ },
308
+ /**
309
+ * The direction the dropdown displays relative to the anchor.
310
+ * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end
311
+ */
312
+ dropdownPlacement: {
313
+ type: String,
314
+ default: "bottom-end"
315
+ },
316
+ /**
317
+ * The fill and outline of the button associated with its visual importance.
318
+ * @values clear, outlined, primary
319
+ */
320
+ importance: {
321
+ type: String,
322
+ default: "primary",
323
+ validator: (i) => Object.keys(lib_button.BUTTON_IMPORTANCE_MODIFIERS).includes(i)
324
+ },
325
+ /**
326
+ * The color of the button.
327
+ * @values default, muted, danger, inverted
328
+ */
329
+ kind: {
330
+ type: String,
331
+ default: "default",
332
+ validator: (k) => Object.keys(lib_button.BUTTON_KIND_MODIFIERS).includes(k)
333
+ },
334
+ /**
335
+ * Determines whether the omega button should have active styling
336
+ * @values true, false
337
+ */
338
+ omegaActive: {
339
+ type: Boolean,
340
+ default: false
341
+ },
342
+ /**
343
+ * Descriptive label for the omega button
344
+ */
345
+ omegaAriaLabel: {
346
+ type: String,
347
+ default: null
348
+ },
349
+ /**
350
+ * Element ID, useful in case you need to reference the button
351
+ * as an external anchor for popover
352
+ */
353
+ omegaId: {
354
+ type: String,
355
+ default: void 0
356
+ },
357
+ /**
358
+ * Text shown in tooltip when you hover the omega button,
359
+ * required as it is an icon only button
360
+ */
361
+ omegaTooltipText: {
362
+ type: String,
363
+ default: void 0
364
+ },
365
+ /**
366
+ * The size of the button.
367
+ * @values xs, sm, md, lg, xl
368
+ */
369
+ size: {
370
+ type: String,
371
+ default: "md",
372
+ validator: (s) => Object.keys(lib_button.BUTTON_SIZE_MODIFIERS).includes(s)
373
+ },
374
+ /**
375
+ * Button width, accepts
376
+ * <a class="d-link" href="https://developer.mozilla.org/en-US/docs/Web/CSS/width" target="_blank">
377
+ * CSS width attribute
378
+ * </a>
379
+ * values
380
+ */
381
+ width: {
382
+ type: String,
383
+ default: null
384
+ }
385
+ },
386
+ emits: [
387
+ /**
388
+ * Native alpha button click event
389
+ *
390
+ * @event click
391
+ * @type {PointerEvent | KeyboardEvent}
392
+ */
393
+ "alpha-clicked",
394
+ /**
395
+ * Native omega button click event
396
+ *
397
+ * @event click
398
+ * @type {PointerEvent | KeyboardEvent}
399
+ */
400
+ "omega-clicked"
401
+ ],
402
+ data() {
403
+ return {
404
+ isDropdownOpen: false
405
+ };
406
+ },
407
+ computed: {
408
+ alphaButtonProps() {
409
+ return {
410
+ active: this.alphaActive,
411
+ ariaLabel: this.alphaAriaLabel,
412
+ assertiveOnFocus: this.assertiveOnFocus,
413
+ disabled: this.disabled,
414
+ iconPosition: this.alphaIconPosition,
415
+ labelClass: this.alphaLabelClass,
416
+ loading: this.alphaLoading,
417
+ importance: this.importance,
418
+ kind: this.kind,
419
+ size: this.size,
420
+ tooltipText: this.alphaTooltipText,
421
+ class: this.$attrs.class
422
+ };
423
+ },
424
+ omegaButtonProps() {
425
+ return {
426
+ id: this.omegaId,
427
+ active: this.omegaActive,
428
+ ariaLabel: this.omegaAriaLabel,
429
+ disabled: this.disabled,
430
+ importance: this.importance,
431
+ kind: this.kind,
432
+ size: this.size,
433
+ tooltipText: this.omegaTooltipText,
434
+ class: this.$attrs.class
435
+ };
436
+ },
437
+ defaultSlotHasContent() {
438
+ var _a, _b;
439
+ return this.$scopedSlots.default && this.$scopedSlots.default() && ((_b = (_a = this.$scopedSlots.default()[0]) == null ? void 0 : _a.text) == null ? void 0 : _b.trim());
440
+ },
441
+ omegaSlotIsSet() {
442
+ return this.$scopedSlots.omega && this.$scopedSlots.omega();
443
+ }
444
+ },
445
+ created() {
446
+ this.validateProps();
447
+ },
448
+ updated() {
449
+ this.validateProps();
450
+ },
451
+ methods: {
452
+ validateProps() {
453
+ this.validateAlphaButtonProps();
454
+ this.validateOmegaButtonProps();
455
+ },
456
+ validateAlphaButtonProps() {
457
+ var _a;
458
+ if (this.defaultSlotHasContent)
459
+ return;
460
+ const isAlphaIconSet = ((_a = this.$refs.alphaButton) == null ? void 0 : _a.$scopedSlots.icon) && this.$refs.alphaButton.$scopedSlots.icon();
461
+ if (isAlphaIconSet && !this.alphaTooltipText) {
462
+ console.warn("alpha-tooltip-text prop must be set if alpha button has an icon only");
463
+ }
464
+ },
465
+ validateOmegaButtonProps() {
466
+ if (this.omegaSlotIsSet)
467
+ return;
468
+ if (!this.omegaTooltipText) {
469
+ console.warn("omega-tooltip-text prop is required as it is an icon-only button");
470
+ }
471
+ }
472
+ }
473
+ };
474
+ var _sfc_render = function render3() {
475
+ var _vm = this, _c = _vm._self._c;
476
+ return _c("span", { staticClass: "d-split-btn", style: { width: _vm.width }, attrs: { "data-qa": "dt-split-button" } }, [_c("split-button-alpha", _vm._b({ ref: "alphaButton", nativeOn: { "click": function($event) {
477
+ return _vm.$emit("alpha-clicked");
478
+ } }, scopedSlots: _vm._u([{ key: "icon", fn: function({ size: iconSize }) {
479
+ return [_vm._t("alphaIcon", null, { "size": iconSize })];
480
+ } }], null, true) }, "split-button-alpha", _vm.alphaButtonProps, false), [_vm._t("default")], 2), _vm._t("omega", function() {
481
+ return [_vm.$slots.dropdownList ? _c("dt-dropdown", { attrs: { "placement": _vm.dropdownPlacement }, on: { "click": function($event) {
482
+ _vm.isDropdownOpen = true;
483
+ }, "opened": (open) => _vm.isDropdownOpen = open }, scopedSlots: _vm._u([{ key: "anchor", fn: function(attrs) {
484
+ return [_c("split-button-omega", _vm._b({ attrs: { "active": _vm.isDropdownOpen }, nativeOn: { "click": function($event) {
485
+ return _vm.$emit("omega-clicked");
486
+ } }, scopedSlots: _vm._u([{ key: "icon", fn: function({ size: iconSize }) {
487
+ return [_vm._t("omegaIcon", null, { "size": iconSize })];
488
+ } }], null, true) }, "split-button-omega", { ...attrs, ..._vm.omegaButtonProps }, false))];
489
+ } }, { key: "list", fn: function({ close }) {
490
+ return [_vm._t("dropdownList", null, { "close": close })];
491
+ } }], null, true) }) : _c("split-button-omega", _vm._b({ nativeOn: { "click": function($event) {
492
+ return _vm.$emit("omega-clicked");
493
+ } }, scopedSlots: _vm._u([{ key: "icon", fn: function({ size: iconSize }) {
494
+ return [_vm._t("omegaIcon", null, { "size": iconSize })];
495
+ } }], null, true) }, "split-button-omega", _vm.omegaButtonProps, false))];
496
+ })], 2);
497
+ };
498
+ var _sfc_staticRenderFns = [];
499
+ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
500
+ _sfc_main,
501
+ _sfc_render,
502
+ _sfc_staticRenderFns,
503
+ false,
504
+ null,
505
+ null,
506
+ null,
507
+ null
508
+ );
509
+ const split_button = __component__.exports;
510
+ exports.DtSplitButton = split_button;
511
+ exports.SPLIT_BUTTON_ICON_SIZES = SPLIT_BUTTON_ICON_SIZES;
512
+ //# sourceMappingURL=split-button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-button.cjs","sources":["../../components/split_button/split_button-alpha.vue","../../components/split_button/split_button_constants.js","../../components/split_button/split_button-omega.vue","../../components/split_button/split_button.vue"],"sourcesContent":["<template>\n <dt-button\n v-dt-tooltip=\"tooltipText\"\n data-qa=\"dt-split-button-alpha\"\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :assertive-on-focus=\"assertiveOnFocus\"\n :class=\"`d-split-btn__alpha d-split-btn__alpha--${size}`\"\n :disabled=\"disabled\"\n :icon-position=\"iconPosition\"\n :importance=\"importance\"\n :kind=\"kind\"\n :label-class=\"labelClass\"\n :loading=\"loading\"\n :size=\"size\"\n >\n <template #icon>\n <slot\n name=\"icon\"\n :size=\"BUTTON_ICON_SIZES[size]\"\n />\n </template>\n <slot name=\"default\" />\n </dt-button>\n</template>\n\n<script>\nimport { BUTTON_ICON_SIZES, DtButton } from '@/components/button';\n\nexport default {\n name: 'SplitButtonAlpha',\n\n components: {\n DtButton,\n },\n\n props: {\n /**\n * Determines whether the button should have active styling\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the button\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * The position of the icon slot within the button.\n */\n iconPosition: {\n type: String,\n default: 'left',\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Whether the button should display a loading animation or not.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown in tooltip when you hover the button\n */\n tooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button is in focus.\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n */\n importance: {\n type: String,\n default: 'primary',\n },\n\n /**\n * The color of the button.\n */\n kind: {\n type: String,\n default: 'default',\n },\n\n /**\n * The size of the button.\n */\n size: {\n type: String,\n default: 'md',\n },\n },\n\n data () {\n return {\n BUTTON_ICON_SIZES,\n };\n },\n};\n</script>\n","export const SPLIT_BUTTON_ICON_SIZES = {\n xs: '100',\n sm: '100',\n md: '200',\n lg: '200',\n xl: '300',\n};\n\nexport default {\n SPLIT_BUTTON_ICON_SIZES,\n};\n","<template>\n <dt-button\n :id=\"id\"\n v-dt-tooltip=\"tooltipText\"\n data-qa=\"dt-split-button-omega\"\n :active=\"active\"\n :aria-label=\"ariaLabel\"\n :class=\"`d-split-btn__omega d-split-btn__omega--${size}`\"\n :disabled=\"disabled\"\n :importance=\"importance\"\n :kind=\"kind\"\n :size=\"size\"\n >\n <template #icon>\n <slot\n name=\"icon\"\n :size=\"SPLIT_BUTTON_ICON_SIZES[size]\"\n >\n <dt-icon-chevron-down :size=\"SPLIT_BUTTON_ICON_SIZES[size]\" />\n </slot>\n </template>\n </dt-button>\n</template>\n\n<script>\nimport { SPLIT_BUTTON_ICON_SIZES } from './split_button_constants';\nimport { DtButton } from '@/components/button';\nimport { DtIconChevronDown } from '@dialpad/dialtone-icons/vue2';\nimport { getUniqueString } from '@/common/utils';\n\nexport default {\n name: 'SplitButtonOmega',\n components: {\n DtButton,\n DtIconChevronDown,\n },\n\n props: {\n /**\n * Determines whether the button should have active styling\n */\n active: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the button\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * HTML button disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover\n */\n id: {\n type: String,\n default: getUniqueString(),\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n */\n importance: {\n type: String,\n default: 'primary',\n },\n\n /**\n * The color of the button.\n */\n kind: {\n type: String,\n default: 'default',\n },\n\n /**\n * The size of the button.\n */\n size: {\n type: String,\n default: 'md',\n },\n\n /**\n * Text shown in tooltip when you hover the button\n */\n tooltipText: {\n type: String,\n default: '',\n },\n },\n\n data () {\n return {\n SPLIT_BUTTON_ICON_SIZES,\n };\n },\n};\n</script>\n","<template>\n <span\n data-qa=\"dt-split-button\"\n class=\"d-split-btn\"\n :style=\"{ width }\"\n >\n <split-button-alpha\n v-bind=\"alphaButtonProps\"\n ref=\"alphaButton\"\n @click.native=\"$emit('alpha-clicked')\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot Alpha (left) button icon slot -->\n <slot\n name=\"alphaIcon\"\n :size=\"iconSize\"\n />\n </template>\n <!-- @slot Default content slot -->\n <slot name=\"default\" />\n </split-button-alpha>\n <!-- @slot Omega (right) content slot, overrides omega button styling and functionality completely -->\n <slot name=\"omega\">\n <dt-dropdown\n v-if=\"$slots.dropdownList\"\n :placement=\"dropdownPlacement\"\n @click=\"isDropdownOpen = true\"\n @opened=\"open => isDropdownOpen = open\"\n >\n <template #anchor=\"attrs\">\n <split-button-omega\n v-bind=\"{ ...attrs, ...omegaButtonProps }\"\n :active=\"isDropdownOpen\"\n @click.native=\"$emit('omega-clicked')\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot Omega (right) button icon slot -->\n <slot\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-omega>\n </template>\n <template #list=\"{ close }\">\n <!-- @slot Built-in dropdown content slot, use of dt-list-item is highly recommended here. -->\n <slot\n name=\"dropdownList\"\n :close=\"close\"\n />\n </template>\n </dt-dropdown>\n\n <split-button-omega\n v-else\n v-bind=\"omegaButtonProps\"\n @click.native=\"$emit('omega-clicked')\"\n >\n <template #icon=\"{ size: iconSize }\">\n <!-- @slot Omega (right) button icon slot -->\n <slot\n name=\"omegaIcon\"\n :size=\"iconSize\"\n />\n </template>\n </split-button-omega>\n </slot>\n </span>\n</template>\n\n<script>\nimport {\n BUTTON_IMPORTANCE_MODIFIERS,\n BUTTON_KIND_MODIFIERS,\n BUTTON_SIZE_MODIFIERS,\n ICON_POSITION_MODIFIERS,\n} from '@/components/button';\nimport SplitButtonAlpha from './split_button-alpha.vue';\nimport SplitButtonOmega from './split_button-omega.vue';\nimport { DtDropdown } from '@/components/dropdown';\n\nexport default {\n name: 'DtSplitButton',\n\n components: {\n SplitButtonOmega,\n DtDropdown,\n SplitButtonAlpha,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Determines whether the alpha button should have active styling\n * @values true, false\n */\n alphaActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the alpha button\n */\n alphaAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * The position of the icon slot within the alpha button.\n * @values left, right, top, bottom\n */\n alphaIconPosition: {\n type: String,\n default: 'left',\n validator: (position) => Object.keys(ICON_POSITION_MODIFIERS).includes(position),\n },\n\n /**\n * Used to customize the alpha label container\n */\n alphaLabelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Whether the alpha button should display a loading animation or not.\n * @values true, false\n */\n alphaLoading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text shown in tooltip when you hover the alpha button,\n * required if no content is passed to default slot\n */\n alphaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Determines whether a screenreader reads live updates of\n * the button content to the user while the button\n * is in focus.\n * @values true, false\n */\n assertiveOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * HTML button disabled attribute\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled\" target=\"_blank\">\n * (Reference)\n * </a>\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The direction the dropdown displays relative to the anchor.\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n dropdownPlacement: {\n type: String,\n default: 'bottom-end',\n },\n\n /**\n * The fill and outline of the button associated with its visual importance.\n * @values clear, outlined, primary\n */\n importance: {\n type: String,\n default: 'primary',\n validator: (i) => Object.keys(BUTTON_IMPORTANCE_MODIFIERS).includes(i),\n },\n\n /**\n * The color of the button.\n * @values default, muted, danger, inverted\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(BUTTON_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Determines whether the omega button should have active styling\n * @values true, false\n */\n omegaActive: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Descriptive label for the omega button\n */\n omegaAriaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Element ID, useful in case you need to reference the button\n * as an external anchor for popover\n */\n omegaId: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the omega button,\n * required as it is an icon only button\n */\n omegaTooltipText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The size of the button.\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (s) => Object.keys(BUTTON_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Button width, accepts\n * <a class=\"d-link\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/width\" target=\"_blank\">\n * CSS width attribute\n * </a>\n * values\n */\n width: {\n type: String,\n default: null,\n },\n },\n\n emits: [\n /**\n * Native alpha button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'alpha-clicked',\n\n /**\n * Native omega button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'omega-clicked',\n ],\n\n data () {\n return {\n isDropdownOpen: false,\n };\n },\n\n computed: {\n alphaButtonProps () {\n return {\n active: this.alphaActive,\n ariaLabel: this.alphaAriaLabel,\n assertiveOnFocus: this.assertiveOnFocus,\n disabled: this.disabled,\n iconPosition: this.alphaIconPosition,\n labelClass: this.alphaLabelClass,\n loading: this.alphaLoading,\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.alphaTooltipText,\n class: this.$attrs.class,\n };\n },\n\n omegaButtonProps () {\n return {\n id: this.omegaId,\n active: this.omegaActive,\n ariaLabel: this.omegaAriaLabel,\n disabled: this.disabled,\n importance: this.importance,\n kind: this.kind,\n size: this.size,\n tooltipText: this.omegaTooltipText,\n class: this.$attrs.class,\n };\n },\n\n defaultSlotHasContent () {\n return this.$scopedSlots.default && this.$scopedSlots.default() && this.$scopedSlots.default()[0]?.text?.trim();\n },\n\n omegaSlotIsSet () {\n return this.$scopedSlots.omega && this.$scopedSlots.omega();\n },\n },\n\n created () {\n this.validateProps();\n },\n\n updated () {\n this.validateProps();\n },\n\n methods: {\n validateProps () {\n this.validateAlphaButtonProps();\n this.validateOmegaButtonProps();\n },\n\n validateAlphaButtonProps () {\n if (this.defaultSlotHasContent) return;\n\n // This can't be a computed prop due to reactivity issues.\n const isAlphaIconSet = this.$refs.alphaButton?.$scopedSlots.icon && this.$refs.alphaButton.$scopedSlots.icon();\n\n if (isAlphaIconSet && !this.alphaTooltipText) {\n console.warn('alpha-tooltip-text prop must be set if alpha button has an icon only');\n }\n },\n\n validateOmegaButtonProps () {\n if (this.omegaSlotIsSet) return;\n\n if (!this.omegaTooltipText) {\n console.warn('omega-tooltip-text prop is required as it is an icon-only button');\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtButton","BUTTON_ICON_SIZES","DtIconChevronDown","getUniqueString","DtDropdown","ICON_POSITION_MODIFIERS","BUTTON_IMPORTANCE_MODIFIERS","BUTTON_KIND_MODIFIERS","BUTTON_SIZE_MODIFIERS"],"mappings":"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"}