@brightspace-ui/core 1.234.5 → 1.235.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.
@@ -312,6 +312,7 @@ The `d2l-list-header` component can be placed in the `d2l-list`'s `header` slot
312
312
  | Property | Type | Description |
313
313
  |---|---|---|
314
314
  | `no-selection` | Boolean | Whether to render select-all and selection summary |
315
+ | `no-sticky` | Boolean | Disables sticky positioning for the header |
315
316
  | `padding-type` | String | Header whitespace (`normal` (default), `slim`) |
316
317
  | `select-all-pages-allowed` | Boolean | Whether all pages can be selected |
317
318
  <!-- docs: end hidden content -->
@@ -3,6 +3,8 @@ import '../selection/selection-select-all.js';
3
3
  import '../selection/selection-select-all-pages.js';
4
4
  import '../selection/selection-summary.js';
5
5
  import { css, html, LitElement } from 'lit-element/lit-element.js';
6
+ import { classMap } from 'lit-html/directives/class-map.js';
7
+ import { findComposedAncestor } from '../../helpers/dom.js';
6
8
  import { LocalizeCoreElement } from '../../lang/localize-core-element.js';
7
9
  import { RtlMixin } from '../../mixins/rtl-mixin.js';
8
10
 
@@ -19,6 +21,11 @@ class ListHeader extends RtlMixin(LocalizeCoreElement(LitElement)) {
19
21
  * @type {boolean}
20
22
  */
21
23
  noSelection: { type: Boolean, attribute: 'no-selection' },
24
+ /**
25
+ * Disables sticky positioning for the header
26
+ * @type {boolean}
27
+ */
28
+ noSticky: { type: Boolean, attribute: 'no-sticky' },
22
29
  /**
23
30
  * How much padding to render list items with
24
31
  * @type {'normal'|'slim'}
@@ -35,14 +42,36 @@ class ListHeader extends RtlMixin(LocalizeCoreElement(LitElement)) {
35
42
  * TODO: Remove
36
43
  * @type {boolean}
37
44
  */
38
- slim: { reflect: true, type: Boolean }
45
+ slim: { reflect: true, type: Boolean },
46
+ _scrolled: { type: Boolean, reflect: true }
39
47
  };
40
48
  }
41
49
 
42
50
  static get styles() {
43
51
  return css`
44
52
  :host {
53
+ background-color: var(--d2l-list-header-background-color, white);
45
54
  display: block;
55
+ position: sticky;
56
+ top: 0;
57
+ z-index: 6; /* must be greater than d2l-list-item-active-border */
58
+ }
59
+ :host([no-sticky]) {
60
+ background-color: transparent;
61
+ position: static;
62
+ z-index: auto;
63
+ }
64
+ .d2l-list-header-shadow {
65
+ transition: box-shadow 200ms ease-out;
66
+ }
67
+ :host([_scrolled]) .d2l-list-header-shadow {
68
+ background-color: var(--d2l-list-header-background-color, white);
69
+ bottom: -4px;
70
+ box-shadow: 0 8px 12px -9px rgba(0, 0, 0, 0.3);
71
+ clip: rect(30px, auto, 200px, auto);
72
+ height: 40px;
73
+ position: absolute;
74
+ width: 100%;
46
75
  }
47
76
  :host([hidden]) {
48
77
  display: none;
@@ -60,6 +89,9 @@ class ListHeader extends RtlMixin(LocalizeCoreElement(LitElement)) {
60
89
  :host([padding-type="slim"]) .d2l-list-header-container {
61
90
  min-height: 36px;
62
91
  }
92
+ .d2l-list-header-extend-separator {
93
+ padding: 0 0.9rem;
94
+ }
63
95
  d2l-selection-select-all {
64
96
  flex: none;
65
97
  }
@@ -93,14 +125,29 @@ class ListHeader extends RtlMixin(LocalizeCoreElement(LitElement)) {
93
125
  constructor() {
94
126
  super();
95
127
  this.noSelection = false;
128
+ this.noSticky = false;
96
129
  this.paddingType = 'normal';
97
130
  this.selectAllPagesAllowed = false;
98
131
  this.slim = false;
132
+ this._extendSeparator = false;
133
+ }
134
+
135
+ connectedCallback() {
136
+ super.connectedCallback();
137
+
138
+ const parent = findComposedAncestor(this.parentNode, node => node && node.tagName === 'D2L-LIST');
139
+ if (!parent) return;
140
+
141
+ this._extendSeparator = parent.hasAttribute('extend-separators');
99
142
  }
100
143
 
101
144
  render() {
145
+ const classes = {
146
+ 'd2l-list-header-container': true,
147
+ 'd2l-list-header-extend-separator': this._extendSeparator
148
+ };
102
149
  return html`
103
- <div class="d2l-list-header-container">
150
+ <div class="${classMap(classes)}">
104
151
  ${this.noSelection ? null : html`
105
152
  <d2l-selection-select-all></d2l-selection-select-all>
106
153
  <d2l-selection-summary
@@ -114,6 +161,7 @@ class ListHeader extends RtlMixin(LocalizeCoreElement(LitElement)) {
114
161
  <d2l-overflow-group opener-type="icon"><slot></slot></d2l-overflow-group>
115
162
  </div>
116
163
  </div>
164
+ ${!this.noSticky ? html`<div class="d2l-list-header-shadow"></div>` : null}
117
165
  `;
118
166
  }
119
167
 
@@ -61,8 +61,14 @@ class List extends SelectionMixin(LitElement) {
61
61
  this._listItemChanges = [];
62
62
  }
63
63
 
64
+ disconnectedCallback() {
65
+ super.disconnectedCallback();
66
+ if (this._intersectionObserver) this._intersectionObserver.disconnect();
67
+ }
68
+
64
69
  firstUpdated(changedProperties) {
65
70
  super.firstUpdated(changedProperties);
71
+
66
72
  this.addEventListener('d2l-list-item-selected', e => {
67
73
 
68
74
  // batch the changes from select-all and nested lists
@@ -87,11 +93,26 @@ class List extends SelectionMixin(LitElement) {
87
93
  }, 0);
88
94
 
89
95
  });
96
+
97
+ if (typeof(IntersectionObserver) === 'function') {
98
+ this._intersectionObserver = new IntersectionObserver(entries => {
99
+ const slot = this.shadowRoot.querySelector('slot[name="header"]');
100
+ const header = slot.assignedNodes({ flatten: true }).find(node => {
101
+ return node.nodeType === Node.ELEMENT_NODE && node.tagName === 'D2L-LIST-HEADER';
102
+ });
103
+ if (!header) return;
104
+ const entry = entries[0];
105
+ header._scrolled = !entry.isIntersecting;
106
+ });
107
+ this._intersectionObserver.observe(this.shadowRoot.querySelector('.d2l-list-top-sentinel'));
108
+ }
109
+
90
110
  }
