lightning-base-components 1.18.1-alpha → 1.18.2-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/metadata/raptor.json +5 -0
  2. package/package.json +43 -1
  3. package/scopedImports/@salesforce-internal-core.appVersion.js +1 -1
  4. package/src/lightning/accordion/accordion.css +12 -0
  5. package/src/lightning/accordion/accordion.html +3 -1
  6. package/src/lightning/accordion/accordion.js +4 -2
  7. package/src/lightning/accordion/accordion.slds.css +671 -0
  8. package/src/lightning/accordionSection/accordion-section.slds.css +647 -0
  9. package/src/lightning/accordionSection/accordionSection.css +14 -0
  10. package/src/lightning/accordionSection/accordionSection.html +23 -19
  11. package/src/lightning/accordionSection/accordionSection.js +29 -2
  12. package/src/lightning/ariaObserver/__docs__/ariaObserver.md +21 -9
  13. package/src/lightning/ariaObserver/ariaObserver.js +185 -154
  14. package/src/lightning/ariaObserver/polyfill.js +639 -0
  15. package/src/lightning/avatar/avatar.css +2 -0
  16. package/src/lightning/avatar/avatar.html +2 -0
  17. package/src/lightning/avatar/avatar.js +18 -15
  18. package/src/lightning/avatar/avatar.slds.css +272 -0
  19. package/src/lightning/baseCombobox/base-combobox.slds.css +1585 -0
  20. package/src/lightning/baseCombobox/baseCombobox.css +11 -1
  21. package/src/lightning/baseCombobox/baseCombobox.html +154 -146
  22. package/src/lightning/baseCombobox/baseCombobox.js +82 -46
  23. package/src/lightning/baseCombobox/spinner.slds.css +438 -0
  24. package/src/lightning/baseComboboxItem/baseComboboxItem.js +4 -2
  25. package/src/lightning/baseComboboxItem/inline.css +2 -0
  26. package/src/lightning/breadcrumb/breadcrumb.css +2 -2
  27. package/src/lightning/breadcrumb/breadcrumb.js +4 -2
  28. package/src/lightning/breadcrumb/breadcrumb.slds.css +2 -7
  29. package/src/lightning/breadcrumbs/breadcrumbs.css +2 -2
  30. package/src/lightning/breadcrumbs/breadcrumbs.js +3 -2
  31. package/src/lightning/breadcrumbs/breadcrumbs.slds.css +7 -1
  32. package/src/lightning/button/__examples__/inverse/inverse.css +8 -0
  33. package/src/lightning/button/__examples__/inverse/inverse.html +3 -2
  34. package/src/lightning/button/button.css +2 -0
  35. package/src/lightning/button/button.html +4 -2
  36. package/src/lightning/button/button.js +21 -0
  37. package/src/lightning/button/button.slds.css +527 -0
  38. package/src/lightning/buttonGroup/buttonGroup.css +2 -2
  39. package/src/lightning/buttonGroup/buttonGroup.js +3 -2
  40. package/src/lightning/buttonIcon/button-icon.slds.css +215 -453
  41. package/src/lightning/buttonIcon/buttonIcon.css +2 -2
  42. package/src/lightning/buttonIcon/buttonIcon.js +4 -0
  43. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +215 -453
  44. package/src/lightning/buttonIconStateful/buttonIconStateful.css +2 -2
  45. package/src/lightning/buttonMenu/{dropdown.slds.css → button-menu.slds.css} +853 -217
  46. package/src/lightning/buttonMenu/buttonMenu.css +2 -2
  47. package/src/lightning/buttonMenu/buttonMenu.html +2 -2
  48. package/src/lightning/buttonMenu/buttonMenu.js +10 -14
  49. package/src/lightning/buttonStateful/button-stateful.slds.css +225 -457
  50. package/src/lightning/buttonStateful/buttonStateful.css +2 -2
  51. package/src/lightning/buttonStateful/buttonStateful.js +3 -2
  52. package/src/lightning/calendar/__examples__/basic/basic.html +7 -0
  53. package/src/lightning/calendar/__examples__/basic/basic.js +3 -0
  54. package/src/lightning/calendar/calendar.css +3 -0
  55. package/src/lightning/calendar/calendar.html +12 -9
  56. package/src/lightning/calendar/calendar.js +15 -1
  57. package/src/lightning/calendar/calendar.slds.css +2048 -0
  58. package/src/lightning/card/card.css +2 -2
  59. package/src/lightning/card/card.js +3 -2
  60. package/src/lightning/card/card.slds.css +141 -88
  61. package/src/lightning/colorPickerCustom/colorPickerCustom.css +2 -2
  62. package/src/lightning/colorPickerCustom/colorPickerCustom.js +3 -2
  63. package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +11 -38
  64. package/src/lightning/colorPickerPanel/colorPickerPanel.css +3 -2
  65. package/src/lightning/colorPickerPanel/colorPickerPanel.js +4 -2
  66. package/src/lightning/colorPickerPanel/popover.slds.css +121 -0
  67. package/src/lightning/combobox/combobox.css +4 -0
  68. package/src/lightning/combobox/combobox.html +31 -29
  69. package/src/lightning/combobox/combobox.js +21 -4
  70. package/src/lightning/combobox/combobox.slds.css +13 -0
  71. package/src/lightning/combobox/form-element.slds.css +281 -0
  72. package/src/lightning/configProvider/defaultConfig.js +2 -1
  73. package/src/lightning/datepicker/datepicker.css +3 -0
  74. package/src/lightning/datepicker/datepicker.html +7 -4
  75. package/src/lightning/datepicker/datepicker.js +73 -19
  76. package/src/lightning/datepicker/form-element.slds.css +281 -0
  77. package/src/lightning/datepicker/input-text.slds.css +398 -0
  78. package/src/lightning/datetimepicker/datetimepicker.css +3 -0
  79. package/src/lightning/datetimepicker/datetimepicker.html +9 -3
  80. package/src/lightning/datetimepicker/datetimepicker.js +39 -35
  81. package/src/lightning/datetimepicker/form-element.slds.css +281 -0
  82. package/src/lightning/datetimepicker/input-text.slds.css +398 -0
  83. package/src/lightning/dualListbox/dualListbox.css +2 -2
  84. package/src/lightning/dualListbox/dualListbox.html +3 -3
  85. package/src/lightning/dualListbox/dualListbox.js +31 -6
  86. package/src/lightning/dualListbox/form-element.slds.css +83 -34
  87. package/src/lightning/dualListbox/keyboard.js +20 -1
  88. package/src/lightning/dynamicIcon/dynamicIcon.js +3 -2
  89. package/src/lightning/dynamicIcon/ellie.css +1 -1
  90. package/src/lightning/dynamicIcon/eq.css +1 -1
  91. package/src/lightning/dynamicIcon/score.css +1 -1
  92. package/src/lightning/dynamicIcon/strength.css +1 -1
  93. package/src/lightning/dynamicIcon/trend.css +1 -1
  94. package/src/lightning/dynamicIcon/waffle.css +1 -1
  95. package/src/lightning/formattedRichText/linkify.js +2 -2
  96. package/src/lightning/helptext/form-element.slds.css +83 -34
  97. package/src/lightning/helptext/help-text.slds.css +215 -453
  98. package/src/lightning/helptext/helptext.css +2 -2
  99. package/src/lightning/helptext/helptext.js +3 -2
  100. package/src/lightning/i18nCldrOptions/README.md +5 -0
  101. package/src/lightning/i18nService/README.md +5 -0
  102. package/src/lightning/icon/icon.css +2 -2
  103. package/src/lightning/icon/icon.js +16 -2
  104. package/src/lightning/icon/icon.slds.css +29 -17
  105. package/src/lightning/icon/iconColors.js +1 -0
  106. package/src/lightning/input/__examples__/text/text.html +0 -1
  107. package/src/lightning/input/form-element.slds.css +281 -0
  108. package/src/lightning/input/input-checkbox.slds.css +3 -12
  109. package/src/lightning/input/input-text.slds.css +239 -128
  110. package/src/lightning/input/input.css +2 -1
  111. package/src/lightning/input/input.html +8 -8
  112. package/src/lightning/input/input.js +107 -73
  113. package/src/lightning/internationalizationLibrary/README.md +24 -0
  114. package/src/lightning/internationalizationLibrary/utils.js +4 -1
  115. package/src/lightning/layout/__docs__/layout.md +1 -1
  116. package/src/lightning/layout/__examples__/simple/simple.css +1 -1
  117. package/src/lightning/layout/layout.css +5 -1
  118. package/src/lightning/layout/layout.js +4 -2
  119. package/src/lightning/layoutItem/__examples__/alignmentBump/alignmentBump.css +1 -1
  120. package/src/lightning/layoutItem/__examples__/sizePerDevice/sizePerDevice.css +0 -1
  121. package/src/lightning/layoutItem/layoutItem.css +5 -0
  122. package/src/lightning/layoutItem/layoutItem.js +4 -2
  123. package/src/lightning/menuDivider/menu-divider.slds.css +15 -0
  124. package/src/lightning/menuDivider/menuDivider.css +3 -0
  125. package/src/lightning/menuDivider/menuDivider.html +1 -1
  126. package/src/lightning/menuDivider/menuDivider.js +4 -2
  127. package/src/lightning/menuItem/menu-item.slds.css +140 -0
  128. package/src/lightning/menuItem/menuItem.css +3 -0
  129. package/src/lightning/menuItem/menuItem.html +43 -41
  130. package/src/lightning/menuItem/menuItem.js +4 -4
  131. package/src/lightning/menuSubheader/menu-subheader.slds.css +22 -0
  132. package/src/lightning/menuSubheader/menuSubheader.css +3 -0
  133. package/src/lightning/menuSubheader/menuSubheader.html +3 -1
  134. package/src/lightning/menuSubheader/menuSubheader.js +4 -6
  135. package/src/lightning/modal/__docs__/modal.md +3 -1
  136. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +267 -0
  137. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +1165 -0
  138. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +131 -0
  139. package/src/lightning/modal/modal.js +1 -1
  140. package/src/lightning/pill/avatar.slds.css +272 -0
  141. package/src/lightning/pill/link.css +3 -0
  142. package/src/lightning/pill/link.html +1 -1
  143. package/src/lightning/pill/pill.js +29 -9
  144. package/src/lightning/pill/pill.slds.css +168 -0
  145. package/src/lightning/pill/plain.css +3 -0
  146. package/src/lightning/pill/plain.html +1 -1
  147. package/src/lightning/pill/plainLink.css +3 -0
  148. package/src/lightning/pill/plainLink.html +1 -1
  149. package/src/lightning/pillContainer/barePillContainer.css +3 -0
  150. package/src/lightning/pillContainer/barePillContainer.html +1 -2
  151. package/src/lightning/pillContainer/listbox.slds.css +267 -0
  152. package/src/lightning/pillContainer/pill-container.slds.css +22 -0
  153. package/src/lightning/pillContainer/pill.slds.css +168 -0
  154. package/src/lightning/pillContainer/pillContainer.js +7 -3
  155. package/src/lightning/pillContainer/standardPillContainer.css +4 -0
  156. package/src/lightning/pillContainer/standardPillContainer.html +2 -2
  157. package/src/lightning/popup/popover.slds.css +119 -119
  158. package/src/lightning/popup/popup.css +1 -2
  159. package/src/lightning/popup/popup.js +3 -2
  160. package/src/lightning/positionLibrary/elementProxy.js +7 -2
  161. package/src/lightning/positionLibrary/util.js +8 -0
  162. package/src/lightning/primitiveBubble/primitiveBubble.css +2 -2
  163. package/src/lightning/primitiveBubble/primitiveBubble.js +4 -2
  164. package/src/lightning/primitiveButton/primitiveButton.js +5 -4
  165. package/src/lightning/primitiveCellFactory/cellWithStandardLayout.html +29 -21
  166. package/src/lightning/primitiveCellFactory/primitiveCellFactory.js +4 -0
  167. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +31 -19
  168. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.css +2 -2
  169. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.js +5 -3
  170. package/src/lightning/primitiveIcon/icon.slds.css +209 -0
  171. package/src/lightning/primitiveIcon/primitiveIcon.css +2 -1
  172. package/src/lightning/primitiveIcon/primitiveIcon.html +1 -1
  173. package/src/lightning/primitiveIcon/primitiveIcon.js +18 -11
  174. package/src/lightning/progressStep/progressStep.js +10 -13
  175. package/src/lightning/radioGroup/radioGroup.css +2 -1
  176. package/src/lightning/radioGroup/radioGroup.js +4 -2
  177. package/src/lightning/select/form-element.slds.css +83 -34
  178. package/src/lightning/select/select.css +2 -2
  179. package/src/lightning/select/select.js +4 -2
  180. package/src/lightning/select/select.slds.css +86 -34
  181. package/src/lightning/sldsCommon/sldsCommon.css +135 -75
  182. package/src/lightning/spinner/spinner.css +2 -2
  183. package/src/lightning/spinner/spinner.js +4 -2
  184. package/src/lightning/tabBar/tab-bar.slds.css +334 -0
  185. package/src/lightning/tabBar/tabBar.css +2 -0
  186. package/src/lightning/tabBar/tabBar.html +4 -3
  187. package/src/lightning/tabBar/tabBar.js +30 -3
  188. package/src/lightning/tabset/tabset.html +5 -4
  189. package/src/lightning/tabset/tabset.js +29 -11
  190. package/src/lightning/timepicker/form-element.slds.css +281 -0
  191. package/src/lightning/timepicker/timepicker.css +3 -0
  192. package/src/lightning/timepicker/timepicker.html +5 -1
  193. package/src/lightning/timepicker/timepicker.js +18 -15
  194. package/src/lightning/timepicker/timepicker.slds.css +18 -0
  195. package/src/lightning/tooltipLibrary/tooltipLibrary.js +21 -19
  196. package/src/lightning/utilsPrivate/browser.js +5 -3
  197. package/src/lightning/utilsPrivate/os.js +6 -4
  198. package/src/lightning/utilsPrivate/ssr.js +4 -0
  199. package/src/lightning/utilsPrivate/utilsPrivate.js +2 -0
  200. package/src/lightning/verticalNavigation/verticalNavigation.css +2 -1
  201. package/src/lightning/verticalNavigation/verticalNavigation.js +3 -2
  202. package/src/lightning/verticalNavigationSection/verticalNavigationSection.css +2 -1
  203. package/src/lightning/verticalNavigationSection/verticalNavigationSection.js +3 -2
  204. package/src/lightning/accordion/__perf__DISABLED/accordion-perf-utils.js +0 -76
  205. package/src/lightning/accordion/__perf__DISABLED/accordion10Multiple25SectionEach.perf.js +0 -57
  206. package/src/lightning/accordion/__perf__DISABLED/accordion10Simple25SectionEach.perf.js +0 -37
  207. package/src/lightning/accordion/__perf__DISABLED/accordionMultiple50Section.perf.js +0 -45
  208. package/src/lightning/accordion/__perf__DISABLED/accordionSimple50Section.perf.js +0 -35
  209. package/src/lightning/accordion/__perf__DISABLED/container/container.html +0 -15
  210. package/src/lightning/accordion/__perf__DISABLED/container/container.js +0 -7
  211. package/src/lightning/positionLibrary/__component__/positionLibraryBounding.spec.js +0 -319
  212. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.css +0 -16
  213. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.html +0 -36
  214. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.js +0 -122
  215. /package/src/lightning/{baseCombobox → baseComboboxItem}/listbox.slds.css +0 -0
