lightning-base-components 1.21.3-alpha → 1.21.5-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 (233) hide show
  1. package/metadata/raptor.json +49 -0
  2. package/package.json +96 -21
  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.messageWhenSearchTermTooShort.js +1 -0
  11. package/scopedImports/@salesforce-label-LightningLookup.modalCancel.js +1 -0
  12. package/scopedImports/@salesforce-label-LightningLookup.modalSelect.js +1 -0
  13. package/scopedImports/@salesforce-label-LightningProgressIndicator.currentStage.js +1 -1
  14. package/scopedImports/@salesforce-label-LightningProgressIndicator.errorStage.js +1 -0
  15. package/scopedImports/@salesforce-label-LightningProgressIndicator.stageComplete.js +1 -1
  16. package/scopedImports/@salesforce-label-LightningProgressIndicator.stageNotStarted.js +1 -1
  17. package/src/lightning/accordion/__docs__/accordion.md +0 -4
  18. package/src/lightning/accordionSection/__docs__/accordionSection.md +0 -4
  19. package/src/lightning/avatar/__docs__/avatar.md +0 -4
  20. package/src/lightning/avatar/avatar.html +1 -0
  21. package/src/lightning/badge/__docs__/badge.md +0 -4
  22. package/src/lightning/badge/badge.html +3 -3
  23. package/src/lightning/barcodeScanner/__docs__/barcodeScanner.md +0 -4
  24. package/src/lightning/baseCombobox/baseCombobox.html +4 -1
  25. package/src/lightning/baseCombobox/baseCombobox.js +5 -18
  26. package/src/lightning/baseComboboxItem/baseComboboxItem.js +6 -10
  27. package/src/lightning/button/__docs__/button.md +5 -8
  28. package/src/lightning/button/button.js +3 -4
  29. package/src/lightning/buttonGroup/__docs__/buttonGroup.md +0 -4
  30. package/src/lightning/buttonIcon/__docs__/buttonIcon.md +1 -4
  31. package/src/lightning/buttonIcon/buttonIcon.html +1 -1
  32. package/src/lightning/buttonIcon/buttonIcon.js +18 -17
  33. package/src/lightning/buttonIconStateful/__docs__/buttonIconStateful.md +0 -4
  34. package/src/lightning/buttonMenu/__docs__/buttonMenu.md +0 -4
  35. package/src/lightning/buttonMenu/buttonMenu.css +5 -0
  36. package/src/lightning/buttonMenu/buttonMenu.js +2 -0
  37. package/src/lightning/buttonStateful/__docs__/buttonStateful.md +0 -4
  38. package/src/lightning/buttonStateful/buttonStateful.html +5 -3
  39. package/src/lightning/buttonStateful/buttonStateful.js +4 -0
  40. package/src/lightning/card/__docs__/card.md +0 -4
  41. package/src/lightning/card/card.js-meta.xml +3 -0
  42. package/src/lightning/carousel/__docs__/carousel.md +0 -4
  43. package/src/lightning/checkboxGroup/__docs__/checkboxGroup.md +0 -4
  44. package/src/lightning/colorPickerCustom/colorPickerCustom.js +12 -0
  45. package/src/lightning/colorPickerPanel/colorPickerPanel.js +11 -1
  46. package/src/lightning/combobox/__docs__/combobox.md +0 -4
  47. package/src/lightning/combobox/combobox.html +1 -0
  48. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.html +11 -0
  49. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/customComponentWrapper.js +25 -0
  50. package/src/lightning/datatable/__examples__disabled/customComponentWrapper/generateData.js +15 -0
  51. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/customInput.html +4 -0
  52. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/myCustomTypeDatatable.js +17 -0
  53. package/src/lightning/datatable/__examples__disabled/myCustomTypeDatatable/nestedSimpleComponentParent.html +7 -0
  54. package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.html +9 -0
  55. package/src/lightning/datatable/__examples__disabled/simpleComponentNested/simpleComponentNested.js +6 -0
  56. package/src/lightning/datatable/autoWidthStrategy.js +8 -36
  57. package/src/lightning/datatable/columnResizer.js +51 -161
  58. package/src/lightning/datatable/columnWidthManager.js +25 -81
  59. package/src/lightning/datatable/columns.js +180 -302
  60. package/src/lightning/datatable/datatable.js +454 -441
  61. package/src/lightning/datatable/errors.js +17 -29
  62. package/src/lightning/datatable/fixedWidthStrategy.js +7 -22
  63. package/src/lightning/datatable/headerActions.js +8 -38
  64. package/src/lightning/datatable/indexes.js +42 -0
  65. package/src/lightning/datatable/infiniteLoading.js +16 -35
  66. package/src/lightning/datatable/inlineEdit.js +126 -156
  67. package/src/lightning/datatable/keyboard.js +226 -282
  68. package/src/lightning/datatable/renderManager.js +0 -4
  69. package/src/lightning/datatable/resizeObserver.js +4 -13
  70. package/src/lightning/datatable/rowLevelActions.js +2 -2
  71. package/src/lightning/datatable/rowNumber.js +21 -59
  72. package/src/lightning/datatable/rowSelection.js +95 -178
  73. package/src/lightning/datatable/rowSelectionShared.js +13 -27
  74. package/src/lightning/datatable/rows.js +171 -418
  75. package/src/lightning/datatable/sort.js +16 -75
  76. package/src/lightning/datatable/templates/div/div.html +12 -4
  77. package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +10 -16
  78. package/src/lightning/datatable/templates/table/table.html +15 -5
  79. package/src/lightning/datatable/tree.js +17 -35
  80. package/src/lightning/datatable/types.js +10 -31
  81. package/src/lightning/datatable/utils.js +48 -24
  82. package/src/lightning/datatable/virtualization.js +2 -5
  83. package/src/lightning/datatable/widthManagerShared.js +0 -20
  84. package/src/lightning/datatable/wrapText.js +29 -60
  85. package/src/lightning/dualListbox/__docs__/dualListbox.md +0 -4
  86. package/src/lightning/dualListbox/dualListbox.js +7 -8
  87. package/src/lightning/dynamicIcon/__docs__/dynamicIcon.md +0 -4
  88. package/src/lightning/formattedDateTime/__docs__/formattedDateTime.md +0 -4
  89. package/src/lightning/formattedLocation/__docs__/formattedLocation.md +0 -4
  90. package/src/lightning/formattedName/__docs__/formattedName.md +0 -4
  91. package/src/lightning/formattedName/formattedName.js +3 -2
  92. package/src/lightning/formattedName/formattedName.js-meta.xml +3 -0
  93. package/src/lightning/formattedNumber/__docs__/formattedNumber.md +0 -4
  94. package/src/lightning/formattedNumber/formattedNumber.js +3 -2
  95. package/src/lightning/formattedNumber/formattedNumber.js-meta.xml +3 -0
  96. package/src/lightning/formattedPhone/__docs__/formattedPhone.md +0 -4
  97. package/src/lightning/formattedRichText/richTextConfig.js +1 -0
  98. package/src/lightning/formattedText/__docs__/formattedText.md +0 -4
  99. package/src/lightning/formattedTime/__docs__/formattedTime.md +0 -4
  100. package/src/lightning/formattedUrl/__docs__/formattedUrl.md +0 -4
  101. package/src/lightning/helptext/helptext.css +7 -0
  102. package/src/lightning/helptext/helptext.js +3 -4
  103. package/src/lightning/icon/__docs__/icon.md +0 -4
  104. package/src/lightning/icon/icon.html +1 -1
  105. package/src/lightning/input/input.html +5 -0
  106. package/src/lightning/inputAddress/addressFormat.js +31 -4
  107. package/src/lightning/inputAddress/fieldsLayout.js +6 -0
  108. package/src/lightning/inputAddress/inputAddress.html +19 -1
  109. package/src/lightning/inputAddress/inputAddress.js +80 -3
  110. package/src/lightning/inputLocation/__docs__/inputLocation.md +0 -4
  111. package/src/lightning/internationalizationLibrary/address/AddressFormat.js +553 -610
  112. package/src/lightning/layout/__docs__/layout.md +0 -4
  113. package/src/lightning/layoutItem/__docs__/layoutItem.md +0 -4
  114. package/src/lightning/lookupAddress/lookupAddress.html +6 -1
  115. package/src/lightning/lookupAddress/lookupAddress.js +25 -0
  116. package/src/lightning/menuItem/__docs__/menuItem.md +0 -4
  117. package/src/lightning/menuSubheader/menu-subheader.slds.css +1 -1
  118. package/src/lightning/modal/__docs__/modal.md +10 -1
  119. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +3 -7
  120. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +39 -133
  121. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +1 -1
  122. package/src/lightning/modal/modal.js +1 -1
  123. package/src/lightning/modalBase/modalBase.html +15 -10
  124. package/src/lightning/modalBase/modalBase.js +132 -147
  125. package/src/lightning/modalBody/modalBody.css +6 -0
  126. package/src/lightning/modalHeader/modalHeader.html +16 -4
  127. package/src/lightning/modalHeader/modalHeader.js +61 -14
  128. package/src/lightning/pill/__docs__/pill.md +0 -4
  129. package/src/lightning/pill/link.html +1 -0
  130. package/src/lightning/pill/plain.html +1 -0
  131. package/src/lightning/pill/plainLink.html +1 -0
  132. package/src/lightning/pillContainer/__docs__/pillContainer.md +0 -4
  133. package/src/lightning/primitiveBubble/primitiveBubble.js +42 -0
  134. package/src/lightning/primitiveDatatableCell/primitiveDatatableCell.js +1 -1
  135. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.html +1 -1
  136. package/src/lightning/primitiveHeaderActions/primitiveHeaderActions.js +13 -0
  137. package/src/lightning/primitiveHeaderFactory/nonsortableHeader.html +19 -6
  138. package/src/lightning/primitiveHeaderFactory/sortableHeader.html +3 -1
  139. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.css +11 -0
  140. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.html +2 -1
  141. package/src/lightning/primitiveResizeHandler/primitiveResizeHandler.js +1 -0
  142. package/src/lightning/progressStep/base.html +5 -6
  143. package/src/lightning/progressStep/progressStep.js +14 -9
  144. package/src/lightning/prompt/__docs__/prompt.md +1 -1
  145. package/src/lightning/radioGroup/__docs__/radioGroup.md +0 -4
  146. package/src/lightning/relativeDateTime/__docs__/relativeDateTime.md +0 -4
  147. package/src/lightning/shadowBaseClassPrivate/shadowBaseClassPrivate.js +0 -2
  148. package/src/lightning/sldsCommon/sldsCommon.css +134 -98
  149. package/src/lightning/sldsUtilsAlignment/sldsUtilsAlignment.css +1 -1
  150. package/src/lightning/sldsUtilsBox/sldsUtilsBox.css +14 -13
  151. package/src/lightning/sldsUtilsGrid/sldsUtilsGrid.css +95 -92
  152. package/src/lightning/sldsUtilsHyphenation/sldsUtilsHyphenation.css +1 -1
  153. package/src/lightning/sldsUtilsMargin/sldsUtilsMargin.css +77 -75
  154. package/src/lightning/sldsUtilsPadding/sldsUtilsPadding.css +73 -73
  155. package/src/lightning/sldsUtilsSizing/sldsUtilsSizing.css +552 -558
  156. package/src/lightning/sldsUtilsVisibility/sldsUtilsVisibility.css +2 -2
  157. package/src/lightning/slider/__docs__/slider.md +0 -4
  158. package/src/lightning/spinner/__docs__/spinner.md +0 -4
  159. package/src/lightning/staticMap/staticMap.js +3 -2
  160. package/src/lightning/tab/__docs__/tab.md +0 -4
  161. package/src/lightning/tab/tab.js +6 -3
  162. package/src/lightning/tab/tab.js-meta.xml +3 -0
  163. package/src/lightning/tabBar/tabBar.js +10 -5
  164. package/src/lightning/tabset/__docs__/tabset.md +0 -4
  165. package/src/lightning/tabset/tabset.html +2 -0
  166. package/src/lightning/tabset/tabset.js-meta.xml +3 -0
  167. package/src/lightning/textarea/__docs__/textarea.md +0 -4
  168. package/src/lightning/textarea/textarea.js +6 -1
  169. package/src/lightning/tile/__docs__/tile.md +0 -4
  170. package/src/lightning/toastContainer/__docs__/toastContainer.md +3 -2
  171. package/src/lightning/tooltipLibrary/tooltipLibrary.js +24 -15
  172. package/src/lightning/tree/__docs__/tree.md +0 -4
  173. package/src/lightning/tree/tree.js +5 -1
  174. package/src/lightning/verticalNavigation/__docs__/verticalNavigation.md +0 -4
  175. package/src/lightning/verticalNavigation/vertical-navigation.slds.css +14 -0
  176. package/src/lightning/verticalNavigation/verticalNavigation.css +1 -1
  177. package/src/lightning/verticalNavigation/verticalNavigation.html +1 -1
  178. package/src/lightning/verticalNavigation/verticalNavigation.js +66 -28
  179. package/src/lightning/verticalNavigation/verticalNavigation.js-meta.xml +3 -0
  180. package/src/lightning/verticalNavigationItem/__docs__/verticalNavigationItem.md +0 -4
  181. package/src/lightning/verticalNavigationItem/vertical-navigation-item.slds.css +63 -0
  182. package/src/lightning/verticalNavigationItem/verticalNavigationItem.css +2 -3
  183. package/src/lightning/verticalNavigationItem/verticalNavigationItem.js +29 -15
  184. package/src/lightning/verticalNavigationItem/verticalNavigationItem.js-meta.xml +3 -0
  185. package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.native.css +2 -0
  186. package/src/lightning/verticalNavigationItem/verticalNavigationItem.lbc.synthetic.css +3 -0
  187. package/src/lightning/verticalNavigationItemBadge/__docs__/verticalNavigationItemBadge.md +0 -4
  188. package/src/lightning/verticalNavigationItemBadge/badge.slds.css +76 -0
  189. package/src/lightning/verticalNavigationItemBadge/vertical-navigation-item.slds.css +63 -0
  190. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.css +2 -3
  191. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.html +1 -1
  192. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js +28 -15
  193. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.js-meta.xml +3 -0
  194. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.native.css +5 -0
  195. package/src/lightning/verticalNavigationItemBadge/verticalNavigationItemBadge.lbc.synthetic.css +3 -0
  196. package/src/lightning/verticalNavigationItemIcon/__docs__/verticalNavigationItemIcon.md +0 -4
  197. package/src/lightning/verticalNavigationItemIcon/vertical-navigation-item.slds.css +63 -0
  198. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.css +2 -3
  199. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js +29 -15
  200. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.js-meta.xml +3 -0
  201. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.native.css +3 -0
  202. package/src/lightning/verticalNavigationItemIcon/verticalNavigationItemIcon.lbc.synthetic.css +3 -0
  203. package/src/lightning/verticalNavigationOverflow/button.slds.css +503 -0
  204. package/src/lightning/verticalNavigationOverflow/vertical-navigation-item.slds.css +63 -0
  205. package/src/lightning/verticalNavigationOverflow/vertical-navigation-section.slds.css +17 -0
  206. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.css +2 -1
  207. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.html +2 -0
  208. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js +18 -13
  209. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.js-meta.xml +3 -0
  210. package/src/lightning/verticalNavigationOverflow/verticalNavigationOverflow.lbc.native.css +5 -0
  211. package/src/lightning/verticalNavigationSection/vertical-navigation-section.slds.css +14 -14
  212. package/src/lightning/verticalNavigationSection/verticalNavigationSection.js-meta.xml +3 -0
  213. package/src/lightning/datatable/inlineEditShared.js +0 -26
  214. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatableWrapper/customDatatableWrapper.html +0 -0
  215. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatableWrapper/customDatatableWrapper.js +0 -0
  216. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.html +0 -0
  217. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeDeleteRowBtn/customDatatypeDeleteRowBtn.js +0 -0
  218. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeLink/customDatatypeLink.html +0 -0
  219. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeLink/customDatatypeLink.js +0 -0
  220. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.html +0 -0
  221. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeNumber/customDatatypeNumber.js +0 -0
  222. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.html +0 -0
  223. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeRowOrderingBtn/customDatatypeRowOrderingBtn.js +0 -0
  224. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customDatatypeTable.js +0 -0
  225. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customLink.html +0 -0
  226. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customName.html +0 -0
  227. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customNumber.html +0 -0
  228. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/customNumberEdit.html +0 -0
  229. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/deleteRow.html +0 -0
  230. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/iconPill.html +0 -0
  231. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customDatatypeTable/orderingButtons.html +0 -0
  232. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customNestedComponent/customNestedComponent.html +0 -0
  233. /package/src/lightning/datatable/{__examples__ → __examples__disabled}/customNestedComponent/customNestedComponent.js +0 -0
