@lion/ui 0.23.0 → 0.24.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.
Files changed (787) hide show
  1. package/README.md +50 -20
  2. package/components/accordion/src/LionAccordion.js +31 -42
  3. package/components/accordion/test/lion-accordion.test.js +108 -134
  4. package/components/button/src/LionButton.js +9 -12
  5. package/components/button/src/LionButtonReset.js +0 -5
  6. package/components/button/src/LionButtonSubmit.js +7 -12
  7. package/components/button/test/demos.screenshots-test.js +50 -11
  8. package/components/button/test/lion-button.test.js +0 -1
  9. package/components/button/test-suites/LionButton.suite.js +135 -145
  10. package/components/button/test-suites/LionButtonReset.suite.js +54 -72
  11. package/components/button/test-suites/LionButtonSubmit.suite.js +49 -68
  12. package/components/calendar/src/LionCalendar.js +151 -104
  13. package/components/calendar/src/calendarStyle.js +0 -1
  14. package/components/calendar/src/utils/createMonth.js +3 -4
  15. package/components/calendar/src/utils/createMultipleMonth.js +15 -7
  16. package/components/calendar/src/utils/createWeek.js +0 -2
  17. package/components/calendar/src/utils/dataTemplate.js +8 -4
  18. package/components/calendar/src/utils/dayTemplate.js +0 -6
  19. package/components/calendar/src/utils/getDayMonthYear.js +6 -2
  20. package/components/calendar/test/demos.screenshots-test.js +40 -9
  21. package/components/calendar/test/lion-calendar.test.js +171 -282
  22. package/components/calendar/test/utils/createMonth.test.js +61 -22
  23. package/components/calendar/test/utils/createMultipleMonth.test.js +14 -7
  24. package/components/calendar/test/utils/createWeek.test.js +51 -17
  25. package/components/calendar/test/utils/dataTemplate.test.js +3 -4
  26. package/components/calendar/test/utils/dayTemplate.test.js +106 -34
  27. package/components/calendar/test/utils/getFirstDayNextMonth.test.js +0 -1
  28. package/components/calendar/test/utils/getLastDayPreviousMonth.test.js +0 -1
  29. package/components/calendar/test/utils/isSameDate.test.js +0 -1
  30. package/components/calendar/test/utils/snapshots/monthTemplate_en-GB_Sunday_2018-12.js +1 -2
  31. package/components/calendar/test-helpers/CalendarObject.js +31 -62
  32. package/components/calendar/test-helpers/DayObject.js +7 -15
  33. package/components/calendar/test-suites/LionCalendar.suite.js +7 -9
  34. package/components/checkbox-group/src/LionCheckboxIndeterminate.js +17 -30
  35. package/components/checkbox-group/test/lion-checkbox-group-integrations.test.js +0 -1
  36. package/components/checkbox-group/test/lion-checkbox-group.test.js +21 -16
  37. package/components/checkbox-group/test/lion-checkbox-indeterminate-integrations.test.js +3 -3
  38. package/components/checkbox-group/test/lion-checkbox-integrations.test.js +3 -2
  39. package/components/checkbox-group/test/lion-checkbox.test.js +30 -16
  40. package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +147 -191
  41. package/components/collapsible/src/LionCollapsible.js +10 -15
  42. package/components/collapsible/test/lion-collapsible.test.js +4 -18
  43. package/components/combobox/src/LionCombobox.js +35 -53
  44. package/components/combobox/src/utils/makeMatchingTextBold.js +2 -5
  45. package/components/combobox/src/validators.js +0 -1
  46. package/components/combobox/test/lion-combobox-integrations.test.js +6 -6
  47. package/components/combobox/test/lion-combobox.test.js +576 -869
  48. package/components/combobox/test/validators.test.js +6 -13
  49. package/components/combobox/test-helpers/combobox-helpers.js +24 -11
  50. package/components/core/src/DisabledMixin.js +61 -66
  51. package/components/core/src/DisabledWithTabIndexMixin.js +76 -83
  52. package/components/core/src/EventTargetShim.js +1 -4
  53. package/components/core/src/ScopedElementsMixin.js +4 -15
  54. package/components/core/src/ScopedStylesController.js +1 -5
  55. package/components/core/src/SlotMixin.js +236 -239
  56. package/components/core/src/browserDetection.js +5 -12
  57. package/components/core/test/DisabledMixin.test.js +24 -39
  58. package/components/core/test/DisabledWithTabIndexMixin.test.js +21 -34
  59. package/components/core/test/EventTargetShim.test.js +0 -8
  60. package/components/core/test/ScopedElementsMixin.test.js +22 -38
  61. package/components/core/test/ScopedStylesController.test.js +11 -20
  62. package/components/core/test/SlotMixin.test.js +102 -154
  63. package/components/core/test-helpers/getCachedFixture.js +5 -11
  64. package/components/core/types/SlotMixinTypes.ts +8 -3
  65. package/components/dialog/src/LionDialog.js +4 -3
  66. package/components/dialog/test/lion-dialog.integration.test.js +10 -20
  67. package/components/dialog/test/lion-dialog.test.js +48 -62
  68. package/components/dialog/test-helpers/test-router.js +4 -6
  69. package/components/drawer/src/LionDrawer.js +18 -34
  70. package/components/drawer/src/drawerStyle.js +0 -1
  71. package/components/drawer/test/lion-drawer.test.js +1 -17
  72. package/components/fieldset/test/lion-fieldset.test.js +6 -4
  73. package/components/form/src/LionForm.js +18 -13
  74. package/components/form/test/lion-form.test.js +22 -52
  75. package/components/form-core/src/FocusMixin.js +172 -174
  76. package/components/form-core/src/FormControlMixin.js +811 -813
  77. package/components/form-core/src/FormatMixin.js +537 -537
  78. package/components/form-core/src/InteractionStateMixin.js +196 -183
  79. package/components/form-core/src/LionField.js +9 -5
  80. package/components/form-core/src/NativeTextFieldMixin.js +114 -116
  81. package/components/form-core/src/choice-group/ChoiceGroupMixin.js +322 -364
  82. package/components/form-core/src/choice-group/ChoiceInputMixin.js +306 -296
  83. package/components/form-core/src/choice-group/CustomChoiceGroupMixin.js +114 -139
  84. package/components/form-core/src/form-group/FormElementsHaveNoError.js +0 -2
  85. package/components/form-core/src/form-group/FormGroupMixin.js +551 -557
  86. package/components/form-core/src/registration/FormRegisteringMixin.js +72 -71
  87. package/components/form-core/src/registration/FormRegistrarMixin.js +201 -217
  88. package/components/form-core/src/registration/FormRegistrarPortalMixin.js +31 -37
  89. package/components/form-core/src/utils/SyncUpdatableMixin.js +106 -117
  90. package/components/form-core/src/utils/getAriaElementsInRightDomOrder.js +1 -2
  91. package/components/form-core/src/validate/LionValidationFeedback.js +12 -8
  92. package/components/form-core/src/validate/Unparseable.js +4 -2
  93. package/components/form-core/src/validate/ValidateMixin.js +829 -883
  94. package/components/form-core/src/validate/Validator.js +3 -6
  95. package/components/form-core/src/validate/resultValidators/DefaultSuccess.js +1 -2
  96. package/components/form-core/src/validate/validators/DateValidators.js +0 -5
  97. package/components/form-core/src/validate/validators/NumberValidators.js +1 -5
  98. package/components/form-core/src/validate/validators/Required.js +1 -1
  99. package/components/form-core/src/validate/validators/StringValidators.js +1 -8
  100. package/components/form-core/test/FocusMixin.test.js +96 -82
  101. package/components/form-core/test/FormControlMixin.test.js +120 -176
  102. package/components/form-core/test/FormRegistrationMixins.test.js +0 -2
  103. package/components/form-core/test/FormatMixin.test.js +0 -1
  104. package/components/form-core/test/InteractionStateMixin.test.js +0 -1
  105. package/components/form-core/test/NativeTextFieldMixin.test.js +0 -1
  106. package/components/form-core/test/choice-group/ChoiceGroupMixin.test.js +0 -1
  107. package/components/form-core/test/choice-group/ChoiceInputMixin.test.js +0 -1
  108. package/components/form-core/test/choice-group/CustomChoiceGroupMixin.integrations.test.js +6 -8
  109. package/components/form-core/test/choice-group/CustomChoiceGroupMixin.test.js +0 -3
  110. package/components/form-core/test/form-group/FormGroupMixin.test.js +0 -1
  111. package/components/form-core/test/lion-field.test.js +88 -98
  112. package/components/form-core/test/utils/SyncUpdatableMixin.test.js +51 -65
  113. package/components/form-core/test/utils/getAriaElementsInRightDomOrder.test.js +3 -3
  114. package/components/form-core/test/validate/DateValidators.test.js +5 -27
  115. package/components/form-core/test/validate/NumberValidators.test.js +4 -16
  116. package/components/form-core/test/validate/Required.test.js +8 -21
  117. package/components/form-core/test/validate/ResultValidator.test.js +1 -2
  118. package/components/form-core/test/validate/StringValidators.test.js +4 -35
  119. package/components/form-core/test/validate/ValidateMixin.test.js +0 -1
  120. package/components/form-core/test/validate/ValidateMixinFeedbackPart.test.js +0 -1
  121. package/components/form-core/test/validate/Validator.test.js +39 -34
  122. package/components/form-core/test/validate/lion-validation-feedback.test.js +81 -43
  123. package/components/form-core/test-helpers/ExampleValidators.js +0 -5
  124. package/components/form-core/test-helpers/getFormControlMembers.js +2 -2
  125. package/components/form-core/test-helpers/mimicUserInput.js +5 -1
  126. package/components/form-core/test-suites/FormRegistrationMixins.suite.js +65 -122
  127. package/components/form-core/test-suites/FormatMixin.suite.js +202 -227
  128. package/components/form-core/test-suites/InteractionStateMixin.suite.js +47 -60
  129. package/components/form-core/test-suites/NativeTextFieldMixin.suite.js +8 -11
  130. package/components/form-core/test-suites/ValidateMixin.suite.js +280 -359
  131. package/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.js +112 -163
  132. package/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.js +185 -218
  133. package/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.js +116 -109
  134. package/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.js +36 -70
  135. package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +57 -65
  136. package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +664 -523
  137. package/components/form-core/translations/bg-BG.js +0 -1
  138. package/components/form-core/translations/cs-CZ.js +0 -1
  139. package/components/form-core/translations/de-DE.js +0 -1
  140. package/components/form-core/translations/en-AU.js +0 -1
  141. package/components/form-core/translations/en-GB.js +0 -1
  142. package/components/form-core/translations/en-US.js +0 -1
  143. package/components/form-core/translations/es-ES.js +0 -1
  144. package/components/form-core/translations/fr-BE.js +0 -1
  145. package/components/form-core/translations/fr-FR.js +0 -1
  146. package/components/form-core/translations/hu-HU.js +0 -1
  147. package/components/form-core/translations/it-IT.js +0 -1
  148. package/components/form-core/translations/nl-BE.js +0 -1
  149. package/components/form-core/translations/nl-NL.js +0 -1
  150. package/components/form-core/translations/pl-PL.js +0 -1
  151. package/components/form-core/translations/ro-RO.js +0 -1
  152. package/components/form-core/translations/ru-RU.js +0 -1
  153. package/components/form-core/translations/sk-SK.js +0 -1
  154. package/components/form-core/translations/tr-TR.js +0 -1
  155. package/components/form-core/translations/uk-UA.js +0 -1
  156. package/components/form-integrations/test/dialog-integrations.test.js +1 -4
  157. package/components/form-integrations/test/form-group-methods.test.js +28 -31
  158. package/components/form-integrations/test/form-integrations.test.js +27 -28
  159. package/components/form-integrations/test/form-validation-integrations.test.js +21 -29
  160. package/components/form-integrations/test/helpers/umbrella-form.js +3 -5
  161. package/components/form-integrations/test/model-value-consistency.test.js +75 -77
  162. package/components/form-integrations/test/model-value-event.test.js +10 -20
  163. package/components/helpers/src/SbActionLogger.js +13 -17
  164. package/components/helpers/src/SbLocaleSwitcher.js +5 -5
  165. package/components/helpers/src/sortEachDepth.js +0 -2
  166. package/components/helpers/test/renderLitAsNode.test.js +0 -4
  167. package/components/helpers/test/sb-action-logger.test.js +24 -55
  168. package/components/icon/src/IconManager.js +0 -2
  169. package/components/icon/src/LionIcon.js +2 -7
  170. package/components/icon/src/icons.js +0 -2
  171. package/components/icon/test/IconManager.test.js +0 -15
  172. package/components/icon/test/hammer.svg.js +3 -4
  173. package/components/icon/test/heart.svg.js +3 -4
  174. package/components/icon/test/lion-icon.test.js +14 -43
  175. package/components/input/src/LionInput.js +2 -8
  176. package/components/input/test/input-integrations.test.js +0 -5
  177. package/components/input/test/lion-input-integrations.test.js +0 -4
  178. package/components/input/test/lion-input.test.js +28 -58
  179. package/components/input/test-helpers/getInputMembers.js +2 -2
  180. package/components/input-amount/src/LionInputAmount.js +20 -20
  181. package/components/input-amount/src/formatters.js +0 -3
  182. package/components/input-amount/src/parsers.js +0 -3
  183. package/components/input-amount/test/formatters.test.js +24 -16
  184. package/components/input-amount/test/lion-input-amount-integrations.test.js +0 -4
  185. package/components/input-amount/test/lion-input-amount.test.js +123 -147
  186. package/components/input-amount/test/parsers.test.js +33 -17
  187. package/components/input-amount/test/preprocessors.test.js +0 -3
  188. package/components/input-amount-dropdown/src/LionInputAmountDropdown.js +49 -59
  189. package/components/input-amount-dropdown/src/currencyUtil.js +8 -7
  190. package/components/input-amount-dropdown/src/parsers.js +0 -1
  191. package/components/input-amount-dropdown/src/validators.js +0 -1
  192. package/components/input-amount-dropdown/test/LionInputAmountDropdown.test.js +34 -36
  193. package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +18 -13
  194. package/components/input-amount-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
  195. package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +132 -107
  196. package/components/input-date/src/LionInputDate.js +4 -3
  197. package/components/input-date/test/lion-input-date-integrations.test.js +0 -3
  198. package/components/input-date/test/lion-input-date.test.js +19 -32
  199. package/components/input-datepicker/src/LionInputDatepicker.js +17 -29
  200. package/components/input-datepicker/src/localizeNamespaceLoader.js +1 -2
  201. package/components/input-datepicker/test/lion-input-datepicker-integrations.test.js +0 -3
  202. package/components/input-datepicker/test/lion-input-datepicker.test.js +88 -153
  203. package/components/input-datepicker/test-helpers/DatepickerInputObject.js +9 -12
  204. package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +6 -4
  205. package/components/input-datepicker/translations/bg-BG.js +0 -1
  206. package/components/input-datepicker/translations/cs-CZ.js +0 -1
  207. package/components/input-datepicker/translations/de-DE.js +0 -1
  208. package/components/input-datepicker/translations/en-AU.js +0 -1
  209. package/components/input-datepicker/translations/en-GB.js +0 -1
  210. package/components/input-datepicker/translations/en-US.js +0 -1
  211. package/components/input-datepicker/translations/es-ES.js +0 -1
  212. package/components/input-datepicker/translations/fr-BE.js +0 -1
  213. package/components/input-datepicker/translations/fr-FR.js +0 -1
  214. package/components/input-datepicker/translations/hu-HU.js +0 -1
  215. package/components/input-datepicker/translations/it-IT.js +0 -1
  216. package/components/input-datepicker/translations/nl-BE.js +0 -1
  217. package/components/input-datepicker/translations/nl-NL.js +0 -1
  218. package/components/input-datepicker/translations/pl-PL.js +0 -1
  219. package/components/input-datepicker/translations/ro-RO.js +0 -1
  220. package/components/input-datepicker/translations/ru-RU.js +0 -1
  221. package/components/input-datepicker/translations/sk-SK.js +0 -1
  222. package/components/input-datepicker/translations/tr-TR.js +0 -1
  223. package/components/input-datepicker/translations/uk-UA.js +0 -1
  224. package/components/input-email/test/lion-input-email-integrations.test.js +0 -2
  225. package/components/input-email/test/lion-input-email.test.js +1 -7
  226. package/components/input-file/src/FileHandle.js +0 -3
  227. package/components/input-file/src/LionInputFile.js +85 -83
  228. package/components/input-file/src/LionSelectedFileList.js +12 -12
  229. package/components/input-file/src/validators.js +10 -9
  230. package/components/input-file/test/FileValidators.test.js +170 -80
  231. package/components/input-file/test/lion-input-file.test.js +160 -244
  232. package/components/input-file/test/lion-selected-file-list.test.js +13 -22
  233. package/components/input-file/translations/bg-BG.js +0 -1
  234. package/components/input-file/translations/cs-CZ.js +0 -1
  235. package/components/input-file/translations/de-DE.js +0 -1
  236. package/components/input-file/translations/en-AU.js +0 -1
  237. package/components/input-file/translations/en-GB.js +0 -1
  238. package/components/input-file/translations/en-PH.js +0 -1
  239. package/components/input-file/translations/en-US.js +0 -1
  240. package/components/input-file/translations/en.js +2 -1
  241. package/components/input-file/translations/es-ES.js +0 -1
  242. package/components/input-file/translations/fr-BE.js +0 -1
  243. package/components/input-file/translations/fr-FR.js +0 -1
  244. package/components/input-file/translations/hu-HU.js +0 -1
  245. package/components/input-file/translations/id-ID.js +0 -1
  246. package/components/input-file/translations/id.js +2 -1
  247. package/components/input-file/translations/it-IT.js +0 -1
  248. package/components/input-file/translations/nl-BE.js +0 -1
  249. package/components/input-file/translations/nl-NL.js +0 -1
  250. package/components/input-file/translations/pl-PL.js +0 -1
  251. package/components/input-file/translations/ro-RO.js +0 -1
  252. package/components/input-file/translations/ru-RU.js +0 -1
  253. package/components/input-file/translations/sk-SK.js +0 -1
  254. package/components/input-file/translations/uk-UA.js +0 -1
  255. package/components/input-file/translations/zh-CN.js +0 -1
  256. package/components/input-iban/src/validators.js +6 -11
  257. package/components/input-iban/test/formatters.test.js +0 -3
  258. package/components/input-iban/test/lion-input-iban-integrations.test.js +0 -2
  259. package/components/input-iban/test/lion-input-iban.test.js +1 -9
  260. package/components/input-iban/test/parsers.test.js +0 -2
  261. package/components/input-iban/test/validators.test.js +0 -12
  262. package/components/input-iban/translations/bg-BG.js +0 -1
  263. package/components/input-iban/translations/cs-CZ.js +0 -1
  264. package/components/input-iban/translations/de-DE.js +0 -1
  265. package/components/input-iban/translations/en-AU.js +0 -1
  266. package/components/input-iban/translations/en-GB.js +0 -1
  267. package/components/input-iban/translations/en-US.js +0 -1
  268. package/components/input-iban/translations/es-ES.js +0 -1
  269. package/components/input-iban/translations/fr-BE.js +0 -1
  270. package/components/input-iban/translations/fr-FR.js +0 -1
  271. package/components/input-iban/translations/hu-HU.js +0 -1
  272. package/components/input-iban/translations/it-IT.js +0 -1
  273. package/components/input-iban/translations/nl-BE.js +0 -1
  274. package/components/input-iban/translations/nl-NL.js +0 -1
  275. package/components/input-iban/translations/pl-PL.js +0 -1
  276. package/components/input-iban/translations/ro-RO.js +0 -1
  277. package/components/input-iban/translations/ru-RU.js +0 -1
  278. package/components/input-iban/translations/sk-SK.js +0 -1
  279. package/components/input-iban/translations/uk-UA.js +0 -1
  280. package/components/input-range/src/LionInputRange.js +18 -19
  281. package/components/input-range/test/lion-input-range.test.js +23 -48
  282. package/components/input-range/translations/bg-BG.js +0 -1
  283. package/components/input-range/translations/cs-CZ.js +0 -1
  284. package/components/input-range/translations/de-DE.js +0 -1
  285. package/components/input-range/translations/en-AU.js +0 -1
  286. package/components/input-range/translations/en-GB.js +0 -1
  287. package/components/input-range/translations/en-PH.js +0 -1
  288. package/components/input-range/translations/en-US.js +0 -1
  289. package/components/input-range/translations/es-ES.js +0 -1
  290. package/components/input-range/translations/fr-BE.js +0 -1
  291. package/components/input-range/translations/fr-FR.js +0 -1
  292. package/components/input-range/translations/hu-HU.js +0 -1
  293. package/components/input-range/translations/it-IT.js +0 -1
  294. package/components/input-range/translations/nl-BE.js +0 -1
  295. package/components/input-range/translations/nl-NL.js +0 -1
  296. package/components/input-range/translations/pl-PL.js +0 -1
  297. package/components/input-range/translations/ro-RO.js +0 -1
  298. package/components/input-range/translations/ru-RU.js +0 -1
  299. package/components/input-range/translations/sk-SK.js +0 -1
  300. package/components/input-range/translations/uk-UA.js +0 -1
  301. package/components/input-range/translations/zh-CN.js +0 -1
  302. package/components/input-stepper/src/LionInputStepper.js +19 -38
  303. package/components/input-stepper/test/lion-input-stepper-integrations.test.js +0 -1
  304. package/components/input-stepper/test/lion-input-stepper.test.js +0 -1
  305. package/components/input-stepper/test-suites/lion-input-stepper.integration.suite.js +0 -2
  306. package/components/input-stepper/test-suites/lion-input-stepper.suite.js +56 -105
  307. package/components/input-stepper/translations/bg-BG.js +0 -1
  308. package/components/input-stepper/translations/cs-CZ.js +0 -1
  309. package/components/input-stepper/translations/de-DE.js +0 -1
  310. package/components/input-stepper/translations/en-AU.js +0 -1
  311. package/components/input-stepper/translations/en-GB.js +0 -1
  312. package/components/input-stepper/translations/en-US.js +0 -1
  313. package/components/input-stepper/translations/es-ES.js +0 -1
  314. package/components/input-stepper/translations/fr-BE.js +0 -1
  315. package/components/input-stepper/translations/fr-FR.js +0 -1
  316. package/components/input-stepper/translations/hu-HU.js +0 -1
  317. package/components/input-stepper/translations/it-IT.js +0 -1
  318. package/components/input-stepper/translations/nl-BE.js +0 -1
  319. package/components/input-stepper/translations/nl-NL.js +0 -1
  320. package/components/input-stepper/translations/pl-PL.js +0 -1
  321. package/components/input-stepper/translations/ro-RO.js +0 -1
  322. package/components/input-stepper/translations/ru-RU.js +0 -1
  323. package/components/input-stepper/translations/sk-SK.js +0 -1
  324. package/components/input-stepper/translations/uk-UA.js +0 -1
  325. package/components/input-tel/src/LionInputTel.js +53 -37
  326. package/components/input-tel/src/PhoneUtilManager.js +6 -4
  327. package/components/input-tel/src/formatters.js +12 -10
  328. package/components/input-tel/src/parsers.js +3 -3
  329. package/components/input-tel/src/preprocessors.js +15 -7
  330. package/components/input-tel/src/validators.js +4 -6
  331. package/components/input-tel/test/LionInputTel.test.js +4 -2
  332. package/components/input-tel/test/formatters.test.js +22 -10
  333. package/components/input-tel/test/parsers.test.js +40 -11
  334. package/components/input-tel/test/preprocessors.test.js +24 -13
  335. package/components/input-tel/test/validators.test.js +7 -14
  336. package/components/input-tel/test-helpers/mockPhoneUtilManager.js +7 -6
  337. package/components/input-tel/test-suites/LionInputTel.suite.js +33 -73
  338. package/components/input-tel/translations/bg-BG.js +0 -1
  339. package/components/input-tel/translations/cs-CZ.js +0 -1
  340. package/components/input-tel/translations/de-DE.js +0 -1
  341. package/components/input-tel/translations/en-AU.js +0 -1
  342. package/components/input-tel/translations/en-GB.js +0 -1
  343. package/components/input-tel/translations/en-US.js +0 -1
  344. package/components/input-tel/translations/es-ES.js +0 -1
  345. package/components/input-tel/translations/fr-BE.js +0 -1
  346. package/components/input-tel/translations/fr-FR.js +0 -1
  347. package/components/input-tel/translations/hu-HU.js +0 -1
  348. package/components/input-tel/translations/it-IT.js +0 -1
  349. package/components/input-tel/translations/nl-BE.js +0 -1
  350. package/components/input-tel/translations/nl-NL.js +0 -1
  351. package/components/input-tel/translations/pl-PL.js +0 -1
  352. package/components/input-tel/translations/ro-RO.js +0 -1
  353. package/components/input-tel/translations/ru-RU.js +0 -1
  354. package/components/input-tel/translations/sk-SK.js +0 -1
  355. package/components/input-tel/translations/uk-UA.js +0 -1
  356. package/components/input-tel-dropdown/src/LionInputTelDropdown.js +10 -28
  357. package/components/input-tel-dropdown/src/regionCodeToLocale.js +3 -1
  358. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +31 -38
  359. package/components/input-tel-dropdown/test/regionCodeToLocale.test.js +0 -1
  360. package/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
  361. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +16 -11
  362. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +54 -79
  363. package/components/listbox/src/LionListbox.js +4 -1
  364. package/components/listbox/src/LionOption.js +8 -7
  365. package/components/listbox/src/LionOptions.js +0 -3
  366. package/components/listbox/src/ListboxMixin.js +786 -820
  367. package/components/listbox/test/lion-listbox.test.js +0 -1
  368. package/components/listbox/test/lion-option.test.js +53 -64
  369. package/components/listbox/test/lion-options.test.js +3 -4
  370. package/components/listbox/test-helpers/getListboxMembers.js +6 -3
  371. package/components/listbox/test-suites/ListboxMixin.suite.js +101 -261
  372. package/components/localize/src/LocalizeManager.js +40 -40
  373. package/components/localize/src/LocalizeMixin.js +130 -157
  374. package/components/localize/src/date/formatDate.js +1 -5
  375. package/components/localize/src/date/getDateFormatBasedOnLocale.js +5 -3
  376. package/components/localize/src/date/getMonthNames.js +3 -5
  377. package/components/localize/src/date/getWeekdayNames.js +1 -5
  378. package/components/localize/src/date/parseDate.js +5 -20
  379. package/components/localize/src/date/utils/normalizeIntlDate.js +0 -7
  380. package/components/localize/src/getLocalizeManager.js +0 -3
  381. package/components/localize/src/number/formatNumber.js +3 -7
  382. package/components/localize/src/number/formatNumberToParts.js +52 -18
  383. package/components/localize/src/number/getCurrencyName.js +5 -5
  384. package/components/localize/src/number/getFractionDigits.js +4 -4
  385. package/components/localize/src/number/getSeparatorsFromNumber.js +1 -3
  386. package/components/localize/src/number/parseNumber.js +0 -3
  387. package/components/localize/src/number/utils/normalize-format-number-to-parts/forceAddGroupSeparators.js +0 -1
  388. package/components/localize/src/number/utils/normalize-format-number-to-parts/forceSpaceBetweenCurrencyCodeAndNumber.js +4 -1
  389. package/components/localize/test/LocalizeManager.test.js +385 -278
  390. package/components/localize/test/LocalizeMixin.test.js +28 -112
  391. package/components/localize/test/date/formatDate.test.js +18 -48
  392. package/components/localize/test/date/getDateFormatBasedOnLocale.test.js +0 -3
  393. package/components/localize/test/date/getMonthNames.test.js +27 -12
  394. package/components/localize/test/date/getWeekdayNames.test.js +93 -49
  395. package/components/localize/test/date/normalizeDateTime.test.js +0 -2
  396. package/components/localize/test/date/parseDate.test.js +12 -16
  397. package/components/localize/test/getLocalizeManager.test.js +0 -3
  398. package/components/localize/test/isLocalizeESModule.test.js +32 -13
  399. package/components/localize/test/localize.test.js +0 -4
  400. package/components/localize/test/number/formatNumber.test.js +215 -106
  401. package/components/localize/test/number/formatNumberToParts.test.js +31 -38
  402. package/components/localize/test/number/getCurrencyName.test.js +20 -6
  403. package/components/localize/test/number/getDecimalSeparator.test.js +5 -4
  404. package/components/localize/test/number/getFractionDigits.test.js +0 -2
  405. package/components/localize/test/number/getGroupSeparator.test.js +0 -2
  406. package/components/localize/test/number/getSeparatorsFromNumber.test.js +5 -3
  407. package/components/localize/test/number/parseNumber.test.js +123 -56
  408. package/components/localize/test/side-effect-free-entrypoint.test.js +0 -6
  409. package/components/localize/test-helpers/fake-imports.js +11 -6
  410. package/components/localize/test-helpers/localizeTearDown.js +0 -1
  411. package/components/menu/src/InteractiveListMixin.js +637 -638
  412. package/components/menu/src/LionMenu.js +46 -59
  413. package/components/menu/src/MoreButtonMenuMixin.js +215 -238
  414. package/components/menu/src/MultiLevelListMixin.js +240 -246
  415. package/components/menu/src/utils/isInView.js +0 -1
  416. package/components/menu/src/utils/listItemInteractions.js +4 -4
  417. package/components/menu/test/InteractiveListMixin.test.js +0 -1
  418. package/components/menu/test/MoreButtonMenuMixin.test.js +3 -2
  419. package/components/menu/test/MultiLevelListMixin.test.js +0 -1
  420. package/components/menu/test/lion-menu-interactions.test.js +0 -1
  421. package/components/menu/test/lion-menu.test.js +6 -2
  422. package/components/menu/test-helpers/mimicKeyPress.js +12 -2
  423. package/components/menu/test-suites/InteractiveListMixin.suite.js +4 -43
  424. package/components/menu/test-suites/LionMenu.suite.js +1 -8
  425. package/components/menu/test-suites/LionMenuInteractions.suite.js +22 -44
  426. package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +34 -41
  427. package/components/menu/test-suites/MultiLevelListMixin.suite.js +5 -23
  428. package/components/overlays/src/ArrowMixin.js +111 -127
  429. package/components/overlays/src/OverlayController.js +166 -151
  430. package/components/overlays/src/OverlayMixin.js +61 -63
  431. package/components/overlays/src/OverlaysManager.js +30 -32
  432. package/components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js +0 -1
  433. package/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js +11 -11
  434. package/components/overlays/src/configurations/withBottomSheetConfig.js +12 -13
  435. package/components/overlays/src/configurations/withDropdownConfig.js +4 -2
  436. package/components/overlays/src/configurations/withModalDialogConfig.js +12 -13
  437. package/components/overlays/src/configurations/withPopoverConfig.js +27 -25
  438. package/components/overlays/src/configurations/withTooltipConfig.js +15 -13
  439. package/components/overlays/src/overlayDocumentStyle.js +1 -1
  440. package/components/overlays/src/overlayShadowDomStyle.js +0 -1
  441. package/components/overlays/src/singleton.js +0 -2
  442. package/components/overlays/src/utils/adopt-styles.js +18 -18
  443. package/components/overlays/src/utils/deep-contains.js +7 -6
  444. package/components/overlays/src/utils/get-focusable-elements.js +7 -10
  445. package/components/overlays/src/utils/inert-siblings.js +2 -4
  446. package/components/overlays/src/utils/is-equal-config.js +2 -3
  447. package/components/overlays/src/utils/is-visible.js +0 -1
  448. package/components/overlays/src/utils/simulate-tab.js +1 -4
  449. package/components/overlays/src/utils/sort-by-tabindex.js +2 -4
  450. package/components/overlays/test/ArrowMixin.test.js +18 -30
  451. package/components/overlays/test/OverlayController.test.js +375 -555
  452. package/components/overlays/test/OverlayMixin.test.js +0 -2
  453. package/components/overlays/test/OverlaysManager.test.js +30 -35
  454. package/components/overlays/test/global-positioning.test.js +6 -10
  455. package/components/overlays/test/local-positioning.test.js +101 -103
  456. package/components/overlays/test/utils-tests/active-element.test.js +12 -27
  457. package/components/overlays/test/utils-tests/adopt-styles.test.js +25 -56
  458. package/components/overlays/test/utils-tests/deep-contains.test.js +73 -74
  459. package/components/overlays/test/utils-tests/get-focusable-elements.test.js +6 -23
  460. package/components/overlays/test/utils-tests/is-equal-config.test.js +32 -13
  461. package/components/overlays/test/utils-tests/visibility.test.js +44 -79
  462. package/components/overlays/test-helpers/createShadowHost.js +5 -3
  463. package/components/overlays/test-helpers/normalizeTransformStyle.js +2 -4
  464. package/components/overlays/test-suites/OverlayMixin.suite.js +152 -181
  465. package/components/overlays/test-suites/WithHoverInteraction.suite.js +96 -79
  466. package/components/overlays/translations/bg-BG.js +0 -1
  467. package/components/overlays/translations/cs-CZ.js +0 -1
  468. package/components/overlays/translations/de-DE.js +0 -1
  469. package/components/overlays/translations/en-AU.js +0 -1
  470. package/components/overlays/translations/en-GB.js +0 -1
  471. package/components/overlays/translations/en-US.js +0 -1
  472. package/components/overlays/translations/es-ES.js +0 -1
  473. package/components/overlays/translations/fr-BE.js +0 -1
  474. package/components/overlays/translations/fr-FR.js +0 -1
  475. package/components/overlays/translations/hu-HU.js +0 -1
  476. package/components/overlays/translations/it-IT.js +0 -1
  477. package/components/overlays/translations/nl-BE.js +0 -1
  478. package/components/overlays/translations/nl-NL.js +0 -1
  479. package/components/overlays/translations/pl-PL.js +0 -1
  480. package/components/overlays/translations/ro-RO.js +0 -1
  481. package/components/overlays/translations/ru-RU.js +0 -1
  482. package/components/overlays/translations/sk-SK.js +0 -1
  483. package/components/overlays/translations/tr-TR.js +0 -1
  484. package/components/overlays/translations/uk-UA.js +0 -1
  485. package/components/pagination/src/LionPagination.js +9 -12
  486. package/components/pagination/test/lion-pagination.test.js +18 -50
  487. package/components/progress-indicator/src/LionProgressIndicator.js +10 -12
  488. package/components/progress-indicator/test/lion-progress-indicator.test.js +1 -22
  489. package/components/radio-group/src/LionRadioGroup.js +1 -2
  490. package/components/radio-group/test/lion-radio-group-integrations.test.js +0 -1
  491. package/components/radio-group/test/lion-radio-group.test.js +27 -27
  492. package/components/radio-group/test/lion-radio-integrations.test.js +3 -2
  493. package/components/radio-group/test/lion-radio.test.js +30 -16
  494. package/components/select/src/LionSelect.js +12 -13
  495. package/components/select/test/lion-select.test.js +7 -12
  496. package/components/select-rich/src/LionSelectInvoker.js +18 -11
  497. package/components/select-rich/src/LionSelectRich.js +20 -43
  498. package/components/select-rich/test/demos.screenshots-test.js +40 -9
  499. package/components/select-rich/test/lion-select-invoker.test.js +26 -43
  500. package/components/select-rich/test/lion-select-listbox-suite-integration.test.js +3 -3
  501. package/components/select-rich/test/lion-select-rich-dialog-integration.test.js +4 -9
  502. package/components/select-rich/test/lion-select-rich-interaction.test.js +116 -116
  503. package/components/select-rich/test/lion-select-rich-upgrade.test.js +3 -7
  504. package/components/select-rich/test/lion-select-rich.test.js +153 -195
  505. package/components/select-rich/test-helpers/getSelectRichMembers.js +4 -1
  506. package/components/steps/src/LionStep.js +21 -12
  507. package/components/steps/src/LionSteps.js +25 -25
  508. package/components/steps/test/lion-step.test.js +18 -25
  509. package/components/steps/test/lion-steps.test.js +45 -78
  510. package/components/switch/src/LionSwitch.js +2 -7
  511. package/components/switch/src/LionSwitchButton.js +5 -6
  512. package/components/switch/test/lion-switch-button.test.js +16 -28
  513. package/components/switch/test/lion-switch.test.js +17 -31
  514. package/components/tabs/src/LionTabs.js +25 -28
  515. package/components/tabs/test/lion-tabs.test.js +156 -154
  516. package/components/textarea/src/LionTextarea.js +4 -23
  517. package/components/textarea/test/lion-textarea-integrations.test.js +0 -5
  518. package/components/textarea/test/lion-textarea.test.js +2 -28
  519. package/components/tooltip/src/LionTooltip.js +6 -6
  520. package/components/tooltip/test/lion-tooltip.test.js +75 -102
  521. package/components/validate-messages/src/getLocalizedMessage.js +8 -7
  522. package/components/validate-messages/src/loadDefaultFeedbackMessages.js +3 -1
  523. package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -5
  524. package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +5 -2
  525. package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +99 -35
  526. package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +4 -3
  527. package/components/validate-messages/test/loadDefaultFeedbackMessages.test.js +5 -3
  528. package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.js +80 -45
  529. package/components/validate-messages/translations/bg-BG.js +0 -1
  530. package/components/validate-messages/translations/cs-CZ.js +0 -1
  531. package/components/validate-messages/translations/de-DE.js +0 -1
  532. package/components/validate-messages/translations/en-AU.js +0 -1
  533. package/components/validate-messages/translations/en-GB.js +0 -1
  534. package/components/validate-messages/translations/en-PH.js +0 -1
  535. package/components/validate-messages/translations/en-US.js +0 -1
  536. package/components/validate-messages/translations/es-ES.js +0 -1
  537. package/components/validate-messages/translations/fr-BE.js +0 -1
  538. package/components/validate-messages/translations/fr-FR.js +0 -1
  539. package/components/validate-messages/translations/hu-HU.js +0 -1
  540. package/components/validate-messages/translations/it-IT.js +0 -1
  541. package/components/validate-messages/translations/nl-BE.js +0 -1
  542. package/components/validate-messages/translations/nl-NL.js +0 -1
  543. package/components/validate-messages/translations/pl-PL.js +0 -1
  544. package/components/validate-messages/translations/ro-RO.js +0 -1
  545. package/components/validate-messages/translations/ru-RU.js +0 -1
  546. package/components/validate-messages/translations/sk-SK.js +0 -1
  547. package/components/validate-messages/translations/tr-TR.js +0 -1
  548. package/components/validate-messages/translations/uk-UA.js +0 -1
  549. package/custom-elements.json +191 -56
  550. package/dist-types/components/core/src/SlotMixin.d.ts +6 -1
  551. package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
  552. package/dist-types/components/core/types/SlotMixinTypes.d.ts +5 -1
  553. package/dist-types/components/core/types/SlotMixinTypes.d.ts.map +1 -1
  554. package/dist-types/components/form-core/src/LionField.d.ts +3 -1
  555. package/dist-types/components/form-core/src/LionField.d.ts.map +1 -1
  556. package/dist-types/components/input-tel/src/LionInputTel.d.ts +6 -6
  557. package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
  558. package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts +2 -2
  559. package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts.map +1 -1
  560. package/dist-types/components/input-tel/src/formatters.d.ts +2 -2
  561. package/dist-types/components/input-tel/src/formatters.d.ts.map +1 -1
  562. package/dist-types/components/input-tel/src/preprocessors.d.ts +2 -2
  563. package/dist-types/components/input-tel/src/preprocessors.d.ts.map +1 -1
  564. package/dist-types/components/input-tel/test/validators.test.d.ts +1 -1
  565. package/dist-types/components/input-tel/test/validators.test.d.ts.map +1 -1
  566. package/dist-types/components/listbox/src/LionOption.d.ts +5 -2
  567. package/dist-types/components/listbox/src/LionOption.d.ts.map +1 -1
  568. package/dist-types/components/overlays/src/OverlaysManager.d.ts.map +1 -1
  569. package/dist-types/components/overlays/src/overlayDocumentStyle.d.ts.map +1 -1
  570. package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts +3 -1
  571. package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts.map +1 -1
  572. package/dist-types/components/select-rich/src/LionSelectRich.d.ts +1 -1
  573. package/dist-types/tsconfig.tsbuildinfo +1 -1
  574. package/docs/components/accordion/overview.md +2 -2
  575. package/docs/components/accordion/reference.md +2 -2
  576. package/docs/components/accordion/use-cases.md +2 -2
  577. package/docs/components/button/examples.md +2 -2
  578. package/docs/components/button/extensions.md +2 -2
  579. package/docs/components/button/overview.md +2 -2
  580. package/docs/components/button/use-cases.md +2 -2
  581. package/docs/components/calendar/overview.md +2 -2
  582. package/docs/components/calendar/use-cases.md +2 -2
  583. package/docs/components/checkbox-group/overview.md +4 -4
  584. package/docs/components/checkbox-group/use-cases.md +2 -2
  585. package/docs/components/collapsible/examples.md +2 -2
  586. package/docs/components/collapsible/overview.md +3 -3
  587. package/docs/components/collapsible/use-cases.md +2 -2
  588. package/docs/components/combobox/extensions.md +2 -2
  589. package/docs/components/combobox/overview.md +3 -3
  590. package/docs/components/combobox/use-cases.md +3 -3
  591. package/docs/components/dialog/overview.md +3 -3
  592. package/docs/components/dialog/use-cases.md +2 -2
  593. package/docs/components/drawer/overview.md +2 -2
  594. package/docs/components/drawer/use-cases.md +2 -2
  595. package/docs/components/fieldset/overview.md +7 -7
  596. package/docs/components/fieldset/use-cases.md +2 -2
  597. package/docs/components/form/overview.md +5 -5
  598. package/docs/components/form/use-cases.md +4 -4
  599. package/docs/components/icon/overview.md +2 -2
  600. package/docs/components/icon/use-cases.md +3 -3
  601. package/docs/components/input/overview.md +3 -3
  602. package/docs/components/input/use-cases.md +2 -2
  603. package/docs/components/input-amount/overview.md +5 -5
  604. package/docs/components/input-amount/use-cases.md +2 -2
  605. package/docs/components/input-amount-dropdown/use-cases.md +2 -2
  606. package/docs/components/input-date/overview.md +5 -5
  607. package/docs/components/input-date/use-cases.md +2 -2
  608. package/docs/components/input-datepicker/overview.md +7 -7
  609. package/docs/components/input-datepicker/use-cases.md +2 -2
  610. package/docs/components/input-email/overview.md +4 -4
  611. package/docs/components/input-email/use-cases.md +2 -2
  612. package/docs/components/input-file/overview.md +3 -3
  613. package/docs/components/input-file/use-cases.md +2 -2
  614. package/docs/components/input-iban/overview.md +4 -4
  615. package/docs/components/input-iban/use-cases.md +2 -2
  616. package/docs/components/input-range/overview.md +4 -4
  617. package/docs/components/input-range/use-cases.md +2 -2
  618. package/docs/components/input-stepper/overview.md +3 -3
  619. package/docs/components/input-stepper/use-cases.md +2 -2
  620. package/docs/components/input-tel/overview.md +3 -3
  621. package/docs/components/input-tel/use-cases.md +8 -8
  622. package/docs/components/input-tel-dropdown/extensions.md +2 -2
  623. package/docs/components/input-tel-dropdown/overview.md +3 -3
  624. package/docs/components/input-tel-dropdown/use-cases.md +2 -2
  625. package/docs/components/listbox/overview.md +2 -2
  626. package/docs/components/listbox/use-cases.md +3 -3
  627. package/docs/components/menu/extensions.md +2 -2
  628. package/docs/components/menu/migration.md +2 -2
  629. package/docs/components/menu/overview.md +2 -2
  630. package/docs/components/menu/use-cases.md +1 -1
  631. package/docs/components/pagination/overview.md +2 -2
  632. package/docs/components/pagination/use-cases.md +2 -2
  633. package/docs/components/progress-indicator/examples.md +2 -2
  634. package/docs/components/progress-indicator/overview.md +2 -2
  635. package/docs/components/radio-group/overview.md +5 -5
  636. package/docs/components/radio-group/use-cases.md +2 -2
  637. package/docs/components/select/overview.md +2 -2
  638. package/docs/components/select/use-cases.md +3 -3
  639. package/docs/components/select-rich/examples.md +2 -2
  640. package/docs/components/select-rich/overview.md +2 -2
  641. package/docs/components/select-rich/use-cases.md +4 -4
  642. package/docs/components/steps/overview.md +2 -2
  643. package/docs/components/steps/use-cases.md +2 -2
  644. package/docs/components/switch/overview.md +2 -2
  645. package/docs/components/switch/reference.md +2 -2
  646. package/docs/components/switch/use-cases.md +2 -2
  647. package/docs/components/tabs/examples.md +3 -3
  648. package/docs/components/tabs/overview.md +2 -2
  649. package/docs/components/tabs/use-cases.md +2 -2
  650. package/docs/components/textarea/overview.md +2 -2
  651. package/docs/components/textarea/use-cases.md +2 -2
  652. package/docs/components/tooltip/examples.md +2 -2
  653. package/docs/components/tooltip/overview.md +2 -2
  654. package/docs/components/tooltip/use-cases.md +2 -2
  655. package/docs/fundamentals/index.md +4 -4
  656. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +2 -2
  657. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +2 -2
  658. package/docs/fundamentals/node-tools/providence-analytics/index.md +2 -2
  659. package/docs/fundamentals/node-tools/providence-analytics/overview.md +2 -2
  660. package/docs/fundamentals/node-tools/publish-docs/index.md +2 -2
  661. package/docs/fundamentals/node-tools/publish-docs/overview.md +5 -5
  662. package/docs/fundamentals/node-tools/remark-extend/index.md +2 -2
  663. package/docs/fundamentals/node-tools/remark-extend/overview.md +2 -2
  664. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +2 -2
  665. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +4 -4
  666. package/docs/fundamentals/rationales/TypeScript.md +62 -2
  667. package/docs/fundamentals/rationales/accessibility.md +5 -5
  668. package/docs/fundamentals/rationales/side-effects.md +2 -2
  669. package/docs/fundamentals/rationales/versioning.md +2 -2
  670. package/docs/fundamentals/systems/core/SlotMixin.md +3 -3
  671. package/docs/fundamentals/systems/core/index.md +2 -2
  672. package/docs/fundamentals/systems/core/overview.md +3 -3
  673. package/docs/fundamentals/systems/form/formatting-and-parsing.md +6 -6
  674. package/docs/fundamentals/systems/form/index.md +2 -2
  675. package/docs/fundamentals/systems/form/interaction-states.md +2 -2
  676. package/docs/fundamentals/systems/form/model-value.md +3 -3
  677. package/docs/fundamentals/systems/form/overview.md +30 -30
  678. package/docs/fundamentals/systems/form/styling.md +2 -2
  679. package/docs/fundamentals/systems/form/use-cases.md +2 -2
  680. package/docs/fundamentals/systems/form/validate.md +4 -4
  681. package/docs/fundamentals/systems/icon/index.md +2 -2
  682. package/docs/fundamentals/systems/icon/overview.md +2 -2
  683. package/docs/fundamentals/systems/localize/dates.md +2 -2
  684. package/docs/fundamentals/systems/localize/index.md +2 -2
  685. package/docs/fundamentals/systems/localize/numbers.md +2 -2
  686. package/docs/fundamentals/systems/localize/overview.md +6 -6
  687. package/docs/fundamentals/systems/localize/rationale.md +2 -2
  688. package/docs/fundamentals/systems/localize/text.md +2 -2
  689. package/docs/fundamentals/systems/localize/use-cases.md +2 -2
  690. package/docs/fundamentals/systems/overlays/_edge-cases.md +2 -2
  691. package/docs/fundamentals/systems/overlays/configuration.md +4 -4
  692. package/docs/fundamentals/systems/overlays/index.md +2 -2
  693. package/docs/fundamentals/systems/overlays/overview.md +7 -7
  694. package/docs/fundamentals/systems/overlays/rationale.md +2 -2
  695. package/docs/fundamentals/systems/overlays/use-cases.md +4 -4
  696. package/docs/fundamentals/tools/ajax/index.md +2 -2
  697. package/docs/fundamentals/tools/ajax/overview.md +2 -2
  698. package/docs/fundamentals/tools/ajax/use-cases.md +2 -2
  699. package/docs/fundamentals/tools/helpers/action-logger.md +2 -2
  700. package/docs/fundamentals/tools/helpers/index.md +2 -2
  701. package/docs/fundamentals/tools/helpers/overview.md +3 -3
  702. package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +2 -2
  703. package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +2 -2
  704. package/docs/fundamentals/tools/singleton-manager/example-success/index.md +2 -2
  705. package/docs/fundamentals/tools/singleton-manager/index.md +2 -2
  706. package/docs/fundamentals/tools/singleton-manager/overview.md +6 -6
  707. package/docs/guides/how-to/create-a-custom-field.md +7 -7
  708. package/docs/guides/how-to/create-a-form.md +6 -6
  709. package/docs/guides/how-to/extend-a-native-input.md +4 -4
  710. package/docs/guides/how-to/get-started.md +2 -2
  711. package/docs/guides/how-to/index.md +1 -1
  712. package/docs/guides/index.md +8 -8
  713. package/docs/guides/principles/definitions-and-terms.md +2 -2
  714. package/docs/guides/principles/index.md +5 -5
  715. package/docs/guides/principles/scoped-elements.md +2 -2
  716. package/docs/guides/principles/styling.md +3 -3
  717. package/docs/guides/principles/subclasser-apis.md +2 -2
  718. package/exports/define/lion-accordion.js +0 -1
  719. package/exports/define/lion-button-reset.js +0 -1
  720. package/exports/define/lion-button-submit.js +0 -1
  721. package/exports/define/lion-button.js +0 -1
  722. package/exports/define/lion-calendar.js +0 -1
  723. package/exports/define/lion-checkbox-group.js +0 -1
  724. package/exports/define/lion-checkbox-indeterminate.js +0 -1
  725. package/exports/define/lion-checkbox.js +0 -1
  726. package/exports/define/lion-collapsible.js +0 -1
  727. package/exports/define/lion-combobox.js +0 -1
  728. package/exports/define/lion-dialog.js +0 -1
  729. package/exports/define/lion-drawer.js +0 -1
  730. package/exports/define/lion-field.js +0 -1
  731. package/exports/define/lion-fieldset.js +0 -1
  732. package/exports/define/lion-form.js +0 -1
  733. package/exports/define/lion-icon.js +0 -1
  734. package/exports/define/lion-input-amount-dropdown.js +0 -1
  735. package/exports/define/lion-input-amount.js +0 -1
  736. package/exports/define/lion-input-date.js +0 -1
  737. package/exports/define/lion-input-datepicker.js +0 -1
  738. package/exports/define/lion-input-email.js +0 -1
  739. package/exports/define/lion-input-file.js +0 -1
  740. package/exports/define/lion-input-iban.js +0 -1
  741. package/exports/define/lion-input-range.js +0 -1
  742. package/exports/define/lion-input-stepper.js +0 -1
  743. package/exports/define/lion-input-tel-dropdown.js +0 -1
  744. package/exports/define/lion-input-tel.js +0 -1
  745. package/exports/define/lion-input.js +0 -1
  746. package/exports/define/lion-item.js +0 -1
  747. package/exports/define/lion-listbox.js +0 -1
  748. package/exports/define/lion-menu.js +0 -1
  749. package/exports/define/lion-menuitem.js +0 -1
  750. package/exports/define/lion-option.js +0 -1
  751. package/exports/define/lion-options.js +0 -1
  752. package/exports/define/lion-pagination.js +0 -1
  753. package/exports/define/lion-progress-indicator.js +0 -1
  754. package/exports/define/lion-radio-group.js +0 -1
  755. package/exports/define/lion-radio.js +0 -1
  756. package/exports/define/lion-select-invoker.js +0 -1
  757. package/exports/define/lion-select-rich.js +0 -1
  758. package/exports/define/lion-select.js +0 -1
  759. package/exports/define/lion-selected-file-list.js +0 -1
  760. package/exports/define/lion-step.js +0 -1
  761. package/exports/define/lion-steps.js +0 -1
  762. package/exports/define/lion-switch-button.js +0 -1
  763. package/exports/define/lion-switch.js +0 -1
  764. package/exports/define/lion-tabs.js +0 -1
  765. package/exports/define/lion-textarea.js +0 -1
  766. package/exports/define/lion-tooltip.js +0 -1
  767. package/exports/define/lion-validation-feedback.js +0 -1
  768. package/exports/define-helpers/sb-action-logger.js +0 -1
  769. package/exports/define-helpers/sb-locale-switcher.js +0 -1
  770. package/exports/form-core.js +0 -8
  771. package/exports/localize-no-side-effects.js +0 -1
  772. package/exports/localize.js +0 -2
  773. package/exports/overlays.js +0 -4
  774. package/generated/awesome-phonenumber/LICENSE +22 -0
  775. package/generated/awesome-phonenumber/LICENSE.closure-library +176 -0
  776. package/generated/awesome-phonenumber/LICENSE.libphonenumber +176 -0
  777. package/generated/awesome-phonenumber/checksums.json +6 -0
  778. package/generated/awesome-phonenumber/index-esm.mjs +817 -0
  779. package/generated/awesome-phonenumber/index.d.ts +227 -0
  780. package/generated/awesome-phonenumber/index.js +45 -0
  781. package/generated/awesome-phonenumber/lib/index.js +710 -0
  782. package/generated/awesome-phonenumber/package.json +9 -0
  783. package/generated/awesome-phonenumber/provenance.json +13 -0
  784. package/package.json +32 -10
  785. package/web-types.json +1 -1
  786. package/vendor/README.md +0 -61
  787. package/vendor/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz +0 -0
