@brightspace-ui/core 1.207.2 → 1.208.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.
Files changed (35) hide show
  1. package/README.md +1 -1
  2. package/components/alert/demo/alert-toast.html +0 -2
  3. package/components/alert/demo/alert.html +0 -2
  4. package/components/button/demo/button-icon.html +4 -4
  5. package/components/button/demo/floating-buttons-in-frame.html +9 -9
  6. package/components/button/demo/floating-buttons-in-tabs.html +40 -41
  7. package/components/card/demo/card.html +18 -18
  8. package/components/dialog/README.md +1 -2
  9. package/components/dropdown/README.md +9 -17
  10. package/components/dropdown/demo/dropdown-context-menu.html +7 -7
  11. package/components/dropdown/demo/dropdown-menu.html +6 -6
  12. package/components/dropdown/demo/dropdown-more.html +4 -4
  13. package/components/filter/README.md +4 -7
  14. package/components/focus-trap/demo/focus-trap.html +1 -1
  15. package/components/html-block/demo/html-block.html +117 -0
  16. package/components/html-block/html-block.js +57 -25
  17. package/components/inputs/demo/input-checkbox.html +2 -2
  18. package/components/inputs/demo/input-radio.html +1 -1
  19. package/components/inputs/docs/input-date-time.md +7 -13
  20. package/components/inputs/input-date-time.js +16 -0
  21. package/components/list/demo/list-item-layouts.html +1 -1
  22. package/components/list/demo/list.html +1 -1
  23. package/components/menu/demo/checkbox-menu.html +2 -2
  24. package/components/menu/demo/menu.html +4 -4
  25. package/components/menu/demo/radio-menu.html +2 -2
  26. package/components/meter/demo/meter.html +8 -8
  27. package/components/selection/demo/selection.html +1 -1
  28. package/components/status-indicator/demo/status-indicator.html +4 -4
  29. package/components/table/demo/table.html +1 -1
  30. package/components/tooltip/demo/tooltip.html +2 -2
  31. package/custom-elements.json +17 -0
  32. package/helpers/demo/gestures.html +1 -1
  33. package/helpers/mathjax.js +6 -0
  34. package/mixins/async-container/demo/async-container.html +1 -1
  35. package/package.json +4 -4
@@ -7,10 +7,9 @@ Filter with multiple dimensions:
7
7
  ![Filter with multiple dimensions](./screenshots/filter-multi-dim.png?raw=true)
8
8
  <!-- docs: end hidden content -->
9
9
 
10
- <!-- docs: demo align:start autoSize:false size:large -->
10
+ <!-- docs: demo align:start autoOpen:true autoSize:false size:large -->
11
11
  ```html
12
12
  <script type="module">
13
- import './pages/assets/open-first-item-helper.js';
14
13
  import '@brightspace-ui/core/components/filter/filter.js';
15
14
  import '@brightspace-ui/core/components/filter/filter-dimension-set.js';
16
15
  import '@brightspace-ui/core/components/filter/filter-dimension-set-value.js';
@@ -39,10 +38,9 @@ Filter with multiple dimensions:
39
38
 
40
39
  The `d2l-filter` component allows a user to filter on one or more dimensions of data from a single dropdown.
41
40
 
42
- <!-- docs: demo live name:d2l-filter autoSize:false align:start size:large -->
41
+ <!-- docs: demo live name:d2l-filter align:start autoOpen:true autoSize:false size:large -->
43
42
  ```html
44
43
  <script type="module">
45
- import './pages/assets/open-first-item-helper.js';
46
44
  import '@brightspace-ui/core/components/filter/filter.js';
47
45
  import '@brightspace-ui/core/components/filter/filter-dimension-set.js';
48
46
  import '@brightspace-ui/core/components/filter/filter-dimension-set-value.js';
@@ -78,7 +76,7 @@ Filter with a single dimension:
78
76
  ![Filters with single dimension](./screenshots/filter.png?raw=true)
79
77
  <!-- docs: end hidden content -->
80
78
 
81
- <!-- docs: demo code autoSize:false align:start size:large -->
79
+ <!-- docs: demo code align:start autoSize:false size:large -->
82
80
  ```html
83
81
  <script type="module">
84
82
  import '@brightspace-ui/core/components/filter/filter.js';
@@ -160,10 +158,9 @@ Set dimension on mobile:
160
158
  ![Set dimension on mobile](./screenshots/filter-mobile.png?raw=true)
161
159
  <!-- docs: end hidden content -->
162
160
 
163
- <!-- docs: demo live name:d2l-filter-dimension-set align:start autoSize:false size:large -->
161
+ <!-- docs: demo live name:d2l-filter-dimension-set align:start autoOpen:true autoSize:false size:large -->
164
162
  ```html