@@ -49,39 +49,39 @@
49
49
 
50
50
  @supports (--styling-hooks: '') {
51
51
  :host([data-render-mode="shadow"][size~='xxx-small']) {
52
- --slds-c-icon-sizing: 0.5rem;
52
+ --slds-c-icon-sizing: var(--sds-g-sizing-3, 0.5rem);
53
53
  }
54
54
 
55
55
  :host([data-render-mode="shadow"][size~='xx-small']) {
56
- --slds-c-icon-sizing: 0.875rem;
56
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-1, 0.125rem) + var(--sds-g-sizing-4, 0.75rem));
57
57
  }
58
58
 
59
59
  :host([data-render-mode="shadow"][size~='x-small']) {
60
- --slds-c-icon-sizing: 1rem;
60
+ --slds-c-icon-sizing: var(--sds-g-sizing-5, 1rem);
61
61
  }
62
62
 
63
63
  :host([data-render-mode="shadow"][size~='small']) {
64
- --slds-c-icon-sizing: 1.5rem;
64
+ --slds-c-icon-sizing: var(--sds-g-sizing-7, 1.5rem);
65
65
  }
66
66
 
67
67
  :host([data-render-mode="shadow"][size~='large']) {
68
- --slds-c-icon-sizing: 3rem;
68
+ --slds-c-icon-sizing: var(--sds-g-sizing-10, 3rem);
69
69
  }
