@carbon/vue 3.0.26 → 3.0.29
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.
- package/dist/carbon-vue-3.common.js +250 -37
- package/dist/carbon-vue-3.common.js.map +1 -1
- package/dist/carbon-vue-3.umd.js +246 -33
- package/dist/carbon-vue-3.umd.js.map +1 -1
- package/dist/carbon-vue-3.umd.min.js +2 -2
- package/dist/carbon-vue-3.umd.min.js.map +1 -1
- package/dist/web-types.json +26 -2
- package/package.json +1 -1
- package/src/components/CvDatePicker/CvDatePicker.vue +4 -2
- package/src/components/CvDropdown/CvDropdown.vue +25 -5
- package/src/components/CvUIShell/CvContent.vue +7 -1
- package/src/components/CvUIShell/CvHeader.vue +3 -3
- package/src/components/CvUIShell/CvHeaderMenu.vue +2 -1
- package/src/components/CvUIShell/CvHeaderMenuItem.vue +8 -3
- package/src/components/CvUIShell/CvHeaderNav.vue +10 -1
- package/src/components/CvUIShell/CvHeaderPanel.vue +42 -0
- package/src/components/CvUIShell/CvSideNav.vue +36 -0
- package/src/components/CvUIShell/CvUIShell.stories.mdx +19 -15
- package/src/components/CvUIShell/__tests__/PanelFocusTestComponent.vue +47 -0
- package/src/index.js +1 -0
package/dist/carbon-vue-3.umd.js
CHANGED
|
@@ -5914,7 +5914,7 @@ const __exports__ = CvDataTableSkeletonvue_type_script_setup_true_lang_js;
|
|
|
5914
5914
|
|
|
5915
5915
|
/***/ }),
|
|
5916
5916
|
|
|
5917
|
-
/***/
|
|
5917
|
+
/***/ 8285:
|
|
5918
5918
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5919
5919
|
|
|
5920
5920
|
"use strict";
|
|
@@ -8778,9 +8778,9 @@ var monthSelectPlugin_monthToStr = function monthToStr(monthNumber, shorthand, l
|
|
|
8778
8778
|
|
|
8779
8779
|
var _hoisted_1 = ["id", "data-date-picker", "data-date-picker-type"];
|
|
8780
8780
|
var _hoisted_2 = ["for"];
|
|
8781
|
-
var _hoisted_3 = ["id", "data-invalid", "disabled", "data-date-picker-input-from", "pattern", "placeholder"];
|
|
8781
|
+
var _hoisted_3 = ["id", "aria-description", "data-invalid", "disabled", "data-date-picker-input-from", "pattern", "placeholder"];
|
|
8782
8782
|
var _hoisted_4 = ["for"];
|
|
8783
|
-
var _hoisted_5 = ["id", "data-date-picker-input-to", "data-invalid", "disabled", "pattern", "placeholder"];
|
|
8783
|
+
var _hoisted_5 = ["id", "aria-description", "data-date-picker-input-to", "data-invalid", "disabled", "pattern", "placeholder"];
|
|
8784
8784
|
|
|
8785
8785
|
|
|
8786
8786
|
|
|
@@ -9102,7 +9102,8 @@ var _hoisted_5 = ["id", "data-date-picker-input-to", "data-invalid", "disabled",
|
|
|
9102
9102
|
ref: date,
|
|
9103
9103
|
type: "text",
|
|
9104
9104
|
"data-date-picker-input": "",
|
|
9105
|
-
|
|
9105
|
+
"data-testid": "datepicker",
|
|
9106
|
+
"aria-description": __props.placeholder,
|
|
9106
9107
|
"data-invalid": isInvalid.value || null,
|
|
9107
9108
|
disabled: __props.disabled || null,
|
|
9108
9109
|
"data-date-picker-input-from": "".concat(getKind.value === 'range'),
|
|
@@ -9137,7 +9138,8 @@ var _hoisted_5 = ["id", "data-date-picker-input-to", "data-invalid", "disabled",
|
|
|
9137
9138
|
ref: todate,
|
|
9138
9139
|
type: "text",
|
|
9139
9140
|
"data-date-picker-input": "",
|
|
9140
|
-
|
|
9141
|
+
"data-testid": "todatepicker",
|
|
9142
|
+
"aria-description": __props.placeholder,
|
|
9141
9143
|
"data-date-picker-input-to": "".concat(__props.kind === 'range'),
|
|
9142
9144
|
"data-invalid": isInvalid.value || null,
|
|
9143
9145
|
disabled: __props.disabled || null,
|
|
@@ -9162,10 +9164,10 @@ var _hoisted_5 = ["id", "data-date-picker-input-to", "data-invalid", "disabled",
|
|
|
9162
9164
|
});
|
|
9163
9165
|
;// ./src/components/CvDatePicker/CvDatePicker.vue?vue&type=script&setup=true&lang=js
|
|
9164
9166
|
|
|
9165
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/CvDatePicker/CvDatePicker.vue?vue&type=style&index=0&id=
|
|
9167
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/CvDatePicker/CvDatePicker.vue?vue&type=style&index=0&id=3cc101f2&lang=scss
|
|
9166
9168
|
// extracted by mini-css-extract-plugin
|
|
9167
9169
|
|
|
9168
|
-
;// ./src/components/CvDatePicker/CvDatePicker.vue?vue&type=style&index=0&id=
|
|
9170
|
+
;// ./src/components/CvDatePicker/CvDatePicker.vue?vue&type=style&index=0&id=3cc101f2&lang=scss
|
|
9169
9171
|
|
|
9170
9172
|
;// ./src/components/CvDatePicker/CvDatePicker.vue
|
|
9171
9173
|
|
|
@@ -9570,6 +9572,13 @@ var _hoisted_7 = ["aria-disabled"];
|
|
|
9570
9572
|
});
|
|
9571
9573
|
var el = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(null);
|
|
9572
9574
|
function onClickOut() {
|
|
9575
|
+
// Move focus to button if focus is inside dropdown list
|
|
9576
|
+
var dropListEl = dropList.value;
|
|
9577
|
+
if (dropListEl && dropListEl.contains(document.activeElement)) {
|
|
9578
|
+
if (button.value && typeof button.value.focus === 'function') {
|
|
9579
|
+
button.value.focus();
|
|
9580
|
+
}
|
|
9581
|
+
}
|
|
9573
9582
|
open.value = false;
|
|
9574
9583
|
}
|
|
9575
9584
|
(0,index_esm/* onClickOutside */.X2)(el, onClickOut);
|
|
@@ -9616,8 +9625,14 @@ var _hoisted_7 = ["aria-disabled"];
|
|
|
9616
9625
|
}
|
|
9617
9626
|
}
|
|
9618
9627
|
function onEsc() {
|
|
9628
|
+
// Move focus to button if focus is inside dropdown list
|
|
9629
|
+
var dropListEl = dropList.value;
|
|
9630
|
+
if (dropListEl && dropListEl.contains(document.activeElement)) {
|
|
9631
|
+
if (button.value && typeof button.value.focus === 'function') {
|
|
9632
|
+
button.value.focus();
|
|
9633
|
+
}
|
|
9634
|
+
}
|
|
9619
9635
|
open.value = false;
|
|
9620
|
-
doFocus();
|
|
9621
9636
|
}
|
|
9622
9637
|
var button = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(null);
|
|
9623
9638
|
var listBox = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(null);
|
|
@@ -9629,8 +9644,10 @@ var _hoisted_7 = ["aria-disabled"];
|
|
|
9629
9644
|
open.value = false;
|
|
9630
9645
|
} else if (ev.target === null || (_listBox$value = listBox.value) !== null && _listBox$value !== void 0 && _listBox$value.contains(ev.target)) {
|
|
9631
9646
|
// list has focus, close and return focus to dropdown
|
|
9647
|
+
if (button.value && typeof button.value.focus === 'function') {
|
|
9648
|
+
button.value.focus();
|
|
9649
|
+
}
|
|
9632
9650
|
open.value = false;
|
|
9633
|
-
doFocus();
|
|
9634
9651
|
ev.preventDefault();
|
|
9635
9652
|
}
|
|
9636
9653
|
}
|
|
@@ -9639,9 +9656,6 @@ var _hoisted_7 = ["aria-disabled"];
|
|
|
9639
9656
|
if (props.disabled) {
|
|
9640
9657
|
ev.preventDefault();
|
|
9641
9658
|
} else {
|
|
9642
|
-
open.value = !open.value;
|
|
9643
|
-
doFocus(); // open or close (Some browsers do not focus on button when clicked)
|
|
9644
|
-
|
|
9645
9659
|
var target = ev.target;
|
|
9646
9660
|
while (!target.classList.contains("".concat(settings/* carbonPrefix */.s, "--dropdown-link")) && (_dropList$value2 = dropList.value) !== null && _dropList$value2 !== void 0 && _dropList$value2.contains(target)) {
|
|
9647
9661
|
var _dropList$value2;
|
|
@@ -9650,6 +9664,14 @@ var _hoisted_7 = ["aria-disabled"];
|
|
|
9650
9664
|
if (target.classList.contains("".concat(settings/* carbonPrefix */.s, "--dropdown-link"))) {
|
|
9651
9665
|
var targetItemEl = target.parentNode;
|
|
9652
9666
|
dataValue.value = targetItemEl.getAttribute('data-value');
|
|
9667
|
+
// Move focus to button before closing
|
|
9668
|
+
if (button.value && typeof button.value.focus === 'function') {
|
|
9669
|
+
button.value.focus();
|
|
9670
|
+
}
|
|
9671
|
+
open.value = false;
|
|
9672
|
+
} else {
|
|
9673
|
+
open.value = !open.value;
|
|
9674
|
+
doFocus(); // open or close (Some browsers do not focus on button when clicked)
|
|
9653
9675
|
}
|
|
9654
9676
|
}
|
|
9655
9677
|
}
|
|
@@ -19971,18 +19993,24 @@ var settings = __webpack_require__(7284);
|
|
|
19971
19993
|
tagType: {
|
|
19972
19994
|
type: String,
|
|
19973
19995
|
default: 'main'
|
|
19996
|
+
},
|
|
19997
|
+
id: {
|
|
19998
|
+
type: String,
|
|
19999
|
+
default: 'main-content'
|
|
19974
20000
|
}
|
|
19975
20001
|
},
|
|
19976
20002
|
setup: function setup(__props) {
|
|
19977
20003
|
return function (_ctx, _cache) {
|
|
19978
20004
|
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveDynamicComponent)(__props.tagType), {
|
|
19979
|
-
|
|
20005
|
+
id: __props.id,
|
|
20006
|
+
class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)("".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--content")),
|
|
20007
|
+
tabindex: "-1"
|
|
19980
20008
|
}, {
|
|
19981
20009
|
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
19982
20010
|
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "default")];
|
|
19983
20011
|
}),
|
|
19984
20012
|
_: 3
|
|
19985
|
-
}, 8, ["class"]);
|
|
20013
|
+
}, 8, ["id", "class"]);
|
|
19986
20014
|
};
|
|
19987
20015
|
}
|
|
19988
20016
|
});
|
|
@@ -20204,7 +20232,7 @@ var _hoisted_1 = ["id"];
|
|
|
20204
20232
|
var found = data.panelControllers.find(function (item) {
|
|
20205
20233
|
return item.ariaControls === srcComponent.id;
|
|
20206
20234
|
});
|
|
20207
|
-
if (srcComponent.el !== srcEvent.relatedTarget && !srcComponent.el.contains(srcEvent.relatedTarget) && found && found.el !== srcEvent.relatedTarget) {
|
|
20235
|
+
if (srcComponent.el.value !== srcEvent.relatedTarget && !srcComponent.el.value.contains(srcEvent.relatedTarget) && found && found.el.value !== srcEvent.relatedTarget) {
|
|
20208
20236
|
onCvPanelControlToggle(found, false);
|
|
20209
20237
|
}
|
|
20210
20238
|
}
|
|
@@ -20486,6 +20514,7 @@ var _hoisted_2 = ["aria-label", "aria-labelledby"];
|
|
|
20486
20514
|
ref_key: "el",
|
|
20487
20515
|
ref: el,
|
|
20488
20516
|
class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)("cv-header-menu ".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--header__submenu")),
|
|
20517
|
+
role: "menuitem",
|
|
20489
20518
|
onMouseenter: _cache[1] || (_cache[1] = function ($event) {
|
|
20490
20519
|
return doHoverToggle(true);
|
|
20491
20520
|
}),
|
|
@@ -20497,9 +20526,9 @@ var _hoisted_2 = ["aria-label", "aria-labelledby"];
|
|
|
20497
20526
|
"aria-expanded": data.expanded ? 'true' : 'false',
|
|
20498
20527
|
class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)("".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--header__menu-item ").concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--header__menu-title")),
|
|
20499
20528
|
href: "javascript:void(0)",
|
|
20500
|
-
role: "menuitem",
|
|
20501
20529
|
tabindex: "0",
|
|
20502
20530
|
"aria-label": _ctx.$attrs.ariaLabel,
|
|
20531
|
+
role: "button",
|
|
20503
20532
|
onClick: doToggle,
|
|
20504
20533
|
onKeydown: [_cache[0] || (_cache[0] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)(function () {}, ["prevent"]), ["space"])), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)(doToggle, ["prevent"]), ["enter"])],
|
|
20505
20534
|
onKeyup: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withKeys)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.withModifiers)(doToggle, ["prevent"]), ["space"]),
|
|
@@ -20722,7 +20751,10 @@ var cvLink = __webpack_require__(6272);
|
|
|
20722
20751
|
|
|
20723
20752
|
|
|
20724
20753
|
|
|
20725
|
-
var _hoisted_1 =
|
|
20754
|
+
var _hoisted_1 = {
|
|
20755
|
+
class: "cv-header-menu-item",
|
|
20756
|
+
role: "none"
|
|
20757
|
+
};
|
|
20726
20758
|
|
|
20727
20759
|
|
|
20728
20760
|
|
|
@@ -20736,7 +20768,7 @@ var _hoisted_1 = ["role"];
|
|
|
20736
20768
|
},
|
|
20737
20769
|
role: {
|
|
20738
20770
|
type: String,
|
|
20739
|
-
default:
|
|
20771
|
+
default: 'menuitem'
|
|
20740
20772
|
}
|
|
20741
20773
|
}, cvLink/* props */.xk),
|
|
20742
20774
|
setup: function setup(__props) {
|
|
@@ -20746,14 +20778,15 @@ var _hoisted_1 = ["role"];
|
|
|
20746
20778
|
var activePage = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(function () {
|
|
20747
20779
|
return props.active && props.ariaCurrent !== 'page';
|
|
20748
20780
|
});
|
|
20781
|
+
var tabindex = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(function () {
|
|
20782
|
+
return props.role === 'menuitem' ? '0' : undefined;
|
|
20783
|
+
});
|
|
20749
20784
|
return function (_ctx, _cache) {
|
|
20750
|
-
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("li", {
|
|
20751
|
-
class: "cv-header-menu-item",
|
|
20752
|
-
role: __props.role
|
|
20753
|
-
}, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveDynamicComponent)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(tagType)), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)((0,objectSpread2/* default */.A)((0,objectSpread2/* default */.A)({}, _ctx.$attrs), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(linkProps)), {
|
|
20785
|
+
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("li", _hoisted_1, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createBlock)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveDynamicComponent)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(tagType)), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.mergeProps)((0,objectSpread2/* default */.A)((0,objectSpread2/* default */.A)({}, _ctx.$attrs), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(linkProps)), {
|
|
20754
20786
|
class: ["".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--header__menu-item"), (0,defineProperty/* default */.A)({}, "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--header__menu-item--current"), activePage.value)],
|
|
20755
|
-
|
|
20756
|
-
|
|
20787
|
+
"aria-current": __props.ariaCurrent,
|
|
20788
|
+
role: __props.role,
|
|
20789
|
+
tabindex: tabindex.value
|
|
20757
20790
|
}), {
|
|
20758
20791
|
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
20759
20792
|
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("span", {
|
|
@@ -20761,7 +20794,7 @@ var _hoisted_1 = ["role"];
|
|
|
20761
20794
|
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "default")], 2)];
|
|
20762
20795
|
}),
|
|
20763
20796
|
_: 3
|
|
20764
|
-
}, 16, ["class", "aria-current"
|
|
20797
|
+
}, 16, ["class", "aria-current", "role", "tabindex"]))]);
|
|
20765
20798
|
};
|
|
20766
20799
|
}
|
|
20767
20800
|
});
|
|
@@ -20853,17 +20886,27 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
20853
20886
|
"default": function() { return /* binding */ CvHeaderNav; }
|
|
20854
20887
|
});
|
|
20855
20888
|
|
|
20889
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js
|
|
20890
|
+
var es_object_assign = __webpack_require__(9218);
|
|
20856
20891
|
// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
|
|
20857
20892
|
var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(9274);
|
|
20858
20893
|
// EXTERNAL MODULE: ./src/global/settings.js
|
|
20859
20894
|
var settings = __webpack_require__(7284);
|
|
20860
20895
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/CvUIShell/CvHeaderNav.vue?vue&type=script&setup=true&lang=js
|
|
20861
20896
|
|
|
20862
|
-
var _hoisted_1 = ["ariaLabeldBy"];
|
|
20863
20897
|
|
|
20864
|
-
|
|
20898
|
+
var _hoisted_1 = ["aria-label", "aria-labelledby"];
|
|
20899
|
+
|
|
20900
|
+
var __default__ = {
|
|
20901
|
+
inheritAttrs: false
|
|
20902
|
+
};
|
|
20903
|
+
/* harmony default export */ var CvHeaderNavvue_type_script_setup_true_lang_js = (/*@__PURE__*/Object.assign(__default__, {
|
|
20865
20904
|
__name: 'CvHeaderNav',
|
|
20866
20905
|
props: {
|
|
20906
|
+
ariaLabel: {
|
|
20907
|
+
type: String,
|
|
20908
|
+
default: undefined
|
|
20909
|
+
},
|
|
20867
20910
|
ariaLabelledBy: {
|
|
20868
20911
|
type: String,
|
|
20869
20912
|
default: undefined
|
|
@@ -20876,11 +20919,13 @@ var _hoisted_1 = ["ariaLabeldBy"];
|
|
|
20876
20919
|
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("ul", {
|
|
20877
20920
|
class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)("".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--header__menu-bar")),
|
|
20878
20921
|
role: "menubar",
|
|
20879
|
-
|
|
20922
|
+
"aria-orientation": "horizontal",
|
|
20923
|
+
"aria-label": __props.ariaLabel || _ctx.$attrs['aria-label'],
|
|
20924
|
+
"aria-labelledby": __props.ariaLabelledBy || _ctx.$attrs['aria-labelledby']
|
|
20880
20925
|
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_1)], 2);
|
|
20881
20926
|
};
|
|
20882
20927
|
}
|
|
20883
|
-
});
|
|
20928
|
+
}));
|
|
20884
20929
|
;// ./src/components/CvUIShell/CvHeaderNav.vue?vue&type=script&setup=true&lang=js
|
|
20885
20930
|
|
|
20886
20931
|
;// ./src/components/CvUIShell/CvHeaderNav.vue
|
|
@@ -20907,6 +20952,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
20907
20952
|
|
|
20908
20953
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js + 2 modules
|
|
20909
20954
|
var defineProperty = __webpack_require__(9635);
|
|
20955
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
|
|
20956
|
+
var es_object_to_string = __webpack_require__(5086);
|
|
20957
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js
|
|
20958
|
+
var web_dom_collections_for_each = __webpack_require__(8379);
|
|
20910
20959
|
// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
|
|
20911
20960
|
var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(9274);
|
|
20912
20961
|
// EXTERNAL MODULE: ./src/global/settings.js
|
|
@@ -20916,7 +20965,9 @@ var event_bus = __webpack_require__(9294);
|
|
|
20916
20965
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/CvUIShell/CvHeaderPanel.vue?vue&type=script&setup=true&lang=js
|
|
20917
20966
|
|
|
20918
20967
|
|
|
20919
|
-
|
|
20968
|
+
|
|
20969
|
+
|
|
20970
|
+
var _hoisted_1 = ["id", "aria-hidden", "inert"];
|
|
20920
20971
|
|
|
20921
20972
|
|
|
20922
20973
|
|
|
@@ -20998,6 +21049,29 @@ var _hoisted_1 = ["id", "aria-hidden"];
|
|
|
20998
21049
|
}, function () {
|
|
20999
21050
|
panelExpanded.value = props.expanded;
|
|
21000
21051
|
});
|
|
21052
|
+
function manageFocusableElements(isExpanded) {
|
|
21053
|
+
if (!el.value) return;
|
|
21054
|
+
var focusableElements = el.value.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])');
|
|
21055
|
+
focusableElements.forEach(function (element) {
|
|
21056
|
+
if (isExpanded) {
|
|
21057
|
+
// Restore original tabindex when expanded
|
|
21058
|
+
var originalTabindex = element.getAttribute('data-original-tabindex');
|
|
21059
|
+
if (originalTabindex !== null) {
|
|
21060
|
+
if (originalTabindex === 'null') {
|
|
21061
|
+
element.removeAttribute('tabindex');
|
|
21062
|
+
} else {
|
|
21063
|
+
element.setAttribute('tabindex', originalTabindex);
|
|
21064
|
+
}
|
|
21065
|
+
element.removeAttribute('data-original-tabindex');
|
|
21066
|
+
}
|
|
21067
|
+
} else {
|
|
21068
|
+
// Store original tabindex and set to -1 when collapsed
|
|
21069
|
+
var currentTabindex = element.getAttribute('tabindex');
|
|
21070
|
+
element.setAttribute('data-original-tabindex', currentTabindex || 'null');
|
|
21071
|
+
element.setAttribute('tabindex', '-1');
|
|
21072
|
+
}
|
|
21073
|
+
});
|
|
21074
|
+
}
|
|
21001
21075
|
var emit = __emit;
|
|
21002
21076
|
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(panelExpanded, function (current) {
|
|
21003
21077
|
emit('update:expanded', current);
|
|
@@ -21005,6 +21079,18 @@ var _hoisted_1 = ["id", "aria-hidden"];
|
|
|
21005
21079
|
id: props.id,
|
|
21006
21080
|
expanded: current
|
|
21007
21081
|
});
|
|
21082
|
+
|
|
21083
|
+
// Manage focusable elements
|
|
21084
|
+
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(function () {
|
|
21085
|
+
manageFocusableElements(current);
|
|
21086
|
+
});
|
|
21087
|
+
});
|
|
21088
|
+
|
|
21089
|
+
// Initial setup of focusable elements
|
|
21090
|
+
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.onMounted)(function () {
|
|
21091
|
+
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(function () {
|
|
21092
|
+
manageFocusableElements(panelExpanded.value);
|
|
21093
|
+
});
|
|
21008
21094
|
});
|
|
21009
21095
|
return function (_ctx, _cache) {
|
|
21010
21096
|
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)("div", {
|
|
@@ -21013,6 +21099,7 @@ var _hoisted_1 = ["id", "aria-hidden"];
|
|
|
21013
21099
|
ref: el,
|
|
21014
21100
|
class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)(["cv-header-panel", "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--header-panel"), (0,defineProperty/* default */.A)({}, "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--header-panel--expanded"), panelExpanded.value)]),
|
|
21015
21101
|
"aria-hidden": !panelExpanded.value ? 'true' : 'false',
|
|
21102
|
+
inert: !panelExpanded.value,
|
|
21016
21103
|
onFocusout: onFocusout,
|
|
21017
21104
|
onMousedown: onMouseDown
|
|
21018
21105
|
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.renderSlot)(_ctx.$slots, "default")], 42, _hoisted_1);
|
|
@@ -21045,6 +21132,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
21045
21132
|
|
|
21046
21133
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js + 2 modules
|
|
21047
21134
|
var defineProperty = __webpack_require__(9635);
|
|
21135
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
|
|
21136
|
+
var es_object_to_string = __webpack_require__(5086);
|
|
21137
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js
|
|
21138
|
+
var web_dom_collections_for_each = __webpack_require__(8379);
|
|
21048
21139
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.fixed.js
|
|
21049
21140
|
var es_string_fixed = __webpack_require__(9607);
|
|
21050
21141
|
// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
|
|
@@ -21143,7 +21234,9 @@ var event_bus = __webpack_require__(9294);
|
|
|
21143
21234
|
|
|
21144
21235
|
|
|
21145
21236
|
|
|
21146
|
-
|
|
21237
|
+
|
|
21238
|
+
|
|
21239
|
+
var CvSideNavvue_type_script_setup_true_lang_js_hoisted_1 = ["id", "aria-hidden", "inert"];
|
|
21147
21240
|
|
|
21148
21241
|
|
|
21149
21242
|
|
|
@@ -21221,6 +21314,30 @@ var CvSideNavvue_type_script_setup_true_lang_js_hoisted_1 = ["id", "aria-hidden"
|
|
|
21221
21314
|
}, function () {
|
|
21222
21315
|
panelExpanded.value = props.expanded;
|
|
21223
21316
|
});
|
|
21317
|
+
// Manage focusable elements when panel visibility changes
|
|
21318
|
+
function manageFocusableElements(isExpanded, isFixed) {
|
|
21319
|
+
if (!el.value || isFixed) return;
|
|
21320
|
+
var focusableElements = el.value.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])');
|
|
21321
|
+
focusableElements.forEach(function (element) {
|
|
21322
|
+
if (isExpanded) {
|
|
21323
|
+
// Restore original tabindex when expanded
|
|
21324
|
+
var originalTabindex = element.getAttribute('data-original-tabindex');
|
|
21325
|
+
if (originalTabindex !== null) {
|
|
21326
|
+
if (originalTabindex === 'null') {
|
|
21327
|
+
element.removeAttribute('tabindex');
|
|
21328
|
+
} else {
|
|
21329
|
+
element.setAttribute('tabindex', originalTabindex);
|
|
21330
|
+
}
|
|
21331
|
+
element.removeAttribute('data-original-tabindex');
|
|
21332
|
+
}
|
|
21333
|
+
} else {
|
|
21334
|
+
// Store original tabindex and set to -1 when collapsed
|
|
21335
|
+
var currentTabindex = element.getAttribute('tabindex');
|
|
21336
|
+
element.setAttribute('data-original-tabindex', currentTabindex || 'null');
|
|
21337
|
+
element.setAttribute('tabindex', '-1');
|
|
21338
|
+
}
|
|
21339
|
+
});
|
|
21340
|
+
}
|
|
21224
21341
|
var emit = __emit;
|
|
21225
21342
|
var isPanelExpanded = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(function () {
|
|
21226
21343
|
return panelExpanded.value || expandedViaHoverState.value;
|
|
@@ -21231,6 +21348,11 @@ var CvSideNavvue_type_script_setup_true_lang_js_hoisted_1 = ["id", "aria-hidden"
|
|
|
21231
21348
|
id: props.id,
|
|
21232
21349
|
expanded: current
|
|
21233
21350
|
});
|
|
21351
|
+
|
|
21352
|
+
// Manage focusable elements for non-fixed nav
|
|
21353
|
+
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(function () {
|
|
21354
|
+
manageFocusableElements(current, props.fixed);
|
|
21355
|
+
});
|
|
21234
21356
|
});
|
|
21235
21357
|
var isChildOfHeader = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(function () {
|
|
21236
21358
|
return !!bus.value;
|
|
@@ -21263,6 +21385,7 @@ var CvSideNavvue_type_script_setup_true_lang_js_hoisted_1 = ["id", "aria-hidden"
|
|
|
21263
21385
|
ref: el,
|
|
21264
21386
|
class: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.normalizeClass)(["cv-side-nav", "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--side-nav"), "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--side-nav__navigation"), (_ref2 = {}, (0,defineProperty/* default */.A)(_ref2, "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--side-nav--expanded"), panelExpanded.value), (0,defineProperty/* default */.A)(_ref2, "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--side-nav--rail"), __props.rail), (0,defineProperty/* default */.A)(_ref2, "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--side-nav--collapsed"), !panelExpanded.value && __props.fixed), (0,defineProperty/* default */.A)(_ref2, "".concat((0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(settings/* carbonPrefix */.s), "--side-nav--ux"), isChildOfHeader.value), _ref2)]),
|
|
21265
21387
|
"aria-hidden": !panelExpanded.value && !__props.fixed ? 'true' : 'false',
|
|
21388
|
+
inert: !panelExpanded.value && !__props.fixed,
|
|
21266
21389
|
onFocusout: onFocusout,
|
|
21267
21390
|
onMousedown: onMouseDown,
|
|
21268
21391
|
onMouseenter: _cache[0] || (_cache[0] = function ($event) {
|
|
@@ -42242,7 +42365,7 @@ var map = {
|
|
|
42242
42365
|
"./CvDataTable/CvDataTableHeading.vue": 2335,
|
|
42243
42366
|
"./CvDataTable/CvDataTableRow.vue": 6428,
|
|
42244
42367
|
"./CvDataTable/CvDataTableSkeleton.vue": 2446,
|
|
42245
|
-
"./CvDatePicker/CvDatePicker.vue":
|
|
42368
|
+
"./CvDatePicker/CvDatePicker.vue": 8285,
|
|
42246
42369
|
"./CvDatePicker/CvDatePickerSkeleton.vue": 333,
|
|
42247
42370
|
"./CvDropdown/CvDropdown.vue": 306,
|
|
42248
42371
|
"./CvDropdown/CvDropdownItem.vue": 8073,
|
|
@@ -43125,6 +43248,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
43125
43248
|
CvToggle: function() { return /* reexport */ CvToggle["default"]; },
|
|
43126
43249
|
CvToggleSkeleton: function() { return /* reexport */ CvToggle_Skeleton["default"]; },
|
|
43127
43250
|
CvTooltip: function() { return /* reexport */ CvTooltip["default"]; },
|
|
43251
|
+
PanelFocusTestComponent: function() { return /* reexport */ PanelFocusTestComponent; },
|
|
43128
43252
|
"default": function() { return /* binding */ entry_lib; }
|
|
43129
43253
|
});
|
|
43130
43254
|
|
|
@@ -43232,7 +43356,7 @@ var CvDataTableRow = __webpack_require__(6428);
|
|
|
43232
43356
|
// EXTERNAL MODULE: ./src/components/CvDataTable/CvDataTableSkeleton.vue + 2 modules
|
|
43233
43357
|
var CvDataTableSkeleton = __webpack_require__(2446);
|
|
43234
43358
|
// EXTERNAL MODULE: ./src/components/CvDatePicker/CvDatePicker.vue + 15 modules
|
|
43235
|
-
var CvDatePicker = __webpack_require__(
|
|
43359
|
+
var CvDatePicker = __webpack_require__(8285);
|
|
43236
43360
|
// EXTERNAL MODULE: ./src/components/CvDatePicker/CvDatePickerSkeleton.vue + 4 modules
|
|
43237
43361
|
var CvDatePickerSkeleton = __webpack_require__(333);
|
|
43238
43362
|
// EXTERNAL MODULE: ./src/components/CvDropdown/CvDropdown.vue + 2 modules
|
|
@@ -43403,6 +43527,94 @@ var CvSwitcher = __webpack_require__(7170);
|
|
|
43403
43527
|
var CvSwitcherItem = __webpack_require__(6202);
|
|
43404
43528
|
// EXTERNAL MODULE: ./src/components/CvUIShell/CvSwitcherItemLink.vue + 2 modules
|
|
43405
43529
|
var CvSwitcherItemLink = __webpack_require__(1139);
|
|
43530
|
+
// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
|
|
43531
|
+
var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(9274);
|
|
43532
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/CvUIShell/__tests__/PanelFocusTestComponent.vue?vue&type=script&setup=true&lang=js
|
|
43533
|
+
|
|
43534
|
+
|
|
43535
|
+
|
|
43536
|
+
|
|
43537
|
+
|
|
43538
|
+
|
|
43539
|
+
|
|
43540
|
+
/* harmony default export */ var PanelFocusTestComponentvue_type_script_setup_true_lang_js = ({
|
|
43541
|
+
__name: 'PanelFocusTestComponent',
|
|
43542
|
+
setup: function setup(__props) {
|
|
43543
|
+
return function (_ctx, _cache) {
|
|
43544
|
+
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_.Fragment, null, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(CvHeader["default"], null, {
|
|
43545
|
+
"header-global": (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43546
|
+
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(CvHeaderGlobalAction["default"], {
|
|
43547
|
+
"data-testid": "action-button",
|
|
43548
|
+
"aria-label": "List links",
|
|
43549
|
+
"aria-controls": "links-panel",
|
|
43550
|
+
label: "Links"
|
|
43551
|
+
}, {
|
|
43552
|
+
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43553
|
+
return _cache[0] || (_cache[0] = [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createTextVNode)(" Links ")]);
|
|
43554
|
+
}),
|
|
43555
|
+
_: 1
|
|
43556
|
+
})];
|
|
43557
|
+
}),
|
|
43558
|
+
"right-panels": (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43559
|
+
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(CvHeaderPanel["default"], {
|
|
43560
|
+
id: "links-panel",
|
|
43561
|
+
"data-testid": "links-panel"
|
|
43562
|
+
}, {
|
|
43563
|
+
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43564
|
+
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(CvSwitcher["default"], null, {
|
|
43565
|
+
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43566
|
+
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(CvSwitcherItem["default"], null, {
|
|
43567
|
+
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43568
|
+
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(CvSwitcherItemLink["default"], {
|
|
43569
|
+
href: "javascript:void(0)",
|
|
43570
|
+
"data-testid": "link-1",
|
|
43571
|
+
selected: ""
|
|
43572
|
+
}, {
|
|
43573
|
+
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43574
|
+
return _cache[1] || (_cache[1] = [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createTextVNode)(" Selected app ")]);
|
|
43575
|
+
}),
|
|
43576
|
+
_: 1
|
|
43577
|
+
})];
|
|
43578
|
+
}),
|
|
43579
|
+
_: 1
|
|
43580
|
+
}), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(CvSwitcherItem["default"], null, {
|
|
43581
|
+
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43582
|
+
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createVNode)(CvSwitcherItemLink["default"], {
|
|
43583
|
+
href: "javascript:void(0)",
|
|
43584
|
+
"data-testid": "link-2"
|
|
43585
|
+
}, {
|
|
43586
|
+
default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.withCtx)(function () {
|
|
43587
|
+
return _cache[2] || (_cache[2] = [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.createTextVNode)(" Other app ")]);
|
|
43588
|
+
}),
|
|
43589
|
+
_: 1
|
|
43590
|
+
})];
|
|
43591
|
+
}),
|
|
43592
|
+
_: 1
|
|
43593
|
+
})];
|
|
43594
|
+
}),
|
|
43595
|
+
_: 1
|
|
43596
|
+
})];
|
|
43597
|
+
}),
|
|
43598
|
+
_: 1
|
|
43599
|
+
})];
|
|
43600
|
+
}),
|
|
43601
|
+
_: 1
|
|
43602
|
+
}), _cache[3] || (_cache[3] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementVNode)("input", {
|
|
43603
|
+
type: "text",
|
|
43604
|
+
"data-testid": "outer-input"
|
|
43605
|
+
}, null, -1))], 64);
|
|
43606
|
+
};
|
|
43607
|
+
}
|
|
43608
|
+
});
|
|
43609
|
+
;// ./src/components/CvUIShell/__tests__/PanelFocusTestComponent.vue?vue&type=script&setup=true&lang=js
|
|
43610
|
+
|
|
43611
|
+
;// ./src/components/CvUIShell/__tests__/PanelFocusTestComponent.vue
|
|
43612
|
+
|
|
43613
|
+
|
|
43614
|
+
|
|
43615
|
+
const __exports__ = PanelFocusTestComponentvue_type_script_setup_true_lang_js;
|
|
43616
|
+
|
|
43617
|
+
/* harmony default export */ var PanelFocusTestComponent = (__exports__);
|
|
43406
43618
|
;// ./src/index.js
|
|
43407
43619
|
|
|
43408
43620
|
|
|
@@ -43588,6 +43800,7 @@ var components = ctx.keys().map(function (k) {
|
|
|
43588
43800
|
|
|
43589
43801
|
|
|
43590
43802
|
|
|
43803
|
+
|
|
43591
43804
|
|
|
43592
43805
|
|
|
43593
43806
|
;// ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
|