lightning-base-components 1.22.1-alpha → 1.22.2-alpha

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.
Files changed (73) hide show
  1. package/metadata/raptor.json +7 -0
  2. package/package.json +1 -1
  3. package/src/lightning/accordionSection/button.slds.css +8 -0
  4. package/src/lightning/baseCombobox/dropdown.slds.css +7 -7
  5. package/src/lightning/baseCombobox/input-text.slds.css +7 -6
  6. package/src/lightning/button/button.slds.css +8 -0
  7. package/src/lightning/buttonIcon/button-icon.slds.css +13 -5
  8. package/src/lightning/buttonIcon/buttonIcon.js +29 -26
  9. package/src/lightning/buttonIconStateful/button-icon.slds.css +13 -5
  10. package/src/lightning/buttonIconStateful/button.slds.css +8 -0
  11. package/src/lightning/buttonMenu/button-icon.slds.css +13 -5
  12. package/src/lightning/buttonMenu/button.slds.css +8 -0
  13. package/src/lightning/buttonMenu/dropdown.slds.css +7 -7
  14. package/src/lightning/buttonStateful/button.slds.css +8 -0
  15. package/src/lightning/calendar/calendar.lbc.native.css +1 -0
  16. package/src/lightning/calendar/calendar.slds.css +13 -10
  17. package/src/lightning/calendar/dropdown.slds.css +7 -7
  18. package/src/lightning/colorPickerCustom/input-text.slds.css +7 -6
  19. package/src/lightning/colorPickerPanel/colorPickerPanel.js +1 -11
  20. package/src/lightning/combobox/combobox.html +1 -1
  21. package/src/lightning/combobox/form-element.slds.css +1 -1
  22. package/src/lightning/datatable/autoWidthStrategy.js +32 -44
  23. package/src/lightning/datatable/columns.js +4 -1
  24. package/src/lightning/datatable/datatable.js +7 -8
  25. package/src/lightning/datatable/keyboard.js +2 -2
  26. package/src/lightning/datatable/rows.js +2 -1
  27. package/src/lightning/datepicker/form-element.slds.css +1 -1
  28. package/src/lightning/datepicker/input-text.slds.css +7 -6
  29. package/src/lightning/datetimepicker/form-element.slds.css +1 -1
  30. package/src/lightning/datetimepicker/input-text.slds.css +7 -6
  31. package/src/lightning/dualListbox/form-element.slds.css +1 -1
  32. package/src/lightning/groupedCombobox/form-element.slds.css +1 -1
  33. package/src/lightning/groupedCombobox/groupedCombobox.js +21 -28
  34. package/src/lightning/groupedCombobox/input-text.slds.css +7 -6
  35. package/src/lightning/helptext/button-icon.slds.css +13 -5
  36. package/src/lightning/helptext/form-element.slds.css +1 -1
  37. package/src/lightning/helptext/helptext.html +2 -1
  38. package/src/lightning/helptext/helptext.js +0 -12
  39. package/src/lightning/input/form-element.slds.css +1 -1
  40. package/src/lightning/inputAddress/form-element.slds.css +1 -1
  41. package/src/lightning/inputAddress/input-text.slds.css +7 -6
  42. package/src/lightning/inputLocation/form-element.slds.css +1 -1
  43. package/src/lightning/inputLocation/input-text.slds.css +7 -6
  44. package/src/lightning/inputName/form-element.slds.css +1 -1
  45. package/src/lightning/inputName/input-text.slds.css +7 -6
  46. package/src/lightning/interactiveDialogBase/button.slds.css +8 -0
  47. package/src/lightning/lookupAddress/form-element.slds.css +1 -1
  48. package/src/lightning/pillContainer/button.slds.css +8 -0
  49. package/src/lightning/primitiveBubble/primitiveBubble.js +9 -4
  50. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +1 -1
  51. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.html +1 -0
  52. package/src/lightning/primitiveInputCheckbox/form-element.slds.css +1 -1
  53. package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +1 -1
  54. package/src/lightning/primitiveInputColor/form-element.slds.css +1 -1
  55. package/src/lightning/primitiveInputColor/input-text.slds.css +7 -6
  56. package/src/lightning/primitiveInputFile/button.slds.css +8 -0
  57. package/src/lightning/primitiveInputFile/form-element.slds.css +1 -1
  58. package/src/lightning/primitiveInputSimple/form-element.slds.css +1 -1
  59. package/src/lightning/primitiveInputSimple/input-text.slds.css +7 -6
  60. package/src/lightning/primitiveInputToggle/form-element.slds.css +1 -1
  61. package/src/lightning/prompt/form-element.slds.css +1 -1
  62. package/src/lightning/prompt/input-text.slds.css +7 -6
  63. package/src/lightning/radioGroup/form-element.slds.css +1 -1
  64. package/src/lightning/select/form-element.slds.css +1 -1
  65. package/src/lightning/select/select.slds.css +1 -1
  66. package/src/lightning/sldsUtilsThemes/sldsUtilsThemes.css +6 -4
  67. package/src/lightning/tabBar/tab-bar.slds.css +17 -3
  68. package/src/lightning/textarea/form-element.slds.css +1 -1
  69. package/src/lightning/timepicker/form-element.slds.css +1 -1
  70. package/src/lightning/toast/button-icon.slds.css +13 -5
  71. package/src/lightning/tooltipLibrary/tooltipLibrary.js +15 -4
  72. package/src/lightning/utilsPrivate/utilsPrivate.js +4 -4
  73. package/src/lightning/verticalNavigationOverflow/button.slds.css +8 -0
