@brightspace-ui/core 3.154.0 → 3.155.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.
@@ -11,7 +11,6 @@ import { getUniqueId } from '../../helpers/uniqueId.js';
11
11
  import { ifDefined } from 'lit/directives/if-defined.js';
12
12
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
13
13
  import { offscreenStyles } from '../offscreen/offscreen.js';
14
- import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
15
14
 
16
15
  const daysInWeek = 7;
17
16
  const keyCodes = {
@@ -148,7 +147,7 @@ export function getPrevMonth(month) {
148
147
  * A component can be used to display a responsively sized calendar that allows for date selection.
149
148
  * @slot - Content displayed under the calendar (e.g., buttons)
150
149
  */
151
- class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
150
+ class Calendar extends LocalizeCoreElement(LitElement) {
152
151
 
153
152
  static get properties() {
154
153
  return {
@@ -712,6 +711,8 @@ class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
712
711
 
713
712
  let preventDefault = false;
714
713
 
714
+ const isRtl = (document.documentElement.getAttribute('dir') === 'rtl');
715
+
715
716
  switch (e.keyCode) {
716
717
  case keyCodes.ENTER:
717
718
  case keyCodes.SPACE:
@@ -728,17 +729,17 @@ class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
728
729
  break;
729
730
  case keyCodes.LEFT:
730
731
  preventDefault = true; // needed for voiceover in safari to properly read aria-label on dates
731
- await this._onKeyDownUpdateFocusDate(this.dir === 'rtl' ? 1 : -1);
732
+ await this._onKeyDownUpdateFocusDate(isRtl ? 1 : -1);
732
733
  break;
733
734
  case keyCodes.RIGHT:
734
735
  preventDefault = true; // needed for voiceover in safari to properly read aria-label on dates
735
- await this._onKeyDownUpdateFocusDate(this.dir === 'rtl' ? -1 : 1);
736
+ await this._onKeyDownUpdateFocusDate(isRtl ? -1 : 1);
736
737
  break;
737
738
  case keyCodes.HOME: {
738
739
  preventDefault = true;
739
740
  let numDaysChange;
740
741
  const dayOfTheWeek = this._focusDate.getDay();
741
- if (this.dir === 'rtl') {
742
+ if (isRtl) {
742
743
  numDaysChange = 6 - dayOfTheWeek + calendarData.firstDayOfWeek;
743
744
  if (numDaysChange > 6) {
744
745
  numDaysChange -= daysInWeek;
@@ -762,7 +763,7 @@ class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
762
763
  preventDefault = true;
763
764
  let numDaysChange;
764
765
  const dayOfTheWeek = this._focusDate.getDay();
765
- if (this.dir === 'rtl') {
766
+ if (isRtl) {
766
767
  numDaysChange = dayOfTheWeek - calendarData.firstDayOfWeek;
767
768
  if (numDaysChange < 0) {
768
769
  numDaysChange += daysInWeek;
@@ -898,7 +899,7 @@ class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
898
899
 
899
900
  _triggerMonthChangeAnimations(increase, keyboardTriggered, transitionUpDown) {
900
901
  this._monthNav = undefined;
901
- increase = this.dir === 'rtl' ? !increase : increase;
902
+ increase = document.documentElement.getAttribute('dir') === 'rtl' ? !increase : increase;
902
903
  if (!keyboardTriggered) this._isInitialFocusDate = true;
903
904
  if (!reduceMotion) {
904
905
  setTimeout(() => {
@@ -9,7 +9,6 @@ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
9
9
  import { getComposedActiveElement } from '../../helpers/focus.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { isComposedAncestor } from '../../helpers/dom.js';
12
- import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
13
12
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
14
13
 
15
14
  const normalizeHeadingStyle = (number) => {
@@ -53,7 +52,7 @@ function addTabListener() {
53
52
  * @fires d2l-collapsible-panel-expand - Dispatched when the panel is expanded
54
53
  * @fires d2l-collapsible-panel-collapse - Dispatched when the panel is collapsed
55
54
  */
56
- class CollapsiblePanel extends SkeletonMixin(FocusMixin(RtlMixin(LitElement))) {
55
+ class CollapsiblePanel extends SkeletonMixin(FocusMixin(LitElement)) {
57
56
 
58
57
  static get properties() {
59
58
  return {
@@ -261,11 +260,9 @@ class CollapsiblePanel extends SkeletonMixin(FocusMixin(RtlMixin(LitElement))) {
261
260
  margin: 0.6rem;
262
261
  margin-inline-end: var(--d2l-collapsible-panel-spacing-inline);
263
262
  position: relative;
264
- width: 0.9rem;
265
- }
266
- :host([dir="rtl"]) d2l-icon-custom {
267
- transform: scale(-1, 1);
263
+ transform: var(--d2l-mirror-transform, ${document.dir === 'rtl' ? css`scale(-1, 1)` : css`none`}); /* stylelint-disable-line @stylistic/string-quotes, @stylistic/function-whitespace-after */
268
264
  transform-origin: center;
265
+ width: 0.9rem;
269
266
  }
270
267
  d2l-icon-custom svg {
271
268
  position: absolute;
@@ -175,6 +175,11 @@
175
175
  <d2l-filter-dimension-set-date-text-value key="6months2" range="6months"></d2l-filter-dimension-set-date-text-value>
176
176
  <d2l-filter-dimension-set-date-time-range-value key="custom3" text="Custom Date Range with Time" start-value="2024-10-12T12:00:00Z"></d2l-filter-dimension-set-date-time-range-value>
177
177
  </d2l-filter-dimension-set>
178
+ <d2l-filter-dimension-set key="dates3" text="Start and End Ranges" ignore-enforce-selection-single>
179
+ <d2l-filter-dimension-set-date-text-value key="6months" range="6months"></d2l-filter-dimension-set-date-text-value>
180
+ <d2l-filter-dimension-set-date-time-range-value key="custom4" text="Start Date"></d2l-filter-dimension-set-date-time-range-value>
181
+ <d2l-filter-dimension-set-date-time-range-value key="custom5" text="End Date"></d2l-filter-dimension-set-date-time-range-value>
182
+ </d2l-filter-dimension-set>
178
183
  <d2l-filter-dimension-set key="role" text="Role" selected-first>
179
184
  <d2l-filter-dimension-set-value key="admin" text="Admin" count="0"></d2l-filter-dimension-set-value>
180
185
  <d2l-filter-dimension-set-value key="instructor" text="Instructor" count="22"></d2l-filter-dimension-set-value>
@@ -40,6 +40,10 @@ class FilterDimensionSet extends LitElement {
40
40
  * @ignore
41
41
  */
42
42
  minWidth: { type: Number },
43
+ /**
44
+ * ADVANCED: Whether to ignore the enforce single selection setting for this dimension.
45
+ */
46
+ ignoreEnforceSelectionSingle: { type: Boolean, attribute: 'ignore-enforce-selection-single' },
43
47
  /**
44
48
  * Whether to hide the search input, perform a simple text search, or fire an event on search
45
49
  * @type {'none'|'automatic'|'manual'}
@@ -79,6 +83,7 @@ class FilterDimensionSet extends LitElement {
79
83
  this.introductoryText = '';
80
84
  this.loading = false;
81
85
  this.hasMore = false;
86
+ this.ignoreEnforceSelectionSingle = false;
82
87
  this.searchType = 'automatic';
83
88
  this.selectAll = false;
84
89
  this.selectedFirst = false;
@@ -151,7 +156,7 @@ class FilterDimensionSet extends LitElement {
151
156
  return value.getValueDetails();
152
157
  });
153
158
  if (noSearchSupport) this.searchType = 'none';
154
- if (enforceSingleSelection) this.selectionSingle = true;
159
+ if (enforceSingleSelection && !this.ignoreEnforceSelectionSingle) this.selectionSingle = true;
155
160
  if (minWidth) this.minWidth = minWidth;
156
161
  return values;
157
162
  }
@@ -4440,6 +4440,12 @@
4440
4440
  "type": "boolean",
4441
4441
  "default": "false"
4442
4442
  },
4443
+ {
4444
+ "name": "ignore-enforce-selection-single",
4445
+ "description": "ADVANCED: Whether to ignore the enforce single selection setting for this dimension.",
4446
+ "type": "boolean",
4447
+ "default": "false"
4448
+ },
4443
4449
  {
4444
4450
  "name": "search-type",
4445
4451
  "description": "Whether to hide the search input, perform a simple text search, or fire an event on search",
@@ -4512,6 +4518,13 @@
4512
4518
  "type": "boolean",
4513
4519
  "default": "false"
4514
4520
  },
4521
+ {
4522
+ "name": "ignoreEnforceSelectionSingle",
4523
+ "attribute": "ignore-enforce-selection-single",
4524
+ "description": "ADVANCED: Whether to ignore the enforce single selection setting for this dimension.",
4525
+ "type": "boolean",
4526
+ "default": "false"
4527
+ },
4515
4528
  {
4516
4529
  "name": "searchType",
4517
4530
  "attribute": "search-type",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspace-ui/core",
3
- "version": "3.154.0",
3
+ "version": "3.155.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",