lightning-base-components 1.21.2-alpha → 1.21.4-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 (357) hide show
  1. package/metadata/raptor.json +77 -1
  2. package/package.json +108 -15
  3. package/scopedImports/@salesforce-label-LightningDatatable.showActions.js +1 -1
  4. package/scopedImports/@salesforce-label-LightningForm.controllerFieldsMessage.js +1 -0
  5. package/scopedImports/@salesforce-label-LightningForm.dependentFieldsHeader.js +1 -0
  6. package/scopedImports/@salesforce-label-LightningForm.dependentFieldsListHeading.js +1 -0
  7. package/scopedImports/@salesforce-label-LightningForm.generalDependentFieldsMessage.js +1 -0
  8. package/scopedImports/@salesforce-label-LightningForm.learnMore.js +1 -0
  9. package/scopedImports/@salesforce-label-LightningForm.okButton.js +1 -0
  10. package/scopedImports/@salesforce-label-LightningLookup.modalCancel.js +1 -0
  11. package/scopedImports/@salesforce-label-LightningLookup.modalSelect.js +1 -0
  12. package/scopedImports/@salesforce-label-LightningProgressIndicator.currentStage.js +1 -1
  13. package/scopedImports/@salesforce-label-LightningProgressIndicator.errorStage.js +1 -0
  14. package/scopedImports/@salesforce-label-LightningProgressIndicator.stageComplete.js +1 -1
  15. package/scopedImports/@salesforce-label-LightningProgressIndicator.stageNotStarted.js +1 -1
  16. package/scopedImports/@salesforce-label-LightningRichTextEditor.colorPicker.js +1 -0
  17. package/src/lightning/accordion/accordion-section.slds.css +3 -3
  18. package/src/lightning/accordion/accordion.slds.css +1 -2
  19. package/src/lightning/accordionSection/accordion-section.slds.css +3 -3
  20. package/src/lightning/accordionSection/accordionSection.js +3 -1
  21. package/src/lightning/accordionSection/button.slds.css +1 -1
  22. package/src/lightning/avatar/avatar.html +1 -0
  23. package/src/lightning/badge/badge.html +3 -3
  24. package/src/lightning/badge/badge.js +1 -0
  25. package/src/lightning/badge/badge.js-meta.xml +3 -0
  26. package/src/lightning/baseCombobox/base-combobox.slds.css +11 -6
  27. package/src/lightning/baseCombobox/baseCombobox.html +5 -2
  28. package/src/lightning/baseCombobox/baseCombobox.js +5 -18
  29. package/src/lightning/baseCombobox/baseCombobox.js-meta.xml +6 -0
  30. package/src/lightning/baseCombobox/input-text.slds.css +41 -68
  31. package/src/lightning/baseCombobox/keyboard.js +12 -4
  32. package/src/lightning/baseCombobox/listbox.slds.css +51 -99
  33. package/src/lightning/baseCombobox/spinner.slds.css +62 -62
  34. package/src/lightning/baseComboboxFormattedText/baseComboboxFormattedText.js-meta.xml +6 -0
  35. package/src/lightning/baseComboboxItem/baseComboboxItem.js +10 -6
  36. package/src/lightning/baseComboboxItem/baseComboboxItem.js-meta.xml +6 -0
  37. package/src/lightning/baseComboboxItem/listbox.slds.css +51 -99
  38. package/src/lightning/baseFormattedText/baseFormattedText.js +2 -2
  39. package/src/lightning/button/__docs__/button.md +2 -1
  40. package/src/lightning/button/button.js +5 -5
  41. package/src/lightning/button/button.slds.css +1 -1
  42. package/src/lightning/buttonIcon/__docs__/buttonIcon.md +1 -0
  43. package/src/lightning/buttonIcon/button-icon.slds.css +1 -1
  44. package/src/lightning/buttonIcon/buttonIcon.html +1 -1
  45. package/src/lightning/buttonIcon/buttonIcon.js +18 -17
  46. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +4 -2
  47. package/src/lightning/buttonIconStateful/button-icon.slds.css +1 -1
  48. package/src/lightning/buttonIconStateful/button.slds.css +1 -1
  49. package/src/lightning/buttonMenu/button-icon.slds.css +1 -1
  50. package/src/lightning/buttonMenu/button-menu.slds.css +8 -2
  51. package/src/lightning/buttonMenu/button.slds.css +1 -1
  52. package/src/lightning/buttonMenu/buttonMenu.css +5 -0
  53. package/src/lightning/buttonMenu/buttonMenu.js +2 -0
  54. package/src/lightning/buttonStateful/button-stateful.slds.css +6 -2
  55. package/src/lightning/buttonStateful/button.slds.css +1 -1
  56. package/src/lightning/buttonStateful/buttonStateful.js +4 -1
  57. package/src/lightning/calendar/calendar.js-meta.xml +6 -0
  58. package/src/lightning/calendar/calendar.slds.css +9 -2
  59. package/src/lightning/colorPickerCustom/color-picker-custom.slds.css +22 -23
  60. package/src/lightning/colorPickerCustom/colorPickerCustom.js +12 -0
  61. package/src/lightning/colorPickerCustom/input-text.slds.css +41 -68
  62. package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +9 -10
  63. package/src/lightning/colorPickerPanel/colorPickerPanel.js +11 -1
  64. package/src/lightning/colorPickerPanel/popover.slds.css +0 -2
  65. package/src/lightning/combobox/combobox.html +1 -0
  66. package/src/lightning/combobox/combobox.slds.css +1 -2
  67. package/src/lightning/combobox/form-element.slds.css +54 -54
  68. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.html +11 -0
  69. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.js +25 -0
  70. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/generateData.js +15 -0
  71. package/src/lightning/datatable/__examples__disabled/customDatatableWrapper/customDatatableWrapper.js +89 -0
  72. package/src/lightning/datatable/__examples__disabled/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +6 -0
  73. package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.js +1 -16
  74. package/src/lightning/datatable/__examples__disabled/customDatatypeLink/customDatatypeLink.html +9 -0
  75. package/src/lightning/datatable/__examples__disabled/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html +3 -0
  76. package/src/lightning/datatable/__examples__disabled/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +3 -0
  77. package/src/lightning/datatable/__examples__disabled/customDatatypeTable/customNumber.html +3 -0
  78. package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customNumberEdit.html +2 -0
  79. package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/deleteRow.html +3 -2
  80. package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/iconPill.html +1 -1
  81. package/src/lightning/datatable/{__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html → __examples__disabled/customNestedComponent/customNestedComponent.html} +2 -2
  82. package/src/lightning/datatable/__examples__disabled/customNestedComponent/customNestedComponent.js +12 -0
  83. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/customInput.html +4 -0
  84. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/myCustomTypeDatatable.js +17 -0
  85. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/nestedSimpleComponentParent.html +7 -0
  86. package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.html +9 -0
  87. package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.js +6 -0
  88. package/src/lightning/datatable/autoWidthStrategy.js +145 -217
  89. package/src/lightning/datatable/columnResizer.js +80 -190
  90. package/src/lightning/datatable/columnWidthManager.js +128 -243
  91. package/src/lightning/datatable/columns.js +192 -283
  92. package/src/lightning/datatable/datagrid.slds.css +187 -0
  93. package/src/lightning/datatable/datatable.js +647 -614
  94. package/src/lightning/datatable/errors.js +19 -28
  95. package/src/lightning/datatable/fixedWidthStrategy.js +27 -49
  96. package/src/lightning/datatable/headerActions.js +10 -42
  97. package/src/lightning/datatable/indexes.js +42 -0
  98. package/src/lightning/datatable/infiniteLoading.js +27 -46
  99. package/src/lightning/datatable/inlineEdit.js +311 -322
  100. package/src/lightning/datatable/keyboard.js +490 -510
  101. package/src/lightning/datatable/renderManager.js +10 -11
  102. package/src/lightning/datatable/resizeObserver.js +10 -67
  103. package/src/lightning/datatable/rowLevelActions.js +7 -6
  104. package/src/lightning/datatable/rowNumber.js +41 -79
  105. package/src/lightning/datatable/rowSelection.js +236 -291
  106. package/src/lightning/datatable/rowSelectionShared.js +26 -33
  107. package/src/lightning/datatable/rows.js +264 -476
  108. package/src/lightning/datatable/sort.js +27 -82
  109. package/src/lightning/datatable/templates/div/div.css +2 -57
  110. package/src/lightning/datatable/templates/div/div.html +25 -10
  111. package/src/lightning/datatable/templates/div/div.lbc.native.css +3 -0
  112. package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +80 -0
  113. package/src/lightning/datatable/templates/table/table.html +16 -5
  114. package/src/lightning/datatable/tree.js +17 -35
  115. package/src/lightning/datatable/types.js +10 -31
  116. package/src/lightning/datatable/utils.js +54 -29
  117. package/src/lightning/datatable/virtualization.js +2 -5
  118. package/src/lightning/datatable/widthManagerShared.js +24 -41
  119. package/src/lightning/datatable/wrapText.js +45 -77
  120. package/src/lightning/datepicker/datepicker.js +32 -9
  121. package/src/lightning/datepicker/datepicker.js-meta.xml +6 -0
  122. package/src/lightning/datepicker/form-element.slds.css +54 -54
  123. package/src/lightning/datepicker/input-text.slds.css +41 -68
  124. package/src/lightning/datetimepicker/datetimepicker.js-meta.xml +6 -0
  125. package/src/lightning/datetimepicker/form-element.slds.css +54 -54
  126. package/src/lightning/datetimepicker/input-text.slds.css +41 -68
  127. package/src/lightning/dualListbox/dual-listbox.slds.css +7 -2
  128. package/src/lightning/dualListbox/dualListbox.js +7 -8
  129. package/src/lightning/dualListbox/form-element.slds.css +54 -54
  130. package/src/lightning/dualListbox/listbox.slds.css +51 -99
  131. package/src/lightning/dynamicIcon/dynamic-icon-strength.slds.css +1 -2
  132. package/src/lightning/dynamicIcon/dynamic-icon-trend.slds.css +1 -2
  133. package/src/lightning/formattedDateTime/formattedDateTime.js +7 -62
  134. package/src/lightning/formattedDateTime/formattedDateTime.js-meta.xml +3 -0
  135. package/src/lightning/formattedLocation/formattedLocation.html +1 -3
  136. package/src/lightning/formattedLocation/formattedLocation.js +3 -25
  137. package/src/lightning/formattedLookup/events.js +2 -4
  138. package/src/lightning/formattedName/formattedName.js +3 -2
  139. package/src/lightning/formattedName/formattedName.js-meta.xml +3 -0
  140. package/src/lightning/formattedNumber/formattedNumber.js +5 -51
  141. package/src/lightning/formattedNumber/formattedNumber.js-meta.xml +3 -0
  142. package/src/lightning/formattedRichText/formattedRichText.js +5 -5
  143. package/src/lightning/formattedRichText/linkTextNodes.js +58 -0
  144. package/src/lightning/formattedRichText/richTextConfig.js +1 -0
  145. package/src/lightning/groupedCombobox/form-element.slds.css +54 -54
  146. package/src/lightning/groupedCombobox/grouped-combobox.slds.css +0 -2
  147. package/src/lightning/groupedCombobox/groupedCombobox.js-meta.xml +1 -1
  148. package/src/lightning/groupedCombobox/input-text.slds.css +41 -68
  149. package/src/lightning/helptext/button-icon.slds.css +1 -1
  150. package/src/lightning/helptext/form-element.slds.css +54 -54
  151. package/src/lightning/helptext/helptext.css +7 -0
  152. package/src/lightning/helptext/helptext.js +3 -4
  153. package/src/lightning/icon/icon.html +1 -1
  154. package/src/lightning/icon/icon.slds.css +12 -25
  155. package/src/lightning/input/form-element.slds.css +54 -54
  156. package/src/lightning/input/input.html +5 -0
  157. package/src/lightning/inputAddress/addressFormat.js +31 -4
  158. package/src/lightning/inputAddress/fieldsLayout.js +6 -0
  159. package/src/lightning/inputAddress/form-element.slds.css +54 -54
  160. package/src/lightning/inputAddress/input-address.slds.css +1 -2
  161. package/src/lightning/inputAddress/input-text.slds.css +41 -68
  162. package/src/lightning/inputAddress/inputAddress.html +19 -1
  163. package/src/lightning/inputAddress/inputAddress.js +75 -3
  164. package/src/lightning/inputAddress/inputAddress.js-meta.xml +3 -0
  165. package/src/lightning/inputLocation/form-element.slds.css +54 -54
  166. package/src/lightning/inputLocation/input-location.slds.css +1 -2
  167. package/src/lightning/inputLocation/input-text.slds.css +41 -68
  168. package/src/lightning/inputName/form-element.slds.css +54 -54
  169. package/src/lightning/inputName/input-text.slds.css +41 -68
  170. package/src/lightning/interactiveDialogBase/interactive-dialog-base.slds.css +0 -3
  171. package/src/lightning/interactiveDialogBase/interactiveDialogBase.js-meta.xml +6 -0
  172. package/src/lightning/internationalizationLibrary/address/AddressFormat.js +553 -610
  173. package/src/lightning/lookupAddress/form-element.slds.css +54 -54
  174. package/src/lightning/lookupAddress/listbox.slds.css +51 -99
  175. package/src/lightning/lookupAddress/location.js +2 -0
  176. package/src/lightning/lookupAddress/lookup-address.slds.css +0 -2
  177. package/src/lightning/lookupAddress/lookupAddress.html +6 -1
  178. package/src/lightning/lookupAddress/lookupAddress.js +40 -10
  179. package/src/lightning/menuDivider/menu-divider.slds.css +0 -2
  180. package/src/lightning/menuItem/menu-item.slds.css +8 -2
  181. package/src/lightning/menuSubheader/menu-subheader.slds.css +1 -2
  182. package/src/lightning/modal/__docs__/modal.md +10 -1
  183. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +3 -7
  184. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +39 -133
  185. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +1 -1
  186. package/src/lightning/modal/modal.js +1 -1
  187. package/src/lightning/modalBase/modal-base.slds.css +3 -3
  188. package/src/lightning/modalBase/modalBase.html +15 -10
  189. package/src/lightning/modalBase/modalBase.js +131 -154
  190. package/src/lightning/modalBase/modalBase.js-meta.xml +6 -0
  191. package/src/lightning/modalBody/modal-body.slds.css +1 -2
  192. package/src/lightning/modalBody/modalBody.css +6 -0
  193. package/src/lightning/modalFooter/modal-footer.slds.css +2 -2
  194. package/src/lightning/modalFooter/modalFooter.js +0 -21
  195. package/src/lightning/modalHeader/modal-header.slds.css +1 -2
  196. package/src/lightning/modalHeader/modalHeader.html +16 -4
  197. package/src/lightning/modalHeader/modalHeader.js +61 -36
  198. package/src/lightning/overlay/overlay.js-meta.xml +6 -0
  199. package/src/lightning/pill/link.html +1 -0
  200. package/src/lightning/pill/pill.slds.css +32 -58
  201. package/src/lightning/pill/plain.html +1 -0
  202. package/src/lightning/pill/plainLink.html +1 -0
  203. package/src/lightning/pillContainer/button.slds.css +1 -1
  204. package/src/lightning/pillContainer/listbox.slds.css +51 -99
  205. package/src/lightning/pillContainer/pill-container.slds.css +6 -10
  206. package/src/lightning/pillContainer/pill.slds.css +32 -58
  207. package/src/lightning/popup/popover.slds.css +0 -2
  208. package/src/lightning/primitiveBubble/primitiveBubble.js +42 -0
  209. package/src/lightning/primitiveBubble/primitiveBubble.js-meta.xml +6 -0
  210. package/src/lightning/primitiveButton/primitiveButoon.js-meta.xml +6 -0
  211. package/src/lightning/primitiveCellCheckbox/checkbox.css +2 -0
  212. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +16 -38
  213. package/src/lightning/primitiveCustomCell/primitiveCustomCell.js +26 -1
  214. package/src/lightning/primitiveDatatableCell/primitiveDatatableCell.js +1 -1
  215. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.html +1 -1
  216. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.js +13 -0
  217. package/src/lightning/primitiveHeaderFactory/nonsortableHeader.css +1 -0
  218. package/src/lightning/primitiveHeaderFactory/nonsortableHeader.html +19 -6
  219. package/src/lightning/primitiveHeaderFactory/selectableHeader.css +2 -0
  220. package/src/lightning/primitiveHeaderFactory/sortableHeader.html +3 -1
  221. package/src/lightning/primitiveIcon/icon.slds.css +12 -25
  222. package/src/lightning/primitiveIcon/primitiveIcon.js-meta.xml +6 -0
  223. package/src/lightning/primitiveIframe/primitiveIframe.js +3 -1
  224. package/src/lightning/primitiveInputCheckbox/form-element.slds.css +54 -54
  225. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +5 -2
  226. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js-meta.xml +6 -0
  227. package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +54 -54
  228. package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +6 -4
  229. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +5 -2
  230. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js-meta.xml +6 -0
  231. package/src/lightning/primitiveInputColor/form-element.slds.css +54 -54
  232. package/src/lightning/primitiveInputColor/input-color.slds.css +2 -3
  233. package/src/lightning/primitiveInputColor/input-text.slds.css +41 -68
  234. package/src/lightning/primitiveInputColor/primitiveInputColor.js +5 -2
  235. package/src/lightning/primitiveInputColor/primitiveInputColor.js-meta.xml +6 -0
  236. package/src/lightning/primitiveInputFile/button.slds.css +1 -1
  237. package/src/lightning/primitiveInputFile/form-element.slds.css +54 -54
  238. package/src/lightning/primitiveInputFile/input-file.slds.css +1 -4
  239. package/src/lightning/primitiveInputFile/primitiveInputFile.js +4 -2
  240. package/src/lightning/primitiveInputFile/primitiveInputFile.js-meta.xml +6 -0
  241. package/src/lightning/primitiveInputRadio/primitiveInputRadio.js +4 -2
  242. package/src/lightning/primitiveInputSimple/form-element.slds.css +54 -54
  243. package/src/lightning/primitiveInputSimple/input-text.slds.css +41 -68
  244. package/src/lightning/primitiveInputSimple/primitiveInputSimple.js-meta.xml +6 -0
  245. package/src/lightning/primitiveInputToggle/form-element.slds.css +54 -54
  246. package/src/lightning/primitiveInputToggle/input-toggle.slds.css +50 -27
  247. package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +5 -2
  248. package/src/lightning/primitiveInputToggle/primitiveInputToggle.js-meta.xml +6 -0
  249. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.css +11 -0
  250. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.html +2 -1
  251. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.js +1 -0
  252. package/src/lightning/progressBar/progress-bar.slds.css +8 -10
  253. package/src/lightning/progressRing/progress-ring.slds.css +0 -23
  254. package/src/lightning/progressStep/base.html +5 -6
  255. package/src/lightning/progressStep/progressStep.js +15 -23
  256. package/src/lightning/prompt/__docs__/prompt.md +1 -1
  257. package/src/lightning/radioGroup/form-element.slds.css +54 -54
  258. package/src/lightning/radioGroup/radioGroup.html +1 -2
  259. package/src/lightning/radioGroup/radioGroup.js +1 -0
  260. package/src/lightning/routingService/routingService.js +31 -5
  261. package/src/lightning/select/form-element.slds.css +54 -54
  262. package/src/lightning/select/select.slds.css +4 -2
  263. package/src/lightning/shadowBaseClassPrivate/shadowBaseClassPrivate.js +0 -2
  264. package/src/lightning/sldsCommon/sldsCommon.css +134 -98
  265. package/src/lightning/sldsUtilsAlignment/sldsUtilsAlignment.css +1 -1
  266. package/src/lightning/sldsUtilsBox/sldsUtilsBox.css +14 -13
  267. package/src/lightning/sldsUtilsGrid/sldsUtilsGrid.css +95 -92
  268. package/src/lightning/sldsUtilsHyphenation/sldsUtilsHyphenation.css +1 -1
  269. package/src/lightning/sldsUtilsMargin/sldsUtilsMargin.css +77 -75
  270. package/src/lightning/sldsUtilsPadding/sldsUtilsPadding.css +73 -73
  271. package/src/lightning/sldsUtilsSizing/sldsUtilsSizing.css +552 -558
  272. package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.css +5 -1
  273. package/src/lightning/spinner/spinner.slds.css +62 -62
  274. package/src/lightning/staticMap/staticMap.js +3 -2
  275. package/src/lightning/tab/tab.js +10 -5
  276. package/src/lightning/tab/tab.js-meta.xml +3 -0
  277. package/src/lightning/tab/tab.slds.css +14 -7
  278. package/src/lightning/tabBar/tab-bar.slds.css +16 -6
  279. package/src/lightning/tabBar/tabBar.js +10 -5
  280. package/src/lightning/tabset/__docs__/tabset.md +24 -1
  281. package/src/lightning/tabset/tabset.html +2 -0
  282. package/src/lightning/tabset/tabset.js +25 -38
  283. package/src/lightning/tabset/tabset.js-meta.xml +3 -0
  284. package/src/lightning/tabset/tabset.slds.css +0 -2
  285. package/src/lightning/textarea/form-element.slds.css +54 -54
  286. package/src/lightning/textarea/textarea.js +11 -2
  287. package/src/lightning/textarea/textarea.slds.css +22 -9
  288. package/src/lightning/timepicker/form-element.slds.css +54 -54
  289. package/src/lightning/timepicker/timepicker.js-meta.xml +6 -0
  290. package/src/lightning/timepicker/timepicker.slds.css +2 -2
  291. package/src/lightning/toast/__docs__/toast.md +20 -22
  292. package/src/lightning/toast/button-icon.slds.css +1 -1
  293. package/src/lightning/toast/icon.slds.css +12 -25
  294. package/src/lightning/toast/toast.js +15 -12
  295. package/src/lightning/toast/toast.slds.css +6 -18
  296. package/src/lightning/toastContainer/__docs__/toastContainer.md +3 -2
  297. package/src/lightning/toastContainer/toast.slds.css +6 -18
  298. package/src/lightning/toastContainer/toastContainer.js +25 -17
  299. package/src/lightning/tooltipLibrary/tooltipLibrary.js +36 -24
  300. package/src/lightning/tree/tree.js +2 -0
  301. package/src/lightning/utils/classSet.js +9 -3
  302. package/src/lightning/utilsPrivate/formatUtils.js +158 -0
  303. package/src/lightning/utilsPrivate/textUtils.js +16 -0
  304. package/src/lightning/utilsPrivate/utilsPrivate.js +56 -15
  305. package/src/lightning/utilsPrivate/validationUtils.js +59 -0
  306. package/src/lightning/verticalNavigation/vertical-navigation.slds.css +14 -0
  307. package/src/lightning/verticalNavigation/verticalNavigation.css +1 -1
  308. package/src/lightning/verticalNavigation/verticalNavigation.html +1 -1
  309. package/src/lightning/verticalNavigation/verticalNavigation.js +66 -28
  310. package/src/lightning/verticalNavigation/verticalNavigation.js-meta.xml +3 -0
  311. package/src/lightning/verticalNavigationItem/vertical-navigation-item.slds.css +63 -0
  312. package/src/lightning/verticalNavigationItem/verticalNavigationItem.css +2 -3
  313. package/src/lightning/verticalNavigationItem/verticalNavigationItem.js +29 -15
  314. package/src/lightning/verticalNavigationItem/verticalNavigationItem.js-meta.xml +3 -0
  315. package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.native.css +2 -0
  316. package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.synthetic.css +3 -0
  317. package/src/lightning/verticalNavigationItemBadge/badge.slds.css +76 -0
  318. package/src/lightning/verticalNavigationItemBadge/vertical-navigation-item.slds.css +63 -0
  319. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.css +2 -3
  320. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.html +1 -1
  321. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js +28 -15
  322. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js-meta.xml +3 -0
  323. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.native.css +5 -0
  324. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.synthetic.css +3 -0
  325. package/src/lightning/verticalNavigationItemIcon/vertical-navigation-item.slds.css +63 -0
  326. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.css +2 -3
  327. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js +29 -15
  328. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js-meta.xml +3 -0
  329. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.native.css +3 -0
  330. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.synthetic.css +3 -0
  331. package/src/lightning/verticalNavigationOverflow/button.slds.css +503 -0
  332. package/src/lightning/verticalNavigationOverflow/vertical-navigation-item.slds.css +63 -0
  333. package/src/lightning/verticalNavigationOverflow/vertical-navigation-section.slds.css +17 -0
  334. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.css +2 -1
  335. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.html +2 -0
  336. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js +18 -13
  337. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js-meta.xml +3 -0
  338. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.lbc.native.css +5 -0
  339. package/src/lightning/verticalNavigationSection/vertical-navigation-section.slds.css +13 -15
  340. package/src/lightning/verticalNavigationSection/verticalNavigationSection.js-meta.xml +3 -0
  341. package/src/lightning/datatable/__examples__/customDatatableWrapper/customDatatableWrapper.js +0 -158
  342. package/src/lightning/datatable/__examples__/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +0 -6
  343. package/src/lightning/datatable/__examples__/customDatatypeLink/customDatatypeLink.html +0 -9
  344. package/src/lightning/datatable/__examples__/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +0 -40
  345. package/src/lightning/datatable/__examples__/customDatatypeTable/customNumber.html +0 -3
  346. package/src/lightning/datatable/inlineEditShared.js +0 -26
  347. package/src/lightning/datatable/resizeSensor.js +0 -244
  348. package/src/lightning/formattedRichText/linkify.js +0 -43
  349. package/src/lightning/utilsPrivate/smartSetAttribute.js +0 -19
  350. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatableWrapper/customDatatableWrapper.html +0 -0
  351. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeLink/customDatatypeLink.js +0 -0
  352. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.html +0 -0
  353. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.js +0 -0
  354. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customDatatypeTable.js +0 -0
  355. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customLink.html +0 -0
  356. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customName.html +0 -0
  357. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/orderingButtons.html +0 -0
