@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
@@ -27,9 +27,8 @@ import sinon from 'sinon';
27
27
  function getGlobalOverlayCtrls() {
28
28
  return overlaysManager.list;
29
29
  }
30
-
31
30
  function resetOverlaysManager() {
32
- overlaysManager.list.forEach(overlayCtrl => overlaysManager.remove(overlayCtrl));
31
+ overlaysManager.list.forEach((overlayCtrl) => overlaysManager.remove(overlayCtrl));
33
32
  }
34
33
 
35
34
  /**
@@ -49,7 +48,9 @@ async function mimicEscapePress(element) {
49
48
  }
50
49
 
51
50
  // Send the event
52
- await sendKeys({ press: 'Escape' });
51
+ await sendKeys({
52
+ press: 'Escape',
53
+ });
53
54
  // Wait for at least a microtask, so that possible property effects are performed
54
55
  await aTimeout(0);
55
56
  }
@@ -60,53 +61,49 @@ async function mimicEscapePress(element) {
60
61
  export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
61
62
  describe(`OverlayMixin${suffix}`, () => {
62
63
  it('should not be opened by default', async () => {
63
- const el = /** @type {OverlayEl} */ (
64
+ const el =
65
+ /** @type {OverlayEl} */
64
66
  await fixture(html`
65
67
  <${tag}>
66
68
  <div slot="content">content of the overlay</div>
67
69
  <button slot="invoker">invoker button</button>
68
70
  </${tag}>
69
- `)
70
- );
71
+ `);
71
72
  expect(el.opened).to.be.false;
72
73
  expect(el._overlayCtrl.isShown).to.be.false;
73
74
  });
74
-
75
75
  it('syncs opened to overlayController', async () => {
76
- const el = /** @type {OverlayEl} */ (
76
+ const el =
77
+ /** @type {OverlayEl} */
77
78
  await fixture(html`
78
79
  <${tag}>
79
80
  <div slot="content">content of the overlay</div>
80
81
  <button slot="invoker">invoker button</button>
81
82
  </${tag}>
82
- `)
83
- );
83
+ `);
84
84
  el.opened = true;
85
85
  await el.updateComplete;
86
86
  await el._overlayCtrl._showComplete;
87
87
  expect(el.opened).to.be.true;
88
88
  expect(el._overlayCtrl.isShown).to.be.true;
89
-
90
89
  el.opened = false;
91
90
  await el.updateComplete;
92
91
  await el._overlayCtrl._hideComplete;
93
92
  expect(el.opened).to.be.false;
94
93
  expect(el._overlayCtrl.isShown).to.be.false;
95
94
  });
96
-
97
95
  it('syncs OverlayController to opened', async () => {
98
- const el = /** @type {OverlayEl} */ (
96
+ const el =
97
+ /** @type {OverlayEl} */
99
98
  await fixture(html`
100
99
  <${tag}>
101
100
  <div slot="content">content of the overlay</div>
102
101
  <button slot="invoker">invoker button</button>
103
102
  </${tag}>
104
- `)
105
- );
103
+ `);
106
104
  expect(el.opened).to.be.false;
107
105
  await el._overlayCtrl.show();
108
106
  expect(el.opened).to.be.true;
109
-
110
107
  await el._overlayCtrl.hide();
111
108
  expect(el.opened).to.be.false;
112
109
  });
@@ -116,8 +113,11 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
116
113
  * make sure it does not conflict with the Escape handler in OverlayController.
117
114
  * */
118
115
  it('syncs opened between overlayController and OverlayMixin on Escape', async () => {
119
- const config = { hidesOnEsc: true };
120
- const el = /** @type {OverlayEl} */ (
116
+ const config = {
117
+ hidesOnEsc: true,
118
+ };
119
+ const el =
120
+ /** @type {OverlayEl} */
121
121
  await fixture(html`
122
122
  <${tag} id="main-dialog" .config="${config}">
123
123
  <div slot="content" id="mainContent">
@@ -131,11 +131,10 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
131
131
  </div>
132
132
  <button slot="invoker" id="mainInvoker">invoker button</button>
133
133
  </${tag}>
134
- `)
135
- );
134
+ `);
136
135
  await el.updateComplete;
137
- const subDialog = /** @type {OverlayEl} */ (el.querySelector('#sub-dialog'));
138
- const nestedContentInput = /** @type {OverlayEl} */ (el.querySelector('#nestedContentInput'));
136
+ const subDialog = /** @type {OverlayEl} */ el.querySelector('#sub-dialog');
137
+ const nestedContentInput = /** @type {OverlayEl} */ el.querySelector('#nestedContentInput');
139
138
 
140
139
  // Note, OverlayController has Escape key listener added to "#nestedContent".
141
140
  // And the sub-dialog adds the Escape key listener to "#nestedContentInput" which is a child evelement of "#nestedContent"
@@ -148,19 +147,16 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
148
147
  subDialog.opened = false;
149
148
  }