@@ -5,7 +5,7 @@ import labelDoneButton from '@salesforce/label/LightningColorPicker.doneButton';
5
5
  import { api, track } from 'lwc';
6
6
  import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
7
7
  import { classSet } from 'lightning/utils';
8
- import { keyCodes, isCSR } from 'lightning/utilsPrivate';
8
+ import { keyCodes } from 'lightning/utilsPrivate';
9
9
 
10
10
  const i18n = {
11
11
  cancelButton: labelCancelButton,
@@ -26,16 +26,6 @@ export default class LightningColorPickerPanel extends LightningShadowBaseClass
26
26
  this._selectedColor = this.currentColor || DEFAULT_COLOR;
27
27
  }
28
28
 
29
- renderedCallback() {
30
- // W-14600421 bug fix: prevent panel from falling outside user focus,
31
- // like when viewports are too small
32
- if (isCSR && typeof document.body.scrollIntoView === 'function') {
33
- this.template
34
- .querySelector('lightning-color-picker-custom')
35
- .scrollIntoView();
36
- }
37
- }
38
-
39
29
  get i18n() {
40
30
  return i18n;
41
31
  }
@@ -34,7 +34,7 @@
34
34
  variant={variant}></lightning-base-combobox>
35
35
  </div>
36
36
  <template if:true={_helpMessage}>
37
- <div id="help-text" data-help-text class="slds-form-element__help" aria-live="assertive">{_helpMessage}</div>
37
+ <div id="help-text" data-help-text class="slds-form-element__help" aria-live="polite">{_helpMessage}</div>
38
38
  </template>
39
39
  </div>
40
40
  </template>
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);
@@ -19,27 +19,27 @@ function getTotalColumnWidth(columnWidths) {
19
19
  }
20
20
 
21
21
  /**
22
- * Determines whether or not a specified width can be removed from a column
22
+ * Determines the new width of a column of after removing a set amount
23
23
  *
24
24
  * @param {Number} currentWidth The current width of the column in pixels
25
25
  * @param {Number} widthToRemove The proposed amount of width to remove in pixels
26
26
  * @param {Number} minColumnWidth The minimum width the column can be in pixels
27
- * @returns {Boolean} Whether or not the specified width can be removed
27
+ * @returns {Number} The new width of the column in pixels
28
28
  */
