lightning-base-components 1.17.7-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 (214) hide show
  1. package/metadata/raptor.json +5 -0
  2. package/package.json +43 -1
  3. package/src/lightning/accordion/accordion.css +12 -0
  4. package/src/lightning/accordion/accordion.html +3 -1
  5. package/src/lightning/accordion/accordion.js +4 -2
  6. package/src/lightning/accordion/accordion.slds.css +671 -0
  7. package/src/lightning/accordionSection/accordion-section.slds.css +647 -0
  8. package/src/lightning/accordionSection/accordionSection.css +14 -0
  9. package/src/lightning/accordionSection/accordionSection.html +23 -19
  10. package/src/lightning/accordionSection/accordionSection.js +29 -2
  11. package/src/lightning/ariaObserver/__docs__/ariaObserver.md +21 -9
  12. package/src/lightning/ariaObserver/ariaObserver.js +185 -154
  13. package/src/lightning/ariaObserver/polyfill.js +639 -0
  14. package/src/lightning/avatar/avatar.css +2 -0
  15. package/src/lightning/avatar/avatar.html +2 -0
  16. package/src/lightning/avatar/avatar.js +18 -15
  17. package/src/lightning/avatar/avatar.slds.css +272 -0
  18. package/src/lightning/baseCombobox/base-combobox.slds.css +1585 -0
  19. package/src/lightning/baseCombobox/baseCombobox.css +11 -1
  20. package/src/lightning/baseCombobox/baseCombobox.html +154 -146
  21. package/src/lightning/baseCombobox/baseCombobox.js +82 -46
  22. package/src/lightning/baseCombobox/spinner.slds.css +438 -0
  23. package/src/lightning/baseComboboxItem/baseComboboxItem.js +4 -2
  24. package/src/lightning/baseComboboxItem/inline.css +2 -0
  25. package/src/lightning/breadcrumb/breadcrumb.css +2 -2
  26. package/src/lightning/breadcrumb/breadcrumb.js +4 -2
  27. package/src/lightning/breadcrumb/breadcrumb.slds.css +2 -7
  28. package/src/lightning/breadcrumbs/breadcrumbs.css +2 -2
  29. package/src/lightning/breadcrumbs/breadcrumbs.js +3 -2
  30. package/src/lightning/breadcrumbs/breadcrumbs.slds.css +7 -1
  31. package/src/lightning/button/__examples__/inverse/inverse.css +8 -0
  32. package/src/lightning/button/__examples__/inverse/inverse.html +3 -2
  33. package/src/lightning/button/button.css +2 -0
  34. package/src/lightning/button/button.html +4 -2
  35. package/src/lightning/button/button.js +21 -0
  36. package/src/lightning/button/button.slds.css +527 -0
  37. package/src/lightning/buttonGroup/buttonGroup.css +2 -2
  38. package/src/lightning/buttonGroup/buttonGroup.js +3 -2
  39. package/src/lightning/buttonIcon/button-icon.slds.css +215 -453
  40. package/src/lightning/buttonIcon/buttonIcon.css +2 -2
  41. package/src/lightning/buttonIcon/buttonIcon.js +4 -0
  42. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +215 -453
  43. package/src/lightning/buttonIconStateful/buttonIconStateful.css +2 -2
  44. package/src/lightning/buttonMenu/{dropdown.slds.css → button-menu.slds.css} +853 -217
  45. package/src/lightning/buttonMenu/buttonMenu.css +2 -2
  46. package/src/lightning/buttonMenu/buttonMenu.html +2 -2
  47. package/src/lightning/buttonMenu/buttonMenu.js +10 -14
  48. package/src/lightning/buttonStateful/button-stateful.slds.css +225 -457
  49. package/src/lightning/buttonStateful/buttonStateful.css +2 -2
  50. package/src/lightning/buttonStateful/buttonStateful.js +3 -2
  51. package/src/lightning/calendar/__examples__/basic/basic.html +7 -0
  52. package/src/lightning/calendar/__examples__/basic/basic.js +3 -0
  53. package/src/lightning/calendar/calendar.css +3 -0
  54. package/src/lightning/calendar/calendar.html +12 -9
  55. package/src/lightning/calendar/calendar.js +15 -1
  56. package/src/lightning/calendar/calendar.slds.css +2048 -0
  57. package/src/lightning/card/card.css +2 -2
  58. package/src/lightning/card/card.js +3 -2
  59. package/src/lightning/card/card.slds.css +141 -88
  60. package/src/lightning/colorPickerCustom/colorPickerCustom.css +2 -2
  61. package/src/lightning/colorPickerCustom/colorPickerCustom.js +3 -2
  62. package/src/lightning/colorPickerPanel/color-picker-panel.slds.css +11 -38
  63. package/src/lightning/colorPickerPanel/colorPickerPanel.css +3 -2
  64. package/src/lightning/colorPickerPanel/colorPickerPanel.js +4 -2
  65. package/src/lightning/colorPickerPanel/popover.slds.css +121 -0
  66. package/src/lightning/combobox/combobox.css +4 -0
  67. package/src/lightning/combobox/combobox.html +31 -29
  68. package/src/lightning/combobox/combobox.js +21 -4
  69. package/src/lightning/combobox/combobox.slds.css +13 -0
  70. package/src/lightning/combobox/form-element.slds.css +281 -0
  71. package/src/lightning/configProvider/defaultConfig.js +2 -1
  72. package/src/lightning/datepicker/datepicker.css +3 -0
  73. package/src/lightning/datepicker/datepicker.html +7 -4
  74. package/src/lightning/datepicker/datepicker.js +73 -19
  75. package/src/lightning/datepicker/form-element.slds.css +281 -0
  76. package/src/lightning/datepicker/input-text.slds.css +398 -0
  77. package/src/lightning/datetimepicker/datetimepicker.css +3 -0
  78. package/src/lightning/datetimepicker/datetimepicker.html +9 -3
  79. package/src/lightning/datetimepicker/datetimepicker.js +39 -35
  80. package/src/lightning/datetimepicker/form-element.slds.css +281 -0
  81. package/src/lightning/datetimepicker/input-text.slds.css +398 -0
  82. package/src/lightning/dualListbox/dualListbox.css +2 -2
  83. package/src/lightning/dualListbox/dualListbox.html +3 -3
  84. package/src/lightning/dualListbox/dualListbox.js +31 -6
  85. package/src/lightning/dualListbox/form-element.slds.css +83 -34
  86. package/src/lightning/dualListbox/keyboard.js +20 -1
  87. package/src/lightning/dynamicIcon/dynamicIcon.js +3 -2
  88. package/src/lightning/dynamicIcon/ellie.css +1 -1
  89. package/src/lightning/dynamicIcon/eq.css +1 -1
  90. package/src/lightning/dynamicIcon/score.css +1 -1
  91. package/src/lightning/dynamicIcon/strength.css +1 -1
  92. package/src/lightning/dynamicIcon/trend.css +1 -1
  93. package/src/lightning/dynamicIcon/waffle.css +1 -1
  94. package/src/lightning/formattedRichText/linkify.js +2 -2
  95. package/src/lightning/helptext/form-element.slds.css +83 -34
  96. package/src/lightning/helptext/help-text.slds.css +215 -453
  97. package/src/lightning/helptext/helptext.css +2 -2
  98. package/src/lightning/helptext/helptext.js +3 -2
  99. package/src/lightning/i18nCldrOptions/README.md +5 -0
  100. package/src/lightning/i18nService/README.md +5 -0
  101. package/src/lightning/icon/icon.css +2 -2
  102. package/src/lightning/icon/icon.js +16 -2
  103. package/src/lightning/icon/icon.slds.css +29 -17
  104. package/src/lightning/icon/iconColors.js +1 -0
  105. package/src/lightning/input/__examples__/text/text.html +0 -1
  106. package/src/lightning/input/form-element.slds.css +281 -0
  107. package/src/lightning/input/input-checkbox.slds.css +3 -12
  108. package/src/lightning/input/input-text.slds.css +239 -128
  109. package/src/lightning/input/input.css +2 -1
  110. package/src/lightning/input/input.html +8 -8
  111. package/src/lightning/input/input.js +107 -73
  112. package/src/lightning/internationalizationLibrary/README.md +24 -0
  113. package/src/lightning/internationalizationLibrary/utils.js +4 -1
  114. package/src/lightning/layout/__docs__/layout.md +1 -1
  115. package/src/lightning/layout/__examples__/simple/simple.css +1 -1
  116. package/src/lightning/layout/layout.css +5 -1
  117. package/src/lightning/layout/layout.js +4 -2
  118. package/src/lightning/layoutItem/__examples__/alignmentBump/alignmentBump.css +1 -1
  119. package/src/lightning/layoutItem/__examples__/sizePerDevice/sizePerDevice.css +0 -1
  120. package/src/lightning/layoutItem/layoutItem.css +5 -0
  121. package/src/lightning/layoutItem/layoutItem.js +4 -2
  122. package/src/lightning/menuDivider/menu-divider.slds.css +15 -0
  123. package/src/lightning/menuDivider/menuDivider.css +3 -0
  124. package/src/lightning/menuDivider/menuDivider.html +1 -1
  125. package/src/lightning/menuDivider/menuDivider.js +4 -2
  126. package/src/lightning/menuItem/menu-item.slds.css +140 -0
  127. package/src/lightning/menuItem/menuItem.css +3 -0
  128. package/src/lightning/menuItem/menuItem.html +43 -41
  129. package/src/lightning/menuItem/menuItem.js +4 -4
  130. package/src/lightning/menuSubheader/menu-subheader.slds.css +22 -0
  131. package/src/lightning/menuSubheader/menuSubheader.css +3 -0
  132. package/src/lightning/menuSubheader/menuSubheader.html +3 -1
  133. package/src/lightning/menuSubheader/menuSubheader.js +4 -6
  134. package/src/lightning/modal/__docs__/modal.md +3 -1
  135. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +267 -0
  136. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +1165 -0
  137. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +131 -0
  138. package/src/lightning/modal/modal.js +1 -1
  139. package/src/lightning/pill/avatar.slds.css +272 -0
  140. package/src/lightning/pill/link.css +3 -0
  141. package/src/lightning/pill/link.html +1 -1
  142. package/src/lightning/pill/pill.js +29 -9
  143. package/src/lightning/pill/pill.slds.css +168 -0
  144. package/src/lightning/pill/plain.css +3 -0
  145. package/src/lightning/pill/plain.html +1 -1
  146. package/src/lightning/pill/plainLink.css +3 -0
  147. package/src/lightning/pill/plainLink.html +1 -1
  148. package/src/lightning/pillContainer/barePillContainer.css +3 -0
  149. package/src/lightning/pillContainer/barePillContainer.html +1 -2
  150. package/src/lightning/pillContainer/listbox.slds.css +267 -0
  151. package/src/lightning/pillContainer/pill-container.slds.css +22 -0
  152. package/src/lightning/pillContainer/pill.slds.css +168 -0
  153. package/src/lightning/pillContainer/pillContainer.js +7 -3
  154. package/src/lightning/pillContainer/standardPillContainer.css +4 -0
  155. package/src/lightning/pillContainer/standardPillContainer.html +2 -2
  156. package/src/lightning/popup/popover.slds.css +119 -119
  157. package/src/lightning/popup/popup.css +1 -2
  158. package/src/lightning/popup/popup.js +3 -2
  159. package/src/lightning/positionLibrary/elementProxy.js +7 -2
  160. package/src/lightning/positionLibrary/util.js +8 -0
  161. package/src/lightning/primitiveBubble/primitiveBubble.css +2 -2
  162. package/src/lightning/primitiveBubble/primitiveBubble.js +4 -2
  163. package/src/lightning/primitiveButton/primitiveButton.js +5 -4
  164. package/src/lightning/primitiveCellFactory/cellWithStandardLayout.html +29 -21
  165. package/src/lightning/primitiveCellFactory/primitiveCellFactory.js +4 -0
  166. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +31 -19
  167. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.css +2 -2
  168. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.js +5 -3
  169. package/src/lightning/primitiveIcon/icon.slds.css +209 -0
  170. package/src/lightning/primitiveIcon/primitiveIcon.css +2 -1
  171. package/src/lightning/primitiveIcon/primitiveIcon.html +1 -1
  172. package/src/lightning/primitiveIcon/primitiveIcon.js +18 -11
  173. package/src/lightning/progressStep/progressStep.js +10 -13
  174. package/src/lightning/radioGroup/radioGroup.css +2 -1
  175. package/src/lightning/radioGroup/radioGroup.js +4 -2
  176. package/src/lightning/select/form-element.slds.css +83 -34
  177. package/src/lightning/select/select.css +2 -2
  178. package/src/lightning/select/select.js +4 -2
  179. package/src/lightning/select/select.slds.css +86 -34
  180. package/src/lightning/sldsCommon/sldsCommon.css +135 -75
  181. package/src/lightning/spinner/spinner.css +2 -2
  182. package/src/lightning/spinner/spinner.js +4 -2
  183. package/src/lightning/tabBar/tab-bar.slds.css +334 -0
  184. package/src/lightning/tabBar/tabBar.css +2 -0
  185. package/src/lightning/tabBar/tabBar.html +4 -3
  186. package/src/lightning/tabBar/tabBar.js +30 -3
  187. package/src/lightning/tabset/tabset.html +5 -4
  188. package/src/lightning/tabset/tabset.js +29 -11
  189. package/src/lightning/timepicker/form-element.slds.css +281 -0
  190. package/src/lightning/timepicker/timepicker.css +3 -0
  191. package/src/lightning/timepicker/timepicker.html +5 -1
  192. package/src/lightning/timepicker/timepicker.js +18 -15
  193. package/src/lightning/timepicker/timepicker.slds.css +18 -0
  194. package/src/lightning/tooltipLibrary/tooltipLibrary.js +21 -19
  195. package/src/lightning/utilsPrivate/browser.js +5 -3
  196. package/src/lightning/utilsPrivate/os.js +6 -4
  197. package/src/lightning/utilsPrivate/ssr.js +4 -0
  198. package/src/lightning/utilsPrivate/utilsPrivate.js +2 -0
  199. package/src/lightning/verticalNavigation/verticalNavigation.css +2 -1
  200. package/src/lightning/verticalNavigation/verticalNavigation.js +3 -2
  201. package/src/lightning/verticalNavigationSection/verticalNavigationSection.css +2 -1
  202. package/src/lightning/verticalNavigationSection/verticalNavigationSection.js +3 -2
  203. package/src/lightning/accordion/__perf__DISABLED/accordion-perf-utils.js +0 -76
  204. package/src/lightning/accordion/__perf__DISABLED/accordion10Multiple25SectionEach.perf.js +0 -57
  205. package/src/lightning/accordion/__perf__DISABLED/accordion10Simple25SectionEach.perf.js +0 -37
  206. package/src/lightning/accordion/__perf__DISABLED/accordionMultiple50Section.perf.js +0 -45
  207. package/src/lightning/accordion/__perf__DISABLED/accordionSimple50Section.perf.js +0 -35
  208. package/src/lightning/accordion/__perf__DISABLED/container/container.html +0 -15
  209. package/src/lightning/accordion/__perf__DISABLED/container/container.js +0 -7
  210. package/src/lightning/positionLibrary/__component__/positionLibraryBounding.spec.js +0 -319
  211. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.css +0 -16
  212. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.html +0 -36
  213. package/src/lightning/positionLibrary/__component__/x/bounding/bounding.js +0 -122
  214. /package/src/lightning/{baseCombobox → baseComboboxItem}/listbox.slds.css +0 -0
