@brightspace-ui/core 2.97.0 → 2.98.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.
- package/components/button/button-icon.js +0 -1
- package/components/button/button-styles.js +0 -1
- package/components/count-badge/count-badge-icon.js +0 -2
- package/components/count-badge/count-badge.js +0 -2
- package/components/dialog/dialog-confirm.js +1 -2
- package/components/dialog/dialog-mixin.js +23 -6
- package/components/html-block/html-block.js +0 -1
- package/components/inputs/input-color.js +0 -1
- package/components/link/link.js +0 -1
- package/components/menu/menu-item-styles.js +0 -3
- package/components/scroll-wrapper/scroll-wrapper.js +0 -1
- package/components/switch/switch-mixin.js +0 -1
- package/components/tabs/tab-internal.js +0 -1
- package/components/tabs/tabs.js +0 -3
- package/components/tag-list/demo/tag-list.html +2 -2
- package/components/tooltip/tooltip-help.js +0 -1
- package/directives/animate/animate.js +6 -1
- package/helpers/README.md +2 -12
- package/helpers/focus.js +1 -32
- package/package.json +1 -1
- package/templates/primary-secondary/primary-secondary.js +0 -9
|
@@ -117,7 +117,6 @@ class ButtonIcon extends ThemeMixin(ButtonMixin(VisibleOnAncestorMixin(RtlMixin(
|
|
|
117
117
|
--d2l-icon-fill-color: var(--d2l-button-icon-fill-color-hover, var(--d2l-color-tungsten));
|
|
118
118
|
background-color: var(--d2l-button-icon-background-color-hover);
|
|
119
119
|
}
|
|
120
|
-
button.focus-visible,
|
|
121
120
|
button:${unsafeCSS(getFocusPseudoClass())} {
|
|
122
121
|
box-shadow: var(--d2l-button-icon-focus-box-shadow);
|
|
123
122
|
}
|
|
@@ -22,7 +22,6 @@ export const buttonStyles = css`
|
|
|
22
22
|
white-space: nowrap;
|
|
23
23
|
width: auto;
|
|
24
24
|
}
|
|
25
|
-
button.focus-visible, /* still required for when forceFocusVisible is used programatically */
|
|
26
25
|
button:${unsafeCSS(getFocusPseudoClass())} {
|
|
27
26
|
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--d2l-color-celestine);
|
|
28
27
|
}
|
|
@@ -25,8 +25,6 @@ class CountBadgeIcon extends FocusMixin(CountBadgeMixin(LitElement)) {
|
|
|
25
25
|
static get styles() {
|
|
26
26
|
return [super.styles, css`
|
|
27
27
|
:host([focus-ring]) d2l-icon,
|
|
28
|
-
:host(.focus-visible) d2l-icon,
|
|
29
|
-
d2l-icon.focus-visible,
|
|
30
28
|
:host(:${unsafeCSS(getFocusPseudoClass())}) d2l-icon,
|
|
31
29
|
d2l-icon:${unsafeCSS(getFocusPseudoClass())} {
|
|
32
30
|
box-shadow: 0 0 0 2px var(--d2l-color-celestine);
|
|
@@ -11,8 +11,6 @@ class CountBadge extends FocusMixin(CountBadgeMixin(LitElement)) {
|
|
|
11
11
|
static get styles() {
|
|
12
12
|
return [super.styles, css`
|
|
13
13
|
:host([focus-ring]) .d2l-count-badge-wrapper,
|
|
14
|
-
:host(.focus-visible) .d2l-count-badge-wrapper,
|
|
15
|
-
.d2l-count-badge-wrapper.focus-visible,
|
|
16
14
|
:host(:${unsafeCSS(getFocusPseudoClass())}) .d2l-count-badge-wrapper,
|
|
17
15
|
.d2l-count-badge-wrapper:${unsafeCSS(getFocusPseudoClass())} {
|
|
18
16
|
box-shadow: 0 0 0 2px var(--d2l-color-celestine);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { css, html, LitElement } from 'lit';
|
|
2
2
|
import { DialogMixin } from './dialog-mixin.js';
|
|
3
3
|
import { dialogStyles } from './dialog-styles.js';
|
|
4
|
-
import { forceFocusVisible } from '../../helpers/focus.js';
|
|
5
4
|
import { getUniqueId } from '../../helpers/uniqueId.js';
|
|
6
5
|
import { heading3Styles } from '../typography/styles.js';
|
|
7
6
|
|
|
@@ -106,7 +105,7 @@ class DialogConfirm extends DialogMixin(LitElement) {
|
|
|
106
105
|
const node = nodes[i];
|
|
107
106
|
if (node.nodeType !== Node.ELEMENT_NODE) continue;
|
|
108
107
|
if (!node.hasAttribute('primary')) {
|
|
109
|
-
|
|
108
|
+
this._focusElemOrDescendant(node);
|
|
110
109
|
return;
|
|
111
110
|
}
|
|
112
111
|
}
|
|
@@ -3,7 +3,7 @@ import '../../helpers/viewport-size.js';
|
|
|
3
3
|
import { allowBodyScroll, preventBodyScroll } from '../backdrop/backdrop.js';
|
|
4
4
|
import { clearDismissible, setDismissible } from '../../helpers/dismissible.js';
|
|
5
5
|
import { findComposedAncestor, isComposedAncestor } from '../../helpers/dom.js';
|
|
6
|
-
import {
|
|
6
|
+
import { getComposedActiveElement, getFirstFocusableDescendant, getNextFocusable, isFocusable } from '../../helpers/focus.js';
|
|
7
7
|
import { classMap } from 'lit/directives/class-map.js';
|
|
8
8
|
import { getUniqueId } from '../../helpers/uniqueId.js';
|
|
9
9
|
import { html } from 'lit';
|
|
@@ -201,13 +201,20 @@ export const DialogMixin = superclass => class extends RtlMixin(superclass) {
|
|
|
201
201
|
return autofocusElement;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
+
_focusElemOrDescendant(elem) {
|
|
205
|
+
if (!isFocusable(elem, false, false)) {
|
|
206
|
+
elem = getFirstFocusableDescendant(elem);
|
|
207
|
+
}
|
|
208
|
+
if (elem) elem.focus();
|
|
209
|
+
}
|
|
210
|
+
|
|
204
211
|
_focusFirst() {
|
|
205
212
|
if (!this.shadowRoot) return;
|
|
206
213
|
const content = this.shadowRoot.querySelector('.d2l-dialog-content');
|
|
207
214
|
if (content) {
|
|
208
215
|
const elementToFocus = this._findAutofocusElement(content) ?? getNextFocusable(content);
|
|
209
216
|
if (isComposedAncestor(this.shadowRoot.querySelector('.d2l-dialog-inner'), elementToFocus)) {
|
|
210
|
-
|
|
217
|
+
this._focusElemOrDescendant(elementToFocus);
|
|
211
218
|
return;
|
|
212
219
|
}
|
|
213
220
|
}
|
|
@@ -219,7 +226,7 @@ export const DialogMixin = superclass => class extends RtlMixin(superclass) {
|
|
|
219
226
|
const header = this.shadowRoot.querySelector('.d2l-dialog-header');
|
|
220
227
|
if (header) {
|
|
221
228
|
const firstFocusable = getNextFocusable(header);
|
|
222
|
-
if (firstFocusable)
|
|
229
|
+
if (firstFocusable) this._focusElemOrDescendant(firstFocusable);
|
|
223
230
|
}
|
|
224
231
|
}
|
|
225
232
|
|
|
@@ -231,7 +238,7 @@ export const DialogMixin = superclass => class extends RtlMixin(superclass) {
|
|
|
231
238
|
if (this._opener && this._opener.focus) {
|
|
232
239
|
// wait for inactive focus trap
|
|
233
240
|
requestAnimationFrame(() => {
|
|
234
|
-
|
|
241
|
+
this._tryApplyFocus(this._opener);
|
|
235
242
|
this._opener = null;
|
|
236
243
|
});
|
|
237
244
|
}
|
|
@@ -410,8 +417,7 @@ export const DialogMixin = superclass => class extends RtlMixin(superclass) {
|
|
|
410
417
|
// edge case: no children were focused, try again after one redraw
|
|
411
418
|
const activeElement = getComposedActiveElement();
|
|
412
419
|
if (!activeElement
|
|
413
|
-
|| !isComposedAncestor(dialog, activeElement)
|
|
414
|
-
|| !isFocusVisibleApplied(activeElement)) {
|
|
420
|
+
|| !isComposedAncestor(dialog, activeElement)) {
|
|
415
421
|
// wait till the dialog is visible for Safari
|
|
416
422
|
requestAnimationFrame(() => this._focusInitial());
|
|
417
423
|
}
|
|
@@ -495,6 +501,17 @@ export const DialogMixin = superclass => class extends RtlMixin(superclass) {
|
|
|
495
501
|
|
|
496
502
|
}
|
|
497
503
|
|
|
504
|
+
_tryApplyFocus(focusable) {
|
|
505
|
+
if (!isFocusable(focusable)) {
|
|
506
|
+
focusable = findComposedAncestor(focusable, (node) => (isFocusable(node) || getFirstFocusableDescendant(node) !== null));
|
|
507
|
+
if (focusable === null) return;
|
|
508
|
+
if (!isFocusable(focusable)) {
|
|
509
|
+
focusable = getFirstFocusableDescendant(focusable);
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
if (isFocusable(focusable)) focusable.focus();
|
|
513
|
+
}
|
|
514
|
+
|
|
498
515
|
_updateOverflow() {
|
|
499
516
|
if (!this.shadowRoot) return;
|
|
500
517
|
const content = this.shadowRoot.querySelector('.d2l-dialog-content');
|
|
@@ -101,7 +101,6 @@ export const htmlBlockContentStyles = css`
|
|
|
101
101
|
color: var(--d2l-color-celestine-minus-1, #004489);
|
|
102
102
|
text-decoration: underline;
|
|
103
103
|
}
|
|
104
|
-
a.focus-visible,
|
|
105
104
|
a:${unsafeCSS(getFocusPseudoClass())} {
|
|
106
105
|
border-radius: 2px;
|
|
107
106
|
outline: 2px solid var(--d2l-color-celestine, #006fbf);
|
|
@@ -213,7 +213,6 @@ class InputColor extends FocusMixin(FormElementMixin(LocalizeCoreElement(LitElem
|
|
|
213
213
|
.readonly-wrapper:focus {
|
|
214
214
|
outline: none;
|
|
215
215
|
}
|
|
216
|
-
.readonly-wrapper.focus-visible,
|
|
217
216
|
.readonly-wrapper:${unsafeCSS(getFocusPseudoClass())} {
|
|
218
217
|
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--d2l-color-celestine);
|
|
219
218
|
}
|
package/components/link/link.js
CHANGED
|
@@ -20,7 +20,6 @@ export const linkStyles = css`
|
|
|
20
20
|
color: var(--d2l-color-celestine-minus-1);
|
|
21
21
|
text-decoration: underline;
|
|
22
22
|
}
|
|
23
|
-
.d2l-link.focus-visible,
|
|
24
23
|
.d2l-link:${unsafeCSS(getFocusPseudoClass())} {
|
|
25
24
|
border-radius: 2px;
|
|
26
25
|
outline: 2px solid var(--d2l-color-celestine);
|
|
@@ -21,8 +21,6 @@ export const menuItemStyles = css`
|
|
|
21
21
|
color: var(--d2l-menu-foreground-color-hover);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
:host(.focus-visible),
|
|
25
|
-
:host([first].focus-visible),
|
|
26
24
|
:host(:${unsafeCSS(getFocusPseudoClass())}),
|
|
27
25
|
:host([first]:${unsafeCSS(getFocusPseudoClass())}) {
|
|
28
26
|
border-radius: 6px;
|
|
@@ -38,7 +36,6 @@ export const menuItemStyles = css`
|
|
|
38
36
|
opacity: 0.75;
|
|
39
37
|
}
|
|
40
38
|
|
|
41
|
-
:host([disabled].focus-visible),
|
|
42
39
|
:host([disabled]:${unsafeCSS(getFocusPseudoClass())}) {
|
|
43
40
|
cursor: default;
|
|
44
41
|
opacity: 0.75;
|
|
@@ -59,7 +59,6 @@ class ScrollWrapper extends RtlMixin(LitElement) {
|
|
|
59
59
|
overflow-x: auto;
|
|
60
60
|
overflow-y: var(--d2l-scroll-wrapper-overflow-y, visible);
|
|
61
61
|
}
|
|
62
|
-
.d2l-scroll-wrapper-container.focus-visible,
|
|
63
62
|
.d2l-scroll-wrapper-container:${unsafeCSS(getFocusPseudoClass())} {
|
|
64
63
|
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--d2l-color-celestine), 0 2px 12px 0 rgba(0, 0, 0, 0.15);
|
|
65
64
|
}
|
|
@@ -59,7 +59,6 @@ export const SwitchMixin = superclass => class extends FocusMixin(RtlMixin(super
|
|
|
59
59
|
padding: 0.1rem;
|
|
60
60
|
vertical-align: middle;
|
|
61
61
|
}
|
|
62
|
-
.d2l-switch-container.focus-visible,
|
|
63
62
|
.d2l-switch-container:${unsafeCSS(getFocusPseudoClass())} {
|
|
64
63
|
border-color: var(--d2l-color-celestine);
|
|
65
64
|
}
|
|
@@ -63,7 +63,6 @@ class Tab extends RtlMixin(LitElement) {
|
|
|
63
63
|
margin-left: 0.6rem;
|
|
64
64
|
margin-right: 0;
|
|
65
65
|
}
|
|
66
|
-
:host(.focus-visible) > .d2l-tab-text,
|
|
67
66
|
:host(:${unsafeCSS(getFocusPseudoClass())}) > .d2l-tab-text {
|
|
68
67
|
border-radius: 0.3rem;
|
|
69
68
|
box-shadow: 0 0 0 2px var(--d2l-color-celestine);
|
package/components/tabs/tabs.js
CHANGED
|
@@ -182,16 +182,13 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(RtlMixin(LitElement))) {
|
|
|
182
182
|
border: 0;
|
|
183
183
|
}
|
|
184
184
|
.d2l-tabs-scroll-button[disabled]:hover,
|
|
185
|
-
.d2l-tabs-scroll-button[disabled].focus-visible,
|
|
186
185
|
.d2l-tabs-scroll-button[disabled]:${unsafeCSS(getFocusPseudoClass())} {
|
|
187
186
|
background-color: transparent;
|
|
188
187
|
}
|
|
189
188
|
.d2l-tabs-scroll-button:hover,
|
|
190
|
-
.d2l-tabs-scroll-button.focus-visible,
|
|
191
189
|
.d2l-tabs-scroll-button:${unsafeCSS(getFocusPseudoClass())} {
|
|
192
190
|
background-color: var(--d2l-color-gypsum);
|
|
193
191
|
}
|
|
194
|
-
.d2l-tabs-scroll-button.focus-visible,
|
|
195
192
|
.d2l-tabs-scroll-button:${unsafeCSS(getFocusPseudoClass())} {
|
|
196
193
|
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--d2l-color-celestine);
|
|
197
194
|
}
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
<d2l-tag-list-item text="Example 9"></d2l-tag-list-item>
|
|
69
69
|
</d2l-tag-list>
|
|
70
70
|
<script type="module">
|
|
71
|
-
import {
|
|
71
|
+
import { getNextFocusable } from '../../../helpers/focus.js';
|
|
72
72
|
|
|
73
73
|
document.addEventListener('d2l-tag-list-item-clear', (e) => {
|
|
74
74
|
e.target.parentNode.removeChild(e.target);
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
e.target.removeChild(tag);
|
|
83
83
|
});
|
|
84
84
|
// consumer must move focus someplace logical
|
|
85
|
-
|
|
85
|
+
nextFocusable?.focus();
|
|
86
86
|
});
|
|
87
87
|
</script>
|
|
88
88
|
</d2l-demo-snippet>
|
|
@@ -60,7 +60,6 @@ class TooltipHelp extends SkeletonMixin(FocusMixin(LitElement)) {
|
|
|
60
60
|
#d2l-tooltip-help-text:focus {
|
|
61
61
|
outline-style: none;
|
|
62
62
|
}
|
|
63
|
-
#d2l-tooltip-help-text.focus-visible,
|
|
64
63
|
#d2l-tooltip-help-text:${unsafeCSS(getFocusPseudoClass())} {
|
|
65
64
|
border-radius: 0.05rem;
|
|
66
65
|
outline: 2px solid var(--d2l-color-celestine);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { directive, PartType } from 'lit/directive.js';
|
|
2
|
-
import { getComposedActiveElement, getNextFocusable,
|
|
2
|
+
import { getComposedActiveElement, getNextFocusable, isFocusVisibleSupported } from '../../helpers/focus.js';
|
|
3
3
|
import { AsyncDirective } from 'lit/async-directive.js';
|
|
4
4
|
import { isComposedAncestor } from '../../helpers/dom.js';
|
|
5
5
|
import { noChange } from 'lit';
|
|
@@ -10,6 +10,11 @@ const showTransitionDuration = 300;
|
|
|
10
10
|
const hideTransitionDuration = 200;
|
|
11
11
|
const moveYValue = 20;
|
|
12
12
|
|
|
13
|
+
function isFocusVisibleApplied(node) {
|
|
14
|
+
if (!node) return false;
|
|
15
|
+
return isFocusVisibleSupported() && node.parentNode?.querySelector(':focus-visible') === node;
|
|
16
|
+
}
|
|
17
|
+
|
|
13
18
|
class AnimationState {
|
|
14
19
|
|
|
15
20
|
constructor(partInfo) {
|
package/helpers/README.md
CHANGED
|
@@ -120,9 +120,6 @@ Focus helper functions to easily select focusable DOM nodes
|
|
|
120
120
|
```js
|
|
121
121
|
import { ... } from '@brightspace-ui/core/helpers/focus.js';
|
|
122
122
|
|
|
123
|
-
// focuses on an element and forces a visible focus ring
|
|
124
|
-
forceFocusVisible(node);
|
|
125
|
-
|
|
126
123
|
// gets the active element, including shadow DOM active elements
|
|
127
124
|
getComposedActiveElement()
|
|
128
125
|
|
|
@@ -130,9 +127,9 @@ getComposedActiveElement()
|
|
|
130
127
|
getFirstFocusableDescendant(node, includeHidden, predicate, includeTabbablesOnly)
|
|
131
128
|
|
|
132
129
|
// gets the focus pseudo-class to used in selectors (focus-visible if supported, or focus)
|
|
133
|
-
//
|
|
130
|
+
// Usage:
|
|
134
131
|
// css`
|
|
135
|
-
// some-element
|
|
132
|
+
// some-element:${unsafeCSS(getFocusPseudoClass())} { ... }
|
|
136
133
|
// `
|
|
137
134
|
getFocusPseudoClass()
|
|
138
135
|
|
|
@@ -151,15 +148,8 @@ getPreviousFocusableAncestor(node, includeHidden, includeTabbablesOnly)
|
|
|
151
148
|
// returns true/false whether the element is focusable
|
|
152
149
|
isFocusable(node, includeHidden, includeTabbablesOnly, includeDisabled)
|
|
153
150
|
|
|
154
|
-
// returns true/false whether the element has :focus-visible or .focus-visible applied
|
|
155
|
-
isFocusVisibleApplied(node)
|
|
156
|
-
|
|
157
151
|
// returns true/false whether the :focus-visible is supported
|
|
158
152
|
isFocusVisibleSupported()
|
|
159
|
-
|
|
160
|
-
// returns true and focuses on node or its nearest focusable ancestor;
|
|
161
|
-
// or false if node and its ancestors are not focusable
|
|
162
|
-
tryApplyFocus(node)
|
|
163
153
|
```
|
|
164
154
|
|
|
165
155
|
## Gesture - Swipe
|
package/helpers/focus.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getComposedChildren, getComposedParent, getNextAncestorSibling, getPreviousAncestorSibling, isVisible } from './dom.js';
|
|
2
2
|
|
|
3
3
|
const focusableElements = {
|
|
4
4
|
a: true,
|
|
@@ -13,18 +13,6 @@ const focusableElements = {
|
|
|
13
13
|
textarea: true
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
export function forceFocusVisible(elem, includeTabbablesOnly) {
|
|
17
|
-
if (!isFocusable(elem, false, includeTabbablesOnly)) {
|
|
18
|
-
elem = getFirstFocusableDescendant(elem);
|
|
19
|
-
}
|
|
20
|
-
if (!elem) return;
|
|
21
|
-
elem.addEventListener('blur', () => {
|
|
22
|
-
elem.classList.remove('focus-visible');
|
|
23
|
-
}, { once: true });
|
|
24
|
-
elem.classList.add('focus-visible');
|
|
25
|
-
elem.focus();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
16
|
export function getComposedActiveElement() {
|
|
29
17
|
let node = document.activeElement;
|
|
30
18
|
|
|
@@ -186,12 +174,6 @@ export function isFocusable(node, includeHidden, includeTabbablesOnly, includeDi
|
|
|
186
174
|
|
|
187
175
|
}
|
|
188
176
|
|
|
189
|
-
export function isFocusVisibleApplied(node) {
|
|
190
|
-
if (!node) return false;
|
|
191
|
-
if (node.classList.contains('focus-visible')) return true;
|
|
192
|
-
return isFocusVisibleSupported() && node.parentNode?.querySelector(':focus-visible') === node;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
177
|
let _isFocusVisibleSupported;
|
|
196
178
|
|
|
197
179
|
export function isFocusVisibleSupported() {
|
|
@@ -210,16 +192,3 @@ export function isFocusVisibleSupported() {
|
|
|
210
192
|
|
|
211
193
|
return _isFocusVisibleSupported;
|
|
212
194
|
}
|
|
213
|
-
|
|
214
|
-
export function tryApplyFocus(elem) {
|
|
215
|
-
if (isFocusable(elem)) {
|
|
216
|
-
forceFocusVisible(elem);
|
|
217
|
-
return true;
|
|
218
|
-
}
|
|
219
|
-
const focusable = findComposedAncestor(elem, (node) => (isFocusable(node) || getFirstFocusableDescendant(node) !== null));
|
|
220
|
-
if (focusable) {
|
|
221
|
-
forceFocusVisible(focusable);
|
|
222
|
-
return true;
|
|
223
|
-
}
|
|
224
|
-
return false;
|
|
225
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightspace-ui/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.98.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",
|
|
@@ -742,8 +742,6 @@ class TemplatePrimarySecondary extends RtlMixin(LocalizeCoreElement(LitElement))
|
|
|
742
742
|
display: inline-block;
|
|
743
743
|
width: 0.1rem;
|
|
744
744
|
}
|
|
745
|
-
.d2l-template-primary-secondary-divider.focus-visible .d2l-template-primary-secondary-divider-handle-right,
|
|
746
|
-
.d2l-template-primary-secondary-divider.focus-visible .d2l-template-primary-secondary-divider-handle-left,
|
|
747
745
|
.d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())} .d2l-template-primary-secondary-divider-handle-right,
|
|
748
746
|
.d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())} .d2l-template-primary-secondary-divider-handle-left {
|
|
749
747
|
display: block;
|
|
@@ -777,8 +775,6 @@ class TemplatePrimarySecondary extends RtlMixin(LocalizeCoreElement(LitElement))
|
|
|
777
775
|
background-color: var(--d2l-color-mica);
|
|
778
776
|
box-shadow: none;
|
|
779
777
|
}
|
|
780
|
-
:host([resizable]) .d2l-template-primary-secondary-divider.focus-visible,
|
|
781
|
-
:host([resizable][dir="rtl"]) .d2l-template-primary-secondary-divider.focus-visible,
|
|
782
778
|
:host([resizable]) .d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())},
|
|
783
779
|
:host([resizable][dir="rtl"]) .d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())} {
|
|
784
780
|
background-color: var(--d2l-color-celestine);
|
|
@@ -789,8 +785,6 @@ class TemplatePrimarySecondary extends RtlMixin(LocalizeCoreElement(LitElement))
|
|
|
789
785
|
.d2l-template-primary-secondary-divider:hover .d2l-template-primary-secondary-divider-handle-line::after {
|
|
790
786
|
background-color: var(--d2l-color-ferrite);
|
|
791
787
|
}
|
|
792
|
-
.d2l-template-primary-secondary-divider.focus-visible .d2l-template-primary-secondary-divider-handle-line::before,
|
|
793
|
-
.d2l-template-primary-secondary-divider.focus-visible .d2l-template-primary-secondary-divider-handle-line::after,
|
|
794
788
|
.d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())} .d2l-template-primary-secondary-divider-handle-line::before,
|
|
795
789
|
.d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())} .d2l-template-primary-secondary-divider-handle-line::after {
|
|
796
790
|
background-color: white;
|
|
@@ -919,14 +913,12 @@ class TemplatePrimarySecondary extends RtlMixin(LocalizeCoreElement(LitElement))
|
|
|
919
913
|
height: 1rem;
|
|
920
914
|
width: 2.2rem;
|
|
921
915
|
}
|
|
922
|
-
.d2l-template-primary-secondary-divider.focus-visible .d2l-template-primary-secondary-divider-handle,
|
|
923
916
|
.d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())} .d2l-template-primary-secondary-divider-handle {
|
|
924
917
|
box-shadow: none;
|
|
925
918
|
height: 1.2rem;
|
|
926
919
|
right: 17px;
|
|
927
920
|
width: 2.6rem;
|
|
928
921
|
}
|
|
929
|
-
:host([dir="rtl"]) .d2l-template-primary-secondary-divider.focus-visible .d2l-template-primary-secondary-divider-handle,
|
|
930
922
|
:host([dir="rtl"]) .d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())} .d2l-template-primary-secondary-divider-handle {
|
|
931
923
|
left: 17px;
|
|
932
924
|
right: auto;
|
|
@@ -935,7 +927,6 @@ class TemplatePrimarySecondary extends RtlMixin(LocalizeCoreElement(LitElement))
|
|
|
935
927
|
color: white;
|
|
936
928
|
display: block;
|
|
937
929
|
}
|
|
938
|
-
.d2l-template-primary-secondary-divider.focus-visible .d2l-template-primary-secondary-divider-handle-mobile,
|
|
939
930
|
.d2l-template-primary-secondary-divider:${unsafeCSS(getFocusPseudoClass())} .d2l-template-primary-secondary-divider-handle-mobile {
|
|
940
931
|
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.2rem var(--d2l-color-celestine);
|
|
941
932
|
right: 0.2rem;
|