29
- function canRemoveWidth(currentWidth, widthToRemove, minColumnWidth) {
30
- return currentWidth - widthToRemove >= minColumnWidth;
29
+ function getReducedWidth(currentWidth, widthToRemove, minColumnWidth) {
30
+ return Math.max(currentWidth - widthToRemove, minColumnWidth);
31
31
  }
32
32
 
33
33
  /**
34
- * Determines whether or not a specified width can be added to a column
34
+ * Determines the new width of a column of after adding a set amount
35
35
  *
36
36
  * @param {Number} currentWidth The current width of the column in pixels
37
- * @param {Number} widthToAdd The proposed amount of width to add in pixels
37
+ * @param {Number} widthToRemove The proposed amount of width to add in pixels
38
38
  * @param {Number} maxColumnWidth The maximum width the column can be in pixels
39
- * @returns {Boolean} Whether or not the specified width can be added
39
+ * @returns {Number} The new width of the column in pixels
40
40
  */
41
- function canAddWidth(currentWidth, widthToAdd, maxColumnWidth) {
42
- return currentWidth + widthToAdd <= maxColumnWidth;
41
+ function getEnlargedWidth(currentWidth, widthToAdd, maxColumnWidth) {
42
+ return Math.min(currentWidth + widthToAdd, maxColumnWidth);
43
43
  }
44
44
 
45
45
  /**
@@ -397,17 +397,13 @@ export class AutoWidthStrategy {
397
397
  for (let i = 0; i < colsWithMinWidthLength; i += 1) {
398
398
  const colIndex = colsWithMinWidth[i];
399
399
  const currentWidth = columnWidths[colIndex];
400
- if (
401
- canAddWidth(
402
- currentWidth,
403
- extraWidthPerColumn,
404
- maxColumnWidth
405
- )
406
- ) {
407
- const newWidth = currentWidth + extraWidthPerColumn;
408
- columnWidthsSum += extraWidthPerColumn;
409
- columnWidths[colIndex] = newWidth;
410
- }
400
+ const newWidth = getEnlargedWidth(
401
+ currentWidth,
402
+ extraWidthPerColumn,
403
+ maxColumnWidth
404
+ );
405
+ columnWidthsSum += newWidth - currentWidth;
406
+ columnWidths[colIndex] = newWidth;
411
407
  }
412
408
  }
413
409
 
@@ -428,16 +424,13 @@ export class AutoWidthStrategy {
428
424
  for (let colIndex = 0; colIndex < colCount; colIndex += 1) {
429
425
  const col = columns[colIndex];
430
426
  const currentWidth = columnWidths[colIndex];
431
- if (
432
- !getColumnWidth(col) &&
433
- canAddWidth(
427
+ if (!getColumnWidth(col)) {
428
+ const newWidth = getEnlargedWidth(
434
429
  currentWidth,
435
430
  extraWidthPerColumn,
436
431
  maxColumnWidth
437
- )
438
- ) {
439
- const newWidth = currentWidth + extraWidthPerColumn;
440
- columnWidthsSum += extraWidthPerColumn;
432
+ );
433
+ columnWidthsSum += newWidth - currentWidth;
441
434
  columnWidths[colIndex] = newWidth;
442
435
  }
443
436
  }
@@ -474,17 +467,13 @@ export class AutoWidthStrategy {
474
467
  for (let i = 0, { length } = colsWithMaxWidth; i < length; i += 1) {
475
468
  const colIndex = colsWithMaxWidth[i];
476
469
  const currentWidth = columnWidths[colIndex];
477
- if (
478
- canRemoveWidth(
479
- currentWidth,
480
- extraWidthPerColumn,
481
- minColumnWidth
482
- )
483
- ) {
484
- const newWidth = currentWidth - extraWidthPerColumn;
485
- columnWidthsSum -= extraWidthPerColumn;
486
- columnWidths[colIndex] = newWidth;
487
- }
470
+ const newWidth = getReducedWidth(
471
+ currentWidth,
472
+ extraWidthPerColumn,
473
+ minColumnWidth
474
+ );
475
+ columnWidthsSum -= currentWidth - newWidth;
476
+ columnWidths[colIndex] = newWidth;
488
477
  }
489
478
  }
490
479
 
@@ -508,15 +497,14 @@ export class AutoWidthStrategy {
508
497
  const currentWidth = columnWidths[colIndex];
509
498
  if (
510
499
  !colsWithMinWidth.includes(colIndex) &&
511
- !getColumnWidth(col) &&
512
- canRemoveWidth(
500
+ !getColumnWidth(col)
501
+ ) {
502
+ const newWidth = getReducedWidth(
513
503
  currentWidth,
514
504
  extraWidthPerColumn,
515
505
  minColumnWidth
516
- )
517
- ) {
518
- const newWidth = currentWidth - extraWidthPerColumn;
519
- columnWidthsSum -= extraWidthPerColumn;
506
+ );
507
+ columnWidthsSum -= currentWidth - newWidth;
520
508
  columnWidths[colIndex] = newWidth;
521
509
  }
522
510
  }
@@ -273,11 +273,14 @@ export function setColumns(state, rawColumns, types) {
273
273
  }
274
274
 
275
275
  // partially inline updateHeaderInternalActions from datatable/headerActions
276
+ // change alignment for last col and second-to-last col when last col is
277
+ // has a fixedWith under 100 (this includes action columns)
276
278
  const { actions } = normCol;
277
279
  normCol.actions = {
278
280
  menuAlignment:
279
281
  normCol.isLastCol ||
280
- normalizedColumns[colIndex + 1].type === 'action'
282
+ normalizedColumns[colIndex + 1].type === 'action' ||
283
+ normalizedColumns[colIndex + 1].fixedWidth < 100
281
284
  ? 'auto-right'
282
285
  : 'auto-left',
283
286
  customerActions: Array.isArray(actions) ? actions : [],
@@ -622,14 +622,11 @@ export default class LightningDatatable extends LightningElement {
622
622
  this.getWrapperHeight,
623
623
  value
624
624
  );
625
- // if renderConfig already exists, update rendering
626
- if (this._renderConfig) {
627
- this._renderManager.updateViewportRendering(
628
- this.state,
629
- this.gridContainer,
630
- true
631
- );
632
- }
625
+ this._renderManager.updateViewportRendering(
626
+ this.state,
627
+ this.gridContainer,
628
+ true
629
+ );
633
630
  this._renderConfig = value;
634
631
  }
635
632
  }
@@ -1101,6 +1098,8 @@ export default class LightningDatatable extends LightningElement {
1101
1098
 
1102
1099
  this._columnWidthManager = new ColumnWidthManager(this.widthsData);
1103
1100
  this._privateTypes = new DatatableTypes(this.constructor.customTypes);
1101
+ this._hasSetInitialCustomTypes =
1102
+ !!this._privateTypes.privateCustomTypes.size;
1104
1103
 
1105
1104
  this._renderManager = new RenderManager();
1106
1105
  this.getWrapperHeight = () => getScrollerX(this.template).offsetHeight;
@@ -481,10 +481,10 @@ export function reactToKeyboardOnRow(dt, event) {
481
481
  reactToArrowRightOnRow(dt, state, template, event);
482
482
  break;
483
483
  case ARROW_UP:
484
- reactToArrowUpOnRow(dt, state, template, event);
484
+ reactToArrowUpOnRow(state, template, event);
485
485
  break;
486
486
  case ARROW_DOWN:
487
- reactToArrowDownOnRow(dt, state, template, event);
487
+ reactToArrowDownOnRow(state, template, event);
488
488
  break;
489
489
  default:
490
490
  break;
@@ -404,7 +404,8 @@ export function updateCell(state, rowIndex, colIndex) {
404
404
  cell.typeAttribute0 = getRowNumberError(rowErrors, cell.scopeColValue);
405
405
  }
406
406
 
407
- let cellClass = cell.class || '';
407
+ const cellAttributes = getCellAttributesValues(col);
408
+ let cellClass = resolveAttributeValue(cellAttributes.class, rowData) || '';
408
409
  if (cell.hasTreeData && !cellClass) {
409
410
  cellClass += (cellClass.length ? ' ' : '') + TREE__ITEM_CLASS;
410
411
  }
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);
@@ -246,7 +246,7 @@
246
246
  --sds-c-inputtext-text-color: var(--slds-c-inputtext-text-color);
247
247
  --sds-c-inputtext-font-size: var(
248
248
  --slds-c-inputtext-font-size,
249
- var(--slds-g-font-scale-neg-2)
249
+ var(--slds-g-font-size-base)
250
250
  );
251
251
  --sds-c-inputtext-text-color-placeholder: var(
252
252
  --slds-c-inputtext-text-color-placeholder,
@@ -264,7 +264,7 @@
264
264
 
265
265
  display: flex;
266
266
  flex-wrap: wrap;
267
- align-items: center;
267
+ flex-direction: column;
268
268
  }
269
269
  /**
270
270
  * Input Container
@@ -371,6 +371,10 @@
371
371
  --sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
372
372
  --sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
373
373
  }
374
+ :host([data-render-mode="shadow"][disabled]) [part='input-text'] {
375
+ --sds-c-inputtext-text-color-placeholder:
376
+ var(--slds-g-color-on-disabled-2);
377
+ }
374
378
  /**
375
379
  * Label
376
380
  *
@@ -384,10 +388,7 @@
384
388
  --slds-c-inputtext-label-color,
385
389
  var(--slds-g-color-on-surface-2)
386
390
  );
387
- font-size: var(
388
- --slds-c-inputtext-label-font-size,
389
- var(--slds-g-font-scale-neg-3)
390
- );
391
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
391
392
  margin-block-end: var(--slds-g-sizing-1);
392
393
 
393
394
  /* We inline flex to control the spacing between elements and not have to rely on whitespace characters */
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);
@@ -246,7 +246,7 @@
246
246
  --sds-c-inputtext-text-color: var(--slds-c-inputtext-text-color);
247
247
  --sds-c-inputtext-font-size: var(
248
248
  --slds-c-inputtext-font-size,
249
- var(--slds-g-font-scale-neg-2)
249
+ var(--slds-g-font-size-base)
250
250
  );
251
251
  --sds-c-inputtext-text-color-placeholder: var(
252
252
  --slds-c-inputtext-text-color-placeholder,
@@ -264,7 +264,7 @@
264
264
 
265
265
  display: flex;
266
266
  flex-wrap: wrap;
267
- align-items: center;
267
+ flex-direction: column;
268
268
  }
269
269
  /**
270
270
  * Input Container
@@ -371,6 +371,10 @@
371
371
  --sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
372
372
  --sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
373
373
  }
374
+ :host([data-render-mode="shadow"][disabled]) [part='input-text'] {
375
+ --sds-c-inputtext-text-color-placeholder:
376
+ var(--slds-g-color-on-disabled-2);
377
+ }
374
378
  /**
375
379
  * Label
376
380
  *
@@ -384,10 +388,7 @@
384
388
  --slds-c-inputtext-label-color,
385
389
  var(--slds-g-color-on-surface-2)
386
390
  );
387
- font-size: var(
388
- --slds-c-inputtext-label-font-size,
389
- var(--slds-g-font-scale-neg-3)
390
- );
391
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
391
392
  margin-block-end: var(--slds-g-sizing-1);
392
393
 
393
394
  /* We inline flex to control the spacing between elements and not have to rely on whitespace characters */
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);
@@ -382,10 +382,7 @@ export default class LightningGroupedCombobox extends LightningShadowBaseClass {
382
382
  this.interactingState.enter();
383
383
  this._expandPillContainer = true;
384
384
 
385
- if (!this._hasFocus) {
386
- this._hasFocus = true;
387
- this.dispatchEvent(new CustomEvent('focus'));
388
- }
385
+ this.dispatchEvent(new CustomEvent('focus'));
389
386
  }