150
149
  });
151
-
152
150
  el.opened = true;
153
151
  await el.updateComplete;
154
152
  await el._overlayCtrl._showComplete;
155
153
  expect(el.opened).to.be.true;
156
154
  expect(el._overlayCtrl.isShown).to.be.true;
157
-
158
155
  subDialog.opened = true;
159
156
  await subDialog.updateComplete;
160
157
  await subDialog._overlayCtrl._showComplete;
161
158
  expect(subDialog.opened).to.be.true;
162
159
  expect(subDialog._overlayCtrl.isShown).to.be.true;
163
-
164
160
  await mimicEscapePress(nestedContentInput);
165
161
  expect(subDialog.opened).to.be.false;
166
162
  expect(subDialog._overlayCtrl.isShown).to.be.false;
@@ -172,7 +168,8 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
172
168
  it('does not change the body size when opened', async () => {
173
169
  const parentNode = document.createElement('div');
174
170
  parentNode.setAttribute('style', 'height: 10000px; width: 10000px;');
175
- const elWithBigParent = /** @type {OverlayEl} */ (
171
+ const elWithBigParent =
172
+ /** @type {OverlayEl} */
176
173
  await fixture(
177
174
  html`
178
175
  <${tag}>
@@ -180,9 +177,10 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
180
177
  <button slot="invoker">invoker button</button>
181
178
  </${tag}>
182
179
  `,
183
- { parentNode },
184
- )
185
- );
180
+ {
181
+ parentNode,
182
+ },
183
+ );
186
184
 
187
185
  // For now, we skip this test for MacSafari, since the body.overlays-scroll-lock-ios-fix
188
186
  // class results in a scrollbar when preventsScroll is true.
@@ -190,15 +188,9 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
190
188
  if (browserDetection.isMacSafari && elWithBigParent._overlayCtrl.preventsScroll) {
191
189
  return;
192
190
  }
193
-
194
- const elWithBigParentOffsetParent = /** @type {HTMLElement} */ (
195
- elWithBigParent?.offsetParent
196
- );
197
-
191
+ const elWithBigParentOffsetParent = /** @type {HTMLElement} */ elWithBigParent?.offsetParent;
198
192
  const { offsetWidth, offsetHeight } = elWithBigParentOffsetParent;
199
-
200
193
  await elWithBigParent._overlayCtrl.show();
201
-
202
194
  expect(elWithBigParent.opened).to.be.true;
203
195
  expect(elWithBigParentOffsetParent.offsetWidth).to.equal(offsetWidth);
204
196
  expect(elWithBigParentOffsetParent.offsetHeight).to.equal(offsetHeight);
@@ -206,35 +198,41 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
206
198
  expect(elWithBigParentOffsetParent.offsetWidth).to.equal(offsetWidth);
207
199
  expect(elWithBigParentOffsetParent.offsetHeight).to.equal(offsetHeight);
208
200
  });
