@lion/ui 0.23.0 → 0.25.0
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/README.md +50 -20
- package/components/accordion/src/LionAccordion.js +31 -42
- package/components/accordion/test/lion-accordion.test.js +108 -134
- package/components/button/src/LionButton.js +9 -12
- package/components/button/src/LionButtonReset.js +0 -5
- package/components/button/src/LionButtonSubmit.js +7 -12
- package/components/button/test/demos.screenshots-test.js +50 -11
- package/components/button/test/lion-button.test.js +0 -1
- package/components/button/test-suites/LionButton.suite.js +135 -145
- package/components/button/test-suites/LionButtonReset.suite.js +54 -72
- package/components/button/test-suites/LionButtonSubmit.suite.js +49 -68
- package/components/calendar/src/LionCalendar.js +151 -104
- package/components/calendar/src/calendarStyle.js +0 -1
- package/components/calendar/src/utils/createMonth.js +3 -4
- package/components/calendar/src/utils/createMultipleMonth.js +15 -7
- package/components/calendar/src/utils/createWeek.js +0 -2
- package/components/calendar/src/utils/dataTemplate.js +8 -4
- package/components/calendar/src/utils/dayTemplate.js +0 -6
- package/components/calendar/src/utils/getDayMonthYear.js +6 -2
- package/components/calendar/test/demos.screenshots-test.js +40 -9
- package/components/calendar/test/lion-calendar.test.js +171 -282
- package/components/calendar/test/utils/createMonth.test.js +61 -22
- package/components/calendar/test/utils/createMultipleMonth.test.js +14 -7
- package/components/calendar/test/utils/createWeek.test.js +51 -17
- package/components/calendar/test/utils/dataTemplate.test.js +3 -4
- package/components/calendar/test/utils/dayTemplate.test.js +106 -34
- package/components/calendar/test/utils/getFirstDayNextMonth.test.js +0 -1
- package/components/calendar/test/utils/getLastDayPreviousMonth.test.js +0 -1
- package/components/calendar/test/utils/isSameDate.test.js +0 -1
- package/components/calendar/test/utils/snapshots/monthTemplate_en-GB_Sunday_2018-12.js +1 -2
- package/components/calendar/test-helpers/CalendarObject.js +31 -62
- package/components/calendar/test-helpers/DayObject.js +7 -15
- package/components/calendar/test-suites/LionCalendar.suite.js +7 -9
- package/components/checkbox-group/src/LionCheckboxIndeterminate.js +17 -30
- package/components/checkbox-group/test/lion-checkbox-group-integrations.test.js +0 -1
- package/components/checkbox-group/test/lion-checkbox-group.test.js +21 -16
- package/components/checkbox-group/test/lion-checkbox-indeterminate-integrations.test.js +3 -3
- package/components/checkbox-group/test/lion-checkbox-integrations.test.js +3 -2
- package/components/checkbox-group/test/lion-checkbox.test.js +30 -16
- package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +147 -191
- package/components/collapsible/src/LionCollapsible.js +10 -15
- package/components/collapsible/test/lion-collapsible.test.js +4 -18
- package/components/combobox/src/LionCombobox.js +35 -53
- package/components/combobox/src/utils/makeMatchingTextBold.js +2 -5
- package/components/combobox/src/validators.js +0 -1
- package/components/combobox/test/lion-combobox-integrations.test.js +6 -6
- package/components/combobox/test/lion-combobox.test.js +576 -869
- package/components/combobox/test/validators.test.js +6 -13
- package/components/combobox/test-helpers/combobox-helpers.js +24 -11
- package/components/core/src/DisabledMixin.js +61 -66
- package/components/core/src/DisabledWithTabIndexMixin.js +76 -83
- package/components/core/src/EventTargetShim.js +1 -4
- package/components/core/src/ScopedElementsMixin.js +4 -15
- package/components/core/src/ScopedStylesController.js +1 -5
- package/components/core/src/SlotMixin.js +236 -239
- package/components/core/src/browserDetection.js +5 -12
- package/components/core/test/DisabledMixin.test.js +24 -39
- package/components/core/test/DisabledWithTabIndexMixin.test.js +21 -34
- package/components/core/test/EventTargetShim.test.js +0 -8
- package/components/core/test/ScopedElementsMixin.test.js +22 -38
- package/components/core/test/ScopedStylesController.test.js +11 -20
- package/components/core/test/SlotMixin.test.js +102 -154
- package/components/core/test-helpers/getCachedFixture.js +5 -11
- package/components/core/types/SlotMixinTypes.ts +8 -3
- package/components/dialog/src/LionDialog.js +4 -3
- package/components/dialog/test/lion-dialog.integration.test.js +10 -20
- package/components/dialog/test/lion-dialog.test.js +48 -62
- package/components/dialog/test-helpers/test-router.js +4 -6
- package/components/drawer/src/LionDrawer.js +18 -34
- package/components/drawer/src/drawerStyle.js +0 -1
- package/components/drawer/test/lion-drawer.test.js +1 -17
- package/components/fieldset/test/lion-fieldset.test.js +6 -4
- package/components/form/src/LionForm.js +18 -13
- package/components/form/test/lion-form.test.js +22 -52
- package/components/form-core/src/FocusMixin.js +172 -174
- package/components/form-core/src/FormControlMixin.js +811 -813
- package/components/form-core/src/FormatMixin.js +537 -537
- package/components/form-core/src/InteractionStateMixin.js +196 -183
- package/components/form-core/src/LionField.js +9 -5
- package/components/form-core/src/NativeTextFieldMixin.js +114 -116
- package/components/form-core/src/choice-group/ChoiceGroupMixin.js +322 -364
- package/components/form-core/src/choice-group/ChoiceInputMixin.js +306 -296
- package/components/form-core/src/choice-group/CustomChoiceGroupMixin.js +114 -139
- package/components/form-core/src/form-group/FormElementsHaveNoError.js +0 -2
- package/components/form-core/src/form-group/FormGroupMixin.js +551 -557
- package/components/form-core/src/registration/FormRegisteringMixin.js +72 -71
- package/components/form-core/src/registration/FormRegistrarMixin.js +201 -217
- package/components/form-core/src/registration/FormRegistrarPortalMixin.js +31 -37
- package/components/form-core/src/utils/SyncUpdatableMixin.js +106 -117
- package/components/form-core/src/utils/getAriaElementsInRightDomOrder.js +1 -2
- package/components/form-core/src/validate/LionValidationFeedback.js +12 -8
- package/components/form-core/src/validate/Unparseable.js +4 -2
- package/components/form-core/src/validate/ValidateMixin.js +829 -883
- package/components/form-core/src/validate/Validator.js +3 -6
- package/components/form-core/src/validate/resultValidators/DefaultSuccess.js +1 -2
- package/components/form-core/src/validate/validators/DateValidators.js +0 -5
- package/components/form-core/src/validate/validators/NumberValidators.js +1 -5
- package/components/form-core/src/validate/validators/Required.js +1 -1
- package/components/form-core/src/validate/validators/StringValidators.js +1 -8
- package/components/form-core/test/FocusMixin.test.js +96 -82
- package/components/form-core/test/FormControlMixin.test.js +120 -176
- package/components/form-core/test/FormRegistrationMixins.test.js +0 -2
- package/components/form-core/test/FormatMixin.test.js +0 -1
- package/components/form-core/test/InteractionStateMixin.test.js +0 -1
- package/components/form-core/test/NativeTextFieldMixin.test.js +0 -1
- package/components/form-core/test/choice-group/ChoiceGroupMixin.test.js +0 -1
- package/components/form-core/test/choice-group/ChoiceInputMixin.test.js +0 -1
- package/components/form-core/test/choice-group/CustomChoiceGroupMixin.integrations.test.js +6 -8
- package/components/form-core/test/choice-group/CustomChoiceGroupMixin.test.js +0 -3
- package/components/form-core/test/form-group/FormGroupMixin.test.js +0 -1
- package/components/form-core/test/lion-field.test.js +88 -98
- package/components/form-core/test/utils/SyncUpdatableMixin.test.js +51 -65
- package/components/form-core/test/utils/getAriaElementsInRightDomOrder.test.js +3 -3
- package/components/form-core/test/validate/DateValidators.test.js +5 -27
- package/components/form-core/test/validate/NumberValidators.test.js +4 -16
- package/components/form-core/test/validate/Required.test.js +8 -21
- package/components/form-core/test/validate/ResultValidator.test.js +1 -2
- package/components/form-core/test/validate/StringValidators.test.js +4 -35
- package/components/form-core/test/validate/ValidateMixin.test.js +0 -1
- package/components/form-core/test/validate/ValidateMixinFeedbackPart.test.js +0 -1
- package/components/form-core/test/validate/Validator.test.js +39 -34
- package/components/form-core/test/validate/lion-validation-feedback.test.js +81 -43
- package/components/form-core/test-helpers/ExampleValidators.js +0 -5
- package/components/form-core/test-helpers/getFormControlMembers.js +2 -2
- package/components/form-core/test-helpers/mimicUserInput.js +5 -1
- package/components/form-core/test-suites/FormRegistrationMixins.suite.js +65 -122
- package/components/form-core/test-suites/FormatMixin.suite.js +202 -227
- package/components/form-core/test-suites/InteractionStateMixin.suite.js +47 -60
- package/components/form-core/test-suites/NativeTextFieldMixin.suite.js +8 -11
- package/components/form-core/test-suites/ValidateMixin.suite.js +280 -359
- package/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.js +112 -163
- package/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.js +185 -218
- package/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.js +116 -109
- package/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.js +36 -70
- package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +57 -65
- package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +664 -523
- package/components/form-core/translations/bg-BG.js +0 -1
- package/components/form-core/translations/cs-CZ.js +0 -1
- package/components/form-core/translations/de-DE.js +0 -1
- package/components/form-core/translations/en-AU.js +0 -1
- package/components/form-core/translations/en-GB.js +0 -1
- package/components/form-core/translations/en-US.js +0 -1
- package/components/form-core/translations/es-ES.js +0 -1
- package/components/form-core/translations/fr-BE.js +0 -1
- package/components/form-core/translations/fr-FR.js +0 -1
- package/components/form-core/translations/hu-HU.js +0 -1
- package/components/form-core/translations/it-IT.js +0 -1
- package/components/form-core/translations/nl-BE.js +0 -1
- package/components/form-core/translations/nl-NL.js +0 -1
- package/components/form-core/translations/pl-PL.js +0 -1
- package/components/form-core/translations/ro-RO.js +0 -1
- package/components/form-core/translations/ru-RU.js +0 -1
- package/components/form-core/translations/sk-SK.js +0 -1
- package/components/form-core/translations/tr-TR.js +0 -1
- package/components/form-core/translations/uk-UA.js +0 -1
- package/components/form-integrations/test/dialog-integrations.test.js +1 -4
- package/components/form-integrations/test/form-group-methods.test.js +28 -31
- package/components/form-integrations/test/form-integrations.test.js +27 -28
- package/components/form-integrations/test/form-validation-integrations.test.js +21 -29
- package/components/form-integrations/test/helpers/umbrella-form.js +3 -5
- package/components/form-integrations/test/model-value-consistency.test.js +75 -77
- package/components/form-integrations/test/model-value-event.test.js +10 -20
- package/components/helpers/src/SbActionLogger.js +13 -17
- package/components/helpers/src/SbLocaleSwitcher.js +5 -5
- package/components/helpers/src/sortEachDepth.js +0 -2
- package/components/helpers/test/renderLitAsNode.test.js +0 -4
- package/components/helpers/test/sb-action-logger.test.js +24 -55
- package/components/icon/src/IconManager.js +0 -2
- package/components/icon/src/LionIcon.js +2 -7
- package/components/icon/src/icons.js +0 -2
- package/components/icon/test/IconManager.test.js +0 -15
- package/components/icon/test/hammer.svg.js +3 -4
- package/components/icon/test/heart.svg.js +3 -4
- package/components/icon/test/lion-icon.test.js +14 -43
- package/components/input/src/LionInput.js +2 -8
- package/components/input/test/input-integrations.test.js +0 -5
- package/components/input/test/lion-input-integrations.test.js +0 -4
- package/components/input/test/lion-input.test.js +28 -58
- package/components/input/test-helpers/getInputMembers.js +2 -2
- package/components/input-amount/src/LionInputAmount.js +20 -20
- package/components/input-amount/src/formatters.js +0 -3
- package/components/input-amount/src/parsers.js +0 -3
- package/components/input-amount/test/formatters.test.js +24 -16
- package/components/input-amount/test/lion-input-amount-integrations.test.js +0 -4
- package/components/input-amount/test/lion-input-amount.test.js +123 -147
- package/components/input-amount/test/parsers.test.js +33 -17
- package/components/input-amount/test/preprocessors.test.js +0 -3
- package/components/input-amount-dropdown/src/LionInputAmountDropdown.js +49 -59
- package/components/input-amount-dropdown/src/currencyUtil.js +8 -7
- package/components/input-amount-dropdown/src/parsers.js +0 -1
- package/components/input-amount-dropdown/src/validators.js +0 -1
- package/components/input-amount-dropdown/test/LionInputAmountDropdown.test.js +34 -36
- package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +18 -13
- package/components/input-amount-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
- package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +132 -107
- package/components/input-date/src/LionInputDate.js +4 -3
- package/components/input-date/test/lion-input-date-integrations.test.js +0 -3
- package/components/input-date/test/lion-input-date.test.js +19 -32
- package/components/input-datepicker/src/LionInputDatepicker.js +17 -29
- package/components/input-datepicker/src/localizeNamespaceLoader.js +1 -2
- package/components/input-datepicker/test/lion-input-datepicker-integrations.test.js +0 -3
- package/components/input-datepicker/test/lion-input-datepicker.test.js +88 -153
- package/components/input-datepicker/test-helpers/DatepickerInputObject.js +9 -12
- package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +6 -4
- package/components/input-datepicker/translations/bg-BG.js +0 -1
- package/components/input-datepicker/translations/cs-CZ.js +0 -1
- package/components/input-datepicker/translations/de-DE.js +0 -1
- package/components/input-datepicker/translations/en-AU.js +0 -1
- package/components/input-datepicker/translations/en-GB.js +0 -1
- package/components/input-datepicker/translations/en-US.js +0 -1
- package/components/input-datepicker/translations/es-ES.js +0 -1
- package/components/input-datepicker/translations/fr-BE.js +0 -1
- package/components/input-datepicker/translations/fr-FR.js +0 -1
- package/components/input-datepicker/translations/hu-HU.js +0 -1
- package/components/input-datepicker/translations/it-IT.js +0 -1
- package/components/input-datepicker/translations/nl-BE.js +0 -1
- package/components/input-datepicker/translations/nl-NL.js +0 -1
- package/components/input-datepicker/translations/pl-PL.js +0 -1
- package/components/input-datepicker/translations/ro-RO.js +0 -1
- package/components/input-datepicker/translations/ru-RU.js +0 -1
- package/components/input-datepicker/translations/sk-SK.js +0 -1
- package/components/input-datepicker/translations/tr-TR.js +0 -1
- package/components/input-datepicker/translations/uk-UA.js +0 -1
- package/components/input-email/test/lion-input-email-integrations.test.js +0 -2
- package/components/input-email/test/lion-input-email.test.js +1 -7
- package/components/input-file/src/FileHandle.js +0 -3
- package/components/input-file/src/LionInputFile.js +85 -83
- package/components/input-file/src/LionSelectedFileList.js +12 -12
- package/components/input-file/src/validators.js +10 -9
- package/components/input-file/test/FileValidators.test.js +170 -80
- package/components/input-file/test/lion-input-file.test.js +160 -244
- package/components/input-file/test/lion-selected-file-list.test.js +13 -22
- package/components/input-file/translations/bg-BG.js +0 -1
- package/components/input-file/translations/cs-CZ.js +0 -1
- package/components/input-file/translations/de-DE.js +0 -1
- package/components/input-file/translations/en-AU.js +0 -1
- package/components/input-file/translations/en-GB.js +0 -1
- package/components/input-file/translations/en-PH.js +0 -1
- package/components/input-file/translations/en-US.js +0 -1
- package/components/input-file/translations/en.js +2 -1
- package/components/input-file/translations/es-ES.js +0 -1
- package/components/input-file/translations/fr-BE.js +0 -1
- package/components/input-file/translations/fr-FR.js +0 -1
- package/components/input-file/translations/hu-HU.js +0 -1
- package/components/input-file/translations/id-ID.js +0 -1
- package/components/input-file/translations/id.js +2 -1
- package/components/input-file/translations/it-IT.js +0 -1
- package/components/input-file/translations/nl-BE.js +0 -1
- package/components/input-file/translations/nl-NL.js +0 -1
- package/components/input-file/translations/pl-PL.js +0 -1
- package/components/input-file/translations/ro-RO.js +0 -1
- package/components/input-file/translations/ru-RU.js +0 -1
- package/components/input-file/translations/sk-SK.js +0 -1
- package/components/input-file/translations/uk-UA.js +0 -1
- package/components/input-file/translations/zh-CN.js +0 -1
- package/components/input-iban/src/validators.js +6 -11
- package/components/input-iban/test/formatters.test.js +0 -3
- package/components/input-iban/test/lion-input-iban-integrations.test.js +0 -2
- package/components/input-iban/test/lion-input-iban.test.js +1 -9
- package/components/input-iban/test/parsers.test.js +0 -2
- package/components/input-iban/test/validators.test.js +0 -12
- package/components/input-iban/translations/bg-BG.js +0 -1
- package/components/input-iban/translations/cs-CZ.js +0 -1
- package/components/input-iban/translations/de-DE.js +0 -1
- package/components/input-iban/translations/en-AU.js +0 -1
- package/components/input-iban/translations/en-GB.js +0 -1
- package/components/input-iban/translations/en-US.js +0 -1
- package/components/input-iban/translations/es-ES.js +0 -1
- package/components/input-iban/translations/fr-BE.js +0 -1
- package/components/input-iban/translations/fr-FR.js +0 -1
- package/components/input-iban/translations/hu-HU.js +0 -1
- package/components/input-iban/translations/it-IT.js +0 -1
- package/components/input-iban/translations/nl-BE.js +0 -1
- package/components/input-iban/translations/nl-NL.js +0 -1
- package/components/input-iban/translations/pl-PL.js +0 -1
- package/components/input-iban/translations/ro-RO.js +0 -1
- package/components/input-iban/translations/ru-RU.js +0 -1
- package/components/input-iban/translations/sk-SK.js +0 -1
- package/components/input-iban/translations/uk-UA.js +0 -1
- package/components/input-range/src/LionInputRange.js +18 -19
- package/components/input-range/test/lion-input-range.test.js +23 -48
- package/components/input-range/translations/bg-BG.js +0 -1
- package/components/input-range/translations/cs-CZ.js +0 -1
- package/components/input-range/translations/de-DE.js +0 -1
- package/components/input-range/translations/en-AU.js +0 -1
- package/components/input-range/translations/en-GB.js +0 -1
- package/components/input-range/translations/en-PH.js +0 -1
- package/components/input-range/translations/en-US.js +0 -1
- package/components/input-range/translations/es-ES.js +0 -1
- package/components/input-range/translations/fr-BE.js +0 -1
- package/components/input-range/translations/fr-FR.js +0 -1
- package/components/input-range/translations/hu-HU.js +0 -1
- package/components/input-range/translations/it-IT.js +0 -1
- package/components/input-range/translations/nl-BE.js +0 -1
- package/components/input-range/translations/nl-NL.js +0 -1
- package/components/input-range/translations/pl-PL.js +0 -1
- package/components/input-range/translations/ro-RO.js +0 -1
- package/components/input-range/translations/ru-RU.js +0 -1
- package/components/input-range/translations/sk-SK.js +0 -1
- package/components/input-range/translations/uk-UA.js +0 -1
- package/components/input-range/translations/zh-CN.js +0 -1
- package/components/input-stepper/src/LionInputStepper.js +19 -38
- package/components/input-stepper/test/lion-input-stepper-integrations.test.js +0 -1
- package/components/input-stepper/test/lion-input-stepper.test.js +0 -1
- package/components/input-stepper/test-suites/lion-input-stepper.integration.suite.js +0 -2
- package/components/input-stepper/test-suites/lion-input-stepper.suite.js +56 -105
- package/components/input-stepper/translations/bg-BG.js +0 -1
- package/components/input-stepper/translations/cs-CZ.js +0 -1
- package/components/input-stepper/translations/de-DE.js +0 -1
- package/components/input-stepper/translations/en-AU.js +0 -1
- package/components/input-stepper/translations/en-GB.js +0 -1
- package/components/input-stepper/translations/en-US.js +0 -1
- package/components/input-stepper/translations/es-ES.js +0 -1
- package/components/input-stepper/translations/fr-BE.js +0 -1
- package/components/input-stepper/translations/fr-FR.js +0 -1
- package/components/input-stepper/translations/hu-HU.js +0 -1
- package/components/input-stepper/translations/it-IT.js +0 -1
- package/components/input-stepper/translations/nl-BE.js +0 -1
- package/components/input-stepper/translations/nl-NL.js +0 -1
- package/components/input-stepper/translations/pl-PL.js +0 -1
- package/components/input-stepper/translations/ro-RO.js +0 -1
- package/components/input-stepper/translations/ru-RU.js +0 -1
- package/components/input-stepper/translations/sk-SK.js +0 -1
- package/components/input-stepper/translations/uk-UA.js +0 -1
- package/components/input-tel/src/LionInputTel.js +53 -37
- package/components/input-tel/src/PhoneUtilManager.js +6 -4
- package/components/input-tel/src/formatters.js +12 -10
- package/components/input-tel/src/parsers.js +3 -3
- package/components/input-tel/src/preprocessors.js +15 -7
- package/components/input-tel/src/validators.js +4 -6
- package/components/input-tel/test/LionInputTel.test.js +4 -2
- package/components/input-tel/test/formatters.test.js +22 -10
- package/components/input-tel/test/parsers.test.js +127 -11
- package/components/input-tel/test/preprocessors.test.js +24 -13
- package/components/input-tel/test/validators.test.js +7 -14
- package/components/input-tel/test-helpers/mockPhoneUtilManager.js +20 -8
- package/components/input-tel/test-suites/LionInputTel.suite.js +33 -73
- package/components/input-tel/translations/bg-BG.js +0 -1
- package/components/input-tel/translations/cs-CZ.js +0 -1
- package/components/input-tel/translations/de-DE.js +0 -1
- package/components/input-tel/translations/en-AU.js +0 -1
- package/components/input-tel/translations/en-GB.js +0 -1
- package/components/input-tel/translations/en-US.js +0 -1
- package/components/input-tel/translations/es-ES.js +0 -1
- package/components/input-tel/translations/fr-BE.js +0 -1
- package/components/input-tel/translations/fr-FR.js +0 -1
- package/components/input-tel/translations/hu-HU.js +0 -1
- package/components/input-tel/translations/it-IT.js +0 -1
- package/components/input-tel/translations/nl-BE.js +0 -1
- package/components/input-tel/translations/nl-NL.js +0 -1
- package/components/input-tel/translations/pl-PL.js +0 -1
- package/components/input-tel/translations/ro-RO.js +0 -1
- package/components/input-tel/translations/ru-RU.js +0 -1
- package/components/input-tel/translations/sk-SK.js +0 -1
- package/components/input-tel/translations/uk-UA.js +0 -1
- package/components/input-tel-dropdown/src/LionInputTelDropdown.js +10 -28
- package/components/input-tel-dropdown/src/regionCodeToLocale.js +3 -1
- package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +31 -38
- package/components/input-tel-dropdown/test/regionCodeToLocale.test.js +0 -1
- package/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
- package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +16 -11
- package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +54 -79
- package/components/listbox/src/LionListbox.js +5 -2
- package/components/listbox/src/LionOption.js +8 -7
- package/components/listbox/src/LionOptions.js +0 -3
- package/components/listbox/src/ListboxMixin.js +786 -820
- package/components/listbox/test/lion-listbox.test.js +0 -1
- package/components/listbox/test/lion-option.test.js +53 -64
- package/components/listbox/test/lion-options.test.js +3 -4
- package/components/listbox/test-helpers/getListboxMembers.js +6 -3
- package/components/listbox/test-suites/ListboxMixin.suite.js +101 -261
- package/components/localize/src/LocalizeManager.js +40 -40
- package/components/localize/src/LocalizeMixin.js +130 -157
- package/components/localize/src/date/formatDate.js +1 -5
- package/components/localize/src/date/getDateFormatBasedOnLocale.js +5 -3
- package/components/localize/src/date/getMonthNames.js +3 -5
- package/components/localize/src/date/getWeekdayNames.js +1 -5
- package/components/localize/src/date/parseDate.js +5 -20
- package/components/localize/src/date/utils/normalizeIntlDate.js +0 -7
- package/components/localize/src/getLocalizeManager.js +0 -3
- package/components/localize/src/number/formatNumber.js +3 -7
- package/components/localize/src/number/formatNumberToParts.js +52 -18
- package/components/localize/src/number/getCurrencyName.js +5 -5
- package/components/localize/src/number/getFractionDigits.js +4 -4
- package/components/localize/src/number/getSeparatorsFromNumber.js +1 -3
- package/components/localize/src/number/parseNumber.js +0 -3
- package/components/localize/src/number/utils/normalize-format-number-to-parts/forceAddGroupSeparators.js +0 -1
- package/components/localize/src/number/utils/normalize-format-number-to-parts/forceSpaceBetweenCurrencyCodeAndNumber.js +4 -1
- package/components/localize/test/LocalizeManager.test.js +385 -278
- package/components/localize/test/LocalizeMixin.test.js +28 -112
- package/components/localize/test/date/formatDate.test.js +18 -48
- package/components/localize/test/date/getDateFormatBasedOnLocale.test.js +0 -3
- package/components/localize/test/date/getMonthNames.test.js +27 -12
- package/components/localize/test/date/getWeekdayNames.test.js +93 -49
- package/components/localize/test/date/normalizeDateTime.test.js +0 -2
- package/components/localize/test/date/parseDate.test.js +12 -16
- package/components/localize/test/getLocalizeManager.test.js +0 -3
- package/components/localize/test/isLocalizeESModule.test.js +32 -13
- package/components/localize/test/localize.test.js +0 -4
- package/components/localize/test/number/formatNumber.test.js +215 -106
- package/components/localize/test/number/formatNumberToParts.test.js +31 -38
- package/components/localize/test/number/getCurrencyName.test.js +20 -6
- package/components/localize/test/number/getDecimalSeparator.test.js +5 -4
- package/components/localize/test/number/getFractionDigits.test.js +0 -2
- package/components/localize/test/number/getGroupSeparator.test.js +0 -2
- package/components/localize/test/number/getSeparatorsFromNumber.test.js +5 -3
- package/components/localize/test/number/parseNumber.test.js +123 -56
- package/components/localize/test/side-effect-free-entrypoint.test.js +0 -6
- package/components/localize/test-helpers/fake-imports.js +11 -6
- package/components/localize/test-helpers/localizeTearDown.js +0 -1
- package/components/menu/src/InteractiveListMixin.js +637 -638
- package/components/menu/src/LionMenu.js +46 -59
- package/components/menu/src/MoreButtonMenuMixin.js +215 -238
- package/components/menu/src/MultiLevelListMixin.js +240 -246
- package/components/menu/src/utils/isInView.js +0 -1
- package/components/menu/src/utils/listItemInteractions.js +4 -4
- package/components/menu/test/InteractiveListMixin.test.js +0 -1
- package/components/menu/test/MoreButtonMenuMixin.test.js +3 -2
- package/components/menu/test/MultiLevelListMixin.test.js +0 -1
- package/components/menu/test/lion-menu-interactions.test.js +0 -1
- package/components/menu/test/lion-menu.test.js +6 -2
- package/components/menu/test-helpers/mimicKeyPress.js +12 -2
- package/components/menu/test-suites/InteractiveListMixin.suite.js +4 -43
- package/components/menu/test-suites/LionMenu.suite.js +1 -8
- package/components/menu/test-suites/LionMenuInteractions.suite.js +22 -44
- package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +34 -41
- package/components/menu/test-suites/MultiLevelListMixin.suite.js +5 -23
- package/components/overlays/src/ArrowMixin.js +111 -127
- package/components/overlays/src/OverlayController.js +172 -152
- package/components/overlays/src/OverlayMixin.js +64 -69
- package/components/overlays/src/OverlaysManager.js +30 -32
- package/components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js +0 -1
- package/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js +11 -11
- package/components/overlays/src/configurations/withBottomSheetConfig.js +12 -13
- package/components/overlays/src/configurations/withDropdownConfig.js +4 -2
- package/components/overlays/src/configurations/withModalDialogConfig.js +12 -13
- package/components/overlays/src/configurations/withPopoverConfig.js +27 -25
- package/components/overlays/src/configurations/withTooltipConfig.js +15 -13
- package/components/overlays/src/overlayDocumentStyle.js +1 -1
- package/components/overlays/src/overlayShadowDomStyle.js +0 -1
- package/components/overlays/src/singleton.js +0 -2
- package/components/overlays/src/utils/adopt-styles.js +18 -18
- package/components/overlays/src/utils/deep-contains.js +7 -6
- package/components/overlays/src/utils/get-focusable-elements.js +7 -10
- package/components/overlays/src/utils/inert-siblings.js +2 -4
- package/components/overlays/src/utils/is-equal-config.js +2 -3
- package/components/overlays/src/utils/is-visible.js +0 -1
- package/components/overlays/src/utils/simulate-tab.js +1 -4
- package/components/overlays/src/utils/sort-by-tabindex.js +2 -4
- package/components/overlays/test/ArrowMixin.test.js +18 -30
- package/components/overlays/test/OverlayController.test.js +406 -555
- package/components/overlays/test/OverlayMixin.test.js +0 -2
- package/components/overlays/test/OverlaysManager.test.js +30 -35
- package/components/overlays/test/global-positioning.test.js +6 -10
- package/components/overlays/test/invoker-compatibility.test.js +37 -0
- package/components/overlays/test/local-positioning.test.js +101 -103
- package/components/overlays/test/utils-tests/active-element.test.js +12 -27
- package/components/overlays/test/utils-tests/adopt-styles.test.js +25 -56
- package/components/overlays/test/utils-tests/deep-contains.test.js +73 -74
- package/components/overlays/test/utils-tests/get-focusable-elements.test.js +6 -23
- package/components/overlays/test/utils-tests/is-equal-config.test.js +32 -13
- package/components/overlays/test/utils-tests/visibility.test.js +44 -79
- package/components/overlays/test-helpers/createShadowHost.js +5 -3
- package/components/overlays/test-helpers/normalizeTransformStyle.js +2 -4
- package/components/overlays/test-suites/OverlayMixin.suite.js +152 -181
- package/components/overlays/test-suites/WithHoverInteraction.suite.js +96 -79
- package/components/overlays/translations/bg-BG.js +0 -1
- package/components/overlays/translations/cs-CZ.js +0 -1
- package/components/overlays/translations/de-DE.js +0 -1
- package/components/overlays/translations/en-AU.js +0 -1
- package/components/overlays/translations/en-GB.js +0 -1
- package/components/overlays/translations/en-US.js +0 -1
- package/components/overlays/translations/es-ES.js +0 -1
- package/components/overlays/translations/fr-BE.js +0 -1
- package/components/overlays/translations/fr-FR.js +0 -1
- package/components/overlays/translations/hu-HU.js +0 -1
- package/components/overlays/translations/it-IT.js +0 -1
- package/components/overlays/translations/nl-BE.js +0 -1
- package/components/overlays/translations/nl-NL.js +0 -1
- package/components/overlays/translations/pl-PL.js +0 -1
- package/components/overlays/translations/ro-RO.js +0 -1
- package/components/overlays/translations/ru-RU.js +0 -1
- package/components/overlays/translations/sk-SK.js +0 -1
- package/components/overlays/translations/tr-TR.js +0 -1
- package/components/overlays/translations/uk-UA.js +0 -1
- package/components/pagination/src/LionPagination.js +9 -12
- package/components/pagination/test/lion-pagination.test.js +18 -50
- package/components/progress-indicator/src/LionProgressIndicator.js +10 -12
- package/components/progress-indicator/test/lion-progress-indicator.test.js +1 -22
- package/components/radio-group/src/LionRadioGroup.js +1 -2
- package/components/radio-group/test/lion-radio-group-integrations.test.js +0 -1
- package/components/radio-group/test/lion-radio-group.test.js +27 -27
- package/components/radio-group/test/lion-radio-integrations.test.js +3 -2
- package/components/radio-group/test/lion-radio.test.js +30 -16
- package/components/select/src/LionSelect.js +12 -13
- package/components/select/test/lion-select.test.js +7 -12
- package/components/select-rich/src/LionSelectInvoker.js +18 -11
- package/components/select-rich/src/LionSelectRich.js +22 -44
- package/components/select-rich/test/demos.screenshots-test.js +40 -9
- package/components/select-rich/test/lion-select-invoker.test.js +26 -43
- package/components/select-rich/test/lion-select-listbox-suite-integration.test.js +3 -3
- package/components/select-rich/test/lion-select-rich-dialog-integration.test.js +4 -9
- package/components/select-rich/test/lion-select-rich-interaction.test.js +116 -116
- package/components/select-rich/test/lion-select-rich-upgrade.test.js +3 -7
- package/components/select-rich/test/lion-select-rich.test.js +153 -195
- package/components/select-rich/test-helpers/getSelectRichMembers.js +4 -1
- package/components/steps/src/LionStep.js +21 -12
- package/components/steps/src/LionSteps.js +25 -25
- package/components/steps/test/lion-step.test.js +18 -25
- package/components/steps/test/lion-steps.test.js +45 -78
- package/components/switch/src/LionSwitch.js +2 -7
- package/components/switch/src/LionSwitchButton.js +5 -6
- package/components/switch/test/lion-switch-button.test.js +16 -28
- package/components/switch/test/lion-switch.test.js +17 -31
- package/components/tabs/src/LionTabs.js +25 -28
- package/components/tabs/test/lion-tabs.test.js +156 -154
- package/components/textarea/src/LionTextarea.js +4 -23
- package/components/textarea/test/lion-textarea-integrations.test.js +0 -5
- package/components/textarea/test/lion-textarea.test.js +2 -28
- package/components/tooltip/src/LionTooltip.js +6 -6
- package/components/tooltip/test/lion-tooltip.test.js +75 -102
- package/components/validate-messages/src/getLocalizedMessage.js +8 -7
- package/components/validate-messages/src/loadDefaultFeedbackMessages.js +3 -1
- package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -5
- package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +5 -2
- package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +99 -35
- package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +4 -3
- package/components/validate-messages/test/loadDefaultFeedbackMessages.test.js +5 -3
- package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.js +80 -45
- package/components/validate-messages/translations/bg-BG.js +0 -1
- package/components/validate-messages/translations/cs-CZ.js +0 -1
- package/components/validate-messages/translations/de-DE.js +0 -1
- package/components/validate-messages/translations/en-AU.js +0 -1
- package/components/validate-messages/translations/en-GB.js +0 -1
- package/components/validate-messages/translations/en-PH.js +0 -1
- package/components/validate-messages/translations/en-US.js +0 -1
- package/components/validate-messages/translations/es-ES.js +0 -1
- package/components/validate-messages/translations/fr-BE.js +0 -1
- package/components/validate-messages/translations/fr-FR.js +0 -1
- package/components/validate-messages/translations/hu-HU.js +0 -1
- package/components/validate-messages/translations/it-IT.js +0 -1
- package/components/validate-messages/translations/nl-BE.js +0 -1
- package/components/validate-messages/translations/nl-NL.js +0 -1
- package/components/validate-messages/translations/pl-PL.js +0 -1
- package/components/validate-messages/translations/ro-RO.js +0 -1
- package/components/validate-messages/translations/ru-RU.js +0 -1
- package/components/validate-messages/translations/sk-SK.js +0 -1
- package/components/validate-messages/translations/tr-TR.js +0 -1
- package/components/validate-messages/translations/uk-UA.js +0 -1
- package/custom-elements.json +229 -85
- package/dist-types/components/core/src/SlotMixin.d.ts +6 -1
- package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
- package/dist-types/components/core/types/SlotMixinTypes.d.ts +5 -1
- package/dist-types/components/core/types/SlotMixinTypes.d.ts.map +1 -1
- package/dist-types/components/form-core/src/LionField.d.ts +3 -1
- package/dist-types/components/form-core/src/LionField.d.ts.map +1 -1
- package/dist-types/components/input-tel/src/LionInputTel.d.ts +6 -6
- package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
- package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts +2 -2
- package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts.map +1 -1
- package/dist-types/components/input-tel/src/formatters.d.ts +2 -2
- package/dist-types/components/input-tel/src/formatters.d.ts.map +1 -1
- package/dist-types/components/input-tel/src/preprocessors.d.ts +2 -2
- package/dist-types/components/input-tel/src/preprocessors.d.ts.map +1 -1
- package/dist-types/components/input-tel/test/validators.test.d.ts +1 -1
- package/dist-types/components/input-tel/test/validators.test.d.ts.map +1 -1
- package/dist-types/components/input-tel/test-helpers/mockPhoneUtilManager.d.ts +5 -0
- package/dist-types/components/input-tel/test-helpers/mockPhoneUtilManager.d.ts.map +1 -1
- package/dist-types/components/listbox/src/LionListbox.d.ts +2 -2
- package/dist-types/components/listbox/src/LionListbox.d.ts.map +1 -1
- package/dist-types/components/listbox/src/LionOption.d.ts +5 -2
- package/dist-types/components/listbox/src/LionOption.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlayController.d.ts +3 -1
- package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlaysManager.d.ts.map +1 -1
- package/dist-types/components/overlays/src/overlayDocumentStyle.d.ts.map +1 -1
- package/dist-types/components/overlays/test/invoker-compatibility.test.d.ts +3 -0
- package/dist-types/components/overlays/test/invoker-compatibility.test.d.ts.map +1 -0
- package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts +3 -1
- package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts.map +1 -1
- package/dist-types/components/select-rich/src/LionSelectRich.d.ts +6 -5
- package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- package/docs/components/accordion/overview.md +2 -2
- package/docs/components/accordion/reference.md +2 -2
- package/docs/components/accordion/use-cases.md +2 -2
- package/docs/components/button/examples.md +2 -2
- package/docs/components/button/extensions.md +2 -2
- package/docs/components/button/overview.md +2 -2
- package/docs/components/button/use-cases.md +2 -2
- package/docs/components/calendar/overview.md +2 -2
- package/docs/components/calendar/use-cases.md +2 -2
- package/docs/components/checkbox-group/overview.md +4 -4
- package/docs/components/checkbox-group/use-cases.md +2 -2
- package/docs/components/collapsible/examples.md +2 -2
- package/docs/components/collapsible/overview.md +3 -3
- package/docs/components/collapsible/use-cases.md +2 -2
- package/docs/components/combobox/api-table.md +1 -1
- package/docs/components/combobox/extensions.md +2 -2
- package/docs/components/combobox/overview.md +3 -3
- package/docs/components/combobox/use-cases.md +3 -3
- package/docs/components/dialog/overview.md +3 -3
- package/docs/components/dialog/use-cases.md +2 -2
- package/docs/components/drawer/overview.md +2 -2
- package/docs/components/drawer/use-cases.md +2 -2
- package/docs/components/fieldset/overview.md +7 -7
- package/docs/components/fieldset/use-cases.md +2 -2
- package/docs/components/form/overview.md +5 -5
- package/docs/components/form/use-cases.md +4 -4
- package/docs/components/icon/overview.md +2 -2
- package/docs/components/icon/use-cases.md +3 -3
- package/docs/components/input/overview.md +3 -3
- package/docs/components/input/use-cases.md +2 -2
- package/docs/components/input-amount/overview.md +5 -5
- package/docs/components/input-amount/use-cases.md +2 -2
- package/docs/components/input-amount-dropdown/use-cases.md +2 -2
- package/docs/components/input-date/overview.md +5 -5
- package/docs/components/input-date/use-cases.md +2 -2
- package/docs/components/input-datepicker/overview.md +7 -7
- package/docs/components/input-datepicker/use-cases.md +2 -2
- package/docs/components/input-email/overview.md +4 -4
- package/docs/components/input-email/use-cases.md +2 -2
- package/docs/components/input-file/overview.md +3 -3
- package/docs/components/input-file/use-cases.md +2 -2
- package/docs/components/input-iban/overview.md +4 -4
- package/docs/components/input-iban/use-cases.md +2 -2
- package/docs/components/input-range/overview.md +4 -4
- package/docs/components/input-range/use-cases.md +2 -2
- package/docs/components/input-stepper/overview.md +3 -3
- package/docs/components/input-stepper/use-cases.md +2 -2
- package/docs/components/input-tel/overview.md +3 -3
- package/docs/components/input-tel/use-cases.md +8 -8
- package/docs/components/input-tel-dropdown/extensions.md +2 -2
- package/docs/components/input-tel-dropdown/overview.md +3 -3
- package/docs/components/input-tel-dropdown/use-cases.md +2 -2
- package/docs/components/listbox/api-table.md +4 -4
- package/docs/components/listbox/overview.md +2 -2
- package/docs/components/listbox/use-cases.md +3 -3
- package/docs/components/menu/extensions.md +2 -2
- package/docs/components/menu/migration.md +2 -2
- package/docs/components/menu/overview.md +2 -2
- package/docs/components/menu/use-cases.md +1 -1
- package/docs/components/pagination/overview.md +2 -2
- package/docs/components/pagination/use-cases.md +2 -2
- package/docs/components/progress-indicator/examples.md +2 -2
- package/docs/components/progress-indicator/overview.md +2 -2
- package/docs/components/radio-group/overview.md +5 -5
- package/docs/components/radio-group/use-cases.md +2 -2
- package/docs/components/select/overview.md +2 -2
- package/docs/components/select/use-cases.md +3 -3
- package/docs/components/select-rich/api-table.md +1 -1
- package/docs/components/select-rich/examples.md +2 -2
- package/docs/components/select-rich/overview.md +2 -2
- package/docs/components/select-rich/use-cases.md +4 -4
- package/docs/components/steps/overview.md +2 -2
- package/docs/components/steps/use-cases.md +2 -2
- package/docs/components/switch/overview.md +2 -2
- package/docs/components/switch/reference.md +2 -2
- package/docs/components/switch/use-cases.md +2 -2
- package/docs/components/tabs/examples.md +3 -3
- package/docs/components/tabs/overview.md +2 -2
- package/docs/components/tabs/use-cases.md +2 -2
- package/docs/components/textarea/overview.md +2 -2
- package/docs/components/textarea/use-cases.md +2 -2
- package/docs/components/tooltip/examples.md +2 -2
- package/docs/components/tooltip/overview.md +2 -2
- package/docs/components/tooltip/use-cases.md +2 -2
- package/docs/fundamentals/index.md +4 -4
- package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +2 -2
- package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +2 -2
- package/docs/fundamentals/node-tools/providence-analytics/index.md +2 -2
- package/docs/fundamentals/node-tools/providence-analytics/overview.md +2 -2
- package/docs/fundamentals/node-tools/publish-docs/index.md +2 -2
- package/docs/fundamentals/node-tools/publish-docs/overview.md +5 -5
- package/docs/fundamentals/node-tools/remark-extend/index.md +2 -2
- package/docs/fundamentals/node-tools/remark-extend/overview.md +2 -2
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +2 -2
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +4 -4
- package/docs/fundamentals/rationales/TypeScript.md +62 -2
- package/docs/fundamentals/rationales/accessibility.md +5 -5
- package/docs/fundamentals/rationales/side-effects.md +2 -2
- package/docs/fundamentals/rationales/versioning.md +2 -2
- package/docs/fundamentals/systems/core/SlotMixin.md +3 -3
- package/docs/fundamentals/systems/core/index.md +2 -2
- package/docs/fundamentals/systems/core/overview.md +3 -3
- package/docs/fundamentals/systems/form/formatting-and-parsing.md +6 -6
- package/docs/fundamentals/systems/form/index.md +2 -2
- package/docs/fundamentals/systems/form/interaction-states.md +2 -2
- package/docs/fundamentals/systems/form/model-value.md +3 -3
- package/docs/fundamentals/systems/form/overview.md +30 -30
- package/docs/fundamentals/systems/form/styling.md +2 -2
- package/docs/fundamentals/systems/form/use-cases.md +2 -2
- package/docs/fundamentals/systems/form/validate.md +4 -4
- package/docs/fundamentals/systems/icon/index.md +2 -2
- package/docs/fundamentals/systems/icon/overview.md +2 -2
- package/docs/fundamentals/systems/localize/dates.md +2 -2
- package/docs/fundamentals/systems/localize/index.md +2 -2
- package/docs/fundamentals/systems/localize/numbers.md +2 -2
- package/docs/fundamentals/systems/localize/overview.md +6 -6
- package/docs/fundamentals/systems/localize/rationale.md +2 -2
- package/docs/fundamentals/systems/localize/text.md +2 -2
- package/docs/fundamentals/systems/localize/use-cases.md +2 -2
- package/docs/fundamentals/systems/overlays/_edge-cases.md +2 -2
- package/docs/fundamentals/systems/overlays/api-table.md +1 -1
- package/docs/fundamentals/systems/overlays/configuration.md +4 -4
- package/docs/fundamentals/systems/overlays/index.md +2 -2
- package/docs/fundamentals/systems/overlays/overview.md +7 -7
- package/docs/fundamentals/systems/overlays/rationale.md +2 -2
- package/docs/fundamentals/systems/overlays/use-cases.md +4 -4
- package/docs/fundamentals/tools/ajax/index.md +2 -2
- package/docs/fundamentals/tools/ajax/overview.md +2 -2
- package/docs/fundamentals/tools/ajax/use-cases.md +2 -2
- package/docs/fundamentals/tools/helpers/action-logger.md +2 -2
- package/docs/fundamentals/tools/helpers/index.md +2 -2
- package/docs/fundamentals/tools/helpers/overview.md +3 -3
- package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/example-success/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/overview.md +6 -6
- package/docs/guides/how-to/create-a-custom-field.md +7 -7
- package/docs/guides/how-to/create-a-form.md +6 -6
- package/docs/guides/how-to/extend-a-native-input.md +4 -4
- package/docs/guides/how-to/get-started.md +2 -2
- package/docs/guides/how-to/index.md +1 -1
- package/docs/guides/index.md +8 -8
- package/docs/guides/principles/definitions-and-terms.md +2 -2
- package/docs/guides/principles/index.md +5 -5
- package/docs/guides/principles/scoped-elements.md +2 -2
- package/docs/guides/principles/styling.md +3 -3
- package/docs/guides/principles/subclasser-apis.md +2 -2
- package/exports/define/lion-accordion.js +0 -1
- package/exports/define/lion-button-reset.js +0 -1
- package/exports/define/lion-button-submit.js +0 -1
- package/exports/define/lion-button.js +0 -1
- package/exports/define/lion-calendar.js +0 -1
- package/exports/define/lion-checkbox-group.js +0 -1
- package/exports/define/lion-checkbox-indeterminate.js +0 -1
- package/exports/define/lion-checkbox.js +0 -1
- package/exports/define/lion-collapsible.js +0 -1
- package/exports/define/lion-combobox.js +0 -1
- package/exports/define/lion-dialog.js +0 -1
- package/exports/define/lion-drawer.js +0 -1
- package/exports/define/lion-field.js +0 -1
- package/exports/define/lion-fieldset.js +0 -1
- package/exports/define/lion-form.js +0 -1
- package/exports/define/lion-icon.js +0 -1
- package/exports/define/lion-input-amount-dropdown.js +0 -1
- package/exports/define/lion-input-amount.js +0 -1
- package/exports/define/lion-input-date.js +0 -1
- package/exports/define/lion-input-datepicker.js +0 -1
- package/exports/define/lion-input-email.js +0 -1
- package/exports/define/lion-input-file.js +0 -1
- package/exports/define/lion-input-iban.js +0 -1
- package/exports/define/lion-input-range.js +0 -1
- package/exports/define/lion-input-stepper.js +0 -1
- package/exports/define/lion-input-tel-dropdown.js +0 -1
- package/exports/define/lion-input-tel.js +0 -1
- package/exports/define/lion-input.js +0 -1
- package/exports/define/lion-item.js +0 -1
- package/exports/define/lion-listbox.js +0 -1
- package/exports/define/lion-menu.js +0 -1
- package/exports/define/lion-menuitem.js +0 -1
- package/exports/define/lion-option.js +0 -1
- package/exports/define/lion-options.js +0 -1
- package/exports/define/lion-pagination.js +0 -1
- package/exports/define/lion-progress-indicator.js +0 -1
- package/exports/define/lion-radio-group.js +0 -1
- package/exports/define/lion-radio.js +0 -1
- package/exports/define/lion-select-invoker.js +0 -1
- package/exports/define/lion-select-rich.js +0 -1
- package/exports/define/lion-select.js +0 -1
- package/exports/define/lion-selected-file-list.js +0 -1
- package/exports/define/lion-step.js +0 -1
- package/exports/define/lion-steps.js +0 -1
- package/exports/define/lion-switch-button.js +0 -1
- package/exports/define/lion-switch.js +0 -1
- package/exports/define/lion-tabs.js +0 -1
- package/exports/define/lion-textarea.js +0 -1
- package/exports/define/lion-tooltip.js +0 -1
- package/exports/define/lion-validation-feedback.js +0 -1
- package/exports/define-helpers/sb-action-logger.js +0 -1
- package/exports/define-helpers/sb-locale-switcher.js +0 -1
- package/exports/form-core.js +0 -8
- package/exports/localize-no-side-effects.js +0 -1
- package/exports/localize.js +0 -2
- package/exports/overlays.js +0 -4
- package/generated/awesome-phonenumber/LICENSE +22 -0
- package/generated/awesome-phonenumber/LICENSE.closure-library +176 -0
- package/generated/awesome-phonenumber/LICENSE.libphonenumber +176 -0
- package/generated/awesome-phonenumber/checksums.json +6 -0
- package/generated/awesome-phonenumber/index-esm.mjs +817 -0
- package/generated/awesome-phonenumber/index.d.ts +227 -0
- package/generated/awesome-phonenumber/index.js +45 -0
- package/generated/awesome-phonenumber/lib/index.js +710 -0
- package/generated/awesome-phonenumber/package.json +9 -0
- package/generated/awesome-phonenumber/provenance.json +13 -0
- package/package.json +38 -15
- package/vscode.html-custom-data.json +5 -5
- package/web-types.json +1 -1
- package/vendor/README.md +0 -61
- package/vendor/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz +0 -0
|
@@ -38,7 +38,6 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
38
38
|
let groupTag;
|
|
39
39
|
/** @type {{_$litStatic$: any}} */
|
|
40
40
|
let childTag;
|
|
41
|
-
|
|
42
41
|
before(async () => {
|
|
43
42
|
// @ts-expect-error
|
|
44
43
|
tag = unsafeStatic(cfg.tagString);
|
|
@@ -47,7 +46,6 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
47
46
|
// @ts-expect-error
|
|
48
47
|
childTag = unsafeStatic(cfg.childTagString);
|
|
49
48
|
});
|
|
50
|
-
|
|
51
49
|
describe('CheckboxIndeterminate', async () => {
|
|
52
50
|
/** @type {{_$litStatic$: any}} */
|
|
53
51
|
|
|
@@ -63,7 +61,6 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
63
61
|
// Assert
|
|
64
62
|
expect(el.getAttribute('type')).to.equal('checkbox');
|
|
65
63
|
});
|
|
66
|
-
|
|
67
64
|
it('should not be indeterminate by default if all children are unchecked', async () => {
|
|
68
65
|
// Arrange
|
|
69
66
|
const el = await fixture(html`
|
|
@@ -75,14 +72,13 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
75
72
|
</${tag}>
|
|
76
73
|
</${groupTag}>
|
|
77
74
|
`);
|
|
78
|
-
const elIndeterminate =
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
const elIndeterminate =
|
|
76
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
77
|
+
el.querySelector(`${cfg.tagString}`);
|
|
81
78
|
|
|
82
79
|
// Assert
|
|
83
80
|
expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
|
|
84
81
|
});
|
|
85
|
-
|
|
86
82
|
it('should be indeterminate if one child is checked', async () => {
|
|
87
83
|
// Arrange
|
|
88
84
|
const el = /** @type {LionCheckboxGroup} */ await fixture(html`
|
|
@@ -94,17 +90,16 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
94
90
|
</${tag}>
|
|
95
91
|
</${groupTag}>
|
|
96
92
|
`);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
el.querySelector(`${cfg.tagString}`)
|
|
100
|
-
);
|
|
93
|
+
const elIndeterminate =
|
|
94
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
95
|
+
el.querySelector(`${cfg.tagString}`);
|
|
101
96
|
// Assert
|
|
102
97
|
expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
|
|
103
98
|
});
|
|
104
|
-
|
|
105
99
|
it('should be checked if all children are checked', async () => {
|
|
106
100
|
// Arrange
|
|
107
|
-
const el =
|
|
101
|
+
const el =
|
|
102
|
+
/** @type {LionCheckboxGroup} */
|
|
108
103
|
await fixture(html`
|
|
109
104
|
<${groupTag} name="scientists[]">
|
|
110
105
|
<${tag} label="Favorite scientists">
|
|
@@ -113,20 +108,19 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
113
108
|
<${childTag} label="Marie Curie" checked></${childTag}>
|
|
114
109
|
</${tag}>
|
|
115
110
|
</${groupTag}>
|
|
116
|
-
`)
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
el.querySelector(`${cfg.tagString}`)
|
|
120
|
-
);
|
|
111
|
+
`);
|
|
112
|
+
const elIndeterminate =
|
|
113
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
114
|
+
el.querySelector(`${cfg.tagString}`);
|
|
121
115
|
|
|
122
116
|
// Assert
|
|
123
117
|
expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
|
|
124
118
|
expect(elIndeterminate?.checked).to.be.true;
|
|
125
119
|
});
|
|
126
|
-
|
|
127
120
|
it('should become indeterminate if one child is checked', async () => {
|
|
128
121
|
// Arrange
|
|
129
|
-
const el =
|
|
122
|
+
const el =
|
|
123
|
+
/** @type {LionCheckboxGroup} */
|
|
130
124
|
await fixture(html`
|
|
131
125
|
<${groupTag} name="scientists[]">
|
|
132
126
|
<${tag} label="Favorite scientists">
|
|
@@ -135,12 +129,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
135
129
|
<${childTag} label="Marie Curie"></${childTag}>
|
|
136
130
|
</${tag}>
|
|
137
131
|
</${groupTag}>
|
|
138
|
-
`)
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
el.querySelector(`${cfg.tagString}`)
|
|
142
|
-
);
|
|
143
|
-
|
|
132
|
+
`);
|
|
133
|
+
const elIndeterminate =
|
|
134
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
135
|
+
el.querySelector(`${cfg.tagString}`);
|
|
144
136
|
const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
145
137
|
|
|
146
138
|
// Act
|
|
@@ -150,10 +142,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
150
142
|
// Assert
|
|
151
143
|
expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
|
|
152
144
|
});
|
|
153
|
-
|
|
154
145
|
it('should become checked if all children are checked', async () => {
|
|
155
146
|
// Arrange
|
|
156
|
-
const el =
|
|
147
|
+
const el =
|
|
148
|
+
/** @type {LionCheckboxGroup} */
|
|
157
149
|
await fixture(html`
|
|
158
150
|
<${groupTag} name="scientists[]">
|
|
159
151
|
<${tag} label="Favorite scientists">
|
|
@@ -162,11 +154,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
162
154
|
<${childTag} label="Marie Curie"></${childTag}>
|
|
163
155
|
</${tag}>
|
|
164
156
|
</${groupTag}>
|
|
165
|
-
`)
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
el.querySelector(`${cfg.tagString}`)
|
|
169
|
-
);
|
|
157
|
+
`);
|
|
158
|
+
const elIndeterminate =
|
|
159
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
160
|
+
el.querySelector(`${cfg.tagString}`);
|
|
170
161
|
const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
171
162
|
|
|
172
163
|
// Act
|
|
@@ -179,10 +170,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
179
170
|
expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
|
|
180
171
|
expect(elIndeterminate?.checked).to.be.true;
|
|
181
172
|
});
|
|
182
|
-
|
|
183
173
|
it('should become indeterminate if all children except disabled ones are checked', async () => {
|
|
184
174
|
// Arrange
|
|
185
|
-
const el =
|
|
175
|
+
const el =
|
|
176
|
+
/** @type {LionCheckboxGroup} */
|
|
186
177
|
await fixture(html`
|
|
187
178
|
<${groupTag} name="scientists[]">
|
|
188
179
|
<${tag} label="Favorite scientists">
|
|
@@ -191,11 +182,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
191
182
|
<${childTag} label="Marie Curie"></${childTag}>
|
|
192
183
|
</${tag}>
|
|
193
184
|
</${groupTag}>
|
|
194
|
-
`)
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
el.querySelector(`${cfg.tagString}`)
|
|
198
|
-
);
|
|
185
|
+
`);
|
|
186
|
+
const elIndeterminate =
|
|
187
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
188
|
+
el.querySelector(`${cfg.tagString}`);
|
|
199
189
|
const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
200
190
|
|
|
201
191
|
// Act
|
|
@@ -207,7 +197,6 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
207
197
|
expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
|
|
208
198
|
expect(elIndeterminate?.checked).to.be.true;
|
|
209
199
|
});
|
|
210
|
-
|
|
211
200
|
it('should be checked when all children are prechecked', async () => {
|
|
212
201
|
// Arrange
|
|
213
202
|
const el = /** @type {LionCheckboxGroup} */ await fixture(html`
|
|
@@ -219,15 +208,13 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
219
208
|
</${tag}>
|
|
220
209
|
</${groupTag}>
|
|
221
210
|
`);
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
el.querySelector(`${cfg.tagString}`)
|
|
225
|
-
);
|
|
211
|
+
const elIndeterminate =
|
|
212
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
213
|
+
el.querySelector(`${cfg.tagString}`);
|
|
226
214
|
|
|
227
215
|
// Assert
|
|
228
216
|
expect(elIndeterminate?.hasAttribute('checked')).to.be.true;
|
|
229
217
|
});
|
|
230
|
-
|
|
231
218
|
it('should be checked when it has one prechecked child', async () => {
|
|
232
219
|
// Arrange
|
|
233
220
|
const el = /** @type {LionCheckboxGroup} */ await fixture(html`
|
|
@@ -237,15 +224,13 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
237
224
|
</${tag}>
|
|
238
225
|
</${groupTag}>
|
|
239
226
|
`);
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
el.querySelector(`${cfg.tagString}`)
|
|
243
|
-
);
|
|
227
|
+
const elIndeterminate =
|
|
228
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
229
|
+
el.querySelector(`${cfg.tagString}`);
|
|
244
230
|
|
|
245
231
|
// Assert
|
|
246
232
|
expect(elIndeterminate?.hasAttribute('checked')).to.be.true;
|
|
247
233
|
});
|
|
248
|
-
|
|
249
234
|
it('should be unchecked when it has an disabled checked child and an unchecked child', async () => {
|
|
250
235
|
// Arrange
|
|
251
236
|
const el = /** @type {LionCheckboxGroup} */ await fixture(html`
|
|
@@ -256,15 +241,13 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
256
241
|
</${tag}>
|
|
257
242
|
</${groupTag}>
|
|
258
243
|
`);
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
el.querySelector(`${cfg.tagString}`)
|
|
262
|
-
);
|
|
244
|
+
const elIndeterminate =
|
|
245
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
246
|
+
el.querySelector(`${cfg.tagString}`);
|
|
263
247
|
|
|
264
248
|
// Assert
|
|
265
249
|
expect(elIndeterminate?.hasAttribute('checked')).to.be.false;
|
|
266
250
|
});
|
|
267
|
-
|
|
268
251
|
it('should be indeterminated when some of the children are prechecked', async () => {
|
|
269
252
|
// Arrange
|
|
270
253
|
const el = /** @type {LionCheckboxGroup} */ await fixture(html`
|
|
@@ -276,18 +259,17 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
276
259
|
</${tag}>
|
|
277
260
|
</${groupTag}>
|
|
278
261
|
`);
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
el.querySelector(`${cfg.tagString}`)
|
|
282
|
-
);
|
|
262
|
+
const elIndeterminate =
|
|
263
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
264
|
+
el.querySelector(`${cfg.tagString}`);
|
|
283
265
|
|
|
284
266
|
// Assert
|
|
285
267
|
expect(elIndeterminate.hasAttribute('indeterminate')).to.be.true;
|
|
286
268
|
});
|
|
287
|
-
|
|
288
269
|
it('should sync all children when parent is checked (from indeterminate to checked)', async () => {
|
|
289
270
|
// Arrange
|
|
290
|
-
const el =
|
|
271
|
+
const el =
|
|
272
|
+
/** @type {LionCheckboxGroup} */
|
|
291
273
|
await fixture(html`
|
|
292
274
|
<${groupTag} name="scientists[]">
|
|
293
275
|
<${tag} label="Favorite scientists">
|
|
@@ -296,11 +278,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
296
278
|
<${childTag} label="Marie Curie"></${childTag}>
|
|
297
279
|
</${tag}>
|
|
298
280
|
</${groupTag}>
|
|
299
|
-
`)
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
el.querySelector(`${cfg.tagString}`)
|
|
303
|
-
);
|
|
281
|
+
`);
|
|
282
|
+
const elIndeterminate =
|
|
283
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
284
|
+
el.querySelector(`${cfg.tagString}`);
|
|
304
285
|
const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
305
286
|
|
|
306
287
|
// Act
|
|
@@ -313,10 +294,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
313
294
|
expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
|
|
314
295
|
expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
|
|
315
296
|
});
|
|
316
|
-
|
|
317
297
|
it('should not sync any disabled children when parent is checked (from indeterminate to checked)', async () => {
|
|
318
298
|
// Arrange
|
|
319
|
-
const el =
|
|
299
|
+
const el =
|
|
300
|
+
/** @type {LionCheckboxGroup} */
|
|
320
301
|
await fixture(html`
|
|
321
302
|
<${groupTag} name="scientists[]">
|
|
322
303
|
<${tag} label="Favorite scientists">
|
|
@@ -325,11 +306,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
325
306
|
<${childTag} label="Marie Curie"></${childTag}>
|
|
326
307
|
</${tag}>
|
|
327
308
|
</${groupTag}>
|
|
328
|
-
`)
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
el.querySelector(`${cfg.tagString}`)
|
|
332
|
-
);
|
|
309
|
+
`);
|
|
310
|
+
const elIndeterminate =
|
|
311
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
312
|
+
el.querySelector(`${cfg.tagString}`);
|
|
333
313
|
const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
334
314
|
|
|
335
315
|
// Act
|
|
@@ -342,10 +322,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
342
322
|
expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
|
|
343
323
|
expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
|
|
344
324
|
});
|
|
345
|
-
|
|
346
325
|
it('should remain unchecked when parent is clicked and all children are disabled', async () => {
|
|
347
326
|
// Arrange
|
|
348
|
-
const el =
|
|
327
|
+
const el =
|
|
328
|
+
/** @type {LionCheckboxGroup} */
|
|
349
329
|
await fixture(html`
|
|
350
330
|
<${groupTag} name="scientists[]">
|
|
351
331
|
<${tag} label="Favorite scientists">
|
|
@@ -354,11 +334,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
354
334
|
<${childTag} label="Marie Curie" disabled></${childTag}>
|
|
355
335
|
</${tag}>
|
|
356
336
|
</${groupTag}>
|
|
357
|
-
`)
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
el.querySelector(`${cfg.tagString}`)
|
|
361
|
-
);
|
|
337
|
+
`);
|
|
338
|
+
const elIndeterminate =
|
|
339
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
340
|
+
el.querySelector(`${cfg.tagString}`);
|
|
362
341
|
const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
363
342
|
|
|
364
343
|
// Act
|
|
@@ -372,10 +351,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
372
351
|
expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
|
|
373
352
|
expect(_subCheckboxes[2].hasAttribute('checked')).to.be.false;
|
|
374
353
|
});
|
|
375
|
-
|
|
376
354
|
it('should remain checked when parent is clicked and all children are disabled and checked', async () => {
|
|
377
355
|
// Arrange
|
|
378
|
-
const el =
|
|
356
|
+
const el =
|
|
357
|
+
/** @type {LionCheckboxGroup} */
|
|
379
358
|
await fixture(html`
|
|
380
359
|
<${groupTag} name="scientists[]">
|
|
381
360
|
<${tag} label="Favorite scientists">
|
|
@@ -384,11 +363,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
384
363
|
<${childTag} label="Marie Curie" disabled checked></${childTag}>
|
|
385
364
|
</${tag}>
|
|
386
365
|
</${groupTag}>
|
|
387
|
-
`)
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
el.querySelector(`${cfg.tagString}`)
|
|
391
|
-
);
|
|
366
|
+
`);
|
|
367
|
+
const elIndeterminate =
|
|
368
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
369
|
+
el.querySelector(`${cfg.tagString}`);
|
|
392
370
|
const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
393
371
|
|
|
394
372
|
// Act
|
|
@@ -402,10 +380,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
402
380
|
expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
|
|
403
381
|
expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
|
|
404
382
|
});
|
|
405
|
-
|
|
406
383
|
it('should sync all children when parent is checked (from unchecked to checked)', async () => {
|
|
407
384
|
// Arrange
|
|
408
|
-
const el =
|
|
385
|
+
const el =
|
|
386
|
+
/** @type {LionCheckboxGroup} */
|
|
409
387
|
await fixture(html`
|
|
410
388
|
<${groupTag} name="scientists[]">
|
|
411
389
|
<${tag} label="Favorite scientists">
|
|
@@ -414,11 +392,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
414
392
|
<${childTag} label="Marie Curie"></${childTag}>
|
|
415
393
|
</${tag}>
|
|
416
394
|
</${groupTag}>
|
|
417
|
-
`)
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
el.querySelector(`${cfg.tagString}`)
|
|
421
|
-
);
|
|
395
|
+
`);
|
|
396
|
+
const elIndeterminate =
|
|
397
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
398
|
+
el.querySelector(`${cfg.tagString}`);
|
|
422
399
|
const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
423
400
|
|
|
424
401
|
// Act
|
|
@@ -431,10 +408,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
431
408
|
expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
|
|
432
409
|
expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
|
|
433
410
|
});
|
|
434
|
-
|
|
435
411
|
it('should sync all children when parent is checked (from checked to unchecked)', async () => {
|
|
436
412
|
// Arrange
|
|
437
|
-
const el =
|
|
413
|
+
const el =
|
|
414
|
+
/** @type {LionCheckboxGroup} */
|
|
438
415
|
await fixture(html`
|
|
439
416
|
<${groupTag} name="scientists[]">
|
|
440
417
|
<${tag} label="Favorite scientists">
|
|
@@ -443,11 +420,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
443
420
|
<${childTag} label="Marie Curie" checked></${childTag}>
|
|
444
421
|
</${tag}>
|
|
445
422
|
</${groupTag}>
|
|
446
|
-
`)
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
el.querySelector(`${cfg.tagString}`)
|
|
450
|
-
);
|
|
423
|
+
`);
|
|
424
|
+
const elIndeterminate =
|
|
425
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
426
|
+
el.querySelector(`${cfg.tagString}`);
|
|
451
427
|
const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
452
428
|
|
|
453
429
|
// Act
|
|
@@ -460,10 +436,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
460
436
|
expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
|
|
461
437
|
expect(_subCheckboxes[2].hasAttribute('checked')).to.be.false;
|
|
462
438
|
});
|
|
463
|
-
|
|
464
439
|
it('should sync all prechecked children when parent is indeterminate and some of the children are disabled (from checked to unchecked)', async () => {
|
|
465
440
|
// Arrange
|
|
466
|
-
const el =
|
|
441
|
+
const el =
|
|
442
|
+
/** @type {LionCheckboxGroup} */
|
|
467
443
|
await fixture(html`
|
|
468
444
|
<${groupTag} name="scientists[]">
|
|
469
445
|
<${tag} label="Favorite scientists">
|
|
@@ -472,11 +448,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
472
448
|
<${childTag} checked label="Marie Curie"></${childTag}>
|
|
473
449
|
</${tag}>
|
|
474
450
|
</${groupTag}>
|
|
475
|
-
`)
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
el.querySelector(`${cfg.tagString}`)
|
|
479
|
-
);
|
|
451
|
+
`);
|
|
452
|
+
const elIndeterminate =
|
|
453
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
454
|
+
el.querySelector(`${cfg.tagString}`);
|
|
480
455
|
const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
481
456
|
|
|
482
457
|
// Act
|
|
@@ -490,10 +465,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
490
465
|
expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
|
|
491
466
|
expect(_subCheckboxes[2].hasAttribute('checked')).to.be.false;
|
|
492
467
|
});
|
|
493
|
-
|
|
494
468
|
it('should stay as indeterminated after it is clicked, when it is interminated already and some children are disabled', async () => {
|
|
495
469
|
// Arrange
|
|
496
|
-
const el =
|
|
470
|
+
const el =
|
|
471
|
+
/** @type {LionCheckboxGroup} */
|
|
497
472
|
await fixture(html`
|
|
498
473
|
<${groupTag} name="scientists[]">
|
|
499
474
|
<${tag} label="Favorite scientists">
|
|
@@ -502,11 +477,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
502
477
|
<${childTag} label="Marie Curie"></${childTag}>
|
|
503
478
|
</${tag}>
|
|
504
479
|
</${groupTag}>
|
|
505
|
-
`)
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
el.querySelector(`${cfg.tagString}`)
|
|
509
|
-
);
|
|
480
|
+
`);
|
|
481
|
+
const elIndeterminate =
|
|
482
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
483
|
+
el.querySelector(`${cfg.tagString}`);
|
|
510
484
|
const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
511
485
|
|
|
512
486
|
// Act
|
|
@@ -519,10 +493,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
519
493
|
expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
|
|
520
494
|
expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
|
|
521
495
|
});
|
|
522
|
-
|
|
523
496
|
it('should work as expected with siblings checkbox-indeterminate', async () => {
|
|
524
497
|
// Arrange
|
|
525
|
-
const el =
|
|
498
|
+
const el =
|
|
499
|
+
/** @type {LionCheckboxGroup} */
|
|
526
500
|
await fixture(html`
|
|
527
501
|
<${groupTag} name="scientists[]" label="Favorite scientists">
|
|
528
502
|
<${tag}
|
|
@@ -557,16 +531,13 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
557
531
|
></${childTag}>
|
|
558
532
|
</${tag}>
|
|
559
533
|
</${groupTag}>
|
|
560
|
-
`)
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
el.querySelector('#first-checkbox-indeterminate')
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
el.querySelector('#second-checkbox-indeterminate')
|
|
568
|
-
);
|
|
569
|
-
|
|
534
|
+
`);
|
|
535
|
+
const elFirstIndeterminate =
|
|
536
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
537
|
+
el.querySelector('#first-checkbox-indeterminate');
|
|
538
|
+
const elSecondIndeterminate =
|
|
539
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
540
|
+
el.querySelector('#second-checkbox-indeterminate');
|
|
570
541
|
const elFirstSubCheckboxes = getCheckboxIndeterminateMembers(elFirstIndeterminate);
|
|
571
542
|
const elSecondSubCheckboxes = getCheckboxIndeterminateMembers(elSecondIndeterminate);
|
|
572
543
|
|
|
@@ -581,11 +552,9 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
581
552
|
expect(elFirstSubCheckboxes._subCheckboxes[0].hasAttribute('checked')).to.be.true;
|
|
582
553
|
expect(elFirstSubCheckboxes._subCheckboxes[1].hasAttribute('checked')).to.be.true;
|
|
583
554
|
expect(elFirstSubCheckboxes._subCheckboxes[2].hasAttribute('checked')).to.be.true;
|
|
584
|
-
|
|
585
555
|
expect(elSecondSubCheckboxes._subCheckboxes[0].hasAttribute('checked')).to.be.false;
|
|
586
556
|
expect(elSecondSubCheckboxes._subCheckboxes[1].hasAttribute('checked')).to.be.false;
|
|
587
557
|
});
|
|
588
|
-
|
|
589
558
|
it('should work as expected when new checkbox was added', async () => {
|
|
590
559
|
// Arrange
|
|
591
560
|
const el = /** @type {LionCheckboxGroup} */ await fixture(html`
|
|
@@ -597,21 +566,19 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
597
566
|
</${tag}>
|
|
598
567
|
</${groupTag}>
|
|
599
568
|
`);
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
el.querySelector(`${cfg.tagString}`)
|
|
603
|
-
);
|
|
569
|
+
const elIndeterminate =
|
|
570
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
571
|
+
el.querySelector(`${cfg.tagString}`);
|
|
604
572
|
expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
|
|
605
573
|
|
|
606
574
|
// Act
|
|
607
|
-
const newChild = document.createElement(/** @type {string} */
|
|
575
|
+
const newChild = document.createElement(/** @type {string} */ cfg.childTagString);
|
|
608
576
|
elIndeterminate.appendChild(newChild);
|
|
609
577
|
await elIndeterminate.updateComplete;
|
|
610
578
|
|
|
611
579
|
// Assert
|
|
612
580
|
expect(elIndeterminate.hasAttribute('indeterminate')).to.be.true;
|
|
613
581
|
});
|
|
614
|
-
|
|
615
582
|
it('should work as expected when an existing checkbox was removed', async () => {
|
|
616
583
|
// Arrange
|
|
617
584
|
const el = /** @type {LionCheckboxGroup} */ await fixture(html`
|
|
@@ -623,24 +590,23 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
623
590
|
</${tag}>
|
|
624
591
|
</${groupTag}>
|
|
625
592
|
`);
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
el.querySelector(`${cfg.tagString}`)
|
|
629
|
-
);
|
|
593
|
+
const elIndeterminate =
|
|
594
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
595
|
+
el.querySelector(`${cfg.tagString}`);
|
|
630
596
|
expect(elIndeterminate.hasAttribute('indeterminate')).to.be.true;
|
|
631
597
|
expect(elIndeterminate.checked).to.be.false;
|
|
632
598
|
|
|
633
599
|
// Act
|
|
634
|
-
elIndeterminate.removeChild(/** @type {ChildNode} */
|
|
600
|
+
elIndeterminate.removeChild(/** @type {ChildNode} */ elIndeterminate.lastChild);
|
|
635
601
|
await elIndeterminate.updateComplete;
|
|
636
602
|
|
|
637
603
|
// Assert
|
|
638
604
|
expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
|
|
639
605
|
});
|
|
640
|
-
|
|
641
606
|
it('should work as expected with nested indeterminate checkboxes', async () => {
|
|
642
607
|
// Arrange
|
|
643
|
-
const el =
|
|
608
|
+
const el =
|
|
609
|
+
/** @type {LionCheckboxGroup} */
|
|
644
610
|
await fixture(html`
|
|
645
611
|
<${groupTag} name="scientists[]" label="Favorite scientists">
|
|
646
612
|
<${tag} label="Scientists" id="parent-checkbox-indeterminate">
|
|
@@ -673,14 +639,13 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
673
639
|
</${tag}>
|
|
674
640
|
</${tag}>
|
|
675
641
|
</${groupTag}>
|
|
676
|
-
`)
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
el.querySelector('#nested-checkbox-indeterminate')
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
el.querySelector('#parent-checkbox-indeterminate')
|
|
683
|
-
);
|
|
642
|
+
`);
|
|
643
|
+
const elNestedIndeterminate =
|
|
644
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
645
|
+
el.querySelector('#nested-checkbox-indeterminate');
|
|
646
|
+
const elParentIndeterminate =
|
|
647
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
648
|
+
el.querySelector('#parent-checkbox-indeterminate');
|
|
684
649
|
const elNestedSubCheckboxes = getCheckboxIndeterminateMembers(elNestedIndeterminate);
|
|
685
650
|
const elParentSubCheckboxes = getCheckboxIndeterminateMembers(elParentIndeterminate);
|
|
686
651
|
|
|
@@ -725,10 +690,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
725
690
|
expect(elParentIndeterminate?.hasAttribute('checked')).to.be.true;
|
|
726
691
|
expect(elParentIndeterminate?.hasAttribute('indeterminate')).to.be.false;
|
|
727
692
|
});
|
|
728
|
-
|
|
729
693
|
it('should work as expected if extra html', async () => {
|
|
730
694
|
// Arrange
|
|
731
|
-
const el =
|
|
695
|
+
const el =
|
|
696
|
+
/** @type {LionCheckboxGroup} */
|
|
732
697
|
await fixture(html`
|
|
733
698
|
<${groupTag} name="scientists[]">
|
|
734
699
|
<div>
|
|
@@ -744,11 +709,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
744
709
|
</div>
|
|
745
710
|
<div>Too much fun, stop it !</div>
|
|
746
711
|
</${groupTag}>
|
|
747
|
-
`)
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
el.querySelector(`${cfg.tagString}`)
|
|
751
|
-
);
|
|
712
|
+
`);
|
|
713
|
+
const elIndeterminate =
|
|
714
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
715
|
+
el.querySelector(`${cfg.tagString}`);
|
|
752
716
|
const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
|
|
753
717
|
|
|
754
718
|
// Act
|
|
@@ -774,10 +738,9 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
774
738
|
</${tag}>
|
|
775
739
|
</${groupTag}>
|
|
776
740
|
`);
|
|
777
|
-
const elIndeterminate =
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
741
|
+
const elIndeterminate =
|
|
742
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
743
|
+
el.querySelector(`${cfg.tagString}`);
|
|
781
744
|
expect(elIndeterminate.mixedState).to.be.true;
|
|
782
745
|
expect(elIndeterminate.checked).to.be.false;
|
|
783
746
|
expect(elIndeterminate.indeterminate).to.be.true;
|
|
@@ -800,7 +763,6 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
800
763
|
expect(elIndeterminate.checked).to.be.false;
|
|
801
764
|
expect(elIndeterminate.indeterminate).to.be.true;
|
|
802
765
|
});
|
|
803
|
-
|
|
804
766
|
it('should reset to old child checkbox states when reaching indeterminate state', async () => {
|
|
805
767
|
const el = await fixture(html`
|
|
806
768
|
<${groupTag} name="scientists[]">
|
|
@@ -811,31 +773,29 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
811
773
|
</${tag}>
|
|
812
774
|
</${groupTag}>
|
|
813
775
|
`);
|
|
814
|
-
const elIndeterminate =
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
const checkboxEls =
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, false, false]);
|
|
776
|
+
const elIndeterminate =
|
|
777
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
778
|
+
el.querySelector(`${cfg.tagString}`);
|
|
779
|
+
const checkboxEls =
|
|
780
|
+
/** @type {LionCheckbox[]} */
|
|
781
|
+
Array.from(el.querySelectorAll(`${cfg.childTagString}`));
|
|
782
|
+
expect(checkboxEls.map((checkboxEl) => checkboxEl.checked)).to.eql([true, false, false]);
|
|
822
783
|
|
|
823
784
|
// @ts-ignore for testing purposes, we access this protected getter
|
|
824
785
|
elIndeterminate._inputNode.click();
|
|
825
786
|
await elIndeterminate.updateComplete;
|
|
826
|
-
expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, true, true]);
|
|
787
|
+
expect(checkboxEls.map((checkboxEl) => checkboxEl.checked)).to.eql([true, true, true]);
|
|
827
788
|
|
|
828
789
|
// @ts-ignore for testing purposes, we access this protected getter
|
|
829
790
|
elIndeterminate._inputNode.click();
|
|
830
791
|
await elIndeterminate.updateComplete;
|
|
831
|
-
expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([false, false, false]);
|
|
792
|
+
expect(checkboxEls.map((checkboxEl) => checkboxEl.checked)).to.eql([false, false, false]);
|
|
832
793
|
|
|
833
794
|
// @ts-ignore for testing purposes, we access this protected getter
|
|
834
795
|
elIndeterminate._inputNode.click();
|
|
835
796
|
await elIndeterminate.updateComplete;
|
|
836
|
-
expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, false, false]);
|
|
797
|
+
expect(checkboxEls.map((checkboxEl) => checkboxEl.checked)).to.eql([true, false, false]);
|
|
837
798
|
});
|
|
838
|
-
|
|
839
799
|
it('should no longer reach indeterminate state if the child boxes are all checked or all unchecked during indeterminate state', async () => {
|
|
840
800
|
const el = await fixture(html`
|
|
841
801
|
<${groupTag} name="scientists[]">
|
|
@@ -846,12 +806,12 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
846
806
|
</${tag}>
|
|
847
807
|
</${groupTag}>
|
|
848
808
|
`);
|
|
849
|
-
const elIndeterminate =
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
const checkboxEls =
|
|
853
|
-
|
|
854
|
-
|
|
809
|
+
const elIndeterminate =
|
|
810
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
811
|
+
el.querySelector(`${cfg.tagString}`);
|
|
812
|
+
const checkboxEls =
|
|
813
|
+
/** @type {LionCheckbox[]} */
|
|
814
|
+
Array.from(el.querySelectorAll(`${cfg.childTagString}`));
|
|
855
815
|
|
|
856
816
|
// Check when all child boxes in indeterminate state are unchecked
|
|
857
817
|
// we don't have a tri-state, but a duo-state.
|
|
@@ -892,7 +852,6 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
892
852
|
await checkEl.updateComplete;
|
|
893
853
|
await elIndeterminate.updateComplete;
|
|
894
854
|
}
|
|
895
|
-
|
|
896
855
|
expect(elIndeterminate.checked).to.be.true;
|
|
897
856
|
expect(elIndeterminate.indeterminate).to.be.false;
|
|
898
857
|
|
|
@@ -909,10 +868,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
909
868
|
expect(elIndeterminate.indeterminate).to.be.false;
|
|
910
869
|
});
|
|
911
870
|
});
|
|
912
|
-
|
|
913
871
|
describe('accessibility', () => {
|
|
914
872
|
it('is accessible', async () => {
|
|
915
|
-
const el =
|
|
873
|
+
const el =
|
|
874
|
+
/** @type {LionCheckboxGroup} */
|
|
916
875
|
await fixture(html`
|
|
917
876
|
<${groupTag} name="scientists[]">
|
|
918
877
|
<${tag} label="Favorite scientists">
|
|
@@ -921,11 +880,9 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
921
880
|
<${childTag} label="Marie Curie"></${childTag}>
|
|
922
881
|
</${tag}>
|
|
923
882
|
</${groupTag}>
|
|
924
|
-
`)
|
|
925
|
-
);
|
|
883
|
+
`);
|
|
926
884
|
await expect(el).to.be.accessible();
|
|
927
885
|
});
|
|
928
|
-
|
|
929
886
|
it('has role="list" and its children role="listitem"', async () => {
|
|
930
887
|
const el = await fixture(html`
|
|
931
888
|
<${groupTag} name="scientists[]">
|
|
@@ -936,10 +893,9 @@ export function runCheckboxIndeterminateSuite(customConfig) {
|
|
|
936
893
|
</${tag}>
|
|
937
894
|
</${groupTag}>
|
|
938
895
|
`);
|
|
939
|
-
const elIndeterminate =
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
896
|
+
const elIndeterminate =
|
|
897
|
+
/** @type {LionCheckboxIndeterminate} */
|
|
898
|
+
el.querySelector(`${cfg.tagString}`);
|
|
943
899
|
expect(
|
|
944
900
|
elIndeterminate.shadowRoot
|
|
945
901
|
?.querySelector('.choice-field__nested-checkboxes')
|