@@ -3,4 +3,7 @@
3
3
  <isExposed>true</isExposed>
4
4
  <minApiVersion>0.0</minApiVersion>
5
5
  <support>GA</support>
6
+ <capabilities>
7
+ <capability>lightning__ServerRenderableWithHydration</capability>
8
+ </capabilities>
6
9
  </LightningComponentBundle>
@@ -2,10 +2,10 @@
2
2
  /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
3
3
  Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
4
4
 
5
- @supports (--styling-hooks: '') {
6
5
  /**
7
6
  * Combobox
8
7
  */
8
+
9
9
  :host([data-render-mode="shadow"]) .slds-combobox {
10
10
  position: static;
11
11
  display: flex;
@@ -16,6 +16,7 @@
16
16
  /**
17
17
  * Combobox Container
18
18
  */
19
+
19
20
  :host([data-render-mode="shadow"]) .slds-combobox_container {
20
21
  display: flex;
21
22
  flex-direction: column;
@@ -25,6 +26,7 @@
25
26
  /**
26
27
  * Faux Input
27
28
  */
29
+
28
30
  :host([data-render-mode="shadow"]) .slds-input_faux {
29
31
  padding-block-start: 0;
30
32
  padding-block-end: 0;
@@ -74,7 +76,8 @@
74
76
  /**
75
77
  * Combobox Focus State: When rendering `button` instead of `input`
76
78
  */
77
- :host([data-render-mode="shadow"]) .slds-input_faux:focus-within {
79
+
80
+ :host([data-render-mode="shadow"]) .slds-input_faux:focus-within {
78
81
  border-color: var(--slds-g-color-brand-base-60);
79
82
  box-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-1);
80
83
  }
@@ -82,6 +85,7 @@
82
85
  /**
83
86
  * Has Icon
84
87
  */
88
+
85
89
  :host([data-render-mode="shadow"]) .slds-input-has-icon {
86
90
  position: relative;
87
91
  }
@@ -103,6 +107,7 @@
103
107
  }
104
108
 
105
109
  /* Icon Left */
110
+
106
111
  :host([data-render-mode="shadow"]) .slds-input-has-icon_left .slds-input__icon {
107
112
  inset-inline-start: var(--slds-g-spacing-3);
108
113
  }
@@ -112,6 +117,7 @@
112
117
  }
113
118
 
114
119
  /* Icon Right */
120
+
115
121
  :host([data-render-mode="shadow"]) .slds-input-has-icon_right .slds-input__icon {
116
122
  inset-inline-end: var(--slds-g-spacing-3);
117
123
  }
@@ -123,6 +129,7 @@
123
129
  /**
124
130
  * Has Icon Group
125
131
  */
132
+
126
133
  :host([data-render-mode="shadow"]) .slds-input__icon-group {
127
134
  position: absolute;
128
135
  height: var(--slds-g-sizing-5);
@@ -146,11 +153,11 @@
146
153
  }
147
154
 
148
155
  :host([data-render-mode="shadow"]) .slds-p-top_medium {
149
- padding-top: var(--slds-g-spacing-4)
156
+ padding-top: var(--slds-g-spacing-4);
150
157
  }
151
158
 
152
159
  :host([data-render-mode="shadow"]) .slds-p-bottom_medium {
153
- padding-bottom: var(--slds-g-spacing-4)
160
+ padding-bottom: var(--slds-g-spacing-4);
154
161
  }
155
162
 
156
163
  :host([data-render-mode="shadow"]) .slds-spinner_inline {
@@ -180,7 +187,6 @@
180
187
  color: var(--slds-g-color-on-surface-1);
181
188
  }
182
189
 
183
-
184
190
  :host([data-render-mode="shadow"][data-filter-on]) [part="input-container"] {
185
191
  border-start-end-radius: var(--slds-g-sizing-border-4);
186
192
  border-end-end-radius: var(--slds-g-sizing-border-4);
@@ -227,4 +233,3 @@
227
233
  var(--slds-g-color-brand-base-60);
228
234
  --sds-c-inputtext-shadow: none;
229
235
  }
230
- }
@@ -29,6 +29,7 @@
29
29
  placeholder={computedPlaceholder}
30
30
  maxlength={inputMaxlength}
31
31
  disabled={disabled}
32
+ aria-disabled={disabled}
32
33
  aria-readonly={_inputAriaReadOnly}
33
34
  aria-autocomplete={computedAriaAutocomplete}
34
35
  aria-owns="dropdown-element"
@@ -54,7 +55,8 @@
54
55
  role={customRole}
55
56
  data-value={computedInputValue}
56
57
  disabled={disabled}
57
- aria-label={computedButtonTriggerAriaLabel}
58
+ aria-disabled={disabled}
59
+ aria-label={inputLabel}
58
60
  aria-required={required}
59
61
  onfocus={handleFocus}
60
62
  onkeydown={handleInputKeyDown}
@@ -115,6 +117,7 @@
115
117
  item={item}
116
118
  id={item.id}
117
119
  data-item-id={item.id}
120
+ exportparts="option"
118
121
  aria-checked={item.checked}
119
122
  key={item.value}
120
123
  data-value={item.value}
@@ -149,7 +152,7 @@
149
152
  </template>
150
153
  </template>
151
154
  <template if:true={showDropdownActivityIndicator}>
152
- <div role="presentation" class="slds-listbox__item slds-spinner_inline">
155
+ <div role="option" class="slds-listbox__item slds-spinner_inline">
153
156
  <div class="slds-align_absolute-center slds-p-top_medium slds-p-bottom_medium">
154
157
  <lightning-spinner size="x-small" alternative-text={i18n.loadingText}></lightning-spinner>
155
158
  </div>
@@ -5,10 +5,10 @@ import labelPillCloseButtonAlternativeText from '@salesforce/label/LightningComb
5
5
  import labelPlaceholder from '@salesforce/label/LightningCombobox.placeholder';
6
6
  import { api, track } from 'lwc';
7
7
  import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
8
- import labelCurrentSelection from '@salesforce/label/LightningCombobox.currentSelection';
8
+ // import labelCurrentSelection from '@salesforce/label/LightningCombobox.currentSelection';
9
9
  import { handleKeyDownOnInput } from './keyboard';
10
10
  import { BaseComboboxEvents } from './baseComboboxEvents';
11
- import { classSet, formatLabel } from 'lightning/utils';
11
+ import { classSet } from 'lightning/utils';
12
12
  import {
13
13
  assert,
14
14
  computeAriaInvalid,
@@ -450,9 +450,7 @@ export default class LightningBaseCombobox extends LightningShadowBaseClass {
450
450
  return;
451
451
  }
452
452
  synchronizeAttrs(input, {
453
- [ARIA_LABEL]: this.isUserInputDisabled
454
- ? this.computedButtonTriggerAriaLabel
455
- : this.inputLabel,
453
+ [ARIA_LABEL]: this.inputLabel,
456
454
  [ARIA_INVALID]: this.computedAriaInvalid,
457
455
  [ARIA_ACTIVEDESCENDANT]: this.computedAriaActiveDescendant,
458
456
  });
@@ -586,17 +584,6 @@ export default class LightningBaseCombobox extends LightningShadowBaseClass {
586
584
  return this.hasInputPill ? this.inputPill.label : this.inputText;
587
585
  }
588
586
 
589
- get computedButtonTriggerAriaLabel() {
590
- const label = this.inputLabel;
591
- const value = this.computedInputValue || this.computedPlaceholder;
592
-
593
- if (!label) {
594
- return value;
595
- }
596
-
597
- return formatLabel(labelCurrentSelection, label, value);
598
- }
599
-
600
587
  handleListboxScroll(event) {
601
588
  // We don't want this to bubble up to the modal which due to event retargeting wouldn't be able
602
589
  // to know what is actually being scrolled and thus may lead to the scrolling of the modal
@@ -869,7 +856,7 @@ export default class LightningBaseCombobox extends LightningShadowBaseClass {
869
856
  highlightOption(option) {
870
857
  this.removeHighlight();
871
858
  if (option) {
872
- option.highlight();
859
+ option.highlight(option.ariaChecked);
873
860
  this._highlightedOptionElement = option;
874
861
  this._highlightedOptionElementId =
875
862
  option.getAttribute('data-item-id');
@@ -890,7 +877,7 @@ export default class LightningBaseCombobox extends LightningShadowBaseClass {
890
877
  removeHighlight() {
891
878
  const option = this._highlightedOptionElement;
892
879
  if (option) {
893
- option.removeHighlight();
880
+ option.removeHighlight(option.ariaChecked);
894
881
  this._highlightedOptionElement = null;
895
882
  this._highlightedOptionElementId = null;
896
883
  this._activeElementDomId = null;
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <LightningComponentBundle xmlns="xmlns=http://soap.sforce.com/2006/04/metadata">
3
+ <capabilities>
4
+ <capability>lightning__ServerRenderableWithHydration</capability>
5
+ </capabilities>
6
+ </LightningComponentBundle>
@@ -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,