@brightspace-ui/core 3.36.6 → 3.38.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -197,6 +197,7 @@ class DialogFullscreen extends LocalizeCoreElement(AsyncContainerMixin(DialogMix
197
197
  this._handleResize = this._handleResize.bind(this);
198
198
  this._handleResize();
199
199
  this.width = 1170;
200
+ this._titleId = getUniqueId();
200
201
  }
201
202
 
202
203
  get asyncContainerCustom() {
@@ -214,7 +215,6 @@ class DialogFullscreen extends LocalizeCoreElement(AsyncContainerMixin(DialogMix
214
215
  }
215
216
 
216
217
  render() {
217
- this._width = Math.max(1170, this.width);
218
218
  const heightOverride = {} ;
219
219
  let topOverride = null;
220
220
  if (this._ifrauContextInfo) {
@@ -251,7 +251,6 @@ class DialogFullscreen extends LocalizeCoreElement(AsyncContainerMixin(DialogMix
251
251
  <div style=${styleMap(slotStyles)}><slot></slot></div>
252
252
  `;
253
253
 
254
- if (!this._titleId) this._titleId = getUniqueId();
255
254
  const inner = html`
256
255
  <div class="d2l-dialog-inner" style=${styleMap(heightOverride)}>
257
256
  <div class="d2l-dialog-header">
@@ -286,6 +285,11 @@ class DialogFullscreen extends LocalizeCoreElement(AsyncContainerMixin(DialogMix
286
285
  }
287
286
  }
288
287
 
288
+ willUpdate(changedProperties) {
289
+ super.willUpdate(changedProperties);
290
+ if (changedProperties.has('width')) this._width = Math.max(1170, this.width);
291
+ }
292
+
289
293
  _abort() {
290
294
  this._close('abort');
291
295
  }
@@ -105,6 +105,7 @@ class Dialog extends LocalizeCoreElement(AsyncContainerMixin(DialogMixin(LitElem
105
105
  this._criticalLabelId = getUniqueId();
106
106
  this._handleResize = this._handleResize.bind(this);
107
107
  this._titleId = getUniqueId();
108
+ this._textId = getUniqueId();
108
109
  }
109
110
 
110
111
  get asyncContainerCustom() {
@@ -158,7 +159,6 @@ class Dialog extends LocalizeCoreElement(AsyncContainerMixin(DialogMixin(LitElem
158
159
  'd2l-footer-no-content': !this._hasFooterContent
159
160
  };
160
161
 
161
- if (!this._textId && this.describeContent) this._textId = getUniqueId();
162
162
  const content = html`
163
163
  ${loading}
164
164
  <div id="${ifDefined(this._textId)}" style=${styleMap(slotStyles)}><slot></slot></div>
@@ -74,6 +74,7 @@ class FormErrorSummary extends LocalizeCoreElement(RtlMixin(LitElement)) {
74
74
  <d2l-button-icon
75
75
  aria-expanded=${this._expanded ? 'true' : 'false'}
76
76
  icon=${this._expanded ? 'tier1:arrow-collapse-small' : 'tier1:arrow-expand-small' }
77
+ text="${this.localize('components.form-error-summary.text')}"
77
78
  @click=${this._toggleExpandCollapse}>
78
79
  </d2l-button-icon>
79
80
  </div>
@@ -15,22 +15,23 @@ Size: `18px` x `18`px
15
15
 
16
16
  | Icon | Name | | Icon | Name | | Icon | Name |
17
17
  | :---: | :--- | --- | :---: | :--- | --- | :---: | :--- |
18
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/accessibility-check.svg?sanitize=true) | accessibility-check | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/insert-attributes.svg?sanitize=true) | insert-attributes | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-cell-properties.svg?sanitize=true) | table-cell-properties |
19
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/align-center.svg?sanitize=true) | align-center | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/insert-emoticon.svg?sanitize=true) | insert-emoticon | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-cell-split.svg?sanitize=true) | table-cell-split |
20
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/align-full.svg?sanitize=true) | align-full | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/italic.svg?sanitize=true) | italic | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-column-insert-after.svg?sanitize=true) | table-column-insert-after |
21
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/align-left.svg?sanitize=true) | align-left | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/link.svg?sanitize=true) | link | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-column-insert-before.svg?sanitize=true) | table-column-insert-before |
22
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/align-right.svg?sanitize=true) | align-right | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/list-bullet.svg?sanitize=true) | list-bullet | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-column-remove.svg?sanitize=true) | table-column-remove |
23
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/bold.svg?sanitize=true) | bold | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/list-ordered.svg?sanitize=true) | list-ordered | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-delete.svg?sanitize=true) | table-delete |
24
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/cut.svg?sanitize=true) | cut | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/media.svg?sanitize=true) | media | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-properties.svg?sanitize=true) | table-properties |
25
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/direction-ltr.svg?sanitize=true) | direction-ltr | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/new-line.svg?sanitize=true) | new-line | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-copy.svg?sanitize=true) | table-row-copy |
26
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/direction-rtl.svg?sanitize=true) | direction-rtl | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/paste.svg?sanitize=true) | paste | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-cut.svg?sanitize=true) | table-row-cut |
27
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/equation-graphical-chemistry.svg?sanitize=true) | equation-graphical-chemistry | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/source-editor.svg?sanitize=true) | source-editor | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-insert-after.svg?sanitize=true) | table-row-insert-after |
28
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/equation-graphical.svg?sanitize=true) | equation-graphical | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/spellcheck.svg?sanitize=true) | spellcheck | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-insert-before.svg?sanitize=true) | table-row-insert-before |
29
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/equation-latex.svg?sanitize=true) | equation-latex | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/strikethrough.svg?sanitize=true) | strikethrough | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-paste-above.svg?sanitize=true) | table-row-paste-above |
30
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/equation-mathml.svg?sanitize=true) | equation-mathml | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/subscript.svg?sanitize=true) | subscript | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-paste-below.svg?sanitize=true) | table-row-paste-below |
31
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/image.svg?sanitize=true) | image | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/superscript.svg?sanitize=true) | superscript | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-properties.svg?sanitize=true) | table-row-properties |
32
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/indent-decrease.svg?sanitize=true) | indent-decrease | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/symbol.svg?sanitize=true) | symbol | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-remove.svg?sanitize=true) | table-row-remove |
33
- | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/indent-increase.svg?sanitize=true) | indent-increase | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-cell-merge.svg?sanitize=true) | table-cell-merge | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/underline.svg?sanitize=true) | underline |
18
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/accessibility-check.svg?sanitize=true) | accessibility-check | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/insert-attributes.svg?sanitize=true) | insert-attributes | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-cell-split.svg?sanitize=true) | table-cell-split |
19
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/align-center.svg?sanitize=true) | align-center | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/insert-emoticon.svg?sanitize=true) | insert-emoticon | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-column-insert-after.svg?sanitize=true) | table-column-insert-after |
20
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/align-full.svg?sanitize=true) | align-full | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/italic.svg?sanitize=true) | italic | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-column-insert-before.svg?sanitize=true) | table-column-insert-before |
21
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/align-left.svg?sanitize=true) | align-left | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/link.svg?sanitize=true) | link | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-column-remove.svg?sanitize=true) | table-column-remove |
22
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/align-right.svg?sanitize=true) | align-right | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/list-bullet.svg?sanitize=true) | list-bullet | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-delete.svg?sanitize=true) | table-delete |
23
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/bold.svg?sanitize=true) | bold | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/list-ordered.svg?sanitize=true) | list-ordered | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-properties.svg?sanitize=true) | table-properties |
24
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/cut.svg?sanitize=true) | cut | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/media.svg?sanitize=true) | media | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-copy.svg?sanitize=true) | table-row-copy |
25
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/direction-ltr.svg?sanitize=true) | direction-ltr | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/new-line.svg?sanitize=true) | new-line | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-cut.svg?sanitize=true) | table-row-cut |
26
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/direction-rtl.svg?sanitize=true) | direction-rtl | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/paste.svg?sanitize=true) | paste | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-insert-after.svg?sanitize=true) | table-row-insert-after |
27
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/equation-graphical-chemistry.svg?sanitize=true) | equation-graphical-chemistry | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/source-editor.svg?sanitize=true) | source-editor | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-insert-before.svg?sanitize=true) | table-row-insert-before |
28
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/equation-graphical.svg?sanitize=true) | equation-graphical | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/spellcheck.svg?sanitize=true) | spellcheck | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-paste-above.svg?sanitize=true) | table-row-paste-above |
29
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/equation-latex.svg?sanitize=true) | equation-latex | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/strikethrough.svg?sanitize=true) | strikethrough | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-paste-below.svg?sanitize=true) | table-row-paste-below |
30
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/equation-mathml.svg?sanitize=true) | equation-mathml | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/subscript.svg?sanitize=true) | subscript | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-properties.svg?sanitize=true) | table-row-properties |
31
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/h5p.svg?sanitize=true) | h5p | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/superscript.svg?sanitize=true) | superscript | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-row-remove.svg?sanitize=true) | table-row-remove |
32
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/image.svg?sanitize=true) | image | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/symbol.svg?sanitize=true) | symbol | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/underline.svg?sanitize=true) | underline |
33
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/indent-decrease.svg?sanitize=true) | indent-decrease | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-cell-merge.svg?sanitize=true) | table-cell-merge | | &nbsp; | &nbsp; |
34
+ | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/indent-increase.svg?sanitize=true) | indent-increase | | ![](https://raw.githubusercontent.com/BrightspaceUI/core/main/components/icons/images/html-editor/table-cell-properties.svg?sanitize=true) | table-cell-properties | | &nbsp; | &nbsp; |
34
35
 
35
36
  ## tier1
36
37
 
@@ -0,0 +1,4 @@
1
+ <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17.336 5.636C16.896 5.212 16.226 5 15.34 5h-2.992v1.686h-3.59l-.294 1.208c.245-.114.593-.229.832-.288.24-.06.479-.05.713-.05.794 0 1.441.245 1.936.724.495.479.74 1.088.74 1.817 0 .511-.125 1.006-.38 1.48a2.61 2.61 0 0 1-1.083 1.088 2.815 2.815 0 0 1-.555.223h3.041v-2.883h1.36c.99 0 1.724-.229 2.208-.68.484-.452.724-1.083.724-1.883 0-.777-.223-1.381-.664-1.806Zm-2.013 2.497c-.19.163-.522.24-.995.24h-.62V6.632h.718c.457 0 .772.082.935.256a.85.85 0 0 1 .25.625.776.776 0 0 1-.288.62Z" fill="#494C4E"/>
3
+ <path d="M9.22 8.987c-.43 0-.8.25-.979.61l-2.149-.305L7.061 5H5.113v3.373h-2.72V5H0v7.888h2.393v-2.883h2.72v2.883h2.949c-.365-.11-.68-.25-.936-.441a2.642 2.642 0 0 1-.636-.67 3.275 3.275 0 0 1-.398-.897l2.155-.31c.18.36.549.604.973.604a1.093 1.093 0 0 0 0-2.187Z" fill="#494C4E"/>
4
+ </svg>
@@ -178,6 +178,11 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
178
178
  return 'd2l-input-text';
179
179
  }
180
180
 
181
+ /** @ignore */
182
+ get inputTextWidth() {
183
+ return `calc(${this._hiddenContentWidth} + 0.75rem + 3px)`; // text and icon width + paddingRight + border width + 1
184
+ }
185
+
181
186
  /** @ignore */
182
187
  get validationMessage() {
183
188
  if (this.validity.rangeOverflow || this.validity.rangeUnderflow) {
@@ -238,9 +243,7 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
238
243
 
239
244
  render() {
240
245
  const formattedWideDate = formatISODateInUserCalDescriptor('2323-12-23');
241
- const inputTextWidth = `calc(${this._hiddenContentWidth} + 0.75rem + 3px)`; // text and icon width + paddingRight + border width + 1
242
246
  const shortDateFormat = (this._dateTimeDescriptor.formats.dateFormats.short).toUpperCase();
243
- this.style.maxWidth = inputTextWidth;
244
247
 
245
248
  const clearButton = !this.required ? html`<d2l-button-subtle text="${this.localize(`${this._namespace}.clear`)}" @click="${this._handleClear}"></d2l-button-subtle>` : null;
246
249
  const nowButton = this.hasNow ? html`<d2l-button-subtle text="${this.localize(`${this._namespace}.now`)}" @click="${this._handleSetToNow}"></d2l-button-subtle>` : null;
@@ -304,7 +307,7 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
304
307
  placeholder="${shortDateFormat}"
305
308
  ?required="${this.required}"
306
309
  ?skeleton="${this.skeleton}"
307
- style="${styleMap({ maxWidth: inputTextWidth })}"
310
+ style="${styleMap({ maxWidth: this.inputTextWidth })}"
308
311
  .value="${this._formattedValue}">
309
312
  ${icon}
310
313
  <slot slot="inline-help" name="inline-help"></slot>
@@ -339,6 +342,11 @@ class InputDate extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(
339
342
  });
340
343
  }
341
344
 
345
+ willUpdate(changedProperties) {
346
+ super.willUpdate(changedProperties);
347
+ if (changedProperties.has('_hiddenContentWidth')) this.style.maxWidth = this.inputTextWidth;
348
+ }
349
+
342
350
  async validate() {
343
351
  if (!this.shadowRoot) return;
344
352
  const textInput = this.shadowRoot.querySelector('d2l-input-text');
@@ -329,11 +329,9 @@ class InputTime extends InputInlineHelpMixin(FocusMixin(LabelledMixin(SkeletonMi
329
329
  `)}` : null;
330
330
  const formattedWideTimeAM = formatTime(new Date(2020, 0, 1, 10, 23, 0));
331
331
  const formattedWideTimePM = formatTime(new Date(2020, 0, 1, 23, 23, 0));
332
- const inputTextWidth = `calc(${this._hiddenContentWidth} + 1.5rem + 3px)`; // text and icon width + left & right padding + border width + 1
333
332
  const opened = this.opened && !this.disabled && !this.skeleton;
334
333
  const dropdownIdTimezone = `${this._dropdownId}-timezone`;
335
334
  const ariaDescribedByIds = `${this._dropdownId ? dropdownIdTimezone : ''} ${this._hasInlineHelp ? this._inlineHelpId : ''}`.trim();
336
- this.style.maxWidth = inputTextWidth;
337
335
 
338
336
  return html`
339
337
  <div aria-hidden="true" class="d2l-input-time-hidden-content">
@@ -393,6 +391,11 @@ class InputTime extends InputInlineHelpMixin(FocusMixin(LabelledMixin(SkeletonMi
393
391
  });
394
392
  }
395
393
 
394
+ willUpdate(changedProperties) {
395
+ super.willUpdate(changedProperties);
396
+ this.style.maxWidth = `calc(${this._hiddenContentWidth} + 1.5rem + 3px)`; // text and icon width + left & right padding + border width + 1
397
+ }
398
+
396
399
  getTime() {
397
400
  const time = getDateFromISOTime(this.value);
398
401
  return {
@@ -36,8 +36,9 @@ export class SkeletonTestLink extends SkeletonMixin(LitElement) {
36
36
  'd2l-link-small': this.type === 'small',
37
37
  'd2l-skeletize': true
38
38
  };
39
+ const widthSkeletonSize = `d2l-skeletize-${this.width}`;
39
40
  if (this.width !== undefined) {
40
- classes[`d2l-skeletize-${this.width}`] = true;
41
+ classes[widthSkeletonSize] = true;
41
42
  }
42
43
  return html`<a href="https://d2l.com" class="${classMap(classes)}">Link (${this.type})</a>`;
43
44
  }
@@ -259,6 +259,11 @@ export const tableStyles = css`
259
259
  }
260
260
  `;
261
261
 
262
+ const SELECTORS = {
263
+ headers: 'tr.d2l-table-header, tr[header], thead tr',
264
+ items: ':not(thead) > tr:not(.d2l-table-header):not([header])',
265
+ };
266
+
262
267
  /**
263
268
  * Wraps a native <table> element, providing styling and scroll buttons for overflow.
264
269
  * @slot - Content to wrap
@@ -486,7 +491,7 @@ export class TableWrapper extends RtlMixin(PageableMixin(SelectionMixin(LitEleme
486
491
  }
487
492
 
488
493
  _getItems() {
489
- return this._table?.querySelectorAll(':not(thead) > tr:not(.d2l-table-header):not([header])') || [];
494
+ return this._table?.querySelectorAll(SELECTORS.items) || [];
490
495
  }
491
496
 
492
497
  _getItemShowingCount() {
@@ -574,13 +579,37 @@ export class TableWrapper extends RtlMixin(PageableMixin(SelectionMixin(LitEleme
574
579
  this._handleTableChange();
575
580
  }
576
581
 
577
- async _handleTableChange() {
582
+ async _handleTableChange(mutationRecords) {
583
+ const flag = window.D2L?.LP?.Web?.UI?.Flags.Flag('table-update-filter-GAUD-6955', true) ?? true;
584
+ const updates = { count: true, classNames: true, sticky: true, syncWidths: true };
585
+ if (flag) {
586
+ if (mutationRecords) {
587
+ for (const key in updates) updates[key] = false;
588
+ for (const { type, removedNodes, addedNodes, target, attributeName } of mutationRecords) {
589
+ if (type === 'attributes') {
590
+ updates.classNames = attributeName === 'selected';
591
+ continue;
592
+ }
593
+
594
+ updates.sticky ||= target.matches(SELECTORS.headers);
595
+ const affectedNodes = [...removedNodes, ...addedNodes];
596
+ for (const node of affectedNodes) {
597
+ if (!(node instanceof Element)) continue;
598
+ updates.classNames ||= node.matches('tr');
599
+ updates.syncWidths ||= node.matches('tr');
600
+ updates.sticky ||= node.matches(SELECTORS.headers);
601
+ updates.count ||= node.matches(SELECTORS.items);
602
+ }
603
+ }
604
+ }
605
+ }
606
+
578
607
  await new Promise(resolve => requestAnimationFrame(resolve));
579
608
 
580
- this._updateItemShowingCount();
581
- this._applyClassNames();
582
- this._syncColumnWidths();
583
- this._updateStickyTops();
609
+ if (updates.count) this._updateItemShowingCount();
610
+ if (updates.classNames) this._applyClassNames();
611
+ if (updates.syncWidths) this._syncColumnWidths();
612
+ if (updates.sticky) this._updateStickyTops();
584
613
  }
585
614
 
586
615
  _registerMutationObserver(observerName, callback, target, options) {
@@ -721,7 +750,7 @@ export class TableWrapper extends RtlMixin(PageableMixin(SelectionMixin(LitEleme
721
750
 
722
751
  if (!this._table || !this.stickyHeaders || this.stickyHeadersScrollWrapper) return;
723
752
 
724
- const stickyRows = Array.from(this._table.querySelectorAll('tr.d2l-table-header, tr[header], thead tr'));
753
+ const stickyRows = Array.from(this._table.querySelectorAll(SELECTORS.headers));
725
754
  stickyRows.forEach(r => {
726
755
  const thTop = hasStickyControls ? `${rowTop}px` : `calc(${rowTop}px + var(--d2l-table-border-radius-sticky-offset, 0px))`;
727
756
  const ths = Array.from(r.querySelectorAll('th'));
@@ -0,0 +1,6 @@
1
+ // auto-generated
2
+ export const val = `<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M17.336 5.636C16.896 5.212 16.226 5 15.34 5h-2.992v1.686h-3.59l-.294 1.208c.245-.114.593-.229.832-.288.24-.06.479-.05.713-.05.794 0 1.441.245 1.936.724.495.479.74 1.088.74 1.817 0 .511-.125 1.006-.38 1.48a2.61 2.61 0 0 1-1.083 1.088 2.815 2.815 0 0 1-.555.223h3.041v-2.883h1.36c.99 0 1.724-.229 2.208-.68.484-.452.724-1.083.724-1.883 0-.777-.223-1.381-.664-1.806Zm-2.013 2.497c-.19.163-.522.24-.995.24h-.62V6.632h.718c.457 0 .772.082.935.256a.85.85 0 0 1 .25.625.776.776 0 0 1-.288.62Z" fill="#494C4E"/>
4
+ <path d="M9.22 8.987c-.43 0-.8.25-.979.61l-2.149-.305L7.061 5H5.113v3.373h-2.72V5H0v7.888h2.393v-2.883h2.72v2.883h2.949c-.365-.11-.68-.25-.936-.441a2.642 2.642 0 0 1-.636-.67 3.275 3.275 0 0 1-.398-.897l2.155-.31c.18.36.549.604.973.604a1.093 1.093 0 0 0 0-2.187Z" fill="#494C4E"/>
5
+ </svg>
6
+ `;
@@ -39,6 +39,8 @@ export function loadSvg(icon) {
39
39
  return import(/* webpackChunkName: "icon-equation-latex" */'./html-editor/equation-latex.js');
40
40
  case 'html-editor:equation-mathml':
41
41
  return import(/* webpackChunkName: "icon-equation-mathml" */'./html-editor/equation-mathml.js');
42
+ case 'html-editor:h5p':
43
+ return import(/* webpackChunkName: "icon-h5p" */'./html-editor/h5p.js');
42
44
  case 'html-editor:image':
43
45
  return import(/* webpackChunkName: "icon-image" */'./html-editor/image.js');
44
46
  case 'html-editor:indent-decrease':
package/lang/ar.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "عنوان URL غير صالح",
45
45
  "components.form-element.valueMissing": "{label} مطلوبة.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {تم العثور على {count} خطأ في المعلومات التي أرسلتها} other {تم العثور على {count} من الأخطاء في المعلومات التي أرسلتها}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "لون الخلفية",
48
49
  "components.input-color.foregroundColor": "لون المقدمة",
49
50
  "components.input-color.none": "لا شيء",
package/lang/cy.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "Nid yw'r URL yn ddilys.",
45
45
  "components.form-element.valueMissing": "Mae angen {label}.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Canfuwyd {count} gwall yn y wybodaeth a gyflwynoch} other {Canfuwyd {count} gwall yn y wybodaeth a gyflwynoch}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Lliw Cefndir",
48
49
  "components.input-color.foregroundColor": "Lliw Blaendir",
49
50
  "components.input-color.none": "Dim",
package/lang/da.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL-adresse er ikke gyldig",
45
45
  "components.form-element.valueMissing": "{label} er påkrævet.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Der blev fundet {count} fejl i de oplysninger, du indsendte} other {Der blev fundet {count} fejl i de oplysninger, du indsendte}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Baggrundsfarve",
48
49
  "components.input-color.foregroundColor": "Forgrundsfarve",
49
50
  "components.input-color.none": "Ingen",
package/lang/de.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL ist ungültig",
45
45
  "components.form-element.valueMissing": "{label} ist erforderlich.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Die von Ihnen übermittelten Informationen enthalten {count} Fehler} other {Die von Ihnen übermittelten Informationen enthalten {count} Fehler}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Hintergrundfarbe",
48
49
  "components.input-color.foregroundColor": "Vordergrundfarbe",
49
50
  "components.input-color.none": "Keine",
package/lang/en-gb.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL is not valid",
45
45
  "components.form-element.valueMissing": "{label} is required.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {There was {count} error found in the information you submitted} other {There were {count} errors found in the information you submitted}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Background Colour",
48
49
  "components.input-color.foregroundColor": "Foreground Colour",
49
50
  "components.input-color.none": "None",
package/lang/en.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL is not valid",
45
45
  "components.form-element.valueMissing": "{label} is required.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {There was {count} error found in the information you submitted} other {There were {count} errors found in the information you submitted}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Background Color",
48
49
  "components.input-color.foregroundColor": "Foreground Color",
49
50
  "components.input-color.none": "None",
package/lang/es-es.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "La dirección URL no es válida",
45
45
  "components.form-element.valueMissing": "{label} es obligatorio.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Se ha encontrado {count} error en la información que ha enviado} other {Se han encontrado {count} errores en la información que ha enviado}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Color de fondo",
48
49
  "components.input-color.foregroundColor": "Color del primer plano",
49
50
  "components.input-color.none": "Ninguno",
package/lang/es.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "La dirección URL no es válida",
45
45
  "components.form-element.valueMissing": "{label} es obligatoria.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Se encontró {count} error en la información que envió} other {Se encontraron {count} errores en la información que envió}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Color de fondo",
48
49
  "components.input-color.foregroundColor": "Color del primer plano",
49
50
  "components.input-color.none": "Ninguno",
package/lang/fr-fr.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL non valide",
45
45
  "components.form-element.valueMissing": "{label} est obligatoire.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {{count} erreur trouvée dans les informations soumises} other {{count} erreurs trouvées dans les informations soumises}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Couleur de l’arrière-plan",
48
49
  "components.input-color.foregroundColor": "Couleur de l’avant-plan",
49
50
  "components.input-color.none": "Aucune",
package/lang/fr.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "L'URL n'est pas valide",
45
45
  "components.form-element.valueMissing": "{label} est requis.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Il y avait {count} erreur trouvée dans les informations que vous avez soumises} other {Il y avait {count} erreurs trouvées dans les informations que vous avez soumises}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Couleur d’arrière-plan",
48
49
  "components.input-color.foregroundColor": "Couleur de l'avant-plan",
49
50
  "components.input-color.none": "Aucun",
package/lang/hi.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL मान्य नहीं है",
45
45
  "components.form-element.valueMissing": "{label} आवश्यक है।",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {आपके द्वारा सबमिट की गई जानकारी में {count} त्रुटियाँ पाई गईं} other {आपके द्वारा सबमिट की गई जानकारी में {count} त्रुटियाँ पाई गईं}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "पृष्ठभूमि का रंग",
48
49
  "components.input-color.foregroundColor": "अग्रभूमि का रंग",
49
50
  "components.input-color.none": "कोई नहीं",
package/lang/ja.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL が有効ではありません",
45
45
  "components.form-element.valueMissing": "{label} は必須です。",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, other {送信した情報に {count} 件のエラーが見つかりました}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "背景色",
48
49
  "components.input-color.foregroundColor": "前景色",
49
50
  "components.input-color.none": "なし",
package/lang/ko.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL이 유효하지 않습니다",
45
45
  "components.form-element.valueMissing": "{label}이(가) 필요합니다.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, other {제출한 정보에서 {count}개의 오류가 발견되었습니다}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "배경 색상",
48
49
  "components.input-color.foregroundColor": "전경 색상",
49
50
  "components.input-color.none": "없음",
package/lang/nl.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL is niet geldig",
45
45
  "components.form-element.valueMissing": "{label} is vereist.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Er is {count} fout gevonden in de informatie die u hebt ingediend} other {Er zijn {count} fouten gevonden in de informatie die u hebt ingediend}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Achtergrondkleur",
48
49
  "components.input-color.foregroundColor": "Voorgrondkleur",
49
50
  "components.input-color.none": "Geen",
package/lang/pt.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL inválido",
45
45
  "components.form-element.valueMissing": "{label} é obrigatório.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {{count} erro foi encontrado nas informações enviadas} other {{count} erros foram encontrados nas informações enviadas}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Cor do Plano de fundo",
48
49
  "components.input-color.foregroundColor": "Cor do Primeiro plano",
49
50
  "components.input-color.none": "Nenhum",
package/lang/sv.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL är inte giltigt",
45
45
  "components.form-element.valueMissing": "{label} krävs.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Det finns {count} fel i informationen som du skickade} other {Det finns {count} fel i informationen som du skickade}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Bakgrundsfärg",
48
49
  "components.input-color.foregroundColor": "Förgrundsfärg",
49
50
  "components.input-color.none": "Inga",
package/lang/tr.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL geçerli değil",
45
45
  "components.form-element.valueMissing": "{label} zorunludur.",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, one {Gönderdiğiniz bilgilerde {count} hata bulundu} other {Gönderdiğiniz bilgilerde {count} hata bulundu}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "Arka Plan Rengi",
48
49
  "components.input-color.foregroundColor": "Ön Plan Rengi",
49
50
  "components.input-color.none": "Yok",
package/lang/zh-cn.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL 无效",
45
45
  "components.form-element.valueMissing": "{label} 为必填项。",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, other {在您提交的信息中发现 {count} 个错误}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "背景颜色",
48
49
  "components.input-color.foregroundColor": "前景颜色",
49
50
  "components.input-color.none": "无",
package/lang/zh-tw.js CHANGED
@@ -44,6 +44,7 @@ export default {
44
44
  "components.form-element.input.url.typeMismatch": "URL 無效",
45
45
  "components.form-element.valueMissing": "{label} 為必填。",
46
46
  "components.form-error-summary.errorSummary": "{count, plural, other {您提交的資訊中發現 {count} 個錯誤}}",
47
+ "components.form-error-summary.text": "Toggle error details",
47
48
  "components.input-color.backgroundColor": "背景顏色",
48
49
  "components.input-color.foregroundColor": "前景顏色",
49
50
  "components.input-color.none": "無",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspace-ui/core",
3
- "version": "3.36.6",
3
+ "version": "3.38.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",
@@ -997,6 +997,7 @@ class TemplatePrimarySecondary extends RtlMixin(LocalizeCoreElement(LitElement))
997
997
  }
998
998
 
999
999
  disconnectedCallback() {
1000
+ super.disconnectedCallback();
1000
1001
  for (const resizer of this._resizers) {
1001
1002
  resizer.disconnect();
1002
1003
  }
@@ -1021,7 +1022,8 @@ class TemplatePrimarySecondary extends RtlMixin(LocalizeCoreElement(LitElement))
1021
1022
  const size = this._size ?? 0;
1022
1023
  const secondaryPanelStyles = {};
1023
1024
  if (this._isResizable()) {
1024
- secondaryPanelStyles[this._isMobile ? 'height' : 'width'] = `${size}px`;
1025
+ const dimension = this._isMobile ? 'height' : 'width';
1026
+ secondaryPanelStyles[dimension] = `${size}px`;
1025
1027
  }
1026
1028
  const scrollClasses = {
1027
1029
  'd2l-template-scroll': isWindows