@brightspace-ui/core 3.267.1 → 3.268.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 (113) hide show
  1. package/components/alert/alert-toast.js +98 -102
  2. package/components/alert/alert.js +109 -113
  3. package/components/backdrop/backdrop-dirty-overlay.js +13 -17
  4. package/components/backdrop/backdrop-loading.js +105 -109
  5. package/components/backdrop/backdrop.js +50 -54
  6. package/components/breadcrumbs/breadcrumb-current-page.js +19 -23
  7. package/components/breadcrumbs/breadcrumb.js +50 -54
  8. package/components/breadcrumbs/breadcrumbs.js +34 -38
  9. package/components/button/button-add.js +156 -164
  10. package/components/button/button-copy-mixin.js +9 -11
  11. package/components/button/button-copy.js +15 -19
  12. package/components/button/button-icon.js +110 -114
  13. package/components/button/button-move.js +153 -157
  14. package/components/button/button-split-item.js +16 -20
  15. package/components/button/button-split.js +70 -74
  16. package/components/button/button-subtle-copy.js +17 -19
  17. package/components/button/button-subtle.js +145 -149
  18. package/components/button/button-toggle.js +25 -29
  19. package/components/button/button.js +70 -74
  20. package/components/button/floating-buttons.js +63 -67
  21. package/components/calendar/calendar.js +244 -248
  22. package/components/card/card-content-meta.js +13 -15
  23. package/components/card/card-content-title.js +9 -11
  24. package/components/card/card-footer-link.js +76 -80
  25. package/components/card/card-loading-shimmer.js +35 -39
  26. package/components/card/card.js +188 -192
  27. package/components/collapsible-panel/collapsible-panel-group.js +17 -21
  28. package/components/collapsible-panel/collapsible-panel-summary-item.js +27 -31
  29. package/components/collapsible-panel/collapsible-panel.js +258 -262
  30. package/components/count-badge/count-badge-icon.js +12 -16
  31. package/components/count-badge/count-badge-mixin.js +124 -128
  32. package/components/count-badge/count-badge.js +2 -4
  33. package/components/description-list/description-list-wrapper.js +27 -31
  34. package/components/dialog/dialog-confirm.js +55 -59
  35. package/components/dialog/dialog-fullscreen.js +128 -132
  36. package/components/dialog/dialog-mixin.js +39 -41
  37. package/components/dialog/dialog.js +61 -65
  38. package/components/dropdown/dropdown-button-subtle.js +21 -25
  39. package/components/dropdown/dropdown-button.js +31 -35
  40. package/components/dropdown/dropdown-context-menu.js +28 -31
  41. package/components/dropdown/dropdown-menu.js +27 -31
  42. package/components/dropdown/dropdown-more.js +23 -26
  43. package/components/dropdown/dropdown-opener-mixin.js +44 -46
  44. package/components/dropdown/dropdown-popover-mixin.js +155 -159
  45. package/components/dropdown/dropdown-tabs.js +5 -7
  46. package/components/dropdown/dropdown.js +1 -3
  47. package/components/empty-state/empty-state-action-button.js +18 -22
  48. package/components/empty-state/empty-state-action-link.js +14 -18
  49. package/components/empty-state/empty-state-illustrated.js +21 -25
  50. package/components/empty-state/empty-state-simple.js +8 -12
  51. package/components/expand-collapse/expand-collapse-content.js +48 -52
  52. package/components/filter/filter-dimension-set-date-text-value.js +34 -36
  53. package/components/filter/filter-dimension-set-date-time-range-value.js +45 -47
  54. package/components/filter/filter-dimension-set-empty-state.js +17 -19
  55. package/components/filter/filter-dimension-set-value.js +27 -29
  56. package/components/filter/filter-dimension-set.js +65 -67
  57. package/components/filter/filter-overflow-group.js +15 -19
  58. package/components/filter/filter-tags.js +16 -19
  59. package/components/filter/filter.js +115 -119
  60. package/components/focus-trap/focus-trap.js +17 -21
  61. package/components/form/form-element-mixin.js +33 -35
  62. package/components/form/form-error-summary.js +37 -42
  63. package/components/form/form.js +33 -37
  64. package/components/hierarchical-view/hierarchical-view-mixin.js +76 -80
  65. package/components/hierarchical-view/hierarchical-view.js +5 -7
  66. package/components/html-block/html-block.js +45 -49
  67. package/components/icons/icon-custom.js +20 -24
  68. package/components/icons/icon.js +20 -24
  69. package/components/icons/slotted-icon-mixin.js +16 -18
  70. package/components/inputs/input-checkbox-group.js +34 -38
  71. package/components/inputs/input-checkbox.js +106 -110
  72. package/components/inputs/input-color.js +142 -148
  73. package/components/inputs/input-date-range.js +90 -94
  74. package/components/inputs/input-date-time-range-to.js +70 -74
  75. package/components/inputs/input-date-time-range.js +110 -115
  76. package/components/inputs/input-date-time.js +75 -79
  77. package/components/inputs/input-date.js +101 -105
  78. package/components/inputs/input-fieldset.js +37 -43
  79. package/components/inputs/input-group.js +10 -12
  80. package/components/inputs/input-inline-help.js +4 -6
  81. package/components/inputs/input-number.js +112 -118
  82. package/components/inputs/input-percent.js +52 -58
  83. package/components/inputs/input-radio-group.js +45 -49
  84. package/components/inputs/input-radio-spacer.js +11 -13
  85. package/components/inputs/input-radio.js +62 -66
  86. package/components/inputs/input-search.js +63 -68
  87. package/components/inputs/input-select-styles.js +30 -25
  88. package/components/inputs/input-text.js +245 -251
  89. package/components/inputs/input-textarea.js +128 -132
  90. package/components/inputs/input-time-range.js +100 -104
  91. package/components/inputs/input-time.js +107 -113
  92. package/components/link/link-mixin.js +37 -41
  93. package/components/link/link.js +113 -119
  94. package/components/list/list-controls.js +25 -29
  95. package/components/list/list-item-button-mixin.js +10 -12
  96. package/components/list/list-item-checkbox-mixin.js +35 -37
  97. package/components/list/list-item-content.js +33 -35
  98. package/components/list/list-item-drag-drop-mixin.js +45 -47
  99. package/components/list/list-item-drag-handle.js +80 -84
  100. package/components/list/list-item-drag-image.js +77 -81
  101. package/components/list/list-item-expand-collapse-mixin.js +17 -19
  102. package/components/list/list-item-generic-layout.js +222 -226
  103. package/components/list/list-item-link-mixin.js +10 -12
  104. package/components/list/list-item-mixin.js +68 -70
  105. package/components/list/list-item-nav-mixin.js +17 -19
  106. package/components/list/list-item-placement-marker.js +65 -67
  107. package/components/list/list-item-role-mixin.js +9 -11
  108. package/components/list/list-item.js +7 -9
  109. package/components/list/list.js +121 -125
  110. package/components/loading-spinner/loading-spinner.js +93 -97
  111. package/custom-elements.json +1920 -6694
  112. package/helpers/focus.js +5 -1
  113. package/package.json +3 -2
