@brightspace-ui/core 3.243.2 → 3.245.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/README.md +1 -0
- package/components/page/page-footer.js +33 -0
- package/components/page/page-panel-mixin.js +6 -9
- package/components/page/page.js +13 -1
- package/components/skip-nav/README.md +34 -0
- package/components/skip-nav/skip-nav-custom.js +61 -0
- package/components/skip-nav/skip-nav-main.js +37 -0
- package/custom-elements.json +48 -1
- package/lang/ar.js +1 -0
- package/lang/ca.js +1 -0
- package/lang/cy.js +1 -0
- package/lang/da.js +1 -0
- package/lang/de.js +1 -0
- package/lang/en-gb.js +1 -0
- package/lang/en.js +1 -0
- package/lang/es-es.js +1 -0
- package/lang/es.js +1 -0
- package/lang/fr-fr.js +1 -0
- package/lang/fr.js +1 -0
- package/lang/haw.js +1 -0
- package/lang/hi.js +1 -0
- package/lang/ja.js +1 -0
- package/lang/ko.js +1 -0
- package/lang/mi.js +1 -0
- package/lang/nl.js +1 -0
- package/lang/pt.js +1 -0
- package/lang/sv.js +1 -0
- package/lang/th.js +1 -0
- package/lang/tr.js +1 -0
- package/lang/vi.js +1 -0
- package/lang/zh-cn.js +1 -0
- package/lang/zh-tw.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -50,6 +50,7 @@ npm install @brightspace-ui/core
|
|
|
50
50
|
* [Selection](components/selection/): components for selection and bulk actions
|
|
51
51
|
* [Scroll Wrapper](components/scroll-wrapper/): arrows to scroll content horizontally
|
|
52
52
|
* [Skeleton](components/skeleton/): apply low-fidelity skeletons to your application as it loads
|
|
53
|
+
* [Skip Nav](components/skip-nav/): components for skipping past navigation panels
|
|
53
54
|
* [Sort](components/sorting/): menu for adjusting the sort order of data in a list
|
|
54
55
|
* [Status Indicator](components/status-indicator/): status-indicator components
|
|
55
56
|
* [Switch](components/switch/): switch component with on/off semantics
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { css, html, LitElement } from 'lit';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Component to be placed in the footer slot of d2l-page, providing consistent padding
|
|
5
|
+
* @slot - The main content of the footer panel
|
|
6
|
+
* @slot end - Optional content placed at the end of the footer
|
|
7
|
+
*/
|
|
8
|
+
class PageFooter extends LitElement {
|
|
9
|
+
|
|
10
|
+
static styles = css`
|
|
11
|
+
:host {
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-wrap: nowrap;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
padding: 0 var(--d2l-page-padding, 30px) 0.75rem; /* TODO: Padding needs to be figured out */
|
|
16
|
+
}
|
|
17
|
+
.start, .end {
|
|
18
|
+
align-items: center;
|
|
19
|
+
display: flex;
|
|
20
|
+
gap: 0.6rem; /* TODO: Padding needs to be figured out */
|
|
21
|
+
}
|
|
22
|
+
`;
|
|
23
|
+
|
|
24
|
+
render() {
|
|
25
|
+
return html`
|
|
26
|
+
<div class="start"><slot></slot></div>
|
|
27
|
+
<div class="end"><slot name="end"></slot></div>
|
|
28
|
+
`;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
customElements.define('d2l-page-footer', PageFooter);
|
|
@@ -7,6 +7,7 @@ export const pagePanelStyles = css`
|
|
|
7
7
|
align-items: center;
|
|
8
8
|
display: flex;
|
|
9
9
|
flex-direction: row;
|
|
10
|
+
gap: 6px;
|
|
10
11
|
justify-content: space-between;
|
|
11
12
|
}
|
|
12
13
|
.panel-header {
|
|
@@ -14,7 +15,7 @@ export const pagePanelStyles = css`
|
|
|
14
15
|
border-bottom: 1px solid var(--d2l-color-mica);
|
|
15
16
|
height: 70px;
|
|
16
17
|
overflow: hidden;
|
|
17
|
-
padding: 0 30px;
|
|
18
|
+
padding: 0 var(--d2l-page-padding, 30px);
|
|
18
19
|
position: sticky;
|
|
19
20
|
top: 0;
|
|
20
21
|
z-index: 14; /* To be over sticky content of our core components, but not over the header shadow */
|
|
@@ -27,7 +28,7 @@ export const pagePanelStyles = css`
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
.panel {
|
|
30
|
-
padding: 30px;
|
|
31
|
+
padding: var(--d2l-page-padding, 30px);
|
|
31
32
|
}
|
|
32
33
|
`;
|
|
33
34
|
|
|
@@ -49,17 +50,13 @@ export const PagePanelMixin = superclass => class extends superclass {
|
|
|
49
50
|
'panel': true,
|
|
50
51
|
'header-sticky': this._hasHeader
|
|
51
52
|
};
|
|
52
|
-
|
|
53
|
+
|
|
54
|
+
return html`
|
|
53
55
|
<div ?hidden="${!this._hasHeader}" class="panel-header">
|
|
54
56
|
<div class="header-start"><slot name="header-start" @slotchange="${this.#handleSlotVisibilityChange}"></slot></div>
|
|
55
57
|
<div class="header-end"><slot name="header-end" @slotchange="${this.#handleSlotVisibilityChange}"></slot></div>
|
|
56
|
-
</div>`;
|
|
57
|
-
|
|
58
|
-
return html`
|
|
59
|
-
<div>
|
|
60
|
-
${header}
|
|
61
|
-
<div class="${classMap(panelClasses)}">${content}</div>
|
|
62
58
|
</div>
|
|
59
|
+
<div class="${classMap(panelClasses)}">${content}</div>
|
|
63
60
|
`;
|
|
64
61
|
}
|
|
65
62
|
|
package/components/page/page.js
CHANGED
|
@@ -30,6 +30,7 @@ class Page extends LocalizeCoreElement(LitElement) {
|
|
|
30
30
|
--d2l-page-content-max-width: 1230px;
|
|
31
31
|
--d2l-page-footer-max-width: 1230px;
|
|
32
32
|
--d2l-page-margin-inline: auto;
|
|
33
|
+
--d2l-page-padding: 30px;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
:host([width-type="wide"]) {
|
|
@@ -44,6 +45,17 @@ class Page extends LocalizeCoreElement(LitElement) {
|
|
|
44
45
|
--d2l-page-footer-max-width: 100%;
|
|
45
46
|
}
|
|
46
47
|
|
|
48
|
+
@media (max-width: 929px) {
|
|
49
|
+
:host {
|
|
50
|
+
--d2l-page-padding: 24px;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
@media (max-width: 767px) {
|
|
54
|
+
:host {
|
|
55
|
+
--d2l-page-padding: 18px;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
47
59
|
.header {
|
|
48
60
|
position: relative;
|
|
49
61
|
z-index: 15; /* To be over sticky content of our core components */
|
|
@@ -88,7 +100,7 @@ class Page extends LocalizeCoreElement(LitElement) {
|
|
|
88
100
|
background-color: white;
|
|
89
101
|
box-shadow: 0 -2px 4px rgba(32, 33, 34, 0.2); /* ferrite */
|
|
90
102
|
inset: auto 0 0;
|
|
91
|
-
padding: 0.75rem
|
|
103
|
+
padding-block-start: 0.75rem;
|
|
92
104
|
position: fixed;
|
|
93
105
|
z-index: 10; /* To be over sticky content of our core components */
|
|
94
106
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Skip Nav
|
|
2
|
+
|
|
3
|
+
Components which provide a link for skipping past navigation panels.
|
|
4
|
+
|
|
5
|
+
## Skip Nav Main [d2l-skip-nav-main]
|
|
6
|
+
|
|
7
|
+
Meant to be used once at the page level, `<d2l-skip-nav-main>` provides preset "skip to main content" text. It also automatically skips to the `<main>` element of the page, or the first `<h1>` element.
|
|
8
|
+
|
|
9
|
+
## Skip Nav Custom [d2l-skip-nav-custom]
|
|
10
|
+
|
|
11
|
+
A skip navigation link where custom text can be provided. Focus will need to be moved manually when clicked.
|
|
12
|
+
|
|
13
|
+
<!-- docs: demo code properties name:d2l-skip-nav-custom sandboxTitle:'Skip Nav Custom' -->
|
|
14
|
+
```html
|
|
15
|
+
<script type="module">
|
|
16
|
+
import '@brightspace-ui/core/components/skip-nav/skip-nav-custom.js';
|
|
17
|
+
</script>
|
|
18
|
+
<d2l-skip-nav-custom text="Skip to custom place"></d2l-skip-nav-custom>
|
|
19
|
+
<button id="custom-target">Skip to here</button>
|
|
20
|
+
<script>
|
|
21
|
+
document.querySelector('d2l-skip-nav-custom').addEventListener('click', () => {
|
|
22
|
+
document.querySelector('#custom-target').focus();
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
<!-- docs: start hidden content -->
|
|
28
|
+
### Properties
|
|
29
|
+
|
|
30
|
+
| Property | Type | Description |
|
|
31
|
+
|--|--|--|
|
|
32
|
+
| `text` | String, required | Text for the link |
|
|
33
|
+
<!-- docs: end hidden content -->
|
|
34
|
+
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { css, html, LitElement } from 'lit';
|
|
2
|
+
import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
|
|
3
|
+
import { PropertyRequiredMixin } from '../../mixins/property-required/property-required-mixin.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A components which provides a custom skip navigation link
|
|
7
|
+
*/
|
|
8
|
+
class SkipNavCustom extends FocusMixin(PropertyRequiredMixin(LitElement)) {
|
|
9
|
+
|
|
10
|
+
static get properties() {
|
|
11
|
+
return {
|
|
12
|
+
/**
|
|
13
|
+
* ACCESSIBILITY: REQUIRED: Text for the link
|
|
14
|
+
* @type {string}
|
|
15
|
+
*/
|
|
16
|
+
text: { required: true, type: String }
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static get styles() {
|
|
21
|
+
return css`
|
|
22
|
+
a {
|
|
23
|
+
inset-inline-start: -10000px;
|
|
24
|
+
overflow: hidden;
|
|
25
|
+
position: absolute;
|
|
26
|
+
width: 1px;
|
|
27
|
+
}
|
|
28
|
+
a:active,
|
|
29
|
+
a:focus {
|
|
30
|
+
background-color: rgba(0, 0, 0, 0.7);
|
|
31
|
+
border: 1px solid rgba(0, 0, 0, 0.8);
|
|
32
|
+
color: #ffffff;
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
display: block;
|
|
35
|
+
font-weight: bold;
|
|
36
|
+
inset-block-start: 0;
|
|
37
|
+
inset-inline-start: 25%;
|
|
38
|
+
margin: 0 auto;
|
|
39
|
+
outline: none;
|
|
40
|
+
padding: 0.3em;
|
|
41
|
+
text-align: center;
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
width: 50%;
|
|
44
|
+
z-index: 10000;
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static get focusElementSelector() {
|
|
50
|
+
return 'a';
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
render() {
|
|
54
|
+
// Href attribute is needed for a11y tools to recognize anchor as a link
|
|
55
|
+
// and for click events to be dispatched using key presses
|
|
56
|
+
return html`<a href="javascript:void(0);" class="vdiff-target">${this.text}</a>`;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
customElements.define('d2l-skip-nav-custom', SkipNavCustom);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import './skip-nav-custom.js';
|
|
2
|
+
import { html, LitElement } from 'lit';
|
|
3
|
+
import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
|
|
4
|
+
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
5
|
+
import { querySelectorComposed } from '../../helpers/dom.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A components which provides a "skip to main content" link which automatically skip to the main element
|
|
9
|
+
*/
|
|
10
|
+
class SkipNavMain extends FocusMixin(LocalizeCoreElement(LitElement)) {
|
|
11
|
+
|
|
12
|
+
static get focusElementSelector() {
|
|
13
|
+
return 'd2l-skip-nav-custom';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
render() {
|
|
17
|
+
return html`<d2l-skip-nav-custom text="${this.localize('components.skip-nav.skipToMainContent')}" @click="${this.#handleSkipNav}" class="vdiff-target"></d2l-skip-nav-custom>`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
#handleSkipNav() {
|
|
21
|
+
const elem = querySelectorComposed(document, 'main') ||
|
|
22
|
+
querySelectorComposed(document, '[role="main"]') ||
|
|
23
|
+
querySelectorComposed(document, 'h1');
|
|
24
|
+
if (elem) {
|
|
25
|
+
elem.tabIndex = -1;
|
|
26
|
+
elem.focus();
|
|
27
|
+
} else {
|
|
28
|
+
/**
|
|
29
|
+
* @ignore
|
|
30
|
+
*/
|
|
31
|
+
this.dispatchEvent(new CustomEvent('d2l-skip-nav-main-fail', { bubbles: false, composed: false }));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
customElements.define('d2l-skip-nav-main', SkipNavMain);
|
package/custom-elements.json
CHANGED
|
@@ -12325,6 +12325,28 @@
|
|
|
12325
12325
|
}
|
|
12326
12326
|
]
|
|
12327
12327
|
},
|
|
12328
|
+
{
|
|
12329
|
+
"name": "d2l-page-footer",
|
|
12330
|
+
"path": "./components/page/page-footer.js",
|
|
12331
|
+
"description": "Component to be placed in the footer slot of d2l-page, providing consistent padding",
|
|
12332
|
+
"properties": [
|
|
12333
|
+
{
|
|
12334
|
+
"name": "styles",
|
|
12335
|
+
"type": "CSSResult",
|
|
12336
|
+
"default": "\"css`\\n\\t\\t:host {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\tpadding: 0 var(--d2l-page-padding, 30px) 0.75rem; /* TODO: Padding needs to be figured out */\\n\\t\\t}\\n\\t\\t.start, .end {\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tgap: 0.6rem; /* TODO: Padding needs to be figured out */\\n\\t\\t}\\n\\t`\""
|
|
12337
|
+
}
|
|
12338
|
+
],
|
|
12339
|
+
"slots": [
|
|
12340
|
+
{
|
|
12341
|
+
"name": "",
|
|
12342
|
+
"description": "The main content of the footer panel"
|
|
12343
|
+
},
|
|
12344
|
+
{
|
|
12345
|
+
"name": "end",
|
|
12346
|
+
"description": "Optional content placed at the end of the footer"
|
|
12347
|
+
}
|
|
12348
|
+
]
|
|
12349
|
+
},
|
|
12328
12350
|
{
|
|
12329
12351
|
"name": "d2l-page-main",
|
|
12330
12352
|
"path": "./components/page/page-main.js",
|
|
@@ -12431,7 +12453,7 @@
|
|
|
12431
12453
|
{
|
|
12432
12454
|
"name": "styles",
|
|
12433
12455
|
"type": "CSSResult",
|
|
12434
|
-
"default": "\"css`\\n\\t\\t:host {\\n\\t\\t\\t--d2l-page-header-max-width: 1230px;\\n\\t\\t\\t--d2l-page-content-max-width: 1230px;\\n\\t\\t\\t--d2l-page-footer-max-width: 1230px;\\n\\t\\t\\t--d2l-page-margin-inline: auto;\\n\\t\\t}\\n\\n\\t\\t:host([width-type=\\\"wide\\\"]) {\\n\\t\\t\\t--d2l-page-header-max-width: 1440px;\\n\\t\\t\\t--d2l-page-content-max-width: 1440px;\\n\\t\\t\\t--d2l-page-footer-max-width: 1440px;\\n\\t\\t}\\n\\n\\t\\t:host([width-type=\\\"fullscreen\\\"]) {\\n\\t\\t\\t--d2l-page-header-max-width: 100%;\\n\\t\\t\\t--d2l-page-content-max-width: 100%;\\n\\t\\t\\t--d2l-page-footer-max-width: 100%;\\n\\t\\t}\\n\\n\\t\\t.header {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tz-index: 15; /* To be over sticky content of our core components */\\n\\t\\t}\\n\\n\\t\\t.page.header-sticky .header {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0;\\n\\t\\t}\\n\\n\\t\\t.content {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tmargin-inline: var(--d2l-page-margin-inline, 0);\\n\\t\\t\\tmax-width: var(--d2l-page-content-max-width, 100%);\\n\\t\\t\\tpadding-bottom: var(--d2l-page-footer-height, 0); /* Reserve space for fixed footer */\\n\\t\\t}\\n\\n\\t\\tmain {\\n\\t\\t\\tflex: 1;\\n\\t\\t\\tmin-width: min(400px, 100%); /* Actual min width TBD */\\n\\t\\t}\\n\\n\\t\\t.side-nav-panel,\\n\\t\\t.supporting-panel {\\n\\t\\t\\theight: calc(100vh - var(--d2l-page-header-height, 0) - var(--d2l-page-footer-height, 0));\\n\\t\\t\\toverflow: clip auto;\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--d2l-page-header-height, 0);\\n\\t\\t}\\n\\n\\t\\t.divider {\\n\\t\\t\\tbackground-color: var(--d2l-color-gypsum);\\n\\t\\t\\tflex: none;\\n\\t\\t\\twidth: 4px;\\n\\t\\t}\\n\\n\\t\\t.footer:not([hidden]),\\n\\t\\t.floating-buttons-container {\\n\\t\\t\\tdisplay: inline;\\n\\t\\t}\\n\\t\\t.fixed-footer {\\n\\t\\t\\tbackground-color: white;\\n\\t\\t\\tbox-shadow: 0 -2px 4px rgba(32, 33, 34, 0.2); /* ferrite */\\n\\t\\t\\tinset: auto 0 0;\\n\\t\\t\\tpadding: 0.75rem
|
|
12456
|
+
"default": "\"css`\\n\\t\\t:host {\\n\\t\\t\\t--d2l-page-header-max-width: 1230px;\\n\\t\\t\\t--d2l-page-content-max-width: 1230px;\\n\\t\\t\\t--d2l-page-footer-max-width: 1230px;\\n\\t\\t\\t--d2l-page-margin-inline: auto;\\n\\t\\t\\t--d2l-page-padding: 30px;\\n\\t\\t}\\n\\n\\t\\t:host([width-type=\\\"wide\\\"]) {\\n\\t\\t\\t--d2l-page-header-max-width: 1440px;\\n\\t\\t\\t--d2l-page-content-max-width: 1440px;\\n\\t\\t\\t--d2l-page-footer-max-width: 1440px;\\n\\t\\t}\\n\\n\\t\\t:host([width-type=\\\"fullscreen\\\"]) {\\n\\t\\t\\t--d2l-page-header-max-width: 100%;\\n\\t\\t\\t--d2l-page-content-max-width: 100%;\\n\\t\\t\\t--d2l-page-footer-max-width: 100%;\\n\\t\\t}\\n\\n\\t\\t@media (max-width: 929px) {\\n\\t\\t\\t:host {\\n\\t\\t\\t\\t--d2l-page-padding: 24px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t@media (max-width: 767px) {\\n\\t\\t\\t:host {\\n\\t\\t\\t\\t--d2l-page-padding: 18px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.header {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tz-index: 15; /* To be over sticky content of our core components */\\n\\t\\t}\\n\\n\\t\\t.page.header-sticky .header {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0;\\n\\t\\t}\\n\\n\\t\\t.content {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tmargin-inline: var(--d2l-page-margin-inline, 0);\\n\\t\\t\\tmax-width: var(--d2l-page-content-max-width, 100%);\\n\\t\\t\\tpadding-bottom: var(--d2l-page-footer-height, 0); /* Reserve space for fixed footer */\\n\\t\\t}\\n\\n\\t\\tmain {\\n\\t\\t\\tflex: 1;\\n\\t\\t\\tmin-width: min(400px, 100%); /* Actual min width TBD */\\n\\t\\t}\\n\\n\\t\\t.side-nav-panel,\\n\\t\\t.supporting-panel {\\n\\t\\t\\theight: calc(100vh - var(--d2l-page-header-height, 0) - var(--d2l-page-footer-height, 0));\\n\\t\\t\\toverflow: clip auto;\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--d2l-page-header-height, 0);\\n\\t\\t}\\n\\n\\t\\t.divider {\\n\\t\\t\\tbackground-color: var(--d2l-color-gypsum);\\n\\t\\t\\tflex: none;\\n\\t\\t\\twidth: 4px;\\n\\t\\t}\\n\\n\\t\\t.footer:not([hidden]),\\n\\t\\t.floating-buttons-container {\\n\\t\\t\\tdisplay: inline;\\n\\t\\t}\\n\\t\\t.fixed-footer {\\n\\t\\t\\tbackground-color: white;\\n\\t\\t\\tbox-shadow: 0 -2px 4px rgba(32, 33, 34, 0.2); /* ferrite */\\n\\t\\t\\tinset: auto 0 0;\\n\\t\\t\\tpadding-block-start: 0.75rem;\\n\\t\\t\\tposition: fixed;\\n\\t\\t\\tz-index: 10; /* To be over sticky content of our core components */\\n\\t\\t}\\n\\t\\t.footer-contents {\\n\\t\\t\\tmargin-inline: var(--d2l-page-margin-inline, 0);\\n\\t\\t\\tmax-width: var(--d2l-page-footer-max-width, 100%);\\n\\t\\t}\\n\\t`\""
|
|
12435
12457
|
},
|
|
12436
12458
|
{
|
|
12437
12459
|
"name": "widthType",
|
|
@@ -14053,6 +14075,31 @@
|
|
|
14053
14075
|
}
|
|
14054
14076
|
]
|
|
14055
14077
|
},
|
|
14078
|
+
{
|
|
14079
|
+
"name": "d2l-skip-nav-custom",
|
|
14080
|
+
"path": "./components/skip-nav/skip-nav-custom.js",
|
|
14081
|
+
"description": "A components which provides a custom skip navigation link",
|
|
14082
|
+
"attributes": [
|
|
14083
|
+
{
|
|
14084
|
+
"name": "text",
|
|
14085
|
+
"description": "ACCESSIBILITY: REQUIRED: Text for the link",
|
|
14086
|
+
"type": "string"
|
|
14087
|
+
}
|
|
14088
|
+
],
|
|
14089
|
+
"properties": [
|
|
14090
|
+
{
|
|
14091
|
+
"name": "text",
|
|
14092
|
+
"attribute": "text",
|
|
14093
|
+
"description": "ACCESSIBILITY: REQUIRED: Text for the link",
|
|
14094
|
+
"type": "string"
|
|
14095
|
+
}
|
|
14096
|
+
]
|
|
14097
|
+
},
|
|
14098
|
+
{
|
|
14099
|
+
"name": "d2l-skip-nav-main",
|
|
14100
|
+
"path": "./components/skip-nav/skip-nav-main.js",
|
|
14101
|
+
"description": "A components which provides a \"skip to main content\" link which automatically skip to the main element"
|
|
14102
|
+
},
|
|
14056
14103
|
{
|
|
14057
14104
|
"name": "d2l-sort-item",
|
|
14058
14105
|
"path": "./components/sorting/sort-item.js",
|
package/lang/ar.js
CHANGED
|
@@ -189,6 +189,7 @@ export default {
|
|
|
189
189
|
"components.selection.selected": "تم تحديد {count}",
|
|
190
190
|
"components.selection.selected-plus": "تم تحديد {count}+",
|
|
191
191
|
"components.selection-controls.label": "إجراءات التحديد",
|
|
192
|
+
"components.skip-nav.skipToMainContent": "تجاوز إلى المحتوى الرئيسي",
|
|
192
193
|
"components.sort.label": "فرز",
|
|
193
194
|
"components.sort.text": "الفرز: {selectedItemText}",
|
|
194
195
|
"components.switch.conditions": "يجب استيفاء الشروط",
|
package/lang/ca.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} selected",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ selected",
|
|
187
187
|
"components.selection-controls.label": "Actions for selection",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "skip to main content",
|
|
188
189
|
"components.sort.label": "Sort",
|
|
189
190
|
"components.sort.text": "Sort: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Conditions must be met",
|
package/lang/cy.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} wedi’u dewis.",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ wedi’u dewis",
|
|
187
187
|
"components.selection-controls.label": "Camau gweithredu ar gyfer detholiad",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "neidio i’r prif gynnwys",
|
|
188
189
|
"components.sort.label": "Trefnu",
|
|
189
190
|
"components.sort.text": "Trefnu: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Rhaid bodloni’r amodau",
|
package/lang/da.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} valgt",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ valgt",
|
|
187
187
|
"components.selection-controls.label": "Handlinger for valg",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "spring videre til hovedindhold",
|
|
188
189
|
"components.sort.label": "Sortér",
|
|
189
190
|
"components.sort.text": "Sortér: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Betingelserne skal være opfyldt",
|
package/lang/de.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} ausgewählt",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ ausgewählt",
|
|
187
187
|
"components.selection-controls.label": "Aktionen für Auswahl",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "zum Hauptinhalt springen",
|
|
188
189
|
"components.sort.label": "Sortieren",
|
|
189
190
|
"components.sort.text": "Sortieren: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Bedingungen müssen erfüllt sein",
|
package/lang/en-gb.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} selected",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ selected",
|
|
187
187
|
"components.selection-controls.label": "Actions for selection",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "skip to main content",
|
|
188
189
|
"components.sort.label": "Sort",
|
|
189
190
|
"components.sort.text": "Sort: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Conditions must be met",
|
package/lang/en.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} selected",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ selected",
|
|
187
187
|
"components.selection-controls.label": "Actions for selection",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "skip to main content",
|
|
188
189
|
"components.sort.label": "Sort",
|
|
189
190
|
"components.sort.text": "Sort: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Conditions must be met",
|
package/lang/es-es.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} seleccionados",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ seleccionados",
|
|
187
187
|
"components.selection-controls.label": "Acciones para la selección",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "pasar al contenido principal",
|
|
188
189
|
"components.sort.label": "Ordenar",
|
|
189
190
|
"components.sort.text": "Ordenar: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Deben cumplirse las condiciones",
|
package/lang/es.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} seleccionados",
|
|
186
186
|
"components.selection.selected-plus": "Más de {count} seleccionados",
|
|
187
187
|
"components.selection-controls.label": "Acciones para la selección",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "pasar al contenido principal",
|
|
188
189
|
"components.sort.label": "Ordenar",
|
|
189
190
|
"components.sort.text": "Ordenar: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Se deben cumplir las condiciones",
|
package/lang/fr-fr.js
CHANGED
|
@@ -184,6 +184,7 @@ export default {
|
|
|
184
184
|
"components.selection.selected": "{count} sélectionnés",
|
|
185
185
|
"components.selection.selected-plus": "{count}+ sélectionné(e)(s)",
|
|
186
186
|
"components.selection-controls.label": "Actions pour la sélection",
|
|
187
|
+
"components.skip-nav.skipToMainContent": "passer au contenu principal",
|
|
187
188
|
"components.sort.label": "Trier",
|
|
188
189
|
"components.sort.text": "Trier : {selectedItemText}",
|
|
189
190
|
"components.switch.conditions": "Les conditions doivent être remplies",
|
package/lang/fr.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} sélectionné(s)",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ sélectionné",
|
|
187
187
|
"components.selection-controls.label": "Actions à sélectionner",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "passer au contenu principal",
|
|
188
189
|
"components.sort.label": "Trier",
|
|
189
190
|
"components.sort.text": "Trier : {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Les conditions doivent être remplies",
|
package/lang/haw.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} koho",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ i koho ʻia",
|
|
187
187
|
"components.selection-controls.label": "Nā hana no ke koho",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "lele i ka mea nui o ka ʻike",
|
|
188
189
|
"components.sort.label": "Hoʻokaʻawale",
|
|
189
190
|
"components.sort.text": "Hoʻokaʻawale: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Pono e hoʻokō i nā kūlana",
|
package/lang/hi.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} चयनित",
|
|
186
186
|
"components.selection.selected-plus": "{count} से अधिक चयनित",
|
|
187
187
|
"components.selection-controls.label": "चयन के लिए क्रियाएँ",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "मुख्य सामग्री में जाएँ",
|
|
188
189
|
"components.sort.label": "सॉर्ट करें",
|
|
189
190
|
"components.sort.text": "सॉर्ट करें: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "शर्तें पूरी होनी चाहिए",
|
package/lang/ja.js
CHANGED
|
@@ -176,6 +176,7 @@ export default {
|
|
|
176
176
|
"components.selection.selected": "{count} 個を選択済み",
|
|
177
177
|
"components.selection.selected-plus": "{count} 個以上を選択済み",
|
|
178
178
|
"components.selection-controls.label": "選択のアクション",
|
|
179
|
+
"components.skip-nav.skipToMainContent": "メインコンテンツへスキップ",
|
|
179
180
|
"components.sort.label": "並べ替え",
|
|
180
181
|
"components.sort.text": "並べ替え: {selectedItemText}",
|
|
181
182
|
"components.switch.conditions": "条件が一致する必要があります",
|
package/lang/ko.js
CHANGED
|
@@ -176,6 +176,7 @@ export default {
|
|
|
176
176
|
"components.selection.selected": "{count}개 선택됨",
|
|
177
177
|
"components.selection.selected-plus": "{count}+개 선택됨",
|
|
178
178
|
"components.selection-controls.label": "선택 작업",
|
|
179
|
+
"components.skip-nav.skipToMainContent": "기본 콘텐츠로 건너뛰기",
|
|
179
180
|
"components.sort.label": "정렬",
|
|
180
181
|
"components.sort.text": "정렬: {selectedItemText}",
|
|
181
182
|
"components.switch.conditions": "조건을 충족해야 합니다",
|
package/lang/mi.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} kua tīpakohia",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ kua tīpakohia",
|
|
187
187
|
"components.selection-controls.label": "Ngā mahinga mō te tīpakonga",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "whakarereke ki te ihirangi matua",
|
|
188
189
|
"components.sort.label": "Kōmaka",
|
|
189
190
|
"components.sort.text": "Kōmaka: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Me tutuki ngā here",
|
package/lang/nl.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} geselecteerd",
|
|
186
186
|
"components.selection.selected-plus": "Meer dan {count} geselecteerd",
|
|
187
187
|
"components.selection-controls.label": "Acties voor selectie",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "meteen naar hoofdinhoud gaan",
|
|
188
189
|
"components.sort.label": "Sorteren",
|
|
189
190
|
"components.sort.text": "Sorteren: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Er moet aan de voorwaarden worden voldaan",
|
package/lang/pt.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} selecionados",
|
|
186
186
|
"components.selection.selected-plus": "Mais de {count} selecionados",
|
|
187
187
|
"components.selection-controls.label": "Ações para seleção",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "passar para conteúdo principal",
|
|
188
189
|
"components.sort.label": "Classificar",
|
|
189
190
|
"components.sort.text": "Classificar: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "As condições devem ser atendidas",
|
package/lang/sv.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} valda",
|
|
186
186
|
"components.selection.selected-plus": "Över {count} valda",
|
|
187
187
|
"components.selection-controls.label": "Åtgärder för val",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "fortsätt till huvudinnehåll",
|
|
188
189
|
"components.sort.label": "Sortera",
|
|
189
190
|
"components.sort.text": "Sortera: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Villkoren måste uppfyllas",
|
package/lang/th.js
CHANGED
|
@@ -177,6 +177,7 @@ export default {
|
|
|
177
177
|
"components.selection.selected": "{count} ที่เลือกแล้ว",
|
|
178
178
|
"components.selection.selected-plus": "{count}+ ที่เลือกแล้ว",
|
|
179
179
|
"components.selection-controls.label": "การดำเนินการสำหรับการเลือก",
|
|
180
|
+
"components.skip-nav.skipToMainContent": "ข้ามไปยังเนื้อหาหลัก",
|
|
180
181
|
"components.sort.label": "เรียงลำดับ",
|
|
181
182
|
"components.sort.text": "เรียงลำดับ: {selectedItemText}",
|
|
182
183
|
"components.switch.conditions": "ต้องตรงตามเงื่อนไข",
|
package/lang/tr.js
CHANGED
|
@@ -185,6 +185,7 @@ export default {
|
|
|
185
185
|
"components.selection.selected": "{count} öğe seçildi",
|
|
186
186
|
"components.selection.selected-plus": "{count}+ öğe seçildi",
|
|
187
187
|
"components.selection-controls.label": "Seçim için eylemler",
|
|
188
|
+
"components.skip-nav.skipToMainContent": "ana içeriğe atla",
|
|
188
189
|
"components.sort.label": "Sırala",
|
|
189
190
|
"components.sort.text": "Sırala: {selectedItemText}",
|
|
190
191
|
"components.switch.conditions": "Koşullar karşılanmalıdır",
|
package/lang/vi.js
CHANGED
|
@@ -174,6 +174,7 @@ export default {
|
|
|
174
174
|
"components.selection.selected": "{count} mục được chọn",
|
|
175
175
|
"components.selection.selected-plus": "{count}+ mục được chọn",
|
|
176
176
|
"components.selection-controls.label": "Các thao tác để chọn",
|
|
177
|
+
"components.skip-nav.skipToMainContent": "chuyển sang đến nội dung chính",
|
|
177
178
|
"components.sort.label": "Sắp xếp",
|
|
178
179
|
"components.sort.text": "Sắp xếp: {selectedItemText}",
|
|
179
180
|
"components.switch.conditions": "Các điều kiện phải được đáp ứng",
|
package/lang/zh-cn.js
CHANGED
|
@@ -176,6 +176,7 @@ export default {
|
|
|
176
176
|
"components.selection.selected": "已选 {count}",
|
|
177
177
|
"components.selection.selected-plus": "已选 + {count}",
|
|
178
178
|
"components.selection-controls.label": "针对所选内容的操作",
|
|
179
|
+
"components.skip-nav.skipToMainContent": "跳到主目录",
|
|
179
180
|
"components.sort.label": "排序",
|
|
180
181
|
"components.sort.text": "排序:{selectedItemText}",
|
|
181
182
|
"components.switch.conditions": "必须符合条件",
|
package/lang/zh-tw.js
CHANGED
|
@@ -177,6 +177,7 @@ export default {
|
|
|
177
177
|
"components.selection.selected": "已選取 {count} 個",
|
|
178
178
|
"components.selection.selected-plus": "已選取 {count}+ 個",
|
|
179
179
|
"components.selection-controls.label": "選擇的動作",
|
|
180
|
+
"components.skip-nav.skipToMainContent": "跳至主要內容",
|
|
180
181
|
"components.sort.label": "排序",
|
|
181
182
|
"components.sort.text": "排序:{selectedItemText}",
|
|
182
183
|
"components.switch.conditions": "必須符合條件",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightspace-ui/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.245.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",
|