@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, html, unsafeStatic } from '@open-wc/testing';
2
2
 
3
3
  // eslint-disable-next-line import/no-extraneous-dependencies
4
4
  import sinon from 'sinon';
5
-
6
5
  import '@lion/ui/define/lion-input.js';
7
6
  import '@lion/ui/define/lion-input-amount.js';
8
7
  import '@lion/ui/define/lion-input-date.js';
@@ -28,7 +27,6 @@ import '@lion/ui/define/lion-fieldset.js';
28
27
  import '@lion/ui/define/lion-form.js';
29
28
  import '@lion/ui/define/lion-field.js';
30
29
  import '@lion/ui/define/lion-validation-feedback.js';
31
-
32
30
  import { getFormControlMembers } from '@lion/ui/form-core-test-helpers.js';
33
31
 
34
32
  /**
@@ -49,14 +47,11 @@ function getProtectedMembers(el) {
49
47
  repropagationRole: el._repropagationRole,
50
48
  };
51
49
  }
52
-
53
50
  const featureName = 'model value';
54
-
55
- const getFirstPaintTitle = /** @param {number} count */ count =>
51
+ const getFirstPaintTitle = /** @param {number} count */ (count) =>
56
52
  `should dispatch ${count} time(s) on first paint`;
57
- const getInteractionTitle = /** @param {number} count */ count =>
53
+ const getInteractionTitle = /** @param {number} count */ (count) =>
58
54
  `should dispatch ${count} time(s) on interaction`;
59
-
60
55
  const firstStampCount = 1;
61
56
  const interactionCount = 1;
62
57
 
