@brightspace-ui/core 1.196.0 → 1.197.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/alert/README.md +9 -5
- package/components/backdrop/README.md +6 -11
- package/components/backdrop/backdrop.js +3 -0
- package/components/breadcrumbs/breadcrumbs.js +2 -1
- package/components/button/README.md +1 -1
- package/components/button/button-icon.js +1 -0
- package/components/button/button-mixin.js +2 -0
- package/components/button/button-subtle.js +1 -0
- package/components/button/button.js +1 -0
- package/components/button/floating-buttons.js +1 -0
- package/components/calendar/calendar.js +1 -1
- package/components/card/README.md +1 -1
- package/components/card/card-footer-link.js +12 -2
- package/components/card/card-loading-shimmer.js +1 -0
- package/components/card/card.js +9 -0
- package/components/count-badge/count-badge-icon.js +17 -9
- package/components/count-badge/count-badge-mixin.js +52 -47
- package/components/count-badge/count-badge.js +5 -4
- package/components/dialog/README.md +1 -1
- package/components/dialog/dialog-confirm.js +1 -2
- package/components/dialog/dialog-fullscreen.js +4 -5
- package/components/dialog/dialog-mixin.js +2 -0
- package/components/dialog/dialog.js +0 -2
- package/components/dropdown/README.md +2 -8
- package/components/dropdown/dropdown-button-subtle.js +3 -3
- package/components/dropdown/dropdown-button.js +2 -0
- package/components/dropdown/dropdown-content-mixin.js +25 -6
- package/components/dropdown/dropdown-content.js +0 -3
- package/components/dropdown/dropdown-context-menu.js +2 -0
- package/components/dropdown/dropdown-menu.js +0 -3
- package/components/dropdown/dropdown-more.js +2 -0
- package/components/dropdown/dropdown-opener-mixin.js +2 -0
- package/components/dropdown/dropdown-tabs.js +0 -3
- package/components/filter/README.md +4 -4
- package/components/focus-trap/README.md +0 -4
- package/components/form/docs/form-element-mixin.md +0 -4
- package/components/html-block/README.md +2 -7
- package/components/icons/images/tier3/rubric-graded.svg +2 -2
- package/components/inputs/input-radio-styles.js +2 -1
- package/components/list/README.md +2 -1
- package/components/list/demo/list-item-custom.js +7 -3
- package/components/list/demo/list-nested.html +6 -62
- package/components/list/list-item-generic-layout.js +85 -14
- package/components/list/list.js +27 -2
- package/components/loading-spinner/README.md +1 -1
- package/components/meter/README.md +1 -5
- package/components/offscreen/README.md +0 -6
- package/components/selection/selection-input.js +4 -2
- package/components/selection/selection-mixin.js +1 -0
- package/components/status-indicator/README.md +1 -7
- package/components/switch/README.md +1 -5
- package/components/switch/switch-mixin.js +1 -0
- package/components/tabs/README.md +0 -3
- package/components/tooltip/README.md +1 -1
- package/custom-elements.json +59 -71
- package/generated/icons/tier3/rubric-graded.js +3 -2
- package/helpers/focus.js +4 -2
- package/mixins/labelled-mixin.js +1 -0
- package/package.json +1 -1
- package/templates/primary-secondary/README.md +2 -6
|
@@ -207,6 +207,7 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
|
207
207
|
_focusNextCell(num, forward = true) {
|
|
208
208
|
let cell = null;
|
|
209
209
|
let focusable = null;
|
|
210
|
+
|
|
210
211
|
do {
|
|
211
212
|
cell = this.shadowRoot.querySelector(`[data-cell-num="${num}"]`);
|
|
212
213
|
if (cell) {
|
|
@@ -215,26 +216,31 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
|
215
216
|
if (focusable) focusable.focus();
|
|
216
217
|
forward ? ++num : --num;
|
|
217
218
|
} while (cell && !focusable);
|
|
219
|
+
|
|
220
|
+
if (!cell) {
|
|
221
|
+
// wrap to first/last item
|
|
222
|
+
if (forward) this._focusNextCell(1);
|
|
223
|
+
else this._focusLastItem();
|
|
224
|
+
}
|
|
225
|
+
|
|
218
226
|
return focusable;
|
|
219
227
|
}
|
|
220
228
|
|
|
221
229
|
_focusNextRow(previous = false, num = 1) {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
}
|
|
231
|
-
listItem = nextItem;
|
|
232
|
-
--num;
|
|
230
|
+
|
|
231
|
+
let listItem = findComposedAncestor(this, node => node.role === 'rowgroup');
|
|
232
|
+
|
|
233
|
+
while (num > 0) {
|
|
234
|
+
const tempListItem = (previous ? this._getPreviousFlattenedListItem(listItem) : this._getNextFlattenedListItem(listItem));
|
|
235
|
+
if (tempListItem) listItem = tempListItem;
|
|
236
|
+
else break;
|
|
237
|
+
num--;
|
|
233
238
|
}
|
|
234
|
-
const row = listItem.shadowRoot.querySelector('[role="gridrow"]');
|
|
235
|
-
if (!row) return;
|
|
236
239
|
|
|
237
|
-
|
|
240
|
+
if (!listItem) return;
|
|
241
|
+
const listItemRow = listItem.shadowRoot.querySelector('[role="gridrow"]');
|
|
242
|
+
listItemRow._focusCellItem(this._cellNum, this._cellFocusedItem);
|
|
243
|
+
|
|
238
244
|
}
|
|
239
245
|
|
|
240
246
|
_focusNextWithinCell(node, num = 1) {
|
|
@@ -280,6 +286,38 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
|
280
286
|
return position;
|
|
281
287
|
}
|
|
282
288
|
|
|
289
|
+
_getNextFlattenedListItem(listItem) {
|
|
290
|
+
|
|
291
|
+
// check for nested list first; this check needs to account for standard list-items as well as custom
|
|
292
|
+
const nestedList = listItem.querySelector('[slot="nested"]') || listItem.shadowRoot.querySelector('d2l-list');
|
|
293
|
+
if (nestedList) {
|
|
294
|
+
const nestedListItem = [...nestedList.children].find(node => node.role === 'rowgroup');
|
|
295
|
+
if (nestedListItem) return nestedListItem;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
const getNextListItem = listItem => {
|
|
299
|
+
|
|
300
|
+
// check for sibling list-item
|
|
301
|
+
let nextElement = listItem.nextElementSibling;
|
|
302
|
+
while (nextElement) {
|
|
303
|
+
if (nextElement.role === 'rowgroup') return nextElement;
|
|
304
|
+
nextElement = nextElement.nextElementSibling;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// no sibling list-item was found so check for sibling of parent list-item if nested, recursively if necessary
|
|
308
|
+
const list = findComposedAncestor(listItem, node => node.tagName === 'D2L-LIST');
|
|
309
|
+
if (list.slot !== 'nested' && !(list.parentNode.tagName === 'SLOT' && list.parentNode.name === 'nested')) return;
|
|
310
|
+
|
|
311
|
+
const parentListItem = findComposedAncestor(list, node => node.role === 'rowgroup');
|
|
312
|
+
return getNextListItem(parentListItem);
|
|
313
|
+
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
// check for sibling list-item or ancestors sibling list-items
|
|
317
|
+
return getNextListItem(listItem);
|
|
318
|
+
|
|
319
|
+
}
|
|
320
|
+
|
|
283
321
|
_getNextSiblingInCell(node) {
|
|
284
322
|
const cell = findComposedAncestor(node, (parent) => parent.classList && parent.classList.contains('d2l-cell'));
|
|
285
323
|
if (!cell || cell.name === node.slot) return null;
|
|
@@ -289,6 +327,39 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
|
289
327
|
return isComposedAncestor(cell, sibling) ? sibling : null;
|
|
290
328
|
}
|
|
291
329
|
|
|
330
|
+
_getPreviousFlattenedListItem(listItem) {
|
|
331
|
+
|
|
332
|
+
let previousElement = listItem.previousElementSibling;
|
|
333
|
+
|
|
334
|
+
// try to get the previous list-item in the current list sub-tree including nested
|
|
335
|
+
while (previousElement) {
|
|
336
|
+
if (previousElement.role === 'rowgroup') {
|
|
337
|
+
|
|
338
|
+
// this check needs to account for standard list-items as well as custom
|
|
339
|
+
const nestedList = previousElement.querySelector('[slot="nested"]') || previousElement.shadowRoot.querySelector('d2l-list');
|
|
340
|
+
if (nestedList) {
|
|
341
|
+
const nestedListItems = [...nestedList.children].filter(node => node.role === 'rowgroup');
|
|
342
|
+
if (nestedListItems && nestedListItems.length > 0) {
|
|
343
|
+
return nestedListItems[nestedListItems.length - 1];
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return previousElement;
|
|
347
|
+
|
|
348
|
+
}
|
|
349
|
+
previousElement = previousElement.previousElementSibling;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
// no previous list-item was found in the current list sub-tree so get the parent list item if currently in nested
|
|
353
|
+
const list = findComposedAncestor(listItem, node => node.tagName === 'D2L-LIST');
|
|
354
|
+
|
|
355
|
+
// this check needs to account for standard list-items as well as custom
|
|
356
|
+
if (list.slot === 'nested' || (list.parentNode.tagName === 'SLOT' && list.parentNode.name === 'nested')) {
|
|
357
|
+
const parentListItem = findComposedAncestor(list, node => node.role === 'rowgroup');
|
|
358
|
+
return parentListItem;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
}
|
|
362
|
+
|
|
292
363
|
_getPrevSiblingInCell(node) {
|
|
293
364
|
const cell = findComposedAncestor(node, (parent) => parent.classList && parent.classList.contains('d2l-cell'));
|
|
294
365
|
if (!cell || cell.name === node.slot) return null;
|
package/components/list/list.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { css, html, LitElement } from 'lit-element/lit-element.js';
|
|
2
|
+
import { getNextFocusable, getPreviousFocusable } from '../../helpers/focus.js';
|
|
2
3
|
import { SelectionInfo, SelectionMixin } from '../selection/selection-mixin.js';
|
|
3
4
|
|
|
5
|
+
const keyCodes = {
|
|
6
|
+
TAB: 9
|
|
7
|
+
};
|
|
8
|
+
|
|
4
9
|
export const listSelectionStates = SelectionInfo.states;
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* A container for a styled list of items ("d2l-list-item"). It provides the appropriate "list" semantics as well as options for displaying separators, etc.
|
|
8
13
|
* @slot - List content (e.g., `listitem`s)
|
|
9
|
-
* @fires d2l-list-selection-change - Dispatched when the selection state changes
|
|
10
14
|
*/
|
|
11
15
|
class List extends SelectionMixin(LitElement) {
|
|
12
16
|
|
|
@@ -54,6 +58,7 @@ class List extends SelectionMixin(LitElement) {
|
|
|
54
58
|
// batch the changes from select-all and nested lists
|
|
55
59
|
if (this._listItemChanges.length === 0) {
|
|
56
60
|
setTimeout(() => {
|
|
61
|
+
/** Dispatched once for a set of selection state changes (ex. select-all); event detail includes an array of objects where each object contains the `key` and `selected` state for each changed item */
|
|
57
62
|
this.dispatchEvent(new CustomEvent('d2l-list-selection-changes', {
|
|
58
63
|
detail: this._listItemChanges
|
|
59
64
|
}));
|
|
@@ -63,6 +68,7 @@ class List extends SelectionMixin(LitElement) {
|
|
|
63
68
|
this._listItemChanges.push(e.detail);
|
|
64
69
|
|
|
65
70
|
setTimeout(() => {
|
|
71
|
+
/** Dispatched when the selection state changes */
|
|
66
72
|
this.dispatchEvent(new CustomEvent('d2l-list-selection-change', {
|
|
67
73
|
bubbles: true,
|
|
68
74
|
composed: true,
|
|
@@ -78,7 +84,7 @@ class List extends SelectionMixin(LitElement) {
|
|
|
78
84
|
return html`
|
|
79
85
|
<div role="${role}" class="d2l-list-container">
|
|
80
86
|
<slot name="header"></slot>
|
|
81
|
-
<slot></slot>
|
|
87
|
+
<slot @keydown="${this._handleKeyDown}"></slot>
|
|
82
88
|
</div>
|
|
83
89
|
`;
|
|
84
90
|
}
|
|
@@ -91,6 +97,17 @@ class List extends SelectionMixin(LitElement) {
|
|
|
91
97
|
return this._getItems().indexOf(item);
|
|
92
98
|
}
|
|
93
99
|
|
|
100
|
+
getSelectedListItems(includeNested) {
|
|
101
|
+
let selectedItems = [];
|
|
102
|
+
this._getItems().forEach(item => {
|
|
103
|
+
if (item.selected) selectedItems.push(item);
|
|
104
|
+
if (includeNested && item._selectionProvider) {
|
|
105
|
+
selectedItems = [...selectedItems, ...item._selectionProvider.getSelectedListItems(includeNested)];
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
return selectedItems;
|
|
109
|
+
}
|
|
110
|
+
|
|
94
111
|
getSelectionInfo(includeNested) {
|
|
95
112
|
const selectionInfo = super.getSelectionInfo();
|
|
96
113
|
if (!includeNested) return selectionInfo;
|
|
@@ -114,6 +131,14 @@ class List extends SelectionMixin(LitElement) {
|
|
|
114
131
|
});
|
|
115
132
|
}
|
|
116
133
|
|
|
134
|
+
_handleKeyDown(e) {
|
|
135
|
+
if (!this.grid || this.slot === 'nested' || e.keyCode !== keyCodes.TAB) return;
|
|
136
|
+
e.preventDefault();
|
|
137
|
+
const focusable = (e.shiftKey ? getPreviousFocusable(this.shadowRoot.querySelector('slot:not([name])'))
|
|
138
|
+
: getNextFocusable(this, false, true, true));
|
|
139
|
+
if (focusable) focusable.focus();
|
|
140
|
+
}
|
|
141
|
+
|
|
117
142
|
}
|
|
118
143
|
|
|
119
144
|
customElements.define('d2l-list', List);
|
|
@@ -48,7 +48,7 @@ A loading spinner indicates that something is happening and we don't know how lo
|
|
|
48
48
|
| `color` | String | Color of the animated bar (default is `--d2l-color-celestine`) |
|
|
49
49
|
| `size` | Number, default: `50` | Height and width (`px`) of the spinner |
|
|
50
50
|
|
|
51
|
-
## Future
|
|
51
|
+
## Future Improvements
|
|
52
52
|
|
|
53
53
|
- Ability to "freeze" the spinner at a specified frame to make visual diff testing easier
|
|
54
54
|
|
|
@@ -137,8 +137,4 @@ All `meter` components have a `foreground-light` style that ensures accessibl
|
|
|
137
137
|
* `text` (String): Context information about what the meter is about.
|
|
138
138
|
* `\{\%\}` in the string will be replaced with percentage value
|
|
139
139
|
* `{x/y}` in the string will be replaced with fraction with the proper language support
|
|
140
|
-
|
|
141
|
-
## Future Enhancements
|
|
142
|
-
|
|
143
|
-
Looking for an enhancement not listed here? Create a GitHub issue!
|
|
144
|
-
<!-- docs: end hidden content -->
|
|
140
|
+
<!-- docs: end hidden content -->
|
|
@@ -89,10 +89,12 @@ class Input extends SkeletonMixin(LabelledMixin(LitElement)) {
|
|
|
89
89
|
'd2l-input-radio': true,
|
|
90
90
|
'd2l-selection-input-radio': true,
|
|
91
91
|
'd2l-skeletize': true,
|
|
92
|
-
'd2l-hovering': this.hovering
|
|
92
|
+
'd2l-hovering': this.hovering,
|
|
93
|
+
'd2l-disabled': this.disabled
|
|
93
94
|
};
|
|
94
95
|
return html`
|
|
95
96
|
<div
|
|
97
|
+
aria-disabled="${ifDefined(this.disabled)}"
|
|
96
98
|
aria-label="${this.label}"
|
|
97
99
|
aria-checked="${this.selected ? 'true' : 'false'}"
|
|
98
100
|
class="${classMap(radioClasses)}"
|
|
@@ -100,7 +102,7 @@ class Input extends SkeletonMixin(LabelledMixin(LitElement)) {
|
|
|
100
102
|
@keydown="${this._handleRadioKeyDown}"
|
|
101
103
|
@keyup="${this._handleRadioKeyUp}"
|
|
102
104
|
role="radio"
|
|
103
|
-
tabindex="0"></div>
|
|
105
|
+
tabindex="${ifDefined(this.disabled ? undefined : 0)}"></div>
|
|
104
106
|
`;
|
|
105
107
|
} else {
|
|
106
108
|
return html`
|
|
@@ -60,6 +60,7 @@ export const SelectionMixin = superclass => class extends RtlMixin(superclass) {
|
|
|
60
60
|
this.addEventListener('d2l-selection-observer-subscribe', this._handleSelectionObserverSubscribe);
|
|
61
61
|
this.addEventListener('d2l-selection-input-subscribe', this._handleSelectionInputSubscribe);
|
|
62
62
|
requestAnimationFrame(() => {
|
|
63
|
+
/** @ignore */
|
|
63
64
|
this.dispatchEvent(new CustomEvent('d2l-selection-provider-connected', { bubbles: true, composed: true }));
|
|
64
65
|
});
|
|
65
66
|
|
|
@@ -5,7 +5,7 @@ Status Indicators are used to communicate the status of an item. They are non-in
|
|
|
5
5
|

|
|
6
6
|
<!-- docs: end hidden content -->
|
|
7
7
|
|
|
8
|
-
<!-- docs: demo -->
|
|
8
|
+
<!-- docs: demo display:block -->
|
|
9
9
|
```html
|
|
10
10
|
<script type="module">
|
|
11
11
|
import '@brightspace-ui/core/components/status-indicator/status-indicator.js';
|
|
@@ -224,9 +224,3 @@ The text label should be kept short; one or two words at most. If more informati
|
|
|
224
224
|
|
|
225
225
|
</div>
|
|
226
226
|
```
|
|
227
|
-
<!-- docs: start hidden content -->
|
|
228
|
-
|
|
229
|
-
## Future Enhancements
|
|
230
|
-
|
|
231
|
-
Looking for an enhancement not listed here? Create a GitHub issue!
|
|
232
|
-
<!-- docs: end hidden content -->
|
|
@@ -26,7 +26,7 @@ A switch is used to toggle between two states, on and off, just like a light swi
|
|
|
26
26
|
<!-- docs: end donts -->
|
|
27
27
|
<!-- docs: end best practices -->
|
|
28
28
|
|
|
29
|
-
## Switch [d2l-switch]
|
|
29
|
+
## Switch [d2l-switch]
|
|
30
30
|
The `d2l-switch` element is a generic switch with on/off semantics.
|
|
31
31
|
<!-- docs: start hidden content -->
|
|
32
32
|

|
|
@@ -95,8 +95,4 @@ The `d2l-switch-visibility` element is a variant of the generic switch configure
|
|
|
95
95
|
### Events
|
|
96
96
|
|
|
97
97
|
- `change`: dispatched when the `on` property is updated
|
|
98
|
-
|
|
99
|
-
## Future Enhancements
|
|
100
|
-
|
|
101
|
-
Looking for an enhancement not listed here? Create a GitHub issue!
|
|
102
98
|
<!-- docs: end hidden content -->
|
|
@@ -234,6 +234,7 @@ export const SwitchMixin = superclass => class extends RtlMixin(FocusVisiblePoly
|
|
|
234
234
|
_toggleState() {
|
|
235
235
|
if (this.disabled) return;
|
|
236
236
|
this.on = !this.on;
|
|
237
|
+
/** Dispatched when the `on` property is updated */
|
|
237
238
|
this.dispatchEvent(new CustomEvent('change', { bubbles: true }));
|
|
238
239
|
}
|
|
239
240
|
};
|
|
@@ -107,7 +107,4 @@ Selecting a tab in the tab bar causes the relevant tab panel to be displayed. Ta
|
|
|
107
107
|
|
|
108
108
|
### Events
|
|
109
109
|
- `d2l-tab-panel-selected`: dispatched when a tab is selected
|
|
110
|
-
## Future Enhancements
|
|
111
|
-
|
|
112
|
-
Looking for an enhancement not listed here? Create a GitHub issue!
|
|
113
110
|
<!-- docs: end hidden content -->
|
|
@@ -75,7 +75,7 @@ The `d2l-tooltip` component is used to display additional information when users
|
|
|
75
75
|
import '@brightspace-ui/core/components/tooltip/tooltip.js';
|
|
76
76
|
</script>
|
|
77
77
|
|
|
78
|
-
<d2l-input-text placeholder="Hover for Error" id="tooltip-error" aria-invalid="true" style="max-width:250px;"></d2l-input-text>
|
|
78
|
+
<d2l-input-text placeholder="Hover for Error" id="tooltip-error" aria-invalid="true" label="Text Input" label-hidden style="max-width:250px;"></d2l-input-text>
|
|
79
79
|
<d2l-tooltip for="tooltip-error" state="error">
|
|
80
80
|
Your error message will display here
|
|
81
81
|
</d2l-tooltip>
|
package/custom-elements.json
CHANGED
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
"slots": [
|
|
328
328
|
{
|
|
329
329
|
"name": "",
|
|
330
|
-
"description": "
|
|
330
|
+
"description": "Breadcrumb items"
|
|
331
331
|
}
|
|
332
332
|
]
|
|
333
333
|
},
|
|
@@ -1087,6 +1087,12 @@
|
|
|
1087
1087
|
"description": "The type of the badge. Defaults to \"count\".",
|
|
1088
1088
|
"type": "'count'|'notification'",
|
|
1089
1089
|
"default": "\"count\""
|
|
1090
|
+
},
|
|
1091
|
+
{
|
|
1092
|
+
"name": "skeleton",
|
|
1093
|
+
"description": "Renders the input as a [skeleton loader](https://github.com/BrightspaceUI/core/tree/main/components/skeleton)",
|
|
1094
|
+
"type": "boolean",
|
|
1095
|
+
"default": "false"
|
|
1090
1096
|
}
|
|
1091
1097
|
],
|
|
1092
1098
|
"properties": [
|
|
@@ -1163,6 +1169,13 @@
|
|
|
1163
1169
|
"description": "The type of the badge. Defaults to \"count\".",
|
|
1164
1170
|
"type": "'count'|'notification'",
|
|
1165
1171
|
"default": "\"count\""
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
"name": "skeleton",
|
|
1175
|
+
"attribute": "skeleton",
|
|
1176
|
+
"description": "Renders the input as a [skeleton loader](https://github.com/BrightspaceUI/core/tree/main/components/skeleton)",
|
|
1177
|
+
"type": "boolean",
|
|
1178
|
+
"default": "false"
|
|
1166
1179
|
}
|
|
1167
1180
|
]
|
|
1168
1181
|
},
|
|
@@ -1227,6 +1240,12 @@
|
|
|
1227
1240
|
"description": "The type of the badge. Defaults to \"count\".",
|
|
1228
1241
|
"type": "'count'|'notification'",
|
|
1229
1242
|
"default": "\"count\""
|
|
1243
|
+
},
|
|
1244
|
+
{
|
|
1245
|
+
"name": "skeleton",
|
|
1246
|
+
"description": "Renders the input as a [skeleton loader](https://github.com/BrightspaceUI/core/tree/main/components/skeleton)",
|
|
1247
|
+
"type": "boolean",
|
|
1248
|
+
"default": "false"
|
|
1230
1249
|
}
|
|
1231
1250
|
],
|
|
1232
1251
|
"properties": [
|
|
@@ -1297,6 +1316,13 @@
|
|
|
1297
1316
|
"description": "The type of the badge. Defaults to \"count\".",
|
|
1298
1317
|
"type": "'count'|'notification'",
|
|
1299
1318
|
"default": "\"count\""
|
|
1319
|
+
},
|
|
1320
|
+
{
|
|
1321
|
+
"name": "skeleton",
|
|
1322
|
+
"attribute": "skeleton",
|
|
1323
|
+
"description": "Renders the input as a [skeleton loader](https://github.com/BrightspaceUI/core/tree/main/components/skeleton)",
|
|
1324
|
+
"type": "boolean",
|
|
1325
|
+
"default": "false"
|
|
1300
1326
|
}
|
|
1301
1327
|
]
|
|
1302
1328
|
},
|
|
@@ -1460,13 +1486,13 @@
|
|
|
1460
1486
|
}
|
|
1461
1487
|
],
|
|
1462
1488
|
"events": [
|
|
1463
|
-
{
|
|
1464
|
-
"name": "d2l-dialog-open",
|
|
1465
|
-
"description": "Dispatched when the dialog is opened"
|
|
1466
|
-
},
|
|
1467
1489
|
{
|
|
1468
1490
|
"name": "d2l-dialog-close",
|
|
1469
1491
|
"description": "Dispatched with the action value when the dialog is closed for any reason"
|
|
1492
|
+
},
|
|
1493
|
+
{
|
|
1494
|
+
"name": "d2l-dialog-open",
|
|
1495
|
+
"description": "Dispatched when the dialog is opened"
|
|
1470
1496
|
}
|
|
1471
1497
|
],
|
|
1472
1498
|
"slots": [
|
|
@@ -1531,13 +1557,13 @@
|
|
|
1531
1557
|
}
|
|
1532
1558
|
],
|
|
1533
1559
|
"events": [
|
|
1534
|
-
{
|
|
1535
|
-
"name": "d2l-dialog-open",
|
|
1536
|
-
"description": "Dispatched when the dialog is opened"
|
|
1537
|
-
},
|
|
1538
1560
|
{
|
|
1539
1561
|
"name": "d2l-dialog-close",
|
|
1540
1562
|
"description": "Dispatched with the action value when the dialog is closed for any reason"
|
|
1563
|
+
},
|
|
1564
|
+
{
|
|
1565
|
+
"name": "d2l-dialog-open",
|
|
1566
|
+
"description": "Dispatched when the dialog is opened"
|
|
1541
1567
|
}
|
|
1542
1568
|
],
|
|
1543
1569
|
"slots": [
|
|
@@ -1619,13 +1645,13 @@
|
|
|
1619
1645
|
}
|
|
1620
1646
|
],
|
|
1621
1647
|
"events": [
|
|
1622
|
-
{
|
|
1623
|
-
"name": "d2l-dialog-open",
|
|
1624
|
-
"description": "Dispatched when the dialog is opened"
|
|
1625
|
-
},
|
|
1626
1648
|
{
|
|
1627
1649
|
"name": "d2l-dialog-close",
|
|
1628
1650
|
"description": "Dispatched with the action value when the dialog is closed for any reason"
|
|
1651
|
+
},
|
|
1652
|
+
{
|
|
1653
|
+
"name": "d2l-dialog-open",
|
|
1654
|
+
"description": "Dispatched when the dialog is opened"
|
|
1629
1655
|
}
|
|
1630
1656
|
],
|
|
1631
1657
|
"slots": [
|
|
@@ -2015,13 +2041,13 @@
|
|
|
2015
2041
|
"name": "d2l-dropdown-close",
|
|
2016
2042
|
"description": "Dispatched when the dropdown is closed"
|
|
2017
2043
|
},
|
|
2018
|
-
{
|
|
2019
|
-
"name": "d2l-dropdown-focus-enter",
|
|
2020
|
-
"description": "Dispatched when user focus enters the dropdown content (trap-focus option only)"
|
|
2021
|
-
},
|
|
2022
2044
|
{
|
|
2023
2045
|
"name": "d2l-dropdown-position",
|
|
2024
2046
|
"description": "Dispatched when the dropdown position finishes adjusting"
|
|
2047
|
+
},
|
|
2048
|
+
{
|
|
2049
|
+
"name": "d2l-dropdown-focus-enter",
|
|
2050
|
+
"description": "Dispatched when user focus enters the dropdown content (trap-focus option only)"
|
|
2025
2051
|
}
|
|
2026
2052
|
],
|
|
2027
2053
|
"slots": [
|
|
@@ -2352,13 +2378,13 @@
|
|
|
2352
2378
|
"name": "d2l-dropdown-close",
|
|
2353
2379
|
"description": "Dispatched when the dropdown is closed"
|
|
2354
2380
|
},
|
|
2355
|
-
{
|
|
2356
|
-
"name": "d2l-dropdown-focus-enter",
|
|
2357
|
-
"description": "Dispatched when user focus enters the dropdown content (trap-focus option only)"
|
|
2358
|
-
},
|
|
2359
2381
|
{
|
|
2360
2382
|
"name": "d2l-dropdown-position",
|
|
2361
2383
|
"description": "Dispatched when the dropdown position finishes adjusting"
|
|
2384
|
+
},
|
|
2385
|
+
{
|
|
2386
|
+
"name": "d2l-dropdown-focus-enter",
|
|
2387
|
+
"description": "Dispatched when user focus enters the dropdown content (trap-focus option only)"
|
|
2362
2388
|
}
|
|
2363
2389
|
],
|
|
2364
2390
|
"slots": [
|
|
@@ -2689,13 +2715,13 @@
|
|
|
2689
2715
|
"name": "d2l-dropdown-close",
|
|
2690
2716
|
"description": "Dispatched when the dropdown is closed"
|
|
2691
2717
|
},
|
|
2692
|
-
{
|
|
2693
|
-
"name": "d2l-dropdown-focus-enter",
|
|
2694
|
-
"description": "Dispatched when user focus enters the dropdown content (trap-focus option only)"
|
|
2695
|
-
},
|
|
2696
2718
|
{
|
|
2697
2719
|
"name": "d2l-dropdown-position",
|
|
2698
2720
|
"description": "Dispatched when the dropdown position finishes adjusting"
|
|
2721
|
+
},
|
|
2722
|
+
{
|
|
2723
|
+
"name": "d2l-dropdown-focus-enter",
|
|
2724
|
+
"description": "Dispatched when user focus enters the dropdown content (trap-focus option only)"
|
|
2699
2725
|
}
|
|
2700
2726
|
],
|
|
2701
2727
|
"slots": [
|
|
@@ -4253,9 +4279,6 @@
|
|
|
4253
4279
|
{
|
|
4254
4280
|
"name": "change",
|
|
4255
4281
|
"description": "Dispatched when there is a change to selected date or selected time. \"value\" corresponds to the selected value and is formatted in ISO 8601 combined date and time format (\"YYYY-MM-DDTHH:mm:ss.sssZ\")."
|
|
4256
|
-
},
|
|
4257
|
-
{
|
|
4258
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
4259
4282
|
}
|
|
4260
4283
|
]
|
|
4261
4284
|
},
|
|
@@ -4411,9 +4434,6 @@
|
|
|
4411
4434
|
{
|
|
4412
4435
|
"name": "change",
|
|
4413
4436
|
"description": "Dispatched when there is a change to selected date. \"value\" corresponds to the selected value and is formatted in ISO 8601 calendar date format (\"YYYY-MM-DD\")."
|
|
4414
|
-
},
|
|
4415
|
-
{
|
|
4416
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
4417
4437
|
}
|
|
4418
4438
|
]
|
|
4419
4439
|
},
|
|
@@ -4742,9 +4762,6 @@
|
|
|
4742
4762
|
{
|
|
4743
4763
|
"name": "change",
|
|
4744
4764
|
"description": "Dispatched when an alteration to the value is committed (typically after focus is lost) by the user. The `value` attribute reflects a JavaScript Number which is parsed from the formatted input value."
|
|
4745
|
-
},
|
|
4746
|
-
{
|
|
4747
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
4748
4765
|
}
|
|
4749
4766
|
],
|
|
4750
4767
|
"slots": [
|
|
@@ -4932,9 +4949,6 @@
|
|
|
4932
4949
|
{
|
|
4933
4950
|
"name": "change",
|
|
4934
4951
|
"description": "Dispatched when an alteration to the value is committed (typically after focus is lost) by the user. The `value` attribute reflects a JavaScript Number which is parsed from the formatted input value."
|
|
4935
|
-
},
|
|
4936
|
-
{
|
|
4937
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
4938
4952
|
}
|
|
4939
4953
|
],
|
|
4940
4954
|
"slots": [
|
|
@@ -5404,9 +5418,6 @@
|
|
|
5404
5418
|
{
|
|
5405
5419
|
"name": "input",
|
|
5406
5420
|
"description": "Dispatched immediately after changes by the user"
|
|
5407
|
-
},
|
|
5408
|
-
{
|
|
5409
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
5410
5421
|
}
|
|
5411
5422
|
],
|
|
5412
5423
|
"slots": [
|
|
@@ -5635,9 +5646,6 @@
|
|
|
5635
5646
|
{
|
|
5636
5647
|
"name": "input",
|
|
5637
5648
|
"description": "Dispatched immediately after changes by the user"
|
|
5638
|
-
},
|
|
5639
|
-
{
|
|
5640
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
5641
5649
|
}
|
|
5642
5650
|
]
|
|
5643
5651
|
},
|
|
@@ -6021,9 +6029,6 @@
|
|
|
6021
6029
|
{
|
|
6022
6030
|
"name": "change",
|
|
6023
6031
|
"description": "Dispatched when there is a change to selected time. \"value\" corresponds to the selected value and is formatted in ISO 8601 time format (\"hh:mm:ss\")."
|
|
6024
|
-
},
|
|
6025
|
-
{
|
|
6026
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
6027
6032
|
}
|
|
6028
6033
|
]
|
|
6029
6034
|
},
|
|
@@ -6323,9 +6328,6 @@
|
|
|
6323
6328
|
},
|
|
6324
6329
|
{
|
|
6325
6330
|
"name": "d2l-list-item-selected"
|
|
6326
|
-
},
|
|
6327
|
-
{
|
|
6328
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
6329
6331
|
}
|
|
6330
6332
|
]
|
|
6331
6333
|
},
|
|
@@ -6519,9 +6521,6 @@
|
|
|
6519
6521
|
{
|
|
6520
6522
|
"name": "d2l-list-item-selected",
|
|
6521
6523
|
"description": "Dispatched when the component item is selected"
|
|
6522
|
-
},
|
|
6523
|
-
{
|
|
6524
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
6525
6524
|
}
|
|
6526
6525
|
],
|
|
6527
6526
|
"slots": [
|
|
@@ -6851,9 +6850,6 @@
|
|
|
6851
6850
|
{
|
|
6852
6851
|
"name": "d2l-list-item-selected",
|
|
6853
6852
|
"description": "Dispatched when the component item is selected"
|
|
6854
|
-
},
|
|
6855
|
-
{
|
|
6856
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
6857
6853
|
}
|
|
6858
6854
|
],
|
|
6859
6855
|
"slots": [
|
|
@@ -6933,14 +6929,12 @@
|
|
|
6933
6929
|
],
|
|
6934
6930
|
"events": [
|
|
6935
6931
|
{
|
|
6936
|
-
"name": "d2l-list-selection-
|
|
6937
|
-
"description": "Dispatched
|
|
6938
|
-
},
|
|
6939
|
-
{
|
|
6940
|
-
"name": "d2l-list-selection-changes"
|
|
6932
|
+
"name": "d2l-list-selection-changes",
|
|
6933
|
+
"description": "Dispatched once for a set of selection state changes (ex. select-all); event detail includes an array of objects where each object contains the `key` and `selected` state for each changed item"
|
|
6941
6934
|
},
|
|
6942
6935
|
{
|
|
6943
|
-
"name": "d2l-selection-
|
|
6936
|
+
"name": "d2l-list-selection-change",
|
|
6937
|
+
"description": "Dispatched when the selection state changes"
|
|
6944
6938
|
}
|
|
6945
6939
|
],
|
|
6946
6940
|
"slots": [
|
|
@@ -8106,9 +8100,6 @@
|
|
|
8106
8100
|
},
|
|
8107
8101
|
{
|
|
8108
8102
|
"name": "d2l-selection-input-subscribe"
|
|
8109
|
-
},
|
|
8110
|
-
{
|
|
8111
|
-
"name": "d2l-labelled-mixin-label-elem-change"
|
|
8112
8103
|
}
|
|
8113
8104
|
]
|
|
8114
8105
|
},
|
|
@@ -8227,11 +8218,6 @@
|
|
|
8227
8218
|
"type": "boolean",
|
|
8228
8219
|
"default": "false"
|
|
8229
8220
|
}
|
|
8230
|
-
],
|
|
8231
|
-
"events": [
|
|
8232
|
-
{
|
|
8233
|
-
"name": "d2l-selection-provider-connected"
|
|
8234
|
-
}
|
|
8235
8221
|
]
|
|
8236
8222
|
},
|
|
8237
8223
|
{
|
|
@@ -8568,7 +8554,8 @@
|
|
|
8568
8554
|
],
|
|
8569
8555
|
"events": [
|
|
8570
8556
|
{
|
|
8571
|
-
"name": "change"
|
|
8557
|
+
"name": "change",
|
|
8558
|
+
"description": "Dispatched when the `on` property is updated"
|
|
8572
8559
|
}
|
|
8573
8560
|
]
|
|
8574
8561
|
},
|
|
@@ -8655,7 +8642,8 @@
|
|
|
8655
8642
|
],
|
|
8656
8643
|
"events": [
|
|
8657
8644
|
{
|
|
8658
|
-
"name": "change"
|
|
8645
|
+
"name": "change",
|
|
8646
|
+
"description": "Dispatched when the `on` property is updated"
|
|
8659
8647
|
}
|
|
8660
8648
|
]
|
|
8661
8649
|
},
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// auto-generated
|
|
2
2
|
export const val = `<svg height="30" width="30" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
|
|
3
3
|
<path fill="#494c4e" d="M17.641,17.98l-9.89,11.5a1.488,1.488,0,0,1-1.13.52.277.277,0,0,1-.09-.01.22.22,0,0,1-.08.01,1.509,1.509,0,0,1-1.01-.39l-4.95-4.5a1.5,1.5,0,1,1,2.02-2.22l3.9,3.55,8.95-10.42a1.5,1.5,0,1,1,2.28,1.96Z"/>
|
|
4
|
-
<path fill="#494c4e" d="M26,0H4A4.012,4.012,0,0,0,0,4V20.85a3.5,3.5,0,0,1,1.505-.35A3.492,3.492,0,0,1,2,20.545V16H7v5H3.3a3.439,3.439,0,0,1,.556.411L5.6,23H6.729L9,20.356V16h3.741l1.1-1.282A3.48,3.48,0,0,1,16,13.551V9h5v5H18.3a3.417,3.417,0,0,1,1.547,2H21v5H17.681L14,25.28V28H11.661l-1.72,2H26a4.012,4.012,0,0,0,4-4V4A4.012,4.012,0,0,0,26,0ZM7,14H2V9H7ZM7,7H2V4A2.006,2.006,0,0,1,4,2H7Zm7,7H9V9h5Zm0-7H9V2h5Zm7,21H16V23h5ZM21,7H16V2h5Zm7,19a2.006,2.006,0,0,1-2,2H23V23h5Zm0-5H23V16h5Zm0-7H23V9h5Zm0-7H23V2h3a2.006,2.006,0,0,1,2,2Z"
|
|
5
|
-
</svg
|
|
4
|
+
<path fill="#494c4e" d="M26,0H4A4.012,4.012,0,0,0,0,4V20.85a3.5,3.5,0,0,1,1.505-.35A3.492,3.492,0,0,1,2,20.545V16H7v5H3.3a3.439,3.439,0,0,1,.556.411L5.6,23H6.729L9,20.356V16h3.741l1.1-1.282A3.48,3.48,0,0,1,16,13.551V9h5v5H18.3a3.417,3.417,0,0,1,1.547,2H21v5H17.681L14,25.28V28H11.661l-1.72,2H26a4.012,4.012,0,0,0,4-4V4A4.012,4.012,0,0,0,26,0ZM7,14H2V9H7ZM7,7H2V4A2.006,2.006,0,0,1,4,2H7Zm7,7H9V9h5Zm0-7H9V2h5Zm7,21H16V23h5ZM21,7H16V2h5Zm7,19a2.006,2.006,0,0,1-2,2H23V23h5Zm0-5H23V16h5Zm0-7H23V9h5Zm0-7H23V2h3a2.006,2.006,0,0,1,2,2Z"/>
|
|
5
|
+
</svg>
|
|
6
|
+
`;
|