209
-
210
201
  it('should respond to initially and dynamically setting the config', async () => {
211
- const itEl = /** @type {OverlayEl} */ (
202
+ const itEl =
203
+ /** @type {OverlayEl} */
212
204
  await fixture(html`
213
- <${tag} .config=${{ trapsKeyboardFocus: false, viewportConfig: { placement: 'top' } }}>
205
+ <${tag} .config=${{
206
+ trapsKeyboardFocus: false,
207
+ viewportConfig: {
208
+ placement: 'top',
209
+ },
210
+ }}>
214
211
  <div slot="content">content of the overlay</div>
215
212
  <button slot="invoker">invoker button</button>
216
213
  </${tag}>
217
- `)
218
- );
214
+ `);
219
215
  itEl.opened = true;
220
216
  await itEl.updateComplete;
221
217
  expect(itEl._overlayCtrl.trapsKeyboardFocus).to.be.false;
222
-
223
218
  await nextFrame();
224
- itEl.config = { viewportConfig: { placement: 'left' } };
219
+ itEl.config = {
220
+ viewportConfig: {
221
+ placement: 'left',
222
+ },
223
+ };
225
224
  expect(itEl._overlayCtrl.viewportConfig.placement).to.equal('left');
226
225
  });
227
-
228
226
  it('fires "opened-changed" event on hide', async () => {
229
227
  const spy = sinon.spy();
230
- const el = /** @type {OverlayEl} */ (
228
+ const el =
229
+ /** @type {OverlayEl} */
231
230
  await fixture(html`
232
231
  <${tag} @opened-changed="${spy}">
233
232
  <div slot="content">content of the overlay</div>
234
233
  <button slot="invoker">invoker button</button>
235
234
  </${tag}>
236
- `)
237
- );
235
+ `);
238
236
  expect(spy).not.to.have.been.called;
239
237
  await el._overlayCtrl.show();
240
238
  await el.updateComplete;
@@ -248,17 +246,16 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
248
246
  expect(spy.callCount).to.equal(2);
249
247
  expect(el.opened).to.be.false;
250
248
  });
251
-
252
249
  it('fires "before-closed" event on hide', async () => {
253
250
  const beforeSpy = sinon.spy();
254
- const el = /** @type {OverlayEl} */ (
251
+ const el =
252
+ /** @type {OverlayEl} */
255
253
  await fixture(html`
256
254
  <${tag} @before-closed="${beforeSpy}" opened>
257
255
  <div slot="content">content of the overlay</div>
258
256
  <button slot="invoker">invoker button</button>
259
257
  </${tag}>
260
- `)
261
- );
258
+ `);
262
259
  // Wait until it's done opening (handling features is async)
263
260
  await nextFrame();
264
261
  expect(beforeSpy).not.to.have.been.called;
@@ -266,36 +263,35 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
266
263
  expect(beforeSpy).to.have.been.called;
267
264
  expect(el.opened).to.be.false;
268
265
  });
269
-
270
266
  it('fires before-opened" event on show', async () => {
271
267
  const beforeSpy = sinon.spy();
272
- const el = /** @type {OverlayEl} */ (
268
+ const el =
269
+ /** @type {OverlayEl} */
273
270
  await fixture(html`
274
271
  <${tag} @before-opened="${beforeSpy}">
275
272
  <div slot="content">content of the overlay</div>
276
273
  <button slot="invoker">invoker button</button>
277
274
  </${tag}>
278
- `)
279
- );
275
+ `);
280
276
  expect(beforeSpy).not.to.have.been.called;
281
277
  await el._overlayCtrl.show();
282
278
  expect(beforeSpy).to.have.been.called;
283
279
  expect(el.opened).to.be.true;
284
280
  });
