@brightspace-ui/core 2.103.0 → 2.104.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.
Files changed (118) hide show
  1. package/README.md +7 -7
  2. package/components/alert/alert.js +1 -1
  3. package/components/breadcrumbs/breadcrumb.js +2 -2
  4. package/components/breadcrumbs/breadcrumbs.js +1 -1
  5. package/components/button/button-icon.js +3 -3
  6. package/components/button/button-mixin.js +1 -1
  7. package/components/button/button-move.js +2 -2
  8. package/components/button/button-subtle.js +1 -1
  9. package/components/button/floating-buttons.js +1 -1
  10. package/components/calendar/calendar.js +1 -1
  11. package/components/card/card-footer-link.js +2 -2
  12. package/components/card/card.js +2 -2
  13. package/components/collapsible-panel/collapsible-panel.js +2 -2
  14. package/components/count-badge/count-badge-icon.js +1 -1
  15. package/components/count-badge/count-badge-mixin.js +1 -1
  16. package/components/count-badge/count-badge.js +1 -1
  17. package/components/dialog/dialog-mixin.js +1 -1
  18. package/components/dropdown/dropdown-button.js +1 -1
  19. package/components/dropdown/dropdown-content-mixin.js +1 -1
  20. package/components/dropdown/dropdown-context-menu.js +1 -1
  21. package/components/dropdown/dropdown-menu.js +1 -1
  22. package/components/dropdown/dropdown-more.js +1 -1
  23. package/components/empty-state/empty-state-simple.js +1 -1
  24. package/components/filter/filter-overflow-group.js +1 -1
  25. package/components/filter/filter.js +2 -2
  26. package/components/focus-trap/focus-trap.js +1 -1
  27. package/components/form/form-errory-summary.js +1 -1
  28. package/components/html-block/demo/html-block.html +1 -1
  29. package/components/html-block/html-block.js +1 -1
  30. package/components/icons/icon-custom.js +1 -1
  31. package/components/icons/icon.js +1 -1
  32. package/components/inputs/README.md +1 -1
  33. package/components/inputs/demo/input-radio-label-simple-test.js +1 -1
  34. package/components/inputs/demo/input-radio-label-test.js +1 -1
  35. package/components/inputs/demo/input-select-test.js +1 -1
  36. package/components/inputs/docs/input-radio.md +1 -1
  37. package/components/inputs/docs/input-select-styles.md +1 -1
  38. package/components/inputs/input-checkbox-spacer.js +1 -1
  39. package/components/inputs/input-checkbox.js +2 -2
  40. package/components/inputs/input-color.js +1 -1
  41. package/components/inputs/input-date-range.js +2 -2
  42. package/components/inputs/input-date-time-range.js +2 -2
  43. package/components/inputs/input-date-time.js +3 -3
  44. package/components/inputs/input-date.js +2 -2
  45. package/components/inputs/input-fieldset.js +1 -1
  46. package/components/inputs/input-number.js +2 -2
  47. package/components/inputs/input-percent.js +3 -3
  48. package/components/inputs/input-radio-spacer.js +1 -1
  49. package/components/inputs/input-search.js +2 -2
  50. package/components/inputs/input-text.js +3 -3
  51. package/components/inputs/input-textarea.js +3 -3
  52. package/components/inputs/input-time-range.js +2 -2
  53. package/components/inputs/input-time.js +2 -2
  54. package/components/link/link.js +1 -1
  55. package/components/list/list-item-drag-handle.js +2 -2
  56. package/components/list/list-item-drag-image.js +1 -1
  57. package/components/list/list-item-generic-layout.js +2 -3
  58. package/components/list/list-item-mixin.js +2 -2
  59. package/components/list/list-item-placement-marker.js +1 -1
  60. package/components/menu/menu-item-checkbox.js +1 -1
  61. package/components/menu/menu-item-radio.js +1 -1
  62. package/components/menu/menu-item-return.js +1 -1
  63. package/components/menu/menu.js +1 -1
  64. package/components/meter/meter-circle.js +1 -1
  65. package/components/meter/meter-linear.js +1 -1
  66. package/components/meter/meter-radial.js +1 -1
  67. package/components/object-property-list/object-property-list-item-link.js +1 -1
  68. package/components/offscreen/offscreen.js +1 -1
  69. package/components/overflow-group/overflow-group.js +1 -1
  70. package/components/paging/pager-load-more.js +1 -1
  71. package/components/scroll-wrapper/demo/scroll-wrapper-test.js +1 -1
  72. package/components/scroll-wrapper/scroll-wrapper.js +1 -1
  73. package/components/selection/selection-action-dropdown.js +1 -1
  74. package/components/selection/selection-action.js +1 -1
  75. package/components/selection/selection-controls.js +1 -1
  76. package/components/selection/selection-input.js +1 -1
  77. package/components/selection/selection-mixin.js +1 -1
  78. package/components/selection/selection-select-all-pages.js +1 -1
  79. package/components/selection/selection-select-all.js +1 -1
  80. package/components/skeleton/skeleton-mixin.js +1 -1
  81. package/components/switch/switch-mixin.js +2 -2
  82. package/components/table/demo/table-test.js +1 -1
  83. package/components/table/table-col-sort-button.js +1 -1
  84. package/components/table/table-wrapper.js +1 -1
  85. package/components/tabs/tab-internal.js +1 -1
  86. package/components/tabs/tabs.js +2 -2
  87. package/components/tag-list/tag-list-item-mixin.js +1 -1
  88. package/components/tag-list/tag-list.js +2 -2
  89. package/components/tooltip/tooltip-help.js +1 -1
  90. package/components/tooltip/tooltip.js +1 -1
  91. package/helpers/demo/prism.html +3 -3
  92. package/mixins/{arrow-keys-mixin.md → arrow-keys/README.md} +2 -2
  93. package/mixins/arrow-keys/arrow-keys-mixin.js +125 -0
  94. package/mixins/{demo → arrow-keys/demo}/arrow-keys-mixin.html +2 -2
  95. package/mixins/{demo → arrow-keys/demo}/arrow-keys-test.js +1 -1
  96. package/mixins/arrow-keys-mixin.js +1 -125
  97. package/mixins/{focus-mixin.md → focus/README.md} +1 -1
  98. package/mixins/focus/focus-mixin.js +43 -0
  99. package/mixins/focus-mixin.js +1 -43
  100. package/mixins/{interactive-mixin.md → interactive/README.md} +1 -1
  101. package/mixins/{interactive-mixin.js → interactive/interactive-mixin.js} +4 -4
  102. package/mixins/{labelled-mixin.md → labelled/README.md} +2 -2
  103. package/mixins/{demo → labelled/demo}/labelled-mixin.html +3 -3
  104. package/mixins/labelled/labelled-mixin.js +215 -0
  105. package/mixins/labelled-mixin.js +1 -215
  106. package/mixins/{provider-mixin.md → provider/README.md} +3 -3
  107. package/mixins/provider/provider-mixin.js +35 -0
  108. package/mixins/provider-mixin.js +1 -35
  109. package/mixins/{rtl-mixin.md → rtl/README.md} +1 -1
  110. package/mixins/rtl/rtl-mixin.js +40 -0
  111. package/mixins/rtl-mixin.js +1 -40
  112. package/mixins/theme/theme-mixin.js +19 -0
  113. package/mixins/theme-mixin.js +1 -19
  114. package/mixins/{visible-on-ancestor-mixin.md → visible-on-ancestor/README.md} +1 -1
  115. package/mixins/visible-on-ancestor/visible-on-ancestor-mixin.js +160 -0
  116. package/mixins/visible-on-ancestor-mixin.js +1 -160
  117. package/package.json +1 -1
  118. package/templates/primary-secondary/primary-secondary.js +1 -1
