@brightspace-ui/core 2.180.0 → 2.180.1
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.
@@ -13,6 +13,16 @@
|
|
13
13
|
|
14
14
|
<d2l-demo-page page-title="d2l-more-less">
|
15
15
|
|
16
|
+
<h2>More-less with custom blur color</h2>
|
17
|
+
|
18
|
+
<d2l-demo-snippet>
|
19
|
+
<template>
|
20
|
+
<d2l-more-less blur-color="#f00">
|
21
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. <a href="">Vestibulum</a> elementum venenatis arcu sit amet varius. Maecenas posuere magna arcu, quis maximus odio fringilla ac. Integer ligula lorem, faucibus sit amet cursus vel, pellentesque a justo. Aliquam urna metus, molestie at tempor eget, vestibulum a purus. Donec aliquet rutrum mi. Duis ornare congue tempor. Nullam sed massa fermentum, tincidunt leo eu, vestibulum orci. Sed ultrices est in lacus venenatis, posuere suscipit arcu scelerisque. In aliquam ipsum rhoncus, lobortis ligula ut, molestie orci. Proin scelerisque tempor posuere. Phasellus consequat, lorem quis hendrerit tempor, sem lectus sagittis nunc, in tristique dui arcu non arcu. Nunc aliquam nisi et sapien commodo lacinia. <a href="">Quisque</a> iaculis orci vel odio varius porta. Fusce tincidunt dolor enim, vitae sollicitudin purus suscipit eu.</p>
|
22
|
+
</d2l-more-less>
|
23
|
+
</template>
|
24
|
+
</d2l-demo-snippet>
|
25
|
+
|
16
26
|
<h2>More-less collapsed</h2>
|
17
27
|
|
18
28
|
<d2l-demo-snippet>
|
@@ -50,7 +60,7 @@
|
|
50
60
|
<d2l-demo-snippet>
|
51
61
|
<template>
|
52
62
|
<d2l-more-less blur-color="#f00">
|
53
|
-
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum elementum venenatis arcu sit amet varius. Maecenas posuere magna arcu, quis maximus odio fringilla ac. Integer ligula lorem, faucibus sit amet cursus vel, pellentesque a justo. Aliquam urna metus, molestie at tempor eget, vestibulum a purus. Donec aliquet rutrum mi. Duis ornare congue tempor. Nullam sed massa fermentum, tincidunt leo eu, vestibulum orci. Sed ultrices est in lacus venenatis, posuere suscipit arcu scelerisque. In aliquam ipsum rhoncus, lobortis ligula ut, molestie orci. Proin scelerisque tempor posuere. Phasellus consequat, lorem quis hendrerit tempor, sem lectus sagittis nunc, in tristique dui arcu non arcu. Nunc aliquam nisi et sapien commodo lacinia. <a href="">Quisque</a> iaculis orci vel odio varius porta. Fusce tincidunt dolor enim, vitae sollicitudin purus suscipit eu.</p>
|
63
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. <a href="">Vestibulum</a> elementum venenatis arcu sit amet varius. Maecenas posuere magna arcu, quis maximus odio fringilla ac. Integer ligula lorem, faucibus sit amet cursus vel, pellentesque a justo. Aliquam urna metus, molestie at tempor eget, vestibulum a purus. Donec aliquet rutrum mi. Duis ornare congue tempor. Nullam sed massa fermentum, tincidunt leo eu, vestibulum orci. Sed ultrices est in lacus venenatis, posuere suscipit arcu scelerisque. In aliquam ipsum rhoncus, lobortis ligula ut, molestie orci. Proin scelerisque tempor posuere. Phasellus consequat, lorem quis hendrerit tempor, sem lectus sagittis nunc, in tristique dui arcu non arcu. Nunc aliquam nisi et sapien commodo lacinia. <a href="">Quisque</a> iaculis orci vel odio varius porta. Fusce tincidunt dolor enim, vitae sollicitudin purus suscipit eu.</p>
|
54
64
|
</d2l-more-less>
|
55
65
|
</template>
|
56
66
|
</d2l-demo-snippet>
|
@@ -2,12 +2,16 @@ import '../button/button-subtle.js';
|
|
2
2
|
import { css, html, LitElement } from 'lit';
|
3
3
|
import { getComposedChildren, isComposedAncestor } from '../../helpers/dom.js';
|
4
4
|
import { classMap } from 'lit/directives/class-map.js';
|
5
|
+
import { getComposedActiveElement } from '../../helpers/focus.js';
|
5
6
|
import { getUniqueId } from '../../helpers/uniqueId.js';
|
6
7
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
7
8
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
8
9
|
import ResizeObserver from 'resize-observer-polyfill/dist/ResizeObserver.es.js';
|
9
10
|
import { styleMap } from 'lit/directives/style-map.js';
|
10
11
|
|
12
|
+
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
13
|
+
const transitionDur = matchMedia('(prefers-reduced-motion: reduce)').matches ? 0 : 400;
|
14
|
+
|
11
15
|
/**
|
12
16
|
* A component used to minimize the display of long content, while providing a way to reveal the full content.
|
13
17
|
* @slot - Default content placed inside of the component
|
@@ -61,7 +65,7 @@ class MoreLess extends LocalizeCoreElement(LitElement) {
|
|
61
65
|
overflow: hidden;
|
62
66
|
}
|
63
67
|
.d2l-more-less-transition {
|
64
|
-
transition: max-height
|
68
|
+
transition: max-height ${transitionDur}ms cubic-bezier(0, 0.7, 0.5, 1);
|
65
69
|
}
|
66
70
|
.d2l-more-less-blur {
|
67
71
|
display: none;
|
@@ -234,25 +238,49 @@ class MoreLess extends LocalizeCoreElement(LitElement) {
|
|
234
238
|
this.expanded = true;
|
235
239
|
}
|
236
240
|
|
237
|
-
__focusIn() {
|
241
|
+
async __focusIn(e) {
|
238
242
|
if (this.inactive || this.expanded) {
|
239
243
|
return;
|
240
244
|
}
|
241
245
|
|
242
|
-
|
243
|
-
|
246
|
+
const target = e.composedPath()[0] || e.target;
|
247
|
+
|
248
|
+
if (isSafari) {
|
249
|
+
target.scrollIntoViewIfNeeded?.();
|
250
|
+
setTimeout(() => this.__content.scrollTo({ top: 0, behavior: 'instant' }), 1);
|
251
|
+
}
|
252
|
+
|
253
|
+
if (this.__content.scrollTop) {
|
254
|
+
this.__content.scrollTo({ top: 0, behavior: 'instant' });
|
255
|
+
this.__expand();
|
256
|
+
this.__autoExpanded = true;
|
257
|
+
await (transitionDur && new Promise(r => setTimeout(r, transitionDur)));
|
258
|
+
if (target.getRootNode().activeElement === target) {
|
259
|
+
target.scrollIntoView({ block: 'center', inline: 'center', behavior: 'instant' });
|
260
|
+
}
|
261
|
+
}
|
244
262
|
}
|
245
263
|
|
246
|
-
__focusOut(
|
264
|
+
async __focusOut({ relatedTarget }) {
|
265
|
+
|
247
266
|
if (this.inactive
|
248
267
|
|| !this.__autoExpanded
|
249
|
-
|| isComposedAncestor(this.__content,
|
268
|
+
|| isComposedAncestor(this.__content, relatedTarget)
|
250
269
|
) {
|
251
270
|
return;
|
252
271
|
}
|
253
272
|
|
254
273
|
this.__shrink();
|
255
274
|
this.__autoExpanded = false;
|
275
|
+
|
276
|
+
relatedTarget && await new Promise(r => relatedTarget.addEventListener('focus', r, { once: true }));
|
277
|
+
const target = getComposedActiveElement();
|
278
|
+
|
279
|
+
await (transitionDur && new Promise(r => setTimeout(r, transitionDur)));
|
280
|
+
const activeElement = getComposedActiveElement();
|
281
|
+
if (target === activeElement) {
|
282
|
+
target.scrollIntoView({ block: 'center', inline: 'center', behavior: 'instant' });
|
283
|
+
}
|
256
284
|
}
|
257
285
|
|
258
286
|
__init_measureBaseHeight() {
|
@@ -315,14 +343,6 @@ class MoreLess extends LocalizeCoreElement(LitElement) {
|
|
315
343
|
}
|
316
344
|
|
317
345
|
__reactToChanges() {
|
318
|
-
if (!this.__transitionAdded) {
|
319
|
-
this.__reactToChanges_setupTransition();
|
320
|
-
} else {
|
321
|
-
this.__adjustToContent();
|
322
|
-
}
|
323
|
-
}
|
324
|
-
|
325
|
-
__reactToChanges_setupTransition() {
|
326
346
|
this.__transitionAdded = true;
|
327
347
|
this.__adjustToContent();
|
328
348
|
}
|
@@ -342,6 +362,7 @@ class MoreLess extends LocalizeCoreElement(LitElement) {
|
|
342
362
|
this.__transitionAdded = true;
|
343
363
|
this.__maxHeight = this.height;
|
344
364
|
this.expanded = false;
|
365
|
+
this.__content.scrollTo({ top: 0, behavior: 'instant' });
|
345
366
|
}
|
346
367
|
|
347
368
|
__startObserving() {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@brightspace-ui/core",
|
3
|
-
"version": "2.180.
|
3
|
+
"version": "2.180.1",
|
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",
|