lightning-base-components 1.21.6-alpha → 1.21.7-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 (368) hide show
  1. package/metadata/raptor.json +45 -4
  2. package/package.json +125 -3
  3. package/scopedImports/@salesforce-label-LightningColorPicker.a11yDefaultText.js +1 -0
  4. package/scopedImports/@salesforce-label-LightningDatatable.multiColumnSortingToast.js +1 -0
  5. package/scopedImports/@salesforce-label-LightningDatatable.sortingMenuColumns.js +1 -0
  6. package/scopedImports/@salesforce-label-LightningDatatable.sortingMenuMultiColumnSort.js +1 -0
  7. package/scopedImports/@salesforce-label-LightningDatatable.sortingMenuRows.js +1 -0
  8. package/scopedImports/@salesforce-label-LightningDatatable.sortingMenuTooltip.js +1 -0
  9. package/scopedImports/@salesforce-label-LightningForm.dependentFieldsListHeading.js +1 -1
  10. package/scopedImports/@salesforce-label-LightningLookup.advancedSearchMobile.js +1 -1
  11. package/scopedImports/@salesforce-label-LightningLookup.modalTitle.js +1 -0
  12. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.addRule.js +1 -0
  13. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.applyButton.js +1 -0
  14. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.cancelButton.js +1 -0
  15. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.clearButton.js +1 -0
  16. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.duplicateValueValidation.js +1 -0
  17. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.firstRuleHeading.js +1 -0
  18. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.modalTitle.js +1 -0
  19. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.otherRuleHeading.js +1 -0
  20. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.ruleLimit.js +1 -0
  21. package/scopedImports/@salesforce-label-LightningMultiColumnSortingModal.ruleLimitReached.js +1 -0
  22. package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.ascending.js +1 -0
  23. package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.descending.js +1 -0
  24. package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.dropdownPlaceholder.js +1 -0
  25. package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.missingValueValidation.js +1 -0
  26. package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.moveDownTooltip.js +1 -0
  27. package/scopedImports/@salesforce-label-LightningPrimitiveColumnSorter.moveUpTooltip.js +1 -0
  28. package/scopedImports/@salesforce-label-LightningProgressIndicator.pathCurrentStage.js +1 -0
  29. package/scopedImports/@salesforce-label-LightningRecordPicker.emptyStateNoResultText.js +1 -0
  30. package/scopedImports/@salesforce-label-LightningRecordPicker.messageWhenSearchTermTooShort.js +1 -0
  31. package/scopedImports/@salesforce-label-LightningRecordPicker.resultCountDescriptionForMoreThanOneHundredRecords.js +1 -0
  32. package/scopedImports/@salesforce-label-LightningRecordPicker.resultCountDescriptionForMultipleRecords.js +1 -0
  33. package/scopedImports/@salesforce-label-LightningRecordPicker.resultCountDescriptionForOneRecord.js +1 -0
  34. package/scopedImports/@salesforce-label-LightningRecordPicker.resultsLoading.js +1 -0
  35. package/scopedImports/@salesforce-label-LightningRecordPicker.searchInputHelp.js +1 -0
  36. package/src/lightning/accordion/accordion.js +21 -14
  37. package/src/lightning/accordionSection/button.slds.css +16 -15
  38. package/src/lightning/alert/alert.js +10 -8
  39. package/src/lightning/ariaObserver/ariaObserver.js +19 -5
  40. package/src/lightning/baseCombobox/base-combobox.slds.css +1 -1
  41. package/src/lightning/baseCombobox/baseCombobox.html +2 -1
  42. package/src/lightning/baseCombobox/baseCombobox.js +21 -0
  43. package/src/lightning/baseCombobox/input-text.slds.css +5 -5
  44. package/src/lightning/button/button.js +5 -0
  45. package/src/lightning/button/button.slds.css +16 -15
  46. package/src/lightning/buttonIcon/__docs__/buttonIcon.md +4 -0
  47. package/src/lightning/buttonIcon/__examples__/basic/basic.html +17 -1
  48. package/src/lightning/buttonIcon/button-icon.slds.css +41 -25
  49. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +33 -229
  50. package/src/lightning/buttonIconStateful/button-icon.slds.css +41 -25
  51. package/src/lightning/buttonIconStateful/button.slds.css +16 -15
  52. package/src/lightning/buttonMenu/button-icon.slds.css +41 -25
  53. package/src/lightning/buttonMenu/button-menu.slds.css +41 -15
  54. package/src/lightning/buttonMenu/button.slds.css +16 -15
  55. package/src/lightning/buttonMenu/buttonMenu.css +1 -1
  56. package/src/lightning/buttonMenu/buttonMenu.html +1 -1
  57. package/src/lightning/buttonMenu/buttonMenu.js +44 -4
  58. package/src/lightning/buttonStateful/button-stateful.slds.css +1 -4
  59. package/src/lightning/buttonStateful/button.slds.css +16 -15
  60. package/src/lightning/calendar/calendar.html +3 -4
  61. package/src/lightning/card/card.html +1 -1
  62. package/src/lightning/colorPickerCustom/colorPickerCustom.html +1 -1
  63. package/src/lightning/colorPickerCustom/colorPickerCustom.js +0 -9
  64. package/src/lightning/colorPickerCustom/input-text.slds.css +5 -5
  65. package/src/lightning/combobox/form-element.slds.css +1 -0
  66. package/src/lightning/confirm/confirm.js +10 -8
  67. package/src/lightning/datatable/__docs__/datatable.md +0 -3
  68. package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/README.md +17 -0
  69. package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/customComponentPopupTableWrapper.html +11 -0
  70. package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/customComponentPopupTableWrapper.js +25 -0
  71. package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/generateData.js +15 -0
  72. package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/customInput.html +4 -0
  73. package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/myCustomTypePopupTable.js +17 -0
  74. package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/nestedSimpleComponentParent.html +7 -0
  75. package/src/lightning/datatable/__examples__disabled/simpleComponentPopupNested/simpleComponentPopupNested.html +31 -0
  76. package/src/lightning/datatable/__examples__disabled/simpleComponentPopupNested/simpleComponentPopupNested.js +36 -0
  77. package/src/lightning/datatable/columnWidthManager.js +19 -16
  78. package/src/lightning/datatable/columns.js +74 -25
  79. package/src/lightning/datatable/datatable.js +493 -133
  80. package/src/lightning/datatable/errors.js +1 -1
  81. package/src/lightning/datatable/indexes.js +32 -19
  82. package/src/lightning/datatable/infiniteLoading.js +6 -5
  83. package/src/lightning/datatable/inlineEdit.js +45 -59
  84. package/src/lightning/datatable/keyboard.js +571 -160
  85. package/src/lightning/datatable/renderManager.js +12 -9
  86. package/src/lightning/datatable/rowLevelActions.js +5 -14
  87. package/src/lightning/datatable/rowSelection.js +36 -17
  88. package/src/lightning/datatable/rowSelectionShared.js +1 -0
  89. package/src/lightning/datatable/rows.js +132 -24
  90. package/src/lightning/datatable/rowsInlining.js +473 -0
  91. package/src/lightning/datatable/sort.js +8 -4
  92. package/src/lightning/datatable/state.js +12 -4
  93. package/src/lightning/datatable/templates/div/div.html +807 -91
  94. package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +29 -3
  95. package/src/lightning/datatable/templates/table/table.css +29 -1
  96. package/src/lightning/datatable/templates/table/table.html +786 -87
  97. package/src/lightning/datatable/utils.js +39 -0
  98. package/src/lightning/datatable/virtualization.js +44 -19
  99. package/src/lightning/datatable/wrapText.js +7 -10
  100. package/src/lightning/datepicker/datepicker.html +3 -1
  101. package/src/lightning/datepicker/datepicker.js +31 -1
  102. package/src/lightning/datepicker/form-element.slds.css +1 -0
  103. package/src/lightning/datepicker/input-text.slds.css +5 -5
  104. package/src/lightning/datetimepicker/datetimepicker.html +7 -1
  105. package/src/lightning/datetimepicker/datetimepicker.js +30 -2
  106. package/src/lightning/datetimepicker/form-element.slds.css +1 -0
  107. package/src/lightning/datetimepicker/input-text.slds.css +5 -5
  108. package/src/lightning/dualListbox/form-element.slds.css +1 -0
  109. package/src/lightning/focusTrap/focusTrap.css +7 -0
  110. package/src/lightning/groupedCombobox/form-element.slds.css +1 -0
  111. package/src/lightning/groupedCombobox/input-text.slds.css +5 -5
  112. package/src/lightning/helptext/button-icon.slds.css +41 -25
  113. package/src/lightning/helptext/form-element.slds.css +1 -0
  114. package/src/lightning/icon/__docs__/icon.md +0 -2
  115. package/src/lightning/iconSvgTemplates/buildTemplates/standard/account_score.html +8 -0
  116. package/src/lightning/iconSvgTemplates/buildTemplates/standard/aggregate.html +8 -0
  117. package/src/lightning/iconSvgTemplates/buildTemplates/standard/app_form_participant.html +11 -0
  118. package/src/lightning/iconSvgTemplates/buildTemplates/standard/app_form_product_participant.html +12 -0
  119. package/src/lightning/iconSvgTemplates/buildTemplates/standard/cost_model.html +7 -0
  120. package/src/lightning/iconSvgTemplates/buildTemplates/standard/labels.html +8 -0
  121. package/src/lightning/iconSvgTemplates/buildTemplates/standard/list_fee.html +7 -0
  122. package/src/lightning/iconSvgTemplates/buildTemplates/standard/list_rate.html +7 -0
  123. package/src/lightning/iconSvgTemplates/buildTemplates/standard/party_profile.html +8 -0
  124. package/src/lightning/iconSvgTemplates/buildTemplates/standard/path_experiment.html +7 -0
  125. package/src/lightning/iconSvgTemplates/buildTemplates/standard/people_score.html +8 -0
  126. package/src/lightning/iconSvgTemplates/buildTemplates/standard/price_adjustment_schedule.html +8 -0
  127. package/src/lightning/iconSvgTemplates/buildTemplates/standard/price_adjustment_tier.html +7 -0
  128. package/src/lightning/iconSvgTemplates/buildTemplates/standard/program_cohort.html +7 -0
  129. package/src/lightning/iconSvgTemplates/buildTemplates/standard/program_cohort_member.html +7 -0
  130. package/src/lightning/iconSvgTemplates/buildTemplates/standard/rate_adjustment.html +7 -0
  131. package/src/lightning/iconSvgTemplates/buildTemplates/standard/record_consent.html +7 -0
  132. package/src/lightning/iconSvgTemplates/buildTemplates/standard/whatsapp.html +7 -0
  133. package/src/lightning/iconSvgTemplates/buildTemplates/templates.js +40 -1
  134. package/src/lightning/iconSvgTemplates/buildTemplates/utility/aggregate.html +8 -0
  135. package/src/lightning/iconSvgTemplates/buildTemplates/utility/array.html +7 -0
  136. package/src/lightning/iconSvgTemplates/buildTemplates/utility/bottom_group_alignment.html +7 -0
  137. package/src/lightning/iconSvgTemplates/buildTemplates/utility/cant_sync.html +7 -0
  138. package/src/lightning/iconSvgTemplates/buildTemplates/utility/center_group_alignment.html +8 -0
  139. package/src/lightning/iconSvgTemplates/buildTemplates/utility/columns.html +7 -0
  140. package/src/lightning/iconSvgTemplates/buildTemplates/utility/fully_synced.html +8 -0
  141. package/src/lightning/iconSvgTemplates/buildTemplates/utility/inner_join.html +7 -0
  142. package/src/lightning/iconSvgTemplates/buildTemplates/utility/join.html +8 -0
  143. package/src/lightning/iconSvgTemplates/buildTemplates/utility/left_join.html +14 -0
  144. package/src/lightning/iconSvgTemplates/buildTemplates/utility/macros.html +2 -2
  145. package/src/lightning/iconSvgTemplates/buildTemplates/utility/not_in_sync.html +7 -0
  146. package/src/lightning/iconSvgTemplates/buildTemplates/utility/not_saved.html +9 -0
  147. package/src/lightning/iconSvgTemplates/buildTemplates/utility/outer_join.html +7 -0
  148. package/src/lightning/iconSvgTemplates/buildTemplates/utility/path_experiment.html +7 -0
  149. package/src/lightning/iconSvgTemplates/buildTemplates/utility/program_cohort.html +7 -0
  150. package/src/lightning/iconSvgTemplates/buildTemplates/utility/program_cohort_member.html +7 -0
  151. package/src/lightning/iconSvgTemplates/buildTemplates/utility/record_consent.html +7 -0
  152. package/src/lightning/iconSvgTemplates/buildTemplates/utility/right_join.html +7 -0
  153. package/src/lightning/iconSvgTemplates/buildTemplates/utility/skill.html +8 -0
  154. package/src/lightning/iconSvgTemplates/buildTemplates/utility/sync_in_progress.html +7 -0
  155. package/src/lightning/iconSvgTemplates/buildTemplates/utility/top_group_alignment.html +7 -0
  156. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/account_score.html +8 -0
  157. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/aggregate.html +8 -0
  158. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/app_form_participant.html +11 -0
  159. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/app_form_product_participant.html +12 -0
  160. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/cost_model.html +7 -0
  161. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/labels.html +8 -0
  162. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/list_fee.html +7 -0
  163. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/list_rate.html +7 -0
  164. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/party_profile.html +8 -0
  165. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/path_experiment.html +7 -0
  166. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/people_score.html +8 -0
  167. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/price_adjustment_schedule.html +8 -0
  168. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/price_adjustment_tier.html +7 -0
  169. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/program_cohort.html +7 -0
  170. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/program_cohort_member.html +7 -0
  171. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/rate_adjustment.html +7 -0
  172. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/record_consent.html +7 -0
  173. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/whatsapp.html +7 -0
  174. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.js +40 -1
  175. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/aggregate.html +8 -0
  176. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/array.html +7 -0
  177. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/bottom_group_alignment.html +7 -0
  178. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/cant_sync.html +7 -0
  179. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/center_group_alignment.html +8 -0
  180. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/columns.html +7 -0
  181. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/fully_synced.html +8 -0
  182. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/inner_join.html +7 -0
  183. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/join.html +8 -0
  184. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/left_join.html +14 -0
  185. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/macros.html +2 -2
  186. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/not_in_sync.html +7 -0
  187. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/not_saved.html +9 -0
  188. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/outer_join.html +7 -0
  189. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/path_experiment.html +7 -0
  190. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/program_cohort.html +7 -0
  191. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/program_cohort_member.html +7 -0
  192. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/record_consent.html +7 -0
  193. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/right_join.html +7 -0
  194. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/skill.html +8 -0
  195. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/sync_in_progress.html +7 -0
  196. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/top_group_alignment.html +7 -0
  197. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/account_score.html +8 -0
  198. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/aggregate.html +8 -0
  199. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/app_form_participant.html +11 -0
  200. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/app_form_product_participant.html +12 -0
  201. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/cost_model.html +7 -0
  202. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/labels.html +8 -0
  203. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/list_fee.html +7 -0
  204. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/list_rate.html +7 -0
  205. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/party_profile.html +8 -0
  206. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/path_experiment.html +7 -0
  207. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/people_score.html +8 -0
  208. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/price_adjustment_schedule.html +8 -0
  209. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/price_adjustment_tier.html +7 -0
  210. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/program_cohort.html +7 -0
  211. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/program_cohort_member.html +7 -0
  212. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/rate_adjustment.html +7 -0
  213. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/record_consent.html +7 -0
  214. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/whatsapp.html +7 -0
  215. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.js +19 -1
  216. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/account_score.html +8 -0
  217. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/aggregate.html +8 -0
  218. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/app_form_participant.html +11 -0
  219. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/app_form_product_participant.html +12 -0
  220. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/cost_model.html +7 -0
  221. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/labels.html +8 -0
  222. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/list_fee.html +7 -0
  223. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/list_rate.html +7 -0
  224. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/party_profile.html +8 -0
  225. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/path_experiment.html +7 -0
  226. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/people_score.html +8 -0
  227. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/price_adjustment_schedule.html +8 -0
  228. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/price_adjustment_tier.html +7 -0
  229. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/program_cohort.html +7 -0
  230. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/program_cohort_member.html +7 -0
  231. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/rate_adjustment.html +7 -0
  232. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/record_consent.html +7 -0
  233. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/whatsapp.html +7 -0
  234. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.js +19 -1
  235. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.js +22 -1
  236. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/aggregate.html +8 -0
  237. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/array.html +7 -0
  238. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/bottom_group_alignment.html +7 -0
  239. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/cant_sync.html +7 -0
  240. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/center_group_alignment.html +8 -0
  241. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/columns.html +7 -0
  242. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/fully_synced.html +8 -0
  243. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/inner_join.html +7 -0
  244. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/join.html +8 -0
  245. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/left_join.html +14 -0
  246. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/macros.html +2 -2
  247. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/not_in_sync.html +7 -0
  248. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/not_saved.html +9 -0
  249. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/outer_join.html +7 -0
  250. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/path_experiment.html +7 -0
  251. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/program_cohort.html +7 -0
  252. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/program_cohort_member.html +7 -0
  253. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/record_consent.html +7 -0
  254. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/right_join.html +7 -0
  255. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/skill.html +8 -0
  256. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/sync_in_progress.html +7 -0
  257. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/top_group_alignment.html +7 -0
  258. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.js +22 -1
  259. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/aggregate.html +8 -0
  260. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/array.html +7 -0
  261. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/bottom_group_alignment.html +7 -0
  262. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/cant_sync.html +7 -0
  263. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/center_group_alignment.html +8 -0
  264. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/columns.html +7 -0
  265. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/fully_synced.html +8 -0
  266. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/inner_join.html +7 -0
  267. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/join.html +8 -0
  268. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/left_join.html +14 -0
  269. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/macros.html +2 -2
  270. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/not_in_sync.html +7 -0
  271. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/not_saved.html +9 -0
  272. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/outer_join.html +7 -0
  273. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/path_experiment.html +7 -0
  274. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/program_cohort.html +7 -0
  275. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/program_cohort_member.html +7 -0
  276. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/record_consent.html +7 -0
  277. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/right_join.html +7 -0
  278. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/skill.html +8 -0
  279. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/sync_in_progress.html +7 -0
  280. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/top_group_alignment.html +7 -0
  281. package/src/lightning/iconUtils/iconColors.js +1 -1
  282. package/src/lightning/input/form-element.slds.css +1 -0
  283. package/src/lightning/input/input.html +16 -2
  284. package/src/lightning/input/input.js +91 -3
  285. package/src/lightning/input/input.js-meta.xml +3 -0
  286. package/src/lightning/inputAddress/addressFormat.js +25 -11
  287. package/src/lightning/inputAddress/fieldsLayout.js +3 -0
  288. package/src/lightning/inputAddress/form-element.slds.css +1 -0
  289. package/src/lightning/inputAddress/input-text.slds.css +5 -5
  290. package/src/lightning/inputAddress/inputAddress.html +1 -1
  291. package/src/lightning/inputAddress/inputAddress.js +27 -11
  292. package/src/lightning/inputLocation/form-element.slds.css +1 -0
  293. package/src/lightning/inputLocation/input-text.slds.css +5 -5
  294. package/src/lightning/inputName/form-element.slds.css +1 -0
  295. package/src/lightning/inputName/input-text.slds.css +5 -5
  296. package/src/lightning/internationalizationLibrary/address/AddressFormat.js +2 -0
  297. package/src/lightning/layout/__docs__/layout.md +0 -2
  298. package/src/lightning/lookupAddress/form-element.slds.css +1 -0
  299. package/src/lightning/menuItem/menu-item.slds.css +3 -1
  300. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +7 -3
  301. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +18 -11
  302. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +1 -1
  303. package/src/lightning/modalBase/modalBase.css +4 -0
  304. package/src/lightning/modalBase/modalBase.html +16 -21
  305. package/src/lightning/modalBase/modalBase.js +46 -65
  306. package/src/lightning/modalHeader/modalHeader.html +3 -15
  307. package/src/lightning/modalHeader/modalHeader.js +14 -61
  308. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.css +14 -0
  309. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.html +55 -0
  310. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.js +430 -0
  311. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.js-meta.xml +4 -0
  312. package/src/lightning/overlayManager/overlayManager.js +16 -0
  313. package/src/lightning/pill/pill.js +19 -13
  314. package/src/lightning/pillContainer/button.slds.css +16 -15
  315. package/src/lightning/pillContainer/pillContainer.js +2 -1
  316. package/src/lightning/pillContainer/standardPillContainer.html +6 -2
  317. package/src/lightning/positionLibrary/direction.js +19 -0
  318. package/src/lightning/primitiveBubble/primitiveBubble.js +7 -0
  319. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.html +2 -2
  320. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.js +8 -0
  321. package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.css +34 -0
  322. package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.html +60 -0
  323. package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.js +107 -0
  324. package/src/lightning/primitiveHeaderFactory/primitiveHeaderFactory.js +36 -3
  325. package/src/lightning/primitiveHeaderFactory/sortingMenuHeader.css +5 -0
  326. package/src/lightning/primitiveHeaderFactory/sortingMenuHeader.html +9 -0
  327. package/src/lightning/primitiveInputCheckbox/form-element.slds.css +1 -0
  328. package/src/lightning/primitiveInputCheckbox/input-checkbox.slds.css +3 -3
  329. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.html +1 -1
  330. package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +1 -0
  331. package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +6 -5
  332. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.html +1 -1
  333. package/src/lightning/primitiveInputColor/form-element.slds.css +1 -0
  334. package/src/lightning/primitiveInputColor/input-text.slds.css +5 -5
  335. package/src/lightning/primitiveInputColor/primitiveInputColor.html +5 -2
  336. package/src/lightning/primitiveInputColor/primitiveInputColor.js +2 -0
  337. package/src/lightning/primitiveInputFile/button.slds.css +16 -15
  338. package/src/lightning/primitiveInputFile/form-element.slds.css +1 -0
  339. package/src/lightning/primitiveInputFile/primitiveInputFile.html +1 -1
  340. package/src/lightning/primitiveInputRadio/primitiveInputRadio.html +1 -1
  341. package/src/lightning/primitiveInputSimple/form-element.slds.css +1 -0
  342. package/src/lightning/primitiveInputSimple/input-text.slds.css +5 -5
  343. package/src/lightning/primitiveInputSimple/primitiveInputSimple.html +3 -2
  344. package/src/lightning/primitiveInputSimple/primitiveInputSimple.js +15 -0
  345. package/src/lightning/primitiveInputToggle/form-element.slds.css +1 -0
  346. package/src/lightning/primitiveInputToggle/input-toggle.slds.css +16 -14
  347. package/src/lightning/primitiveInputToggle/primitiveInputToggle.html +1 -1
  348. package/src/lightning/progressIndicator/path.html +8 -2
  349. package/src/lightning/progressIndicator/progressIndicator.js +26 -2
  350. package/src/lightning/progressRing/progress-ring.slds.css +1 -1
  351. package/src/lightning/progressStep/progressStep.js +2 -1
  352. package/src/lightning/prompt/prompt.js +11 -9
  353. package/src/lightning/radioGroup/form-element.slds.css +1 -0
  354. package/src/lightning/radioGroup/input-radio-group.slds.css +4 -10
  355. package/src/lightning/select/form-element.slds.css +1 -0
  356. package/src/lightning/select/select.js +89 -7
  357. package/src/lightning/tabBar/tab-bar.slds.css +11 -0
  358. package/src/lightning/tabset/tabset.slds.css +1 -1
  359. package/src/lightning/textarea/form-element.slds.css +1 -0
  360. package/src/lightning/textarea/textarea.html +1 -0
  361. package/src/lightning/textarea/textarea.slds.css +2 -2
  362. package/src/lightning/timepicker/form-element.slds.css +1 -0
  363. package/src/lightning/timepicker/timepicker.html +4 -1
  364. package/src/lightning/timepicker/timepicker.js +3 -0
  365. package/src/lightning/toast/button-icon.slds.css +41 -25
  366. package/src/lightning/tooltipLibrary/tooltipLibrary.js +4 -15
  367. package/src/lightning/verticalNavigationOverflow/button.slds.css +16 -15
  368. package/scopedImports/@salesforce-label-LightningLookup.messageWhenSearchTermTooShort.js +0 -1