70
70
 
71
71
  :host([data-render-mode="shadow"][variant~='warning']) {
72
- --slds-c-icon-color-foreground: var(--sds-g-color-warning-base-4);
72
+ --slds-c-icon-color-foreground: var(--sds-g-color-warning-base-70, #fe9339);
73
73
  }
74
74
 
75
75
  :host([data-render-mode="shadow"][variant~='success']) {
76
- --slds-c-icon-color-foreground: var(--sds-g-color-success-base-contrast-1);
76
+ --slds-c-icon-color-foreground: var(--sds-g-color-success-base-50, #2e844a);
77
77
  }
78
78
 
79
79
  :host([data-render-mode="shadow"][variant~='error']) {
80
- --slds-c-icon-color-foreground: var(--sds-g-color-error-base-contrast-1);
80
+ --slds-c-icon-color-foreground: var(--sds-g-color-error-base-50, #ea001e);
81
81
  }
82
82
 
83
83
  :host([data-render-mode="shadow"][variant~='light']) {
84
- --slds-c-icon-color-foreground: var(--sds-g-color-neutral-base-contrast-1);
84
+ --slds-c-icon-color-foreground: var(--sds-g-color-neutral-base-70, #aeaeae);
85
85
  }
86
86
 
87
87
  :host([data-render-mode="shadow"]) [part~='boundary'] {
@@ -115,15 +115,15 @@
115
115
  }
116
116
 
117
117
  :host([data-render-mode="shadow"]) [part~='icon'] {
118
- --sds-c-icon-color-foreground: var(--slds-c-icon-color-foreground, var(--sds-g-color-neutral-base-1));
119
- --sds-c-icon-sizing-height: var(--slds-c-icon-sizing-height, var(--slds-c-icon-sizing, 2rem));
120
- --sds-c-icon-sizing-width: var(--slds-c-icon-sizing-width, var(--slds-c-icon-sizing, 2rem));
118
+ --sds-c-icon-color-foreground: var(--slds-c-icon-color-foreground, var(--sds-g-color-neutral-base-100, #ffffff));
119
+ --sds-c-icon-sizing-height: var(--slds-c-icon-sizing-height, var(--slds-c-icon-sizing, var(--sds-g-sizing-9, 2rem)));
120
+ --sds-c-icon-sizing-width: var(--slds-c-icon-sizing-width, var(--slds-c-icon-sizing, var(--sds-g-sizing-9, 2rem)));
121
121
  }
122
122
 
123
123
  :host([data-render-mode="shadow"][icon-name*='action']) {
124
- --slds-c-icon-spacing-block: 0.5rem;
125
- --slds-c-icon-spacing-inline: 0.5rem;
126
- --slds-c-icon-radius-border: 50%;
124
+ --slds-c-icon-spacing-block: var(--sds-g-sizing-3, 0.5rem);
125
+ --slds-c-icon-spacing-inline: var(--sds-g-sizing-3, 0.5rem);
126
+ --slds-c-icon-radius-border: calc(var(--sds-g-radius-border-circle, 100%) / 2);
127
127
  }
128
128
  }
129
129
 
@@ -152,12 +152,13 @@
152
152
  /*! @css-var-fallback fill */
153
153
  --slds-c-icon-color-foreground: var(
154
154
  --slds-c-icon-color-foreground-default,
155
- var(--sds-c-icon-color-foreground-default, #706e6b)
155
+ var(--sds-c-icon-color-foreground-default, var(
156
+ --sds-g-color-neutral-base-50, #747474))
156
157
  );
157
158
  }
158
159
 
159
160
  :host([data-render-mode="shadow"]) .slds-icon-text-default.slds-is-disabled {
160
- fill: #dddbda;
161
+ fill: var(--sds-g-color-neutral-base-80, #c9c9c9);
161
162
  }
162
163
 
163
164
  /**
@@ -196,6 +197,17 @@
196
197
  background-color: currentColor;
197
198
  }
198
199
 
200
+ :host([data-render-mode="shadow"]) .slds-input__icon {
201
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-1, 0.125rem) + var(--sds-g-sizing-4, 0.75rem));
202
+
203
+ position: absolute;
204
+ top: 50%;
205
+ margin-block-start: -0.4375rem;
206
+ line-height: var(--sds-g-font-lineheight-1, 1);
207
+ border: 0;
208
+ z-index: 2;
209
+ }
210
+
199
211
  /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
200
212
  Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
201
213
 
@@ -213,6 +225,7 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
213
225
  padding-block: var(--slds-c-colorpickerbutton-spacing-block, 0.3rem);
214
226
  background: var(--slds-c-colorpickerbutton-color-background, var(--sds-g-color-brand-base-100, #ffffff));
215
227
  line-height: 1;
228
+ margin-inline-end: var(--sds-g-spacing-1, 0.25rem);
216
229
  border-color: var(--slds-c-colorpickerbutton-color-border, var(--sds-g-color-neutral-base-80, #c9c9c9));
217
230
  justify-content: center;
218
231
  flex-shrink: 0;
@@ -265,7 +278,6 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
265
278
  width: 1.25rem;
266
279
  border-radius: var(--sds-g-radius-border-1, 0.125rem);
267
280
  box-shadow: inset 0 0 1px rgb(0 0 0 / 40%);
268
- margin-inline-end: var(--sds-g-spacing-1, 0.25rem);
269
281
  }
270
282
 
271
283
  :host([data-render-mode="shadow"]) [part='color-picker-button'] .slds-assistive-text {
@@ -291,7 +303,7 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
291
303
  border-color: var(--slds-c-colorpickerbutton-color-border-disabled, var(--sds-g-color-neutral-base-80, #c9c9c9));
292
304
  }
293
305
 
294
- /* TO DO: .panel and .panel-open should be renamed
306
+ /* TO DO: .panel and .panel-open should be renamed
295
307
  when working on color-input ticket */
296
308
  :host([data-render-mode="shadow"]) [part='color-picker-button'] + .panel {
297
309
  display: none;
@@ -1,2 +1,2 @@
1
- /* @import 'lightning/sldsCommon';
2
- @import './color-picker-button.slds.css'; */
1
+ @import 'lightning/sldsCommon';
2
+ @import './color-picker-button.slds.css';
@@ -1,12 +1,13 @@
1
1
  import labelA11yTriggerText from '@salesforce/label/LightningColorPicker.a11yTriggerText';
2
- import { LightningElement, api, track } from 'lwc';
2
+ import { api, track } from 'lwc';
3
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
3
4
  import { Direction, AutoPosition } from 'lightning/positionLibrary';
4
- import { normalizeBoolean } from 'lightning/utilsPrivate';
5
+ import { normalizeBoolean, reflectAttribute } from 'lightning/utilsPrivate';
5
6
 
6
7
  const i18n = {
7
8
  a11yTriggerText: labelA11yTriggerText,
8
9
  };
9
- export default class PrimitiveColorpickerButton extends LightningElement {
10
+ export default class PrimitiveColorpickerButton extends LightningShadowBaseClass {
10
11
  static delegatesFocus = true;
11
12
 
12
13
  @track _isColorPickerPanelOpen = false;
@@ -34,6 +35,7 @@ export default class PrimitiveColorpickerButton extends LightningElement {
34
35
 
35
36
  set disabled(value) {
36
37
  this._disabled = normalizeBoolean(value);
38
+ reflectAttribute(this, 'disabled', this.disabled);
37
39
  }
38
40
 
39
41
  @api
@@ -0,0 +1,209 @@
1
+ /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
2
+ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
3
+
4
+ :host([data-render-mode="shadow"]) {
5
+ /**
6
+ * Establish independent formatting context, we don't want ancestor rules affecting our layout.
7
+ * This assumes there will not be a direct, child inline-level element.
8
+ * See https://www.w3.org/TR/css-display-3/#establish-an-independent-formatting-context
9
+ */
10
+ display: inline-flex;
11
+ }
12
+
13
+ :host([data-render-mode="shadow"]) [part~='boundary'] {
14
+ padding-block-start: var(--sds-c-icon-spacing-block-start, var(--sds-c-icon-spacing));
15
+ padding-block-end: var(--sds-c-icon-spacing-block-end, var(--sds-c-icon-spacing));
16
+ padding-inline-start: var(--sds-c-icon-spacing-inline-start, var(--sds-c-icon-spacing));
17
+ padding-inline-end: var(--sds-c-icon-spacing-inline-end, var(--sds-c-icon-spacing));
18
+ border-radius: var(--sds-c-icon-radius-border);
19
+ border-width: var(--sds-c-icon-sizing-border, 1px);
20
+ border-style: solid;
21
+ border-color: var(--sds-c-icon-color-border, transparent);
22
+ background-color: var(--sds-c-icon-color-background);
23
+ }
24
+
25
+ :host([data-render-mode="shadow"]) [part~='icon'] {
26
+ display: flex; /* See line #5 */
27
+ height: var(--sds-c-icon-sizing-height, var(--sds-c-icon-sizing));
28
+ width: var(--sds-c-icon-sizing-width, var(--sds-c-icon-sizing));
29
+ color: var(--sds-c-icon-color-foreground);
30
+ }
31
+
32
+ /**
33
+ * Normalize svgs and control width/height with Styling Hooks
34
+ */
35
+
36
+ :host([data-render-mode="shadow"]) svg {
37
+ width: 100%;
38
+ height: 100%;
39
+ }
40
+
41
+ /**
42
+ * @Note: Static fallbacks are in place until SLDS adopts SDS. Without static
43
+ * fallbacks, styles will regress due to invalid CSS variables from
44
+ * missing SLDS shared and globals.
45
+ *
46
+ * Additionally, LBC are currently relying on 'part' attributes to
47
+ * receive styling. Authoring styles that rely on slots is not recommended.
48
+ */
49
+
50
+ @supports (--styling-hooks: '') {
51
+ :host([data-render-mode="shadow"][size~='xxx-small']) {
52
+ --slds-c-icon-sizing: var(--sds-g-sizing-3, 0.5rem);
53
+ }
54
+
55
+ :host([data-render-mode="shadow"][size~='xx-small']) {
56
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-1, 0.125rem) + var(--sds-g-sizing-4, 0.75rem));
57
+ }
58
+
59
+ :host([data-render-mode="shadow"][size~='x-small']) {
60
+ --slds-c-icon-sizing: var(--sds-g-sizing-5, 1rem);
61
+ }
62
+
63
+ :host([data-render-mode="shadow"][size~='small']) {
64
+ --slds-c-icon-sizing: var(--sds-g-sizing-7, 1.5rem);
65
+ }
66
+
67
+ :host([data-render-mode="shadow"][size~='large']) {
68
+ --slds-c-icon-sizing: var(--sds-g-sizing-10, 3rem);
69
+ }
70
+
71
+ :host([data-render-mode="shadow"][variant~='warning']) {
72
+ --slds-c-icon-color-foreground: var(--sds-g-color-warning-base-70, #fe9339);
73
+ }
74
+
75
+ :host([data-render-mode="shadow"][variant~='success']) {
76
+ --slds-c-icon-color-foreground: var(--sds-g-color-success-base-50, #2e844a);
77
+ }
78
+
79
+ :host([data-render-mode="shadow"][variant~='error']) {
80
+ --slds-c-icon-color-foreground: var(--sds-g-color-error-base-50, #ea001e);
81
+ }
82
+
83
+ :host([data-render-mode="shadow"][variant~='light']) {
84
+ --slds-c-icon-color-foreground: var(--sds-g-color-neutral-base-70, #aeaeae);
85
+ }
86
+
87
+ :host([data-render-mode="shadow"]) [part~='boundary'] {
88
+ /* --sds-c-icon-color-background: var(--slds-c-icon-color-background); */
89
+ --sds-c-icon-radius-border: var(--slds-c-icon-radius-border, var(--sds-g-radius-border-2, 0.25rem));
90
+ --sds-c-icon-sizing-border: var(--slds-c-icon-sizing-border);
91
+ --sds-c-icon-color-border: var(--slds-c-icon-color-border);
92
+ --sds-c-icon-spacing-block-start: var(
93
+ --slds-c-icon-spacing-block-start,
94
+ var(--slds-c-icon-spacing-block)
95
+ );
96
+ --sds-c-icon-spacing-block-end: var(--slds-c-icon-spacing-block-end, var(--slds-c-icon-spacing-block));
97
+ --sds-c-icon-spacing-inline-start: var(
98
+ --slds-c-icon-spacing-inline-start,
99
+ var(--slds-c-icon-spacing-inline)
100
+ );
101
+ --sds-c-icon-spacing-inline-end: var(--slds-c-icon-spacing-inline-end, var(--slds-c-icon-spacing-inline));
102
+
103
+ /**
104
+ * There's a divergence in LBC that we have to support here: LBC splits their
105
+ * icon implementation into two components: lightning-icon and lightning-primitive-icon.
106
+ * slds-icon is consumed within both with no issues except that the presence of an
107
+ * additional custom element (primitive-icon) creates an unexpected inline-level
108
+ * element and breaks our formatting context. tl;dr, we have to reset the formatting
109
+ * context of the boundary or else we'll inherit line-height from an ancestor and
110
+ * get visual regressions.
111
+ *
112
+ * If lightning-icon is refactored into a single component, this line can be removed.
113
+ */
114
+ display: inline-flex;
115
+ }
116
+
117
+ :host([data-render-mode="shadow"]) [part~='icon'] {
118
+ --sds-c-icon-color-foreground: var(--slds-c-icon-color-foreground, var(--sds-g-color-neutral-base-100, #ffffff));
119
+ --sds-c-icon-sizing-height: var(--slds-c-icon-sizing-height, var(--slds-c-icon-sizing, var(--sds-g-sizing-9, 2rem)));
120
+ --sds-c-icon-sizing-width: var(--slds-c-icon-sizing-width, var(--slds-c-icon-sizing, var(--sds-g-sizing-9, 2rem)));
121
+ }
122
+
123
+ :host([data-render-mode="shadow"][icon-name*='action']) {
124
+ --slds-c-icon-spacing-block: var(--sds-g-sizing-3, 0.5rem);
125
+ --slds-c-icon-spacing-inline: var(--sds-g-sizing-3, 0.5rem);
126
+ --slds-c-icon-radius-border: calc(var(--sds-g-radius-border-circle, 100%) / 2);
127
+ }
128
+ }
129
+
130
+ /**
131
+ * P R I V A T E
132
+ *
133
+ * The following styling is implemented by classes within the shadow DOM.
134
+ * They're expected to be private to the component and not for external use.
135
+ *
136
+ * See notes for each class for the rationale behind their inclusion.
137
+ */
138
+
139
+ /**
140
+ * Utility icons traditionally added a class to change the default foreground
141
+ * color (white) to a grey. This was done implicitly whereas other color changes
142
+ * were done explicitly through the 'variant' attribute. So this is an outlier
143
+ * to the overall pattern. Leaving it as-is since an update would require an
144
+ * API change or more investigating.
145
+ *
146
+ * This is a hybrid patch between synthetic and native shadow. The ideal final
147
+ * outcome is the removal of this class and the default utility styling would
148
+ * be implemented through an attribute or some other class-less solution.
149
+ */
150
+
151
+ :host([data-render-mode="shadow"]) .slds-icon-text-default {
152
+ /*! @css-var-fallback fill */
153
+ --slds-c-icon-color-foreground: var(
154
+ --slds-c-icon-color-foreground-default,
155
+ var(--sds-c-icon-color-foreground-default, var(
156
+ --sds-g-color-neutral-base-50, #747474))
157
+ );
158
+ }
159
+
160
+ :host([data-render-mode="shadow"]) .slds-icon-text-default.slds-is-disabled {
161
+ fill: var(--sds-g-color-neutral-base-80, #c9c9c9);
162
+ }
163
+
164
+ /**
165
+ * A temporarily baked-in utility class until SLDS gets a proper utility package.
166
+ *
167
+ * This is a hybrid patch between synthetic and native shadow. The ideal final
168
+ * outcome is the removal of this class and replacing the class with the SLDS
169
+ * utility package solution.
170
+ */
171
+
172
+ :host([data-render-mode="shadow"]) .slds-assistive-text {
173
+ position: absolute !important;
174
+ margin: -1px !important;
175
+ border: 0 !important;
176
+ padding: 0 !important;
177
+ width: 1px !important;
178
+ height: 1px !important;
179
+ overflow: hidden !important;
180
+ clip: rect(0 0 0 0) !important;
181
+ text-transform: none !important;
182
+ white-space: nowrap !important;
183
+ }
184
+
185
+ /**
186
+ * For the initial alpha version, we're hardcoding in the various unique icon styles.
187
+ *
188
+ * Next version, we want to dynamically generate these from legacy SLDS with the
189
+ * following design pattern:
190
+ *
191
+ * [type="action"][icon-name="approval"] {
192
+ * --sds-c-icon-color-background: var(--slds-c-icon-color-background, #111);
193
+ * }
194
+ */
195
+
196
+ :host([data-render-mode="shadow"]) .slds-icon_disabled {
197
+ background-color: currentColor;
198
+ }
199
+
200
+ :host([data-render-mode="shadow"]) .slds-input__icon {
201
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-1, 0.125rem) + var(--sds-g-sizing-4, 0.75rem));
202
+
203
+ position: absolute;
204
+ top: 50%;
205
+ margin-block-start: -0.4375rem;
206
+ line-height: var(--sds-g-font-lineheight-1, 1);
207
+ border: 0;
208
+ z-index: 2;
209
+ }
@@ -1,8 +1,9 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import './icon.slds.css';
1
3
  /*
2
4
  "Temporary" fix for Edge SVG quirk. We can remove this when it is fixed either
3
5
  at the SLDS level or at the browser level.
4
6
  https://git.soma.salesforce.com/aura/lightning-global/issues/1349
5
-
6
7
  Also prevents IE11 from gacking during some interactions
7
8
  */
8
9
  _:-ms-lang(x), svg {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <svg class={computedClass} focusable="false" data-key={name} aria-hidden="true">
2
+ <svg class={computedClass} focusable="false" data-key={name} aria-hidden="true" part="icon">
3
3
  <use xlink:href={href}></use>
4
4
  </svg>
5
5
  </template>
@@ -1,14 +1,16 @@
1
- import { LightningElement, api } from 'lwc';
1
+ import { api } from 'lwc';
2
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
2
3
  import { classSet } from 'lightning/utils';
3
4
  import { normalizeString as normalize } from 'lightning/utilsPrivate';
4
5
 
5
6
  import standardTemplate from './primitiveIcon.html';
7
+ import iconStylesheets from './primitiveIcon.css';
6
8
 
7
9
  import { getName, isValidName, polyfill } from 'lightning/iconUtils';
8
10
  import dir from '@salesforce/i18n/dir';
9
11
  import { fetchIconLibrary, hasIconLibrary, getIconLibrary } from './fetch';
10
12
 
11
- export default class LightningPrimitiveIcon extends LightningElement {
13
+ export default class LightningPrimitiveIcon extends LightningShadowBaseClass {
12
14
  @api src;
13
15
  @api svgClass;
14
16
  _size = 'medium';
@@ -23,6 +25,7 @@ export default class LightningPrimitiveIcon extends LightningElement {
23
25
  }
24
26
  set size(val) {
25
27
  this._size = val;
28
+ this.setAttribute('size', this.normalizeSize(this._size));
26
29
  }
27
30
 
28
31
  @api
@@ -31,6 +34,7 @@ export default class LightningPrimitiveIcon extends LightningElement {
31
34
  }
32
35
  set variant(val) {
33
36
  this._variant = val;
37
+ this.setAttribute('variant', this.normalizeVariant(this._variant));
34
38
  }
35
39
 
36
40
  @api
@@ -95,6 +99,10 @@ export default class LightningPrimitiveIcon extends LightningElement {
95
99
  this._iconLibrary[`${spriteName}_${iconName}`];
96
100
 
97
101
  if (template) {
102
+ // manually attach the stylesheets in native shadow mode
103
+ if (!this.template.synthetic) {
104
+ template.stylesheets = iconStylesheets;
105
+ }
98
106
  return template;
99
107
  }
100
108
  }
@@ -111,14 +119,14 @@ export default class LightningPrimitiveIcon extends LightningElement {
111
119
  return getName(this.iconName);
112
120
  }
113
121
 
114
- get normalizedSize() {
115
- return normalize(this._size, {
122
+ normalizeSize(val) {
123
+ return normalize(val, {
116
124
  fallbackValue: 'medium',
117
125
  validValues: ['xx-small', 'x-small', 'small', 'medium', 'large'],
118
126
  });
119
127
  }
120
128
 
121
- get normalizedVariant() {
129
+ normalizeVariant(val) {
122
130
  // NOTE: Leaving a note here because I just wasted a bunch of time
123
131
  // investigating why both 'bare' and 'inverse' are supported in
124
132
  // lightning-primitive-icon. lightning-icon also has a deprecated
@@ -126,7 +134,7 @@ export default class LightningPrimitiveIcon extends LightningElement {
126
134
  // that no classes should be applied. So this component needs to
127
135
  // support both 'bare' and 'inverse' while lightning-icon only needs to
128
136
  // support 'inverse'.
129
- return normalize(this._variant, {
137
+ return normalize(val, {
130
138
  fallbackValue: '',
131
139
  validValues: ['bare', 'error', 'inverse', 'warning', 'success'],
132
140
  });
@@ -134,13 +142,12 @@ export default class LightningPrimitiveIcon extends LightningElement {
134
142
 
135
143
  get computedClass() {
136
144
  const classes = classSet(this.svgClass);
137
- const { normalizedSize, normalizedVariant } = this;
138
145
 
139
- if (normalizedVariant !== 'bare') {
146
+ if (this._variant !== 'bare') {
140
147
  classes.add('slds-icon');
141
148
  }
142
149
 
143
- switch (normalizedVariant) {
150
+ switch (this._variant) {
144
151
  case 'error':
145
152
  classes.add('slds-icon-text-error');
146
153
  break;
@@ -161,8 +168,8 @@ export default class LightningPrimitiveIcon extends LightningElement {
161
168
  }
162
169
  }
163
170
 
164
- if (normalizedSize !== 'medium') {
165
- classes.add(`slds-icon_${normalizedSize}`);
171
+ if (this._size !== 'medium') {
172
+ classes.add(`slds-icon_${this._size}`);
166
173
  }
167
174
 
168
175
  return classes.toString();
@@ -102,6 +102,9 @@ export default class LightningProgressStep extends LightningElement {
102
102
  if (this._deRegistrationCallback) {
103
103
  this._deRegistrationCallback();
104
104
  }
105
+ if (this._tooltip) {
106
+ this._tooltip.disconnect();
107
+ }
105
108
  }
106
109
 
107
110
  renderedCallback() {
@@ -153,7 +156,6 @@ export default class LightningProgressStep extends LightningElement {
153
156
  }
154
157
 
155
158
  handleMouseEnter() {
156
- this.updateAriaDescribedBy('progress-indicator-tooltip');
157
159
  this.dispatchEvent(
158
160
  // eslint-disable-next-line lightning-global/no-custom-event-bubbling
159
161
  new CustomEvent('stepmouseenter', {
@@ -164,7 +166,7 @@ export default class LightningProgressStep extends LightningElement {
164
166
  }
165
167
 
166
168
  handleMouseLeave() {
167
- this.updateAriaDescribedBy(null);
169
+ this.clearAriaDescribedBy();
168
170
  this.dispatchEvent(
169
171
  // eslint-disable-next-line lightning-global/no-custom-event-bubbling
170
172
  new CustomEvent('stepmouseleave', {
@@ -175,10 +177,6 @@ export default class LightningProgressStep extends LightningElement {
175
177
  }
176
178
 
177
179
  handleFocus() {
178
- if (this.state.type === 'base') {
179
- this.updateAriaDescribedBy('progress-indicator-tooltip');
180
- }
181
-
182
180
  this.dispatchEvent(
183
181
  // eslint-disable-next-line lightning-global/no-custom-event-bubbling
184
182
  new CustomEvent('stepfocus', {
@@ -189,7 +187,7 @@ export default class LightningProgressStep extends LightningElement {
189
187
  }
190
188
 
191
189
  handleBlur() {
192
- this.updateAriaDescribedBy(null);
190
+ this.clearAriaDescribedBy();
193
191
  this.dispatchEvent(
194
192
  // eslint-disable-next-line lightning-global/no-custom-event-bubbling
195
193
  new CustomEvent('stepblur', {
@@ -199,15 +197,11 @@ export default class LightningProgressStep extends LightningElement {
199
197
  );
200
198
  }
201
199
 
202
- updateAriaDescribedBy(value) {
200
+ clearAriaDescribedBy() {
203
201
  if (this.state.type === 'base') {
204
202
  const button = this.template.querySelector('button');
205
203
  if (button) {
206
- if (value !== null) {
207
- button.setAttribute('aria-describedBy', value);
208
- } else {
209
- button.removeAttribute('aria-describedBy');
210
- }
204
+ button.removeAttribute('aria-describedBy');
211
205
  }
212
206
  }
213
207
  }
@@ -246,6 +240,9 @@ export default class LightningProgressStep extends LightningElement {
246
240
  },
247
241
  });
248
242
  this._tooltip.initialize();
243
+
244
+ // unset aria-describedby that would've been set by tooltipLibrary
245
+ this.clearAriaDescribedBy();
249
246
  }
250
247
  }
251
248
  }
@@ -1,4 +1,5 @@
1
- /* @import './input-radio-group.slds.css'; */
1
+ @import 'lightning/sldsCommon';
2
+ @import './input-radio-group.slds.css';
2
3
 
3
4
  :host {
4
5
  display: block;
@@ -1,5 +1,6 @@
1
1
  import labelRequired from '@salesforce/label/LightningControl.required';
2
- import { LightningElement, api, track } from 'lwc';
2
+ import { api, track } from 'lwc';
3
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
3
4
  import {
4
5
  normalizeBoolean,
5
6
  synchronizeAttrs,
@@ -25,7 +26,7 @@ const i18n = {
25
26
  /**
26
27
  * A radio button group that can have a single option selected.
27
28
  */
28
- export default class LightningRadioGroup extends LightningElement {
29
+ export default class LightningRadioGroup extends LightningShadowBaseClass {
29
30
  static delegatesFocus = true;
30
31
 
31
32
  /**
@@ -77,6 +78,7 @@ export default class LightningRadioGroup extends LightningElement {
77
78
  });
78
79
  }
79
80
  connectedCallback() {
81
+ super.connectedCallback();
80
82
  this.classList.add('slds-form-element');
81
83
  this.updateClassList();
82
84
  this.interactingState = new InteractingState();