@brightspace-ui/core 3.232.1 → 3.234.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.
- package/components/backdrop/backdrop-loading.js +48 -21
- package/components/colors/colors.js +17 -2
- package/components/inputs/input-checkbox.js +27 -31
- package/components/inputs/input-label-styles.js +9 -6
- package/components/inputs/input-radio-styles.js +18 -16
- package/components/inputs/input-select-styles.js +20 -18
- package/components/inputs/input-styles.js +19 -17
- package/components/inputs/input-text.js +4 -4
- package/lang/ar.js +2 -0
- package/lang/cy.js +2 -0
- package/lang/da.js +2 -0
- package/lang/de.js +2 -0
- package/lang/en-gb.js +2 -0
- package/lang/en.js +2 -0
- package/lang/es-es.js +2 -0
- package/lang/es.js +2 -0
- package/lang/fr-fr.js +2 -0
- package/lang/fr.js +2 -0
- package/lang/haw.js +2 -0
- package/lang/hi.js +2 -0
- package/lang/ja.js +2 -0
- package/lang/ko.js +2 -0
- package/lang/mi.js +2 -0
- package/lang/nl.js +2 -0
- package/lang/pt.js +2 -0
- package/lang/sv.js +2 -0
- package/lang/th.js +2 -0
- package/lang/tr.js +2 -0
- package/lang/vi.js +2 -0
- package/lang/zh-cn.js +2 -0
- package/lang/zh-tw.js +2 -0
- package/package.json +1 -1
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import '../colors/colors.js';
|
|
2
2
|
import '../loading-spinner/loading-spinner.js';
|
|
3
|
+
import '../offscreen/offscreen.js';
|
|
3
4
|
import { css, html, LitElement, nothing } from 'lit';
|
|
4
5
|
import { getComposedChildren, getComposedParent } from '../../helpers/dom.js';
|
|
6
|
+
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
7
|
+
import { PropertyRequiredMixin } from '../../mixins/property-required/property-required-mixin.js';
|
|
5
8
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
6
9
|
|
|
7
10
|
const BACKDROP_DELAY_MS = 800;
|
|
8
11
|
const FADE_DURATION_MS = 500;
|
|
9
12
|
const SPINNER_DELAY_MS = FADE_DURATION_MS;
|
|
13
|
+
const LOADING_ANNOUNCEMENT_DELAY = 1000;
|
|
10
14
|
|
|
11
|
-
const LOADING_SPINNER_MINIMUM_BUFFER = 100;
|
|
12
15
|
const LOADING_SPINNER_SIZE = 50;
|
|
13
16
|
|
|
14
17
|
const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
@@ -16,7 +19,7 @@ const reduceMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
|
16
19
|
/**
|
|
17
20
|
* A component for displaying a semi-transparent backdrop and a loading spinner over the containing element
|
|
18
21
|
*/
|
|
19
|
-
class LoadingBackdrop extends LitElement {
|
|
22
|
+
class LoadingBackdrop extends PropertyRequiredMixin(LocalizeCoreElement(LitElement)) {
|
|
20
23
|
|
|
21
24
|
static get properties() {
|
|
22
25
|
return {
|
|
@@ -29,15 +32,16 @@ class LoadingBackdrop extends LitElement {
|
|
|
29
32
|
* Used to identify content that the backdrop should make inert
|
|
30
33
|
* @type {boolean}
|
|
31
34
|
*/
|
|
32
|
-
for: { type: String },
|
|
35
|
+
for: { type: String, required: true },
|
|
33
36
|
_state: { type: String, reflect: true },
|
|
34
|
-
_spinnerTop: { state: true }
|
|
37
|
+
_spinnerTop: { state: true },
|
|
38
|
+
_ariaContent: { state: true }
|
|
35
39
|
};
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
static get styles() {
|
|
39
43
|
return css`
|
|
40
|
-
|
|
44
|
+
#visible {
|
|
41
45
|
display: none;
|
|
42
46
|
height: 100%;
|
|
43
47
|
justify-content: center;
|
|
@@ -46,9 +50,9 @@ class LoadingBackdrop extends LitElement {
|
|
|
46
50
|
width: 100%;
|
|
47
51
|
z-index: 999;
|
|
48
52
|
}
|
|
49
|
-
:host([_state="showing"]),
|
|
50
|
-
:host([_state="shown"]),
|
|
51
|
-
:host([_state="hiding"]) {
|
|
53
|
+
:host([_state="showing"]) #visible,
|
|
54
|
+
:host([_state="shown"]) #visible,
|
|
55
|
+
:host([_state="hiding"]) #visible {
|
|
52
56
|
display: flex;
|
|
53
57
|
}
|
|
54
58
|
|
|
@@ -58,20 +62,23 @@ class LoadingBackdrop extends LitElement {
|
|
|
58
62
|
opacity: 0;
|
|
59
63
|
position: absolute;
|
|
60
64
|
top: 0;
|
|
61
|
-
transition: opacity ${FADE_DURATION_MS}ms ease-in;
|
|
62
65
|
width: 100%;
|
|
63
66
|
}
|
|
64
67
|
:host([_state="shown"]) .backdrop {
|
|
65
68
|
opacity: 0.7;
|
|
69
|
+
transition: opacity ${FADE_DURATION_MS}ms ease-in;
|
|
70
|
+
}
|
|
71
|
+
:host([_state="hiding"]) .backdrop {
|
|
72
|
+
transition: opacity ${FADE_DURATION_MS}ms ease-out;
|
|
66
73
|
}
|
|
67
74
|
|
|
68
75
|
d2l-loading-spinner {
|
|
69
76
|
opacity: 0;
|
|
70
77
|
position: absolute;
|
|
71
|
-
transition: opacity ${FADE_DURATION_MS}ms ease-in ${SPINNER_DELAY_MS}ms;
|
|
72
78
|
}
|
|
73
79
|
:host([_state="shown"]) d2l-loading-spinner {
|
|
74
80
|
opacity: 1;
|
|
81
|
+
transition: opacity ${FADE_DURATION_MS}ms ease-in ${SPINNER_DELAY_MS}ms;
|
|
75
82
|
}
|
|
76
83
|
|
|
77
84
|
:host([_state="hiding"]) .d2l-backdrop,
|
|
@@ -89,14 +96,19 @@ class LoadingBackdrop extends LitElement {
|
|
|
89
96
|
super();
|
|
90
97
|
this.shown = false;
|
|
91
98
|
this._state = 'hidden';
|
|
92
|
-
this._spinnerTop =
|
|
99
|
+
this._spinnerTop = 0;
|
|
100
|
+
this._ariaContent = '';
|
|
93
101
|
}
|
|
94
102
|
|
|
95
103
|
render() {
|
|
96
|
-
if (this._state === 'hidden') return nothing;
|
|
97
104
|
return html`
|
|
98
|
-
|
|
99
|
-
|
|
105
|
+
${this._state === 'hidden' ? nothing :
|
|
106
|
+
html`<div id="visible">
|
|
107
|
+
<div class="backdrop" @transitionend="${this.#handleTransitionEnd}" @transitioncancel="${this.#handleTransitionEnd}"></div>
|
|
108
|
+
<d2l-loading-spinner style=${styleMap({ top: `${this._spinnerTop}px` })} size="${LOADING_SPINNER_SIZE}"></d2l-loading-spinner>
|
|
109
|
+
</div>`
|
|
110
|
+
}
|
|
111
|
+
<d2l-offscreen aria-live="polite">${this._ariaContent}</d2l-offscreen>
|
|
100
112
|
`;
|
|
101
113
|
}
|
|
102
114
|
updated(changedProperties) {
|
|
@@ -116,9 +128,12 @@ class LoadingBackdrop extends LitElement {
|
|
|
116
128
|
}
|
|
117
129
|
willUpdate(changedProperties) {
|
|
118
130
|
if (changedProperties.has('shown')) {
|
|
131
|
+
this.#clearLiveArea();
|
|
119
132
|
if (this.shown) {
|
|
133
|
+
this.#setLiveArea(this.localize('components.backdrop-loading.loadingAnnouncement'), { delay: LOADING_ANNOUNCEMENT_DELAY });
|
|
120
134
|
this.#show();
|
|
121
135
|
} else if (changedProperties.get('shown') !== undefined) {
|
|
136
|
+
this.#setLiveArea(this.localize('components.backdrop-loading.loadingCompleteAnnouncement'));
|
|
122
137
|
this.#fade();
|
|
123
138
|
}
|
|
124
139
|
}
|
|
@@ -130,13 +145,13 @@ class LoadingBackdrop extends LitElement {
|
|
|
130
145
|
const loadingSpinner = this.shadowRoot.querySelector('d2l-loading-spinner');
|
|
131
146
|
if (!loadingSpinner) { return; }
|
|
132
147
|
|
|
133
|
-
const boundingRect = this.getBoundingClientRect();
|
|
148
|
+
const boundingRect = this.shadowRoot.querySelector('#visible').getBoundingClientRect();
|
|
134
149
|
|
|
135
150
|
// Calculate the centerpoint of the visible portion of the element
|
|
136
151
|
const upperVisibleBound = Math.max(0, boundingRect.top);
|
|
137
152
|
const lowerVisibleBound = Math.min(window.innerHeight, boundingRect.bottom);
|
|
138
153
|
const visibleHeight = lowerVisibleBound - upperVisibleBound;
|
|
139
|
-
const centeringOffset = visibleHeight /
|
|
154
|
+
const centeringOffset = (visibleHeight / 4);
|
|
140
155
|
|
|
141
156
|
// Calculate if an offset is required to move to the top of the viewport before centering
|
|
142
157
|
const topOffset = Math.max(0, -boundingRect.top); // measures the distance below the top of the viewport, which is negative if the element starts above the viewport
|
|
@@ -144,8 +159,17 @@ class LoadingBackdrop extends LitElement {
|
|
|
144
159
|
// Adjust for the size of the spinner
|
|
145
160
|
const spinnerSizeOffset = LOADING_SPINNER_SIZE / 2;
|
|
146
161
|
|
|
147
|
-
|
|
148
|
-
|
|
162
|
+
this._spinnerTop = centeringOffset + topOffset - spinnerSizeOffset;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
#clearLiveArea() {
|
|
166
|
+
this._ariaContent = '';
|
|
167
|
+
|
|
168
|
+
if (this.announcementTimeout) {
|
|
169
|
+
clearTimeout(this.announcementTimeout);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
this.announcementTimeout = null;
|
|
149
173
|
}
|
|
150
174
|
|
|
151
175
|
#fade() {
|
|
@@ -164,15 +188,15 @@ class LoadingBackdrop extends LitElement {
|
|
|
164
188
|
#getBackdropTarget() {
|
|
165
189
|
const parent = getComposedParent(this);
|
|
166
190
|
|
|
167
|
-
if (!this.for) { return parent; }
|
|
168
|
-
|
|
169
191
|
const targetedChildren = getComposedChildren(
|
|
170
192
|
parent,
|
|
171
193
|
(elem) => elem.id === this.for,
|
|
172
194
|
false
|
|
173
195
|
);
|
|
174
196
|
|
|
175
|
-
|
|
197
|
+
if (targetedChildren.length === 0) { throw new Error(`Backdrop cannot find sibling identified by 'for' property with value ${this.for}`);}
|
|
198
|
+
|
|
199
|
+
return targetedChildren[0];
|
|
176
200
|
}
|
|
177
201
|
#handleTransitionEnd() {
|
|
178
202
|
if (this._state === 'hiding') {
|
|
@@ -186,6 +210,9 @@ class LoadingBackdrop extends LitElement {
|
|
|
186
210
|
|
|
187
211
|
if (containingBlock.dataset.initiallyInert !== '1') containingBlock.removeAttribute('inert');
|
|
188
212
|
}
|
|
213
|
+
#setLiveArea(content, { delay } = {}) {
|
|
214
|
+
this.announcementTimeout = setTimeout(() => this._ariaContent = content, delay || 0);
|
|
215
|
+
}
|
|
189
216
|
#show() {
|
|
190
217
|
this._state = reduceMotion ? 'shown' : 'showing';
|
|
191
218
|
|
|
@@ -111,8 +111,10 @@ const lightVariables = new Map([
|
|
|
111
111
|
['--d2l-theme-text-color-static-standard', '--d2l-color-ferrite'],
|
|
112
112
|
['--d2l-theme-text-color-static-subtle', '--d2l-color-tungsten'],
|
|
113
113
|
// figma - undefined
|
|
114
|
+
['--d2l-theme-background-color-interactive-faint-disabled', '#f9fbff80'], /* --d2l-theme-background-color-interactive-faint-default at 50% opacity, remove once color-mix is widely supported */
|
|
114
115
|
['--d2l-theme-badge-background-color', '--d2l-color-gypsum'],
|
|
115
116
|
['--d2l-theme-badge-text-color', '--d2l-theme-text-color-static-standard'],
|
|
117
|
+
['--d2l-theme-border-color-disabled', '--d2l-color-corundum'],
|
|
116
118
|
['--d2l-theme-notification-background-color', '--d2l-color-carnelian-minus-1'],
|
|
117
119
|
['--d2l-theme-notification-text-color', '#ffffff'],
|
|
118
120
|
['--d2l-theme-text-color-static-disabled', '#20212280'], /* --d2l-theme-text-color-static-standard at 50% opacity, remove once color-mix is widely supported */
|
|
@@ -125,7 +127,12 @@ const lightVariables = new Map([
|
|
|
125
127
|
['--d2l-theme-shadow-attached-block-start', '0 2px 4px 0 rgba(0, 0, 0, 0.03)'],
|
|
126
128
|
['--d2l-theme-shadow-attached-block-end', '0 -2px 4px 0 rgba(0, 0, 0, 0.03)'],
|
|
127
129
|
['--d2l-theme-shadow-floating', '0 2px 12px 0 rgba(0, 0, 0, 0.15)'],
|
|
128
|
-
['--d2l-theme-shadow-inset', '
|
|
130
|
+
['--d2l-theme-shadow-inset-offset-x', '0'],
|
|
131
|
+
['--d2l-theme-shadow-inset-offset-y', '2px'],
|
|
132
|
+
['--d2l-theme-shadow-inset-blur-radius', '0'],
|
|
133
|
+
['--d2l-theme-shadow-inset-spread-radius', '0'],
|
|
134
|
+
['--d2l-theme-shadow-inset-color', 'rgba(177, 185, 190, 0.2)'],
|
|
135
|
+
['--d2l-theme-shadow-inset', 'inset var(--d2l-theme-shadow-inset-offset-x) var(--d2l-theme-shadow-inset-offset-y) var(--d2l-theme-shadow-inset-blur-radius) var(--d2l-theme-shadow-inset-spread-radius) var(--d2l-theme-shadow-inset-color)'], /* corundum */
|
|
129
136
|
// feedback (old semantic names)
|
|
130
137
|
['--d2l-color-feedback-error', '--d2l-theme-status-color-error'],
|
|
131
138
|
['--d2l-color-feedback-warning', '--d2l-theme-status-color-warning'],
|
|
@@ -176,8 +183,10 @@ const darkVariables = new Map([
|
|
|
176
183
|
['--d2l-theme-text-color-static-standard', '--d2l-color-mica'],
|
|
177
184
|
['--d2l-theme-text-color-static-subtle', '--d2l-color-chromite'],
|
|
178
185
|
// figma - undefined
|
|
186
|
+
['--d2l-theme-background-color-interactive-faint-disabled', '#20212280'], /* --d2l-theme-background-color-interactive-faint-default at 50% opacity, remove once color-mix is widely supported */
|
|
179
187
|
['--d2l-theme-badge-background-color', '#303335'],
|
|
180
188
|
['--d2l-theme-badge-text-color', '--d2l-theme-text-color-static-standard'],
|
|
189
|
+
['--d2l-theme-border-color-disabled', '#303233'], /* --d2l-theme-border-color-standard (tungsten) at 50% opacity */
|
|
181
190
|
['--d2l-theme-notification-background-color', '--d2l-color-carnelian-minus-1'],
|
|
182
191
|
['--d2l-theme-notification-text-color', '#ffffff'],
|
|
183
192
|
['--d2l-theme-text-color-static-disabled', '#cdd5dc80'], /* --d2l-theme-text-color-static-standard at 50% opacity, remove once color-mix is widely supported */
|
|
@@ -190,7 +199,12 @@ const darkVariables = new Map([
|
|
|
190
199
|
['--d2l-theme-shadow-attached-block-start', '0 2px 4px 0 rgba(0, 0, 0, 0.85)'],
|
|
191
200
|
['--d2l-theme-shadow-attached-block-end', '0 -2px 4px 0 rgba(0, 0, 0, 0.85)'],
|
|
192
201
|
['--d2l-theme-shadow-floating', '0 2px 12px 0 rgba(0, 0, 0, 0.85)'],
|
|
193
|
-
['--d2l-theme-shadow-inset', '
|
|
202
|
+
['--d2l-theme-shadow-inset-offset-x', '0'],
|
|
203
|
+
['--d2l-theme-shadow-inset-offset-y', '2px'],
|
|
204
|
+
['--d2l-theme-shadow-inset-blur-radius', '0'],
|
|
205
|
+
['--d2l-theme-shadow-inset-spread-radius', '0'],
|
|
206
|
+
['--d2l-theme-shadow-inset-color', 'rgba(177, 185, 190, 0.2)'],
|
|
207
|
+
['--d2l-theme-shadow-inset', 'inset var(--d2l-theme-shadow-inset-offset-x) var(--d2l-theme-shadow-inset-offset-y) var(--d2l-theme-shadow-inset-blur-radius) var(--d2l-theme-shadow-inset-spread-radius) var(--d2l-theme-shadow-inset-color)'], /* corundum */
|
|
194
208
|
// feedback (old semantic names)
|
|
195
209
|
['--d2l-color-feedback-error', '--d2l-theme-status-color-error'],
|
|
196
210
|
['--d2l-color-feedback-warning', '--d2l-theme-status-color-warning'],
|
|
@@ -249,6 +263,7 @@ if (globalThis.document !== undefined && !globalThis.document.head.querySelector
|
|
|
249
263
|
}
|
|
250
264
|
|
|
251
265
|
@supports (color: color-mix(in srgb, black 50%, transparent)) {
|
|
266
|
+
--d2l-theme-background-color-interactive-faint-disabled: color-mix(in srgb, var(--d2l-theme-background-color-interactive-faint-default) 50%, transparent);
|
|
252
267
|
--d2l-theme-text-color-static-disabled: color-mix(in srgb, var(--d2l-theme-text-color-static-standard) 50%, transparent);
|
|
253
268
|
}
|
|
254
269
|
`;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import '../colors/colors.js';
|
|
2
1
|
import '../expand-collapse/expand-collapse-content.js';
|
|
3
2
|
import '../tooltip/tooltip.js';
|
|
4
3
|
import { css, html, LitElement, nothing } from 'lit';
|
|
@@ -9,15 +8,22 @@ import { getUniqueId } from '../../helpers/uniqueId.js';
|
|
|
9
8
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
10
9
|
import { InputInlineHelpMixin } from './input-inline-help.js';
|
|
11
10
|
import { offscreenStyles } from '../offscreen/offscreen.js';
|
|
11
|
+
import { registerSemanticVariableForSvgImageUrl } from '../colors/colors.js';
|
|
12
12
|
import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
|
|
13
|
-
import { svgToCSS } from '../../helpers/svg-to-css.js';
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
registerSemanticVariableForSvgImageUrl(
|
|
15
|
+
'--d2l-input-checkbox-check-image',
|
|
16
|
+
`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
17
|
+
<path fill="var(--d2l-theme-icon-color-standard)" d="M8.4 16.6c.6.6 1.5.6 2.1 0l8-8c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-6.9 7-1.9-1.9c-.6-.6-1.5-.6-2.1 0-.6.6-.6 1.5 0 2.1l2.9 2.9z"/>\
|
|
18
|
+
</svg>`
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
registerSemanticVariableForSvgImageUrl(
|
|
22
|
+
'--d2l-input-checkbox-indeterminate-image',
|
|
23
|
+
`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
24
|
+
<path fill="var(--d2l-theme-icon-color-standard)" d="M7.5,11h9c0.8,0,1.5,0.7,1.5,1.5l0,0c0,0.8-0.7,1.5-1.5,1.5h-9C6.7,14,6,13.3,6,12.5l0,0C6,11.7,6.7,11,7.5,11z"/>
|
|
25
|
+
</svg>`
|
|
26
|
+
);
|
|
21
27
|
|
|
22
28
|
export const cssSizes = {
|
|
23
29
|
inputBoxSize: 1.2,
|
|
@@ -27,23 +33,13 @@ export const cssSizes = {
|
|
|
27
33
|
export const checkboxStyles = css`
|
|
28
34
|
input[type="checkbox"].d2l-input-checkbox {
|
|
29
35
|
--d2l-input-checkbox-background-image: none;
|
|
30
|
-
--d2l-input-checkbox-background-color: var(--d2l-color-
|
|
36
|
+
--d2l-input-checkbox-background-color: var(--d2l-theme-background-color-interactive-faint-default);
|
|
31
37
|
--d2l-input-checkbox-background-image-disabled:
|
|
32
38
|
linear-gradient(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
rgba(249, 251, 255, 0.5)
|
|
39
|
+
var(--d2l-theme-background-color-interactive-faint-disabled),
|
|
40
|
+
var(--d2l-theme-background-color-interactive-faint-disabled)
|
|
36
41
|
),
|
|
37
42
|
var(--d2l-input-checkbox-background-image);
|
|
38
|
-
|
|
39
|
-
@supports (color: color-mix(in srgb, black 50%, transparent)) {
|
|
40
|
-
--d2l-input-checkbox-background-image-disabled:
|
|
41
|
-
linear-gradient(
|
|
42
|
-
color-mix(in srgb, var(--d2l-input-checkbox-background-color) 50%, transparent),
|
|
43
|
-
color-mix(in srgb, var(--d2l-input-checkbox-background-color) 50%, transparent)
|
|
44
|
-
),
|
|
45
|
-
var(--d2l-input-checkbox-background-image);
|
|
46
|
-
}
|
|
47
43
|
-webkit-appearance: none;
|
|
48
44
|
-moz-appearance: none;
|
|
49
45
|
appearance: none;
|
|
@@ -62,32 +58,32 @@ export const checkboxStyles = css`
|
|
|
62
58
|
width: ${cssSizes.inputBoxSize}rem;
|
|
63
59
|
}
|
|
64
60
|
input[type="checkbox"].d2l-input-checkbox:checked {
|
|
65
|
-
--d2l-input-checkbox-background-image:
|
|
61
|
+
--d2l-input-checkbox-background-image: var(--d2l-input-checkbox-check-image);
|
|
66
62
|
}
|
|
67
63
|
input[type="checkbox"].d2l-input-checkbox:indeterminate {
|
|
68
|
-
--d2l-input-checkbox-background-image:
|
|
64
|
+
--d2l-input-checkbox-background-image: var(--d2l-input-checkbox-indeterminate-image);
|
|
69
65
|
}
|
|
70
66
|
input[type="checkbox"].d2l-input-checkbox,
|
|
71
67
|
input[type="checkbox"].d2l-input-checkbox:hover:disabled {
|
|
72
68
|
background-color: var(--d2l-input-checkbox-background-color);
|
|
73
|
-
border-color: var(--d2l-color-
|
|
69
|
+
border-color: var(--d2l-theme-border-color-emphasized);
|
|
74
70
|
border-width: 1px;
|
|
75
71
|
}
|
|
76
72
|
input[type="checkbox"].d2l-input-checkbox:hover:disabled {
|
|
77
|
-
border-color: var(--d2l-color-
|
|
73
|
+
border-color: var(--d2l-theme-border-color-disabled);
|
|
78
74
|
}
|
|
79
75
|
input[type="checkbox"].d2l-input-checkbox:hover,
|
|
80
76
|
input[type="checkbox"].d2l-input-checkbox:focus,
|
|
81
77
|
input[type="checkbox"].d2l-input-checkbox.d2l-input-checkbox-focus,
|
|
82
78
|
:host(.d2l-hovering) input[type="checkbox"]:not(:disabled).d2l-input-checkbox {
|
|
83
|
-
border-color: var(--d2l-input-checkbox-border-color-hover-focus, var(--d2l-color-
|
|
79
|
+
border-color: var(--d2l-input-checkbox-border-color-hover-focus, var(--d2l-theme-border-color-focus));
|
|
84
80
|
border-width: 2px;
|
|
85
81
|
outline: none;
|
|
86
82
|
}
|
|
87
83
|
input[type="checkbox"].d2l-input-checkbox:disabled,
|
|
88
84
|
input[type="checkbox"].d2l-input-checkbox:where([aria-disabled="true"]) {
|
|
89
85
|
background-image: var(--d2l-input-checkbox-background-image-disabled);
|
|
90
|
-
border-color: var(--d2l-color-
|
|
86
|
+
border-color: var(--d2l-theme-border-color-disabled);
|
|
91
87
|
}
|
|
92
88
|
@media (forced-colors: active) {
|
|
93
89
|
input[type="checkbox"].d2l-input-checkbox:checked,
|
|
@@ -110,15 +106,15 @@ export const checkboxStyles = css`
|
|
|
110
106
|
|
|
111
107
|
input[type="checkbox"].d2l-input-checkbox:disabled,
|
|
112
108
|
input[type="checkbox"].d2l-input-checkbox:where([aria-disabled="true"]) {
|
|
113
|
-
opacity:
|
|
109
|
+
opacity: var(--d2l-theme-opacity-disabled-control);
|
|
114
110
|
}
|
|
115
111
|
|
|
116
112
|
input[type="checkbox"].d2l-input-checkbox:checked::after {
|
|
117
|
-
mask-image:
|
|
113
|
+
mask-image: var(--d2l-input-checkbox-check-image);
|
|
118
114
|
}
|
|
119
115
|
|
|
120
116
|
input[type="checkbox"].d2l-input-checkbox:indeterminate::after {
|
|
121
|
-
mask-image:
|
|
117
|
+
mask-image: var(--d2l-input-checkbox-indeterminate-image);
|
|
122
118
|
}
|
|
123
119
|
}
|
|
124
120
|
`;
|
|
@@ -215,7 +211,7 @@ class InputCheckbox extends FormElementMixin(InputInlineHelpMixin(FocusMixin(Ske
|
|
|
215
211
|
display: inline-block;
|
|
216
212
|
}
|
|
217
213
|
.d2l-input-checkbox-text {
|
|
218
|
-
color: var(--d2l-color-
|
|
214
|
+
color: var(--d2l-theme-text-color-static-standard);
|
|
219
215
|
display: inline-block;
|
|
220
216
|
font-size: 0.8rem;
|
|
221
217
|
font-weight: 400;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
import {
|
|
2
|
+
import { registerSemanticVariableForSvgImageUrl } from '../colors/colors.js';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
registerSemanticVariableForSvgImageUrl(
|
|
5
|
+
'--d2l-input-label-required-image',
|
|
6
|
+
`<svg width="5" height="6" viewBox="0 0 5 6" xmlns="http://www.w3.org/2000/svg">
|
|
7
|
+
<path d="M2.38 5.141V3.86c0-.093.006-.184.018-.273.011-.089.031-.173.059-.252a.927.927 0 0 1-.182.175c-.07.051-.145.103-.224.154l-1.106.644-.413-.7 1.113-.644c.084-.051.167-.093.248-.126.082-.033.167-.056.256-.07a.816.816 0 0 1-.256-.07 2.356 2.356 0 0 1-.248-.133L.532 1.914l.406-.7 1.113.658c.08.051.155.104.228.157a.966.966 0 0 1 .185.179 1.002 1.002 0 0 1-.066-.252 2.091 2.091 0 0 1-.018-.273V.388h.826v1.281c0 .098-.006.192-.017.283a1.003 1.003 0 0 1-.067.256c.051-.065.112-.125.182-.179.07-.053.147-.106.231-.157l1.106-.644.413.7-1.113.637a1.954 1.954 0 0 1-.248.13 1.07 1.07 0 0 1-.256.073c.159.028.327.093.504.196l1.113.651-.406.7-1.113-.651a3.307 3.307 0 0 1-.231-.154 1.122 1.122 0 0 1-.189-.175c.06.15.091.322.091.518v1.288H2.38z" fill="var(--d2l-theme-icon-color-standard)" fill-rule="evenodd"/>
|
|
8
|
+
</svg>`
|
|
9
|
+
);
|
|
7
10
|
|
|
8
11
|
export const inputLabelStyles = css`
|
|
9
12
|
.d2l-input-label {
|
|
@@ -19,7 +22,7 @@ export const inputLabelStyles = css`
|
|
|
19
22
|
}
|
|
20
23
|
:host([required]) .d2l-input-label::after,
|
|
21
24
|
.d2l-input-label-required::after {
|
|
22
|
-
background-image:
|
|
25
|
+
background-image: var(--d2l-input-label-required-image);
|
|
23
26
|
bottom: 0.25rem;
|
|
24
27
|
content: "";
|
|
25
28
|
display: inline-block;
|
|
@@ -47,7 +50,7 @@ export const inputLabelStyles = css`
|
|
|
47
50
|
.d2l-input-label-required::after {
|
|
48
51
|
background-color: FieldText;
|
|
49
52
|
background-image: none;
|
|
50
|
-
mask-image:
|
|
53
|
+
mask-image: var(--d2l-input-label-required-image);
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
`;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import '../colors/colors.js';
|
|
2
1
|
import { css } from 'lit';
|
|
3
|
-
import {
|
|
2
|
+
import { registerSemanticVariableForSvgImageUrl } from '../colors/colors.js';
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
registerSemanticVariableForSvgImageUrl(
|
|
5
|
+
'--d2l-input-radio-check-image',
|
|
6
|
+
`<svg width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
|
|
7
|
+
<circle cx="5" cy="5" r="5" fill="var(--d2l-theme-icon-color-standard)"></circle>
|
|
8
|
+
</svg>`
|
|
9
|
+
);
|
|
8
10
|
|
|
9
11
|
export const radioStyles = css`
|
|
10
12
|
.d2l-input-radio,
|
|
@@ -28,15 +30,15 @@ export const radioStyles = css`
|
|
|
28
30
|
.d2l-input-radio[aria-checked="true"],
|
|
29
31
|
.d2l-input-radio:checked,
|
|
30
32
|
.d2l-input-radio-label > input[type="radio"]:checked {
|
|
31
|
-
background-image:
|
|
33
|
+
background-image: var(--d2l-input-radio-check-image);
|
|
32
34
|
}
|
|
33
35
|
.d2l-input-radio,
|
|
34
36
|
.d2l-input-radio:hover:disabled,
|
|
35
37
|
.d2l-input-radio:hover.d2l-disabled,
|
|
36
38
|
.d2l-input-radio-label > input[type="radio"],
|
|
37
39
|
.d2l-input-radio-label > input[type="radio"]:hover:disabled {
|
|
38
|
-
background-color: var(--d2l-color-
|
|
39
|
-
border-color: var(--d2l-color-
|
|
40
|
+
background-color: var(--d2l-theme-background-color-interactive-faint-default);
|
|
41
|
+
border-color: var(--d2l-theme-border-color-emphasized);
|
|
40
42
|
border-width: 1px;
|
|
41
43
|
}
|
|
42
44
|
.d2l-input-radio.d2l-hovering,
|
|
@@ -44,22 +46,22 @@ export const radioStyles = css`
|
|
|
44
46
|
.d2l-input-radio:focus,
|
|
45
47
|
.d2l-input-radio-label > input[type="radio"]:hover,
|
|
46
48
|
.d2l-input-radio-label > input[type="radio"]:focus {
|
|
47
|
-
border-color: var(--d2l-input-radio-border-color-hover-focus, var(--d2l-color-
|
|
49
|
+
border-color: var(--d2l-input-radio-border-color-hover-focus, var(--d2l-theme-border-color-focus));
|
|
48
50
|
border-width: 2px;
|
|
49
51
|
outline: none;
|
|
50
52
|
}
|
|
51
53
|
.d2l-input-radio[aria-invalid="true"],
|
|
52
54
|
.d2l-input-radio-label > input[type="radio"][aria-invalid="true"] {
|
|
53
|
-
border-color: var(--d2l-color-
|
|
55
|
+
border-color: var(--d2l-theme-status-color-error);
|
|
54
56
|
}
|
|
55
57
|
.d2l-input-radio:disabled,
|
|
56
58
|
.d2l-input-radio.d2l-disabled,
|
|
57
59
|
.d2l-input-radio-label > input[type="radio"]:disabled {
|
|
58
|
-
opacity:
|
|
60
|
+
opacity: var(--d2l-theme-opacity-disabled-control);
|
|
59
61
|
}
|
|
60
62
|
.d2l-input-radio-label {
|
|
61
63
|
align-items: center;
|
|
62
|
-
color: var(--d2l-color-
|
|
64
|
+
color: var(--d2l-theme-text-color-static-standard);
|
|
63
65
|
display: flex;
|
|
64
66
|
font-size: 0.8rem;
|
|
65
67
|
font-weight: 400;
|
|
@@ -72,7 +74,7 @@ export const radioStyles = css`
|
|
|
72
74
|
}
|
|
73
75
|
.d2l-input-radio-label-disabled:not(.d2l-input-radio-label-disabled-tooltip),
|
|
74
76
|
.d2l-input-radio-label-disabled-tooltip > * {
|
|
75
|
-
opacity:
|
|
77
|
+
opacity: var(--d2l-theme-opacity-disabled-control);
|
|
76
78
|
}
|
|
77
79
|
.d2l-input-radio-label-disabled:not(.d2l-input-radio-label-disabled-tooltip) > .d2l-input-radio,
|
|
78
80
|
.d2l-input-radio-label-disabled:not(.d2l-input-radio-label-disabled-tooltip) > input[type="radio"] {
|
|
@@ -87,8 +89,8 @@ export const radioStyles = css`
|
|
|
87
89
|
.d2l-input-radio-label-disabled-tooltip .d2l-input-radio-label > input[type="radio"]:hover,
|
|
88
90
|
.d2l-input-radio-label-disabled-tooltip .d2l-input-radio-label > input[type="radio"]:focus {
|
|
89
91
|
background-blend-mode: lighten;
|
|
90
|
-
background-color:
|
|
91
|
-
border-color: var(--d2l-input-radio-border-color-hover-focus, var(--d2l-color-
|
|
92
|
+
background-color: var(--d2l-theme-background-color-interactive-faint-disabled);
|
|
93
|
+
border-color: var(--d2l-input-radio-border-color-hover-focus, var(--d2l-theme-border-color-focus));
|
|
92
94
|
border-width: 2px;
|
|
93
95
|
opacity: 1;
|
|
94
96
|
outline: none;
|
|
@@ -119,7 +121,7 @@ export const radioStyles = css`
|
|
|
119
121
|
display: block;
|
|
120
122
|
height: 1.2rem;
|
|
121
123
|
left: 50%;
|
|
122
|
-
mask-image:
|
|
124
|
+
mask-image: var(--d2l-input-radio-check-image);
|
|
123
125
|
mask-position: center center;
|
|
124
126
|
mask-repeat: no-repeat;
|
|
125
127
|
mask-size: 0.5rem 0.5rem;
|
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
import '
|
|
1
|
+
import './input-styles.js';
|
|
2
2
|
import { css, unsafeCSS } from 'lit';
|
|
3
3
|
import { getFocusPseudoClass } from '../../helpers/focus.js';
|
|
4
|
-
import {
|
|
5
|
-
import { svgToCSS } from '../../helpers/svg-to-css.js';
|
|
4
|
+
import { registerSemanticVariableForSvgImageUrl } from '../colors/colors.js';
|
|
6
5
|
|
|
7
6
|
const focusClass = unsafeCSS(getFocusPseudoClass());
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
registerSemanticVariableForSvgImageUrl(
|
|
9
|
+
'--d2l-input-select-chevron-image',
|
|
10
|
+
`<svg width="11" height="7" viewBox="0 0 11 7" xmlns="http://www.w3.org/2000/svg">
|
|
11
|
+
<path d="M1 2l4.5 4M10 2L5.5 6" stroke="var(--d2l-theme-icon-color-standard)" stroke-width="2" fill="none" fill-rule="evenodd" stroke-linecap="round"/>
|
|
12
|
+
</svg>`
|
|
13
|
+
);
|
|
12
14
|
|
|
13
15
|
export const selectStyles = css`
|
|
14
16
|
.d2l-input-select {
|
|
15
17
|
-webkit-appearance: none;
|
|
16
18
|
-moz-appearance: none;
|
|
17
19
|
appearance: none;
|
|
18
|
-
background-color:
|
|
19
|
-
background-image:
|
|
20
|
+
background-color: var(--d2l-theme-background-color-base);
|
|
21
|
+
background-image: var(--d2l-input-select-chevron-image);
|
|
20
22
|
background-origin: border-box;
|
|
21
23
|
background-position: center var(--d2l-inline-end, right) 17px;
|
|
22
24
|
background-repeat: no-repeat;
|
|
23
25
|
background-size: 11px 7px;
|
|
24
26
|
border: none;
|
|
25
27
|
border-radius: 0.3rem;
|
|
26
|
-
box-shadow: inset
|
|
27
|
-
color: var(--d2l-color-
|
|
28
|
+
box-shadow: inset var(--d2l-theme-shadow-inset-offset-x) var(--d2l-theme-shadow-inset-offset-y) var(--d2l-theme-shadow-inset-blur-radius) 1px var(--d2l-theme-shadow-inset-color);
|
|
29
|
+
color: var(--d2l-theme-text-color-static-standard);
|
|
28
30
|
display: inline-block;
|
|
29
31
|
font-family: inherit;
|
|
30
32
|
font-size: 0.8rem;
|
|
@@ -34,7 +36,7 @@ export const selectStyles = css`
|
|
|
34
36
|
line-height: 1.2rem;
|
|
35
37
|
margin: 0;
|
|
36
38
|
max-height: calc(2rem + 2px);
|
|
37
|
-
outline: 1px solid var(--d2l-color-
|
|
39
|
+
outline: 1px solid var(--d2l-theme-border-color-emphasized);
|
|
38
40
|
outline-offset: -1px;
|
|
39
41
|
padding-block: calc(0.4rem + 1px);
|
|
40
42
|
padding-inline: calc(0.75rem + 1px) calc(2px + 0.8rem + 1px + 11px + 16px + 1px);
|
|
@@ -43,12 +45,12 @@ export const selectStyles = css`
|
|
|
43
45
|
|
|
44
46
|
.d2l-input-select:not([disabled]):hover,
|
|
45
47
|
.d2l-input-select:not([disabled]):${focusClass} {
|
|
46
|
-
box-shadow: inset
|
|
47
|
-
outline: 2px solid var(--d2l-color-
|
|
48
|
+
box-shadow: inset var(--d2l-theme-shadow-inset-offset-x) var(--d2l-theme-shadow-inset-offset-y) var(--d2l-theme-shadow-inset-blur-radius) 2px var(--d2l-theme-shadow-inset-color);
|
|
49
|
+
outline: 2px solid var(--d2l-theme-border-color-focus);
|
|
48
50
|
outline-offset: -2px;
|
|
49
51
|
}
|
|
50
52
|
.d2l-input-select[aria-invalid="true"] {
|
|
51
|
-
background-image:
|
|
53
|
+
background-image: var(--d2l-input-select-chevron-image), var(--d2l-input-invalid-image);
|
|
52
54
|
background-position: center var(--d2l-inline-end, right) 17px, center var(--d2l-inline-end, right) calc(1px + 11px + 17px);
|
|
53
55
|
background-repeat: no-repeat, no-repeat;
|
|
54
56
|
background-size: 11px 7px, 0.8rem 0.8rem;
|
|
@@ -56,10 +58,10 @@ export const selectStyles = css`
|
|
|
56
58
|
.d2l-input-select[aria-invalid="true"],
|
|
57
59
|
.d2l-input-select[aria-invalid="true"]:${focusClass},
|
|
58
60
|
.d2l-input-select[aria-invalid="true"]:hover {
|
|
59
|
-
outline-color: var(--d2l-color-
|
|
61
|
+
outline-color: var(--d2l-theme-status-color-error);
|
|
60
62
|
}
|
|
61
63
|
.d2l-input-select:disabled {
|
|
62
|
-
opacity:
|
|
64
|
+
opacity: var(--d2l-theme-opacity-disabled-control);
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
@media (prefers-contrast: more) {
|
|
@@ -88,7 +90,7 @@ export const selectStyles = css`
|
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
.d2l-input-select[aria-invalid="true"] {
|
|
91
|
-
background-image:
|
|
93
|
+
background-image: var(--d2l-input-invalid-image);
|
|
92
94
|
background-position: center var(--d2l-inline-end, right) calc(1px + 11px + 17px);
|
|
93
95
|
background-repeat: no-repeat;
|
|
94
96
|
background-size: 0.8rem 0.8rem;
|
|
@@ -97,7 +99,7 @@ export const selectStyles = css`
|
|
|
97
99
|
.d2l-input-select[aria-invalid="true"],
|
|
98
100
|
.d2l-input-select[aria-invalid="true"]:${focusClass},
|
|
99
101
|
.d2l-input-select[aria-invalid="true"]:hover {
|
|
100
|
-
outline-color: var(--d2l-color-
|
|
102
|
+
outline-color: var(--d2l-theme-status-color-error);
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
105
|
`;
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
import '../colors/colors.js';
|
|
2
1
|
import { css, unsafeCSS } from 'lit';
|
|
3
2
|
import { getFocusPseudoClass } from '../../helpers/focus.js';
|
|
4
|
-
import {
|
|
3
|
+
import { registerSemanticVariableForSvgImageUrl } from '../colors/colors.js';
|
|
5
4
|
|
|
6
5
|
const focusClass = unsafeCSS(getFocusPseudoClass());
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
registerSemanticVariableForSvgImageUrl(
|
|
8
|
+
'--d2l-input-invalid-image',
|
|
9
|
+
`<svg width="18" height="18" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
|
|
10
|
+
<path fill="var(--d2l-theme-status-color-error)" d="M17.79 15.11l-7-14a2 2 0 0 0-3.58 0l-7 14a1.975 1.975 0 0 0 .09 1.94A2 2 0 0 0 2 18h14a1.994 1.994 0 0 0 1.7-.95 1.967 1.967 0 0 0 .09-1.94zM9 16a1.5 1.5 0 1 1 1.5-1.5A1.5 1.5 0 0 1 9 16zm.98-4.806a1 1 0 0 1-1.96 0l-.99-5A1 1 0 0 1 8.01 5h1.983a1 1 0 0 1 .98 1.194z"/>
|
|
11
|
+
<path fill="var(--d2l-theme-background-color-base)" d="M9 16a1.5 1.5 0 1 1 1.5-1.5A1.5 1.5 0 0 1 9 16zm.98-4.806a1 1 0 0 1-1.96 0l-.99-5A1 1 0 0 1 8.01 5h1.983a1 1 0 0 1 .98 1.194z"/>
|
|
12
|
+
</svg>`
|
|
13
|
+
);
|
|
12
14
|
|
|
13
15
|
export const inputStyles = css`
|
|
14
16
|
.d2l-input {
|
|
15
|
-
background-color: var(--d2l-input-background-color,
|
|
17
|
+
background-color: var(--d2l-input-background-color, var(--d2l-theme-background-color-base));
|
|
16
18
|
border-radius: var(--d2l-input-border-radius, 0.3rem);
|
|
17
19
|
border-style: solid;
|
|
18
|
-
box-shadow: inset
|
|
20
|
+
box-shadow: var(--d2l-theme-shadow-inset);
|
|
19
21
|
box-sizing: border-box;
|
|
20
|
-
color: var(--d2l-color-
|
|
22
|
+
color: var(--d2l-theme-text-color-static-standard);
|
|
21
23
|
display: inline-block;
|
|
22
24
|
font-family: inherit;
|
|
23
25
|
font-size: 0.8rem;
|
|
@@ -37,34 +39,34 @@ export const inputStyles = css`
|
|
|
37
39
|
.d2l-input:hover:disabled,
|
|
38
40
|
.d2l-input:${focusClass}:disabled,
|
|
39
41
|
[aria-invalid="true"].d2l-input:disabled {
|
|
40
|
-
border-color: var(--d2l-input-border-color, var(--d2l-color-
|
|
42
|
+
border-color: var(--d2l-input-border-color, var(--d2l-theme-border-color-emphasized));
|
|
41
43
|
border-width: 1px;
|
|
42
44
|
padding: var(--d2l-input-padding, 0.4rem 0.75rem);
|
|
43
45
|
}
|
|
44
46
|
.d2l-input::placeholder {
|
|
45
|
-
color: var(--d2l-color-
|
|
47
|
+
color: var(--d2l-theme-text-color-static-faint);
|
|
46
48
|
font-size: 0.8rem;
|
|
47
49
|
font-weight: 400;
|
|
48
50
|
opacity: 1; /* Firefox has non-1 default */
|
|
49
51
|
}
|
|
50
52
|
.d2l-input::-ms-input-placeholder {
|
|
51
|
-
color: var(--d2l-color-
|
|
53
|
+
color: var(--d2l-theme-text-color-static-faint);
|
|
52
54
|
font-size: 0.8rem;
|
|
53
55
|
font-weight: 400;
|
|
54
56
|
}
|
|
55
57
|
.d2l-input:hover,
|
|
56
58
|
.d2l-input:${focusClass},
|
|
57
59
|
.d2l-input-focus {
|
|
58
|
-
border-color: var(--d2l-color-
|
|
60
|
+
border-color: var(--d2l-theme-border-color-focus);
|
|
59
61
|
border-width: 2px;
|
|
60
62
|
outline: none;
|
|
61
63
|
padding: var(--d2l-input-padding-focus, calc(0.4rem - 1px) calc(0.75rem - 1px));
|
|
62
64
|
}
|
|
63
65
|
[aria-invalid="true"].d2l-input {
|
|
64
|
-
border-color: var(--d2l-color-
|
|
66
|
+
border-color: var(--d2l-theme-status-color-error);
|
|
65
67
|
}
|
|
66
68
|
.d2l-input:disabled {
|
|
67
|
-
opacity:
|
|
69
|
+
opacity: var(--d2l-theme-opacity-disabled-control);
|
|
68
70
|
}
|
|
69
71
|
.d2l-input::-webkit-search-cancel-button,
|
|
70
72
|
.d2l-input::-webkit-search-decoration {
|
|
@@ -90,7 +92,7 @@ export const inputStyles = css`
|
|
|
90
92
|
padding-block: calc(0.5rem - 1px);
|
|
91
93
|
}
|
|
92
94
|
textarea.d2l-input[aria-invalid="true"] {
|
|
93
|
-
background-image:
|
|
95
|
+
background-image: var(--d2l-input-invalid-image);
|
|
94
96
|
background-position: top 12px var(--d2l-inline-end, right) 18px;
|
|
95
97
|
background-repeat: no-repeat;
|
|
96
98
|
background-size: 0.8rem 0.8rem;
|
|
@@ -109,7 +111,7 @@ export const inputStyles = css`
|
|
|
109
111
|
@media (prefers-contrast: more) {
|
|
110
112
|
[aria-invalid="true"].d2l-input {
|
|
111
113
|
background-color: Field;
|
|
112
|
-
border-color: var(--d2l-color-
|
|
114
|
+
border-color: var(--d2l-theme-status-color-error);
|
|
113
115
|
box-shadow: none;
|
|
114
116
|
color: FieldText;
|
|
115
117
|
forced-color-adjust: none;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import '../colors/colors.js';
|
|
2
2
|
import '../tooltip/tooltip.js';
|
|
3
3
|
import { css, html, LitElement, nothing } from 'lit';
|
|
4
|
-
import { inputStyles, invalidIcon } from './input-styles.js';
|
|
5
4
|
import { classMap } from 'lit/directives/class-map.js';
|
|
6
5
|
import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
|
|
7
6
|
import { formatNumber } from '@brightspace-ui/intl/lib/number.js';
|
|
@@ -10,6 +9,7 @@ import { getUniqueId } from '../../helpers/uniqueId.js';
|
|
|
10
9
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
11
10
|
import { InputInlineHelpMixin } from './input-inline-help.js';
|
|
12
11
|
import { inputLabelStyles } from './input-label-styles.js';
|
|
12
|
+
import { inputStyles } from './input-styles.js';
|
|
13
13
|
import { LabelledMixin } from '../../mixins/labelled/labelled-mixin.js';
|
|
14
14
|
import { offscreenStyles } from '../offscreen/offscreen.js';
|
|
15
15
|
import { PerfMonitor } from '../../helpers/perfMonitor.js';
|
|
@@ -250,7 +250,7 @@ class InputText extends InputInlineHelpMixin(PropertyRequiredMixin(FocusMixin(La
|
|
|
250
250
|
right: 0;
|
|
251
251
|
}
|
|
252
252
|
.d2l-input-unit {
|
|
253
|
-
color: var(--d2l-color-
|
|
253
|
+
color: var(--d2l-theme-text-color-static-faint);
|
|
254
254
|
font-size: 0.7rem;
|
|
255
255
|
margin-top: 0.05rem;
|
|
256
256
|
}
|
|
@@ -264,10 +264,10 @@ class InputText extends InputInlineHelpMixin(PropertyRequiredMixin(FocusMixin(La
|
|
|
264
264
|
margin-right: 12px;
|
|
265
265
|
}
|
|
266
266
|
:host([disabled]) .d2l-input-unit {
|
|
267
|
-
opacity:
|
|
267
|
+
opacity: var(--d2l-theme-opacity-disabled-control);
|
|
268
268
|
}
|
|
269
269
|
.d2l-input-text-invalid-icon {
|
|
270
|
-
background-image:
|
|
270
|
+
background-image: var(--d2l-input-invalid-image);
|
|
271
271
|
background-position: center center;
|
|
272
272
|
background-repeat: no-repeat;
|
|
273
273
|
background-size: 0.8rem 0.8rem;
|
package/lang/ar.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "إغلاق التنبيه",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "مسار التنقل",
|
|
4
6
|
"components.button-add.addItem": "إضافة عنصر",
|
|
5
7
|
"components.button-copy.copied": "تم النسخ!",
|
package/lang/cy.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Cau Hysbysiad",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Briwsionyn Bara",
|
|
4
6
|
"components.button-add.addItem": "Ychwanegu Eitem",
|
|
5
7
|
"components.button-copy.copied": "Wedi’i gopïo!",
|
package/lang/da.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Luk besked",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Brødkrumme",
|
|
4
6
|
"components.button-add.addItem": "Tilføj element",
|
|
5
7
|
"components.button-copy.copied": "Kopieret!",
|
package/lang/de.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Benachrichtigung schließen",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Brotkrümelnavigation",
|
|
4
6
|
"components.button-add.addItem": "Element hinzufügen",
|
|
5
7
|
"components.button-copy.copied": "Kopiert.",
|
package/lang/en-gb.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Close Alert",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Breadcrumb",
|
|
4
6
|
"components.button-add.addItem": "Add Item",
|
|
5
7
|
"components.button-copy.copied": "Copied!",
|
package/lang/en.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Close Alert",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Breadcrumb",
|
|
4
6
|
"components.button-add.addItem": "Add Item",
|
|
5
7
|
"components.button-copy.copied": "Copied!",
|
package/lang/es-es.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Cerrar alerta",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Ruta de navegación",
|
|
4
6
|
"components.button-add.addItem": "Agregar elemento",
|
|
5
7
|
"components.button-copy.copied": "¡Copiado!",
|
package/lang/es.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Cerrar alerta",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Ruta de navegación",
|
|
4
6
|
"components.button-add.addItem": "Agregar elemento",
|
|
5
7
|
"components.button-copy.copied": "Copiado.",
|
package/lang/fr-fr.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Fermer l’alerte",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Chemin de navigation",
|
|
4
6
|
"components.button-add.addItem": "Ajouter un élément",
|
|
5
7
|
"components.button-copy.copied": "Copie effectuée !",
|
package/lang/fr.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Fermer l’alerte",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Chemin de navigation",
|
|
4
6
|
"components.button-add.addItem": "Ajouter un élément",
|
|
5
7
|
"components.button-copy.copied": "Copié!",
|
package/lang/haw.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Pani i ka makaʻala",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Palapalapala",
|
|
4
6
|
"components.button-add.addItem": "Pākuʻi Mea",
|
|
5
7
|
"components.button-copy.copied": "Kope ʻia!",
|
package/lang/hi.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "अलर्ट बंद करें",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "ब्रेडक्रंब",
|
|
4
6
|
"components.button-add.addItem": "आइटम जोड़ें",
|
|
5
7
|
"components.button-copy.copied": "कॉपी किया गया!",
|
package/lang/ja.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "アラートを閉じる",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "階層",
|
|
4
6
|
"components.button-add.addItem": "項目の追加",
|
|
5
7
|
"components.button-copy.copied": "コピーできました。",
|
package/lang/ko.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "경보 닫기",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "이동 경로",
|
|
4
6
|
"components.button-add.addItem": "항목 추가",
|
|
5
7
|
"components.button-copy.copied": "복사 완료!",
|
package/lang/mi.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Kati Matohi",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Pānui",
|
|
4
6
|
"components.button-add.addItem": "Tāpiri Tūemi",
|
|
5
7
|
"components.button-copy.copied": "Kua tāruatia!",
|
package/lang/nl.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Waarschuwing sluiten",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Kruimelpad",
|
|
4
6
|
"components.button-add.addItem": "Item toevoegen",
|
|
5
7
|
"components.button-copy.copied": "Gekopieerd!",
|
package/lang/pt.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Fechar alerta",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Auxiliar de navegação",
|
|
4
6
|
"components.button-add.addItem": "Adicionar item",
|
|
5
7
|
"components.button-copy.copied": "Copiado!",
|
package/lang/sv.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Stängningsvarning",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Sökväg",
|
|
4
6
|
"components.button-add.addItem": "Lägg till objekt",
|
|
5
7
|
"components.button-copy.copied": "Kopierat!",
|
package/lang/th.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "ปิดการแจ้งเตือน",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "แถบนำทาง",
|
|
4
6
|
"components.button-add.addItem": "เพิ่มรายการ",
|
|
5
7
|
"components.button-copy.copied": "คัดลอกแล้ว!",
|
package/lang/tr.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Kapatma Uyarısı",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "İçerik Haritası",
|
|
4
6
|
"components.button-add.addItem": "Öğe Ekle",
|
|
5
7
|
"components.button-copy.copied": "Kopyalandı!",
|
package/lang/vi.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "Đóng Cảnh Báo",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "Đường dẫn",
|
|
4
6
|
"components.button-add.addItem": "Thêm mục",
|
|
5
7
|
"components.button-copy.copied": "Đã sao chép!",
|
package/lang/zh-cn.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "关闭提醒",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "痕迹导航",
|
|
4
6
|
"components.button-add.addItem": "添加项目",
|
|
5
7
|
"components.button-copy.copied": "已复制!",
|
package/lang/zh-tw.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"components.alert.close": "關閉警示",
|
|
3
|
+
"components.backdrop-loading.loadingAnnouncement": "Loading.",
|
|
4
|
+
"components.backdrop-loading.loadingCompleteAnnouncement": "Loading Complete.",
|
|
3
5
|
"components.breadcrumbs.breadcrumb": "導覽路徑",
|
|
4
6
|
"components.button-add.addItem": "新增項目",
|
|
5
7
|
"components.button-copy.copied": "複製成功!",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightspace-ui/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.234.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",
|