@lion/ui 0.23.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (803) 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 +127 -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 +20 -8
  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 +5 -2
  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 +172 -152
  430. package/components/overlays/src/OverlayMixin.js +64 -69
  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 +406 -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/invoker-compatibility.test.js +37 -0
  456. package/components/overlays/test/local-positioning.test.js +101 -103
  457. package/components/overlays/test/utils-tests/active-element.test.js +12 -27
  458. package/components/overlays/test/utils-tests/adopt-styles.test.js +25 -56
  459. package/components/overlays/test/utils-tests/deep-contains.test.js +73 -74
  460. package/components/overlays/test/utils-tests/get-focusable-elements.test.js +6 -23
  461. package/components/overlays/test/utils-tests/is-equal-config.test.js +32 -13
  462. package/components/overlays/test/utils-tests/visibility.test.js +44 -79
  463. package/components/overlays/test-helpers/createShadowHost.js +5 -3
  464. package/components/overlays/test-helpers/normalizeTransformStyle.js +2 -4
  465. package/components/overlays/test-suites/OverlayMixin.suite.js +152 -181
  466. package/components/overlays/test-suites/WithHoverInteraction.suite.js +96 -79
  467. package/components/overlays/translations/bg-BG.js +0 -1
  468. package/components/overlays/translations/cs-CZ.js +0 -1
  469. package/components/overlays/translations/de-DE.js +0 -1
  470. package/components/overlays/translations/en-AU.js +0 -1
  471. package/components/overlays/translations/en-GB.js +0 -1
  472. package/components/overlays/translations/en-US.js +0 -1
  473. package/components/overlays/translations/es-ES.js +0 -1
  474. package/components/overlays/translations/fr-BE.js +0 -1
  475. package/components/overlays/translations/fr-FR.js +0 -1
  476. package/components/overlays/translations/hu-HU.js +0 -1
  477. package/components/overlays/translations/it-IT.js +0 -1
  478. package/components/overlays/translations/nl-BE.js +0 -1
  479. package/components/overlays/translations/nl-NL.js +0 -1
  480. package/components/overlays/translations/pl-PL.js +0 -1
  481. package/components/overlays/translations/ro-RO.js +0 -1
  482. package/components/overlays/translations/ru-RU.js +0 -1
  483. package/components/overlays/translations/sk-SK.js +0 -1
  484. package/components/overlays/translations/tr-TR.js +0 -1
  485. package/components/overlays/translations/uk-UA.js +0 -1
  486. package/components/pagination/src/LionPagination.js +9 -12
  487. package/components/pagination/test/lion-pagination.test.js +18 -50
  488. package/components/progress-indicator/src/LionProgressIndicator.js +10 -12
  489. package/components/progress-indicator/test/lion-progress-indicator.test.js +1 -22
  490. package/components/radio-group/src/LionRadioGroup.js +1 -2
  491. package/components/radio-group/test/lion-radio-group-integrations.test.js +0 -1
  492. package/components/radio-group/test/lion-radio-group.test.js +27 -27
  493. package/components/radio-group/test/lion-radio-integrations.test.js +3 -2
  494. package/components/radio-group/test/lion-radio.test.js +30 -16
  495. package/components/select/src/LionSelect.js +12 -13
  496. package/components/select/test/lion-select.test.js +7 -12
  497. package/components/select-rich/src/LionSelectInvoker.js +18 -11
  498. package/components/select-rich/src/LionSelectRich.js +22 -44
  499. package/components/select-rich/test/demos.screenshots-test.js +40 -9
  500. package/components/select-rich/test/lion-select-invoker.test.js +26 -43
  501. package/components/select-rich/test/lion-select-listbox-suite-integration.test.js +3 -3
  502. package/components/select-rich/test/lion-select-rich-dialog-integration.test.js +4 -9
  503. package/components/select-rich/test/lion-select-rich-interaction.test.js +116 -116
  504. package/components/select-rich/test/lion-select-rich-upgrade.test.js +3 -7
  505. package/components/select-rich/test/lion-select-rich.test.js +153 -195
  506. package/components/select-rich/test-helpers/getSelectRichMembers.js +4 -1
  507. package/components/steps/src/LionStep.js +21 -12
  508. package/components/steps/src/LionSteps.js +25 -25
  509. package/components/steps/test/lion-step.test.js +18 -25
  510. package/components/steps/test/lion-steps.test.js +45 -78
  511. package/components/switch/src/LionSwitch.js +2 -7
  512. package/components/switch/src/LionSwitchButton.js +5 -6
  513. package/components/switch/test/lion-switch-button.test.js +16 -28
  514. package/components/switch/test/lion-switch.test.js +17 -31
  515. package/components/tabs/src/LionTabs.js +25 -28
  516. package/components/tabs/test/lion-tabs.test.js +156 -154
  517. package/components/textarea/src/LionTextarea.js +4 -23
  518. package/components/textarea/test/lion-textarea-integrations.test.js +0 -5
  519. package/components/textarea/test/lion-textarea.test.js +2 -28
  520. package/components/tooltip/src/LionTooltip.js +6 -6
  521. package/components/tooltip/test/lion-tooltip.test.js +75 -102
  522. package/components/validate-messages/src/getLocalizedMessage.js +8 -7
  523. package/components/validate-messages/src/loadDefaultFeedbackMessages.js +3 -1
  524. package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -5
  525. package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +5 -2
  526. package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +99 -35
  527. package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +4 -3
  528. package/components/validate-messages/test/loadDefaultFeedbackMessages.test.js +5 -3
  529. package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.js +80 -45
  530. package/components/validate-messages/translations/bg-BG.js +0 -1
  531. package/components/validate-messages/translations/cs-CZ.js +0 -1
  532. package/components/validate-messages/translations/de-DE.js +0 -1
  533. package/components/validate-messages/translations/en-AU.js +0 -1
  534. package/components/validate-messages/translations/en-GB.js +0 -1
  535. package/components/validate-messages/translations/en-PH.js +0 -1
  536. package/components/validate-messages/translations/en-US.js +0 -1
  537. package/components/validate-messages/translations/es-ES.js +0 -1
  538. package/components/validate-messages/translations/fr-BE.js +0 -1
  539. package/components/validate-messages/translations/fr-FR.js +0 -1
  540. package/components/validate-messages/translations/hu-HU.js +0 -1
  541. package/components/validate-messages/translations/it-IT.js +0 -1
  542. package/components/validate-messages/translations/nl-BE.js +0 -1
  543. package/components/validate-messages/translations/nl-NL.js +0 -1
  544. package/components/validate-messages/translations/pl-PL.js +0 -1
  545. package/components/validate-messages/translations/ro-RO.js +0 -1
  546. package/components/validate-messages/translations/ru-RU.js +0 -1
  547. package/components/validate-messages/translations/sk-SK.js +0 -1
  548. package/components/validate-messages/translations/tr-TR.js +0 -1
  549. package/components/validate-messages/translations/uk-UA.js +0 -1
  550. package/custom-elements.json +229 -85
  551. package/dist-types/components/core/src/SlotMixin.d.ts +6 -1
  552. package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
  553. package/dist-types/components/core/types/SlotMixinTypes.d.ts +5 -1
  554. package/dist-types/components/core/types/SlotMixinTypes.d.ts.map +1 -1
  555. package/dist-types/components/form-core/src/LionField.d.ts +3 -1
  556. package/dist-types/components/form-core/src/LionField.d.ts.map +1 -1
  557. package/dist-types/components/input-tel/src/LionInputTel.d.ts +6 -6
  558. package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
  559. package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts +2 -2
  560. package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts.map +1 -1
  561. package/dist-types/components/input-tel/src/formatters.d.ts +2 -2
  562. package/dist-types/components/input-tel/src/formatters.d.ts.map +1 -1
  563. package/dist-types/components/input-tel/src/preprocessors.d.ts +2 -2
  564. package/dist-types/components/input-tel/src/preprocessors.d.ts.map +1 -1
  565. package/dist-types/components/input-tel/test/validators.test.d.ts +1 -1
  566. package/dist-types/components/input-tel/test/validators.test.d.ts.map +1 -1
  567. package/dist-types/components/input-tel/test-helpers/mockPhoneUtilManager.d.ts +5 -0
  568. package/dist-types/components/input-tel/test-helpers/mockPhoneUtilManager.d.ts.map +1 -1
  569. package/dist-types/components/listbox/src/LionListbox.d.ts +2 -2
  570. package/dist-types/components/listbox/src/LionListbox.d.ts.map +1 -1
  571. package/dist-types/components/listbox/src/LionOption.d.ts +5 -2
  572. package/dist-types/components/listbox/src/LionOption.d.ts.map +1 -1
  573. package/dist-types/components/overlays/src/OverlayController.d.ts +3 -1
  574. package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
  575. package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
  576. package/dist-types/components/overlays/src/OverlaysManager.d.ts.map +1 -1
  577. package/dist-types/components/overlays/src/overlayDocumentStyle.d.ts.map +1 -1
  578. package/dist-types/components/overlays/test/invoker-compatibility.test.d.ts +3 -0
  579. package/dist-types/components/overlays/test/invoker-compatibility.test.d.ts.map +1 -0
  580. package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts +3 -1
  581. package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts.map +1 -1
  582. package/dist-types/components/select-rich/src/LionSelectRich.d.ts +6 -5
  583. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  584. package/dist-types/tsconfig.tsbuildinfo +1 -1
  585. package/docs/components/accordion/overview.md +2 -2
  586. package/docs/components/accordion/reference.md +2 -2
  587. package/docs/components/accordion/use-cases.md +2 -2
  588. package/docs/components/button/examples.md +2 -2
  589. package/docs/components/button/extensions.md +2 -2
  590. package/docs/components/button/overview.md +2 -2
  591. package/docs/components/button/use-cases.md +2 -2
  592. package/docs/components/calendar/overview.md +2 -2
  593. package/docs/components/calendar/use-cases.md +2 -2
  594. package/docs/components/checkbox-group/overview.md +4 -4
  595. package/docs/components/checkbox-group/use-cases.md +2 -2
  596. package/docs/components/collapsible/examples.md +2 -2
  597. package/docs/components/collapsible/overview.md +3 -3
  598. package/docs/components/collapsible/use-cases.md +2 -2
  599. package/docs/components/combobox/api-table.md +1 -1
  600. package/docs/components/combobox/extensions.md +2 -2
  601. package/docs/components/combobox/overview.md +3 -3
  602. package/docs/components/combobox/use-cases.md +3 -3
  603. package/docs/components/dialog/overview.md +3 -3
  604. package/docs/components/dialog/use-cases.md +2 -2
  605. package/docs/components/drawer/overview.md +2 -2
  606. package/docs/components/drawer/use-cases.md +2 -2
  607. package/docs/components/fieldset/overview.md +7 -7
  608. package/docs/components/fieldset/use-cases.md +2 -2
  609. package/docs/components/form/overview.md +5 -5
  610. package/docs/components/form/use-cases.md +4 -4
  611. package/docs/components/icon/overview.md +2 -2
  612. package/docs/components/icon/use-cases.md +3 -3
  613. package/docs/components/input/overview.md +3 -3
  614. package/docs/components/input/use-cases.md +2 -2
  615. package/docs/components/input-amount/overview.md +5 -5
  616. package/docs/components/input-amount/use-cases.md +2 -2
  617. package/docs/components/input-amount-dropdown/use-cases.md +2 -2
  618. package/docs/components/input-date/overview.md +5 -5
  619. package/docs/components/input-date/use-cases.md +2 -2
  620. package/docs/components/input-datepicker/overview.md +7 -7
  621. package/docs/components/input-datepicker/use-cases.md +2 -2
  622. package/docs/components/input-email/overview.md +4 -4
  623. package/docs/components/input-email/use-cases.md +2 -2
  624. package/docs/components/input-file/overview.md +3 -3
  625. package/docs/components/input-file/use-cases.md +2 -2
  626. package/docs/components/input-iban/overview.md +4 -4
  627. package/docs/components/input-iban/use-cases.md +2 -2
  628. package/docs/components/input-range/overview.md +4 -4
  629. package/docs/components/input-range/use-cases.md +2 -2
  630. package/docs/components/input-stepper/overview.md +3 -3
  631. package/docs/components/input-stepper/use-cases.md +2 -2
  632. package/docs/components/input-tel/overview.md +3 -3
  633. package/docs/components/input-tel/use-cases.md +8 -8
  634. package/docs/components/input-tel-dropdown/extensions.md +2 -2
  635. package/docs/components/input-tel-dropdown/overview.md +3 -3
  636. package/docs/components/input-tel-dropdown/use-cases.md +2 -2
  637. package/docs/components/listbox/api-table.md +4 -4
  638. package/docs/components/listbox/overview.md +2 -2
  639. package/docs/components/listbox/use-cases.md +3 -3
  640. package/docs/components/menu/extensions.md +2 -2
  641. package/docs/components/menu/migration.md +2 -2
  642. package/docs/components/menu/overview.md +2 -2
  643. package/docs/components/menu/use-cases.md +1 -1
  644. package/docs/components/pagination/overview.md +2 -2
  645. package/docs/components/pagination/use-cases.md +2 -2
  646. package/docs/components/progress-indicator/examples.md +2 -2
  647. package/docs/components/progress-indicator/overview.md +2 -2
  648. package/docs/components/radio-group/overview.md +5 -5
  649. package/docs/components/radio-group/use-cases.md +2 -2
  650. package/docs/components/select/overview.md +2 -2
  651. package/docs/components/select/use-cases.md +3 -3
  652. package/docs/components/select-rich/api-table.md +1 -1
  653. package/docs/components/select-rich/examples.md +2 -2
  654. package/docs/components/select-rich/overview.md +2 -2
  655. package/docs/components/select-rich/use-cases.md +4 -4
  656. package/docs/components/steps/overview.md +2 -2
  657. package/docs/components/steps/use-cases.md +2 -2
  658. package/docs/components/switch/overview.md +2 -2
  659. package/docs/components/switch/reference.md +2 -2
  660. package/docs/components/switch/use-cases.md +2 -2
  661. package/docs/components/tabs/examples.md +3 -3
  662. package/docs/components/tabs/overview.md +2 -2
  663. package/docs/components/tabs/use-cases.md +2 -2
  664. package/docs/components/textarea/overview.md +2 -2
  665. package/docs/components/textarea/use-cases.md +2 -2
  666. package/docs/components/tooltip/examples.md +2 -2
  667. package/docs/components/tooltip/overview.md +2 -2
  668. package/docs/components/tooltip/use-cases.md +2 -2
  669. package/docs/fundamentals/index.md +4 -4
  670. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +2 -2
  671. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +2 -2
  672. package/docs/fundamentals/node-tools/providence-analytics/index.md +2 -2
  673. package/docs/fundamentals/node-tools/providence-analytics/overview.md +2 -2
  674. package/docs/fundamentals/node-tools/publish-docs/index.md +2 -2
  675. package/docs/fundamentals/node-tools/publish-docs/overview.md +5 -5
  676. package/docs/fundamentals/node-tools/remark-extend/index.md +2 -2
  677. package/docs/fundamentals/node-tools/remark-extend/overview.md +2 -2
  678. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +2 -2
  679. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +4 -4
  680. package/docs/fundamentals/rationales/TypeScript.md +62 -2
  681. package/docs/fundamentals/rationales/accessibility.md +5 -5
  682. package/docs/fundamentals/rationales/side-effects.md +2 -2
  683. package/docs/fundamentals/rationales/versioning.md +2 -2
  684. package/docs/fundamentals/systems/core/SlotMixin.md +3 -3
  685. package/docs/fundamentals/systems/core/index.md +2 -2
  686. package/docs/fundamentals/systems/core/overview.md +3 -3
  687. package/docs/fundamentals/systems/form/formatting-and-parsing.md +6 -6
  688. package/docs/fundamentals/systems/form/index.md +2 -2
  689. package/docs/fundamentals/systems/form/interaction-states.md +2 -2
  690. package/docs/fundamentals/systems/form/model-value.md +3 -3
  691. package/docs/fundamentals/systems/form/overview.md +30 -30
  692. package/docs/fundamentals/systems/form/styling.md +2 -2
  693. package/docs/fundamentals/systems/form/use-cases.md +2 -2
  694. package/docs/fundamentals/systems/form/validate.md +4 -4
  695. package/docs/fundamentals/systems/icon/index.md +2 -2
  696. package/docs/fundamentals/systems/icon/overview.md +2 -2
  697. package/docs/fundamentals/systems/localize/dates.md +2 -2
  698. package/docs/fundamentals/systems/localize/index.md +2 -2
  699. package/docs/fundamentals/systems/localize/numbers.md +2 -2
  700. package/docs/fundamentals/systems/localize/overview.md +6 -6
  701. package/docs/fundamentals/systems/localize/rationale.md +2 -2
  702. package/docs/fundamentals/systems/localize/text.md +2 -2
  703. package/docs/fundamentals/systems/localize/use-cases.md +2 -2
  704. package/docs/fundamentals/systems/overlays/_edge-cases.md +2 -2
  705. package/docs/fundamentals/systems/overlays/api-table.md +1 -1
  706. package/docs/fundamentals/systems/overlays/configuration.md +4 -4
  707. package/docs/fundamentals/systems/overlays/index.md +2 -2
  708. package/docs/fundamentals/systems/overlays/overview.md +7 -7
  709. package/docs/fundamentals/systems/overlays/rationale.md +2 -2
  710. package/docs/fundamentals/systems/overlays/use-cases.md +4 -4
  711. package/docs/fundamentals/tools/ajax/index.md +2 -2
  712. package/docs/fundamentals/tools/ajax/overview.md +2 -2
  713. package/docs/fundamentals/tools/ajax/use-cases.md +2 -2
  714. package/docs/fundamentals/tools/helpers/action-logger.md +2 -2
  715. package/docs/fundamentals/tools/helpers/index.md +2 -2
  716. package/docs/fundamentals/tools/helpers/overview.md +3 -3
  717. package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +2 -2
  718. package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +2 -2
  719. package/docs/fundamentals/tools/singleton-manager/example-success/index.md +2 -2
  720. package/docs/fundamentals/tools/singleton-manager/index.md +2 -2
  721. package/docs/fundamentals/tools/singleton-manager/overview.md +6 -6
  722. package/docs/guides/how-to/create-a-custom-field.md +7 -7
  723. package/docs/guides/how-to/create-a-form.md +6 -6
  724. package/docs/guides/how-to/extend-a-native-input.md +4 -4
  725. package/docs/guides/how-to/get-started.md +2 -2
  726. package/docs/guides/how-to/index.md +1 -1
  727. package/docs/guides/index.md +8 -8
  728. package/docs/guides/principles/definitions-and-terms.md +2 -2
  729. package/docs/guides/principles/index.md +5 -5
  730. package/docs/guides/principles/scoped-elements.md +2 -2
  731. package/docs/guides/principles/styling.md +3 -3
  732. package/docs/guides/principles/subclasser-apis.md +2 -2
  733. package/exports/define/lion-accordion.js +0 -1
  734. package/exports/define/lion-button-reset.js +0 -1
  735. package/exports/define/lion-button-submit.js +0 -1
  736. package/exports/define/lion-button.js +0 -1
  737. package/exports/define/lion-calendar.js +0 -1
  738. package/exports/define/lion-checkbox-group.js +0 -1
  739. package/exports/define/lion-checkbox-indeterminate.js +0 -1
  740. package/exports/define/lion-checkbox.js +0 -1
  741. package/exports/define/lion-collapsible.js +0 -1
  742. package/exports/define/lion-combobox.js +0 -1
  743. package/exports/define/lion-dialog.js +0 -1
  744. package/exports/define/lion-drawer.js +0 -1
  745. package/exports/define/lion-field.js +0 -1
  746. package/exports/define/lion-fieldset.js +0 -1
  747. package/exports/define/lion-form.js +0 -1
  748. package/exports/define/lion-icon.js +0 -1
  749. package/exports/define/lion-input-amount-dropdown.js +0 -1
  750. package/exports/define/lion-input-amount.js +0 -1
  751. package/exports/define/lion-input-date.js +0 -1
  752. package/exports/define/lion-input-datepicker.js +0 -1
  753. package/exports/define/lion-input-email.js +0 -1
  754. package/exports/define/lion-input-file.js +0 -1
  755. package/exports/define/lion-input-iban.js +0 -1
  756. package/exports/define/lion-input-range.js +0 -1
  757. package/exports/define/lion-input-stepper.js +0 -1
  758. package/exports/define/lion-input-tel-dropdown.js +0 -1
  759. package/exports/define/lion-input-tel.js +0 -1
  760. package/exports/define/lion-input.js +0 -1
  761. package/exports/define/lion-item.js +0 -1
  762. package/exports/define/lion-listbox.js +0 -1
  763. package/exports/define/lion-menu.js +0 -1
  764. package/exports/define/lion-menuitem.js +0 -1
  765. package/exports/define/lion-option.js +0 -1
  766. package/exports/define/lion-options.js +0 -1
  767. package/exports/define/lion-pagination.js +0 -1
  768. package/exports/define/lion-progress-indicator.js +0 -1
  769. package/exports/define/lion-radio-group.js +0 -1
  770. package/exports/define/lion-radio.js +0 -1
  771. package/exports/define/lion-select-invoker.js +0 -1
  772. package/exports/define/lion-select-rich.js +0 -1
  773. package/exports/define/lion-select.js +0 -1
  774. package/exports/define/lion-selected-file-list.js +0 -1
  775. package/exports/define/lion-step.js +0 -1
  776. package/exports/define/lion-steps.js +0 -1
  777. package/exports/define/lion-switch-button.js +0 -1
  778. package/exports/define/lion-switch.js +0 -1
  779. package/exports/define/lion-tabs.js +0 -1
  780. package/exports/define/lion-textarea.js +0 -1
  781. package/exports/define/lion-tooltip.js +0 -1
  782. package/exports/define/lion-validation-feedback.js +0 -1
  783. package/exports/define-helpers/sb-action-logger.js +0 -1
  784. package/exports/define-helpers/sb-locale-switcher.js +0 -1
  785. package/exports/form-core.js +0 -8
  786. package/exports/localize-no-side-effects.js +0 -1
  787. package/exports/localize.js +0 -2
  788. package/exports/overlays.js +0 -4
  789. package/generated/awesome-phonenumber/LICENSE +22 -0
  790. package/generated/awesome-phonenumber/LICENSE.closure-library +176 -0
  791. package/generated/awesome-phonenumber/LICENSE.libphonenumber +176 -0
  792. package/generated/awesome-phonenumber/checksums.json +6 -0
  793. package/generated/awesome-phonenumber/index-esm.mjs +817 -0
  794. package/generated/awesome-phonenumber/index.d.ts +227 -0
  795. package/generated/awesome-phonenumber/index.js +45 -0
  796. package/generated/awesome-phonenumber/lib/index.js +710 -0
  797. package/generated/awesome-phonenumber/package.json +9 -0
  798. package/generated/awesome-phonenumber/provenance.json +13 -0
  799. package/package.json +38 -15
  800. package/vscode.html-custom-data.json +5 -5
  801. package/web-types.json +1 -1
  802. package/vendor/README.md +0 -61
  803. package/vendor/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz +0 -0
