@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
@@ -2,7 +2,6 @@ import { LionButton } from '@lion/ui/button.js';
2
2
  import { defineCE, expect, fixture } from '@open-wc/testing';
3
3
  import { html } from 'lit/static-html.js';
4
4
  import { LionSelectInvoker } from '@lion/ui/select-rich.js';
5
-
6
5
  import '@lion/ui/define/lion-select-invoker.js';
7
6
 
8
7
  /**
@@ -14,16 +13,14 @@ describe('lion-select-invoker', () => {
14
13
  const el = await fixture(html`<lion-select-invoker></lion-select-invoker>`);
15
14
  expect(el instanceof LionButton).to.be.true;
16
15
  });
17
-
18
16
  it('renders invoker info based on selectedElement child elements', async () => {
19
- const el = /** @type {LionSelectInvoker} */ (
20
- await fixture(html`<lion-select-invoker></lion-select-invoker>`)
21
- );
22
- el.selectedElement = /** @type {LionOption} */ (
23
- await fixture(`<div class="option">Textnode<h2>I am</h2><p>2 lines</p></div>`)
24
- );
17
+ const el =
18
+ /** @type {LionSelectInvoker} */
19
+ await fixture(html`<lion-select-invoker></lion-select-invoker>`);
20
+ el.selectedElement =
21
+ /** @type {LionOption} */
22
+ await fixture(`<div class="option">Textnode<h2>I am</h2><p>2 lines</p></div>`);
25
23
  await el.updateComplete;