@@ -196,6 +196,14 @@ export default class LightningInputAddress extends LightningShadowBaseClass {
196
196
  });
197
197
  }
198
198
 
199
+ renderedCallback() {
200
+ if (!this.template.synthetic) {
201
+ // Fieldset receives focus events in native shadow, which impacts tooltip behavior (See: W-14889039)
202
+ const fieldset = this.template.querySelector('fieldset');
203
+ fieldset.setAttribute('tabindex', '-1');
204
+ }
205
+ }
206
+
199
207
  disconnectedCallback() {
200
208
  this._connected = false;
201
209
  }
@@ -493,8 +501,8 @@ export default class LightningInputAddress extends LightningShadowBaseClass {
493
501
  reflectAttribute(this, 'variant', this.variant);
494
502
  }
495
503
 
496
- get showCompactAddressLookup() {
497
- return this._showAddressLookup && this._showCompactAddress;
504
+ get showDedicatedLookupAddressField() {
505
+ return this._showAddressLookup && !this._showCompactAddress;
498
506
  }
499
507
 
500
508
  get computedFieldsetClass() {
@@ -526,12 +534,18 @@ export default class LightningInputAddress extends LightningShadowBaseClass {
526
534
  maxlength: 255,
527
535
  type: FIELD_TYPE.TEXTAREA,
528
536
  },
529
- addressLine1: {
537
+ addressLine1Lookup: {
530
538
  autocomplete: 'address-line1',
531
539
  name: 'street',
532
540
  maxlength: 80,
533
541
  type: FIELD_TYPE.LOOKUP_ADDRESS,
534
542
  },
543
+ addressLine1: {
544
+ autocomplete: 'address-line1',
545
+ name: 'street',
546
+ maxlength: 80,
547
+ type: FIELD_TYPE.INPUT,
548
+ },
535
549
  addressLine2: {
536
550
  autocomplete: 'address-line2',
537
551
  name: 'subpremise',
@@ -573,21 +587,23 @@ export default class LightningInputAddress extends LightningShadowBaseClass {
573
587
  const hasCountryPicklist =
574
588
  this.fieldsTypeMeta.country.type === FIELD_TYPE.PICKLIST;
575
589
  const [langCode, countryCode] = this.locale.split('-');
576
- return getInputOrder(
577
- langCode,
590
+ return getInputOrder({
578
591
  countryCode,
579
592
  hasCountryPicklist,
580
- this._showCompactAddress
581
- );
593
+ langCode,
594
+ showAddressLookup: this._showAddressLookup,
595
+ showCompactAddress: this._showCompactAddress,
596
+ });
582
597
  }
583
598
 
584
599
  get requiredFields() {
585
600
  const [langCode, countryCode] = this.locale.split('-');
586
- return getRequiredFields(
587
- langCode,
601
+ return getRequiredFields({
588
602
  countryCode,
589
- this._showCompactAddress
590
- );
603
+ langCode,
604
+ showAddressLookup: this._showAddressLookup,
605
+ showCompactAddress: this._showCompactAddress,
606
+ });
591
607
  }
592
608
 
593
609
  get fieldsMeta() {
@@ -245,6 +245,7 @@
245
245
 
246
246
  @media (width >= 48em) {
247
247
  :host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
248
+ float: left;
248
249
  max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
249
250
  flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
250
251
  flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
@@ -254,7 +254,7 @@
254
254
  );
255
255
  --sds-c-inputtext-color-border: var(
256
256
  --slds-c-inputtext-color-border,
257
- var(--slds-g-color-border-1)
257
+ var(--slds-g-color-border-2)
258
258
  );
259
259
  --sds-c-inputtext-sizing-border: var(--slds-c-inputtext-sizing-border);
260
260
  --sds-c-inputtext-radius-border: var(
@@ -330,7 +330,7 @@
330
330
  }
331
331
  :host([data-render-mode="shadow"][readonly]) [part="input-container"]:focus-within,:host([data-render-mode="shadow"][readonly]) [part="input-container"]:active {
332
332
  --sds-c-inputtext-color-border: var(--slds-g-color-disabled-container-2);
333
- --sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-1);
333
+ --sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-2);
334
334
  --sds-c-inputtext-color-background: transparent;
335
335
 
336
336
  outline: 0;
@@ -367,9 +367,9 @@
367
367
  */
368
368
  :host([data-render-mode="shadow"][disabled]) [part='input-container'],:host([data-render-mode="shadow"][disabled]) [part='input'] {
369
369
  cursor: not-allowed;
370
- --sds-c-inputtext-color-background: var(--slds-g-color-disabled-container-1);
371
- --sds-c-inputtext-color-border: var(--slds-g-color-border-1);
372
- --sds-c-inputtext-text-color: var(--slds-g-color-on-surface-1);
370
+ --sds-c-inputtext-color-background: var(--slds-s-input-color-background-disabled, var(--slds-g-color-disabled-container-1));
371
+ --sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
372
+ --sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
373
373
  }
374
374
  /**
375
375
  * Label
@@ -245,6 +245,7 @@
245
245
 
246
246
  @media (width >= 48em) {
247
247
  :host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
248
+ float: left;
248
249
  max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
249
250
  flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
250
251
  flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
@@ -254,7 +254,7 @@
254
254
  );
255
255
  --sds-c-inputtext-color-border: var(
256
256
  --slds-c-inputtext-color-border,
257
- var(--slds-g-color-border-1)
257
+ var(--slds-g-color-border-2)
258
258
  );
259
259
  --sds-c-inputtext-sizing-border: var(--slds-c-inputtext-sizing-border);
260
260
  --sds-c-inputtext-radius-border: var(
@@ -330,7 +330,7 @@
330
330
  }
331
331
  :host([data-render-mode="shadow"][readonly]) [part="input-container"]:focus-within,:host([data-render-mode="shadow"][readonly]) [part="input-container"]:active {
332
332
  --sds-c-inputtext-color-border: var(--slds-g-color-disabled-container-2);
333
- --sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-1);
333
+ --sds-c-inputtext-shadow: 0 0 var(--slds-g-sizing-border-3) var(--slds-g-color-accent-2);
334
334
  --sds-c-inputtext-color-background: transparent;
335
335
 
336
336
  outline: 0;
@@ -367,9 +367,9 @@
367
367
  */
368
368
  :host([data-render-mode="shadow"][disabled]) [part='input-container'],:host([data-render-mode="shadow"][disabled]) [part='input'] {
369
369
  cursor: not-allowed;
370
- --sds-c-inputtext-color-background: var(--slds-g-color-disabled-container-1);
371
- --sds-c-inputtext-color-border: var(--slds-g-color-border-1);
372
- --sds-c-inputtext-text-color: var(--slds-g-color-on-surface-1);
370
+ --sds-c-inputtext-color-background: var(--slds-s-input-color-background-disabled, var(--slds-g-color-disabled-container-1));
371
+ --sds-c-inputtext-color-border: var(--slds-g-color-border-disabled-1);
372
+ --sds-c-inputtext-text-color: var(--slds-g-color-on-disabled-2);
373
373
  }
374
374
  /**
375
375
  * Label
@@ -2,6 +2,8 @@
2
2
  // https://git.soma.salesforce.com/Globalization/address.js
3
3
  // For new versions, copy AddressFormat.js from node_modules/address.js/dist/AddressFormat.js
4
4
  // And add "export { address };" at the end.
5
+ // If the node modules file doesn't reflect the current code in the address.js github repo linked above,
6
+ // then manually generate the AddressFormat.js file from the above globalization repo following the steps in its readMe
5
7
 
6
8
  /* eslint-disable */
7
9
  function _toPrimitive(t, r) {
@@ -125,8 +125,6 @@ For more information, see the [SLDS grid utility classes](https://lightningdesig
125
125
 
126
126
  #### Usage Considerations
127
127
 
128
- `lightning-layout` is not supported in IE11. To create a flexible grid system for IE11, use `<div>` containers with SLDS grid classes.
129
-
130
128
  This example creates the same layout shown in **Creating Columns**,
131
129
  which creates two columns with fixed widths.
132
130
 
@@ -245,6 +245,7 @@
245
245
 
246
246
  @media (width >= 48em) {
247
247
  :host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
248
+ float: left;
248
249
  max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
249
250
  flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
250
251
  flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
@@ -18,7 +18,7 @@
18
18
  gap: var(--slds-g-spacing-2);
19
19
  position: relative;
20
20
  padding: var(--slds-g-spacing-2) var(--slds-g-spacing-3);
21
- color: var(--slds-g-color-neutral-base-10);
21
+ color: var(--slds-g-color-on-surface-3);
22
22
  line-height: var(--slds-g-font-lineheight-4);
23
23
  font-weight: var(--slds-g-font-weight-4);
24
24
  white-space: nowrap;
@@ -30,11 +30,13 @@
30
30
  outline: 0;
31
31
  text-decoration: none;
32
32
  background-color: var(--slds-g-color-surface-container-2);
33
+ color: var(--slds-g-color-on-surface-3);
33
34
  }
34
35
 
35
36
  :host([data-render-mode="shadow"]) a:active {
36
37
  text-decoration: none;
37
38
  background-color: var(--slds-g-color-surface-container-2);
39
+ color: var(--slds-g-color-on-surface-3);
38
40
  }
39
41
 
40
42
  :host([data-render-mode="shadow"]) a[aria-disabled='true'] {
@@ -54,8 +54,10 @@ const MODAL_FOOTER = 'lightning-modal-footer';
54
54
  // inner modal specific details ===========================
55
55
 
56
56
  // close button variants
57
- const MODAL_CLOSE_BUTTON_VARIANT = 'bare';
57
+ const MODAL_CLOSE_BUTTON_FULL_VARIANT = 'bare';
58
+ const MODAL_CLOSE_BUTTON_NORMAL_VARIANT = 'bare-inverse';
58
59
  const MODAL_CLOSE_BTN_CLASS = 'slds-modal__close';
60
+ const MODAL_CLOSE_BTN_SELECTOR = `.${MODAL_CLOSE_BTN_CLASS}`;
59
61
  const MODAL_CLOSE_BTN_FULL_CLASS = 'slds-modal_full-close-button';
60
62
  // modal screen size testing
61
63
  // utilized by full screen modal tests
@@ -158,7 +160,7 @@ const NAME_TO_SIZE = {
158
160
  // suites for modal utilize this map
159
161
  const SPEC_TO_TABS_TO_CLOSE_BTN = {
160
162
  accessibility: {
161
- footless: 1,
163
+ footless: -1,
162
164
  headless: -3,
163
165
  },
164
166
  };
@@ -247,9 +249,11 @@ module.exports = {
247
249
  FOCUS_TRAP,
248
250
  MODAL_CLOSE_BTN,
249
251
  MODAL_CLOSE_BTN_CLASS,
252
+ MODAL_CLOSE_BTN_SELECTOR,
250
253
  MODAL_CLOSE_BTN_FULL_CLASS,
251
254
  MODAL_DATA_SELECTOR,
252
- MODAL_CLOSE_BUTTON_VARIANT,
255
+ MODAL_CLOSE_BUTTON_FULL_VARIANT,
256
+ MODAL_CLOSE_BUTTON_NORMAL_VARIANT,
253
257
  SCREEN_SIZE_SMALL,
254
258
  SCREEN_SIZE_SMALL_MID,
255
259
  SCREEN_SIZE_MEDIUM,
@@ -19,7 +19,8 @@ const {
19
19
  MODAL_CLOSE_BTN,
20
20
  MODAL_CLOSE_BTN_CLASS,
21
21
  MODAL_CLOSE_BTN_FULL_CLASS,
22
- MODAL_CLOSE_BUTTON_VARIANT,
22
+ MODAL_CLOSE_BUTTON_FULL_VARIANT,
23
+ MODAL_CLOSE_BUTTON_NORMAL_VARIANT,
23
24
  SCREEN_SIZE_LARGE,
24
25
  MODAL_SIZE_FULL,
25
26
  MODAL_FULL_SCREEN_SMALL_BREAKPOINT,
@@ -158,6 +159,9 @@ async function getModalInternals(config, modalIndex = 0) {
158
159
  MODAL_ARIALIVE_SELECTOR
159
160
  );
160
161
 
162
+ // get modal close button
163
+ modalCloseButton = await modalSectionElem.$(MODAL_CLOSE_BTN);
164
+
161
165
  // get modal div slot (not an actual slot)
162
166
  modalDataSlot = await modalSectionElem.$(MODAL_DIV_SLOT);
163
167
  // get div[data-container].slds-modal__container
@@ -169,14 +173,10 @@ async function getModalInternals(config, modalIndex = 0) {
169
173
  // but in our examples it's always present
170
174
  modalBodyElem = await modalElem.shadow$(MODAL_BODY);
171
175
 
172
- // Headless modal variant has the close button inside modalBase
173
- if (isModalOfVariantType(modalVariantType, 'headless')) {
174
- // get modal close button
175
- modalCloseButton = await modalSectionElem.$(MODAL_CLOSE_BTN);
176
- } else {
177
- // get lightning-modal-header and modal close lightning-button
176
+ // skip looking for modalHeader when type of modal is 'headless'
177
+ if (!isModalOfVariantType(modalVariantType, 'headless')) {
178
+ // get lightning-modal-header, it doesn't always exist
178
179
  modalHeaderElem = await modalElem.shadow$(MODAL_HEADER);
179
- modalCloseButton = await modalHeaderElem.shadow$(MODAL_CLOSE_BTN);
180
180
  }
181
181
 
182
182
  // skip looking for modalHeader when type of modal is 'footless'
@@ -331,7 +331,6 @@ async function validateModalCloseButtonAttributes(config) {
331
331
  // screen behavior occur below
332
332
  expect(modalCloseButtonVariant).not.toBeNull();
333
333
  expect(modalCloseButtonCssClass).toContain(MODAL_CLOSE_BTN_CLASS);
334
- expect(modalCloseButtonVariant).toEqual(MODAL_CLOSE_BUTTON_VARIANT);
335
334
 
336
335
  // the only time size='full' actual renders full page width and height
337
336
  // is when windowWidth is set <= 480px (30em)
@@ -339,8 +338,16 @@ async function validateModalCloseButtonAttributes(config) {
339
338
  modalSize === MODAL_SIZE_FULL &&
340
339
  windowWidth <= MODAL_FULL_SCREEN_SMALL_BREAKPOINT
341
340
  ) {
341
+ expect(modalCloseButtonVariant).toEqual(
342
+ MODAL_CLOSE_BUTTON_FULL_VARIANT
343
+ );
344
+
342
345
  expect(modalCloseButtonCssClass).toContain(MODAL_CLOSE_BTN_FULL_CLASS);
343
346
  } else {
347
+ // 'small', 'medium', 'large', and ('full' when windowWidth is set > 480px (30em)) are normal modal behavior
348
+ expect(modalCloseButtonVariant).toEqual(
349
+ MODAL_CLOSE_BUTTON_NORMAL_VARIANT
350
+ );
344
351
  expect(modalCloseButtonCssClass).not.toContain(
345
352
  MODAL_CLOSE_BTN_FULL_CLASS
346
353
  );
@@ -490,7 +497,7 @@ async function validateModalHeightBehavior(config) {
490
497
  modalSize === MODAL_SIZE_FULL &&
491
498
  windowWidth <= MODAL_FULL_SCREEN_SMALL_BREAKPOINT
492
499
  ) {
493
- // in full screen mode, the modal utilzes more than 92%
500
+ // in full screen mode, the modal utilizes more than 92%
494
501
  // of the screen height
495
502
  expect(percentPageHeightUtilized).toBeGreaterThan(
496
503
  MODAL_FULL_SCREEN_USE_PERCENT
@@ -505,7 +512,7 @@ async function validateModalHeightBehavior(config) {
505
512
 
506
513
  // default modal behavior scenario
507
514
  } else {
508
- // in default modal behavior, the modal utilzes less than 88%
515
+ // in default modal behavior, the modal utilizes less than 88%
509
516
  // of the screen height
510
517
  expect(percentPageHeightUtilized).toBeLessThan(
511
518
  MODAL_DEFAULT_SCREEN_USE_PERCENT
@@ -5,7 +5,7 @@ const formData = [
5
5
  name: null,
6
6
  value: null,
7
7
  type: 'heading',
8
- numTabsToNext: 2,
8
+ numTabsToNext: 1,
9
9
  },
10
10
  {
11
11
  name: 'assignedTo',
@@ -1,2 +1,6 @@
1
1
  @import './modalBase.lbc.synthetic.css';
2
2
  @import './modalBase.lbc.native.css';
3
+
4
+ div[data-slot] {
5
+ display: contents;
6
+ }
@@ -18,7 +18,6 @@
18
18
  onprivatemodalfooterregister={handleFooterRegister}
19
19
  onprivateclose={handlePrivateClose}
20
20
  onprivatedisableclosebutton={handlePrivateDisableCloseButton}
21
- onprivatemodalheaderclose={handleModalHeaderCloseClick}
22
21
  data-modal
23
22
  >
24
23
  <template if:true={showAriaDescribedBy}>
@@ -36,26 +35,22 @@
36
35
  data-aria-live-message
37
36
  >{ariaLiveMessage}</span>
38
37
  </template>
39
- <div
40
- class="slds-modal__container"
41
- data-container
42
- >
43
- <template if:true={isHeadlessModalVariant}>
44
- <div class="slds-modal__header slds-text-align_left slds-modal__header_empty">
45
- <lightning-button-icon
46
- class="slds-modal__close"
47
- icon-name="utility:close"
48
- variant="bare"
49
- alternative-text={closeButtonAltText}
50
- onclick={handleCloseClick}
51
- size="large"
52
- disabled={disableCloseButton}
53
- data-close-button
54
- ></lightning-button-icon>
55
- </div>
56
- </template>
57
- <div data-slot lwc:dom="manual"></div>
58
- </div>
38
+ <div
39
+ class="slds-modal__container"
40
+ data-container
41
+ >
42
+ <lightning-button-icon
43
+ class={computedCloseButtonCssClass}
44
+ icon-name="utility:close"
45
+ variant={computedCloseButtonVariant}
46
+ alternative-text={closeButtonAltText}
47
+ onclick={handleCloseClick}
48
+ size="large"
49
+ disabled={disableCloseButton}
50
+ data-close-button
51
+ ></lightning-button-icon>
52
+ <div data-slot lwc:dom="manual"></div>
53
+ </div>
59
54
  </section>
60
55
  </lightning-focus-trap>
61
56
  </template>
@@ -19,6 +19,7 @@ import {
19
19
  import closeButtonAltText from '@salesforce/label/LightningModalBase.cancelandclose';
20
20
  import disableCloseBtnMessage from '@salesforce/label/LightningModalBase.waitstate';
21
21
  import AriaObserver from 'lightning/ariaObserver';
22
+ import { isLwcModalActive } from 'lightning/overlayManager';
22
23
 
23
24
  const DEBOUNCE_RESIZE = 300;
24
25
  const SMALL_SCREEN_SIZE = 480;
@@ -45,7 +46,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
45
46
  isSmallScreenSize = null;
46
47
 
47
48
  // modalHeader, child
48
- isHeadlessModalVariant = false;
49
49
  headerRegistered = false;
50
50
  headerHeight = 0;
51
51
  headerDefaultSlotIsPopulated = false;
@@ -317,6 +317,37 @@ export default class LightningModalBase extends LightningShadowBaseClass {
317
317
  return !!description?.trim().length;
318
318
  }
319
319
 
320
+ /**
321
+ * Compute the correct lightning-button-icon CSS class to use
322
+ * for the size="full" behaviors, based upon the screen size
323
+ * threshold. Two classes are added for full screen behavior
324
+ * to handle edge cases where customers change background of the
325
+ * modal header so the close button maintains visibility for a11y
326
+ * @private
327
+ */
328
+ // slds-button slds-button_icon slds-modal__close slds-button_icon-inverse
329
+ get computedCloseButtonCssClass() {
330
+ let classes = classSet('slds-modal__close');
331
+ const fullScreenActive =
332
+ this.isSmallScreenSize && this.size === SIZE_FULL;
333
+ classes.add({
334
+ 'slds-modal_full-close-button': fullScreenActive,
335
+ });
336
+ return classes.toString();
337
+ }
338
+
339
+ /**
340
+ * Compute the correct lightning-button-icon variant to use
341
+ * for the size="full" behaviors, based upon the screen size
342
+ * threshold. Important to maintain existing close button behavior
343
+ * when size 'small', 'medium' and 'large' close button variant
344
+ * when 'isSmallScreenSize = true' for a11y purposes
345
+ * @private
346
+ */
347
+ get computedCloseButtonVariant() {
348
+ return this.shouldModalBeFullScreen() ? 'bare' : 'bare-inverse';
349
+ }
350
+
320
351
  /**
321
352
  * Determines if aria-describedby should be set, and the span tag shown
322
353
  * occurs only when aria-description is not supported.
@@ -366,42 +397,21 @@ export default class LightningModalBase extends LightningShadowBaseClass {
366
397
  const disableCloseButtonMessage = isSwitchingToDisabled
367
398
  ? this.disableCloseBtnMessage
368
399
  : '';
369
-
370
- const closeButtonDisable = isSwitchingToDisabled ? 'disabled' : null;
371
-
372
- // Finally, set accessibility attributes for modal-base
373
400
  if (isSwitchingToDisabled) {
374
401
  // Should disable close button
375
402
  this.ariaLiveMessage = disableCloseButtonMessage;
376
403
  this.showAriaLiveMessage = true;
377
404
  synchronizeAttrs(this.modalWrapper, { [`${ARIA.BUSY}`]: true });
405
+ synchronizeAttrs(this.modalCloseButton, { disabled: 'disabled' });
378
406
  this.disableCloseButton = true;
379
407
  } else {
380
408
  // Should enable close button
381
- this.ariaLiveMessage = disableCloseButtonMessage;
409
+ this.ariaLiveMessage = disableCloseBtnMessage;
382
410
  this.showAriaLiveMessage = false;
383
411
  synchronizeAttrs(this.modalWrapper, { [`${ARIA.BUSY}`]: null });
412
+ synchronizeAttrs(this.modalCloseButton, { disabled: null });
384
413
  this.disableCloseButton = false;
385
414
  }
386
-
387
- // Modal with Header variant has close button icon on lightning-modal-header child component
388
- // where-as Headless Modal variant has close button icon on modal-base,
389
- if (!this.isHeadlessModalVariant && this.headerTitleRef) {
390
- // dispatch secondary event to disable close button icon present on lightning-modal-header
391
- this.headerTitleRef.dispatchEvent(
392
- new CustomEvent('privatemodalheaderdisableclose', {
393
- detail: {
394
- disableClose: isSwitchingToDisabled,
395
- [secure]: true,
396
- },
397
- bubbles: true,
398
- })
399
- );
400
- } else {
401
- synchronizeAttrs(this.modalCloseButton, {
402
- disabled: closeButtonDisable,
403
- });
404
- }
405
415
  }
406
416
 
407
417
  /**
@@ -465,13 +475,16 @@ export default class LightningModalBase extends LightningShadowBaseClass {
465
475
  handleFocusinEvents(e) {
466
476
  // eslint-disable-next-line @lwc/lwc/no-async-operation
467
477
  requestAnimationFrame(() => {
468
- const isTargetModal =
469
- e.target?.closest(MODAL_CONTAINER) ||
470
- e.relatedTarget?.closest(MODAL_CONTAINER);
471
- if (this.isModalOpen && isTargetModal) {
472
- this.lastFocussedElementOnModal = getElementWithFocus();
473
- } else {
474
- returnFocusToElement(this.lastFocussedElementOnModal);
478
+ // is current active (open) modal is lwc
479
+ if (isLwcModalActive() && this.isModalOpen) {
480
+ const isTargetRelatedToModal =
481
+ e.target?.closest(MODAL_CONTAINER) ||
482
+ e.relatedTarget?.closest(MODAL_CONTAINER);
483
+ if (isTargetRelatedToModal) {
484
+ this.lastFocussedElementOnModal = getElementWithFocus();
485
+ } else {
486
+ returnFocusToElement(this.lastFocussedElementOnModal);
487
+ }
475
488
  }
476
489
  });
477
490
  }
@@ -611,19 +624,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
611
624
  console.error(errorMsg);
612
625
  }
613
626
 
614
- /**
615
- * Handle close button click triggered from lightning-modal-header
616
- * @param e
617
- */
618
- handleModalHeaderCloseClick(e) {
619
- if (!e?.detail?.[secure]) {
620
- console.error('Invalid access to privatemodalheaderclose event');
621
- return;
622
- }
623
- e.stopPropagation();
624
- this.handleCloseClick();
625
- }
626
-
627
627
  /**
628
628
  * Handle the close button click, or via ESC key
629
629
  * @private
@@ -785,7 +785,7 @@ export default class LightningModalBase extends LightningShadowBaseClass {
785
785
 
786
786
  const fallbackFocusElem = this.disableCloseButton
787
787
  ? outerModalElem
788
- : closeButtonElem || outerModalElem;
788
+ : closeButtonElem;
789
789
 
790
790
  const focusElem = preferredFocusElem
791
791
  ? preferredFocusElem
@@ -851,20 +851,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
851
851
  if (!this.focusinEventBound) {
852
852
  this.addFocusinEventListener();
853
853
  }
854
-
855
- this.updateHeadlessModalVariantState();
856
- }
857
-
858
- /**
859
- * In case of a headless modal variant, the close button icon lives inside modalBase,
860
- * while in other variants, the close icon lives inside lightning-modal-header
861
- *
862
- * This helper method is to accurately update the state of 'isHeadlessModalVariant' flag
863
- * in order to selectively render the close <lightning-button-icon> in modalBase.html
864
- */
865
- updateHeadlessModalVariantState() {
866
- this.isHeadlessModalVariant =
867
- this.bodyRegistered && !this.headerRegistered;
868
854
  }
869
855
 
870
856
  /**
@@ -942,8 +928,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
942
928
  if (this.bodyRegistered) {
943
929
  this.updateModalBodyHeight();
944
930
  }
945
-
946
- this.updateHeadlessModalVariantState();
947
931
  }
948
932
 
949
933
  /**
@@ -973,7 +957,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
973
957
  this.headerLabelId = null;
974
958
  this.headerLabelIsPopulated = null;
975
959
  this.headerTitleRef = null;
976
- this.updateHeadlessModalVariantState();
977
960
  }
978
961
 
979
962
  /**
@@ -1016,8 +999,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
1016
999
  if (this.bodyRegistered) {
1017
1000
  this.updateModalBodyHeight();
1018
1001
  }
1019
-
1020
- this.updateHeadlessModalVariantState();
1021
1002
  }
1022
1003
 
1023
1004
  /**
@@ -1,25 +1,13 @@
1
1
  <template>
2
- <div class="slds-modal__header slds-text-align_left" part="modal-header"
3
- onprivatemodalheaderdisableclose={handlePrivateModalHeaderDisableClose}
4
- >
2
+ <div class="slds-modal__header" part="modal-header">
5
3
  <template if:true={label}>
6
4
  <h1
7
- class="slds-modal__title slds-hyphenate"
8
- data-label
9
5
  id="modal-label"
6
+ class="slds-modal__title slds-hyphenate"
10
7
  tabindex="-1"
8
+ data-label
11
9
  >{label}</h1>
12
10
  </template>
13
- <lightning-button-icon
14
- alternative-text={headerCloseButtonAltText}
15
- class="slds-modal__close"
16
- data-header-close-button
17
- disabled={disableCloseButton}
18
- icon-name="utility:close"
19
- onclick={handleModalHeaderClose}
20
- size="large"
21
- variant="bare"
22
- ></lightning-button-icon>
23
11
  <slot
24
12
  data-default-slot
25
13
  onslotchange={handleDefaultSlotChange}