@carbon/vue 2.27.0-canary.0 → 2.28.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 (49) hide show
  1. package/CHANGELOG.md +34 -2
  2. package/dist/carbon-vue.common.js +533 -297
  3. package/dist/carbon-vue.common.js.map +1 -1
  4. package/dist/carbon-vue.umd.js +533 -297
  5. package/dist/carbon-vue.umd.js.map +1 -1
  6. package/dist/carbon-vue.umd.min.js +4 -4
  7. package/dist/carbon-vue.umd.min.js.map +1 -1
  8. package/package.json +3 -3
  9. package/src/assets/images/example-icon-svg.js +10 -0
  10. package/src/assets/images/example-icon.svg +6 -0
  11. package/src/components/cv-accordion/_cv-accordion-item-skeleton.vue +16 -5
  12. package/src/components/cv-accordion/cv-accordion-item.vue +12 -15
  13. package/src/components/cv-accordion/cv-accordion-skeleton.vue +3 -1
  14. package/src/components/cv-accordion/cv-accordion.vue +4 -1
  15. package/src/components/cv-breadcrumb/_cv-breadcrumb-item-skeleton.vue +4 -2
  16. package/src/components/cv-breadcrumb/cv-breadcrumb-item.vue +10 -5
  17. package/src/components/cv-breadcrumb/cv-breadcrumb-skeleton.vue +3 -1
  18. package/src/components/cv-breadcrumb/cv-breadcrumb.vue +12 -5
  19. package/src/components/cv-button/cv-button.vue +3 -4
  20. package/src/components/cv-button/cv-icon-button.vue +3 -4
  21. package/src/components/cv-checkbox/cv-checkbox-skeleton.vue +4 -2
  22. package/src/components/cv-checkbox/cv-checkbox.vue +32 -11
  23. package/src/components/cv-code-snippet/_cv-code-snippet-inline.vue +1 -1
  24. package/src/components/cv-code-snippet/_cv-code-snippet-multiline.vue +1 -1
  25. package/src/components/cv-code-snippet/_cv-code-snippet-oneline.vue +1 -1
  26. package/src/components/cv-combo-box/cv-combo-box.vue +18 -7
  27. package/src/components/cv-content-switcher/cv-content-switcher-button.vue +4 -5
  28. package/src/components/cv-data-table/_cv-data-table-row-inner.vue +10 -2
  29. package/src/components/cv-data-table/cv-data-table.vue +1 -1
  30. package/src/components/cv-dropdown/cv-dropdown.vue +23 -8
  31. package/src/components/{cv-code-snippet → cv-feedback-button}/_cv-feedback-button.vue +2 -0
  32. package/src/components/cv-form/cv-form.vue +1 -1
  33. package/src/components/cv-inline-loading/cv-inline-loading.vue +20 -14
  34. package/src/components/cv-link/cv-link.vue +12 -8
  35. package/src/components/cv-multi-select/cv-multi-select.vue +2 -2
  36. package/src/components/cv-number-input/cv-number-input-skeleton.vue +5 -3
  37. package/src/components/cv-number-input/cv-number-input.vue +32 -23
  38. package/src/components/cv-overflow-menu/cv-overflow-menu.vue +1 -1
  39. package/src/components/cv-svg/_cv-svg.vue +41 -0
  40. package/src/components/cv-tabs/cv-tab.vue +1 -1
  41. package/src/components/cv-tabs/cv-tabs.vue +1 -1
  42. package/src/components/cv-tag/cv-tag.vue +7 -1
  43. package/src/components/cv-text-area/cv-text-area.vue +6 -0
  44. package/src/components/cv-text-input/cv-text-input.vue +5 -0
  45. package/src/components/cv-tooltip/cv-interactive-tooltip.vue +1 -1
  46. package/src/components/cv-ui-shell/cv-header-global-action.vue +1 -1
  47. package/src/components/cv-ui-shell/cv-header-menu-button.vue +1 -1
  48. package/src/components/cv-ui-shell/cv-header-panel.vue +1 -1
  49. package/src/components/cv-ui-shell/cv-side-nav.vue +1 -1
@@ -22,9 +22,9 @@
22
22
  :class="{ 'bx--dropdown__wrapper--inline': inline, 'cv-dropdown': !formItem }"
23
23
  :style="wrapperStyleOverride"
24
24
  >
