@dialpad/dialtone-vue 3.41.0-beta.4 → 3.42.0-beta.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.
@@ -2972,17 +2972,25 @@ const focusableElementsList = `button,[href],input,select,textarea,details,[tabi
2972
2972
  /* harmony default export */ const modal = ({
2973
2973
  methods: {
2974
2974
  /**
2975
- * set focus to the first focusable element in your component, includes tabindex="-1".
2975
+ * get the first focusable element in your component, includes tabindex="-1".
2976
2976
  * @param {object} el - optional - ref of dom element to trap focus on.
2977
2977
  * will default to the root node of the vue component
2978
2978
  */
2979
- async focusFirstElement(el) {
2979
+ async getFirstFocusableElement(el) {
2980
2980
  await this.$nextTick();
2981
2981
 
2982
2982
  const focusableElements = this._getFocusableElements(el, true);
2983
2983
 
2984
- const elToFocus = this._getFirstFocusElement(focusableElements);
2984
+ return this._getFirstFocusElement(focusableElements);
2985
+ },
2985
2986
 
2987
+ /**
2988
+ * set focus to the first focusable element in your component, includes tabindex="-1".
2989
+ * @param {object} el - optional - ref of dom element to trap focus on.
2990
+ * will default to the root node of the vue component
2991
+ */
2992
+ async focusFirstElement(el) {
2993
+ const elToFocus = await this.getFirstFocusableElement(el);
2986
2994
  elToFocus === null || elToFocus === void 0 ? void 0 : elToFocus.focus({
2987
2995
  preventScroll: true
2988
2996
  });
@@ -3657,19 +3665,19 @@ const card_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(cardvue_type_
3657
3665
  /* harmony default export */ const card = (card_exports_);
3658
3666
  ;// CONCATENATED MODULE: ./components/card/index.js
3659
3667
 
3660
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=template&id=3595da7e
3668
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/combobox/combobox.vue?vue&type=template&id=5b8afaf4
3661
3669
 
3662
- const comboboxvue_type_template_id_3595da7e_hoisted_1 = {
3670
+ const comboboxvue_type_template_id_5b8afaf4_hoisted_1 = {
3663
3671
  "data-qa": "dt-combobox-input-wrapper"
3664
3672
  };
3665
- function comboboxvue_type_template_id_3595da7e_render(_ctx, _cache, $props, $setup, $data, $options) {
3673
+ function comboboxvue_type_template_id_5b8afaf4_render(_ctx, _cache, $props, $setup, $data, $options) {
3666
3674
  const _component_combobox_loading_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-loading-list");
3667
3675
 
3668
3676
  const _component_combobox_empty_list = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("combobox-empty-list");
3669
3677
 
3670
3678
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
3671
3679
  onKeydown: [_cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEscapeKey'), ["stop"]), ["esc"])), _cache[4] || (_cache[4] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEnterKey'), ["exact"]), ["enter"])), _cache[5] || (_cache[5] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onUpKey'), ["stop", "prevent"]), ["up"])), _cache[6] || (_cache[6] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onDownKey'), ["stop", "prevent"]), ["down"])), _cache[7] || (_cache[7] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onHomeKey'), ["stop", "prevent"]), ["home"])), _cache[8] || (_cache[8] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)($event => $options.onKeyValidation($event, 'onEndKey'), ["stop", "prevent"]), ["end"]))]
3672
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", comboboxvue_type_template_id_3595da7e_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
3680
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", comboboxvue_type_template_id_5b8afaf4_hoisted_1, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "input", {
3673
3681
  inputProps: $options.inputProps
3674
3682
  })]), $props.showList ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
3675
3683
  key: 0,
@@ -3701,7 +3709,7 @@ function comboboxvue_type_template_id_3595da7e_render(_ctx, _cache, $props, $set
3701
3709
  clearHighlightIndex: $options.clearHighlightIndex
3702
3710
  })], 544)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)], 32);
3703
3711
  }
3704
- ;// CONCATENATED MODULE: ./components/combobox/combobox.vue?vue&type=template&id=3595da7e
3712
+ ;// CONCATENATED MODULE: ./components/combobox/combobox.vue?vue&type=template&id=5b8afaf4
3705
3713
 
3706
3714
  ;// CONCATENATED MODULE: ./common/mixins/dom.js
3707
3715
  /* harmony default export */ const dom = ({
@@ -4019,6 +4027,7 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
4019
4027
  },
4020
4028
 
4021
4029
  setHighlightIndex(num) {
4030
+ console.log('setting highlight index to ' + num);
4022
4031
  this[indexKey] = num;
4023
4032
  this[idKey] = this._getItemId(num);
4024
4033
 
@@ -4028,6 +4037,7 @@ const ERROR_INVALID_LIST_ELEMENT = 'listElementKey is required or the referenced
4028
4037
  },
4029
4038
 
4030
4039
  setHighlightId(id) {
4040
+ console.log('setting highlight id to ' + id);
4031
4041
  this[idKey] = id;
4032
4042
  this[indexKey] = this._getItemIndex(id);
4033
4043
 
@@ -5651,6 +5661,7 @@ const LABEL_SIZES = {
5651
5661
  var _this$outsideRendered2;
5652
5662
 
5653
5663
  this.outsideRenderedListRef = contentRef;
5664
+ console.log(this.outsideRenderedListRef);
5654
5665
  (_this$outsideRendered2 = this.outsideRenderedListRef) === null || _this$outsideRendered2 === void 0 ? void 0 : _this$outsideRendered2.addEventListener('mousemove', this.onMouseHighlight);
5655
5666
  this.$emit('opened', open);
5656
5667
 
@@ -5694,7 +5705,7 @@ const LABEL_SIZES = {
5694
5705
 
5695
5706
 
5696
5707
  ;
5697
- const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxvue_type_script_lang_js, [['render',comboboxvue_type_template_id_3595da7e_render]])
5708
+ const combobox_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(comboboxvue_type_script_lang_js, [['render',comboboxvue_type_template_id_5b8afaf4_render]])
5698
5709
 
5699
5710
  /* harmony default export */ const combobox = (combobox_exports_);
5700
5711
  ;// CONCATENATED MODULE: ./components/combobox/index.js
@@ -6349,11 +6360,11 @@ function dropdownvue_type_template_id_878a8588_render(_ctx, _cache, $props, $set
6349
6360
  }
6350
6361
  ;// CONCATENATED MODULE: ./components/dropdown/dropdown.vue?vue&type=template&id=878a8588
6351
6362
 
6352
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/popover/popover.vue?vue&type=template&id=3758d616
6363
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/popover/popover.vue?vue&type=template&id=3aa43aea
6353
6364
 
6354
- const popovervue_type_template_id_3758d616_hoisted_1 = ["aria-hidden"];
6355
- const popovervue_type_template_id_3758d616_hoisted_2 = ["id", "tabindex"];
6356
- function popovervue_type_template_id_3758d616_render(_ctx, _cache, $props, $setup, $data, $options) {
6365
+ const popovervue_type_template_id_3aa43aea_hoisted_1 = ["aria-hidden"];
6366
+ const popovervue_type_template_id_3aa43aea_hoisted_2 = ["id", "tabindex"];
6367
+ function popovervue_type_template_id_3aa43aea_render(_ctx, _cache, $props, $setup, $data, $options) {
6357
6368
  const _component_popover_header_footer = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("popover-header-footer");
6358
6369
 
6359
6370
  const _component_sr_only_close_button = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("sr-only-close-button");
@@ -6367,7 +6378,7 @@ function popovervue_type_template_id_3758d616_render(_ctx, _cache, $props, $setu
6367
6378
  class: "d-modal--transparent",
6368
6379
  "aria-hidden": $props.modal && $data.isOpen ? 'false' : 'true',
6369
6380
  onClick: _cache[0] || (_cache[0] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withModifiers)(() => {}, ["prevent", "stop"]))
6370
- }, null, 8, popovervue_type_template_id_3758d616_hoisted_1)])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveDynamicComponent)($props.elementType), {
6381
+ }, null, 8, popovervue_type_template_id_3aa43aea_hoisted_1)])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveDynamicComponent)($props.elementType), {
6371
6382
  ref: "popover",
6372
6383
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)(['d-popover', {
6373
6384
  'd-popover__anchor--opened': $data.isOpen
@@ -6399,7 +6410,7 @@ function popovervue_type_template_id_3758d616_render(_ctx, _cache, $props, $setu
6399
6410
  'aria-controls': $props.id,
6400
6411
  'aria-haspopup': $props.role
6401
6412
  }
6402
- })], 40, popovervue_type_template_id_3758d616_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_lazy_show, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
6413
+ })], 40, popovervue_type_template_id_3aa43aea_hoisted_2), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_dt_lazy_show, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.mergeProps)({
6403
6414
  id: $props.id,
6404
6415
  ref: "content",
6405
6416
  role: $props.role,
@@ -6462,7 +6473,7 @@ function popovervue_type_template_id_3758d616_render(_ctx, _cache, $props, $setu
6462
6473
  _: 3
6463
6474
  }, 8, ["class"]))]);
6464
6475
  }
6465
- ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=template&id=3758d616
6476
+ ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=template&id=3aa43aea
6466
6477
 
6467
6478
  ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js
6468
6479
  function getWindow(node) {
@@ -11567,10 +11578,10 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11567
11578
  },
11568
11579
 
11569
11580
  appendTo(appendTo) {
11570
- var _this$tip3;
11581
+ var _this$tip3, _this$anchorEl, _this$anchorEl$getRoo;
11571
11582
 
11572
11583
  (_this$tip3 = this.tip) === null || _this$tip3 === void 0 ? void 0 : _this$tip3.setProps({
11573
- appendTo
11584
+ appendTo: this.appendTo === document.body ? (_this$anchorEl = this.anchorEl) === null || _this$anchorEl === void 0 ? void 0 : (_this$anchorEl$getRoo = _this$anchorEl.getRootNode()) === null || _this$anchorEl$getRoo === void 0 ? void 0 : _this$anchorEl$getRoo.querySelector('body') : this.appendTo
11574
11585
  });
11575
11586
  },
11576
11587
 
@@ -11629,9 +11640,11 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11629
11640
  isOpen(isOpen, isPrev) {
11630
11641
  if (isOpen) {
11631
11642
  this.initTippyInstance();
11643
+ this.preventScrolling();
11632
11644
  } else if (!isOpen && isPrev !== isOpen) {
11633
11645
  this.removeEventListeners();
11634
11646
  this.tip.hide();
11647
+ this.enableScrolling();
11635
11648
  }
11636
11649
  }
11637
11650
 
@@ -11690,9 +11703,9 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11690
11703
 
11691
11704
 
11692
11705
  if (this.open === null || this.open === undefined) {
11693
- var _this$anchorEl;
11706
+ var _this$anchorEl2;
11694
11707
 
11695
- if (!this.anchorEl.contains(e.target) && !this.anchorEl.isEqualNode(e.target) || (_this$anchorEl = this.anchorEl) !== null && _this$anchorEl !== void 0 && _this$anchorEl.disabled) {
11708
+ if (!this.anchorEl.contains(e.target) && !this.anchorEl.isEqualNode(e.target) || (_this$anchorEl2 = this.anchorEl) !== null && _this$anchorEl2 !== void 0 && _this$anchorEl2.disabled) {
11696
11709
  return;
11697
11710
  }
11698
11711
 
@@ -11740,10 +11753,7 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11740
11753
  },
11741
11754
 
11742
11755
  addEventListeners() {
11743
- window.addEventListener('dt-popover-close', this.closePopover);
11744
- window.addEventListener('wheel', this.preventScrolling, {
11745
- passive: false
11746
- }); // align popover content width when contentWidth is 'anchor'
11756
+ window.addEventListener('dt-popover-close', this.closePopover); // align popover content width when contentWidth is 'anchor'
11747
11757
 
11748
11758
  if (this.contentWidth === 'anchor') {
11749
11759
  window.addEventListener('resize', this.onResize);
@@ -11752,9 +11762,6 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11752
11762
 
11753
11763
  removeEventListeners() {
11754
11764
  window.removeEventListener('dt-popover-close', this.closePopover);
11755
- window.removeEventListener('wheel', this.preventScrolling, {
11756
- passive: false
11757
- });
11758
11765
 
11759
11766
  if (this.contentWidth === 'anchor') {
11760
11767
  window.removeEventListener('resize', this.onResize);
@@ -11766,11 +11773,40 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11766
11773
  },
11767
11774
 
11768
11775
  /*
11769
- * Prevents scrolling only when the popover is set to modal
11776
+ * Prevents scrolling outside of the currently opened modal popover by:
11777
+ * - when anchor is not within another popover: setting the body to overflow: hidden
11778
+ * - when anchor is within another popover: set the popover dialog container to it's non-modal z-index
11779
+ * since it is no longer the active modal. This puts it underneath the overlay and prevents scrolling.
11770
11780
  **/
11771
- preventScrolling(e) {
11772
- if (!this.modal) return;
11773
- e.preventDefault();
11781
+ async preventScrolling() {
11782
+ await this.$nextTick();
11783
+
11784
+ if (this.modal) {
11785
+ const element = this.anchorEl.closest('body, .tippy-box');
11786
+
11787
+ if (element.tagName.toLowerCase() === 'body') {
11788
+ element.classList.add('d-of-hidden');
11789
+ } else {
11790
+ element.classList.add('d-zi-popover');
11791
+ }
11792
+ }
11793
+ },
11794
+
11795
+ /*
11796
+ * Resets the prevent scrolling properties set in preventScrolling() back to normal.
11797
+ **/
11798
+ async enableScrolling() {
11799
+ await this.$nextTick();
11800
+
11801
+ if (this.modal) {
11802
+ const element = this.anchorEl.closest('body, .tippy-box');
11803
+
11804
+ if (element.tagName.toLowerCase() === 'body') {
11805
+ element.classList.remove('d-of-hidden');
11806
+ } else {
11807
+ element.classList.remove('d-zi-popover');
11808
+ }
11809
+ }
11774
11810
  },
11775
11811
 
11776
11812
  removeReferences() {
@@ -11897,7 +11933,7 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11897
11933
  },
11898
11934
 
11899
11935
  initTippyInstance() {
11900
- var _this$anchorEl2, _this$anchorEl2$getRo;
11936
+ var _this$anchorEl3, _this$anchorEl3$getRo;
11901
11937
 
11902
11938
  this.tip = tippy_utils_createTippy(this.anchorEl, {
11903
11939
  popperOptions: this.popperOptions(),
@@ -11905,7 +11941,7 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11905
11941
  placement: this.placement,
11906
11942
  offset: this.offset,
11907
11943
  sticky: this.sticky,
11908
- appendTo: this.appendTo === document.body ? (_this$anchorEl2 = this.anchorEl) === null || _this$anchorEl2 === void 0 ? void 0 : (_this$anchorEl2$getRo = _this$anchorEl2.getRootNode()) === null || _this$anchorEl2$getRo === void 0 ? void 0 : _this$anchorEl2$getRo.querySelector('body') : this.appendTo,
11944
+ appendTo: this.appendTo === document.body ? (_this$anchorEl3 = this.anchorEl) === null || _this$anchorEl3 === void 0 ? void 0 : (_this$anchorEl3$getRo = _this$anchorEl3.getRootNode()) === null || _this$anchorEl3$getRo === void 0 ? void 0 : _this$anchorEl3$getRo.querySelector('body') : this.appendTo,
11909
11945
  interactive: true,
11910
11946
  trigger: 'manual',
11911
11947
  // We have to manage hideOnClick functionality manually to handle
@@ -11926,10 +11962,10 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11926
11962
  });
11927
11963
  ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=script&lang=js
11928
11964
 
11929
- ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-74.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-74.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-74.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/popover/popover.vue?vue&type=style&index=0&id=3758d616&lang=less
11965
+ ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-74.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-74.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-74.use[2]!./node_modules/less-loader/dist/cjs.js??clonedRuleSet-74.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/popover/popover.vue?vue&type=style&index=0&id=3aa43aea&lang=less
11930
11966
  // extracted by mini-css-extract-plugin
11931
11967
 
11932
- ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=style&index=0&id=3758d616&lang=less
11968
+ ;// CONCATENATED MODULE: ./components/popover/popover.vue?vue&type=style&index=0&id=3aa43aea&lang=less
11933
11969
 
11934
11970
  ;// CONCATENATED MODULE: ./components/popover/popover.vue
11935
11971
 
@@ -11939,7 +11975,7 @@ const popover_header_footer_exports_ = /*#__PURE__*/(0,exportHelper/* default */
11939
11975
  ;
11940
11976
 
11941
11977
 
11942
- const popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(popovervue_type_script_lang_js, [['render',popovervue_type_template_id_3758d616_render]])
11978
+ const popover_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(popovervue_type_script_lang_js, [['render',popovervue_type_template_id_3aa43aea_render]])
11943
11979
 
11944
11980
  /* harmony default export */ const popover = (popover_exports_);
11945
11981
  ;// CONCATENATED MODULE: ./components/popover/index.js
@@ -15708,31 +15744,34 @@ function tabvue_type_template_id_af343bac_render(_ctx, _cache, $props, $setup, $
15708
15744
  const tab_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tabvue_type_script_lang_js, [['render',tabvue_type_template_id_af343bac_render]])
15709
15745
 
15710
15746
  /* harmony default export */ const tab = (tab_exports_);
15711
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tabs/tab_panel.vue?vue&type=template&id=572b0140
15747
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tabs/tab_panel.vue?vue&type=template&id=2cfdc9e8
15712
15748
 
15713
- const tab_panelvue_type_template_id_572b0140_hoisted_1 = ["id", "aria-labelledby", "aria-hidden"];
15714
- function tab_panelvue_type_template_id_572b0140_render(_ctx, _cache, $props, $setup, $data, $options) {
15749
+ const tab_panelvue_type_template_id_2cfdc9e8_hoisted_1 = ["id", "tabindex", "aria-labelledby", "aria-hidden"];
15750
+ function tab_panelvue_type_template_id_2cfdc9e8_render(_ctx, _cache, $props, $setup, $data, $options) {
15715
15751
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withDirectives)(((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
15716
15752
  id: `dt-panel-${$props.id}`,
15717
15753
  role: "tabpanel",
15718
- tabindex: "0",
15754
+ tabindex: $data.isFirstElementFocusable ? -1 : 0,
15719
15755
  "aria-labelledby": `dt-tab-${$props.tabId}`,
15720
15756
  "aria-hidden": `${$options.hidePanel}`,
15721
15757
  class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.normalizeClass)([{
15722
15758
  'd-d-none': $options.hidePanel
15723
15759
  }, $props.tabPanelClass]),
15724
15760
  "data-qa": "dt-tab-panel"
15725
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default")], 10, tab_panelvue_type_template_id_572b0140_hoisted_1)), [[external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.vShow, !$props.hidden]]);
15761
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderSlot)(_ctx.$slots, "default")], 10, tab_panelvue_type_template_id_2cfdc9e8_hoisted_1)), [[external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.vShow, !$props.hidden]]);
15726
15762
  }
15727
- ;// CONCATENATED MODULE: ./components/tabs/tab_panel.vue?vue&type=template&id=572b0140
15763
+ ;// CONCATENATED MODULE: ./components/tabs/tab_panel.vue?vue&type=template&id=2cfdc9e8
15728
15764
 
15729
15765
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./components/tabs/tab_panel.vue?vue&type=script&lang=js
15766
+
15730
15767
  /**
15731
15768
  * Tabs allow users to navigation between grouped content in different views while within the same page context.
15732
15769
  * @see https://dialpad.design/components/tabs.html
15733
15770
  */
15771
+
15734
15772
  /* harmony default export */ const tab_panelvue_type_script_lang_js = ({
15735
15773
  name: 'DtTabPanel',
15774
+ mixins: [modal],
15736
15775
  inject: ['groupContext'],
15737
15776
  props: {
15738
15777
  /**
@@ -15768,12 +15807,24 @@ function tab_panelvue_type_template_id_572b0140_render(_ctx, _cache, $props, $se
15768
15807
  default: ''
15769
15808
  }
15770
15809
  },
15810
+
15811
+ data() {
15812
+ return {
15813
+ isFirstElementFocusable: false
15814
+ };
15815
+ },
15816
+
15771
15817
  computed: {
15772
15818
  hidePanel() {
15773
15819
  return this.groupContext.selected !== this.id || this.hidden;
15774
15820
  }
15775
15821
 
15822
+ },
15823
+
15824
+ async mounted() {
15825
+ this.isFirstElementFocusable = !!(await this.getFirstFocusableElement(this.$el));
15776
15826
  }
15827
+
15777
15828
  });
15778
15829
  ;// CONCATENATED MODULE: ./components/tabs/tab_panel.vue?vue&type=script&lang=js
15779
15830
 
@@ -15783,7 +15834,7 @@ function tab_panelvue_type_template_id_572b0140_render(_ctx, _cache, $props, $se
15783
15834
 
15784
15835
 
15785
15836
  ;
15786
- const tab_panel_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tab_panelvue_type_script_lang_js, [['render',tab_panelvue_type_template_id_572b0140_render]])
15837
+ const tab_panel_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(tab_panelvue_type_script_lang_js, [['render',tab_panelvue_type_template_id_2cfdc9e8_render]])
15787
15838
 
15788
15839
  /* harmony default export */ const tab_panel = (tab_panel_exports_);
15789
15840
  ;// CONCATENATED MODULE: ./components/tabs/index.js