lightning-base-components 1.21.2-alpha → 1.21.3-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 (222) hide show
  1. package/metadata/raptor.json +28 -1
  2. package/package.json +28 -2
  3. package/scopedImports/@salesforce-label-LightningRichTextEditor.colorPicker.js +1 -0
  4. package/src/lightning/accordion/accordion-section.slds.css +3 -3
  5. package/src/lightning/accordion/accordion.slds.css +1 -2
  6. package/src/lightning/accordionSection/accordion-section.slds.css +3 -3
  7. package/src/lightning/accordionSection/accordionSection.js +3 -1
  8. package/src/lightning/accordionSection/button.slds.css +1 -1
  9. package/src/lightning/badge/badge.js +1 -0
  10. package/src/lightning/badge/badge.js-meta.xml +3 -0
  11. package/src/lightning/baseCombobox/base-combobox.slds.css +11 -6
  12. package/src/lightning/baseCombobox/baseCombobox.html +1 -1
  13. package/src/lightning/baseCombobox/baseCombobox.js +2 -2
  14. package/src/lightning/baseCombobox/baseCombobox.js-meta.xml +6 -0
  15. package/src/lightning/baseCombobox/input-text.slds.css +41 -68
  16. package/src/lightning/baseCombobox/keyboard.js +12 -4
  17. package/src/lightning/baseCombobox/listbox.slds.css +51 -99
  18. package/src/lightning/baseCombobox/spinner.slds.css +62 -62
  19. package/src/lightning/baseComboboxFormattedText/baseComboboxFormattedText.js-meta.xml +6 -0
  20. package/src/lightning/baseComboboxItem/baseComboboxItem.js +10 -6
  21. package/src/lightning/baseComboboxItem/baseComboboxItem.js-meta.xml +6 -0
  22. package/src/lightning/baseComboboxItem/listbox.slds.css +51 -99
  23. package/src/lightning/baseFormattedText/baseFormattedText.js +2 -2
  24. package/src/lightning/button/button.js +2 -1
  25. package/src/lightning/button/button.slds.css +1 -1
  26. package/src/lightning/buttonIcon/button-icon.slds.css +1 -1
  27. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +4 -2
  28. package/src/lightning/buttonIconStateful/button-icon.slds.css +1 -1
  29. package/src/lightning/buttonIconStateful/button.slds.css +1 -1
  30. package/src/lightning/buttonMenu/button-icon.slds.css +1 -1
  31. package/src/lightning/buttonMenu/button-menu.slds.css +8 -2
  32. package/src/lightning/buttonMenu/button.slds.css +1 -1
  33. package/src/lightning/buttonStateful/button-stateful.slds.css +6 -2
  34. package/src/lightning/buttonStateful/button.slds.css +1 -1
  35. package/src/lightning/buttonStateful/buttonStateful.js +4 -1
  36. package/src/lightning/calendar/calendar.js-meta.xml +6 -0
  37. package/src/lightning/calendar/calendar.slds.css +9 -2
  38. package/src/lightning/colorPickerCustom/color-picker-custom.slds.css +22 -23
  39. package/src/lightning/colorPickerCustom/input-text.slds.css +41 -68
  40. package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +9 -10
  41. package/src/lightning/colorPickerPanel/popover.slds.css +0 -2
  42. package/src/lightning/combobox/combobox.slds.css +1 -2
  43. package/src/lightning/combobox/form-element.slds.css +54 -54
  44. package/src/lightning/datatable/__examples__/customDatatableWrapper/customDatatableWrapper.js +0 -69
  45. package/src/lightning/datatable/__examples__/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +1 -1
  46. package/src/lightning/datatable/__examples__/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.js +1 -16
  47. package/src/lightning/datatable/__examples__/customDatatypeLink/customDatatypeLink.html +3 -3
  48. package/src/lightning/datatable/__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html +1 -8
  49. package/src/lightning/datatable/__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +2 -39
  50. package/src/lightning/datatable/__examples__/customDatatypeTable/customNumber.html +1 -1
  51. package/src/lightning/datatable/__examples__/customDatatypeTable/customNumberEdit.html +2 -0
  52. package/src/lightning/datatable/__examples__/customDatatypeTable/deleteRow.html +3 -2
  53. package/src/lightning/datatable/__examples__/customDatatypeTable/iconPill.html +1 -1
  54. package/src/lightning/datatable/__examples__/customNestedComponent/customNestedComponent.html +10 -0
  55. package/src/lightning/datatable/__examples__/customNestedComponent/customNestedComponent.js +12 -0
  56. package/src/lightning/datatable/autoWidthStrategy.js +147 -191
  57. package/src/lightning/datatable/columnResizer.js +35 -35
  58. package/src/lightning/datatable/columnWidthManager.js +118 -177
  59. package/src/lightning/datatable/columns.js +90 -59
  60. package/src/lightning/datatable/datagrid.slds.css +187 -0
  61. package/src/lightning/datatable/datatable.js +248 -229
  62. package/src/lightning/datatable/errors.js +3 -0
  63. package/src/lightning/datatable/fixedWidthStrategy.js +22 -29
  64. package/src/lightning/datatable/headerActions.js +7 -9
  65. package/src/lightning/datatable/infiniteLoading.js +15 -15
  66. package/src/lightning/datatable/inlineEdit.js +255 -235
  67. package/src/lightning/datatable/keyboard.js +318 -282
  68. package/src/lightning/datatable/renderManager.js +10 -7
  69. package/src/lightning/datatable/resizeObserver.js +11 -59
  70. package/src/lightning/datatable/rowLevelActions.js +6 -5
  71. package/src/lightning/datatable/rowNumber.js +23 -23
  72. package/src/lightning/datatable/rowSelection.js +173 -145
  73. package/src/lightning/datatable/rowSelectionShared.js +13 -6
  74. package/src/lightning/datatable/rows.js +231 -196
  75. package/src/lightning/datatable/sort.js +26 -22
  76. package/src/lightning/datatable/templates/div/div.css +2 -57
  77. package/src/lightning/datatable/templates/div/div.html +13 -6
  78. package/src/lightning/datatable/templates/div/div.lbc.native.css +3 -0
  79. package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +86 -0
  80. package/src/lightning/datatable/templates/table/table.html +1 -0
  81. package/src/lightning/datatable/utils.js +5 -5
  82. package/src/lightning/datatable/widthManagerShared.js +24 -21
  83. package/src/lightning/datatable/wrapText.js +25 -26
  84. package/src/lightning/datepicker/datepicker.js +32 -9
  85. package/src/lightning/datepicker/datepicker.js-meta.xml +6 -0
  86. package/src/lightning/datepicker/form-element.slds.css +54 -54
  87. package/src/lightning/datepicker/input-text.slds.css +41 -68
  88. package/src/lightning/datetimepicker/datetimepicker.js-meta.xml +6 -0
  89. package/src/lightning/datetimepicker/form-element.slds.css +54 -54
  90. package/src/lightning/datetimepicker/input-text.slds.css +41 -68
  91. package/src/lightning/dualListbox/dual-listbox.slds.css +7 -2
  92. package/src/lightning/dualListbox/form-element.slds.css +54 -54
  93. package/src/lightning/dualListbox/listbox.slds.css +51 -99
  94. package/src/lightning/dynamicIcon/dynamic-icon-strength.slds.css +1 -2
  95. package/src/lightning/dynamicIcon/dynamic-icon-trend.slds.css +1 -2
  96. package/src/lightning/formattedDateTime/formattedDateTime.js +7 -62
  97. package/src/lightning/formattedDateTime/formattedDateTime.js-meta.xml +3 -0
  98. package/src/lightning/formattedLocation/formattedLocation.html +1 -3
  99. package/src/lightning/formattedLocation/formattedLocation.js +3 -25
  100. package/src/lightning/formattedLookup/events.js +2 -4
  101. package/src/lightning/formattedNumber/formattedNumber.js +2 -49
  102. package/src/lightning/formattedRichText/formattedRichText.js +5 -5
  103. package/src/lightning/formattedRichText/linkTextNodes.js +58 -0
  104. package/src/lightning/groupedCombobox/form-element.slds.css +54 -54
  105. package/src/lightning/groupedCombobox/grouped-combobox.slds.css +0 -2
  106. package/src/lightning/groupedCombobox/groupedCombobox.js-meta.xml +1 -1
  107. package/src/lightning/groupedCombobox/input-text.slds.css +41 -68
  108. package/src/lightning/helptext/button-icon.slds.css +1 -1
  109. package/src/lightning/helptext/form-element.slds.css +54 -54
  110. package/src/lightning/icon/icon.slds.css +12 -25
  111. package/src/lightning/input/form-element.slds.css +54 -54
  112. package/src/lightning/inputAddress/form-element.slds.css +54 -54
  113. package/src/lightning/inputAddress/input-address.slds.css +1 -2
  114. package/src/lightning/inputAddress/input-text.slds.css +41 -68
  115. package/src/lightning/inputAddress/inputAddress.js +1 -0
  116. package/src/lightning/inputAddress/inputAddress.js-meta.xml +3 -0
  117. package/src/lightning/inputLocation/form-element.slds.css +54 -54
  118. package/src/lightning/inputLocation/input-location.slds.css +1 -2
  119. package/src/lightning/inputLocation/input-text.slds.css +41 -68
  120. package/src/lightning/inputName/form-element.slds.css +54 -54
  121. package/src/lightning/inputName/input-text.slds.css +41 -68
  122. package/src/lightning/interactiveDialogBase/interactive-dialog-base.slds.css +0 -3
  123. package/src/lightning/interactiveDialogBase/interactiveDialogBase.js-meta.xml +6 -0
  124. package/src/lightning/lookupAddress/form-element.slds.css +54 -54
  125. package/src/lightning/lookupAddress/listbox.slds.css +51 -99
  126. package/src/lightning/lookupAddress/location.js +2 -0
  127. package/src/lightning/lookupAddress/lookup-address.slds.css +0 -2
  128. package/src/lightning/lookupAddress/lookupAddress.js +15 -10
  129. package/src/lightning/menuDivider/menu-divider.slds.css +0 -2
  130. package/src/lightning/menuItem/menu-item.slds.css +8 -2
  131. package/src/lightning/menuSubheader/menu-subheader.slds.css +1 -2
  132. package/src/lightning/modalBase/modal-base.slds.css +3 -3
  133. package/src/lightning/modalBase/modalBase.js +0 -8
  134. package/src/lightning/modalBase/modalBase.js-meta.xml +6 -0
  135. package/src/lightning/modalBody/modal-body.slds.css +1 -2
  136. package/src/lightning/modalFooter/modal-footer.slds.css +2 -2
  137. package/src/lightning/modalFooter/modalFooter.js +0 -21
  138. package/src/lightning/modalHeader/modal-header.slds.css +1 -2
  139. package/src/lightning/modalHeader/modalHeader.js +0 -22
  140. package/src/lightning/overlay/overlay.js-meta.xml +6 -0
  141. package/src/lightning/pill/pill.slds.css +32 -58
  142. package/src/lightning/pillContainer/button.slds.css +1 -1
  143. package/src/lightning/pillContainer/listbox.slds.css +51 -99
  144. package/src/lightning/pillContainer/pill-container.slds.css +6 -10
  145. package/src/lightning/pillContainer/pill.slds.css +32 -58
  146. package/src/lightning/popup/popover.slds.css +0 -2
  147. package/src/lightning/primitiveBubble/primitiveBubble.js-meta.xml +6 -0
  148. package/src/lightning/primitiveButton/primitiveButoon.js-meta.xml +6 -0
  149. package/src/lightning/primitiveCellCheckbox/checkbox.css +2 -0
  150. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +16 -38
  151. package/src/lightning/primitiveCustomCell/primitiveCustomCell.js +26 -1
  152. package/src/lightning/primitiveHeaderFactory/nonsortableHeader.css +1 -0
  153. package/src/lightning/primitiveHeaderFactory/selectableHeader.css +2 -0
  154. package/src/lightning/primitiveIcon/icon.slds.css +12 -25
  155. package/src/lightning/primitiveIcon/primitiveIcon.js-meta.xml +6 -0
  156. package/src/lightning/primitiveIframe/primitiveIframe.js +3 -1
  157. package/src/lightning/primitiveInputCheckbox/form-element.slds.css +54 -54
  158. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +5 -2
  159. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js-meta.xml +6 -0
  160. package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +54 -54
  161. package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +6 -4
  162. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +5 -2
  163. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js-meta.xml +6 -0
  164. package/src/lightning/primitiveInputColor/form-element.slds.css +54 -54
  165. package/src/lightning/primitiveInputColor/input-color.slds.css +2 -3
  166. package/src/lightning/primitiveInputColor/input-text.slds.css +41 -68
  167. package/src/lightning/primitiveInputColor/primitiveInputColor.js +5 -2
  168. package/src/lightning/primitiveInputColor/primitiveInputColor.js-meta.xml +6 -0
  169. package/src/lightning/primitiveInputFile/button.slds.css +1 -1
  170. package/src/lightning/primitiveInputFile/form-element.slds.css +54 -54
  171. package/src/lightning/primitiveInputFile/input-file.slds.css +1 -4
  172. package/src/lightning/primitiveInputFile/primitiveInputFile.js +4 -2
  173. package/src/lightning/primitiveInputFile/primitiveInputFile.js-meta.xml +6 -0
  174. package/src/lightning/primitiveInputRadio/primitiveInputRadio.js +4 -2
  175. package/src/lightning/primitiveInputSimple/form-element.slds.css +54 -54
  176. package/src/lightning/primitiveInputSimple/input-text.slds.css +41 -68
  177. package/src/lightning/primitiveInputSimple/primitiveInputSimple.js-meta.xml +6 -0
  178. package/src/lightning/primitiveInputToggle/form-element.slds.css +54 -54
  179. package/src/lightning/primitiveInputToggle/input-toggle.slds.css +50 -27
  180. package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +5 -2
  181. package/src/lightning/primitiveInputToggle/primitiveInputToggle.js-meta.xml +6 -0
  182. package/src/lightning/progressBar/progress-bar.slds.css +8 -10
  183. package/src/lightning/progressRing/progress-ring.slds.css +0 -23
  184. package/src/lightning/progressStep/progressStep.js +1 -14
  185. package/src/lightning/radioGroup/form-element.slds.css +54 -54
  186. package/src/lightning/radioGroup/radioGroup.html +1 -2
  187. package/src/lightning/radioGroup/radioGroup.js +1 -0
  188. package/src/lightning/routingService/routingService.js +31 -5
  189. package/src/lightning/select/form-element.slds.css +54 -54
  190. package/src/lightning/select/select.slds.css +4 -2
  191. package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.css +4 -0
  192. package/src/lightning/spinner/spinner.slds.css +62 -62
  193. package/src/lightning/tab/tab.js +4 -2
  194. package/src/lightning/tab/tab.slds.css +14 -7
  195. package/src/lightning/tabBar/tab-bar.slds.css +16 -6
  196. package/src/lightning/tabset/__docs__/tabset.md +24 -1
  197. package/src/lightning/tabset/tabset.js +25 -38
  198. package/src/lightning/tabset/tabset.slds.css +0 -2
  199. package/src/lightning/textarea/form-element.slds.css +54 -54
  200. package/src/lightning/textarea/textarea.js +5 -1
  201. package/src/lightning/textarea/textarea.slds.css +22 -9
  202. package/src/lightning/timepicker/form-element.slds.css +54 -54
  203. package/src/lightning/timepicker/timepicker.js-meta.xml +6 -0
  204. package/src/lightning/timepicker/timepicker.slds.css +2 -2
  205. package/src/lightning/toast/__docs__/toast.md +20 -22
  206. package/src/lightning/toast/button-icon.slds.css +1 -1
  207. package/src/lightning/toast/icon.slds.css +12 -25
  208. package/src/lightning/toast/toast.js +15 -12
  209. package/src/lightning/toast/toast.slds.css +6 -18
  210. package/src/lightning/toastContainer/toast.slds.css +6 -18
  211. package/src/lightning/toastContainer/toastContainer.js +25 -17
  212. package/src/lightning/tooltipLibrary/tooltipLibrary.js +12 -9
  213. package/src/lightning/tree/tree.js +2 -0
  214. package/src/lightning/utils/classSet.js +9 -3
  215. package/src/lightning/utilsPrivate/formatUtils.js +158 -0
  216. package/src/lightning/utilsPrivate/textUtils.js +16 -0
  217. package/src/lightning/utilsPrivate/utilsPrivate.js +56 -15
  218. package/src/lightning/utilsPrivate/validationUtils.js +59 -0
  219. package/src/lightning/verticalNavigationSection/vertical-navigation-section.slds.css +0 -2
  220. package/src/lightning/datatable/resizeSensor.js +0 -244
  221. package/src/lightning/formattedRichText/linkify.js +0 -43
  222. package/src/lightning/utilsPrivate/smartSetAttribute.js +0 -19