25
- <span v-if="label" :id="`${uid}-label`" class="bx--label" :class="{ 'bx--label--disabled': disabled }">
26
- {{ label }}
27
- </span>
25
+ <span v-if="label" :id="`${uid}-label`" class="bx--label" :class="{ 'bx--label--disabled': disabled }">{{
26
+ label
27
+ }}</span>
28
28
 
29
29
  <div
30
30
  v-if="!inline && isHelper"
@@ -58,11 +58,14 @@
58
58
  >
59
59
  <button
60
60
  class="bx--dropdown-text"
61
+ :aria-disabled="disabled"
61
62
  aria-haspopup="true"
62
- :aria-expanded="open"
63
+ :aria-expanded="open ? 'true' : 'false'"
63
64
  :aria-controls="`${uid}-menu`"
64
- :aria-labelledby="`${uid}-label ${uid}-value`"
65
+ :aria-labelledby="ariaLabeledBy"
66
+ :disabled="disabled"
65
67
  type="button"
68
+ ref="button"
66
69
  >
67
70
  <WarningFilled16 v-if="isInvalid && inline" class="bx--dropdown__invalid-icon" />
68
71
  <span
@@ -81,7 +84,7 @@
81
84
  class="bx--dropdown-list"
82
85
  :id="`${uid}-menu`"
83
86
  role="menu"
84
- :aria-hidden="!open"
87
+ :aria-hidden="!open ? 'true' : 'false'"
85
88
  wh-menu-anchor="left"
86
89
  :aria-labelledby="`${uid}-label`"
87
90
  ref="droplist"
@@ -161,6 +164,13 @@ export default {
161
164
  },
162
165
  },