package/README.md CHANGED
@@ -65,17 +65,17 @@ npm install @brightspace-ui/core
65
65
  * Helpers
66
66
  * [Helpers](helpers/): helpers for composed DOM, unique ids, etc.
67
67
  * Mixins
68
- * [ArrowKeysMixin](mixins/arrow-keys-mixin.md): manage focus with arrow keys
68
+ * [ArrowKeysMixin](mixins/arrow-keys/): manage focus with arrow keys
69
69
  * [AsyncContainerMixin](mixins/async-container/): manage collective async state
70
- * [FocusMixin](mixins/focus-mixin.md): delegate focus to a nested element when `focus()` is called
70
+ * [FocusMixin](mixins/focus/): delegate focus to a nested element when `focus()` is called
71
71
  * [FormElementMixin](components/form/docs/form-element-mixin.md): allow components to participate in forms and validation
72
- * [InteractiveMixin](mixins/interactive-mixin.md): enables toggling interactive elements inside of nested grids
73
- * [LabelledMixin](mixins/labelled-mixin.md): label custom elements by referencing elements across DOM scopes
72
+ * [InteractiveMixin](mixins/interactive/): enables toggling interactive elements inside of nested grids
73
+ * [LabelledMixin](mixins/labelled/): label custom elements by referencing elements across DOM scopes
74
74
  * [LocalizeMixin](mixins/localize/): localize text in your components