@@ -1,7 +1,6 @@
1
1
  import { fixture as _fixture, expect } from '@open-wc/testing';
2
2
  import { html } from 'lit/static-html.js';
3
3
  import sinon from 'sinon';
4
-
5
4
  import '@lion/ui/define/lion-pagination.js';
6
5
 
7
6
  /**
@@ -9,8 +8,7 @@ import '@lion/ui/define/lion-pagination.js';
9
8
  * @typedef {import('lit').TemplateResult} TemplateResult
10
9
  */
11
10
 
12
- const fixture = /** @type {(arg: TemplateResult) => Promise<LionPagination>} */ (_fixture);
13
-
11
+ const fixture = /** @type {(arg: TemplateResult) => Promise<LionPagination>} */ _fixture;
14
12
  describe('Pagination', () => {
15
13
  it('has states for count and current', async () => {
16
14
  const el = await fixture(html` <lion-pagination count="4"></lion-pagination> `);
@@ -22,93 +20,77 @@ describe('Pagination', () => {
22
20
  expect(el.getAttribute('count')).to.equal('8');
23
21
  expect(el.getAttribute('current')).to.equal('2');
24
22
  });
25
-
26
23
  it('disables the previous button if on first page', async () => {
27
24
  const el = await fixture(html` <lion-pagination count="4"></lion-pagination> `);
28
- const buttons = Array.from(
29
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('button'),
30
- );
25
+ const buttons = Array.from(/** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('button'));
31
26
  expect(buttons[0]).to.has.attribute('disabled');
32
27
  });
33
-
34
28
  it('disables the next button if on last page', async () => {
35
29
  const el = await fixture(html` <lion-pagination count="4" current="4"></lion-pagination> `);
36
- const buttons = Array.from(
37
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('button'),
38
- );
30
+ const buttons = Array.from(/** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('button'));
39
31
  expect(buttons[buttons.length - 1]).to.has.attribute('disabled');
40
32
  });
41
-
42
33
  describe('User interaction', () => {
43
34
  it('can go to previous page with previous button', async () => {
44
35
  const el = await fixture(html` <lion-pagination count="6" current="2"></lion-pagination> `);
45
36
  const buttons = Array.from(
46
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('button'),
37
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('button'),
47
38
  );
48
39
  buttons[0].click();
49
40
  expect(el.current).to.equal(1);
50
41
  });
51
-
52
42
  it('can go to next page with next button', async () => {
53
43
  const el = await fixture(html` <lion-pagination count="6" current="2"></lion-pagination> `);
54
44
  const buttons = Array.from(
55
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('button'),
45
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('button'),
56
46
  );
57
47
  buttons[buttons.length - 1].click();
58
48
  expect(el.current).to.equal(3);
59
49
  });
60
-
61
50
  it('goes to the page when clicking on its button', async () => {
62
51
  const el = await fixture(html` <lion-pagination count="6" current="2"></lion-pagination> `);
63
52
  const buttons = Array.from(
64
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('button'),
53
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('button'),
65
54
  );
66
55
  buttons[5].click();
67
56
  expect(el.current).to.equal(5);
68
57
  });
69
-
70
58
  it('fires current-changed event when interacting with the pagination', async () => {
71
59
  const changeSpy = sinon.spy();
72
60
  const el = await fixture(html`
73
61
  <lion-pagination count="6" current="2" @current-changed=${changeSpy}></lion-pagination>
74
62
  `);
75
63
  const buttons = Array.from(
76
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('button'),
64
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('button'),
77
65
  );
78
66
  const previous = buttons[0];
79
67
  const next = buttons[buttons.length - 1];
80
68
  const page5 = buttons[5];
81
-
82
69
  previous.click();
83
70
  expect(changeSpy).to.have.callCount(1);
84
-
85
71
  next.click();
86
72
  expect(changeSpy).to.have.callCount(2);
87
-
88
73
  page5.click();
89
74
  expect(changeSpy).to.have.callCount(3);
90
-
91
75
  el.current = 3;
92
76
  expect(changeSpy).to.have.callCount(4);
93
77
  });
94
-
95
78
  it('does NOT fire current-changed event when clicking on a current page number', async () => {
96
79
  const changeSpy = sinon.spy();
97
80
  const el = await fixture(html`
98
81
  <lion-pagination count="6" current="2" @current-changed=${changeSpy}></lion-pagination>
99
82
  `);
100
- const page2 = /** @type {HTMLElement} */ (
101
- el.shadowRoot?.querySelector("button[aria-current='true']")
102
- );
83
+ const page2 =
84
+ /** @type {HTMLElement} */
85
+ el.shadowRoot?.querySelector("button[aria-current='true']");
103
86
  page2.click();
104
87
  expect(changeSpy).to.not.be.called;
105
88
  expect(el.current).to.equal(2);
106
89
  });
107
-
108
90
  it('should announce next and previous page using `next()` and `previous()`', async () => {
109
91
  const el = await fixture(html` <lion-pagination count="6" current="2"></lion-pagination> `);
110
92
  const buttons = Array.from(
111
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('button'),
93
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('button'),
112
94
  );
113
95
  expect(buttons[2].getAttribute('aria-live')).to.equal('polite');
114
96
  el.next();
@@ -120,7 +102,6 @@ describe('Pagination', () => {
120
102
  expect(buttons[3].getAttribute('aria-live')).to.equal('off');
121
103
  expect(buttons[2].getAttribute('aria-live')).to.equal('polite');
122
104
  });
123
-
124
105
  it('should goto next and previous page using `next()` and `previous()`', async () => {
125
106
  const el = await fixture(html` <lion-pagination count="6" current="2"></lion-pagination> `);
126
107
  el.next();
@@ -128,7 +109,6 @@ describe('Pagination', () => {
128
109
  el.previous();
129
110
  expect(el.current).to.equal(2);
130
111
  });
131
-
132
112
  it('should goto first and last page using `first()` and `last()`', async () => {
133
113
  const el = await fixture(html` <lion-pagination count="5" current="2"></lion-pagination> `);
134
114
  expect(el.current).to.equal(2);
@@ -137,7 +117,6 @@ describe('Pagination', () => {
137
117
  el.last();
138
118
  expect(el.current).to.equal(5);
139
119
  });
140
-
141
120
  it('should goto 7 page using `goto()`', async () => {
142
121
  const el = await fixture(html` <lion-pagination count="10" current="2"></lion-pagination> `);
143
122
  expect(el.current).to.equal(2);
@@ -145,18 +124,16 @@ describe('Pagination', () => {
145
124
  expect(el.current).to.equal(7);
146
125
  });
147
126
  });
148
-
149
127
  describe('Accessibility', () => {
150
128
  it('sets aria-current to the current page', async () => {
151
129
  const el = await fixture(html` <lion-pagination count="3"></lion-pagination> `);
152
130
  const buttons = Array.from(
153
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('button'),
131
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('button'),
154
132
  );
155
133
  // button[0] is the previous button
156
134
  expect(buttons[1].getAttribute('aria-current')).to.equal('true');
157
135
  expect(buttons[2].getAttribute('aria-current')).to.equal('false');
158
136
  expect(buttons[3].getAttribute('aria-current')).to.equal('false');
159
-
160
137
  el.current = 2;
161
138
  await el.updateComplete;
162
139
  expect(buttons[1].getAttribute('aria-current')).to.equal('false');
@@ -164,44 +141,35 @@ describe('Pagination', () => {
164
141
  expect(buttons[3].getAttribute('aria-current')).to.equal('false');
165
142
  });
166
143
  });
167
-
168
144
  describe('Ellipsis display', () => {
169
145
  it('should not show ellipsis when count is visiblePages + 1 (count=6, visiblePages=5)', async () => {
170
146
  const el = await fixture(html` <lion-pagination count="6" current="1"></lion-pagination> `);
171
- const navItems = Array.from(/** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('li'));
147
+ const navItems = Array.from(/** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('li'));
172
148
  // Check that no ellipsis is rendered (no <span> elements with '...')
173
- const spans = Array.from(
174
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('li span'),
175
- );
149
+ const spans = Array.from(/** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('li span'));
176
150
  expect(spans.length).to.equal(0);
177
151
 
178
152
  // There should be 8 nav items: previous button + 6 page buttons + next button
179
153
  expect(navItems.length).to.equal(8);
180
154
  });
181
-
182
155
  it('should not show ellipsis when count is visiblePages + 2 (count=7, visiblePages=5)', async () => {
183
156
  const el = await fixture(html` <lion-pagination count="7" current="1"></lion-pagination> `);
184
157
  // Check that no ellipsis is rendered (no <span> elements with '...')
185
- const spans = Array.from(
186
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('li span'),
187
- );
158
+ const spans = Array.from(/** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('li span'));
188
159
  expect(spans.length).to.equal(0);
189
160
 
190
161
  // There should be 9 nav items: previous button + 7 page buttons + next button
191
- const navItems = Array.from(/** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('li'));
162
+ const navItems = Array.from(/** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('li'));
192
163
  expect(navItems.length).to.equal(9);
193
164
  });
194
-
195
165
  it('should show ellipsis when count is visiblePages + 3 (count=8, visiblePages=5)', async () => {
196
166
  const el = await fixture(html` <lion-pagination count="8" current="1"></lion-pagination> `);
197
167
  // Check that ellipsis is rendered (should have <span> elements with '...')
198
- const spans = Array.from(
199
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelectorAll('li span'),
200
- );
168
+ const spans = Array.from(/** @type {ShadowRoot} */ el.shadowRoot.querySelectorAll('li span'));
201
169
  expect(spans.length).to.be.greaterThan(0);
202
170
 
203
171
  // Verify the ellipsis contains '...'
204
- const ellipsisText = Array.from(spans).map(span => span.textContent);
172
+ const ellipsisText = Array.from(spans).map((span) => span.textContent);
205
173
  expect(ellipsisText).to.include('...');
206
174
  });
207
175
  });
@@ -21,15 +21,20 @@ export class LionProgressIndicator extends LocalizeMixin(LitElement) {
21
21
  max: {
22
22
  type: Number,
23
23
  },
24
- _ariaLabel: { attribute: 'aria-label', type: String },
25
- _ariaLabelledby: { attribute: 'aria-labelledby', type: String },
24
+ _ariaLabel: {
25
+ attribute: 'aria-label',
26
+ type: String,
27
+ },
28
+ _ariaLabelledby: {
29
+ attribute: 'aria-labelledby',
30
+ type: String,
31
+ },
26
32
  };
27
33
  }
28
-
29
34
  static get localizeNamespaces() {
30
35
  return [
31
36
  {
32
- 'lion-progress-indicator': /** @param {string} locale */ locale => {
37
+ 'lion-progress-indicator': /** @param {string} locale */ (locale) => {
33
38
  switch (locale) {
34
39
  case 'bg-BG':
35
40
  case 'bg':
@@ -100,7 +105,7 @@ export class LionProgressIndicator extends LocalizeMixin(LitElement) {
100
105
  * // TODO: check if this is a false positive or if we can improve
101
106
  * @configure ReactiveElement
102
107
  */
103
- static enabledWarnings = super.enabledWarnings?.filter(w => w !== 'change-in-update') || [];
108
+ static enabledWarnings = super.enabledWarnings?.filter((w) => w !== 'change-in-update') || [];
104
109
 
105
110
  /**
106
111
  * In case of a determinate progress-indicator it returns the progress percentage
@@ -116,7 +121,6 @@ export class LionProgressIndicator extends LocalizeMixin(LitElement) {
116
121
  }
117
122
  return ((this.value - this.min) / (this.max - this.min)) * 100;
118
123
  }
119
-
120
124
  constructor() {
121
125
  super();
122
126
  this.value = 0;
@@ -132,11 +136,9 @@ export class LionProgressIndicator extends LocalizeMixin(LitElement) {
132
136
  _graphicTemplate() {
133
137
  return nothing;
134
138
  }
135
-
136
139
  render() {
137
140
  return this._graphicTemplate();
138
141
  }
139
-
140
142
  connectedCallback() {
141
143
  super.connectedCallback();
142
144
  this.setAttribute('role', 'progressbar');
@@ -148,7 +150,6 @@ export class LionProgressIndicator extends LocalizeMixin(LitElement) {
148
150
  */
149
151
  updated(changedProperties) {
150
152
  super.updated(changedProperties);
151
-
152
153
  if (this.indeterminate) {
153
154
  if (changedProperties.has('_ariaLabel') || changedProperties.has('_ariaLabelledby')) {
154
155
  this._setDefaultLabel();
@@ -188,7 +189,6 @@ export class LionProgressIndicator extends LocalizeMixin(LitElement) {
188
189
  }
189
190
  }
190
191
  }
191
-
192
192
  onLocaleUpdated() {
193
193
  super.onLocaleUpdated();
194
194
  // only set default label for indeterminate
@@ -196,13 +196,11 @@ export class LionProgressIndicator extends LocalizeMixin(LitElement) {
196
196
  this._setDefaultLabel();
197
197
  }
198
198
  }
199
-
200
199
  _resetAriaValueAttributes() {
201
200
  this.removeAttribute('aria-valuenow');
202
201
  this.removeAttribute('aria-valuemin');
203
202
  this.removeAttribute('aria-valuemax');
204
203
  }
205
-
206
204
  _setDefaultLabel() {
207
205
  const localizeManager = getLocalizeManager();
208
206
  if (this._ariaLabelledby) {
@@ -1,6 +1,5 @@
1
1
  import { html } from 'lit';
2
2
  import { expect, fixture as _fixture } from '@open-wc/testing';
3
-
4
3
  import '@lion/ui/define/lion-progress-indicator.js';
5
4
 
6
5
  /**
@@ -8,21 +7,18 @@ import '@lion/ui/define/lion-progress-indicator.js';
8
7
  * @typedef {import('lit').TemplateResult} TemplateResult
9
8
  */
10
9
 
11
- const fixture = /** @type {(arg: TemplateResult) => Promise<LionProgressIndicator>} */ (_fixture);
12
-
10
+ const fixture = /** @type {(arg: TemplateResult) => Promise<LionProgressIndicator>} */ _fixture;
13
11
  describe('lion-progress-indicator', () => {
14
12
  describe('indeterminate', async () => {
15
13
  it('is indeterminate when has no value attribute', async () => {
16
14
  const el = await fixture(html` <lion-progress-indicator></lion-progress-indicator> `);
17
15
  expect(el.indeterminate).to.be.true;
18
16
  });
19
-
20
17
  it('adds a label by default', async () => {
21
18
  const el = await fixture(html` <lion-progress-indicator></lion-progress-indicator> `);
22
19
  await el.localizeNamespacesLoaded;
23
20
  expect(el.getAttribute('aria-label')).to.equal('Loading');
24
21
  });
25
-
26
22
  it('can override a label with "aria-label"', async () => {
27
23
  const el = await fixture(html`
28
24
  <lion-progress-indicator aria-label="foo"></lion-progress-indicator>
@@ -35,7 +31,6 @@ describe('lion-progress-indicator', () => {
35
31
  await el.updateComplete;
36
32
  expect(el.getAttribute('aria-label')).to.equal('Loading');
37
33
  });
38
-
39
34
  it('can override a label with "aria-labelledby"', async () => {
40
35
  const el = await fixture(html`
41
36
  <lion-progress-indicator aria-labelledby="foo-id"></lion-progress-indicator>
@@ -51,7 +46,6 @@ describe('lion-progress-indicator', () => {
51
46
  expect(el.hasAttribute('aria-labelledby')).to.be.false;
52
47
  expect(el.getAttribute('aria-label')).to.equal('Loading');
53
48
  });
54
-
55
49
  it('loosses default aria-label when switch to determinate state', async () => {
56
50
  const el = await fixture(html` <lion-progress-indicator></lion-progress-indicator> `);
57
51
  await el.localizeNamespacesLoaded;
@@ -60,7 +54,6 @@ describe('lion-progress-indicator', () => {
60
54
  await el.updateComplete;
61
55
  expect(el.hasAttribute('aria-label')).to.be.false;
62
56
  });
63
-
64
57
  it('keeps own aria-label when switch to determinate state', async () => {
65
58
  const el = await fixture(html`
66
59
  <lion-progress-indicator aria-label="foo"></lion-progress-indicator>
@@ -71,7 +64,6 @@ describe('lion-progress-indicator', () => {
71
64
  expect(el.getAttribute('aria-label')).to.equal('foo');
72
65
  });
73
66
  });
74
-
75
67
  describe('determinate', async () => {
76
68
  it('is determinate when it has a value', async () => {
77
69
  const el = await fixture(html`
@@ -79,7 +71,6 @@ describe('lion-progress-indicator', () => {
79
71
  `);
80
72
  expect(el.indeterminate).to.be.false;
81
73
  });
82
-
83
74
  it('can update value', async () => {
84
75
  const el = await fixture(html`
85
76
  <lion-progress-indicator value="25" aria-label="foo"></lion-progress-indicator>
@@ -89,7 +80,6 @@ describe('lion-progress-indicator', () => {
89
80
  await el.updateComplete;
90
81
  expect(el.getAttribute('aria-valuenow')).to.equal('30');
91
82
  });
92
-
93
83
  it('can update min', async () => {
94
84
  const el = await fixture(html`
95
85
  <lion-progress-indicator value="50" aria-label="foo"></lion-progress-indicator>
@@ -99,7 +89,6 @@ describe('lion-progress-indicator', () => {
99
89
  await el.updateComplete;
100
90
  expect(el.getAttribute('aria-valuemin')).to.equal('30');
101
91
  });
102
-
103
92
  it('can update max', async () => {
104
93
  const el = await fixture(html`
105
94
  <lion-progress-indicator value="50" aria-label="foo"></lion-progress-indicator>
@@ -109,7 +98,6 @@ describe('lion-progress-indicator', () => {
109
98
  await el.updateComplete;
110
99
  expect(el.getAttribute('aria-valuemax')).to.equal('70');
111
100
  });
112
-
113
101
  it('min & max limits value', async () => {
114
102
  const el = await fixture(html`
115
103
  <lion-progress-indicator value="150" aria-label="foo"></lion-progress-indicator>
@@ -132,7 +120,6 @@ describe('lion-progress-indicator', () => {
132
120
  `);
133
121
  expect(el.getAttribute('aria-valuetext')).to.equal('8% (34 minutes) remaining');
134
122
  });
135
-
136
123
  it('becomes indeterminate if value gets removed', async () => {
137
124
  const el = await fixture(
138
125
  html`<lion-progress-indicator value="30"></lion-progress-indicator> `,
@@ -142,7 +129,6 @@ describe('lion-progress-indicator', () => {
142
129
  expect(el.indeterminate).to.be.true;
143
130
  expect(el.getAttribute('aria-label')).to.equal('Loading');
144
131
  });
145
-
146
132
  it("becomes indeterminate if value ain't a number", async () => {
147
133
  const el = await fixture(
148
134
  html`<lion-progress-indicator value="30"></lion-progress-indicator> `,
@@ -158,7 +144,6 @@ describe('lion-progress-indicator', () => {
158
144
  expect(el.hasAttribute('aria-valuemax')).to.be.false;
159
145
  expect(el.getAttribute('aria-label')).to.equal('Loading');
160
146
  });
161
-
162
147
  it('can update value to 0', async () => {
163
148
  const el = await fixture(
164
149
  html`<lion-progress-indicator value="0"></lion-progress-indicator> `,
@@ -174,7 +159,6 @@ describe('lion-progress-indicator', () => {
174
159
  expect(el.indeterminate).to.be.false;
175
160
  });
176
161
  });
177
-
178
162
  describe('Subclasers', () => {
179
163
  it('can use _progressPercentage getter to get the progress percentage', async () => {
180
164
  const el = await fixture(html`
@@ -183,20 +167,17 @@ describe('lion-progress-indicator', () => {
183
167
  expect(el._progressPercentage).to.equal(20);
184
168
  });
185
169
  });
186
-
187
170
  describe('Accessibility', () => {
188
171
  it('by default', async () => {
189
172
  const el = await fixture(html` <lion-progress-indicator></lion-progress-indicator> `);
190
173
  expect(el.getAttribute('role')).to.equal('progressbar');
191
174
  });
192
-
193
175
  describe('indeterminate', () => {
194
176
  it('passes a11y test', async () => {
195
177
  const el = await fixture(html` <lion-progress-indicator></lion-progress-indicator> `);
196
178
  await expect(el).to.be.accessible();
197
179
  });
198
180
  });
199
-
200
181
  describe('determinate', () => {
201
182
  it('passes a11y test', async () => {
202
183
  const el = await fixture(html`
@@ -204,14 +185,12 @@ describe('lion-progress-indicator', () => {
204
185
  `);
205
186
  await expect(el).to.be.accessible();
206
187
  });
207
-
208
188
  it('once value is set', async () => {
209
189
  const el = await fixture(html`
210
190
  <lion-progress-indicator value="25" aria-label="foo"></lion-progress-indicator>
211
191
  `);
212
192
  expect(el.getAttribute('aria-valuenow')).to.equal('25');
213
193
  });
214
-
215
194
  it('allows to set min & max values', async () => {
216
195
  const el = await fixture(html`
217
196
  <lion-progress-indicator value="25" aria-label="foo"></lion-progress-indicator>
@@ -18,7 +18,7 @@ export class LionRadioGroup extends ChoiceGroupMixin(FormGroupMixin(LitElement))
18
18
  */
19
19
  resetGroup() {
20
20
  let initValue;
21
- this.formElements.forEach(child => {
21
+ this.formElements.forEach((child) => {
22
22
  if (typeof child.resetGroup === 'function') {
23
23
  child.resetGroup();
24
24
  } else if (typeof child.reset === 'function') {
@@ -30,7 +30,6 @@ export class LionRadioGroup extends ChoiceGroupMixin(FormGroupMixin(LitElement))
30
30
  }
31
31
  });
32
32
  this.modelValue = initValue;
33
-
34
33
  this.resetInteractionState();
35
34
  }
36
35
  }
@@ -1,7 +1,6 @@
1
1
  import { runChoiceGroupMixinSuite } from '@lion/ui/form-core-test-suites.js';
2
2
  import '@lion/ui/define/lion-radio-group.js';
3
3
  import '@lion/ui/define/lion-radio.js';
4
-
5
4
  runChoiceGroupMixinSuite({
6
5
  parentTagString: 'lion-radio-group',
7
6
  childTagString: 'lion-radio',
@@ -8,8 +8,7 @@ import '@lion/ui/define/lion-radio.js';
8
8
  * @typedef {import('../src/LionRadio.js').LionRadio} LionRadio
9
9
  * @typedef {import('lit').TemplateResult} TemplateResult
10
10
  */
11
- const fixture = /** @type {(arg: TemplateResult) => Promise<LionRadioGroup>} */ (_fixture);
12
-
11
+ const fixture = /** @type {(arg: TemplateResult) => Promise<LionRadioGroup>} */ _fixture;
13
12
  describe('<lion-radio-group>', () => {
14
13
  describe('resetGroup', () => {
15
14
  // TODO move to FormGroupMixin test suite and let CheckboxGroup make use of them
@@ -22,36 +21,36 @@ describe('<lion-radio-group>', () => {
22
21
  `);
23
22
  el.formElements[0].checked = true;
24
23
  expect(el.modelValue).to.deep.equal('male');
25
-
26
24
  el.resetGroup();
27
25
  expect(el.modelValue).to.deep.equal('');
28
26
  });
29
-
30
27
  it('restores default values if changes were made', async () => {
31
28
  const el = await fixture(html`
32
29
  <lion-radio-group name="gender" label="Gender">
33
30
  <lion-radio label="Male" .choiceValue=${'male'}></lion-radio>
34
- <lion-radio label="Female" .modelValue=${{ value: 'female', checked: true }}></lion-radio>
31
+ <lion-radio
32
+ label="Female"
33
+ .modelValue=${{
34
+ value: 'female',
35
+ checked: true,
36
+ }}
37
+ ></lion-radio>
35
38
  <lion-radio label="Other" .choiceValue=${'other'}></lion-radio>
36
39
  </lion-radio-group>
37
40
  `);
38
41
  el.formElements[0].checked = true;
39
42
  expect(el.modelValue).to.deep.equal('male');
40
-
41
43
  el.resetGroup();
42
44
  expect(el.modelValue).to.deep.equal('female');
43
-
44
45
  el.formElements[2].checked = true;
45
46
  expect(el.modelValue).to.deep.equal('other');
46
-
47
47
  el.resetGroup();
48
48
  await el.formElements[1].updateComplete;
49
49
  await el.updateComplete;
50
50
  expect(el.modelValue).to.deep.equal('female');
51
51
  });
52
-
53
52
  it('restores default values if changes were made to a group containing options with formatters', async () => {
54
- const formatter = /** @type {(modelValue: { value: string}) => string} */ modelValue =>
53
+ const formatter = /** @type {(modelValue: { value: string}) => string} */ (modelValue) =>
55
54
  modelValue.value.charAt(0);
56
55
  const el = await fixture(html`
57
56
  <lion-radio-group name="gender" label="Gender">
@@ -59,27 +58,26 @@ describe('<lion-radio-group>', () => {
59
58
  <lion-radio
60
59
  label="Female"
61
60
  .formatter=${formatter}
62
- .modelValue=${{ value: 'female', checked: true }}
61
+ .modelValue=${{
62
+ value: 'female',
63
+ checked: true,
64
+ }}
63
65
  ></lion-radio>
64
66
  <lion-radio label="Other" .formatter=${formatter} .choiceValue=${'other'}></lion-radio>
65
67
  </lion-radio-group>
66
68
  `);
67
69
  el.formElements[0].checked = true;
68
70
  expect(el.modelValue).to.deep.equal('male');
69
-
70
71
  el.resetGroup();
71
72
  expect(el.modelValue).to.deep.equal('female');
72
-
73
73
  el.formElements[2].checked = true;
74
74
  expect(el.modelValue).to.deep.equal('other');
75
-
76
75
  el.resetGroup();
77
76
  await el.formElements[1].updateComplete;
78
77
  await el.updateComplete;
79
78
  expect(el.modelValue).to.deep.equal('female');
80
79
  });
81
80
  });
82
-
83
81
  it('should have role = radiogroup', async () => {
84
82
  const el = await fixture(html`
85
83
  <lion-radio-group label="Gender" name="gender">
@@ -89,7 +87,6 @@ describe('<lion-radio-group>', () => {
89
87
  `);
90
88
  expect(el.getAttribute('role')).to.equal('radiogroup');
91
89
  });
92
-
93
90
  it(`becomes "touched" once a single element of the group changes`, async () => {
94
91
  const el = await fixture(html`
95
92
  <lion-radio-group name="myGroup">
@@ -97,39 +94,44 @@ describe('<lion-radio-group>', () => {
97
94
  <lion-radio></lion-radio>
98
95
  </lion-radio-group>
99
96
  `);
100
-
101
97
  el.formElements[1].focus();
102
98
  expect(el.touched).to.equal(false, 'initially, touched state is false');
103
- /** @type {LionRadio} */ (el.children[1]).checked = true;
99
+ /** @type {LionRadio} */
100
+ el.children[1].checked = true;
104
101
  expect(el.touched, `focused via a mouse click, group should be touched`).to.be.true;
105
102
  });
106
-
107
103
  it('allows selection of only one radio in a named group', async () => {
108
104
  const el = await fixture(html`
109
105
  <lion-radio-group name="gender">
110
- <lion-radio .modelValue="${{ value: 'male', checked: false }}"></lion-radio>
111
- <lion-radio .modelValue="${{ value: 'female', checked: false }}"></lion-radio>
106
+ <lion-radio
107
+ .modelValue="${{
108
+ value: 'male',
109
+ checked: false,
110
+ }}"
111
+ ></lion-radio>
112
+ <lion-radio
113
+ .modelValue="${{
114
+ value: 'female',
115
+ checked: false,
116
+ }}"
117
+ ></lion-radio>
112
118
  </lion-radio-group>
113
119
  `);
114
120
  const male = el.formElements[0];
115
121
  const maleInput = male.querySelector('input');
116
122
  const female = el.formElements[1];
117
123
  const femaleInput = female.querySelector('input');
118
-
119
124
  expect(male.checked).to.equal(false);
120
125
  expect(female.checked).to.equal(false);
121
-
122
126
  maleInput.focus();
123
127
  maleInput.click();
124
128
  expect(male.checked).to.equal(true);
125
129
  expect(female.checked).to.equal(false);
126
-
127
130
  femaleInput.focus();
128
131
  femaleInput.click();
129
132
  expect(male.checked).to.equal(false);
130
133
  expect(female.checked).to.equal(true);
131
134
  });
132
-
133
135
  it('is accessible', async () => {
134
136
  const el = await fixture(html`
135
137
  <lion-radio-group label="My group" name="gender">
@@ -139,7 +141,6 @@ describe('<lion-radio-group>', () => {
139
141
  `);
140
142
  await expect(el).to.be.accessible();
141
143
  });
142
-
143
144
  it('is accessible when the group is disabled', async () => {
144
145
  const el = await fixture(html`
145
146
  <lion-radio-group label="My group" name="gender" disabled>
@@ -149,7 +150,6 @@ describe('<lion-radio-group>', () => {
149
150
  `);
150
151
  await expect(el).to.be.accessible();
151
152
  });
152
-
153
153
  it('is accessible when an option is disabled', async () => {
154
154
  const el = await fixture(html`
155
155
  <lion-radio-group label="My group" name="gender">
@@ -1,4 +1,5 @@
1
1
  import '@lion/ui/define/lion-radio.js';
2
2
  import { runChoiceInputMixinSuite } from '@lion/ui/form-core-test-suites.js';
3
-
4
- runChoiceInputMixinSuite({ tagString: 'lion-radio' });
3
+ runChoiceInputMixinSuite({
4
+ tagString: 'lion-radio',
5
+ });