@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
@@ -2,7 +2,6 @@ import { expect, fixture } from '@open-wc/testing';
2
2
  import { html } from 'lit/static-html.js';
3
3
  import { sendKeys } from '@web/test-runner-commands';
4
4
  import sinon from 'sinon';
5
-
6
5
  import '@lion/ui/define/lion-accordion.js';
7
6
 
8
7
  /**
@@ -26,10 +25,8 @@ const basicAccordion = html`
26
25
  function getAccordionChildren(el) {
27
26
  if (el.shadowRoot) {
28
27
  const slot = el.shadowRoot?.querySelector('slot[name=_accordion]');
29
-
30
28
  return slot && slot instanceof HTMLSlotElement ? slot.assignedElements() : [];
31
29
  }
32
-
33
30
  return [];
34
31
  }
35
32
 
@@ -37,25 +34,24 @@ function getAccordionChildren(el) {
37
34
  * @param {LionAccordion} el
38
35
  */
39
36
  function getInvokers(el) {
40
- return getAccordionChildren(el).filter(child => child.classList.contains('invoker'));
37
+ return getAccordionChildren(el).filter((child) => child.classList.contains('invoker'));
41
38
  }
42
39
 
43
40
  /**
44
41
  * @param {LionAccordion} el
45
42
  */
46
43
  function getContents(el) {
47
- return getAccordionChildren(el).filter(child => child.classList.contains('content'));
44
+ return getAccordionChildren(el).filter((child) => child.classList.contains('content'));
48
45
  }