26
-
27
24
  expect(el._contentWrapperNode).lightDom.to.equal(
28
25
  `
29
26
  Textnode
@@ -35,44 +32,36 @@ describe('lion-select-invoker', () => {
35
32
  },
36
33
  );
37
34
  });
38
-
39
35
  it('renders invoker info based on selectedElement textContent', async () => {
40
- const el = /** @type {LionSelectInvoker} */ (
41
- await fixture(html`<lion-select-invoker></lion-select-invoker>`)
42
- );
43
- el.selectedElement = /** @type {LionOption} */ (
44
- await fixture(`<div class="option">just textContent</div>`)
45
- );
36
+ const el =
37
+ /** @type {LionSelectInvoker} */
38
+ await fixture(html`<lion-select-invoker></lion-select-invoker>`);
39
+ el.selectedElement =
40
+ /** @type {LionOption} */
41
+ await fixture(`<div class="option">just textContent</div>`);
46
42
  await el.updateComplete;
47
-
48
43
  expect(el._contentWrapperNode).lightDom.to.equal('just textContent');
49
44
  });
50
-
51
45
  it('has tabindex="0"', async () => {
52
- const el = /** @type {LionSelectInvoker} */ (
53
- await fixture(html`<lion-select-invoker></lion-select-invoker>`)
54
- );
46
+ const el =
47
+ /** @type {LionSelectInvoker} */
48
+ await fixture(html`<lion-select-invoker></lion-select-invoker>`);
55
49
  expect(el.tabIndex).to.equal(0);
56
50
  expect(el.getAttribute('tabindex')).to.equal('0');
57
51
  });
58
-
59
52
  it('should not render after slot when singleOption is true', async () => {
60
- const el = /** @type {LionSelectInvoker} */ (
61
- await fixture(html` <lion-select-invoker .singleOption="${true}"></lion-select-invoker> `)
62
- );
63
-
64
- expect(/** @type {ShadowRoot} */ (el.shadowRoot).querySelector('slot[name="after"]')).to.not
53
+ const el =
54
+ /** @type {LionSelectInvoker} */
55
+ await fixture(html` <lion-select-invoker .singleOption="${true}"></lion-select-invoker> `);
56
+ expect(/** @type {ShadowRoot} */ el.shadowRoot.querySelector('slot[name="after"]')).to.not
65
57
  .exist;
66
58
  });
67
-
68
59
  it('should render after slot when singleOption is not true', async () => {
69
- const el = /** @type {LionSelectInvoker} */ (
70
- await fixture(html`<lion-select-invoker></lion-select-invoker>`)
71
- );
72
-
73
- expect(/** @type {ShadowRoot} */ (el.shadowRoot).querySelector('slot[name="after"]')).to.exist;
60
+ const el =
61
+ /** @type {LionSelectInvoker} */
62
+ await fixture(html`<lion-select-invoker></lion-select-invoker>`);
63
+ expect(/** @type {ShadowRoot} */ el.shadowRoot.querySelector('slot[name="after"]')).to.exist;
74
64
  });
75
-
76
65
  describe('Subclassers', () => {
77
66
  it('supports a custom _contentTemplate', async () => {
78
67
  const myTag = defineCE(
@@ -85,17 +74,11 @@ describe('lion-select-invoker', () => {
85
74
  }
86
75
  },
87
76
  );
88
- const el = /** @type {LionSelectInvoker} */ (await fixture(`<${myTag}></${myTag}>`));
89
-
90
- el.selectedElement = /** @type {LionOption} */ (
91
- await fixture(`<div class="option">cat</div>`)
92
- );
77
+ const el = /** @type {LionSelectInvoker} */ await fixture(`<${myTag}></${myTag}>`);
78
+ el.selectedElement = /** @type {LionOption} */ await fixture(`<div class="option">cat</div>`);
93
79
  await el.updateComplete;
94
80
  expect(el._contentWrapperNode).lightDom.to.equal('cat selected');
95
-
96
- el.selectedElement = /** @type {LionOption} */ (
97
- await fixture(`<div class="option">dog</div>`)
98
- );
81
+ el.selectedElement = /** @type {LionOption} */ await fixture(`<div class="option">dog</div>`);
99
82
  await el.updateComplete;
100
83
  expect(el._contentWrapperNode).lightDom.to.equal('no valid selection');
101
84
  });
@@ -1,7 +1,7 @@
1
1
  import { runListboxMixinSuite } from '@lion/ui/listbox-test-suites.js';
2
-
3
2
  import '@lion/ui/define/lion-select-rich.js';
4
-
5
3
  describe('<lion-select-rich> integration with ListboxMixin', () => {
6
- runListboxMixinSuite({ tagString: 'lion-select-rich' });
4
+ runListboxMixinSuite({
5
+ tagString: 'lion-select-rich',
6
+ });
7
7
  });
@@ -1,7 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
2
  import { OverlayMixin } from '@lion/ui/overlays.js';
3
3
  import { defineCE, expect, fixture, html, unsafeStatic } from '@open-wc/testing';
4
-
5
4
  import '@lion/ui/define/lion-listbox.js';
6
5
  import '@lion/ui/define/lion-select-rich.js';
7
6
 
@@ -22,13 +21,12 @@ const tagString = defineCE(
22
21
  },
23
22
  );
24
23
  const tag = unsafeStatic(tagString);
25
-
26
24
  describe('Select Rich Integration tests', () => {
27
25
  it('works inside a dialog', async () => {
28
26
  let properlyInstantiated = false;
29
-
30
27
  try {
31
- const nestedEl = /** @type {LionSelectRich} */ (
28
+ const nestedEl =
29
+ /** @type {LionSelectRich} */
32
30
  await fixture(html`
33
31
  <lion-select-rich>
34
32
  <lion-options slot="input">
@@ -36,10 +34,8 @@ describe('Select Rich Integration tests', () => {
36
34
  <lion-option .choiceValue=${20}>Item 2</lion-option>
37
35
  </lion-options>
38
36
  </lion-select-rich>
39
- `)
40
- );
37
+ `);
41
38
  await nestedEl.registrationComplete;
42
-
43
39
  await fixture(html`
44
40
  <${tag} id="main">
45
41
  <div slot="content" id="mainContent">
@@ -51,9 +47,8 @@ describe('Select Rich Integration tests', () => {
51
47
  `);
52
48
  properlyInstantiated = true;
53
49
  } catch (e) {
54
- throw new Error(/** @type {Error} */ (e).message);
50
+ throw new Error(/** @type {Error} */ e.message);
55
51
  }
56
-
57
52
  expect(properlyInstantiated).to.be.true;
58
53
  });
59
54
  });
@@ -3,9 +3,7 @@ import { Required } from '@lion/ui/form-core.js';
3
3
  import { html } from 'lit/static-html.js';
4
4
  import { browserDetection } from '@lion/ui/core.js';