285
-
286
281
  it('allows to call "preventDefault()" on "before-opened"/"before-closed" events', async () => {
287
282
  function preventer(/** @type Event */ ev) {
288
283
  ev.preventDefault();
289
284
  }
290
- const el = /** @type {OverlayEl} */ (
285
+ const el =
286
+ /** @type {OverlayEl} */
291
287
  await fixture(html`
292
288
  <${tag} @before-opened="${preventer}" @before-closed="${preventer}">
293
289
  <div slot="content">content of the overlay</div>
294
290
  <button slot="invoker">invoker button</button>
295
291
  </${tag}>
296
- `)
297
- );
298
- /** @type {HTMLElement} */ (el.querySelector('[slot="invoker"]')).click();
292
+ `);
293
+ /** @type {HTMLElement} */
294
+ el.querySelector('[slot="invoker"]').click();
299
295
  await nextFrame();
300
296
  expect(el.opened).to.be.false;
301
297
 
@@ -305,13 +301,16 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
305
301
  await nextFrame();
306
302
  expect(el.opened).to.be.false;
307
303
  });
308
-
309
304
  it('hides content on "close-overlay" event within the content ', async () => {
310
305
  function sendCloseEvent(/** @type {Event} */ e) {
311
- e.target?.dispatchEvent(new Event('close-overlay', { bubbles: true }));
306
+ e.target?.dispatchEvent(
307
+ new Event('close-overlay', {
308
+ bubbles: true,
309
+ }),
310
+ );
312
311
  }
313
-
314
- const el = /** @type {OverlayEl} */ (
312
+ const el =
313
+ /** @type {OverlayEl} */
315
314
  await fixture(html`
316
315
  <${tag} opened>
317
316
  <div slot="content">
@@ -320,8 +319,7 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
320
319
  </div>
321
320
  <button slot="invoker">invoker button</button>
322
321
  </${tag}>
323
- `)
324
- );
322
+ `);
325
323
  // @ts-ignore
326
324
  el.querySelector('[slot=content] button').click();
327
325
  await el._overlayCtrl._hideComplete;
@@ -330,50 +328,50 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
330
328
 
331
329
  // See https://github.com/ing-bank/lion/discussions/1095
332
330
  it('exposes "open()", "close()" and "toggle()" methods', async () => {
333
- const el = /** @type {OverlayEl} */ (
331
+ const el =
332
+ /** @type {OverlayEl} */
334
333
  await fixture(html`
335
334
  <${tag}>
336
335
  <div slot="content">content</div>
337
336
  <button slot="invoker">invoker button</button>
338
337
  </${tag}>
339
- `)
340
- );
338
+ `);
341
339
  expect(el.opened).to.be.false;
342
340
  el.open();
343
341
  await nextFrame();
344
342
  expect(el.opened).to.be.true;
345
-
346
343
  el.close();
347
344
  await nextFrame();
348
345
  expect(el.opened).to.be.false;
349
-
350
346
  el.toggle();
351
347
  await nextFrame();
352
348
  expect(el.opened).to.be.true;
353
-
354
349
  el.toggle();
355
350
  await nextFrame();
356
351
  expect(el.opened).to.be.false;
357
352
  });
358
-
359
353
  it('exposes "repositionOverlay()" method', async () => {
360
- const el = /** @type {OverlayEl} */ (
354
+ const el =
355
+ /** @type {OverlayEl} */
361
356
  await fixture(html`
362
- <${tag} opened .config="${{ placementMode: 'local' }}">
357
+ <${tag} opened .config="${{
358
+ placementMode: 'local',
359
+ }}">
363
360
  <div slot="content">content</div>
364
361
  <button slot="invoker">invoker button</button>
365
362
  </${tag}>
366
- `)
367
- );
363
+ `);
368
364
  await OverlayController.popperModule;
369
365
  // @ts-ignore [popper-instance-access-in-test]
370
366
  sinon.spy(el._overlayCtrl._popper, 'update');
371
367
  el.repositionOverlay();
372
368
  // @ts-ignore [popper-instance-access-in-test]
373
369
  expect(el._overlayCtrl._popper.update).to.have.been.been.calledOnce;
374
-
375
370
  if (!el._overlayCtrl.isTooltip) {
376
- el.config = { ...el.config, placementMode: 'global' };
371
+ el.config = {
372
+ ...el.config,
373
+ placementMode: 'global',
374
+ };
377
375
  el.repositionOverlay();
378
376
  // @ts-ignore [popper-instance-access-in-test]
379
377
  expect(el._overlayCtrl._popper.update).to.have.been.been.calledOnce;
@@ -382,34 +380,34 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
382
380
 
383
381
  /** See: https://github.com/ing-bank/lion/issues/1075 */
384
382
  it('stays open after config update', async () => {
385
- const el = /** @type {OverlayEl} */ (
383
+ const el =
384
+ /** @type {OverlayEl} */
386
385
  await fixture(html`
387
386
  <${tag}>
388
387
  <div slot="content">content</div>
389
388
  <button slot="invoker">invoker button</button>
390
389
  </${tag}>
391
- `)
392
- );
390
+ `);
393
391
  el.open();
394
392
  await el._overlayCtrl._showComplete;
395
-
396
- el.config = { ...el.config, hidesOnOutsideClick: !el.config.hidesOnOutsideClick };
393
+ el.config = {
394
+ ...el.config,
395
+ hidesOnOutsideClick: !el.config.hidesOnOutsideClick,
396
+ };
397
397
  await nextFrame();
398
398
  expect(el.opened).to.be.true;
399
399
  expect(getComputedStyle(el._overlayCtrl.contentWrapperNode).display).not.to.equal('none');
400
400
  });
401
-
402
401
  it('does not run setup when disconnected', async () => {
403
- const el = /** @type {OverlayEl} */ (
402
+ const el =
403
+ /** @type {OverlayEl} */
404
404
  fixtureSync(html`
405
405
  <${tag}>
406
406
  <div slot="content">content</div>
407
407
  <button slot="invoker">invoker button</button>
408
408
  </${tag}>
409
- `)
410
- );
411
-
412
- const parentOfEl = /** @type {HTMLDivElement} */ (el.parentElement);
409
+ `);
410
+ const parentOfEl = /** @type {HTMLDivElement} */ el.parentElement;
413
411
 
414
412
  // @ts-expect-error [allow-protected-in-tests]
415
413
  const setupSpy = sinon.spy(el, '_setupOverlayCtrl');
@@ -422,45 +420,45 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
422
420
  parentOfEl.appendChild(el);
423
421
  await el.updateComplete;
424
422
  expect(setupSpy.callCount).to.equal(1);
425
-
426
423
  setupSpy.restore();
427
424
  });