163
166
  computed: {
167
+ ariaLabeledBy() {
168
+ if (this.label) {
169
+ return `${this.uid}-label ${this.uid}-value`;
170
+ } else {
171
+ return `${this.uid}-value`;
172
+ }
173
+ },
164
174
  internalCaption() {
165
175
  if (this.selectedChild) {
166
176
  return this.selectedChild.internalContent;
@@ -276,7 +286,7 @@ export default {
276
286
  },
277
287
  onEsc() {
278
288
  this.open = false;
279
- this.$el.focus();
289
+ this.focus();
280
290
  },
281
291
  onClick(ev) {
282
292
  if (this.disabled) {
@@ -284,7 +294,7 @@ export default {
284
294
  } else {
285
295
  this.open = !this.open;
286
296
  if (!this.open) {
287
- this.$el.focus();
297
+ this.focus();
288
298
  }
289
299
 
290
300
  let target = ev.target;
@@ -300,6 +310,11 @@ export default {
300
310
  }
301
311
  }
302
312
  },
313
+ focus() {
314
+ this.$nextTick(() => {
315
+ this.$refs.button.focus();
316
+ });
317
+ },
303
318
  },
304
319
  };
305
320
  </script>
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <button
3
+ aria-label="ariaLabel"
3
4
  type="button"
4
5
  class="cv-feedback-button"
5
6
  v-bind="$attrs"
@@ -27,6 +28,7 @@ export default {
27
28
  name: 'cvFeedbackButton',
28
29
  inheritAttrs: false,
29
30
  props: {
31
+ ariaLabel: { type: String, default: 'Feedback button' },
30
32
  feedback: { type: String, required: true },
31
33
  inline: Boolean,
32
34
  timeout: { type: Number, default: 2000 },
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <form class="cv-form bx--form">
2
+ <form class="cv-form bx--form" v-on="$listeners">
3
3
  <slot></slot>
4
4
  </form>
5
5
  </template>
@@ -1,19 +1,22 @@
1
1
  <template>
2
- <div data-inline-loading class="bx--inline-loading" role="alert" aria-live="assertive">
3
- <div class="bx--inline-loading__animation" :class="{ 'bx--loading--stop': internalState === STATES.ENDING }">
2
+ <div data-inline-loading :class="`${carbonPrefix}--inline-loading`" role="alert" aria-live="assertive">
3
+ <div :class="animationClasses">
4
4
  <div
5
5
  v-show="internalState === STATES.LOADING || internalState === STATES.ENDING"
6
- class="bx--loading bx--loading--small"
6
+ :class="`${carbonPrefix}--loading ${carbonPrefix}--loading--small`"
7
7
  >
8
- <svg class="bx--loading__svg" viewBox="-75 -75 150 150">
9
- <circle class="bx--loading__background" cx="0" cy="0" r="26.8125" />
10
- <circle class="bx--loading__stroke" cx="0" cy="0" r="26.8125" />
8
+ <svg :class="`${carbonPrefix}--loading__svg`" viewBox="-75 -75 150 150">
9
+ <circle :class="`${carbonPrefix}--loading__background`" cx="0" cy="0" r="26.8125" />
10
+ <circle :class="`${carbonPrefix}--loading__stroke`" cx="0" cy="0" r="26.8125" />
11
11
  </svg>
12
12
  </div>
13
- <CheckmarkFilled16 :hidden="internalState !== STATES.LOADED" class="bx--inline-loading__checkmark-container" />
14
- <ErrorFilled16 :hidden="internalState !== STATES.ERROR" class="bx--inline-loading--error" />
13
+ <CheckmarkFilled16
14
+ :hidden="internalState !== STATES.LOADED"
15
+ :class="`${carbonPrefix}--inline-loading__checkmark-container`"
16
+ />
17
+ <ErrorFilled16 :hidden="internalState !== STATES.ERROR" :class="`${carbonPrefix}--inline-loading--error`" />
15
18
  </div>
16
- <p class="bx--inline-loading__text">{{ stateText }}</p>
19
+ <p :class="`${carbonPrefix}--inline-loading__text`">{{ stateText }}</p>
17
20
  </div>
18
21
  </template>
19
22
 
@@ -21,10 +24,12 @@
21
24
  import { STATES } from './consts';
22
25
  import ErrorFilled16 from '@carbon/icons-vue/lib/error--filled/16';
23
26
  import CheckmarkFilled16 from '@carbon/icons-vue/lib/checkmark--filled/16';
27
+ import carbonPrefixMixin from '../../mixins/carbon-prefix-mixin';
24
28
 
25
29
  export default {
26
30
  name: 'CvInlineLoading',
27
31
  components: { ErrorFilled16, CheckmarkFilled16 },
32
+ mixins: [carbonPrefixMixin],
28
33
  created() {
29
34
  this.STATES = STATES;
30
35
  },
@@ -76,12 +81,13 @@ export default {
76
81
  return this.loadingText;
77
82
  }
78
83
  },
79
- CONSTS() {
80
- return { STATES };
84
+ animationClasses() {
85
+ const classes = [`${this.carbonPrefix}--inline-loading__animation`];
86
+ if (this.internalState === STATES.ENDING) {
87
+ classes.push(`${this.carbonPrefix}--loading--stop`);
88
+ }
89
+ return classes;
81
90
  },
82
91
  },
83
- CONSTS() {
84
- return { STATES };
85
- },
86
92
  };
87
93
  </script>
@@ -1,23 +1,27 @@
1
1
  <template>
2
- <component
3
- :is="tagType"
4
- v-on="$listeners"
5
- v-bind="linkProps"
6
- class="cv-link bx--link"
7
- :class="{ 'bx--link--inline': inline }"
8
- >
2
+ <component :is="tagType" v-on="$listeners" v-bind="linkProps" class="cv-link" :class="linkClasses">
9
3
  <slot></slot>
10
4
  </component>
11
5
  </template>
12
6
 
13
7
  <script>
14
8
  import LinkMixin from '../../mixins/link-mixin';
9
+ import carbonPrefixMixin from '../../mixins/carbon-prefix-mixin';
15
10
 
16
11
  export default {
17
12
  name: 'CvLink',
18
- mixins: [LinkMixin],
13
+ mixins: [LinkMixin, carbonPrefixMixin],
19
14
  props: {
20
15
  inline: Boolean,
21
16
  },
17
+ computed: {
18
+ linkClasses() {
19
+ const classes = [`${this.carbonPrefix}--link`];
20
+ if (this.inline) {
21
+ classes.push(`${this.carbonPrefix}--link--inline`);
22
+ }
23
+ return classes;
24
+ },
25
+ },
22
26
  };
23
27
  </script>
@@ -43,7 +43,7 @@
43
43
  <div
44
44
  role="button"
45
45
  aria-haspopup="true"
46
- :aria-expanded="open"
46
+ :aria-expanded="open ? 'true' : 'false'"
47
47
  :aria-owns="uid"
48
48
  :aria-controls="uid"
49
49
  class="bx--list-box__field"
@@ -71,7 +71,7 @@
71
71
  :aria-controls="uid"
72
72
  aria-autocomplete="list"
73
73
  role="combobox"
74
- :aria-expanded="open"
74
+ :aria-expanded="open ? 'true' : 'false'"
75
75
  autocomplete="off"
76
76
  :placeholder="label"
77
77
  v-model="filter"
@@ -1,12 +1,14 @@
1
1
  <template>
2
- <div class="cv-number-input bx--form-item">
3
- <label class="bx--label bx--skeleton" />
4
- <div class="bx--number bx--skeleton" />
2
+ <div class="cv-number-input" :class="`${carbonPrefix}--form-item`">
3
+ <label :class="`${carbonPrefix}--label ${carbonPrefix}--skeleton`" />
4
+ <div :class="`${carbonPrefix}--number ${carbonPrefix}--skeleton`" />
5
5
  </div>
6
6
  </template>
7
7
 
8
8
  <script>
9
+ import carbonPrefixMixin from '../../mixins/carbon-prefix-mixin';
9
10
  export default {
10
11
  name: 'CvNumberInputSkeleton',
12
+ mixins: [carbonPrefixMixin],
11
13
  };
12
14
  </script>
@@ -1,24 +1,14 @@
1
1
  <template>
2
- <cv-wrapper :tag-type="formItem ? 'div' : ''" class="cv-number-input bx--form-item">
3
- <div
4
- data-numberinput
5
- class="bx--number"
6
- :class="{
7
- 'bx--number--light': theme === 'light',
8
- 'bx--number--helpertext': isHelper,
9
- 'cv-number-input': !formItem,
10
- 'bx--number--mobile': mobile,
11
- }"
12
- :data-invalid="isInvalid"
13
- >
14
- <label :for="uid" class="bx--label">{{ label }}</label>
15
- <div class="bx--form__helper-text" v-if="isHelper">
2
+ <cv-wrapper :tag-type="formItem ? 'div' : ''" class="cv-number-input" :class="`${carbonPrefix}--form-item`">
3
+ <div data-numberinput :class="numberInputClasses" :data-invalid="isInvalid">
4
+ <label :for="uid" :class="`${carbonPrefix}--label`">{{ label }}</label>
5
+ <div :class="`${carbonPrefix}--form__helper-text`" v-if="isHelper">
16
6
  <slot name="helper-text">{{ helperText }}</slot>
17
7
  </div>
18
- <div class="bx--number__input-wrapper">
8
+ <div :class="`${carbonPrefix}--number__input-wrapper`">
19
9
  <button
20
10
  v-if="mobile"
21
- class="bx--number__control-btn down-icon"
11
+ :class="`${carbonPrefix}--number__control-btn down-icon`"
22
12
  @click="doDown"
23
13
  type="button"
24
14
  :aria-label="ariaLabelForDownButton"
@@ -38,10 +28,10 @@
38
28
  :max="max"
39
29
  ref="input"
40
30
  />
41
- <WarningFilled16 v-if="isInvalid && !mobile" class="bx--number__invalid" />
42
- <div class="bx--number__controls" v-if="!mobile">
31
+ <WarningFilled16 v-if="isInvalid && !mobile" :class="`${carbonPrefix}--number__invalid`" />
32
+ <div :class="`${carbonPrefix}--number__controls`" v-if="!mobile">
43
33
  <button
44
- class="bx--number__control-btn up-icon"
34
+ :class="`${carbonPrefix}--number__control-btn up-icon`"
45
35
  @click="doUp"
46
36
  type="button"
47
37
  :aria-label="ariaLabelForUpButton"
@@ -50,7 +40,7 @@
50
40
  <CaretUpGlyph />
51
41
  </button>
52
42
  <button
53
- class="bx--number__control-btn down-icon"
43
+ :class="`${carbonPrefix}--number__control-btn down-icon`"
54
44
  @click="doDown"
55
45
  type="button"
56
46
  :aria-label="ariaLabelForDownButton"
@@ -61,7 +51,7 @@
61
51
  </div>
62
52
  <button
63
53
  v-else
64
- class="bx--number__control-btn up-icon"
54
+ :class="`${carbonPrefix}--number__control-btn up-icon`"
65
55
  @click="doUp"
66
56
  type="button"
67
57
  :aria-label="ariaLabelForUpButton"
@@ -70,7 +60,7 @@
70
60
  <CaretUpGlyph />
71
61
  </button>
72
62
  </div>
73
- <div class="bx--form-requirement" v-if="isInvalid">
63
+ <div :class="`${carbonPrefix}--form-requirement`" v-if="isInvalid">
74
64
  <slot name="invalid-message">{{ invalidMessage }}</slot>
75
65
  </div>
76
66
  </div>
@@ -84,10 +74,11 @@ import CaretDownGlyph from '@carbon/icons-vue/es/caret--down/index';
84
74
  import CaretUpGlyph from '@carbon/icons-vue/es/caret--up/index';
85
75
  import WarningFilled16 from '@carbon/icons-vue/es/warning--filled/16';
86
76
  import CvWrapper from '../cv-wrapper/_cv-wrapper';
77
+ import carbonPrefixMixin from '../../mixins/carbon-prefix-mixin';
87
78
 
88
79
  export default {
89
80
  name: 'CvNumberInput',
90
- mixins: [uidMixin, themeMixin],
81
+ mixins: [uidMixin, themeMixin, carbonPrefixMixin],
91
82
  components: { CaretDownGlyph, CaretUpGlyph, WarningFilled16, CvWrapper },
92
83
  inheritAttrs: false,
93
84
  props: {
@@ -140,6 +131,24 @@ export default {
140
131
  },
141
132
  },
142
133
  computed: {
134
+ numberInputClasses() {
135
+ const classes = [`${this.carbonPrefix}--number`];
136
+
137
+ if (this.theme === 'light') {
138
+ classes.push(`${this.carbonPrefix}--number--light`);
139
+ }
140
+ if (this.isHelper) {
141
+ classes.push(`${this.carbonPrefix}--number--helpertext`);
142
+ }
143
+ if (!this.formItem) {
144
+ classes.push(`cv-number-input`);
145
+ }
146
+ if (this.mobile) {
147
+ classes.push(`${this.carbonPrefix}--number--mobile`);
148
+ }
149
+
150
+ return classes;
151
+ },
143
152
  // Bind listeners at the component level to the embedded input element and
144
153
  // add our own input listener to service the v-model. See:
145
154
  // https://vuejs.org/v2/guide/components-custom-events.html#Customizing-Component-v-model
@@ -5,7 +5,7 @@
5
5
  :class="[tipClasses, { 'bx--overflow-menu--open': open }]"
6
6
  aria-haspopup
7
7
  type="button"
8
- :aria-expanded="open"
8
+ :aria-expanded="open ? 'true' : 'false'"
9
9
  :aria-controls="`${uid}-menu`"
10
10
  :id="`${uid}-trigger`"
11
11
  ref="trigger"
@@ -0,0 +1,41 @@
1
+ <script>
2
+ import CvWrapper from '../cv-wrapper/_cv-wrapper';
3
+
4
+ export default {
5
+ name: 'CvSvg',
6
+ components: { CvWrapper },
7
+ props: {
8
+ svg: {
9
+ type: [String, Object],
10
+ default: undefined,
11
+ validator(val) {
12
+ if (!val || typeof val === 'string') {
13
+ return true;
14
+ }
15
+ return val.render !== null;
16
+ },
17
+ },
18
+ },
19
+ computed: {
20
+ isSvg() {
21
+ return this.svg !== undefined && this.svg.indexOf('<svg') >= 0;
22
+ },
23
+ isSymbol() {
24
+ return this.svg !== undefined && !this.isSvg && this.svg.indexOf('#') >= 0;
25
+ },
26
+ },
27
+ render(createElement) {
28
+ if (typeof this.svg === 'object') {
29
+ return createElement('component', { is: this.svg });
30
+ } else if (this.isSvg) {
31
+ return createElement('svg', { domProps: { innerHTML: this.svg } });
32
+ } else {
33
+ if (this.isSymbol) {
34
+ return createElement('svg', {}, [createElement('use', { attrs: { href: this.svg } })]);
35
+ } else {
36
+ return createElement('img', { attrs: { src: this.svg } });
37
+ }
38
+ }
39
+ },
40
+ };
41
+ </script>
@@ -4,7 +4,7 @@
4
4
  :id="uid"
5
5
  role="tabpanel"
6
6
  :aria-labelledby="`${uid}-link`"
7
- :aria-hidden="!dataSelected"
7
+ :aria-hidden="!dataSelected ? 'true' : 'false'"
8
8
  :hidden="!dataSelected"
9
9
  >
10
10
  <slot>
@@ -34,7 +34,7 @@
34
34
  'bx--tabs__nav-item--disabled': disabledTabs.indexOf(tab.uid) !== -1,
35
35
  }"
36
36
  role="tab"
37
- :aria-selected="selectedId == tab.uid"
37
+ :aria-selected="selectedId == tab.uid ? 'true' : 'false'"
38
38
  :aria-disabled="disabledTabs.indexOf(tab.uid) !== -1"
39
39
  >
40
40
  <a
@@ -16,7 +16,13 @@
16
16
  @keyup.space.prevent="$emit('remove')"
17
17
  >
18
18
  <span class="bx--tag__label">{{ label }}</span>
19
- <button v-if="isFilter" class="bx--tag__close-icon" :aria-label="clearAriaLabel" @click.stop.prevent="onRemove">
19
+ <button
20
+ v-if="isFilter"
21
+ class="bx--tag__close-icon"
22
+ :aria-label="clearAriaLabel"
23
+ @click.stop.prevent="onRemove"
24
+ :disabled="disabled"
25
+ >
20
26
  <Close16 />
21
27
  </button>
22
28
  </span>
@@ -22,6 +22,7 @@
22
22
  v-bind="$attrs"
23
23
  :value="value"
24
24
  v-on="inputListeners"
25
+ ref="textarea"
25
26
  ></textarea>
26
27
  </div>
27
28
  <div class="bx--form-requirement" v-if="isInvalid">
@@ -75,6 +76,11 @@ export default {
75
76
  this.isInvalid = !!(this.$slots['invalid-message'] || (this.invalidMessage && this.invalidMessage.length));
76
77
  this.isHelper = !!(this.$slots['helper-text'] || (this.helperText && this.helperText.length));
77
78
  },
79
+ focus() {
80
+ this.$nextTick(() => {
81
+ this.$refs.textarea.focus();
82
+ });
83
+ },
78
84
  },
79
85
  };
80
86
  </script>
@@ -125,6 +125,11 @@ export default {
125
125
  this.$refs.input.value = currentValue;
126
126
  });
