@lion/ui 0.22.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 (901) hide show
  1. package/README.md +65 -0
  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 +45 -55
  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 +598 -860
  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 -357
  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-core/types/choice-group/ChoiceGroupMixinTypes.ts +5 -0
  157. package/components/form-integrations/test/dialog-integrations.test.js +1 -4
  158. package/components/form-integrations/test/form-group-methods.test.js +28 -31
  159. package/components/form-integrations/test/form-integrations.test.js +27 -28
  160. package/components/form-integrations/test/form-validation-integrations.test.js +21 -29
  161. package/components/form-integrations/test/helpers/umbrella-form.js +3 -5
  162. package/components/form-integrations/test/model-value-consistency.test.js +75 -77
  163. package/components/form-integrations/test/model-value-event.test.js +10 -20
  164. package/components/helpers/src/SbActionLogger.js +13 -17
  165. package/components/helpers/src/SbLocaleSwitcher.js +5 -5
  166. package/components/helpers/src/sortEachDepth.js +0 -2
  167. package/components/helpers/test/renderLitAsNode.test.js +0 -4
  168. package/components/helpers/test/sb-action-logger.test.js +24 -55
  169. package/components/icon/src/IconManager.js +0 -2
  170. package/components/icon/src/LionIcon.js +2 -7
  171. package/components/icon/src/icons.js +0 -2
  172. package/components/icon/test/IconManager.test.js +0 -15
  173. package/components/icon/test/hammer.svg.js +3 -4
  174. package/components/icon/test/heart.svg.js +3 -4
  175. package/components/icon/test/lion-icon.test.js +14 -43
  176. package/components/input/src/LionInput.js +2 -8
  177. package/components/input/test/input-integrations.test.js +0 -5
  178. package/components/input/test/lion-input-integrations.test.js +0 -4
  179. package/components/input/test/lion-input.test.js +28 -58
  180. package/components/input/test-helpers/getInputMembers.js +2 -2
  181. package/components/input-amount/src/LionInputAmount.js +37 -26
  182. package/components/input-amount/src/formatters.js +4 -5
  183. package/components/input-amount/src/parsers.js +0 -3
  184. package/components/input-amount/test/formatters.test.js +102 -80
  185. package/components/input-amount/test/lion-input-amount-integrations.test.js +0 -4
  186. package/components/input-amount/test/lion-input-amount.test.js +155 -164
  187. package/components/input-amount/test/parsers.test.js +33 -17
  188. package/components/input-amount/test/preprocessors.test.js +0 -3
  189. package/components/input-amount-dropdown/src/LionInputAmountDropdown.js +49 -59
  190. package/components/input-amount-dropdown/src/currencyUtil.js +8 -7
  191. package/components/input-amount-dropdown/src/parsers.js +0 -1
  192. package/components/input-amount-dropdown/src/validators.js +0 -1
  193. package/components/input-amount-dropdown/test/LionInputAmountDropdown.test.js +34 -36
  194. package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +18 -13
  195. package/components/input-amount-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
  196. package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +132 -107
  197. package/components/input-date/src/LionInputDate.js +4 -3
  198. package/components/input-date/test/lion-input-date-integrations.test.js +0 -3
  199. package/components/input-date/test/lion-input-date.test.js +19 -32
  200. package/components/input-datepicker/src/LionInputDatepicker.js +17 -29
  201. package/components/input-datepicker/src/localizeNamespaceLoader.js +1 -2
  202. package/components/input-datepicker/test/lion-input-datepicker-integrations.test.js +0 -3
  203. package/components/input-datepicker/test/lion-input-datepicker.test.js +88 -153
  204. package/components/input-datepicker/test-helpers/DatepickerInputObject.js +9 -12
  205. package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +6 -4
  206. package/components/input-datepicker/translations/bg-BG.js +0 -1
  207. package/components/input-datepicker/translations/cs-CZ.js +0 -1
  208. package/components/input-datepicker/translations/de-DE.js +0 -1
  209. package/components/input-datepicker/translations/en-AU.js +0 -1
  210. package/components/input-datepicker/translations/en-GB.js +0 -1
  211. package/components/input-datepicker/translations/en-US.js +0 -1
  212. package/components/input-datepicker/translations/es-ES.js +0 -1
  213. package/components/input-datepicker/translations/fr-BE.js +0 -1
  214. package/components/input-datepicker/translations/fr-FR.js +0 -1
  215. package/components/input-datepicker/translations/hu-HU.js +0 -1
  216. package/components/input-datepicker/translations/it-IT.js +0 -1
  217. package/components/input-datepicker/translations/nl-BE.js +0 -1
  218. package/components/input-datepicker/translations/nl-NL.js +0 -1
  219. package/components/input-datepicker/translations/pl-PL.js +0 -1
  220. package/components/input-datepicker/translations/ro-RO.js +0 -1
  221. package/components/input-datepicker/translations/ru-RU.js +0 -1
  222. package/components/input-datepicker/translations/sk-SK.js +0 -1
  223. package/components/input-datepicker/translations/tr-TR.js +0 -1
  224. package/components/input-datepicker/translations/uk-UA.js +0 -1
  225. package/components/input-email/test/lion-input-email-integrations.test.js +0 -2
  226. package/components/input-email/test/lion-input-email.test.js +1 -7
  227. package/components/input-file/src/FileHandle.js +0 -3
  228. package/components/input-file/src/LionInputFile.js +85 -83
  229. package/components/input-file/src/LionSelectedFileList.js +12 -12
  230. package/components/input-file/src/validators.js +10 -9
  231. package/components/input-file/test/FileValidators.test.js +170 -80
  232. package/components/input-file/test/lion-input-file.test.js +160 -244
  233. package/components/input-file/test/lion-selected-file-list.test.js +13 -22
  234. package/components/input-file/translations/bg-BG.js +0 -1
  235. package/components/input-file/translations/cs-CZ.js +0 -1
  236. package/components/input-file/translations/de-DE.js +0 -1
  237. package/components/input-file/translations/en-AU.js +0 -1
  238. package/components/input-file/translations/en-GB.js +0 -1
  239. package/components/input-file/translations/en-PH.js +0 -1
  240. package/components/input-file/translations/en-US.js +0 -1
  241. package/components/input-file/translations/en.js +2 -1
  242. package/components/input-file/translations/es-ES.js +0 -1
  243. package/components/input-file/translations/fr-BE.js +0 -1
  244. package/components/input-file/translations/fr-FR.js +0 -1
  245. package/components/input-file/translations/hu-HU.js +0 -1
  246. package/components/input-file/translations/id-ID.js +0 -1
  247. package/components/input-file/translations/id.js +2 -1
  248. package/components/input-file/translations/it-IT.js +0 -1
  249. package/components/input-file/translations/nl-BE.js +0 -1
  250. package/components/input-file/translations/nl-NL.js +0 -1
  251. package/components/input-file/translations/pl-PL.js +0 -1
  252. package/components/input-file/translations/ro-RO.js +0 -1
  253. package/components/input-file/translations/ru-RU.js +0 -1
  254. package/components/input-file/translations/sk-SK.js +0 -1
  255. package/components/input-file/translations/uk-UA.js +0 -1
  256. package/components/input-file/translations/zh-CN.js +0 -1
  257. package/components/input-iban/src/validators.js +6 -11
  258. package/components/input-iban/test/formatters.test.js +0 -3
  259. package/components/input-iban/test/lion-input-iban-integrations.test.js +0 -2
  260. package/components/input-iban/test/lion-input-iban.test.js +1 -9
  261. package/components/input-iban/test/parsers.test.js +0 -2
  262. package/components/input-iban/test/validators.test.js +0 -12
  263. package/components/input-iban/translations/bg-BG.js +0 -1
  264. package/components/input-iban/translations/cs-CZ.js +0 -1
  265. package/components/input-iban/translations/de-DE.js +0 -1
  266. package/components/input-iban/translations/en-AU.js +0 -1
  267. package/components/input-iban/translations/en-GB.js +0 -1
  268. package/components/input-iban/translations/en-US.js +0 -1
  269. package/components/input-iban/translations/es-ES.js +0 -1
  270. package/components/input-iban/translations/fr-BE.js +0 -1
  271. package/components/input-iban/translations/fr-FR.js +0 -1
  272. package/components/input-iban/translations/hu-HU.js +0 -1
  273. package/components/input-iban/translations/it-IT.js +0 -1
  274. package/components/input-iban/translations/nl-BE.js +0 -1
  275. package/components/input-iban/translations/nl-NL.js +0 -1
  276. package/components/input-iban/translations/pl-PL.js +0 -1
  277. package/components/input-iban/translations/ro-RO.js +0 -1
  278. package/components/input-iban/translations/ru-RU.js +0 -1
  279. package/components/input-iban/translations/sk-SK.js +0 -1
  280. package/components/input-iban/translations/uk-UA.js +0 -1
  281. package/components/input-range/src/LionInputRange.js +18 -19
  282. package/components/input-range/test/lion-input-range.test.js +23 -48
  283. package/components/input-range/translations/bg-BG.js +0 -1
  284. package/components/input-range/translations/cs-CZ.js +0 -1
  285. package/components/input-range/translations/de-DE.js +0 -1
  286. package/components/input-range/translations/en-AU.js +0 -1
  287. package/components/input-range/translations/en-GB.js +0 -1
  288. package/components/input-range/translations/en-PH.js +0 -1
  289. package/components/input-range/translations/en-US.js +0 -1
  290. package/components/input-range/translations/es-ES.js +0 -1
  291. package/components/input-range/translations/fr-BE.js +0 -1
  292. package/components/input-range/translations/fr-FR.js +0 -1
  293. package/components/input-range/translations/hu-HU.js +0 -1
  294. package/components/input-range/translations/it-IT.js +0 -1
  295. package/components/input-range/translations/nl-BE.js +0 -1
  296. package/components/input-range/translations/nl-NL.js +0 -1
  297. package/components/input-range/translations/pl-PL.js +0 -1
  298. package/components/input-range/translations/ro-RO.js +0 -1
  299. package/components/input-range/translations/ru-RU.js +0 -1
  300. package/components/input-range/translations/sk-SK.js +0 -1
  301. package/components/input-range/translations/uk-UA.js +0 -1
  302. package/components/input-range/translations/zh-CN.js +0 -1
  303. package/components/input-stepper/src/LionInputStepper.js +19 -38
  304. package/components/input-stepper/test/lion-input-stepper-integrations.test.js +0 -1
  305. package/components/input-stepper/test/lion-input-stepper.test.js +0 -1
  306. package/components/input-stepper/test-suites/lion-input-stepper.integration.suite.js +0 -2
  307. package/components/input-stepper/test-suites/lion-input-stepper.suite.js +56 -105
  308. package/components/input-stepper/translations/bg-BG.js +0 -1
  309. package/components/input-stepper/translations/cs-CZ.js +0 -1
  310. package/components/input-stepper/translations/de-DE.js +0 -1
  311. package/components/input-stepper/translations/en-AU.js +0 -1
  312. package/components/input-stepper/translations/en-GB.js +0 -1
  313. package/components/input-stepper/translations/en-US.js +0 -1
  314. package/components/input-stepper/translations/es-ES.js +0 -1
  315. package/components/input-stepper/translations/fr-BE.js +0 -1
  316. package/components/input-stepper/translations/fr-FR.js +0 -1
  317. package/components/input-stepper/translations/hu-HU.js +0 -1
  318. package/components/input-stepper/translations/it-IT.js +0 -1
  319. package/components/input-stepper/translations/nl-BE.js +0 -1
  320. package/components/input-stepper/translations/nl-NL.js +0 -1
  321. package/components/input-stepper/translations/pl-PL.js +0 -1
  322. package/components/input-stepper/translations/ro-RO.js +0 -1
  323. package/components/input-stepper/translations/ru-RU.js +0 -1
  324. package/components/input-stepper/translations/sk-SK.js +0 -1
  325. package/components/input-stepper/translations/uk-UA.js +0 -1
  326. package/components/input-tel/src/LionInputTel.js +53 -37
  327. package/components/input-tel/src/PhoneUtilManager.js +6 -4
  328. package/components/input-tel/src/formatters.js +12 -10
  329. package/components/input-tel/src/parsers.js +3 -3
  330. package/components/input-tel/src/preprocessors.js +15 -7
  331. package/components/input-tel/src/validators.js +4 -6
  332. package/components/input-tel/test/LionInputTel.test.js +4 -2
  333. package/components/input-tel/test/formatters.test.js +22 -10
  334. package/components/input-tel/test/parsers.test.js +40 -11
  335. package/components/input-tel/test/preprocessors.test.js +24 -13
  336. package/components/input-tel/test/validators.test.js +15 -13
  337. package/components/input-tel/test-helpers/mockPhoneUtilManager.js +7 -6
  338. package/components/input-tel/test-suites/LionInputTel.suite.js +33 -73
  339. package/components/input-tel/translations/bg-BG.js +0 -1
  340. package/components/input-tel/translations/cs-CZ.js +0 -1
  341. package/components/input-tel/translations/de-DE.js +0 -1
  342. package/components/input-tel/translations/en-AU.js +0 -1
  343. package/components/input-tel/translations/en-GB.js +0 -1
  344. package/components/input-tel/translations/en-US.js +0 -1
  345. package/components/input-tel/translations/es-ES.js +0 -1
  346. package/components/input-tel/translations/fr-BE.js +0 -1
  347. package/components/input-tel/translations/fr-FR.js +0 -1
  348. package/components/input-tel/translations/hu-HU.js +0 -1
  349. package/components/input-tel/translations/it-IT.js +0 -1
  350. package/components/input-tel/translations/nl-BE.js +0 -1
  351. package/components/input-tel/translations/nl-NL.js +0 -1
  352. package/components/input-tel/translations/pl-PL.js +0 -1
  353. package/components/input-tel/translations/ro-RO.js +0 -1
  354. package/components/input-tel/translations/ru-RU.js +0 -1
  355. package/components/input-tel/translations/sk-SK.js +0 -1
  356. package/components/input-tel/translations/uk-UA.js +0 -1
  357. package/components/input-tel-dropdown/src/LionInputTelDropdown.js +10 -28
  358. package/components/input-tel-dropdown/src/regionCodeToLocale.js +3 -1
  359. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +31 -38
  360. package/components/input-tel-dropdown/test/regionCodeToLocale.test.js +0 -1
  361. package/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
  362. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +16 -11
  363. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +54 -79
  364. package/components/listbox/src/LionListbox.js +4 -1
  365. package/components/listbox/src/LionOption.js +8 -7
  366. package/components/listbox/src/LionOptions.js +0 -3
  367. package/components/listbox/src/ListboxMixin.js +801 -819
  368. package/components/listbox/test/lion-listbox.test.js +0 -1
  369. package/components/listbox/test/lion-option.test.js +53 -64
  370. package/components/listbox/test/lion-options.test.js +3 -4
  371. package/components/listbox/test-helpers/getListboxMembers.js +6 -3
  372. package/components/listbox/test-suites/ListboxMixin.suite.js +101 -261
  373. package/components/listbox/types/ListboxMixinTypes.ts +7 -1
  374. package/components/localize/src/LocalizeManager.js +40 -40
  375. package/components/localize/src/LocalizeMixin.js +130 -157
  376. package/components/localize/src/date/formatDate.js +1 -5
  377. package/components/localize/src/date/getDateFormatBasedOnLocale.js +5 -3
  378. package/components/localize/src/date/getMonthNames.js +3 -5
  379. package/components/localize/src/date/getWeekdayNames.js +1 -5
  380. package/components/localize/src/date/parseDate.js +5 -20
  381. package/components/localize/src/date/utils/normalizeIntlDate.js +0 -7
  382. package/components/localize/src/getLocalizeManager.js +0 -3
  383. package/components/localize/src/number/formatNumber.js +3 -7
  384. package/components/localize/src/number/formatNumberToParts.js +52 -18
  385. package/components/localize/src/number/getCurrencyName.js +5 -5
  386. package/components/localize/src/number/getFractionDigits.js +4 -4
  387. package/components/localize/src/number/getSeparatorsFromNumber.js +1 -3
  388. package/components/localize/src/number/parseNumber.js +0 -3
  389. package/components/localize/src/number/utils/normalize-format-number-to-parts/forceAddGroupSeparators.js +0 -1
  390. package/components/localize/src/number/utils/normalize-format-number-to-parts/forceSpaceBetweenCurrencyCodeAndNumber.js +4 -1
  391. package/components/localize/test/LocalizeManager.test.js +385 -278
  392. package/components/localize/test/LocalizeMixin.test.js +28 -112
  393. package/components/localize/test/date/formatDate.test.js +18 -48
  394. package/components/localize/test/date/getDateFormatBasedOnLocale.test.js +0 -3
  395. package/components/localize/test/date/getMonthNames.test.js +27 -12
  396. package/components/localize/test/date/getWeekdayNames.test.js +93 -49
  397. package/components/localize/test/date/normalizeDateTime.test.js +0 -2
  398. package/components/localize/test/date/parseDate.test.js +12 -16
  399. package/components/localize/test/getLocalizeManager.test.js +0 -3
  400. package/components/localize/test/isLocalizeESModule.test.js +32 -13
  401. package/components/localize/test/localize.test.js +0 -4
  402. package/components/localize/test/number/formatNumber.test.js +215 -106
  403. package/components/localize/test/number/formatNumberToParts.test.js +31 -38
  404. package/components/localize/test/number/getCurrencyName.test.js +20 -6
  405. package/components/localize/test/number/getDecimalSeparator.test.js +5 -4
  406. package/components/localize/test/number/getFractionDigits.test.js +0 -2
  407. package/components/localize/test/number/getGroupSeparator.test.js +0 -2
  408. package/components/localize/test/number/getSeparatorsFromNumber.test.js +5 -3
  409. package/components/localize/test/number/parseNumber.test.js +123 -56
  410. package/components/localize/test/side-effect-free-entrypoint.test.js +0 -6
  411. package/components/localize/test-helpers/fake-imports.js +11 -6
  412. package/components/localize/test-helpers/localizeTearDown.js +0 -1
  413. package/components/menu/README.md +360 -0
  414. package/components/menu/src/InteractiveListMixin.js +866 -0
  415. package/components/menu/src/LionMenu.js +423 -0
  416. package/components/menu/src/MoreButtonMenuMixin.js +272 -0
  417. package/components/menu/src/MultiLevelListMixin.js +306 -0
  418. package/components/menu/src/utils/isInView.js +25 -0
  419. package/components/menu/src/utils/listItemInteractions.js +124 -0
  420. package/components/menu/test/InteractiveListMixin.test.js +2 -0
  421. package/components/menu/test/MoreButtonMenuMixin.test.js +5 -0
  422. package/components/menu/test/MultiLevelListMixin.test.js +2 -0
  423. package/components/menu/test/lion-menu-interactions.test.js +2 -0
  424. package/components/menu/test/lion-menu.test.js +18 -0
  425. package/components/menu/test-helpers/mimicKeyPress.js +19 -0
  426. package/components/menu/test-suites/InteractiveListMixin.suite.js +498 -0
  427. package/components/menu/test-suites/LionMenu.suite.js +107 -0
  428. package/components/menu/test-suites/LionMenuInteractions.suite.js +561 -0
  429. package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +365 -0
  430. package/components/menu/test-suites/MultiLevelListMixin.suite.js +291 -0
  431. package/components/menu/types/InteractiveListMixinTypes.ts +126 -0
  432. package/components/menu/types/MoreButtonMenuMixinTypes.ts +51 -0
  433. package/components/menu/types/MultiLevelListMixinTypes.ts +28 -0
  434. package/components/menu/types/OverlayWithListInvokerMixinTypes.ts +61 -0
  435. package/components/overlays/NEXT.md +49 -0
  436. package/components/overlays/src/ArrowMixin.js +111 -127
  437. package/components/overlays/src/OverlayController.js +440 -246
  438. package/components/overlays/src/OverlayMixin.js +130 -68
  439. package/components/overlays/src/OverlaysManager.js +30 -32
  440. package/components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js +0 -1
  441. package/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js +11 -11
  442. package/components/overlays/src/configurations/withBottomSheetConfig.js +12 -13
  443. package/components/overlays/src/configurations/withDropdownConfig.js +4 -2
  444. package/components/overlays/src/configurations/withModalDialogConfig.js +12 -13
  445. package/components/overlays/src/configurations/withPopoverConfig.js +27 -25
  446. package/components/overlays/src/configurations/withTooltipConfig.js +15 -13
  447. package/components/overlays/src/overlayDocumentStyle.js +1 -1
  448. package/components/overlays/src/overlayShadowDomStyle.js +0 -1
  449. package/components/overlays/src/singleton.js +0 -2
  450. package/components/overlays/src/utils/adopt-styles.js +19 -19
  451. package/components/overlays/src/utils/deep-contains.js +7 -6
  452. package/components/overlays/src/utils/get-focusable-elements.js +7 -10
  453. package/components/overlays/src/utils/inert-siblings.js +2 -4
  454. package/components/overlays/src/utils/is-equal-config.js +14 -6
  455. package/components/overlays/src/utils/is-visible.js +0 -1
  456. package/components/overlays/src/utils/simulate-tab.js +1 -4
  457. package/components/overlays/src/utils/sort-by-tabindex.js +2 -4
  458. package/components/overlays/test/ArrowMixin.test.js +18 -30
  459. package/components/overlays/test/OverlayController.test.js +551 -533
  460. package/components/overlays/test/OverlayMixin.test.js +0 -2
  461. package/components/overlays/test/OverlaysManager.test.js +30 -35
  462. package/components/overlays/test/global-positioning.test.js +6 -10
  463. package/components/overlays/test/local-positioning.test.js +101 -103
  464. package/components/overlays/test/utils-tests/active-element.test.js +12 -27
  465. package/components/overlays/test/utils-tests/adopt-styles.test.js +25 -56
  466. package/components/overlays/test/utils-tests/deep-contains.test.js +73 -74
  467. package/components/overlays/test/utils-tests/get-focusable-elements.test.js +6 -23
  468. package/components/overlays/test/utils-tests/is-equal-config.test.js +32 -13
  469. package/components/overlays/test/utils-tests/visibility.test.js +44 -79
  470. package/components/overlays/test-helpers/createShadowHost.js +5 -3
  471. package/components/overlays/test-helpers/normalizeTransformStyle.js +2 -4
  472. package/components/overlays/test-suites/OverlayMixin.suite.js +159 -188
  473. package/components/overlays/test-suites/WithHoverInteraction.suite.js +96 -79
  474. package/components/overlays/translations/bg-BG.js +0 -1
  475. package/components/overlays/translations/cs-CZ.js +0 -1
  476. package/components/overlays/translations/de-DE.js +0 -1
  477. package/components/overlays/translations/en-AU.js +0 -1
  478. package/components/overlays/translations/en-GB.js +0 -1
  479. package/components/overlays/translations/en-US.js +0 -1
  480. package/components/overlays/translations/es-ES.js +0 -1
  481. package/components/overlays/translations/fr-BE.js +0 -1
  482. package/components/overlays/translations/fr-FR.js +0 -1
  483. package/components/overlays/translations/hu-HU.js +0 -1
  484. package/components/overlays/translations/it-IT.js +0 -1
  485. package/components/overlays/translations/nl-BE.js +0 -1
  486. package/components/overlays/translations/nl-NL.js +0 -1
  487. package/components/overlays/translations/pl-PL.js +0 -1
  488. package/components/overlays/translations/ro-RO.js +0 -1
  489. package/components/overlays/translations/ru-RU.js +0 -1
  490. package/components/overlays/translations/sk-SK.js +0 -1
  491. package/components/overlays/translations/tr-TR.js +0 -1
  492. package/components/overlays/translations/uk-UA.js +0 -1
  493. package/components/overlays/types/ArrowMixinTypes.ts +1 -3
  494. package/components/overlays/types/OverlayConfig.ts +20 -5
  495. package/components/overlays/types/OverlayMixinTypes.ts +2 -0
  496. package/components/pagination/src/LionPagination.js +9 -12
  497. package/components/pagination/test/lion-pagination.test.js +18 -50
  498. package/components/progress-indicator/src/LionProgressIndicator.js +10 -12
  499. package/components/progress-indicator/test/lion-progress-indicator.test.js +1 -22
  500. package/components/radio-group/src/LionRadioGroup.js +1 -2
  501. package/components/radio-group/test/lion-radio-group-integrations.test.js +0 -1
  502. package/components/radio-group/test/lion-radio-group.test.js +27 -27
  503. package/components/radio-group/test/lion-radio-integrations.test.js +3 -2
  504. package/components/radio-group/test/lion-radio.test.js +30 -16
  505. package/components/select/src/LionSelect.js +12 -13
  506. package/components/select/test/lion-select.test.js +7 -12
  507. package/components/select-rich/src/LionSelectInvoker.js +18 -11
  508. package/components/select-rich/src/LionSelectRich.js +32 -43
  509. package/components/select-rich/test/demos.screenshots-test.js +40 -9
  510. package/components/select-rich/test/lion-select-invoker.test.js +26 -43
  511. package/components/select-rich/test/lion-select-listbox-suite-integration.test.js +3 -3
  512. package/components/select-rich/test/lion-select-rich-dialog-integration.test.js +4 -9
  513. package/components/select-rich/test/lion-select-rich-interaction.test.js +154 -101
  514. package/components/select-rich/test/lion-select-rich-upgrade.test.js +26 -0
  515. package/components/select-rich/test/lion-select-rich.test.js +153 -195
  516. package/components/select-rich/test-helpers/getSelectRichMembers.js +4 -1
  517. package/components/steps/src/LionStep.js +21 -12
  518. package/components/steps/src/LionSteps.js +25 -25
  519. package/components/steps/test/lion-step.test.js +18 -25
  520. package/components/steps/test/lion-steps.test.js +45 -78
  521. package/components/switch/src/LionSwitch.js +2 -7
  522. package/components/switch/src/LionSwitchButton.js +5 -6
  523. package/components/switch/test/lion-switch-button.test.js +16 -28
  524. package/components/switch/test/lion-switch.test.js +17 -31
  525. package/components/tabs/src/LionTabs.js +25 -28
  526. package/components/tabs/test/lion-tabs.test.js +156 -154
  527. package/components/textarea/src/LionTextarea.js +4 -23
  528. package/components/textarea/test/lion-textarea-integrations.test.js +0 -5
  529. package/components/textarea/test/lion-textarea.test.js +2 -28
  530. package/components/tooltip/src/LionTooltip.js +6 -6
  531. package/components/tooltip/test/lion-tooltip.test.js +75 -102
  532. package/components/validate-messages/src/getLocalizedMessage.js +8 -7
  533. package/components/validate-messages/src/loadDefaultFeedbackMessages.js +3 -1
  534. package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -5
  535. package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +5 -2
  536. package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +99 -35
  537. package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +4 -3
  538. package/components/validate-messages/test/loadDefaultFeedbackMessages.test.js +5 -3
  539. package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.js +80 -45
  540. package/components/validate-messages/translations/bg-BG.js +0 -1
  541. package/components/validate-messages/translations/cs-CZ.js +0 -1
  542. package/components/validate-messages/translations/de-DE.js +0 -1
  543. package/components/validate-messages/translations/en-AU.js +0 -1
  544. package/components/validate-messages/translations/en-GB.js +0 -1
  545. package/components/validate-messages/translations/en-PH.js +0 -1
  546. package/components/validate-messages/translations/en-US.js +0 -1
  547. package/components/validate-messages/translations/es-ES.js +0 -1
  548. package/components/validate-messages/translations/fr-BE.js +0 -1
  549. package/components/validate-messages/translations/fr-FR.js +0 -1
  550. package/components/validate-messages/translations/hu-HU.js +0 -1
  551. package/components/validate-messages/translations/it-IT.js +0 -1
  552. package/components/validate-messages/translations/nl-BE.js +0 -1
  553. package/components/validate-messages/translations/nl-NL.js +0 -1
  554. package/components/validate-messages/translations/pl-PL.js +0 -1
  555. package/components/validate-messages/translations/ro-RO.js +0 -1
  556. package/components/validate-messages/translations/ru-RU.js +0 -1
  557. package/components/validate-messages/translations/sk-SK.js +0 -1
  558. package/components/validate-messages/translations/tr-TR.js +0 -1
  559. package/components/validate-messages/translations/uk-UA.js +0 -1
  560. package/custom-elements.json +3312 -206
  561. package/dist-types/components/combobox/src/LionCombobox.d.ts +1 -1
  562. package/dist-types/components/combobox/src/LionCombobox.d.ts.map +1 -1
  563. package/dist-types/components/core/src/SlotMixin.d.ts +6 -1
  564. package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
  565. package/dist-types/components/core/types/SlotMixinTypes.d.ts +5 -1
  566. package/dist-types/components/core/types/SlotMixinTypes.d.ts.map +1 -1
  567. package/dist-types/components/dialog/src/LionDialog.d.ts +6 -2
  568. package/dist-types/components/dialog/src/LionDialog.d.ts.map +1 -1
  569. package/dist-types/components/form-core/src/LionField.d.ts +3 -1
  570. package/dist-types/components/form-core/src/LionField.d.ts.map +1 -1
  571. package/dist-types/components/form-core/src/choice-group/ChoiceGroupMixin.d.ts.map +1 -1
  572. package/dist-types/components/form-core/types/choice-group/ChoiceGroupMixinTypes.d.ts +5 -0
  573. package/dist-types/components/form-core/types/choice-group/ChoiceGroupMixinTypes.d.ts.map +1 -1
  574. package/dist-types/components/input-amount/src/LionInputAmount.d.ts +3 -1
  575. package/dist-types/components/input-amount/src/LionInputAmount.d.ts.map +1 -1
  576. package/dist-types/components/input-amount/src/formatters.d.ts +6 -4
  577. package/dist-types/components/input-amount/src/formatters.d.ts.map +1 -1
  578. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +1 -1
  579. package/dist-types/components/input-tel/src/LionInputTel.d.ts +6 -6
  580. package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
  581. package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts +2 -2
  582. package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts.map +1 -1
  583. package/dist-types/components/input-tel/src/formatters.d.ts +2 -2
  584. package/dist-types/components/input-tel/src/formatters.d.ts.map +1 -1
  585. package/dist-types/components/input-tel/src/preprocessors.d.ts +2 -2
  586. package/dist-types/components/input-tel/src/preprocessors.d.ts.map +1 -1
  587. package/dist-types/components/input-tel/test/validators.test.d.ts +1 -1
  588. package/dist-types/components/input-tel/test/validators.test.d.ts.map +1 -1
  589. package/dist-types/components/listbox/src/LionOption.d.ts +5 -2
  590. package/dist-types/components/listbox/src/LionOption.d.ts.map +1 -1
  591. package/dist-types/components/listbox/src/ListboxMixin.d.ts.map +1 -1
  592. package/dist-types/components/listbox/types/ListboxMixinTypes.d.ts +7 -1
  593. package/dist-types/components/listbox/types/ListboxMixinTypes.d.ts.map +1 -1
  594. package/dist-types/components/menu/src/InteractiveListMixin.d.ts +35 -0
  595. package/dist-types/components/menu/src/InteractiveListMixin.d.ts.map +1 -0
  596. package/dist-types/components/menu/src/LionMenu.d.ts +129 -0
  597. package/dist-types/components/menu/src/LionMenu.d.ts.map +1 -0
  598. package/dist-types/components/menu/src/MoreButtonMenuMixin.d.ts +8 -0
  599. package/dist-types/components/menu/src/MoreButtonMenuMixin.d.ts.map +1 -0
  600. package/dist-types/components/menu/src/MultiLevelListMixin.d.ts +7 -0
  601. package/dist-types/components/menu/src/MultiLevelListMixin.d.ts.map +1 -0
  602. package/dist-types/components/menu/src/utils/isInView.d.ts +9 -0
  603. package/dist-types/components/menu/src/utils/isInView.d.ts.map +1 -0
  604. package/dist-types/components/menu/src/utils/listItemInteractions.d.ts +48 -0
  605. package/dist-types/components/menu/src/utils/listItemInteractions.d.ts.map +1 -0
  606. package/dist-types/components/menu/test/InteractiveListMixin.test.d.ts +2 -0
  607. package/dist-types/components/menu/test/InteractiveListMixin.test.d.ts.map +1 -0
  608. package/dist-types/components/menu/test/MoreButtonMenuMixin.test.d.ts +2 -0
  609. package/dist-types/components/menu/test/MoreButtonMenuMixin.test.d.ts.map +1 -0
  610. package/dist-types/components/menu/test/MultiLevelListMixin.test.d.ts +2 -0
  611. package/dist-types/components/menu/test/MultiLevelListMixin.test.d.ts.map +1 -0
  612. package/dist-types/components/menu/test/lion-menu-interactions.test.d.ts +2 -0
  613. package/dist-types/components/menu/test/lion-menu-interactions.test.d.ts.map +1 -0
  614. package/dist-types/components/menu/test/lion-menu.test.d.ts +2 -0
  615. package/dist-types/components/menu/test/lion-menu.test.d.ts.map +1 -0
  616. package/dist-types/components/menu/test-helpers/mimicKeyPress.d.ts +7 -0
  617. package/dist-types/components/menu/test-helpers/mimicKeyPress.d.ts.map +1 -0
  618. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts +11 -0
  619. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts.map +1 -0
  620. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts +9 -0
  621. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts.map +1 -0
  622. package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts +5 -0
  623. package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts.map +1 -0
  624. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts +11 -0
  625. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts.map +1 -0
  626. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts +11 -0
  627. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts.map +1 -0
  628. package/dist-types/components/menu/types/InteractiveListMixinTypes.d.ts +72 -0
  629. package/dist-types/components/menu/types/InteractiveListMixinTypes.d.ts.map +1 -0
  630. package/dist-types/components/menu/types/MoreButtonMenuMixinTypes.d.ts +30 -0
  631. package/dist-types/components/menu/types/MoreButtonMenuMixinTypes.d.ts.map +1 -0
  632. package/dist-types/components/menu/types/MultiLevelListMixinTypes.d.ts +16 -0
  633. package/dist-types/components/menu/types/MultiLevelListMixinTypes.d.ts.map +1 -0
  634. package/dist-types/components/menu/types/OverlayWithListInvokerMixinTypes.d.ts +35 -0
  635. package/dist-types/components/menu/types/OverlayWithListInvokerMixinTypes.d.ts.map +1 -0
  636. package/dist-types/components/overlays/src/OverlayController.d.ts +22 -5
  637. package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
  638. package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
  639. package/dist-types/components/overlays/src/OverlaysManager.d.ts.map +1 -1
  640. package/dist-types/components/overlays/src/overlayDocumentStyle.d.ts.map +1 -1
  641. package/dist-types/components/overlays/src/utils/is-equal-config.d.ts.map +1 -1
  642. package/dist-types/components/overlays/types/ArrowMixinTypes.d.ts.map +1 -1
  643. package/dist-types/components/overlays/types/OverlayConfig.d.ts +12 -2
  644. package/dist-types/components/overlays/types/OverlayConfig.d.ts.map +1 -1
  645. package/dist-types/components/overlays/types/OverlayMixinTypes.d.ts +1 -0
  646. package/dist-types/components/overlays/types/OverlayMixinTypes.d.ts.map +1 -1
  647. package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts +3 -1
  648. package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts.map +1 -1
  649. package/dist-types/components/select-rich/src/LionSelectRich.d.ts +13 -2
  650. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  651. package/dist-types/components/select-rich/test/lion-select-rich-interaction.test.d.ts.map +1 -1
  652. package/dist-types/components/select-rich/test/lion-select-rich-upgrade.test.d.ts +2 -0
  653. package/dist-types/components/select-rich/test/lion-select-rich-upgrade.test.d.ts.map +1 -0
  654. package/dist-types/components/tooltip/src/LionTooltip.d.ts +1 -1
  655. package/dist-types/exports/define/lion-item.d.ts +2 -0
  656. package/dist-types/exports/define/lion-item.d.ts.map +1 -0
  657. package/dist-types/exports/define/lion-menu.d.ts +2 -0
  658. package/dist-types/exports/define/lion-menu.d.ts.map +1 -0
  659. package/dist-types/exports/define/lion-menuitem.d.ts +2 -0
  660. package/dist-types/exports/define/lion-menuitem.d.ts.map +1 -0
  661. package/dist-types/exports/menu-test-suites.d.ts +4 -0
  662. package/dist-types/exports/menu-test-suites.d.ts.map +1 -0
  663. package/dist-types/exports/menu.d.ts +3 -0
  664. package/dist-types/exports/menu.d.ts.map +1 -0
  665. package/dist-types/exports/overlays.d.ts +6 -0
  666. package/dist-types/exports/overlays.d.ts.map +1 -1
  667. package/dist-types/tsconfig.tsbuildinfo +1 -1
  668. package/docs/components/accordion/overview.md +2 -2
  669. package/docs/components/accordion/reference.md +2 -2
  670. package/docs/components/accordion/use-cases.md +2 -2
  671. package/docs/components/button/examples.md +2 -2
  672. package/docs/components/button/extensions.md +2 -2
  673. package/docs/components/button/overview.md +2 -2
  674. package/docs/components/button/use-cases.md +2 -2
  675. package/docs/components/calendar/overview.md +2 -2
  676. package/docs/components/calendar/use-cases.md +2 -2
  677. package/docs/components/checkbox-group/overview.md +4 -4
  678. package/docs/components/checkbox-group/use-cases.md +2 -2
  679. package/docs/components/collapsible/examples.md +2 -2
  680. package/docs/components/collapsible/overview.md +3 -3
  681. package/docs/components/collapsible/use-cases.md +2 -2
  682. package/docs/components/combobox/api-table.md +53 -39
  683. package/docs/components/combobox/extensions.md +2 -2
  684. package/docs/components/combobox/overview.md +3 -3
  685. package/docs/components/combobox/use-cases.md +3 -3
  686. package/docs/components/dialog/api-table.md +32 -6
  687. package/docs/components/dialog/overview.md +3 -3
  688. package/docs/components/dialog/use-cases.md +2 -2
  689. package/docs/components/drawer/overview.md +2 -2
  690. package/docs/components/drawer/use-cases.md +2 -2
  691. package/docs/components/fieldset/overview.md +7 -7
  692. package/docs/components/fieldset/use-cases.md +2 -2
  693. package/docs/components/form/overview.md +5 -5
  694. package/docs/components/form/use-cases.md +4 -4
  695. package/docs/components/icon/overview.md +2 -2
  696. package/docs/components/icon/use-cases.md +3 -3
  697. package/docs/components/input/overview.md +3 -3
  698. package/docs/components/input/use-cases.md +2 -2
  699. package/docs/components/input-amount/api-table.md +9 -7
  700. package/docs/components/input-amount/overview.md +5 -5
  701. package/docs/components/input-amount/use-cases.md +17 -6
  702. package/docs/components/input-amount-dropdown/api-table.md +2 -0
  703. package/docs/components/input-amount-dropdown/use-cases.md +2 -2
  704. package/docs/components/input-date/overview.md +5 -5
  705. package/docs/components/input-date/use-cases.md +2 -2
  706. package/docs/components/input-datepicker/api-table.md +63 -45
  707. package/docs/components/input-datepicker/overview.md +7 -7
  708. package/docs/components/input-datepicker/use-cases.md +2 -2
  709. package/docs/components/input-email/overview.md +4 -4
  710. package/docs/components/input-email/use-cases.md +2 -2
  711. package/docs/components/input-file/overview.md +3 -3
  712. package/docs/components/input-file/use-cases.md +2 -2
  713. package/docs/components/input-iban/overview.md +4 -4
  714. package/docs/components/input-iban/use-cases.md +2 -2
  715. package/docs/components/input-range/overview.md +4 -4
  716. package/docs/components/input-range/use-cases.md +2 -2
  717. package/docs/components/input-stepper/overview.md +3 -3
  718. package/docs/components/input-stepper/use-cases.md +2 -2
  719. package/docs/components/input-tel/overview.md +3 -3
  720. package/docs/components/input-tel/use-cases.md +8 -8
  721. package/docs/components/input-tel-dropdown/extensions.md +2 -2
  722. package/docs/components/input-tel-dropdown/overview.md +3 -3
  723. package/docs/components/input-tel-dropdown/use-cases.md +2 -2
  724. package/docs/components/listbox/overview.md +2 -2
  725. package/docs/components/listbox/use-cases.md +3 -3
  726. package/docs/components/menu/api-table.md +44 -0
  727. package/docs/components/menu/applyMenuDemoStyles.js +173 -0
  728. package/docs/components/menu/extensions.md +262 -0
  729. package/docs/components/menu/index.md +13 -0
  730. package/docs/components/menu/migration.md +129 -0
  731. package/docs/components/menu/overview.md +448 -0
  732. package/docs/components/menu/src/DemoNavigationBar.js +441 -0
  733. package/docs/components/menu/src/DemoSpinButton.js +215 -0
  734. package/docs/components/menu/src/DemoToolbar.js +101 -0
  735. package/docs/components/menu/src/DemoTree.js +55 -0
  736. package/docs/components/menu/src/navigation-bar-types.js +41 -0
  737. package/docs/components/menu/use-cases.md +74 -0
  738. package/docs/components/pagination/overview.md +2 -2
  739. package/docs/components/pagination/use-cases.md +2 -2
  740. package/docs/components/progress-indicator/examples.md +2 -2
  741. package/docs/components/progress-indicator/overview.md +2 -2
  742. package/docs/components/radio-group/overview.md +5 -5
  743. package/docs/components/radio-group/use-cases.md +2 -2
  744. package/docs/components/select/overview.md +2 -2
  745. package/docs/components/select/use-cases.md +3 -3
  746. package/docs/components/select-rich/api-table.md +51 -33
  747. package/docs/components/select-rich/examples.md +2 -2
  748. package/docs/components/select-rich/overview.md +2 -2
  749. package/docs/components/select-rich/use-cases.md +4 -4
  750. package/docs/components/steps/overview.md +2 -2
  751. package/docs/components/steps/use-cases.md +2 -2
  752. package/docs/components/switch/overview.md +2 -2
  753. package/docs/components/switch/reference.md +2 -2
  754. package/docs/components/switch/use-cases.md +2 -2
  755. package/docs/components/tabs/examples.md +3 -3
  756. package/docs/components/tabs/overview.md +2 -2
  757. package/docs/components/tabs/use-cases.md +2 -2
  758. package/docs/components/textarea/overview.md +2 -2
  759. package/docs/components/textarea/use-cases.md +2 -2
  760. package/docs/components/tooltip/api-table.md +33 -7
  761. package/docs/components/tooltip/examples.md +2 -2
  762. package/docs/components/tooltip/overview.md +2 -2
  763. package/docs/components/tooltip/use-cases.md +2 -2
  764. package/docs/fundamentals/index.md +4 -4
  765. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +2 -2
  766. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +2 -2
  767. package/docs/fundamentals/node-tools/providence-analytics/index.md +2 -2
  768. package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
  769. package/docs/fundamentals/node-tools/publish-docs/index.md +2 -2
  770. package/docs/fundamentals/node-tools/publish-docs/overview.md +5 -5
  771. package/docs/fundamentals/node-tools/remark-extend/index.md +2 -2
  772. package/docs/fundamentals/node-tools/remark-extend/overview.md +2 -2
  773. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +2 -2
  774. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +4 -4
  775. package/docs/fundamentals/rationales/TypeScript.md +62 -2
  776. package/docs/fundamentals/rationales/accessibility.md +5 -5
  777. package/docs/fundamentals/rationales/side-effects.md +2 -2
  778. package/docs/fundamentals/rationales/versioning.md +2 -2
  779. package/docs/fundamentals/systems/core/SlotMixin.md +3 -3
  780. package/docs/fundamentals/systems/core/index.md +2 -2
  781. package/docs/fundamentals/systems/core/overview.md +3 -3
  782. package/docs/fundamentals/systems/form/formatting-and-parsing.md +6 -6
  783. package/docs/fundamentals/systems/form/index.md +2 -2
  784. package/docs/fundamentals/systems/form/interaction-states.md +2 -2
  785. package/docs/fundamentals/systems/form/model-value.md +3 -3
  786. package/docs/fundamentals/systems/form/overview.md +30 -30
  787. package/docs/fundamentals/systems/form/styling.md +2 -2
  788. package/docs/fundamentals/systems/form/use-cases.md +2 -2
  789. package/docs/fundamentals/systems/form/validate.md +4 -4
  790. package/docs/fundamentals/systems/icon/index.md +2 -2
  791. package/docs/fundamentals/systems/icon/overview.md +2 -2
  792. package/docs/fundamentals/systems/localize/dates.md +2 -2
  793. package/docs/fundamentals/systems/localize/index.md +2 -2
  794. package/docs/fundamentals/systems/localize/numbers.md +2 -2
  795. package/docs/fundamentals/systems/localize/overview.md +6 -6
  796. package/docs/fundamentals/systems/localize/rationale.md +2 -2
  797. package/docs/fundamentals/systems/localize/text.md +2 -2
  798. package/docs/fundamentals/systems/localize/use-cases.md +2 -2
  799. package/docs/fundamentals/systems/overlays/_edge-cases.md +2 -2
  800. package/docs/fundamentals/systems/overlays/api-table.md +46 -43
  801. package/docs/fundamentals/systems/overlays/configuration.md +4 -4
  802. package/docs/fundamentals/systems/overlays/index.md +2 -2
  803. package/docs/fundamentals/systems/overlays/overview.md +7 -7
  804. package/docs/fundamentals/systems/overlays/rationale.md +2 -2
  805. package/docs/fundamentals/systems/overlays/use-cases.md +4 -4
  806. package/docs/fundamentals/tools/ajax/index.md +2 -2
  807. package/docs/fundamentals/tools/ajax/overview.md +2 -2
  808. package/docs/fundamentals/tools/ajax/use-cases.md +2 -2
  809. package/docs/fundamentals/tools/helpers/action-logger.md +2 -2
  810. package/docs/fundamentals/tools/helpers/index.md +2 -2
  811. package/docs/fundamentals/tools/helpers/overview.md +3 -3
  812. package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +2 -2
  813. package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +2 -2
  814. package/docs/fundamentals/tools/singleton-manager/example-success/index.md +2 -2
  815. package/docs/fundamentals/tools/singleton-manager/index.md +2 -2
  816. package/docs/fundamentals/tools/singleton-manager/overview.md +6 -6
  817. package/docs/guides/how-to/create-a-custom-field.md +7 -7
  818. package/docs/guides/how-to/create-a-form.md +6 -6
  819. package/docs/guides/how-to/extend-a-native-input.md +4 -4
  820. package/docs/guides/how-to/get-started.md +2 -2
  821. package/docs/guides/how-to/index.md +1 -1
  822. package/docs/guides/index.md +8 -8
  823. package/docs/guides/principles/definitions-and-terms.md +2 -2
  824. package/docs/guides/principles/index.md +5 -5
  825. package/docs/guides/principles/scoped-elements.md +2 -2
  826. package/docs/guides/principles/styling.md +3 -3
  827. package/docs/guides/principles/subclasser-apis.md +2 -2
  828. package/exports/define/lion-accordion.js +0 -1
  829. package/exports/define/lion-button-reset.js +0 -1
  830. package/exports/define/lion-button-submit.js +0 -1
  831. package/exports/define/lion-button.js +0 -1
  832. package/exports/define/lion-calendar.js +0 -1
  833. package/exports/define/lion-checkbox-group.js +0 -1
  834. package/exports/define/lion-checkbox-indeterminate.js +0 -1
  835. package/exports/define/lion-checkbox.js +0 -1
  836. package/exports/define/lion-collapsible.js +0 -1
  837. package/exports/define/lion-combobox.js +0 -1
  838. package/exports/define/lion-dialog.js +0 -1
  839. package/exports/define/lion-drawer.js +0 -1
  840. package/exports/define/lion-field.js +0 -1
  841. package/exports/define/lion-fieldset.js +0 -1
  842. package/exports/define/lion-form.js +0 -1
  843. package/exports/define/lion-icon.js +0 -1
  844. package/exports/define/lion-input-amount-dropdown.js +0 -1
  845. package/exports/define/lion-input-amount.js +0 -1
  846. package/exports/define/lion-input-date.js +0 -1
  847. package/exports/define/lion-input-datepicker.js +0 -1
  848. package/exports/define/lion-input-email.js +0 -1
  849. package/exports/define/lion-input-file.js +0 -1
  850. package/exports/define/lion-input-iban.js +0 -1
  851. package/exports/define/lion-input-range.js +0 -1
  852. package/exports/define/lion-input-stepper.js +0 -1
  853. package/exports/define/lion-input-tel-dropdown.js +0 -1
  854. package/exports/define/lion-input-tel.js +0 -1
  855. package/exports/define/lion-input.js +0 -1
  856. package/exports/define/lion-item.js +2 -0
  857. package/exports/define/lion-listbox.js +0 -1
  858. package/exports/define/lion-menu.js +2 -0
  859. package/exports/define/lion-menuitem.js +2 -0
  860. package/exports/define/lion-option.js +0 -1
  861. package/exports/define/lion-options.js +0 -1
  862. package/exports/define/lion-pagination.js +0 -1
  863. package/exports/define/lion-progress-indicator.js +0 -1
  864. package/exports/define/lion-radio-group.js +0 -1
  865. package/exports/define/lion-radio.js +0 -1
  866. package/exports/define/lion-select-invoker.js +0 -1
  867. package/exports/define/lion-select-rich.js +0 -1
  868. package/exports/define/lion-select.js +0 -1
  869. package/exports/define/lion-selected-file-list.js +0 -1
  870. package/exports/define/lion-step.js +0 -1
  871. package/exports/define/lion-steps.js +0 -1
  872. package/exports/define/lion-switch-button.js +0 -1
  873. package/exports/define/lion-switch.js +0 -1
  874. package/exports/define/lion-tabs.js +0 -1
  875. package/exports/define/lion-textarea.js +0 -1
  876. package/exports/define/lion-tooltip.js +0 -1
  877. package/exports/define/lion-validation-feedback.js +0 -1
  878. package/exports/define-helpers/sb-action-logger.js +0 -1
  879. package/exports/define-helpers/sb-locale-switcher.js +0 -1
  880. package/exports/form-core.js +0 -8
  881. package/exports/localize-no-side-effects.js +0 -1
  882. package/exports/localize.js +0 -2
  883. package/exports/menu-test-suites.js +4 -0
  884. package/exports/menu.js +3 -0
  885. package/exports/overlays.js +6 -4
  886. package/generated/awesome-phonenumber/LICENSE +22 -0
  887. package/generated/awesome-phonenumber/LICENSE.closure-library +176 -0
  888. package/generated/awesome-phonenumber/LICENSE.libphonenumber +176 -0
  889. package/generated/awesome-phonenumber/checksums.json +6 -0
  890. package/generated/awesome-phonenumber/index-esm.mjs +817 -0
  891. package/generated/awesome-phonenumber/index.d.ts +227 -0
  892. package/generated/awesome-phonenumber/index.js +45 -0
  893. package/generated/awesome-phonenumber/lib/index.js +710 -0
  894. package/generated/awesome-phonenumber/package.json +9 -0
  895. package/generated/awesome-phonenumber/provenance.json +13 -0
  896. package/menu-test-suites.js +4 -0
  897. package/menu.js +3 -0
  898. package/overlays.js +6 -0
  899. package/package.json +35 -6
  900. package/vscode.html-custom-data.json +76 -8
  901. package/web-types.json +202 -17