428
425
 
429
426
  /** Prevent unnecessary reset side effects, such as show animation. See: https://github.com/ing-bank/lion/issues/1075 */
430
427
  it('does not call updateConfig on equivalent config change', async () => {
431
- const el = /** @type {OverlayEl} */ (
428
+ const el =
429
+ /** @type {OverlayEl} */
432
430
  await fixture(html`
433
431
  <${tag}>
434
432
  <div slot="content">content</div>
435
433
  <button slot="invoker">invoker button</button>
436
434
  </${tag}>
437
- `)
438
- );
435
+ `);
439
436
  el.open();
440
437
  await nextFrame();
441
-
442
438
  const stub = sinon.stub(el._overlayCtrl, 'updateConfig');
443
439
  stub.callsFake(() => {
444
440
  throw new Error('Unexpected config update');
445
441
  });
446
-
447
442
  expect(() => {
448
- el.config = { ...el.config };
443
+ el.config = {
444
+ ...el.config,
445
+ };
449
446
  }).to.not.throw;
450
447
  stub.restore();
451
448
  });
452
-
453
449
  it('should not visually hide when hidesOnEsc / hidesOnOutsideEsc is not configured', async () => {
454
- const el = /** @type {OverlayEl} */ (
450
+ const el =
451
+ /** @type {OverlayEl} */
455
452
  await fixture(html`
456
- <${tag} .config="${{ hidesOnEsc: false, hidesOnOutsideEsc: false }}" opened>
453
+ <${tag} .config="${{
454
+ hidesOnEsc: false,
455
+ hidesOnOutsideEsc: false,
456
+ }}" opened>
457
457
  <div slot="content">content of the overlay</div>
458
458
  <button slot="invoker">invoker button</button>
459
459
  </${tag}>
460
- `)
461
- );
462
-
463
- const dialogEl = /** @type {HTMLDialogElement} */ (el._overlayCtrl.__wrappingDialogNode);
460
+ `);
461
+ const dialogEl = /** @type {HTMLDialogElement} */ el._overlayCtrl.__wrappingDialogNode;
464
462
 
465
463
  // @ts-ignore [checkVisibility lives on the polyfilled dialog]
466
464
  expect(dialogEl.checkVisibility()).to.be.true;
@@ -469,17 +467,16 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
469
467
  // @ts-ignore [checkVisibility lives on the polyfilled dialog]
470
468
  expect(dialogEl.checkVisibility()).to.be.true;
471
469
  });