390
387
 
391
388
  handlePillsFocus() {
@@ -401,36 +398,32 @@ export default class LightningGroupedCombobox extends LightningShadowBaseClass {
401
398
  }
402
399
 
403
400
  handleBlur() {
404
- this._hasFocus = false;
405
-
406
401
  // Once https://github.com/salesforce/lwc/issues/444 is fixed, consider switching to
407
402
  // `onfocusout` and `event.relatedTarget` to determine whether the focus stayed in the component,
408
403
  // this way the use of async blur can be avoided.
409
404
  // eslint-disable-next-line @lwc/lwc/no-async-operation
410
405
  requestAnimationFrame(() => {
411
- if (!this._hasFocus) {
412
- this.interactingState.leave();
413
-
414
- this.dispatchEvent(new CustomEvent('blur'));
415
- if (this.pills && this.pills.length > 0) {
416
- // Sometimes (involves focusing on lower pills) the pill container scrolls and the top
417
- // line with the "+ n more" button does not show so we have to manually scroll to the top.
418
- // We need to figure a better solution for this.
419
- // eslint-disable-next-line @lwc/lwc/no-async-operation
420
- requestAnimationFrame(() => {
421
- if (this._connected) {
422
- // If a new pill has been added but the markup-conditional hasn't had a chance to
423
- // initialize the pill container, and causes a null gack. Adding a quick safety
424
- // check here to avoid this case
425
- const pillContainer = this.template.querySelector(
426
- 'lightning-pill-container'
427
- );
428
- if (pillContainer) {
429
- pillContainer.scrollTop = 0;
430
- }
406
+ this.interactingState.leave();
407
+
408
+ this.dispatchEvent(new CustomEvent('blur'));
409
+ if (this.pills && this.pills.length > 0) {
410
+ // Sometimes (involves focusing on lower pills) the pill container scrolls and the top
411
+ // line with the "+ n more" button does not show so we have to manually scroll to the top.
412
+ // We need to figure a better solution for this.
413
+ // eslint-disable-next-line @lwc/lwc/no-async-operation
414
+ requestAnimationFrame(() => {
415
+ if (this._connected) {
416
+ // If a new pill has been added but the markup-conditional hasn't had a chance to
417
+ // initialize the pill container, and causes a null gack. Adding a quick safety
418
+ // check here to avoid this case
419
+ const pillContainer = this.template.querySelector(
420
+ 'lightning-pill-container'
421
+ );
422
+ if (pillContainer) {
423
+ pillContainer.scrollTop = 0;
431
424
  }
432
- });
433
- }
425
+ }
426
+ });
434
427
  }
435
428
  });
436
429
  }
@@ -246,7 +246,7 @@
246
246
  --sds-c-inputtext-text-color: var(--slds-c-inputtext-text-color);
247
247
  --sds-c-inputtext-font-size: var(
248
248
  --slds-c-inputtext-font-size,
249
- var(--slds-g-font-scale-neg-2)
249
+ var(--slds-g-font-size-base)
250
250
  );
251
251
  --sds-c-inputtext-text-color-placeholder: var(
252
252
  --slds-c-inputtext-text-color-placeholder,
@@ -264,7 +264,7 @@
264
264
 
265
265
  display: flex;
266
266
  flex-wrap: wrap;
267
- align-items: center;
267
+ flex-direction: column;
268
268
  }
269
269
  /**
270
270
  * Input Container
@@ -371,6 +371,10 @@
371
371
  --sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
372
372
  --sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
373
373
  }
374
+ :host([data-render-mode="shadow"][disabled]) [part='input-text'] {
375
+ --sds-c-inputtext-text-color-placeholder:
376
+ var(--slds-g-color-on-disabled-2);
377
+ }
374
378
  /**
375
379
  * Label
376
380
  *
@@ -384,10 +388,7 @@
384
388
  --slds-c-inputtext-label-color,
385
389
  var(--slds-g-color-on-surface-2)
386
390
  );
387
- font-size: var(
388
- --slds-c-inputtext-label-font-size,
389
- var(--slds-g-font-scale-neg-3)
390
- );
391
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
391
392
  margin-block-end: var(--slds-g-sizing-1);
392
393
 
393
394
  /* We inline flex to control the spacing between elements and not have to rely on whitespace characters */
@@ -299,6 +299,14 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
299
299
  --sds-c-button-color-border-disabled: var(--slds-g-color-border-disabled-1);
300
300
  --sds-c-button-text-color-disabled: var(--slds-g-color-on-disabled-1);
301
301
  --sds-c-button-color-background-disabled: var(--slds-g-color-disabled-container-1);
302
+
303
+ /**
304
+ * Needed to override
305
+ * `pointer-event: none` coming from sds
306
+ * that prevent tooltip from showing
307
+ */
308
+ pointer-events: auto;
309
+ cursor: default;
302
310
  }
303
311
  /**
304
312
  * A note about fallbacks on the default variant:
@@ -545,19 +553,19 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
545
553
  --sds-c-button-color-border-disabled: var(--slds-g-color-border-disabled-1);
546
554
  }
547
555
  /* slds-icon interaction states */
548
- :host([data-render-mode="shadow"]) [part~='button-icon']:not(.slds-is-selected):hover {
556
+ :host([data-render-mode="shadow"]) [part~='button-icon']:hover {
549
557
  --slds-c-icon-color-foreground: var(
550
- --slds-c-buttonicon-color-foreground-hover,
558
+ --slds-c-buttonicon-color-foreground-hover,
551
559
  var(--slds-g-color-accent-3)
552
560
  );
553
561
  }
554
- :host([data-render-mode="shadow"]) [part~='button-icon']:not(.slds-is-selected):focus {
562
+ :host([data-render-mode="shadow"]) [part~='button-icon']:focus {
555
563
  --slds-c-icon-color-foreground: var(
556
564
  --slds-c-buttonicon-color-foreground-focus,
557
565
  var(--slds-g-color-accent-3)
558
566
  );
559
567
  }
560
- :host([data-render-mode="shadow"]) [part~='button-icon']:not(.slds-is-selected):active {
568
+ :host([data-render-mode="shadow"]) [part~='button-icon']:active {
561
569
  --slds-c-icon-color-foreground: var(
562
570
  --slds-c-buttonicon-color-foreground-active,
563
571
  var(--slds-g-color-accent-3)
@@ -635,7 +643,7 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
635
643
 
636
644
  /* Icon */
637
645
  --slds-c-buttonicon-color-foreground: var(--slds-g-color-neutral-base-100);
638
- --slds-c-buttonicon-color-foreground-hover: var(--slds-g-color-neutral-base-95);
646
+ --slds-c-buttonicon-color-foreground-hover: color-mix(in oklab, var(--slds-g-color-on-surface-inverse-1), transparent 25%);
639
647
  --slds-c-buttonicon-color-foreground-focus: var(--slds-g-color-neutral-base-95);
640
648
  --slds-c-buttonicon-color-foreground-active: var(--slds-g-color-neutral-base-90);
641
649
 
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);
@@ -5,9 +5,10 @@
5
5
  icon-class={computedIconClass}
6
6
  variant={computedButtonVariant}
7
7
  alternative-text={alternativeText}
8
+ disable-alternative-text-title
8
9
  tooltip={content}
9
- onprivatebuttoniconregister={handleButtonIconRegister}
10
10
  tabindex={tabIndex}
11
+ tooltip-type="toggle"
11
12
  ></lightning-button-icon>
12
13
  </div>
13
14
  </template>
@@ -3,7 +3,6 @@ import { api, track } from 'lwc';
3
3
  import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
4
4
  import { isValidName } from 'lightning/iconUtils';
5
5
  import { normalizeString } from 'lightning/utilsPrivate';
6
- import { TooltipType } from 'lightning/tooltipLibrary';
7
6
 
8
7
  const DEFAULT_BUTTON_ALT_TEXT = labelButtonAlternativeText;
9
8
  const DEFAULT_ICON_NAME = 'utility:info';
@@ -145,15 +144,4 @@ export default class LightningHelptext extends LightningShadowBaseClass {
145
144
  return '';
146
145
  }
147
146
  }
148
-
149
- /**
150
- * Set lightning-button-icon tooltips to be created with toggle events
151
- * and without the title attribute computed from alternative text (see W-12496300)
152
- * @param {*} event
153
- */
154
- handleButtonIconRegister(event) {
155
- event.stopPropagation();
156
- event.detail.setTooltipType(TooltipType.Toggle);
157
- event.detail.showTitle(false);
158
- }
159
147
  }
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);
@@ -246,7 +246,7 @@
246
246
  --sds-c-inputtext-text-color: var(--slds-c-inputtext-text-color);
247
247
  --sds-c-inputtext-font-size: var(
248
248
  --slds-c-inputtext-font-size,
249
- var(--slds-g-font-scale-neg-2)
249
+ var(--slds-g-font-size-base)
250
250
  );
251
251
  --sds-c-inputtext-text-color-placeholder: var(
252
252
  --slds-c-inputtext-text-color-placeholder,
@@ -264,7 +264,7 @@
264
264
 
265
265
  display: flex;
266
266
  flex-wrap: wrap;
267
- align-items: center;
267
+ flex-direction: column;
268
268
  }
269
269
  /**
270
270
  * Input Container
@@ -371,6 +371,10 @@
371
371
  --sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
372
372
  --sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
373
373
  }
374
+ :host([data-render-mode="shadow"][disabled]) [part='input-text'] {
375
+ --sds-c-inputtext-text-color-placeholder:
376
+ var(--slds-g-color-on-disabled-2);
377
+ }
374
378
  /**
375
379
  * Label
376
380
  *
@@ -384,10 +388,7 @@
384
388
  --slds-c-inputtext-label-color,
385
389
  var(--slds-g-color-on-surface-2)
386
390
  );
387
- font-size: var(
388
- --slds-c-inputtext-label-font-size,
389
- var(--slds-g-font-scale-neg-3)
390
- );
391
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
391
392
  margin-block-end: var(--slds-g-sizing-1);
392
393
 
393
394
  /* We inline flex to control the spacing between elements and not have to rely on whitespace characters */
@@ -46,7 +46,7 @@
46
46
  hyphens: auto;
47
47
  display: inline-block;
48
48
  color: var(--slds-g-color-on-surface-2);
49
- font-size: var(--slds-g-font-scale-neg-3);
49
+ font-size: var(--slds-s-label-font-size, var(--slds-g-font-scale-neg-2));
50
50
  padding-inline-end: var(--slds-g-spacing-2);
51
51
  padding-block-start: var(--slds-g-spacing-1);
52
52
  margin-block-end: calc(var(--slds-g-spacing-1) / 2);