@@ -221,11 +221,10 @@
221
221
  text-transform: none !important;
222
222
  white-space: nowrap !important;
223
223
  }
224
- @supports (--styling-hooks: '') {
225
- /**
224
+ /**
226
225
  * Input Text
227
226
  */
228
- :host([data-render-mode="shadow"]) [part='input-text'] {
227
+ :host([data-render-mode="shadow"]) [part='input-text'] {
229
228
  /* Host reassignments to composed slds-icon */
230
229
  --slds-c-icon-color-foreground: var(
231
230
  --slds-c-inputtext-icon-color-foreground,
@@ -267,30 +266,25 @@
267
266
  flex-wrap: wrap;
268
267
  align-items: center;
269
268
  }
270
-
271
- /**
269
+ /**
272
270
  * Input Container
273
271
  */
274
- :host([data-render-mode="shadow"]) [part='input-container'] {
272
+ :host([data-render-mode="shadow"]) [part='input-container'] {
275
273
  flex: 1 0 100%;
276
274
  align-items: stretch;
277
275
  }
278
-
279
- :host([data-render-mode="shadow"]) [part='input-container'][type='range'] {
276
+ :host([data-render-mode="shadow"]) [part='input-container'][type='range'] {
280
277
  border: none;
281
278
  display: inline-block;
282
279
  }
283
-
284
- :host([data-render-mode="shadow"]) [part='input-container'] .slds-input__icon:not(button) {
280
+ :host([data-render-mode="shadow"]) [part='input-container'] .slds-input__icon:not(button) {
285
281
  pointer-events: none;
286
282
  }
287
-
288
- :host([data-render-mode="shadow"]) [part='input'][type='range'] {
283
+ :host([data-render-mode="shadow"]) [part='input'][type='range'] {
289
284
  min-height: calc(1.875rem + (1px * 2));
290
285
  margin: 0;
291
286
  }
292
-
293
- :host([data-render-mode="shadow"]) [part='input-container'][type='range']:focus-within,:host([data-render-mode="shadow"])
287
+ :host([data-render-mode="shadow"]) [part='input-container'][type='range']:focus-within,:host([data-render-mode="shadow"])
294
288
  [part='input-container'][type='range']:active {
295
289
  --sds-c-inputtext-color-border: var(--slds-g-color-border-accent-1);
296
290
  --sds-c-inputtext-shadow: 0 0 3px var(--slds-g-color-accent-2);
@@ -300,11 +294,10 @@
300
294
  border-width: var(--sds-c-inputtext-sizing-border, var(--slds-g-sizing-border-1));
301
295
  border-color: var(--sds-c-inputtext-color-border, var(--slds-g-color-border-2));
302
296
  }
303
-
304
- /**
297
+ /**
305
298
  * Input
306
299
  */
307
- :host([data-render-mode="shadow"]) [part='input'] {
300
+ :host([data-render-mode="shadow"]) [part='input'] {
308
301
  padding-inline-start: var(
309
302
  --slds-c-inputtext-spacing-inlinestart,
310
303
  var(--slds-g-spacing-3));
@@ -314,11 +307,10 @@
314
307
  height: unset;
315
308
  font-family: var(--slds-g-font-family);
316
309
  }
317
-
318
- /**
310
+ /**
319
311
  * Focus / active State
320
312
  */
321
- :host(:not([disabled])) [part="input-container"]:focus-within,
313
+ :host(:not([disabled])) [part="input-container"]:focus-within,
322
314
  :host(:not([disabled])) [part="input-container"]:active {
323
315
  --sds-c-inputtext-color-border: var(--slds-g-color-border-accent-1);
324
316
  --sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-2);
@@ -326,72 +318,66 @@
326
318
 
327
319
  outline: 0;
328
320
  }
329
-
330
- /**
321
+ /**
331
322
  * Read Only State
332
323
  */
333
- :host([data-render-mode="shadow"][readonly]) [part='input-text'] {
324
+ :host([data-render-mode="shadow"][readonly]) [part='input-text'] {
334
325
  --sds-c-inputtext-spacing-inline-start-readonly: 0;
335
326
  --sds-c-inputtext-color-border-focus: transparent;
336
327
  --slds-c-inputtext-color-border: transparent;
337
328
  --slds-c-inputtext-color-background: transparent;
338
329
  --slds-c-inputtext-color-background-focus: transparent;
339
330
  }
340
-
341
- :host([data-render-mode="shadow"][readonly]) [part="input-container"]:focus-within,:host([data-render-mode="shadow"][readonly]) [part="input-container"]:active {
331
+ :host([data-render-mode="shadow"][readonly]) [part="input-container"]:focus-within,:host([data-render-mode="shadow"][readonly]) [part="input-container"]:active {
342
332
  --sds-c-inputtext-color-border: var(--slds-g-color-disabled-container-2);
343
333
  --sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-1);
344
334
  --sds-c-inputtext-color-background: transparent;
345
335
 
346
336
  outline: 0;
347
337
  }
348
-
349
- /**
338
+ /**
350
339
  * Invalid State
351
340
  *
352
341
  * Does not use --sds-c-inputtext-color-border-invalid due to this hook being
353
342
  * tied to :host([aria-invalid]) which this subsystem does not use. Instead, it
354
343
  * uses :host([invalid]).
355
344
  */
356
- :host([data-render-mode="shadow"][invalid]) [part='input-text'] {
345
+ :host([data-render-mode="shadow"][invalid]) [part='input-text'] {
357
346
  --sds-c-inputtext-shadow: 0 0 0 var(--slds-g-sizing-border-1) inset
358
347
  var(--slds-g-color-error-1);
359
348
  --slds-c-inputtext-color-border: var(--slds-g-color-border-error-1);
360
349
  --slds-c-icon-color-foreground: var(--slds-g-color-error-1);
361
350
  }
362
-
363
- /**
351
+ /**
364
352
  * Invalid State - Focus
365
353
  *
366
354
  * The following styling hooks are included in SDS and need to be reassigned
367
355
  * here to prevent a bug with the focus state border and box-shadow
368
356
  */
369
- :host([data-render-mode="shadow"][invalid]) [part='input-container']:focus-within {
357
+ :host([data-render-mode="shadow"][invalid]) [part='input-container']:focus-within {
370
358
  --sds-c-inputtext-shadow:
371
359
  var(--slds-g-color-error-base-50) 0 0 0 var(--slds-g-sizing-border-1) inset,
372
360
  0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-border-error-1);
373
361
  --sds-c-inputtext-color-border: var(--slds-g-color-error-1);
374
362
  }
375
-
376
- /**
363
+ /**
377
364
  * Disabled State
378
365
  *
379
366
  * Both parts form the visible form control.
380
367
  */
381
- :host([data-render-mode="shadow"][disabled]) [part='input-container'],:host([data-render-mode="shadow"][disabled]) [part='input'] {
368
+ :host([data-render-mode="shadow"][disabled]) [part='input-container'],:host([data-render-mode="shadow"][disabled]) [part='input'] {
382
369
  cursor: not-allowed;
383
370
  --sds-c-inputtext-color-background: var(--slds-g-color-disabled-container-1);
384
371
  --sds-c-inputtext-color-border: var(--slds-g-color-border-1);
385
372
  --sds-c-inputtext-text-color: var(--slds-g-color-on-surface-1);
386
373
  }
387
-
388
- /**
374
+ /**
389
375
  * Label
390
376
  *
391
377
  * Add [part='input-text'] to increase specificity and
392
378
  * avoid collisions with other components using [part='label'] (e.g. slds-input-checkbox)
393
379
  */
394
- :host([data-render-mode="shadow"]) [part='input-text'] [part='label'] {
380
+ :host([data-render-mode="shadow"]) [part='input-text'] [part='label'] {
395
381
  padding-block-start: var(--slds-g-spacing-1);
396
382
  padding-inline-end: var(--slds-g-spacing-2);
397
383
  color: var(
@@ -407,19 +393,17 @@
407
393
  /* We inline flex to control the spacing between elements and not have to rely on whitespace characters */
408
394
  display: inline-flex;
409
395
  }
410
-
411
- /**
396
+ /**
412
397
  * Start
413
398
  *
414
399
  * Only expects an SLDS icon. We assign the SLDS Icon Styling Hook here
415
400
  * so we don't add spacing to other icons composed in the component, e.g.,
416
401
  * the icon in the inline help text.
417
402
  */
418
- :host([data-render-mode="shadow"]) [part='start'] {
403
+ :host([data-render-mode="shadow"]) [part='start'] {
419
404
  --slds-c-icon-spacing-inlineend: var(--slds-g-spacing-2);
420
405
  }
421
-
422
- /**
406
+ /**
423
407
  * Label Inline Variant
424
408
  *
425
409
  * Note: all the 33% values you see are remnants of legacy SLDS. We need to
@@ -431,7 +415,7 @@
431
415
  *
432
416
  * Ref: https://github.com/salesforce-ux/design-system-internal/blob/240-winter-23/ui/components/form-element/horizontal/_index.scss#L63
433
417
  */
434
- @media (width >= 48em) {
418
+ @media (width >= 48em) {
435
419
  :host([data-render-mode="shadow"][variant='label-inline']) [part='input-text'] {
436
420
  display: block;
437
421
  }
@@ -453,22 +437,18 @@
453
437
  padding-block-start: var(--slds-g-spacing-1);
454
438
  }
455
439
  }
456
-
457
- :host([data-render-mode="shadow"]) input[type="search"] + lightning-primitive-icon::part(icon) {
440
+ :host([data-render-mode="shadow"]) input[type="search"] + lightning-primitive-icon::part(icon) {
458
441
  left: var(--slds-g-spacing-3);
459
442
  fill: var(--slds-g-color-on-surface-1);
460
443
  }
461
-
462
- :host([data-render-mode="shadow"]) .slds-input-has-icon .slds-button_icon {
444
+ :host([data-render-mode="shadow"]) .slds-input-has-icon .slds-button_icon {
463
445
  background-color: transparent;
464
446
  }
465
-
466
- :host([data-render-mode="shadow"]) .slds-input-has-icon .slds-button_icon:focus,:host([data-render-mode="shadow"])
447
+ :host([data-render-mode="shadow"]) .slds-input-has-icon .slds-button_icon:focus,:host([data-render-mode="shadow"])
467
448
  .slds-input-has-icon .slds-button_icon:hover {
468
449
  --slds-c-icon-color-foreground: var(--slds-g-color-accent-4);
469
450
  }
470
-
471
- :host([data-render-mode="shadow"]) .slds-input-has-icon .slds-input__icon {
451
+ :host([data-render-mode="shadow"]) .slds-input-has-icon .slds-input__icon {
472
452
  width: 0.875rem;
473
453
  height: 0.875rem;
474
454
  position: absolute;
@@ -478,47 +458,41 @@
478
458
  border: 0;
479
459
  z-index: 2;
480
460
  }
481
-
482
- /**
461
+ /**
483
462
  * Has Icon Left
484
463
  */
485
- :host([data-render-mode="shadow"]) .slds-input-has-icon_left {
464
+ :host([data-render-mode="shadow"]) .slds-input-has-icon_left {
486
465
  --slds-c-inputtext-spacing-inlinestart: var(--slds-g-spacing-6);
487
466
  }
488
-
489
- :host([data-render-mode="shadow"]) .slds-input-has-icon_left .slds-input__icon,:host([data-render-mode="shadow"])
467
+ :host([data-render-mode="shadow"]) .slds-input-has-icon_left .slds-input__icon,:host([data-render-mode="shadow"])
490
468
  .slds-input-has-icon_left-right .slds-input__icon_left {
491
469
  inset-inline-start: var(--slds-g-spacing-3);
492
470
  }
493
-
494
- /**
471
+ /**
495
472
  * Has Icon Right
496
473
  */
497
- :host([data-render-mode="shadow"]) .slds-input-has-icon_right {
474
+ :host([data-render-mode="shadow"]) .slds-input-has-icon_right {
498
475
  --slds-c-inputtext-spacing-inlineend: var(--slds-g-spacing-6);
499
476
  }
500
-
501
- :host([data-render-mode="shadow"]) .slds-input-has-icon_right .slds-input__icon,:host([data-render-mode="shadow"])
477
+ :host([data-render-mode="shadow"]) .slds-input-has-icon_right .slds-input__icon,:host([data-render-mode="shadow"])
502
478
  .slds-input-has-icon_left-right .slds-input__icon_right {
503
479
  inset-inline-end: var(--slds-g-spacing-3);
504
480
  }
505
-
506
- /**
481
+ /**
507
482
  * Has Icon Left & Right
508
483
  */
509
- :host([data-render-mode="shadow"]) .slds-input-has-icon_left-right {
484
+ :host([data-render-mode="shadow"]) .slds-input-has-icon_left-right {
510
485
  --slds-c-inputtext-spacing-inlinestart: var(--slds-g-spacing-6);
511
486
  --slds-c-inputtext-spacing-inlineend: var(--slds-g-spacing-6);
512
487
  }
513
-
514
- /**
488
+ /**
515
489
  * A temporarily baked-in utility class until SLDS gets a proper utility package.
516
490
  *
517
491
  * This is a hybrid patch between synthetic and native shadow. The ideal final
518
492
  * outcome is the removal of this class and replacing the class with the SLDS
519
493
  * utility package solution.
520
494
  */
521
- :host([data-render-mode="shadow"]) .slds-assistive-text {
495
+ :host([data-render-mode="shadow"]) .slds-assistive-text {
522
496
  position: absolute !important;
523
497
  margin: -1px !important;
524
498
  border: 0 !important;
@@ -530,4 +504,3 @@
530
504
  text-transform: none !important;
531
505
  white-space: nowrap !important;
532
506
  }
533
- }
@@ -95,13 +95,21 @@ function handleUpOrDownKey({ event, currentIndex, dropdownInterface }) {
95
95
  }
96
96
  }
97
97
 
98
- function handleEscapeOrTabKey({ event, dropdownInterface }) {
98
+ function handleEscapeKey({ event, dropdownInterface }) {
99
99
  if (dropdownInterface.isDropdownVisible()) {
100
100
  event.stopPropagation();
101
101
  dropdownInterface.closeDropdown();
102
102
  }
103
103
  }
104
104
 
105
+ function handleTabKey({ event, dropdownInterface, currentIndex }) {
106
+ if (dropdownInterface.isDropdownVisible() && currentIndex >= 0) {
107
+ event.stopPropagation();
108
+ dropdownInterface.closeDropdown();
109
+ dropdownInterface.selectByIndex(currentIndex);
110
+ }
111
+ }
112
+
105
113
  function handleDeletionKeys({ event, dropdownInterface }) {
106
114
  if (dropdownInterface.shouldPreventInputDeletion()) {
107
115
  event.preventDefault();
@@ -152,9 +160,9 @@ const eventKeyToHandlerMap = {
152
160
  ArrowUp: handleUpOrDownKey,
153
161
  ArrowDown: handleUpOrDownKey,
154
162
 
155
- Esc: handleEscapeOrTabKey, // IE11/Edge specific
156
- Escape: handleEscapeOrTabKey,
157
- Tab: handleEscapeOrTabKey,
163
+ Esc: handleEscapeKey, // IE11/Edge specific
164
+ Escape: handleEscapeKey,
165
+ Tab: handleTabKey,
158
166
 
159
167
  Backspace: handleDeletionKeys,
160
168
  Delete: handleDeletionKeys,
@@ -1,89 +1,72 @@
1
1
 
2
- @supports (--styling-hooks: '') {
3
- /* Horizontal listbox - used for pill container */
2
+ /* Horizontal listbox - used for pill container */
4
3
  :host([data-render-mode="shadow"]) .slds-listbox_horizontal {
5
4
  display: inline-flex;
6
5
  flex-wrap: wrap;
7
6
  align-items: center;
8
7
  }
9
-
10
- :host([data-render-mode="shadow"]) .slds-listbox_horizontal li {
8
+ :host([data-render-mode="shadow"]) .slds-listbox_horizontal li {
11
9
  display: flex;
12
10
  }
13
-
14
11
  :host([data-render-mode="shadow"]) .slds-listbox_horizontal li+li {
15
12
  padding-inline-start: 0.125rem;
16
13
  }
17
-
18
- /* Vertical listbox */
19
- :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option:focus,:host([data-render-mode="shadow"])
14
+ /* Vertical listbox */
15
+ :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option:focus,:host([data-render-mode="shadow"])
20
16
  .slds-listbox_vertical .slds-listbox__option:hover,:host([data-render-mode="shadow"])
21
17
  .slds-listbox_vertical .slds-listbox__option.slds-has-focus {
22
18
  background-color: var(--slds-g-color-surface-container-2);
23
19
  text-decoration: none;
24
20
  }
25
-
26
- :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option[aria-disabled="true"],:host([data-render-mode="shadow"])
21
+ :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option[aria-disabled="true"],:host([data-render-mode="shadow"])
27
22
  .slds-listbox_vertical .slds-listbox__option[role="presentation"]:hover {
28
23
  background-color: transparent;
29
24
  cursor: default;
30
25
  }
31
-
32
- /* Modifies the listbox option if it contains an entity object */
33
- :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_entity {
26
+ /* Modifies the listbox option if it contains an entity object */
27
+ :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_entity {
34
28
  padding-block: var(--slds-g-spacing-1);
35
29
  padding-inline: var(--slds-g-spacing-3);
36
30
  }
37
-
38
- /* Modifies the listbox option if it contains a plain object or string */
39
- :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_plain {
31
+ /* Modifies the listbox option if it contains a plain object or string */
32
+ :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_plain {
40
33
  padding-block: var(--slds-g-spacing-2);
41
34
  padding-inline: var(--slds-g-spacing-3);
42
35
  }
43
-
44
- :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_term {
36
+ :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_term {
45
37
  padding-block: var(--slds-g-spacing-2);
46
38
  padding-inline: var(--slds-g-spacing-3);
47
39
  }
48
-
49
- /* Choosable option within listbox */
50
- :host([data-render-mode="shadow"]) .slds-listbox__option:hover {
40
+ /* Choosable option within listbox */
41
+ :host([data-render-mode="shadow"]) .slds-listbox__option:hover {
51
42
  cursor: pointer;
52
43
  }
53
-
54
- :host([data-render-mode="shadow"]) .slds-listbox__option:focus {
44
+ :host([data-render-mode="shadow"]) .slds-listbox__option:focus {
55
45
  outline: 0;
56
46
  }
57
-
58
- :host([data-render-mode="shadow"]) .slds-listbox__option[aria-disabled="true"] {
47
+ :host([data-render-mode="shadow"]) .slds-listbox__option[aria-disabled="true"] {
59
48
  color: var(--slds-g-color-disabled-2);
60
49
  }
61
-
62
- /* ------------------------------- PULL OUT FOR COMBOBOX LISTBOX-OPTION ---------------------------------------------- */
63
-
64
- /* the _vertical variations only apply to combobox's */
65
- :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_entity .slds-media__figure {
50
+ /* ------------------------------- PULL OUT FOR COMBOBOX LISTBOX-OPTION ---------------------------------------------- */
51
+ /* the _vertical variations only apply to combobox's */
52
+ :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_entity .slds-media__figure {
66
53
  margin-inline-end: var(--slds-g-spacing-2);
67
54
  }
68
-
69
- /* If the listbox option has metadata or secondary information that sits below its primary text */
70
- :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_has-meta .slds-media__figure {
55
+ /* If the listbox option has metadata or secondary information that sits below its primary text */
56
+ :host([data-render-mode="shadow"]) .slds-listbox_vertical .slds-listbox__option_has-meta .slds-media__figure {
71
57
  margin-block-start: var(--slds-g-spacing-1);
72
58
  }
73
-
74
- :host([data-render-mode="shadow"]) .slds-listbox__option .slds-truncate {
59
+ :host([data-render-mode="shadow"]) .slds-listbox__option .slds-truncate {
75
60
  display: inline-block;
76
61
  vertical-align: middle;
77
62
  }
78
-
79
- /* Header for choosable option within listbox */
80
- :host([data-render-mode="shadow"]) .slds-listbox__option-header {
63
+ /* Header for choosable option within listbox */
64
+ :host([data-render-mode="shadow"]) .slds-listbox__option-header {
81
65
  font-size: var(--slds-g-font-scale-neg-1);
82
66
  font-weight: 700;
83
67
  }
84
-
85
- /* Container for listbox option icon */
86
- :host([data-render-mode="shadow"]) .slds-listbox__option-icon {
68
+ /* Container for listbox option icon */
69
+ :host([data-render-mode="shadow"]) .slds-listbox__option-icon {
87
70
  width: var(--slds-g-sizing-7);
88
71
  display: inline-flex;
89
72
  align-content: center;
@@ -91,26 +74,21 @@
91
74
  justify-content: center;
92
75
  color: var(--slds-g-color-accent-2);
93
76
  }
94
-
95
77
  :host([data-render-mode="shadow"]) .slds-listbox__option[aria-disabled="true"] .slds-listbox__option-icon {
96
78
  color: currentcolor;
97
79
  }
98
-
99
- /* The icon within a plain listbox that indicates if an option has been selected or not. */
100
- :host([data-render-mode="shadow"]) .slds-listbox__icon-selected {
80
+ /* The icon within a plain listbox that indicates if an option has been selected or not. */
81
+ :host([data-render-mode="shadow"]) .slds-listbox__icon-selected {
101
82
  opacity: 0;
102
83
  fill: var(--slds-g-color-accent-2);
103
84
  }
104
-
105
- /* Modifier that makes selected icon visible */
106
- :host([data-render-mode="shadow"]) .slds-listbox__option.slds-is-selected .slds-listbox__icon-selected {
85
+ /* Modifier that makes selected icon visible */
86
+ :host([data-render-mode="shadow"]) .slds-listbox__option.slds-is-selected .slds-listbox__icon-selected {
107
87
  opacity: 1;
108
88
  }
109
-
110
- :host([data-render-mode="shadow"]) .slds-listbox__option.slds-is-selected .slds-listbox__option-icon {
89
+ :host([data-render-mode="shadow"]) .slds-listbox__option.slds-is-selected .slds-listbox__option-icon {
111
90
  color: var(--slds-g-color-accent-2);
112
91
  }
113
-
114
92
  /* The main text of an entity listbox */
115
93
  :host([data-render-mode="shadow"]) .slds-listbox__option-text_entity {
116
94
  max-width: 100%;
@@ -120,24 +98,18 @@
120
98
  display: block;
121
99
  margin-block-end: 0.125rem;
122
100
  }
123
-
124
- /* The metadata or secondary text of an entity listbox */
125
- :host([data-render-mode="shadow"]) .slds-listbox__option-meta {
101
+ /* The metadata or secondary text of an entity listbox */
102
+ :host([data-render-mode="shadow"]) .slds-listbox__option-meta {
126
103
  display: block;
127
104
  margin-block-start: calc(var(--slds-g-spacing-1) * -1);
128
105
  color: var(--slds-g-color-neutral-base-30);
129
106
  }
130
-
131
107
  :host([data-render-mode="shadow"]) .slds-listbox__option[aria-disabled="true"] .slds-listbox__option-meta {
132
108
  color: currentcolor;
133
109
  }
134
-
135
110
  /* -------------------- END LISTBOX OPTION CSS --------------------------------------------- */
136
-
137
- /* ---------------------PULL OUT FOR PILL CONTAINER ---------------------------------------- */
138
-
111
+ /* ---------------------PULL OUT FOR PILL CONTAINER ---------------------------------------- */
139
112
  /* The container of pill selections found inside of a combobox group */
140
-
141
113
  /* .slds-listbox_selection-group items need to be moved out to pill/pill container */
142
114
  :host([data-render-mode="shadow"]) .slds-listbox_selection-group {
143
115
  position: relative;
@@ -146,97 +118,78 @@
146
118
  height: 1.875rem;
147
119
  overflow: hidden;
148
120
  }
149
-
150
- /* Expanded state of a selection group */
151
- :host([data-render-mode="shadow"]) .slds-listbox_selection-group.slds-is-expanded {
121
+ /* Expanded state of a selection group */
122
+ :host([data-render-mode="shadow"]) .slds-listbox_selection-group.slds-is-expanded {
152
123
  height: auto;
153
124
  padding: 0;
154
125
  }
155
-
156
126
  :host([data-render-mode="shadow"]) .slds-listbox_selection-group .slds-listbox {
157
127
  padding-block-start: 0;
158
128
  padding-block-end: 0.125rem;
159
129
  padding-inline: 0;
160
130
  }
161
-
162
131
  :host([data-render-mode="shadow"]) .slds-listbox_selection-group .slds-listbox-item {
163
132
  padding-block-start: 0.125rem;
164
133
  padding-block-end: 0;
165
134
  padding-inline: 0.125rem;
166
135
  }
167
-
168
- /* Toggle button to show all of the pill selections */
169
- :host([data-render-mode="shadow"]) .slds-listbox_selection-group .slds-listbox-toggle {
136
+ /* Toggle button to show all of the pill selections */
137
+ :host([data-render-mode="shadow"]) .slds-listbox_selection-group .slds-listbox-toggle {
170
138
  position: absolute;
171
139
  top: 50%;
172
140
  transform: translateY(-50%);
173
141
  right: var(--slds-g-spacing-2);
174
142
  }
175
-
176
- :host([data-render-mode="shadow"]) .slds-listbox_selection-group .slds-listbox-toggle .slds-button {
143
+ :host([data-render-mode="shadow"]) .slds-listbox_selection-group .slds-listbox-toggle .slds-button {
177
144
  line-height: 1;
178
145
  }
179
-
180
- /* Media Object classes need to be pulled out for reusability */
181
- :host([data-render-mode="shadow"]) .slds-media {
146
+ /* Media Object classes need to be pulled out for reusability */
147
+ :host([data-render-mode="shadow"]) .slds-media {
182
148
  display: flex;
183
149
  align-items: flex-start;
184
150
  }
185
-
186
- :host([data-render-mode="shadow"]) .slds-media__figure {
151
+ :host([data-render-mode="shadow"]) .slds-media__figure {
187
152
  flex-shrink: 0;
188
153
  margin-inline-end: var(--slds-g-spacing-3);
189
154
  }
190
-
191
- :host([data-render-mode="shadow"]) .slds-media__figure_fixed-width {
155
+ :host([data-render-mode="shadow"]) .slds-media__figure_fixed-width {
192
156
  min-width: var(--slds-g-sizing-10);
193
157
  }
194
-
195
- :host([data-render-mode="shadow"]) .slds-media__body {
158
+ :host([data-render-mode="shadow"]) .slds-media__body {
196
159
  flex: 1;
197
160
  min-width: 0;
198
161
  }
199
-
200
- :host([data-render-mode="shadow"]) .slds-media__body,:host([data-render-mode="shadow"])
162
+ :host([data-render-mode="shadow"]) .slds-media__body,:host([data-render-mode="shadow"])
201
163
  .slds-media__body> :last-child {
202
164
  margin-block-end: 0;
203
165
  }
204
-
205
- :host([data-render-mode="shadow"]) .slds-media-body-iefix {
166
+ :host([data-render-mode="shadow"]) .slds-media-body-iefix {
206
167
  flex-shrink: 0;
207
168
  flex-basis: auto;
208
169
  }
209
-
210
- :host([data-render-mode="shadow"]) .slds-media_small .slds-media__figure {
170
+ :host([data-render-mode="shadow"]) .slds-media_small .slds-media__figure {
211
171
  margin-inline-end: var(--slds-g-spacing-1);
212
172
  }
213
-
214
- :host([data-render-mode="shadow"]) .slds-media_small .slds-media__figure_reverse {
173
+ :host([data-render-mode="shadow"]) .slds-media_small .slds-media__figure_reverse {
215
174
  margin-inline-start: var(--slds-g-spacing-1);
216
175
  }
217
-
218
- :host([data-render-mode="shadow"]) .slds-media_large .slds-media__figure {
176
+ :host([data-render-mode="shadow"]) .slds-media_large .slds-media__figure {
219
177
  margin-inline-end: var(--slds-g-spacing-5);
220
178
  }
221
-
222
- :host([data-render-mode="shadow"]) .slds-media_large .slds-media__figure_reverse {
179
+ :host([data-render-mode="shadow"]) .slds-media_large .slds-media__figure_reverse {
223
180
  margin-inline-start: var(--slds-g-spacing-5);
224
181
  }
225
-
226
- :host([data-render-mode="shadow"]) .slds-media_inline .slds-media__body {
182
+ :host([data-render-mode="shadow"]) .slds-media_inline .slds-media__body {
227
183
  flex: 0 1 auto;
228
184
  }
229
-
230
- :host([data-render-mode="shadow"]) .slds-media_center {
185
+ :host([data-render-mode="shadow"]) .slds-media_center {
231
186
  align-items: center;
232
187
  }
233
-
234
- :host([data-render-mode="shadow"]) .slds-media__figure_reverse {
188
+ :host([data-render-mode="shadow"]) .slds-media__figure_reverse {
235
189
  margin-block: 0;
236
190
  margin-inline-start: var(--slds-g-spacing-3);
237
191
  margin-inline-end: 0;
238
192
  }
239
-
240
193
  @media (width <= 48em) {
241
194
 
242
195
  :host([data-render-mode="shadow"]) .slds-media_responsive {
@@ -249,4 +202,3 @@
249
202
  margin-inline-end: 0;
250
203
  }
251
204
  }
252
- }