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
@@ -5,6 +5,7 @@ import {
5
5
  assert,
6
6
  normalizeBoolean,
7
7
  normalizeString,
8
+ isCSR,
8
9
  } from 'lightning/utilsPrivate';
9
10
  import subPage from '@salesforce/label/LightningVerticalNavigation.subPage';
10
11
 
@@ -98,6 +99,37 @@ export default class LightningVerticalNavigation extends LightningShadowBaseClas
98
99
  return classes.toString();
99
100
  }
100
101
 
102
+ connectedCallback() {
103
+ super.connectedCallback();
104
+ this.addItemEventListeners();
105
+ }
106
+
107
+ addItemEventListeners() {
108
+ if (isCSR) {
109
+ this.addEventListener(
110
+ 'privateitemregister',
111
+ this.handleItemRegister.bind(this)
112
+ );
113
+ this.addEventListener(
114
+ 'privateitemselect',
115
+ this.handleItemSelect.bind(this)
116
+ );
117
+ }
118
+ }
119
+
120
+ removeItemEventListeners() {
121
+ if (isCSR) {
122
+ this.removeEventListener(
123
+ 'privateitemregister',
124
+ this.handleItemRegister.bind(this)
125
+ );
126
+ this.removeEventListener(
127
+ 'privateitemselect',
128
+ this.handleItemSelect.bind(this)
129
+ );
130
+ }
131
+ }
132
+
101
133
  /**
102
134
  * @name verticalNavigationItems
103
135
  * @type {Array}
@@ -142,35 +174,41 @@ export default class LightningVerticalNavigation extends LightningShadowBaseClas
142
174
  * @param {String} itemName - label of the selected child navigation item.
143
175
  */
