@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,544 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const vue = require("vue");
4
+ const _pluginVue_exportHelper = require("../chunks/_plugin-vue_export-helper-fhnQq0tA.js");
5
+ const lib_button = require("./button.cjs");
6
+ const vue3 = require("@dialpad/dialtone-icons/vue3");
7
+ const common_utils = require("../common/utils.cjs");
8
+ const dropdown = require("../chunks/dropdown-p-Azgwov.js");
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-xGrHFjwA.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("../chunks/modal-VgxXAQFP.js");
21
+ require("./lazy-show.cjs");
22
+ require("../chunks/list_item_constants-EiqkqZvP.js");
23
+ const _sfc_main$2 = {
24
+ name: "SplitButtonAlpha",
25
+ components: {
26
+ DtButton: lib_button.DtButton
27
+ },
28
+ props: {
29
+ /**
30
+ * Determines whether the button should have active styling
31
+ */
32
+ active: {
33
+ type: Boolean,
34
+ default: false
35
+ },
36
+ /**
37
+ * Descriptive label for the button
38
+ */
39
+ ariaLabel: {
40
+ type: String,
41
+ default: null
42
+ },
43
+ /**
44
+ * The position of the icon slot within the button.
45
+ */
46
+ iconPosition: {
47
+ type: String,
48
+ default: "left"
49
+ },
50
+ /**
51
+ * Used to customize the label container
52
+ */
53
+ labelClass: {
54
+ type: [String, Array, Object],
55
+ default: ""
56
+ },
57
+ /**
58
+ * Whether the button should display a loading animation or not.
59
+ */
60
+ loading: {
61
+ type: Boolean,
62
+ default: false
63
+ },
64
+ /**
65
+ * Text shown in tooltip when you hover the button
66
+ */
67
+ tooltipText: {
68
+ type: String,
69
+ default: ""
70
+ },
71
+ /**
72
+ * Determines whether a screenreader reads live updates of
73
+ * the button content to the user while the button is in focus.
74
+ */
75
+ assertiveOnFocus: {
76
+ type: Boolean,
77
+ default: false
78
+ },
79
+ /**
80
+ * HTML button disabled attribute
81
+ */
82
+ disabled: {
83
+ type: Boolean,
84
+ default: false
85
+ },
86
+ /**
87
+ * The fill and outline of the button associated with its visual importance.
88
+ */
89
+ importance: {
90
+ type: String,
91
+ default: "primary"
92
+ },
93
+ /**
94
+ * The color of the button.
95
+ */
96
+ kind: {
97
+ type: String,
98
+ default: "default"
99
+ },
100
+ /**
101
+ * The size of the button.
102
+ */
103
+ size: {
104
+ type: String,
105
+ default: "md"
106
+ }
107
+ },
108
+ data() {
109
+ return {
110
+ BUTTON_ICON_SIZES: lib_button.BUTTON_ICON_SIZES
111
+ };
112
+ }
113
+ };
114
+ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
115
+ const _component_dt_button = vue.resolveComponent("dt-button");
116
+ const _directive_dt_tooltip = vue.resolveDirective("dt-tooltip");
117
+ return vue.withDirectives((vue.openBlock(), vue.createBlock(_component_dt_button, {
118
+ "data-qa": "dt-split-button-alpha",
119
+ active: $props.active,
120
+ "aria-label": $props.ariaLabel,
121
+ "assertive-on-focus": $props.assertiveOnFocus,
122
+ class: vue.normalizeClass(`d-split-btn__alpha d-split-btn__alpha--${$props.size}`),
123
+ disabled: $props.disabled,
124
+ "icon-position": $props.iconPosition,
125
+ importance: $props.importance,
126
+ kind: $props.kind,
127
+ "label-class": $props.labelClass,
128
+ loading: $props.loading,
129
+ size: $props.size
130
+ }, {
131
+ icon: vue.withCtx(() => [
132
+ vue.renderSlot(_ctx.$slots, "icon", {
133
+ size: $data.BUTTON_ICON_SIZES[$props.size]
134
+ })
135
+ ]),
136
+ default: vue.withCtx(() => [
137
+ vue.renderSlot(_ctx.$slots, "default")
138
+ ]),
139
+ _: 3
140
+ }, 8, ["active", "aria-label", "assertive-on-focus", "class", "disabled", "icon-position", "importance", "kind", "label-class", "loading", "size"])), [
141
+ [_directive_dt_tooltip, $props.tooltipText]
142
+ ]);
143
+ }
144
+ const SplitButtonAlpha = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
145
+ const SPLIT_BUTTON_ICON_SIZES = {
146
+ xs: "100",
147
+ sm: "100",
148
+ md: "200",
149
+ lg: "200",
150
+ xl: "300"
151
+ };
152
+ const _sfc_main$1 = {
153
+ name: "SplitButtonOmega",
154
+ components: {
155
+ DtButton: lib_button.DtButton,
156
+ DtIconChevronDown: vue3.DtIconChevronDown
157
+ },
158
+ props: {
159
+ /**
160
+ * Determines whether the button should have active styling
161
+ */
162
+ active: {
163
+ type: Boolean,
164
+ default: false
165
+ },
166
+ /**
167
+ * Descriptive label for the button
168
+ */
169
+ ariaLabel: {
170
+ type: String,
171
+ default: null
172
+ },
173
+ /**
174
+ * HTML button disabled attribute
175
+ */
176
+ disabled: {
177
+ type: Boolean,
178
+ default: false
179
+ },
180
+ /**
181
+ * Element ID, useful in case you need to reference the button
182
+ * as an external anchor for popover
183
+ */
184
+ id: {
185
+ type: String,
186
+ default: common_utils.getUniqueString()
187
+ },
188
+ /**
189
+ * The fill and outline of the button associated with its visual importance.
190
+ */
191
+ importance: {
192
+ type: String,
193
+ default: "primary"
194
+ },
195
+ /**
196
+ * The color of the button.
197
+ */
198
+ kind: {
199
+ type: String,
200
+ default: "default"
201
+ },
202
+ /**
203
+ * The size of the button.
204
+ */
205
+ size: {
206
+ type: String,
207
+ default: "md"
208
+ },
209
+ /**
210
+ * Text shown in tooltip when you hover the button
211
+ */
212
+ tooltipText: {
213
+ type: String,
214
+ default: ""
215
+ }
216
+ },
217
+ data() {
218
+ return {
219
+ SPLIT_BUTTON_ICON_SIZES
220
+ };
221
+ }
222
+ };
223
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
224
+ const _component_dt_icon_chevron_down = vue.resolveComponent("dt-icon-chevron-down");
225
+ const _component_dt_button = vue.resolveComponent("dt-button");
226
+ const _directive_dt_tooltip = vue.resolveDirective("dt-tooltip");
227
+ return vue.withDirectives((vue.openBlock(), vue.createBlock(_component_dt_button, {
228
+ id: $props.id,
229
+ "data-qa": "dt-split-button-omega",
230
+ active: $props.active,
231
+ "aria-label": $props.ariaLabel,
232
+ class: vue.normalizeClass(`d-split-btn__omega d-split-btn__omega--${$props.size}`),
233
+ disabled: $props.disabled,
234
+ importance: $props.importance,
235
+ kind: $props.kind,
236
+ size: $props.size
237
+ }, {
238
+ icon: vue.withCtx(() => [
239
+ vue.renderSlot(_ctx.$slots, "icon", {
240
+ size: $data.SPLIT_BUTTON_ICON_SIZES[$props.size]
241
+ }, () => [
242
+ vue.createVNode(_component_dt_icon_chevron_down, {
243
+ size: $data.SPLIT_BUTTON_ICON_SIZES[$props.size]
244
+ }, null, 8, ["size"])
245
+ ])
246
+ ]),
247
+ _: 3
248
+ }, 8, ["id", "active", "aria-label", "class", "disabled", "importance", "kind", "size"])), [
249
+ [_directive_dt_tooltip, $props.tooltipText]
250
+ ]);
251
+ }
252
+ const SplitButtonOmega = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
253
+ const _sfc_main = {
254
+ name: "DtSplitButton",
255
+ components: {
256
+ SplitButtonOmega,
257
+ DtDropdown: dropdown.DtDropdown,
258
+ SplitButtonAlpha
259
+ },
260
+ inheritAttrs: false,
261
+ props: {
262
+ /**
263
+ * Determines whether the alpha button should have active styling
264
+ * @values true, false
265
+ */
266
+ alphaActive: {
267
+ type: Boolean,
268
+ default: false
269
+ },
270
+ /**
271
+ * Descriptive label for the alpha button
272
+ */
273
+ alphaAriaLabel: {
274
+ type: String,
275
+ default: null
276
+ },
277
+ /**
278
+ * The position of the icon slot within the alpha button.
279
+ * @values left, right, top, bottom
280
+ */
281
+ alphaIconPosition: {
282
+ type: String,
283
+ default: "left",
284
+ validator: (position) => Object.keys(lib_button.ICON_POSITION_MODIFIERS).includes(position)
285
+ },
286
+ /**
287
+ * Used to customize the alpha label container
288
+ */
289
+ alphaLabelClass: {
290
+ type: [String, Array, Object],
291
+ default: ""
292
+ },
293
+ /**
294
+ * Whether the alpha button should display a loading animation or not.
295
+ * @values true, false
296
+ */
297
+ alphaLoading: {
298
+ type: Boolean,
299
+ default: false
300
+ },
301
+ /**
302
+ * Text shown in tooltip when you hover the alpha button,
303
+ * required if no content is passed to default slot
304
+ */
305
+ alphaTooltipText: {
306
+ type: String,
307
+ default: void 0
308
+ },
309
+ /**
310
+ * Determines whether a screenreader reads live updates of
311
+ * the button content to the user while the button
312
+ * is in focus.
313
+ * @values true, false
314
+ */
315
+ assertiveOnFocus: {
316
+ type: Boolean,
317
+ default: false
318
+ },
319
+ /**
320
+ * HTML button disabled attribute
321
+ * <a class="d-link" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#disabled" target="_blank">
322
+ * (Reference)
323
+ * </a>
324
+ * @values true, false
325
+ */
326
+ disabled: {
327
+ type: Boolean,
328
+ default: false
329
+ },
330
+ /**
331
+ * The direction the dropdown displays relative to the anchor.
332
+ * @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
333
+ */
334
+ dropdownPlacement: {
335
+ type: String,
336
+ default: "bottom-end"
337
+ },
338
+ /**
339
+ * The fill and outline of the button associated with its visual importance.
340
+ * @values clear, outlined, primary
341
+ */
342
+ importance: {
343
+ type: String,
344
+ default: "primary",
345
+ validator: (i) => Object.keys(lib_button.BUTTON_IMPORTANCE_MODIFIERS).includes(i)
346
+ },
347
+ /**
348
+ * The color of the button.
349
+ * @values default, muted, danger, inverted
350
+ */
351
+ kind: {
352
+ type: String,
353
+ default: "default",
354
+ validator: (k) => Object.keys(lib_button.BUTTON_KIND_MODIFIERS).includes(k)
355
+ },
356
+ /**
357
+ * Determines whether the omega button should have active styling
358
+ * @values true, false
359
+ */
360
+ omegaActive: {
361
+ type: Boolean,
362
+ default: false
363
+ },
364
+ /**
365
+ * Descriptive label for the omega button
366
+ */
367
+ omegaAriaLabel: {
368
+ type: String,
369
+ default: null
370
+ },
371
+ /**
372
+ * Element ID, useful in case you need to reference the button
373
+ * as an external anchor for popover.
374
+ */
375
+ omegaId: {
376
+ type: String,
377
+ default: void 0
378
+ },
379
+ /**
380
+ * Text shown in tooltip when you hover the omega button,
381
+ * required as it is an icon only button
382
+ */
383
+ omegaTooltipText: {
384
+ type: String,
385
+ default: void 0
386
+ },
387
+ /**
388
+ * The size of the button.
389
+ * @values xs, sm, md, lg, xl
390
+ */
391
+ size: {
392
+ type: String,
393
+ default: "md",
394
+ validator: (s) => Object.keys(lib_button.BUTTON_SIZE_MODIFIERS).includes(s)
395
+ },
396
+ /**
397
+ * Button width, accepts
398
+ * <a class="d-link" href="https://developer.mozilla.org/en-US/docs/Web/CSS/width" target="_blank">
399
+ * CSS width attribute
400
+ * </a>
401
+ * values
402
+ */
403
+ width: {
404
+ type: String,
405
+ default: null
406
+ }
407
+ },
408
+ emits: [
409
+ /**
410
+ * Native alpha button click event
411
+ *
412
+ * @event click
413
+ * @type {PointerEvent | KeyboardEvent}
414
+ */
415
+ "alpha-clicked",
416
+ /**
417
+ * Native omega button click event
418
+ *
419
+ * @event click
420
+ * @type {PointerEvent | KeyboardEvent}
421
+ */
422
+ "omega-clicked"
423
+ ],
424
+ data() {
425
+ return {
426
+ isDropdownOpen: false
427
+ };
428
+ },
429
+ computed: {
430
+ alphaButtonProps() {
431
+ return {
432
+ active: this.alphaActive,
433
+ ariaLabel: this.alphaAriaLabel,
434
+ assertiveOnFocus: this.assertiveOnFocus,
435
+ disabled: this.disabled,
436
+ iconPosition: this.alphaIconPosition,
437
+ labelClass: this.alphaLabelClass,
438
+ loading: this.alphaLoading,
439
+ importance: this.importance,
440
+ kind: this.kind,
441
+ size: this.size,
442
+ tooltipText: this.alphaTooltipText,
443
+ class: this.$attrs.class
444
+ };
445
+ },
446
+ omegaButtonProps() {
447
+ return {
448
+ id: this.omegaId,
449
+ active: this.omegaActive,
450
+ ariaLabel: this.omegaAriaLabel,
451
+ disabled: this.disabled,
452
+ importance: this.importance,
453
+ kind: this.kind,
454
+ size: this.size,
455
+ tooltipText: this.omegaTooltipText,
456
+ class: this.$attrs.class
457
+ };
458
+ }
459
+ },
460
+ created() {
461
+ this.validateProps();
462
+ },
463
+ updated() {
464
+ this.validateProps();
465
+ },
466
+ methods: {
467
+ validateProps() {
468
+ this.validateAlphaButtonProps();
469
+ this.validateOmegaButtonProps();
470
+ },
471
+ validateAlphaButtonProps() {
472
+ if (common_utils.hasSlotContent(this.$slots.default))
473
+ return;
474
+ if (common_utils.hasSlotContent(this.$slots.alphaIcon) && !this.alphaTooltipText) {
475
+ console.warn("alpha-tooltip-text prop must be set if alpha button has an icon only");
476
+ }
477
+ },
478
+ validateOmegaButtonProps() {
479
+ if (common_utils.hasSlotContent(this.$slots.omega))
480
+ return;
481
+ if (!this.omegaTooltipText) {
482
+ console.warn("omega-tooltip-text prop is required as it is an icon-only button");
483
+ }
484
+ }
485
+ }
486
+ };
487
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
488
+ const _component_split_button_alpha = vue.resolveComponent("split-button-alpha");
489
+ const _component_split_button_omega = vue.resolveComponent("split-button-omega");
490
+ const _component_dt_dropdown = vue.resolveComponent("dt-dropdown");
491
+ return vue.openBlock(), vue.createElementBlock("span", {
492
+ "data-qa": "dt-split-button",
493
+ class: "d-split-btn",
494
+ style: vue.normalizeStyle({ width: $props.width })
495
+ }, [
496
+ vue.createVNode(_component_split_button_alpha, vue.mergeProps($options.alphaButtonProps, {
497
+ ref: "alphaButton",
498
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("alpha-clicked"))
499
+ }), {
500
+ icon: vue.withCtx(({ size: iconSize }) => [
501
+ vue.renderSlot(_ctx.$slots, "alphaIcon", { size: iconSize })
502
+ ]),
503
+ default: vue.withCtx(() => [
504
+ vue.renderSlot(_ctx.$slots, "default")
505
+ ]),
506
+ _: 3
507
+ }, 16),
508
+ vue.renderSlot(_ctx.$slots, "omega", {}, () => [
509
+ _ctx.$slots.dropdownList ? (vue.openBlock(), vue.createBlock(_component_dt_dropdown, {
510
+ key: 0,
511
+ placement: $props.dropdownPlacement,
512
+ onClick: _cache[2] || (_cache[2] = ($event) => $data.isDropdownOpen = true),
513
+ onOpened: _cache[3] || (_cache[3] = (open) => $data.isDropdownOpen = open)
514
+ }, {
515
+ anchor: vue.withCtx((attrs) => [
516
+ vue.createVNode(_component_split_button_omega, vue.mergeProps({ ...attrs, ...$options.omegaButtonProps }, {
517
+ active: $data.isDropdownOpen,
518
+ onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("omega-clicked"))
519
+ }), {
520
+ icon: vue.withCtx(({ size: iconSize }) => [
521
+ vue.renderSlot(_ctx.$slots, "omegaIcon", { size: iconSize })
522
+ ]),
523
+ _: 2
524
+ }, 1040, ["active"])
525
+ ]),
526
+ list: vue.withCtx(({ close }) => [
527
+ vue.renderSlot(_ctx.$slots, "dropdownList", { close })
528
+ ]),
529
+ _: 3
530
+ }, 8, ["placement"])) : (vue.openBlock(), vue.createBlock(_component_split_button_omega, vue.mergeProps({ key: 1 }, $options.omegaButtonProps, {
531
+ onClick: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("omega-clicked"))
532
+ }), {
533
+ icon: vue.withCtx(({ size: iconSize }) => [
534
+ vue.renderSlot(_ctx.$slots, "omegaIcon", { size: iconSize })
535
+ ]),
536
+ _: 3
537
+ }, 16))
538
+ ])
539
+ ], 4);
540
+ }
541
+ const split_button = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
542
+ exports.DtSplitButton = split_button;
543
+ exports.SPLIT_BUTTON_ICON_SIZES = SPLIT_BUTTON_ICON_SIZES;
544
+ //# 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/vue3';\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=\"$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=\"$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=\"$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';\nimport { hasSlotContent } from '@/common/utils';\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\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 (hasSlotContent(this.$slots.default)) return;\n\n if (hasSlotContent(this.$slots.alphaIcon) && !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 (hasSlotContent(this.$slots.omega)) 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","_createBlock","_renderSlot","DtIconChevronDown","getUniqueString","_createVNode","DtDropdown","ICON_POSITION_MODIFIERS","BUTTON_IMPORTANCE_MODIFIERS","BUTTON_KIND_MODIFIERS","BUTTON_SIZE_MODIFIERS","hasSlotContent","_createElementBlock","_mergeProps","_withCtx"],"mappings":"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"}