127
127
  },
128
+ focus() {
129
+ this.$nextTick(() => {
130
+ this.$refs.input.focus();
131
+ });
132
+ },
128
133
  },
129
134
  };
130
135
  </script>
@@ -4,7 +4,7 @@
4
4
  <slot name="label"></slot>
5
5
 
6
6
  <button
7
- :aria-expanded="dataVisible"
7
+ :aria-expanded="dataVisible ? 'true' : 'false'"
8
8
  :aria-labelledby="`${uid}-label`"
9
9
  class="bx--tooltip__trigger"
10
10
  :aria-controls="`${uid}`"
@@ -6,7 +6,7 @@
6
6
  type="button"
7
7
  aria-haspopup="true"
8
8
  :aria-controls="ariaControls"
9
- :aria-expanded="active"
9
+ :aria-expanded="active ? 'true' : 'false'"
10
10
  @click="gaToggle"
11
11
  @focusout="gaFocusout"
12
12
  >
@@ -6,7 +6,7 @@
6
6
  type="button"
7
7
  aria-haspopup="true"
8
8
  :aria-controls="ariaControls"
9
- :aria-expanded="active"
9
+ :aria-expanded="active ? 'true' : 'false'"
10
10
  @click="gaToggle"
11
11
  @focusout="gaFocusout"
12
12
  >
@@ -2,7 +2,7 @@
2
2
  <div
3
3
  class="cv-header-panel bx--header-panel"
4
4
  :class="{ 'bx--header-panel--expanded': panelExpanded }"
5
- :aria-hidden="!panelExpanded"
5
+ :aria-hidden="!panelExpanded ? 'true' : 'false'"
6
6
  :id="id"
7
7
  @focusout="onFocusout"
8
8
  @mousedown="onMouseDown"
@@ -7,7 +7,7 @@
7
7
  'bx--side-nav--collapsed': !panelExpanded && fixed,
8
8
  'bx--side-nav--ux': isChildOfHeader,
9
9
  }"
10
- :aria-hidden="!panelExpanded && !fixed"
10
+ :aria-hidden="!panelExpanded && !fixed ? 'true' : 'false'"
11
11
  :id="id"
12
12
  @focusout="onFocusout"
13
13
  @mousedown="onMouseDown"