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
@@ -9,14 +9,14 @@ const DEFAULT_ALIGN = {
9
9
  vertical: 'bottom',
10
10
  };
11
11
 
12
+ // Set to px units for easier calculation
13
+ const POPOVER_MIN_HEIGHT = 32;
14
+
12
15
  const DEFAULT_INVISIBLE_DIV_STYLES = {
13
- height: '1.5rem',
16
+ height: '1rem',
14
17
  position: 'absolute',
15
18
  left: '0',
16
19
  marginLeft: '0',
17
- // add a little bit of offset to move the <div> closer to the target, that way the mouse
18
- // doesn't move into the small white space between the target and <div>, which would close the tooltip
19
- top: '-1.1rem',
20
20
  };
21
21
 
22
22
  export default class LightningPrimitiveBubble extends LightningShadowBaseClass {
@@ -52,6 +52,7 @@ export default class LightningPrimitiveBubble extends LightningShadowBaseClass {
52
52
  connectedCallback() {
53
53
  super.connectedCallback();
54
54
  this.setAttribute('role', 'tooltip');
55
+ this.setAttribute('aria-hidden', true);
55
56
  this.state.inDOM = true;
56
57
  }
57
58
 
@@ -100,12 +101,18 @@ export default class LightningPrimitiveBubble extends LightningShadowBaseClass {
100
101
  // Show the tooltip before css animation
101
102
  this.state.hidden = false;
102
103
  }
104
+ if (this.state.hidden) {
105
+ this.setAttribute('aria-hidden', true);
106
+ } else {
107
+ this.removeAttribute('aria-hidden');
108
+ }
103
109
  }
104
110
 
105
111
  handleTransitionEnd() {
106
112
  // Hide the tooltip after css animation
107
113
  if (!this.state.visible) {
108
114
  this.state.hidden = true;
115
+ this.setAttribute('aria-hidden', true);
109
116
  }
110
117
  }
111
118
 
@@ -127,26 +134,41 @@ export default class LightningPrimitiveBubble extends LightningShadowBaseClass {
127
134
  '.slds-popover__body'
128
135
  );
129
136
  const invisibleDiv = document.createElement('div');
137
+ const { vertical } = this.align;
130
138
 
131
139
  let computedStyle = null;
132
140
  if (window && popoverBody) {
133
141
  computedStyle = window.getComputedStyle(popoverBody);
134
142
  invisibleDiv.style.width =
135
143
  computedStyle.getPropertyValue('width');
144
+
145
+ /*
146
+ Position the <div> based on vertical alignment of tooltip.
147
+ When vertically aligned to the bottom (nubbin below tooltip), position the <div> to
148
+ the max of the popover min-height or the popover offset height. This is necessary so that
149
+ it always positions right below the popover, so that changes to line-height or other
150
+ distance related properties do not affect the positioning.
151
+ */
152
+ if (vertical === 'bottom') {
153
+ invisibleDiv.style.top =
154
+ Math.max(POPOVER_MIN_HEIGHT, popoverBody.offsetHeight) +
155
+ 'px';
156
+ invisibleDiv.style.height =
157
+ DEFAULT_INVISIBLE_DIV_STYLES.height;
158
+ } else {
159
+ /* add a little bit of offset to move the <div> closer to the target, that way the mouse
160
+ doesn't move into the small white space between the target and <div>, which would flicker the tooltip
161
+ */
162
+ invisibleDiv.style.top = '-1.1rem';
163
+ invisibleDiv.style.height = '1.125rem';
164
+ }
136
165
  }
137
166
 
138
- invisibleDiv.style.height = DEFAULT_INVISIBLE_DIV_STYLES.height;
139
167
  invisibleDiv.style.position = DEFAULT_INVISIBLE_DIV_STYLES.position;
140
168
  invisibleDiv.style.left = DEFAULT_INVISIBLE_DIV_STYLES.left;
141
169
  invisibleDiv.style.marginLeft =
142
170
  DEFAULT_INVISIBLE_DIV_STYLES.marginLeft;
143
171
 
144
- const { vertical } = this.align;
145
-
146
- // position <div> based on vertical alignment
147
- invisibleDiv.style.top =
148
- vertical === 'top' ? DEFAULT_INVISIBLE_DIV_STYLES.top : '';
149
-
150
172
  popoverBody.appendChild(invisibleDiv);
151
173
  }
