lightning-base-components 1.18.8-alpha → 1.19.1-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 (314) hide show
  1. package/README.md +1 -1
  2. package/metadata/raptor.json +51 -1
  3. package/package.json +25 -1
  4. package/scopedImports/@salesforce-internal-core.appVersion.js +1 -1
  5. package/scopedImports/@salesforce-label-LightningProgressRing.complete.js +1 -0
  6. package/scopedImports/@salesforce-label-LightningProgressRing.expired.js +1 -0
  7. package/scopedImports/@salesforce-label-LightningProgressRing.warning.js +1 -0
  8. package/scopedImports/@salesforce-label-LightningRecordPicker.defaultSelectedRecordErrorMessage.js +1 -0
  9. package/scopedImports/@salesforce-label-LightningRecordPicker.invalidConfigurationErrorMessage.js +1 -1
  10. package/scopedImports/@salesforce-label-LightningRecordPicker.loadingPlaceholder.js +1 -0
  11. package/scopedImports/@salesforce-label-LightningRecordPicker.messageWhenBadInputDefault.js +1 -0
  12. package/scopedImports/@salesforce-label-LightningServiceCloudVoiceToolkitApi.missingNbaParams.js +1 -1
  13. package/src/lightning/accordion/__docs__/accordion.md +2 -2
  14. package/src/lightning/accordion/accordion.slds.css +30 -29
  15. package/src/lightning/accordionSection/__docs__/accordionSection.md +1 -1
  16. package/src/lightning/accordionSection/accordion-section.slds.css +26 -24
  17. package/src/lightning/avatar/__docs__/avatar.md +1 -1
  18. package/src/lightning/avatar/avatar.slds.css +21 -22
  19. package/src/lightning/badge/__docs__/badge.md +1 -1
  20. package/src/lightning/barcodeScanner/__docs__/barcodeScanner.md +2 -2
  21. package/src/lightning/baseCombobox/base-combobox.slds.css +48 -71
  22. package/src/lightning/baseCombobox/baseCombobox.js +20 -7
  23. package/src/lightning/baseComboboxItem/listbox.slds.css +10 -25
  24. package/src/lightning/breadcrumb/breadcrumb.slds.css +2 -2
  25. package/src/lightning/breadcrumbs/__docs__/breadcrumbs.md +3 -3
  26. package/src/lightning/breadcrumbs/breadcrumbs.slds.css +4 -3
  27. package/src/lightning/button/__docs__/button.md +8 -8
  28. package/src/lightning/button/button.js +1 -0
  29. package/src/lightning/button/button.slds.css +3 -3
  30. package/src/lightning/buttonGroup/__docs__/buttonGroup.md +1 -1
  31. package/src/lightning/buttonIcon/__docs__/buttonIcon.md +1 -1
  32. package/src/lightning/buttonIcon/button-icon.slds.css +6 -6
  33. package/src/lightning/buttonIcon/buttonIcon.js +1 -0
  34. package/src/lightning/buttonIconStateful/__docs__/buttonIconStateful.md +1 -1
  35. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +6 -6
  36. package/src/lightning/buttonIconStateful/buttonIconStateful.css +4 -0
  37. package/src/lightning/buttonMenu/__docs__/buttonMenu.md +3 -1
  38. package/src/lightning/buttonMenu/button-menu.slds.css +42 -51
  39. package/src/lightning/buttonMenu/buttonMenu.js +4 -1
  40. package/src/lightning/buttonStateful/__docs__/buttonStateful.md +2 -2
  41. package/src/lightning/buttonStateful/button-stateful.slds.css +19 -22
  42. package/src/lightning/calendar/calendar.slds.css +39 -48
  43. package/src/lightning/card/__docs__/card.md +5 -5
  44. package/src/lightning/card/card.slds.css +37 -18
  45. package/src/lightning/colorPickerCustom/color-picker-custom.slds.css +3 -3
  46. package/src/lightning/colorPickerPanel/popover.slds.css +1 -1
  47. package/src/lightning/combobox/__docs__/combobox.md +2 -0
  48. package/src/lightning/combobox/combobox.html +3 -2
  49. package/src/lightning/combobox/combobox.js +2 -0
  50. package/src/lightning/combobox/form-element.slds.css +23 -24
  51. package/src/lightning/datatable/__docs__/datatable.md +63 -8
  52. package/src/lightning/datepicker/datepicker.html +1 -1
  53. package/src/lightning/datepicker/datepicker.js +8 -0
  54. package/src/lightning/datepicker/form-element.slds.css +23 -24
  55. package/src/lightning/datepicker/input-text.slds.css +16 -16
  56. package/src/lightning/datetimepicker/form-element.slds.css +23 -24
  57. package/src/lightning/datetimepicker/input-text.slds.css +16 -16
  58. package/src/lightning/dialog/README.md +1 -1
  59. package/src/lightning/dualListbox/__docs__/dualListbox.md +1 -1
  60. package/src/lightning/dualListbox/dual-listbox.slds.css +4 -13
  61. package/src/lightning/dualListbox/form-element.slds.css +23 -24
  62. package/src/lightning/dualListbox/listbox.slds.css +10 -25
  63. package/src/lightning/dynamicIcon/dynamic-icon-ellie.slds.css +2 -2
  64. package/src/lightning/dynamicIcon/dynamic-icon-eq.slds.css +1 -1
  65. package/src/lightning/dynamicIcon/dynamic-icon-trend.slds.css +1 -1
  66. package/src/lightning/formattedDateTime/__docs__/formattedDateTime.md +1 -1
  67. package/src/lightning/formattedNumber/__docs__/formattedNumber.md +1 -1
  68. package/src/lightning/formattedRichText/formatted-rich-text.slds.css +0 -2
  69. package/src/lightning/helptext/form-element.slds.css +23 -24
  70. package/src/lightning/helptext/help-text.slds.css +6 -6
  71. package/src/lightning/icon/__docs__/icon.md +2 -2
  72. package/src/lightning/icon/icon.html +9 -3
  73. package/src/lightning/icon/icon.js +16 -12
  74. package/src/lightning/icon/icon.slds.css +14 -14
  75. package/src/lightning/iconSvgTemplates/buildTemplates/standard/attribute_based_pricing.html +10 -0
  76. package/src/lightning/iconSvgTemplates/buildTemplates/standard/bundles_pricing.html +7 -0
  77. package/src/lightning/iconSvgTemplates/buildTemplates/standard/data_cloud.html +8 -0
  78. package/src/lightning/iconSvgTemplates/buildTemplates/standard/data_graph.html +7 -0
  79. package/src/lightning/iconSvgTemplates/buildTemplates/standard/dynamic_highlights_panel.html +7 -0
  80. package/src/lightning/iconSvgTemplates/buildTemplates/standard/header_discounts.html +7 -0
  81. package/src/lightning/iconSvgTemplates/buildTemplates/standard/impact_outcome.html +7 -0
  82. package/src/lightning/iconSvgTemplates/buildTemplates/standard/impact_strategy.html +7 -0
  83. package/src/lightning/iconSvgTemplates/buildTemplates/standard/impact_strategy_assignment.html +7 -0
  84. package/src/lightning/iconSvgTemplates/buildTemplates/standard/indicator_assignment.html +8 -0
  85. package/src/lightning/iconSvgTemplates/buildTemplates/standard/indicator_definition.html +8 -0
  86. package/src/lightning/iconSvgTemplates/buildTemplates/standard/indicator_performance_period.html +7 -0
  87. package/src/lightning/iconSvgTemplates/buildTemplates/standard/indicator_result.html +8 -0
  88. package/src/lightning/iconSvgTemplates/buildTemplates/standard/manual_discounts.html +9 -0
  89. package/src/lightning/iconSvgTemplates/buildTemplates/standard/no_code_model.html +7 -0
  90. package/src/lightning/iconSvgTemplates/buildTemplates/standard/outcome_activity.html +7 -0
  91. package/src/lightning/iconSvgTemplates/buildTemplates/standard/panel_detail.html +8 -0
  92. package/src/lightning/iconSvgTemplates/buildTemplates/standard/price_adjustment_matrix.html +8 -0
  93. package/src/lightning/iconSvgTemplates/buildTemplates/standard/registered_model.html +7 -0
  94. package/src/lightning/iconSvgTemplates/buildTemplates/standard/repeaters.html +7 -0
  95. package/src/lightning/iconSvgTemplates/buildTemplates/standard/scheduling_workspace.html +7 -0
  96. package/src/lightning/iconSvgTemplates/buildTemplates/standard/story.html +4 -2
  97. package/src/lightning/iconSvgTemplates/buildTemplates/standard/time_period.html +7 -0
  98. package/src/lightning/iconSvgTemplates/buildTemplates/standard/travel_mode.html +2 -2
  99. package/src/lightning/iconSvgTemplates/buildTemplates/standard/uploaded_model.html +7 -0
  100. package/src/lightning/iconSvgTemplates/buildTemplates/standard/volume_discounts.html +7 -0
  101. package/src/lightning/iconSvgTemplates/buildTemplates/standard/walkthroughs.html +8 -0
  102. package/src/lightning/iconSvgTemplates/buildTemplates/templates.js +38 -1
  103. package/src/lightning/iconSvgTemplates/buildTemplates/utility/apex_alt.html +8 -0
  104. package/src/lightning/iconSvgTemplates/buildTemplates/utility/data_cloud.html +8 -0
  105. package/src/lightning/iconSvgTemplates/buildTemplates/utility/data_graph.html +7 -0
  106. package/src/lightning/iconSvgTemplates/buildTemplates/utility/data_transforms.html +7 -0
  107. package/src/lightning/iconSvgTemplates/buildTemplates/utility/edit_gpt.html +8 -0
  108. package/src/lightning/iconSvgTemplates/buildTemplates/utility/einstein.html +4 -2
  109. package/src/lightning/iconSvgTemplates/buildTemplates/utility/guidance.html +8 -0
  110. package/src/lightning/iconSvgTemplates/buildTemplates/utility/indicator_performance_period.html +7 -0
  111. package/src/lightning/iconSvgTemplates/buildTemplates/utility/mixed_sources_mapping.html +8 -0
  112. package/src/lightning/iconSvgTemplates/buildTemplates/utility/page_structure.html +7 -0
  113. package/src/lightning/iconSvgTemplates/buildTemplates/utility/sparkles.html +7 -0
  114. package/src/lightning/iconSvgTemplates/buildTemplates/utility/visibility_rule_assigned.html +7 -0
  115. package/src/lightning/iconSvgTemplates/buildTemplates/utility/walkthroughs.html +8 -0
  116. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/attribute_based_pricing.html +10 -0
  117. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/bundles_pricing.html +7 -0
  118. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/data_cloud.html +8 -0
  119. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/data_graph.html +7 -0
  120. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/dynamic_highlights_panel.html +7 -0
  121. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/header_discounts.html +7 -0
  122. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/impact_outcome.html +7 -0
  123. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/impact_strategy.html +7 -0
  124. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/impact_strategy_assignment.html +7 -0
  125. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/indicator_assignment.html +8 -0
  126. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/indicator_definition.html +8 -0
  127. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/indicator_performance_period.html +7 -0
  128. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/indicator_result.html +8 -0
  129. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/manual_discounts.html +9 -0
  130. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/no_code_model.html +7 -0
  131. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/outcome_activity.html +7 -0
  132. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/panel_detail.html +8 -0
  133. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/price_adjustment_matrix.html +8 -0
  134. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/registered_model.html +7 -0
  135. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/repeaters.html +7 -0
  136. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/scheduling_workspace.html +7 -0
  137. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/story.html +4 -2
  138. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/time_period.html +7 -0
  139. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/travel_mode.html +2 -2
  140. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/uploaded_model.html +7 -0
  141. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/volume_discounts.html +7 -0
  142. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/walkthroughs.html +8 -0
  143. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.js +38 -1
  144. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/apex_alt.html +8 -0
  145. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/data_cloud.html +8 -0
  146. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/data_graph.html +7 -0
  147. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/data_transforms.html +7 -0
  148. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/edit_gpt.html +8 -0
  149. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/einstein.html +4 -2
  150. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/guidance.html +8 -0
  151. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/indicator_performance_period.html +7 -0
  152. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/mixed_sources_mapping.html +8 -0
  153. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/page_structure.html +7 -0
  154. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/sparkles.html +7 -0
  155. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/visibility_rule_assigned.html +7 -0
  156. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/walkthroughs.html +8 -0
  157. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/attribute_based_pricing.html +10 -0
  158. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/bundles_pricing.html +7 -0
  159. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/data_cloud.html +8 -0
  160. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/data_graph.html +7 -0
  161. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/dynamic_highlights_panel.html +7 -0
  162. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/header_discounts.html +7 -0
  163. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/impact_outcome.html +7 -0
  164. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/impact_strategy.html +7 -0
  165. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/impact_strategy_assignment.html +7 -0
  166. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/indicator_assignment.html +8 -0
  167. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/indicator_definition.html +8 -0
  168. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/indicator_performance_period.html +7 -0
  169. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/indicator_result.html +8 -0
  170. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/manual_discounts.html +9 -0
  171. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/no_code_model.html +7 -0
  172. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/outcome_activity.html +7 -0
  173. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/panel_detail.html +8 -0
  174. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/price_adjustment_matrix.html +8 -0
  175. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/registered_model.html +7 -0
  176. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/repeaters.html +7 -0
  177. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/scheduling_workspace.html +7 -0
  178. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/story.html +4 -2
  179. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/time_period.html +7 -0
  180. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/travel_mode.html +2 -2
  181. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/uploaded_model.html +7 -0
  182. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/volume_discounts.html +7 -0
  183. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/walkthroughs.html +8 -0
  184. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.js +26 -1
  185. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/attribute_based_pricing.html +10 -0
  186. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/bundles_pricing.html +7 -0
  187. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/data_cloud.html +8 -0
  188. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/data_graph.html +7 -0
  189. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/dynamic_highlights_panel.html +7 -0
  190. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/header_discounts.html +7 -0
  191. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/impact_outcome.html +7 -0
  192. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/impact_strategy.html +7 -0
  193. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/impact_strategy_assignment.html +7 -0
  194. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/indicator_assignment.html +8 -0
  195. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/indicator_definition.html +8 -0
  196. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/indicator_performance_period.html +7 -0
  197. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/indicator_result.html +8 -0
  198. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/manual_discounts.html +9 -0
  199. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/no_code_model.html +7 -0
  200. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/outcome_activity.html +7 -0
  201. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/panel_detail.html +8 -0
  202. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/price_adjustment_matrix.html +8 -0
  203. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/registered_model.html +7 -0
  204. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/repeaters.html +7 -0
  205. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/scheduling_workspace.html +7 -0
  206. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/story.html +4 -2
  207. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/time_period.html +7 -0
  208. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/travel_mode.html +2 -2
  209. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/uploaded_model.html +7 -0
  210. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/volume_discounts.html +7 -0
  211. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/walkthroughs.html +8 -0
  212. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.js +26 -1
  213. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.js +13 -1
  214. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/apex_alt.html +8 -0
  215. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/data_cloud.html +8 -0
  216. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/data_graph.html +7 -0
  217. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/data_transforms.html +7 -0
  218. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/edit_gpt.html +8 -0
  219. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/einstein.html +4 -2
  220. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/guidance.html +8 -0
  221. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/indicator_performance_period.html +7 -0
  222. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/mixed_sources_mapping.html +8 -0
  223. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/page_structure.html +7 -0
  224. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/sparkles.html +7 -0
  225. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/visibility_rule_assigned.html +7 -0
  226. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/walkthroughs.html +8 -0
  227. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.js +13 -1
  228. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/apex_alt.html +8 -0
  229. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/data_cloud.html +8 -0
  230. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/data_graph.html +7 -0
  231. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/data_transforms.html +7 -0
  232. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/edit_gpt.html +8 -0
  233. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/einstein.html +4 -2
  234. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/guidance.html +8 -0
  235. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/indicator_performance_period.html +7 -0
  236. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/mixed_sources_mapping.html +8 -0
  237. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/page_structure.html +7 -0
  238. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/sparkles.html +7 -0
  239. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/visibility_rule_assigned.html +7 -0
  240. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/walkthroughs.html +8 -0
  241. package/src/lightning/iconUtils/iconColors.js +1 -0
  242. package/src/lightning/iconUtils/iconUtils.js +10 -0
  243. package/src/lightning/input/__docs__/input.md +11 -6
  244. package/src/lightning/input/form-element.slds.css +23 -24
  245. package/src/lightning/input/input.html +2 -3
  246. package/src/lightning/input/input.js +14 -10
  247. package/src/lightning/inputAddress/__docs__/inputAddress.md +5 -5
  248. package/src/lightning/inputName/__docs__/inputName.md +4 -4
  249. package/src/lightning/layoutItem/__docs__/layoutItem.md +1 -1
  250. package/src/lightning/menuItem/menu-item.slds.css +3 -3
  251. package/src/lightning/modal/__docs__/migration.md +9 -9
  252. package/src/lightning/modal/__docs__/modal.md +5 -5
  253. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +2 -4
  254. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +96 -58
  255. package/src/lightning/modalBase/modalBase.js +26 -76
  256. package/src/lightning/modalBody/__docs__/modalBody.md +3 -3
  257. package/src/lightning/modalBody/modalBody.js +33 -36
  258. package/src/lightning/modalFooter/__docs__/modalFooter.md +3 -3
  259. package/src/lightning/modalFooter/modalFooter.js +1 -76
  260. package/src/lightning/modalHeader/__docs__/modalHeader.md +3 -3
  261. package/src/lightning/modalHeader/modalHeader.js +0 -68
  262. package/src/lightning/navigation/__docs__/navigation.md +3 -3
  263. package/src/lightning/pill/__docs__/pill.md +2 -2
  264. package/src/lightning/pill/avatar.slds.css +21 -22
  265. package/src/lightning/pill/pill.slds.css +17 -9
  266. package/src/lightning/pillContainer/__docs__/pillContainer.md +1 -1
  267. package/src/lightning/pillContainer/listbox.slds.css +10 -25
  268. package/src/lightning/pillContainer/pill-container.slds.css +19 -8
  269. package/src/lightning/pillContainer/pill.slds.css +17 -9
  270. package/src/lightning/popup/popover.slds.css +1 -1
  271. package/src/lightning/primitiveBubble/tooltip.slds.css +14 -23
  272. package/src/lightning/primitiveButton/primitiveButton.js +5 -1
  273. package/src/lightning/primitiveColorpickerButton/color-picker-button.slds.css +14 -14
  274. package/src/lightning/primitiveIcon/icon.slds.css +14 -14
  275. package/src/lightning/primitiveInputCheckbox/form-element.slds.css +23 -24
  276. package/src/lightning/primitiveInputCheckbox/input-checkbox.slds.css +7 -7
  277. package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +23 -24
  278. package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +1 -6
  279. package/src/lightning/primitiveInputColor/form-element.slds.css +23 -24
  280. package/src/lightning/primitiveInputColor/input-color.slds.css +3 -3
  281. package/src/lightning/primitiveInputColor/input-text.slds.css +16 -16
  282. package/src/lightning/primitiveInputColor/primitiveInputColor.html +1 -1
  283. package/src/lightning/primitiveInputFile/button.slds.css +3 -3
  284. package/src/lightning/primitiveInputFile/form-element.slds.css +23 -24
  285. package/src/lightning/primitiveInputFile/input-file.slds.css +2 -2
  286. package/src/lightning/primitiveInputSimple/form-element.slds.css +23 -24
  287. package/src/lightning/primitiveInputSimple/input-text.slds.css +16 -16
  288. package/src/lightning/primitiveInputSimple/mobileInputUtils.js +24 -0
  289. package/src/lightning/primitiveInputSimple/primitiveInputSimple.html +1 -1
  290. package/src/lightning/primitiveInputSimple/primitiveInputSimple.js +82 -13
  291. package/src/lightning/primitiveInputToggle/form-element.slds.css +23 -24
  292. package/src/lightning/progressRing/progressRing.js +16 -3
  293. package/src/lightning/radioGroup/input-radio-group.slds.css +12 -13
  294. package/src/lightning/relativeDateTime/__docs__/relativeDateTime.md +1 -1
  295. package/src/lightning/select/__docs__/select.md +1 -1
  296. package/src/lightning/select/form-element.slds.css +23 -24
  297. package/src/lightning/select/select.slds.css +26 -27
  298. package/src/lightning/spinner/spinner.slds.css +5 -8
  299. package/src/lightning/tab/__docs__/tab.md +1 -1
  300. package/src/lightning/tab/tab.slds.css +8 -8
  301. package/src/lightning/tabBar/tab-bar.slds.css +31 -35
  302. package/src/lightning/tabset/__docs__/tabset.md +2 -2
  303. package/src/lightning/textarea/textarea.css +2 -1
  304. package/src/lightning/textarea/textarea.html +1 -1
  305. package/src/lightning/textarea/textarea.js +4 -1
  306. package/src/lightning/tile/__docs__/tile.md +1 -1
  307. package/src/lightning/timepicker/form-element.slds.css +23 -24
  308. package/src/lightning/toast/button-icon.slds.css +6 -6
  309. package/src/lightning/toast/formatted-rich-text.slds.css +0 -2
  310. package/src/lightning/toast/icon.slds.css +14 -14
  311. package/src/lightning/toast/toast.slds.css +101 -95
  312. package/src/lightning/toastContainer/toast.slds.css +101 -95
  313. package/src/lightning/utilsPrivate/utilsPrivate.js +9 -0
  314. package/src/lightning/icon/iconColors.js +0 -1
