@brightspace-ui/core 3.77.0 → 3.79.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.
@@ -273,6 +273,22 @@
273
273
  </template>
274
274
  </d2l-demo-snippet>
275
275
 
276
+ <h2>Popover (mobile tray)</h2>
277
+ <d2l-demo-snippet>
278
+ <template>
279
+ <d2l-button-subtle text="Open"></d2l-button-subtle>
280
+ <d2l-test-popover mobile-tray-location="inline-start" style="max-width: 400px;">
281
+ <d2l-link href="https://pirateipsum.me/" target="_blank">Pirate Ipsum</d2l-link>
282
+ <div>Sink me piracy Gold Road quarterdeck wherry long boat line pillage walk the plank Plate Fleet. Haul wind black spot strike colors deadlights lee Barbary Coast yo-ho-ho ballast gally Shiver me timbers. Sea Legs quarterdeck yard scourge of the seven seas coffer plunder lanyard holystone code of conduct belay.</div>
283
+ <d2l-button-subtle text="Close"></d2l-button-subtle>
284
+ </d2l-test-popover>
285
+ <script>
286
+ window.wireUpPopover(document.currentScript.parentNode);
287
+ </script>
288
+ </template>
289
+ </template>
290
+ </d2l-demo-snippet>
291
+
276
292
  </d2l-demo-page>
277
293
 
278
294
  <script>
@@ -12,6 +12,8 @@ const defaultPreferredPosition = {
12
12
  span: 'all', // start, end, all
13
13
  allowFlip: true
14
14
  };
15
+ const minBackdropHeightMobile = 42;
16
+ const minBackdropWidthMobile = 30;
15
17
  const pointerLength = 16;
16
18
  const pointerRotatedLength = Math.SQRT2 * parseFloat(pointerLength);
17
19
  const isSupported = ('popover' in HTMLElement.prototype);
@@ -30,6 +32,9 @@ export const PopoverMixin = superclass => class extends superclass {
30
32
  _maxWidth: { state: true },
31
33
  _minHeight: { state: true },
32
34
  _minWidth: { state: true },
35
+ _mobile: { type: Boolean, reflect: true, attribute: '_mobile' },
36
+ _mobileBreakpoint: { state: true },
37
+ _mobileTrayLocation: { type: String, reflect: true, attribute: '_mobile-tray-location' },
33
38
  _noAutoClose: { state: true },
34
39
  _noAutoFit: { state: true },
35
40
  _noAutoFocus: { state: true },
@@ -140,6 +145,58 @@ export const PopoverMixin = superclass => class extends superclass {
140
145
  }
141
146
  }
142
147
 
148
+ :host([_mobile][_mobile-tray-location]) .content-width {
149
+ position: fixed;
150
+ z-index: 1000;
151
+ }
152
+
153
+ :host([_mobile][_mobile-tray-location="inline-start"]) .content-width,
154
+ :host([_mobile][_mobile-tray-location="inline-end"]) .content-width {
155
+ inset-block-end: 0;
156
+ inset-block-start: 0;
157
+ }
158
+
159
+ :host([_mobile][_mobile-tray-location="inline-start"]) .content-width {
160
+ border-end-start-radius: 0;
161
+ border-start-start-radius: 0;
162
+ }
163
+
164
+ :host([_mobile][_mobile-tray-location="inline-end"]) .content-width {
165
+ border-end-end-radius: 0;
166
+ border-start-end-radius: 0;
167
+ }
168
+
169
+ :host([_mobile][_mobile-tray-location="block-end"]) .content-width {
170
+ border-end-end-radius: 0;
171
+ border-end-start-radius: 0;
172
+ inset-inline-start: 0;
173
+ }
174
+
175
+ :host([_mobile][_mobile-tray-location="inline-end"][opened]) .content-width {
176
+ inset-inline-end: 0;
177
+ }
178
+
179
+ :host([_mobile][_mobile-tray-location="inline-start"][opened]) .content-width {
180
+ inset-inline-start: 0;
181
+ }
182
+
183
+ :host([_mobile][_mobile-tray-location="block-end"][opened]) .content-width {
184
+ inset-block-end: 0;
185
+ }
186
+
187
+ :host([_mobile][_mobile-tray-location="inline-start"][opened]) .content-container,
188
+ :host([_mobile][_mobile-tray-location="inline-end"][opened]) .content-container {
189
+ height: 100vh;
190
+ }
191
+
192
+ :host([_mobile][_mobile-tray-location]) > .pointer {
193
+ display: none;
194
+ }
195
+
196
+ :host([_mobile][_mobile-tray-location][opened]) {
197
+ animation: none;
198
+ }
199
+
143
200
  :host([_offscreen]) {
144
201
  ${_offscreenStyleDeclarations}
145
202
  }