472
-
473
470
  describe('Teardown', () => {
474
471
  it('does not teardown when moving dom nodes', async () => {
475
- const el = /** @type {OverlayEl} */ (
472
+ const el =
473
+ /** @type {OverlayEl} */
476
474
  await fixture(html`
477
475
  <${tag}>
478
476
  <div slot="content">content</div>
479
477
  <button slot="invoker">invoker button</button>
480
478
  </${tag}>
481
- `)
482
- );
479
+ `);
483
480
  // @ts-expect-error [allow-protected] in tests
484
481
  const teardownSpy = sinon.spy(el, '_teardownOverlayCtrl');
485
482
  // @ts-expect-error [allow-protected] in tests
@@ -490,31 +487,27 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
490
487
  document.body.appendChild(newParent);
491
488
  newParent.appendChild(el);
492
489
  expect(spyDisconnected.callCount).to.equal(1);
493
-
494
490
  const otherParent = document.createElement('div');
495
491
  document.body.appendChild(otherParent);
496
492
  otherParent.appendChild(el);
497
493
  await aTimeout(0);
498
-
499
494
  expect(spyDisconnected.callCount).to.equal(2);
500
495
  expect(teardownSpy.callCount).to.equal(0);
501
496
 
502
497
  // simulate a permanent disconnect
503
498
  otherParent.removeChild(el);
504
499
  await aTimeout(0);
505
-
506
500
  expect(teardownSpy.callCount).to.equal(1);
507
501
  });
508
-
509
502
  it('allows to disconnect and reconnect later', async () => {
510
- const el = /** @type {OverlayEl} */ (
503
+ const el =
504
+ /** @type {OverlayEl} */
511
505
  await fixture(html`
512
506
  <${tag}>
513
507
  <div slot="content">content</div>
514
508
  <button slot="invoker">invoker button</button>
515
509
  </${tag}>
516
- `)
517
- );
510
+ `);
518
511
  // @ts-expect-error [allow-protected] in tests
519
512
  const teardownSpy = sinon.spy(el, '_teardownOverlayCtrl');
520
513
  // @ts-expect-error [allow-protected] in tests
@@ -526,33 +519,28 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
526
519
  const offlineParent = document.createElement('div');
527
520
  offlineParent.appendChild(el);
528
521
  await aTimeout(0);
529
-
530
522
  expect(spyDisconnected.callCount).to.equal(1);
531
523
  expect(teardownSpy.callCount).to.equal(1);
532
524
 
533
525
  // reconnect
534
526
  document.body.appendChild(offlineParent);
535
527
  await aTimeout(0);
536
-
537
528
  expect(setupSpy.callCount).to.equal(1);
538
529
  });
539
-
540
530
  it('works with cache directive when reconnected', async () => {
541
531
  class CachingContext extends LitElement {
542
532
  static properties = {
543
- showOverlay: { type: Boolean },
533
+ showOverlay: {
534
+ type: Boolean,
535
+ },
544
536
  };
545
-
546
537
  constructor() {
547
538
  super();
548
-
549
539
  this.showOverlay = true;
550
540
  }
551
-
552
541
  get overlayEl() {
553
542
  return this.shadowRoot?.querySelector('#myOverlay');
554
543
  }
555
-
556
544
  render() {
557
545
  return html`${cache(
558
546
  this.showOverlay
@@ -564,15 +552,13 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
564
552
  )}`;
565
553
  }
566
554
  }
567
-
568
555
  const cachingTagName = defineCE(CachingContext);
569
556
  const cachingTag = unsafeStatic(cachingTagName);
570
-
571
- const el = /** @type {CachingContext} */ (
557
+ const el =
558
+ /** @type {CachingContext} */
572
559
  await fixture(html`
573
560
  <${cachingTag}></${cachingTag}>
574
- `)
575
- );
561
+ `);
576
562
 
577
563
  // @ts-expect-error [allow-protected] in tests
578
564
  const teardownSpy = sinon.spy(el.overlayEl, '_teardownOverlayCtrl');
@@ -580,35 +566,32 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
580
566
  const spyDisconnected = sinon.spy(el.overlayEl, '_isPermanentlyDisconnected');
581
567
  // @ts-expect-error [allow-protected] in tests
582
568
  const setupSpy = sinon.spy(el.overlayEl, '_setupOverlayCtrl');
583
-
584
569
  el.showOverlay = false;
585
570
  // render the new content
586
571
  await el.updateComplete;
587
572
  // wait for the teardown to complete
588
573
  await el.updateComplete;
589
-
590
574
  expect(spyDisconnected.callCount).to.equal(1);
591
575
  expect(teardownSpy.callCount).to.equal(1);
592
576
  expect(setupSpy.callCount).to.equal(0);
593
-
594
577
  el.showOverlay = true;
595
578
  await el.updateComplete;
596
579
  expect(setupSpy.callCount).to.equal(1);
597
-
598
- const elCtrl = /** @type {OverlayEl} */ (el.overlayEl)?._overlayCtrl;
599
- const isCtrlRegisteredAtOverlaysManager = elCtrl.manager.list.some(ctrl => elCtrl === ctrl);
580
+ const elCtrl = /** @type {OverlayEl} */ el.overlayEl?._overlayCtrl;
581
+ const isCtrlRegisteredAtOverlaysManager = elCtrl.manager.list.some(
582
+ (ctrl) => elCtrl === ctrl,
583
+ );
600
584
  expect(isCtrlRegisteredAtOverlaysManager).to.equal(true);
601
585
  });
602
-
603
586
  it('teardown completes successfully when open overlay is removed from DOM', async () => {
604
- const el = /** @type {OverlayEl} */ (
587
+ const el =
588
+ /** @type {OverlayEl} */
605
589
  await fixture(html`
606
590
  <${tag}>
607
591
  <div slot="content">content of the overlay</div>
608
592
  <button slot="invoker">invoker button</button>
609
593
  </${tag}>
610
- `)
611
- );
594
+ `);
612
595
 
613
596
  // 1. Open the overlay
614
597
  el.opened = true;
@@ -617,25 +600,26 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
617
600
  expect(el._overlayCtrl.isShown).to.be.true;
618
601
 
619
602
  // 2. Remove element from DOM without closing
620
- /** @type {HTMLElement} */ (el.parentNode).removeChild(el);
603
+ /** @type {HTMLElement} */
604
+ el.parentNode.removeChild(el);
621
605
 
622
606
  // 3. Wait for _isPermanentlyDisconnected to resolve and teardown to complete
623
607
  await aTimeout(0);
624
608
 
625
609
  // 4. Teardown should complete without errors
626
610
  // The controller should no longer be registered
627
- expect(el._overlayCtrl.manager.list.find(ctrl => ctrl === el._overlayCtrl)).to.be.undefined;
611
+ expect(el._overlayCtrl.manager.list.find((ctrl) => ctrl === el._overlayCtrl)).to.be
612
+ .undefined;
628
613
  });
