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