5
5
  import sinon from 'sinon';
6
-
7
6
  import '@lion/ui/define/lion-option.js';
8
-
9
7
  import '@lion/ui/define/lion-listbox.js';
10
8
  import '@lion/ui/define/lion-select-rich.js';
11
9
  import { getSelectRichMembers } from '@lion/ui/select-rich-test-helpers.js';
@@ -21,8 +19,18 @@ import { getSelectRichMembers } from '@lion/ui/select-rich-test-helpers.js';
21
19
  * @param {string} code
22
20
  */
23
21
  function mimicKeyPress(el, key, code = '') {
24
- el.dispatchEvent(new KeyboardEvent('keydown', { key, code }));
25
- el.dispatchEvent(new KeyboardEvent('keyup', { key, code }));
22
+ el.dispatchEvent(
23
+ new KeyboardEvent('keydown', {
24
+ key,
25
+ code,
26
+ }),
27
+ );
28
+ el.dispatchEvent(
29
+ new KeyboardEvent('keyup', {
30
+ key,
31
+ code,
32
+ }),
33
+ );
26
34
  }
27
35
 
28
36
  /**
@@ -42,124 +50,110 @@ function expectOnlyGivenOneOptionToBeChecked(options, selectedIndex) {
42
50
  }
43
51
  });
44
52
  }
45
-
46
53
  describe('lion-select-rich interactions', () => {
47
54
  describe('Scrolling active options', () => {
48
55
  afterEach(() => {
49
56
  sinon.restore();
50
57
  });
51
-
52
58
  it('does not scroll while typing a selection from the closed invoker', async () => {
53
- const el = /** @type {LionSelectRich} */ (
59
+ const el =
60
+ /** @type {LionSelectRich} */
54
61
  await fixture(html`
55
62
  <lion-select-rich interaction-mode="windows/linux">
56
63
  <lion-option .choiceValue=${'red'}>Red</lion-option>
57
64
  <lion-option .choiceValue=${'teal'}>Teal</lion-option>
58
65
  </lion-select-rich>
59
- `)
60
- );
66
+ `);
61
67
  const scrollSpy = sinon.spy(Element.prototype, 'scrollIntoView');
62
-
63
68
  mimicKeyPress(el, 't', 'KeyT');
64
69
  await el.updateComplete;
65
-
66
70
  expect(el.opened).to.be.false;
67
71
  expect(el.checkedIndex).to.equal(1);
68
72
  expect(scrollSpy.callCount).to.equal(0);
69
73
  });
70
-
71
74
  it('scrolls the selected option on opening and the active option on keyboard navigation', async () => {
72
- const el = /** @type {LionSelectRich} */ (
75
+ const el =
76
+ /** @type {LionSelectRich} */
73
77
  await fixture(html`
74
78
  <lion-select-rich interaction-mode="mac">
75
79
  <lion-option .choiceValue=${10}>Item 1</lion-option>
76
80
  <lion-option .choiceValue=${20} checked>Item 2</lion-option>
77
81
  <lion-option .choiceValue=${30}>Item 3</lion-option>
78
82
  </lion-select-rich>
79
- `)
80
- );
83
+ `);
81
84
  const { _overlayCtrl, _listboxNode } = getSelectRichMembers(el);
82
85
  const scrollSpy = sinon.spy(Element.prototype, 'scrollIntoView');
83
-
84
86
  await _overlayCtrl.show();
85
87
  await el.updateComplete;
86
-
87
88
  expect(el.opened).to.be.true;
88
89
  expect(scrollSpy.calledOn(el.formElements[1])).to.be.true;
89
90
  scrollSpy.resetHistory();
90
-
91
91
  mimicKeyPress(_listboxNode, 'ArrowDown');
92
92
  await el.updateComplete;
93
-
94
93
  expect(el.activeIndex).to.equal(2);
95
94
  expect(scrollSpy.calledOn(el.formElements[2])).to.be.true;
96
95
  });
97
96
  });