165
163
  <script type="module">
166
- import './pages/assets/open-first-item-helper.js';
167
164
  import '@brightspace-ui/core/components/filter/filter.js';
168
165
  import '@brightspace-ui/core/components/filter/filter-dimension-set.js';
169
166
  import '@brightspace-ui/core/components/filter/filter-dimension-set-value.js';
@@ -15,8 +15,8 @@
15
15
  border: 2px dashed var(--d2l-color-celestine);
16
16
  border-radius: 6px;
17
17
  display: block;
18
- padding: 0.6rem;
19
18
  margin: 0.6rem 0;
19
+ padding: 0.6rem;
20
20
  }
21
21
  d2l-link {
22
22
  display: block;
@@ -10,6 +10,10 @@
10
10
  import { provideInstance } from '../../../mixins/provider-mixin.js';
11
11
 
12
12
  class DemoReplacementRenderer {
13
+ get canRenderInline() {
14
+ return true;
15
+ }
16
+
13
17
  async render(elem) {
14
18
  const elemsToReplace = elem.querySelectorAll('[data-replace-me-id]');
15
19
  if (elemsToReplace.length === 0) return elem;
@@ -188,6 +192,119 @@
188
192
  </template>
189
193
  </d2l-demo-snippet>
190
194
 
195
+ <h2>HTML Block (math, no deferred rendering)</h2>
196
+
197
+ <d2l-demo-snippet>
198
+ <template>
199
+ <d2l-html-block no-deferred-rendering>
200
+ <div>
201
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
202
+ <mi>x</mi>
203
+ <mo>=</mo>
204
+ <mrow>
205
+ <mfrac>
206
+ <mrow>
207
+ <mo>&#x2212;</mo>
208
+ <mi>b</mi>
209
+ <mo>&#xB1;</mo>
210
+ <msqrt>
211
+ <msup>
212
+ <mi>b</mi>
213
+ <mn>2</mn>
214
+ </msup>
215
+ <mo>&#x2212;</mo>
216
+ <mn>4</mn>
217
+ <mi>a</mi>
218
+ <mi>c</mi>
219
+ </msqrt>
220
+ </mrow>
221
+ <mrow>
222
+ <mn>2</mn>
223
+ <mi>a</mi>
224
+ </mrow>
225
+ </mfrac>
226
+ </mrow>
227
+ <mtext>.</mtext>
228
+ </math>
229
+ <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
230
+ <msup>
231
+ <mrow>
232
+ <mo>(</mo>
233
+ <mrow>
234
+ <munderover>
235
+ <mo>∑<!-- ∑ --></mo>
236
+ <mrow class="MJX-TeXAtom-ORD">
237
+ <mi>k</mi>
238
+ <mo>=</mo>
239
+ <mn>1</mn>
240
+ </mrow>
241
+ <mi>n</mi>
242
+ </munderover>
243
+ <msub>
244
+ <mi>a</mi>
245
+ <mi>k</mi>
246
+ </msub>
247
+ <msub>
248
+ <mi>b</mi>
249
+ <mi>k</mi>
250
+ </msub>
251
+ </mrow>
252
+ <mo>)</mo>
253
+ </mrow>
254
+ <mrow class="MJX-TeXAtom-ORD">
255
+ <mspace width="negativethinmathspace"></mspace>
256
+ <mspace width="negativethinmathspace"></mspace>
257
+ <mn>2</mn>
258
+ </mrow>
259
+ </msup>
260
+ <mo>≤<!-- ≤ --></mo>
261
+ <mrow>
262
+ <mo>(</mo>
263
+ <mrow>
264
+ <munderover>
265
+ <mo>∑<!-- ∑ --></mo>
266
+ <mrow class="MJX-TeXAtom-ORD">
267
+ <mi>k</mi>
268
+ <mo>=</mo>
269
+ <mn>1</mn>
270
+ </mrow>
271
+ <mi>n</mi>
272
+ </munderover>
273
+ <msubsup>
274
+ <mi>a</mi>
275
+ <mi>k</mi>
276
+ <mn>2</mn>
277
+ </msubsup>
278
+ </mrow>
279
+ <mo>)</mo>
280
+ </mrow>
281
+ <mrow>
282
+ <mo>(</mo>
283
+ <mrow>
284
+ <munderover>
285
+ <mo>∑<!-- ∑ --></mo>
286
+ <mrow class="MJX-TeXAtom-ORD">
287
+ <mi>k</mi>
288
+ <mo>=</mo>
289
+ <mn>1</mn>
290
+ </mrow>
291
+ <mi>n</mi>
292
+ </munderover>
293
+ <msubsup>
294
+ <mi>b</mi>
295
+ <mi>k</mi>
296
+ <mn>2</mn>
297
+ </msubsup>
298
+ </mrow>
299
+ <mo>)</mo>
300
+ </mrow>
301
+ </math>
302
+ <p>The wizard (<span data-replace-me-id="0">Elmer Fudd</span>) quickly jinxed the gnomes before they vaporized.</p>
303
+ </div>
304
+ </d2l-html-block>
305
+ </template>
306
+ </d2l-demo-snippet>
307
+
191
308
  <h2>HTML Block (inline math)</h2>
192
309
 
193
310
  <d2l-demo-snippet>
@@ -118,6 +118,17 @@ const getRenderers = () => {
118
118
  */
119
119
  class HtmlBlock extends LitElement {
120
120
 
121
+ static get properties() {
122
+ return {
123
+ /**
124
+ * Whether to disable deferred rendering of the user-authored HTML. Do *not* set this
125
+ * unless your HTML relies on script executions that may break upon stamping.
126
+ * @type {Boolean}
127
+ */
128
+ noDeferredRendering: { type: Boolean, attribute: 'no-deferred-rendering' }
129
+ };
130
+ }
131
+
121
132
  static get styles() {
122
133
  return [ htmlBlockContentStyles, css`
123
134
  :host {
@@ -131,7 +142,10 @@ class HtmlBlock extends LitElement {
131
142
  :host([hidden]) {
132
143
  display: none;
133
144
  }
134
- ::slotted(*) {
145
+ :host([no-deferred-rendering]) div.d2l-html-block-rendered {
146
+ display: none;
147
+ }
148
+ :host(:not([no-deferred-rendering])) ::slotted(*) {
135
149
  display: none;
136
150
  }
137
151
  `];
@@ -139,6 +153,7 @@ class HtmlBlock extends LitElement {
139
153
 
140
154
  constructor() {
141
155
  super();
156
+ this.noDeferredRendering = false;
142
157
 
143
158
  const rendererContextAttributes = getRenderers().reduce((attrs, currentRenderer) => {
144
159
  if (currentRenderer.contextAttributes) currentRenderer.contextAttributes.forEach(attr => attrs.push(attr));
@@ -153,9 +168,9 @@ class HtmlBlock extends LitElement {
153
168
  super.connectedCallback();
154
169
  if (this._contextObserverController) this._contextObserverController.hostConnected();
155
170
 
156
- if (!this._templateObserver) return;
171
+ if (!this._templateObserver || this.noDeferredRendering) return;
157
172
 
158
- const template = this.querySelector('template');
173
+ const template = this._findSlottedElement('TEMPLATE');
159
174
  if (template) this._templateObserver.observe(template.content, { attributes: true, childList: true, subtree: true });
160
175
  }
161
176
 
@@ -172,24 +187,14 @@ class HtmlBlock extends LitElement {
172
187
 
173
188
  this.shadowRoot.innerHTML += '<div class="d2l-html-block-rendered"></div><slot></slot>';
174
189
 
175
- this.shadowRoot.querySelector('slot').addEventListener('slotchange', async e => {
176
-
177
- const template = e.target.assignedNodes({ flatten: true })
178
- .find(node => (node.nodeType === Node.ELEMENT_NODE && node.tagName === 'TEMPLATE'));
179
-
180
- this._stamp(template);
181
-
182
- });
190
+ this.shadowRoot.querySelector('slot').addEventListener('slotchange', async e => await this._render(e.target));
183
191
  this._renderContainer = this.shadowRoot.querySelector('.d2l-html-block-rendered');
184
192
  this._context = this._contextObserverController ? { ...this._contextObserverController.values } : {};
185
193
  }
186
194
 
187
195
  updated() {
188
196
  super.updated();
189
- if (this._contextObserverController && this._contextObjectHasChanged()) {
190
- const template = this.querySelector('template');
191
- this._stamp(template);
192
- }
197
+ if (this._contextObserverController && this._contextObjectHasChanged()) this._render();
193
198
  }
194
199
 
195
200
  _contextObjectHasChanged() {
@@ -201,7 +206,40 @@ class HtmlBlock extends LitElement {
201
206
  return false;
202
207
  }
203
208
 
204
- _stamp(template) {
209
+ _findSlottedElement(tagName, slot) {
210
+ if (!slot) slot = this.shadowRoot.querySelector('slot');
211
+ return slot.assignedNodes({ flatten: true })
212
+ .find(node => (node.nodeType === Node.ELEMENT_NODE && node.tagName === tagName.toUpperCase()));
213
+ }
214
+
215
+ async _processRenderers(elem) {
216
+ for (const renderer of getRenderers()) {
217
+ if (this.noDeferredRendering && !renderer.canRenderInline) continue;
218
+
219
+ if (this._contextObserverController && renderer.contextAttributes) {
220
+ const contextValues = new Map();
221
+ renderer.contextAttributes.forEach(attr => contextValues.set(attr, this._contextObserverController.values.get(attr)));
222
+ elem = await renderer.render(elem, contextValues);
223
+ } else {
224
+ elem = await renderer.render(elem);
225
+ }
226
+ }
227
+
228
+ return elem;
229
+ }
230
+
231
+ async _render(slot) {
232
+ if (this.noDeferredRendering) await this._renderInline(slot);
233
+ else this._stamp(slot);
234
+ }
235
+
236
+ async _renderInline(slot) {
237
+ const noDeferredRenderingContainer = this._findSlottedElement('DIV', slot);
238
+ if (!noDeferredRenderingContainer) return;
239
+ await this._processRenderers(noDeferredRenderingContainer);
240
+ }
241
+
242
+ _stamp(slot) {
205
243
  const stampHTML = async template => {
206
244
  const fragment = template ? document.importNode(template.content, true) : null;
207
245
  if (fragment) {
@@ -209,15 +247,7 @@ class HtmlBlock extends LitElement {
209
247
  let temp = document.createElement('div');
210
248
  temp.appendChild(fragment);
211
249
 
212
- for (const renderer of getRenderers()) {
213
- if (this._contextObserverController && renderer.contextAttributes) {
214
- const contextValues = new Map();
215
- renderer.contextAttributes.forEach(attr => contextValues.set(attr, this._contextObserverController.values.get(attr)));
216
- temp = await renderer.render(temp, contextValues);
217
- } else {
218
- temp = await renderer.render(temp);
219
- }
220
- }
250
+ temp = await this._processRenderers(temp);
221
251
  this._renderContainer.innerHTML = temp.innerHTML;
222
252
 
223
253
  } else {
@@ -225,6 +255,8 @@ class HtmlBlock extends LitElement {
225
255
  }
226
256
  };
227
257
 
258
+ const template = this._findSlottedElement('TEMPLATE', slot);
259
+
228
260
  if (this._templateObserver) this._templateObserver.disconnect();
229
261
  if (template) {
230
262
  this._templateObserver = new MutationObserver(() => stampHTML(template));
@@ -24,7 +24,7 @@
24
24
  <h2>Checkbox with multi-line label</h2>
25
25
  <d2l-demo-snippet>
26
26
  <template>
27
- <d2l-input-checkbox style="width:200px;">
27
+ <d2l-input-checkbox style="width: 200px;">
28
28
  Label for checkbox that wraps nicely onto
29
29
  multiple lines and stays aligned
30
30
  </d2l-input-checkbox>
@@ -49,7 +49,7 @@
49
49
  <d2l-demo-snippet>
50
50
  <template>
51
51
  <d2l-input-checkbox>Label for checkbox</d2l-input-checkbox>
52
- <d2l-input-checkbox-spacer style="color:#999999;">
52
+ <d2l-input-checkbox-spacer style="color: #999999;">
53
53
  Additional content can go here and will<br>
54
54
  also line up nicely with the checkbox.
55
55
  </d2l-input-checkbox-spacer>
@@ -30,7 +30,7 @@
30
30
  <d2l-demo-snippet>
31
31
  <template>
32
32
  <d2l-test-input-radio-label></d2l-test-input-radio-label>
33
- <d2l-input-radio-spacer style="color:#999999;">
33
+ <d2l-input-radio-spacer style="color: #999999;">
34
34
  Additional content can go here and will<br>
35
35
  also line up nicely with the radios.
36
36
  </d2l-input-radio-spacer>
@@ -45,10 +45,9 @@ Note: All `*value` properties should be in ISO 8601 calendar date format (`YYYY-
45
45
  ![example screenshot of date input](../screenshots/date.gif?raw=true)
46
46
  <!-- docs: end hidden content -->
47
47
 
48
- <!-- docs: demo live name:d2l-input-date align:flex-start autoSize:false size:xlarge -->
48
+ <!-- docs: demo live name:d2l-input-date align:flex-start autoOpen:true autoSize:false size:xlarge -->
49
49
  ```html
50
50
  <script type="module">
51
- import './pages/assets/open-first-item-helper.js';
52
51
  import '@brightspace-ui/core/components/inputs/input-date.js';
53
52
  </script>
54
53
  <d2l-input-date label="Birthdate">
@@ -96,10 +95,9 @@ Note: All `*value` properties should be in ISO 8601 calendar date format (`YYYY-
96
95
  ![example screenshot of date range input](../screenshots/date-range.gif?raw=true)
97
96
  <!-- docs: end hidden content -->
98
97
 
99
- <!-- docs: demo live name:d2l-input-date-range align:flex-start autoSize:false size:xlarge -->
98
+ <!-- docs: demo live name:d2l-input-date-range align:flex-start autoOpen:true autoSize:false size:xlarge -->
100
99
  ```html
101
100
  <script type="module">
102
- import './pages/assets/open-first-item-helper.js';
103
101
  import '@brightspace-ui/core/components/inputs/input-date-range.js';
104
102
  </script>
105
103
  <d2l-input-date-range label="Availability Range">
@@ -153,10 +151,9 @@ Note: All `*value` properties should be in ISO 8601 time format (`hh:mm:ss`) and
153
151
  ![example screenshot of time input](../screenshots/time.gif?raw=true)
154
152
  <!-- docs: end hidden content -->
155
153
 
156
- <!-- docs: demo live name:d2l-input-time align:flex-start autoSize:false size:large -->
154
+ <!-- docs: demo live name:d2l-input-time align:flex-start autoOpen:true autoSize:false size:large -->
157
155
  ```html
158
156
  <script type="module">
159
- import './pages/assets/open-first-item-helper.js';
160
157
  import '@brightspace-ui/core/components/inputs/input-time.js';
161
158
  </script>
162
159
  <d2l-input-time label="Time">
@@ -194,7 +191,7 @@ To make your usage of `d2l-input-time` accessible, use the following properties
194
191
  | `label-hidden` | Use if label should be visually hidden but available for screen reader users |
195
192
  | `labelled-by` | String | Use when another visible element should act as the label |
196
193
 
197
- ### Time Range Input [d2l-input-time-range]
194
+ ## Time Range Input [d2l-input-time-range]
198
195
 
199
196
  Use the `<d2l-input-time-range>` component when users need to enter two times in a range, and the date is already known. The component consists of two input-time components - one for the start of a range and one for the end of a range. Values specified for these components (through the `start-value` and/or `end-value` attributes) are displayed if specified, and selected values are reflected.
200
197
 
@@ -204,10 +201,9 @@ Note: All `*value` properties should be in ISO 8601 time format (`hh:mm:ss`) and
204
201
  ![example screenshot of time range input](../screenshots/time-range.gif?raw=true)
205
202
  <!-- docs: end hidden content -->
206
203
 
207
- <!-- docs: demo live name:d2l-input-time-range align:flex-start autoSize:false size:large -->
204
+ <!-- docs: demo live name:d2l-input-time-range align:flex-start autoOpen:true autoSize:false size:large -->
208
205
  ```html
209
206
  <script type="module">
210
- import './pages/assets/open-first-item-helper.js';
211
207
  import '@brightspace-ui/core/components/inputs/input-time-range.js';
212
208
  </script>
213
209
  <d2l-input-time-range label="Availability Range">
@@ -257,10 +253,9 @@ Note: All `*value` properties should be in ISO 8601 combined date and time forma
257
253
  ![example screenshot of date input](../screenshots/date-time.gif?raw=true)
258
254
  <!-- docs: end hidden content -->
259
255
 
260
- <!-- docs: demo live name:d2l-input-date-time align:flex-start autoSize:false size:xlarge -->
256
+ <!-- docs: demo live name:d2l-input-date-time align:flex-start autoOpen:true autoSize:false size:xlarge -->
261
257
  ```html
262
258
  <script type="module">
263
- import './pages/assets/open-first-item-helper.js';
264
259
  import '@brightspace-ui/core/components/inputs/input-date-time.js';
265
260
  </script>
266
261
  <d2l-input-date-time label="Due Date">
@@ -309,10 +304,9 @@ Note: All `*value` properties should be in ISO 8601 combined date and time forma
309
304
  ![example screenshot of date-time range input](../screenshots/date-time-range.gif?raw=true)
310
305
  <!-- docs: end hidden content -->
311
306
 
312
- <!-- docs: demo live name:d2l-input-date-time-range align:flex-start autoSize:false size:xlarge -->
307
+ <!-- docs: demo live name:d2l-input-date-time-range align:flex-start autoOpen:true autoSize:false size:xlarge -->
313
308
  ```html
314
309
  <script type="module">
315
- import './pages/assets/open-first-item-helper.js';
316
310
  import '@brightspace-ui/core/components/inputs/input-date-time-range.js';
317
311
  </script>
318
312
  <d2l-input-date-time-range label="Availability Range">
@@ -15,6 +15,7 @@ import { formatDateInISO,
15
15
  parseISOTime } from '../../helpers/dateTime.js';
16
16
  import { FormElementMixin } from '../form/form-element-mixin.js';
17
17
  import { getDefaultTime } from './input-time.js';
18
+ import { getDocumentLocaleSettings } from '@brightspace-ui/intl/lib/common.js';
18
19
  import { getUniqueId } from '../../helpers/uniqueId.js';
19
20
  import { ifDefined } from 'lit-html/directives/if-defined.js';
20
21
  import { LabelledMixin } from '../../mixins/labelled-mixin.js';
@@ -119,6 +120,7 @@ class InputDateTime extends LabelledMixin(SkeletonMixin(FormElementMixin(Localiz
119
120
  this.opened = false;
120
121
  this.required = false;
121
122
  this.timeDefaultValue = 'startOfDay';
123
+ this._documentLocaleSettings = getDocumentLocaleSettings();
122
124
  this._inputId = getUniqueId();
123
125
  this._namespace = 'components.input-date-time';
124
126
  this._preventDefaultValidation = false;
@@ -190,6 +192,16 @@ class InputDateTime extends LabelledMixin(SkeletonMixin(FormElementMixin(Localiz
190
192
  return super.validationMessage;
191
193
  }
192
194
 
195
+ connectedCallback() {
196
+ super.connectedCallback();
197
+ this._documentLocaleSettings.addChangeListener(this._handleLocaleChange.bind(this));
198
+ }
199
+
200
+ disconnectedCallback() {
201
+ super.disconnectedCallback();
202
+ this._documentLocaleSettings.removeChangeListener(this._handleLocaleChange.bind(this));
203
+ }
204
+
193
205
  firstUpdated(changedProperties) {
194
206
  super.firstUpdated(changedProperties);
195
207
 
@@ -343,6 +355,10 @@ class InputDateTime extends LabelledMixin(SkeletonMixin(FormElementMixin(Localiz
343
355
  if (tooltip) tooltip.show();
344
356
  }
345
357
 
358
+ _handleLocaleChange() {
359
+ this.requestUpdate();
360
+ }
361
+
346
362
  async _handleTimeChange(e) {
347
363
  const date = this.shadowRoot.querySelector('d2l-input-date').value;
348
364
  const time = e.target.value;
@@ -14,8 +14,8 @@
14
14
  </script>
15
15
  <style>
16
16
  img {
17
- object-fit: cover;
18
17
  height: 500px;
18
+ object-fit: cover;
19
19
  }
20
20
  d2l-list-item[slim] div {
21
21
  overflow: hidden;
@@ -21,8 +21,8 @@
21
21
  </script>
22
22
  <style>
23
23
  img {
24
- object-fit: cover;
25
24
  height: 500px;
25
+ object-fit: cover;
26
26
  }
27
27
  </style>
28
28
  </head>
@@ -17,7 +17,7 @@
17
17
  <h2>Checkbox Menu</h2>
18
18
  <d2l-demo-snippet>
19
19
  <template>
20
- <d2l-menu label="Checkbox Menu" style="max-width:400px;">
20
+ <d2l-menu label="Checkbox Menu" style="max-width: 400px;">
21
21
  <d2l-menu-item-checkbox text="Checkbox 1 with a very long title that will be cut off" value="1"></d2l-menu-item-checkbox>
22
22
  <d2l-menu-item-checkbox text="Checkbox 2" value="2"></d2l-menu-item-checkbox>
23
23
  <d2l-menu-item-checkbox text="Checkbox 3" value="3"></d2l-menu-item-checkbox>
@@ -34,7 +34,7 @@
34
34
  <h2>Supporting Slot</h2>
35
35
  <d2l-demo-snippet>
36
36
  <template>
37
- <d2l-menu label="Checkbox Menu" style="max-width:400px;">
37
+ <d2l-menu label="Checkbox Menu" style="max-width: 400px;">
38
38
  <d2l-menu-item-checkbox text="Checkbox 1" value="1">
39
39
  <div slot="supporting">1 point</div>
40
40
  </d2l-menu-item-checkbox>
@@ -22,7 +22,7 @@
22
22
 
23
23
  <d2l-demo-snippet>
24
24
  <template>
25
- <d2l-menu label="Astronomy" style="max-width:400px;">
25
+ <d2l-menu label="Astronomy" style="max-width: 400px;">
26
26
  <d2l-menu-item text="Introduction"></d2l-menu-item>
27
27
  <d2l-menu-item-separator></d2l-menu-item-separator>
28
28
  <d2l-menu-item text="Searching the Heavens"></d2l-menu-item>
@@ -37,7 +37,7 @@
37
37
  <h2>Custom View</h2>
38
38
  <d2l-demo-snippet>
39
39
  <template>
40
- <d2l-menu label="Astronomy" style="max-width:400px;">
40
+ <d2l-menu label="Astronomy" style="max-width: 400px;">
41
41
  <d2l-menu-item text="Introduction"></d2l-menu-item>
42
42
  <d2l-menu-item text="Searching the Heavens">
43
43
  <d2l-custom-view>Searching the Heavens</d2l-custom-view>
@@ -54,7 +54,7 @@
54
54
 
55
55
  <d2l-demo-snippet>
56
56
  <template>
57
- <d2l-menu label="Astronomy" style="max-width:400px;">
57
+ <d2l-menu label="Astronomy" style="max-width: 400px;">
58
58
  <d2l-menu-item text="Introduction"></d2l-menu-item>
59
59
  <d2l-menu-item-separator></d2l-menu-item-separator>
60
60
  <d2l-menu-item text="Searching the Heavens"></d2l-menu-item>
@@ -128,7 +128,7 @@
128
128
 
129
129
  <d2l-demo-snippet>
130
130
  <template>
131
- <d2l-menu label="The Solar System" style="max-width:400px;">
131
+ <d2l-menu label="The Solar System" style="max-width: 400px;">
132
132
  <d2l-menu-item text="Mercury">
133
133
  <span slot="supporting">0.39 AU</span>
134
134
  </d2l-menu-item>
@@ -17,7 +17,7 @@
17
17
  <h2>Radio Menu</h2>
18
18
  <d2l-demo-snippet>
19
19
  <template>
20
- <d2l-menu id="menu" label="Radio Menu" style="max-width:400px;">
20
+ <d2l-menu id="menu" label="Radio Menu" style="max-width: 400px;">
21
21
  <d2l-menu-item-radio text="Radio Option 1 with a very long title that will be cut off" value="1"></d2l-menu-item-radio>
22
22
  <d2l-menu-item-radio text="Radio Option 2" value="2"></d2l-menu-item-radio>
23
23
  <d2l-menu-item-radio text="Radio Option 3" value="3"></d2l-menu-item-radio>
@@ -34,7 +34,7 @@
34
34
  <h2>Supporting Slot</h2>
35
35
  <d2l-demo-snippet>
36
36
  <template>
37
- <d2l-menu id="menu" label="Radio Menu" style="max-width:400px;">
37
+ <d2l-menu id="menu" label="Radio Menu" style="max-width: 400px;">
38
38
  <d2l-menu-item-radio text="Radio Option 1" value="1">
39
39
  <div slot="supporting">1 point</div>
40
40
  </d2l-menu-item-radio>
@@ -19,11 +19,11 @@
19
19
 
20
20
  <d2l-demo-snippet>
21
21
  <template>
22
- <d2l-meter-linear value="2" max="15" style="width: 250px" text="Activities" text-inline></d2l-meter-linear>
23
- <d2l-meter-linear value="3" max="6" style="width: 200px" text="Visited: {x/y}" percent></d2l-meter-linear>
22
+ <d2l-meter-linear value="2" max="15" style="width: 250px;" text="Activities" text-inline></d2l-meter-linear>
23
+ <d2l-meter-linear value="3" max="6" style="width: 200px;" text="Visited: {x/y}" percent></d2l-meter-linear>
24
24
  <div style="background-color: darkblue;">
25
- <d2l-meter-linear value="2" max="15" style="width: 250px" text="Activities" text-inline foreground-light></d2l-meter-linear>
26
- <d2l-meter-linear value="3" max="6" style="width: 200px" text="Visited: {x/y}" percent foreground-light></d2l-meter-linear>
25
+ <d2l-meter-linear value="2" max="15" style="width: 250px;" text="Activities" text-inline foreground-light></d2l-meter-linear>
26
+ <d2l-meter-linear value="3" max="6" style="width: 200px;" text="Visited: {x/y}" percent foreground-light></d2l-meter-linear>
27
27
  </div>
28
28
  </template>
29
29
  </d2l-demo-snippet>
@@ -35,13 +35,13 @@
35
35
  <d2l-meter-radial value="5" max="13"></d2l-meter-radial>
36
36
  <d2l-meter-radial value="10" max="10"></d2l-meter-radial>
37
37
  <d2l-meter-radial value="0" max="10"></d2l-meter-radial>
38
- <d2l-meter-radial value="19" max="26" style="width:25%"></d2l-meter-radial>
38
+ <d2l-meter-radial value="19" max="26" style="width: 25%;"></d2l-meter-radial>
39
39
  <d2l-meter-radial value="5" max="10" text="Completed"></d2l-meter-radial>
40
40
  <div style="background-color: darkgreen;">
41
41
  <d2l-meter-radial value="5" max="13" foreground-light></d2l-meter-radial>
42
42
  <d2l-meter-radial value="10" max="10" foreground-light></d2l-meter-radial>
43
43
  <d2l-meter-radial value="0" max="10" foreground-light></d2l-meter-radial>
44
- <d2l-meter-radial value="19" max="26" style="width:25%" foreground-light></d2l-meter-radial>
44
+ <d2l-meter-radial value="19" max="26" style="width: 25%;" foreground-light></d2l-meter-radial>
45
45
  <d2l-meter-radial value="5" max="10" text="Completed" foreground-light></d2l-meter-radial>
46
46
  </div>
47
47
  </template>
@@ -54,12 +54,12 @@
54
54
  <d2l-meter-circle value="1" max="13"></d2l-meter-circle>
55
55
  <d2l-meter-circle value="10" max="10"></d2l-meter-circle>
56
56
  <d2l-meter-circle value="0" max="10"></d2l-meter-circle>
57
- <d2l-meter-circle value="19" max="26" style="width:25%"></d2l-meter-circle>
57
+ <d2l-meter-circle value="19" max="26" style="width: 25%;"></d2l-meter-circle>
58
58
  <div style="background-color: darkred;">
59
59
  <d2l-meter-circle value="1" max="13" foreground-light></d2l-meter-circle>
60
60
  <d2l-meter-circle value="10" max="10" foreground-light></d2l-meter-circle>
61
61
  <d2l-meter-circle value="0" max="10" foreground-light></d2l-meter-circle>
62
- <d2l-meter-circle value="19" max="26" style="width:25%" foreground-light></d2l-meter-circle>
62
+ <d2l-meter-circle value="19" max="26" style="width: 25%;" foreground-light></d2l-meter-circle>
63
63
  </div>
64
64
  </template>
65
65
  </d2l-demo-snippet>
@@ -99,7 +99,7 @@
99
99
  Pick Your Toppings
100
100
  <div class="d2l-selection-header">
101
101
  <d2l-selection-select-all selection-for="collection-1"></d2l-selection-select-all>
102
- <d2l-selection-action selection-for="collection-1" text="Add Note" icon="tier1:add-message" style="padding: 0 0.5rem; flex: 1;"></d2l-selection-action>
102
+ <d2l-selection-action selection-for="collection-1" text="Add Note" icon="tier1:add-message" style="flex: 1; padding: 0 0.5rem;"></d2l-selection-action>
103
103
  <d2l-selection-summary selection-for="collection-1"></d2l-selection-summary>
104
104
  </div>
105
105
  <d2l-demo-selection id="collection-1">