152
174
  }
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <button type="button" part="color-picker-button" class="slds-button slds-color-picker__summary-button slds-button_icon slds-button_icon-more" onclick={handleColorPickerToggleClick}
3
- disabled={disabled}>
3
+ disabled={disabled} aria-disabled={ariaDisabled}>
4
4
  <span class="slds-swatch" data-id="thumbnail" style={colorInputStyle}>
5
5
  <span class="slds-assistive-text">{i18n.a11yTriggerText}</span>
6
6
  </span>
7
7
  <lightning-primitive-icon icon-name="utility:down" svg-class="slds-button__icon slds-button__icon_small" variant="bare"></lightning-primitive-icon>
8
- <span class="slds-assistive-text a11y-color-value">{value}</span>
8
+ <span class="slds-assistive-text a11y-color-value">{assistiveValue}</span>
9
9
  </button>
10
10
  <template if:true={_isColorPickerPanelOpen}>
11
11
  <lightning-color-picker-panel onupdatecolor={handleUpdateColorEvent} class="color-picker-panel" current-color={value}>
@@ -1,4 +1,5 @@
1
1
  import labelA11yTriggerText from '@salesforce/label/LightningColorPicker.a11yTriggerText';
2
+ import labelA11yDefaultText from '@salesforce/label/LightningColorPicker.a11yDefaultText';
2
3
  import { api, track } from 'lwc';
3
4
  import LightningShadowBaseClass from 'lightning/shadowBaseClassPrivate';
4
5
  import { Direction, AutoPosition } from 'lightning/positionLibrary';
@@ -6,6 +7,7 @@ import { normalizeBoolean, reflectAttribute } from 'lightning/utilsPrivate';
6
7
 
7
8
  const i18n = {
8
9
  a11yTriggerText: labelA11yTriggerText,
10
+ a11yDefaultText: labelA11yDefaultText,
9
11
  };
