@brightspace-ui/core 2.153.1 → 2.154.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.
@@ -44,6 +44,20 @@
44
44
  </template>
45
45
  </d2l-demo-snippet>
46
46
 
47
+ <h2>Opens in a New Window</h2>
48
+ <d2l-demo-snippet>
49
+ <template>
50
+ <d2l-link target="_blank" href="https://www.d2l.com">Standard New Window Link</d2l-link>
51
+ </template>
52
+ </d2l-demo-snippet>
53
+
54
+ <h2>Small Opens in a New Window</h2>
55
+ <d2l-demo-snippet>
56
+ <template>
57
+ <d2l-link small target="_blank" main href="https://www.d2l.com">New Window Link</d2l-link>
58
+ </template>
59
+ </d2l-demo-snippet>
60
+
47
61
  <h2>Inline</h2>
48
62
  <d2l-demo-snippet>
49
63
  <template>
@@ -1,9 +1,12 @@
1
1
  import '../colors/colors.js';
2
- import { css, html, LitElement, unsafeCSS } from 'lit';
2
+ import '../icons/icon.js';
3
+ import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
3
4
  import { classMap } from 'lit/directives/class-map.js';
4
5
  import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
5
6
  import { getFocusPseudoClass } from '../../helpers/focus.js';
6
7
  import { ifDefined } from 'lit/directives/if-defined.js';
8
+ import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
9
+ import { offscreenStyles } from '../offscreen/offscreen.js';
7
10
  import { styleMap } from 'lit/directives/style-map.js';
8
11
 
9
12
  export const linkStyles = css`
@@ -50,7 +53,7 @@ export const linkStyles = css`
50
53
  * This component can be used just like the native anchor tag.
51
54
  * @slot - The content (e.g., text) that when selected causes navigation
52
55
  */