@@ -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
+ }
@@ -40,7 +40,3 @@ Here's an example that creates a navigation menu with an item containing a badge
40
40
  </lightning-vertical-navigation>
41
41
  </template>
42
42
  ```
43
-
44
- #### Source Code
45
-
46
- `lightning-vertical-navigation-item-badge` is available in the [Base Components Recipes GitHub repository](https://github.com/salesforce/base-components-recipes#documentation). It's transpiled into the `c` namespace so that you can use it in your own projects.
@@ -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';
@@ -37,7 +37,3 @@ Icons from the Lightning Design System are supported. Visit [https://lightningde
37
37
  When applying Lightning Design System classes or icons, check that they are available in the
38
38
  Lightning Design System release tied to your org. The latest Lightning Design System
39
39
  resources become available only when the new release is available in your org.
40
-
41
- #### Source Code
42
-
43
- `lightning-vertical-navigation-item-icon` is available in the [Base Components Recipes GitHub repository](https://github.com/salesforce/base-components-recipes#documentation). It's transpiled into the `c` namespace so that you can use it in your own projects.
@@ -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';
@@ -1,11 +1,16 @@
1
- import { LightningElement, api } from 'lwc';
1
+ import { api } 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 link and icon within lightning-vertical-navigation-section or lightning-vertical-navigation-overflow.
7
9
  */
8
- export default class LightningVerticalNavigationItemIcon extends LightningElement {
10
+ export default class LightningVerticalNavigationItemIcon extends LightningShadowBaseClass {
11
+ static validationOptOut = ['class'];
12
+ _rendered = false;
13
+
9
14
  /**
10
15
  * The text displayed for this navigation item.
11
16
  * @type {string}
@@ -41,21 +46,30 @@ export default class LightningVerticalNavigationItemIcon extends LightningElemen
41
46
  _selected = false;
42
47
 
43
48
  connectedCallback() {
49
+ super.connectedCallback();
44
50
  this.setAttribute('role', 'listitem');
45
51
  this.classList.add('slds-nav-vertical__item');
46
- this.dispatchEvent(
47
- new CustomEvent('privateitemregister', {
48
- bubbles: true,
49
- cancelable: true,
50
- detail: {
51
- callbacks: {
52
- select: this.select.bind(this),
53
- deselect: this.deselect.bind(this),
52
+ if (isCSR) {
53
+ this.dispatchEvent(
54
+ new CustomEvent('privateitemregister', {
55
+ bubbles: true,
56
+ cancelable: true,
57
+ detail: {
58
+ callbacks: {
59
+ select: this.select.bind(this),
60
+ deselect: this.deselect.bind(this),
61
+ },
62
+ name: this.name,
54
63
  },
55
- name: this.name,
56
- },
57
- })
58
- );
64
+ })
65
+ );
66
+ }
67
+ }
68
+
69
+ renderedCallback() {
70
+ if (!this._rendered) {
71
+ this._rendered = true;
72
+ }
59
73
  }
60
74
 
61
75
  select() {
@@ -69,7 +83,7 @@ export default class LightningVerticalNavigationItemIcon extends LightningElemen
69
83
  }
70
84
 
71
85
  get ariaCurrent() {
72
- return this._selected ? 'page' : null;
86
+ return this._selected && this._rendered ? 'page' : null;
73
87
  }
74
88
 
75
89
  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,3 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import 'lightning/sldsUtilsMargin';
3
+ @import './vertical-navigation-item.slds.css';