@@ -19,7 +19,6 @@ import {
19
19
  MODAL_CLOSE_BTN,
20
20
  MODAL_CLOSE_BTN_CLASS,
21
21
  MODAL_CLOSE_BTN_FULL_CLASS,
22
- MODAL_CLOSE_BTN_ICON_BORDER_CLASS,
23
22
  MODAL_CLOSE_BUTTON_FULL_VARIANT,
24
23
  MODAL_CLOSE_BUTTON_NORMAL_VARIANT,
25
24
  SCREEN_SIZE_LARGE,
@@ -60,8 +59,6 @@ async function getOverlayContainer() {
60
59
  // overlay container isn't present in the DOM
61
60
  // until first overlay or modal is created
62
61
  // eslint-disable-next-line
63
- // wrapper = await kontajner.getWrapper();
64
- // await wrapper.waitForDisplayed();
65
62
  // eslint-disable-next-line no-undef
66
63
  const htmlElem = await $('html');
67
64
  // eslint-disable-next-line no-undef
@@ -139,9 +136,9 @@ async function getModalInternals(config, modalIndex = 0) {
139
136
  modalBaseBackdropElem = await modalBaseElem.shadow$(
140
137
  MODAL_BODY_BACKDROP
141
138
  );
139
+
142
140
  // get focus trap element
143
141
  focusTrapElem = await modalBaseElem.shadow$(FOCUS_TRAP);
144
- await focusTrapElem.waitForDisplayed();
145
142
  focusTrapSlotElem = await focusTrapElem.shadow$('slot');
146
143
 
147
144
  // get modal's <section> element just inside focus trap
@@ -150,20 +147,15 @@ async function getModalInternals(config, modalIndex = 0) {
150
147
  'getFirstSlotElement',
151
148
  focusTrapSlotElem
152
149
  );
153
- await modalSectionElem.waitForDisplayed();
154
150
  // get modal close button
155
151
  modalCloseButton = await modalSectionElem.$(MODAL_CLOSE_BTN);
156
- await modalCloseButton.waitForDisplayed();
157
152
 
158
153
  // get modal div slot (not an actual slot)
159
154
  modalDataSlot = await modalSectionElem.$(MODAL_DIV_SLOT);
160
- await modalDataSlot.waitForDisplayed();
161
155
  // get div[data-container].slds-modal__container
162
156
  modalContainerElem = await modalSectionElem.$(MODAL_CONTAINER_DIV);
163
- await modalContainerElem.waitForDisplayed();
164
157
  // get lightning-modal element
165
158
  modalElem = await modalSectionElem.$(MODAL);
166
- await modalElem.waitForDisplayed();
167
159
 
168
160
  // skip looking for modalHeader when type of modal is 'headless'
169
161
  if (!isModalOfVariantType(modalVariantType, 'headless')) {
@@ -325,7 +317,7 @@ async function validateModalCloseButtonAttributes(config) {
325
317
  expect(modalCloseButtonCssClass).toContain(MODAL_CLOSE_BTN_CLASS);
326
318
 
327
319
  // the only time size='full' actual renders full page width and height
328
- // is when windowWidth is set <= 767
320
+ // is when windowWidth is set <= 768
329
321
  if (
330
322
  modalSize === MODAL_SIZE_FULL &&
331
323
  windowWidth <= MODAL_FULL_SCREEN_SMALL_BREAKPOINT
@@ -335,22 +327,72 @@ async function validateModalCloseButtonAttributes(config) {
335
327
  );
336
328
 
337
329
  expect(modalCloseButtonCssClass).toContain(MODAL_CLOSE_BTN_FULL_CLASS);
338
- expect(modalCloseButtonCssClass).toContain(
339
- MODAL_CLOSE_BTN_ICON_BORDER_CLASS
340
- );
341
330
  } else {
342
- // 'small', 'medium', 'large', and ('full' when windowWidth is set > 767) are normal modal behavior
331
+ // 'small', 'medium', 'large', and ('full' when windowWidth is set > 768) are normal modal behavior
343
332
  expect(modalCloseButtonVariant).toEqual(
344
333
  MODAL_CLOSE_BUTTON_NORMAL_VARIANT
345
334
  );
346
335
  expect(modalCloseButtonCssClass).not.toContain(
347
336
  MODAL_CLOSE_BTN_FULL_CLASS
348
337
  );
349
- expect(modalCloseButtonCssClass).not.toContain(
350
- MODAL_CLOSE_BTN_ICON_BORDER_CLASS
351
- );
352
338
  }
353
339
  }
340
+ /*
341
+ * get some of the modal internals element details
342
+ * including offset values and classes
343
+ * utilizes DOM based approach via browser.execute
344
+ */
345
+ // eslint-disable-next-line @lwc/lwc/no-async-await
346
+ async function getModalInternalsDomBased() {
347
+ // eslint-disable-next-line no-undef
348
+ const result = await browser.execute(() => {
349
+ // down the modal dom tree
350
+ // eslint-disable-next-line @lwc/lwc/no-document-query
351
+ const loc = document.querySelector('lightning-overlay-container');
352
+ const modalBase = loc.shadowRoot.querySelector('lightning-modal-base');
353
+ const modalBackdrop =
354
+ modalBase.shadowRoot.querySelector('.slds-backdrop');
355
+ const focusTrap = modalBase.shadowRoot.querySelector(
356
+ 'lightning-focus-trap'
357
+ );
358
+ const focusTrapSlot = focusTrap.shadowRoot.querySelector('slot');
359
+ const modalSectionElem = focusTrapSlot.assignedNodes()[0];
360
+ const modalContainerElem = modalSectionElem.querySelector(
361
+ '.slds-modal__container'
362
+ );
363
+ const modalCloseButton = modalSectionElem.querySelector(
364
+ 'lightning-button-icon'
365
+ );
366
+ const modalElem = modalSectionElem.querySelector('lightning-modal');
367
+ return {
368
+ window: {
369
+ width: window.innerWidth,
370
+ height: window.innerHeight,
371
+ },
372
+ modalBase: {
373
+ offset: modalBase.getBoundingClientRect(),
374
+ },
375
+ modalBackdrop: {
376
+ offset: modalBackdrop.getBoundingClientRect(),
377
+ },
378
+ modalSectionElem: {
379
+ class: modalSectionElem.getAttribute('class'),
380
+ offset: modalSectionElem.getBoundingClientRect(),
381
+ },
382
+ modalContainerElem: {
383
+ class: modalContainerElem.getAttribute('class'),
384
+ offset: modalContainerElem.getBoundingClientRect(),
385
+ },
386
+ modalCloseButton: {
387
+ class: modalCloseButton.getAttribute('class'),
388
+ },
389
+ modalElem: {
390
+ offset: modalElem.getBoundingClientRect(),
391
+ },
392
+ };
393
+ });
394
+ return result;
395
+ }
354
396
 
355
397
  /* Function includes expect tests to validate the expected
356
398
  * modal HEIGHT behavior based on screen size, size attribute,
@@ -359,23 +401,20 @@ async function validateModalCloseButtonAttributes(config) {
359
401
  // eslint-disable-next-line @lwc/lwc/no-async-await
360
402
  async function validateModalHeightBehavior(config) {
361
403
  const { modalSize } = config;
362
-
363
- // first, get window size
364
- // eslint-disable-next-line no-undef
365
- const { width: windowWidth } = await browser.getWindowSize();
366
- // get <lightning-modal> element
367
- const { modalBodyElem, modalElem } = await getModalInternals(config);
368
-
369
- const { x: modalElemLocX, y: modalElemLocY } =
370
- await modalElem.getLocation();
371
-
372
- // get <lightning-modal-body> element
404
+ // first, get sizes of elements
405
+ const { modalSectionElem, window, modalElem } =
406
+ await getModalInternalsDomBased();
407
+ const { height: modalSectionElemHeight } = modalSectionElem.offset;
408
+ const { height: windowHeight, width: windowWidth } = window;
409
+
410
+ // get <lightning-modal-body> element for min and max height values
411
+ const { modalBodyElem } = await getModalInternals(config);
373
412
  const { bodyOuterDiv } = await getModalBodyInternals(modalBodyElem);
374
413
  const modalBodyOuterDivStyle = await bodyOuterDiv.getAttribute('style');
375
414
  const modalBodyStyleProps = parseStyleAttributes(modalBodyOuterDivStyle);
376
-
415
+ const { x: modalElemX, y: modalElemY } = modalElem.offset;
377
416
  // the only time size='full' actual renders full page width and height
378
- // is when windowWidth is set <= 767
417
+ // is when windowWidth is set <= 768
379
418
  // note: reliably testing outer div element was not possible as
380
419
  // webdriver getSize didn't provide correct values for comparison
381
420
  // the tests below verify that the code path for setting full height are invoked
@@ -383,33 +422,29 @@ async function validateModalHeightBehavior(config) {
383
422
  modalSize === MODAL_SIZE_FULL &&
384
423
  windowWidth <= MODAL_FULL_SCREEN_SMALL_BREAKPOINT
385
424
  ) {
386
- // the <lightning-modal> element is consistently accurate for
387
- // location measurment in the CI
388
- // typical values are: { x: 0, y: 48 },
389
- // y=48 comes from margin/padding and is expected
390
- expect(modalElemLocX).toEqual(MODAL_ELEM_FULL_PX_OFFSET_X);
391
- expect(modalElemLocY).toBeLessThan(MODAL_ELEM_FULL_PX_OFFSET_Y);
425
+ expect(modalSectionElemHeight).toEqual(windowHeight);
426
+ expect(modalElemX).toEqual(MODAL_ELEM_FULL_PX_OFFSET_X);
427
+ expect(modalElemY).toEqual(MODAL_ELEM_FULL_PX_OFFSET_Y);
392
428
  // these next two tests are proxy behavior indicating
393
429
  // that the event listeners, and rendering has updated
394
430
  // to make the modal go full height
395
- expect(modalBodyStyleProps[MAX_HEIGHT]).toEqual(
396
- modalBodyStyleProps[MIN_HEIGHT]
397
- );
398
- expect(modalBodyStyleProps[MIN_HEIGHT]).toBeGreaterThan(
399
- MODAL_BODY_MIN_HEIGHT_PX
400
- );
431
+ // these values are not set after the SLDS based
432
+ // CSS grid implementation was implemented
433
+ expect(modalBodyStyleProps[MAX_HEIGHT]).toBeUndefined();
434
+ expect(modalBodyStyleProps[MIN_HEIGHT]).toBeUndefined();
401
435
  } else {
402
- // 'small', 'medium', 'large', and ('full' when windowWidth is set > 767) are normal modal behavior
403
- // the <lightning-modal> element is consistently accurate for
436
+ // 'small', 'medium', 'large', and ('full' when windowWidth is set > 768) are normal modal behavior
437
+ // the div.slds-modal__container element is consistently accurate for
404
438
  // location measurment in the CI
405
439
  // location values vary based on screen and size value
406
- // typical value are: { x: > 25, y: > 60 },
407
- // y=48 comes from margin/padding and is expected
408
- expect(modalElemLocX).toBeGreaterThan(MODAL_DEFAULT_PX_OFFSET_X);
409
- expect(modalElemLocY).toBeGreaterThan(MODAL_DEFAULT_PX_OFFSET_Y);
410
- // these next two tests are proxy behavior indicating
440
+ // typical value are: { x: > 25 },
441
+ expect(modalElemX).toBeGreaterThan(MODAL_DEFAULT_PX_OFFSET_X);
442
+ expect(modalElemY).toBeGreaterThan(MODAL_DEFAULT_PX_OFFSET_Y);
443
+ // these next two sets of tests are proxy behavior indicating
411
444
  // that the event listeners, and rendering has updated
412
- // to make the modal go full height
445
+ // to make the modal exhibit normal height behavior (not full screen)
446
+ expect(modalBodyStyleProps[MAX_HEIGHT]).toBeDefined();
447
+ expect(modalBodyStyleProps[MIN_HEIGHT]).toBeDefined();
413
448
  expect(modalBodyStyleProps[MAX_HEIGHT]).not.toEqual(
414
449
  modalBodyStyleProps[MIN_HEIGHT]
415
450
  );
@@ -428,22 +463,25 @@ async function validateModalWidthBehavior(config, modalIndex = 0) {
428
463
  const { modalSize } = config;
429
464
  // first, get outer window size
430
465
  // eslint-disable-next-line no-undef
431
- const { width: windowWidth } = await browser.getWindowSize();
466
+ const { width: windowWidth } =
467
+ // eslint-disable-next-line no-undef
468
+ await browser.getWindowSize();
432
469
 
433
470
  // second, find modal elem, then get width
434
- const { modalElem } = await getModalInternals(config, modalIndex);
435
- const { width: modalElemWidth } = await modalElem.getSize();
471
+ const { modalContainerElem } = await getModalInternals(config, modalIndex);
472
+ const { width: modalContainerElemWidth } =
473
+ await modalContainerElem.getSize();
436
474
 
437
475
  // the only time size='full' actual renders full page width and height
438
- // is when windowWidth is set <= 767
476
+ // is when windowWidth is set <= 768
439
477
  if (
440
478
  modalSize === MODAL_SIZE_FULL &&
441
479
  windowWidth <= MODAL_FULL_SCREEN_SMALL_BREAKPOINT
442
480
  ) {
443
- expect(modalElemWidth).toEqual(windowWidth);
481
+ expect(modalContainerElemWidth).toEqual(windowWidth);
444
482
  } else {
445
- // 'small', 'medium', 'large', and ('full' when windowWidth is set > 767) are normal modal behavior
446
- expect(modalElemWidth).toBeLessThan(windowWidth);
483
+ // 'small', 'medium', 'large', and ('full' when windowWidth is set > 768) are normal modal behavior
484
+ expect(modalContainerElemWidth).toBeLessThan(windowWidth);
447
485
  }
448
486
  }
449
487
 
@@ -495,7 +533,6 @@ async function openModal({
495
533
  if (runMockMatchMedia) {
496
534
  await mockMatchMedia();
497
535
  }
498
-
499
536
  // set a specific window size based on sizing descriptor (SMALL, MEDIUM)
500
537
  await setWindowSize(screenSizeToSet);
501
538
 
@@ -1122,6 +1159,7 @@ async function validateModalOpenTabNavFocusBehavior(
1122
1159
  }
1123
1160
 
1124
1161
  module.exports = {
1162
+ getModalInternalsDomBased,
1125
1163
  setupStrategy,
1126
1164
  isModalOfVariantType,
1127
1165
  parseStyleAttributes,
@@ -1,6 +1,7 @@
1
1
  import { api, LightningElement } from 'lwc';
2
2
  import { classSet } from 'lightning/utils';
3
3
  import {
4
+ isCSR,
4
5
  makeEverythingExceptElementInert,
5
6
  normalizeString,
6
7
  synchronizeAttrs,
@@ -18,7 +19,7 @@ import closeButtonAltText from '@salesforce/label/LightningModalBase.cancelandcl
18
19
  import disableCloseBtnMessage from '@salesforce/label/LightningModalBase.waitstate';
19
20
 
20
21
  const DEBOUNCE_RESIZE = 300;
21
- const SMALL_SCREEN_SIZE = 767;
22
+ const SMALL_SCREEN_SIZE = 768;
22
23
  const SIZE_SMALL = 'small';
23
24
  const SIZE_MEDIUM = 'medium';
24
25
  const SIZE_LARGE = 'large';
@@ -50,7 +51,6 @@ export default class LightningModalBase extends LightningElement {
50
51
  headerLabelIsPopulated = null;
51
52
  headerTitleRef = null;
52
53
  headerTabElemRef = null;
53
- headerHeightCheck = null;
54
54
 
55
55
  // modalBody, child
56
56
  bodyRegistered = false;
@@ -72,7 +72,6 @@ export default class LightningModalBase extends LightningElement {
72
72
  footerSlotHasRendered = false;
73
73
  footerDefaultSlotIsPopulated = false;
74
74
  footerTabElemRef = null;
75
- footerHeightCheck = null;
76
75
 
77
76
  // aria attributes
78
77
  modalLabel = null;
@@ -342,12 +341,12 @@ export default class LightningModalBase extends LightningElement {
342
341
  * modal header so the close button maintains visibility for a11y
343
342
  * @private
344
343
  */
344
+ // slds-button slds-button_icon slds-modal__close slds-button_icon-inverse
345
345
  get computedCloseButtonCssClass() {
346
346
  let classes = classSet('slds-modal__close');
347
347
  const fullScreenActive =
348
348
  this.isSmallScreenSize && this.size === SIZE_FULL;
349
349
  classes.add({
350
- 'slds-button_icon-border-filled': fullScreenActive,
351
350
  'slds-modal_full-close-button': fullScreenActive,
352
351
  });
353
352
  return classes.toString();
@@ -840,7 +839,6 @@ export default class LightningModalBase extends LightningElement {
840
839
  firstTabbableElemRef,
841
840
  defaultSlotWrapperId,
842
841
  defaultSlotHasRendered,
843
- checkHeaderHeightCallback,
844
842
  unRegisterCallback,
845
843
  labelIsPopulated,
846
844
  headerHeight,
@@ -856,7 +854,6 @@ export default class LightningModalBase extends LightningElement {
856
854
  this.headerLabelIsPopulated = labelIsPopulated;
857
855
  this.headerTitleRef = headerRef;
858
856
  this.headerTabElemRef = firstTabbableElemRef;
859
- this.headerHeightCheck = checkHeaderHeightCallback;
860
857
  unRegisterCallback(() => {
861
858
  this.unregisterHeader();
862
859
  });
@@ -894,7 +891,6 @@ export default class LightningModalBase extends LightningElement {
894
891
  this.headerLabelIsPopulated = null;
895
892
  this.headerTitleRef = null;
896
893
  this.headerTabElemRef = null;
897
- this.headerHeightCheck = null;
898
894
  }
899
895
 
900
896
  /**
@@ -926,14 +922,12 @@ export default class LightningModalBase extends LightningElement {
926
922
  footerHeight,
927
923
  unRegisterCallback,
928
924
  firstTabbableElemRef,
929
- checkFooterHeightCallback,
930
925
  }) {
931
926
  this.footerRegistered = true;
932
927
  this.footerDefaultSlotIsPopulated = defaultSlotIsPopulated;
933
928
  this.footerSlotHasRendered = defaultSlotHasRendered;
934
929
  this.updateFooterHeight(footerHeight);
935
930
  this.footerTabElemRef = firstTabbableElemRef || null;
936
- this.footerHeightCheck = checkFooterHeightCallback;
937
931
  unRegisterCallback(() => {
938
932
  this.unregisterFooter();
939
933
  });
@@ -966,7 +960,6 @@ export default class LightningModalBase extends LightningElement {
966
960
  this.footerSlotHasRendered = false;
967
961
  this.footerDefaultSlotIsPopulated = false;
968
962
  this.footerTabElemRef = null;
969
- this.footerHeightCheck = null;
970
963
  }
971
964
 
972
965
  /**
@@ -991,54 +984,6 @@ export default class LightningModalBase extends LightningElement {
991
984
  return this.size === SIZE_FULL && this.isSmallScreenSize;
992
985
  }
993
986
 
994
- /**
995
- * Under the right conditions, update the local tracked header height value
996
- * @private
997
- */
998
- checkAndUpdateHeaderHeight() {
999
- // important to verify that header is registered,
1000
- // and not on initial render of modal parent, since
1001
- // child component may not yet exist
1002
- const shouldCheckHeaderHeight =
1003
- !this.initialRender &&
1004
- this.headerRegistered &&
1005
- this.shouldModalBeFullScreen();
1006
- // when screen size changes, variable height content within the
1007
- // modal header can reflow
1008
- // for example: 3 rows of content in tagline can become 2 rows
1009
- if (shouldCheckHeaderHeight) {
1010
- const { changed: headerChangedHeight, value: newHeaderHeight } =
1011
- this.headerHeightCheck();
1012
- if (headerChangedHeight) {
1013
- this.updateHeaderHeight(newHeaderHeight);
1014
- }
1015
- }
1016
- }
1017
-
1018
- /**
1019
- * Under the right conditions, update the local tracked footer height value
1020
- * @private
1021
- */
1022
- checkAndUpdateFooterHeight() {
1023
- // important to verify that footer is registered,
1024
- // and not on initial render of modal parent, since
1025
- // child component may not yet exist
1026
- const shouldCheckFooterHeight =
1027
- !this.initialRender &&
1028
- this.footerRegistered &&
1029
- this.shouldModalBeFullScreen();
1030
- // when screen size changes, variable height content within the
1031
- // modal footer can reflow
1032
- // for example: 1 row of buttons to 2 rows, or 2 rows to 1 row
1033
- if (shouldCheckFooterHeight) {
1034
- const { changed: footerChangedHeight, value: newFooterHeight } =
1035
- this.footerHeightCheck();
1036
- if (footerChangedHeight) {
1037
- this.updateFooterHeight(newFooterHeight);
1038
- }
1039
- }
1040
- }
1041
-
1042
987
  /**
1043
988
  * When the modalBody content height is tall, it requires max-height
1044
989
  * to be set in order to prevent overflow of the modal offscreen
@@ -1054,9 +999,6 @@ export default class LightningModalBase extends LightningElement {
1054
999
  // check, and update isSmallScreenSize before
1055
1000
  // callback to modalBody
1056
1001
  this.setIsSmallScreenSize();
1057
- // check for height changes in header or footer
1058
- this.checkAndUpdateHeaderHeight();
1059
- this.checkAndUpdateFooterHeight();
1060
1002
  // eslint-disable-next-line @lwc/lwc/no-async-operation
1061
1003
  requestAnimationFrame(() => {
1062
1004
  this.bodyResizeScheduled = false;
@@ -1106,7 +1048,7 @@ export default class LightningModalBase extends LightningElement {
1106
1048
  * @private
1107
1049
  */
1108
1050
  addWindowResizeEventListener() {
1109
- if (window && !this.windowResizeEventBound) {
1051
+ if (isCSR && !this.windowResizeEventBound) {
1110
1052
  window.addEventListener('resize', this.handleWindowResizeEvent);
1111
1053
  this.windowResizeEventBound = true;
1112
1054
  }
@@ -1117,7 +1059,7 @@ export default class LightningModalBase extends LightningElement {
1117
1059
  * @private
1118
1060
  */
1119
1061
  removeWindowResizeEventListener() {
1120
- if (window && this.windowResizeEventBound) {
1062
+ if (isCSR && this.windowResizeEventBound) {
1121
1063
  window.removeEventListener('resize', this.handleWindowResizeEvent);
1122
1064
  clearTimeout(this.timeoutId);
1123
1065
  this.timeoutId = 0;
@@ -1148,15 +1090,19 @@ export default class LightningModalBase extends LightningElement {
1148
1090
  * orientation changes: 'portrait' -> 'landscape' -> 'portrait'
1149
1091
  */
1150
1092
  addOrientationChangeListener() {
1151
- this.portraitMatchMedia = window.matchMedia('(orientation: portrait)');
1152
- this.screenOrientationChangeHandler =
1153
- this.handleWindowResizeEvent.bind(this);
1154
- if (this.portraitMatchMedia) {
1155
- this.portraitMatchMedia.addEventListener(
1156
- 'change',
1157
- this.screenOrientationChangeHandler
1093
+ if (isCSR) {
1094
+ this.portraitMatchMedia = window.matchMedia(
1095
+ '(orientation: portrait)'
1158
1096
  );
1159
- this.windowOrientationEventBound = true;
1097
+ this.screenOrientationChangeHandler =
1098
+ this.handleWindowResizeEvent.bind(this);
1099
+ if (this.portraitMatchMedia) {
1100
+ this.portraitMatchMedia.addEventListener(
1101
+ 'change',
1102
+ this.screenOrientationChangeHandler
1103
+ );
1104
+ this.windowOrientationEventBound = true;
1105
+ }
1160
1106
  }
1161
1107
  }
1162
1108
 
@@ -1169,11 +1115,15 @@ export default class LightningModalBase extends LightningElement {
1169
1115
  * @private
1170
1116
  */
1171
1117
  setIsSmallScreenSize() {
1172
- const docElem = (document && document.documentElement) || null;
1173
- const browserWidth = docElem ? docElem.clientWidth : window.innerWidth;
1174
- const isSmallScreenSize = browserWidth <= SMALL_SCREEN_SIZE;
1175
- if (isSmallScreenSize !== this.isSmallScreenSize) {
1176
- this.isSmallScreenSize = isSmallScreenSize;
1118
+ if (isCSR) {
1119
+ const docElem = (document && document.documentElement) || null;
1120
+ const browserWidth = docElem
1121
+ ? docElem.clientWidth
1122
+ : window.innerWidth;
1123
+ const isSmallScreenSize = browserWidth <= SMALL_SCREEN_SIZE;
1124
+ if (isSmallScreenSize !== this.isSmallScreenSize) {
1125
+ this.isSmallScreenSize = isSmallScreenSize;
1126
+ }
1177
1127
  }
1178
1128
  }
1179
1129
 
@@ -5,7 +5,7 @@ component after `lightning-modal-header` and before `lightning-modal-footer` com
5
5
 
6
6
  This sample code shows the expected order of the modal components. The modal content is
7
7
  created in a separate component extended from `LightningModal`. See
8
- [Lightning Web Components Developer Guide](docs/component-library/documentation/en/lwc/)
8
+ [Lightning Web Components Developer Guide](https://developer.salesforce.com/docs/platform/lwc/guide/)
9
9
 
10
10
  ```html
11
11
  <!-- my/modalDialog.html -->
@@ -53,9 +53,9 @@ For example, specify the background color on the modal using the `sds-c-modal-co
53
53
 
54
54
  See the modal blueprint's [Styling Hooks Overview](https://www.lightningdesignsystem.com/components/modals/#Styling-Hooks-Overview) for a list of CSS custom properties.
55
55
 
56
- For more information, see [Style Components Using Lightning Design System Styling Hooks](docs/component-library/documentation/lwc/lwc.create_components_css_custom_properties) in the Lightning Web Components Developer Guide.
56
+ For more information, see [Style Components Using Lightning Design System Styling Hooks](https://developer.salesforce.com/docs/platform/lwc/guide/create-components-css-custom-properties) in the Lightning Web Components Developer Guide.
57
57
 
58
58
  #### Accessibility
59
59
 
60
- See [Lightning Web Components Developer Guide](docs/component-library/documentation/en/lwc/) for more information about accessibility in modals.
60
+ See [Lightning Web Components Developer Guide](https://developer.salesforce.com/docs/platform/lwc/guide/) for more information about accessibility in modals.
61
61
 
@@ -147,26 +147,19 @@ export default class LightningModalBody extends LightningElement {
147
147
  * Based on initial values, calculate min/max height style values
148
148
  * to set on modalBody for correct display of content, and scrollability
149
149
  * @param {object} values passed from modalBase to modalBody,
150
- * @param {boolean} shouldUseFullHeight boolean to determine if full
151
150
  * height of screen should be used
152
151
  * representing height and width values of header, footer, and body
153
152
  * @return {object} values, after adding of modalUsableHeight
154
153
  * @private
155
154
  */
156
- updateModalBodyHeightValues(values, shouldUseFullHeight) {
157
- const { modalBodyMinHeight } = values;
158
- // first have to calculate the correct values
155
+ updateModalBodyHeightValues(values) {
156
+ // first, have to calculate the correct values
159
157
  const updatedValues = this.calculateModalUsableHeight(values);
160
158
  const modalBodyUsableHeight =
161
159
  this.calculateModalBodyUsableHeight(updatedValues);
162
160
  // update values with calculated values
163
161
  values.modalBodyUsableHeight = modalBodyUsableHeight;
164
162
  values.maxModalBodyHeightStyle = `${modalBodyUsableHeight}px`;
165
- // need to adjust minHeight, to force modal to use full height
166
- // of user screen
167
- values.minModalBodyHeightStyle = shouldUseFullHeight
168
- ? `${modalBodyUsableHeight}px`
169
- : `${modalBodyMinHeight}px`;
170
163
  return values;
171
164
  }
172
165
 
@@ -176,33 +169,38 @@ export default class LightningModalBody extends LightningElement {
176
169
  * @private
177
170
  */
178
171
  setModalBodyHeight(values, shouldUseFullHeight) {
179
- const { maxModalBodyHeightStyle, minModalBodyHeightStyle } =
180
- this.updateModalBodyHeightValues(values, shouldUseFullHeight);
172
+ // set base style to remove any preset max/min-height values
173
+ // if you move from > 767 to <= 767 or vise versa, previously set
174
+ // values must be unset. removing by setting initial 'null' values
175
+ let styles = { maxHeight: null, minHeight: null };
176
+ // when not utilizing size=full screen modal
177
+ // we need to calculate the max-height value
178
+ // so the modalBody content scrolls correctly
179
+ // (min-height value is always static for non size=full modals)
180
+ // size=full screen modal required a CSS Grid based solution
181
+ // due to iOS dynamic view port heights
182
+ if (!shouldUseFullHeight) {
183
+ // update the max-height and min height values
184
+ // on modal body wrapper div
185
+ const { maxModalBodyHeightStyle, minModalBodyHeightStyle } =
186
+ this.updateModalBodyHeightValues(values);
187
+ styles.maxHeight = maxModalBodyHeightStyle;
188
+ styles.minHeight = minModalBodyHeightStyle;
189
+ }
181
190
  const divElem = this.contentElem;
182
- const styles = {
183
- maxHeight: maxModalBodyHeightStyle,
184
- minHeight: minModalBodyHeightStyle,
185
- };
186
- // set the max and min height value on modal body wrapper div
187
191
  Object.assign(divElem.style, styles);
188
192
  }
189
193
 
190
194
  /**
191
- * Update values based on whether size="full" behavior should be full screen (small)
192
- * or less than full screen (large)
193
- * @param {Boolean} shouldUseFullHeight Whether full height of screen should be used
195
+ * Update values for any size modal behavior when not exhibiting full height behavior
196
+ * size=small|medium|large && size=full (when screen size greater than 767px)
194
197
  * @param {object} values Provided height, width values from handleUpdateHeight
195
- * @returns {object} updatedValues based on full screen or default strategy used
198
+ * @returns {object} updatedValues for default modal behavior. not utilized for full screen
196
199
  * @private
197
200
  */
198
- updateValues(shouldUseFullHeight, values) {
201
+ updateValues(values) {
199
202
  const { headerHeight, footerHeight, backdropHeight } = values;
200
203
  const MODAL_BODY_MIN_HEIGHT = 80;
201
- // Full screen size constants
202
- // positioning values of body and footer are effected
203
- // by modalHeader presence (headless)
204
- const PAD_TOP_FULL = 48;
205
- const PAD_BOTTOM_FULL = 1;
206
204
  // default screen behavior (original modal behavior)
207
205
  const PAD_TOP_DEFAULT = 48;
208
206
  const PAD_BOTTOM_DEFAULT = 80;
@@ -212,14 +210,16 @@ export default class LightningModalBody extends LightningElement {
212
210
  headerHeight: Math.floor(headerHeight),
213
211
  footerHeight: Math.floor(footerHeight),
214
212
  backdropHeight: Math.floor(backdropHeight),
215
- paddingTop: shouldUseFullHeight ? PAD_TOP_FULL : PAD_TOP_DEFAULT,
216
- paddingBottom: shouldUseFullHeight
217
- ? PAD_BOTTOM_FULL
218
- : PAD_BOTTOM_DEFAULT,
213
+ paddingTop: PAD_TOP_DEFAULT,
214
+ paddingBottom: PAD_BOTTOM_DEFAULT,
219
215
  modalBodyMinHeight: MODAL_BODY_MIN_HEIGHT,
220
- // these last four values must first be calculated
216
+ // since size=full screen no longer relies on
217
+ // JS calculated values, minHeight value is only
218
+ // utilized for !size=full modals, and the value is
219
+ // always static at 'min-height: 80px'
220
+ minModalBodyHeightStyle: `${MODAL_BODY_MIN_HEIGHT}px`,
221
+ // these last three values must first be calculated
221
222
  // the first two values get set on modal body
222
- minModalBodyHeightStyle: null,
223
223
  maxModalBodyHeightStyle: null,
224
224
  modalBodyUsableHeight: null,
225
225
  modalUsableHeight: null,
@@ -251,10 +251,7 @@ export default class LightningModalBody extends LightningElement {
251
251
  this.footerPresent = footerHeight !== 0;
252
252
  // now determine behavior: full screen or default
253
253
  const shouldUseFullHeight = sizeSetFull && isSmallScreenSize;
254
- const updatedValues = this.updateValues(
255
- shouldUseFullHeight,
256
- values
257
- );
254
+ const updatedValues = this.updateValues(values);
258
255
  // set updated values based on behavior
259
256
  this.setModalBodyHeight(updatedValues, shouldUseFullHeight);
260
257
  }
@@ -6,7 +6,7 @@ Place the `lightning-modal-footer` component after the `lightning-modal-body` co
6
6
 
7
7
  This sample code shows the expected order of the modal components. The modal content is
8
8
  created in a separate component extended from `LightningModal`. See
9
- [Lightning Web Components Developer Guide](docs/component-library/documentation/en/lwc/)
9
+ [Lightning Web Components Developer Guide](https://developer.salesforce.com/docs/platform/lwc/guide/)
10
10
 
11
11
  This sample's `lightning-modal-footer` includes two `lightning-button` components,
12
12
  but you can also use `<button>` elements.
@@ -59,7 +59,7 @@ For example, specify the background color on the footer using the `sds-c-modal-f
59
59
 
60
60
  See the modal blueprint's [Styling Hooks Overview](https://www.lightningdesignsystem.com/components/modals/#Styling-Hooks-Overview) for a list of CSS custom properties.
61
61
 
62
- For more information, see [Style Components Using Lightning Design System Styling Hooks](docs/component-library/documentation/lwc/lwc.create_components_css_custom_properties) in the Lightning Web Components Developer Guide.
62
+ For more information, see [Style Components Using Lightning Design System Styling Hooks](https://developer.salesforce.com/docs/platform/lwc/guide/create-components-css-custom-properties) in the Lightning Web Components Developer Guide.
63
63
 
64
64
  #### Accessibility
65
65
 
@@ -68,5 +68,5 @@ If you add buttons to the footer, you can use the accessibility attributes descr
68
68
  When the modal opens, focus goes to the first interactive element in the modal. If there are no links in the header or any interactive elements
69
69
  in the modal body, the first footer button gets initial focus.
70
70
 
71
- See [Lightning Web Components Developer Guide](docs/component-library/documentation/en/lwc/) for more information about accessibility in modals.
71
+ See [Lightning Web Components Developer Guide](https://developer.salesforce.com/docs/platform/lwc/guide/) for more information about accessibility in modals.
72
72