lightning-base-components 1.21.5-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 (379) hide show
  1. package/metadata/raptor.json +46 -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/badge/badge.slds.css +1 -1
  41. package/src/lightning/baseCombobox/base-combobox.slds.css +1 -1
  42. package/src/lightning/baseCombobox/baseCombobox.html +2 -1
  43. package/src/lightning/baseCombobox/baseCombobox.js +21 -0
  44. package/src/lightning/baseCombobox/input-text.slds.css +5 -5
  45. package/src/lightning/button/button.js +5 -0
  46. package/src/lightning/button/button.slds.css +16 -15
  47. package/src/lightning/buttonIcon/__docs__/buttonIcon.md +4 -0
  48. package/src/lightning/buttonIcon/__examples__/basic/basic.html +17 -1
  49. package/src/lightning/buttonIcon/button-icon.slds.css +41 -25
  50. package/src/lightning/buttonIconStateful/button-icon-stateful.slds.css +33 -229
  51. package/src/lightning/buttonIconStateful/button-icon.slds.css +41 -25
  52. package/src/lightning/buttonIconStateful/button.slds.css +16 -15
  53. package/src/lightning/buttonMenu/button-icon.slds.css +41 -25
  54. package/src/lightning/buttonMenu/button-menu.slds.css +41 -15
  55. package/src/lightning/buttonMenu/button.slds.css +16 -15
  56. package/src/lightning/buttonMenu/buttonMenu.css +1 -1
  57. package/src/lightning/buttonMenu/buttonMenu.html +1 -1
  58. package/src/lightning/buttonMenu/buttonMenu.js +44 -4
  59. package/src/lightning/buttonStateful/button-stateful.slds.css +1 -4
  60. package/src/lightning/buttonStateful/button.slds.css +16 -15
  61. package/src/lightning/calendar/calendar.html +3 -4
  62. package/src/lightning/card/card.html +1 -1
  63. package/src/lightning/colorPickerCustom/colorPickerCustom.html +1 -1
  64. package/src/lightning/colorPickerCustom/colorPickerCustom.js +0 -9
  65. package/src/lightning/colorPickerCustom/input-text.slds.css +5 -5
  66. package/src/lightning/combobox/form-element.slds.css +5 -1
  67. package/src/lightning/confirm/confirm.js +10 -8
  68. package/src/lightning/datatable/__docs__/datatable.md +0 -3
  69. package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/README.md +17 -0
  70. package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/customComponentPopupTableWrapper.html +11 -0
  71. package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/customComponentPopupTableWrapper.js +25 -0
  72. package/src/lightning/datatable/__examples__disabled/customComponentPopupTableWrapper/generateData.js +15 -0
  73. package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/customInput.html +4 -0
  74. package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/myCustomTypePopupTable.js +17 -0
  75. package/src/lightning/datatable/__examples__disabled/myCustomTypePopupTable/nestedSimpleComponentParent.html +7 -0
  76. package/src/lightning/datatable/__examples__disabled/simpleComponentPopupNested/simpleComponentPopupNested.html +31 -0
  77. package/src/lightning/datatable/__examples__disabled/simpleComponentPopupNested/simpleComponentPopupNested.js +36 -0
  78. package/src/lightning/datatable/columnWidthManager.js +19 -16
  79. package/src/lightning/datatable/columns.js +90 -42
  80. package/src/lightning/datatable/datatable.js +571 -148
  81. package/src/lightning/datatable/errors.js +1 -1
  82. package/src/lightning/datatable/indexes.js +32 -21
  83. package/src/lightning/datatable/infiniteLoading.js +7 -6
  84. package/src/lightning/datatable/inlineEdit.js +52 -64
  85. package/src/lightning/datatable/keyboard.js +583 -195
  86. package/src/lightning/datatable/renderManager.js +21 -27
  87. package/src/lightning/datatable/rowLevelActions.js +5 -14
  88. package/src/lightning/datatable/rowSelection.js +36 -17
  89. package/src/lightning/datatable/rowSelectionShared.js +1 -0
  90. package/src/lightning/datatable/rows.js +224 -132
  91. package/src/lightning/datatable/rowsInlining.js +473 -0
  92. package/src/lightning/datatable/sort.js +40 -15
  93. package/src/lightning/datatable/state.js +17 -4
  94. package/src/lightning/datatable/templates/div/div.html +807 -91
  95. package/src/lightning/datatable/templates/div/div.lbc.synthetic.css +29 -3
  96. package/src/lightning/datatable/templates/table/table.css +29 -1
  97. package/src/lightning/datatable/templates/table/table.html +786 -87
  98. package/src/lightning/datatable/tree.js +0 -33
  99. package/src/lightning/datatable/utils.js +50 -0
  100. package/src/lightning/datatable/virtualization.js +44 -19
  101. package/src/lightning/datatable/wrapText.js +7 -10
  102. package/src/lightning/datepicker/datepicker.html +3 -1
  103. package/src/lightning/datepicker/datepicker.js +43 -4
  104. package/src/lightning/datepicker/form-element.slds.css +5 -1
  105. package/src/lightning/datepicker/input-text.slds.css +5 -5
  106. package/src/lightning/datetimepicker/datetimepicker.html +7 -1
  107. package/src/lightning/datetimepicker/datetimepicker.js +30 -2
  108. package/src/lightning/datetimepicker/form-element.slds.css +5 -1
  109. package/src/lightning/datetimepicker/input-text.slds.css +5 -5
  110. package/src/lightning/dualListbox/form-element.slds.css +5 -1
  111. package/src/lightning/focusTrap/focusTrap.css +7 -0
  112. package/src/lightning/groupedCombobox/form-element.slds.css +5 -1
  113. package/src/lightning/groupedCombobox/input-text.slds.css +5 -5
  114. package/src/lightning/helptext/button-icon.slds.css +41 -25
  115. package/src/lightning/helptext/form-element.slds.css +5 -1
  116. package/src/lightning/icon/__docs__/icon.md +0 -2
  117. package/src/lightning/iconSvgTemplates/buildTemplates/standard/account_score.html +8 -0
  118. package/src/lightning/iconSvgTemplates/buildTemplates/standard/aggregate.html +8 -0
  119. package/src/lightning/iconSvgTemplates/buildTemplates/standard/app_form_participant.html +11 -0
  120. package/src/lightning/iconSvgTemplates/buildTemplates/standard/app_form_product_participant.html +12 -0
  121. package/src/lightning/iconSvgTemplates/buildTemplates/standard/cost_model.html +7 -0
  122. package/src/lightning/iconSvgTemplates/buildTemplates/standard/labels.html +8 -0
  123. package/src/lightning/iconSvgTemplates/buildTemplates/standard/list_fee.html +7 -0
  124. package/src/lightning/iconSvgTemplates/buildTemplates/standard/list_rate.html +7 -0
  125. package/src/lightning/iconSvgTemplates/buildTemplates/standard/party_profile.html +8 -0
  126. package/src/lightning/iconSvgTemplates/buildTemplates/standard/path_experiment.html +7 -0
  127. package/src/lightning/iconSvgTemplates/buildTemplates/standard/people_score.html +8 -0
  128. package/src/lightning/iconSvgTemplates/buildTemplates/standard/price_adjustment_schedule.html +8 -0
  129. package/src/lightning/iconSvgTemplates/buildTemplates/standard/price_adjustment_tier.html +7 -0
  130. package/src/lightning/iconSvgTemplates/buildTemplates/standard/program_cohort.html +7 -0
  131. package/src/lightning/iconSvgTemplates/buildTemplates/standard/program_cohort_member.html +7 -0
  132. package/src/lightning/iconSvgTemplates/buildTemplates/standard/rate_adjustment.html +7 -0
  133. package/src/lightning/iconSvgTemplates/buildTemplates/standard/record_consent.html +7 -0
  134. package/src/lightning/iconSvgTemplates/buildTemplates/standard/whatsapp.html +7 -0
  135. package/src/lightning/iconSvgTemplates/buildTemplates/templates.js +40 -1
  136. package/src/lightning/iconSvgTemplates/buildTemplates/utility/aggregate.html +8 -0
  137. package/src/lightning/iconSvgTemplates/buildTemplates/utility/array.html +7 -0
  138. package/src/lightning/iconSvgTemplates/buildTemplates/utility/bottom_group_alignment.html +7 -0
  139. package/src/lightning/iconSvgTemplates/buildTemplates/utility/cant_sync.html +7 -0
  140. package/src/lightning/iconSvgTemplates/buildTemplates/utility/center_group_alignment.html +8 -0
  141. package/src/lightning/iconSvgTemplates/buildTemplates/utility/columns.html +7 -0
  142. package/src/lightning/iconSvgTemplates/buildTemplates/utility/fully_synced.html +8 -0
  143. package/src/lightning/iconSvgTemplates/buildTemplates/utility/inner_join.html +7 -0
  144. package/src/lightning/iconSvgTemplates/buildTemplates/utility/join.html +8 -0
  145. package/src/lightning/iconSvgTemplates/buildTemplates/utility/left_join.html +14 -0
  146. package/src/lightning/iconSvgTemplates/buildTemplates/utility/macros.html +2 -2
  147. package/src/lightning/iconSvgTemplates/buildTemplates/utility/not_in_sync.html +7 -0
  148. package/src/lightning/iconSvgTemplates/buildTemplates/utility/not_saved.html +9 -0
  149. package/src/lightning/iconSvgTemplates/buildTemplates/utility/outer_join.html +7 -0
  150. package/src/lightning/iconSvgTemplates/buildTemplates/utility/path_experiment.html +7 -0
  151. package/src/lightning/iconSvgTemplates/buildTemplates/utility/program_cohort.html +7 -0
  152. package/src/lightning/iconSvgTemplates/buildTemplates/utility/program_cohort_member.html +7 -0
  153. package/src/lightning/iconSvgTemplates/buildTemplates/utility/record_consent.html +7 -0
  154. package/src/lightning/iconSvgTemplates/buildTemplates/utility/right_join.html +7 -0
  155. package/src/lightning/iconSvgTemplates/buildTemplates/utility/skill.html +8 -0
  156. package/src/lightning/iconSvgTemplates/buildTemplates/utility/sync_in_progress.html +7 -0
  157. package/src/lightning/iconSvgTemplates/buildTemplates/utility/top_group_alignment.html +7 -0
  158. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/account_score.html +8 -0
  159. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/aggregate.html +8 -0
  160. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/app_form_participant.html +11 -0
  161. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/app_form_product_participant.html +12 -0
  162. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/cost_model.html +7 -0
  163. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/labels.html +8 -0
  164. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/list_fee.html +7 -0
  165. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/list_rate.html +7 -0
  166. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/party_profile.html +8 -0
  167. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/path_experiment.html +7 -0
  168. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/people_score.html +8 -0
  169. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/price_adjustment_schedule.html +8 -0
  170. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/price_adjustment_tier.html +7 -0
  171. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/program_cohort.html +7 -0
  172. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/program_cohort_member.html +7 -0
  173. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/rate_adjustment.html +7 -0
  174. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/record_consent.html +7 -0
  175. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/standard/whatsapp.html +7 -0
  176. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/templates.js +40 -1
  177. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/aggregate.html +8 -0
  178. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/array.html +7 -0
  179. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/bottom_group_alignment.html +7 -0
  180. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/cant_sync.html +7 -0
  181. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/center_group_alignment.html +8 -0
  182. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/columns.html +7 -0
  183. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/fully_synced.html +8 -0
  184. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/inner_join.html +7 -0
  185. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/join.html +8 -0
  186. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/left_join.html +14 -0
  187. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/macros.html +2 -2
  188. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/not_in_sync.html +7 -0
  189. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/not_saved.html +9 -0
  190. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/outer_join.html +7 -0
  191. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/path_experiment.html +7 -0
  192. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/program_cohort.html +7 -0
  193. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/program_cohort_member.html +7 -0
  194. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/record_consent.html +7 -0
  195. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/right_join.html +7 -0
  196. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/skill.html +8 -0
  197. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/sync_in_progress.html +7 -0
  198. package/src/lightning/iconSvgTemplatesRtl/buildTemplates/utility/top_group_alignment.html +7 -0
  199. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/account_score.html +8 -0
  200. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/aggregate.html +8 -0
  201. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/app_form_participant.html +11 -0
  202. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/app_form_product_participant.html +12 -0
  203. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/cost_model.html +7 -0
  204. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/labels.html +8 -0
  205. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/list_fee.html +7 -0
  206. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/list_rate.html +7 -0
  207. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/party_profile.html +8 -0
  208. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/path_experiment.html +7 -0
  209. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/people_score.html +8 -0
  210. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/price_adjustment_schedule.html +8 -0
  211. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/price_adjustment_tier.html +7 -0
  212. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/program_cohort.html +7 -0
  213. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/program_cohort_member.html +7 -0
  214. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/rate_adjustment.html +7 -0
  215. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/record_consent.html +7 -0
  216. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/standard/whatsapp.html +7 -0
  217. package/src/lightning/iconSvgTemplatesStandard/buildTemplates/templates.js +19 -1
  218. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/account_score.html +8 -0
  219. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/aggregate.html +8 -0
  220. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/app_form_participant.html +11 -0
  221. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/app_form_product_participant.html +12 -0
  222. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/cost_model.html +7 -0
  223. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/labels.html +8 -0
  224. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/list_fee.html +7 -0
  225. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/list_rate.html +7 -0
  226. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/party_profile.html +8 -0
  227. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/path_experiment.html +7 -0
  228. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/people_score.html +8 -0
  229. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/price_adjustment_schedule.html +8 -0
  230. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/price_adjustment_tier.html +7 -0
  231. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/program_cohort.html +7 -0
  232. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/program_cohort_member.html +7 -0
  233. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/rate_adjustment.html +7 -0
  234. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/record_consent.html +7 -0
  235. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/standard/whatsapp.html +7 -0
  236. package/src/lightning/iconSvgTemplatesStandardRtl/buildTemplates/templates.js +19 -1
  237. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/templates.js +22 -1
  238. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/aggregate.html +8 -0
  239. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/array.html +7 -0
  240. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/bottom_group_alignment.html +7 -0
  241. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/cant_sync.html +7 -0
  242. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/center_group_alignment.html +8 -0
  243. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/columns.html +7 -0
  244. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/fully_synced.html +8 -0
  245. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/inner_join.html +7 -0
  246. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/join.html +8 -0
  247. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/left_join.html +14 -0
  248. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/macros.html +2 -2
  249. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/not_in_sync.html +7 -0
  250. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/not_saved.html +9 -0
  251. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/outer_join.html +7 -0
  252. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/path_experiment.html +7 -0
  253. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/program_cohort.html +7 -0
  254. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/program_cohort_member.html +7 -0
  255. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/record_consent.html +7 -0
  256. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/right_join.html +7 -0
  257. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/skill.html +8 -0
  258. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/sync_in_progress.html +7 -0
  259. package/src/lightning/iconSvgTemplatesUtility/buildTemplates/utility/top_group_alignment.html +7 -0
  260. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/templates.js +22 -1
  261. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/aggregate.html +8 -0
  262. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/array.html +7 -0
  263. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/bottom_group_alignment.html +7 -0
  264. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/cant_sync.html +7 -0
  265. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/center_group_alignment.html +8 -0
  266. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/columns.html +7 -0
  267. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/fully_synced.html +8 -0
  268. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/inner_join.html +7 -0
  269. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/join.html +8 -0
  270. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/left_join.html +14 -0
  271. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/macros.html +2 -2
  272. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/not_in_sync.html +7 -0
  273. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/not_saved.html +9 -0
  274. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/outer_join.html +7 -0
  275. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/path_experiment.html +7 -0
  276. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/program_cohort.html +7 -0
  277. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/program_cohort_member.html +7 -0
  278. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/record_consent.html +7 -0
  279. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/right_join.html +7 -0
  280. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/skill.html +8 -0
  281. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/sync_in_progress.html +7 -0
  282. package/src/lightning/iconSvgTemplatesUtilityRtl/buildTemplates/utility/top_group_alignment.html +7 -0
  283. package/src/lightning/iconUtils/iconColors.js +1 -1
  284. package/src/lightning/input/form-element.slds.css +5 -1
  285. package/src/lightning/input/input.html +16 -2
  286. package/src/lightning/input/input.js +91 -3
  287. package/src/lightning/input/input.js-meta.xml +3 -0
  288. package/src/lightning/inputAddress/addressFormat.js +25 -11
  289. package/src/lightning/inputAddress/fieldsLayout.js +3 -0
  290. package/src/lightning/inputAddress/form-element.slds.css +5 -1
  291. package/src/lightning/inputAddress/input-text.slds.css +5 -5
  292. package/src/lightning/inputAddress/inputAddress.html +1 -1
  293. package/src/lightning/inputAddress/inputAddress.js +27 -11
  294. package/src/lightning/inputLocation/form-element.slds.css +5 -1
  295. package/src/lightning/inputLocation/input-text.slds.css +5 -5
  296. package/src/lightning/inputName/form-element.slds.css +5 -1
  297. package/src/lightning/inputName/input-text.slds.css +5 -5
  298. package/src/lightning/internationalizationLibrary/address/AddressFormat.js +2 -0
  299. package/src/lightning/layout/__docs__/layout.md +0 -2
  300. package/src/lightning/lookupAddress/form-element.slds.css +5 -1
  301. package/src/lightning/menuItem/menu-item.slds.css +3 -1
  302. package/src/lightning/modal/__modalUtils__/modalContainerTestConstants.js +7 -3
  303. package/src/lightning/modal/__modalUtils__/modalContainerTestMethods.js +18 -11
  304. package/src/lightning/modal/__modalUtils__/modalContainerTestMockData.js +1 -1
  305. package/src/lightning/modalBase/modalBase.css +4 -0
  306. package/src/lightning/modalBase/modalBase.html +16 -21
  307. package/src/lightning/modalBase/modalBase.js +51 -87
  308. package/src/lightning/modalHeader/modalHeader.html +3 -15
  309. package/src/lightning/modalHeader/modalHeader.js +14 -61
  310. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.css +14 -0
  311. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.html +55 -0
  312. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.js +430 -0
  313. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.js-meta.xml +4 -0
  314. package/src/lightning/overlayManager/overlayManager.js +16 -0
  315. package/src/lightning/pill/pill.js +19 -13
  316. package/src/lightning/pillContainer/button.slds.css +16 -15
  317. package/src/lightning/pillContainer/pillContainer.js +2 -1
  318. package/src/lightning/pillContainer/standardPillContainer.html +6 -2
  319. package/src/lightning/positionLibrary/direction.js +19 -0
  320. package/src/lightning/primitiveBubble/primitiveBubble.js +33 -11
  321. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.html +2 -2
  322. package/src/lightning/primitiveColorpickerButton/primitiveColorpickerButton.js +8 -0
  323. package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.css +34 -0
  324. package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.html +60 -0
  325. package/src/lightning/primitiveColumnSorter/primitiveColumnSorter.js +107 -0
  326. package/src/lightning/primitiveHeaderFactory/primitiveHeaderFactory.js +37 -4
  327. package/src/lightning/primitiveHeaderFactory/sortingMenuHeader.css +5 -0
  328. package/src/lightning/primitiveHeaderFactory/sortingMenuHeader.html +9 -0
  329. package/src/lightning/primitiveInputCheckbox/form-element.slds.css +5 -1
  330. package/src/lightning/primitiveInputCheckbox/input-checkbox.slds.css +3 -3
  331. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.html +1 -1
  332. package/src/lightning/primitiveInputCheckboxButton/form-element.slds.css +5 -1
  333. package/src/lightning/primitiveInputCheckboxButton/input-checkbox-button.slds.css +6 -5
  334. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.html +1 -1
  335. package/src/lightning/primitiveInputColor/form-element.slds.css +5 -1
  336. package/src/lightning/primitiveInputColor/input-text.slds.css +5 -5
  337. package/src/lightning/primitiveInputColor/primitiveInputColor.html +5 -2
  338. package/src/lightning/primitiveInputColor/primitiveInputColor.js +2 -0
  339. package/src/lightning/primitiveInputFile/button.slds.css +16 -15
  340. package/src/lightning/primitiveInputFile/form-element.slds.css +5 -1
  341. package/src/lightning/primitiveInputFile/primitiveInputFile.html +1 -1
  342. package/src/lightning/primitiveInputRadio/primitiveInputRadio.html +1 -1
  343. package/src/lightning/primitiveInputSimple/form-element.slds.css +5 -1
  344. package/src/lightning/primitiveInputSimple/input-text.slds.css +5 -5
  345. package/src/lightning/primitiveInputSimple/primitiveInputSimple.html +3 -2
  346. package/src/lightning/primitiveInputSimple/primitiveInputSimple.js +15 -0
  347. package/src/lightning/primitiveInputToggle/form-element.slds.css +5 -1
  348. package/src/lightning/primitiveInputToggle/input-toggle.slds.css +16 -14
  349. package/src/lightning/primitiveInputToggle/primitiveInputToggle.html +1 -1
  350. package/src/lightning/progressBar/progress-bar.slds.css +1 -1
  351. package/src/lightning/progressIndicator/path.html +8 -2
  352. package/src/lightning/progressIndicator/progressIndicator.js +26 -2
  353. package/src/lightning/progressRing/progress-ring.slds.css +1 -1
  354. package/src/lightning/progressStep/progressStep.js +2 -1
  355. package/src/lightning/prompt/prompt.js +11 -9
  356. package/src/lightning/radioGroup/form-element.slds.css +5 -1
  357. package/src/lightning/radioGroup/input-radio-group.slds.css +4 -10
  358. package/src/lightning/select/form-element.slds.css +5 -1
  359. package/src/lightning/select/select.js +89 -7
  360. package/src/lightning/tabBar/tab-bar.slds.css +11 -0
  361. package/src/lightning/tabset/tabset.slds.css +1 -1
  362. package/src/lightning/textarea/__examples__/various/various.html +18 -1
  363. package/src/lightning/textarea/form-element.slds.css +5 -1
  364. package/src/lightning/textarea/textarea.html +1 -0
  365. package/src/lightning/textarea/textarea.js +25 -0
  366. package/src/lightning/textarea/textarea.slds.css +2 -2
  367. package/src/lightning/timepicker/form-element.slds.css +5 -1
  368. package/src/lightning/timepicker/timepicker.html +4 -1
  369. package/src/lightning/timepicker/timepicker.js +3 -0
  370. package/src/lightning/toast/button-icon.slds.css +41 -25
  371. package/src/lightning/tooltipLibrary/tooltipLibrary.js +4 -15
  372. package/src/lightning/verticalNavigationItem/vertical-navigation-item.slds.css +1 -1
  373. package/src/lightning/verticalNavigationItemBadge/badge.slds.css +1 -1
  374. package/src/lightning/verticalNavigationItemBadge/vertical-navigation-item.slds.css +1 -1
  375. package/src/lightning/verticalNavigationItemIcon/vertical-navigation-item.slds.css +1 -1
  376. package/src/lightning/verticalNavigationOverflow/button.slds.css +16 -15
  377. package/src/lightning/verticalNavigationOverflow/vertical-navigation-item.slds.css +1 -1
  378. package/scopedImports/@salesforce-label-LightningLookup.messageWhenSearchTermTooShort.js +0 -1
  379. package/src/lightning/datatable/columns-shared.js +0 -12