10
12
  export default class PrimitiveColorpickerButton extends LightningShadowBaseClass {
11
13
  static delegatesFocus = true;
@@ -13,6 +15,7 @@ export default class PrimitiveColorpickerButton extends LightningShadowBaseClass
13
15
  @track _isColorPickerPanelOpen = false;
14
16
  @track _value = '';
15
17
  @track _disabled = false;
18
+ @api ariaDisabled;
16
19
 
17
20
  @api
18
21
  get value() {
@@ -23,6 +26,11 @@ export default class PrimitiveColorpickerButton extends LightningShadowBaseClass
23
26
  this._value = value;
24
27
  }
25
28
 
29
+ @api
30
+ get assistiveValue() {
31
+ return this.value ? this.value : this.i18n.a11yDefaultText;
32
+ }
33
+
26
34
  /**
27
35
  * If present, the input field is disabled and users cannot interact with it.
28
36
  * @type {boolean}
@@ -0,0 +1,34 @@
1
+ @import 'lightning/sldsCommon';
2
+
3
+ [part="header"] {
4
+ padding: var(--slds-g-sizing-3) var(--slds-g-sizing-3) var(--slds-g-sizing-3) 0;
5
+ font-weight: bold;
6
+ }
7
+
8
+ [part="sorting-config"] {
9
+ display: flex;
10
+ flex: 1;
11
+ align-items: center;
12
+ gap: var(--slds-g-sizing-4);
13
+ }
14
+
15
+ .slds-box {
16
+ padding: var(--slds-g-sizing-4);
17
+ display: flex; align-items: center; justify-content: space-between;
18
+ }
19
+
20
+ lightning-combobox {
21
+ width: 40%;
22
+ }
23
+
24
+ .slds-has-error {
25
+ margin-top: 1.25rem;
26
+ }
27
+
28
+ [part="sorting-config"]:has(lightning-combobox[invalid]) {
29
+ margin-top: -1rem;
30
+ }
31
+
32
+ [part="sorting-config"]:has(lightning-combobox[invalid]) + lightning-button-icon {
33
+ margin-top: -1rem;
34
+ }
@@ -0,0 +1,60 @@
1
+ <template>
2
+ <div part="header">
3
+ <template if:true={rule.disabledTrash}>
4
+ <abbr class="slds-required">*</abbr>
5
+ </template>
6
+ {rule.heading}
7
+ </div>
8
+ <div class="slds-box">
9
+ <div part="sorting-config">
10
+ <lightning-button-group>
11
+ <lightning-button-icon tooltip={i18n.moveUpTooltip} icon-name="utility:arrowup" onclick={handleMoveUp} disabled={isUpDisabled} variant="border-filled" alternative-text="Arrow Up"></lightning-button-icon>
12
+ <lightning-button-icon tooltip={i18n.moveDownTooltip} icon-name="utility:arrowdown" onclick={handleMoveDown} disabled={isDownDisabled} variant="border-filled" alternative-text="Arrow Down"></lightning-button-icon>
13
+ </lightning-button-group>
14
+ <lightning-combobox
15
+ name="column select"
16
+ disabled={rule.disableInputs}
17
+ placeholder={i18n.dropdownPlaceholder}
18
+ options={columns}
19
+ value={rule.selectedColumn}
20
+ onchange={handleColumnSelect}
21
+ variant="label-hidden"
22
+ label={i18n.dropdownPlaceholder}
23
+ required
24
+ message-when-value-missing={i18n.missingValueValidation}>
25
+ </lightning-combobox>
26
+ <fieldset role="radiogroup" part="input-radio-group">
27
+ <legend part="legend" class="slds-form-element__legend slds-form-element__label slds-assistive-text">
28
+ Sorting Order
29
+ </legend>
30
+ <span class="slds-radio">
31
+ <input type="radio"
32
+ id="asc"
33
+ disabled={rule.disableInputs}
34
+ name={groupName}
35
+ value="asc"
36
+ checked={isAscendingChecked}
37
+ onchange={handleOrderChange}/>
38
+ <label class="slds-radio__label" for="asc">
39
+ <span class="slds-radio_faux"></span>
40
+ <span class="slds-form-element__label">{i18n.ascending}</span>
41
+ </label>
42
+ </span>
43
+ <span class="slds-radio">
44
+ <input type="radio"
45
+ id="desc"
46
+ disabled={rule.disableInputs}
47
+ name={groupName}
48
+ value="desc"
49
+ checked={isDescendingChecked}
50
+ onchange={handleOrderChange}/>
51
+ <label class="slds-radio__label" for="desc">
52
+ <span class="slds-radio_faux"></span>
53
+ <span class="slds-form-element__label">{i18n.descending}</span>
54
+ </label>
55
+ </span>
56
+ </fieldset>
57
+ </div>
58
+ <lightning-button-icon icon-name="utility:delete" variant="bare" disabled={rule.disabledTrash} onclick={handleDelete} alternative-text="Settings"></lightning-button-icon>
59
+ </div>
60
+ </template>
@@ -0,0 +1,107 @@
1
+ import { LightningElement, api } from 'lwc';
2
+ import moveUpTooltip from '@salesforce/label/LightningPrimitiveColumnSorter.moveUpTooltip';
3
+ import moveDownTooltip from '@salesforce/label/LightningPrimitiveColumnSorter.moveDownTooltip';
4
+ import dropdownPlaceholder from '@salesforce/label/LightningPrimitiveColumnSorter.dropdownPlaceholder';
5
+ import ascending from '@salesforce/label/LightningPrimitiveColumnSorter.ascending';
6
+ import descending from '@salesforce/label/LightningPrimitiveColumnSorter.descending';
7
+ import missingValueValidation from '@salesforce/label/LightningPrimitiveColumnSorter.missingValueValidation';
8
+
9
+ const i18n = {
10
+ moveUpTooltip,
11
+ moveDownTooltip,
12
+ dropdownPlaceholder,
13
+ ascending,
14
+ descending,
15
+ missingValueValidation,
16
+ };
17
+
18
+ export default class PrimitiveColumnSorter extends LightningElement {
19
+ @api firstRule;
20
+ @api lastRule;
21
+ @api rule;
22
+ @api columns;
23
+ @api index;
24
+ _combobox;
25
+
26
+ @api
27
+ get combobox() {
28
+ if (!this._combobox) {
29
+ this._combobox = this.template.querySelector('lightning-combobox');
30
+ }
31
+ return this._combobox;
32
+ }
33
+
34
+ get i18n() {
35
+ return i18n;
36
+ }
37
+
38
+ // used to group radio buttons independent from each other
39
+ get groupName() {
40
+ return `radioGroup_${this.index}`;
41
+ }
42
+
43
+ /**
44
+ * Used to maintain radio group selection even when rules are moved up/down
45
+ */
46
+ get isAscendingChecked() {
47
+ return this.rule.sortOrder === 'asc';
48
+ }
49
+
50
+ /**
51
+ * Used to maintain radio group selection even when rules are moved up/down
52
+ */
53
+ get isDescendingChecked() {
54
+ return this.rule.sortOrder === 'desc';
55
+ }
56
+
57
+ get isUpDisabled() {
58
+ return this.rule.unselectedInitialRules || this.firstRule;
59
+ }
60
+ get isDownDisabled() {
61
+ return this.rule.unselectedInitialRules || this.lastRule;
62
+ }
63
+
64
+ /**
65
+ * dispatches a 'selection' event used to set the `selectedColumn` when the sorting column is selected
66
+ * in turn, keeps the `multi-column-sorting-modal`'s this.rules property up to date.
67
+ */
68
+ handleColumnSelect(event) {
69
+ this.dispatchEvent(
70
+ new CustomEvent('selection', {
71
+ detail: {
72
+ index: this.index,
73
+ selectedColumn: event.detail.value,
74
+ sortOrder: this.rule.sortOrder,
75
+ },
76
+ })
77
+ );
78
+ }
79
+
80
+ /**
81
+ * dispatches a 'selection' event used to set the `sortOrder` when the sorting direction is selected
82
+ * in turn, keeps the `multi-column-sorting-modal`'s this.rules property up to date.
83
+ */
84
+ handleOrderChange(event) {
85
+ this.dispatchEvent(
86
+ new CustomEvent('selection', {
87
+ detail: {
88
+ index: this.index,
89
+ selectedColumn: this.rule.selectedColumn,
90
+ sortOrder: event.target.value,
91
+ },
92
+ })
93
+ );
94
+ }
95
+
96
+ handleDelete() {
97
+ this.dispatchEvent(new CustomEvent('delete'));
98
+ }
99
+
100
+ handleMoveUp() {
101
+ this.dispatchEvent(new CustomEvent('moveup'));
102
+ }
103
+
104
+ handleMoveDown() {
105
+ this.dispatchEvent(new CustomEvent('movedown'));
106
+ }
107
+ }
@@ -5,6 +5,10 @@ import labelSort from '@salesforce/label/LightningDatatable.sort';
5
5
  import labelSortAsc from '@salesforce/label/LightningDatatable.sortAsc';