@@ -149,10 +206,12 @@ export const PopoverMixin = superclass => class extends superclass {
149
206
  constructor() {
150
207
  super();
151
208
  this.configure();
209
+ this._mobile = false;
152
210
  this._useNativePopover = isSupported ? 'manual' : undefined;
153
211
  this.#handleAncestorMutationBound = this.#handleAncestorMutation.bind(this);
154
212
  this.#handleAutoCloseClickBound = this.#handleAutoCloseClick.bind(this);
155
213
  this.#handleAutoCloseFocusBound = this.#handleAutoCloseFocus.bind(this);
214
+ this.#handleMobileResizeBound = this.#handleMobileResize.bind(this);
156
215
  this.#handleResizeBound = this.#handleResize.bind(this);
157
216
  this.#repositionBound = this.#reposition.bind(this);
158
217
  }
@@ -161,6 +220,7 @@ export const PopoverMixin = superclass => class extends superclass {
161
220
  super.connectedCallback();
162
221
  if (this._opened) {
163
222
  this.#addAutoCloseHandlers();
223
+ this.#addMediaQueryHandlers();
164
224
  this.#addRepositionHandlers();
165
225
  }
166
226
  }
@@ -168,6 +228,7 @@ export const PopoverMixin = superclass => class extends superclass {
168
228
  disconnectedCallback() {
169
229
  super.disconnectedCallback();
170
230
  this.#removeAutoCloseHandlers();
231
+ this.#removeMediaQueryHandlers();
171
232
  this.#removeRepositionHandlers();
172
233
  this.#clearDismissible();
173
234
  }
@@ -181,6 +242,7 @@ export const PopoverMixin = superclass => class extends superclass {
181
242
 
182
243
  this._previousFocusableAncestor = null;
183
244
  this.#removeAutoCloseHandlers();
245
+ this.#removeMediaQueryHandlers();
184
246
  this.#removeRepositionHandlers();
185
247
  this.#clearDismissible();
186
248
  await this.updateComplete; // wait before applying focus to opener
@@ -195,6 +257,8 @@ export const PopoverMixin = superclass => class extends superclass {
195
257
  this._maxWidth = properties?.maxWidth;
196
258
  this._minHeight = properties?.minHeight;
197
259
  this._minWidth = properties?.minWidth;
260
+ this._mobileBreakpoint = properties?.mobileBreakpoint ?? 616;
261
+ this._mobileTrayLocation = properties?.mobileTrayLocation;
198
262
  this._noAutoClose = properties?.noAutoClose ?? false;
199
263
  this._noAutoFit = properties?.noAutoFit ?? false;
200
264
  this._noAutoFocus = properties?.noAutoFocus ?? false;
@@ -217,6 +281,8 @@ export const PopoverMixin = superclass => class extends superclass {
217
281
  async open(applyFocus = true) {
218
282
  if (this._opened) return;
219
283
 
284
+ this.#addMediaQueryHandlers();
285
+
220
286
  this._rtl = document.documentElement.getAttribute('dir') === 'rtl';
221
287
  this._applyFocus = applyFocus !== undefined ? applyFocus : true;
222
288
  this._opened = true;
@@ -243,7 +309,16 @@ export const PopoverMixin = superclass => class extends superclass {
243
309
 
244
310
  renderPopover(content) {
245
311
 
246
- const stylesMap = this.#getStyleMaps();
312
+ const mobileTrayLocation = this._mobile ? this._mobileTrayLocation : null;
313
+
314
+ let stylesMap;
315
+ if (mobileTrayLocation === 'block-end') {
316
+ stylesMap = this.#getMobileTrayBlockStyleMaps();
317
+ } else if (mobileTrayLocation === 'inline-start' || mobileTrayLocation === 'inline-end') {
318
+ stylesMap = this.#getMobileTrayInlineStyleMaps();
319
+ } else {
320
+ stylesMap = this.#getStyleMaps();
321
+ }
247
322
  const widthStyle = stylesMap['width'];
248
323
  const contentStyle = stylesMap['content'];
249
324
 
@@ -301,9 +376,11 @@ export const PopoverMixin = superclass => class extends superclass {
301
376
  else return this.open(!this._noAutoFocus && applyFocus);
302
377
  }
303
378
 
379
+ #mediaQueryList;
304
380
  #handleAncestorMutationBound;
305
381
  #handleAutoCloseClickBound;
306
382
  #handleAutoCloseFocusBound;
383
+ #handleMobileResizeBound;
307
384
  #handleResizeBound;
308
385
  #repositionBound;
309
386
 
@@ -313,6 +390,12 @@ export const PopoverMixin = superclass => class extends superclass {
313
390
  document.addEventListener('click', this.#handleAutoCloseClickBound, { capture: true });
314
391
  }
315
392
 
393
+ #addMediaQueryHandlers() {
394
+ this.#mediaQueryList = window.matchMedia(`(max-width: ${this._mobileBreakpoint - 1}px)`);
395
+ this._mobile = this.#mediaQueryList.matches;
396
+ this.#mediaQueryList.addEventListener?.('change', this.#handleMobileResizeBound);
397
+ }
398
+
316
399
  #addRepositionHandlers() {
317
400
 
318
401
  const isScrollable = (node, prop) => {
@@ -434,6 +517,123 @@ export const PopoverMixin = superclass => class extends superclass {
434
517
  return 'block-end';
435
518
  }
436
519
 
520
+ #getMobileTrayBlockStyleMaps() {
521
+
522
+ let maxHeightOverride;
523
+ const availableHeight = Math.min(window.innerHeight, window.screen.height);
524
+
525
+ // default maximum height for bottom tray (42px margin)
526
+ const mobileTrayMaxHeightDefault = availableHeight - minBackdropHeightMobile;
527
+ if (this._maxHeight) {
528
+ // if maxHeight provided is smaller, use the maxHeight
529
+ maxHeightOverride = Math.min(mobileTrayMaxHeightDefault, this._maxHeight);
530
+ } else {
531
+ maxHeightOverride = mobileTrayMaxHeightDefault;
532
+ }
533
+ maxHeightOverride = `${maxHeightOverride}px`;
534
+
535
+ const widthOverride = '100vw';
536
+
537
+ const widthStyle = {
538
+ minWidth: widthOverride,
539
+ width: widthOverride,
540
+ maxHeight: maxHeightOverride,
541
+ };
542
+
543
+ const contentWidthStyle = {
544
+ // set width of content in addition to width container so header and footer borders are full width
545
+ width: widthOverride
546
+ };
547
+
548
+ const contentStyle = {
549
+ ...contentWidthStyle,
550
+ maxHeight: maxHeightOverride,
551
+ };
552
+
553
+ return {
554
+ width: widthStyle,
555
+ content: contentStyle,
556
+ };
557
+ }
558
+
559
+ #getMobileTrayInlineStyleMaps() {
560
+
561
+ let maxWidthOverride = this._maxWidth;
562
+ const availableWidth = Math.min(window.innerWidth, window.screen.width);
563
+
564
+ // default maximum width for tray (30px margin)
565
+ const mobileTrayMaxWidthDefault = Math.min(availableWidth - minBackdropWidthMobile, 420);
566
+ if (maxWidthOverride) {
567
+ // if maxWidth provided is smaller, use the maxWidth
568
+ maxWidthOverride = Math.min(mobileTrayMaxWidthDefault, maxWidthOverride);
569
+ } else {
570
+ maxWidthOverride = mobileTrayMaxWidthDefault;
571
+ }
572
+
573
+ let minWidthOverride = this.minWidth;
574
+ // minimum size - 285px
575
+ const mobileTrayMinWidthDefault = 285;
576
+ if (minWidthOverride) {
577
+ // if minWidth provided is smaller, use the minumum width for tray
578
+ minWidthOverride = Math.max(mobileTrayMinWidthDefault, minWidthOverride);
579
+ } else {
580
+ minWidthOverride = mobileTrayMinWidthDefault;
581
+ }
582
+
583
+ // if no width property set, automatically size to maximum width
584
+ let widthOverride = this._width ? this._width : maxWidthOverride;
585
+ // ensure width is between minWidth and maxWidth
586
+ if (widthOverride && maxWidthOverride && widthOverride > (maxWidthOverride - 20)) widthOverride = maxWidthOverride - 20;
587
+ if (widthOverride && minWidthOverride && widthOverride < (minWidthOverride - 20)) widthOverride = minWidthOverride - 20;
588
+ maxWidthOverride = `${maxWidthOverride}px`;
589
+ minWidthOverride = `${minWidthOverride}px`;
590
+
591
+ const contentWidth = `${widthOverride + 18}px`;
592
+ // add 2 to content width since scrollWidth does not include border
593
+ const containerWidth = `${widthOverride + 20}px`;
594
+
595
+ const topOverride = (window.innerHeight > window.screen.height) ? window.pageYOffset : undefined;
596
+
597
+ let inlineEndOverride;
598
+ let inlineStartOverride;
599
+ if (this._mobileTrayLocation === 'inline-end') {
600
+ // On non-responsive pages, the innerWidth may be wider than the screen,
601
+ // override right to stick to right of viewport
602
+ inlineEndOverride = `${Math.max(window.innerWidth - window.screen.width, 0)}px`;
603
+ } else if (this._mobileTrayLocation === 'inline-start') {
604
+ // On non-responsive pages, the innerWidth may be wider than the screen,
605
+ // override left to stick to left of viewport
606
+ inlineStartOverride = `${Math.max(window.innerWidth - window.screen.width, 0)}px`;
607
+ }
608
+
609
+ if (minWidthOverride > maxWidthOverride) {
610
+ minWidthOverride = maxWidthOverride;
611
+ }
612
+ const widthStyle = {
613
+ maxWidth: maxWidthOverride,
614
+ minWidth: minWidthOverride,
615
+ width: containerWidth,
616
+ top: topOverride,
617
+ insetInlineStart: inlineStartOverride,
618
+ insetInlineEnd: inlineEndOverride
619
+ };
620
+
621
+ const contentWidthStyle = {
622
+ minWidth: minWidthOverride,
623
+ // set width of content in addition to width container so header and footer borders are full width
624
+ width: contentWidth,
625
+ };
626
+
627
+ const contentStyle = {
628
+ ...contentWidthStyle,
629
+ };
630
+
631
+ return {
632
+ width : widthStyle,
633
+ content : contentStyle,
634
+ };
635
+ }
636
+
437
637
  #getPointer() {
438
638
  return this.shadowRoot.querySelector('.pointer');
439
639
  }
@@ -567,8 +767,8 @@ export const PopoverMixin = superclass => class extends superclass {
567
767
  };
568
768
 
569
769
  return {
570
- 'width' : widthStyle,
571
- 'content' : contentStyle
770
+ width : widthStyle,
771
+ content : contentStyle
572
772
  };
573
773
  }
574
774
 
@@ -622,6 +822,11 @@ export const PopoverMixin = superclass => class extends superclass {
622
822
  this.dispatchEvent(new CustomEvent('d2l-popover-focus-enter', { detail: { applyFocus: this._applyFocus } }));
623
823
  }
624
824
 
825
+ async #handleMobileResize() {
826
+ this._mobile = this.#mediaQueryList.matches;
827
+ if (this._opened) await this.#position();
828
+ }
829
+
625
830
  #handleResize() {
626
831
  this.resize();
627
832
  }
@@ -720,6 +925,10 @@ export const PopoverMixin = superclass => class extends superclass {
720
925
  document.removeEventListener('click', this.#handleAutoCloseClickBound, { capture: true });
721
926
  }
722
927
 
928
+ #removeMediaQueryHandlers() {
929
+ this.#mediaQueryList?.removeEventListener?.('change', this.#handleMobileResizeBound);
930
+ }
931
+
723
932
  #removeRepositionHandlers() {
724
933
  this._openerIntersectionObserver?.unobserve(this._opener);
725
934
  this._scrollablesObserved?.forEach(node => {
@@ -10619,6 +10619,11 @@
10619
10619
  "description": "Min-width (undefined). Specify a number that would be the px value.",
10620
10620
  "type": "number"
10621
10621
  },
10622
+ {
10623
+ "name": "mobile-tray-location",
10624
+ "description": "Mobile tray location.",
10625
+ "type": "'inline-start'|'inline-end'|'block-end'"
10626
+ },
10622
10627
  {
10623
10628
  "name": "position-location",
10624
10629
  "description": "Position the popover before or after the opener. Default is \"block-end\" (after).",
@@ -10685,6 +10690,12 @@
10685
10690
  "description": "Min-width (undefined). Specify a number that would be the px value.",
10686
10691
  "type": "number"
10687
10692
  },
10693
+ {
10694
+ "name": "mobileTrayLocation",
10695
+ "attribute": "mobile-tray-location",
10696
+ "description": "Mobile tray location.",
10697
+ "type": "'inline-start'|'inline-end'|'block-end'"
10698
+ },
10688
10699
  {
10689
10700
  "name": "positionLocation",
10690
10701
  "attribute": "position-location",
package/lang/haw.js ADDED
@@ -0,0 +1,148 @@
1
+ export default {
2
+ "components.alert.close": "Pani i ka makaʻala",
3
+ "components.breadcrumbs.breadcrumb": "Palapalapala",
4
+ "components.button-add.addItem": "Pākuʻi Mea",
5
+ "components.calendar.hasEvents": "Loaʻa nā hanana.",
6
+ "components.calendar.notSelected": "ʻAʻole i koho ʻia.",
7
+ "components.calendar.selected": "Koho ʻia.",
8
+ "components.calendar.show": "Hōʻike {month}",
9
+ "components.count-badge.plus": "{number}+",
10
+ "components.dialog.close": "Pani i kēia kamaʻilio",
11
+ "components.dialog.critical": "Pilikia!",
12
+ "components.dropdown.close": "Pani",
13
+ "components.filter.activeFilters": "Nā kānana ʻeleu:",
14
+ "components.filter.additionalContentTooltip": "E hoʻohana i <b>nā kī pua hema/ ʻākau</b> e hoʻoneʻe i ka manaʻo i loko o kēia mea papa inoa",
15
+ "components.filter.clear": "Akaka",
16
+ "components.filter.clearAll": "Holoi a pau",
17
+ "components.filter.clearAllAnnounce": "Holoi i nā kānana a pau",
18
+ "components.filter.clearAllAnnounceOverride": "Holoi i nā kānana a pau no: {filterText}",
19
+ "components.filter.clearAllDescription": "Holoi i nā kānana a pau",
20
+ "components.filter.clearAllDescriptionOverride": "Holoi i nā kānana a pau no: {filterText}",
21
+ "components.filter.clearAnnounce": "Ke holoi nei i nā kānana no: {filterName}",
22
+ "components.filter.clearDescription": "Holoi i nā kānana no: {filterName}",
23
+ "components.filter.loading": "Hoʻouka i nā kānana",
24
+ "components.filter.filterCountDescription": "{number, plural, =0 {ʻAʻohe kānana i hoʻohana ʻia.} one {{number} hoʻohana ʻia ke kānana.} other {{number} hoʻohana ʻia nā kānana.}}",
25
+ "components.filter.filters": "Nā kānana",
26
+ "components.filter.noFilters": "ʻAʻohe kānana i loaʻa",
27
+ "components.filter.searchResults": "{number, plural, =0 {ʻAʻohe hopena hulina} one {{number} hopena huli} other {{number} hopena huli}}",
28
+ "components.filter.selectedFirstListLabel": "{headerText}. Hōʻike mua ʻia nā kānana i koho ʻia.",
29
+ "components.filter.singleDimensionDescription": "Kānana e: {filterName}",
30
+ "components.filter-dimension-set-date-text-value.textHours": "{num, plural, =1 {hola hope} other {hope loa {num} hola}}",
31
+ "components.filter-dimension-set-date-text-value.textDays": "{num, plural, =0 {I kēia lā} one {hope loa {num} lā} other {hope loa {num} lā}}",
32
+ "components.filter-dimension-set-date-text-value.textMonths": "{num} mahina i hala",
33
+ "components.filter-dimension-set-date-time-range-value.label": "{text}, hoʻonui e koho i nā lā",
34
+ "components.filter-dimension-set-date-time-range-value.valueTextRange": "{startValue} i {endValue}",
35
+ "components.filter-dimension-set-date-time-range-value.valueTextRangeStartOnly": "Lā hoʻomaka: {startValue}",
36
+ "components.filter-dimension-set-date-time-range-value.valueTextRangeEndOnly": "Lā Hoʻopau: {endValue}",
37
+ "components.filter-dimension-set-date-time-range-value.text": "Laulā lā maʻamau",
38
+ "components.form-element.defaultError": "ʻAʻole kūpono ʻo {label}.",
39
+ "components.form-element.defaultFieldLabel": "Kihapai",
40
+ "components.form-element.input.email.typeMismatch": "ʻAʻole kūpono ka leka uila",
41
+ "components.form-element.input.number.rangeError": "{minExclusive, select, true {{maxExclusive, select, true {Pono ka nui o ka helu ma mua o {min} a emi iho ma mua o {max}.} other {ʻOi aku ka nui o ka helu ma mua o {min} a emi mai a like paha me {max}. }}} other {{maxExclusive, select, true {Pono ka helu ma mua o ka {min} a emi iho ma mua o {max}.} other {Pono ka helu ma mua a i ʻole like me {min} a emi iho a like paha {max}.}}}}",
42
+ "components.form-element.input.number.rangeOverflow": "{maxExclusive, select, true {Pono ka helu ma mua o {max}.} other {Pono ka helu ma mua a i ʻole like me {max}.}}",
43
+ "components.form-element.input.number.rangeUnderflow": "{minExclusive, select, true {Pono ka helu ma mua o {min}.} other {Pono ka helu ma mua a i ʻole like me {min}.}}",
44
+ "components.form-element.input.text.tooShort": "Pono ka {label} ma kahi o {minlength} mau huapalapala",
45
+ "components.form-element.input.url.typeMismatch": "ʻAʻole kūpono ka URL",
46
+ "components.form-element.valueMissing": "Pono ʻo {label}.",
47
+ "components.form-error-summary.errorSummary": "{count, plural, one {Aia aku nei {count} Loaʻa ka hewa ma ka ʻike āu i hoʻouna ai} other {Aia aku nei {count} loaʻa nā hewa i ka ʻike āu i hoʻouna ai}}",
48
+ "components.form-error-summary.text": "Hoʻololi i nā kikoʻī hewa",
49
+ "components.input-color.backgroundColor": "Ka waihoʻoluʻu",
50
+ "components.input-color.foregroundColor": "Kalai mua",
51
+ "components.input-color.none": "ʻAʻohe",
52
+ "components.input-date-range.endDate": "Lā Hoʻopau",
53
+ "components.input-date-range.errorBadInput": "Pono ʻo {startLabel} ma mua o {endLabel}",
54
+ "components.input-date-range.interactive-label": "Hoʻokomo ka laulā lā",
55
+ "components.input-date-range.startDate": "lā hoʻomaka",
56
+ "components.input-date-time-range-to.to": "i",
57
+ "components.input-date-time-range.endDate": "End Date",
58
+ "components.input-date-time-range.errorBadInput": "Pono ʻo {startLabel} ma mua o {endLabel}",
59
+ "components.input-date-time-range.startDate": "Start Date",
60
+ "components.input-date-time.date": "Lā",
61
+ "components.input-date-time.errorMaxDateOnly": "Pono ka lā ma mua a ma {maxDate}",
62
+ "components.input-date-time.errorMinDateOnly": "Pono ka lā ma a ma hope paha o {minDate}",
63
+ "components.input-date-time.errorOutsideRange": "Pono ka lā ma waena o {minDate} a me {maxDate}",
64
+ "components.input-date-time.time": "Manawa",
65
+ "components.input-date-time-range.interactive-label": "Hoʻokomo ʻia ka lā a me ka manawa",
66
+ "components.input-date.clear": "Clear",
67
+ "components.input-date.errorMaxDateOnly": "Pono ka lā ma mua a ma {maxDate}",
68
+ "components.input-date.errorMinDateOnly": "Pono ka lā ma a ma hope paha o {minDate}",
69
+ "components.input-date.errorOutsideRange": "Pono ka lā ma waena o {minDate} a me {maxDate}",
70
+ "components.input-date.openInstructions": "E hoʻohana i ka hōʻano lā {format}. ʻO ka pua i lalo a i ʻole e kaomi i ke komo no ke komo ʻana i ka kalena liʻiliʻi.",
71
+ "components.input-date.now": "I kēia manawa",
72
+ "components.input-date.revert": "Ua hoʻihoʻi ʻia ʻo {label} i ka waiwai ma mua.",
73
+ "components.input-date.today": "I kēia lā",
74
+ "components.input-date.useDateFormat": "E hoʻohana i ka hōʻano lā {format}.",
75
+ "components.input-number.hintInteger": "ʻAe kēia kahua i nā waiwai helu helu (ʻaʻohe decimals)",
76
+ "components.input-number.hintDecimalDuplicate": "Aia he decimal i kēia helu",
77
+ "components.input-number.hintDecimalIncorrectComma": "E hoʻohui i kahi decimal e hoʻohana i ke koma \",\" ʻano",
78
+ "components.input-number.hintDecimalIncorrectPeriod": "No ka hoʻohui ʻana i kahi decimal e hoʻohana i ka manawa \".\" ʻano ʻano",
79
+ "components.input-search.clear": "Holoi Huli",
80
+ "components.input-search.defaultPlaceholder": "Huli...",
81
+ "components.input-search.search": "Huli",
82
+ "components.input-time-range.endTime": "Manawa Hoopau",
83
+ "components.input-time-range.errorBadInput": "Pono ʻo {startLabel} ma mua o {endLabel}",
84
+ "components.input-time-range.startTime": "Wā Hoʻomaka",
85
+ "components.interactive.instructions": "E kaomi iā Enter e launa pū, e pakele i waho",
86
+ "components.link.open-in-new-window": "Wehe ma ka puka makani hou.",
87
+ "components.list.keyboard": "E hoʻohana i <b>nā kī arrow</b> e hoʻoneʻe i ka manaʻo i loko o kēia papa inoa, a i ʻole <b>ʻaoʻao i luna/lalo</b> no ka neʻe ʻana i luna a i lalo i ka 5",
88
+ "components.list-controls.label": "Nā hana no ka papa inoa",
89
+ "components.list-item.addItem": "Pākuʻi Mea",
90
+ "components.list-item-drag-handle.default": "Hoʻonohonoho hou i ka hana ʻikamu no {name}",
91
+ "components.list-item-drag-handle.keyboard": "E hoʻonohonoho hou i ka mea, ke kūlana o kēia manawa {currentPosition} ma waho o {size}. No ka hoʻoneʻe ʻana i kēia mea, e kaomi i nā pua i luna a i lalo.",
92
+ "components.list-item-drag-handle-tooltip.title": "Nā Mana Keyboard no ka hoʻonohonoho hou ʻana:",
93
+ "components.list-item-drag-handle-tooltip.enter-key": "Komo",
94
+ "components.list-item-drag-handle-tooltip.enter-desc": "E hoʻololi i ke ʻano hoʻonohonoho hou.",
95
+ "components.list-item-drag-handle-tooltip.up-down-key": "Iluna/Iho",
96
+ "components.list-item-drag-handle-tooltip.up-down-desc": "E hoʻoneʻe i ka mea i luna a i lalo i ka papa inoa.",
97
+ "components.list-item-drag-handle-tooltip.left-right-key": "Hema/Akau",
98
+ "components.list-item-drag-handle-tooltip.left-right-desc": "E hoʻololi i ka pae pūnana.",
99
+ "components.menu-item-return.return": "E hoʻi i ka papa kuhikuhi mua.",
100
+ "components.menu-item-return.returnCurrentlyShowing": "E hoʻi i ka papa kuhikuhi mua. Ke nānā nei ʻoe iā {menuTitle}.",
101
+ "components.meter-mixin.commaSeperatedAria": "{term1}, {term2}",
102
+ "components.meter-mixin.fraction": "{x}∕{y}",
103
+ "components.meter-mixin.fractionAria": "{x} mai ka {y}",
104
+ "components.meter-mixin.progressIndicator": "Hōʻike Holomua",
105
+ "components.more-less.less": "emi mai",
106
+ "components.more-less.more": "hou aku",
107
+ "components.object-property-list.item-placeholder-text": "Mea Paʻa Wahi",
108
+ "components.overflow-group.moreActions": "Nā Hana Hou",
109
+ "components.pager-load-more.action": "Hoʻouka hou aku",
110
+ "components.pager-load-more.action-with-page-size": "Hoʻouka {count} hou aku",
111
+ "components.pageable.info": "{count, plural, one {{countFormatted} mea} other {{countFormatted} mau mea}}",
112
+ "components.pageable.info-with-total": "{totalCount, plural, one {{countFormatted} o {totalCountFormatted} mea} other {{countFormatted} o {totalCountFormatted} mau mea}}",
113
+ "components.pager-load-more.status-loading": "Ke hoʻouka nei i nā mea hou aʻe",
114
+ "components.selection.action-max-hint": "{count, plural, one {Disabled when more than {countFormatted} item is selected} other {Disabled when more than {countFormatted} items are selected}}",
115
+ "components.selection.action-required-hint": "E koho i kahi mea e hana ai i kēia hana",
116
+ "components.selection.select-all": "E koho i nā mea a pau",
117
+ "components.selection.select-all-items": "E koho i nā mea a pau {count}.",
118
+ "components.selection.selected": "{count} koho ʻia",
119
+ "components.selection.selected-plus": "{count}+ koho ʻia",
120
+ "components.selection-controls.label": "Nā hana no ke koho",
121
+ "components.switch.visible": "ʻIke ʻia",
122
+ "components.switch.visibleWithPeriod": "ʻIke ʻia.",
123
+ "components.switch.hidden": "Huna",
124
+ "components.switch.conditions": "Pono e hoʻokō i nā kūlana",
125
+ "components.table-col-sort-button.addSortOrder": "E koho e hoʻohui i ka hoʻonohonoho ʻana",
126
+ "components.table-col-sort-button.changeSortOrder": "E koho e hoʻololi i ka hoʻonohonoho ʻana",
127
+ "components.table-col-sort-button.title": "{sourceType, select, dates {{direction, select, desc {Hoʻokaʻawale ʻia ka mea hou a i ka mea kahiko} other {Hoʻokaʻawale ʻia ka mea kahiko i ka mea hou}}} numbers {{direction, select, desc {Hoʻokaʻina kiʻekiʻe a haʻahaʻa} other {Hoʻokaʻina haʻahaʻa a kiʻekiʻe}}} words {{direction, select, desc {Hoʻokaʻawale ʻia ʻo Z i A} other {Hoʻopili ʻia ʻo A a Z}}} value {Hoʻokaʻawale ʻia {selectedMenuItemText}} other {{direction, select, desc {Hoʻokaʻawale i ka iho ʻana} other {Hoʻokaʻawale ʻia i ka piʻi ʻana}}}}",
128
+ "components.table-controls.label": "Nā hana no ka papaʻaina",
129
+ "components.tabs.next": "Holo i mua",
130
+ "components.tabs.previous": "Holo i hope",
131
+ "components.tag-list.clear": "Kaomi, kaomi i hope, a i ʻole ke kī holoi e wehe i ka mea {value}",
132
+ "components.tag-list.clear-all": "Holoi a pau",
133
+ "components.tag-list.cleared-all": "Wehe ʻia nā mea papa inoa inoa a pau",
134
+ "components.tag-list.cleared-item": "Wehe ʻia ka helu helu helu {value}",
135
+ "components.tag-list.interactive-label": "Papa inoa inoa, {count} mau mea",
136
+ "components.tag-list.num-hidden": "+ {count} hou aku",
137
+ "components.tag-list.role-description": "Papa inoa inoa",
138
+ "components.tag-list.show-less": "Hōʻike liʻiliʻi",
139
+ "components.tag-list.show-more-description": "E koho e hōʻike i nā mea papa inoa inoa huna",
140
+ "components.tag-list-item.role-description": "Tag",
141
+ "components.tag-list-item.tooltip-arrow-keys": "Nā kī pua",
142
+ "components.tag-list-item.tooltip-arrow-keys-desc": "E neʻe ma waena o nā hōʻailona",
143
+ "components.tag-list-item.tooltip-delete-key": "Hoʻi hope / Holoi",
144
+ "components.tag-list-item.tooltip-delete-key-desc": "Holoi i ka hōʻailona kikoʻī",
145
+ "components.tag-list-item.tooltip-title": "Nā Mana Keyboard",
146
+ "templates.primary-secondary.divider": "Mea hoʻokaʻawale papa lua",
147
+ "templates.primary-secondary.secondary-panel": "Pane lua"
148
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspace-ui/core",
3
- "version": "3.77.0",
3
+ "version": "3.79.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",