@@ -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;
@@ -26,11 +27,11 @@ const SIZE_SMALL = 'small';
26
27
  const SIZE_MEDIUM = 'medium';
27
28
  const SIZE_LARGE = 'large';
28
29
  const SIZE_FULL = 'full';
29
- const MODAL_BASE = 'lightning-modal-base';
30
+ const MODAL_CONTAINER = 'lightning-overlay-container';
30
31
 
31
32
  export default class LightningModalBase extends LightningShadowBaseClass {
32
33
  // this is visible in DOM, changed from 'lightning-modal-base'
33
- static [instanceName] = MODAL_BASE;
34
+ static [instanceName] = 'lightning-modal-base';
34
35
 
35
36
  // private tracked state
36
37
  initialRender = true;
@@ -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;
@@ -73,8 +73,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
73
73
  focusinEventBound = false;
74
74
  focusinEventHandler = null;
75
75
  lastFocussedElementOnModal = null;
76
- previousSavedInertElementsSize = 0;
77
- allTabbableElements = null;
78
76
 
79
77
  // modalFooter, child
80
78
  footerRegistered = false;
@@ -319,6 +317,37 @@ export default class LightningModalBase extends LightningShadowBaseClass {
319
317
  return !!description?.trim().length;
320
318
  }
321
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
+
322
351
  /**
323
352
  * Determines if aria-describedby should be set, and the span tag shown
324
353
  * occurs only when aria-description is not supported.
@@ -368,42 +397,21 @@ export default class LightningModalBase extends LightningShadowBaseClass {
368
397
  const disableCloseButtonMessage = isSwitchingToDisabled
369
398
  ? this.disableCloseBtnMessage
370
399
  : '';
371
-
372
- const closeButtonDisable = isSwitchingToDisabled ? 'disabled' : null;
373
-
374
- // Finally, set accessibility attributes for modal-base
375
400
  if (isSwitchingToDisabled) {
376
401
  // Should disable close button
377
402
  this.ariaLiveMessage = disableCloseButtonMessage;
378
403
  this.showAriaLiveMessage = true;
379
404
  synchronizeAttrs(this.modalWrapper, { [`${ARIA.BUSY}`]: true });
405
+ synchronizeAttrs(this.modalCloseButton, { disabled: 'disabled' });
380
406
  this.disableCloseButton = true;
381
407
  } else {
382
408
  // Should enable close button
383
- this.ariaLiveMessage = disableCloseButtonMessage;
409
+ this.ariaLiveMessage = disableCloseBtnMessage;
384
410
  this.showAriaLiveMessage = false;
385
411
  synchronizeAttrs(this.modalWrapper, { [`${ARIA.BUSY}`]: null });
412
+ synchronizeAttrs(this.modalCloseButton, { disabled: null });
386
413
  this.disableCloseButton = false;
387
414
  }
388
-
389
- // Modal with Header variant has close button icon on lightning-modal-header child component
390
- // where-as Headless Modal variant has close button icon on modal-base,
391
- if (!this.isHeadlessModalVariant && this.headerTitleRef) {
392
- // dispatch secondary event to disable close button icon present on lightning-modal-header
393
- this.headerTitleRef.dispatchEvent(
394
- new CustomEvent('privatemodalheaderdisableclose', {
395
- detail: {
396
- disableClose: isSwitchingToDisabled,
397
- [secure]: true,
398
- },
399
- bubbles: true,
400
- })
401
- );
402
- } else {
403
- synchronizeAttrs(this.modalCloseButton, {
404
- disabled: closeButtonDisable,
405
- });
406
- }
407
415
  }
408
416
 
409
417
  /**
@@ -461,17 +469,23 @@ export default class LightningModalBase extends LightningShadowBaseClass {
461
469
  }
462
470
 
463
471
  /**
464
- * Handler for 'focusin' events responsible for following -
465
- * <ul>
466
- * <li>While the focus is on a Modal or stacked Modals, the handler tracks the last focussed element inside a Modal</li>
467
- * <li>If user's focus moves outside a Modal, the handler tries to bring user's focus back to last focussed element</li>
468
- * </ul>
472
+ * Handler for 'focusin' events, responsible for trapping user focus to open Modal
469
473
  * @param e - Event
470
474
  */
471
- handleFocusinEvents() {
475
+ handleFocusinEvents(e) {
472
476
  // eslint-disable-next-line @lwc/lwc/no-async-operation
473
477
  requestAnimationFrame(() => {
474
- // W-14998924 note: code revert to unblock 250R downstream
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
+ }
488
+ }
475
489
  });
476
490
  }
