@dialpad/dialtone 9.101.1 → 9.102.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 (51) hide show
  1. package/dist/tokens/doc.json +20346 -20346
  2. package/dist/vue2/component-documentation.json +1 -1
  3. package/dist/vue2/components/dropdown/dropdown.vue.cjs +2 -0
  4. package/dist/vue2/components/dropdown/dropdown.vue.cjs.map +1 -1
  5. package/dist/vue2/components/dropdown/dropdown.vue.js +2 -0
  6. package/dist/vue2/components/dropdown/dropdown.vue.js.map +1 -1
  7. package/dist/vue2/components/popover/popover.vue.cjs +8 -1
  8. package/dist/vue2/components/popover/popover.vue.cjs.map +1 -1
  9. package/dist/vue2/components/popover/popover.vue.js +8 -1
  10. package/dist/vue2/components/popover/popover.vue.js.map +1 -1
  11. package/dist/vue2/components/tab/tab.vue.cjs +3 -15
  12. package/dist/vue2/components/tab/tab.vue.cjs.map +1 -1
  13. package/dist/vue2/components/tab/tab.vue.js +3 -15
  14. package/dist/vue2/components/tab/tab.vue.js.map +1 -1
  15. package/dist/vue2/components/tab/tab_group.vue.cjs +33 -29
  16. package/dist/vue2/components/tab/tab_group.vue.cjs.map +1 -1
  17. package/dist/vue2/components/tab/tab_group.vue.js +33 -29
  18. package/dist/vue2/components/tab/tab_group.vue.js.map +1 -1
  19. package/dist/vue2/components/tab/tab_panel.vue.cjs +1 -1
  20. package/dist/vue2/components/tab/tab_panel.vue.cjs.map +1 -1
  21. package/dist/vue2/components/tab/tab_panel.vue.js +1 -1
  22. package/dist/vue2/components/tab/tab_panel.vue.js.map +1 -1
  23. package/dist/vue2/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  24. package/dist/vue2/types/components/popover/popover.vue.d.ts +2 -0
  25. package/dist/vue2/types/components/tab/tab.vue.d.ts +1 -4
  26. package/dist/vue2/types/components/tab/tab_group.vue.d.ts +7 -13
  27. package/dist/vue2/types/components/tab/tab_group.vue.d.ts.map +1 -1
  28. package/dist/vue2/types/components/tab/tab_panel.vue.d.ts.map +1 -1
  29. package/dist/vue3/component-documentation.json +1 -1
  30. package/dist/vue3/components/dropdown/dropdown.vue.cjs +3 -0
  31. package/dist/vue3/components/dropdown/dropdown.vue.cjs.map +1 -1
  32. package/dist/vue3/components/dropdown/dropdown.vue.js +3 -0
  33. package/dist/vue3/components/dropdown/dropdown.vue.js.map +1 -1
  34. package/dist/vue3/components/tab/tab.vue.cjs +3 -15
  35. package/dist/vue3/components/tab/tab.vue.cjs.map +1 -1
  36. package/dist/vue3/components/tab/tab.vue.js +3 -15
  37. package/dist/vue3/components/tab/tab.vue.js.map +1 -1
  38. package/dist/vue3/components/tab/tab_group.vue.cjs +35 -30
  39. package/dist/vue3/components/tab/tab_group.vue.cjs.map +1 -1
  40. package/dist/vue3/components/tab/tab_group.vue.js +35 -30
  41. package/dist/vue3/components/tab/tab_group.vue.js.map +1 -1
  42. package/dist/vue3/components/tab/tab_panel.vue.cjs +5 -1
  43. package/dist/vue3/components/tab/tab_panel.vue.cjs.map +1 -1
  44. package/dist/vue3/components/tab/tab_panel.vue.js +6 -2
  45. package/dist/vue3/components/tab/tab_panel.vue.js.map +1 -1
  46. package/dist/vue3/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  47. package/dist/vue3/types/components/tab/tab.vue.d.ts +1 -4
  48. package/dist/vue3/types/components/tab/tab_group.vue.d.ts +8 -13
  49. package/dist/vue3/types/components/tab/tab_group.vue.d.ts.map +1 -1
  50. package/dist/vue3/types/components/tab/tab_panel.vue.d.ts.map +1 -1
  51. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tab_group.vue.js","sources":["../../../components/tab/tab_group.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-tab-group\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/interactive-supports-focus -->\n <div\n :class=\"[\n 'd-tablist',\n TAB_LIST_SIZE_MODIFIERS[size],\n {\n [TAB_LIST_KIND_MODIFIERS.inverted]: inverted,\n [TAB_LIST_IMPORTANCE_MODIFIERS.borderless]: borderless,\n },\n tabListClass,\n ]\"\n v-bind=\"tabListChildProps\"\n role=\"tablist\"\n :aria-label=\"label\"\n @keyup.left=\"tabLeft\"\n @keyup.right=\"tabRight\"\n @keyup.enter=\"selectTab\"\n @keyup.space=\"selectTab\"\n @keydown.home=\"onHomeButton\"\n @keydown.end=\"onEndButton\"\n >\n <!-- @slot Slot for Tabs -->\n <slot name=\"tabs\" />\n </div>\n <!-- @slot Default slot for Panel -->\n <slot />\n </div>\n</template>\n\n<script>\nimport {\n TAB_LIST_SIZES,\n TAB_LIST_KIND_MODIFIERS,\n TAB_LIST_IMPORTANCE_MODIFIERS,\n TAB_LIST_SIZE_MODIFIERS,\n} from './tabs_constants';\n\n/**\n * Tabs allow users to navigation between grouped content in different views while within the same page context.\n * @see https://dialtone.dialpad.com/components/tabs.html\n */\nexport default {\n name: 'DtTabGroup',\n\n provide () {\n return {\n groupContext: this.provideObj,\n changeContentPanel: this.changeContentPanel,\n setFocus: this.setFocus,\n };\n },\n\n props: {\n /**\n * Identifies the tab group\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * The id of the selected tab panel which should be displayed\n */\n selected: {\n type: String,\n default: '',\n },\n\n /**\n * If true, disables the tab group\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true, applies inverted styles to the tab group\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true, applies borderless styles to the tab group\n * @values true, false\n */\n borderless: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If provided, applies size styles to the tab group\n * @values default, sm\n */\n size: {\n type: String,\n default: 'default',\n validate (size) {\n return TAB_LIST_SIZES.includes(size);\n },\n },\n\n /**\n * Pass through classes, used to customize the tab list\n */\n tabListClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Pass through props, used to customize the tab list\n */\n tabListChildProps: {\n type: Object,\n default: () => ({}),\n },\n },\n\n emits: [\n /**\n * Change tab event with the arguments: selected id of the current tab and disabled value\n *\n * @event change\n * @type {Object}\n */\n 'change',\n ],\n\n data () {\n return {\n provideObj: {\n selected: '', // the currently displayed tab id\n disabled: false, // disable group\n },\n\n focusId: null,\n tabs: [],\n TAB_LIST_SIZE_MODIFIERS,\n TAB_LIST_KIND_MODIFIERS,\n TAB_LIST_IMPORTANCE_MODIFIERS,\n };\n },\n\n watch: {\n disabled: {\n immediate: true,\n handler () {\n this.provideObj.disabled = this.disabled;\n },\n },\n\n selected: {\n immediate: true,\n handler () {\n this.provideObj.selected = this.selected;\n },\n },\n },\n\n mounted () {\n this.updateSelected();\n },\n\n beforeUpdate () {\n this.updateSelected();\n },\n\n methods: {\n updateSelected () {\n /**\n * Prevent override tab selected by default\n */\n if (!this.provideObj.selected) {\n this.provideObj.selected = this.selected;\n }\n this.tabs = this.getTabChildren();\n },\n\n setFocus (focusId) {\n this.focusId = focusId;\n },\n\n getTabChildren () {\n return Array.from(this.$el.querySelectorAll('.d-tab'))\n .map(el => {\n return ({\n context: el,\n panelId: el.getAttribute('aria-controls')?.replace('dt-panel-', ''),\n id: el.getAttribute('id')?.replace('dt-tab-', ''),\n isSelected: el.getAttribute('aria-selected') === 'true',\n });\n });\n },\n\n onChange () {\n this.$emit('change', { ...this.provideObj });\n },\n\n changeContentPanel ({ selected, selectOverride }) {\n this.provideObj.selected = selected;\n if (!selectOverride) {\n this.onChange();\n }\n },\n\n tabLeft () {\n const { index, tabs } = this.getIndexAndTabs();\n if (index === -1) return;\n const indexElement = index - 1 < 0 ? tabs.length - 1 : index - 1;\n this.selectFocusOnTab(indexElement, tabs);\n },\n\n tabRight () {\n const { index, tabs } = this.getIndexAndTabs();\n if (index === -1) return;\n\n const indexElement = index + 1 > tabs.length - 1 ? 0 : index + 1;\n this.selectFocusOnTab(indexElement, tabs);\n },\n\n selectFocusOnTab (index, tabs) {\n const { context } = tabs[index];\n context.focus();\n },\n\n selectTab () {\n const { tabs, index } = this.getIndexAndTabs();\n this.selectTabByIndex(index, tabs);\n },\n\n selectTabByIndex (index, tabs) {\n const { context, panelId } = tabs[index];\n this.provideObj.selected = panelId;\n context.focus();\n },\n\n getIndexAndTabs () {\n const index = this.tabs.findIndex((context) =>\n this.focusId ? context.id === `${this.focusId}` : context.isSelected);\n return {\n tabs: this.tabs,\n index,\n };\n },\n\n onHomeButton () {\n if (this.tabs.length === 0) return;\n this.tabs[0]?.context?.focus();\n },\n\n onEndButton () {\n if (this.tabs.length === 0) return;\n this.tabs[this.tabs.length - 1]?.context?.focus();\n },\n },\n};\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tab_group.vue.js","sources":["../../../components/tab/tab_group.vue"],"sourcesContent":["<template>\n <div\n data-qa=\"dt-tab-group\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/interactive-supports-focus -->\n <div\n :class=\"[\n 'd-tablist',\n TAB_LIST_SIZE_MODIFIERS[size],\n {\n [TAB_LIST_KIND_MODIFIERS.inverted]: inverted,\n [TAB_LIST_IMPORTANCE_MODIFIERS.borderless]: borderless,\n },\n tabListClass,\n ]\"\n v-bind=\"tabListChildProps\"\n role=\"tablist\"\n :aria-label=\"label\"\n @keyup.left=\"tabLeft\"\n @keyup.right=\"tabRight\"\n @keyup.enter=\"selectTab\"\n @keyup.space=\"selectTab\"\n @click=\"selectTab\"\n @keydown.home=\"onHomeButton\"\n @keydown.end=\"onEndButton\"\n >\n <!-- @slot Slot for Tabs -->\n <slot name=\"tabs\" />\n </div>\n <!-- @slot Default slot for Panel -->\n <slot />\n </div>\n</template>\n\n<script>\nimport {\n TAB_LIST_SIZES,\n TAB_LIST_KIND_MODIFIERS,\n TAB_LIST_IMPORTANCE_MODIFIERS,\n TAB_LIST_SIZE_MODIFIERS,\n} from './tabs_constants';\n\n/**\n * Tabs allow users to navigation between grouped content in different views while within the same page context.\n * @see https://dialtone.dialpad.com/components/tabs.html\n */\nexport default {\n name: 'DtTabGroup',\n\n provide () {\n return {\n groupContext: this.provideObj,\n setFocus: this.setFocus,\n };\n },\n\n props: {\n /**\n * Identifies the tab group\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * The id of the selected tab panel which should be displayed\n */\n selected: {\n type: String,\n default: '',\n },\n\n /**\n * If true, disables the tab group\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true, applies inverted styles to the tab group\n * @values true, false\n */\n inverted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If true, applies borderless styles to the tab group\n * @values true, false\n */\n borderless: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If provided, applies size styles to the tab group\n * @values default, sm\n */\n size: {\n type: String,\n default: 'default',\n validate (size) {\n return TAB_LIST_SIZES.includes(size);\n },\n },\n\n /**\n * Pass through classes, used to customize the tab list\n */\n tabListClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Pass through props, used to customize the tab list\n */\n tabListChildProps: {\n type: Object,\n default: () => ({}),\n },\n },\n\n emits: [\n /**\n * Change tab event with the arguments: selected id of the current tab and disabled value\n *\n * @event change\n * @type {Object}\n */\n 'change',\n\n /**\n * Before change tab event with the event argument, useful to perform validations and prevent changing tabs if neccessary.\n *\n * @event before-change\n * @type {Event}\n */\n 'before-change',\n ],\n\n data () {\n return {\n provideObj: {\n selected: '', // the currently displayed tab id\n disabled: false, // disable group\n },\n\n focusId: null,\n tabs: [],\n TAB_LIST_SIZE_MODIFIERS,\n TAB_LIST_KIND_MODIFIERS,\n TAB_LIST_IMPORTANCE_MODIFIERS,\n };\n },\n\n watch: {\n disabled: {\n immediate: true,\n handler () {\n this.provideObj.disabled = this.disabled;\n },\n },\n\n selected: {\n immediate: true,\n handler () {\n this.provideObj.selected = this.selected;\n },\n },\n },\n\n mounted () {\n this.updateSelected();\n },\n\n beforeUpdate () {\n this.updateSelected();\n },\n\n methods: {\n updateSelected () {\n /**\n * Prevent override tab selected by default\n */\n if (!this.provideObj.selected) {\n this.provideObj.selected = this.selected;\n }\n this.tabs = this.getTabChildren();\n },\n\n setFocus (focusId) {\n this.focusId = focusId;\n },\n\n getTabChildren () {\n return Array.from(this.$el.querySelectorAll('.d-tab'))\n .map(el => {\n return ({\n context: el,\n panelId: el.getAttribute('aria-controls')?.replace('dt-panel-', ''),\n tabId: el.getAttribute('id')?.replace('dt-tab-', ''),\n isSelected: el.getAttribute('aria-selected') === 'true',\n });\n });\n },\n\n onChange () {\n this.$emit('change', { ...this.provideObj });\n },\n\n tabLeft () {\n const index = this.getFocusedTabIndex();\n if (index === -1) return;\n\n const indexElement = index - 1 < 0 ? this.tabs.length - 1 : index - 1;\n this.selectFocusOnTab(indexElement);\n },\n\n tabRight () {\n const index = this.getFocusedTabIndex();\n if (index === -1) return;\n\n const indexElement = index + 1 > this.tabs.length - 1 ? 0 : index + 1;\n this.selectFocusOnTab(indexElement);\n },\n\n selectFocusOnTab (index) {\n const { context } = this.tabs[index];\n context.focus();\n },\n\n selectTab (event) {\n if (this.isSameTabClicked()) return;\n\n this.$emit('before-change', event);\n if (event.defaultPrevented) return;\n\n const index = this.getFocusedTabIndex();\n\n this.selectTabByIndex(index);\n this.onChange();\n },\n\n selectTabByIndex (index) {\n const { context, panelId } = this.tabs[index];\n this.provideObj.selected = panelId;\n context.focus();\n },\n\n getFocusedTabIndex () {\n return this.tabs.findIndex((context) =>\n this.focusId ? context.tabId === `${this.focusId}` : context.isSelected);\n },\n\n onHomeButton () {\n if (this.tabs.length === 0) return;\n this.tabs[0]?.context?.focus();\n },\n\n onEndButton () {\n if (this.tabs.length === 0) return;\n this.tabs[this.tabs.length - 1]?.context?.focus();\n },\n\n isSameTabClicked () {\n const tab = this.tabs[this.getFocusedTabIndex()];\n return this.provideObj.selected === tab.panelId;\n },\n },\n};\n</script>\n"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ const _sfc_main = {
72
72
  };
73
73
  var _sfc_render = function render() {
74
74
  var _vm = this, _c = _vm._self._c;
75
- return _c("div", { directives: [{ name: "show", rawName: "v-show", value: !_vm.hidePanel, expression: "!hidePanel" }], class: _vm.tabPanelClass, attrs: { "id": `dt-panel-${_vm.id}`, "role": "tabpanel", "tabindex": _vm.isFirstElementFocusable ? -1 : 0, "aria-labelledby": `dt-tab-${_vm.tabId}`, "aria-hidden": `${_vm.hidePanel}`, "data-qa": "dt-tab-panel" } }, [_vm._t("default")], 2);
75
+ return _c("div", { directives: [{ name: "show", rawName: "v-show", value: !_vm.hidePanel, expression: "!hidePanel" }], class: _vm.tabPanelClass, attrs: { "id": `dt-panel-${_vm.id}`, "role": "tabpanel", "tabindex": _vm.isFirstElementFocusable ? -1 : 0, "aria-labelledby": `dt-tab-${_vm.tabId}`, "aria-hidden": `${_vm.hidePanel}`, "data-qa": "dt-tab-panel" } }, [_c("div", { directives: [{ name: "show", rawName: "v-show", value: !_vm.hidden, expression: "!hidden" }] }, [_vm._t("default")], 2)]);
76
76
  };
77
77
  var _sfc_staticRenderFns = [];
78
78
  var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.default(
@@ -1 +1 @@
1
- {"version":3,"file":"tab_panel.vue.cjs","sources":["../../../components/tab/tab_panel.vue"],"sourcesContent":["<template>\n <div\n v-show=\"!hidePanel\"\n :id=\"`dt-panel-${id}`\"\n role=\"tabpanel\"\n :tabindex=\"isFirstElementFocusable ? -1 : 0\"\n :aria-labelledby=\"`dt-tab-${tabId}`\"\n :aria-hidden=\"`${hidePanel}`\"\n :class=\"tabPanelClass\"\n data-qa=\"dt-tab-panel\"\n >\n <!-- @slot Default slot for Tab Panel -->\n <slot v-show=\"!hidden\" />\n </div>\n</template>\n\n<script>\nimport Modal from '@/common/mixins/modal';\n\n/**\n * Tabs allow users to navigation between grouped content in different views while within the same page context.\n * @see https://dialtone.dialpad.com/components/tabs.html\n */\nexport default {\n name: 'DtTabPanel',\n\n mixins: [Modal],\n\n inject: ['groupContext'],\n\n props: {\n /**\n * Id of the panel\n */\n id: {\n type: String,\n required: true,\n },\n\n /**\n * Id of the associated tab\n */\n tabId: {\n type: String,\n required: true,\n },\n\n /**\n * If true, hides the tab content\n * @values true, false\n */\n hidden: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Used to customize the tab element\n */\n tabPanelClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n data () {\n return {\n isFirstElementFocusable: false,\n };\n },\n\n computed: {\n hidePanel () {\n return this.groupContext.selected !== this.id || this.hidden;\n },\n },\n\n async mounted () {\n const firstFocusableElement = await this.getFirstFocusableElement(this.$el);\n\n if (!firstFocusableElement) {\n this.isFirstElementFocusable = false;\n } else {\n // If the first focusable element isn't the first element in the panel,\n // then we need to set the panel tabindex to 0.\n // See notes in https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n this.isFirstElementFocusable = this.isFirstElementOfPanel(firstFocusableElement);\n }\n },\n\n methods: {\n isFirstElementOfPanel (element) {\n let current = element;\n let isFirstElement = true;\n\n while (current) {\n if (current.previousElementSibling !== null) {\n isFirstElement = false;\n break;\n }\n current = current.parentNode !== this.$el ? current.parentNode : null;\n }\n\n return isFirstElement;\n },\n },\n};\n</script>\n"],"names":["Modal"],"mappings":";;;;AAuBA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,QAAA,CAAAA,MAAAA,OAAA;AAAA,EAEA,QAAA,CAAA,cAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,eAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,yBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,YAAA;AACA,aAAA,KAAA,aAAA,aAAA,KAAA,MAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,MAAA,UAAA;AACA,UAAA,wBAAA,MAAA,KAAA,yBAAA,KAAA,GAAA;AAEA,QAAA,CAAA,uBAAA;AACA,WAAA,0BAAA;AAAA,IACA,OAAA;AAIA,WAAA,0BAAA,KAAA,sBAAA,qBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,sBAAA,SAAA;AACA,UAAA,UAAA;AACA,UAAA,iBAAA;AAEA,aAAA,SAAA;AACA,YAAA,QAAA,2BAAA,MAAA;AACA,2BAAA;AACA;AAAA,QACA;AACA,kBAAA,QAAA,eAAA,KAAA,MAAA,QAAA,aAAA;AAAA,MACA;AAEA,aAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tab_panel.vue.cjs","sources":["../../../components/tab/tab_panel.vue"],"sourcesContent":["<template>\n <div\n v-show=\"!hidePanel\"\n :id=\"`dt-panel-${id}`\"\n role=\"tabpanel\"\n :tabindex=\"isFirstElementFocusable ? -1 : 0\"\n :aria-labelledby=\"`dt-tab-${tabId}`\"\n :aria-hidden=\"`${hidePanel}`\"\n :class=\"tabPanelClass\"\n data-qa=\"dt-tab-panel\"\n >\n <!-- @slot Default slot for Tab Panel -->\n <div v-show=\"!hidden\">\n <slot />\n </div>\n </div>\n</template>\n\n<script>\nimport Modal from '@/common/mixins/modal';\n\n/**\n * Tabs allow users to navigation between grouped content in different views while within the same page context.\n * @see https://dialtone.dialpad.com/components/tabs.html\n */\nexport default {\n name: 'DtTabPanel',\n\n mixins: [Modal],\n\n inject: ['groupContext'],\n\n props: {\n /**\n * Id of the panel\n */\n id: {\n type: String,\n required: true,\n },\n\n /**\n * Id of the associated tab\n */\n tabId: {\n type: String,\n required: true,\n },\n\n /**\n * If true, hides the tab content\n * @values true, false\n */\n hidden: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Used to customize the tab element\n */\n tabPanelClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n data () {\n return {\n isFirstElementFocusable: false,\n };\n },\n\n computed: {\n hidePanel () {\n return this.groupContext.selected !== this.id || this.hidden;\n },\n },\n\n async mounted () {\n const firstFocusableElement = await this.getFirstFocusableElement(this.$el);\n\n if (!firstFocusableElement) {\n this.isFirstElementFocusable = false;\n } else {\n // If the first focusable element isn't the first element in the panel,\n // then we need to set the panel tabindex to 0.\n // See notes in https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n this.isFirstElementFocusable = this.isFirstElementOfPanel(firstFocusableElement);\n }\n },\n\n methods: {\n isFirstElementOfPanel (element) {\n let current = element;\n let isFirstElement = true;\n\n while (current) {\n if (current.previousElementSibling !== null) {\n isFirstElement = false;\n break;\n }\n current = current.parentNode !== this.$el ? current.parentNode : null;\n }\n\n return isFirstElement;\n },\n },\n};\n</script>\n"],"names":["Modal"],"mappings":";;;;AAyBA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,QAAA,CAAAA,MAAAA,OAAA;AAAA,EAEA,QAAA,CAAA,cAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,eAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,yBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,YAAA;AACA,aAAA,KAAA,aAAA,aAAA,KAAA,MAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,MAAA,UAAA;AACA,UAAA,wBAAA,MAAA,KAAA,yBAAA,KAAA,GAAA;AAEA,QAAA,CAAA,uBAAA;AACA,WAAA,0BAAA;AAAA,IACA,OAAA;AAIA,WAAA,0BAAA,KAAA,sBAAA,qBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,sBAAA,SAAA;AACA,UAAA,UAAA;AACA,UAAA,iBAAA;AAEA,aAAA,SAAA;AACA,YAAA,QAAA,2BAAA,MAAA;AACA,2BAAA;AACA;AAAA,QACA;AACA,kBAAA,QAAA,eAAA,KAAA,MAAA,QAAA,aAAA;AAAA,MACA;AAEA,aAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;"}
@@ -70,7 +70,7 @@ const _sfc_main = {
70
70
  };
71
71
  var _sfc_render = function render() {
72
72
  var _vm = this, _c = _vm._self._c;
73
- return _c("div", { directives: [{ name: "show", rawName: "v-show", value: !_vm.hidePanel, expression: "!hidePanel" }], class: _vm.tabPanelClass, attrs: { "id": `dt-panel-${_vm.id}`, "role": "tabpanel", "tabindex": _vm.isFirstElementFocusable ? -1 : 0, "aria-labelledby": `dt-tab-${_vm.tabId}`, "aria-hidden": `${_vm.hidePanel}`, "data-qa": "dt-tab-panel" } }, [_vm._t("default")], 2);
73
+ return _c("div", { directives: [{ name: "show", rawName: "v-show", value: !_vm.hidePanel, expression: "!hidePanel" }], class: _vm.tabPanelClass, attrs: { "id": `dt-panel-${_vm.id}`, "role": "tabpanel", "tabindex": _vm.isFirstElementFocusable ? -1 : 0, "aria-labelledby": `dt-tab-${_vm.tabId}`, "aria-hidden": `${_vm.hidePanel}`, "data-qa": "dt-tab-panel" } }, [_c("div", { directives: [{ name: "show", rawName: "v-show", value: !_vm.hidden, expression: "!hidden" }] }, [_vm._t("default")], 2)]);
74
74
  };
75
75
  var _sfc_staticRenderFns = [];
76
76
  var __component__ = /* @__PURE__ */ normalizeComponent(
@@ -1 +1 @@
1
- {"version":3,"file":"tab_panel.vue.js","sources":["../../../components/tab/tab_panel.vue"],"sourcesContent":["<template>\n <div\n v-show=\"!hidePanel\"\n :id=\"`dt-panel-${id}`\"\n role=\"tabpanel\"\n :tabindex=\"isFirstElementFocusable ? -1 : 0\"\n :aria-labelledby=\"`dt-tab-${tabId}`\"\n :aria-hidden=\"`${hidePanel}`\"\n :class=\"tabPanelClass\"\n data-qa=\"dt-tab-panel\"\n >\n <!-- @slot Default slot for Tab Panel -->\n <slot v-show=\"!hidden\" />\n </div>\n</template>\n\n<script>\nimport Modal from '@/common/mixins/modal';\n\n/**\n * Tabs allow users to navigation between grouped content in different views while within the same page context.\n * @see https://dialtone.dialpad.com/components/tabs.html\n */\nexport default {\n name: 'DtTabPanel',\n\n mixins: [Modal],\n\n inject: ['groupContext'],\n\n props: {\n /**\n * Id of the panel\n */\n id: {\n type: String,\n required: true,\n },\n\n /**\n * Id of the associated tab\n */\n tabId: {\n type: String,\n required: true,\n },\n\n /**\n * If true, hides the tab content\n * @values true, false\n */\n hidden: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Used to customize the tab element\n */\n tabPanelClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n data () {\n return {\n isFirstElementFocusable: false,\n };\n },\n\n computed: {\n hidePanel () {\n return this.groupContext.selected !== this.id || this.hidden;\n },\n },\n\n async mounted () {\n const firstFocusableElement = await this.getFirstFocusableElement(this.$el);\n\n if (!firstFocusableElement) {\n this.isFirstElementFocusable = false;\n } else {\n // If the first focusable element isn't the first element in the panel,\n // then we need to set the panel tabindex to 0.\n // See notes in https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n this.isFirstElementFocusable = this.isFirstElementOfPanel(firstFocusableElement);\n }\n },\n\n methods: {\n isFirstElementOfPanel (element) {\n let current = element;\n let isFirstElement = true;\n\n while (current) {\n if (current.previousElementSibling !== null) {\n isFirstElement = false;\n break;\n }\n current = current.parentNode !== this.$el ? current.parentNode : null;\n }\n\n return isFirstElement;\n },\n },\n};\n</script>\n"],"names":[],"mappings":";;AAuBA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,QAAA,CAAA,KAAA;AAAA,EAEA,QAAA,CAAA,cAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,eAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,yBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,YAAA;AACA,aAAA,KAAA,aAAA,aAAA,KAAA,MAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,MAAA,UAAA;AACA,UAAA,wBAAA,MAAA,KAAA,yBAAA,KAAA,GAAA;AAEA,QAAA,CAAA,uBAAA;AACA,WAAA,0BAAA;AAAA,IACA,OAAA;AAIA,WAAA,0BAAA,KAAA,sBAAA,qBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,sBAAA,SAAA;AACA,UAAA,UAAA;AACA,UAAA,iBAAA;AAEA,aAAA,SAAA;AACA,YAAA,QAAA,2BAAA,MAAA;AACA,2BAAA;AACA;AAAA,QACA;AACA,kBAAA,QAAA,eAAA,KAAA,MAAA,QAAA,aAAA;AAAA,MACA;AAEA,aAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tab_panel.vue.js","sources":["../../../components/tab/tab_panel.vue"],"sourcesContent":["<template>\n <div\n v-show=\"!hidePanel\"\n :id=\"`dt-panel-${id}`\"\n role=\"tabpanel\"\n :tabindex=\"isFirstElementFocusable ? -1 : 0\"\n :aria-labelledby=\"`dt-tab-${tabId}`\"\n :aria-hidden=\"`${hidePanel}`\"\n :class=\"tabPanelClass\"\n data-qa=\"dt-tab-panel\"\n >\n <!-- @slot Default slot for Tab Panel -->\n <div v-show=\"!hidden\">\n <slot />\n </div>\n </div>\n</template>\n\n<script>\nimport Modal from '@/common/mixins/modal';\n\n/**\n * Tabs allow users to navigation between grouped content in different views while within the same page context.\n * @see https://dialtone.dialpad.com/components/tabs.html\n */\nexport default {\n name: 'DtTabPanel',\n\n mixins: [Modal],\n\n inject: ['groupContext'],\n\n props: {\n /**\n * Id of the panel\n */\n id: {\n type: String,\n required: true,\n },\n\n /**\n * Id of the associated tab\n */\n tabId: {\n type: String,\n required: true,\n },\n\n /**\n * If true, hides the tab content\n * @values true, false\n */\n hidden: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Used to customize the tab element\n */\n tabPanelClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n data () {\n return {\n isFirstElementFocusable: false,\n };\n },\n\n computed: {\n hidePanel () {\n return this.groupContext.selected !== this.id || this.hidden;\n },\n },\n\n async mounted () {\n const firstFocusableElement = await this.getFirstFocusableElement(this.$el);\n\n if (!firstFocusableElement) {\n this.isFirstElementFocusable = false;\n } else {\n // If the first focusable element isn't the first element in the panel,\n // then we need to set the panel tabindex to 0.\n // See notes in https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n this.isFirstElementFocusable = this.isFirstElementOfPanel(firstFocusableElement);\n }\n },\n\n methods: {\n isFirstElementOfPanel (element) {\n let current = element;\n let isFirstElement = true;\n\n while (current) {\n if (current.previousElementSibling !== null) {\n isFirstElement = false;\n break;\n }\n current = current.parentNode !== this.$el ? current.parentNode : null;\n }\n\n return isFirstElement;\n },\n },\n};\n</script>\n"],"names":[],"mappings":";;AAyBA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,QAAA,CAAA,KAAA;AAAA,EAEA,QAAA,CAAA,cAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,eAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,yBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,YAAA;AACA,aAAA,KAAA,aAAA,aAAA,KAAA,MAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,MAAA,UAAA;AACA,UAAA,wBAAA,MAAA,KAAA,yBAAA,KAAA,GAAA;AAEA,QAAA,CAAA,uBAAA;AACA,WAAA,0BAAA;AAAA,IACA,OAAA;AAIA,WAAA,0BAAA,KAAA,sBAAA,qBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,sBAAA,SAAA;AACA,UAAA,UAAA;AACA,UAAA,iBAAA;AAEA,aAAA,SAAA;AACA,YAAA,QAAA,2BAAA,MAAA;AACA,2BAAA;AACA;AAAA,QACA;AACA,kBAAA,QAAA,eAAA,KAAA,MAAA,QAAA,aAAA;AAAA,MACA;AAEA,aAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.vue.d.ts","sourceRoot":"","sources":["../../../../components/dropdown/dropdown.vue"],"names":[],"mappings":"AAuDA;"}
1
+ {"version":3,"file":"dropdown.vue.d.ts","sourceRoot":"","sources":["../../../../components/dropdown/dropdown.vue"],"names":[],"mappings":"AA8DA;"}
@@ -158,6 +158,8 @@ declare const _default: import('vue').DefineComponent<{
158
158
  calculatedMaxHeight(): "calc(100vh - var(--dt-space-300))";
159
159
  labelledBy(): never;
160
160
  }, {
161
+ hasFooter(): import('vue/types/vnode').ScopedSlotChildren;
162
+ hasFooter(): import('vue/types/vnode').ScopedSlotChildren;
161
163
  hasIntersectedViewport(entries: any): void;
162
164
  popperOptions(): {
163
165
  modifiers: ({
@@ -33,10 +33,7 @@ declare const _default: import('vue').DefineComponent<{
33
33
  click: (event: any) => void;
34
34
  focus: (event: any) => void;
35
35
  };
36
- }, {
37
- setSelectedPanelByDefault(): void;
38
- selectPanel(selectOverride?: boolean): void;
39
- }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, Readonly<import('vue').ExtractPropTypes<{
36
+ }, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, Readonly<import('vue').ExtractPropTypes<{
40
37
  id: {
41
38
  type: StringConstructor;
42
39
  required: true;
@@ -54,26 +54,20 @@ declare const _default: import('vue').DefineComponent<{
54
54
  getTabChildren(): {
55
55
  context: Element;
56
56
  panelId: string | undefined;
57
- id: string | undefined;
57
+ tabId: string | undefined;
58
58
  isSelected: boolean;
59
59
  }[];
60
60
  onChange(): void;
61
- changeContentPanel({ selected, selectOverride }: {
62
- selected: any;
63
- selectOverride: any;
64
- }): void;
65
61
  tabLeft(): void;
66
62
  tabRight(): void;
67
- selectFocusOnTab(index: any, tabs: any): void;
68
- selectTab(): void;
69
- selectTabByIndex(index: any, tabs: any): void;
70
- getIndexAndTabs(): {
71
- tabs: never[];
72
- index: number;
73
- };
63
+ selectFocusOnTab(index: any): void;
64
+ selectTab(event: any): void;
65
+ selectTabByIndex(index: any): void;
66
+ getFocusedTabIndex(): number;
74
67
  onHomeButton(): void;
75
68
  onEndButton(): void;
76
- }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "change"[], string, Readonly<import('vue').ExtractPropTypes<{
69
+ isSameTabClicked(): boolean;
70
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("change" | "before-change")[], string, Readonly<import('vue').ExtractPropTypes<{
77
71
  label: {
78
72
  type: StringConstructor;
79
73
  default: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tab_group.vue.d.ts","sourceRoot":"","sources":["../../../../components/tab/tab_group.vue"],"names":[],"mappings":"AAgCA;"}
1
+ {"version":3,"file":"tab_group.vue.d.ts","sourceRoot":"","sources":["../../../../components/tab/tab_group.vue"],"names":[],"mappings":"AAiCA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tab_panel.vue.d.ts","sourceRoot":"","sources":["../../../../components/tab/tab_panel.vue"],"names":[],"mappings":"AAeA;"}
1
+ {"version":3,"file":"tab_panel.vue.d.ts","sourceRoot":"","sources":["../../../../components/tab/tab_panel.vue"],"names":[],"mappings":"AAiBA;"}