629
-
630
614
  it('does not throw when element is removed from DOM while overlay is open', async () => {
631
- const el = /** @type {OverlayEl} */ (
615
+ const el =
616
+ /** @type {OverlayEl} */
632
617
  await fixture(html`
633
618
  <${tag}>
634
619
  <div slot="content">content of the overlay</div>
635
620
  <button slot="invoker">invoker button</button>
636
621
  </${tag}>
637
- `)
638
- );
622
+ `);
639
623
 
640
624
  // 1. Open the overlay
641
625
  el.opened = true;
@@ -647,7 +631,8 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
647
631
  const ctrl = el._overlayCtrl;
648
632
 
649
633
  // 3. Remove element from DOM without closing the overlay
650
- /** @type {HTMLElement} */ (el.parentNode).removeChild(el);
634
+ /** @type {HTMLElement} */
635
+ el.parentNode.removeChild(el);
651
636
 
652
637
  // 4. Wait for _isPermanentlyDisconnected to resolve and teardown to complete
653
638
  await aTimeout(0);
@@ -657,23 +642,19 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
657
642
  await ctrl.hide();
658
643
  expect(ctrl.isShown).to.be.false;
659
644
  });
660
-
661
645
  it('correctly removes event listeners when disconnected from dom', async () => {
662
- const el = /** @type {OverlayEl} */ (
646
+ const el =
647
+ /** @type {OverlayEl} */
663
648
  await fixture(html`
664
649
  <${tag}>
665
650
  <div slot="content">content</div>
666
651
  <button slot="invoker">invoker button</button>
667
652
  </${tag}>
668
- `)
669
- );
670
-
653
+ `);
671
654
  const eventRemoveSpy = sinon.spy(el._overlayCtrl, 'removeEventListener');
672
655
  el.parentNode?.removeChild(el);
673
656
  await el.updateComplete;
674
-
675
657
  expect(eventRemoveSpy.callCount).to.equal(0);
676
-
677
658
  await el.updateComplete;
678
659
  const hasOneInstanceFor = (
679
660
  /** @type {string} */ eventName,
@@ -698,16 +679,15 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
698
679
  });
699
680
  });
700
681
  });