53
- class Link extends FocusMixin(LitElement) {
56
+ class Link extends LocalizeCoreElement(FocusMixin(LitElement)) {
54
57
 
55
58
  static get properties() {
56
59
  return {
@@ -93,7 +96,7 @@ class Link extends FocusMixin(LitElement) {
93
96
  }
94
97
 
95
98
  static get styles() {
96
- return [ linkStyles,
99
+ return [ linkStyles, offscreenStyles,
97
100
  css`
98
101
  :host {
99
102
  display: inline;
@@ -115,6 +118,23 @@ class Link extends FocusMixin(LitElement) {
115
118
  overflow: hidden;
116
119
  overflow-wrap: anywhere;
117
120
  }
121
+ d2l-icon {
122
+ color: var(--d2l-color-celestine);
123
+ height: 0.95em;
124
+ margin-inline-start: 0.315em;
125
+ vertical-align: inherit;
126
+ width: 0.95em;
127
+ }
128
+
129
+ a:hover d2l-icon {
130
+ --d2l-icon-fill-color: var(--d2l-color-celestine-minus-1);
131
+ }
132
+
133
+ @media print {
134
+ d2l-icon {
135
+ display: none;
136
+ }
137
+ }
118
138
  `
119
139
  ];
120
140
  }
@@ -138,14 +158,19 @@ class Link extends FocusMixin(LitElement) {
138
158
  'd2l-link-small': this.small,
139
159
  'truncate': this.lines > 0
140
160
  };
141
- const styles = (this.lines > 0) ? { '-webkit-line-clamp': this.lines } : {};
161
+ const styles = { webkitLineClamp: this.lines || null };
162
+ const newWindowElements = (this.target === '_blank')
163
+ ? html`<span style="white-space: nowrap; line-height: 0;"><span style="font-size: 0;">&nbsp;</span><d2l-icon icon="tier1:new-window"></d2l-icon></span><span class="d2l-offscreen">${this.localize('components.link.open-in-new-window')}</span>`
164
+ : nothing;
165
+
142
166
  return html`<a
143
167
  aria-label="${ifDefined(this.ariaLabel)}"
144
168
  class="${classMap(linkClasses)}"
145
169
  style="${styleMap(styles)}"
146
170
  ?download="${this.download}"
147
171
  href="${ifDefined(this.href)}"
148
- target="${ifDefined(this.target)}"><slot></slot></a>`;
172
+ target="${ifDefined(this.target)}"
173
+ ><slot></slot>${newWindowElements}</a>`;
149
174
  }
150
175
 
151
176
  }
@@ -991,6 +991,13 @@ class Tooltip extends RtlMixin(LitElement) {
991
991
  target.appendChild(cloneContainer);
992
992
  await this.updateComplete;
993
993
 
994
+ // if the clone is a web component it needs to update to fill in any slots
995
+ const customElm = customElements.get(clone.localName);
996
+ if (customElm !== undefined) {
997
+ clone.requestUpdate();
998
+ await clone.updateComplete;
999
+ }
1000
+
994
1001
  this._truncating = clone.scrollWidth > target.offsetWidth;
995
1002
  this._resizeRunSinceTruncationCheck = false;
996
1003
  target.removeChild(cloneContainer);
@@ -7665,6 +7665,10 @@
7665
7665
  "description": "The number of lines to display before truncating text with an ellipsis. The text will not be truncated unless a value is specified.",
7666
7666
  "type": "number",
7667
7667
  "default": "0"
7668
+ },
7669
+ {
7670
+ "name": "documentLocaleSettings",
7671
+ "default": "\"getDocumentLocaleSettings()\""
7668
7672
  }
7669
7673
  ],
7670
7674
  "slots": [
package/lang/ar.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "يجب أن يكون تاريخ {startLabel} قبل {endLabel}",
67
67
  "components.input-time-range.startTime": "وقت البدء",
68
68
  "components.interactive.instructions": "اضغط على Enter للتفاعل، وEscape للخروج",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "إجراءات القائمة",
70
71
  "components.list-item-drag-handle.default": "إعادة ترتيب إجراء المادة لـ {name}",
71
72
  "components.list-item-drag-handle.keyboard": "إعادة ترتيب المواد، الموضع الحالي {currentPosition} من أصل {size}. لنقل هذه المادة، اضغط على السهم المتجه إلى أعلى أو السهم المتجه إلى أسفل.",
package/lang/cy.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "Rhaid i {startLabel} fod cyn {endLabel}",
67
67
  "components.input-time-range.startTime": "Amser Dechrau",
68
68
  "components.interactive.instructions": "Pwyswch Enter i ryngweithio, Escape i adael",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Camau gweithredu ar gyfer rhestr",
70
71
  "components.list-item-drag-handle.default": "Aildrefnu gweithred eitem ar gyfer {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Aildrefnu eitemau, safle presennol {currentPosition} allan o {size}. I symud yr eitem hon, pwyswch y saeth i fyny neu'r saeth i lawr.",
package/lang/da.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} skal være før {endLabel}",
67
67
  "components.input-time-range.startTime": "Starttidspunkt",
68
68
  "components.interactive.instructions": "Tryk på Enter for at interagere, Escape for at afslutte",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Handlinger for liste",
70
71
  "components.list-item-drag-handle.default": "Omarranger elementhandling for {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Omarranger element, aktuel position {currentPosition} ud af {size}. For at flytte dette element skal du trykke på pil op eller pil ned.",
package/lang/de.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} muss vor {endLabel} liegen",
67
67
  "components.input-time-range.startTime": "Startzeit",
68
68
  "components.interactive.instructions": "Drücken Sie die Eingabetaste zum Interagieren oder die Escape-Taste, um das Fenster zu schließen",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Aktionen für Liste",
70
71
  "components.list-item-drag-handle.default": "Elementaktion für {name} neu anordnen",
71
72
  "components.list-item-drag-handle.keyboard": "Elemente neu anordnen; aktuelle Position: {currentPosition} von {size}. Drücken Sie zum Bewegen dieses Elements auf den Pfeil nach oben oder den Pfeil nach unten.",
package/lang/en-gb.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} must be before {endLabel}",
67
67
  "components.input-time-range.startTime": "Start Time",
68
68
  "components.interactive.instructions": "Press Enter to interact, Escape to exit",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Actions for list",
70
71
  "components.list-item-drag-handle.default": "Reorder item action for {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Reorder item, current position {currentPosition} out of {size}. To move this item, press up or down arrows.",
package/lang/en.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} must be before {endLabel}",
67
67
  "components.input-time-range.startTime": "Start Time",
68
68
  "components.interactive.instructions": "Press Enter to interact, Escape to exit",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Actions for list",
70
71
  "components.list-item-drag-handle.default": "Reorder item action for {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Reorder item, current position {currentPosition} out of {size}. To move this item, press up or down arrows.",
package/lang/es-es.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} debe ser anterior a {endLabel}",
67
67
  "components.input-time-range.startTime": "Hora de inicio",
68
68
  "components.interactive.instructions": "Pulse Enter para interactuar y Escape para salir",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Acciones para la lista",
70
71
  "components.list-item-drag-handle.default": "Reordenar acción de elemento para {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Reordenar elementos, posición actual {currentPosition} de {size}. Para mover este elemento, pulse las flechas arriba o abajo.",
package/lang/es.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} debe estar antes de {endLabel}",
67
67
  "components.input-time-range.startTime": "Hora de inicio",
68
68
  "components.interactive.instructions": "Presione Intro para interactuar y Escape para salir",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Acciones para la lista",
70
71
  "components.list-item-drag-handle.default": "Acción de reordenar elemento de {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Reordenar elemento, posición actual {currentPosition} de {size}. Para mover este elemento, presione las flechas hacia arriba o hacia abajo.",
package/lang/fr-fr.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} doit être antérieur à {endLabel}",
67
67
  "components.input-time-range.startTime": "Heure de début",
68
68
  "components.interactive.instructions": "Appuyer sur entrée pour interagir, sur Echap pour quitter",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Actions pour la liste",
70
71
  "components.list-item-drag-handle.default": "Action de réorganisation de l'élément pour {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Réordonner les éléments, position actuelle {currentPosition} sur {size}. Pour déplacer cet élément, appuyez sur les flèches vers le haut ou vers le bas.",
package/lang/fr.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} doit précéder {endLabel}",
67
67
  "components.input-time-range.startTime": "Heure de début",
68
68
  "components.interactive.instructions": "Appuyez sur Entrée pour interagir, sur Échapper pour quitter",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Actions pour la liste",
70
71
  "components.list-item-drag-handle.default": "Réordonner l'action de l'élément pour {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Réorganiser les éléments, position actuelle {currentPosition} de {size}. Pour déplacer cet élément, utilisez les flèches vers le haut et vers le bas.",
package/lang/hi.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} {endLabel} से पहले का होना चाहिए",
67
67
  "components.input-time-range.startTime": "प्रारंभ समय",
68
68
  "components.interactive.instructions": "बातचीत करने के लिए Enter दबाएँ, बाहर निकलने के लिए Escape दबाएँ",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "सूची के लिए क्रियाएँ",
70
71
  "components.list-item-drag-handle.default": "{name} के लिए आइटम कार्रवाई का क्रम बदलें",
71
72
  "components.list-item-drag-handle.keyboard": "आइटम का क्रम बदलें, {size} में से वर्तमान स्थिति {currentPosition} इस आइटम को ले जाने के लिए, ऊपर या नीचे तीर दबाएँ।",
package/lang/ja.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} は {endLabel} より前にする必要があります",
67
67
  "components.input-time-range.startTime": "開始時刻",
68
68
  "components.interactive.instructions": "対話を始めるには Enter キー、終了するには Esc キーを押します",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "リストのアクション",
70
71
  "components.list-item-drag-handle.default": "{name} の項目並べ替えアクション",
71
72
  "components.list-item-drag-handle.keyboard": "項目の並べ替え、現在の位置 {currentPosition}、サイズ {size}。この項目を移動するには、上矢印または下矢印を押します。",
package/lang/ko.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel}은(는) {endLabel} 앞에 있어야 합니다",
67
67
  "components.input-time-range.startTime": "시작 시각",
68
68
  "components.interactive.instructions": "Enter를 눌러 상호 작용하고 Esc를 눌러 종료합니다",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "목록에 대한 작업",
70
71
  "components.list-item-drag-handle.default": "{name}에 대한 항목 작업 재정렬",
71
72
  "components.list-item-drag-handle.keyboard": "전체 {size}에서 현재 위치 {currentPosition} 항목 재정렬 이 항목을 이동하라면 위쪽 또는 아래쪽 화살표를 누르십시오.",
package/lang/nl.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} moet voor {endLabel} liggen",
67
67
  "components.input-time-range.startTime": "Starttijd",
68
68
  "components.interactive.instructions": "Druk op Enter om te communiceren, druk op Escape om af te sluiten",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Acties voor lijst",
70
71
  "components.list-item-drag-handle.default": "Itemactie voor {name} opnieuw rangschikken",
71
72
  "components.list-item-drag-handle.keyboard": "Items opnieuw rangschikken, huidige positie {currentPosition} van {size}. Als u dit item wilt verplaatsen, drukt u op de pijl omhoog of omlaag.",
package/lang/pt.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} precisa ser anterior a {endLabel}",
67
67
  "components.input-time-range.startTime": "Hora de início",
68
68
  "components.interactive.instructions": "Pressione Enter para interagir, Escape para sair",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Ações para a lista",
70
71
  "components.list-item-drag-handle.default": "Reordenar ação de item para {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Reordenar item, posição atual {currentPosition} de {size}. Para mover este item, pressione as setas para cima ou para baixo.",
package/lang/sv.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} måste vara före {endLabel}",
67
67
  "components.input-time-range.startTime": "Starttid",
68
68
  "components.interactive.instructions": "Tryck på Enter för att interagera och Escape för att avsluta",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Åtgärder för lista",
70
71
  "components.list-item-drag-handle.default": "Åtgärd för att ändra ordning på objekt för {name}",
71
72
  "components.list-item-drag-handle.keyboard": "Flytta objekt. Aktuell position: {currentPosition} av {size}. Om du vill flytta det här objektet trycker du på uppåt- eller nedåtpilen.",
package/lang/tr.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel}, {endLabel} tarihinden önce olmalıdır",
67
67
  "components.input-time-range.startTime": "Başlangıç Saati",
68
68
  "components.interactive.instructions": "Etkileşim kurmak için Enter tuşuna, çıkmak için Escape tuşuna basın",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "Liste için eylemler",
70
71
  "components.list-item-drag-handle.default": "{name} için öğe eylemini yeniden sırala",
71
72
  "components.list-item-drag-handle.keyboard": "Öğeyi yeniden sırala, mevcut konum {currentPosition} / {size}. Bu öğeyi taşımak için yukarı veya aşağı oklara basın.",
package/lang/zh-cn.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} 必须早于 {endLabel}",
67
67
  "components.input-time-range.startTime": "开始时间",
68
68
  "components.interactive.instructions": "按 Enter 键进行交互,按 Esc 键退出",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "针对列表的操作",
70
71
  "components.list-item-drag-handle.default": "对 {name} 的项目操作重新排序",
71
72
  "components.list-item-drag-handle.keyboard": "对项目重新排序,当前位置 {currentPosition} 超出 {size}。要移动此项目,请按向上或向下箭头。",
package/lang/zh-tw.js CHANGED
@@ -66,6 +66,7 @@ export default {
66
66
  "components.input-time-range.errorBadInput": "{startLabel} 必須早於 {endLabel}",
67
67
  "components.input-time-range.startTime": "開始時間",
68
68
  "components.interactive.instructions": "按下 Enter 來互動,按下 Escape 即可結束",
69
+ "components.link.open-in-new-window": "Opens in a new window.",
69
70
  "components.list-controls.label": "清單的動作",
70
71
  "components.list-item-drag-handle.default": "重新排序 {name} 的項目動作",
71
72
  "components.list-item-drag-handle.keyboard": "重新排序項目,目前位置 {currentPosition},總共為 {size}。若要移除這個項目,請按向上或向下箭頭。",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspace-ui/core",
3
- "version": "2.153.1",
3
+ "version": "2.154.1",
4
4
  "description": "A collection of accessible, free, open-source web components for building Brightspace applications",
5
5
  "type": "module",
6
6
  "repository": "https://github.com/BrightspaceUI/core.git",
@@ -60,7 +60,7 @@
60
60
  "glob-all": "^3",
61
61
  "messageformat-validator": "^2",
62
62
  "node-sass": "^9",
63
- "rollup": "^3",
63
+ "rollup": "^4",
64
64
  "rollup-plugin-copy": "^3",
65
65
  "rollup-plugin-delete": "^2",
66
66
  "sinon": "^16",
@@ -70,7 +70,7 @@
70
70
  "@brightspace-ui/intl": "^3",
71
71
  "@formatjs/intl-pluralrules": "^1",
72
72
  "@open-wc/dedupe-mixin": "^1",
73
- "ifrau": "^0.40",
73
+ "ifrau": "^0.41",
74
74
  "intl-messageformat": "^10",
75
75
  "lit": "^2",
76
76
  "prismjs": "^1",