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
@@ -0,0 +1,131 @@
1
+ /* Contains mock data for modal testing */
2
+
3
+ const formData = [
4
+ {
5
+ name: 'assignedTo',
6
+ value: 'Jonathan Marks',
7
+ type: 'text',
8
+ numTabsToNext: 1,
9
+ },
10
+ {
11
+ name: 'teamName',
12
+ value: 'Chrome Webdrivers',
13
+ type: 'text',
14
+ numTabsToNext: 1,
15
+ },
16
+ {
17
+ name: 'statusValue',
18
+ value: 'New',
19
+ result: 'new',
20
+ type: 'combobox',
21
+ numTabsToNext: 1,
22
+ },
23
+ {
24
+ name: 'personalSettings',
25
+ value: 'Updated',
26
+ type: 'text',
27
+ numTabsToNext: 1,
28
+ },
29
+ {
30
+ name: 'slaSerialNum',
31
+ value: '8675997511',
32
+ type: 'text',
33
+ numTabsToNext: 1,
34
+ },
35
+ {
36
+ name: 'slaExpireDate',
37
+ value: 'Sep 8, 2021',
38
+ result: '2021-09-08',
39
+ type: 'datepicker',
40
+ numTabsToNext: 2,
41
+ },
42
+ {
43
+ name: 'slaExpireTime',
44
+ value: 8,
45
+ result: '02:00:00.000',
46
+ type: 'timepicker',
47
+ numTabsToNext: 1,
48
+ },
49
+ {
50
+ name: 'location',
51
+ value: 'Downtown Offices',
52
+ type: 'text',
53
+ numTabsToNext: 1,
54
+ },
55
+ {
56
+ name: 'selectedLangs',
57
+ value: 'English, Spanish, Chinese',
58
+ type: 'text',
59
+ numTabsToNext: 2,
60
+ },
61
+
62
+ {
63
+ name: 'addressBilling.country',
64
+ value: 3,
65
+ result: 'SP',
66
+ type: 'combobox',
67
+ numTabsToNext: 1,
68
+ },
69
+ {
70
+ name: 'addressBilling.street',
71
+ value: '32184 Excellent Street',
72
+ type: 'text',
73
+ numTabsToNext: 1,
74
+ },
75
+ {
76
+ name: 'addressBilling.city',
77
+ value: 'Lowertown',
78
+ type: 'text',
79
+ numTabsToNext: 1,
80
+ },
81
+ {
82
+ name: 'addressBilling.province',
83
+ value: 4,
84
+ result: 'GO',
85
+ type: 'combobox',
86
+ numTabsToNext: 1,
87
+ },
88
+ {
89
+ name: 'addressBilling.postalCode',
90
+ value: '8K2J3P1',
91
+ type: 'text',
92
+ numTabsToNext: 2,
93
+ },
94
+
95
+ {
96
+ name: 'addressShipping.country',
97
+ value: 2,
98
+ result: 'CN',
99
+ type: 'combobox',
100
+ numTabsToNext: 1,
101
+ },
102
+ {
103
+ name: 'addressShipping.street',
104
+ value: '32342 Postland Avenue',
105
+ type: 'text',
106
+ numTabsToNext: 1,
107
+ },
108
+ {
109
+ name: 'addressShipping.city',
110
+ value: 'Uppertown',
111
+ type: 'text',
112
+ numTabsToNext: 1,
113
+ },
114
+ {
115
+ name: 'addressShipping.province',
116
+ value: 2,
117
+ result: 'GX',
118
+ type: 'combobox',
119
+ numTabsToNext: 1,
120
+ },
121
+ {
122
+ name: 'addressShipping.postalCode',
123
+ value: '8782399-219',
124
+ type: 'text',
125
+ numTabsToNext: 0,
126
+ },
127
+ ];
128
+
129
+ module.exports = {
130
+ formData,
131
+ };
@@ -16,7 +16,7 @@ export default class LightningModal extends LightningOverlay {
16
16
 
17
17
  // public api
18
18
  /**
19
- * How much of the viewport width the modal uses. Supported values are small, medium, or large.
19
+ * How much of the viewport width the modal uses. Supported values are small, medium, large, or full.
20
20
  * @type {string}
21
21
  * @default medium
22
22
  */
@@ -0,0 +1,272 @@
1
+ /**
2
+ * @Note: Static fallbacks are in place until SLDS adopts SDS. Without static
3
+ * fallbacks, styles will regress due to invalid CSS variables from
4
+ * missing SLDS shared and globals.
5
+ *
6
+ * Additionally, LBC are currently relying on 'part' attributes to
7
+ * receive styling. Authoring styles that rely on slots is not recommended.
8
+ */
9
+
10
+ @supports (--styling-hooks: '') {
11
+ :host([data-render-mode="shadow"][size~='xxx-small']) {
12
+ --slds-c-icon-sizing: var(--sds-g-sizing-3, 0.5rem);
13
+ }
14
+
15
+ :host([data-render-mode="shadow"][size~='xx-small']) {
16
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-1, 0.125rem) + var(--sds-g-sizing-4, 0.75rem));
17
+ }
18
+
19
+ :host([data-render-mode="shadow"][size~='x-small']) {
20
+ --slds-c-icon-sizing: var(--sds-g-sizing-5, 1rem);
21
+ }
22
+
23
+ :host([data-render-mode="shadow"][size~='small']) {
24
+ --slds-c-icon-sizing: var(--sds-g-sizing-7, 1.5rem);
25
+ }
26
+
27
+ :host([data-render-mode="shadow"][size~='large']) {
28
+ --slds-c-icon-sizing: var(--sds-g-sizing-10, 3rem);
29
+ }
30
+
31
+ :host([data-render-mode="shadow"][variant~='warning']) {
32
+ --slds-c-icon-color-foreground: var(--sds-g-color-warning-base-70, #fe9339);
33
+ }
34
+
35
+ :host([data-render-mode="shadow"][variant~='success']) {
36
+ --slds-c-icon-color-foreground: var(--sds-g-color-success-base-50, #2e844a);
37
+ }
38
+
39
+ :host([data-render-mode="shadow"][variant~='error']) {
40
+ --slds-c-icon-color-foreground: var(--sds-g-color-error-base-50, #ea001e);
41
+ }
42
+
43
+ :host([data-render-mode="shadow"][variant~='light']) {
44
+ --slds-c-icon-color-foreground: var(--sds-g-color-neutral-base-70, #aeaeae);
45
+ }
46
+
47
+ :host([data-render-mode="shadow"]) [part~='boundary'] {
48
+ /* --sds-c-icon-color-background: var(--slds-c-icon-color-background); */
49
+ --sds-c-icon-radius-border: var(--slds-c-icon-radius-border, var(--sds-g-radius-border-2, 0.25rem));
50
+ --sds-c-icon-sizing-border: var(--slds-c-icon-sizing-border);
51
+ --sds-c-icon-color-border: var(--slds-c-icon-color-border);
52
+ --sds-c-icon-spacing-block-start: var(
53
+ --slds-c-icon-spacing-block-start,
54
+ var(--slds-c-icon-spacing-block)
55
+ );
56
+ --sds-c-icon-spacing-block-end: var(--slds-c-icon-spacing-block-end, var(--slds-c-icon-spacing-block));
57
+ --sds-c-icon-spacing-inline-start: var(
58
+ --slds-c-icon-spacing-inline-start,
59
+ var(--slds-c-icon-spacing-inline)
60
+ );
61
+ --sds-c-icon-spacing-inline-end: var(--slds-c-icon-spacing-inline-end, var(--slds-c-icon-spacing-inline));
62
+
63
+ /**
64
+ * There's a divergence in LBC that we have to support here: LBC splits their
65
+ * icon implementation into two components: lightning-icon and lightning-primitive-icon.
66
+ * slds-icon is consumed within both with no issues except that the presence of an
67
+ * additional custom element (primitive-icon) creates an unexpected inline-level
68
+ * element and breaks our formatting context. tl;dr, we have to reset the formatting
69
+ * context of the boundary or else we'll inherit line-height from an ancestor and
70
+ * get visual regressions.
71
+ *
72
+ * If lightning-icon is refactored into a single component, this line can be removed.
73
+ */
74
+ display: inline-flex;
75
+ }
76
+
77
+ :host([data-render-mode="shadow"]) [part~='icon'] {
78
+ --sds-c-icon-color-foreground: var(--slds-c-icon-color-foreground, var(--sds-g-color-neutral-base-100, #ffffff));
79
+ --sds-c-icon-sizing-height: var(--slds-c-icon-sizing-height, var(--slds-c-icon-sizing, var(--sds-g-sizing-9, 2rem)));
80
+ --sds-c-icon-sizing-width: var(--slds-c-icon-sizing-width, var(--slds-c-icon-sizing, var(--sds-g-sizing-9, 2rem)));
81
+ }
82
+
83
+ :host([data-render-mode="shadow"][icon-name*='action']) {
84
+ --slds-c-icon-spacing-block: var(--sds-g-sizing-3, 0.5rem);
85
+ --slds-c-icon-spacing-inline: var(--sds-g-sizing-3, 0.5rem);
86
+ --slds-c-icon-radius-border: calc(var(--sds-g-radius-border-circle, 100%) / 2);
87
+ }
88
+ }
89
+
90
+ /**
91
+ * P R I V A T E
92
+ *
93
+ * The following styling is implemented by classes within the shadow DOM.
94
+ * They're expected to be private to the component and not for external use.
95
+ *
96
+ * See notes for each class for the rationale behind their inclusion.
97
+ */
98
+
99
+ /**
100
+ * Utility icons traditionally added a class to change the default foreground
101
+ * color (white) to a grey. This was done implicitly whereas other color changes
102
+ * were done explicitly through the 'variant' attribute. So this is an outlier
103
+ * to the overall pattern. Leaving it as-is since an update would require an
104
+ * API change or more investigating.
105
+ *
106
+ * This is a hybrid patch between synthetic and native shadow. The ideal final
107
+ * outcome is the removal of this class and the default utility styling would
108
+ * be implemented through an attribute or some other class-less solution.
109
+ */
110
+
111
+ :host([data-render-mode="shadow"]) .slds-icon-text-default {
112
+ /*! @css-var-fallback fill */
113
+ --slds-c-icon-color-foreground: var(
114
+ --slds-c-icon-color-foreground-default,
115
+ var(--sds-c-icon-color-foreground-default, var(
116
+ --sds-g-color-neutral-base-50, #747474))
117
+ );
118
+ }
119
+
120
+ :host([data-render-mode="shadow"]) .slds-icon-text-default.slds-is-disabled {
121
+ fill: var(--sds-g-color-neutral-base-80, #c9c9c9);
122
+ }
123
+
124
+ /**
125
+ * A temporarily baked-in utility class until SLDS gets a proper utility package.
126
+ *
127
+ * This is a hybrid patch between synthetic and native shadow. The ideal final
128
+ * outcome is the removal of this class and replacing the class with the SLDS
129
+ * utility package solution.
130
+ */
131
+
132
+ :host([data-render-mode="shadow"]) .slds-assistive-text {
133
+ position: absolute !important;
134
+ margin: -1px !important;
135
+ border: 0 !important;
136
+ padding: 0 !important;
137
+ width: 1px !important;
138
+ height: 1px !important;
139
+ overflow: hidden !important;
140
+ clip: rect(0 0 0 0) !important;
141
+ text-transform: none !important;
142
+ white-space: nowrap !important;
143
+ }
144
+
145
+ /**
146
+ * For the initial alpha version, we're hardcoding in the various unique icon styles.
147
+ *
148
+ * Next version, we want to dynamically generate these from legacy SLDS with the
149
+ * following design pattern:
150
+ *
151
+ * [type="action"][icon-name="approval"] {
152
+ * --sds-c-icon-color-background: var(--slds-c-icon-color-background, #111);
153
+ * }
154
+ */
155
+
156
+ :host([data-render-mode="shadow"]) .slds-icon_disabled {
157
+ background-color: currentColor;
158
+ }
159
+
160
+ :host([data-render-mode="shadow"]) .slds-input__icon {
161
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-1, 0.125rem) + var(--sds-g-sizing-4, 0.75rem));
162
+
163
+ position: absolute;
164
+ top: 50%;
165
+ margin-block-start: -0.4375rem;
166
+ line-height: var(--sds-g-font-lineheight-1, 1);
167
+ border: 0;
168
+ z-index: 2;
169
+ }
170
+
171
+ /* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved
172
+ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
173
+
174
+ @supports (--styling-hooks: '') {
175
+ :host([data-render-mode="shadow"]) .slds-assistive-text {
176
+ position: absolute !important;
177
+ margin: -1px !important;
178
+ border: 0 !important;
179
+ padding: 0 !important;
180
+ width: 1px !important;
181
+ height: 1px !important;
182
+ overflow: hidden !important;
183
+ clip: rect(0 0 0 0) !important;
184
+ text-transform: none !important;
185
+ white-space: nowrap !important;
186
+ }
187
+
188
+ :host([data-render-mode="shadow"]) [part~='avatar'] {
189
+ width: var(--slds-c-avatar-sizing, var(--sds-g-sizing-9, 2rem));
190
+ height: var(--slds-c-avatar-sizing, var(--sds-g-sizing-9, 2rem));
191
+ overflow: hidden;
192
+ display: inline-block;
193
+ vertical-align: middle;
194
+ border-radius: var(--slds-c-avatar-radius-border, var(--sds-g-radius-border-2, 0.25rem));
195
+ line-height: var(--sds-g-font-lineheight-1, 1);
196
+ font-size: var(--sds-g-font-scale-neg-1, 0.875rem);
197
+ color: var(--slds-c-avatar-text-color, var(--sds-g-color-neutral-base-100, #ffffff));
198
+ }
199
+
200
+ :host([data-render-mode="shadow"][size='x-small']) [part~='avatar'] {
201
+ width: var(--sds-g-sizing-6, 1.25rem);
202
+ height: var(--sds-g-sizing-6, 1.25rem);
203
+ font-size: var(--sds-g-font-scale-neg-4, 0.625rem);
204
+ --slds-c-icon-sizing: var(--sds-g-sizing-6, 1.25rem);
205
+ }
206
+
207
+ :host([data-render-mode="shadow"][size='small']) [part~='avatar'] {
208
+ width: var(--sds-g-sizing-7, 1.5rem);
209
+ height: var(--sds-g-sizing-7, 1.5rem);
210
+ font-size: var(--sds-g-font-scale-neg-4, 0.625rem);
211
+ --slds-c-icon-sizing: var(--sds-g-sizing-7, 1.5rem);
212
+ }
213
+
214
+ :host([data-render-mode="shadow"][size='medium']) [part~='avatar'] {
215
+ width: var(--sds-g-sizing-9, 2rem);
216
+ height: var(--sds-g-sizing-9, 2rem);
217
+ font-size: var(--sds-g-font-scale-neg-1, 0.875rem);
218
+ --slds-c-icon-sizing: var(--sds-g-sizing-9, 2rem);
219
+ }
220
+
221
+ :host([data-render-mode="shadow"][size='large']) [part~='avatar'] {
222
+ width: var(--sds-g-sizing-10, 3rem);
223
+ height: var(--sds-g-sizing-10, 3rem);
224
+ font-size: var(--sds-g-font-scale-1, 1.125rem);
225
+ line-height: var(--sds-g-font-lineheight-2, 1.25);
226
+ --slds-c-icon-sizing: var(--sds-g-sizing-10, 3rem);
227
+ }
228
+
229
+ :host([data-render-mode="shadow"][variant='circle']) [part~='avatar'] {
230
+ border-radius: calc(var(--sds-g-radius-border-circle, 100%) / 2);
231
+ }
232
+
233
+ :host([data-render-mode="shadow"].slds-avatar_empty) [part~='avatar'] {
234
+ border: var(--sds-g-sizing-border-1, 1px) dashed var(--sds-g-color-neutral-base-90, #e5e5e5);
235
+ }
236
+
237
+ :host([data-render-mode="shadow"]) lightning-icon {
238
+ display: flex;
239
+ justify-content: center;
240
+ }
241
+
242
+ :host([data-render-mode="shadow"]) .slds-avatar__initials {
243
+ display: flex;
244
+ justify-content: center;
245
+ -ms-flex-line-pack: center;
246
+ align-content: center;
247
+ align-items: center;
248
+ margin: auto;
249
+ color: var(--slds-c-avatar-text-color);
250
+ height: 100%;
251
+ text-shadow: 0 0 1px rgba(0, 0, 0, 0.8);
252
+ /* stylelint-disable sds-stylelint-plugin/styling-hooks-pattern */
253
+ background-color: var(
254
+ --slds-c-avatar-color-background,
255
+ var(--sds-c-icon-color-background, var(--sds-g-color-brand-base-50, #0176d3))
256
+ );
257
+ /* stylelint-enable sds-stylelint-plugin/styling-hooks-pattern */
258
+ }
259
+
260
+ :host([data-render-mode="shadow"]) .slds-avatar__initials[title] {
261
+ cursor: default;
262
+ text-decoration: none;
263
+ }
264
+
265
+ /* inverse is not currently supported by LBC */
266
+ :host([data-render-mode="shadow"]) .slds-avatar__initials_inverse {
267
+ --slds-c-avatar-text-color: var(--slds-c-avatar-inverse-text-color, var(--sds-g-color-neutral-base-30, #444444));
268
+
269
+ background-color: var(--sds-g-color-neutral-base-95, #f3f3f3);
270
+ text-shadow: none;
271
+ }
272
+ }
@@ -0,0 +1,3 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import './pill.slds.css';
3
+ @import './avatar.slds.css';
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <span>
2
+ <span part="pill">
3
3
  <template if:false={_hasError}>
4
4
  <template if:true={_hasMedia}>
5
5
  <span class="slds-pill__icon_container">
@@ -4,12 +4,14 @@ import labelPillRemove from '@salesforce/label/LightningPill.remove';
4
4
  import labelPillWarning from '@salesforce/label/LightningPill.warning';
5
5
  import labelPillDeleteAndNavigate from '@salesforce/label/LightningPill.deleteAndNavigate';
6
6
  import formFactor from '@salesforce/client/formFactor';
7
- import { LightningElement, api, track } from 'lwc';
7
+ import { api, track } from 'lwc';
8
+ import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
8
9
  import {
9
10
  keyCodes,
10
11
  classListMutation,
11
12
  normalizeBoolean,
12
13
  makeAbsoluteUrl,
14
+ reflectAttribute,
13
15
  } from 'lightning/utilsPrivate';
14
16
  import link from './link.html';
15
17
  import plain from './plain.html';
@@ -46,7 +48,7 @@ function modifyAttribute(el, name, value) {
46
48
  * A pill displays a label that can contain links and can be removed from view.
47
49
  * @slot default Placeholder for an image, such as an icon or avatar.
48
50
  */
49
- export default class LightningPill extends LightningElement {
51
+ export default class LightningPill extends LightningShadowBaseClass {
50
52
  /**
51
53
  * The URL of the page that the link goes to.
52
54
  * @type {string}
@@ -76,6 +78,14 @@ export default class LightningPill extends LightningElement {
76
78
  */
77
79
  @api name;
78
80
 
81
+ @track _role;
82
+ @track _ariaSelected;
83
+ @track _hasMedia = true;
84
+ @track _hasError;
85
+ @track _tabIndex;
86
+ @track _standardContainer;
87
+ @track _variant;
88
+
79
89
  /**
80
90
  * The variant changes the appearance of the pill.
81
91
  * Accepted variants include link, plain, and plainLink.
@@ -85,14 +95,23 @@ export default class LightningPill extends LightningElement {
85
95
  * @type {string}
86
96
  * @default link
87
97
  */
88
- @api variant = VARIANT.LINK;
98
+ //@api variant = VARIANT.LINK;
99
+ @api
100
+ get variant() {
101
+ return this._variant || VARIANT.LINK;
102
+ }
89
103
 
90
- @track _role;
91
- @track _ariaSelected;
92
- @track _hasMedia = true;
93
- @track _hasError;
94
- @track _tabIndex;
95
- @track _standardContainer;
104
+ set variant(value) {
105
+ // work around for verification of accepted variants as normalizeString method does not
106
+ // account for camel case attribute values.
107
+ let acceptedValues = [VARIANT.LINK, VARIANT.PLAIN, VARIANT.PLAIN_LINK];
108
+ if (acceptedValues.indexOf(value) !== -1) {
109
+ this._variant = value;
110
+ } else {
111
+ this._variant = VARIANT.LINK;
112
+ }
113
+ reflectAttribute(this, 'variant', this._variant);
114
+ }
96
115
 
97
116
  _connected = false;
98
117
  _dispatcher = () => {};
@@ -250,6 +269,7 @@ export default class LightningPill extends LightningElement {
250
269
  }
251
270
 
252
271
  connectedCallback() {
272
+ super.connectedCallback();
253
273
  this._connected = true;
254
274
  if (this.isPlainLink || this.isLink) {
255
275
  this.updateLinkInfo(this.href);
@@ -0,0 +1,168 @@
1
+
2
+ @supports (--styling-hooks: '') {
3
+ :host([data-render-mode="shadow"]) .slds-pill {
4
+ display: inline-flex;
5
+ align-items: center;
6
+ justify-content: space-between;
7
+ line-height: var(--sds-g-font-lineheight-4, 1.5);
8
+ max-width: 100%;
9
+ padding-block-start: var(--slds-c-pill-spacing-block-start, calc(var(--sds-g-spacing-1, 0.25rem) / 2));
10
+ padding-inline-end: var(--slds-c-pill-spacing-inline-end, calc(var(--sds-g-spacing-1, 0.25rem) / 2));
11
+ padding-block-end: var(--slds-c-pill-spacing-block-end, calc(var(--sds-g-spacing-1, 0.25rem) / 2));
12
+ padding-inline-start: var(--slds-c-pill-spacing-inline-start, calc(var(--sds-g-spacing-1, 0.25rem) / 2));
13
+ border-width: var(--slds-c-pill-sizing-border, var(--sds-g-sizing-border-1, 1px));
14
+ border-style: solid;
15
+ border-color: var(--slds-c-pill-color-border, var(--sds-g-color-neutral-base-90, #e5e5e5));
16
+ border-radius: var(--slds-c-pill-radius-border, var(--sds-g-spacing-1, 0.25rem));
17
+ background-color: var(--slds-c-pill-color-background, var(--sds-g-color-neutral-base-100, #ffffff));
18
+ box-shadow: var(--slds-c-pill-shadow);
19
+ position: relative;
20
+ min-height: calc(var(--sds-g-sizing-7, 1.5rem) + var(--sds-g-sizing-1, 0.125rem));
21
+ }
22
+
23
+ :host([data-render-mode="shadow"]) .slds-pill + .slds-pill {
24
+ margin-inline-start: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
25
+ }
26
+
27
+ :host([data-render-mode="shadow"]) .slds-pill:hover {
28
+ --slds-c-pill-color-background: var(--sds-g-color-neutral-base-95, #f3f3f3);
29
+ }
30
+
31
+ :host([data-render-mode="shadow"]) .slds-pill:focus {
32
+ outline: 0;
33
+ --slds-c-pill-color-border: var(--sds-g-color-brand-base-60, #1b96ff);
34
+ --slds-c-pill-shadow: 0 0 3px var(--sds-g-color-brand-base-50, #0176d3);
35
+ }
36
+
37
+ :host([data-render-mode="shadow"]) a {
38
+ text-decoration: none;
39
+ color: var(--sds-g-color-brand-base-50, #0176d3);
40
+ }
41
+
42
+ :host([data-render-mode="shadow"]) a:hover,:host([data-render-mode="shadow"]) a:focus{
43
+ text-decoration: none;
44
+ color:var(--sds-g-color-brand-base-30, #014486);
45
+ }
46
+
47
+ :host([data-render-mode="shadow"]) a:active{
48
+ color:var(--sds-g-color-brand-base-30, #014486);
49
+ }
50
+
51
+ :host([data-render-mode="shadow"]) .slds-truncate {
52
+ max-width: 100%;
53
+ overflow: hidden;
54
+ text-overflow: ellipsis;
55
+ white-space: nowrap;
56
+ }
57
+
58
+ :host([data-render-mode="shadow"]) .slds-pill_bare {
59
+ --slds-c-pill-color-background: transparent;
60
+ --slds-c-pill-sizing-border: 0;
61
+ }
62
+
63
+ :host([data-render-mode="shadow"]) .slds-pill_bare:hover {
64
+ --slds-c-pill-color-background-: transparent;
65
+ }
66
+
67
+ :host([data-render-mode="shadow"]) .slds-pill__label {
68
+ white-space: nowrap;
69
+ overflow: hidden;
70
+ text-overflow: ellipsis;
71
+ }
72
+
73
+ :host([data-render-mode="shadow"]) .slds-pill__label:focus {
74
+ outline: 0;
75
+ border-radius: var(--sds-g-radius-border-2, 0.25rem);
76
+ box-shadow: var(--slds-c-pill-label-shadow-focus, 0 0 3px var(--sds-g-color-brand-base-50, #0176d3));
77
+ }
78
+
79
+ :host([data-render-mode="shadow"]) .slds-pill__icon,:host([data-render-mode="shadow"])
80
+ .slds-pill__icon_container {
81
+ width: var(--sds-g-sizing-6, 1.25rem);
82
+ height: var(--sds-g-sizing-6, 1.25rem);
83
+ margin-inline-end: var(--sds-g-spacing-1, 0.25rem);
84
+ }
85
+
86
+ :host([data-render-mode="shadow"]) .slds-pill ::slotted(*) {
87
+ --slds-c-avatar-sizing: var(--sds-g-sizing-6, 1.25rem);
88
+ --slds-c-icon-sizing: calc(var(--sds-g-sizing-6, 1.25rem) - var(--sds-g-sizing-border-2, 2px));
89
+
90
+ color: var(--slds-c-pill-text-color, var(--sds-g-color-neutral-base-100, #ffffff));
91
+ display: block;
92
+ font-size: var(--sds-g-font-scale-neg-4, 0.625rem);
93
+ }
94
+
95
+ :host([data-render-mode="shadow"]) .slds-pill__icon ~ .slds-pill__action,:host([data-render-mode="shadow"])
96
+ .slds-pill__icon_container ~ .slds-pill__action {
97
+ padding-inline-start: calc(var(--sds-g-spacing-5, 1.5rem) + 2px);
98
+ }
99
+
100
+ :host([data-render-mode="shadow"]) .slds-pill__remove {
101
+ width: var(--sds-g-sizing-5, 1rem);
102
+ height: var(--sds-g-sizing-5, 1rem);
103
+ display: inline-flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ margin-inline-start: var(--sds-g-sizing-2, 0.25rem);
107
+ border-radius: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
108
+ }
109
+
110
+ :host([data-render-mode="shadow"]) .slds-pill__remove svg {
111
+ width: calc(var(--sds-g-sizing-1, 0.125rem) * 3);
112
+ height: calc(var(--sds-g-sizing-1, 0.125rem) * 3);
113
+ }
114
+
115
+ :host([data-render-mode="shadow"]) .slds-pill_link {
116
+ border: 0;
117
+ padding: 0;
118
+ }
119
+
120
+ :host([data-render-mode="shadow"]) .slds-pill_link .slds-pill__icon_container {
121
+ display: inline-block;
122
+ position: absolute;
123
+ top: 50%;
124
+ left: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
125
+ transform: translateY(-50%);
126
+ }
127
+
128
+ :host([data-render-mode="shadow"]) .slds-pill_link .slds-pill__remove {
129
+ position: absolute;
130
+ top: 50%;
131
+ right: calc(var(--sds-g-spacing-1, 0.25rem) / 2);
132
+ transform: translateY(-50%);
133
+ }
134
+
135
+ :host([data-render-mode="shadow"]) .slds-pill__action {
136
+ padding-block-start: var(--slds-c-pill-spacing-block-start, calc(var(--sds-g-spacing-1, 0.25rem) / 2));
137
+ padding-inline-end: var(--slds-c-pill-spacing-inline-end, calc((var(--sds-g-spacing-2, 0.5rem) / 2) + 1rem));
138
+ padding-block-end: var(--slds-c-pill-spacing-block-end, calc(var(--sds-g-spacing-1, 0.25rem) / 2));
139
+ padding-inline-start: var(--slds-c-pill-spacing-inline-start, calc(var(--sds-g-spacing-1, 0.25rem) / 2));
140
+ border-width: var(--slds-c-pill-sizing-border, 1px);
141
+ border-style: solid;
142
+ border-color: var(--slds-c-pill-color-border, var(--sds-g-color-neutral-base-90, #e5e5e5));
143
+ border-radius: var(--slds-c-pill-radius-border, var(--sds-g-radius-border-2, 0.25rem));
144
+ white-space: nowrap;
145
+ overflow: hidden;
146
+ text-overflow: ellipsis;
147
+ flex-grow: 1;
148
+ }
149
+
150
+ :host([data-render-mode="shadow"]) .slds-pill__action:focus {
151
+ outline: 0;
152
+ border-color: var(--slds-c-pill-action-color-border, var(--sds-g-color-brand-base-60, #1b96ff));
153
+ box-shadow: var(--slds-c-pill-action-shadow, 0 0 3px var(--sds-g-color-brand-base-50, #0176d3));
154
+ }
155
+
156
+ :host([data-render-mode="shadow"]) .slds-has-error {
157
+ border-color: var(--slds-c-pill-error-color-border, var(--sds-g-color-error-base-50, #ea001e));
158
+ }
159
+
160
+ :host([data-render-mode="shadow"]) .slds-has-error:active {
161
+ border-color: var(--slds-c-pill-error-color-border-active, var(--sds-g-color-error-base-50, #ea001e));
162
+ }
163
+
164
+ :host([data-render-mode="shadow"]) .slds-has-error .slds-pill__label {
165
+ font-weight: var(--sds-g-font-weight-7, 700);
166
+ color: var(--sds-g-color-error-base-50, #ea001e);
167
+ }
168
+ }
@@ -0,0 +1,3 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import './pill.slds.css';
3
+ @import './avatar.slds.css';
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <span>
2
+ <span part="pill">
3
3
  <template if:true={_hasMedia}>
4
4
  <span class="slds-pill__icon_container">
5
5
  <slot></slot>
@@ -0,0 +1,3 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import './pill.slds.css';
3
+ @import './avatar.slds.css';