6
6
  import labelSortDesc from '@salesforce/label/LightningDatatable.sortDesc';
7
7
  import labelSortNone from '@salesforce/label/LightningDatatable.sortNone';
8
+ import sortingMenuMultiColumnSort from '@salesforce/label/LightningDatatable.sortingMenuMultiColumnSort';
9
+ import sortingMenuRows from '@salesforce/label/LightningDatatable.sortingMenuRows';
10
+ import sortingMenuColumns from '@salesforce/label/LightningDatatable.sortingMenuColumns';
11
+ import sortingMenuTooltip from '@salesforce/label/LightningDatatable.sortingMenuTooltip';
8
12
  import PrimitiveDatatableCell from 'lightning/primitiveDatatableCell';
9
13
  import { api, track } from 'lwc';
10
14
  import {
@@ -16,8 +20,10 @@ import {
16
20
  import selectable from './selectableHeader.html';
17
21
  import sortable from './sortableHeader.html';
18
22
  import nonsortable from './nonsortableHeader.html';
23
+ import sortingMenu from './sortingMenuHeader.html';
19
24
 
20
25
  const SELECTABLE_HEADER_TYPE = 'SELECTABLE_CHECKBOX';
26
+ const SORTING_MENU_HEADER_TYPE = 'SELECTABLE_BUTTON_MENU';
21
27
 
22
28
  const i18n = {
23
29
  chooseARow: labelChooseARow,
@@ -27,6 +33,10 @@ const i18n = {
27
33
  sortAsc: labelSortAsc,
28
34
  sortDesc: labelSortDesc,
29
35
  sortNone: labelSortNone,
36
+ sortingMenuMultiColumnSort,
37
+ sortingMenuRows,
38
+ sortingMenuColumns,
39
+ sortingMenuTooltip,
30
40
  };
31
41
 
32
42
  /**
@@ -52,6 +62,7 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
52
62
  @api showCheckbox = false;
53
63
  @api sorted;
54
64
  @api sortedDirection;
65
+ @api showActionsMenu;
55
66
 
56
67
  /**
57
68
  * Retrieves the computed header DOM `id`
@@ -220,7 +231,7 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
220
231
  ? 'slds-line-clamp_small '
221
232
  : 'slds-truncate';
222
233
  }
223
-
234
+
224
235
  /**
225
236
  * Get th Action styles (needed for wrapping headers)
226
237
  *
@@ -283,12 +294,15 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
283
294
  }
284
295
 
285
296
  /**
286
- * Determines if the header is regular (unselectable)
297
+ * Determines if the header is regular (unselectable and not sorting menu)
287
298
  *
288
299
  * @return {boolean} Whether the header is regular
289
300
  */
290
301
  get isRegularHeader() {
291
- return this._def.type !== SELECTABLE_HEADER_TYPE;
302
+ return (
303
+ this._def.type !== SELECTABLE_HEADER_TYPE &&
304
+ this._def.type !== SORTING_MENU_HEADER_TYPE
305
+ );
292
306
  }
293
307
 
294
308
  /**
@@ -340,8 +354,14 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
340
354
  * By default, nonsortableHeader.html is rendered
341
355
  */
342
356
  render() {
343
- if (this._def.type === SELECTABLE_HEADER_TYPE) {
357
+ const { type } = this._def;
358
+ if (type === SELECTABLE_HEADER_TYPE) {
344
359
  return selectable;
360
+ } else if (
361
+ type === SORTING_MENU_HEADER_TYPE ||
362
+ (type === 'action' && this._def.isLastCol && this.showActionsMenu)
363
+ ) {
364
+ return sortingMenu;
345
365
  } else if (this._sortable) {
346
366
  return sortable;
347
367
  }
@@ -429,6 +449,19 @@ export default class PrimitiveHeaderFactory extends PrimitiveDatatableCell {
429
449
  this.dispatchEvent(event);
430
450
  }
431
451
 
452
+ handleSortingMenuSelection(event) {
453
+ event.stopPropagation();
454
+ const selectedItemValue = event.detail.value;
455
+ if (selectedItemValue === 'MultiColumnSorting') {
456
+ // open modal
457
+ const e = new CustomEvent('privateopensortingmodal', {
458
+ bubbles: true,
459
+ composed: true,
460
+ });
461
+ this.dispatchEvent(e);
462
+ }
463
+ }
464
+
432
465
  /************************* HELPER FUNCTIONS **************************/
433
466
 
434
467
  /**
@@ -0,0 +1,5 @@
1
+ @import 'lightning/sldsCommon';
2
+
3
+ .slds-th__action {
4
+ justify-content: center;
5
+ }
@@ -0,0 +1,9 @@
1
+ <template>
2
+ <div class="slds-th__action slds-th__action_form slds-cell-fixed" style={columnStyles}>
3
+ <lightning-button-menu alternative-text="Show menu" internal-datatable-actions-menu icon-name="utility:threedots" variant="border-filled" menu-alignment="right" icon-size="x-small" tooltip={i18n.sortingMenuTooltip} onselect={handleSortingMenuSelection}>
4
+ <lightning-menu-item value="MultiColumnSorting" label={i18n.sortingMenuMultiColumnSort}></lightning-menu-item>
5
+ <lightning-menu-item value="ReorderRow" label={i18n.sortingMenuRows}></lightning-menu-item>
6
+ <lightning-menu-item value="ReorderColumn" label={i18n.sortingMenuColumns}></lightning-menu-item>
7
+ </lightning-button-menu>
8
+ </div>
9
+ </template>
@@ -187,7 +187,10 @@
187
187
  }
188
188
 
189
189
  :host([data-render-mode="shadow"][variant='label-stacked']) .slds-form-element__label,:host([data-render-mode="shadow"][variant='label-stacked']) .slds-form-element__control {
190
- border-bottom: 0; /* Remove border when using legacy version of slds-form-element */
190
+ /* @W-14518344 The following line still exists in SLDS-internal
191
+ but it was removed here because it was causing the input
192
+ component to not display it's bottom border
193
+ border-bottom: 0; Remove border when using legacy version of slds-form-element */
191
194
  padding-inline-start: 0;
192
195
  }
193
196
 
@@ -242,6 +245,7 @@
242
245
 
243
246
  @media (width >= 48em) {
244
247
  :host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
248
+ float: left;
245
249
  max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
246
250
  flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
247
251
  flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
@@ -273,12 +273,12 @@
273
273
  :host([data-render-mode="shadow"][disabled]) [part='indicator'] {
274
274
  --_slds-c-inputcheckbox-color-background: var(
275
275
  --_slds-c-inputcheckbox-color-background-disabled,
276
- var(--slds-g-color-surface-container-2)
276
+ var(--slds-g-color-disabled-container-2)
277
277
  );
278
- --_slds-c-inputcheckbox-color-border: var(--_slds-c-inputcheckbox-color-border-disabled);
278
+ --_slds-c-inputcheckbox-color-border: var(--_slds-c-inputcheckbox-color-border-disabled, var(--slds-g-color-border-disabled-1));
279
279
  --_slds-c-inputcheckbox-mark-color-foreground: var(
280
280
  --_slds-c-inputcheckbox-mark-color-foreground-disabled,
281
- var(--slds-g-color-on-disabled-1)
281
+ var(--slds-g-color-on-disabled-2)
282
282
  );
283
283
  }
284
284
  /**
@@ -46,6 +46,6 @@
46
46
  </span>
47
47
  </div>
48
48
  <template if:true={helpMessage}>
49
- <div id="help-message" class="slds-form-element__help" data-help-message part="help-text">{helpMessage}</div>
49
+ <div id="help-message" class="slds-form-element__help" data-help-message part="help-text" role="status">{helpMessage}</div>
50
50
  </template>
51
51
  </template>
@@ -187,7 +187,10 @@
187
187
  }
188
188
 
189
189
  :host([data-render-mode="shadow"][variant='label-stacked']) .slds-form-element__label,:host([data-render-mode="shadow"][variant='label-stacked']) .slds-form-element__control {
190
- border-bottom: 0; /* Remove border when using legacy version of slds-form-element */
190
+ /* @W-14518344 The following line still exists in SLDS-internal
191
+ but it was removed here because it was causing the input
192
+ component to not display it's bottom border
193
+ border-bottom: 0; Remove border when using legacy version of slds-form-element */
191
194
  padding-inline-start: 0;
192
195
  }
193
196
 
@@ -242,6 +245,7 @@
242
245
 
243
246
  @media (width >= 48em) {
244
247
  :host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
248
+ float: left;
245
249
  max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
246
250
  flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
247
251
  flex-grow: 1; /* For IE and Safari which didn't auto expand to the available space */
@@ -46,12 +46,14 @@
46
46
 
47
47
  :host([data-render-mode="shadow"][disabled]) [part="faux-button"] {
48
48
  cursor: default;
49
- --slds-c-inputcheckboxbutton-color-border: transparent;
49
+ --slds-c-inputcheckboxbutton-color-border: var(--slds-g-color-border-disabled-1);
50
50
  --slds-c-inputcheckboxbutton-color-background: var(--slds-g-color-disabled-container-1);
51
51
  --slds-c-inputcheckboxbutton-mark-color-foreground: var(--slds-g-color-on-disabled-1);
52
- --slds-c-inputcheckboxbutton-color-border-checked: transparent;
53
- --slds-c-inputcheckboxbutton-color-background-checked: var(--slds-g-color-disabled-container-1);
54
- --slds-c-inputcheckboxbutton-mark-color-foreground-checked: var(--slds-g-color-on-disabled-1);
52
+
53
+ /* Disabled checked */
54
+ --slds-c-inputcheckboxbutton-color-border-checked: var(--slds-g-color-border-disabled-1);
55
+ --slds-c-inputcheckboxbutton-color-background-checked: var(--slds-g-color-disabled-container-2);
56
+ --slds-c-inputcheckboxbutton-mark-color-foreground-checked: var(--slds-g-color-on-disabled-2);
55
57
 
56
58
  }
57
59
 
@@ -61,7 +63,6 @@
61
63
  --slds-c-inputcheckboxbutton-color-border: var(--slds-c-inputcheckboxbutton-color-border-checked, transparent);
62
64
  --slds-c-inputcheckboxbutton-color-background: var(--slds-c-inputcheckboxbutton-color-background-checked, var(--slds-g-color-accent-container-2));
63
65
  --slds-c-inputcheckboxbutton-mark-color-foreground: var(--slds-c-inputcheckboxbutton-mark-color-foreground-checked, var(--slds-g-color-on-accent-1));
64
-
65
66
  }
66
67
 
67
68
  :host([data-render-mode="shadow"][checked]) [part="faux-button"]::before {
@@ -22,6 +22,6 @@
22
22
  </label>
23
23
  </div>
24
24
  <template if:true={_helpMessage}>
25
- <div id="help-message" class="slds-form-element__help" data-help-message part="help-text">{_helpMessage}</div>
25
+ <div id="help-message" class="slds-form-element__help" data-help-message part="help-text" role="status">{_helpMessage}</div>
26
26
  </template>
27
27
  </template>
@@ -187,7 +187,10 @@
187
187
  }
188
188
 
189
189
  :host([data-render-mode="shadow"][variant='label-stacked']) .slds-form-element__label,:host([data-render-mode="shadow"][variant='label-stacked']) .slds-form-element__control {
190
- border-bottom: 0; /* Remove border when using legacy version of slds-form-element */
190
+ /* @W-14518344 The following line still exists in SLDS-internal
191
+ but it was removed here because it was causing the input
192
+ component to not display it's bottom border
193
+ border-bottom: 0; Remove border when using legacy version of slds-form-element */
191
194
  padding-inline-start: 0;
192
195
  }
193
196
 
@@ -242,6 +245,7 @@
242
245
 
243
246
  @media (width >= 48em) {
244
247
  :host([data-render-mode="shadow"][variant='label-inline']) .slds-form-element__label {
248
+ float: left;
245
249
  max-width: calc(33% - var(--slds-g-sizing-6)); /* Removing icon width for when the help-text icon is present */
246
250
  flex-basis: calc(33% - var(--slds-g-sizing-6)); /* Some form element controls are set to display:flex */
247
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
@@ -16,7 +16,8 @@
16
16
  disabled={disabled}
17
17
  onblur={handleBlur}
18
18
  onfocus={handleFocus}
19
- onchange={handleColorChange}>
19
+ onchange={handleColorChange}
20
+ aria-disabled={ariaDisabled}>
20
21
  </lightning-primitive-colorpicker-button>
21
22
  <!--
22
23
  Using <lightning-input type="text"> here would duplicate the label
@@ -31,6 +32,8 @@
31
32
  accesskey={accessKey}
32
33
  aria-label={ariaLabel}
33
34
  aria-invalid={ariaInvalid}
35
+ aria-keyshortcuts={ariaKeyShortcuts}
36
+ aria-disabled={ariaDisabled}
34
37
  disabled={disabled}
35
38
  minlength="4"
36
39
  maxlength="7"
@@ -45,6 +48,6 @@
45
48
  </div>
46
49
  </div>
47
50
  <template if:true={helpMessage}>
48
- <div id="help-message" class="slds-form-element__help" data-help-message part="help-text">{helpMessage}</div>
51
+ <div id="help-message" class="slds-form-element__help" data-help-message part="help-text" role="status">{helpMessage}</div>
49
52
  </template>
50
53
  </template>
@@ -17,6 +17,8 @@ export default class LightningPrimitiveInputColor extends LightningShadowBaseCla
17
17
  @api autocomplete;
18
18
  @api ariaLabel;
19
19
  @api ariaInvalid;
20
+ @api ariaDisabled;
21
+ @api ariaKeyShortcuts;
20
22
  @api placeholder;
21
23
  @api pattern;
22
24
  @api variant;