@brightspace-ui/core 3.248.0 → 3.249.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.
|
@@ -29,11 +29,6 @@ class PageHeaderButton extends FocusMixin(LitElement) {
|
|
|
29
29
|
* @type {'start'|'end'}
|
|
30
30
|
*/
|
|
31
31
|
iconPosition: { attribute: 'icon-position', type: String },
|
|
32
|
-
/**
|
|
33
|
-
* Visually hides the highlight border when hovered/focused
|
|
34
|
-
* @type {boolean}
|
|
35
|
-
*/
|
|
36
|
-
noHighlightBorder: { attribute: 'no-highlight-border', type: Boolean },
|
|
37
32
|
/**
|
|
38
33
|
* REQUIRED: Text for the button
|
|
39
34
|
* @type {string}
|
|
@@ -68,7 +63,6 @@ class PageHeaderButton extends FocusMixin(LitElement) {
|
|
|
68
63
|
super();
|
|
69
64
|
this.disabled = false;
|
|
70
65
|
this.iconPosition = 'start';
|
|
71
|
-
this.noHighlightBorder = false;
|
|
72
66
|
this.textHidden = false;
|
|
73
67
|
this.tooltipPosition = 'bottom';
|
|
74
68
|
}
|
|
@@ -79,7 +73,7 @@ class PageHeaderButton extends FocusMixin(LitElement) {
|
|
|
79
73
|
|
|
80
74
|
render() {
|
|
81
75
|
const { ariaLabel, id, text, tooltip } = this.#getRenderSettings();
|
|
82
|
-
const highlightBorder =
|
|
76
|
+
const highlightBorder = !this.disabled ? html`<span class="d2l-labs-navigation-highlight-border"></span>` : nothing;
|
|
83
77
|
const icon = html`<d2l-icon icon="${this.icon}"></d2l-icon>`;
|
|
84
78
|
return html`
|
|
85
79
|
<button id="${ifDefined(id)}" ?disabled="${this.disabled}" aria-label="${ifDefined(ariaLabel)}" type="button">
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
+
import { getFlag } from '../../helpers/flags.js';
|
|
2
3
|
import { getUniqueId } from '../../helpers/uniqueId.js';
|
|
3
4
|
|
|
4
5
|
export const TabPanelMixin = superclass => class extends superclass {
|
|
@@ -22,14 +23,17 @@ export const TabPanelMixin = superclass => class extends superclass {
|
|
|
22
23
|
role: { type: String, reflect: true },
|
|
23
24
|
/**
|
|
24
25
|
* DEPRECATED: Use to select the tab. Do NOT set if using the d2l-tab/d2l-tab-panel implementation.
|
|
26
|
+
* Remove with GAUD-8299-core-tabs-use-new-structure flag clean up.
|
|
25
27
|
* @type {boolean}
|
|
26
28
|
*/
|
|
27
29
|
selected: { type: Boolean, reflect: true },
|
|
28
30
|
/**
|
|
29
31
|
* DEPRECATED: The text used for the tab, as well as labelling the panel. Required if not using d2l-tab/d2l-tab-panel implementation.
|
|
32
|
+
* Remove with GAUD-8299-core-tabs-use-new-structure flag clean up.
|
|
30
33
|
* @type {string}
|
|
31
34
|
*/
|
|
32
|
-
text: { type: String }
|
|
35
|
+
text: { type: String },
|
|
36
|
+
_selected: { type: Boolean, attribute: '_selected', reflect: true }
|
|
33
37
|
};
|
|
34
38
|
}
|
|
35
39
|
|
|
@@ -43,9 +47,13 @@ export const TabPanelMixin = superclass => class extends superclass {
|
|
|
43
47
|
:host([no-padding]) {
|
|
44
48
|
margin: 0;
|
|
45
49
|
}
|
|
50
|
+
/* clean up with GAUD-8299-core-tabs-use-new-structure flag clean up */
|
|
46
51
|
:host([selected]) {
|
|
47
52
|
display: block;
|
|
48
53
|
}
|
|
54
|
+
:host([_selected]) {
|
|
55
|
+
display: block;
|
|
56
|
+
}
|
|
49
57
|
`;
|
|
50
58
|
}
|
|
51
59
|
|
|
@@ -54,7 +62,8 @@ export const TabPanelMixin = superclass => class extends superclass {
|
|
|
54
62
|
this.noPadding = false;
|
|
55
63
|
/** @ignore */
|
|
56
64
|
this.role = 'tabpanel';
|
|
57
|
-
this.
|
|
65
|
+
this._selected = false;
|
|
66
|
+
if (!this.#useTabsNewStructure) this.selected = false; // clean up with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
58
67
|
}
|
|
59
68
|
|
|
60
69
|
connectedCallback() {
|
|
@@ -68,7 +77,12 @@ export const TabPanelMixin = superclass => class extends superclass {
|
|
|
68
77
|
changedProperties.forEach((oldVal, prop) => {
|
|
69
78
|
if (prop === 'labelledBy') {
|
|
70
79
|
this.setAttribute('aria-labelledby', this.labelledBy);
|
|
71
|
-
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// clean up below with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
83
|
+
if (this.#useTabsNewStructure) return;
|
|
84
|
+
|
|
85
|
+
if (prop === 'selected') {
|
|
72
86
|
if (this.selected) {
|
|
73
87
|
requestAnimationFrame(() => {
|
|
74
88
|
/** DEPRECATED: Dispatched when a tab is selected */
|
|
@@ -87,4 +101,6 @@ export const TabPanelMixin = superclass => class extends superclass {
|
|
|
87
101
|
});
|
|
88
102
|
}
|
|
89
103
|
|
|
104
|
+
#useTabsNewStructure = getFlag('GAUD-8299-core-tabs-use-new-structure', false);
|
|
105
|
+
|
|
90
106
|
};
|
package/components/tabs/tabs.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import '../colors/colors.js';
|
|
2
2
|
import '../icons/icon.js';
|
|
3
3
|
import './tab-internal.js';
|
|
4
|
-
import { css, html, LitElement, unsafeCSS } from 'lit';
|
|
4
|
+
import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
|
|
5
5
|
import { cssEscape, findComposedAncestor, getOffsetParent, isVisible } from '../../helpers/dom.js';
|
|
6
6
|
import { getFocusPseudoClass, getFocusRingStyles } from '../../helpers/focus.js';
|
|
7
7
|
import { ArrowKeysMixin } from '../../mixins/arrow-keys/arrow-keys-mixin.js';
|
|
8
8
|
import { bodyCompactStyles } from '../typography/styles.js';
|
|
9
9
|
import { classMap } from 'lit/directives/class-map.js';
|
|
10
|
+
import { getFlag } from '../../helpers/flags.js';
|
|
10
11
|
import { getOverflowDeclarations } from '../../helpers/overflow.js';
|
|
11
12
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
12
13
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
@@ -229,14 +230,20 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
229
230
|
this.maxToShow = -1;
|
|
230
231
|
this._allowScrollNext = false;
|
|
231
232
|
this._allowScrollPrevious = false;
|
|
232
|
-
|
|
233
|
+
|
|
234
|
+
/*
|
|
235
|
+
* Remove this._defaultSlotBehavior and related code with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
236
|
+
* NOTE: remove the TRUE case of _defaultSlotBehavior
|
|
237
|
+
*/
|
|
238
|
+
this._defaultSlotBehavior = !this.#newTabsPanelStructure;
|
|
239
|
+
|
|
233
240
|
this._loadingCompleteResolve = undefined;
|
|
234
241
|
this._loadingCompletePromise = new Promise(resolve => this._loadingCompleteResolve = resolve);
|
|
235
242
|
this._maxWidth = null;
|
|
236
243
|
this._scrollCollapsed = false;
|
|
237
244
|
this._state = 'shown';
|
|
238
245
|
this._tabIds = {};
|
|
239
|
-
this._tabInfos = [];
|
|
246
|
+
if (this._defaultSlotBehavior) this._tabInfos = [];
|
|
240
247
|
this._translationValue = 0;
|
|
241
248
|
}
|
|
242
249
|
|
|
@@ -266,7 +273,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
266
273
|
|
|
267
274
|
this.arrowKeysOnBeforeFocus = async(tab) => {
|
|
268
275
|
if (this._defaultSlotBehavior) {
|
|
269
|
-
// remove this section
|
|
276
|
+
// remove this section with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
270
277
|
const tabInfo = this._getTabInfo(tab.controlsPanel);
|
|
271
278
|
this._setFocusableDefaultSlotBehavior(tabInfo);
|
|
272
279
|
|
|
@@ -370,7 +377,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
370
377
|
aria-label="${ifDefined(this.text)}"
|
|
371
378
|
role="tablist"
|
|
372
379
|
style="${styleMap(tabsContainerListStyles)}">
|
|
373
|
-
${repeat(this._tabInfos, (tabInfo) => tabInfo.id, (tabInfo) => html`
|
|
380
|
+
${!this.#newTabsPanelStructure ? repeat(this._tabInfos, (tabInfo) => tabInfo.id, (tabInfo) => html`
|
|
374
381
|
<d2l-tab-internal aria-selected="${tabInfo.selected ? 'true' : 'false'}"
|
|
375
382
|
.controlsPanel="${tabInfo.id}"
|
|
376
383
|
data-state="${tabInfo.state}"
|
|
@@ -378,7 +385,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
378
385
|
tabindex="${tabInfo.activeFocusable ? 0 : -1}"
|
|
379
386
|
text="${tabInfo.text}">
|
|
380
387
|
</d2l-tab-internal>
|
|
381
|
-
`)}
|
|
388
|
+
`) : nothing}
|
|
382
389
|
<slot name="tabs" @slotchange="${this._handleTabsSlotChange}"></slot>
|
|
383
390
|
</div>
|
|
384
391
|
`)}
|
|
@@ -393,9 +400,9 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
393
400
|
<div class="d2l-tabs-container-ext"><slot name="ext"></slot></div>
|
|
394
401
|
</div>
|
|
395
402
|
<div class="${classMap(panelContainerClasses)}"
|
|
396
|
-
@d2l-tab-panel-selected="${this._handlePanelSelected}"
|
|
397
|
-
@d2l-tab-panel-text-changed="${this._handlePanelTextChange}">
|
|
398
|
-
|
|
403
|
+
@d2l-tab-panel-selected="${ifDefined(!this.#newTabsPanelStructure ? this._handlePanelSelected : undefined)}"
|
|
404
|
+
@d2l-tab-panel-text-changed="${ifDefined(!this.#newTabsPanelStructure ? this._handlePanelTextChange : undefined)}">
|
|
405
|
+
${!this.#newTabsPanelStructure ? html`<slot @slotchange="${this._handleDefaultSlotChange}"></slot>` : nothing}
|
|
399
406
|
<slot name="panels" @slotchange="${this._handlePanelsSlotChange}"></slot>
|
|
400
407
|
</div>
|
|
401
408
|
`;
|
|
@@ -420,6 +427,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
420
427
|
}
|
|
421
428
|
|
|
422
429
|
#checkTabPanelMatchRequested;
|
|
430
|
+
#newTabsPanelStructure = getFlag('GAUD-8299-core-tabs-use-new-structure', false);
|
|
423
431
|
#panels;
|
|
424
432
|
#updateAriaControlsRequested;
|
|
425
433
|
|
|
@@ -444,7 +452,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
444
452
|
});
|
|
445
453
|
}
|
|
446
454
|
|
|
447
|
-
// remove
|
|
455
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
448
456
|
_animateTabAdditionDefaultSlotBehavior(tabInfo) {
|
|
449
457
|
const tab = this.shadowRoot
|
|
450
458
|
&& this.shadowRoot.querySelector(`d2l-tab-internal[controls-panel="${cssEscape(tabInfo.id)}"]`);
|
|
@@ -476,7 +484,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
476
484
|
});
|
|
477
485
|
}
|
|
478
486
|
|
|
479
|
-
// remove
|
|
487
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
480
488
|
_animateTabRemovalDefaultSlotBehavior(tabInfo) {
|
|
481
489
|
const tab = this.shadowRoot &&
|
|
482
490
|
this.shadowRoot.querySelector(`d2l-tab-internal[controls-panel="${cssEscape(tabInfo.id)}"]`);
|
|
@@ -500,7 +508,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
500
508
|
return this.#calculateScrollPositionLogic(tabs, selectedTabIndex, measures);
|
|
501
509
|
}
|
|
502
510
|
|
|
503
|
-
// remove
|
|
511
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
504
512
|
_calculateScrollPositionDefaultSlotBehavior(selectedTabInfo, measures) {
|
|
505
513
|
const selectedTabIndex = this._tabInfos.indexOf(selectedTabInfo);
|
|
506
514
|
return this.#calculateScrollPositionLogic(this._tabInfos, selectedTabIndex, measures);
|
|
@@ -520,7 +528,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
520
528
|
selectedTab.focus();
|
|
521
529
|
}
|
|
522
530
|
|
|
523
|
-
// remove
|
|
531
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
524
532
|
async _focusSelectedDefaultSlotBehavior() {
|
|
525
533
|
const selectedTab = this.shadowRoot && this.shadowRoot.querySelector('d2l-tab-internal[aria-selected="true"]');
|
|
526
534
|
if (!selectedTab) return;
|
|
@@ -557,7 +565,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
557
565
|
return this.#panels.find(panel => panel.labelledBy === id);
|
|
558
566
|
}
|
|
559
567
|
|
|
560
|
-
// remove
|
|
568
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
561
569
|
_getPanelDefaultSlotBehavior(id) {
|
|
562
570
|
if (!this.shadowRoot) return;
|
|
563
571
|
// use simple selector for slot (Edge)
|
|
@@ -570,17 +578,18 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
570
578
|
}
|
|
571
579
|
}
|
|
572
580
|
|
|
573
|
-
//
|
|
581
|
+
// rremove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
574
582
|
_getPanelsDefaultSlotBehavior(slot) {
|
|
575
583
|
if (!slot) return;
|
|
576
584
|
return slot.assignedElements({ flatten: true }).filter((node) => node.role === 'tabpanel');
|
|
577
585
|
}
|
|
578
586
|
|
|
579
|
-
// remove
|
|
587
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
580
588
|
_getTabInfo(id) {
|
|
581
589
|
return this._tabInfos.find((t) => t.id === id);
|
|
582
590
|
}
|
|
583
591
|
|
|
592
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
584
593
|
async _handleDefaultSlotChange(e) {
|
|
585
594
|
if (!this._defaultSlotBehavior) return;
|
|
586
595
|
|
|
@@ -669,7 +678,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
669
678
|
this._resetFocusables();
|
|
670
679
|
}
|
|
671
680
|
|
|
672
|
-
// remove
|
|
681
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
673
682
|
_handlePanelSelected(e) {
|
|
674
683
|
if (!this._defaultSlotBehavior) return;
|
|
675
684
|
|
|
@@ -690,7 +699,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
690
699
|
this.#setAriaControls();
|
|
691
700
|
}
|
|
692
701
|
|
|
693
|
-
// remove
|
|
702
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
694
703
|
async _handlePanelTextChange(e) {
|
|
695
704
|
const tabInfo = this._getTabInfo(e.target.id);
|
|
696
705
|
// event could be from nested tabs
|
|
@@ -803,7 +812,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
803
812
|
this._updateScrollPosition(selectedTab);
|
|
804
813
|
}
|
|
805
814
|
|
|
806
|
-
// remove
|
|
815
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
807
816
|
async _handleTabSelectedDefaultSlotBehavior(e) {
|
|
808
817
|
e.stopPropagation();
|
|
809
818
|
|
|
@@ -940,7 +949,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
940
949
|
tab.tabIndex = 0;
|
|
941
950
|
}
|
|
942
951
|
|
|
943
|
-
// remove
|
|
952
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
944
953
|
_setFocusableDefaultSlotBehavior(tabInfo) {
|
|
945
954
|
const currentFocusable = this._tabInfos.find(ti => ti.activeFocusable);
|
|
946
955
|
if (currentFocusable) currentFocusable.activeFocusable = false;
|
|
@@ -1023,7 +1032,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
1023
1032
|
return this.#updateScrollPositionLogic(measures, newTranslationValue);
|
|
1024
1033
|
}
|
|
1025
1034
|
|
|
1026
|
-
// remove
|
|
1035
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
1027
1036
|
_updateScrollPositionDefaultSlotBehavior(selectedTabInfo) {
|
|
1028
1037
|
const measures = this._getMeasures();
|
|
1029
1038
|
const newTranslationValue = this._calculateScrollPositionDefaultSlotBehavior(selectedTabInfo, measures);
|
|
@@ -1050,13 +1059,26 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
1050
1059
|
return this.updateComplete;
|
|
1051
1060
|
}
|
|
1052
1061
|
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
if (this
|
|
1062
|
+
_updateTabListVisibility(tabs) {
|
|
1063
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
1064
|
+
if (!this.#newTabsPanelStructure) {
|
|
1065
|
+
if (this._state === 'shown' && tabs.length < 2) {
|
|
1066
|
+
this.#hideTabsList();
|
|
1067
|
+
} else if (this._state === 'hidden' && tabs.length > 1) {
|
|
1068
|
+
this.#showTabsList();
|
|
1069
|
+
} else if (this._state === 'shown' && tabs.length > 1) {
|
|
1070
|
+
// check if there are hidden tabs and tab list container should actually be hidden
|
|
1071
|
+
this.#handleTabHiddenChange();
|
|
1072
|
+
}
|
|
1073
|
+
return;
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
const visibleCount = tabs.filter(tab => !tab.hidden).length;
|
|
1077
|
+
if (this._state === 'shown' && visibleCount < 2) {
|
|
1056
1078
|
this.#hideTabsList();
|
|
1057
|
-
} else if (this._state === 'hidden' &&
|
|
1079
|
+
} else if (this._state === 'hidden' && visibleCount > 1) {
|
|
1058
1080
|
this.#showTabsList();
|
|
1059
|
-
} else if (this._state === 'shown' &&
|
|
1081
|
+
} else if (this._state === 'shown' && visibleCount > 1) {
|
|
1060
1082
|
// check if there are hidden tabs and tab list container should actually be hidden
|
|
1061
1083
|
this.#handleTabHiddenChange();
|
|
1062
1084
|
}
|
|
@@ -1069,7 +1091,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
1069
1091
|
return this.#updateTabsContainerWidthLogic();
|
|
1070
1092
|
}
|
|
1071
1093
|
|
|
1072
|
-
// remove
|
|
1094
|
+
// remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
1073
1095
|
_updateTabsContainerWidthDefaultSlotBehavior(selectedTabInfo) {
|
|
1074
1096
|
if (!this.maxToShow || this.maxToShow <= 0 || this.maxToShow >= this._tabInfos.length) return;
|
|
1075
1097
|
if (this._tabInfos.indexOf(selectedTabInfo) > this.maxToShow - 1) return;
|
|
@@ -1176,7 +1198,10 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
1176
1198
|
|
|
1177
1199
|
#handleTabDeselected(e) {
|
|
1178
1200
|
const panel = this._getPanel(e.target.id);
|
|
1179
|
-
if (panel)
|
|
1201
|
+
if (panel) {
|
|
1202
|
+
if (this.#newTabsPanelStructure) panel._selected = false;
|
|
1203
|
+
else panel.selected = false; // remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
1204
|
+
}
|
|
1180
1205
|
}
|
|
1181
1206
|
|
|
1182
1207
|
#handleTabHiddenChange() {
|
|
@@ -1264,14 +1289,20 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
1264
1289
|
selectedTab.tabIndex = 0;
|
|
1265
1290
|
|
|
1266
1291
|
const selectedPanel = this._getPanel(selectedTab.id);
|
|
1267
|
-
if (selectedPanel)
|
|
1292
|
+
if (selectedPanel) {
|
|
1293
|
+
if (this.#newTabsPanelStructure) selectedPanel._selected = true;
|
|
1294
|
+
else selectedPanel.selected = true; // remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
1295
|
+
}
|
|
1268
1296
|
this._tabs.forEach((tab) => {
|
|
1269
1297
|
if (tab.id !== selectedTab.id) {
|
|
1270
1298
|
if (tab.selected) {
|
|
1271
1299
|
tab.selected = false;
|
|
1272
1300
|
const panel = this._getPanel(tab.id);
|
|
1273
1301
|
// panel may not exist if it's being removed
|
|
1274
|
-
if (panel)
|
|
1302
|
+
if (panel) {
|
|
1303
|
+
if (this.#newTabsPanelStructure) panel._selected = false;
|
|
1304
|
+
else panel.selected = false; // remove with GAUD-8299-core-tabs-use-new-structure flag clean up
|
|
1305
|
+
}
|
|
1275
1306
|
}
|
|
1276
1307
|
if (tab.tabIndex === 0) tab.tabIndex = -1;
|
|
1277
1308
|
}
|
package/custom-elements.json
CHANGED
|
@@ -12379,12 +12379,6 @@
|
|
|
12379
12379
|
"type": "'start'|'end'",
|
|
12380
12380
|
"default": "\"start\""
|
|
12381
12381
|
},
|
|
12382
|
-
{
|
|
12383
|
-
"name": "no-highlight-border",
|
|
12384
|
-
"description": "Visually hides the highlight border when hovered/focused",
|
|
12385
|
-
"type": "boolean",
|
|
12386
|
-
"default": "false"
|
|
12387
|
-
},
|
|
12388
12382
|
{
|
|
12389
12383
|
"name": "text-hidden",
|
|
12390
12384
|
"description": "Visually hides the text but still accessible",
|
|
@@ -12425,13 +12419,6 @@
|
|
|
12425
12419
|
"type": "'start'|'end'",
|
|
12426
12420
|
"default": "\"start\""
|
|
12427
12421
|
},
|
|
12428
|
-
{
|
|
12429
|
-
"name": "noHighlightBorder",
|
|
12430
|
-
"attribute": "no-highlight-border",
|
|
12431
|
-
"description": "Visually hides the highlight border when hovered/focused",
|
|
12432
|
-
"type": "boolean",
|
|
12433
|
-
"default": "false"
|
|
12434
|
-
},
|
|
12435
12422
|
{
|
|
12436
12423
|
"name": "textHidden",
|
|
12437
12424
|
"attribute": "text-hidden",
|
|
@@ -15344,9 +15331,14 @@
|
|
|
15344
15331
|
"description": "REQUIRED: Id of the tab that labels this panel",
|
|
15345
15332
|
"type": "string"
|
|
15346
15333
|
},
|
|
15334
|
+
{
|
|
15335
|
+
"name": "selected",
|
|
15336
|
+
"description": "DEPRECATED: Use to select the tab. Do NOT set if using the d2l-tab/d2l-tab-panel implementation.\nRemove with GAUD-8299-core-tabs-use-new-structure flag clean up.",
|
|
15337
|
+
"type": "boolean"
|
|
15338
|
+
},
|
|
15347
15339
|
{
|
|
15348
15340
|
"name": "text",
|
|
15349
|
-
"description": "DEPRECATED: The text used for the tab, as well as labelling the panel. Required if not using d2l-tab/d2l-tab-panel implementation.",
|
|
15341
|
+
"description": "DEPRECATED: The text used for the tab, as well as labelling the panel. Required if not using d2l-tab/d2l-tab-panel implementation.\nRemove with GAUD-8299-core-tabs-use-new-structure flag clean up.",
|
|
15350
15342
|
"type": "string"
|
|
15351
15343
|
},
|
|
15352
15344
|
{
|
|
@@ -15354,12 +15346,6 @@
|
|
|
15354
15346
|
"description": "Opt out of default padding/whitespace around the panel",
|
|
15355
15347
|
"type": "boolean",
|
|
15356
15348
|
"default": "false"
|
|
15357
|
-
},
|
|
15358
|
-
{
|
|
15359
|
-
"name": "selected",
|
|
15360
|
-
"description": "DEPRECATED: Use to select the tab. Do NOT set if using the d2l-tab/d2l-tab-panel implementation.",
|
|
15361
|
-
"type": "boolean",
|
|
15362
|
-
"default": "false"
|
|
15363
15349
|
}
|
|
15364
15350
|
],
|
|
15365
15351
|
"properties": [
|
|
@@ -15369,10 +15355,16 @@
|
|
|
15369
15355
|
"description": "REQUIRED: Id of the tab that labels this panel",
|
|
15370
15356
|
"type": "string"
|
|
15371
15357
|
},
|
|
15358
|
+
{
|
|
15359
|
+
"name": "selected",
|
|
15360
|
+
"attribute": "selected",
|
|
15361
|
+
"description": "DEPRECATED: Use to select the tab. Do NOT set if using the d2l-tab/d2l-tab-panel implementation.\nRemove with GAUD-8299-core-tabs-use-new-structure flag clean up.",
|
|
15362
|
+
"type": "boolean"
|
|
15363
|
+
},
|
|
15372
15364
|
{
|
|
15373
15365
|
"name": "text",
|
|
15374
15366
|
"attribute": "text",
|
|
15375
|
-
"description": "DEPRECATED: The text used for the tab, as well as labelling the panel. Required if not using d2l-tab/d2l-tab-panel implementation.",
|
|
15367
|
+
"description": "DEPRECATED: The text used for the tab, as well as labelling the panel. Required if not using d2l-tab/d2l-tab-panel implementation.\nRemove with GAUD-8299-core-tabs-use-new-structure flag clean up.",
|
|
15376
15368
|
"type": "string"
|
|
15377
15369
|
},
|
|
15378
15370
|
{
|
|
@@ -15381,13 +15373,6 @@
|
|
|
15381
15373
|
"description": "Opt out of default padding/whitespace around the panel",
|
|
15382
15374
|
"type": "boolean",
|
|
15383
15375
|
"default": "false"
|
|
15384
|
-
},
|
|
15385
|
-
{
|
|
15386
|
-
"name": "selected",
|
|
15387
|
-
"attribute": "selected",
|
|
15388
|
-
"description": "DEPRECATED: Use to select the tab. Do NOT set if using the d2l-tab/d2l-tab-panel implementation.",
|
|
15389
|
-
"type": "boolean",
|
|
15390
|
-
"default": "false"
|
|
15391
15376
|
}
|
|
15392
15377
|
],
|
|
15393
15378
|
"events": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightspace-ui/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.249.0",
|
|
4
4
|
"description": "A collection of accessible, free, open-source web components for building Brightspace applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": "https://github.com/BrightspaceUI/core.git",
|