98
-
99
97
  describe('Interaction mode', () => {
100
98
  it('autodetects interactionMode if not defined', async () => {
101
99
  const originalIsMac = browserDetection.isMac;
102
-
103
100
  browserDetection.isMac = true;
104
- const el = /** @type {LionSelectRich} */ (
101
+ const el =
102
+ /** @type {LionSelectRich} */
105
103
  await fixture(html`
106
104
  <lion-select-rich><lion-option .choiceValue=${10}>Item 1</lion-option></lion-select-rich>
107
- `)
108
- );
105
+ `);
109
106
  expect(el.interactionMode).to.equal('mac');
110
- const el2 = /** @type {LionSelectRich} */ (
107
+ const el2 =
108
+ /** @type {LionSelectRich} */
111
109
  await fixture(html`
112
110
  <lion-select-rich interaction-mode="windows/linux"
113
111
  ><lion-option .choiceValue=${10}>Item 1</lion-option></lion-select-rich
114
112
  >
115
- `)
116
- );
113
+ `);
117
114
  expect(el2.interactionMode).to.equal('windows/linux');
118
-
119
115
  browserDetection.isMac = false;
120
- const el3 = /** @type {LionSelectRich} */ (
116
+ const el3 =
117
+ /** @type {LionSelectRich} */
121
118
  await fixture(html`
122
119
  <lion-select-rich><lion-option .choiceValue=${10}>Item 1</lion-option></lion-select-rich>
123
- `)
124
- );
120
+ `);
125
121
  expect(el3.interactionMode).to.equal('windows/linux');
126
- const el4 = /** @type {LionSelectRich} */ (
122
+ const el4 =
123
+ /** @type {LionSelectRich} */
127
124
  await fixture(html`
128
125
  <lion-select-rich interaction-mode="mac"
129
126
  ><lion-option .choiceValue=${10}>Item 1</lion-option></lion-select-rich
130
127
  >
131
- `)
132
- );
128
+ `);
133
129
  expect(el4.interactionMode).to.equal('mac');
134
130
  browserDetection.isMac = originalIsMac;
135
131
  });
136
-
137
132
  it('derives selectionFollowsFocus and navigateWithinInvoker from interactionMode', async () => {
138
- const el = /** @type {LionSelectRich} */ (
133
+ const el =
134
+ /** @type {LionSelectRich} */
139
135
  await fixture(html`
140
136
  <lion-select-rich interaction-mode="windows/linux"
141
137
  ><lion-option .choiceValue=${10}>Item 1</lion-option></lion-select-rich
142
138
  >
143
- `)
144
- );
139
+ `);
145
140
  expect(el.selectionFollowsFocus).to.be.true;
146
141
  expect(el.navigateWithinInvoker).to.be.true;
147
-
148
- const el2 = /** @type {LionSelectRich} */ (
142
+ const el2 =
143
+ /** @type {LionSelectRich} */
149
144
  await fixture(html`
150
145
  <lion-select-rich interaction-mode="mac"
151
146
  ><lion-option .choiceValue=${10}>Item 1</lion-option></lion-select-rich
152
147
  >
153
- `)
154
- );
148
+ `);
155
149
  expect(el2.selectionFollowsFocus).to.be.false;
156
150
  expect(el2.navigateWithinInvoker).to.be.false;
157
151
  });
158
152
  });