@@ -4,7 +4,6 @@ import { sendMouse, resetMouse } from '@web/test-runner-commands';
4
4
  import sinon from 'sinon';
5
5
  import { getDeepActiveElement } from '@lion/ui/overlays.js';
6
6
  import { InteractiveListMixin } from '../src/InteractiveListMixin.js';
7
-
8
7
  class InteractiveListClass extends InteractiveListMixin(LitElement) {}
9
8
 
10
9
  /**
@@ -19,8 +18,7 @@ class InteractiveListClass extends InteractiveListMixin(LitElement) {}
19
18
  * @property {string} tagString
20
19
  */
21
20
 
22
- const fixture = /** @type {(arg: TemplateResult) => Promise<LionMenu>} */ (_fixture);
23
-
21
+ const fixture = /** @type {(arg: TemplateResult) => Promise<LionMenu>} */ _fixture;
24
22
  const l1Config = {
25
23
  isBar: true,
26
24
  hasFullWidthFlyout: true,
@@ -41,80 +39,79 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
41
39
  const cfg = {
42
40
  tagString: customConfig?.tagString || defineCE(InteractiveListClass),
43
41
  };
44
-
45
42
  const { tagString } = cfg;
46
43
  const tag = unsafeStatic(tagString);
47
-
48
44
  describe('MoreButtonMenuMixin', () => {
49
45
  describe('Overflow handling', () => {
50
46
  /** @type {import('sinon').SinonFakeTimers | null} */
51
47
  let clock = null;
52
48
 
53
49
  /** @param {HTMLElement} el */
54
- const isMoreButtonShown = el => {
55
- const wrapper = /** @type {HTMLElement | null} */ (
56
- el.querySelector('[data-more-button-wrapper]')
57
- );
50
+ const isMoreButtonShown = (el) => {
51
+ const wrapper =
52
+ /** @type {HTMLElement | null} */
53
+ el.querySelector('[data-more-button-wrapper]');
58
54
  return wrapper?.style.display !== 'none';
59
55
  };
60
56
 
61
57
  /** @param {HTMLElement} el */
62
- const isMoreButtonMenuShown = el => {
58
+ const isMoreButtonMenuShown = (el) => {
63
59
  const menu = el.querySelector('[data-more-button-menu]');
64
60
  return menu ? getComputedStyle(menu).width !== '0px' : false;
65
61
  };
66
62
 
67
63
  /** @param {HTMLElement} el */
68
- const getMoreButton = el =>
69
- /** @type {HTMLElement | null} */ (el.querySelector('[data-more-button]'));
64
+ const getMoreButton = (el) =>
65
+ /** @type {HTMLElement | null} */ el.querySelector('[data-more-button]');
70
66
  /** @param {HTMLElement} el */
71
- const getMoreButtonMenu = el => el.querySelector('[data-more-button-menu]');
67
+ const getMoreButtonMenu = (el) => el.querySelector('[data-more-button-menu]');
72
68
 
73
69
  /**
74
70
  * @param {HTMLElement} element
75
71
  */
76
72
  function getCoordinates(element) {
77
73
  const { x, y, height } = element.getBoundingClientRect();
78
-
79
74
  return {
80
75
  x: Math.floor(x + window.pageXOffset),
81
76
  y: Math.floor(y + window.pageYOffset + height / 2),
82
77
  };
83
78
  }
84
79
  /** @param {HTMLElement} el */
85
- const clickOnMoreButton = async el => {
80
+ const clickOnMoreButton = async (el) => {
86
81
  const moreButton = getMoreButton(el);
87
82
  if (!moreButton) {
88
83
  return;
89
84
  }
90
85
  const { x, y } = getCoordinates(moreButton);
91
- await sendMouse({ type: 'click', position: [x, y] });
86
+ await sendMouse({
87
+ type: 'click',
88
+ position: [x, y],
89
+ });
92
90
  clock?.tick(100);
93
91
  };
94
92
 
95
93
  /** @param {HTMLElement} el */
96
- const getDirectListItemsUnderMoreButtonMenu = el => [
94
+ const getDirectListItemsUnderMoreButtonMenu = (el) => [
97
95
  ...Array.from(
98
96
  el.querySelectorAll('[data-more-button-menu] > [role="listitem"]'),
99
- item => /** @type {HTMLElement} */ (item),
97
+ (item) => /** @type {HTMLElement} */ item,
100
98
  ),
101
99
  ];
102
100
 
103
101
  /** @param {HTMLElement} el */
104
- const getDirectListItemsUnderMainMenu = el => [
102
+ const getDirectListItemsUnderMainMenu = (el) => [
105
103
  ...Array.from(
106
104
  el.querySelectorAll('[slot="list"] > [role="listitem"]'),
107
- item => /** @type {HTMLElement} */ (item),
105
+ (item) => /** @type {HTMLElement} */ item,
108
106
  ),
109
107
  ];
110
108
 
111
109
  /** @param {HTMLElement & { updateComplete: Promise<unknown> }} el */
112
- const waitResizeEventDebounce = async el => {
110
+ const waitResizeEventDebounce = async (el) => {
113
111
  await el.updateComplete;
114
112
  // wait for resize event debouncer
115
113
  clock?.tick(55);
116
114
  };
117
-
118
115
  beforeEach(() => {
119
116
  clock = sinon.useFakeTimers({
120
117
  shouldAdvanceTime: true,
@@ -124,7 +121,6 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
124
121
  clock?.restore();
125
122
  await resetMouse();
126
123
  });
127
-
128
124
  it('should show no More button when all items fit', async () => {
129
125
  const el = await fixture(html`
130
126
  <${tag} name="foo" ._activeMode="${'tabbable-disclosure'}" .itemWrap="${true}"
@@ -147,7 +143,6 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
147
143
  // 3 items is 150px. They fit into 170px parent
148
144
  expect(isMoreButtonShown(el)).to.equal(false);
149
145
  });
150
-
151
146
  it('should show More button when not all items fit', async () => {
152
147
  const el = await fixture(html`
153
148
  <${tag}
@@ -180,12 +175,10 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
180
175
  }
181
176
  </style>
182
177
  `);
183
-
184
178
  await waitResizeEventDebounce(el);
185
179
  // 4 items is 200px. They don't fit into 170px parent. So More button should be shown
186
180
  expect(isMoreButtonShown(el)).to.equal(true);
187
181
  });
188
-
189
182
  it('should show 2 items when clicking on `More` button', async () => {
190
183
  const el = await fixture(html`
191
184
  <${tag}
@@ -213,17 +206,14 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
213
206
  </div>
214
207
  </${tag}>
215
208
  `);
216
-
217
209
  await waitResizeEventDebounce(el);
218
210
  await clickOnMoreButton(el);
219
-
220
211
  expect(isMoreButtonMenuShown(el)).to.equal(true);
221
212
  const labels = getDirectListItemsUnderMoreButtonMenu(el).map(
222
- item => item.textContent?.trim() ?? '',
213
+ (item) => item.textContent?.trim() ?? '',
223
214
  );
224
215
  expect(labels).to.deep.equal(['Item 3', 'Item 4']);
225
216
  });
226
-
227
217
  it('should focus more button menu container when clicking on `More` button', async () => {
228
218
  const el = await fixture(html`
229
219
  <${tag}
@@ -251,14 +241,11 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
251
241
  </div>
252
242
  </${tag}>
253
243
  `);
254
-
255
244
  await waitResizeEventDebounce(el);
256
245
  await clickOnMoreButton(el);
257
-
258
246
  expect(isMoreButtonMenuShown(el)).to.equal(true);
259
247
  expect(getDeepActiveElement() === getMoreButtonMenu(el)).to.equal(true);
260
248
  });
261
-
262
249
  it('should open and then close More button menu when clicking 2 times on the More button', async () => {
263
250
  const el = await fixture(html`
264
251
  <${tag}
@@ -286,7 +273,6 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
286
273
  </div>
287
274
  </${tag}>
288
275
  `);
289
-
290
276
  await waitResizeEventDebounce(el);
291
277
  expect(isMoreButtonMenuShown(el)).to.equal(false);
292
278
  await clickOnMoreButton(el);
@@ -294,7 +280,6 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
294
280
  await clickOnMoreButton(el);
295
281
  expect(isMoreButtonMenuShown(el)).to.equal(false);
296
282
  });
297
-
298
283
  it('should remove `More` button when making font smaller', async () => {
299
284
  const el = await fixture(html`
300
285
  <${tag} name="foo" ._activeMode="${'tabbable-disclosure'}" .itemWrap="${true}"
@@ -319,15 +304,19 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
319
304
  * Make font smaller for first level items to force
320
305
  * the menu render all 4 items and no `More` button
321
306
  */
322
- getDirectListItemsUnderMainMenu(el).forEach(item => {
307
+ getDirectListItemsUnderMainMenu(el).forEach((item) => {
323
308
  // eslint-disable-next-line no-param-reassign
324
309
  item.style.fontSize = '12px';
325
310
  });
326
- el?.dispatchEvent(new CustomEvent('resize', { composed: true, bubbles: true }));
311
+ el?.dispatchEvent(
312
+ new CustomEvent('resize', {
313
+ composed: true,
314
+ bubbles: true,
315
+ }),
316
+ );
327
317
  await waitResizeEventDebounce(el);
328
318
  expect(isMoreButtonShown(el)).to.equal(false);
329
319
  });
330
-
331
320
  it('should add `More` button when making font larger', async () => {
332
321
  const el = await fixture(html`
333
322
  <${tag}
@@ -353,17 +342,21 @@ export function runMoreButtonMenuMixinSuite(customConfig) {
353
342
  </${tag}>
354
343
  `);
355
344
  await waitResizeEventDebounce(el);
356
-
357
345
  expect(getDirectListItemsUnderMainMenu(el).length).to.equal(3);
358
346
  /**
359
347
  * Make font larger for first level items to force
360
348
  * the More button to appear
361
349
  */
362
- getDirectListItemsUnderMainMenu(el).forEach(item => {
350
+ getDirectListItemsUnderMainMenu(el).forEach((item) => {
363
351
  // eslint-disable-next-line no-param-reassign
364
352
  item.style.fontSize = '40px';
365
353
  });
366
- el?.dispatchEvent(new CustomEvent('resize', { composed: true, bubbles: true }));
354
+ el?.dispatchEvent(
355
+ new CustomEvent('resize', {
356
+ composed: true,
357
+ bubbles: true,
358
+ }),
359
+ );
367
360
  await waitResizeEventDebounce(el);
368
361
  expect(isMoreButtonShown(el)).to.equal(true);
369
362
  });
@@ -4,7 +4,6 @@ import sinon from 'sinon';
4
4
  import { MultiLevelListMixin } from '../src/MultiLevelListMixin.js';
5
5
  import { InteractiveListMixin } from '../src/InteractiveListMixin.js';
6
6
  import { mimicKeyPress } from '../test-helpers/mimicKeyPress.js';
7
-
8
7
  class MultiLevelListClass extends MultiLevelListMixin(LitElement) {}
9
8
  class InteractiveListClass extends InteractiveListMixin(LitElement) {}
10
9
 
@@ -17,7 +16,7 @@ class InteractiveListClass extends InteractiveListMixin(LitElement) {}
17
16
  * @property {string} tagChildString
18
17
  */
19
18
 
20
- const fixture = /** @type {(arg: TemplateResult) => Promise<LionMenu>} */ (_fixture);
19
+ const fixture = /** @type {(arg: TemplateResult) => Promise<LionMenu>} */ _fixture;
21
20
 
22
21
  /**
23
22
  * @param {TestConfig} [customConfig]
@@ -27,11 +26,9 @@ export function runMultiLevelListMixinSuite(customConfig) {
27
26
  tagString: customConfig?.tagString || defineCE(MultiLevelListClass),
28
27
  tagChildString: customConfig?.tagChildString || defineCE(InteractiveListClass),
29
28
  };
30
-
31
29
  const { tagString, tagChildString } = cfg;
32
30
  const tag = unsafeStatic(tagString);
33
31
  const tagChild = unsafeStatic(tagChildString);
34
-
35
32
  describe('MultiLevelListMixin', () => {
36
33
  it('has sublists', async () => {
37
34
  const el = await fixture(html`
@@ -52,11 +49,10 @@ export function runMultiLevelListMixinSuite(customConfig) {
52
49
  </div>
53
50
  </${tag}>
54
51
  `);
55
- const subList = /** @type {MultiLevelListClass} */ (el.querySelector(tagChildString));
52
+ const subList = /** @type {MultiLevelListClass} */ el.querySelector(tagChildString);
56
53
  expect(subList).to.exist;
57
54
  expect(subList.level).to.equal(2);
58
55
  });
59
-
60
56
  it('inherits checked state from children when checked via href match', async () => {
61
57
  const el = await fixture(html`
62
58
  <${tag}>
@@ -81,7 +77,6 @@ export function runMultiLevelListMixinSuite(customConfig) {
81
77
  expect(item0.getAttribute('aria-current')).to.equal('true');
82
78
  }
83
79
  });
84
-
85
80
  describe('Interactions', () => {
86
81
  describe('Keyboard navigation', () => {
87
82
  it('navigates between L1 items on [ArrowDown] [ArrowUp] keys', async () => {
@@ -112,7 +107,6 @@ export function runMultiLevelListMixinSuite(customConfig) {
112
107
 
113
108
  // Normalize
114
109
  el.activeIndex = 0;
115
-
116
110
  mimicKeyPress(_listNode, 'ArrowDown');
117
111
  expect(el.activeIndex).to.be.equal(1);
118
112
  mimicKeyPress(_listNode, 'ArrowDown');
@@ -120,7 +114,6 @@ export function runMultiLevelListMixinSuite(customConfig) {
120
114
  mimicKeyPress(_listNode, 'ArrowUp');
121
115
  expect(el.activeIndex).to.be.equal(1);
122
116
  });
123
-
124
117
  it('stops navigation by default at end of option list', async () => {
125
118
  const el = await fixture(html`
126
119
  <${tag}>
@@ -149,15 +142,12 @@ export function runMultiLevelListMixinSuite(customConfig) {
149
142
 
150
143
  // Normalize
151
144
  el.activeIndex = 0;
152
-
153
145
  mimicKeyPress(_listNode, 'ArrowUp');
154
146
  expect(el.activeIndex).to.be.equal(0);
155
-
156
147
  el.activeIndex = 2;
157
148
  mimicKeyPress(_listNode, 'ArrowDown');
158
149
  expect(el.activeIndex).to.be.equal(2);
159
150
  });
160
-
161
151
  it('opens subList on [Enter] key press', async () => {
162
152
  const el = await fixture(html`
163
153
  <${tag}>
@@ -184,11 +174,9 @@ export function runMultiLevelListMixinSuite(customConfig) {
184
174
  // Normalize
185
175
  el.activeIndex = 0;
186
176
  const clickSpy = sinon.spy(el.activeItem, 'click');
187
-
188
177
  mimicKeyPress(_listNode, 'Enter');
189
178
  expect(clickSpy).to.have.been.calledOnce;
190
179
  });
191
-
192
180
  it('navigates between L2 items on [ArrowDown] [ArrowUp] keys', async () => {
193
181
  const el = await fixture(html`
194
182
  <${tag} axis="inline">
@@ -211,14 +199,12 @@ export function runMultiLevelListMixinSuite(customConfig) {
211
199
  </div>
212
200
  </${tag}>
213
201
  `);
214
-
215
- const subList = /** @type {MultiLevelListClass} */ (el.querySelector(tagChildString));
202
+ const subList = /** @type {MultiLevelListClass} */ el.querySelector(tagChildString);
216
203
  // @ts-expect-error [allow-protected-in-tests]
217
204
  const { _listNode } = subList;
218
205
 
219
206
  // Normalize
220
207
  subList.activeIndex = 0;
221
-
222
208
  mimicKeyPress(_listNode, 'ArrowDown');
223
209
  expect(subList.activeIndex).to.be.equal(1);
224
210
  mimicKeyPress(_listNode, 'ArrowDown');
@@ -226,7 +212,6 @@ export function runMultiLevelListMixinSuite(customConfig) {
226
212
  mimicKeyPress(_listNode, 'ArrowUp');
227
213
  expect(subList.activeIndex).to.be.equal(1);
228
214
  });
229
-
230
215
  it('close method gets called on [ArrowUp] key when in L2 and horizontal', async () => {
231
216
  const el = await fixture(html`
232
217
  <${tag}>
@@ -249,7 +234,7 @@ export function runMultiLevelListMixinSuite(customConfig) {
249
234
  </div>
250
235
  </${tag}>
251
236
  `);
252
- const subList = /** @type {MultiLevelListClass} */ (el.querySelector(tagChildString));
237
+ const subList = /** @type {MultiLevelListClass} */ el.querySelector(tagChildString);
253
238
  // @ts-ignore
254
239
  if (subList?.close) {
255
240
  // @ts-ignore
@@ -260,12 +245,10 @@ export function runMultiLevelListMixinSuite(customConfig) {
260
245
  // Normalize
261
246
  subList.activeIndex = 0;
262
247
  subList.axis = 'inline';
263
-
264
248
  mimicKeyPress(_listNode, 'ArrowUp');
265
249
  expect(closeSpy).to.have.been.calledOnce;
266
250
  }
267
251
  });
268
-
269
252
  it('close method gets called on [ArrowLeft] key when in L2 and vertical', async () => {
270
253
  const el = await fixture(html`
271
254
  <${tag}>
@@ -288,7 +271,7 @@ export function runMultiLevelListMixinSuite(customConfig) {
288
271
  </div>
289
272
  </${tag}>
290
273
  `);
291
- const subList = /** @type {MultiLevelListClass} */ (el.querySelector(tagChildString));
274
+ const subList = /** @type {MultiLevelListClass} */ el.querySelector(tagChildString);
292
275
  // @ts-ignore
293
276
  if (subList?.close) {
294
277
  // @ts-ignore
@@ -298,7 +281,6 @@ export function runMultiLevelListMixinSuite(customConfig) {
298
281
 
299
282
  // Normalize
300
283
  subList.activeIndex = 0;
301
-
302
284
  mimicKeyPress(_listNode, 'ArrowLeft');
303
285
  expect(closeSpy).to.have.been.calledOnce;
304
286
  }
@@ -15,23 +15,20 @@ import { OverlayMixin } from './OverlayMixin.js';
15
15
  * @param {import('@open-wc/dedupe-mixin').Constructor<import('lit').LitElement>} superclass
16
16
  */
17
17
  // prettier-ignore
18
- export const ArrowMixinImplementation = /** @type {ArrowMixin} */ (superclass =>
19
- class ArrowMixin extends OverlayMixin(superclass) {
20
- static get properties() {
21
- return {
22
- hasArrow: {
23
- type: Boolean,
24
- reflect: true,
25
- attribute: 'has-arrow',
26
- },
27
- };
28
- }
29
-
30
- static get styles() {
31
- return [
32
- // @ts-ignore [ts7-2855] TS7 rejects field access via super (the parent declares this as a field). Dot form kept deliberately: bracket access is exempt from property mangling (terser keep_quoted), which could split this property into two names. Upstream fix: declare an accessor in the parent type
33
- .../** @type {CSSResultArray} */ (super.styles || []),
34
- css`
18
+ export const ArrowMixinImplementation = /** @type {ArrowMixin} */superclass => class ArrowMixin extends OverlayMixin(superclass) {
19
+ static get properties() {
20
+ return {
21
+ hasArrow: {
22
+ type: Boolean,
23
+ reflect: true,
24
+ attribute: 'has-arrow'
25
+ }
26
+ };
27
+ }
28
+ static get styles() {
29
+ return [
30
+ // @ts-ignore [ts7-2855] TS7 rejects field access via super (the parent declares this as a field). Dot form kept deliberately: bracket access is exempt from property mangling (terser keep_quoted), which could split this property into two names. Upstream fix: declare an accessor in the parent type
31
+ ...(/** @type {CSSResultArray} */super.styles || []), css`
35
32
  :host {
36
33
  --tooltip-arrow-width: 12px;
37
34
  --tooltip-arrow-height: 8px;
@@ -94,132 +91,119 @@ export const ArrowMixinImplementation = /** @type {ArrowMixin} */ (superclass =>
94
91
  :host(:not([has-arrow])) .arrow {
95
92
  display: none;
96
93
  }
97
- `,
98
- ];
99
- }
100
-
101
- constructor() {
102
- super();
103
- this.hasArrow = true;
104
- /** @private */
105
- this.__setupRepositionCompletePromise();
106
- }
107
-
108
- render() {
109
- return html`
94
+ `];
95
+ }
96
+ constructor() {
97
+ super();
98
+ this.hasArrow = true;
99
+ /** @private */
100
+ this.__setupRepositionCompletePromise();
101
+ }
102
+ render() {
103
+ return html`
110
104
  <slot name="invoker"></slot>
111
105
  <div id="overlay-content-node-wrapper">
112
106
  <slot name="content"></slot>
113
107
  ${this._arrowNodeTemplate()}
114
108
  </div>
115
109
  `;
116
- }
110
+ }
117
111
 
118
- /** @protected */
119
- _arrowNodeTemplate() {
120
- return html`
112
+ /** @protected */
113
+ _arrowNodeTemplate() {
114
+ return html`
121
115
  <div class="arrow" aria-hidden="true" data-popper-arrow>${this._arrowTemplate()}</div>
122
116
  `;
123
- }
117
+ }
124
118
 
125
- /** @protected */
126
- // eslint-disable-next-line class-methods-use-this
127
- _arrowTemplate() {
128
- return html`
119
+ /** @protected */
120
+ // eslint-disable-next-line class-methods-use-this
121
+ _arrowTemplate() {
122
+ return html`
129
123
  <svg viewBox="0 0 12 8" class="arrow__graphic">
130
124
  <path d="M 0,0 h 12 L 6,8 z"></path>
131
125
  </svg>
132
126
  `;
127
+ }
128
+
129
+ /**
130
+ * Overrides arrow and keepTogether modifier to be enabled,
131
+ * and adds onCreate and onUpdate hooks to sync from popper state
132
+ * @configure OverlayMixin
133
+ * @returns {OverlayConfig}
134
+ * @protected
135
+ */
136
+ // eslint-disable-next-line
137
+ _defineOverlayConfig() {
138
+ const superConfig = super._defineOverlayConfig() || {};
139
+ if (!this.hasArrow) {
140
+ return superConfig;
133
141
  }
134
-
135
- /**
136
- * Overrides arrow and keepTogether modifier to be enabled,
137
- * and adds onCreate and onUpdate hooks to sync from popper state
138
- * @configure OverlayMixin
139
- * @returns {OverlayConfig}
140
- * @protected
141
- */
142
- // eslint-disable-next-line
143
- _defineOverlayConfig() {
144
- const superConfig = super._defineOverlayConfig() || {};
145
- if (!this.hasArrow) {
146
- return superConfig;
142
+ return {
143
+ ...superConfig,
144
+ popperConfig: {
145
+ ...this._getPopperArrowConfig(/** @type {Partial<PopperOptions>} */superConfig.popperConfig)
147
146
  }
148
- return {
149
- ...superConfig,
150
- popperConfig: {
151
- ...this._getPopperArrowConfig(
152
- /** @type {Partial<PopperOptions>} */ (superConfig.popperConfig),
153
- ),
154
- },
155
- };
156
- }
157
-
158
- /**
159
- * @param {Partial<PopperOptions>} popperConfigToExtendFrom
160
- * @returns {Partial<PopperOptions>}
161
- * @protected
162
- */
163
- _getPopperArrowConfig(popperConfigToExtendFrom) {
164
- /** @type {Partial<PopperOptions> & { afterWrite: (arg0: Partial<import('@popperjs/core/lib/popper.js').State>) => void }} */
165
- const popperCfg = {
166
- ...(popperConfigToExtendFrom || {}),
167
- placement: /** @type {Placement} */ ('top'),
168
- modifiers: [
169
- {
170
- name: 'arrow',
171
- enabled: true,
172
- options: {
173
- padding: 8, // 8px from the edges of the popper
174
- },
175
- },
176
- {
177
- name: 'offset',
178
- enabled: true,
179
- options: { offset: [0, 8] },
180
- },
181
- ...((popperConfigToExtendFrom && popperConfigToExtendFrom.modifiers) || []),
182
- ],
183
- /** @param {Partial<import('@popperjs/core/lib/popper.js').State>} data */
184
- onFirstUpdate: data => {
185
- this.__syncFromPopperState(data);
186
- },
187
- /** @param {Partial<import('@popperjs/core/lib/popper.js').State>} data */
188
- afterWrite: data => {
189
- this.__syncFromPopperState(data);
190
- },
191
- };
192
-
193
- return popperCfg;
194
- }
195
-
196
- /** @private */
197
- __setupRepositionCompletePromise() {
198
- this.repositionComplete = new Promise(resolve => {
199
- this.__repositionCompleteResolver = resolve;
200
- });
201
- }
202
-
203
- get _arrowNode() {
204
- return /** @type {ShadowRoot} */ (this.shadowRoot).querySelector('[data-popper-arrow]');
205
- }
206
-
207
- /**
208
- * @param {Partial<import('@popperjs/core/lib/popper.js').State>} data
209
- * @private
210
- */
211
- __syncFromPopperState(data) {
212
- if (!data) {
213
- return;
214
- }
215
- if (
216
- this._arrowNode &&
217
- data.placement !== /** @type {Element & {placement:string}} */ (this._arrowNode).placement
218
- ) {
219
- /** @type {function} */ (this.__repositionCompleteResolver)(data.placement);
220
- this.__setupRepositionCompletePromise();
147
+ };
148
+ }
149
+
150
+ /**
151
+ * @param {Partial<PopperOptions>} popperConfigToExtendFrom
152
+ * @returns {Partial<PopperOptions>}
153
+ * @protected
154
+ */
155
+ _getPopperArrowConfig(popperConfigToExtendFrom) {
156
+ /** @type {Partial<PopperOptions> & { afterWrite: (arg0: Partial<import('@popperjs/core/lib/popper.js').State>) => void }} */
157
+ const popperCfg = {
158
+ ...(popperConfigToExtendFrom || {}),
159
+ placement: (/** @type {Placement} */'top'),
160
+ modifiers: [{
161
+ name: 'arrow',
162
+ enabled: true,
163
+ options: {
164
+ padding: 8 // 8px from the edges of the popper
165
+ }
166
+ }, {
167
+ name: 'offset',
168
+ enabled: true,
169
+ options: {
170
+ offset: [0, 8]
171
+ }
172
+ }, ...(popperConfigToExtendFrom && popperConfigToExtendFrom.modifiers || [])],
173
+ /** @param {Partial<import('@popperjs/core/lib/popper.js').State>} data */
174
+ onFirstUpdate: data => {
175
+ this.__syncFromPopperState(data);
176
+ },
177
+ /** @param {Partial<import('@popperjs/core/lib/popper.js').State>} data */
178
+ afterWrite: data => {
179
+ this.__syncFromPopperState(data);
221
180
  }
181
+ };
182
+ return popperCfg;
183
+ }
184
+
185
+ /** @private */
186
+ __setupRepositionCompletePromise() {
187
+ this.repositionComplete = new Promise(resolve => {
188
+ this.__repositionCompleteResolver = resolve;
189
+ });
190
+ }
191
+ get _arrowNode() {
192
+ return /** @type {ShadowRoot} */this.shadowRoot.querySelector('[data-popper-arrow]');
193
+ }
194
+
195
+ /**
196
+ * @param {Partial<import('@popperjs/core/lib/popper.js').State>} data
197
+ * @private
198
+ */
199
+ __syncFromPopperState(data) {
200
+ if (!data) {
201
+ return;
222
202
  }
223
- });
224
-
203
+ if (this._arrowNode && data.placement !== /** @type {Element & {placement:string}} */this._arrowNode.placement) {
204
+ /** @type {function} */this.__repositionCompleteResolver(data.placement);
205
+ this.__setupRepositionCompletePromise();
206
+ }
207
+ }
208
+ };
225
209
  export const ArrowMixin = dedupeMixin(ArrowMixinImplementation);