91
111
 
92
112
  render() {
93
113
  const role = !this.grid ? 'list' : 'application';
94
114
  return html`
115
+ <div class="d2l-list-top-sentinel"></div>
95
116
  <div role="${role}" class="d2l-list-container">
96
117
  <slot name="header"></slot>
97
118
  <slot @keydown="${this._handleKeyDown}"></slot>
@@ -6679,6 +6679,12 @@
6679
6679
  "type": "boolean",
6680
6680
  "default": "false"
6681
6681
  },
6682
+ {
6683
+ "name": "no-sticky",
6684
+ "description": "Disables sticky positioning for the header",
6685
+ "type": "boolean",
6686
+ "default": "false"
6687
+ },
6682
6688
  {
6683
6689
  "name": "padding-type",
6684
6690
  "description": "How much padding to render list items with",
@@ -6700,6 +6706,13 @@
6700
6706
  "type": "boolean",
6701
6707
  "default": "false"
6702
6708
  },
6709
+ {
6710
+ "name": "noSticky",
6711
+ "attribute": "no-sticky",
6712
+ "description": "Disables sticky positioning for the header",
6713
+ "type": "boolean",
6714
+ "default": "false"
6715
+ },
6703
6716
  {
6704
6717
  "name": "paddingType",
6705
6718
  "attribute": "padding-type",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspace-ui/core",
3
- "version": "1.234.5",
3
+ "version": "1.235.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",
@@ -20,8 +20,7 @@
20
20
  "test": "npm run lint && npm run test:headless && npm run test:axe",
21
21
  "test:axe": "web-test-runner --group aXe",
22
22
  "test:headless": "web-test-runner --group default",
23
- "test:headless:watch": "web-test-runner --group default --watch",
24
- "test:perf": "web-test-runner --group perf"
23
+ "test:headless:watch": "web-test-runner --group default --watch"
25
24
  },
26
25
  "files": [
27
26
  "custom-elements.json",
@@ -60,8 +59,7 @@
60
59
  "lit-analyzer": "^1",
61
60
  "node-sass": "^7",
62
61
  "sinon": "^13",
63
- "stylelint": "^14",
64
- "web-test-runner-performance": "^0.1"
62
+ "stylelint": "^14"
65
63
  },
66
64
  "dependencies": {
67
65
  "@brightspace-ui/intl": "^3",
@@ -8,7 +8,6 @@
8
8
  import '../../../components/demo/demo-page.js';
9
9
  import '../primary-secondary.js';
10
10
  import '../../../components/button/button.js';
11
- import '../../../components/dialog/dialog-fullscreen.js';
12
11
  </script>
13
12
  </head>
14
13
  <body>
@@ -19,26 +18,6 @@
19
18
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt, velit quis vulputate condimentum, erat nibh accumsan augue, sed rutrum nibh elit et augue. Cras sed purus sit amet tellus gravida cursus eget ac nulla. Sed volutpat volutpat sodales. Mauris sed sodales odio. Aenean sem tortor, aliquam in leo eget, commodo condimentum odio. Pellentesque eu efficitur ante. Cras non diam vitae nibh condimentum egestas. Proin malesuada dapibus dapibus. Nam congue a risus id viverra. Phasellus hendrerit ex diam, eget semper nunc efficitur id. Nullam feugiat libero urna, quis bibendum urna dignissim ac. Donec convallis nulla eu nulla tempor, molestie elementum elit blandit. Ut eget ipsum eget odio elementum commodo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt, velit quis vulputate condimentum, erat nibh accumsan augue, sed rutrum nibh elit et augue. Cras sed purus sit amet tellus gravida cursus eget ac nulla. Sed volutpat volutpat sodales. Mauris sed sodales odio. Aenean sem tortor, aliquam in leo eget, commodo condimentum odio. Pellentesque eu efficitur ante. Cras non diam vitae nibh condimentum egestas. Proin malesuada dapibus dapibus. Nam congue a risus id viverra. Phasellus hendrerit ex diam, eget semper nunc efficitur id. Nullam feugiat libero urna, quis bibendum urna dignissim ac. Donec convallis nulla eu nulla tempor, molestie elementum elit blandit. Ut eget ipsum eget odio elementum commodo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt, velit quis vulputate condimentum, erat nibh accumsan augue, sed rutrum nibh elit et augue. Cras sed purus sit amet tellus gravida cursus eget ac nulla. Sed volutpat volutpat sodales. Mauris sed sodales odio. Aenean sem tortor, aliquam in leo eget, commodo condimentum odio. Pellentesque eu efficitur ante. Cras non diam vitae nibh condimentum egestas. Proin malesuada dapibus dapibus. Nam congue a risus id viverra. Phasellus hendrerit ex diam, eget semper nunc efficitur id. Nullam feugiat libero urna, quis bibendum urna dignissim ac. Donec convallis nulla eu nulla tempor, molestie elementum elit blandit. Ut eget ipsum eget odio elementum commodo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt, velit quis vulputate condimentum, erat nibh accumsan augue, sed rutrum nibh elit et augue. Cras sed purus sit amet tellus gravida cursus eget ac nulla. Sed volutpat volutpat sodales. Mauris sed sodales odio. Aenean sem tortor, aliquam in leo eget, commodo condimentum odio. Pellentesque eu efficitur ante. Cras non diam vitae nibh condimentum egestas. Proin malesuada dapibus dapibus. Nam congue a risus id viverra. Phasellus hendrerit ex diam, eget semper nunc efficitur id. Nullam feugiat libero urna, quis bibendum urna dignissim ac. Donec convallis nulla eu nulla tempor, molestie elementum elit blandit. Ut eget ipsum eget odio elementum commodo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt, velit quis vulputate condimentum, erat nibh accumsan augue, sed rutrum nibh elit et augue. Cras sed purus sit amet tellus gravida cursus eget ac nulla. Sed volutpat volutpat sodales. Mauris sed sodales odio. Aenean sem tortor, aliquam in leo eget, commodo condimentum odio. Pellentesque eu efficitur ante. Cras non diam vitae nibh condimentum egestas. Proin malesuada dapibus dapibus. Nam congue a risus id viverra. Phasellus hendrerit ex diam, eget semper nunc efficitur id. Nullam feugiat libero urna, quis bibendum urna dignissim ac. Donec convallis nulla eu nulla tempor, molestie elementum elit blandit. Ut eget ipsum eget odio elementum commodo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt, velit quis vulputate condimentum, erat nibh accumsan augue, sed rutrum nibh elit et augue. Cras sed purus sit amet tellus gravida cursus eget ac nulla. Sed volutpat volutpat sodales. Mauris sed sodales odio. Aenean sem tortor, aliquam in leo eget, commodo condimentum odio. Pellentesque eu efficitur ante. Cras non diam vitae nibh condimentum egestas. Proin malesuada dapibus dapibus. Nam congue a risus id viverra. Phasellus hendrerit ex diam, eget semper nunc efficitur id. Nullam feugiat libero urna, quis bibendum urna dignissim ac. Donec convallis nulla eu nulla tempor, molestie elementum elit blandit. Ut eget ipsum eget odio elementum commodo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt, velit quis vulputate condimentum, erat nibh accumsan augue, sed rutrum nibh elit et augue. Cras sed purus sit amet tellus gravida cursus eget ac nulla. Sed volutpat volutpat sodales. Mauris sed sodales odio. Aenean sem tortor, aliquam in leo eget, commodo condimentum odio. Pellentesque eu efficitur ante. Cras non diam vitae nibh condimentum egestas. Proin malesuada dapibus dapibus. Nam congue a risus id viverra. Phasellus hendrerit ex diam, eget semper nunc efficitur id. Nullam feugiat libero urna, quis bibendum urna dignissim ac. Donec convallis nulla eu nulla tempor, molestie elementum elit blandit. Ut eget ipsum eget odio elementum commodo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt, velit quis vulputate condimentum, erat nibh accumsan augue, sed rutrum nibh elit et augue. Cras sed purus sit amet tellus gravida cursus eget ac nulla. Sed volutpat volutpat sodales. Mauris sed sodales odio. Aenean sem tortor, aliquam in leo eget, commodo condimentum odio. Pellentesque eu efficitur ante. Cras non diam vitae nibh condimentum egestas. Proin malesuada dapibus dapibus. Nam congue a risus id viverra. Phasellus hendrerit ex diam, eget semper nunc efficitur id. Nullam feugiat libero urna, quis bibendum urna dignissim ac. Donec convallis nulla eu nulla tempor, molestie elementum elit blandit. Ut eget ipsum eget odio elementum commodo.
20
19
  </div>
21
20
  <div slot="secondary">
22
- <d2l-button id="open">Show Dialog</d2l-button>
23
- <d2l-dialog-fullscreen id="dialogFullscreen" title-text="Fullscreen Title">
24
- <p>Deadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spanker</p>
25
- <p>Shiver me timbers to go on account lookout wherry doubloon chase. Belay yo-ho-ho keelhaul squiffy black spot yardarm spyglass sheet transom heave to.</p>
26
- <p>Trysail Sail ho Corsair red ensign hulk smartly boom jib rum gangway. Case shot Shiver me timbers gangplank crack Jennys tea cup ballast Blimey lee snow crow's nest rutters. Fluke jib scourge of the seven seas boatswain schooner gaff booty Jack Tar transom spirits.</p>
27
- <p>Deadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spanker</p>
28
- <p>Shiver me timbers to go on account lookout wherry doubloon chase. Belay yo-ho-ho keelhaul squiffy black spot yardarm spyglass sheet transom heave to.</p>
29
- <p>Trysail Sail ho Corsair red ensign hulk smartly boom jib rum gangway. Case shot Shiver me timbers gangplank crack Jennys tea cup ballast Blimey lee snow crow's nest rutters. Fluke jib scourge of the seven seas boatswain schooner gaff booty Jack Tar transom spirits.</p>
30
- <d2l-button slot="footer" primary data-dialog-action="save">Save</d2l-button>
31
- <d2l-button slot="footer" data-dialog-action>Cancel</d2l-button>
32
- </d2l-dialog-fullscreen>
33
-
34
- <script>
35
- document.querySelector('#open').addEventListener('click', () => {
36
- document.querySelector('#dialogFullscreen').opened = true;
37
- });
38
- document.querySelector('#dialogFullscreen').addEventListener('d2l-dialog-close', (e) => {
39
- console.log('confirm action:', e.detail.action);
40
- });
41
- </script>
42
21
  <p>I'm in the <b>secondary</b> slot of the <b>d2l-template-primary-secondary</b> component!</p>
43
22
  Quisque justo risus, elementum quis condimentum vitae, venenatis sit amet nisl. Vivamus interdum pretium libero dictum eleifend. Donec eros tortor, facilisis eget maximus in, malesuada a magna. Nulla ac felis turpis. Donec pellentesque est in rhoncus tempus. Proin ac purus porttitor, interdum est a, venenatis mi. Maecenas nunc nulla, viverra ut ornare id, luctus eu nulla. Pellentesque massa turpis, porta ut tincidunt ut, ullamcorper vitae urna. Nam congue euismod placerat. Vestibulum aliquet, metus vitae viverra posuere, lacus urna hendrerit turpis, vel laoreet ligula odio et nisl. Mauris id lectus magna. Sed gravida tincidunt sapien quis dapibus.Deadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spankerDeadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spankerDeadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spanker
44
23
  </div>
@@ -0,0 +1,355 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Primary-Secondary Template (Integration)</title>
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <meta charset="UTF-8">
7
+ <link rel="stylesheet" href="../../../components/demo/styles.css" type="text/css">
8
+ <script type="module">
9
+ import '../primary-secondary.js';
10
+ import '../../../components/button/button.js';
11
+ import '../../../components/button/button-icon.js';
12
+ import '../../../components/demo/demo-page.js';
13
+ import '../../../components/dialog/dialog-fullscreen.js';
14
+ import '../../../components/dropdown/dropdown-button-subtle.js';
15
+ import '../../../components/dropdown/dropdown-menu.js';
16
+ import '../../../components/dropdown/dropdown-more.js';
17
+ import '../../../components/menu/menu.js';
18
+ import '../../../components/menu/menu-item.js';
19
+ import '../../../components/selection/selection-action.js';
20
+ import '../../../components/selection/selection-action-dropdown.js';
21
+ import '../../../components/selection/selection-action-menu-item.js';
22
+ import '../../../components/tooltip/tooltip.js';
23
+ import '../../../components/list/list-header.js';
24
+ import '../../../components/list/list-item-content.js';
25
+ import '../../../components/list/list-item.js';
26
+ import '../../../components/list/list.js';
27
+ </script>
28
+ <style>
29
+ html {
30
+ --d2l-list-header-background-color: #f1f5fb;
31
+ }
32
+ </style>
33
+ </head>
34
+ <body>
35
+ <d2l-template-primary-secondary resizable storage-key="demo-index">
36
+ <div slot="header" style="background-color: #dddddd;">I'm in the <b>header</b> slot of the <b>d2l-template-primary-secondary</b> component!</div>
37
+ <div slot="primary">
38
+
39
+ <d2l-list item-count="50" extend-separators>
40
+ <d2l-list-header slot="header" select-all-pages-allowed>
41
+ <d2l-selection-action icon="tier1:plus-default" text="Add"></d2l-selection-action>
42
+ <d2l-selection-action-dropdown text="Move To" requires-selection>
43
+ <d2l-dropdown-menu>
44
+ <d2l-menu label="Move To Options">
45
+ <d2l-menu-item text="Top of Quiz"></d2l-menu-item>
46
+ <d2l-menu-item text="Bottom of Quiz"></d2l-menu-item>
47
+ <d2l-menu-item text="Section">
48
+ <d2l-menu>
49
+ <d2l-menu-item text="Option 1"></d2l-menu-item>
50
+ <d2l-menu-item text="Option 2"></d2l-menu-item>
51
+ </d2l-menu-item>
52
+ </d2l-menu-item>
53
+ </d2l-menu>
54
+ </d2l-dropdown-menu>
55
+ </d2l-selection-action-dropdown>
56
+ <d2l-dropdown-button-subtle text="Actions">
57
+ <d2l-dropdown-menu>
58
+ <d2l-menu label="Actions">
59
+ <d2l-selection-action-menu-item text="Bookmark (requires selection)" requires-selection></d2l-selection-action-menu-item>
60
+ <d2l-selection-action-menu-item text="Advanced"></d2l-selection-action-menu-item>
61
+ </d2l-menu>
62
+ </d2l-dropdown-menu>
63
+ </d2l-dropdown-button-subtle>
64
+ <d2l-selection-action icon="tier1:gear" text="Settings" requires-selection></d2l-selection-action>
65
+ </d2l-list-header>
66
+ <d2l-list-item href="http://www.d2l.com" selectable key="1" label="Introductory Earth Sciences">
67
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/38e839b1-37fa-470c-8830-b189ce4ae134/tile-high-density-max-size.jpg"></img>
68
+ <d2l-list-item-content>
69
+ <div>Introductory Earth Sciences</div>
70
+ <div slot="supporting-info">This course explores the geological process of the Earth's interior and surface. These include volcanism, earthquakes, mountains...</div>
71
+ </d2l-list-item-content>
72
+ <div slot="actions">
73
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
74
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
75
+ <d2l-dropdown-more text="Open!">
76
+ <d2l-dropdown-menu>
77
+ <d2l-menu label="Astronomy">
78
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
79
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
80
+ </d2l-menu>
81
+ </d2l-dropdown-menu>
82
+ </d2l-dropdown-more>
83
+ </div>
84
+ </d2l-list-item>
85
+ <d2l-list-item href="http://www.d2l.com" selectable key="2" selected label="Engineering Materials for Energy Systems">
86
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/e5fd575a-bc14-4a80-89e1-46f349a76178/tile-high-density-max-size.jpg"></img>
87
+ <d2l-list-item-content>
88
+ <div>Engineering Materials for Energy Systems</div>
89
+ <div slot="supporting-info">This course explores the geological processes of the Earth's interior and surface. These include volcanism, earthquakes, mountain...</div>
90
+ </d2l-list-item-content>
91
+ <div slot="actions">
92
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
93
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
94
+ <d2l-dropdown-more text="Open!">
95
+ <d2l-dropdown-menu>
96
+ <d2l-menu label="Astronomy">
97
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
98
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
99
+ </d2l-menu>
100
+ </d2l-dropdown-menu>
101
+ </d2l-dropdown-more>
102
+ </div>
103
+ </d2l-list-item>
104
+ <d2l-list-item href="http://www.d2l.com" selectable key="3" label="Geomorphology and GIS">
105
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/63b162ab-b582-4bf9-8c1d-1dad04714121/tile-high-density-max-size.jpg"></img>
106
+ <d2l-list-item-content>
107
+ <div>Geomorphology and GIS</div>
108
+ <div slot="supporting-info">This course explores the geological processes of the Earth's interior and surface. These include volcanism, earthquakes, mountain...</div>
109
+ </d2l-list-item-content>
110
+ <div slot="actions">
111
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
112
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
113
+ <d2l-dropdown-more text="Open!">
114
+ <d2l-dropdown-menu>
115
+ <d2l-menu label="Astronomy">
116
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
117
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
118
+ </d2l-menu>
119
+ </d2l-dropdown-menu>
120
+ </d2l-dropdown-more>
121
+ </div>
122
+ </d2l-list-item>
123
+ <d2l-list-item href="http://www.d2l.com" selectable key="1" label="Introductory Earth Sciences">
124
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/38e839b1-37fa-470c-8830-b189ce4ae134/tile-high-density-max-size.jpg"></img>
125
+ <d2l-list-item-content>
126
+ <div>Introductory Earth Sciences</div>
127
+ <div slot="supporting-info">This course explores the geological process of the Earth's interior and surface. These include volcanism, earthquakes, mountains...</div>
128
+ </d2l-list-item-content>
129
+ <div slot="actions">
130
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
131
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
132
+ <d2l-dropdown-more text="Open!">
133
+ <d2l-dropdown-menu>
134
+ <d2l-menu label="Astronomy">
135
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
136
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
137
+ </d2l-menu>
138
+ </d2l-dropdown-menu>
139
+ </d2l-dropdown-more>
140
+ </div>
141
+ </d2l-list-item>
142
+ <d2l-list-item href="http://www.d2l.com" selectable key="2" selected label="Engineering Materials for Energy Systems">
143
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/e5fd575a-bc14-4a80-89e1-46f349a76178/tile-high-density-max-size.jpg"></img>
144
+ <d2l-list-item-content>
145
+ <div>Engineering Materials for Energy Systems</div>
146
+ <div slot="supporting-info">This course explores the geological processes of the Earth's interior and surface. These include volcanism, earthquakes, mountain...</div>
147
+ </d2l-list-item-content>
148
+ <div slot="actions">
149
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
150
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
151
+ <d2l-dropdown-more text="Open!">
152
+ <d2l-dropdown-menu>
153
+ <d2l-menu label="Astronomy">
154
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
155
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
156
+ </d2l-menu>
157
+ </d2l-dropdown-menu>
158
+ </d2l-dropdown-more>
159
+ </div>
160
+ </d2l-list-item>
161
+ <d2l-list-item href="http://www.d2l.com" selectable key="3" label="Geomorphology and GIS">
162
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/63b162ab-b582-4bf9-8c1d-1dad04714121/tile-high-density-max-size.jpg"></img>
163
+ <d2l-list-item-content>
164
+ <div>Geomorphology and GIS</div>
165
+ <div slot="supporting-info">This course explores the geological processes of the Earth's interior and surface. These include volcanism, earthquakes, mountain...</div>
166
+ </d2l-list-item-content>
167
+ <div slot="actions">
168
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
169
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
170
+ <d2l-dropdown-more text="Open!">
171
+ <d2l-dropdown-menu>
172
+ <d2l-menu label="Astronomy">
173
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
174
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
175
+ </d2l-menu>
176
+ </d2l-dropdown-menu>
177
+ </d2l-dropdown-more>
178
+ </div>
179
+ </d2l-list-item>
180
+ </d2l-list>
181
+
182
+
183
+ <div style="height: 100px;"></div>
184
+
185
+ <d2l-list item-count="50">
186
+ <d2l-list-header slot="header" select-all-pages-allowed>
187
+ <d2l-selection-action icon="tier1:plus-default" text="Add"></d2l-selection-action>
188
+ <d2l-selection-action-dropdown text="Move To" requires-selection>
189
+ <d2l-dropdown-menu>
190
+ <d2l-menu label="Move To Options">
191
+ <d2l-menu-item text="Top of Quiz"></d2l-menu-item>
192
+ <d2l-menu-item text="Bottom of Quiz"></d2l-menu-item>
193
+ <d2l-menu-item text="Section">
194
+ <d2l-menu>
195
+ <d2l-menu-item text="Option 1"></d2l-menu-item>
196
+ <d2l-menu-item text="Option 2"></d2l-menu-item>
197
+ </d2l-menu-item>
198
+ </d2l-menu-item>
199
+ </d2l-menu>
200
+ </d2l-dropdown-menu>
201
+ </d2l-selection-action-dropdown>
202
+ <d2l-dropdown-button-subtle text="Actions">
203
+ <d2l-dropdown-menu>
204
+ <d2l-menu label="Actions">
205
+ <d2l-selection-action-menu-item text="Bookmark (requires selection)" requires-selection></d2l-selection-action-menu-item>
206
+ <d2l-selection-action-menu-item text="Advanced"></d2l-selection-action-menu-item>
207
+ </d2l-menu>
208
+ </d2l-dropdown-menu>
209
+ </d2l-dropdown-button-subtle>
210
+ <d2l-selection-action icon="tier1:gear" text="Settings" requires-selection></d2l-selection-action>
211
+ </d2l-list-header>
212
+ <d2l-list-item href="http://www.d2l.com" selectable key="1" label="Introductory Earth Sciences">
213
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/38e839b1-37fa-470c-8830-b189ce4ae134/tile-high-density-max-size.jpg"></img>
214
+ <d2l-list-item-content>
215
+ <div>Introductory Earth Sciences</div>
216
+ <div slot="supporting-info">This course explores the geological process of the Earth's interior and surface. These include volcanism, earthquakes, mountains...</div>
217
+ </d2l-list-item-content>
218
+ <div slot="actions">
219
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
220
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
221
+ <d2l-dropdown-more text="Open!">
222
+ <d2l-dropdown-menu>
223
+ <d2l-menu label="Astronomy">
224
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
225
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
226
+ </d2l-menu>
227
+ </d2l-dropdown-menu>
228
+ </d2l-dropdown-more>
229
+ </div>
230
+ </d2l-list-item>
231
+ <d2l-list-item href="http://www.d2l.com" selectable key="2" selected label="Engineering Materials for Energy Systems">
232
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/e5fd575a-bc14-4a80-89e1-46f349a76178/tile-high-density-max-size.jpg"></img>
233
+ <d2l-list-item-content>
234
+ <div>Engineering Materials for Energy Systems</div>
235
+ <div slot="supporting-info">This course explores the geological processes of the Earth's interior and surface. These include volcanism, earthquakes, mountain...</div>
236
+ </d2l-list-item-content>
237
+ <div slot="actions">
238
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
239
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
240
+ <d2l-dropdown-more text="Open!">
241
+ <d2l-dropdown-menu>
242
+ <d2l-menu label="Astronomy">
243
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
244
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
245
+ </d2l-menu>
246
+ </d2l-dropdown-menu>
247
+ </d2l-dropdown-more>
248
+ </div>
249
+ </d2l-list-item>
250
+ <d2l-list-item href="http://www.d2l.com" selectable key="3" label="Geomorphology and GIS">
251
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/63b162ab-b582-4bf9-8c1d-1dad04714121/tile-high-density-max-size.jpg"></img>
252
+ <d2l-list-item-content>
253
+ <div>Geomorphology and GIS</div>
254
+ <div slot="supporting-info">This course explores the geological processes of the Earth's interior and surface. These include volcanism, earthquakes, mountain...</div>
255
+ </d2l-list-item-content>
256
+ <div slot="actions">
257
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
258
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
259
+ <d2l-dropdown-more text="Open!">
260
+ <d2l-dropdown-menu>
261
+ <d2l-menu label="Astronomy">
262
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
263
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
264
+ </d2l-menu>
265
+ </d2l-dropdown-menu>
266
+ </d2l-dropdown-more>
267
+ </div>
268
+ </d2l-list-item>
269
+ <d2l-list-item href="http://www.d2l.com" selectable key="1" label="Introductory Earth Sciences">
270
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/38e839b1-37fa-470c-8830-b189ce4ae134/tile-high-density-max-size.jpg"></img>
271
+ <d2l-list-item-content>
272
+ <div>Introductory Earth Sciences</div>
273
+ <div slot="supporting-info">This course explores the geological process of the Earth's interior and surface. These include volcanism, earthquakes, mountains...</div>
274
+ </d2l-list-item-content>
275
+ <div slot="actions">
276
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
277
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
278
+ <d2l-dropdown-more text="Open!">
279
+ <d2l-dropdown-menu>
280
+ <d2l-menu label="Astronomy">
281
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
282
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
283
+ </d2l-menu>
284
+ </d2l-dropdown-menu>
285
+ </d2l-dropdown-more>
286
+ </div>
287
+ </d2l-list-item>
288
+ <d2l-list-item href="http://www.d2l.com" selectable key="2" selected label="Engineering Materials for Energy Systems">
289
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/e5fd575a-bc14-4a80-89e1-46f349a76178/tile-high-density-max-size.jpg"></img>
290
+ <d2l-list-item-content>
291
+ <div>Engineering Materials for Energy Systems</div>
292
+ <div slot="supporting-info">This course explores the geological processes of the Earth's interior and surface. These include volcanism, earthquakes, mountain...</div>
293
+ </d2l-list-item-content>
294
+ <div slot="actions">
295
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
296
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
297
+ <d2l-dropdown-more text="Open!">
298
+ <d2l-dropdown-menu>
299
+ <d2l-menu label="Astronomy">
300
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
301
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
302
+ </d2l-menu>
303
+ </d2l-dropdown-menu>
304
+ </d2l-dropdown-more>
305
+ </div>
306
+ </d2l-list-item>
307
+ <d2l-list-item href="http://www.d2l.com" selectable key="3" label="Geomorphology and GIS">
308
+ <img slot="illustration" src="https://s.brightspace.com/course-images/images/63b162ab-b582-4bf9-8c1d-1dad04714121/tile-high-density-max-size.jpg"></img>
309
+ <d2l-list-item-content>
310
+ <div>Geomorphology and GIS</div>
311
+ <div slot="supporting-info">This course explores the geological processes of the Earth's interior and surface. These include volcanism, earthquakes, mountain...</div>
312
+ </d2l-list-item-content>
313
+ <div slot="actions">
314
+ <d2l-button-icon id="tooltip-btn-1" text="My Button" icon="tier1:preview"></d2l-button-icon>
315
+ <d2l-tooltip for="tooltip-btn-1">Preview</d2l-tooltip>
316
+ <d2l-dropdown-more text="Open!">
317
+ <d2l-dropdown-menu>
318
+ <d2l-menu label="Astronomy">
319
+ <d2l-menu-item text="Introduction"></d2l-menu-item>
320
+ <d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
321
+ </d2l-menu>
322
+ </d2l-dropdown-menu>
323
+ </d2l-dropdown-more>
324
+ </div>
325
+ </d2l-list-item>
326
+ </d2l-list>
327
+
328
+ </div>
329
+ <div slot="secondary">
330
+ <d2l-button id="open">Show Dialog</d2l-button>
331
+ <d2l-dialog-fullscreen id="dialogFullscreen" title-text="Fullscreen Title">
332
+ <p>Deadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spanker</p>
333
+ <p>Shiver me timbers to go on account lookout wherry doubloon chase. Belay yo-ho-ho keelhaul squiffy black spot yardarm spyglass sheet transom heave to.</p>
334
+ <p>Trysail Sail ho Corsair red ensign hulk smartly boom jib rum gangway. Case shot Shiver me timbers gangplank crack Jennys tea cup ballast Blimey lee snow crow's nest rutters. Fluke jib scourge of the seven seas boatswain schooner gaff booty Jack Tar transom spirits.</p>
335
+ <p>Deadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spanker</p>
336
+ <p>Shiver me timbers to go on account lookout wherry doubloon chase. Belay yo-ho-ho keelhaul squiffy black spot yardarm spyglass sheet transom heave to.</p>
337
+ <p>Trysail Sail ho Corsair red ensign hulk smartly boom jib rum gangway. Case shot Shiver me timbers gangplank crack Jennys tea cup ballast Blimey lee snow crow's nest rutters. Fluke jib scourge of the seven seas boatswain schooner gaff booty Jack Tar transom spirits.</p>
338
+ <d2l-button slot="footer" primary data-dialog-action="save">Save</d2l-button>
339
+ <d2l-button slot="footer" data-dialog-action>Cancel</d2l-button>
340
+ </d2l-dialog-fullscreen>
341
+ <script>
342
+ document.querySelector('#open').addEventListener('click', () => {
343
+ document.querySelector('#dialogFullscreen').opened = true;
344
+ });
345
+ document.querySelector('#dialogFullscreen').addEventListener('d2l-dialog-close', (e) => {
346
+ console.log('confirm action:', e.detail.action);
347
+ });
348
+ </script>
349
+ <p>I'm in the <b>secondary</b> slot of the <b>d2l-template-primary-secondary</b> component!</p>
350
+ Quisque justo risus, elementum quis condimentum vitae, venenatis sit amet nisl. Vivamus interdum pretium libero dictum eleifend. Donec eros tortor, facilisis eget maximus in, malesuada a magna. Nulla ac felis turpis. Donec pellentesque est in rhoncus tempus. Proin ac purus porttitor, interdum est a, venenatis mi. Maecenas nunc nulla, viverra ut ornare id, luctus eu nulla. Pellentesque massa turpis, porta ut tincidunt ut, ullamcorper vitae urna. Nam congue euismod placerat. Vestibulum aliquet, metus vitae viverra posuere, lacus urna hendrerit turpis, vel laoreet ligula odio et nisl. Mauris id lectus magna. Sed gravida tincidunt sapien quis dapibus.Deadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spankerDeadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spankerDeadlights jack lad schooner scallywag dance the hempen jig carouser broadside cable strike colors. Bring a spring upon her cable holystone blow the man down spanker
351
+ </div>
352
+ <div slot="footer">I'm in the <b>footer</b> slot of the <b>d2l-template-primary-secondary</b> component!</div>
353
+ </d2l-template-primary-secondary>
354
+ </body>
355
+ </html>