477
491
 
@@ -610,19 +624,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
610
624
  console.error(errorMsg);
611
625
  }
612
626
 
613
- /**
614
- * Handle close button click triggered from lightning-modal-header
615
- * @param e
616
- */
617
- handleModalHeaderCloseClick(e) {
618
- if (!e?.detail?.[secure]) {
619
- console.error('Invalid access to privatemodalheaderclose event');
620
- return;
621
- }
622
- e.stopPropagation();
623
- this.handleCloseClick();
624
- }
625
-
626
627
  /**
627
628
  * Handle the close button click, or via ESC key
628
629
  * @private
@@ -784,7 +785,7 @@ export default class LightningModalBase extends LightningShadowBaseClass {
784
785
 
785
786
  const fallbackFocusElem = this.disableCloseButton
786
787
  ? outerModalElem
787
- : closeButtonElem || outerModalElem;
788
+ : closeButtonElem;
788
789
 
789
790
  const focusElem = preferredFocusElem
790
791
  ? preferredFocusElem
@@ -850,20 +851,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
850
851
  if (!this.focusinEventBound) {
851
852
  this.addFocusinEventListener();
852
853
  }
853
-
854
- this.updateHeadlessModalVariantState();
855
- }
856
-
857
- /**
858
- * In case of a headless modal variant, the close button icon lives inside modalBase,
859
- * while in other variants, the close icon lives inside lightning-modal-header
860
- *
861
- * This helper method is to accurately update the state of 'isHeadlessModalVariant' flag
862
- * in order to selectively render the close <lightning-button-icon> in modalBase.html
863
- */
864
- updateHeadlessModalVariantState() {
865
- this.isHeadlessModalVariant =
866
- this.bodyRegistered && !this.headerRegistered;
867
854
  }