@@ -101,51 +101,6 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
101
101
  pointer-events: none;
102
102
  }
103
103
 
104
- /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
105
- Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
106
-
107
- :host([data-render-mode="shadow"]) [part~='overlay'] {
108
- background-color: var(
109
- --sds-c-overlay-color-background,
110
- var(--sds-s-popup-color-background, var(--sds-g-color-neutral-base-1))
111
- );
112
- color: var(
113
- --sds-c-overlay-text-color,
114
- var(--sds-s-popup-text-color, var(--sds-g-color-neutral-base-contrast-4))
115
- );
116
- border-radius: var(
117
- --sds-c-overlay-radius-border,
118
- var(--sds-s-popup-radius-border, var(--sds-g-radius-border-2, 0.25rem))
119
- );
120
- border-width: var(
121
- --sds-c-overlay-sizing-border,
122
- var(--sds-s-popup-sizing-border, var(--sds-g-sizing-border-1, 1px))
123
- );
124
- border-color: var(
125
- --sds-c-overlay-color-border,
126
- var(--sds-s-popup-color-border, var(--sds-g-color-border-base-1, #c9c9c9))
127
- );
128
- box-shadow: var(--sds-c-overlay-shadow, var(--sds-s-popup-shadow, var(--sds-g-shadow-1, 0 0 2px 0 #18181814, 0 2px 4px 1px #18181828)));
129
-
130
- /* TODO: consider semantics of the shared hook for overlays/popups. */
131
- padding-left: var(
132
- --sds-c-overlay-spacing-inline-start,
133
- var(--sds-c-overlay-spacing-inline, var(--sds-s-popup-spacing-inline, var(--sds-g-spacing-3, 0.75rem)))
134
- );
135
- padding-right: var(
136
- --sds-c-overlay-spacing-inline-end,
137
- var(--sds-c-overlay-spacing-inline, var(--sds-s-popup-spacing-inline, var(--sds-g-spacing-3, 0.75rem)))
138
- );
139
- padding-top: var(
140
- --sds-c-overlay-spacing-block-start,
141
- var(--sds-c-overlay-spacing-block, var(--sds-s-popup-spacing-block, var(--sds-g-spacing-3, 0.75rem)))
142
- );
143
- padding-bottom: var(
144
- --sds-c-overlay-spacing-block-end,
145
- var(--sds-c-overlay-spacing-block, var(--sds-s-popup-spacing-block, var(--sds-g-spacing-3, 0.75rem)))
146
- );
147
- }
148
-
149
104
  /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
150
105
  Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
151
106
 
@@ -197,39 +152,39 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
197
152
 
198
153
  @supports (--styling-hooks: '') {
199
154
  :host([data-render-mode="shadow"][size~='xxx-small']) {
200
- --slds-c-icon-sizing: 0.5rem;
155
+ --slds-c-icon-sizing: var(--sds-g-sizing-3, 0.5rem);
201
156
  }
202
157
 
203
158
  :host([data-render-mode="shadow"][size~='xx-small']) {
204
- --slds-c-icon-sizing: 0.875rem;
159
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-1, 0.125rem) + var(--sds-g-sizing-4, 0.75rem));
205
160
  }
206
161
 
207
162
  :host([data-render-mode="shadow"][size~='x-small']) {
208
- --slds-c-icon-sizing: 1rem;
163
+ --slds-c-icon-sizing: var(--sds-g-sizing-5, 1rem);
209
164
  }
210
165
 
211
166
  :host([data-render-mode="shadow"][size~='small']) {
212
- --slds-c-icon-sizing: 1.5rem;
167
+ --slds-c-icon-sizing: var(--sds-g-sizing-7, 1.5rem);
213
168
  }
214
169
 
215
170
  :host([data-render-mode="shadow"][size~='large']) {
216
- --slds-c-icon-sizing: 3rem;
171
+ --slds-c-icon-sizing: var(--sds-g-sizing-10, 3rem);
217
172
  }
218
173
 
219
174
  :host([data-render-mode="shadow"][variant~='warning']) {
220
- --slds-c-icon-color-foreground: var(--sds-g-color-warning-base-4);
175
+ --slds-c-icon-color-foreground: var(--sds-g-color-warning-base-70, #fe9339);
221
176
  }
222
177
 
223
178
  :host([data-render-mode="shadow"][variant~='success']) {
224
- --slds-c-icon-color-foreground: var(--sds-g-color-success-base-contrast-1);
179
+ --slds-c-icon-color-foreground: var(--sds-g-color-success-base-50, #2e844a);
225
180
  }
226
181
 
227
182
  :host([data-render-mode="shadow"][variant~='error']) {
228
- --slds-c-icon-color-foreground: var(--sds-g-color-error-base-contrast-1);
183
+ --slds-c-icon-color-foreground: var(--sds-g-color-error-base-50, #ea001e);
229
184
  }
230
185
 
231
186
  :host([data-render-mode="shadow"][variant~='light']) {
232
- --slds-c-icon-color-foreground: var(--sds-g-color-neutral-base-contrast-1);
187
+ --slds-c-icon-color-foreground: var(--sds-g-color-neutral-base-70, #aeaeae);
233
188
  }
234
189
 
235
190
  :host([data-render-mode="shadow"]) [part~='boundary'] {
@@ -263,15 +218,15 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
263
218
  }
264
219
 
265
220
  :host([data-render-mode="shadow"]) [part~='icon'] {
266
- --sds-c-icon-color-foreground: var(--slds-c-icon-color-foreground, var(--sds-g-color-neutral-base-1));
267
- --sds-c-icon-sizing-height: var(--slds-c-icon-sizing-height, var(--slds-c-icon-sizing, 2rem));
268
- --sds-c-icon-sizing-width: var(--slds-c-icon-sizing-width, var(--slds-c-icon-sizing, 2rem));
221
+ --sds-c-icon-color-foreground: var(--slds-c-icon-color-foreground, var(--sds-g-color-neutral-base-100, #ffffff));
222
+ --sds-c-icon-sizing-height: var(--slds-c-icon-sizing-height, var(--slds-c-icon-sizing, var(--sds-g-sizing-9, 2rem)));
223
+ --sds-c-icon-sizing-width: var(--slds-c-icon-sizing-width, var(--slds-c-icon-sizing, var(--sds-g-sizing-9, 2rem)));
269
224
  }
270
225
 
271
226
  :host([data-render-mode="shadow"][icon-name*='action']) {
272
- --slds-c-icon-spacing-block: 0.5rem;
273
- --slds-c-icon-spacing-inline: 0.5rem;
274
- --slds-c-icon-radius-border: 50%;
227
+ --slds-c-icon-spacing-block: var(--sds-g-sizing-3, 0.5rem);
228
+ --slds-c-icon-spacing-inline: var(--sds-g-sizing-3, 0.5rem);
229
+ --slds-c-icon-radius-border: calc(var(--sds-g-radius-border-circle, 100%) / 2);
275
230
  }
276
231
  }
277
232
 
@@ -300,12 +255,13 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
300
255
  /*! @css-var-fallback fill */
301
256
  --slds-c-icon-color-foreground: var(
302
257
  --slds-c-icon-color-foreground-default,
303
- var(--sds-c-icon-color-foreground-default, #706e6b)
258
+ var(--sds-c-icon-color-foreground-default, var(
259
+ --sds-g-color-neutral-base-50, #747474))
304
260
  );
305
261
  }
306
262
 
307
263
  :host([data-render-mode="shadow"]) .slds-icon-text-default.slds-is-disabled {
308
- fill: #dddbda;
264
+ fill: var(--sds-g-color-neutral-base-80, #c9c9c9);
309
265
  }
310
266
 
311
267
  /**
@@ -344,21 +300,413 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
344
300
  background-color: currentColor;
345
301
  }
346
302
 
303
+ :host([data-render-mode="shadow"]) .slds-input__icon {
304
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-1, 0.125rem) + var(--sds-g-sizing-4, 0.75rem));
305
+
306
+ position: absolute;
307
+ top: 50%;
308
+ margin-block-start: -0.4375rem;
309
+ line-height: var(--sds-g-font-lineheight-1, 1);
310
+ border: 0;
311
+ z-index: 2;
312
+ }
313
+
347
314
  /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
348
315
  Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
349
316
 
350
317
  @supports (--styling-hooks: '') {
351
- :host([data-render-mode="shadow"]) {
352
- display: inline-flex;
318
+ /**
319
+ * LBC default is the 'neutral' variant.
320
+ *
321
+ * We retain the 'neutral' variant in the hook names for interoperability
322
+ * with SLDS light DOM blueprints which do explicitly define a 'neutral'
323
+ * variant which is not the default.
324
+ *
325
+ * See 'base' variant below.
326
+ *
327
+ */
328
+
329
+ :host([data-render-mode="shadow"]) [part~='button'] {
330
+ /* Element spacing, display flex set by SDS button */
331
+ gap: var(--sds-g-spacing-2, 0.5rem);
332
+
333
+ /* slds-icon mapping */
334
+ --slds-c-icon-sizing-border: 0;
335
+ --slds-c-icon-sizing: 0.875rem;
336
+ --slds-c-icon-color-foreground: var(--slds-c-button-icon-color-foreground, currentColor);
337
+
338
+ --sds-c-button-line-height: var(
339
+ --slds-c-button-neutral-font-lineheight,
340
+ var(--slds-s-button-font-lineheight, 1.875rem)
341
+ );
342
+ --sds-c-button-spacing-inline: var(
343
+ --slds-c-button-neutral-spacing-inline,
344
+ var(--slds-s-button-spacing-inline, var(--sds-g-spacing-4, 1rem))
345
+ );
346
+ --sds-c-button-spacing-block: var(--slds-c-button-neutral-spacing-block);
347
+
348
+ /**
349
+ * A note about fallbacks on the default variant:
350
+ *
351
+ * We cannot use --sds-c-button-* as fallbacks because the sds-button's state
352
+ * hooks are tied to a selector with higher specificity. In the default variant,
353
+ * attempting to use the previous state's hook as a fallback will fail because
354
+ * it picks up on sds-button's state hooks instead and creates an infinite loop
355
+ * which ultimately breaks styling.
356
+ *
357
+ * This is another use-case for removing the opinion of state selectors in SDS.
358
+ *
359
+ * So in the default variant below, you'll see many repeated fallback values.
360
+ *
361
+ * In all other variants, it is ok to use the previous state as a fallback value.
362
+ */
363
+
364
+ /* Border radius - shared */
365
+ --sds-c-button-radius-border-startstart: var(
366
+ --slds-c-button-neutral-radius-border-startstart,
367
+ var(
368
+ --slds-c-button-neutral-radius-border,
369
+ var(--slds-s-button-radius-border-startstart, var(--slds-s-button-radius-border))
370
+ )
371
+ );
372
+ --sds-c-button-radius-border-endstart: var(
373
+ --slds-c-button-radius-border-endstart,
374
+ var(
375
+ --slds-c-button-neutral-radius-border,
376
+ var(--slds-s-button-radius-border-endstart, var(--slds-s-button-radius-border))
377
+ )
378
+ );
379
+ --sds-c-button-radius-border-startend: var(
380
+ --slds-c-button-radius-border-startend,
381
+ var(
382
+ --slds-c-button-neutral-radius-border,
383
+ var(--slds-s-button-radius-border-startend, var(--slds-s-button-radius-border))
384
+ )
385
+ );
386
+ --sds-c-button-radius-border-endend: var(
387
+ --slds-c-button-radius-border-endend,
388
+ var(
389
+ --slds-c-button-neutral-radius-border,
390
+ var(--slds-s-button-radius-border-endend, var(--slds-s-button-radius-border))
391
+ )
392
+ );
393
+
394
+ /* Background color */
395
+ --sds-c-button-color-background: var(
396
+ --slds-c-button-neutral-color-background,
397
+ var(--sds-g-color-neutral-base-100, #ffffff)
398
+ );
399
+ --sds-c-button-color-background-hover: var(
400
+ --slds-c-button-neutral-color-background-hover,
401
+ var(--sds-g-color-neutral-base-95, #f3f3f3)
402
+ );
403
+ --sds-c-button-color-background-focus: var(
404
+ --slds-c-button-neutral-color-background-focus,
405
+ var(--sds-c-button-color-background-hover)
406
+ );
407
+ --sds-c-button-color-background-active: var(
408
+ --slds-c-button-neutral-color-background-active,
409
+ var(--sds-g-color-neutral-base-95, #f3f3f3)
410
+ );
411
+
412
+ /* Border color */
413
+ --sds-c-button-color-border: var(
414
+ --slds-c-button-neutral-color-border,
415
+ var(--sds-g-color-neutral-base-80, #c9c9c9)
416
+ );
417
+ --sds-c-button-color-border-hover: var(
418
+ --slds-c-button-neutral-color-border-hover,
419
+ var(--sds-g-color-neutral-base-80, #c9c9c9)
420
+ );
421
+ --sds-c-button-color-border-focus: var(
422
+ --slds-c-button-neutral-color-border-focus,
423
+ var(--sds-c-button-color-border-hover)
424
+ );
425
+ --sds-c-button-color-border-active: var(
426
+ --slds-c-button-neutral-color-border-active,
427
+ var(--sds-g-color-neutral-base-80, #c9c9c9)
428
+ );
429
+
430
+ /* Text color */
431
+ --sds-c-button-text-color: var(
432
+ --slds-c-button-neutral-text-color,
433
+ var(--sds-g-color-brand-base-50, #0176d3)
434
+ );
435
+ --sds-c-button-text-color-hover: var(
436
+ --slds-c-button-neutral-text-color-hover,
437
+ var(--sds-g-color-brand-base-30, #014486)
438
+ );
439
+ --sds-c-button-text-color-focus: var(
440
+ --slds-c-button-neutral-text-color-focus,
441
+ var(--slds-c-button-neutral-text-color-hover)
442
+
443
+ );
444
+ --sds-c-button-text-color-active: var(
445
+ --slds-c-button-neutral-text-color-active,
446
+ var(--sds-g-color-brand-base-30, #014486)
447
+ );
448
+
449
+ /* Shadow */
450
+ --sds-c-button-shadow: var(--slds-c-button-neutral-shadow);
451
+ --sds-c-button-shadow-focus: var(--slds-c-button-neutral-shadow-focus);
452
+
453
+ /* Disabled */
454
+ --sds-c-button-color-background-disabled: var(
455
+ --slds-c-button-neutral-color-background-disabled,
456
+ var(--sds-g-color-neutral-base-100, #ffffff)
457
+ );
458
+ --sds-c-button-color-border-disabled: var(
459
+ --slds-c-button-neutral-color-border-disabled,
460
+ var(--sds-g-color-neutral-base-80, #c9c9c9)
461
+ );
462
+ --sds-c-button-text-color-disabled: var(
463
+ --slds-c-button-neutral-text-color-disabled,
464
+ var(--sds-g-color-neutral-base-80, #c9c9c9)
465
+ );
466
+ }
467
+
468
+ :host([data-render-mode="shadow"][variant='brand']) [part~='button'] {
469
+ --slds-c-button-neutral-font-lineheight: var(--slds-s-button-font-lineheight, 1.875rem);
470
+ --slds-c-button-neutral-spacing-inline: var(--slds-s-button-spacing-inline, var(--sds-g-spacing-4, 1rem));
471
+ --slds-c-button-neutral-color-background: var(
472
+ --slds-c-button-brand-color-background,
473
+ var(--sds-g-color-brand-base-50, #0176d3)
474
+ );
475
+
476
+ --slds-c-button-neutral-color-border: var(
477
+ --slds-c-button-brand-color-border,
478
+ var(--sds-g-color-brand-base-50, #0176d3)
479
+ );
480
+
481
+ --slds-c-button-neutral-color-border-hover: var(
482
+ --slds-c-button-brand-color-border-hover,
483
+ var(--sds-g-color-brand-base-40, #0b5cab)
484
+ );
485
+ --slds-c-button-neutral-color-border-focus: var(
486
+ --slds-c-button-brand-color-border-focus,
487
+ var(--slds-c-button-brand-color-border-hover)
488
+ );
489
+ --slds-c-button-neutral-color-border-active: var(
490
+ --slds-c-button-brand-color-border-active,
491
+ var(--slds-c-button-brand-color-background-active)
492
+ );
493
+
494
+ --slds-c-button-neutral-text-color: var(
495
+ --slds-c-button-brand-text-color,
496
+ var(--sds-g-color-brand-base-100, #ffffff)
497
+ );
498
+
499
+ --slds-c-button-neutral-color-background-hover: var(
500
+ --slds-c-button-brand-color-background-hover,
501
+ var(--sds-g-color-brand-base-30, #014486)
502
+ );
503
+ --slds-c-button-neutral-color-background-focus: var(
504
+ --slds-c-button-brand-color-background-focus,
505
+ var(--sds-g-color-brand-base-30, #014486)
506
+ );
507
+ --slds-c-button-neutral-color-background-active: var(
508
+ --slds-c-button-brand-color-background-active,
509
+ var(--sds-g-color-brand-base-30, #014486)
510
+ );
511
+ --slds-c-button-neutral-text-color-hover: var(
512
+ --slds-c-button-brand-text-color-hover,
513
+ var(--sds-g-color-brand-base-100, #ffffff)
514
+ );
515
+ --slds-c-button-neutral-text-color-active: var(
516
+ --slds-c-button-brand-text-color-active,
517
+ var(--sds-g-color-brand-base-100, #ffffff)
518
+ );
519
+ --slds-c-button-neutral-text-color-focus: var(
520
+ --slds-c-button-brand-text-color-focus,
521
+ var(--sds-g-color-brand-base-100, #ffffff)
522
+ );
523
+ --slds-c-button-neutral-color-background-disabled: var(--sds-g-color-neutral-base-80, #c9c9c9);
524
+ --slds-c-button-neutral-color-border-disabled: var(--slds-c-button-neutral-color-background-disabled);
525
+ --slds-c-button-neutral-text-color-disabled: var(--sds-g-color-neutral-base-100, #ffffff);
526
+ }
527
+
528
+ :host([data-render-mode="shadow"][variant='brand-outline']) [part~='button'] {
529
+ --slds-c-button-neutral-font-lineheight: var(--slds-s-button-font-lineheight, 1.875rem);
530
+ --slds-c-button-neutral-spacing-inline: var(--slds-s-button-spacing-inline, var(--sds-g-spacing-4, 1rem));
531
+ --slds-c-button-neutral-color-background: var(--sds-g-color-neutral-base-100, #ffffff);
532
+ --slds-c-button-neutral-color-border: var(--sds-g-color-brand-base-50, #0176d3);
533
+ --slds-c-button-neutral-text-color: var(--sds-g-color-brand-base-40, #0b5cab);
534
+ --slds-c-button-neutral-color-border-hover: var(--sds-g-color-brand-base-50, #0176d3);
535
+ --slds-c-button-neutral-color-background-hover: var(--sds-g-color-neutral-base-95, #f3f3f3);
536
+ --slds-c-button-neutral-color-background-focus: var(--sds-g-color-neutral-base-95, #f3f3f3);
537
+ --slds-c-button-neutral-color-background-active: var(--sds-g-color-neutral-base-95, #f3f3f3);
538
+ --slds-c-button-neutral-text-color-hover: var(--sds-g-color-brand-base-30, #014486);
539
+ --slds-c-button-neutral-text-color-focus: var(--sds-g-color-brand-base-30, #014486);
540
+ --slds-c-button-neutral-text-color-active: var(--sds-g-color-brand-base-30, #014486);
541
+ --slds-c-button-neutral-color-border-disabled: var(--sds-g-color-neutral-base-80, #c9c9c9);
542
+ }
543
+
544
+ :host([data-render-mode="shadow"][variant='inverse']) [part~='button'] {
545
+ --slds-c-button-neutral-font-lineheight: var(--slds-s-button-font-lineheight, 1.875rem);
546
+ --slds-c-button-neutral-spacing-inline: var(--slds-s-button-spacing-inline, var(--sds-g-spacing-4, 1rem));
547
+ --slds-c-button-neutral-color-background: transparent;
548
+ --slds-c-button-neutral-color-background-hover: var(--sds-g-color-neutral-base-95, #f3f3f3);
549
+ --slds-c-button-neutral-color-background-focus: var(--sds-g-color-neutral-base-95, #f3f3f3);
550
+ --slds-c-button-neutral-color-background-active: var(--sds-g-color-neutral-base-95, #f3f3f3);
551
+ --slds-c-button-neutral-color-border: var(--sds-g-color-brand-base-100, #ffffff);
552
+ --slds-c-button-neutral-text-color: var(--sds-g-color-brand-base-100, #ffffff);
553
+ --slds-c-button-neutral-text-color-hover: var(--sds-g-color-brand-base-50, #0176d3);
554
+ --slds-c-button-neutral-text-color-active: var(--sds-g-color-brand-base-50, #0176d3);
555
+ --slds-c-button-neutral-color-border-hover: var(--sds-g-color-brand-base-100, #ffffff);
556
+ --slds-c-button-neutral-color-border-disabled: var(--sds-g-color-neutral-base-60, #939393);
557
+ --slds-c-button-neutral-color-background-disabled: transparent;
558
+ }
559
+
560
+ :host([data-render-mode="shadow"][variant='destructive']) [part~='button'] {
561
+ --slds-c-button-neutral-font-lineheight: var(--slds-s-button-font-lineheight, 1.875rem);
562
+ --slds-c-button-neutral-spacing-inline: var(--slds-s-button-spacing-inline, var(--sds-g-spacing-4, 1rem));
563
+ --slds-c-button-neutral-color-background: var(--sds-g-color-error-base-40, #ba0517);
564
+ --slds-c-button-neutral-color-border: var(--sds-g-color-error-base-40, #ba0517);
565
+ --slds-c-button-neutral-color-border-hover: var(--sds-g-color-error-base-40, #ba0517);
566
+ --slds-c-button-neutral-text-color: var(--sds-g-color-error-base-100, #ffffff);
567
+ --slds-c-button-neutral-color-background-hover: var(--sds-g-color-error-base-30, #8e030f);
568
+ --slds-c-button-neutral-color-background-focus: var(--sds-g-color-error-base-30, #8e030f);
569
+ --slds-c-button-neutral-color-background-active: var(--sds-g-color-error-base-30, #8e030f);
570
+ --slds-c-button-neutral-text-color-hover: var(--sds-g-color-error-base-100, #ffffff);
571
+ --slds-c-button-neutral-text-color-focus: var(--sds-g-color-error-base-100, #ffffff);
572
+ --slds-c-button-neutral-text-color-active: var(--sds-g-color-error-base-100, #ffffff);
573
+ --slds-c-button-neutral-color-background-disabled: var(--sds-g-color-neutral-base-80, #c9c9c9);
574
+ --slds-c-button-neutral-color-border-disabled: var(--slds-c-button-neutral-color-background-disabled);
575
+ --slds-c-button-neutral-text-color-disabled: var(--sds-g-color-neutral-base-100, #ffffff);
576
+ }
577
+
578
+ :host([data-render-mode="shadow"][variant='success']) [part~='button'] {
579
+ --slds-c-button-neutral-font-lineheight: var(--slds-s-button-font-lineheight, 1.875rem);
580
+ --slds-c-button-neutral-spacing-inline: var(--slds-s-button-spacing-inline, var(--sds-g-spacing-4, 1rem));
581
+ --slds-c-button-neutral-color-background: var(--sds-g-color-success-base-70, #45c65a);
582
+ --slds-c-button-neutral-color-border: var(--sds-g-color-success-base-80, #91db8b);
583
+ --slds-c-button-neutral-color-border-hover: var(--sds-g-color-success-base-50, #2e844a);
584
+ --slds-c-button-neutral-color-border-active: var(--sds-g-color-success-base-50, #2e844a);
585
+ --slds-c-button-neutral-text-color: var(--sds-g-color-neutral-base-10, #181818);
586
+ --slds-c-button-neutral-color-background-hover: var(--sds-g-color-success-base-50, #2e844a);
587
+ --slds-c-button-neutral-color-background-focus: var(--sds-g-color-success-base-50, #2e844a);
588
+ --slds-c-button-neutral-color-background-active: var(--sds-g-color-success-base-50, #2e844a);
589
+ --slds-c-button-neutral-text-color-hover: var(--sds-g-color-success-base-100, #ffffff);
590
+ --slds-c-button-neutral-text-color-focus: var(--sds-g-color-success-base-100, #ffffff);
591
+ --slds-c-button-neutral-text-color-active: var(--sds-g-color-success-base-100, #ffffff);
592
+ --slds-c-button-neutral-color-background-disabled: var(--sds-g-color-neutral-base-80, #c9c9c9);
593
+ --slds-c-button-neutral-color-border-disabled: var(--slds-c-button-neutral-color-background-disabled);
594
+ --slds-c-button-neutral-text-color-disabled: var(--sds-g-color-neutral-base-100, #ffffff);
595
+ }
596
+
597
+ :host([data-render-mode="shadow"][variant='destructive-text']) [part~='button'] {
598
+ --slds-c-button-neutral-font-lineheight: var(--slds-s-button-font-lineheight, 1.875rem);
599
+ --slds-c-button-neutral-spacing-inline: var(--slds-s-button-spacing-inline, var(--sds-g-spacing-4, 1rem));
600
+ --slds-c-button-neutral-color-background: var(--sds-g-color-neutral-base-100, #ffffff);
601
+ --slds-c-button-neutral-color-border: var(--sds-g-color-neutral-base-80, #c9c9c9);
602
+ --slds-c-button-neutral-text-color: var(--sds-g-color-error-base-50, #ea001e);
603
+ --slds-c-button-neutral-color-border-hover: var(--sds-g-color-neutral-base-80, #c9c9c9);
604
+ --slds-c-button-neutral-color-background-hover: var(--sds-g-color-neutral-base-95, #f3f3f3);
605
+ --slds-c-button-neutral-color-background-focus: var(--sds-g-color-neutral-base-95, #f3f3f3);
606
+ --slds-c-button-neutral-color-background-active: var(--sds-g-color-neutral-base-95, #f3f3f3);
607
+ --slds-c-button-neutral-text-color-hover: var(--sds-g-color-error-base-40, #ba0517);
608
+ --slds-c-button-neutral-text-color-focus: var(--sds-g-color-error-base-40, #ba0517);
609
+ --slds-c-button-neutral-text-color-active: var(--sds-g-color-error-base-40, #ba0517);
610
+ --slds-c-button-neutral-color-border-disabled: var(--sds-g-color-neutral-base-80, #c9c9c9);
353
611
  }
354
612
 
355
613
  /**
356
- * part - button-icon
614
+ * 'base' variant is not the default in LBC. It is the default in the light
615
+ * DOM version of SLDS.
357
616
  *
358
- * Default styling is "border" variant
617
+ * So even though this is a non-default variant in this context, the hooks
618
+ * for this variant are written as the default for interoperability with
619
+ * SLDS light DOM.
620
+ *
621
+ * E.g. --slds-c-button-color-background
359
622
  */
623
+ :host([data-render-mode="shadow"][variant='base']) [part~='button'],:host([data-render-mode="shadow"][variant='text']) [part~='button'] {
624
+ --slds-c-button-neutral-spacing-inline: var(--sds-g-spacing-1, 0.25rem);
625
+ --slds-c-button-neutral-text-color: var(--sds-g-color-brand-base-40, #0b5cab);
626
+ --slds-c-button-neutral-color-border: transparent;
627
+ --slds-c-button-neutral-color-border-hover: transparent;
628
+ --slds-c-button-neutral-color-border-focus: transparent;
629
+ --slds-c-button-neutral-color-border-active: var(--sds-g-color-neutral-base-30, #444444);
630
+ --slds-c-button-neutral-color-border-disabled: transparent;
631
+ --slds-c-button-neutral-color-background-hover: transparent;
632
+ --slds-c-button-neutral-color-background-active: transparent;
633
+ }
634
+
635
+ :host([data-render-mode="shadow"][stretch]) [part~='button'] {
636
+ --sds-c-button-sizing-width: 100%;
360
637
 
361
- /* :host::part('button-icon'), */
638
+ justify-content: center;
639
+ }
640
+
641
+ /**
642
+ * Center button on all variants except 'base', and 'text'
643
+ *
644
+ * This addresses the issue of customers relying on preexisting x-axis centering
645
+ * when they arbitrarily change the width of the button without the stretch variant.
646
+ *
647
+ * Ref
648
+ * - https://github.com/salesforce-ux/design-system-internal/pull/4344
649
+ * - https://github.com/salesforce-ux/design-system-internal/pull/4949
650
+ */
651
+ :host([data-render-mode="shadow"][variant='brand']) [part~='button'],:host([data-render-mode="shadow"][variant='brand-outline']) [part~='button'],:host([data-render-mode="shadow"][variant='inverse']) [part~='button'],:host([data-render-mode="shadow"][variant='success']) [part~='button'],:host([data-render-mode="shadow"][variant='destructive']) [part~='button'],:host([data-render-mode="shadow"][variant='destructive-text']) [part~='button'] {
652
+ justify-content: center;
653
+ }
654
+
655
+ :host([data-render-mode="shadow"]) [part~='start'] {
656
+ display: inline-flex;
657
+ padding-inline-end: var(--sds-g-spacing-2, 0.5rem);
658
+ }
659
+
660
+ :host([data-render-mode="shadow"]) [part~='end'] {
661
+ display: inline-flex;
662
+ padding-inline-start: var(--sds-g-spacing-2, 0.5rem);
663
+ }
664
+ }
665
+
666
+ /**
667
+ * A temporarily baked-in utility class until SLDS gets a proper utility package.
668
+ *
669
+ * This is a hybrid patch between synthetic and native shadow. The ideal final
670
+ * outcome is the removal of this class and replacing the class with the SLDS
671
+ * utility package solution.
672
+ */
673
+
674
+ :host([data-render-mode="shadow"]) .slds-assistive-text {
675
+ position: absolute !important;
676
+ margin: -1px !important;
677
+ border: 0 !important;
678
+ padding: 0 !important;
679
+ width: 1px !important;
680
+ height: 1px !important;
681
+ overflow: hidden !important;
682
+ clip: rect(0 0 0 0) !important;
683
+ text-transform: none !important;
684
+ white-space: nowrap !important;
685
+ }
686
+
687
+ :host([data-render-mode="shadow"]) .slds-button_reset {
688
+ font-size: inherit;
689
+ color: inherit;
690
+ line-height: inherit;
691
+ padding: 0;
692
+ background: transparent;
693
+ border: 0;
694
+ text-align: inherit;
695
+ }
696
+
697
+ /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
698
+ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
699
+
700
+ @supports (--styling-hooks: '') {
701
+ :host([data-render-mode="shadow"]) [part~='button-icon'] {
702
+ display: inline-flex;
703
+ }
704
+
705
+ /**
706
+ * part - button-icon
707
+ *
708
+ * Default styling is "border" variant
709
+ */
362
710
  :host([data-render-mode="shadow"]) [part~='button-icon'] {
363
711
  /* slds-icon mapping */
364
712
  --slds-c-icon-sizing-border: 0;
@@ -368,43 +716,66 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
368
716
  var(--sds-g-color-neutral-base-50, #747474)
369
717
  );
370
718
 
371
- /* sds-button mapping - note: should be slds-button, requires refactoring */
372
- --sds-c-button-color-background: var(--slds-c-buttonicon-color-background);
373
- --sds-c-button-color-background-hover: var(--slds-c-buttonicon-color-background-hover);
374
- --sds-c-button-color-background-focus: var(--slds-c-buttonicon-color-background-focus);
375
- --sds-c-button-color-background-active: var(--slds-c-buttonicon-color-background-active);
376
- --sds-c-button-spacing-inline: var(
719
+ /* Text */
720
+ --slds-c-button-neutral-font-lineheight: var(
721
+ --slds-c-buttonicon-neutral-font-lineheight,
722
+ var(--sds-g-font-lineheight-1, 1)
723
+ );
724
+
725
+ /* Background */
726
+ --slds-c-button-neutral-color-background: var(--slds-c-buttonicon-color-background, transparent);
727
+ --slds-c-button-neutral-color-background-hover: var(
728
+ --slds-c-buttonicon-color-background-hover,
729
+ transparent
730
+ );
731
+ --slds-c-button-neutral-color-background-focus: var(
732
+ --slds-c-buttonicon-color-background-focus,
733
+ transparent
734
+ );
735
+ --slds-c-button-neutral-color-background-active: var(
736
+ --slds-c-buttonicon-color-background-active,
737
+ var(--slds-c-button-neutral-color-background-focus)
738
+ );
739
+
740
+ /* Spacing */
741
+ --slds-c-button-neutral-spacing-inline: var(
377
742
  --slds-c-buttonicon-spacing-inline,
378
743
  var(--sds-s-button-spacing-inline, var(--sds-g-spacing-2, 0.5rem))
379
744
  );
380
- --sds-c-button-spacing-block: var(
745
+ --slds-c-button-neutral-spacing-block: var(
381
746
  --slds-c-buttonicon-spacing-block,
382
747
  var(--sds-s-button-spacing-block, var(--sds-g-spacing-2, 0.5rem))
383
748
  );
384
749
 
385
- /* @TODO: Investigate hooks that open up interaction states and the specificity issues it creates. */
386
- --sds-c-button-color-border: var(--slds-c-buttonicon-color-border, var(--sds-g-color-neutral-base-80, #c9c9c9));
387
- --sds-c-button-color-border-hover: var(
750
+ /* Border */
751
+ --slds-c-button-neutral-color-border: var(
752
+ --slds-c-buttonicon-color-border,
753
+ var(--sds-g-color-neutral-base-80, #c9c9c9)
754
+ );
755
+ --slds-c-button-neutral-color-border-hover: var(
388
756
  --slds-c-buttonicon-color-border-hover,
389
757
  var(--sds-g-color-neutral-base-80, #c9c9c9)
390
758
  );
391
- --sds-c-button-color-border-focus: var(
759
+ --slds-c-button-neutral-color-border-focus: var(
392
760
  --slds-c-buttonicon-color-border-focus,
393
761
  var(--sds-g-color-neutral-base-80, #c9c9c9)
394
762
  );
395
- --sds-c-button-color-border-active: var(
763
+ --slds-c-button-neutral-color-border-active: var(
396
764
  --slds-c-buttonicon-color-border-active,
397
- var(--sds-g-color-neutral-base-80, #c9c9c9)
765
+ var(--slds-c-button-neutral-color-border-focus)
398
766
  );
399
767
 
400
- /* Disabled:
401
- To Do: This should work once button's host selector is fixed, add this to doc */
768
+ /* Shadow */
769
+ --slds-c-button-neutral-shadow: var(--slds-c-buttonicon-shadow);
770
+ --slds-c-button-neutral-shadow-focus: var(--slds-c-buttonicon-shadow-focus);
771
+
772
+ /* Disabled */
402
773
  --slds-c-button-neutral-color-background-disabled: var(--slds-c-buttonicon-color-background-disabled);
403
774
  --slds-c-button-neutral-color-border-disabled: var(--slds-c-buttonicon-color-border-disabled);
404
775
  --slds-c-button-neutral-text-color-disabled: var(--slds-c-buttonicon-text-color-disabled);
405
776
  }
406
777
 
407
- /* :host(:hover)::part(button-icon), */
778
+ /* slds-icon interaction states */
408
779
  :host([data-render-mode="shadow"]) [part~='button-icon']:hover {
409
780
  --slds-c-icon-color-foreground: var(
410
781
  --slds-c-buttonicon-color-foreground-hover,
@@ -445,19 +816,29 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
445
816
  * its own variant saves us having to expose additional styling APIs on all
446
817
  * the other variants just to reassign what `bare` is doing if it is default.
447
818
  */
448
- :host([data-render-mode="shadow"][variant='bare']) {
819
+ :host([data-render-mode="shadow"][variant='bare']) [part~='button-icon'] {
449
820
  --slds-c-buttonicon-color-border: var(--slds-c-buttonicon-bare-color-border, transparent);
450
821
  --slds-c-buttonicon-color-border-hover: var(--slds-c-buttonicon-bare-color-border-hover, transparent);
451
822
  --slds-c-buttonicon-color-border-focus: var(--slds-c-buttonicon-bare-color-border-focus, transparent);
452
823
  --slds-c-buttonicon-color-border-active: var(--slds-c-buttonicon-bare-color-border-active, transparent);
453
824
  --slds-c-buttonicon-spacing-inline: var(--slds-c-buttonicon-bare-spacing-inline, 0);
454
825
  --slds-c-buttonicon-spacing-block: var(--slds-c-buttonicon-bare-spacing-block, 0);
826
+
827
+ /* Disabled */
828
+ --slds-c-buttonicon-color-border-disabled: var(
829
+ --slds-c-buttonicon-bare-color-border-disabled,
830
+ transparent
831
+ );
832
+ --slds-c-buttonicon-color-background-disabled: var(
833
+ --slds-c-buttonicon-bare-color-background-disabled,
834
+ transparent
835
+ );
455
836
  }
456
837
 
457
838
  /**
458
- * Variant - Container
459
- */
460
- :host([data-render-mode="shadow"][variant='container']) {
839
+ * Variant - Container
840
+ */
841
+ :host([data-render-mode="shadow"][variant='container']) [part~='button-icon'] {
461
842
  --slds-c-buttonicon-color-border: var(--slds-c-buttonicon-container-color-border, transparent);
462
843
  --slds-c-buttonicon-color-border-hover: var(
463
844
  --slds-c-buttonicon-container-color-border-hover,
@@ -467,48 +848,27 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
467
848
  --slds-c-buttonicon-container-color-border-focus,
468
849
  transparent
469
850
  );
470
- --slds-c-buttonicon-color-border-active: var(
471
- --slds-c-buttonicon-container-color-border-active,
851
+ --slds-c-buttonicon-color-border-active: var(--slds-c-buttonicon-container-color-border-active);
852
+
853
+ /* Disabled */
854
+ --slds-c-buttonicon-color-border-disabled: var(
855
+ --slds-c-buttonicon-container-color-border-disabled,
472
856
  transparent
473
857
  );
474
858
  }
475
859
 
476
860
  /**
477
- * Variant - Brand
478
- */
479
- :host([data-render-mode="shadow"][variant='brand']) {
480
- --slds-c-buttonicon-color-background: var(
481
- --slds-c-buttonicon-brand-color-background,
482
- var(--sds-g-color-brand-base-50, #0176d3)
483
- );
484
- --slds-c-buttonicon-color-background-hover: var(
485
- --slds-c-buttonicon-brand-color-background-hover,
486
- var(--sds-g-color-brand-base-40, #0b5cab)
487
- );
488
- --slds-c-buttonicon-color-background-focus: var(
489
- --slds-c-buttonicon-brand-color-background-focus,
490
- var(--sds-g-color-brand-base-40, #0b5cab)
491
- );
492
- --slds-c-buttonicon-color-background-active: var(
493
- --slds-c-buttonicon-brand-color-background-active,
494
- var(--sds-g-color-brand-base-10, #001639)
495
- );
496
- --slds-c-buttonicon-color-border: var(
497
- --slds-c-buttonicon-brand-color-border,
498
- var(--sds-g-color-brand-base-50, #0176d3)
499
- );
500
- --slds-c-buttonicon-color-border-hover: var(
501
- --slds-c-buttonicon-brand-color-border-hover,
502
- var(--sds-g-color-brand-base-40, #0b5cab)
503
- );
504
- --slds-c-buttonicon-color-border-focus: var(
505
- --slds-c-buttonicon-brand-color-border-focus,
506
- var(--sds-g-color-brand-base-40, #0b5cab)
507
- );
508
- --slds-c-buttonicon-color-border-active: var(
509
- --slds-c-buttonicon-brand-color-border-active,
510
- var(--sds-g-color-brand-base-10, #001639)
511
- );
861
+ * Variant - Brand
862
+ */
863
+ :host([data-render-mode="shadow"][variant='brand']) [part~='button-icon'] {
864
+ --slds-c-button-brand-color-background: var(--slds-c-buttonicon-brand-color-background);
865
+ --slds-c-button-brand-color-background-hover: var(--slds-c-buttonicon-brand-color-background-hover);
866
+ --slds-c-button-brand-color-background-focus: var(--slds-c-buttonicon-brand-color-background-focus);
867
+ --slds-c-button-brand-color-background-active: var(--slds-c-buttonicon-brand-color-background-active);
868
+ --slds-c-button-brand-color-border: var(--slds-c-buttonicon-brand-color-border);
869
+ --slds-c-button-brand-color-border-hover: var(--slds-c-buttonicon-brand-color-border-hover);
870
+ --slds-c-button-brand-color-border-focus: var(--slds-c-buttonicon-brand-color-border-focus);
871
+ --slds-c-button-brand-color-border-active: var(--slds-c-buttonicon-brand-color-border-active);
512
872
 
513
873
  --slds-c-buttonicon-color-foreground: var(
514
874
  --slds-c-buttonicon-brand-color-foreground,
@@ -529,9 +889,13 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
529
889
  }
530
890
 
531
891
  /**
532
- * Variant - Bare Inverse
533
- */
534
- :host([data-render-mode="shadow"][variant='bare-inverse']) {
892
+ * Variant - Bare Inverse
893
+ */
894
+ :host([data-render-mode="shadow"][variant='bare-inverse']) [part~='button-icon'] {
895
+ /* Background */
896
+ --slds-c-buttonicon-color-background-active: transparent;
897
+
898
+ /* Border */
535
899
  --slds-c-buttonicon-color-border: var(--slds-c-buttonicon-bareinverse-color-border, transparent);
536
900
  --slds-c-buttonicon-color-border-hover: var(
537
901
  --slds-c-buttonicon-bareinverse-color-border-hover,
@@ -539,36 +903,47 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
539
903
  );
540
904
  --slds-c-buttonicon-color-border-focus: var(
541
905
  --slds-c-buttonicon-bareinverse-color-border-focus,
542
- transparent
543
- );
544
- --slds-c-buttonicon-color-border-active: var(
545
- --slds-c-buttonicon-bareinverse-color-border-active,
546
- transparent
906
+ var(--sds-g-color-brand-base-100, #ffffff)
547
907
  );
908
+ --slds-c-buttonicon-color-border-active: var(--slds-c-buttonicon-color-border-focus);
909
+
910
+ /* Spacing */
548
911
  --slds-c-buttonicon-spacing-inline: var(--slds-c-buttonicon-bareinverse-spacing-inline, 0);
549
912
  --slds-c-buttonicon-spacing-block: var(--slds-c-buttonicon-bareinverse-spacing-block, 0);
913
+
914
+ /* Shadow */
915
+ --slds-c-buttonicon-shadow-focus: 0 0 3px var(--sds-g-color-brand-base-100, #ffffff);
916
+
917
+ /* Icon */
550
918
  --slds-c-buttonicon-color-foreground: var(
551
919
  --slds-c-buttonicon-bareinverse-color-foreground,
552
920
  var(--sds-g-color-brand-base-100, #ffffff)
553
921
  );
554
922
  --slds-c-buttonicon-color-foreground-hover: var(
555
923
  --slds-c-buttonicon-bareinverse-color-foreground-hover,
556
- var(--sds-g-color-brand-base-100, #ffffff)
924
+ var(--sds-g-color-brand-base-95, #eef4ff)
557
925
  );
558
926
  --slds-c-buttonicon-color-foreground-focus: var(
559
927
  --slds-c-buttonicon-bareinverse-color-foreground-focus,
560
- var(--sds-g-color-brand-base-100, #ffffff)
928
+ var(--sds-g-color-brand-base-95, #eef4ff)
561
929
  );
562
930
  --slds-c-buttonicon-color-foreground-active: var(
563
931
  --slds-c-buttonicon-bareinverse-color-foreground-active,
564
- var(--sds-g-color-brand-base-100, #ffffff)
932
+ var(--sds-g-color-brand-base-95, #eef4ff)
933
+ );
934
+
935
+ /* Disabled */
936
+ --slds-c-buttonicon-color-border-disabled: var(
937
+ --slds-c-buttonicon-bareinverse-color-border-disabled,
938
+ transparent
565
939
  );
566
940
  }
567
941
 
568
942
  /**
569
- * Variant - Border Inverse
570
- */
571
- :host([data-render-mode="shadow"][variant='border-inverse']) {
943
+ * Variant - Border Inverse
944
+ */
945
+ :host([data-render-mode="shadow"][variant='border-inverse']) [part~='button-icon'] {
946
+ /* Border */
572
947
  --slds-c-buttonicon-color-border: var(
573
948
  --slds-c-buttonicon-borderinverse-color-border,
574
949
  var(--sds-g-color-brand-base-100, #ffffff)
@@ -586,28 +961,32 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
586
961
  var(--sds-g-color-brand-base-100, #ffffff)
587
962
  );
588
963
 
964
+ /* Shadow */
965
+ --slds-c-buttonicon-shadow-focus: 0 0 3px var(--sds-g-color-brand-base-100, #ffffff);
966
+
967
+ /* Icon */
589
968
  --slds-c-buttonicon-color-foreground: var(
590
969
  --slds-c-buttonicon-borderinverse-color-foreground,
591
970
  var(--sds-g-color-brand-base-100, #ffffff)
592
971
  );
593
972
  --slds-c-buttonicon-color-foreground-hover: var(
594
973
  --slds-c-buttonicon-borderinverse-color-foreground-hover,
595
- var(--sds-g-color-brand-base-100, #ffffff)
974
+ var(--sds-g-color-brand-base-95, #eef4ff)
596
975
  );
597
976
  --slds-c-buttonicon-color-foreground-focus: var(
598
977
  --slds-c-buttonicon-borderinverse-color-foreground-focus,
599
- var(--sds-g-color-brand-base-100, #ffffff)
978
+ var(--sds-g-color-brand-base-95, #eef4ff)
600
979
  );
601
980
  --slds-c-buttonicon-color-foreground-active: var(
602
981
  --slds-c-buttonicon-borderinverse-color-foreground-active,
603
- var(--sds-g-color-brand-base-100, #ffffff)
982
+ var(--sds-g-color-brand-base-90, #d8e6fe)
604
983
  );
605
984
  }
606
985
 
607
986
  /**
608
- * Variant - Border Filled
609
- */
610
- :host([data-render-mode="shadow"][variant='border-filled']) {
987
+ * Variant - Border Filled
988
+ */
989
+ :host([data-render-mode="shadow"][variant='border-filled']) [part~='button-icon'] {
611
990
  --slds-c-buttonicon-color-background: var(
612
991
  --slds-c-buttonicon-borderfilled-color-background,
613
992
  var(--sds-g-color-neutral-base-100, #ffffff)
@@ -631,57 +1010,58 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
631
1010
  }
632
1011
 
633
1012
  /**
634
- * Sizes
635
- *
636
- * Sizes are restricted to specific variants.
637
- */
638
-
639
- :host([data-render-mode="shadow"][size='xx-small']) {
640
- --slds-c-buttonicon-spacing-block: 0.25rem;
641
- --slds-c-buttonicon-spacing-inline: 0.25rem;
1013
+ * Sizes
1014
+ *
1015
+ * Sizes are restricted to specific variants.
1016
+ */
1017
+ :host([data-render-mode="shadow"][size='xx-small']) [part~='button-icon'] {
1018
+ --slds-c-buttonicon-spacing-block: var(--sds-g-spacing-1, 0.25rem);
1019
+ --slds-c-buttonicon-spacing-inline: var(--sds-g-spacing-1, 0.25rem);
642
1020
  --slds-c-buttonicon-sizing: 0.5rem;
643
1021
  }
644
1022
 
645
- :host([data-render-mode="shadow"][size='x-small']) {
646
- --slds-c-buttonicon-spacing-block: 0.25rem;
647
- --slds-c-buttonicon-spacing-inline: 0.25rem;
1023
+ :host([data-render-mode="shadow"][size='x-small']) [part~='button-icon'] {
1024
+ --slds-c-buttonicon-spacing-block: var(--sds-g-spacing-1, 0.25rem);
1025
+ --slds-c-buttonicon-spacing-inline: var(--sds-g-spacing-1, 0.25rem);
648
1026
  --slds-c-buttonicon-sizing: 0.75rem;
649
1027
  }
650
1028
 
651
- :host([data-render-mode="shadow"][size='small']) {
652
- --slds-c-buttonicon-spacing-block: 0.25rem;
653
- --slds-c-buttonicon-spacing-inline: 0.25rem;
1029
+ :host([data-render-mode="shadow"][size='small']) [part~='button-icon'] {
1030
+ --slds-c-buttonicon-spacing-block: var(--sds-g-spacing-1, 0.25rem);
1031
+ --slds-c-buttonicon-spacing-inline: var(--sds-g-spacing-1, 0.25rem);
654
1032
  --slds-c-buttonicon-sizing: 0.875rem;
655
1033
  }
656
1034
 
657
- :host([data-render-mode="shadow"][size='x-small'][variant='bare']) {
1035
+ :host([data-render-mode="shadow"][size='x-small'][variant='bare']) [part~='button-icon'] {
658
1036
  --slds-c-buttonicon-spacing-block: 0;
659
1037
  --slds-c-buttonicon-spacing-inline: 0;
660
1038
  --slds-c-buttonicon-sizing: 0.5rem;
661
1039
  }
662
1040
 
663
- :host([data-render-mode="shadow"][size='small'][variant='bare']) {
1041
+ :host([data-render-mode="shadow"][size='small'][variant='bare']) [part~='button-icon'] {
664
1042
  --slds-c-buttonicon-spacing-block: 0;
665
1043
  --slds-c-buttonicon-spacing-inline: 0;
666
1044
  --slds-c-buttonicon-sizing: 0.75rem;
667
1045
  }
668
1046
 
669
- :host([data-render-mode="shadow"][size='large'][variant='bare']) {
1047
+ :host([data-render-mode="shadow"][size='large'][variant='bare']) [part~='button-icon'] {
670
1048
  --slds-c-buttonicon-sizing: 1.5rem;
671
1049
  }
672
1050
 
673
- /* :host::part(end), */
1051
+ /**
1052
+ * End part
1053
+ */
674
1054
  :host([data-render-mode="shadow"]) [part~='end'] {
675
- padding-inline-start: var(--slds-c-buttonicon-end-padding-inline-start, 0);
1055
+ padding-inline-start: var(--slds-c-buttonicon-end-spacing-inline-start, 0);
676
1056
  }
677
1057
 
678
1058
  /**
679
- * A temporarily baked-in utility class until SLDS gets a proper utility package.
680
- *
681
- * This is a hybrid patch between synthetic and native shadow. The ideal final
682
- * outcome is the removal of this class and replacing the class with the SLDS
683
- * utility package solution.
684
- */
1059
+ * A temporarily baked-in utility class until SLDS gets a proper utility package.
1060
+ *
1061
+ * This is a hybrid patch between synthetic and native shadow. The ideal final
1062
+ * outcome is the removal of this class and replacing the class with the SLDS
1063
+ * utility package solution.
1064
+ */
685
1065
  :host([data-render-mode="shadow"]) .slds-assistive-text {
686
1066
  position: absolute !important;
687
1067
  margin: -1px !important;
@@ -696,6 +1076,51 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
696
1076
  }
697
1077
  }
698
1078
 
1079
+ /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
1080
+ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1081
+
1082
+ :host([data-render-mode="shadow"]) [part~='overlay'] {
1083
+ background-color: var(
1084
+ --sds-c-overlay-color-background,
1085
+ var(--sds-s-popup-color-background, var(--sds-g-color-neutral-base-1))
1086
+ );
1087
+ color: var(
1088
+ --sds-c-overlay-text-color,
1089
+ var(--sds-s-popup-text-color, var(--sds-g-color-neutral-base-contrast-4))
1090
+ );
1091
+ border-radius: var(
1092
+ --sds-c-overlay-radius-border,
1093
+ var(--sds-s-popup-radius-border, var(--sds-g-radius-border-2, 0.25rem))
1094
+ );
1095
+ border-width: var(
1096
+ --sds-c-overlay-sizing-border,
1097
+ var(--sds-s-popup-sizing-border, var(--sds-g-sizing-border-1, 1px))
1098
+ );
1099
+ border-color: var(
1100
+ --sds-c-overlay-color-border,
1101
+ var(--sds-s-popup-color-border, var(--sds-g-color-border-base-1, #c9c9c9))
1102
+ );
1103
+ box-shadow: var(--sds-c-overlay-shadow, var(--sds-s-popup-shadow, var(--sds-g-shadow-1, 0 0 2px 0 #18181814, 0 2px 4px 1px #18181828)));
1104
+
1105
+ /* TODO: consider semantics of the shared hook for overlays/popups. */
1106
+ padding-left: var(
1107
+ --sds-c-overlay-spacing-inline-start,
1108
+ var(--sds-c-overlay-spacing-inline, var(--sds-s-popup-spacing-inline, var(--sds-g-spacing-3, 0.75rem)))
1109
+ );
1110
+ padding-right: var(
1111
+ --sds-c-overlay-spacing-inline-end,
1112
+ var(--sds-c-overlay-spacing-inline, var(--sds-s-popup-spacing-inline, var(--sds-g-spacing-3, 0.75rem)))
1113
+ );
1114
+ padding-top: var(
1115
+ --sds-c-overlay-spacing-block-start,
1116
+ var(--sds-c-overlay-spacing-block, var(--sds-s-popup-spacing-block, var(--sds-g-spacing-3, 0.75rem)))
1117
+ );
1118
+ padding-bottom: var(
1119
+ --sds-c-overlay-spacing-block-end,
1120
+ var(--sds-c-overlay-spacing-block, var(--sds-s-popup-spacing-block, var(--sds-g-spacing-3, 0.75rem)))
1121
+ );
1122
+ }
1123
+
699
1124
  /* Copyright (c) 2015-present, Salesforce, Inc. All rights reserved
700
1125
  Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
701
1126
 
@@ -1071,7 +1496,7 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1071
1496
  }
1072
1497
 
1073
1498
  @supports (--styling-hooks: '') {
1074
- :host([data-render-mode="shadow"]) [part~="dropdown"] {
1499
+ :host([data-render-mode="shadow"]) [part~='dropdown'] {
1075
1500
  /* stylelint-disable sds-stylelint-plugin/styling-hooks-pattern */
1076
1501
  --_dropdown-size-x-small: 12rem;
1077
1502
  --_dropdown-size-medium: var(--sds-g-sizing-15, 20rem);
@@ -1079,8 +1504,11 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1079
1504
  --_nubbin-size-default: var(--sds-g-sizing-5, 1rem);
1080
1505
  --_duration-quickly: 0.1s;
1081
1506
  /* stylelint-enable sds-stylelint-plugin/styling-hooks-pattern */
1082
-
1083
- --sds-c-overlay-color-background: var(--slds-c-dropdown-color-background, var(--sds-g-color-neutral-base-100, #ffffff));
1507
+
1508
+ --sds-c-overlay-color-background: var(
1509
+ --slds-c-dropdown-color-background,
1510
+ var(--sds-g-color-neutral-base-100, #ffffff)
1511
+ );
1084
1512
  --sds-c-overlay-text-color: var(--slds-c-dropdown-text-color, var(--sds-g-color-neutral-base-10, #181818));
1085
1513
  --sds-c-overlay-radius-border: var(--slds-c-dropdown-radius-border, var(--sds-g-radius-border-2, 0.25rem));
1086
1514
  --sds-c-overlay-sizing-border: var(--slds-c-dropdown-sizing-border, var(--sds-g-sizing-border-1, 1px));
@@ -1088,8 +1516,14 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1088
1516
  --sds-c-overlay-shadow: var(--slds-c-dropdown-shadow, 0 2px 3px 0 rgba(0, 0, 0, 0.16));
1089
1517
  --sds-c-overlay-spacing-inline-start: 0;
1090
1518
  --sds-c-overlay-spacing-inline-end: 0;
1091
- --sds-c-overlay-spacing-block-start: var(--slds-c-dropdown-spacing-block-start, var(--slds-c-dropdown-spacing-block, var(--sds-g-spacing-1, 0.25rem)));
1092
- --sds-c-overlay-spacing-block-end: var(--slds-c-dropdown-spacing-block-end, var(--slds-c-dropdown-spacing-block, var(--sds-g-spacing-1, 0.25rem)));
1519
+ --sds-c-overlay-spacing-block-start: var(
1520
+ --slds-c-dropdown-spacing-block-start,
1521
+ var(--slds-c-dropdown-spacing-block, var(--sds-g-spacing-1, 0.25rem))
1522
+ );
1523
+ --sds-c-overlay-spacing-block-end: var(
1524
+ --slds-c-dropdown-spacing-block-end,
1525
+ var(--slds-c-dropdown-spacing-block, var(--sds-g-spacing-1, 0.25rem))
1526
+ );
1093
1527
 
1094
1528
  position: absolute;
1095
1529
  z-index: 7000;
@@ -1100,26 +1534,27 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1100
1534
  max-width: var(--slds-c-dropdown-sizing-width-max, var(--_dropdown-size-medium));
1101
1535
  /* stylelint-enable sds-stylelint-plugin/styling-hooks-pattern */
1102
1536
  /* stylelint-disable */
1103
- margin-block-start: calc(var(--slds-c-dropdown-spacing-block-start, var(--slds-c-dropdown-spacing-block, var(--sds-g-spacing-1, 0.25rem))) / 2);
1104
- margin-block-end: calc(var(--slds-c-dropdown-spacing-block-end, var(--slds-c-dropdown-spacing-block, var(--sds-g-spacing-1, 0.25rem))) / 2);
1105
- /* stylelint-enable */
1537
+ margin-block-start: calc(
1538
+ var(--slds-c-dropdown-spacing-block-start, var(--slds-c-dropdown-spacing-block, var(--sds-g-spacing-1, 0.25rem))) /
1539
+ 2
1540
+ );
1541
+ margin-block-end: calc(
1542
+ var(--slds-c-dropdown-spacing-block-end, var(--slds-c-dropdown-spacing-block, var(--sds-g-spacing-1, 0.25rem))) /
1543
+ 2
1544
+ );
1545
+ /* stylelint-enable */
1106
1546
  font-size: var(--slds-c-dropdown-font-size, var(--sds-g-font-scale-neg-3, 0.75rem));
1107
1547
  border-style: solid;
1108
1548
  transform: translateX(-50%);
1109
1549
  }
1110
1550
 
1551
+ /* May need to be moved into menu-item but doesn't appear supported atm */
1111
1552
  :host([data-render-mode="shadow"]) mark {
1112
1553
  font-weight: var(--sds-g-font-weight-bold, bold);
1113
1554
  background-color: transparent;
1114
1555
  color: inherit;
1115
1556
  }
1116
1557
 
1117
- :host([data-render-mode="shadow"]) .slds-dropdown_inverse {
1118
- background: var(--sds-g-color-brand-base-10, #001639);
1119
- border-color: var(--sds-g-color-brand-base-10, #001639);
1120
- color: var(--sds-g-color-neutral-base-100, #ffffff);
1121
- }
1122
-
1123
1558
  :host([data-render-mode="shadow"]) .slds-assistive-text {
1124
1559
  position: absolute !important;
1125
1560
  margin: -1px !important;
@@ -1133,31 +1568,35 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1133
1568
  white-space: nowrap !important;
1134
1569
  }
1135
1570
 
1136
- :host([data-render-mode="shadow"].slds-dropdown-trigger) {
1571
+ :host([data-render-mode="shadow"].slds-dropdown-trigger),:host([data-render-mode="shadow"])
1572
+ .slds-dropdown-trigger {
1137
1573
  position: relative;
1138
-
1139
- /* display: inline-block; */
1574
+ display: inline-block; /* Required to expand to block children */
1140
1575
  }
1141
1576
 
1142
- :host([data-render-mode="shadow"].slds-dropdown-trigger) .slds-dropdown {
1577
+ :host([data-render-mode="shadow"].slds-dropdown-trigger) .slds-dropdown,:host([data-render-mode="shadow"])
1578
+ .slds-dropdown-trigger .slds-dropdown {
1143
1579
  top: 100%;
1144
1580
  }
1145
1581
 
1146
- :host([data-render-mode="shadow"].slds-dropdown-trigger) .slds-dropdown_bottom {
1582
+ :host([data-render-mode="shadow"].slds-dropdown-trigger) .slds-dropdown_bottom,:host([data-render-mode="shadow"])
1583
+ .slds-dropdown-trigger .slds-dropdown_bottom {
1147
1584
  top: auto;
1148
1585
  }
1149
1586
 
1150
1587
  /* Deal with positioning when target is just an icon */
1151
- :host([data-render-mode="shadow"].slds-dropdown-trigger) > [class*="slds-button_icon"] ~ .slds-dropdown_left[class*="slds-nubbin"] {
1152
- left: calc(var(--sds-g-spacing-2, 0.5rem) * -1);
1588
+ :host([data-render-mode="shadow"].slds-dropdown-trigger) > [class*='slds-button_icon'] ~ .slds-dropdown_left[class*='slds-nubbin'],:host([data-render-mode="shadow"])
1589
+ .slds-dropdown-trigger > [class*='slds-button_icon'] ~ .slds-dropdown_left[class*='slds-nubbin'] {
1590
+ left: (var(--sds-g-spacing-2, 0.5rem) * -1);
1153
1591
  }
1154
1592
 
1155
- :host([data-render-mode="shadow"].slds-dropdown-trigger) > [class*="slds-button_icon"] ~ .slds-dropdown_right[class*="slds-nubbin"] {
1156
- right: calc(var(--sds-g-spacing-2, 0.5rem) * -1);
1593
+ :host([data-render-mode="shadow"].slds-dropdown-trigger) > [class*='slds-button_icon'] ~ .slds-dropdown_right[class*='slds-nubbin'],:host([data-render-mode="shadow"])
1594
+ .slds-dropdown-trigger > [class*='slds-button_icon'] ~ .slds-dropdown_right[class*='slds-nubbin'] {
1595
+ right: (var(--sds-g-spacing-2, 0.5rem) * -1);
1157
1596
  }
1158
1597
 
1159
-
1160
- :host([data-render-mode="shadow"].slds-dropdown-trigger_hover) .slds-dropdown {
1598
+ :host([data-render-mode="shadow"].slds-dropdown-trigger_hover) .slds-dropdown,:host([data-render-mode="shadow"])
1599
+ .slds-dropdown-trigger_hover .slds-dropdown {
1161
1600
  visibility: hidden;
1162
1601
  opacity: 0;
1163
1602
  /* stylelint-disable sds-stylelint-plugin/styling-hooks-pattern */
@@ -1165,11 +1604,15 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1165
1604
  /* stylelint-enable sds-stylelint-plugin/styling-hooks-pattern */
1166
1605
  }
1167
1606
 
1168
- :host([data-render-mode="shadow"].slds-dropdown-trigger_hover:hover),:host([data-render-mode="shadow"].slds-dropdown-trigger_hover:focus) {
1607
+ :host([data-render-mode="shadow"].slds-dropdown-trigger_hover:hover),:host([data-render-mode="shadow"].slds-dropdown-trigger_hover:focus),:host([data-render-mode="shadow"])
1608
+ .slds-dropdown-trigger_hover:hover,:host([data-render-mode="shadow"])
1609
+ .slds-dropdown-trigger_hover:focus {
1169
1610
  outline: 0;
1170
1611
  }
1171
1612
 
1172
- :host([data-render-mode="shadow"].slds-dropdown-trigger_hover:hover) .slds-dropdown,:host([data-render-mode="shadow"].slds-dropdown-trigger_hover:focus) .slds-dropdown {
1613
+ :host([data-render-mode="shadow"].slds-dropdown-trigger_hover:hover) .slds-dropdown,:host([data-render-mode="shadow"].slds-dropdown-trigger_hover:focus) .slds-dropdown,:host([data-render-mode="shadow"])
1614
+ .slds-dropdown-trigger_hover:hover .slds-dropdown,:host([data-render-mode="shadow"])
1615
+ .slds-dropdown-trigger_hover:focus .slds-dropdown {
1173
1616
  visibility: visible;
1174
1617
  opacity: 1;
1175
1618
  /* stylelint-disable sds-stylelint-plugin/styling-hooks-pattern */
@@ -1177,25 +1620,28 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1177
1620
  /* stylelint-enable sds-stylelint-plugin/styling-hooks-pattern */
1178
1621
  }
1179
1622
 
1180
- :host([data-render-mode="shadow"].slds-dropdown-trigger_click) .slds-dropdown,:host([data-render-mode="shadow"].slds-dropdown-trigger_click:hover) .slds-dropdown {
1623
+ :host([data-render-mode="shadow"].slds-dropdown-trigger_click) .slds-dropdown,:host([data-render-mode="shadow"].slds-dropdown-trigger_click:hover) .slds-dropdown,:host([data-render-mode="shadow"])
1624
+ .slds-dropdown-trigger_click .slds-dropdown,:host([data-render-mode="shadow"])
1625
+ .slds-dropdown-trigger_click:hover .slds-dropdown {
1181
1626
  display: none;
1182
1627
  }
1183
1628
 
1184
- :host([data-render-mode="shadow"].slds-dropdown-trigger_click.slds-is-open) .slds-dropdown {
1629
+ :host([data-render-mode="shadow"].slds-dropdown-trigger_click.slds-is-open) .slds-dropdown,:host([data-render-mode="shadow"])
1630
+ .slds-dropdown-trigger_click.slds-is-open .slds-dropdown {
1185
1631
  display: block;
1186
1632
  visibility: visible;
1187
1633
  opacity: 1;
1188
1634
  }
1189
1635
 
1190
1636
  /* Adjust position of dropdown with top nubbin */
1191
- :host([data-render-mode="shadow"]) [part~='dropdown'][class*="slds-nubbin_top"] {
1637
+ :host([data-render-mode="shadow"]) [part~='dropdown'][class*='slds-nubbin_top'] {
1192
1638
  /* stylelint-disable sds-stylelint-plugin/styling-hooks-pattern */
1193
1639
  margin-top: calc(var(--_nubbin-size-default) * 0.5);
1194
1640
  /* stylelint-enable sds-stylelint-plugin/styling-hooks-pattern */
1195
1641
  }
1196
1642
 
1197
1643
  /* Adjust position of dropdown with bottom nubbin */
1198
- :host([data-render-mode="shadow"]) [part~='dropdown'][class*="slds-nubbin_bottom"] {
1644
+ :host([data-render-mode="shadow"]) [part~='dropdown'][class*='slds-nubbin_bottom'] {
1199
1645
  /* stylelint-disable sds-stylelint-plugin/styling-hooks-pattern */
1200
1646
  margin-bottom: calc(var(--_nubbin-size-default) * 0.5);
1201
1647
  /* stylelint-enable sds-stylelint-plugin/styling-hooks-pattern */
@@ -1246,26 +1692,43 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1246
1692
 
1247
1693
  :host([data-render-mode="shadow"]) .slds-dropdown_fluid {
1248
1694
  /* stylelint-disable sds-stylelint-plugin/styling-hooks-pattern */
1249
- min-width: var(--_dropdown-size-x-small); /* Prevents menu from being illegible when input's width is small */
1695
+ min-width: var(
1696
+ --_dropdown-size-x-small
1697
+ ); /* Prevents menu from being illegible when input's width is small */
1250
1698
  /* stylelint-enable sds-stylelint-plugin/styling-hooks-pattern */
1251
1699
  max-width: 100%;
1252
1700
  width: 100%;
1253
1701
  }
1254
1702
 
1255
1703
  :host([data-render-mode="shadow"]) .slds-dropdown_length-5 {
1256
- max-height: calc(((var(--slds-c-dropdown-font-size, var(--sds-g-font-scale-neg-3, 0.75rem)) * var(--sds-g-font-lineheight, 1.5)) + var(--sds-g-spacing-4, 1rem)) * 5);
1704
+ max-height: calc(
1705
+ (
1706
+ (var(--slds-c-dropdown-font-size, var(--sds-g-font-scale-neg-3, 0.75rem)) * var(--sds-g-font-lineheight, 1.5)) +
1707
+ var(--sds-g-spacing-4, 1rem)
1708
+ ) * 5
1709
+ );
1257
1710
  -webkit-overflow-scrolling: touch;
1258
1711
  overflow-y: auto;
1259
1712
  }
1260
1713
 
1261
1714
  :host([data-render-mode="shadow"]) .slds-dropdown_length-7 {
1262
- max-height: calc(((var(--slds-c-dropdown-font-size, var(--sds-g-font-scale-neg-3, 0.75rem)) * var(--sds-g-font-lineheight, 1.5)) + var(--sds-g-spacing-4, 1rem)) * 7);
1715
+ max-height: calc(
1716
+ (
1717
+ (var(--slds-c-dropdown-font-size, var(--sds-g-font-scale-neg-3, 0.75rem)) * var(--sds-g-font-lineheight, 1.5)) +
1718
+ var(--sds-g-spacing-4, 1rem)
1719
+ ) * 7
1720
+ );
1263
1721
  -webkit-overflow-scrolling: touch;
1264
1722
  overflow-y: auto;
1265
1723
  }
1266
1724
 
1267
1725
  :host([data-render-mode="shadow"]) .slds-dropdown_length-10 {
1268
- max-height: calc(((var(--slds-c-dropdown-font-size, var(--sds-g-font-scale-neg-3, 0.75rem)) * var(--sds-g-font-lineheight, 1.5)) + var(--sds-g-spacing-4, 1rem)) * 10);
1726
+ max-height: calc(
1727
+ (
1728
+ (var(--slds-c-dropdown-font-size, var(--sds-g-font-scale-neg-3, 0.75rem)) * var(--sds-g-font-lineheight, 1.5)) +
1729
+ var(--sds-g-spacing-4, 1rem)
1730
+ ) * 10
1731
+ );
1269
1732
  -webkit-overflow-scrolling: touch;
1270
1733
  overflow-y: auto;
1271
1734
  }
@@ -1294,20 +1757,34 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1294
1757
  overflow-y: auto;
1295
1758
  }
1296
1759
 
1297
- :host([data-render-mode="shadow"]) [dir="rtl"] .slds-dropdown_center {
1760
+ :host([data-render-mode="shadow"]) [dir='rtl'] .slds-dropdown_center {
1298
1761
  left: auto;
1299
1762
  right: auto;
1300
1763
  transform: translateX(calc(50% - (0.875rem / 2)));
1301
1764
  }
1302
1765
 
1303
- /* LIST ITEM CSS: */
1766
+ /**
1767
+ * Variant - Inverse
1768
+ *
1769
+ * dropdown_inverse is not currently supported in LBC. button-icon inverse
1770
+ * variant class is loaded, but nothing happens to dropdown, so these
1771
+ * styles are currently dormant and have not been fully refactored to
1772
+ * native shadow DOM.
1773
+ */
1774
+
1775
+ :host([data-render-mode="shadow"]) .slds-dropdown_inverse {
1776
+ background: var(--sds-g-color-brand-base-10, #001639);
1777
+ border-color: var(--sds-g-color-brand-base-10, #001639);
1778
+ color: var(--sds-g-color-neutral-base-100, #ffffff);
1779
+ }
1780
+
1304
1781
  :host([data-render-mode="shadow"]) .slds-dropdown_inverse .slds-dropdown__item > a {
1305
1782
  color: var(--sds-g-color-neutral-base-100, #ffffff);
1306
1783
  }
1307
1784
 
1308
- :host([data-render-mode="shadow"]) .slds-dropdown_inverse .slds-dropdown__item > a:hover,:host([data-render-mode="shadow"])
1785
+ :host([data-render-mode="shadow"]) .slds-dropdown_inverse .slds-dropdown__item > a:hover,:host([data-render-mode="shadow"])
1309
1786
  .slds-dropdown_inverse .slds-dropdown__item > a:focus {
1310
- color: var(--sds-g-color-neutral-base-90, #e5e5e5); /* updated to remove alpha color value */
1787
+ color: var(--sds-g-color-neutral-base-90, #e5e5e5);
1311
1788
  background-color: transparent;
1312
1789
  }
1313
1790
 
@@ -1316,16 +1793,20 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1316
1793
  background-color: transparent;
1317
1794
  }
1318
1795
 
1319
- :host([data-render-mode="shadow"]) .slds-dropdown_inverse .slds-dropdown__item > a[aria-disabled="true"] {
1796
+ :host([data-render-mode="shadow"]) .slds-dropdown_inverse .slds-dropdown__item > a[aria-disabled='true'] {
1320
1797
  color: var(--sds-g-color-palette-blue-20, #032d60);
1321
1798
  cursor: default;
1322
1799
  }
1323
1800
 
1324
- :host([data-render-mode="shadow"]) .slds-dropdown_inverse .slds-dropdown__item > a[aria-disabled="true"]:hover {
1801
+ :host([data-render-mode="shadow"]) .slds-dropdown_inverse .slds-dropdown__item > a[aria-disabled='true']:hover {
1325
1802
  background-color: transparent;
1326
1803
  }
1327
1804
 
1328
- /* slds-dropdown_actions goes on dropdown component but targets list item */
1805
+ /**
1806
+ * Variant - Actions
1807
+ *
1808
+ * Appears to be unsupported, not refactored like variant - inverse above.
1809
+ */
1329
1810
  :host([data-render-mode="shadow"]) .slds-dropdown_actions a {
1330
1811
  color: var(--sds-g-color-brand-base-50, #0176d3);
1331
1812
  }
@@ -1352,9 +1833,164 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1352
1833
  margin-bottom: calc(var(--sds-g-spacing-1, 0.25rem) * -1);
1353
1834
  }
1354
1835
 
1355
- /*
1356
- To Do: Bring in the following classnames when working on menu-item
1357
- - .slds-dropdown__header
1358
- - .slds-dropdown__item > a , etc
1359
- */
1360
- }
1836
+ /**
1837
+ * is-loading - spinner
1838
+ *
1839
+ * Attr is-loading passed to button-menu which loads lightning-spinner
1840
+ * and triggers the utility class. We tap into it and use it to make
1841
+ * space for the spinner which is out of the flow of the document.
1842
+ * This is bit of a hack until utilities are figured out.
1843
+ */
1844
+ :host([data-render-mode="shadow"]) .slds-p-vertical_large {
1845
+ padding: var(--sds-g-spacing-5, 1.5rem);
1846
+ }
1847
+ }
1848
+
1849
+ /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
1850
+ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
1851
+
1852
+ @supports (--styling-hooks: '') {
1853
+ /**
1854
+ * Spacing amount between elements in button_icon versus standard button
1855
+ * are different so we target button_icon specifically. display: flex
1856
+ * comes from parent button styles.
1857
+ */
1858
+ :host([data-render-mode="shadow"]) [part~='button-icon'] {
1859
+ gap: var(--sds-g-spacing-1, 0.25rem);
1860
+ }
1861
+
1862
+ /**
1863
+ * Note: the remaining CSS in this file is required due to the hardcoded
1864
+ * button-icon in lightning-button-menu's template which isn't refactorable
1865
+ * at the time of this implementation. This CSS should be removed when the
1866
+ * button-icon is refactored to use the component version.
1867
+ *
1868
+ * Refactoring to component version is important, until then this code is
1869
+ * fragile because it is forked, changes to button-icon won't be reflected here.
1870
+ */
1871
+ :host([data-render-mode="shadow"]) .slds-button_icon-more {
1872
+ --slds-c-buttonicon-color-background: var(--sds-g-color-neutral-base-100, #ffffff);
1873
+ --slds-c-buttonicon-color-background-hover: var(--sds-g-color-neutral-base-100, #ffffff);
1874
+ --slds-c-buttonicon-color-background-focus: var(--sds-g-color-neutral-base-100, #ffffff);
1875
+ --slds-c-buttonicon-color-background-active: var(--sds-g-color-neutral-base-100, #ffffff);
1876
+ }
1877
+
1878
+ /**
1879
+ * SLDS sizing of the "more" icon is inconsistent and potentially broken.
1880
+ * Until fixed, we'll stick with a consistent size across all size variants.
1881
+ */
1882
+ :host([data-render-mode="shadow"]) .slds-button_icon-more lightning-primitive-icon:last-of-type {
1883
+ --slds-c-icon-sizing: var(--sds-g-sizing-3, 0.5rem);
1884
+ }
1885
+
1886
+ /**
1887
+ * Sizing hacks
1888
+ */
1889
+ :host([data-render-mode="shadow"]) .slds-button_icon-xx-small {
1890
+ /* No hook for the value we need, so we calc to get it and keep things relative */
1891
+ --slds-c-buttonicon-spacing-block: calc(var(--sds-g-spacing-1, 0.25rem) / 1.5);
1892
+ --slds-c-buttonicon-spacing-inline: var(--sds-g-spacing-2, 0.5rem);
1893
+ --slds-c-buttonicon-sizing: var(--sds-g-sizing-3, 0.5rem);
1894
+ }
1895
+
1896
+ :host([data-render-mode="shadow"]) .slds-button_icon-x-small {
1897
+ --slds-c-buttonicon-spacing-block: var(--sds-g-spacing-1, 0.25rem);
1898
+ --slds-c-buttonicon-spacing-inline: var(--sds-g-spacing-2, 0.5rem);
1899
+ --slds-c-buttonicon-sizing: var(--sds-g-sizing-4, 0.75rem);
1900
+ }
1901
+
1902
+ :host([data-render-mode="shadow"]) .slds-button_icon-small {
1903
+ --slds-c-buttonicon-spacing-block: var(--sds-g-spacing-1, 0.25rem);
1904
+ --slds-c-buttonicon-spacing-inline: var(--sds-g-spacing-2, 0.5rem);
1905
+ --slds-c-buttonicon-sizing: 0.875rem;
1906
+ }
1907
+
1908
+ :host([data-render-mode="shadow"]) .slds-button_icon-large {
1909
+ --slds-c-buttonicon-spacing-block: var(--sds-g-spacing-3, 0.75rem);
1910
+ --slds-c-buttonicon-spacing-inline: var(--sds-g-spacing-2, 0.5rem);
1911
+ --slds-c-buttonicon-sizing: var(--sds-g-sizing-7, 1.5rem);
1912
+ }
1913
+
1914
+ /**
1915
+ * Variant Hacks - Container
1916
+ */
1917
+ :host([data-render-mode="shadow"]) .slds-button_icon-container {
1918
+ --slds-c-buttonicon-color-border: transparent;
1919
+ --slds-c-buttonicon-color-border-hover: transparent;
1920
+ --slds-c-buttonicon-color-border-focus: transparent;
1921
+
1922
+ /* Disabled */
1923
+ --slds-c-buttonicon-color-border-disabled: transparent;
1924
+ }
1925
+
1926
+ /**
1927
+ * Variant Hacks - Border Filled
1928
+ */
1929
+ :host([data-render-mode="shadow"]) .slds-button_icon-border-filled {
1930
+ --slds-c-buttonicon-color-background: var(--sds-g-color-neutral-base-100, #ffffff);
1931
+ --slds-c-buttonicon-color-background-hover: var(--sds-g-color-neutral-base-100, #ffffff);
1932
+ --slds-c-buttonicon-color-background-focus: var(--sds-g-color-neutral-base-100, #ffffff);
1933
+ --slds-c-buttonicon-color-background-active: var(--sds-g-color-neutral-base-100, #ffffff);
1934
+ }
1935
+
1936
+ /**
1937
+ * Variant Hacks - Border Inverse
1938
+ */
1939
+ :host([data-render-mode="shadow"]) .slds-button_icon-border-inverse {
1940
+ /* Border */
1941
+ --slds-c-buttonicon-color-border: var(--sds-g-color-brand-base-100, #ffffff);
1942
+ --slds-c-buttonicon-color-border-hover: var(--sds-g-color-brand-base-100, #ffffff);
1943
+ --slds-c-buttonicon-color-border-focus: var(--sds-g-color-brand-base-100, #ffffff);
1944
+ --slds-c-buttonicon-color-border-active: var(--sds-g-color-brand-base-100, #ffffff);
1945
+
1946
+ /* Shadow */
1947
+ --slds-c-buttonicon-shadow-focus: 0 0 3px var(--sds-g-color-brand-base-100, #ffffff);
1948
+
1949
+ /* Icon */
1950
+ --slds-c-buttonicon-color-foreground: var(--sds-g-color-brand-base-100, #ffffff);
1951
+ --slds-c-buttonicon-color-foreground-hover: var(--sds-g-color-brand-base-95, #eef4ff);
1952
+ --slds-c-buttonicon-color-foreground-focus: var(--sds-g-color-brand-base-95, #eef4ff);
1953
+ --slds-c-buttonicon-color-foreground-active: var(--sds-g-color-brand-base-90, #d8e6fe);
1954
+ }
1955
+
1956
+ :host([data-render-mode="shadow"]) .slds-button_icon-inverse {
1957
+ /* Background */
1958
+ --slds-c-buttonicon-color-background-active: transparent;
1959
+
1960
+ /* Border */
1961
+ --slds-c-buttonicon-color-border: transparent;
1962
+ --slds-c-buttonicon-color-border-hover: transparent;
1963
+ --slds-c-buttonicon-color-border-focus: var(--sds-g-color-brand-base-100, #ffffff);
1964
+
1965
+ /* Spacing */
1966
+ --slds-c-buttonicon-spacing-inline: 0;
1967
+ --slds-c-buttonicon-spacing-block: 0;
1968
+
1969
+ /* Shadow */
1970
+ --slds-c-buttonicon-shadow-focus: 0 0 3px var(--sds-g-color-brand-base-100, #ffffff);
1971
+
1972
+ /* Icon */
1973
+ --slds-c-buttonicon-color-foreground: var(--sds-g-color-brand-base-100, #ffffff);
1974
+ --slds-c-buttonicon-color-foreground-hover: var(--sds-g-color-brand-base-95, #eef4ff);
1975
+ --slds-c-buttonicon-color-foreground-focus: var(--sds-g-color-brand-base-95, #eef4ff);
1976
+ --slds-c-buttonicon-color-foreground-active: var(--sds-g-color-brand-base-95, #eef4ff);
1977
+
1978
+ /* Disabled */
1979
+ --slds-c-buttonicon-color-border-disabled: transparent;
1980
+ }
1981
+
1982
+ /**
1983
+ * Variant Hacks - Bare
1984
+ */
1985
+ :host([data-render-mode="shadow"]) .slds-button_icon-bare {
1986
+ --slds-c-buttonicon-color-border: transparent;
1987
+ --slds-c-buttonicon-color-border-hover: transparent;
1988
+ --slds-c-buttonicon-color-border-focus: transparent;
1989
+ --slds-c-buttonicon-color-border-active: transparent;
1990
+ --slds-c-buttonicon-spacing-inline: 0;
1991
+ --slds-c-buttonicon-spacing-block: 0;
1992
+
1993
+ /* Disabled */
1994
+ --slds-c-buttonicon-color-border-disabled: transparent;
1995
+ }
1996
+ }