@brightspace-ui/core 3.274.1 → 3.275.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.
@@ -481,8 +481,8 @@ class Calendar extends LocalizeCoreElement(LitElement) {
481
481
 
482
482
  const weekdayHeaders = calendarData.daysOfWeekIndex.map((index) => html`
483
483
  <th>
484
- <abbr class="d2l-body-small" title="${calendarData.descriptor.calendar.days.long[index]}">
485
- ${calendarData.descriptor.calendar.days.short[index]}
484
+ <abbr class="d2l-body-small" title="${calendarData.descriptor.calendar.daysStandAlone.wide[index]}">
485
+ ${calendarData.descriptor.calendar.daysStandAlone.abbreviated[index]}
486
486
  </abbr>
487
487
  </th>
488
488
  `);
@@ -32,16 +32,20 @@ Empty state components are used to convey that there is no data available to be
32
32
 
33
33
  <!-- docs: start best practices -->
34
34
  <!-- docs: start dos -->
35
- * Use clear language to indicate there is no data available
36
- * Offer concise guidance about next steps
35
+ * Use an empty state in place of an empty list, table, widget, or page section
36
+ * Replace the entire content with its empty state; do not show an empty table or list header
37
37
  * Include an [Empty State Action](#d2l-empty-state-action-button) or [Link](#d2l-empty-state-action-link) if it can help the user
38
- * Replace the entire content with its empty state; do not show an empty table or list header
38
+ * Follow our [Writing guidelines]({{ project.assetPath }}/style-elements/writing/#periods)
39
+ * Use clear language to indicate there is no data available
40
+ * Offer concise guidance about next steps unless the action or button already provides a next step
41
+ * If you include an action or button, end your message with a period even if it's a single sentence (this is an exception to the rules for [Periods]({{ project.assetPath }}/style-elements/writing/#periods))
39
42
  <!-- docs: end dos -->
40
43
 
41
44
  <!-- docs: start donts -->
42
- * Don’t use an empty state as a default state while data is loading
43
- * Don't leave a section completely empty, or use a skeleton loading screen in place of an empty state component
44
- * Avoid causing users to believe that they have hit a dead-end when they have not
45
+ * Don’t use an empty state as a default state while data is loading — consider using a [Skeleton Loader or Loading Spinner]({{ project.assetPath }}/components/loading-spinner/#when-should-i-use-the-skeleton-loader-pattern-vs.-a-loading-spinner) instead
46
+ * Avoid having multiple empty state messages caused by the same root issue
47
+ * The presence of multiple empty states often indicates a special case that can be addressed at the design level
48
+ * For instance, an underlying error causing no data to be returned or a first-time user who could be guided through creating the data instead of seeing a bunch of empty states
45
49
  <!-- docs: end donts -->
46
50
  <!-- docs: end best practices -->
47
51
 
@@ -1,4 +1,5 @@
1
1
  import '../colors/colors.js';
2
+ import '../icons/icon-custom.js';
2
3
  import { css, html, LitElement } from 'lit';
3
4
  import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
4
5
  import { formatPercent } from '@brightspace-ui/intl';
@@ -6,17 +7,55 @@ import { ifDefined } from 'lit/directives/if-defined.js';
6
7
  import { PropertyRequiredMixin } from '../../mixins/property-required/property-required-mixin.js';
7
8
 
8
9
  export const DIVIDER_WIDTH = 4;
10
+ export const DIVIDER_HANDLE_SIZE = 30;
9
11
  export const KEYBOARD_STEP = 20; // TO DO: Confirm
10
12
  export const KEYBOARD_STEP_LARGE = 80; // TO DO: Confirm
11
13
 
12
14
  const clampedSize = (size, min, max) => Math.max(min, Math.min(size, max));
13
15
 
16
+ const ICON_ARROW_COLLAPSE_LEFT = html`
17
+ <svg width="18" height="18" mirror-in-rtl xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
18
+ <path fill="#494c4e" d="M11.71 13.708c.186-.189.29-.443.29-.708V5.005a1 1 0 0 0-1.71-.705l-4 4a1.013 1.013 0 0 0 0 1.42l4 4a1.01 1.01 0 0 0 1.42-.013"/>
19
+ </svg>
20
+ `;
21
+ const ICON_ARROW_EXPAND_RIGHT = html`
22
+ <svg width="18" height="18" mirror-in-rtl xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
23
+ <path fill="#494c4e" d="M6 12.96v-8c0-.4.2-.8.6-.9s.8-.1 1.1.2l4 4c.4.4.4 1 0 1.4l-4 4c-.3.3-.7.4-1.1.2-.4-.1-.6-.5-.6-.9m2-5.6v3.2l1.6-1.6z"/>
24
+ </svg>
25
+ `;
26
+ const ICON_ARROW_COLLAPSE_RIGHT = html`
27
+ <svg width="18" height="18" mirror-in-rtl xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
28
+ <path fill="#494c4e" d="m7.712 13.698 4-4a1.01 1.01 0 0 0 0-1.418l-4-4a1 1 0 0 0-1.71.725v7.993a1 1 0 0 0 1.71.7"/>
29
+ </svg>
30
+ `;
31
+ const ICON_ARROW_EXPAND_LEFT = html`
32
+ <svg width="18" height="18" mirror-in-rtl xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
33
+ <path fill="#494c4e" d="M12 5.04v8c0 .4-.2.8-.6.9s-.8.1-1.1-.2l-4-4c-.4-.4-.4-1 0-1.4l4-4c.3-.3.7-.4 1.1-.2.4.1.6.5.6.9m-2 5.6v-3.2l-1.6 1.6z"/>
34
+ </svg>
35
+ `;
36
+ const ICON_ARROW_COLLAPSE_DOWN = html`
37
+ <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
38
+ <path fill="#494c4e" d="M13.708 6.29A1 1 0 0 0 13 6H5.005A1 1 0 0 0 4.3 7.71l4 4a1.013 1.013 0 0 0 1.42 0l4-4a1.01 1.01 0 0 0-.013-1.42"/>
39
+ </svg>
40
+ `;
41
+
42
+ const ICON_ARROW_EXPAND_UP = html`
43
+ <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
44
+ <path fill="#494c4e" d="M12.96 12h-8c-.4 0-.8-.2-.9-.6s-.1-.8.2-1.1l4-4c.4-.4 1-.4 1.4 0l4 4c.3.3.4.7.2 1.1-.1.4-.5.6-.9.6m-5.6-2h3.2l-1.6-1.6z"/>
45
+ </svg>
46
+ `;
47
+
14
48
  /**
15
49
  * Internal divider used by d2l-page to resize its side-nav and supporting panels.
16
50
  */
17
51
  class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) {
18
52
 
19
53
  static properties = {
54
+ /**
55
+ * Whether the panel/drawer the divider controls is collapsed
56
+ * @type {boolean}
57
+ */
58
+ collapsed: { type: Boolean, reflect: true },
20
59
  /**
21
60
  * Current size of the panel/drawer the divider controls
22
61
  * @type {number}
@@ -51,6 +90,7 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) {
51
90
 
52
91
  static styles = css`
53
92
  :host {
93
+ display: inline-block;
54
94
  flex: none;
55
95
  }
56
96
  .divider {
@@ -68,11 +108,36 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) {
68
108
  }
69
109
 
70
110
  .slider {
111
+ inset-inline-start: -${DIVIDER_HANDLE_SIZE / 2 - DIVIDER_WIDTH / 2}px;
71
112
  outline: none;
72
113
  position: absolute;
73
114
  top: 55px;
74
115
  }
75
116
 
117
+ .divider-handle {
118
+ align-items: center;
119
+ background-color: white;
120
+ border: 1px solid var(--d2l-color-mica);
121
+ border-radius: 50%;
122
+ box-sizing: border-box;
123
+ cursor: pointer;
124
+ display: flex;
125
+ height: ${DIVIDER_HANDLE_SIZE}px;
126
+ justify-content: center;
127
+ width: ${DIVIDER_HANDLE_SIZE}px;
128
+ }
129
+ .divider-handle:hover {
130
+ background-color: var(--d2l-color-sylvite);
131
+ border-color: var(--d2l-color-celestine);
132
+ }
133
+ .slider:focus .divider-handle {
134
+ background-color: var(--d2l-color-celestine);
135
+ border-color: var(--d2l-color-celestine);
136
+ }
137
+ .slider:focus .divider-handle .handle-icon {
138
+ color: white;
139
+ }
140
+
76
141
  :host([panel-type="drawer"]) .divider {
77
142
  background-color: var(--d2l-color-celestine);
78
143
  cursor: ns-resize;
@@ -94,6 +159,7 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) {
94
159
  constructor() {
95
160
  super();
96
161
 
162
+ this.collapsed = false;
97
163
  this.currentSize = 0;
98
164
  this.label = '';
99
165
  this.maxSize = 0;
@@ -121,18 +187,34 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) {
121
187
  aria-valuenow="${ifDefined(ariaValues.now)}"
122
188
  aria-valuetext="${ifDefined(ariaValues.text)}"
123
189
  @keydown="${this.#handleKeyDown}">
190
+ <div class="divider-handle">
191
+ <d2l-icon-custom class="handle-icon" size="tier1">
192
+ ${this.#getHandleIcon()}
193
+ </d2l-icon-custom>
194
+ </div>
124
195
  </div>
125
196
  </div>
126
197
  `;
127
198
  }
128
199
 
200
+ #getHandleIcon() {
201
+ if (this.panelType === 'panel') {
202
+ if (this.panelPosition === 'start') {
203
+ return this.collapsed ? ICON_ARROW_EXPAND_RIGHT : ICON_ARROW_COLLAPSE_LEFT;
204
+ } else {
205
+ return this.collapsed ? ICON_ARROW_EXPAND_LEFT : ICON_ARROW_COLLAPSE_RIGHT;
206
+ }
207
+ } else if (this.panelType === 'drawer') {
208
+ return this.collapsed ? ICON_ARROW_EXPAND_UP : ICON_ARROW_COLLAPSE_DOWN;
209
+ }
210
+ }
211
+
129
212
  #handleKeyDown(e) {
130
213
  if (!['Enter', ' ', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End', 'PageUp', 'PageDown'].includes(e.key)) return;
131
214
  e.preventDefault();
132
215
 
133
216
  if (e.key === 'Enter' || e.key === ' ') {
134
- /** @ignore */
135
- this.dispatchEvent(new CustomEvent('d2l-page-divider-toggle'));
217
+ this.#sendToggleEvent();
136
218
  return;
137
219
  }
138
220
 
@@ -162,8 +244,17 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) {
162
244
  }
163
245
 
164
246
  #handlePointerDown(e) {
247
+ if (e.button !== 0) return; // Don't collapse when right-clicking to debug
165
248
  e.preventDefault();
166
249
  this.focus();
250
+
251
+ const handle = this.shadowRoot.querySelector('.divider-handle');
252
+ const clickedHandle = handle && handle.contains(e.target);
253
+
254
+ // TO DO: Will move to PointerUp once we add dragging ability
255
+ if (this.collapsed || clickedHandle) {
256
+ this.#sendToggleEvent();
257
+ }
167
258
  }
168
259
 
169
260
  #sendResizeEvent(requestedSize) {
@@ -174,6 +265,11 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) {
174
265
  } }));