159
-
160
153
  describe('Invoker Keyboard navigation Mac', () => {
161
154
  it('opens dropdown with [ArrowDown] [ArrowUp] keys or navigates through the listbox options', async () => {
162
- const el = /** @type {LionSelectRich} */ (
155
+ const el =
156
+ /** @type {LionSelectRich} */
163
157
  await fixture(html`
164
158
  <lion-select-rich interaction-mode="mac">
165
159
  <lion-options slot="input">
@@ -168,29 +162,31 @@ describe('lion-select-rich interactions', () => {
168
162
  <lion-option .choiceValue=${30}>Item 3</lion-option>
169
163
  </lion-options>
170
164
  </lion-select-rich>
171
- `)
172
- );
173
-
165
+ `);
174
166
  const options = el.formElements;
175
167
  expect(el.checkedIndex).to.equal(0);
176
168
  expectOnlyGivenOneOptionToBeChecked(options, 0);
177
-
178
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowDown' }));
179
-
169
+ el.dispatchEvent(
170
+ new KeyboardEvent('keyup', {
171
+ key: 'ArrowDown',
172
+ }),
173
+ );
180
174
  expect(el.opened).to.be.true;
181
175
  expect(el.checkedIndex).to.equal(0);
182
176
  expectOnlyGivenOneOptionToBeChecked(options, 0);
183
-
184
177
  el.opened = false;
185
-
186
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowUp' }));
178
+ el.dispatchEvent(
179
+ new KeyboardEvent('keyup', {
180
+ key: 'ArrowUp',
181
+ }),
182
+ );
187
183
  expect(el.opened).to.be.true;
188
184
  expect(el.checkedIndex).to.equal(0);
189
185
  expectOnlyGivenOneOptionToBeChecked(options, 0);
190
186
  });
191
-
192
187
  it('does not open dropdown with [ArrowLeft] [ArrowRight] keys or navigates through the listbox options', async () => {
193
- const el = /** @type {LionSelectRich} */ (
188
+ const el =
189
+ /** @type {LionSelectRich} */
194
190
  await fixture(html`
195
191
  <lion-select-rich interaction-mode="mac">
196
192
  <lion-options slot="input">
@@ -199,27 +195,30 @@ describe('lion-select-rich interactions', () => {
199
195
  <lion-option .choiceValue=${30}>Item 3</lion-option>
200
196
  </lion-options>
201
197
  </lion-select-rich>
202
- `)
203
- );
204
-
198
+ `);
205
199
  const options = el.formElements;
206
200
  expect(el.checkedIndex).to.equal(0);
207
201
  expectOnlyGivenOneOptionToBeChecked(options, 0);
208
-
209
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowLeft' }));
210
-
202
+ el.dispatchEvent(
203
+ new KeyboardEvent('keyup', {
204
+ key: 'ArrowLeft',
205
+ }),
206
+ );
211
207
  expect(el.opened).to.be.false;
212
208
  expect(el.checkedIndex).to.equal(0);
213
209
  expectOnlyGivenOneOptionToBeChecked(options, 0);
214
-
215
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowRight' }));
210
+ el.dispatchEvent(
211
+ new KeyboardEvent('keyup', {
212
+ key: 'ArrowRight',
213
+ }),
214
+ );
216
215
  expect(el.opened).to.be.false;
217
216
  expect(el.checkedIndex).to.equal(0);
218
217
  expectOnlyGivenOneOptionToBeChecked(options, 0);
219
218
  });
220
-
221
219
  it('checks a value with [character] keys while listbox unopened', async () => {
222
- const el = /** @type {LionSelectRich} */ (
220
+ const el =
221
+ /** @type {LionSelectRich} */
223
222
  await fixture(html`
224
223
  <lion-select-rich interaction-mode="mac">
225
224
  <lion-options slot="input">
@@ -228,22 +227,20 @@ describe('lion-select-rich interactions', () => {
228
227
  <lion-option .choiceValue=${'turquoise'}>Turquoise</lion-option>
229
228
  </lion-options>
230
229
  </lion-select-rich>
231
- `)
232
- );
230
+ `);
233
231
 
234
232
  // @ts-ignore [allow-private] in test
235
233
  mimicKeyPress(el, 't', 'KeyT');
236
234
  expect(el.checkedIndex).to.equal(1);
237
-
238
235
  mimicKeyPress(el, 'u', 'KeyU');
239
236
  expect(el.checkedIndex).to.equal(2);
240
237
  });
241
238
  });
242
-
243
239
  describe('Invoker Keyboard navigation Windows/Linux', () => {
244
240
  it('navigation through list with [ArrowDown] [ArrowUp] keys checks the option while listbox unopened', async () => {
245
241
  let isTriggeredByUser;
246
- const el = /** @type {LionSelectRich} */ (
242
+ const el =
243
+ /** @type {LionSelectRich} */
247
244
  await fixture(html`
248
245
  <lion-select-rich
249
246
  interaction-mode="windows/linux"
@@ -257,29 +254,32 @@ describe('lion-select-rich interactions', () => {
257
254
  <lion-option .choiceValue=${30}>Item 3</lion-option>
258
255
  </lion-options>
259
256
  </lion-select-rich>
260
- `)
261
- );
262
-
257
+ `);
263
258
  const options = el.formElements;
264
259
  expect(el.checkedIndex).to.equal(0);
265
260
  expectOnlyGivenOneOptionToBeChecked(options, 0);
266
-
267
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowDown' }));
261
+ el.dispatchEvent(
262
+ new KeyboardEvent('keyup', {
263
+ key: 'ArrowDown',
264
+ }),
265
+ );
268
266
  expect(el.checkedIndex).to.equal(1);
269
267
  expectOnlyGivenOneOptionToBeChecked(options, 1);
270
268
  expect(isTriggeredByUser).to.be.true;
271
-
272
269
  isTriggeredByUser = false;
273
-
274
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowUp' }));
270
+ el.dispatchEvent(
271
+ new KeyboardEvent('keyup', {
272
+ key: 'ArrowUp',
273
+ }),
274
+ );
275
275
  expect(el.checkedIndex).to.equal(0);
276
276
  expectOnlyGivenOneOptionToBeChecked(options, 0);
277
277
  expect(isTriggeredByUser).to.be.true;
278
278
  });
279
-
280
279
  it('navigation through list with [ArrowLeft] [ArrowRight] keys checks the option while listbox unopened', async () => {
281
280
  let isTriggeredByUser;
282
- const el = /** @type {LionSelectRich} */ (
281
+ const el =
282
+ /** @type {LionSelectRich} */
283
283
  await fixture(html`
284
284
  <lion-select-rich
285
285
  interaction-mode="windows/linux"
@@ -293,28 +293,31 @@ describe('lion-select-rich interactions', () => {
293
293
  <lion-option .choiceValue=${30}>Item 3</lion-option>
294
294
  </lion-options>
295
295
  </lion-select-rich>
296
- `)
297
- );
298
-
296
+ `);
299
297
  const options = el.formElements;
300
298
  expect(el.checkedIndex).to.equal(0);
301
299
  expectOnlyGivenOneOptionToBeChecked(options, 0);
302
-
303
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowRight' }));
300
+ el.dispatchEvent(
301
+ new KeyboardEvent('keyup', {
302
+ key: 'ArrowRight',
303
+ }),
304
+ );
304
305
  expect(el.checkedIndex).to.equal(1);
305
306
  expectOnlyGivenOneOptionToBeChecked(options, 1);
306
307
  expect(isTriggeredByUser).to.be.true;
307
-
308
308
  isTriggeredByUser = false;
309
-
310
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowLeft' }));
309
+ el.dispatchEvent(
310
+ new KeyboardEvent('keyup', {
311
+ key: 'ArrowLeft',
312
+ }),
313
+ );
311
314
  expect(el.checkedIndex).to.equal(0);
312
315
  expectOnlyGivenOneOptionToBeChecked(options, 0);
313
316
  expect(isTriggeredByUser).to.be.true;
314
317
  });
315
-
316
318
  it('checks a value with [character] keys while listbox unopened', async () => {
317
- const el = /** @type {LionSelectRich} */ (
319
+ const el =
320
+ /** @type {LionSelectRich} */
318
321
  await fixture(html`
319
322
  <lion-select-rich interaction-mode="windows/linux">
320
323
  <lion-options slot="input">
@@ -323,53 +326,48 @@ describe('lion-select-rich interactions', () => {
323
326
  <lion-option .choiceValue=${'turquoise'}>Turquoise</lion-option>
324
327
  </lion-options>
325
328
  </lion-select-rich>
326
- `)
327
- );
329
+ `);
328
330
 
329
331
  // @ts-ignore [allow-private] in test
330
332
  mimicKeyPress(el, 't', 'KeyT');
331
333
  expect(el.checkedIndex).to.equal(1);
332
-
333
334
  mimicKeyPress(el, 'u', 'KeyU');
334
335
  expect(el.checkedIndex).to.equal(2);
335
336
  });
336
337
  });
337
-
338
338
  describe('Disabled', () => {
339
339
  it('invoker cannot be focused if disabled', async () => {
340
- const el = /** @type {LionSelectRich} */ (
340
+ const el =
341
+ /** @type {LionSelectRich} */
341
342
  await fixture(html`
342
343
  <lion-select-rich disabled>
343
344
  <lion-options slot="input"></lion-options>
344
345
  </lion-select-rich>
345
- `)
346
- );
346
+ `);
347
347
  const { _invokerNode } = getSelectRichMembers(el);
348
348
  expect(_invokerNode.tabIndex).to.equal(-1);
349
349
  });
350
-
351
350
  it('cannot be opened via click if disabled', async () => {
352
- const el = /** @type {LionSelectRich} */ (
351
+ const el =
352
+ /** @type {LionSelectRich} */
353
353
  await fixture(html`
354
354
  <lion-select-rich disabled>
355
355
  <lion-options slot="input"></lion-options>
356
356
  </lion-select-rich>
357
- `)
358
- );
357
+ `);
359
358
  const { _invokerNode, _overlayCtrl } = getSelectRichMembers(el);
360
359
  _invokerNode.click();
361
360
  await _overlayCtrl._showComplete;
362
361
  expect(el.opened).to.be.false;
363
362
  });
364
-
365
363
  it('reflects disabled attribute to invoker', async () => {
366
- const el = /** @type {LionSelectRich} */ (
364
+ const el =
365
+ /** @type {LionSelectRich} */
367
366
  await fixture(html`
368
367
  <lion-select-rich disabled>
369
368
  <lion-options slot="input"></lion-options>
370
369
  </lion-select-rich>
371
- `)
372
- );
370
+ `);
373
371
  const { _invokerNode } = getSelectRichMembers(el);
374
372
  expect(_invokerNode.hasAttribute('disabled')).to.be.true;
375
373
  el.removeAttribute('disabled');
@@ -377,10 +375,10 @@ describe('lion-select-rich interactions', () => {
377
375
  expect(_invokerNode.hasAttribute('disabled')).to.be.false;
378
376
  });
379
377
  });
380
-
381
378
  describe('Interaction states', () => {
382
379
  it('becomes touched if blurred once', async () => {
383
- const el = /** @type {LionSelectRich} */ (
380
+ const el =
381
+ /** @type {LionSelectRich} */
384
382
  await fixture(html`
385
383
  <lion-select-rich>
386
384
  <lion-options slot="input">
@@ -388,8 +386,7 @@ describe('lion-select-rich interactions', () => {
388
386
  <lion-option .choiceValue=${20}>Item 2</lion-option>
389
387
  </lion-options>
390
388
  </lion-select-rich>
391
- `)
392
- );
389
+ `);
393
390
  const { _invokerNode } = getSelectRichMembers(el);
394
391
  expect(el.touched).to.be.false;
395
392
  await triggerFocusFor(_invokerNode);
@@ -397,30 +394,33 @@ describe('lion-select-rich interactions', () => {
397
394
  expect(el.touched).to.be.true;
398
395
  });
399
396
  });
400
-
401
397
  describe('Accessibility', () => {
402
398
  it('sets [aria-invalid="true"] to "._invokerNode" when there is an error', async () => {
403
- const el = /** @type {LionSelectRich} */ (
399
+ const el =
400
+ /** @type {LionSelectRich} */
404
401
  await fixture(html`
405
402
  <lion-select-rich .validators=${[new Required()]}>
406
403
  <lion-options slot="input">
407
404
  <lion-option .choiceValue=${null}>Please select a value</lion-option>
408
- <lion-option .modelValue=${{ value: 10, checked: true }}>Item 1</lion-option>
405
+ <lion-option
406
+ .modelValue=${{
407
+ value: 10,
408
+ checked: true,
409
+ }}
410
+ >Item 1</lion-option
411
+ >
409
412
  </lion-options>
410
413
  </lion-select-rich>
411
- `)
412
- );
414
+ `);
413
415
  const { _invokerNode } = getSelectRichMembers(el);
414
416
  const options = el.formElements;
415
417
  await el.feedbackComplete;
416
418
  await el.updateComplete;
417
419
  expect(_invokerNode.getAttribute('aria-invalid')).to.equal('false');
418
-
419
420
  options[0].checked = true;
420
421
  await el.feedbackComplete;
421
422
  await el.updateComplete;
422
423
  expect(_invokerNode.getAttribute('aria-invalid')).to.equal('true');
423
-
424
424
  options[1].checked = true;
425
425
  await el.feedbackComplete;
426
426
  await el.updateComplete;