@brightspace-ui/core 3.277.0 → 3.279.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.
@@ -2,13 +2,15 @@ import '../colors/colors.js';
2
2
  import '../scroll-wrapper/scroll-wrapper.js';
3
3
  import '../backdrop/backdrop-loading.js';
4
4
  import { css, html, LitElement, nothing } from 'lit';
5
+ import { freshness, FreshnessMixin } from '../../mixins/freshness/freshness-mixin.js';
5
6
  import { cssSizes } from '../inputs/input-checkbox-styles.js';
6
7
  import { getComposedParent } from '../../helpers/dom.js';
7
8
  import { isPopoverSupported } from '../popover/popover-mixin.js';
8
9
  import { PageableMixin } from '../paging/pageable-mixin.js';
9
- import { PropertyRequiredMixin } from '../../mixins/property-required/property-required-mixin.js';
10
10
  import { SelectionMixin } from '../selection/selection-mixin.js';
11
11
 
12
+ export const tableFreshness = freshness;
13
+
12
14
  export const tableStyles = css`
13
15
  .d2l-table {
14
16
  border-collapse: separate; /* needed to override reset stylesheets */
@@ -263,9 +265,24 @@ const SELECTORS = {
263
265
  * @slot controls - Slot for `d2l-table-controls` to be rendered above the table
264
266
  * @slot pager - Slot for `d2l-pager-load-more` to be rendered below the table
265
267
  */
266
- export class TableWrapper extends PropertyRequiredMixin(PageableMixin(SelectionMixin(LitElement))) {
268
+ export class TableWrapper extends FreshnessMixin(PageableMixin(SelectionMixin(LitElement))) {
267
269
 
268
270
  static properties = {
271
+ /**
272
+ * Todo: remove once consumers are updated to freshness. Use freshness instead.
273
+ * @ignore
274
+ */
275
+ dataState: { reflect: true, type: String },
276
+ /**
277
+ * Todo: remove once consumers are updated to freshness-stale-text. Use freshness-stale-text instead.
278
+ * @ignore
279
+ */
280
+ dirtyText: { reflect: true, attribute: 'dirty-text', type: String },
281
+ /**
282
+ * Todo: remove once consumers are updated to freshness-stale-button-text. Use freshness-stale-button-text instead.
283
+ * @ignore
284
+ */
285
+ dirtyButtonText: { reflect: true, attribute: 'dirty-button-text', type: String },
269
286
  /**
270
287
  * Hides the column borders on "default" table type
271
288
  * @type {boolean}
@@ -307,40 +324,6 @@ export class TableWrapper extends PropertyRequiredMixin(PageableMixin(SelectionM
307
324
  attribute: '_no-scroll-width',
308
325
  reflect: true,
309
326
  type: Boolean,
310
- },
311
- /**
312
- * The state of data in the table. Set to 'clean' when the data represents the user's latest selections, 'dirty' when the data does not represent the user's latest selections, and 'loading' if the data is being actively refreshed
313
- * @type {'clean'|'dirty'|'loading'}
314
- */
315
- dataState: {
316
- reflect: true,
317
- type: String
318
- },
319
- /**
320
- * The text displayed on the dirty state overlay when the 'dirty' dataState is set.
321
- * @type {string}
322
- */
323
- dirtyText: {
324
- reflect: true,
325
- attribute: 'dirty-text',
326
- required: {
327
- dependentProps: ['dataState'],
328
- validator: (_value, elem, hasValue) => hasValue || elem.dataState !== 'dirty'
329
- },
330
- type: String
331
- },
332
- /**
333
- * The text displayed on the button dirty state overlay when the 'dirty' dataState is set.
334
- * @type {string}
335
- */
336
- dirtyButtonText: {
337
- reflect: true,
338
- attribute: 'dirty-button-text',
339
- required: {
340
- dependentProps: ['dataState'],
341
- validator: (_value, elem, hasValue) => hasValue || elem.dataState !== 'dirty'
342
- },
343
- type: String
344
327
  }
345
328
  };
346
329
 
@@ -409,10 +392,6 @@ export class TableWrapper extends PropertyRequiredMixin(PageableMixin(SelectionM
409
392
  this._tableIntersectionObserver = null;
410
393
  this._tableMutationObserver = null;
411
394
  this._tableScrollers = {};
412
- this.dataState = 'clean';
413
-
414
- this.dirtyText = null;
415
- this.dirtyButtonText = null;
416
395
  }
417
396
 
418
397
  connectedCallback() {
@@ -444,7 +423,7 @@ export class TableWrapper extends PropertyRequiredMixin(PageableMixin(SelectionM
444
423
  const slot = html`