868
855
 
869
856
  /**
@@ -941,8 +928,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
941
928
  if (this.bodyRegistered) {
942
929
  this.updateModalBodyHeight();
943
930
  }
944
-
945
- this.updateHeadlessModalVariantState();
946
931
  }
947
932
 
948
933
  /**
@@ -972,7 +957,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
972
957
  this.headerLabelId = null;
973
958
  this.headerLabelIsPopulated = null;
974
959
  this.headerTitleRef = null;
975
- this.updateHeadlessModalVariantState();
976
960
  }
977
961
 
978
962
  /**
@@ -1015,8 +999,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
1015
999
  if (this.bodyRegistered) {
1016
1000
  this.updateModalBodyHeight();
1017
1001
  }
1018
-
1019
- this.updateHeadlessModalVariantState();
1020
1002
  }
1021
1003
 
1022
1004
  /**
@@ -1185,24 +1167,6 @@ export default class LightningModalBase extends LightningShadowBaseClass {
1185
1167
  }
1186
1168
  }
1187
1169
 
1188
- /**
1189
- * Helper method to determine when modals are being stacked.
1190
- *
1191
- * When stacked modals are present on the page,
1192
- * elements in savedInertElements will have 'ariaHidden' attribute with a boolean true
1193
- * @returns {boolean}
1194
- */
1195
- isStackedModal() {
1196
- const { savedInertElements } = this;
1197
- for (let i = 0; i < savedInertElements.length; i++) {
1198
- const isAriaHidden = savedInertElements[i].ariaHidden;
1199
- if (isAriaHidden) {
1200
- return true;
1201
- }
1202
- }
1203
- return false;
1204
- }
1205
-
1206
1170
  /**
1207
1171
  * == W-12654751 P1 a11y bug ==
1208
1172
  *
@@ -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}
@@ -1,15 +1,12 @@
1
1
  import { api } from 'lwc';
2
2
  import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
3
- import { getRealDOMId, synchronizeAttrs } from 'lightning/utilsPrivate';
4
- import { secure } from 'lightning/overlayUtils';
5
- import closeButtonAltText from '@salesforce/label/LightningModalBase.cancelandclose';
3
+ import { getRealDOMId } from 'lightning/utilsPrivate';
6
4
 
7
5
  // selectors
8
6
  const modalHeaderSelector = '.slds-modal__header';
9
7
  const labelSelector = '[data-label]';
10
8
  const slotWrapperSelector = '[data-slot-wrapper]';
11
9
  const defaultSlotSelector = '[data-default-slot]';
12
- const headerCloseButtonSelector = '[data-header-close-button]';
13
10
 
14
11
  /**
15
12
  * Creates a header to display the heading and tagline at the top of a modal.
@@ -19,13 +16,25 @@ export default class LightningModalHeader extends LightningShadowBaseClass {
19
16
  initialRender = true;
20
17
  initialSlotRender = true;
21
18
  unregisterCallback = null;
22
- headerCloseButtonAltText = closeButtonAltText;
23
19
 
24
20
  /**
25
21
  * Text to display as the heading at the top of the modal
26
22
  */
