@brightspace-ui/core 3.191.0 → 3.191.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.
- package/components/breadcrumbs/breadcrumbs.js +2 -8
- package/components/collapsible-panel/collapsible-panel-summary-item.js +1 -9
- package/components/filter/filter.js +2 -16
- package/components/link/link.js +1 -9
- package/components/list/list-item-content.js +0 -11
- package/components/menu/menu-item-return.js +1 -10
- package/components/menu/menu-item-styles.js +1 -12
- package/components/more-less/more-less.js +12 -32
- package/components/tabs/tab-internal.js +1 -8
- package/components/tabs/tab.js +1 -8
- package/components/tabs/tabs.js +2 -8
- package/package.json +1 -1
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import './breadcrumb.js';
|
|
2
2
|
import { css, html, LitElement } from 'lit';
|
|
3
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
4
3
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
5
4
|
import { overflowEllipsisDeclarations } from '../../helpers/overflow.js';
|
|
6
5
|
|
|
7
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
8
|
-
|
|
9
6
|
/**
|
|
10
7
|
* Help users understand where they are within the application, and provide useful clues about how the space is organized. They also provide a convenient navigation mechanism.
|
|
11
8
|
* @slot - Breadcrumb items
|
|
@@ -25,15 +22,12 @@ class Breadcrumbs extends LocalizeCoreElement(LitElement) {
|
|
|
25
22
|
static get styles() {
|
|
26
23
|
return css`
|
|
27
24
|
:host {
|
|
28
|
-
|
|
25
|
+
clip-path: rect(-1em 100% calc(100% + 1em) -1em);
|
|
29
26
|
display: block;
|
|
30
27
|
font-size: 0.7rem;
|
|
31
28
|
line-height: 1.05rem;
|
|
32
29
|
position: relative;
|
|
33
|
-
${
|
|
34
|
-
overflow: hidden;
|
|
35
|
-
white-space: nowrap;
|
|
36
|
-
`}
|
|
30
|
+
${overflowEllipsisDeclarations}
|
|
37
31
|
}
|
|
38
32
|
:host([hidden]) {
|
|
39
33
|
display: none;
|
|
@@ -2,13 +2,10 @@ import '../colors/colors.js';
|
|
|
2
2
|
import { css, html, LitElement } from 'lit';
|
|
3
3
|
import { bodySmallStyles } from '../typography/styles.js';
|
|
4
4
|
import { classMap } from 'lit/directives/class-map.js';
|
|
5
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
6
5
|
import { getOverflowDeclarations } from '../../helpers/overflow.js';
|
|
7
6
|
import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
|
|
8
7
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
9
8
|
|
|
10
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
* A component for a "summary item" child component that describes the content in a collapsible panel.
|
|
14
11
|
*/
|
|
@@ -42,12 +39,7 @@ class CollapsiblePanelSummaryItem extends SkeletonMixin(LitElement) {
|
|
|
42
39
|
line-height: 1.2rem;
|
|
43
40
|
}
|
|
44
41
|
p.truncate {
|
|
45
|
-
${
|
|
46
|
-
-webkit-box-orient: vertical;
|
|
47
|
-
display: -webkit-box;
|
|
48
|
-
overflow: hidden;
|
|
49
|
-
overflow-wrap: anywhere;
|
|
50
|
-
`}
|
|
42
|
+
${getOverflowDeclarations({ lines: 1 })}
|
|
51
43
|
}
|
|
52
44
|
`];
|
|
53
45
|
}
|
|
@@ -28,7 +28,6 @@ import { announce } from '../../helpers/announce.js';
|
|
|
28
28
|
import { classMap } from 'lit/directives/class-map.js';
|
|
29
29
|
import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
|
|
30
30
|
import { formatNumber } from '@brightspace-ui/intl/lib/number.js';
|
|
31
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
32
31
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
33
32
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
34
33
|
import { offscreenStyles } from '../offscreen/offscreen.js';
|
|
@@ -39,8 +38,6 @@ const ESCAPE_KEY_CODE = 27;
|
|
|
39
38
|
const FILTER_CONTENT_CLASS = 'd2l-filter-dropdown-content';
|
|
40
39
|
const SET_DIMENSION_ID_PREFIX = 'list-';
|
|
41
40
|
|
|
42
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
43
|
-
|
|
44
41
|
let hasDisplayedKeyboardTooltip = false;
|
|
45
42
|
|
|
46
43
|
export function resetHasDisplayedKeyboardTooltip() {
|
|
@@ -141,11 +138,7 @@ class Filter extends FocusMixin(LocalizeCoreElement(LitElement)) {
|
|
|
141
138
|
flex-grow: 1;
|
|
142
139
|
padding-inline-end: calc(2rem + 2px);
|
|
143
140
|
text-align: center;
|
|
144
|
-
${
|
|
145
|
-
overflow: hidden;
|
|
146
|
-
text-overflow: ellipsis;
|
|
147
|
-
white-space: nowrap;
|
|
148
|
-
`}
|
|
141
|
+
${overflowEllipsisDeclarations}
|
|
149
142
|
}
|
|
150
143
|
|
|
151
144
|
.d2l-filter-dimension-set-value {
|
|
@@ -154,7 +147,6 @@ class Filter extends FocusMixin(LocalizeCoreElement(LitElement)) {
|
|
|
154
147
|
display: flex;
|
|
155
148
|
gap: 0.45rem;
|
|
156
149
|
line-height: unset;
|
|
157
|
-
${overflowClipEnabled ? css`` : css`overflow: hidden;`}
|
|
158
150
|
}
|
|
159
151
|
.d2l-filter-dimension-set-value d2l-icon {
|
|
160
152
|
flex-shrink: 0;
|
|
@@ -169,13 +161,7 @@ class Filter extends FocusMixin(LocalizeCoreElement(LitElement)) {
|
|
|
169
161
|
|
|
170
162
|
.d2l-filter-dimension-set-value-text {
|
|
171
163
|
hyphens: auto;
|
|
172
|
-
${
|
|
173
|
-
-webkit-box-orient: vertical;
|
|
174
|
-
display: -webkit-box;
|
|
175
|
-
-webkit-line-clamp: 2;
|
|
176
|
-
overflow: hidden;
|
|
177
|
-
overflow-wrap: anywhere;
|
|
178
|
-
`}
|
|
164
|
+
${getOverflowDeclarations({ lines: 2 })}
|
|
179
165
|
}
|
|
180
166
|
|
|
181
167
|
d2l-list-item[selection-disabled] .d2l-filter-dimension-set-value,
|
package/components/link/link.js
CHANGED
|
@@ -6,15 +6,12 @@ import { getOverflowDeclarations, overflowEllipsisDeclarations } from '../../hel
|
|
|
6
6
|
import { _generateLinkStyles } from './link-styles.js';
|
|
7
7
|
import { classMap } from 'lit/directives/class-map.js';
|
|
8
8
|
import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
|
|
9
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
10
9
|
import { getUniqueId } from '../../helpers/uniqueId.js';
|
|
11
10
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
12
11
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
13
12
|
import { offscreenStyles } from '../offscreen/offscreen.js';
|
|
14
13
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
15
14
|
|
|
16
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
17
|
-
|
|
18
15
|
export const linkStyles = _generateLinkStyles('.d2l-link', true);
|
|
19
16
|
|
|
20
17
|
/**
|
|
@@ -98,12 +95,7 @@ class Link extends LocalizeCoreElement(FocusMixin(LitElement)) {
|
|
|
98
95
|
display: flex;
|
|
99
96
|
}
|
|
100
97
|
a span.truncate {
|
|
101
|
-
${
|
|
102
|
-
-webkit-box-orient: vertical;
|
|
103
|
-
display: -webkit-box;
|
|
104
|
-
overflow: hidden;
|
|
105
|
-
overflow-wrap: anywhere;
|
|
106
|
-
`}
|
|
98
|
+
${getOverflowDeclarations({ lines: 1 })}
|
|
107
99
|
}
|
|
108
100
|
a span.truncate-one {
|
|
109
101
|
${overflowEllipsisDeclarations}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import '../colors/colors.js';
|
|
2
2
|
import { bodyCompactStyles, bodySmallStyles } from '../typography/styles.js';
|
|
3
3
|
import { css, html, LitElement } from 'lit';
|
|
4
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
5
|
-
|
|
6
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
7
4
|
|
|
8
5
|
/**
|
|
9
6
|
* A component for consistent layout of primary and secondary text in a list item.
|
|
@@ -36,18 +33,10 @@ class ListItemContent extends LitElement {
|
|
|
36
33
|
|
|
37
34
|
.d2l-list-item-content-text-secondary {
|
|
38
35
|
color: var(--d2l-list-item-content-text-secondary-color, var(--d2l-color-tungsten));
|
|
39
|
-
${overflowClipEnabled ? css`` : css`
|
|
40
|
-
margin: 0;
|
|
41
|
-
overflow: hidden;
|
|
42
|
-
`}
|
|
43
36
|
}
|
|
44
37
|
|
|
45
38
|
.d2l-list-item-content-text-supporting-info {
|
|
46
39
|
color: var(--d2l-color-ferrite);
|
|
47
|
-
${overflowClipEnabled ? css`` : css`
|
|
48
|
-
margin: 0;
|
|
49
|
-
overflow: hidden;
|
|
50
|
-
`}
|
|
51
40
|
}
|
|
52
41
|
|
|
53
42
|
.d2l-list-item-content-text-secondary ::slotted(*),
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import '../icons/icon.js';
|
|
2
2
|
import { css, html, LitElement } from 'lit';
|
|
3
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
4
3
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
5
4
|
import { MenuItemMixin } from './menu-item-mixin.js';
|
|
6
5
|
import { menuItemStyles } from './menu-item-styles.js';
|
|
7
6
|
import { overflowEllipsisDeclarations } from '../../helpers/overflow.js';
|
|
8
7
|
|
|
9
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
10
|
-
|
|
11
8
|
class MenuItemReturn extends LocalizeCoreElement(MenuItemMixin(LitElement)) {
|
|
12
9
|
|
|
13
10
|
static get styles() {
|
|
@@ -21,13 +18,7 @@ class MenuItemReturn extends LocalizeCoreElement(MenuItemMixin(LitElement)) {
|
|
|
21
18
|
span {
|
|
22
19
|
flex: auto;
|
|
23
20
|
line-height: 1rem;
|
|
24
|
-
${
|
|
25
|
-
overflow-x: hidden;
|
|
26
|
-
overflow-y: hidden;
|
|
27
|
-
text-decoration: none;
|
|
28
|
-
text-overflow: ellipsis;
|
|
29
|
-
white-space: nowrap;
|
|
30
|
-
`}
|
|
21
|
+
${overflowEllipsisDeclarations}
|
|
31
22
|
}
|
|
32
23
|
|
|
33
24
|
d2l-icon {
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import '../colors/colors.js';
|
|
2
2
|
import { css, unsafeCSS } from 'lit';
|
|
3
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
4
3
|
import { getFocusPseudoClass } from '../../helpers/focus.js';
|
|
5
4
|
import { getOverflowDeclarations } from '../../helpers/overflow.js';
|
|
6
5
|
|
|
7
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
8
|
-
|
|
9
6
|
export const menuItemStyles = css`
|
|
10
7
|
:host {
|
|
11
8
|
--d2l-menu-item-lines: 2;
|
|
@@ -57,15 +54,7 @@ export const menuItemStyles = css`
|
|
|
57
54
|
.d2l-menu-item-text {
|
|
58
55
|
flex: auto;
|
|
59
56
|
line-height: 1rem;
|
|
60
|
-
${
|
|
61
|
-
-webkit-box-orient: vertical;
|
|
62
|
-
display: -webkit-box;
|
|
63
|
-
-webkit-line-clamp: var(--d2l-menu-item-lines, 2);
|
|
64
|
-
overflow-wrap: anywhere;
|
|
65
|
-
overflow-x: hidden;
|
|
66
|
-
overflow-y: hidden;
|
|
67
|
-
white-space: normal;
|
|
68
|
-
`}
|
|
57
|
+
${getOverflowDeclarations({ lines: 'var(--d2l-menu-item-lines, 2)' })}
|
|
69
58
|
}
|
|
70
59
|
|
|
71
60
|
.d2l-menu-item-supporting {
|
|
@@ -12,8 +12,6 @@ import ResizeObserver from 'resize-observer-polyfill/dist/ResizeObserver.es.js';
|
|
|
12
12
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
13
13
|
|
|
14
14
|
const transitionDur = matchMedia('(prefers-reduced-motion: reduce)').matches ? 0 : 400;
|
|
15
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
16
|
-
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
17
15
|
|
|
18
16
|
/**
|
|
19
17
|
* A component used to minimize the display of long content, while providing a way to reveal the full content.
|
|
@@ -54,18 +52,14 @@ class MoreLess extends LocalizeCoreElement(LitElement) {
|
|
|
54
52
|
static get styles() {
|
|
55
53
|
return css`
|
|
56
54
|
:host {
|
|
57
|
-
|
|
55
|
+
display: flow-root;
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
.d2l-more-less-content {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
${overflowHiddenDeclarations}
|
|
66
|
-
` : css`
|
|
67
|
-
overflow: hidden;
|
|
68
|
-
`}
|
|
59
|
+
display: flow-root;
|
|
60
|
+
margin: -1em -1em 0;
|
|
61
|
+
padding: 1em 1em 0;
|
|
62
|
+
${overflowHiddenDeclarations}
|
|
69
63
|
}
|
|
70
64
|
.d2l-more-less-transition {
|
|
71
65
|
transition: max-height ${transitionDur}ms cubic-bezier(0, 0.7, 0.5, 1);
|
|
@@ -244,28 +238,14 @@ class MoreLess extends LocalizeCoreElement(LitElement) {
|
|
|
244
238
|
|
|
245
239
|
const target = e.composedPath()[0] || e.target;
|
|
246
240
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
const { y: targetY, height: targetHeight } = target.getBoundingClientRect();
|
|
241
|
+
const em = parseInt(getComputedStyle(this.__content).getPropertyValue('font-size'));
|
|
242
|
+
const { y: contentY, height: contentHeight } = this.__content.getBoundingClientRect();
|
|
243
|
+
const { y: targetY, height: targetHeight } = target.getBoundingClientRect();
|
|
251
244
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}
|
|
257
|
-
} else {
|
|
258
|
-
if (isSafari) {
|
|
259
|
-
target.scrollIntoViewIfNeeded?.();
|
|
260
|
-
setTimeout(() => this.__content.scrollTo({ top: 0, behavior: 'instant' }), 1);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
if (this.__content.scrollTop) {
|
|
264
|
-
this.__content.scrollTo({ top: 0, behavior: 'instant' });
|
|
265
|
-
this.__expand();
|
|
266
|
-
this.__autoExpanded = true;
|
|
267
|
-
await (transitionDur && new Promise(r => setTimeout(r, transitionDur)));
|
|
268
|
-
}
|
|
245
|
+
if (targetY + targetHeight > contentY + contentHeight - em) {
|
|
246
|
+
this.__expand();
|
|
247
|
+
this.__autoExpanded = true;
|
|
248
|
+
await (transitionDur && new Promise(r => setTimeout(r, transitionDur)));
|
|
269
249
|
}
|
|
270
250
|
}
|
|
271
251
|
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import '../colors/colors.js';
|
|
2
2
|
import { css, html, LitElement } from 'lit';
|
|
3
3
|
import { classMap } from 'lit/directives/class-map.js';
|
|
4
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
5
4
|
import { getFocusRingStyles } from '../../helpers/focus.js';
|
|
6
5
|
import { overflowEllipsisDeclarations } from '../../helpers/overflow.js';
|
|
7
6
|
import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
|
|
8
7
|
|
|
9
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
10
|
-
|
|
11
8
|
const keyCodes = {
|
|
12
9
|
ENTER: 13,
|
|
13
10
|
SPACE: 32
|
|
@@ -39,11 +36,7 @@ class Tab extends SkeletonMixin(LitElement) {
|
|
|
39
36
|
--d2l-focus-ring-offset: 0;
|
|
40
37
|
margin: 0.5rem;
|
|
41
38
|
padding: 0.1rem;
|
|
42
|
-
${
|
|
43
|
-
overflow: hidden;
|
|
44
|
-
text-overflow: ellipsis;
|
|
45
|
-
white-space: nowrap;
|
|
46
|
-
`}
|
|
39
|
+
${overflowEllipsisDeclarations}
|
|
47
40
|
}
|
|
48
41
|
:host([skeleton]) .d2l-tab-text.d2l-skeletize::before {
|
|
49
42
|
bottom: 0.15rem;
|
package/components/tabs/tab.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { css, html, LitElement, unsafeCSS } from 'lit';
|
|
2
2
|
import { getFocusPseudoClass, getFocusRingStyles } from '../../helpers/focus.js';
|
|
3
3
|
import { classMap } from 'lit/directives/class-map.js';
|
|
4
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
5
4
|
import { overflowEllipsisDeclarations } from '../../helpers/overflow.js';
|
|
6
5
|
import { TabMixin } from './tab-mixin.js';
|
|
7
6
|
|
|
8
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
9
|
-
|
|
10
7
|
const focusRingStyles = getFocusRingStyles(
|
|
11
8
|
pseudoClass => `:host(:${pseudoClass}) .d2l-tab-text-inner-content`,
|
|
12
9
|
{ extraStyles: css`border-radius: 0.3rem; color: var(--d2l-color-celestine);` }
|
|
@@ -56,11 +53,7 @@ class Tab extends TabMixin(LitElement) {
|
|
|
56
53
|
color: var(--d2l-color-celestine);
|
|
57
54
|
}
|
|
58
55
|
span {
|
|
59
|
-
${
|
|
60
|
-
overflow: hidden;
|
|
61
|
-
text-overflow: ellipsis;
|
|
62
|
-
white-space: nowrap;
|
|
63
|
-
`}
|
|
56
|
+
${overflowEllipsisDeclarations}
|
|
64
57
|
}
|
|
65
58
|
.d2l-tab-text-skeletize-override {
|
|
66
59
|
min-width: 50px;
|
package/components/tabs/tabs.js
CHANGED
|
@@ -8,7 +8,6 @@ import { getFocusPseudoClass, getFocusRingStyles } from '../../helpers/focus.js'
|
|
|
8
8
|
import { ArrowKeysMixin } from '../../mixins/arrow-keys/arrow-keys-mixin.js';
|
|
9
9
|
import { bodyCompactStyles } from '../typography/styles.js';
|
|
10
10
|
import { classMap } from 'lit/directives/class-map.js';
|
|
11
|
-
import { getFlag } from '../../helpers/flags.js';
|
|
12
11
|
import { getOverflowDeclarations } from '../../helpers/overflow.js';
|
|
13
12
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
14
13
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
@@ -18,7 +17,6 @@ import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
|
|
|
18
17
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
19
18
|
|
|
20
19
|
const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
21
|
-
const overflowClipEnabled = getFlag('GAUD-7887-core-components-overflow-clipping', true);
|
|
22
20
|
|
|
23
21
|
const scrollButtonWidth = 56;
|
|
24
22
|
|
|
@@ -94,11 +92,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
94
92
|
position: relative;
|
|
95
93
|
-webkit-transition: max-width 200ms ease-in;
|
|
96
94
|
transition: max-width 200ms ease-in;
|
|
97
|
-
${
|
|
98
|
-
overflow: hidden;
|
|
99
|
-
overflow-x: hidden;
|
|
100
|
-
white-space: nowrap;
|
|
101
|
-
`}
|
|
95
|
+
${getOverflowDeclarations({ textOverflow: 'clip' })}
|
|
102
96
|
}
|
|
103
97
|
.d2l-tabs-container-ext {
|
|
104
98
|
flex: none;
|
|
@@ -115,7 +109,7 @@ class Tabs extends LocalizeCoreElement(ArrowKeysMixin(SkeletonMixin(LitElement))
|
|
|
115
109
|
.d2l-tabs-scroll-next-container {
|
|
116
110
|
background-color: var(--d2l-tabs-background-color);
|
|
117
111
|
box-shadow: 0 0 12px 18px var(--d2l-tabs-background-color);
|
|
118
|
-
|
|
112
|
+
clip-path: rect(0% 200% 100% -100%);
|
|
119
113
|
display: none;
|
|
120
114
|
height: 100%;
|
|
121
115
|
position: absolute;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightspace-ui/core",
|
|
3
|
-
"version": "3.191.
|
|
3
|
+
"version": "3.191.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",
|