175
266
  }
176
267
 
268
+ #sendToggleEvent() {
269
+ /** @ignore */
270
+ this.dispatchEvent(new CustomEvent('d2l-page-divider-toggle'));
271
+ }
272
+
177
273
  }
178
274
 
179
275
  customElements.define('d2l-page-divider-internal', PageDivider);
@@ -21,6 +21,7 @@ class PanelStateController {
21
21
  host.addController(this);
22
22
  }
23
23
 
24
+ getCollapsed(key) { return this.#panels[key].collapsed; }
24
25
  getMaxSize(key) { return this.#panels[key].maxSize; }
25
26
  getMinSize(key) { return this.#panels[key].minSize; }
26
27
  getSize(key) { return this.#panels[key].size; }
@@ -32,6 +33,12 @@ class PanelStateController {
32
33
  this.#host.requestUpdate();
33
34
  }
34
35
 
36
+ setCollapsed(key, collapsed) {
37
+ const panel = this.#panels[key];
38
+ panel.collapsed = collapsed;
39
+ this.#host.requestUpdate();
40
+ }
41
+
35
42
  updateMaxSize(key, newMaxSize) {
36
43
  const panel = this.#panels[key];
37
44
  panel.maxSize = newMaxSize;
@@ -102,7 +109,7 @@ class Page extends ProviderMixin(LocalizeCoreElement(LitElement)) {
102
109
 
103
110
  .header {
104
111
  position: relative;
105
- z-index: 15; /* To be over sticky content of our core components */
112
+ z-index: 16; /* To be over sticky content of our core components and the divider */
106
113
  }
107
114
 
108
115
  .page.header-sticky .header {
@@ -144,6 +151,10 @@ class Page extends ProviderMixin(LocalizeCoreElement(LitElement)) {
144
151
  overflow: clip auto;
145
152
  }
146
153
 
154
+ .divider {
155
+ z-index: 15; /* To be over d2l-page-* panel headers */
156
+ }
157
+
147
158
  .footer:not([hidden]),
148
159
  .floating-buttons-container {
149
160
  display: inline;
@@ -154,7 +165,7 @@ class Page extends ProviderMixin(LocalizeCoreElement(LitElement)) {
154
165
  inset: auto 0 0;
155
166
  padding-block-start: 0.75rem;
156
167
  position: fixed;
157
- z-index: 10; /* To be over sticky content of our core components */
168
+ z-index: 15; /* To be over sticky content of our core components and divider */
158
169
  }
159
170
  .footer-contents {
160
171
  margin-inline: var(--d2l-page-margin-inline, 0);
@@ -277,8 +288,10 @@ class Page extends ProviderMixin(LocalizeCoreElement(LitElement)) {
277
288
  this._panelState.resize(panelKey, e.detail.requestedSize);
278
289
  };
279
290
 
280
- #handleDividerToggle() {
281
- // TO DO
291
+ #handleDividerToggle(e) {
292
+ const panelKey = e.target.dataset.panelKey;
293
+ const collapsed = !this._panelState.getCollapsed(panelKey);
294
+ this._panelState.setCollapsed(panelKey, collapsed);
282
295
  };
283
296
 
284
297
  #handleSlotVisibilityChange(e) {
@@ -302,6 +315,7 @@ class Page extends ProviderMixin(LocalizeCoreElement(LitElement)) {
302
315
  class="divider"
303
316
  data-panel-key="${panelKey}"
304
317
  label="${label}"
318
+ ?collapsed="${this._panelState.getCollapsed(panelKey)}"
305
319
  current-size="${this._panelState.getSize(panelKey)}"
306
320
  max-size="${this._panelState.getMaxSize(panelKey)}"
307
321
  min-size="${this._panelState.getMinSize(panelKey)}"
@@ -13112,6 +13112,12 @@
13112
13112
  "path": "./components/page/page-divider-internal.js",
13113
13113
  "description": "Internal divider used by d2l-page to resize its side-nav and supporting panels.",
13114
13114
  "attributes": [
13115
+ {
13116
+ "name": "collapsed",
13117
+ "description": "Whether the panel/drawer the divider controls is collapsed",
13118
+ "type": "boolean",
13119
+ "default": "false"
13120
+ },
13115
13121
  {
13116
13122
  "name": "current-size",
13117
13123
  "description": "Current size of the panel/drawer the divider controls",
@@ -13152,13 +13158,20 @@
13152
13158
  "properties": [
13153
13159
  {
13154
13160
  "name": "styles",
13155
- "default": "\"css`\\n\\t\\t:host {\\n\\t\\t\\tflex: none;\\n\\t\\t}\\n\\t\\t.divider {\\n\\t\\t\\tbackground-color: var(--d2l-color-mica);\\n\\t\\t\\tcursor: ew-resize;\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tposition: relative;\\n\\t\\t\\twidth: ${DIVIDER_WIDTH}px;\\n\\t\\t}\\n\\t\\t.divider:hover {\\n\\t\\t\\tbackground-color: var(--d2l-color-corundum);\\n\\t\\t}\\n\\t\\t.divider:focus-within {\\n\\t\\t\\tbackground-color: var(--d2l-color-celestine);\\n\\t\\t}\\n\\n\\t\\t.slider {\\n\\t\\t\\toutline: none;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 55px;\\n\\t\\t}\\n\\n\\t\\t:host([panel-type=\\\"drawer\\\"]) .divider {\\n\\t\\t\\tbackground-color: var(--d2l-color-celestine);\\n\\t\\t\\tcursor: ns-resize;\\n\\t\\t\\theight: ${DIVIDER_WIDTH}px;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t:host([panel-type=\\\"drawer\\\"]) .slider {\\n\\t\\t\\tinset-inline-end: 18px;\\n\\t\\t\\ttop: auto;\\n\\t\\t}\\n\\n\\t\\t/* TO DO: Lots more divider styling to come */\\n\\n\\t`\""
13161
+ "default": "\"css`\\n\\t\\t:host {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tflex: none;\\n\\t\\t}\\n\\t\\t.divider {\\n\\t\\t\\tbackground-color: var(--d2l-color-mica);\\n\\t\\t\\tcursor: ew-resize;\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tposition: relative;\\n\\t\\t\\twidth: ${DIVIDER_WIDTH}px;\\n\\t\\t}\\n\\t\\t.divider:hover {\\n\\t\\t\\tbackground-color: var(--d2l-color-corundum);\\n\\t\\t}\\n\\t\\t.divider:focus-within {\\n\\t\\t\\tbackground-color: var(--d2l-color-celestine);\\n\\t\\t}\\n\\n\\t\\t.slider {\\n\\t\\t\\tinset-inline-start: -${DIVIDER_HANDLE_SIZE / 2 - DIVIDER_WIDTH / 2}px;\\n\\t\\t\\toutline: none;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 55px;\\n\\t\\t}\\n\\n\\t\\t.divider-handle {\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tbackground-color: white;\\n\\t\\t\\tborder: 1px solid var(--d2l-color-mica);\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\theight: ${DIVIDER_HANDLE_SIZE}px;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: ${DIVIDER_HANDLE_SIZE}px;\\n\\t\\t}\\n\\t\\t.divider-handle:hover {\\n\\t\\t\\tbackground-color: var(--d2l-color-sylvite);\\n\\t\\t\\tborder-color: var(--d2l-color-celestine);\\n\\t\\t}\\n\\t\\t.slider:focus .divider-handle {\\n\\t\\t\\tbackground-color: var(--d2l-color-celestine);\\n\\t\\t\\tborder-color: var(--d2l-color-celestine);\\n\\t\\t}\\n\\t\\t.slider:focus .divider-handle .handle-icon {\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t:host([panel-type=\\\"drawer\\\"]) .divider {\\n\\t\\t\\tbackground-color: var(--d2l-color-celestine);\\n\\t\\t\\tcursor: ns-resize;\\n\\t\\t\\theight: ${DIVIDER_WIDTH}px;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t:host([panel-type=\\\"drawer\\\"]) .slider {\\n\\t\\t\\tinset-inline-end: 18px;\\n\\t\\t\\ttop: auto;\\n\\t\\t}\\n\\n\\t\\t/* TO DO: Lots more divider styling to come */\\n\\n\\t`\""
13156
13162
  },
13157
13163
  {
13158
13164
  "name": "focusElementSelector",
13159
13165
  "type": "string",
13160
13166
  "default": "\".slider\""
13161
13167
  },
13168
+ {
13169
+ "name": "collapsed",
13170
+ "attribute": "collapsed",
13171
+ "description": "Whether the panel/drawer the divider controls is collapsed",
13172
+ "type": "boolean",
13173
+ "default": "false"
13174
+ },
13162
13175
  {
13163
13176
  "name": "currentSize",
13164
13177
  "attribute": "current-size",
@@ -13527,7 +13540,7 @@
13527
13540
  "properties": [
13528
13541
  {
13529
13542
  "name": "styles",
13530
- "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\\tbox-sizing: border-box;\\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\\t\\t.content.has-panels {\\n\\t\\t\\tmin-height: calc(100vh - var(--d2l-page-header-height-measured, 0px));\\n\\t\\t}\\n\\n\\t\\tmain {\\n\\t\\t\\tflex: 1;\\n\\t\\t\\tmin-width: min(${MAIN_MIN_WIDTH}px, 100%);\\n\\t\\t}\\n\\n\\t\\t.side-nav,\\n\\t\\t.supporting {\\n\\t\\t\\tdisplay: contents;\\n\\t\\t}\\n\\n\\t\\t.side-nav-panel,\\n\\t\\t.supporting-panel,\\n\\t\\t.divider {\\n\\t\\t\\tmax-height: calc(100vh - var(--d2l-page-header-height, 0) - var(--d2l-page-footer-height, 0));\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--d2l-page-header-height, 0);\\n\\t\\t}\\n\\n\\t\\t.side-nav-panel,\\n\\t\\t.supporting-panel {\\n\\t\\t\\toverflow: clip auto;\\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`\""
13543
+ "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: 16; /* To be over sticky content of our core components and the divider */\\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\\tbox-sizing: border-box;\\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\\t\\t.content.has-panels {\\n\\t\\t\\tmin-height: calc(100vh - var(--d2l-page-header-height-measured, 0px));\\n\\t\\t}\\n\\n\\t\\tmain {\\n\\t\\t\\tflex: 1;\\n\\t\\t\\tmin-width: min(${MAIN_MIN_WIDTH}px, 100%);\\n\\t\\t}\\n\\n\\t\\t.side-nav,\\n\\t\\t.supporting {\\n\\t\\t\\tdisplay: contents;\\n\\t\\t}\\n\\n\\t\\t.side-nav-panel,\\n\\t\\t.supporting-panel,\\n\\t\\t.divider {\\n\\t\\t\\tmax-height: calc(100vh - var(--d2l-page-header-height, 0) - var(--d2l-page-footer-height, 0));\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--d2l-page-header-height, 0);\\n\\t\\t}\\n\\n\\t\\t.side-nav-panel,\\n\\t\\t.supporting-panel {\\n\\t\\t\\toverflow: clip auto;\\n\\t\\t}\\n\\n\\t\\t.divider {\\n\\t\\t\\tz-index: 15; /* To be over d2l-page-* panel headers */\\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: 15; /* To be over sticky content of our core components and divider */\\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`\""
13531
13544
  },
13532
13545
  {
13533
13546
  "name": "widthType",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspace-ui/core",
3
- "version": "3.274.1",
3
+ "version": "3.275.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",