445
424
  <div style="position:relative">
446
425
  <slot id="table-slot" @slotchange="${this._handleSlotChange}"></slot>
447
- <d2l-backdrop-loading @d2l-backdrop-dirty-overlay-action=${this._handleDirtyButton} for="table-slot" dataState=${this.dataState} dirty-text="${this.dirtyText}" dirty-button-text="${this.dirtyButtonText}"></d2l-backdrop-loading>
426
+ <d2l-backdrop-loading @d2l-backdrop-stale-overlay-action="${this._handleStaleButton}" for="table-slot" freshness="${this.freshness}" freshness-stale-text="${this.freshnessStaleText}" freshness-stale-button-text="${this.freshnessStaleButtonText}"></d2l-backdrop-loading>
448
427
  </div>
449
428
  `;
450
429
  const useScrollWrapper = this.stickyHeadersScrollWrapper || !this.stickyHeaders;
@@ -469,6 +448,19 @@ export class TableWrapper extends PropertyRequiredMixin(PageableMixin(SelectionM
469
448
  }
470
449
  }
471
450
 
451
+ willUpdate(changedProperties) {
452
+ super.willUpdate(changedProperties);
453
+
454
+ // Todo: remove these once consumers are updated to freshness properties
455
+ if (this.dataState) {
456
+ if (this.dataState === 'clean') this.freshness = freshness.fresh;
457
+ else if (this.dataState === 'dirty') this.freshness = freshness.stale;
458
+ else if (this.dataState === 'loading') this.freshness = freshness.loading;
459
+ }
460
+ if (this.dirtyText) this.freshnessStaleText = this.dirtyText;
461
+ if (this.dirtyButtonText) this.freshnessStaleButtonText = this.dirtyButtonText;
462
+ }
463
+
472
464
  #hasIntersected = false;
473
465
 
474
466
  #noScrollWidthTimeout = null;
@@ -571,11 +563,6 @@ export class TableWrapper extends PropertyRequiredMixin(PageableMixin(SelectionM
571
563
  this._handleControlsChange();
572
564
  }
573
565
 
574
- _handleDirtyButton() {
575
- /** Dispatched when the action button on the dirty overlay is clicked */
576
- this.dispatchEvent(new CustomEvent('d2l-table-dirty-button-clicked'));
577
- }
578
-
579
566
  _handlePopoverClose(e) {
580
567
  this._updateStickyAncestor(e.target, false);
581
568
  }
@@ -630,6 +617,14 @@ export class TableWrapper extends PropertyRequiredMixin(PageableMixin(SelectionM
630
617
  this._handleTableChange();
631
618
  }
632
619
 
620
+ _handleStaleButton() {
621
+ /** Dispatched when the action button on the stale overlay is clicked */
622
+ this.dispatchEvent(new CustomEvent('d2l-table-stale-button-click'));
623
+
624
+ /** @ignore Todo: remove once consumers are updated to d2l-table-stale-button-click */
625
+ this.dispatchEvent(new CustomEvent('d2l-table-dirty-button-clicked'));
626
+ }
627
+
633
628
  async _handleTableChange(mutationRecords) {
634
629
  const updateList = [];
635
630
 
@@ -196,104 +196,104 @@
196
196
  ]
197
197
  },
198
198
  {
199
- "name": "d2l-backdrop-dirty-overlay",
200
- "path": "./components/backdrop/backdrop-dirty-overlay.js",
201
- "description": "The `d2l-backdrop-dirty-overlay` component is used to render a dialog with text and an action over another element that needs to be refreshed after user input.",
199
+ "name": "d2l-backdrop-loading",
200
+ "path": "./components/backdrop/backdrop-loading.js",
201
+ "description": "A component for displaying a semi-transparent backdrop and a loading spinner over the containing element",
202
202
  "attributes": [
203
203
  {
204
- "name": "description",
205
- "description": "The text displayed on the dirty state overlay.",
204
+ "name": "for",
205
+ "description": "Used to identify content that the backdrop should make inert",
206
+ "type": "string"
207
+ },
208
+ {
209
+ "name": "freshness-stale-button-text",
210
+ "description": "The button text in the overlay when 'stale'",
206
211
  "type": "string"
207
212
  },
208
213
  {
209
- "name": "action",
210
- "description": "The text displayed on the button of the dirty state overlay when the 'dirty' dataState is set.",
214
+ "name": "freshness-stale-text",
215
+ "description": "The text message in the overlay when 'stale'",
211
216
  "type": "string"
217
+ },
218
+ {
219
+ "name": "freshness",
220
+ "description": "The freshness of the component data",
221
+ "type": "'fresh'|'stale'|'loading'",
222
+ "default": "\"\\\"fresh\\\"\""
212
223
  }
213
224
  ],
214
225
  "properties": [
215
226
  {
216
- "name": "description",
217
- "attribute": "description",
218
- "description": "The text displayed on the dirty state overlay.",
227
+ "name": "for",
228
+ "attribute": "for",
229
+ "description": "Used to identify content that the backdrop should make inert",
219
230
  "type": "string"
220
231
  },
221
232
  {
222
- "name": "action",
223
- "attribute": "action",
224
- "description": "The text displayed on the button of the dirty state overlay when the 'dirty' dataState is set.",
233
+ "name": "styles",
234
+ "type": "array",
235
+ "default": "[null]"
236
+ },
237
+ {
238
+ "name": "freshnessStaleButtonText",
239
+ "attribute": "freshness-stale-button-text",
240
+ "description": "The button text in the overlay when 'stale'",
225
241
  "type": "string"
226
242
  },
227
243
  {
228
- "name": "styles",
229
- "type": "array",
230
- "default": "[\"bodyCompactStyles\",\"overlayStyles\",null]"
231
- }
232
- ],
233
- "events": [
244
+ "name": "freshnessStaleText",
245
+ "attribute": "freshness-stale-text",
246
+ "description": "The text message in the overlay when 'stale'",
247
+ "type": "string"
248
+ },
234
249
  {
235
- "name": "d2l-backdrop-dirty-overlay-action",
236
- "description": "Dispatched when the action button on the overlay is clicked"
250
+ "name": "freshness",
251
+ "attribute": "freshness",
252
+ "description": "The freshness of the component data",
253
+ "type": "'fresh'|'stale'|'loading'",
254
+ "default": "\"\\\"fresh\\\"\""
237
255
  }
238
256
  ]
239
257
  },
240
258
  {
241
- "name": "d2l-backdrop-loading",
242
- "path": "./components/backdrop/backdrop-loading.js",
243
- "description": "A component for displaying a semi-transparent backdrop and a loading spinner over the containing element",
259
+ "name": "d2l-backdrop-stale-overlay",
260
+ "path": "./components/backdrop/backdrop-stale-overlay.js",
261
+ "description": "A component to render as an overlay over another element with stale data.",
244
262
  "attributes": [
245
263
  {
246
- "name": "for",
247
- "description": "Used to identify content that the backdrop should make inert",
248
- "type": "string"
249
- },
250
- {
251
- "name": "dirty-text",
252
- "description": "The text displayed on the dirty state overlay when the 'dirty' dataState is set.",
264
+ "name": "button-text",
265
+ "description": "The action button text",
253
266
  "type": "string"
254
267
  },
255
268
  {
256
- "name": "dirty-button-text",
257
- "description": "The text displayed on the button of the dirty state overlay when the 'dirty' dataState is set.",
269
+ "name": "text",
270
+ "description": "The text displayed on the overlay",
258
271
  "type": "string"
259
- },
260
- {
261
- "name": "dataState",
262
- "description": "The state of data in the element being overlaid. Set to 'clean' when the data represents the user's latest selections, 'dirty' when the data does not represent the user's latest selections, and 'loading' if the data is being actively refreshed",
263
- "type": "'clean'|'dirty'|'loading'",
264
- "default": "\"clean\""
265
272
  }
266
273
  ],
267
274
  "properties": [
268
275
  {
269
- "name": "for",
270
- "attribute": "for",
271
- "description": "Used to identify content that the backdrop should make inert",
272
- "type": "string"
273
- },
274
- {
275
- "name": "dirtyText",
276
- "attribute": "dirty-text",
277
- "description": "The text displayed on the dirty state overlay when the 'dirty' dataState is set.",
276
+ "name": "buttonText",
277
+ "attribute": "button-text",
278
+ "description": "The action button text",
278
279
  "type": "string"
279
280
  },
280
281
  {
281
- "name": "dirtyButtonText",
282
- "attribute": "dirty-button-text",
283
- "description": "The text displayed on the button of the dirty state overlay when the 'dirty' dataState is set.",
282
+ "name": "text",
283
+ "attribute": "text",
284
+ "description": "The text displayed on the overlay",
284
285
  "type": "string"
285
286
  },
286
287
  {
287
288
  "name": "styles",
288
289
  "type": "array",
289
- "default": "[null]"
290
- },
290
+ "default": "[\"bodyCompactStyles\",null]"
291
+ }
292
+ ],
293
+ "events": [
291
294
  {
292
- "name": "dataState",
293
- "attribute": "dataState",
294
- "description": "The state of data in the element being overlaid. Set to 'clean' when the data represents the user's latest selections, 'dirty' when the data does not represent the user's latest selections, and 'loading' if the data is being actively refreshed",
295
- "type": "'clean'|'dirty'|'loading'",
296
- "default": "\"clean\""
295
+ "name": "d2l-backdrop-stale-overlay-action",
296
+ "description": "Dispatched when the action button on the overlay is clicked"
297
297
  }
298
298
  ]
299
299
  },
@@ -13540,7 +13540,7 @@
13540
13540
  "properties": [
13541
13541
  {
13542
13542
  "name": "styles",
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`\""
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.side-nav .divider[collapsed] {\\n\\t\\t\\tmargin-inline-start: 18px;\\n\\t\\t}\\n\\t\\t.supporting .divider[collapsed] {\\n\\t\\t\\tmargin-inline-end: 18px;\\n\\t\\t}\\n\\t\\t.side-nav-panel.collapsed,\\n\\t\\t.supporting-panel.collapsed {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t}\\n\\t\\t@media (prefers-reduced-motion: no-preference) {\\n\\t\\t\\t.side-nav-panel.animate,\\n\\t\\t\\t.supporting-panel.animate {\\n\\t\\t\\t\\ttransition: width 400ms cubic-bezier(0, 0.7, 0.5, 1);\\n\\t\\t\\t}\\n\\t\\t\\t.side-nav-panel.animate.collapsed,\\n\\t\\t\\t.supporting-panel.animate.collapsed {\\n\\t\\t\\t\\ttransition: width 400ms cubic-bezier(0, 0.7, 0.5, 1), visibility 0s 400ms;\\n\\t\\t\\t}\\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`\""
13544
13544
  },
13545
13545
  {
13546
13546
  "name": "widthType",
@@ -15743,20 +15743,20 @@
15743
15743
  "default": "\"default\""
15744
15744
  },
15745
15745
  {
15746
- "name": "dataState",
15747
- "description": "The state of data in the table. Set to 'clean' when the data represents the user's latest selections, 'dirty' when the data does not represent the user's latest selections, and 'loading' if the data is being actively refreshed",
15748
- "type": "'clean'|'dirty'|'loading'",
15749
- "default": "\"clean\""
15746
+ "name": "freshness-stale-button-text",
15747
+ "description": "The button text in the overlay when 'stale'",
15748
+ "type": "string"
15750
15749
  },
15751
15750
  {
15752
- "name": "dirty-text",
15753
- "description": "The text displayed on the dirty state overlay when the 'dirty' dataState is set.",
15751
+ "name": "freshness-stale-text",
15752
+ "description": "The text message in the overlay when 'stale'",
15754
15753
  "type": "string"
15755
15754
  },
15756
15755
  {
15757
- "name": "dirty-button-text",
15758
- "description": "The text displayed on the button dirty state overlay when the 'dirty' dataState is set.",
15759
- "type": "string"
15756
+ "name": "freshness",
15757
+ "description": "The freshness of the component data",
15758
+ "type": "'fresh'|'stale'|'loading'",
15759
+ "default": "\"fresh\""
15760
15760
  },
15761
15761
  {
15762
15762
  "name": "item-count",
@@ -15840,23 +15840,23 @@
15840
15840
  "default": "\"default\""
15841
15841
  },
15842
15842
  {
15843
- "name": "dataState",
15844
- "attribute": "dataState",
15845
- "description": "The state of data in the table. Set to 'clean' when the data represents the user's latest selections, 'dirty' when the data does not represent the user's latest selections, and 'loading' if the data is being actively refreshed",
15846
- "type": "'clean'|'dirty'|'loading'",
15847
- "default": "\"clean\""
15843
+ "name": "freshnessStaleButtonText",
15844
+ "attribute": "freshness-stale-button-text",
15845
+ "description": "The button text in the overlay when 'stale'",
15846
+ "type": "string"
15848
15847
  },
15849
15848
  {
15850
- "name": "dirtyText",
15851
- "attribute": "dirty-text",
15852
- "description": "The text displayed on the dirty state overlay when the 'dirty' dataState is set.",
15849
+ "name": "freshnessStaleText",
15850
+ "attribute": "freshness-stale-text",
15851
+ "description": "The text message in the overlay when 'stale'",
15853
15852
  "type": "string"
15854
15853
  },
15855
15854
  {
15856
- "name": "dirtyButtonText",
15857
- "attribute": "dirty-button-text",
15858
- "description": "The text displayed on the button dirty state overlay when the 'dirty' dataState is set.",
15859
- "type": "string"
15855
+ "name": "freshness",
15856
+ "attribute": "freshness",
15857
+ "description": "The freshness of the component data",
15858
+ "type": "'fresh'|'stale'|'loading'",
15859
+ "default": "\"fresh\""
15860
15860
  },
15861
15861
  {
15862
15862
  "name": "itemCount",
@@ -15879,8 +15879,8 @@
15879
15879
  ],
15880
15880
  "events": [
15881
15881
  {
15882
- "name": "d2l-table-dirty-button-clicked",
15883
- "description": "Dispatched when the action button on the dirty overlay is clicked"
15882
+ "name": "d2l-table-stale-button-click",
15883
+ "description": "Dispatched when the action button on the stale overlay is clicked"
15884
15884
  }
15885
15885
  ],
15886
15886
  "slots": [
@@ -16214,20 +16214,20 @@
16214
16214
  "default": "\"default\""
16215
16215
  },
16216
16216
  {
16217
- "name": "dataState",
16218
- "description": "The state of data in the table. Set to 'clean' when the data represents the user's latest selections, 'dirty' when the data does not represent the user's latest selections, and 'loading' if the data is being actively refreshed",
16219
- "type": "'clean'|'dirty'|'loading'",
16220
- "default": "\"clean\""
16217
+ "name": "freshness-stale-button-text",
16218
+ "description": "The button text in the overlay when 'stale'",
16219
+ "type": "string"
16221
16220
  },
16222
16221
  {
16223
- "name": "dirty-text",
16224
- "description": "The text displayed on the dirty state overlay when the 'dirty' dataState is set.",
16222
+ "name": "freshness-stale-text",
16223
+ "description": "The text message in the overlay when 'stale'",
16225
16224
  "type": "string"
16226
16225
  },
16227
16226
  {
16228
- "name": "dirty-button-text",
16229
- "description": "The text displayed on the button dirty state overlay when the 'dirty' dataState is set.",
16230
- "type": "string"
16227
+ "name": "freshness",
16228
+ "description": "The freshness of the component data",
16229
+ "type": "'fresh'|'stale'|'loading'",
16230
+ "default": "\"\\\"fresh\\\"\""
16231
16231
  },
16232
16232
  {
16233
16233
  "name": "item-count",
@@ -16275,23 +16275,23 @@
16275
16275
  "default": "\"default\""
16276
16276
  },
16277
16277
  {
16278
- "name": "dataState",
16279
- "attribute": "dataState",
16280
- "description": "The state of data in the table. Set to 'clean' when the data represents the user's latest selections, 'dirty' when the data does not represent the user's latest selections, and 'loading' if the data is being actively refreshed",
16281
- "type": "'clean'|'dirty'|'loading'",
16282
- "default": "\"clean\""
16278
+ "name": "freshnessStaleButtonText",
16279
+ "attribute": "freshness-stale-button-text",
16280
+ "description": "The button text in the overlay when 'stale'",
16281
+ "type": "string"
16283
16282
  },
16284
16283
  {
16285
- "name": "dirtyText",
16286
- "attribute": "dirty-text",
16287
- "description": "The text displayed on the dirty state overlay when the 'dirty' dataState is set.",
16284
+ "name": "freshnessStaleText",
16285
+ "attribute": "freshness-stale-text",
16286
+ "description": "The text message in the overlay when 'stale'",
16288
16287
  "type": "string"
16289
16288
  },
16290
16289
  {
16291
- "name": "dirtyButtonText",
16292
- "attribute": "dirty-button-text",
16293
- "description": "The text displayed on the button dirty state overlay when the 'dirty' dataState is set.",
16294
- "type": "string"
16290
+ "name": "freshness",
16291
+ "attribute": "freshness",
16292
+ "description": "The freshness of the component data",
16293
+ "type": "'fresh'|'stale'|'loading'",
16294
+ "default": "\"\\\"fresh\\\"\""
16295
16295
  },
16296
16296
  {
16297
16297
  "name": "itemCount",
@@ -16314,8 +16314,8 @@
16314
16314
  ],
16315
16315
  "events": [
16316
16316
  {
16317
- "name": "d2l-table-dirty-button-clicked",
16318
- "description": "Dispatched when the action button on the dirty overlay is clicked"
16317
+ "name": "d2l-table-stale-button-click",
16318
+ "description": "Dispatched when the action button on the stale overlay is clicked"
16319
16319
  }
16320
16320
  ],
16321
16321
  "slots": [
package/lang/ar.js CHANGED
@@ -2,6 +2,7 @@ export default {
2
2
  "components.alert.close": "إغلاق التنبيه",
3
3
  "components.backdrop-loading.loadingAnnouncement": "جارٍ التحميل",
4
4
  "components.backdrop-loading.loadingCompleteAnnouncement": "اكتمل التحميل.",
5
+ "components.backdrop-stale-overlay.message": "This data is out of date.",
5
6
  "components.breadcrumbs.breadcrumb": "مسار التنقل",
6
7
  "components.button-add.addItem": "إضافة عنصر",
7
8
  "components.button-copy.copied": "تم النسخ!",
@@ -135,13 +136,13 @@ export default {
135
136
  "components.list-item.addItem": "إضافة عنصر",
136
137
  "components.list-item-drag-handle.default": "إعادة ترتيب إجراء المادة لـ {name}",
137
138
  "components.list-item-drag-handle.keyboard": "قم بإعادة ترتيب العنصر، الموضع الحالي {currentPosition} من {size}. لنقل هذا العنصر، اضغط على سهما لأعلى أو لأسفل.",
138
- "components.list-item-drag-handle.side-to-side.keyboard": "Reorder item, current position {currentPosition} out of {size}. To move this item, press left or right arrows.",
139
+ "components.list-item-drag-handle.side-to-side.keyboard": "قم بإعادة ترتيب العنصر، الموضع الحالي {currentPosition} من {size}. لنقل هذا العنصر، اضغط على سهمي اليسار أو اليمين.",
139
140
  "components.list-item-drag-handle-tooltip.enter-desc": "تبديل وضع إعادة ترتيب لوحة المفاتيح.",
140
141
  "components.list-item-drag-handle-tooltip.enter-key": "إدخال",
141
142
  "components.list-item-drag-handle-tooltip.left-right-desc": "غيِّر مستوى التداخل.",
142
143
  "components.list-item-drag-handle-tooltip.left-right-key": "يسار/يمين",
143
- "components.list-item-drag-handle-tooltip.side-to-side.left-right-desc": "Move item left or right in the list.",
144
- "components.list-item-drag-handle-tooltip.side-to-side.up-down-desc": "Move item left or right in the list.",
144
+ "components.list-item-drag-handle-tooltip.side-to-side.left-right-desc": "نقل العنصر إلى اليسار أو اليمين في القائمة.",
145
+ "components.list-item-drag-handle-tooltip.side-to-side.up-down-desc": "نقل العنصر إلى اليسار أو اليمين في القائمة.",
145
146
  "components.list-item-drag-handle-tooltip.title": "عناصر التحكم بلوحة المفاتيح لإعادة الترتيب:",
146
147
  "components.list-item-drag-handle-tooltip.up-down-desc": "نقل المادة إلى الأعلى أو الأسفل في القائمة.",
147
148
  "components.list-item-drag-handle-tooltip.up-down-key": "أعلى/أسفل",
@@ -155,12 +156,12 @@ export default {
155
156
  "components.more-less.more": "المزيد",
156
157
  "components.object-property-list.item-placeholder-text": "عنصر نائب",
157
158
  "components.overflow-group.moreActions": "مزيد من الإجراءات",
158
- "components.page.footer-region-label": "Footer",
159
+ "components.page.footer-region-label": "التذييل",
159
160
  "components.page.header-nav-label": "الرئيسية",
160
- "components.page.side-nav-divider-label": "Side Navigation Divider",
161
+ "components.page.side-nav-divider-label": "مقسّم التنقل الجانبي",
161
162
  "components.page.side-nav-label": "جانبية",
162
- "components.page.supporting-divider-label": "Supporting Panel Divider",
163
- "components.page.supporting-panel-label": "Supporting",
163
+ "components.page.supporting-divider-label": "فاصل اللوحة الداعمة",
164
+ "components.page.supporting-panel-label": "داعمة",
164
165
  "components.pageable.info":
165
166
  `{count, plural,
166
167
  one {{countFormatted} مادة واحد}
package/lang/ca.js CHANGED
@@ -2,6 +2,7 @@ export default {
2
2
  "components.alert.close": "Tanca l’alerta",
3
3
  "components.backdrop-loading.loadingAnnouncement": "Carregant.",
4
4
  "components.backdrop-loading.loadingCompleteAnnouncement": "Càrrega completa.",
5
+ "components.backdrop-stale-overlay.message": "This data is out of date.",
5
6
  "components.breadcrumbs.breadcrumb": "Breadcrumb",
6
7
  "components.button-add.addItem": "Afegeix element",
7
8
  "components.button-copy.copied": "S’ha copiat!",
@@ -135,13 +136,13 @@ export default {
135
136
  "components.list-item.addItem": "Afegeix element",
136
137
  "components.list-item-drag-handle.default": "Acció de reordenar l’element per a {name}",
137
138
  "components.list-item-drag-handle.keyboard": "Reordenar element, posició actual {currentPosition} de {size}. Per moure aquest element, premeu les fletxes amunt o avall.",
138
- "components.list-item-drag-handle.side-to-side.keyboard": "Reorder item, current position {currentPosition} out of {size}. To move this item, press left or right arrows.",
139
+ "components.list-item-drag-handle.side-to-side.keyboard": "Torneu a ordenar l’element, posició actual {currentPosition} de {size}. Per moure aquest element, premeu les fletxes esquerra o dreta.",
139
140
  "components.list-item-drag-handle-tooltip.enter-desc": "Canviar el mode de reordenació del teclat.",
140
141
  "components.list-item-drag-handle-tooltip.enter-key": "Introduir",
141
142
  "components.list-item-drag-handle-tooltip.left-right-desc": "Canviar el nivell d’anidament.",
142
143
  "components.list-item-drag-handle-tooltip.left-right-key": "Esquerra/Dreta",
143
- "components.list-item-drag-handle-tooltip.side-to-side.left-right-desc": "Move item left or right in the list.",
144
- "components.list-item-drag-handle-tooltip.side-to-side.up-down-desc": "Move item left or right in the list.",
144
+ "components.list-item-drag-handle-tooltip.side-to-side.left-right-desc": "Passa l’element a l’esquerra o dreta de la llista.",
145
+ "components.list-item-drag-handle-tooltip.side-to-side.up-down-desc": "Passa l’element a l’esquerra o dreta de la llista.",
145
146
  "components.list-item-drag-handle-tooltip.title": "Controls del teclat per reordenar:",
146
147
  "components.list-item-drag-handle-tooltip.up-down-desc": "Mou l’element amunt o avall a la llista.",
147
148
  "components.list-item-drag-handle-tooltip.up-down-key": "Amunt/Avall",
@@ -155,12 +156,12 @@ export default {
155
156
  "components.more-less.more": "més",
156
157
  "components.object-property-list.item-placeholder-text": "Element de marcador de posició",
157
158
  "components.overflow-group.moreActions": "Més accions",
158
- "components.page.footer-region-label": "Footer",
159
+ "components.page.footer-region-label": "Peu de pàgina",
159
160
  "components.page.header-nav-label": "Principal",
160
- "components.page.side-nav-divider-label": "Side Navigation Divider",
161
+ "components.page.side-nav-divider-label": "Separador de la navegació lateral",
161
162
  "components.page.side-nav-label": "Lateral",
162
- "components.page.supporting-divider-label": "Supporting Panel Divider",
163
- "components.page.supporting-panel-label": "Supporting",
163
+ "components.page.supporting-divider-label": "Divisor del panell de suport",
164
+ "components.page.supporting-panel-label": "Suport",
164
165
  "components.pageable.info":
165
166
  `{count, plural,
166
167
  one {{countFormatted} element}
package/lang/cy.js CHANGED
@@ -2,6 +2,7 @@ export default {
2
2
  "components.alert.close": "Cau Hysbysiad",
3
3
  "components.backdrop-loading.loadingAnnouncement": "Wrthi’n llwytho.",
4
4
  "components.backdrop-loading.loadingCompleteAnnouncement": "Llwytho wedi Gorffen.",
5
+ "components.backdrop-stale-overlay.message": "This data is out of date.",
5
6
  "components.breadcrumbs.breadcrumb": "Briwsionyn Bara",
6
7
  "components.button-add.addItem": "Ychwanegu Eitem",
7
8
  "components.button-copy.copied": "Wedi’i gopïo!",
@@ -135,13 +136,13 @@ export default {
135
136
  "components.list-item.addItem": "Ychwanegu Eitem",
136
137
  "components.list-item-drag-handle.default": "Aildrefnu gweithred eitem ar gyfer {name}",
137
138
  "components.list-item-drag-handle.keyboard": "Aildrefnu eitemau, safle presennol {currentPosition} allan o {size}. I symud yr eitem hon, pwyswch y saeth i fyny neu’r saeth i lawr.",
138
- "components.list-item-drag-handle.side-to-side.keyboard": "Reorder item, current position {currentPosition} out of {size}. To move this item, press left or right arrows.",
139
+ "components.list-item-drag-handle.side-to-side.keyboard": "Ail-drefnu eitem, safle cyfredol {currentPosition} o {size}. I symud yr eitem hon, pwyswch y saethau chwith neu dde.",
139
140
  "components.list-item-drag-handle-tooltip.enter-desc": "Toglo’r modd aildrefnu bysellfwrdd.",
140
141
  "components.list-item-drag-handle-tooltip.enter-key": "Nodi",
141
142
  "components.list-item-drag-handle-tooltip.left-right-desc": "Newid y lefel nythu.",
142
143
  "components.list-item-drag-handle-tooltip.left-right-key": "Chwith/De",
143
- "components.list-item-drag-handle-tooltip.side-to-side.left-right-desc": "Move item left or right in the list.",
144
- "components.list-item-drag-handle-tooltip.side-to-side.up-down-desc": "Move item left or right in the list.",
144
+ "components.list-item-drag-handle-tooltip.side-to-side.left-right-desc": "Symud eitem i’r chwith neu dde yn y rhestr.",
145
+ "components.list-item-drag-handle-tooltip.side-to-side.up-down-desc": "Symud eitem i’r chwith neu dde yn y rhestr.",
145
146
  "components.list-item-drag-handle-tooltip.title": "Rheolaethau bysellfwrdd ar gyfer aildrefnu:",
146
147
  "components.list-item-drag-handle-tooltip.up-down-desc": "Symud yr eitem i fyny neu i lawr yn y rhestr.",
147
148
  "components.list-item-drag-handle-tooltip.up-down-key": "I Fyny/I Lawr",
@@ -155,12 +156,12 @@ export default {
155
156
  "components.more-less.more": "mwy",
156
157
  "components.object-property-list.item-placeholder-text": "Eitem Dalfan",
157
158
  "components.overflow-group.moreActions": "Rhagor o Gamau Gweithredu",
158
- "components.page.footer-region-label": "Footer",
159
+ "components.page.footer-region-label": "Troedyn",
159
160
  "components.page.header-nav-label": "Prif",
160
- "components.page.side-nav-divider-label": "Side Navigation Divider",
161
+ "components.page.side-nav-divider-label": "Raniwr Llywio Ochr",
161
162
  "components.page.side-nav-label": "Ochr",
162
- "components.page.supporting-divider-label": "Supporting Panel Divider",
163
- "components.page.supporting-panel-label": "Supporting",
163
+ "components.page.supporting-divider-label": "Raniwr Panel Cymorth",
164
+ "components.page.supporting-panel-label": "Cefnogi",
164
165
  "components.pageable.info":
165
166
  `{count, plural,
166
167
  one {{countFormatted} eitem}