@@ -81,7 +76,7 @@ const fieldDispatchesCountOnInteraction = (tagname, count) => {
81
76
  const tag = unsafeStatic(tagname);
82
77
  const spy = sinon.spy();
83
78
  it(getInteractionTitle(count), async () => {
84
- const el = /** @type {LionField} */ (await fixture(html`<${tag}></${tag}>`));
79
+ const el = /** @type {LionField} */ await fixture(html`<${tag}></${tag}>`);
85
80
  el.addEventListener('model-value-changed', spy);
86
81
  // TODO: discuss if this is the "correct" way to interact with component
87
82
  el.modelValue = 'foo';
@@ -111,9 +106,9 @@ const choiceDispatchesCountOnInteraction = (tagname, count) => {
111
106
  const tag = unsafeStatic(tagname);
112
107
  const spy = sinon.spy();
113
108
  it(getInteractionTitle(count), async () => {
114
- const el = /** @type {HTMLElement & {checked: boolean}} */ (
115
- await fixture(html`<${tag} .choiceValue="${'option'}"></${tag}>`)
116
- );
109
+ const el =
110
+ /** @type {HTMLElement & {checked: boolean}} */
111
+ await fixture(html`<${tag} .choiceValue="${'option'}"></${tag}>`);
117
112
  el.addEventListener('model-value-changed', spy);
118
113
  el.checked = true;
119
114
  expect(spy.callCount).to.equal(count);
@@ -137,7 +132,6 @@ const choiceGroupDispatchesCountOnFirstPaint = (groupTagname, itemTagname, count
137
132
  <${itemTag} .choiceValue="${'option3'}"></${itemTag}>
138
133
  </${groupTag}>
139
134
  `);
140
-
141
135
  expect(spy.callCount).to.equal(count);
142
136
  });
143
137
  };
@@ -159,24 +153,20 @@ const choiceGroupDispatchesCountOnInteraction = (groupTagname, itemTagname, coun
159
153
  <${itemTag} .choiceValue="${'option3'}"></${itemTag}>
160
154
  </${groupTag}>
161
155
  `);
162
-
163
156
  el.addEventListener('model-value-changed', spy);
164
- const option2 = /** @type {HTMLElement & {checked: boolean}} */ (
165
- el.querySelector(`${itemTagname}:nth-child(2)`)
166
- );
157
+ const option2 =
158
+ /** @type {HTMLElement & {checked: boolean}} */
159
+ el.querySelector(`${itemTagname}:nth-child(2)`);
167
160
  option2.checked = true;
168
161
  expect(spy.callCount).to.equal(count);
169
-
170
162
  spy.resetHistory();
171
-
172
- const option3 = /** @type {HTMLElement & {checked: boolean}} */ (
173
- el.querySelector(`${itemTagname}:nth-child(3)`)
174
- );
163
+ const option3 =
164
+ /** @type {HTMLElement & {checked: boolean}} */
165
+ el.querySelector(`${itemTagname}:nth-child(3)`);
175
166
  option3.checked = true;
176
167
  expect(spy.callCount).to.equal(count);
177
168
  });
178
169
  };
179
-
180
170
  [
181
171
  'input',
182
172
  'input-amount',
@@ -186,7 +176,7 @@ const choiceGroupDispatchesCountOnInteraction = (groupTagname, itemTagname, coun
186
176
  'input-iban',
187
177
  'input-range',
188
178
  'textarea',
189
- ].forEach(chunk => {
179
+ ].forEach((chunk) => {
190
180
  const tagname = `lion-${chunk}`;
191
181
  describe(`${tagname}`, () => {
192
182
  describe(featureName, () => {
@@ -195,18 +185,15 @@ const choiceGroupDispatchesCountOnInteraction = (groupTagname, itemTagname, coun
195
185
  });
196
186
  });
197
187
  });
198
-
199
- ['checkbox', 'radio'].forEach(chunk => {
188
+ ['checkbox', 'radio'].forEach((chunk) => {
200
189
  const groupTagname = `lion-${chunk}-group`;
201
190
  const itemTagname = `lion-${chunk}`;
202
-
203
191
  describe(`${itemTagname}`, () => {
204
192
  describe(featureName, () => {
205
193
  choiceDispatchesCountOnFirstPaint(itemTagname, firstStampCount);
206
194
  choiceDispatchesCountOnInteraction(itemTagname, interactionCount);
207
195
  });
208
196
  });
209
-
210
197
  describe(`${groupTagname}`, () => {
211
198
  describe(featureName, () => {
212
199
  choiceGroupDispatchesCountOnFirstPaint(groupTagname, itemTagname, firstStampCount);
@@ -214,13 +201,12 @@ const choiceGroupDispatchesCountOnInteraction = (groupTagname, itemTagname, coun
214
201
  });
215
202
  });
216
203
  });
217
-
218
204
  describe('lion-select', () => {
219
205
  describe(featureName, () => {
220
206
  it(getFirstPaintTitle(firstStampCount), async () => {
221
207
  const spy = sinon.spy();
222
208
  await fixture(html`
223
- <lion-select @model-value-changed="${/** @type {function} */ (spy)}">
209
+ <lion-select @model-value-changed="${/** @type {function} */ spy}">
224
210
  <select slot="input">
225
211
  <option value="option1"></option>
226
212
  <option value="option2"></option>
@@ -230,10 +216,10 @@ describe('lion-select', () => {
230
216
  `);
231
217
  expect(spy.callCount).to.equal(firstStampCount);
232
218
  });
233
-
234
219
  it(getInteractionTitle(interactionCount), async () => {
235
220
  const spy = sinon.spy();
236
- const el = /** @type {LionSelect} */ (
221
+ const el =
222
+ /** @type {LionSelect} */
237
223
  await fixture(html`
238
224
  <lion-select>
239
225
  <select slot="input">
@@ -242,32 +228,27 @@ describe('lion-select', () => {
242
228
  <option value="option3"></option>
243
229
  </select>
244
230
  </lion-select>
245
- `)
246
- );
231
+ `);
247
232
  el.addEventListener('model-value-changed', spy);
248
- const option2 = /** @type {HTMLOptionElement} */ (el.querySelector('option:nth-child(2)'));
233
+ const option2 = /** @type {HTMLOptionElement} */ el.querySelector('option:nth-child(2)');
249
234
 
250
235
  // mimic user input
251
236
  option2.selected = true;
252
237
  el._inputNode.dispatchEvent(new CustomEvent('change'));
253
-
254
238
  expect(spy.callCount).to.equal(interactionCount);
255
-
256
239
  spy.resetHistory();
257
-
258
- const option3 = /** @type {HTMLOptionElement} */ (el.querySelector('option:nth-child(3)'));
240
+ const option3 = /** @type {HTMLOptionElement} */ el.querySelector('option:nth-child(3)');
259
241
 
260
242
  // mimic user input
261
243
  option3.selected = true;
262
244
  el._inputNode.dispatchEvent(new CustomEvent('change'));
263
-
264
245
  expect(spy.callCount).to.equal(interactionCount);
265
246
  });
266
247
  });
267
248
  });
268
249
 
269
250
  // TODO: change back order when scoped-elements (polyfill) fixed side effects
270
- ['select-rich', 'combobox', 'listbox'].forEach(chunk => {
251
+ ['select-rich', 'combobox', 'listbox'].forEach((chunk) => {
271
252
  const tagname = `lion-${chunk}`;
272
253
  const tag = unsafeStatic(tagname);
273
254
  describe(`${tagname}`, () => {
@@ -281,10 +262,8 @@ describe('lion-select', () => {
281
262
  <lion-option .choiceValue="${'option3'}"></lion-option>
282
263
  </${tag}>
283
264
  `);
284
-
285
265
  expect(spy.callCount).to.equal(firstStampCount);
286
266
  });
287
-
288
267
  it(getInteractionTitle(interactionCount), async () => {
289
268
  const spy = sinon.spy();
290
269
  const el = await fixture(html`
@@ -295,33 +274,28 @@ describe('lion-select', () => {
295
274
  </${tag}>
296
275
  `);
297
276
  el.addEventListener('model-value-changed', spy);
298
- const option2 = /** @type {LionOption} */ (el.querySelector('lion-option:nth-child(2)'));
277
+ const option2 = /** @type {LionOption} */ el.querySelector('lion-option:nth-child(2)');
299
278
  option2.checked = true;
300
279
  expect(spy.callCount).to.equal(interactionCount);
301
-
302
280
  spy.resetHistory();
303
-
304
- const option3 = /** @type {LionOption} */ (el.querySelector('lion-option:nth-child(3)'));
281
+ const option3 = /** @type {LionOption} */ el.querySelector('lion-option:nth-child(3)');
305
282
  option3.checked = true;
306
283
  expect(spy.callCount).to.equal(interactionCount);
307
284
  });
308
285
  });
309
286
  });
310
287
  });
311
-
312
288
  describe('lion-fieldset', () => {
313
289
  describe(featureName, () => {
314
290
  it(getFirstPaintTitle(firstStampCount), async () => {
315
291
  const spy = sinon.spy();
316
292
  await fixture(html`
317
- <lion-fieldset name="parent" @model-value-changed="${/** @type {function} */ (spy)}">
293
+ <lion-fieldset name="parent" @model-value-changed="${/** @type {function} */ spy}">
318
294
  <lion-input name="input"></lion-input>
319
295
  </lion-fieldset>
320
296
  `);
321
-
322
297
  expect(spy.callCount).to.equal(firstStampCount);
323
298
  });
324
-
325
299
  it(getInteractionTitle(interactionCount), async () => {
326
300
  const spy = sinon.spy();
327
301
  const el = await fixture(html`
@@ -329,15 +303,13 @@ describe('lion-fieldset', () => {
329
303
  <lion-input name="input"></lion-input>
330
304
  </lion-fieldset>
331
305
  `);
332
-
333
306
  el.addEventListener('model-value-changed', spy);
334
- const input = /** @type {LionInput} */ (el.querySelector('lion-input'));
307
+ const input = /** @type {LionInput} */ el.querySelector('lion-input');
335
308
  input.modelValue = 'foo';
336
309
  expect(spy.callCount).to.equal(interactionCount);
337
310
  });
338
311
  });
339
312
  });
340
-
341
313
  describe('detail.isTriggeredByUser', () => {
342
314
  const allFormControls = [
343
315
  // 1) Fields
@@ -398,9 +370,9 @@ describe('detail.isTriggeredByUser', () => {
398
370
  * - false: when child formElement condition for RegularField is not met
399
371
  */
400
372
 
401
- const featureDetectChoiceField = /** @param {HTMLElement} el */ el =>
373
+ const featureDetectChoiceField = /** @param {HTMLElement} el */ (el) =>
402
374
  'checked' in el && 'choiceValue' in el;
403
- const featureDetectOptionChoiceField = /** @param {HTMLElement} el */ el => 'active' in el;
375
+ const featureDetectOptionChoiceField = /** @param {HTMLElement} el */ (el) => 'active' in el;
404
376
 
405
377
  /**
406
378
  * @param {FormControl} el
@@ -430,7 +402,11 @@ describe('detail.isTriggeredByUser', () => {
430
402
  if (type === 'RegularField') {
431
403
  userInputEv = _inputNode.tagName === 'SELECT' ? 'change' : 'input';
432
404
  el.value = newViewValue; // eslint-disable-line no-param-reassign
433
- _inputNode.dispatchEvent(new Event(userInputEv, { bubbles: true }));
405
+ _inputNode.dispatchEvent(
406
+ new Event(userInputEv, {
407
+ bubbles: true,
408
+ }),
409
+ );
434
410
  } else if (type === 'ChoiceField') {
435
411
  if (options?.labelInsteadOfInput) {
436
412
  _labelNode.click();
@@ -439,21 +415,43 @@ describe('detail.isTriggeredByUser', () => {
439
415
  }
440
416
  } else if (type === 'OptionChoiceField') {
441
417
  if (!options?.triggerType) {
442
- el.dispatchEvent(new Event('click', { bubbles: true }));
418
+ el.dispatchEvent(
419
+ new Event('click', {
420
+ bubbles: true,
421
+ }),
422
+ );
443
423
  } else if (options?.triggerType === 'keypress') {
444
- el.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }));
445
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true }));
446
- el.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter', bubbles: true }));
447
- el.dispatchEvent(new KeyboardEvent('keyup', { key: 'Enter', bubbles: true }));
424
+ el.dispatchEvent(
425
+ new KeyboardEvent('keydown', {
426
+ key: 'ArrowDown',
427
+ bubbles: true,
428
+ }),
429
+ );
430
+ el.dispatchEvent(
431
+ new KeyboardEvent('keyup', {
432
+ key: 'ArrowDown',
433
+ bubbles: true,
434
+ }),
435
+ );
436
+ el.dispatchEvent(
437
+ new KeyboardEvent('keydown', {
438
+ key: 'Enter',
439
+ bubbles: true,
440
+ }),
441
+ );
442
+ el.dispatchEvent(
443
+ new KeyboardEvent('keyup', {
444
+ key: 'Enter',
445
+ bubbles: true,
446
+ }),
447
+ );
448
448
  }
449
449
  }
450
450
  }
451
-
452
- allFormControls.forEach(controlName => {
451
+ allFormControls.forEach((controlName) => {
453
452
  it(`lion-${controlName} adds "detail.isTriggeredByUser" to model-value-changed event`, async () => {
454
453
  // TODO: add test for user input via calendar
455
454
  const spy = sinon.spy();
456
-
457
455
  const tagname = `lion-${controlName}`;
458
456
  const tag = unsafeStatic(tagname);
459
457
  let childrenEl;
@@ -468,14 +466,11 @@ describe('detail.isTriggeredByUser', () => {
468
466
  } else if (controlName === 'field') {
469
467
  childrenEl = await fixture(html`<input slot="input" />`);
470
468
  }
471
-
472
469
  const name = controlName === 'checkbox-group' ? 'test[]' : 'test';
473
470
  const el =
474
- /** @type {LitElement & FormControl & {value: string} & {registrationComplete: Promise<boolean>} & {formElements: Array.<FormControl & {value: string}>}} */ (
475
- await fixture(html`<${tag} name="${name}">${childrenEl}</${tag}>`)
476
- );
471
+ /** @type {LitElement & FormControl & {value: string} & {registrationComplete: Promise<boolean>} & {formElements: Array.<FormControl & {value: string}>}} */
472
+ await fixture(html`<${tag} name="${name}">${childrenEl}</${tag}>`);
477
473
  await el.registrationComplete;
478
-
479
474
  el.addEventListener('model-value-changed', spy);
480
475
 
481
476
  /**
@@ -508,32 +503,35 @@ describe('detail.isTriggeredByUser', () => {
508
503
  { parent, testKeyboardBehavior } = {},
509
504
  ) {
510
505
  const type = detectType(formControl);
511
-
512
506
  await resetChoiceFieldToForceRepropagation(formControl);
513
507
  mimicUserInput(formControl, 'userValue');
514
-
515
508
  expect(spy.firstCall.args[0].detail.isTriggeredByUser).to.be.true;
516
-
517
509
  await resetChoiceFieldToForceRepropagation(formControl);
518
- mimicUserInput(formControl, 'userValue', { labelInsteadOfInput: true });
510
+ mimicUserInput(formControl, 'userValue', {
511
+ labelInsteadOfInput: true,
512
+ });
519
513
  expect(spy.firstCall.args[0].detail.isTriggeredByUser).to.be.true;
520
-
521
514
  await resetChoiceFieldToForceRepropagation(formControl);
522
515
  // eslint-disable-next-line no-param-reassign
523
516
  formControl.checked = true;
524
517
  expect(spy.firstCall.args[0].detail.isTriggeredByUser).to.be.false;
525
518
 
526
519
  // eslint-disable-next-line no-param-reassign
527
- formControl.modelValue = { value: 'programmaticValue', checked: false };
520
+ formControl.modelValue = {
521
+ value: 'programmaticValue',
522
+ checked: false,
523
+ };
528
524
  expect(spy.secondCall.args[0].detail.isTriggeredByUser).to.be.false;
529
-
530
525
  if (
531
526
  type === 'OptionChoiceField' &&
532
527
  testKeyboardBehavior &&
533
528
  parent?.constructor.name !== 'LionCombobox' // modelValue only changeable via click or textbox
534
529
  ) {
535
530
  await resetChoiceFieldToForceRepropagation(formControl);
536
- mimicUserInput(formControl, 'userValue', { triggerType: 'keypress', parent });
531
+ mimicUserInput(formControl, 'userValue', {
532
+ triggerType: 'keypress',
533
+ parent,
534
+ });
537
535
  try {
538
536
  expect(spy.firstCall.args[0].detail.isTriggeredByUser).to.be.true;
539
537
  } catch (e) {
@@ -10,9 +10,8 @@ import sinon from 'sinon';
10
10
  * @typedef {import('../../fieldset/src/LionFieldset.js').LionFieldset} LionFieldset
11
11
  * @typedef {import('lit').TemplateResult} TemplateResult
12
12
  */
13
- const inputFixture = /** @type {(arg: TemplateResult) => Promise<LionInput>} */ (fixture);
14
- const fieldsetFixture = /** @type {(arg: TemplateResult) => Promise<LionFieldset>} */ (fixture);
15
-
13
+ const inputFixture = /** @type {(arg: TemplateResult) => Promise<LionInput>} */ fixture;
14
+ const fieldsetFixture = /** @type {(arg: TemplateResult) => Promise<LionFieldset>} */ fixture;
16
15
  describe('model value event', () => {
17
16
  describe('form path', () => {
18
17
  it('should be property', async () => {
@@ -23,7 +22,6 @@ describe('model value event', () => {
23
22
  const e = spy.firstCall.args[0];
24
23
  expect(e.detail).to.have.property('formPath');
25
24
  });
26
-
27
25
  it('should contain dispatching field', async () => {
28
26
  const spy = sinon.spy();
29
27
  const input = await inputFixture(html`<lion-input></lion-input>`);
@@ -32,7 +30,6 @@ describe('model value event', () => {
32
30
  const e = spy.firstCall.args[0];
33
31
  expect(e.detail.formPath).to.eql([input]);
34
32
  });
35
-
36
33
  it('should contain field and group', async () => {
37
34
  const spy = sinon.spy();
38
35
  const fieldset = await fieldsetFixture(html`
@@ -42,12 +39,11 @@ describe('model value event', () => {
42
39
  `);
43
40
  await fieldset.registrationComplete;
44
41
  fieldset.addEventListener('model-value-changed', spy);
45
- const input = /** @type {LionInput} */ (fieldset.querySelector('lion-input'));
42
+ const input = /** @type {LionInput} */ fieldset.querySelector('lion-input');
46
43
  input.modelValue = 'foo';
47
44
  const e = spy.firstCall.args[0];
48
45
  expect(e.detail.formPath).to.eql([input, fieldset]);
49
46
  });
50
-
51
47
  it('should contain deep elements', async () => {
52
48
  const spy = sinon.spy();
53
49
  const grandparent = await fieldsetFixture(html`
@@ -57,17 +53,15 @@ describe('model value event', () => {
57
53
  </lion-fieldset>
58
54
  </lion-fieldset>
59
55
  `);
60
- const parent = /** @type {LionFieldset} */ (grandparent.querySelector('[name=parent]'));
61
- const input = /** @type {LionInput} */ (grandparent.querySelector('[name=input]'));
56
+ const parent = /** @type {LionFieldset} */ grandparent.querySelector('[name=parent]');
57
+ const input = /** @type {LionInput} */ grandparent.querySelector('[name=input]');
62
58
  await grandparent.registrationComplete;
63
59
  await parent.registrationComplete;
64
-
65
60
  grandparent.addEventListener('model-value-changed', spy);
66
61
  input.modelValue = 'foo';
67
62
  const e = spy.firstCall.args[0];
68
63
  expect(e.detail.formPath).to.eql([input, parent, grandparent]);
69
64
  });
70
-
71
65
  it('should ignore elements that are not fields or fieldsets', async () => {
72
66
  const spy = sinon.spy();
73
67
  const grandparent = await fieldsetFixture(html`
@@ -83,18 +77,16 @@ describe('model value event', () => {
83
77
  </div>
84
78
  </lion-fieldset>
85
79
  `);
86
- const parent = /** @type {LionFieldset} */ (grandparent.querySelector('[name=parent]'));
87
- const input = /** @type {LionInput} */ (grandparent.querySelector('[name=input]'));
80
+ const parent = /** @type {LionFieldset} */ grandparent.querySelector('[name=parent]');
81
+ const input = /** @type {LionInput} */ grandparent.querySelector('[name=input]');
88
82
  await grandparent.registrationComplete;
89
83
  await parent.registrationComplete;
90
-
91
84
  grandparent.addEventListener('model-value-changed', spy);
92
85
  input.modelValue = 'foo';
93
86
  const e = spy.firstCall.args[0];
94
87
  expect(e.detail.formPath).to.eql([input, parent, grandparent]);
95
88
  });
96
89
  });
97
-
98
90
  describe('signature', () => {
99
91
  /** @type {any} */
100
92
  let e;
@@ -114,12 +106,10 @@ describe('model value event', () => {
114
106
  it.skip('should not bubble', async () => {
115
107
  expect(e.bubbles).to.be.false;
116
108
  });
117
-
118
109
  it('should not leave shadow boundary', async () => {
119
110
  expect(e.composed).to.be.false;
120
111
  });
121
112
  });
122
-
123
113
  describe('propagation', () => {
124
114
  it('should dispatch different event at each level', async () => {
125
115
  const grandparent = await fieldsetFixture(html`
@@ -129,14 +119,14 @@ describe('model value event', () => {
129
119
  </lion-fieldset>
130
120
  </lion-fieldset>
131
121
  `);
132
- const parent = /** @type {LionFieldset} */ (grandparent.querySelector('[name="parent"]'));
133
- const input = /** @type {LionInput} */ (grandparent.querySelector('[name="input"]'));
122
+ const parent = /** @type {LionFieldset} */ grandparent.querySelector('[name="parent"]');
123
+ const input = /** @type {LionInput} */ grandparent.querySelector('[name="input"]');
134
124
  await grandparent.registrationComplete;
135
125
  await parent.registrationComplete;
136
126
 
137
127
  /** @type {sinon.SinonSpy[]} */
138
128
  const spies = [];
139
- [grandparent, parent, input].forEach(element => {
129
+ [grandparent, parent, input].forEach((element) => {
140
130
  const spy = sinon.spy();
141
131
  spies.push(spy);
142
132
  element.addEventListener('model-value-changed', spy);
@@ -6,12 +6,19 @@ export class SbActionLogger extends LitElement {
6
6
  static get properties() {
7
7
  return {
8
8
  // eslint-disable-next-line lit/no-native-attributes
9
- title: { type: String, reflect: true },
10
- simple: { type: Boolean, reflect: true },
11
- __logCounter: { type: Number },
9
+ title: {
10
+ type: String,
11
+ reflect: true,
12
+ },
13
+ simple: {
14
+ type: Boolean,
15
+ reflect: true,
16
+ },
17
+ __logCounter: {
18
+ type: Number,
19
+ },
12
20
  };
13
21
  }
14
-
15
22
  static get styles() {
16
23
  return [
17
24
  css`
@@ -132,7 +139,6 @@ export class SbActionLogger extends LitElement {
132
139
  `,
133
140
  ];
134
141
  }
135
-
136
142
  constructor() {
137
143
  super();
138
144
  // eslint-disable-next-line wc/no-constructor-attributes
@@ -140,10 +146,9 @@ export class SbActionLogger extends LitElement {
140
146
  this.simple = false;
141
147
  this.__logCounter = 0;
142
148
  }
143
-
144
149
  get loggerEl() {
145
- return /** @type {HTMLElement} */ (
146
- /** @type {ShadowRoot} */ (this.shadowRoot).querySelector('.logger')
150
+ return /** @type {HTMLElement} */ /** @type {ShadowRoot} */ this.shadowRoot.querySelector(
151
+ '.logger',
147
152
  );
148
153
  }
149
154
 
@@ -156,11 +161,9 @@ export class SbActionLogger extends LitElement {
156
161
  */
157
162
  log(content) {
158
163
  this.__animateCue();
159
-
160
164
  if (this.simple) {
161
165
  this.__clearLogs();
162
166
  }
163
-
164
167
  if (this.__isConsecutiveDuplicateLog(content)) {
165
168
  this.__handleConsecutiveDuplicateLog();
166
169
  } else {
@@ -170,7 +173,6 @@ export class SbActionLogger extends LitElement {
170
173
  behavior: 'smooth',
171
174
  });
172
175
  }
173
-
174
176
  this.__logCounter += 1; // increment total log counter
175
177
  }
176
178
 
@@ -188,7 +190,6 @@ export class SbActionLogger extends LitElement {
188
190
  </div>
189
191
  `;
190
192
  }
191
-
192
193
  render() {
193
194
  return html`
194
195
  <div class="header">
@@ -228,7 +229,6 @@ export class SbActionLogger extends LitElement {
228
229
  }
229
230
  return false;
230
231
  }
231
-
232
232
  __handleConsecutiveDuplicateLog() {
233
233
  if (!this.loggerEl.lastElementChild?.querySelector('.logger__log-count')) {
234
234
  this.__prependLogCounterElement();
@@ -245,18 +245,15 @@ export class SbActionLogger extends LitElement {
245
245
  }
246
246
  }
247
247
  }
248
-
249
248
  __prependLogCounterElement() {
250
249
  const countEl = document.createElement('div');
251
250
  countEl.classList.add('logger__log-count');
252
251
  countEl.innerText = (1).toString();
253
-
254
252
  const loggerLastElementChild = this.loggerEl.lastElementChild;
255
253
  if (loggerLastElementChild) {
256
254
  loggerLastElementChild.insertBefore(countEl, loggerLastElementChild.firstElementChild);
257
255
  }
258
256
  }
259
-
260
257
  __animateCue() {
261
258
  const cueEl = this.shadowRoot?.querySelector('.header__log-cue-overlay');
262
259
  if (cueEl) {
@@ -269,7 +266,6 @@ export class SbActionLogger extends LitElement {
269
266
  cueEl.classList.add('header__log-cue-overlay--slide');
270
267
  }
271
268
  }
272
-
273
269
  __clearLogs() {
274
270
  const loggerEl = this.shadowRoot?.querySelector('.logger');
275
271
  if (loggerEl) {
@@ -1,12 +1,13 @@
1
1
  import { LitElement, html } from 'lit';
2
-
3
2
  export class SbLocaleSwitcher extends LitElement {
4
3
  static get properties() {
5
4
  return {
6
- showLocales: { type: Array, attribute: 'show-locales' },
5
+ showLocales: {
6
+ type: Array,
7
+ attribute: 'show-locales',
8
+ },
7
9
  };
8
10
  }
9
-
10
11
  constructor() {
11
12
  super();
12
13
  this.showLocales = ['en-GB', 'en-US', 'en-AU', 'nl-NL', 'nl-BE'];
@@ -19,11 +20,10 @@ export class SbLocaleSwitcher extends LitElement {
19
20
  callback(locale) {
20
21
  document.documentElement.lang = locale;
21
22
  }
22
-
23
23
  render() {
24
24
  return html`
25
25
  ${this.showLocales.map(
26
- showLocale => html`
26
+ (showLocale) => html`
27
27
  <button @click=${() => this.callback(showLocale)}>${showLocale}</button>
28
28
  `,
29
29
  )}
@@ -39,7 +39,6 @@ export function sortEachDepth(orderPerDepth) {
39
39
  while (true) {
40
40
  nameA = storyKindA[depth] ? storyKindA[depth] : '';
41
41
  nameB = storyKindB[depth] ? storyKindB[depth] : '';
42
-
43
42
  if (nameA === nameB) {
44
43
  // We'll need to look at the next part of the name.
45
44
  depth += 1;
@@ -64,7 +63,6 @@ export function sortEachDepth(orderPerDepth) {
64
63
  if (ordering.indexOf('...abc') !== -1) {
65
64
  insertPosition = ordering.indexOf('...abc');
66
65
  }
67
-
68
66
  if (indexA === -1) {
69
67
  indexA = insertPosition;
70
68
  }
@@ -1,7 +1,6 @@
1
1
  import { expect } from '@open-wc/testing';
2
2
  import { html } from 'lit';
3
3
  import { renderLitAsNode } from '../src/renderLitAsNode.js';
4
-
5
4
  describe('renderLitAsNode', () => {
6
5
  it('should return a matching HTMLElement (Node)', () => {
7
6
  const el = renderLitAsNode(html`
@@ -10,7 +9,6 @@ describe('renderLitAsNode', () => {
10
9
  Some text: <span>Hello, World</span>
11
10
  </div>
12
11
  `);
13
-
14
12
  expect(el).to.be.instanceOf(HTMLElement);
15
13
  expect(el).dom.to.equal(`
16
14
  <div>
@@ -19,7 +17,6 @@ describe('renderLitAsNode', () => {
19
17
  </div>
20
18
  `);
21
19
  });
22
-
23
20
  it('should only render and return the first (root) node in the template', () => {
24
21
  const el = renderLitAsNode(html`
25
22
  <div>
@@ -28,7 +25,6 @@ describe('renderLitAsNode', () => {
28
25
  </div>
29
26
  <div>Sibling div</div>
30
27
  `);
31
-
32
28
  expect(el).dom.to.equal(`
33
29
  <div>
34
30
  <a href="#" target="_blank">Link</a>