701
-
702
682
  describe(`OverlayMixin${suffix} nested`, () => {
703
683
  // For some reason, globalRootNode is not cleared properly on disconnectedCallback from previous overlay test fixtures...
704
684
  // Not sure why this "bug" happens...
705
685
  beforeEach(() => {
706
686
  resetOverlaysManager();
707
687
  });
708
-
709
688
  it('supports nested overlays', async () => {
710
- const el = /** @type {OverlayEl} */ (
689
+ const el =
690
+ /** @type {OverlayEl} */
711
691
  await fixture(html`
712
692
  <${tag} id="main-dialog">
713
693
  <div slot="content" id="mainContent">
@@ -721,55 +701,48 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
721
701
  </div>
722
702
  <button slot="invoker" id="mainInvoker">invoker button</button>
723
703
  </${tag}>
724
- `)
725
- );
726
-
704
+ `);
727
705
  if (el._overlayCtrl.placementMode === 'global') {
728
706
  expect(getGlobalOverlayCtrls().length).to.equal(2);
729
707
  }
730
-
731
708
  el.opened = true;
732
709
  await aTimeout(0);
733
710
  expect(el._overlayCtrl.contentNode).to.be.displayed;
734
- const nestedOverlayEl = /** @type {OverlayEl} */ (
735
- el._overlayCtrl.contentNode.querySelector(tagString)
736
- );
711
+ const nestedOverlayEl =
712
+ /** @type {OverlayEl} */
713
+ el._overlayCtrl.contentNode.querySelector(tagString);
737
714
  nestedOverlayEl.opened = true;
738
715
  await aTimeout(0);
739
716
  expect(nestedOverlayEl._overlayCtrl.contentNode).to.be.displayed;
740
717
  });
741
-
742
718
  it('[global] allows for moving of the element', async () => {
743
- const el = /** @type {OverlayEl} */ (
719
+ const el =
720
+ /** @type {OverlayEl} */
744
721
  await fixture(html`
745
722
  <${tag}>
746
723
  <div slot="content" id="nestedContent">content of the nested overlay</div>
747
724
  <button slot="invoker">invoker nested</button>
748
725
  </${tag}>
749
- `)
750
- );
726
+ `);
751
727
  if (el._overlayCtrl.placementMode === 'global') {
752
728
  expect(getGlobalOverlayCtrls().length).to.equal(1);
753
-
754
- const moveTarget = /** @type {OverlayEl} */ (await fixture('<div id="target"></div>'));
729
+ const moveTarget = /** @type {OverlayEl} */ await fixture('<div id="target"></div>');
755
730
  moveTarget.appendChild(el);
756
731
  await el.updateComplete;
757
-
758
732
  expect(getGlobalOverlayCtrls().length).to.equal(1);
759
733
  }
760
734
  });
761
-
762
735
  it('reconstructs the overlay when disconnected and reconnected to DOM (support for nested overlay nodes)', async () => {
763
- const nestedEl = /** @type {OverlayEl} */ (
736
+ const nestedEl =
737
+ /** @type {OverlayEl} */
764
738
  await fixture(html`
765
739
  <${tag} id="nest">
766
740
  <div slot="content" id="nestedContent">content of the nested overlay</div>
767
741
  <button slot="invoker">invoker nested</button>
768
742
  </${tag}>
769
- `)
770
- );
771
-
772
- const el = /** @type {OverlayEl} */ (
743
+ `);
744
+ const el =
745
+ /** @type {OverlayEl} */
773
746
  await fixture(html`
774
747
  <${tag} id="main">
775
748
  <div slot="content" id="mainContent">
@@ -778,19 +751,17 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
778
751
  </div>
779
752
  <button slot="invoker">invoker button</button>
780
753
  </${tag}>
781
- `)
782
- );
783
-
754
+ `);
784
755
  if (el._overlayCtrl.placementMode === 'global') {
785
756
  // Find the outlets that are not backdrop outlets
786
757
  expect(getGlobalOverlayCtrls().length).to.equal(2);
787
758
  // Check that the last container is the nested one with the intended content
788
759
  expect(el.contains(nestedEl)).to.be.true;
789
760
  } else {
790
- const contentNode = /** @type {HTMLElement} */ (
761
+ const contentNode =
762
+ /** @type {HTMLElement} */
791
763
  // @ts-ignore [allow-protected] in tests
792
- el._overlayContentNode.querySelector('#nestedContent')
793
- );
764
+ el._overlayContentNode.querySelector('#nestedContent');
794
765
  expect(contentNode).to.not.be.null;
795
766
  expect(contentNode.innerText).to.equal('content of the nested overlay');
796
767
  }