@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
@@ -28,16 +28,17 @@ export function _addOverlayMixinPostProcessor(postProcessor) {
28
28
  * @param {import('@open-wc/dedupe-mixin').Constructor<import('lit').LitElement>} superclass
29
29
  */
30
30
  // @ts-ignore https://github.com/microsoft/TypeScript/issues/36821#issuecomment-588375051
31
- export const OverlayMixinImplementation = superclass => {
31
+ export const OverlayMixinImplementation = (superclass) => {
32
32
  class OverlayMixin extends superclass {
33
33
  static get properties() {
34
34
  return {
35
- opened: { type: Boolean, reflect: true },
35
+ opened: {
36
+ type: Boolean,
37
+ reflect: true,
38
+ },
36
39
  };
37
40
  }
38
-
39
41
  #hasSetup = false;
40
-
41
42
  constructor() {
42
43
  super();
43
44
  /**
@@ -59,9 +60,8 @@ export const OverlayMixinImplementation = superclass => {
59
60
  /** @type {EventListener} */
60
61
  this.close = this.close.bind(this);
61
62
  }
62
-
63
63
  get config() {
64
- return /** @type {OverlayConfig} */ (this.__config);
64
+ return /** @type {OverlayConfig} */ this.__config;
65
65
  }
66
66
 
67
67
  /** @param {OverlayConfig} value */
@@ -88,7 +88,9 @@ export const OverlayMixinImplementation = superclass => {
88
88
  if (name === 'opened' && this.opened !== oldValue) {
89
89
  this.dispatchEvent(
90
90
  new CustomEvent('opened-changed', {
91
- detail: { opened: this.opened },
91
+ detail: {
92
+ opened: this.opened,
93
+ },
92
94
  }),
93
95
  );
94
96
  }
@@ -111,8 +113,10 @@ export const OverlayMixinImplementation = superclass => {
111
113
  referenceNode,
112
114
  backdropNode,
113
115
  contentWrapperNode,
114
- ...overlayConfig, // wc provided in the class as defaults
115
- ...this.config, // user provided (e.g. in template)
116
+ ...overlayConfig,
117
+ // wc provided in the class as defaults
118
+ ...this.config,
119
+ // user provided (e.g. in template)
116
120
  popperConfig: {
117
121
  ...(overlayConfig.popperConfig || {}),
118
122
  ...(this.config?.popperConfig || {}),
@@ -143,7 +147,6 @@ export const OverlayMixinImplementation = superclass => {
143
147
  */
144
148
  updated(changedProperties) {
145
149
  super.updated(changedProperties);
146
-
147
150
  if (changedProperties.has('opened') && this._overlayCtrl && !this.__blockSyncToOverlayCtrl) {
148
151
  this.__syncToOverlayController();
149
152
  }
@@ -162,9 +165,10 @@ export const OverlayMixinImplementation = superclass => {
162
165
  /**
163
166
  * @param {{ stopPropagation: () => void; }} ev
164
167
  */
165
- this.__closeEventInContentNodeHandler = ev => {
168
+ this.__closeEventInContentNodeHandler = (ev) => {
166
169
  ev.stopPropagation();
167
- /** @type {OverlayController} */ (this._overlayCtrl).hide();
170
+ /** @type {OverlayController} */
171
+ this._overlayCtrl.hide();
168
172
  };
169
173
  if (this._overlayContentNode) {
170
174
  this._overlayContentNode.addEventListener(
@@ -184,14 +188,12 @@ export const OverlayMixinImplementation = superclass => {
184
188
  if (this._overlayContentNode) {
185
189
  this._overlayContentNode.removeEventListener(
186
190
  'close-overlay',
187
- /** @type {EventListener} */ (this.__closeEventInContentNodeHandler),
191
+ /** @type {EventListener} */ this.__closeEventInContentNodeHandler,
188
192
  );
189
193
  }
190
194
  }
191
-
192
195
  connectedCallback() {
193
196
  super.connectedCallback();
194
-
195
197
  this.updateComplete.then(() => {
196
198
  if (!this.isConnected) return;
197
199
  if (this.#hasSetup) return;
@@ -199,10 +201,8 @@ export const OverlayMixinImplementation = superclass => {
199
201
  this.#hasSetup = true;
200
202
  });
201
203
  }
202
-
203
204
  async disconnectedCallback() {
204
205
  super.disconnectedCallback();
205
-
206
206
  if (await this._isPermanentlyDisconnected()) {
207
207
  this._teardownOverlayCtrl();
208
208
  this.#hasSetup = false;
@@ -214,7 +214,7 @@ export const OverlayMixinImplementation = superclass => {
214
214
  * @configure ReactiveElement
215
215
  */
216
216
  // @ts-expect-error
217
- static enabledWarnings = super.enabledWarnings?.filter(w => w !== 'change-in-update') || [];
217
+ static enabledWarnings = super.enabledWarnings?.filter((w) => w !== 'change-in-update') || [];
218
218
 
219
219
  /**
220
220
  * @overridable
@@ -223,48 +223,42 @@ export const OverlayMixinImplementation = superclass => {
223
223
  get _overlayReferenceNode() {
224
224
  return undefined;
225
225
  }
226
-
227
226
  get _overlayBackdropNode() {
228
227
  if (!this.__cachedOverlayBackdropNode) {
229
- this.__cachedOverlayBackdropNode = /** @type {HTMLElement | undefined} */ (
230
- Array.from(this.children).find(child => child.slot === 'backdrop')
231
- );
228
+ this.__cachedOverlayBackdropNode =
229
+ /** @type {HTMLElement | undefined} */
230
+ Array.from(this.children).find((child) => child.slot === 'backdrop');
232
231
  }
233
232
  return this.__cachedOverlayBackdropNode;
234
233
  }
235
-
236
234
  get _overlayContentNode() {
237
235
  if (!this._cachedOverlayContentNode) {
238
236
  this._cachedOverlayContentNode =
239
- Array.from(this.children).find(child => child.slot === 'content') ||
237
+ Array.from(this.children).find((child) => child.slot === 'content') ||
240
238
  this.config.contentNode;
241
239
  }
242
- return /** @type {HTMLElement} */ (this._cachedOverlayContentNode);
240
+ return /** @type {HTMLElement} */ this._cachedOverlayContentNode;
243
241
  }
244
-
245
242
  get _overlayContentWrapperNode() {
246
- return /** @type {HTMLElement | undefined} */ (
247
- this.shadowRoot?.querySelector('#overlay-content-node-wrapper')
243
+ return /** @type {HTMLElement | undefined} */ this.shadowRoot?.querySelector(
244
+ '#overlay-content-node-wrapper',
248
245
  );
249
246
  }
250
247
 
251
248
  /**
252
249
  * Returns the element that can actually receive focus inside the passed
253
250
  * invoker (wrapper) element: the element itself when it is focusable,
254
- * otherwise the first focusable descendant.
251
+ * otherwise the first focusable descendant. Custom invokers without a
252
+ * focusable light DOM descendant remain click targets themselves.
255
253
  * @param {Element|null|undefined} focusableElOrWrapper
256
254
  * @returns {Element|null}
257
255
  */
258
- /**
259
- * @param {Element | null | undefined} focusableElOrWrapper
260
- * @returns {Element | null}
261
- */
262
256
  static _getFocusableInvokerEl(focusableElOrWrapper) {
263
257
  if (!focusableElOrWrapper) return null;
264
258
  const focusableSelector = '[tabindex], button, a[href], [role=button]';
265
259
  return focusableElOrWrapper.matches(focusableSelector)
266
260
  ? focusableElOrWrapper
267
- : focusableElOrWrapper.querySelector(focusableSelector);
261
+ : focusableElOrWrapper.querySelector(focusableSelector) || focusableElOrWrapper;
268
262
  }
269
263
 
270
264
  /**
@@ -290,16 +284,14 @@ export const OverlayMixinImplementation = superclass => {
290
284
  * @returns {Element|null}
291
285
  */
292
286
  _getInvokerNode() {
293
- const ctor = /** @type {typeof OverlayMixin} */ (this.constructor);
294
-
295
- const slottedNode = Array.from(this.children).find(child => child.slot === 'invoker');
287
+ const ctor = /** @type {typeof OverlayMixin} */ this.constructor;
288
+ const slottedNode = Array.from(this.children).find((child) => child.slot === 'invoker');
296
289
  if (slottedNode) {
297
290
  return ctor._getFocusableInvokerEl(slottedNode);
298
291
  }
299
-
300
292
  if (this.id) {
301
293
  // Reference the invoker declaratively: `<button data-invoker for="my-menu">`
302
- const root = /** @type {Document|ShadowRoot} */ (this.getRootNode());
294
+ const root = /** @type {Document|ShadowRoot} */ this.getRootNode();
303
295
  const explicitInvoker = root.querySelector?.(`[data-invoker][for="${this.id}"]`);
304
296
  if (explicitInvoker) {
305
297
  return ctor._getFocusableInvokerEl(explicitInvoker);
@@ -316,9 +308,7 @@ export const OverlayMixinImplementation = superclass => {
316
308
  /** @protected */
317
309
  _setupOverlayCtrl() {
318
310
  if (this.#hasSetup) return;
319
-
320
311
  const invokerNode = this._overlayInvokerNode;
321
-
322
312
  const config = {
323
313
  contentNode: this._overlayContentNode,
324
314
  contentWrapperNode: this._overlayContentWrapperNode,
@@ -335,7 +325,6 @@ export const OverlayMixinImplementation = superclass => {
335
325
  /** @type {OverlayController} */
336
326
  this._overlayCtrl = this._defineOverlay(config);
337
327
  }
338
-
339
328
  this.__syncToOverlayController();
340
329
  this.__setupSyncFromOverlayController();
341
330
  this._setupOpenCloseListeners();
@@ -346,11 +335,11 @@ export const OverlayMixinImplementation = superclass => {
346
335
  // Make sure that dynamic behavior (e.g. responsive) is possible by allowing multiple setups and teardowns of the overlay controller.
347
336
  this.#hasSetup = false;
348
337
  if (!this._overlayCtrl) return;
349
-
350
338
  this._teardownOpenCloseListeners();
351
339
  this.__teardownSyncFromOverlayController();
352
340
 
353
- /** @type {OverlayController} */ (this._overlayCtrl).teardown();
341
+ /** @type {OverlayController} */
342
+ this._overlayCtrl.teardown();
354
343
  }
355
344
 
356
345
  /**
@@ -373,7 +362,6 @@ export const OverlayMixinImplementation = superclass => {
373
362
  this.__onOverlayCtrlShow = () => {
374
363
  this.opened = true;
375
364
  };
376
-
377
365
  this.__onOverlayCtrlHide = () => {
378
366
  this.opened = false;
379
367
  };
@@ -381,13 +369,15 @@ export const OverlayMixinImplementation = superclass => {
381
369
  /**
382
370
  * @param {{ preventDefault: () => void; }} beforeShowEvent
383
371
  */
384
- this.__onBeforeShow = beforeShowEvent => {
385
- const event = new CustomEvent('before-opened', { cancelable: true });
372
+ this.__onBeforeShow = (beforeShowEvent) => {
373
+ const event = new CustomEvent('before-opened', {
374
+ cancelable: true,
375
+ });
386
376
  this.dispatchEvent(event);
387
377
  if (event.defaultPrevented) {
388
378
  // Check whether our current `.opened` state is not out of sync with overlayCtrl
389
379
  this._setOpenedWithoutPropertyEffects(
390
- /** @type {OverlayController} */ (this._overlayCtrl).isShown,
380
+ /** @type {OverlayController} */ this._overlayCtrl.isShown,
391
381
  );
392
382
  beforeShowEvent.preventDefault();
393
383
  }
@@ -396,47 +386,52 @@ export const OverlayMixinImplementation = superclass => {
396
386
  /**
397
387
  * @param {{ preventDefault: () => void; }} beforeHideEvent
398
388
  */
399
- this.__onBeforeHide = beforeHideEvent => {
400
- const event = new CustomEvent('before-closed', { cancelable: true });
389
+ this.__onBeforeHide = (beforeHideEvent) => {
390
+ const event = new CustomEvent('before-closed', {
391
+ cancelable: true,
392
+ });
401
393
  this.dispatchEvent(event);
402
394
  if (event.defaultPrevented) {
403
395
  // Check whether our current `.opened` state is not out of sync with overlayCtrl
404
396
  this._setOpenedWithoutPropertyEffects(
405
397
  /** @type {OverlayController} */
406
- (this._overlayCtrl).isShown,
398
+ this._overlayCtrl.isShown,
407
399
  );
408
400
  beforeHideEvent.preventDefault();
409
401
  }
410
402
  };
411
403
 
412
404
  /** @type {OverlayController} */
413
- (this._overlayCtrl).addEventListener('show', this.__onOverlayCtrlShow);
405
+ this._overlayCtrl.addEventListener('show', this.__onOverlayCtrlShow);
414
406
  /** @type {OverlayController} */
415
- (this._overlayCtrl).addEventListener('hide', this.__onOverlayCtrlHide);
407
+ this._overlayCtrl.addEventListener('hide', this.__onOverlayCtrlHide);
416
408
  /** @type {OverlayController} */
417
- (this._overlayCtrl).addEventListener('before-show', this.__onBeforeShow);
409
+ this._overlayCtrl.addEventListener('before-show', this.__onBeforeShow);
418
410
  /** @type {OverlayController} */
419
- (this._overlayCtrl).addEventListener('before-hide', this.__onBeforeHide);
411
+ this._overlayCtrl.addEventListener('before-hide', this.__onBeforeHide);
420
412
  }
421
413
 
422
414
  /** @private */
423
415
  __teardownSyncFromOverlayController() {
424
416
  /** @type {OverlayController} */
425
- (this._overlayCtrl).removeEventListener(
417
+ this._overlayCtrl.removeEventListener(
426
418
  'show',
427
- /** @type {EventListener} */ (this.__onOverlayCtrlShow),
419
+ /** @type {EventListener} */ this.__onOverlayCtrlShow,
428
420
  );
429
- /** @type {OverlayController} */ (this._overlayCtrl).removeEventListener(
421
+ /** @type {OverlayController} */
422
+ this._overlayCtrl.removeEventListener(
430
423
  'hide',
431
- /** @type {EventListener} */ (this.__onOverlayCtrlHide),
424
+ /** @type {EventListener} */ this.__onOverlayCtrlHide,
432
425
  );
433
- /** @type {OverlayController} */ (this._overlayCtrl).removeEventListener(
426
+ /** @type {OverlayController} */
427
+ this._overlayCtrl.removeEventListener(
434
428
  'before-show',
435
- /** @type {EventListener} */ (this.__onBeforeShow),
429
+ /** @type {EventListener} */ this.__onBeforeShow,
436
430
  );
437
- /** @type {OverlayController} */ (this._overlayCtrl).removeEventListener(
431
+ /** @type {OverlayController} */
432
+ this._overlayCtrl.removeEventListener(
438
433
  'before-hide',
439
- /** @type {EventListener} */ (this.__onBeforeHide),
434
+ /** @type {EventListener} */ this.__onBeforeHide,
440
435
  );
441
436
  }
442
437
 
@@ -444,10 +439,10 @@ export const OverlayMixinImplementation = superclass => {
444
439
  __syncToOverlayController() {
445
440
  if (this.opened) {
446
441
  /** @type {OverlayController} */
447
- (this._overlayCtrl).show();
442
+ this._overlayCtrl.show();
448
443
  } else {
449
444
  /** @type {OverlayController} */
450
- (this._overlayCtrl).hide();
445
+ this._overlayCtrl.hide();
451
446
  }
452
447
  }
453
448
 
@@ -455,21 +450,21 @@ export const OverlayMixinImplementation = superclass => {
455
450
  * Toggles the overlay
456
451
  */
457
452
  async toggle() {
458
- await /** @type {OverlayController} */ (this._overlayCtrl).toggle();
453
+ await /** @type {OverlayController} */ this._overlayCtrl.toggle();
459
454
  }
460
455
 
461
456
  /**
462
457
  * Shows the overlay
463
458
  */
464
459
  async open() {
465
- await /** @type {OverlayController} */ (this._overlayCtrl).show();
460
+ await /** @type {OverlayController} */ this._overlayCtrl.show();
466
461
  }
467
462
 
468
463
  /**
469
464
  * Hides the overlay
470
465
  */
471
466
  async close() {
472
- await /** @type {OverlayController} */ (this._overlayCtrl).hide();
467
+ await /** @type {OverlayController} */ this._overlayCtrl.hide();
473
468
  }
474
469
 
475
470
  /**
@@ -478,7 +473,7 @@ export const OverlayMixinImplementation = superclass => {
478
473
  * increases vertically)
479
474
  */
480
475
  repositionOverlay() {
481
- const ctrl = /** @type {OverlayController} */ (this._overlayCtrl);
476
+ const ctrl = /** @type {OverlayController} */ this._overlayCtrl;
482
477
  if (ctrl.placementMode === 'local' && ctrl._popper) {
483
478
  ctrl._popper.update();
484
479
  }
@@ -14,11 +14,10 @@ import { overlayDocumentStyle } from './overlayDocumentStyle.js';
14
14
  export class OverlaysManager {
15
15
  /** @type {HTMLStyleElement | undefined} */
16
16
  static __globalStyleNode = undefined;
17
-
18
17
  static __createGlobalStyleNode() {
19
18
  const styleTag = document.createElement('style');
20
19
  styleTag.setAttribute('data-overlays', '');
21
- styleTag.textContent = /** @type {CSSResult} */ (overlayDocumentStyle).cssText;
20
+ styleTag.textContent = /** @type {CSSResult} */ overlayDocumentStyle.cssText;
22
21
  document.head.appendChild(styleTag);
23
22
  return styleTag;
24
23
  }
@@ -73,7 +72,6 @@ export class OverlaysManager {
73
72
  * }}
74
73
  */
75
74
  __bodySizeVars;
76
-
77
75
  constructor() {
78
76
  this.__list = [];
79
77
  this.__shownList = [];
@@ -88,11 +86,9 @@ export class OverlaysManager {
88
86
  marginRight: undefined,
89
87
  marginBottom: undefined,
90
88
  };
91
-
92
89
  this.__forTesting = {
93
90
  bodySizeVars: this.__bodySizeVars,
94
91
  };
95
-
96
92
  if (!OverlaysManager.__globalStyleNode) {
97
93
  OverlaysManager.__globalStyleNode = OverlaysManager.__createGlobalStyleNode();
98
94
  }
@@ -104,7 +100,7 @@ export class OverlaysManager {
104
100
  * @returns {OverlayController} same controller after adding to the manager
105
101
  */
106
102
  add(ctrlToAdd) {
107
- if (this.list.find(ctrl => ctrlToAdd === ctrl)) {
103
+ if (this.list.find((ctrl) => ctrlToAdd === ctrl)) {
108
104
  throw new Error('controller instance is already added');
109
105
  }
110
106
  this.list.push(ctrlToAdd);
@@ -115,18 +111,18 @@ export class OverlaysManager {
115
111
  * @param {OverlayController} ctrlToRemove
116
112
  */
117
113
  remove(ctrlToRemove) {
118
- if (!this.list.find(ctrl => ctrlToRemove === ctrl)) {
114
+ if (!this.list.find((ctrl) => ctrlToRemove === ctrl)) {
119
115
  throw new Error('could not find controller to remove');
120
116
  }
121
- this.__list = this.list.filter(ctrl => ctrl !== ctrlToRemove);
122
- this.__shownList = this.shownList.filter(ctrl => ctrl !== ctrlToRemove);
117
+ this.__list = this.list.filter((ctrl) => ctrl !== ctrlToRemove);
118
+ this.__shownList = this.shownList.filter((ctrl) => ctrl !== ctrlToRemove);
123
119
  }
124
120
 
125
121
  /**
126
122
  * @param {OverlayController} ctrlToShow
127
123
  */
128
124
  show(ctrlToShow) {
129
- if (this.list.find(ctrl => ctrlToShow === ctrl)) {
125
+ if (this.list.find((ctrl) => ctrlToShow === ctrl)) {
130
126
  this.hide(ctrlToShow);
131
127
  }
132
128
  this.__shownList.unshift(ctrlToShow);
@@ -144,17 +140,15 @@ export class OverlaysManager {
144
140
  * @param {any} ctrlToHide
145
141
  */
146
142
  hide(ctrlToHide) {
147
- if (!this.list.find(ctrl => ctrlToHide === ctrl)) {
143
+ if (!this.list.find((ctrl) => ctrlToHide === ctrl)) {
148
144
  throw new Error('could not find controller to hide');
149
145
  }
150
- this.__shownList = this.shownList.filter(ctrl => ctrl !== ctrlToHide);
146
+ this.__shownList = this.shownList.filter((ctrl) => ctrl !== ctrlToHide);
151
147
  }
152
-
153
148
  teardown() {
154
- this.list.forEach(ctrl => {
149
+ this.list.forEach((ctrl) => {
155
150
  ctrl.teardown();
156
151
  });
157
-
158
152
  this.__list = [];
159
153
  this.__shownList = [];
160
154
  this._siblingsInert = false;
@@ -165,11 +159,8 @@ export class OverlaysManager {
165
159
  this.__bodySizeVars.marginBottomInline = undefined;
166
160
  this.__bodySizeVars.marginRight = undefined;
167
161
  this.__bodySizeVars.marginBottom = undefined;
168
-
169
162
  if (OverlaysManager.__globalStyleNode) {
170
- document.head.removeChild(
171
- /** @type {HTMLStyleElement} */ (OverlaysManager.__globalStyleNode),
172
- );
163
+ document.head.removeChild(/** @type {HTMLStyleElement} */ OverlaysManager.__globalStyleNode);
173
164
  OverlaysManager.__globalStyleNode = undefined;
174
165
  }
175
166
  }
@@ -215,9 +206,9 @@ export class OverlaysManager {
215
206
  this.__bodySizeVars.marginBottom = 0;
216
207
  }
217
208
  const scrollbarWidth =
218
- document.body.clientWidth - /** @type {number} */ (this.__bodySizeVars.clientWidth);
209
+ document.body.clientWidth - /** @type {number} */ this.__bodySizeVars.clientWidth;
219
210
  const scrollbarHeight =
220
- document.body.clientHeight - /** @type {number} */ (this.__bodySizeVars.clientHeight);
211
+ document.body.clientHeight - /** @type {number} */ this.__bodySizeVars.clientHeight;
221
212
  const newMarginRight = this.__bodySizeVars.marginRight + scrollbarWidth;
222
213
  const newMarginBottom = this.__bodySizeVars.marginBottom + scrollbarHeight;
223
214
  // @ts-expect-error [external]: CSS not yet typed
@@ -254,7 +245,10 @@ export class OverlaysManager {
254
245
  document.body.classList.add('overlays-scroll-lock');
255
246
  if (isIOS || isMacSafari) {
256
247
  // iOS and safar for mac have issues with overlays with input fields. This is fixed by applying
257
- // position: fixed to the body. As a side effect, this will scroll the body to the top.
248
+ // position: fixed to the body. As a side effect, this will scroll the body to the top,
249
+ // so we compensate by applying negative top value via a CSS variable, and scroll back to
250
+ // the original position when enabling scroll again.
251
+ document.body.style.setProperty('--scroll-y-compensation', `-${window.scrollY}px`);
258
252
  document.body.classList.add('overlays-scroll-lock-ios-fix');
259
253
  }
260
254
  if (isIOS) {
@@ -267,20 +261,24 @@ export class OverlaysManager {
267
261
  */
268
262
  requestToEnableScroll(currentController) {
269
263
  const openedSiblings = currentController
270
- ? this.shownList.filter(ctrl => ctrl !== currentController)
264
+ ? this.shownList.filter((ctrl) => ctrl !== currentController)
271
265
  : this.shownList;
272
-
273
266
  const hasOpenSiblingThatPreventsScroll = openedSiblings.some(
274
- ctrl => ctrl.preventsScroll === true,
267
+ (ctrl) => ctrl.preventsScroll === true,
275
268
  );
276
269
  if (hasOpenSiblingThatPreventsScroll) {
277
270
  return;
278
271
  }
279
-
280
272
  const { isIOS, isMacSafari } = browserDetection;
281
273
  document.body.classList.remove('overlays-scroll-lock');
282
274
  if (isIOS || isMacSafari) {
283
275
  document.body.classList.remove('overlays-scroll-lock-ios-fix');
276
+ window.scrollTo({
277
+ top:
278
+ parseInt(document.body.style.getPropertyValue('--scroll-y-compensation') || '0', 10) * -1,
279
+ behavior: 'instant',
280
+ });
281
+ document.body.style.removeProperty('--scroll-y-compensation');
284
282
  }
285
283
  if (isIOS) {
286
284
  document.documentElement.classList.remove('overlays-scroll-lock-ios-fix');
@@ -292,8 +290,8 @@ export class OverlaysManager {
292
290
  * @param {OverlayController} blockingCtrl
293
291
  */
294
292
  requestToShowOnly(blockingCtrl) {
295
- const controllersToHide = this.shownList.filter(ctrl => ctrl !== blockingCtrl);
296
- controllersToHide.forEach(ctrl => ctrl.hide());
293
+ const controllersToHide = this.shownList.filter((ctrl) => ctrl !== blockingCtrl);
294
+ controllersToHide.forEach((ctrl) => ctrl.hide());
297
295
  this.__blockingMap.set(blockingCtrl, controllersToHide);
298
296
  }
299
297
 
@@ -302,10 +300,10 @@ export class OverlaysManager {
302
300
  */
303
301
  retractRequestToShowOnly(blockingCtrl) {
304
302
  if (this.__blockingMap.has(blockingCtrl)) {
305
- const controllersWhichGotHidden = /** @type {OverlayController[]} */ (
306
- this.__blockingMap.get(blockingCtrl)
307
- );
308
- controllersWhichGotHidden.forEach(ctrl => ctrl.show());
303
+ const controllersWhichGotHidden =
304
+ /** @type {OverlayController[]} */
305
+ this.__blockingMap.get(blockingCtrl);
306
+ controllersWhichGotHidden.forEach((ctrl) => ctrl.show());
309
307
  }
310
308
  }
311
309
  }
@@ -18,7 +18,6 @@ export function withClickInteraction() {
18
18
  }
19
19
  controller.toggle();
20
20
  }
21
-
22
21
  return {
23
22
  init: () => {
24
23
  controller.invokerNode?.addEventListener('click', handleOpenClosed);
@@ -49,7 +49,6 @@ export function withHoverInteraction({
49
49
  // completion to intercept it, as capture runs before bubble so we stop it regardless of registration order.
50
50
  /** @type {((e: Event) => void) | null} */
51
51
  let pendingClickSuppressor = null;
52
-
53
52
  function resetActive() {
54
53
  isFocused = false;
55
54
  isHovered = false;
@@ -89,7 +88,11 @@ export function withHoverInteraction({
89
88
  if (!controller.invokerNode?.matches(':focus-visible')) return;
90
89
  }
91
90
  const shouldOpen = isFocused || isHovered;
92
- openClose({ shouldOpen, openTimeout: delayIn, closeTimeout: delayOut });
91
+ openClose({
92
+ shouldOpen,
93
+ openTimeout: delayIn,
94
+ closeTimeout: delayOut,
95
+ });
93
96
  }
94
97
 
95
98
  /** @param {Event} e */
@@ -102,7 +105,6 @@ export function withHoverInteraction({
102
105
  clearTimeout(pendingLongpressTimeout);
103
106
  if (event.pointerType !== 'touch') return;
104
107
  const { type } = event;
105
-
106
108
  if (type === 'pointerdown') {
107
109
  longpressCompleted = false;
108
110
  isLastPointerTouch = true;
@@ -110,12 +112,15 @@ export function withHoverInteraction({
110
112
  longpressCompleted = true;
111
113
  // Intercept the compatibility click the browser generates at the end of the touch sequence.
112
114
  // Capture phase ensures we run before any bubble-phase handler (e.g. a dialog opener).
113
- pendingClickSuppressor = e => e.stopImmediatePropagation();
115
+ pendingClickSuppressor = (e) => e.stopImmediatePropagation();
114
116
  controller.invokerNode?.addEventListener('click', pendingClickSuppressor, {
115
- once: true, // auto-removes after first click
117
+ once: true,
118
+ // auto-removes after first click
116
119
  capture: true,
117
120
  });
118
- openClose({ shouldOpen: true });
121
+ openClose({
122
+ shouldOpen: true,
123
+ });
119
124
  }, longpressDuration);
120
125
  } else {
121
126
  openClose({
@@ -124,14 +129,11 @@ export function withHoverInteraction({
124
129
  });
125
130
  }
126
131
  }
127
-
128
132
  return {
129
133
  init: () => {
130
134
  controller.addEventListener('hide', resetActive);
131
-
132
135
  controller.invokerNode?.addEventListener('focusin', handleHoverAndFocus);
133
136
  controller.invokerNode?.addEventListener('focusout', handleHoverAndFocus);
134
-
135
137
  if (isHoverSupported) {
136
138
  controller.contentNode?.addEventListener('mouseenter', handleHoverAndFocus);
137
139
  controller.contentNode?.addEventListener('mouseleave', handleHoverAndFocus);
@@ -149,10 +151,8 @@ export function withHoverInteraction({
149
151
  },
150
152
  teardown: () => {
151
153
  controller.removeEventListener('hide', resetActive);
152
-
153
154
  controller.invokerNode?.removeEventListener('focusin', handleHoverAndFocus);
154
155
  controller.invokerNode?.removeEventListener('focusout', handleHoverAndFocus);
155
-
156
156
  if (isHoverSupported) {
157
157
  controller.contentNode?.removeEventListener('mouseenter', handleHoverAndFocus);
158
158
  controller.contentNode?.removeEventListener('mouseleave', handleHoverAndFocus);
@@ -4,16 +4,15 @@ import { withClickInteraction } from './visibility-trigger-partials/withClickInt
4
4
  * @typedef {import('../../types/OverlayConfig.js').OverlayConfig} OverlayConfig
5
5
  */
6
6
 
7
- export const withBottomSheetConfig = () =>
8
- /** @type {OverlayConfig} */ ({
9
- hasBackdrop: true,
10
- preventsScroll: true,
11
- trapsKeyboardFocus: true,
12
- hidesOnEsc: true,
13
- placementMode: 'global',
14
- viewportConfig: {
15
- placement: 'bottom',
16
- },
17
- handlesAccessibility: true,
18
- ...withClickInteraction(),
19
- });
7
+ export const withBottomSheetConfig = () => /** @type {OverlayConfig} */ ({
8
+ hasBackdrop: true,
9
+ preventsScroll: true,
10
+ trapsKeyboardFocus: true,
11
+ hidesOnEsc: true,
12
+ placementMode: 'global',
13
+ viewportConfig: {
14
+ placement: 'bottom',
15
+ },
16
+ handlesAccessibility: true,
17
+ ...withClickInteraction(),
18
+ });
@@ -1,4 +1,6 @@
1
1
  import { withPopoverConfig } from './withPopoverConfig.js';
2
-
3
2
  export const withDropdownConfig = () =>
4
- withPopoverConfig({ horizontalFallback: false, placement: 'bottom-start' });
3
+ withPopoverConfig({
4
+ horizontalFallback: false,
5
+ placement: 'bottom-start',
6
+ });