@@ -126,120 +126,114 @@ function initIntervals(size, enforceTimeIntervals) {
126
126
  */
127
127
  class InputTime extends InputInlineHelpMixin(FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(LitElement))))) {
128
128
 
129
- static get properties() {
130
- return {
131
- /**
132
- * Default value of input. Accepts times formatted as "hh:mm:ss", and the keywords "startOfDay" and "endOfDay".
133
- * @type {string}
134
- */
135
- defaultValue: { type: String, attribute: 'default-value' },
136
- /**
137
- * Disables the input
138
- * @type {boolean}
139
- */
140
- disabled: { type: Boolean },
141
- /**
142
- * Rounds typed input up to nearest valid interval time (specified with "time-interval")
143
- * @type {boolean}
144
- */
145
- enforceTimeIntervals: { type: Boolean, attribute: 'enforce-time-intervals' },
146
- /**
147
- * Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.
148
- * @type {boolean}
149
- */
150
- labelHidden: { type: Boolean, attribute: 'label-hidden' },
151
- /**
152
- * Overrides max-height of the time dropdown menu
153
- * @type {number}
154
- */
155
- maxHeight: { type: Number, attribute: 'max-height' },
156
- /**
157
- * Indicates if the dropdown is open
158
- * @type {boolean}
159
- */
160
- opened: { type: Boolean },
161
- /**
162
- * Indicates that a value is required
163
- * @type {boolean}
164
- */
165
- required: { type: Boolean, reflect: true },
166
- /**
167
- * Number of minutes between times shown in dropdown menu
168
- * @type {'five'|'ten'|'fifteen'|'twenty'|'thirty'|'sixty'}
169
- */
170
- timeInterval: { type: String, attribute: 'time-interval' },
171
- /**
172
- * Time zone identifier for the input to use. e.g. America/Toronto. Defaults to the user's account or device time zone setting.
173
- * @type {string}
174
- */
175
- timeZoneId: { type: String, attribute: 'time-zone-id' },
176
- /**
177
- * Hides the time zone inside the selection dropdown. Should only be used when the input value is not related to any one time zone
178
- * @type {Boolean}
179
- */
180
- timeZoneHidden: { type: Boolean, attribute: 'time-zone-hidden' },
181
- /**
182
- * Value of the input
183
- * @type {string}
184
- */
185
- value: { type: String },
186
- _dropdownFirstOpened: { type: Boolean },
187
- _formattedValue: { type: String },
188
- _hiddenContentWidth: { type: String },
189
- _timeZone: { state: true },
190
- };
191
- }
192
-
193
- static get styles() {
194
- return [
195
- super.styles,
196
- bodySmallStyles,
197
- inputLabelStyles,
198
- inputStyles,
199
- offscreenStyles,
200
- css`
201
- :host {
202
- display: inline-block;
203
- max-width: 6rem;
204
- width: 100%;
205
- }
206
- :host([hidden]) {
207
- display: none;
208
- }
209
- d2l-dropdown-menu[data-mobile][mobile-tray] .d2l-input-time-menu {
210
- text-align: center;
211
- }
212
- .d2l-input-label {
213
- display: inline-block;
214
- vertical-align: top;
215
- }
216
- .d2l-input-time-time-zone {
217
- line-height: 1.8rem;
218
- text-align: center;
219
- vertical-align: middle;
220
- width: auto;
221
- }
222
- .d2l-input-time-time-zone.d2l-input-time-time-zone-custom {
223
- align-items: center;
224
- column-gap: 0.3rem;
225
- display: flex;
226
- font-weight: 700;
227
- justify-content: center;
228
- }
129
+ static properties = {
130
+ /**
131
+ * Default value of input. Accepts times formatted as "hh:mm:ss", and the keywords "startOfDay" and "endOfDay".
132
+ * @type {string}
133
+ */
134
+ defaultValue: { type: String, attribute: 'default-value' },
135
+ /**
136
+ * Disables the input
137
+ * @type {boolean}
138
+ */
139
+ disabled: { type: Boolean },
140
+ /**
141
+ * Rounds typed input up to nearest valid interval time (specified with "time-interval")
142
+ * @type {boolean}
143
+ */
144
+ enforceTimeIntervals: { type: Boolean, attribute: 'enforce-time-intervals' },
145
+ /**
146
+ * Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.
147
+ * @type {boolean}
148
+ */
149
+ labelHidden: { type: Boolean, attribute: 'label-hidden' },
150
+ /**
151
+ * Overrides max-height of the time dropdown menu
152
+ * @type {number}
153
+ */
154
+ maxHeight: { type: Number, attribute: 'max-height' },
155
+ /**
156
+ * Indicates if the dropdown is open
157
+ * @type {boolean}
158
+ */
159
+ opened: { type: Boolean },
160
+ /**
161
+ * Indicates that a value is required
162
+ * @type {boolean}
163
+ */
164
+ required: { type: Boolean, reflect: true },
165
+ /**
166
+ * Number of minutes between times shown in dropdown menu
167
+ * @type {'five'|'ten'|'fifteen'|'twenty'|'thirty'|'sixty'}
168
+ */
169
+ timeInterval: { type: String, attribute: 'time-interval' },
170
+ /**
171
+ * Time zone identifier for the input to use. e.g. America/Toronto. Defaults to the user's account or device time zone setting.
172
+ * @type {string}
173
+ */
174
+ timeZoneId: { type: String, attribute: 'time-zone-id' },
175
+ /**
176
+ * Hides the time zone inside the selection dropdown. Should only be used when the input value is not related to any one time zone
177
+ * @type {Boolean}
178
+ */
179
+ timeZoneHidden: { type: Boolean, attribute: 'time-zone-hidden' },
180
+ /**
181
+ * Value of the input
182
+ * @type {string}
183
+ */
184
+ value: { type: String },
185
+ _dropdownFirstOpened: { type: Boolean },
186
+ _formattedValue: { type: String },
187
+ _hiddenContentWidth: { type: String },
188
+ _timeZone: { state: true },
189
+ };
190
+
191
+ static styles = [
192
+ super.styles,
193
+ bodySmallStyles,
194
+ inputLabelStyles,
195
+ inputStyles,
196
+ offscreenStyles, css`
197
+ :host {
198
+ display: inline-block;
199
+ max-width: 6rem;
200
+ width: 100%;
201
+ }
202
+ :host([hidden]) {
203
+ display: none;
204
+ }
205
+ d2l-dropdown-menu[data-mobile][mobile-tray] .d2l-input-time-menu {
206
+ text-align: center;
207
+ }
208
+ .d2l-input-label {
209
+ display: inline-block;
210
+ vertical-align: top;
211
+ }
212
+ .d2l-input-time-time-zone {
213
+ line-height: 1.8rem;
214
+ text-align: center;
215
+ vertical-align: middle;
216
+ width: auto;
217
+ }
218
+ .d2l-input-time-time-zone.d2l-input-time-time-zone-custom {
219
+ align-items: center;
220
+ column-gap: 0.3rem;
221
+ display: flex;
222
+ font-weight: 700;
223
+ justify-content: center;
224
+ }
229
225
 
230
- .d2l-input-time-hidden-content {
231
- font-family: inherit;
232
- font-size: 0.8rem;
233
- font-weight: 400;
234
- letter-spacing: 0.02rem;
235
- line-height: 1.4rem;
236
- position: absolute;
237
- visibility: hidden;
238
- width: auto;
239
- }
240
- `
241
- ];
242
- }
226
+ .d2l-input-time-hidden-content {
227
+ font-family: inherit;
228
+ font-size: 0.8rem;
229
+ font-weight: 400;
230
+ letter-spacing: 0.02rem;
231
+ line-height: 1.4rem;
232
+ position: absolute;
233
+ visibility: hidden;
234
+ width: auto;
235
+ }
236
+ `];
243
237
 
244
238
  constructor() {
245
239
  super();
@@ -7,50 +7,46 @@ import { offscreenStyles } from '../offscreen/offscreen.js';
7
7
 
8
8
  export const LinkMixin = superclass => class extends LocalizeCoreElement(superclass) {
9
9
 
10
- static get properties() {
11
- return {
12
- /**
13
- * Prompts the user to save the linked URL instead of navigating to it.
14
- * Must be to a resource on the same origin.
15
- * Can be used with or without a value, when set the value becomes the filename.
16
- * @type {string}
17
- */
18
- download: { type: String },
19
- /**
20
- * REQUIRED: URL or URL fragment of the link
21
- * @type {string}
22
- */
23
- href: { type: String },
24
- /**
25
- * Where to display the linked URL
26
- * @type {string}
27
- */
28
- target: { type: String }
29
- };
30
- }
10
+ static properties = {
11
+ /**
12
+ * Prompts the user to save the linked URL instead of navigating to it.
13
+ * Must be to a resource on the same origin.
14
+ * Can be used with or without a value, when set the value becomes the filename.
15
+ * @type {string}
16
+ */
17
+ download: { type: String },
18
+ /**
19
+ * REQUIRED: URL or URL fragment of the link
20
+ * @type {string}
21
+ */
22
+ href: { type: String },
23
+ /**
24
+ * Where to display the linked URL
25
+ * @type {string}
26
+ */
27
+ target: { type: String }
28
+ };
31
29
 
32
- static get styles() {
33
- return [offscreenStyles, css`
34
- #new-window {
35
- line-height: 0;
36
- white-space: nowrap;
37
- }
38
- d2l-icon {
39
- color: inherit;
40
- height: calc(1em - 1px);
41
- margin-inline-start: 0.315em;
42
- transform: translateY(0.1em);
43
- vertical-align: inherit;
44
- width: calc(1em - 1px);
45
- }
30
+ static styles = [offscreenStyles, css`
31
+ #new-window {
32
+ line-height: 0;
33
+ white-space: nowrap;
34
+ }
35
+ d2l-icon {
36
+ color: inherit;
37
+ height: calc(1em - 1px);
38
+ margin-inline-start: 0.315em;
39
+ transform: translateY(0.1em);
40
+ vertical-align: inherit;
41
+ width: calc(1em - 1px);
42
+ }
46
43
 
47
- @media print {
48
- d2l-icon {
49
- display: none;
50
- }
44
+ @media print {
45
+ d2l-icon {
46
+ display: none;
51
47
  }
52
- `];
53
- }
48
+ }
49
+ `];
54
50
 
55
51
  getNewWindowDescription(label) {
56
52
  return label && this.target === '_blank' ? this.localize('components.link.open-in-new-window') : undefined;
@@ -20,129 +20,123 @@ export const linkStyles = _generateLinkStyles('.d2l-link', true);
20
20
  */
21
21
  class Link extends LocalizeCoreElement(FocusMixin(LitElement)) {
22
22
 
23
- static get properties() {
24
- return {
25
- /**
26
- * ACCESSIBILITY: Label to provide more context for screen reader users when the link text is not enough
27
- * @type {string}
28
- */
29
- ariaLabel: { type: String, attribute: 'aria-label' },
30
- /**
31
- * Disables the link
32
- * @type {boolean}
33
- */
34
- disabled: { type: Boolean, reflect: true },
35
- /**
36
- * Tooltip text when disabled
37
- * @type {string}
38
- */
39
- disabledTooltip: { type: String, attribute: 'disabled-tooltip', reflect: true },
40
- /**
41
- * Download a URL instead of navigating to it
42
- * @type {boolean}
43
- */
44
- download: { type: Boolean },
45
- /**
46
- * REQUIRED: URL or URL fragment of the link
47
- * @type {string}
48
- */
49
- href: { type: String },
50
- /**
51
- * Whether to apply the "main" link style
52
- * @type {boolean}
53
- */
54
- main: { type: Boolean, reflect: true },
55
- /**
56
- * The number of lines to display before truncating text with an ellipsis. The text will not be truncated unless a value is specified.
57
- * @type {number}
58
- */
59
- lines: { type: Number },
60
- /**
61
- * Whether to apply the "small" link style
62
- * @type {boolean}
63
- */
64
- small: { type: Boolean, reflect: true },
65
- /**
66
- * Where to display the linked URL
67
- * @type {string}
68
- */
69
- target: { type: String }
70
- };
71
- }
23
+ static properties = {
24
+ /**
25
+ * ACCESSIBILITY: Label to provide more context for screen reader users when the link text is not enough
26
+ * @type {string}
27
+ */
28
+ ariaLabel: { type: String, attribute: 'aria-label' },
29
+ /**
30
+ * Disables the link
31
+ * @type {boolean}
32
+ */
33
+ disabled: { type: Boolean, reflect: true },
34
+ /**
35
+ * Tooltip text when disabled
36
+ * @type {string}
37
+ */
38
+ disabledTooltip: { type: String, attribute: 'disabled-tooltip', reflect: true },
39
+ /**
40
+ * Download a URL instead of navigating to it
41
+ * @type {boolean}
42
+ */
43
+ download: { type: Boolean },
44
+ /**
45
+ * REQUIRED: URL or URL fragment of the link
46
+ * @type {string}
47
+ */
48
+ href: { type: String },
49
+ /**
50
+ * Whether to apply the "main" link style
51
+ * @type {boolean}
52
+ */
53
+ main: { type: Boolean, reflect: true },
54
+ /**
55
+ * The number of lines to display before truncating text with an ellipsis. The text will not be truncated unless a value is specified.
56
+ * @type {number}
57
+ */
58
+ lines: { type: Number },
59
+ /**
60
+ * Whether to apply the "small" link style
61
+ * @type {boolean}
62
+ */
63
+ small: { type: Boolean, reflect: true },
64
+ /**
65
+ * Where to display the linked URL
66
+ * @type {string}
67
+ */
68
+ target: { type: String }
69
+ };
72
70
 
73
- static get styles() {
74
- return [ linkStyles, offscreenStyles,
75
- css`
76
- :host {
77
- display: inline;
78
- }
79
- :host([hidden]) {
80
- display: none;
81
- }
82
- :host([small]) {
83
- /* needed to keep host element same height as link */
84
- font-size: 0.7rem;
85
- line-height: 1.05rem;
86
- }
87
- :host([lines]) {
88
- min-width: 0;
89
- }
90
- a {
91
- display: inherit;
92
- }
93
- :host([lines]) a {
94
- align-items: baseline;
95
- display: flex;
96
- }
97
- a span.truncate {
98
- ${getOverflowDeclarations({ lines: 1 })}
99
- }
100
- a span.truncate-one {
101
- ${overflowEllipsisDeclarations}
102
- }
103
- #new-window {
104
- line-height: 0;
105
- white-space: nowrap;
106
- }
107
- d2l-icon {
108
- color: var(--d2l-theme-text-color-interactive-default);
109
- height: calc(1em - 1px);
110
- margin-inline-start: 0.315em;
111
- transform: translateY(0.1em);
112
- vertical-align: inherit;
113
- width: calc(1em - 1px);
114
- }
71
+ static styles = [linkStyles, offscreenStyles, css`
72
+ :host {
73
+ display: inline;
74
+ }
75
+ :host([hidden]) {
76
+ display: none;
77
+ }
78
+ :host([small]) {
79
+ /* needed to keep host element same height as link */
80
+ font-size: 0.7rem;
81
+ line-height: 1.05rem;
82
+ }
83
+ :host([lines]) {
84
+ min-width: 0;
85
+ }
86
+ a {
87
+ display: inherit;
88
+ }
89
+ :host([lines]) a {
90
+ align-items: baseline;
91
+ display: flex;
92
+ }
93
+ a span.truncate {
94
+ ${getOverflowDeclarations({ lines: 1 })}
95
+ }
96
+ a span.truncate-one {
97
+ ${overflowEllipsisDeclarations}
98
+ }
99
+ #new-window {
100
+ line-height: 0;
101
+ white-space: nowrap;
102
+ }
103
+ d2l-icon {
104
+ color: var(--d2l-theme-text-color-interactive-default);
105
+ height: calc(1em - 1px);
106
+ margin-inline-start: 0.315em;
107
+ transform: translateY(0.1em);
108
+ vertical-align: inherit;
109
+ width: calc(1em - 1px);
110
+ }
115
111
 
116
- a:hover d2l-icon {
117
- --d2l-icon-fill-color: var(--d2l-theme-text-color-interactive-hover);
118
- }
112
+ a:hover d2l-icon {
113
+ --d2l-icon-fill-color: var(--d2l-theme-text-color-interactive-hover);
114
+ }
119
115
 
120
- :host([disabled]:not([disabled-tooltip])) a:hover {
121
- color: var(--d2l-theme-text-color-interactive-default);
122
- text-decoration: none;
123
- }
124
- :host([disabled]:not([disabled-tooltip])) a:hover d2l-icon {
125
- --d2l-icon-fill-color: var(--d2l-theme-text-color-interactive-default);
126
- }
127
- a[aria-disabled="true"],
128
- a[aria-disabled="true"]:active {
129
- cursor: default;
130
- }
131
- a[aria-disabled="true"] .d2l-link-content {
132
- opacity: var(--d2l-theme-opacity-disabled-link);
133
- }
134
- a[aria-disabled="true"] d2l-icon {
135
- opacity: var(--d2l-theme-opacity-disabled-linkicon);
136
- }
116
+ :host([disabled]:not([disabled-tooltip])) a:hover {
117
+ color: var(--d2l-theme-text-color-interactive-default);
118
+ text-decoration: none;
119
+ }
120
+ :host([disabled]:not([disabled-tooltip])) a:hover d2l-icon {
121
+ --d2l-icon-fill-color: var(--d2l-theme-text-color-interactive-default);
122
+ }
123
+ a[aria-disabled="true"],
124
+ a[aria-disabled="true"]:active {
125
+ cursor: default;
126
+ }
127
+ a[aria-disabled="true"] .d2l-link-content {
128
+ opacity: var(--d2l-theme-opacity-disabled-link);
129
+ }
130
+ a[aria-disabled="true"] d2l-icon {
131
+ opacity: var(--d2l-theme-opacity-disabled-linkicon);
132
+ }
137
133
 
138
- @media print {
139
- d2l-icon {
140
- display: none;
141
- }
142
- }
143
- `
144
- ];
145
- }
134
+ @media print {
135
+ d2l-icon {
136
+ display: none;
137
+ }
138
+ }
139
+ `];
146
140
 
147
141
  constructor() {
148
142
  super();
@@ -7,36 +7,32 @@ import { SelectionControls } from '../selection/selection-controls.js';
7
7
  * Controls for list components containing select-all, etc.
8
8
  */
9
9
  export class ListControls extends SelectionControls {
10
- static get properties() {
11
- return {
12
- _extendSeparator: { state: true },
13
- _siblingHasColor: { state: true }
14
- };
15
- }
10
+ static properties = {
11
+ _extendSeparator: { state: true },
12
+ _siblingHasColor: { state: true }
13
+ };
16
14
 
17
- static get styles() {
18
- return [super.styles, css`
19
- :host {
20
- --d2l-selection-controls-background-color: var(--d2l-list-controls-background-color);
21
- --d2l-selection-controls-offset: -12px;
22
- --d2l-selection-controls-padding: var(--d2l-list-controls-padding, 18px);
23
- z-index: 6; /* must be greater than d2l-list-item-active-border */
24
- }
25
- :host([no-sticky]) {
26
- z-index: auto;
27
- }
28
- .d2l-list-controls-color {
29
- padding-inline-start: 1.8rem;
30
- }
31
- .d2l-list-controls-extend-separator {
32
- --d2l-selection-controls-offset: 0;
33
- padding: 0 0.9rem;
34
- }
35
- .d2l-list-controls-color.d2l-list-controls-extend-separator {
36
- padding-inline-start: calc(0.6rem + 9px);
37
- }
38
- `];
39
- }
15
+ static styles = [super.styles, css`
16
+ :host {
17
+ --d2l-selection-controls-background-color: var(--d2l-list-controls-background-color);
18
+ --d2l-selection-controls-offset: -12px;
19
+ --d2l-selection-controls-padding: var(--d2l-list-controls-padding, 18px);
20
+ z-index: 6; /* must be greater than d2l-list-item-active-border */
21
+ }
22
+ :host([no-sticky]) {
23
+ z-index: auto;
24
+ }
25
+ .d2l-list-controls-color {
26
+ padding-inline-start: 1.8rem;
27
+ }
28
+ .d2l-list-controls-extend-separator {
29
+ --d2l-selection-controls-offset: 0;
30
+ padding: 0 0.9rem;
31
+ }
32
+ .d2l-list-controls-color.d2l-list-controls-extend-separator {
33
+ padding-inline-start: calc(0.6rem + 9px);
34
+ }
35
+ `];
40
36
 
41
37
  constructor() {
42
38
  super();
@@ -5,20 +5,18 @@ import { getUniqueId } from '../../helpers/uniqueId.js';
5
5
  import { ifDefined } from 'lit/directives/if-defined.js';
6
6
 
7
7
  export const ListItemButtonMixin = superclass => class extends ListItemMixin(superclass) {
8
- static get properties() {
9
- return {
10
- /**
11
- * Disables the primary action button
12
- * @type {boolean}
13
- */
14
- buttonDisabled : { type: Boolean, attribute: 'button-disabled', reflect: true },
15
- _ariaCurrent: { type: String }
16
- };
17
- }
8
+ static properties = {
9
+ /**
10
+ * Disables the primary action button
11
+ * @type {boolean}
12
+ */
13
+ buttonDisabled : { type: Boolean, attribute: 'button-disabled', reflect: true },
14
+ _ariaCurrent: { type: String }
15
+ };
18
16
 
19
17
  static get styles() {
20
18
 
21
- const styles = [ css`
19
+ const styles = [css`
22
20
  :host(:not([button-disabled])) {
23
21
  --d2l-list-item-content-text-color: var(--d2l-color-celestine);
24
22
  }
@@ -49,7 +47,7 @@ export const ListItemButtonMixin = superclass => class extends ListItemMixin(sup
49
47
  :host(:not([button-disabled])) [slot="outside-control-action"] {
50
48
  grid-column-end: control-end;
51
49
  }
52
- ` ];
50
+ `];
53
51
 
54
52
  super.styles && styles.unshift(super.styles);
55
53
  return styles;