75
- * [ProviderMixin](mixins/provider-mixin.md): provide and consume data across elements in a DI-like fashion
76
- * [RtlMixin](mixins/rtl-mixin.md): enable components to define RTL styles
75
+ * [ProviderMixin](mixins/provider/): provide and consume data across elements in a DI-like fashion
76
+ * [RtlMixin](mixins/rtl/): enable components to define RTL styles
77
77
  * [SkeletonMixin](components/skeleton/): make components skeleton-aware
78
- * [VisibleOnAncestorMixin](mixins/visible-on-ancestor-mixin.md): display element on-hover of an ancestor
78
+ * [VisibleOnAncestorMixin](mixins/visible-on-ancestor/): display element on-hover of an ancestor
79
79
  * Templates
80
80
  * [PrimarySecondaryTemplate](templates/primary-secondary): Two Panel (primary and secondary) page template with header and optional footer
81
81
 
@@ -5,7 +5,7 @@ import { bodyCompactStyles, bodyStandardStyles } from '../typography/styles.js';
5
5
  import { css, html, LitElement } from 'lit';
6
6
  import { classMap } from 'lit/directives/class-map.js';
7
7
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
8
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
8
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
9
9
 
10
10
  /**
11
11
  * A component for communicating important information relating to the state of the system and the user's work flow.
@@ -1,10 +1,10 @@
1
1
  import '../icons/icon.js';
2
2
  import { css, html, LitElement } from 'lit';
3
3
  import { findComposedAncestor } from '../../helpers/dom.js';
4
- import { FocusMixin } from '../../mixins/focus-mixin.js';
4
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
5
5
  import { ifDefined } from 'lit/directives/if-defined.js';
6
6
  import { linkStyles } from '../link/link.js';
7
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
7
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
8
8
 
9
9
  /**
10
10
  * An entry within a <d2l-breadcrumbs> parent.
@@ -1,7 +1,7 @@
1
1
  import './breadcrumb.js';
2
2
  import { css, html, LitElement } from 'lit';
3
3
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
4
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
4
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
5
5
 
6
6
  /**
7
7
  * Help users understand where they are within the application, and provide useful clues about how the space is organized. They also provide a convenient navigation mechanism.
@@ -2,14 +2,14 @@ import '../colors/colors.js';
2
2
  import '../icons/icon.js';
3
3
  import '../tooltip/tooltip.js';
4
4
  import { css, html, LitElement, unsafeCSS } from 'lit';
5
- import { VisibleOnAncestorMixin, visibleOnAncestorStyles } from '../../mixins/visible-on-ancestor-mixin.js';
5
+ import { VisibleOnAncestorMixin, visibleOnAncestorStyles } from '../../mixins/visible-on-ancestor/visible-on-ancestor-mixin.js';
6
6
  import { ButtonMixin } from './button-mixin.js';
7
7
  import { buttonStyles } from './button-styles.js';
8
8
  import { getFocusPseudoClass } from '../../helpers/focus.js';
9
9
  import { getUniqueId } from '../../helpers/uniqueId.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
12
- import { ThemeMixin } from '../../mixins/theme-mixin.js';
11
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
12
+ import { ThemeMixin } from '../../mixins/theme/theme-mixin.js';
13
13
 
14
14
  /**
15
15
  * A button component that can be used just like the native button for instances where only an icon is displayed.
@@ -1,4 +1,4 @@
1
- import { FocusMixin } from '../../mixins/focus-mixin.js';
1
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
2
2
 
3
3
  export const ButtonMixin = superclass => class extends FocusMixin(superclass) {
4
4
 
@@ -3,10 +3,10 @@ import '../icons/icon.js';
3
3
  import '../tooltip/tooltip.js';
4
4
  import { css, html, LitElement } from 'lit';
5
5
  import { buttonStyles } from './button-styles.js';
6
- import { FocusMixin } from '../../mixins/focus-mixin.js';
6
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
7
7
  import { getUniqueId } from '../../helpers/uniqueId.js';
8
8
  import { ifDefined } from 'lit/directives/if-defined.js';
9
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
9
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
10
10
 
11
11
  const keyCodes = Object.freeze({
12
12
  DOWN: 40,
@@ -6,7 +6,7 @@ import { buttonStyles } from './button-styles.js';
6
6
  import { getUniqueId } from '../../helpers/uniqueId.js';
7
7
  import { ifDefined } from 'lit/directives/if-defined.js';
8
8
  import { labelStyles } from '../typography/styles.js';
9
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
9
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
10
10
 
11
11
  /**
12
12
  * A button component that can be used just like the native button, but for advanced or de-emphasized actions.
@@ -3,7 +3,7 @@ import '../../helpers/requestIdleCallback.js';
3
3
  import { css, html, LitElement } from 'lit';
4
4
  import { getBoundingAncestor, getComposedParent } from '../../helpers/dom.js';
5
5
  import { getLegacyOffsetParent } from '../../helpers/offsetParent-legacy.js';
6
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
6
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
7
7
  import { styleMap } from 'lit/directives/style-map.js';
8
8
 
9
9
  const mediaQueryList = window.matchMedia('(max-height: 500px)');
@@ -10,7 +10,7 @@ import { getUniqueId } from '../../helpers/uniqueId.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
12
12
  import { offscreenStyles } from '../offscreen/offscreen.js';
13
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
13
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
14
14
 
15
15
  const daysInWeek = 7;
16
16
  const keyCodes = {
@@ -2,10 +2,10 @@ import '../colors/colors.js';
2
2
  import '../count-badge/count-badge-icon.js';
3
3
  import '../icons/icon.js';
4
4
  import { css, html, LitElement } from 'lit';
5
- import { FocusMixin } from '../../mixins/focus-mixin.js';
5
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
6
6
  import { ifDefined } from 'lit/directives/if-defined.js';
7
7
  import { offscreenStyles } from '../offscreen/offscreen.js';
8
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
8
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
9
9
 
10
10
  /**
11
11
  * An icon link that can be placed in the `footer` slot.
@@ -1,11 +1,11 @@
1
1
  import '../colors/colors.js';
2
2
  import { css, html, LitElement } from 'lit';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
- import { FocusMixin } from '../../mixins/focus-mixin.js';
4
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
5
5
  import { ifDefined } from 'lit/directives/if-defined.js';
6
6
  import { offscreenStyles } from '../offscreen/offscreen.js';
7
7
  import ResizeObserver from 'resize-observer-polyfill/dist/ResizeObserver.es.js';
8
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
8
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
9
9
  import { styleMap } from 'lit/directives/style-map.js';
10
10
 
11
11
  /**
@@ -4,9 +4,9 @@ import '../expand-collapse/expand-collapse-content.js';
4
4
  import { css, html, LitElement } from 'lit';
5
5
  import { heading1Styles, heading2Styles, heading3Styles, heading4Styles } from '../typography/styles.js';
6
6
  import { classMap } from 'lit/directives/class-map.js';
7
- import { FocusMixin } from '../../mixins/focus-mixin.js';
7
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
8
8
  import { offscreenStyles } from '../offscreen/offscreen.js';
9
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
9
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
10
10
 
11
11
  const normalizeHeadingNumber = (number) => {
12
12
  number = parseInt(number);
@@ -2,7 +2,7 @@ import '../colors/colors.js';
2
2
  import '../icons/icon.js';
3
3
  import { css, html, LitElement, unsafeCSS } from 'lit';
4
4
  import { CountBadgeMixin } from './count-badge-mixin.js';
5
- import { FocusMixin } from '../../mixins/focus-mixin.js';
5
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
6
6
  import { getFocusPseudoClass } from '../../helpers/focus.js';
7
7
  import { getUniqueId } from '../../helpers/uniqueId.js';
8
8
  import { ifDefined } from 'lit/directives/if-defined.js';
@@ -5,7 +5,7 @@ import { formatNumber } from '@brightspace-ui/intl/lib/number.js';
5
5
  import { getUniqueId } from '../../helpers/uniqueId.js';
6
6
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
7
7
  import { offscreenStyles } from '../offscreen/offscreen.js';
8
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
8
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
9
9
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
10
10
  import { styleMap } from 'lit/directives/style-map.js';
11
11
 
@@ -1,7 +1,7 @@
1
1
  import '../colors/colors.js';
2
2
  import { css, html, LitElement, unsafeCSS } from 'lit';
3
3
  import { CountBadgeMixin } from './count-badge-mixin.js';
4
- import { FocusMixin } from '../../mixins/focus-mixin.js';
4
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
5
5
  import { getFocusPseudoClass } from '../../helpers/focus.js';
6
6
  import { getUniqueId } from '../../helpers/uniqueId.js';
7
7
  import { ifDefined } from 'lit/directives/if-defined.js';
@@ -8,7 +8,7 @@ import { classMap } from 'lit/directives/class-map.js';
8
8
  import { getUniqueId } from '../../helpers/uniqueId.js';
9
9
  import { html } from 'lit';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
11
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
12
12
  import { styleMap } from 'lit/directives/style-map.js';
13
13
  import { tryGetIfrauBackdropService } from '../../helpers/ifrauBackdropService.js';
14
14
 
@@ -3,7 +3,7 @@ import '../icons/icon.js';
3
3
  import { css, html, LitElement } from 'lit';
4
4
  import { DropdownOpenerMixin } from './dropdown-opener-mixin.js';
5
5
  import { dropdownOpenerStyles } from './dropdown-opener-styles.js';
6
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
6
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
7
7
 
8
8
  /**
9
9
  * A "d2l-button" opener for dropdown content.
@@ -7,7 +7,7 @@ import { getComposedActiveElement, getFirstFocusableDescendant, getPreviousFocus
7
7
  import { classMap } from 'lit/directives/class-map.js';
8
8
  import { html } from 'lit';
9
9
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
10
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
10
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
11
11
  import { styleMap } from 'lit/directives/style-map.js';
12
12
  import { tryGetIfrauBackdropService } from '../../helpers/ifrauBackdropService.js';
13
13
 
@@ -1,6 +1,6 @@
1
1
  import '../button/button-icon.js';
2
2
  import { css, html, LitElement } from 'lit';
3
- import { VisibleOnAncestorMixin, visibleOnAncestorStyles } from '../../mixins/visible-on-ancestor-mixin.js';
3
+ import { VisibleOnAncestorMixin, visibleOnAncestorStyles } from '../../mixins/visible-on-ancestor/visible-on-ancestor-mixin.js';
4
4
  import { DropdownOpenerMixin } from './dropdown-opener-mixin.js';
5
5
  import { dropdownOpenerStyles } from './dropdown-opener-styles.js';
6
6
 
@@ -1,7 +1,7 @@
1
1
  import { html, LitElement } from 'lit';
2
2
  import { DropdownContentMixin } from './dropdown-content-mixin.js';
3
3
  import { dropdownContentStyles } from './dropdown-content-styles.js';
4
- import { ThemeMixin } from '../../mixins/theme-mixin.js';
4
+ import { ThemeMixin } from '../../mixins/theme/theme-mixin.js';
5
5
 
6
6
  /**
7
7
  * A container for a "d2l-menu". It provides additional support on top of "d2l-dropdown-content" for closing the menu when menu items are selected, resetting to the root of nested menus when reopening and automatic resizing when the menu resizes.
@@ -1,6 +1,6 @@
1
1
  import '../button/button-icon.js';
2
2
  import { css, html, LitElement } from 'lit';
3
- import { VisibleOnAncestorMixin, visibleOnAncestorStyles } from '../../mixins/visible-on-ancestor-mixin.js';
3
+ import { VisibleOnAncestorMixin, visibleOnAncestorStyles } from '../../mixins/visible-on-ancestor/visible-on-ancestor-mixin.js';
4
4
  import { DropdownOpenerMixin } from './dropdown-opener-mixin.js';
5
5
  import { dropdownOpenerStyles } from './dropdown-opener-styles.js';
6
6
 
@@ -2,7 +2,7 @@ import '../button/button-subtle.js';
2
2
  import { emptyStateSimpleStyles, emptyStateStyles } from './empty-state-styles.js';
3
3
  import { html, LitElement } from 'lit';
4
4
  import { bodyCompactStyles } from '../typography/styles.js';
5
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
5
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
6
6
 
7
7
  /**
8
8
  * The `d2l-empty-state-simple` component is an empty state component that displays a description. An empty state action component can be placed inside of the default slot to add an optional action.
@@ -3,7 +3,7 @@ import './filter-tags.js';
3
3
  import { css, html, LitElement } from 'lit';
4
4
  import { OVERFLOW_CLASS, OverflowGroupMixin } from '../overflow-group/overflow-group-mixin.js';
5
5
  import { getUniqueId } from '../../helpers/uniqueId.js';
6
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
6
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
7
7
 
8
8
  function createFilterItem(node) {
9
9
  const dimensionSets = node.querySelectorAll('d2l-filter-dimension-set');
@@ -22,12 +22,12 @@ import { bodyCompactStyles, bodySmallStyles, bodyStandardStyles } from '../typog
22
22
  import { css, html, LitElement, nothing } from 'lit';
23
23
  import { announce } from '../../helpers/announce.js';
24
24
  import { classMap } from 'lit/directives/class-map.js';
25
- import { FocusMixin } from '../../mixins/focus-mixin.js';
25
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
26
26
  import { formatNumber } from '@brightspace-ui/intl/lib/number.js';
27
27
  import { ifDefined } from 'lit/directives/if-defined.js';
28
28
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
29
29
  import { offscreenStyles } from '../offscreen/offscreen.js';
30
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
30
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
31
31
  import { SubscriberRegistryController } from '../../controllers/subscriber/subscriberControllers.js';
32
32
 
33
33
  const ARROWLEFT_KEY_CODE = 37;
@@ -1,6 +1,6 @@
1
1
  import { css, html, LitElement } from 'lit';
2
2
  import { getNextFocusable, getPreviousFocusable } from '../../helpers/focus.js';
3
- import { FocusMixin } from '../../mixins/focus-mixin.js';
3
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
4
4
  import { ifDefined } from 'lit/directives/if-defined.js';
5
5
  import { isComposedAncestor } from '../../helpers/dom.js';
6
6
 
@@ -3,7 +3,7 @@ import '../expand-collapse/expand-collapse-content.js';
3
3
  import { css, html, LitElement } from 'lit';
4
4
  import { linkStyles } from '../link/link.js';
5
5
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
6
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
6
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
7
7
 
8
8
  class FormErrorSummary extends LocalizeCoreElement(RtlMixin(LitElement)) {
9
9
 
@@ -8,7 +8,7 @@
8
8
  import '../../demo/demo-page.js';
9
9
  import '../html-block.js';
10
10
 
11
- import { provideInstance } from '../../../mixins/provider-mixin.js';
11
+ import { provideInstance } from '../../../mixins/provider/provider-mixin.js';
12
12
 
13
13
  class DemoReplacementRenderer {
14
14
  get canRenderInline() {
@@ -6,7 +6,7 @@ import { createHtmlBlockRenderer as createMathRenderer } from '../../helpers/mat
6
6
  import { getFocusPseudoClass } from '../../helpers/focus.js';
7
7
  import { HtmlAttributeObserverController } from '../../controllers/attributeObserver/htmlAttributeObserverController.js';
8
8
 
9
- import { requestInstance } from '../../mixins/provider-mixin.js';
9
+ import { requestInstance } from '../../mixins/provider/provider-mixin.js';
10
10
 
11
11
  export const htmlBlockContentStyles = css`
12
12
  .d2l-html-block-rendered {
@@ -1,7 +1,7 @@
1
1
  import { css, html, LitElement } from 'lit';
2
2
  import { fixSvg } from './fix-svg.js';
3
3
  import { iconStyles } from './icon-styles.js';
4
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
4
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
5
5
 
6
6
  class IconCustom extends RtlMixin(LitElement) {
7
7
 
@@ -3,7 +3,7 @@ import { css, html, LitElement } from 'lit';
3
3
  import { fixSvg } from './fix-svg.js';
4
4
  import { iconStyles } from './icon-styles.js';
5
5
  import { loadSvg } from '../../generated/icons/presetIconLoader.js';
6
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
6
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
7
7
  import { runAsync } from '../../directives/run-async/run-async.js';
8
8
  import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
9
9
 
@@ -23,7 +23,7 @@ Import the label styles and `RtlMixin` and include them in your component:
23
23
 
24
24
  ```javascript
25
25
  import {inputLabelStyles} from '@brightspace-ui/core/components/inputs/input-label-styles.js';
26
- import {RtlMixin} from '@brightspace-ui/core/mixins/rtl-mixin.js';
26
+ import {RtlMixin} from '@brightspace-ui/core/mixins/rtl/rtl-mixin.js';
27
27
 
28
28
  class MyElem extends RtlMixin(LitElement) {
29
29
 
@@ -1,6 +1,6 @@
1
1
  import { html, LitElement } from 'lit';
2
2
  import { radioStyles } from '../input-radio-styles.js';
3
- import { RtlMixin } from '../../../mixins/rtl-mixin.js';
3
+ import { RtlMixin } from '../../../mixins/rtl/rtl-mixin.js';
4
4
 
5
5
  class TestInputRadioLabelSimple extends RtlMixin(LitElement) {
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { css, html, LitElement } from 'lit';
2
2
  import { radioStyles } from '../input-radio-styles.js';
3
- import { RtlMixin } from '../../../mixins/rtl-mixin.js';
3
+ import { RtlMixin } from '../../../mixins/rtl/rtl-mixin.js';
4
4
 
5
5
  class TestInputRadioLabel extends RtlMixin(LitElement) {
6
6
 
@@ -1,5 +1,5 @@
1
1
  import { css, html, LitElement } from 'lit';
2
- import { RtlMixin } from '../../../mixins/rtl-mixin.js';
2
+ import { RtlMixin } from '../../../mixins/rtl/rtl-mixin.js';
3
3
  import { selectStyles } from '../input-select-styles.js';
4
4
  import { SkeletonMixin } from '../../../components/skeleton/skeleton-mixin.js';
5
5
 
@@ -39,7 +39,7 @@ For disabled items, add the `d2l-input-radio-label-disabled` class on the label
39
39
  ```html
40
40
  <script type="module">
41
41
  import { html, LitElement } from 'lit';
42
- import { RtlMixin } from '@brightspace-ui/core/mixins/rtl-mixin.js';
42
+ import { RtlMixin } from '@brightspace-ui/core/mixins/rtl/rtl-mixin.js';
43
43
  import { radioStyles } from '@brightspace-ui/core/components/inputs/input-radio-styles.js';
44
44
 
45
45
  class MyRadioElem extends RtlMixin(LitElement) {
@@ -56,7 +56,7 @@ Note: in order for RTL to function correctly, make sure your component uses the
56
56
  ```html
57
57
  <script type="module">
58
58
  import { css, html, LitElement } from 'lit';
59
- import { RtlMixin } from '@brightspace-ui/core/mixins/rtl-mixin.js';
59
+ import { RtlMixin } from '@brightspace-ui/core/mixins/rtl/rtl-mixin.js';
60
60
  import { selectStyles } from '@brightspace-ui/core/components/inputs/input-select-styles.js';
61
61
  import { SkeletonMixin } from '@brightspace-ui/core/components/skeleton/skeleton-mixin.js';
62
62
 
@@ -1,5 +1,5 @@
1
1
  import { css, html, LitElement } from 'lit';
2
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
2
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
3
3
 
4
4
  /**
5
5
  * Used to align related content below checkboxes
@@ -1,11 +1,11 @@
1
1
  import '../colors/colors.js';
2
2
  import { css, html, LitElement } from 'lit';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
- import { FocusMixin } from '../../mixins/focus-mixin.js';
4
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
5
5
  import { getUniqueId } from '../../helpers/uniqueId.js';
6
6
  import { ifDefined } from 'lit/directives/if-defined.js';
7
7
  import { offscreenStyles } from '../offscreen/offscreen.js';
8
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
8
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
9
9
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
10
10
 
11
11
  export const checkboxStyles = css`
@@ -4,7 +4,7 @@ import '../tooltip/tooltip.js';
4
4
  import { css, html, LitElement, nothing, unsafeCSS } from 'lit';
5
5
  import { buttonStyles } from '../button/button-styles.js';
6
6
  import { classMap } from 'lit/directives/class-map.js';
7
- import { FocusMixin } from '../../mixins/focus-mixin.js';
7
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
8
8
  import { FormElementMixin } from '../form/form-element-mixin.js';
9
9
  import { getFocusPseudoClass } from '../../helpers/focus.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
@@ -4,12 +4,12 @@ import './input-fieldset.js';
4
4
  import '../tooltip/tooltip.js';
5
5
  import { css, html, LitElement } from 'lit';
6
6
  import { formatDateTimeInISO, getDateFromISODate, parseISODateTime } from '../../helpers/dateTime.js';
7
- import { FocusMixin } from '../../mixins/focus-mixin.js';
7
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
8
8
  import { FormElementMixin } from '../form/form-element-mixin.js';
9
9
  import { getUniqueId } from '../../helpers/uniqueId.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
12
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
12
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
13
13
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
14
14
 
15
15
  export function getShiftedEndDate(startValue, endValue, prevStartValue, inclusive) {
@@ -5,12 +5,12 @@ import '../tooltip/tooltip.js';
5
5
  import { convertLocalToUTCDateTime, convertUTCToLocalDateTime } from '@brightspace-ui/intl/lib/dateTime.js';
6
6
  import { css, html, LitElement } from 'lit';
7
7
  import { formatDateTimeInISO, getAdjustedTime, getDateFromISODateTime, getDateNoConversion, parseISODateTime } from '../../helpers/dateTime.js';
8
- import { FocusMixin } from '../../mixins/focus-mixin.js';
8
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
9
9
  import { FormElementMixin } from '../form/form-element-mixin.js';
10
10
  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
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
13
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
14
14
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
15
15
 
16
16
  function _isSameDate(date1, date2) {
@@ -13,15 +13,15 @@ import { formatDateInISO,
13
13
  parseISODate,
14
14
  parseISODateTime,
15
15
  parseISOTime } from '../../helpers/dateTime.js';
16
- import { FocusMixin } from '../../mixins/focus-mixin.js';
16
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
17
17
  import { FormElementMixin } from '../form/form-element-mixin.js';
18
18
  import { getDefaultTime } from './input-time.js';
19
19
  import { getDocumentLocaleSettings } from '@brightspace-ui/intl/lib/common.js';
20
20
  import { getUniqueId } from '../../helpers/uniqueId.js';
21
21
  import { ifDefined } from 'lit/directives/if-defined.js';
22
- import { LabelledMixin } from '../../mixins/labelled-mixin.js';
22
+ import { LabelledMixin } from '../../mixins/labelled/labelled-mixin.js';
23
23
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
24
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
24
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
25
25
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
26
26
  import { styleMap } from 'lit/directives/style-map.js';
27
27
 
@@ -8,11 +8,11 @@ import './input-text.js';
8
8
  import { css, html, LitElement } from 'lit';
9
9
  import { formatDate, parseDate } from '@brightspace-ui/intl/lib/dateTime.js';
10
10
  import { formatDateInISO, getDateFromISODate, getDateTimeDescriptorShared, getToday } from '../../helpers/dateTime.js';
11
- import { FocusMixin } from '../../mixins/focus-mixin.js';
11
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
12
12
  import { FormElementMixin } from '../form/form-element-mixin.js';
13
13
  import { getUniqueId } from '../../helpers/uniqueId.js';
14
14
  import { ifDefined } from 'lit/directives/if-defined.js';
15
- import { LabelledMixin } from '../../mixins/labelled-mixin.js';
15
+ import { LabelledMixin } from '../../mixins/labelled/labelled-mixin.js';
16
16
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
17
17
  import ResizeObserver from 'resize-observer-polyfill/dist/ResizeObserver.es.js';
18
18
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
@@ -2,7 +2,7 @@ import { css, html, LitElement } from 'lit';
2
2
  import { classMap } from 'lit/directives/class-map.js';
3
3
  import { inputLabelStyles } from './input-label-styles.js';
4
4
  import { offscreenStyles } from '../offscreen/offscreen.js';
5
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
5
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
6
6
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
7
7
 
8
8
  /**
@@ -1,11 +1,11 @@
1
1
  import './input-text.js';
2
2
  import { css, html, LitElement } from 'lit';
3
3
  import { formatNumber, getNumberDescriptor, parseNumber } from '@brightspace-ui/intl/lib/number.js';
4
- import { FocusMixin } from '../../mixins/focus-mixin.js';
4
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
5
5
  import { FormElementMixin } from '../form/form-element-mixin.js';
6
6
  import { getUniqueId } from '../../helpers/uniqueId.js';
7
7
  import { ifDefined } from 'lit/directives/if-defined.js';
8
- import { LabelledMixin } from '../../mixins/labelled-mixin.js';
8
+ import { LabelledMixin } from '../../mixins/labelled/labelled-mixin.js';
9
9
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
10
10
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
11
11
 
@@ -1,11 +1,11 @@
1
1
  import './input-number.js';
2
2
  import { css, html, LitElement } from 'lit';
3
- import { FocusMixin } from '../../mixins/focus-mixin.js';
3
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
4
4
  import { FormElementMixin } from '../form/form-element-mixin.js';
5
5
  import { ifDefined } from 'lit/directives/if-defined.js';
6
- import { LabelledMixin } from '../../mixins/labelled-mixin.js';
6
+ import { LabelledMixin } from '../../mixins/labelled/labelled-mixin.js';
7
7
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
8
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
8
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
9
9
  import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
10
10
 
11
11
  /**
@@ -1,5 +1,5 @@
1
1
  import { css, html, LitElement } from 'lit';
2
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
2
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
3
3
 
4
4
  /**
5
5
  * Used to align related content below radio buttons
@@ -2,11 +2,11 @@ import '../button/button-icon.js';
2
2
  import '../colors/colors.js';
3
3
  import './input-text.js';
4
4
  import { css, html, LitElement } from 'lit';
5
- import { FocusMixin } from '../../mixins/focus-mixin.js';
5
+ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
6
6
  import { ifDefined } from 'lit/directives/if-defined.js';
7
7
  import { inputStyles } from './input-styles.js';
8
8
  import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
9
- import { RtlMixin } from '../../mixins/rtl-mixin.js';
9
+ import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
10
10
 
11
11
  const INPUT_TIMEOUT_MS = 400;
12
12