@@ -4,7 +4,7 @@ import { PhoneNumber, PhoneUtilManager } from '@lion/ui/input-tel.js';
4
4
  import { mockPhoneUtilManager, restorePhoneUtilManager } from '@lion/ui/input-tel-test-helpers.js';
5
5
 
6
6
  /**
7
- * @typedef {* & typeof import('awesome-phonenumber')} AwesomePhoneNumber
7
+ * @typedef {* & typeof import('#awesome-phonenumber')} AwesomePhoneNumber
8
8
  */
9
9
 
10
10
  // For enum output, see: https://www.npmjs.com/package/awesome-phonenumber
@@ -13,12 +13,10 @@ describe('PhoneNumber validation', () => {
13
13
  // Wait till PhoneUtilManager has been loaded
14
14
  await PhoneUtilManager.loadComplete;
15
15
  });
16
-
17
16
  it('is invalid when no input is provided', () => {
18
17
  const validator = new PhoneNumber();
19
18
  expect(validator.execute('', 'NL')).to.equal('unknown');
20
19
  });
21
-
22
20
  it('is invalid when non digits are entered, returns "unknown"', () => {
23
21
  const validator = new PhoneNumber();
24
22
  expect(validator.execute('foo', 'NL')).to.equal('unknown');
@@ -30,51 +28,55 @@ describe('PhoneNumber validation', () => {
30
28
  // 32 is BE region code
31
29
  expect(validator.execute('+32612345678', 'NL')).to.equal('invalid-country-code');
32
30
  });
33
-
34
31
  it('is invalid when number is too short, returns "too-short"', () => {
35
32
  const validator = new PhoneNumber();
36
33
  expect(validator.execute('+316123', 'NL')).to.equal('too-short');
37
34
  });
38
-
39
35
  it('is invalid when number is too long, returns "too-long"', () => {
40
36
  const validator = new PhoneNumber();
41
37
  expect(validator.execute('+31612345678901', 'NL')).to.equal('too-long');
42
38
  });
43
-
44
39
  it('is valid when a phone number is entered', () => {
45
40
  const validator = new PhoneNumber();
46
41
  expect(validator.execute('+31612345678', 'NL')).to.be.false;
47
42
  });
48
-
43
+ it('accepts the French Guiana premium-rate example from libphonenumber v9.0.41', () => {
44
+ const validator = new PhoneNumber();
45
+ expect(validator.execute('+594890123456', 'GF')).to.be.false;
46
+ const parsed = PhoneUtilManager.PhoneUtil.parsePhoneNumber('+594890123456');
47
+ expect(parsed.valid).to.be.true;
48
+ expect(parsed.type).to.equal('premium-rate');
49
+ expect(parsed.regionCode).to.equal('GF');
50
+ });
49
51
  it('handles validation via awesome-phonenumber', () => {
50
52
  const validator = new PhoneNumber();
51
53
  // @ts-ignore
52
54
  const spy = sinon.spy(PhoneUtilManager.PhoneUtil, 'parsePhoneNumber');
53
55
  validator.execute('0123456789', 'NL');
54
56
  expect(spy).to.have.been.calledOnce;
55
- expect(spy.lastCall.args[1]).to.eql({ regionCode: 'NL' });
57
+ expect(spy.lastCall.args[1]).to.eql({
58
+ regionCode: 'NL',
59
+ });
56
60
  validator.execute('0123456789', 'DE');
57
- expect(spy.lastCall.args[1]).to.eql({ regionCode: 'DE' });
61
+ expect(spy.lastCall.args[1]).to.eql({
62
+ regionCode: 'DE',
63
+ });
58
64
  spy.restore();
59
65
  });
60
-
61
66
  describe('Lazy loading PhoneUtilManager', () => {
62
67
  /** @type {(value:any) => void} */
63
68
  let resolveLoaded;
64
69
  beforeEach(() => {
65
70
  ({ resolveLoaded } = mockPhoneUtilManager());
66
71
  });
67
-
68
72
  afterEach(() => {
69
73
  restorePhoneUtilManager();
70
74
  });
71
-
72
75
  it('behaves asynchronously when lib is still loading', () => {
73
76
  expect(PhoneNumber.async).to.be.true;
74
77
  resolveLoaded(undefined);
75
78
  expect(PhoneNumber.async).to.be.false;
76
79
  });
77
-
78
80
  it('waits for the lib to be loaded before execution completes when still in async mode', async () => {
79
81
  const validator = new PhoneNumber();
80
82
  // @ts-ignore
@@ -1,24 +1,25 @@
1
1
  import { PhoneUtilManager } from '../src/PhoneUtilManager.js';
2
-
3
2
  const originalLoadComplete = PhoneUtilManager.loadComplete;
4
3
  const originalIsLoaded = Object.getOwnPropertyDescriptor(PhoneUtilManager, 'isLoaded')?.get;
5
-
6
4
  export function mockPhoneUtilManager() {
7
5
  /** @type {(value: any) => void} */
8
6
  let resolveLoaded;
9
7
  let isLoaded = false;
10
- PhoneUtilManager.loadComplete = new Promise(resolve => {
8
+ PhoneUtilManager.loadComplete = new Promise((resolve) => {
11
9
  resolveLoaded = () => {
12
10
  isLoaded = true;
13
11
  resolve(undefined);
14
12
  };
15
13
  });
16
- Object.defineProperty(PhoneUtilManager, 'isLoaded', { get: () => isLoaded });
14
+ Object.defineProperty(PhoneUtilManager, 'isLoaded', {
15
+ get: () => isLoaded,
16
+ });
17
17
 
18
18
  // @ts-ignore
19
- return { resolveLoaded };
19
+ return {
20
+ resolveLoaded,
21
+ };
20
22
  }
21
-
22
23
  export function restorePhoneUtilManager() {
23
24
  PhoneUtilManager.loadComplete = originalLoadComplete;
24
25
  Object.defineProperty(PhoneUtilManager, 'isLoaded', {
@@ -20,13 +20,12 @@ import { nothing } from 'lit/html.js';
20
20
  * @typedef {import('../types/index.js').RegionCode} RegionCode
21
21
  */
22
22
 
23
- const fixture = /** @type {(arg: string | TemplateResult) => Promise<LionInputTel>} */ (_fixture);
24
- const fixtureSync = /** @type {(arg: string | TemplateResult) => LionInputTel} */ (_fixtureSync);
25
-
23
+ const fixture = /** @type {(arg: string | TemplateResult) => Promise<LionInputTel>} */ _fixture;
24
+ const fixtureSync = /** @type {(arg: string | TemplateResult) => LionInputTel} */ _fixtureSync;
26
25
  const getRegionCodeBasedOnLocale = () => {
27
26
  const localizeManager = getLocalizeManager();
28
27
  const localeSplitted = localizeManager.locale.split('-');
29
- return /** @type {RegionCode} */ (localeSplitted[localeSplitted.length - 1]).toUpperCase();
28
+ return /** @type {RegionCode} */ localeSplitted[localeSplitted.length - 1].toUpperCase();
30
29
  };
31
30
 
32
31
  /**
@@ -41,7 +40,6 @@ function runActiveRegionTests({ tag, phoneUtilLoadedAfterInit }) {
41
40
  beforeEach(() => {
42
41
  ({ resolveLoaded: resolvePhoneUtilLoaded } = mockPhoneUtilManager());
43
42
  });
44
-
45
43
  afterEach(() => {
46
44
  restorePhoneUtilManager();
47
45
  });
@@ -58,15 +56,12 @@ function runActiveRegionTests({ tag, phoneUtilLoadedAfterInit }) {
58
56
  await el.updateComplete;
59
57
  expect(el.activeRegion).to.equal('DE');
60
58
  });
61
-
62
59
  it('returns undefined when multiple .allowedRegions, but no modelValue match', async () => {
63
60
  // involve locale, so we are sure it does not fall back on locale
64
61
  const currentCode = getRegionCodeBasedOnLocale();
65
62
  const allowedRegions = ['BE', 'DE', 'CN'];
66
63
  const el = await fixture(
67
- html` <${tag} .modelValue="${'+31612345678'}" .allowedRegions="${allowedRegions.filter(
68
- ar => ar !== currentCode,
69
- )}"></${tag}> `,
64
+ html` <${tag} .modelValue="${'+31612345678'}" .allowedRegions="${allowedRegions.filter((ar) => ar !== currentCode)}"></${tag}> `,
70
65
  );
71
66
  if (resolvePhoneUtilLoaded) {
72
67
  resolvePhoneUtilLoaded(undefined);
@@ -85,14 +80,9 @@ function runActiveRegionTests({ tag, phoneUtilLoadedAfterInit }) {
85
80
  // Region code for country code '31' is 'NL'
86
81
  expect(el.activeRegion).to.equal('NL');
87
82
  });
88
-
89
83
  it('.modelValue takes precedence over .allowedRegions when both preconfigured and .modelValue updated', async () => {
90
84
  const el = await fixture(
91
- html` <${tag} .allowedRegions="${[
92
- 'DE',
93
- 'BE',
94
- 'NL',
95
- ]}" .modelValue="${'+31612345678'}" ></${tag}> `,
85
+ html` <${tag} .allowedRegions="${['DE', 'BE', 'NL']}" .modelValue="${'+31612345678'}" ></${tag}> `,
96
86
  );
97
87
  if (resolvePhoneUtilLoaded) {
98
88
  resolvePhoneUtilLoaded(undefined);
@@ -100,13 +90,9 @@ function runActiveRegionTests({ tag, phoneUtilLoadedAfterInit }) {
100
90
  }
101
91
  expect(el.activeRegion).to.equal('NL');
102
92
  });
103
-
104
93
  it('.modelValue takes precedence over .preferredRegions when both preconfigured and .modelValue updated', async () => {
105
94
  const el = await fixture(
106
- html` <${tag} .preferredRegions="${[
107
- 'DE',
108
- 'BE',
109
- ]}" .modelValue="${'+31612345678'}" ></${tag}> `,
95
+ html` <${tag} .preferredRegions="${['DE', 'BE']}" .modelValue="${'+31612345678'}" ></${tag}> `,
110
96
  );
111
97
  if (resolvePhoneUtilLoaded) {
112
98
  resolvePhoneUtilLoaded(undefined);
@@ -114,7 +100,6 @@ function runActiveRegionTests({ tag, phoneUtilLoadedAfterInit }) {
114
100
  }
115
101
  expect(el.activeRegion).to.equal('NL');
116
102
  });
117
-
118
103
  it('deducts it from value when modelValue is unparseable', async () => {
119
104
  const modelValue = new Unparseable('+316');
120
105
  const el = await fixture(html` <${tag} .modelValue=${modelValue}></${tag}> `);
@@ -125,7 +110,6 @@ function runActiveRegionTests({ tag, phoneUtilLoadedAfterInit }) {
125
110
  // Region code for country code '31' is 'NL'
126
111
  expect(el.activeRegion).to.equal('NL');
127
112
  });
128
-
129
113
  it('deducts it from value when modelValue is unparseable and contains parentheses', async () => {
130
114
  const modelValue = new Unparseable('(+31)6');
131
115
  const el = await fixture(html` <${tag} .modelValue=${modelValue}></${tag}> `);
@@ -158,14 +142,11 @@ function runActiveRegionTests({ tag, phoneUtilLoadedAfterInit }) {
158
142
  const currentCode = getRegionCodeBasedOnLocale();
159
143
  expect(el.activeRegion).to.equal(currentCode);
160
144
  });
161
-
162
145
  it('returns undefined when locale not within allowed regions', async () => {
163
146
  const currentCode = getRegionCodeBasedOnLocale();
164
147
  const allowedRegions = ['NL', 'BE', 'DE'];
165
148
  const el = await fixture(
166
- html` <${tag} .allowedRegions="${allowedRegions.filter(
167
- ar => ar !== currentCode,
168
- )}"></${tag}> `,
149
+ html` <${tag} .allowedRegions="${allowedRegions.filter((ar) => ar !== currentCode)}"></${tag}> `,
169
150
  );
170
151
  if (resolvePhoneUtilLoaded) {
171
152
  resolvePhoneUtilLoaded(undefined);
@@ -182,19 +163,25 @@ function runActiveRegionTests({ tag, phoneUtilLoadedAfterInit }) {
182
163
  // @ts-ignore
183
164
  export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false } = {}) {
184
165
  // @ts-ignore
185
- const tagName = defineCE(/** @type {* & HTMLElement} */ (class extends klass {}));
166
+ const tagName = defineCE(/** @type {* & HTMLElement} */ class extends klass {});
186
167
  const tag = unsafeStatic(tagName);
187
-
188
168
  describe('LionInputTel', () => {
189
169
  beforeEach(async () => {
190
170
  // Wait till PhoneUtilManager has been loaded
191
171
  await PhoneUtilManager.loadComplete;
192
172
  });
193
-
194
173
  describe('Readonly accessor `.activePhoneNumberType`', () => {
195
174
  const types = [
196
- { type: 'fixed-line', number: '030 1234567', allowedRegions: ['NL'] },
197
- { type: 'mobile', number: '06 12345678', allowedRegions: ['NL'] },
175
+ {
176
+ type: 'fixed-line',
177
+ number: '030 1234567',
178
+ allowedRegions: ['NL'],
179
+ },
180
+ {
181
+ type: 'mobile',
182
+ number: '06 12345678',
183
+ allowedRegions: ['NL'],
184
+ },
198
185
  // { type: 'fixed-line-or-mobile', number: '030 1234567' },
199
186
  // { type: 'pager', number: '06 12345678' },
200
187
  // { type: 'personal-number', number: '06 12345678' },
@@ -205,7 +192,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
205
192
  // { type: 'voip', number: '06 12345678' },
206
193
  // { type: 'unknown', number: '06 12345678' },
207
194
  ];
208
-
209
195
  for (const { type, number, allowedRegions } of types) {
210
196
  it(`returns "${type}" for ${type} numbers`, async () => {
211
197
  const el = await fixture(
@@ -217,7 +203,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
217
203
  });
218
204
  }
219
205
  });
220
-
221
206
  describe('User interaction', () => {
222
207
  it('sets inputmode to "tel" for mobile keyboard', async () => {
223
208
  const el = await fixture(
@@ -226,7 +211,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
226
211
  // @ts-expect-error [allow-protected] inside tests
227
212
  expect(el._inputNode.inputMode).to.equal('tel');
228
213
  });
229
-
230
214
  it('sets autocomplete to "tel"', async () => {
231
215
  const el = await fixture(
232
216
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}"></${tag}> `,
@@ -235,7 +219,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
235
219
  // @ts-expect-error [allow-protected] inside tests
236
220
  expect(el._inputNode.getAttribute('autocomplete')).to.equal('tel');
237
221
  });
238
-
239
222
  it('formats according to locale', async () => {
240
223
  const el = await fixture(
241
224
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .modelValue="${'+31612345678'}" .allowedRegions="${['NL']}"></${tag}> `,
@@ -244,7 +227,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
244
227
  const expectedNumber = hasParentheses ? '(+31) 6 12345678' : '+31 6 12345678';
245
228
  expect(el.formattedValue).to.equal(expectedNumber);
246
229
  });
247
-
248
230
  it('does not reflect back formattedValue after activeRegion change when input still focused', async () => {
249
231
  const el = await fixture(
250
232
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .modelValue="${'+639608920056'}"></${tag}> `,
@@ -272,7 +254,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
272
254
  await aTimeout(0);
273
255
  expect(el.modelValue).to.equal('+31612345678');
274
256
  });
275
-
276
257
  it('stores a serializedValue in E164 format', async () => {
277
258
  const el = await fixture(
278
259
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .allowedRegions="${['NL']}"></${tag}> `,
@@ -281,7 +262,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
281
262
  await aTimeout(0);
282
263
  expect(el.serializedValue).to.equal('+31612345678');
283
264
  });
284
-
285
265
  it('stores a formattedValue according to format strategy', async () => {
286
266
  const el = await fixture(
287
267
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" format-strategy="national" .allowedRegions="${['NL']}"></${tag}> `,
@@ -290,7 +270,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
290
270
  await aTimeout(0);
291
271
  expect(el.formattedValue).to.equal('06 12345678');
292
272
  });
293
-
294
273
  describe('Format strategies', () => {
295
274
  it('supports "national" strategy', async () => {
296
275
  const el = await fixture(
@@ -300,7 +279,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
300
279
  await aTimeout(0);
301
280
  expect(el.formattedValue).to.equal('06 12345678');
302
281
  });
303
-
304
282
  it('supports "international" strategy', async () => {
305
283
  const el = await fixture(
306
284
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" format-strategy="international" .allowedRegions="${['NL']}"></${tag}> `,
@@ -310,7 +288,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
310
288
  const expectedNumber = hasParentheses ? '(+31) 6 12345678' : '+31 6 12345678';
311
289
  expect(el.formattedValue).to.equal(expectedNumber);
312
290
  });
313
-
314
291
  it('supports "e164" strategy', async () => {
315
292
  const el = await fixture(
316
293
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" format-strategy="e164" .allowedRegions="${['NL']}"></${tag}> `,
@@ -320,7 +297,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
320
297
  const expectedNumber = hasParentheses ? '(+31)612345678' : '+31612345678';
321
298
  expect(el.formattedValue).to.equal(expectedNumber);
322
299
  });
323
-
324
300
  it('supports "rfc3966" strategy', async () => {
325
301
  const el = await fixture(
326
302
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" format-strategy="rfc3966" .allowedRegions="${['NL']}"></${tag}> `,
@@ -330,7 +306,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
330
306
  const expectedNumber = hasParentheses ? 'tel:(+31)-6-12345678' : 'tel:+31-6-12345678';
331
307
  expect(el.formattedValue).to.equal(expectedNumber);
332
308
  });
333
-
334
309
  it('supports "significant" strategy', async () => {
335
310
  const el = await fixture(
336
311
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" format-strategy="significant" .allowedRegions="${['NL']}"></${tag}> `,
@@ -339,12 +314,9 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
339
314
  await aTimeout(0);
340
315
  expect(el.formattedValue).to.equal('612345678');
341
316
  });
342
-
343
317
  it('formats according to formatCountryCodeStyle', async () => {
344
318
  const el = await fixture(
345
- html` <${tag} format-country-code-style="parentheses" .modelValue="${'+31612345678'}" .allowedRegions="${[
346
- 'NL',
347
- ]}"></${tag}> `,
319
+ html` <${tag} format-country-code-style="parentheses" .modelValue="${'+31612345678'}" .allowedRegions="${['NL']}"></${tag}> `,
348
320
  );
349
321
  await aTimeout(0);
350
322
  expect(el.formattedValue).to.equal('(+31) 6 12345678');
@@ -364,43 +336,39 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
364
336
  expect(el.modelValue).to.equal(undefined);
365
337
  });
366
338
  });
367
-
368
339
  describe('Validation', () => {
369
340
  it('applies PhoneNumber as default validator', async () => {
370
341
  const el = await fixture(
371
342
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}"></${tag}> `,
372
343
  );
373
- expect(el.defaultValidators.find(v => v instanceof PhoneNumber)).to.be.not.undefined;
344
+ expect(el.defaultValidators.find((v) => v instanceof PhoneNumber)).to.be.not.undefined;
374
345
  });
375
-
376
346
  it('configures PhoneNumber with regionCode before first validation', async () => {
377
347
  const el = fixtureSync(
378
348
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .allowedRegions="${['NL']}" .modelValue="${'612345678'}"></${tag}> `,
379
349
  );
380
350
  const spy = sinon.spy(el, 'validate');
381
- const validatorInstance = /** @type {PhoneNumber} */ (
382
- el.defaultValidators.find(v => v instanceof PhoneNumber)
383
- );
351
+ const validatorInstance =
352
+ /** @type {PhoneNumber} */
353
+ el.defaultValidators.find((v) => v instanceof PhoneNumber);
384
354
  await el.updateComplete;
385
355
  expect(validatorInstance.param).to.equal('NL');
386
356
  expect(spy).to.have.been.called;
387
357
  spy.restore();
388
358
  });
389
-
390
359
  it('updates PhoneNumber param on regionCode change', async () => {
391
360
  const el = await fixture(
392
361
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .allowedRegions="${['NL']}" .modelValue="${'612345678'}"></${tag}> `,
393
362
  );
394
- const validatorInstance = /** @type {PhoneNumber} */ (
395
- el.defaultValidators.find(v => v instanceof PhoneNumber)
396
- );
363
+ const validatorInstance =
364
+ /** @type {PhoneNumber} */
365
+ el.defaultValidators.find((v) => v instanceof PhoneNumber);
397
366
  // @ts-expect-error allow protected in tests
398
367
  el._setActiveRegion('DE');
399
368
  await el.updateComplete;
400
369
  expect(validatorInstance.param).to.equal('DE');
401
370
  });
402
371
  });
403
-
404
372
  describe('User interaction', () => {
405
373
  it('sets inputmode to "tel" for mobile keyboard', async () => {
406
374
  const el = await fixture(
@@ -409,7 +377,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
409
377
  // @ts-expect-error [allow-protected] inside tests
410
378
  expect(el._inputNode.inputMode).to.equal('tel');
411
379
  });
412
-
413
380
  it('formats according to locale', async () => {
414
381
  const el = await fixture(
415
382
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .allowedRegions="${['NL']}"></${tag}> `,
@@ -421,7 +388,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
421
388
  expect(el.formattedValue).to.equal(expectedNumber);
422
389
  });
423
390
  });
424
-
425
391
  describe('Live format', () => {
426
392
  it('calls .preprocessor on keyup', async () => {
427
393
  const el = await fixture(
@@ -433,7 +399,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
433
399
  expect(el.value).to.equal(expectedNumber);
434
400
  });
435
401
  });
436
-
437
402
  describe('Accessibility', () => {
438
403
  describe('Audit', () => {
439
404
  it('passes a11y audit', async () => {
@@ -442,14 +407,12 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
442
407
  );
443
408
  await expect(el).to.be.accessible();
444
409
  });
445
-
446
410
  it('passes a11y audit when readonly', async () => {
447
411
  const el = await fixture(
448
412
  html`<${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" label="tel" readonly .modelValue=${'0123456789'}></${tag}>`,
449
413
  );
450
414
  await expect(el).to.be.accessible();
451
415
  });
452
-
453
416
  it('passes a11y audit when disabled', async () => {
454
417
  const el = await fixture(
455
418
  html`<${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" label="tel" disabled .modelValue=${'0123456789'}></${tag}>`,
@@ -458,18 +421,15 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
458
421
  });
459
422
  });
460
423
  });
461
-
462
424
  describe('Lazy loading awesome-phonenumber', () => {
463
425
  /** @type {(value:any) => void} */
464
426
  let resolveLoaded;
465
427
  beforeEach(() => {
466
428
  ({ resolveLoaded } = mockPhoneUtilManager());
467
429
  });
468
-
469
430
  afterEach(() => {
470
431
  restorePhoneUtilManager();
471
432
  });
472
-
473
433
  it('reformats once lib has been loaded', async () => {
474
434
  const el = await fixture(
475
435
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .modelValue="${'612345678'}" .allowedRegions="${['NL']}"></${tag}> `,
@@ -480,7 +440,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
480
440
  const expectedNumber = hasParentheses ? '(+31) 6 12345678' : '+31 6 12345678';
481
441
  expect(el.formattedValue).to.equal(expectedNumber);
482
442
  });
483
-
484
443
  it('validates once lib has been loaded', async () => {
485
444
  const el = await fixture(
486
445
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .modelValue="${'+31612345678'}" .allowedRegions="${['DE']}"></${tag}> `,
@@ -491,16 +450,18 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
491
450
  expect(el.hasFeedbackFor).to.eql(['error']);
492
451
  });
493
452
  });
494
-
495
453
  describe('Region codes', () => {
496
454
  describe('When PhoneUtilManager has loaded before init', () => {
497
- runActiveRegionTests({ tag });
455
+ runActiveRegionTests({
456
+ tag,
457
+ });
498
458
  });
499
-
500
459
  describe('When PhoneUtilManager is resolved after init', () => {
501
- runActiveRegionTests({ tag, phoneUtilLoadedAfterInit: true });
460
+ runActiveRegionTests({
461
+ tag,
462
+ phoneUtilLoadedAfterInit: true,
463
+ });
502
464
  });
503
-
504
465
  it('can preconfigure the region code via prop', async () => {
505
466
  const currentCode = getRegionCodeBasedOnLocale();
506
467
  const newCode = currentCode === 'DE' ? 'NL' : 'DE';
@@ -509,7 +470,6 @@ export function runInputTelSuite({ klass = LionInputTel, hasParentheses = false
509
470
  );
510
471
  expect(el.activeRegion).to.equal(newCode);
511
472
  });
512
-
513
473
  it.skip('reformats when region code is changed on the fly', async () => {
514
474
  const el = await fixture(
515
475
  html` <${tag} format-country-code-style="${hasParentheses ? 'parentheses' : nothing}" .allowedRegions="${['NL']}" .modelValue="${'+31612345678'}"></${tag}> `,
@@ -1,5 +1,4 @@
1
1
  import bg from './bg.js';
2
-
3
2
  export default {
4
3
  ...bg,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import cs from './cs.js';
2
-
3
2
  export default {
4
3
  ...cs,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import de from './de.js';
2
-
3
2
  export default {
4
3
  ...de,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import en from './en.js';
2
-
3
2
  export default {
4
3
  ...en,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import en from './en.js';
2
-
3
2
  export default {
4
3
  ...en,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import en from './en.js';
2
-
3
2
  export default {
4
3
  ...en,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import es from './es.js';
2
-
3
2
  export default {
4
3
  ...es,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import fr from './fr.js';
2
-
3
2
  export default {
4
3
  ...fr,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import fr from './fr.js';
2
-
3
2
  export default {
4
3
  ...fr,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import hu from './hu.js';
2
-
3
2
  export default {
4
3
  ...hu,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import it from './it.js';
2
-
3
2
  export default {
4
3
  ...it,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import nl from './nl.js';
2
-
3
2
  export default {
4
3
  ...nl,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import nl from './nl.js';
2
-
3
2
  export default {
4
3
  ...nl,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import pl from './pl.js';
2
-
3
2
  export default {
4
3
  ...pl,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import ro from './ro.js';
2
-
3
2
  export default {
4
3
  ...ro,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import ru from './ru.js';
2
-
3
2
  export default {
4
3
  ...ru,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import sk from './sk.js';
2
-
3
2
  export default {
4
3
  ...sk,
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import uk from './uk.js';
2
-
3
2
  export default {
4
3
  ...uk,
5
4
  };