27
23
  @api label = '';
28
24
 
25
+ /**
26
+ * Handle the default slot change event
27
+ * Always register with parent every slot change
28
+ * @private
29
+ */
30
+ handleDefaultSlotChange() {
31
+ // Set this once so that parent can know slot has rendered
32
+ if (this.initialSlotRender) {
33
+ this.initialSlotRender = false;
34
+ }
35
+ this.registerWithParent();
36
+ }
37
+
29
38
  /**
30
39
  * Get the height of outer wrapper of modal header
31
40
  * @returns {number} represents a height value in pixels
@@ -116,62 +125,6 @@ export default class LightningModalHeader extends LightningShadowBaseClass {
116
125
  return (this.label && this.label.trim().length > 0) || false;
117
126
  }
118
127
 
119
- /**
120
- * Get the lightning-button-icon (close button element)
121
- * @returns {(HTMLElement|null)}
122
- * @private
123
- */
124
- get headerCloseButton() {
125
- return this.template.querySelector(headerCloseButtonSelector);
126
- }
127
-
128
- /**
129
- * Handle the default slot change event
130
- * Always register with parent every slot change
131
- * @private
132
- */
133
- handleDefaultSlotChange() {
134
- // Set this once so that parent can know slot has rendered
135
- if (this.initialSlotRender) {
136
- this.initialSlotRender = false;
137
- }
138
- this.registerWithParent();
139
- }
140
-
141
- /**
142
- * Toggle set disabled on the <lightning-button-icon> present inside lightning-modal-header
143
- * @param e
144
- */
145
- handlePrivateModalHeaderDisableClose(e) {
146
- if (!e?.detail?.[secure]) {
147
- console.error(
148
- 'Invalid access to privatemodalheaderdisableclose event'
149
- );
150
- return;
151
- }
152
- e.stopPropagation();
153
-
154
- const closeButtonDisable = e.detail?.disableClose ? 'disabled' : null;
155
-
156
- synchronizeAttrs(this.headerCloseButton, {
157
- disabled: closeButtonDisable,
158
- });
159
- }
160
-
161
- /**
162
- * Handle close click on close <lightning-button-icon>
163
- */
164
- handleModalHeaderClose() {
165
- const closeEvt = new CustomEvent('privatemodalheaderclose', {
166
- bubbles: true,
167
- composed: true,
168
- detail: {
169
- [secure]: true,
170
- },
171
- });
172
- this.dispatchEvent(closeEvt);
173
- }
174
-
175
128
  /**
176
129
  * Register modalHeader with modal parent, including callbacks to
177
130
  * unregister the modal header
@@ -0,0 +1,14 @@
1
+ @import 'lightning/sldsCommon';
2
+ @import 'lightning/sldsUtilsHyphenation';
3
+
4
+ [part="columnadder"] {
5
+ display: flex;
6
+ justify-content: space-between;
7
+ align-items: center;
8
+ padding: 0.5rem;
9
+ }
10
+
11
+
12
+ [part="modal-body"] {
13
+ height: 19rem;
14
+ }
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <lightning-modal-header label={i18n.modalTitle}>
3
+ </lightning-modal-header>
4
+ <lightning-modal-body class="modal_headerless">
5
+ <div part="modal-body">
6
+ <template iterator:it={rulesWithData}>
7
+ <lightning-primitive-column-sorter
8
+ key={it.value.key}
9
+ index={it.index}
10
+ rule={it.value}
11
+ columns={processedColumns}
12
+ first-rule={it.first}
13
+ last-rule={it.last}
14
+ ondelete={handleDeleteRule}
15
+ onselection={handleSelectionChange}
16
+ onmoveup={handleRuleMovement}
17
+ onmovedown={handleRuleMovement}>
18
+ </lightning-primitive-column-sorter>
19
+ </template>
20
+ <div part="columnadder">
21
+ <lightning-button
22
+ variant="base"
23
+ label={i18n.addRule}
24
+ icon-name="utility:add"
25
+ onclick={handleAddRule}
26
+ disabled={isAddRuleButtonDisabled}
27
+ class="slds-m-left_x-small">
28
+ </lightning-button>
29
+ <div style={ruleLimitTextStyle}>{ruleLimitText}</div>
30
+ </div>
31
+ </div>
32
+ </lightning-modal-body>
33
+ <lightning-modal-footer class="slds-modal__footer_directional">
34
+ <lightning-button
35
+ class="slds-button"
36
+ variant="neutral"
37
+ label={i18n.clearButton}
38
+ onclick={clearRules}
39
+ disabled={isClearButtonDisabled}
40
+ ></lightning-button>
41
+ <lightning-button
42
+ class="slds-button"
43
+ variant="neutral"
44
+ label={i18n.cancelButton}
45
+ onclick={cancelRules}
46
+ ></lightning-button>
47
+ <lightning-button
48
+ class="slds-button"
49
+ variant="brand"
50
+ label={i18n.applyButton}
51
+ onclick={applyRules}
52
+ disabled={isApplyButtonDisabled}
53
+ ></lightning-button>
54
+ </lightning-modal-footer>
55
+ </template>