144
176
  selectNavigationItem(itemName) {
145
- // dispatch before events
146
- const beforeselectevent = new CustomEvent('beforeselect', {
147
- cancelable: true,
148
- detail: {
149
- name: itemName,
150
- },
151
- });
152
- this.dispatchEvent(beforeselectevent);
153
-
154
- if (!beforeselectevent.defaultPrevented) {
155
- // select navigation item
156
- this.verticalNavigationItems.forEach((navigationItem) => {
157
- if (navigationItem.name === itemName) {
158
- navigationItem.callbacks.select();
159
- } else {
160
- navigationItem.callbacks.deselect();
161
- }
177
+ if (isCSR) {
178
+ // dispatch before events
179
+ const beforeselectevent = new CustomEvent('beforeselect', {
180
+ cancelable: true,
181
+ detail: {
182
+ name: itemName,
183
+ },
162
184
  });
163
- // update state
164
- this._selectedItem = itemName;
165
-
166
- // fire after events
167
- this.dispatchEvent(
168
- new CustomEvent('select', {
169
- detail: {
170
- name: itemName,
171
- },
172
- })
173
- );
185
+ this.dispatchEvent(beforeselectevent);
186
+
187
+ if (!beforeselectevent.defaultPrevented) {
188
+ // select navigation item
189
+ this.verticalNavigationItems.forEach((navigationItem) => {
190
+ if (navigationItem.name === itemName) {
191
+ navigationItem.callbacks.select();
192
+ } else {
193
+ navigationItem.callbacks.deselect();
194
+ }
195
+ });
196
+ // update state
197
+ this._selectedItem = itemName;
198
+
199
+ // fire after events
200
+ this.dispatchEvent(
201
+ new CustomEvent('select', {
202
+ detail: {
203
+ name: itemName,
204
+ },
205
+ })
206
+ );
207
+ }
174
208
  }
175
209
  }
210
+
211
+ disconnectedCallback() {
212
+ this.removeItemEventListeners();
213
+ }
176
214
  }
@@ -3,4 +3,7 @@
3
3
  <isExposed>true</isExposed>
4
4
  <minApiVersion>41.0</minApiVersion>
5
5
  <support>GA</support>
6
+ <capabilities>
7
+ <capability>lightning__ServerRenderableWithHydration</capability>
8
+ </capabilities>
6
9
  </LightningComponentBundle>
@@ -0,0 +1,63 @@
1
+
2
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action {
3
+ --slds-c-icon-color-foreground-default: currentcolor;
4
+
5
+ position: relative;
6
+ display: flex;
7
+ align-items: center;
8
+ width: 100%;
9
+ padding-block-start: var(--slds-c-verticalnavigationitem-spacing-blockstart, var(--slds-g-spacing-2));
10
+ padding-block-end: var(--slds-c-verticalnavigationitem-spacing-blockend, var(--slds-g-spacing-2));
11
+ padding-inline-start: var(--slds-c-verticalnavigationitem-spacing-inlinestart, var(--slds-g-spacing-6));
12
+ padding-inline-end: var(--slds-c-verticalnavigationitem-spacing-inlineend, var(--slds-g-spacing-5));
13
+ border-block-start: var(--slds-g-sizing-border-1) solid transparent;
14
+ border-block-end: var(--slds-g-sizing-border-1) solid transparent;
15
+ border-radius: 0;
16
+ box-shadow: inset 0 0 0 var(--slds-g-color-brand-base-60);
17
+ cursor: pointer;
18
+ color: var(--slds-g-color-neutral-base-10);
19
+ }
20
+
21
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action_overflow {
22
+ --slds-c-button-neutral-font-lineheight: default;
23
+ --slds-c-icon-color-foreground: var(--slds-g-color-neutral-base-50);
24
+
25
+ width: inherit;
26
+ border-block-start: 1px solid transparent;
27
+ border-block-end: 1px solid transparent;
28
+ }
29
+
30
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action-text {
31
+ color: var(--slds-g-color-brand-base-50);
32
+ }
33
+
34
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action:hover {
35
+ box-shadow: inset 2px 0 0 var(--slds-g-color-brand-base-60);
36
+ color: currentcolor;
37
+ }
38
+
39
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action:focus {
40
+ text-decoration: underline;
41
+ color: currentcolor;
42
+ }
43
+
44
+ :host([data-render-mode="shadow"].slds-nav-vertical__item) {
45
+ position: relative;
46
+ }
47
+
48
+ :host([data-render-mode="shadow"].slds-nav-vertical__item:focus-within) {
49
+ box-shadow: inset 0 0 0 1px var(--slds-g-color-brand-base-60);
50
+ }
51
+
52
+ :host([data-render-mode="shadow"].slds-nav-vertical__item:hover),:host([data-render-mode="shadow"].slds-nav-vertical__item.slds-is-active) {
53
+ background: var(--slds-c-verticalnavigationitem-color, var(--slds-g-color-brand-base-95));
54
+ }
55
+
56
+ :host([data-render-mode="shadow"].slds-is-active) .slds-nav-vertical__action:not(:focus) {
57
+ border-color: var(--slds-c-verticalnavigationitem-border-color, transparent);
58
+ }
59
+
60
+ :host([data-render-mode="shadow"].slds-nav-vertical__item.slds-is-active) .slds-nav-vertical__action {
61
+ font-weight: bold;
62
+ box-shadow: inset 4px 0 0 var(--slds-g-color-brand-base-60);
63
+ }
@@ -1,3 +1,2 @@
1
- :host {
2
- display: list-item;
3
- }
1
+ @import './verticalNavigationItem.lbc.synthetic.css';
2
+ @import './verticalNavigationItem.lbc.native.css';
@@ -1,11 +1,16 @@
1
- import { LightningElement, api, track } from 'lwc';
1
+ import { api, track } from 'lwc';
2
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
3
+ import { isCSR } from 'lightning/utilsPrivate';
2
4
 
3
5
  const DEFAULT_HREF = 'javascript:void(0);'; // eslint-disable-line no-script-url
4
6
 
5
7
  /**
6
8
  * A text-only link within lightning-vertical-navigation-section or lightning-vertical-navigation-overflow.
7
9
  */
8
- export default class LightningVerticalNavigationItem extends LightningElement {
10
+ export default class LightningVerticalNavigationItem extends LightningShadowBaseClass {
11
+ static validationOptOut = ['class'];
12
+ _rendered = false;
13
+
9
14
  /**
10
15
  * The text displayed for the navigation item.
11
16
  * @type {string}
@@ -30,21 +35,30 @@ export default class LightningVerticalNavigationItem extends LightningElement {
30
35
  @track _selected = false;
31
36
 
32
37
  connectedCallback() {
38
+ super.connectedCallback();
33
39
  this.setAttribute('role', 'listitem');
34
40
  this.classList.add('slds-nav-vertical__item');
35
- this.dispatchEvent(
36
- new CustomEvent('privateitemregister', {
37
- bubbles: true,
38
- cancelable: true,
39
- detail: {
40
- callbacks: {
41
- select: this.select.bind(this),
42
- deselect: this.deselect.bind(this),
41
+ if (isCSR) {
42
+ this.dispatchEvent(
43
+ new CustomEvent('privateitemregister', {
44
+ bubbles: true,
45
+ cancelable: true,
46
+ detail: {
47
+ callbacks: {
48
+ select: this.select.bind(this),
49
+ deselect: this.deselect.bind(this),
50
+ },
51
+ name: this.name,
43
52
  },
44
- name: this.name,
45
- },
46
- })
47
- );
53
+ })
54
+ );
55
+ }
56
+ }
57
+
58
+ renderedCallback() {
59
+ if (!this._rendered) {
60
+ this._rendered = true;
61
+ }
48
62
  }
49
63
 
50
64
  select() {
@@ -58,7 +72,7 @@ export default class LightningVerticalNavigationItem extends LightningElement {
58
72
  }
59
73
 
60
74
  get ariaCurrent() {
61
- return this._selected ? 'page' : null;
75
+ return this._selected && this._rendered ? 'page' : null;
62
76
  }
63
77
 
64
78
  handleClick(event) {
@@ -3,4 +3,7 @@
3
3
  <isExposed>true</isExposed>
4
4
  <minApiVersion>41.0</minApiVersion>
5
5
  <support>GA</support>
6
+ <capabilities>
7
+ <capability>lightning__ServerRenderableWithHydration</capability>
8
+ </capabilities>
6
9
  </LightningComponentBundle>
@@ -0,0 +1,2 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import './vertical-navigation-item.slds.css';
@@ -0,0 +1,3 @@
1
+ :host {
2
+ display: list-item;
3
+ }
@@ -0,0 +1,76 @@
1
+
2
+ :host([data-render-mode="shadow"]) [part="badge"] {
3
+ /**
4
+ * Remap to SLDS blueprint hooks for parity
5
+ * https://www.lightningdesignsystem.com/components/modals/#Styling-Hooks-Overview
6
+ *
7
+ */
8
+ /* stylelint-disable */
9
+ --slds-c-badge-font-lineheight: var(--slds-c-badge-line-height);
10
+ /* stylelint-enable */
11
+ display: inline-flex;
12
+ align-items: center;
13
+ padding: var(--slds-g-spacing-1) var(--slds-g-spacing-2);
14
+ color: var(--slds-c-badge-text-color, var(--slds-g-color-on-surface-3));
15
+ font-size: var(--slds-c-badge-font-size, var(--slds-g-font-scale-neg-2));
16
+ font-weight: var(--slds-g-font-weight-7);
17
+ /* stylelint-disable */
18
+ line-height: var(--slds-c-badge-font-lineheight, initial);
19
+ /* stylelint-enable */
20
+ white-space: nowrap;
21
+ border-width: var(--slds-c-badge-sizing-border, var(--slds-g-sizing-border-1));
22
+ border-style: solid;
23
+ border-color: var(--slds-c-badge-color-border, transparent);
24
+ border-radius: var(--slds-c-badge-radius-border, 15rem);
25
+ background-color: var(--slds-c-badge-color-background, var(--slds-g-color-neutral-base-95));
26
+ }
27
+
28
+ :host([data-render-mode="shadow"]) [part="badge"]:empty {
29
+ padding: 0;
30
+ }
31
+
32
+ :host([data-render-mode="shadow"]) [part="badge"] .slds-badge__icon {
33
+ display: inline-flex;
34
+ align-items: center;
35
+ color: var(--slds-c-badge-icon-color-foreground, var(--slds-g-color-neutral-base-50, var(--slds-g-color-neutral-base-50)));
36
+ line-height: 1;
37
+ vertical-align: middle;
38
+ }
39
+
40
+ :host([data-render-mode="shadow"]) [part="badge"] .slds-badge__icon.slds-badge__icon_inverse {
41
+ --slds-c-badge-icon-color-foreground: var(--slds-c-badge-icon-inverse-color-foreground, currentColor);
42
+ }
43
+
44
+ :host([data-render-mode="shadow"]) [part="badge"] .slds-badge__icon.slds-badge__icon_left {
45
+ margin-inline-end: var(--slds-g-spacing-1);
46
+ }
47
+
48
+ :host([data-render-mode="shadow"]) [part="badge"] .slds-badge__icon.slds-badge__icon_right {
49
+ margin-inline-start: var(--slds-g-spacing-1);
50
+ }
51
+
52
+ :host([data-render-mode="shadow"]) [part="badge"] lightning-primitive-icon {
53
+ vertical-align: middle;
54
+ }
55
+
56
+ /* As a best practice for native shadow, we should use an attribute on the host rather than the SLDS class.
57
+ However, the public API for this component does not expose an attribute for this class. Establishing a programmatic
58
+ mapping between the class and an attribute is an antipattern, requiring MutationObserver and reducing performance */
59
+
60
+ :host([data-render-mode="shadow"].slds-badge_inverse) {
61
+ --slds-c-badge-color-background: var(--slds-c-badge-inverse-color-background, var(--slds-g-color-neutral-base-50, var(--slds-g-color-neutral-base-50)));
62
+ --slds-c-badge-text-color: var(--slds-c-badge-inverse-text-color, var(--slds-g-color-neutral-base-100, var(--slds-g-color-neutral-base-100)));
63
+ }
64
+
65
+ /* As a best practice for native shadow, we should use an attribute on the host rather than the SLDS class.
66
+ However, the public API for badge does not expose an attribute for this class. Establishing a programmatic mapping between
67
+ the class and an attribute is an antipattern, requiring MutationObserver and reducing performance */
68
+
69
+ :host([data-render-mode="shadow"].slds-badge_lightest) {
70
+ --slds-c-badge-color-background: var(--slds-c-badge-lightest-color-background, var(--slds-g-color-neutral-base-100, var(--slds-g-color-neutral-base-100)));
71
+ --slds-c-badge-color-border: var(--slds-c-badge-lightest-color-border, var(--slds-g-color-border-base-1, var(--slds-g-color-neutral-base-90)));
72
+ }
73
+
74
+ :host([data-render-mode="shadow"].slds-badge:not(:first-of-type)) {
75
+ margin-inline-start: var(--slds-g-spacing-2);
76
+ }
@@ -0,0 +1,63 @@
1
+
2
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action {
3
+ --slds-c-icon-color-foreground-default: currentcolor;
4
+
5
+ position: relative;
6
+ display: flex;
7
+ align-items: center;
8
+ width: 100%;
9
+ padding-block-start: var(--slds-c-verticalnavigationitem-spacing-blockstart, var(--slds-g-spacing-2));
10
+ padding-block-end: var(--slds-c-verticalnavigationitem-spacing-blockend, var(--slds-g-spacing-2));
11
+ padding-inline-start: var(--slds-c-verticalnavigationitem-spacing-inlinestart, var(--slds-g-spacing-6));
12
+ padding-inline-end: var(--slds-c-verticalnavigationitem-spacing-inlineend, var(--slds-g-spacing-5));
13
+ border-block-start: var(--slds-g-sizing-border-1) solid transparent;
14
+ border-block-end: var(--slds-g-sizing-border-1) solid transparent;
15
+ border-radius: 0;
16
+ box-shadow: inset 0 0 0 var(--slds-g-color-brand-base-60);
17
+ cursor: pointer;
18
+ color: var(--slds-g-color-neutral-base-10);
19
+ }
20
+
21
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action_overflow {
22
+ --slds-c-button-neutral-font-lineheight: default;
23
+ --slds-c-icon-color-foreground: var(--slds-g-color-neutral-base-50);
24
+
25
+ width: inherit;
26
+ border-block-start: 1px solid transparent;
27
+ border-block-end: 1px solid transparent;
28
+ }
29
+
30
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action-text {
31
+ color: var(--slds-g-color-brand-base-50);
32
+ }
33
+
34
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action:hover {
35
+ box-shadow: inset 2px 0 0 var(--slds-g-color-brand-base-60);
36
+ color: currentcolor;
37
+ }
38
+
39
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action:focus {
40
+ text-decoration: underline;
41
+ color: currentcolor;
42
+ }
43
+
44
+ :host([data-render-mode="shadow"].slds-nav-vertical__item) {
45
+ position: relative;
46
+ }
47
+
48
+ :host([data-render-mode="shadow"].slds-nav-vertical__item:focus-within) {
49
+ box-shadow: inset 0 0 0 1px var(--slds-g-color-brand-base-60);
50
+ }
51
+
52
+ :host([data-render-mode="shadow"].slds-nav-vertical__item:hover),:host([data-render-mode="shadow"].slds-nav-vertical__item.slds-is-active) {
53
+ background: var(--slds-c-verticalnavigationitem-color, var(--slds-g-color-brand-base-95));
54
+ }
55
+
56
+ :host([data-render-mode="shadow"].slds-is-active) .slds-nav-vertical__action:not(:focus) {
57
+ border-color: var(--slds-c-verticalnavigationitem-border-color, transparent);
58
+ }
59
+
60
+ :host([data-render-mode="shadow"].slds-nav-vertical__item.slds-is-active) .slds-nav-vertical__action {
61
+ font-weight: bold;
62
+ box-shadow: inset 4px 0 0 var(--slds-g-color-brand-base-60);
63
+ }
@@ -1,3 +1,2 @@
1
- :host {
2
- display: list-item;
3
- }
1
+ @import './verticalNavigationItemBadge.lbc.synthetic.css';
2
+ @import './verticalNavigationItemBadge.lbc.native.css';
@@ -7,7 +7,7 @@
7
7
  {label}
8
8
 
9
9
  <template if:true={showBadge}>
10
- <span class="slds-badge slds-col_bump-left">
10
+ <span part="badge" class="slds-badge slds-col_bump-left">
11
11
  <span class="slds-assistive-text">:</span> {badgeCount} <span class="slds-assistive-text">{assistiveText}</span>
12
12
  </span>
13
13
  </template>
@@ -1,5 +1,7 @@
1
1
  import labelNewItems from '@salesforce/label/LightningVerticalNavigation.newItems';
2
- import { LightningElement, api, track } from 'lwc';
2
+ import { api, track } from 'lwc';
3
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
4
+ import { isCSR } from 'lightning/utilsPrivate';
3
5
 
4
6
  const i18n = {
5
7
  newItems: labelNewItems,
@@ -10,7 +12,9 @@ const DEFAULT_HREF = 'javascript:void(0);'; // eslint-disable-line no-script-url
10
12
  /**
11
13
  * A link and badge within lightning-vertical-navigation-section or lightning-vertical-navigation-overflow.
12
14
  */
13
- export default class LightningVerticalNavigationItemBadge extends LightningElement {
15
+ export default class LightningVerticalNavigationItemBadge extends LightningShadowBaseClass {
16
+ static validationOptOut = ['class'];
17
+ _rendered = false;
14
18
  /**
15
19
  * The text displayed for this navigation item.
16
20
  * @type {string}
@@ -49,21 +53,30 @@ export default class LightningVerticalNavigationItemBadge extends LightningEleme
49
53
  @track _selected = false;
50
54
 
51
55
  connectedCallback() {
56
+ super.connectedCallback();
52
57
  this.setAttribute('role', 'listitem');
53
58
  this.classList.add('slds-nav-vertical__item');
54
- this.dispatchEvent(
55
- new CustomEvent('privateitemregister', {
56
- bubbles: true,
57
- cancelable: true,
58
- detail: {
59
- callbacks: {
60
- select: this.select.bind(this),
61
- deselect: this.deselect.bind(this),
59
+ if (isCSR) {
60
+ this.dispatchEvent(
61
+ new CustomEvent('privateitemregister', {
62
+ bubbles: true,
63
+ cancelable: true,
64
+ detail: {
65
+ callbacks: {
66
+ select: this.select.bind(this),
67
+ deselect: this.deselect.bind(this),
68
+ },
69
+ name: this.name,
62
70
  },
63
- name: this.name,
64
- },
65
- })
66
- );
71
+ })
72
+ );
73
+ }
74
+ }
75
+
76
+ renderedCallback() {
77
+ if (!this._rendered) {
78
+ this._rendered = true;
79
+ }
67
80
  }
68
81
 
69
82
  select() {
@@ -77,7 +90,7 @@ export default class LightningVerticalNavigationItemBadge extends LightningEleme
77
90
  }
78
91
 
79
92
  get ariaCurrent() {
80
- return this._selected ? 'page' : false;
93
+ return this._selected && this._rendered ? 'page' : false;
81
94
  }
82
95
 
83
96
  get showBadge() {
@@ -3,4 +3,7 @@
3
3
  <isExposed>true</isExposed>
4
4
  <minApiVersion>41.0</minApiVersion>
5
5
  <support>GA</support>
6
+ <capabilities>
7
+ <capability>lightning__ServerRenderableWithHydration</capability>
8
+ </capabilities>
6
9
  </LightningComponentBundle>
@@ -0,0 +1,5 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import 'lightning/sldsUtilsVisibility';
3
+ @import 'lightning/sldsUtilsGrid';
4
+ @import './vertical-navigation-item.slds.css';
5
+ @import './badge.slds.css';
@@ -0,0 +1,63 @@
1
+
2
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action {
3
+ --slds-c-icon-color-foreground-default: currentcolor;
4
+
5
+ position: relative;
6
+ display: flex;
7
+ align-items: center;
8
+ width: 100%;
9
+ padding-block-start: var(--slds-c-verticalnavigationitem-spacing-blockstart, var(--slds-g-spacing-2));
10
+ padding-block-end: var(--slds-c-verticalnavigationitem-spacing-blockend, var(--slds-g-spacing-2));
11
+ padding-inline-start: var(--slds-c-verticalnavigationitem-spacing-inlinestart, var(--slds-g-spacing-6));
12
+ padding-inline-end: var(--slds-c-verticalnavigationitem-spacing-inlineend, var(--slds-g-spacing-5));
13
+ border-block-start: var(--slds-g-sizing-border-1) solid transparent;
14
+ border-block-end: var(--slds-g-sizing-border-1) solid transparent;
15
+ border-radius: 0;
16
+ box-shadow: inset 0 0 0 var(--slds-g-color-brand-base-60);
17
+ cursor: pointer;
18
+ color: var(--slds-g-color-neutral-base-10);
19
+ }
20
+
21
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action_overflow {
22
+ --slds-c-button-neutral-font-lineheight: default;
23
+ --slds-c-icon-color-foreground: var(--slds-g-color-neutral-base-50);
24
+
25
+ width: inherit;
26
+ border-block-start: 1px solid transparent;
27
+ border-block-end: 1px solid transparent;
28
+ }
29
+
30
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action-text {
31
+ color: var(--slds-g-color-brand-base-50);
32
+ }
33
+
34
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action:hover {
35
+ box-shadow: inset 2px 0 0 var(--slds-g-color-brand-base-60);
36
+ color: currentcolor;
37
+ }
38
+
39
+ :host([data-render-mode="shadow"]) .slds-nav-vertical__action:focus {
40
+ text-decoration: underline;
41
+ color: currentcolor;
42
+ }
43
+
44
+ :host([data-render-mode="shadow"].slds-nav-vertical__item) {
45
+ position: relative;
46
+ }
47
+
48
+ :host([data-render-mode="shadow"].slds-nav-vertical__item:focus-within) {
49
+ box-shadow: inset 0 0 0 1px var(--slds-g-color-brand-base-60);
50
+ }
51
+
52
+ :host([data-render-mode="shadow"].slds-nav-vertical__item:hover),:host([data-render-mode="shadow"].slds-nav-vertical__item.slds-is-active) {
53
+ background: var(--slds-c-verticalnavigationitem-color, var(--slds-g-color-brand-base-95));
54
+ }
55
+
56
+ :host([data-render-mode="shadow"].slds-is-active) .slds-nav-vertical__action:not(:focus) {
57
+ border-color: var(--slds-c-verticalnavigationitem-border-color, transparent);
58
+ }
59
+
60
+ :host([data-render-mode="shadow"].slds-nav-vertical__item.slds-is-active) .slds-nav-vertical__action {
61
+ font-weight: bold;
62
+ box-shadow: inset 4px 0 0 var(--slds-g-color-brand-base-60);
63
+ }
@@ -1,3 +1,2 @@
1
- :host {
2
- display: list-item;
3
- }
1
+ @import './verticalNavigationItemIcon.lbc.synthetic.css';
2
+ @import './verticalNavigationItemIcon.lbc.native.css';