49
-
50
46
  describe('<lion-accordion>', () => {
51
47
  describe('Accordion', () => {
52
48
  it('sets expanded to [] by default', async () => {
53
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
49
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
54
50
  expect(el.expanded).to.deep.equal([]);
55
51
  });
56
-
57
52
  it('can programmatically set expanded', async () => {
58
- const el = /** @type {LionAccordion} */ (
53
+ const el =
54
+ /** @type {LionAccordion} */
59
55
  await fixture(html`
60
56
  <lion-accordion .expanded=${[1]}>
61
57
  <h2 slot="invoker"><button>invoker 1</button></h2>
@@ -63,58 +59,50 @@ describe('<lion-accordion>', () => {
63
59
  <h2 slot="invoker"><button>invoker 2</button></h2>
64
60
  <div slot="content">content 2</div>
65
61
  </lion-accordion>
66
- `)
67
- );
62
+ `);
68
63
  expect(el.expanded).to.deep.equal([1]);
69
-
70
64
  expect(
71
65
  Array.from(getAccordionChildren(el)).find(
72
- child => child.className === 'invoker' && child.hasAttribute('expanded'),
66
+ (child) => child.className === 'invoker' && child.hasAttribute('expanded'),
73
67
  )?.textContent,
74
68
  ).to.equal('invoker 2');
75
-
76
69
  el.expanded = [0];
77
70
  expect(
78
71
  Array.from(getAccordionChildren(el)).find(
79
- child => child.className === 'invoker' && child.hasAttribute('expanded'),
72
+ (child) => child.className === 'invoker' && child.hasAttribute('expanded'),
80
73
  )?.textContent,
81
74
  ).to.equal('invoker 1');
82
75
  });
83
-
84
76
  it('updates expanded with a new array when an invoker is clicked', async () => {
85
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
77
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
86
78
  const invokers = getInvokers(el);
87
79
  const oldExpanded = el.expanded;
88
80
  invokers[1].firstElementChild?.dispatchEvent(new Event('click'));
89
81
  expect(el.expanded).to.not.equal(oldExpanded);
90
82
  });
91
-
92
83
  it('has [expanded] on current expanded invoker which serves as styling hook', async () => {
93
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
84
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
94
85
  const invokers = getInvokers(el);
95
86
  el.expanded = [0];
96
87
  expect(invokers[0]).to.have.attribute('expanded');
97
88
  expect(invokers[1]).to.not.have.attribute('expanded');
98
-
99
89
  el.expanded = [1];
100
90
  expect(invokers[0]).to.not.have.attribute('expanded');
101
91
  expect(invokers[1]).to.have.attribute('expanded');
102
92
  });
103
-
104
93
  it('has [expanded] on current expanded invoker first child which serves as styling hook', async () => {
105
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
94
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
106
95
  const invokers = getInvokers(el);
107
96
  el.expanded = [0];
108
97
  expect(invokers[0].firstElementChild).to.have.attribute('expanded');
109
98
  expect(invokers[1].firstElementChild).to.not.have.attribute('expanded');
110
-
111
99
  el.expanded = [1];
112
100
  expect(invokers[0].firstElementChild).to.not.have.attribute('expanded');
113
101
  expect(invokers[1].firstElementChild).to.have.attribute('expanded');
114
102
  });
115
-
116
103
  it('supports [exclusive] attribute, allowing one collapsible to be open at a time', async () => {
117
- const el = /** @type {LionAccordion} */ (
104
+ const el =
105
+ /** @type {LionAccordion} */
118
106
  await fixture(html`
119
107
  <lion-accordion exclusive>
120
108
  <h2 slot="invoker"><button>invoker 1</button></h2>
@@ -124,11 +112,9 @@ describe('<lion-accordion>', () => {
124
112
  <h2 slot="invoker"><button>invoker 3</button></h2>
125
113
  <div slot="content">content 3</div>
126
114
  </lion-accordion>
127
- `)
128
- );
129
-
115
+ `);
130
116
  const invokerButtons = Array.from(getInvokers(el)).map(
131
- invokerHeadingEl => /** @type {HTMLButtonElement} */ (invokerHeadingEl.firstElementChild),
117
+ (invokerHeadingEl) => /** @type {HTMLButtonElement} */ invokerHeadingEl.firstElementChild,
132
118
  );
133
119
 
134
120
  // We open the first... (nothing different from not [exclusive] so far)
@@ -148,7 +134,6 @@ describe('<lion-accordion>', () => {
148
134
  expect(invokerButtons[0]).to.not.have.attribute('expanded');
149
135
  expect(invokerButtons[1]).to.not.have.attribute('expanded');
150
136
  expect(invokerButtons[2]).to.have.attribute('expanded');
151
-
152
137
  el.exclusive = false;
153
138
 
154
139
  // We open the first... (behaving as default (not [exclusive]) again)
@@ -157,15 +142,13 @@ describe('<lion-accordion>', () => {
157
142
  expect(invokerButtons[1]).to.not.have.attribute('expanded');
158
143
  expect(invokerButtons[2]).to.have.attribute('expanded');
159
144
  });
160
-
161
145
  it('sends event "expanded-changed" for every expanded state change', async () => {
162
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
146
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
163
147
  const spy = sinon.spy();
164
148
  el.addEventListener('expanded-changed', spy);
165
149
  el.expanded = [1];
166
150
  expect(spy).to.have.been.calledOnce;
167
151
  });
168
-
169
152
  it('logs warning if unequal amount of invokers and contents', async () => {
170
153
  const stub = sinon.stub(console, 'warn');
171
154
  await fixture(html`
@@ -180,10 +163,10 @@ describe('<lion-accordion>', () => {
180
163
  );
181
164
  stub.restore();
182
165
  });
183
-
184
166
  it('does not select any elements with slot="invoker" and slot="content" inside slotted elements', async () => {
185
167
  const stub = sinon.stub(console, 'warn');
186
- const el = /** @type {LionAccordion} */ (
168
+ const el =
169
+ /** @type {LionAccordion} */
187
170
  await fixture(html`
188
171
  <lion-accordion>
189
172
  <h2 slot="invoker">
@@ -200,27 +183,22 @@ describe('<lion-accordion>', () => {
200
183
  <p slot="content">Nested content 2</p>
201
184
  </div>
202
185
  </lion-accordion>
203
- `)
204
- );
205
-
186
+ `);
206
187
  const invokers = Array.from(getInvokers(el));
207
188
  const contents = Array.from(getContents(el));
208
-
209
189
  expect(stub.called).to.be.false;
210
190
  expect(invokers.length).to.equal(contents.length);
211
-
212
191
  stub.restore();
213
192
  });
214
193
  });
215
-
216
194
  describe('Accordion navigation', () => {
217
195
  it('sets focusedIndex to null by default', async () => {
218
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
196
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
219
197
  expect(el.focusedIndex).to.equal(-1);
220
198
  });
221
-
222
199
  it('can programmatically set focusedIndex', async () => {
223
- const el = /** @type {LionAccordion} */ (
200
+ const el =
201
+ /** @type {LionAccordion} */
224
202
  await fixture(html`
225
203
  <lion-accordion .focusedIndex=${1}>
226
204
  <h2 slot="invoker"><button>invoker 1</button></h2>
@@ -228,48 +206,43 @@ describe('<lion-accordion>', () => {
228
206
  <h2 slot="invoker"><button>invoker 2</button></h2>
229
207
  <div slot="content">content 2</div>
230
208
  </lion-accordion>
231
- `)
232
- );
209
+ `);
233
210
  expect(el.focusedIndex).to.equal(1);
234
-
235
211
  expect(
236
- Array.from(getInvokers(el)).find(child => child.firstElementChild?.hasAttribute('focused'))
237
- ?.textContent,
212
+ Array.from(getInvokers(el)).find((child) =>
213
+ child.firstElementChild?.hasAttribute('focused'),
214
+ )?.textContent,
238
215
  ).to.equal('invoker 2');
239
-
240
216
  el.focusedIndex = 0;
241
217
  expect(
242
- Array.from(getInvokers(el)).find(child => child.firstElementChild?.hasAttribute('focused'))
243
- ?.textContent,
218
+ Array.from(getInvokers(el)).find((child) =>
219
+ child.firstElementChild?.hasAttribute('focused'),
220
+ )?.textContent,
244
221
  ).to.equal('invoker 1');
245
222
  });
246
-
247
223
  it('has [focused] on current focused invoker first child which serves as styling hook', async () => {
248
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
224
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
249
225
  const invokers = getInvokers(el);
250
226
  el.focusedIndex = 0;
251
227
  expect(invokers[0]).to.not.have.attribute('focused');
252
228
  expect(invokers[1]).to.not.have.attribute('focused');
253
229
  expect(invokers[0].firstElementChild).to.have.attribute('focused');
254
230
  expect(invokers[1].firstElementChild).to.not.have.attribute('focused');
255
-
256
231
  el.focusedIndex = 1;
257
232
  expect(invokers[0]).to.not.have.attribute('focused');
258
233
  expect(invokers[1]).to.not.have.attribute('focused');
259
234
  expect(invokers[0].firstElementChild).to.not.have.attribute('focused');
260
235
  expect(invokers[1].firstElementChild).to.have.attribute('focused');
261
236
  });
262
-
263
237
  it('sends event "focused-changed" for every focused state change', async () => {
264
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
238
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
265
239
  const spy = sinon.spy();
266
240
  el.addEventListener('focused-changed', spy);
267
241
  el.focusedIndex = 1;
268
242
  expect(spy).to.have.been.calledOnce;
269
243
  });
270
-
271
244
  it('tabbing sets the focusedIndex correctly', async () => {
272
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
245
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
273
246
  const invokers = getInvokers(el);
274
247
  el.focusedIndex = 0;
275
248
  expect(el.focusedIndex).to.equal(0);
@@ -279,25 +252,19 @@ describe('<lion-accordion>', () => {
279
252
  expect(el.focusedIndex).to.equal(1);
280
253
  });
281
254
  });
282
-
283
255
  describe('Accordion Contents (slot=content)', () => {
284
256
  it('are visible when corresponding invoker is expanded', async () => {
285
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
257
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
286
258
  el.expanded = [0];
287
-
288
259
  const contents = getContents(el);
289
-
290
260
  setTimeout(() => {
291
261
  expect(contents[0]).to.be.visible;
292
262
  expect(contents[1]).to.be.not.visible;
293
-
294
263
  el.expanded = [1];
295
-
296
264
  expect(contents[0]).to.be.not.visible;
297
265
  expect(contents[1]).to.be.visible;
298
266
  }, 250);
299
267
  });
300
-
301
268
  it.skip('have a DOM structure that allows them to be animated ', async () => {});
302
269
  });
303
270
 
@@ -311,48 +278,52 @@ describe('<lion-accordion>', () => {
311
278
  */
312
279
  describe('User interaction', () => {
313
280
  it('opens/closes an invoker on click', async () => {
314
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
281
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
315
282
  const invokers = getInvokers(el);
316
283
  invokers[1].firstElementChild?.dispatchEvent(new Event('click'));
317
284
  expect(el.expanded).to.deep.equal([1]);
318
-
319
285
  invokers[1].firstElementChild?.dispatchEvent(new Event('click'));
320
286
  expect(el.expanded).to.deep.equal([]);
321
287
  });
322
-
323
288
  it('selects a invoker on click', async () => {
324
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
289
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
325
290
  const invokers = getInvokers(el);
326
291
  invokers[1].firstElementChild?.dispatchEvent(new Event('click'));
327
292
  expect(el.focusedIndex).to.equal(1);
328
293
  });
329
-
330
294
  it('opens/closes invoker on [enter] and [space]', async () => {
331
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
295
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
332
296
  const invokers = getInvokers(el);
333
297
  invokers[0].getElementsByTagName('button')[0].focus();
334
- await sendKeys({ press: 'Enter' });
298
+ await sendKeys({
299
+ press: 'Enter',
300
+ });
335
301
  expect(el.expanded).to.deep.equal([0]);
336
- await sendKeys({ press: 'Space' });
302
+ await sendKeys({
303
+ press: 'Space',
304
+ });
337
305
  expect(el.expanded).to.deep.equal([]);
338
306
  });
339
-
340
307
  it('selects next invoker on [arrow-right] and [arrow-down]', async () => {
341
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
308
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
342
309
  const invokers = getInvokers(el);
343
310
  el.focusedIndex = 0;
344
311
  invokers[0].firstElementChild?.dispatchEvent(
345
- new KeyboardEvent('keydown', { key: 'ArrowRight' }),
312
+ new KeyboardEvent('keydown', {
313
+ key: 'ArrowRight',
314
+ }),
346
315
  );
347
316
  expect(el.focusedIndex).to.equal(1);
348
317
  invokers[0].firstElementChild?.dispatchEvent(
349
- new KeyboardEvent('keydown', { key: 'ArrowDown' }),
318
+ new KeyboardEvent('keydown', {
319
+ key: 'ArrowDown',
320
+ }),
350
321
  );
351
322
  expect(el.focusedIndex).to.equal(2);
352
323
  });
353
-
354
324
  it('selects previous invoker on [arrow-left] and [arrow-up]', async () => {
355
- const el = /** @type {LionAccordion} */ (
325
+ const el =
326
+ /** @type {LionAccordion} */
356
327
  await fixture(html`
357
328
  <lion-accordion .focusedIndex=${1}>
358
329
  <h2 slot="invoker"><button>invoker 1</button></h2>
@@ -362,22 +333,25 @@ describe('<lion-accordion>', () => {
362
333
  <h2 slot="invoker"><button>invoker 3</button></h2>
363
334
  <div slot="content">content 3</div>
364
335
  </lion-accordion>
365
- `)
366
- );
336
+ `);
367
337
  const invokers = getInvokers(el);
368
338
  el.focusedIndex = 2;
369
339
  invokers[2].firstElementChild?.dispatchEvent(
370
- new KeyboardEvent('keydown', { key: 'ArrowLeft' }),
340
+ new KeyboardEvent('keydown', {
341
+ key: 'ArrowLeft',
342
+ }),
371
343
  );
372
344
  expect(el.focusedIndex).to.equal(1);
373
345
  invokers[1].firstElementChild?.dispatchEvent(
374
- new KeyboardEvent('keydown', { key: 'ArrowUp' }),
346
+ new KeyboardEvent('keydown', {
347
+ key: 'ArrowUp',
348
+ }),
375
349
  );
376
350
  expect(el.focusedIndex).to.equal(0);
377
351
  });
378
-
379
352
  it('selects first invoker on [home]', async () => {
380
- const el = /** @type {LionAccordion} */ (
353
+ const el =
354
+ /** @type {LionAccordion} */
381
355
  await fixture(html`
382
356
  <lion-accordion .focusedIndex=${1}>
383
357
  <h2 slot="invoker"><button>invoker 1</button></h2>
@@ -385,22 +359,28 @@ describe('<lion-accordion>', () => {
385
359
  <h2 slot="invoker"><button>invoker 2</button></h2>
386
360
  <div slot="content">content 2</div>
387
361
  </lion-accordion>
388
- `)
389
- );
362
+ `);
390
363
  const invokers = getInvokers(el);
391
- invokers[1].firstElementChild?.dispatchEvent(new KeyboardEvent('keydown', { key: 'Home' }));
364
+ invokers[1].firstElementChild?.dispatchEvent(
365
+ new KeyboardEvent('keydown', {
366
+ key: 'Home',
367
+ }),
368
+ );
392
369
  expect(el.focusedIndex).to.equal(0);
393
370
  });
394
-
395
371
  it('selects last invoker on [end]', async () => {
396
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
372
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
397
373
  const invokers = getInvokers(el);
398
- invokers[0].firstElementChild?.dispatchEvent(new KeyboardEvent('keydown', { key: 'End' }));
374
+ invokers[0].firstElementChild?.dispatchEvent(
375
+ new KeyboardEvent('keydown', {
376
+ key: 'End',
377
+ }),
378
+ );
399
379
  expect(el.focusedIndex).to.equal(2);
400
380
  });
401
-
402
381
  it('stays on last invoker on [arrow-right]', async () => {
403
- const el = /** @type {LionAccordion} */ (
382
+ const el =
383
+ /** @type {LionAccordion} */
404
384
  await fixture(html`
405
385
  <lion-accordion focusedIndex="2">
406
386
  <h2 slot="invoker"><button>invoker 1</button></h2>
@@ -410,17 +390,18 @@ describe('<lion-accordion>', () => {
410
390
  <h2 slot="invoker"><button>invoker 3</button></h2>
411
391
  <div slot="content">content 3</div>
412
392
  </lion-accordion>
413
- `)
414
- );
393
+ `);
415
394
  const invokers = getInvokers(el);
416
395
  invokers[2].firstElementChild?.dispatchEvent(
417
- new KeyboardEvent('keydown', { key: 'ArrowRight' }),
396
+ new KeyboardEvent('keydown', {
397
+ key: 'ArrowRight',
398
+ }),
418
399
  );
419
400
  expect(el.focusedIndex).to.equal(2);
420
401
  });
421
-
422
402
  it('stays on first invoker on [arrow-left]', async () => {
423
- const el = /** @type {LionAccordion} */ (
403
+ const el =
404
+ /** @type {LionAccordion} */
424
405
  await fixture(html`
425
406
  <lion-accordion>
426
407
  <h2 slot="invoker"><button>invoker 1</button></h2>
@@ -430,19 +411,19 @@ describe('<lion-accordion>', () => {
430
411
  <h2 slot="invoker"><button>invoker 3</button></h2>
431
412
  <div slot="content">content 3</div>
432
413
  </lion-accordion>
433
- `)
434
- );
414
+ `);
435
415
  const invokers = getInvokers(el);
436
416
  invokers[0].firstElementChild?.dispatchEvent(
437
- new KeyboardEvent('keydown', { key: 'ArrowLeft' }),
417
+ new KeyboardEvent('keydown', {
418
+ key: 'ArrowLeft',
419
+ }),
438
420
  );
439
421
  expect(el.focusedIndex).to.equal(-1);
440
422
  });
441
423
  });
442
-
443
424
  describe('Content distribution', () => {
444
425
  it('should work with append children', async () => {
445
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
426
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
446
427
  for (let i = 4; i < 6; i += 1) {
447
428
  const invoker = document.createElement('h2');
448
429
  const button = document.createElement('button');
@@ -457,17 +438,15 @@ describe('<lion-accordion>', () => {
457
438
  }
458
439
  el.expanded = [4];
459
440
  await el.updateComplete;
460
-
461
441
  expect(
462
- Array.from(getInvokers(el)).find(child => child.hasAttribute('expanded'))?.textContent,
442
+ Array.from(getInvokers(el)).find((child) => child.hasAttribute('expanded'))?.textContent,
463
443
  ).to.equal('invoker 5');
464
444
  expect(
465
- Array.from(getContents(el)).find(child => child.hasAttribute('expanded'))?.textContent,
445
+ Array.from(getContents(el)).find((child) => child.hasAttribute('expanded'))?.textContent,
466
446
  ).to.equal('content 5');
467
447
  });
468
-
469
448
  it('should add order style property to each invoker and content', async () => {
470
- const el = /** @type {LionAccordion} */ (await fixture(basicAccordion));
449
+ const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
471
450
  for (let i = 4; i < 6; i += 1) {
472
451
  const invoker = document.createElement('h2');
473
452
  const button = document.createElement('button');
@@ -481,12 +460,12 @@ describe('<lion-accordion>', () => {
481
460
  el.append(content);
482
461
  }
483
462
  await el.updateComplete;
484
- const invokers = /** @type {HTMLElement[]} */ (
485
- Array.from(el.querySelectorAll('[slot=invoker]'))
486
- );
487
- const contents = /** @type {HTMLElement[]} */ (
488
- Array.from(el.querySelectorAll('[slot=content]'))
489
- );
463
+ const invokers =
464
+ /** @type {HTMLElement[]} */
465
+ Array.from(el.querySelectorAll('[slot=invoker]'));
466
+ const contents =
467
+ /** @type {HTMLElement[]} */
468
+ Array.from(el.querySelectorAll('[slot=content]'));
490
469
  invokers.forEach((invoker, index) => {
491
470
  const content = contents[index];
492
471
  expect(invoker.style.getPropertyValue('order')).to.equal(`${index + 1}`);
@@ -494,7 +473,6 @@ describe('<lion-accordion>', () => {
494
473
  });
495
474
  });
496
475
  });
497
-
498
476
  describe('Accessibility', () => {
499
477
  it('does not make contents focusable', async () => {
500
478
  const el = await fixture(html`
@@ -508,16 +486,16 @@ describe('<lion-accordion>', () => {
508
486
 
509
487
  // console.log(getAccordionChildren(el));
510
488
  expect(
511
- Array.from(getAccordionChildren(el)).find(child => child.classList.contains('content')),
489
+ Array.from(getAccordionChildren(el)).find((child) => child.classList.contains('content')),
512
490
  ).to.not.have.attribute('tabindex');
513
491
  expect(
514
- Array.from(getAccordionChildren(el)).find(child => child.classList.contains('content')),
492
+ Array.from(getAccordionChildren(el)).find((child) => child.classList.contains('content')),
515
493
  ).to.not.have.attribute('tabindex');
516
494
  });
517
-
518
495
  describe('Invokers', () => {
519
496
  it('links ids of content items to invoker first child via [aria-controls]', async () => {
520
- const el = /** @type {LionAccordion} */ (
497
+ const el =
498
+ /** @type {LionAccordion} */
521
499
  await fixture(html`
522
500
  <lion-accordion>
523
501
  <h2 id="h1" slot="invoker"><button>invoker 1</button></h2>
@@ -525,8 +503,7 @@ describe('<lion-accordion>', () => {
525
503
  <h2 id="h2" slot="invoker"><button>invoker 2</button></h2>
526
504
  <div id="p2" slot="content">content 2</div>
527
505
  </lion-accordion>
528
- `)
529
- );
506
+ `);
530
507
  const invokers = getInvokers(el);
531
508
  const contents = getContents(el);
532
509
  expect(invokers[0].firstElementChild?.getAttribute('aria-controls')).to.equal(
@@ -536,31 +513,29 @@ describe('<lion-accordion>', () => {
536
513
  contents[1].id,
537
514
  );
538
515
  });
539
-
540
516
  it('adds aria-expanded="false" to invoker when its content is not expanded', async () => {
541
- const el = /** @type {LionAccordion} */ (
517
+ const el =
518
+ /** @type {LionAccordion} */
542
519
  await fixture(html`
543
520
  <lion-accordion>
544
521
  <h2 slot="invoker"><button>invoker</button></h2>
545
522
  <div slot="content">content</div>
546
523
  </lion-accordion>
547
- `)
548
- );
524
+ `);
549
525
  expect(Array.from(getInvokers(el))[0]?.firstElementChild).to.have.attribute(
550
526
  'aria-expanded',
551
527
  'false',
552
528
  );
553
529
  });
554
-
555
530
  it('adds aria-expanded="true" to invoker when its content is expanded', async () => {
556
- const el = /** @type {LionAccordion} */ (
531
+ const el =
532
+ /** @type {LionAccordion} */
557
533
  await fixture(html`
558
534
  <lion-accordion>
559
535
  <h2 slot="invoker"><button>invoker</button></h2>
560
536
  <div slot="content">content</div>
561
537
  </lion-accordion>
562
- `)
563
- );
538
+ `);
564
539
  el.expanded = [0];
565
540
  expect(Array.from(getInvokers(el))[0]?.firstElementChild).to.have.attribute(
566
541
  'aria-expanded',
@@ -568,10 +543,10 @@ describe('<lion-accordion>', () => {
568
543
  );
569
544
  });
570
545
  });
571
-
572
546
  describe('Contents', () => {
573
547
  it('adds aria-labelledby referring to invoker ids', async () => {
574
- const el = /** @type {LionAccordion} */ (
548
+ const el =
549
+ /** @type {LionAccordion} */
575
550
  await fixture(html`
576
551
  <lion-accordion>
577
552
  <h2 slot="invoker"><button>invoker 1</button></h2>
@@ -579,8 +554,7 @@ describe('<lion-accordion>', () => {
579
554
  <h2 slot="invoker"><button>invoker 2</button></h2>
580
555
  <div slot="content">content 2</div>
581
556
  </lion-accordion>
582
- `)
583
- );
557
+ `);
584
558
  const contents = getContents(el);
585
559
  const invokers = getInvokers(el);
586
560
  expect(contents[0]).to.have.attribute('aria-labelledby', invokers[0].firstElementChild?.id);
@@ -1,6 +1,5 @@
1
1
  import { html, LitElement, css } from 'lit';
2
2
  import { DisabledWithTabIndexMixin } from '@lion/ui/core.js';
3
-
4
3
  const isKeyboardClickEvent = (/** @type {KeyboardEvent} */ e) => e.key === ' ' || e.key === 'Enter';
5
4
  const isSpaceKeyboardClickEvent = (/** @type {KeyboardEvent} */ e) => e.key === ' ';
6
5
 
@@ -33,15 +32,19 @@ const isSpaceKeyboardClickEvent = (/** @type {KeyboardEvent} */ e) => e.key ===
33
32
  export class LionButton extends DisabledWithTabIndexMixin(LitElement) {
34
33
  static get properties() {
35
34
  return {
36
- active: { type: Boolean, reflect: true },
37
- type: { type: String, reflect: true },
35
+ active: {
36
+ type: Boolean,
37
+ reflect: true,
38
+ },
39
+ type: {
40
+ type: String,
41
+ reflect: true,
42
+ },
38
43
  };
39
44
  }
40
-
41
45
  render() {
42
46
  return html` <div class="button-content"><slot></slot></div> `;
43
47
  }
44
-
45
48
  static get styles() {
46
49
  return [
47
50
  css`
@@ -123,15 +126,12 @@ export class LionButton extends DisabledWithTabIndexMixin(LitElement) {
123
126
  `,
124
127
  ];
125
128
  }
126
-
127
129
  constructor() {
128
130
  super();
129
131
  this.type = 'button';
130
132
  this.active = false;
131
-
132
133
  this.__setupEvents();
133
134
  }
134
-
135
135
  connectedCallback() {
136
136
  super.connectedCallback();
137
137
  if (!this.hasAttribute('role')) {
@@ -144,7 +144,6 @@ export class LionButton extends DisabledWithTabIndexMixin(LitElement) {
144
144
  */
145
145
  updated(changedProperties) {
146
146
  super.updated(changedProperties);
147
-
148
147
  if (changedProperties.has('disabled')) {
149
148
  if (this.disabled) {
150
149
  this.setAttribute('aria-disabled', 'true');
@@ -188,16 +187,14 @@ export class LionButton extends DisabledWithTabIndexMixin(LitElement) {
188
187
  }
189
188
  return;
190
189
  }
191
-
192
190
  if (isSpaceKeyboardClickEvent(event)) {
193
191
  event.preventDefault();
194
192
  }
195
-
196
193
  this.active = true;
197
194
  /**
198
195
  * @param {KeyboardEvent} keyupEvent
199
196
  */
200
- const keyupHandler = keyupEvent => {
197
+ const keyupHandler = (keyupEvent) => {
201
198
  if (isKeyboardClickEvent(keyupEvent)) {
202
199
  this.active = false;
203
200
  document.removeEventListener('keyup', keyupHandler, true);