@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
@@ -9,7 +9,6 @@ import { sendKeys, setViewport } from '@web/test-runner-commands';
9
9
  import { AlwaysInvalid } from '@lion/ui/form-core-test-helpers.js';
10
10
  import { DatepickerInputObject } from '@lion/ui/input-datepicker-test-helpers.js';
11
11
  import { LionInputDatepicker } from '@lion/ui/input-datepicker.js';
12
-
13
12
  import '@lion/ui/define/lion-input-datepicker.js';
14
13
  import { runDatepickerSuite } from '../test-suites/LionInputDatepicker.suite.js';
15
14
 
@@ -38,30 +37,26 @@ function getProtectedMembersCalendar(calendarEl) {
38
37
  dateSelectedByUser: (...args) => calendarEl.__dateSelectedByUser(...args),
39
38
  };
40
39
  }
41
-
42
- const fixture = /** @type {(arg: TemplateResult) => Promise<LionInputDatepicker>} */ (_fixture);
43
-
40
+ const fixture = /** @type {(arg: TemplateResult) => Promise<LionInputDatepicker>} */ _fixture;
44
41
  describe('<lion-input-datepicker>', () => {
45
42
  describe('Calendar Overlay', () => {
46
43
  it('implements calendar-overlay Style component', async () => {
47
44
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
48
45
  const elObj = new DatepickerInputObject(el);
49
46
  await elObj.openCalendar();
50
-
51
47
  expect(
52
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelector('.calendar-overlay'),
48
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay'),
53
49
  ).not.to.equal(null);
54
50
  expect(
55
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelector('.calendar-overlay__header'),
51
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__header'),
56
52
  ).not.to.equal(null);
57
53
  expect(
58
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelector('.calendar-overlay__heading'),
54
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__heading'),
59
55
  ).not.to.equal(null);
60
56
  expect(
61
- /** @type {ShadowRoot} */ (el.shadowRoot).querySelector('.calendar-overlay__close-button'),
57
+ /** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__close-button'),
62
58
  ).not.to.equal(null);
63
59
  });
64
-
65
60
  it('has a close button, with a tooltip "Close"', async () => {
66
61
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
67
62
  const elObj = new DatepickerInputObject(el);
@@ -70,7 +65,6 @@ describe('<lion-input-datepicker>', () => {
70
65
  expect(elObj.overlayCloseButtonEl.getAttribute('title')).to.equal('Close');
71
66
  expect(elObj.overlayCloseButtonEl.getAttribute('aria-label')).to.equal('Close');
72
67
  });
73
-
74
68
  it('has a default title based on input label', async () => {
75
69
  const el = await fixture(html`
76
70
  <lion-input-datepicker
@@ -82,7 +76,6 @@ describe('<lion-input-datepicker>', () => {
82
76
  await elObj.openCalendar();
83
77
  expect(elObj.overlayHeadingEl.textContent).to.equal('Pick your date');
84
78
  });
85
-
86
79
  it('can have a custom heading', async () => {
87
80
  const el = await fixture(html`
88
81
  <lion-input-datepicker
@@ -94,37 +87,33 @@ describe('<lion-input-datepicker>', () => {
94
87
  await elObj.openCalendar();
95
88
  expect(elObj.overlayHeadingEl.innerText).to.equal('foo');
96
89
  });
97
-
98
90
  it('closes the calendar on [esc] key', async () => {
99
91
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
100
92
  const elObj = new DatepickerInputObject(el);
101
93
  await elObj.openCalendar();
102
94
  expect(elObj.overlayController.isShown).to.equal(true);
103
-
104
95
  elObj.overlayController.contentNode.dispatchEvent(
105
- new KeyboardEvent('keyup', { key: 'Escape' }),
96
+ new KeyboardEvent('keyup', {
97
+ key: 'Escape',
98
+ }),
106
99
  );
107
100
  await nextFrame();
108
101
  expect(elObj.overlayController.isShown).to.equal(false);
109
102
  });
110
-
111
103
  it('closes the calendar via close button', async () => {
112
104
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
113
105
  const elObj = new DatepickerInputObject(el);
114
106
  await elObj.openCalendar();
115
107
  expect(elObj.overlayController.isShown).to.equal(true);
116
-
117
108
  elObj.overlayCloseButtonEl.click();
118
109
  await nextFrame();
119
110
  expect(elObj.overlayController.isShown).to.equal(false);
120
111
  });
121
-
122
112
  it('closes the calendar via outside click event', async () => {
123
113
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
124
114
  const elObj = new DatepickerInputObject(el);
125
115
  await elObj.openCalendar();
126
116
  expect(elObj.overlayController.isShown).to.equal(true);
127
-
128
117
  mimicClick(document.body);
129
118
  await aTimeout(0);
130
119
  expect(elObj.overlayController.isShown).to.be.false;
@@ -135,7 +124,6 @@ describe('<lion-input-datepicker>', () => {
135
124
  * - centralDate can be overridden
136
125
  */
137
126
  });
138
-
139
127
  describe('Calendar Invoker', () => {
140
128
  it('adds invoker button that toggles the overlay on click in suffix slot ', async () => {
141
129
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
@@ -145,30 +133,35 @@ describe('<lion-input-datepicker>', () => {
145
133
  await elObj.openCalendar();
146
134
  expect(elObj.overlayController.isShown).to.equal(true);
147
135
  });
148
-
149
136
  it('delegates disabled state of host input', async () => {
150
137
  const el = await fixture(html`<lion-input-datepicker disabled></lion-input-datepicker>`);
151
138
  const elObj = new DatepickerInputObject(el);
152
139
  expect(elObj.overlayController.isShown).to.equal(false);
153
- await elObj.openCalendar({ click: true });
140
+ await elObj.openCalendar({
141
+ click: true,
142
+ });
154
143
  expect(elObj.overlayController.isShown).to.equal(false);
155
144
  el.disabled = false;
156
- await elObj.openCalendar({ click: true });
145
+ await elObj.openCalendar({
146
+ click: true,
147
+ });
157
148
  expect(elObj.overlayController.isShown).to.equal(true);
158
149
  });
159
-
160
150
  it('disables invoker when host input is readonly', async () => {
161
151
  const el = await fixture(html`<lion-input-datepicker readonly></lion-input-datepicker>`);
162
152
  const elObj = new DatepickerInputObject(el);
163
153
  expect(elObj.overlayController.isShown).to.equal(false);
164
- await elObj.openCalendar({ click: true });
154
+ await elObj.openCalendar({
155
+ click: true,
156
+ });
165
157
  expect(elObj.overlayController.isShown).to.equal(false);
166
158
  el.readOnly = false;
167
- await elObj.openCalendar({ click: true });
159
+ await elObj.openCalendar({
160
+ click: true,
161
+ });
168
162
  expect(elObj.overlayController.isShown).to.equal(true);
169
163
  });
170
164
  });
171
-
172
165
  describe('Input - calendar synchronization', () => {
173
166
  it('syncs modelValue with lion-calendar', async () => {
174
167
  const myDate = new Date('2019/06/15');
@@ -180,28 +173,23 @@ describe('<lion-input-datepicker>', () => {
180
173
  await elObj.openCalendar();
181
174
  expect(elObj.calendarEl.selectedDate).to.equal(myDate);
182
175
  await elObj.selectMonthDay(myOtherDate.getDate());
183
- expect(isSameDate(/** @type {Date} */ (el.modelValue), myOtherDate)).to.be.true;
176
+ expect(isSameDate(/** @type {Date} */ el.modelValue, myOtherDate)).to.be.true;
184
177
  });
185
-
186
178
  it('restores centralDate when modelValue is cleared', async () => {
187
179
  const myDate = new Date('2019/06/15');
188
180
  const el = await fixture(html` <lion-input-datepicker></lion-input-datepicker> `);
189
181
  const elObj = new DatepickerInputObject(el);
190
182
  const initialCentralDate = elObj.calendarEl.centralDate;
191
183
  el.modelValue = myDate;
192
-
193
184
  await elObj.openCalendar();
194
185
  expect(elObj.calendarEl.selectedDate).to.equal(myDate);
195
186
  expect(elObj.calendarEl.centralDate).to.equal(myDate);
196
-
197
187
  el.modelValue = undefined;
198
188
  expect(elObj.calendarEl.centralDate).to.equal(myDate);
199
189
  await elObj.closeCalendar();
200
190
  await elObj.openCalendar();
201
-
202
191
  expect(elObj.calendarEl.centralDate).to.equal(initialCentralDate);
203
192
  });
204
-
205
193
  it('closes the calendar overlay on "user-selected-date-changed"', async () => {
206
194
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
207
195
  const elObj = new DatepickerInputObject(el);
@@ -213,7 +201,6 @@ describe('<lion-input-datepicker>', () => {
213
201
  await el.updateComplete; // safari take a little longer
214
202
  expect(elObj.overlayController.isShown).to.equal(false);
215
203
  });
216
-
217
204
  it('focuses selected date on opening of calendar', async () => {
218
205
  const el = await fixture(html`
219
206
  <lion-input-datepicker .modelValue="${new Date()}"></lion-input-datepicker>
@@ -223,25 +210,20 @@ describe('<lion-input-datepicker>', () => {
223
210
  await aTimeout(0);
224
211
  expect(
225
212
  isSameDate(
226
- /** @type {Date} */ (elObj.calendarEl.focusedDate),
227
- /** @type {Date} */ (elObj.calendarEl.selectedDate),
213
+ /** @type {Date} */ elObj.calendarEl.focusedDate,
214
+ /** @type {Date} */ elObj.calendarEl.selectedDate,
228
215
  ),
229
216
  ).to.be.true;
230
217
  });
231
-
232
218
  it('focuses central date on opening of calendar if no date selected', async () => {
233
219
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
234
220
  const elObj = new DatepickerInputObject(el);
235
221
  await elObj.openCalendar();
236
222
  await aTimeout(0);
237
223
  expect(
238
- isSameDate(
239
- /** @type {Date} */ (elObj.calendarEl.focusedDate),
240
- elObj.calendarEl.centralDate,
241
- ),
224
+ isSameDate(/** @type {Date} */ elObj.calendarEl.focusedDate, elObj.calendarEl.centralDate),
242
225
  ).to.be.true;
243
226
  });
244
-
245
227
  it('fires model-value-changed with isTriggeredByUser on click', async () => {
246
228
  let isTriggeredByUser;
247
229
  const myDate = new Date('2019/12/15');
@@ -255,7 +237,6 @@ describe('<lion-input-datepicker>', () => {
255
237
  >
256
238
  </lion-input-datepicker>
257
239
  `);
258
-
259
240
  const elObj = new DatepickerInputObject(el);
260
241
  // Make sure the calendar overlay is opened
261
242
  await elObj.openCalendar();
@@ -266,34 +247,26 @@ describe('<lion-input-datepicker>', () => {
266
247
  expect(isTriggeredByUser).to.be.true;
267
248
  expect(el.value).to.equal('18/12/2019');
268
249
  });
269
-
270
250
  describe('localization', () => {
271
251
  /** @type {import('@lion/ui/localize.js').LocalizeManager} */ let localizeManager;
272
-
273
252
  before(async () => {
274
253
  const { getLocalizeManager } = await import('@lion/ui/localize-no-side-effects.js');
275
254
  localizeManager = getLocalizeManager();
276
255
  });
277
-
278
256
  it('should update formatted value and value in accordance of localization upon model value update', async () => {
279
257
  localizeManager.locale = 'nl-NL';
280
-
281
258
  const el = await fixture(html`
282
259
  <lion-input-datepicker .modelValue="${new Date('2022/12/30')}"></lion-input-datepicker>
283
260
  `);
284
-
285
261
  await el.updateComplete;
286
-
287
262
  expect(el.formattedValue).to.equal('30-12-2022');
288
263
  expect(el.value).to.equal('30-12-2022');
289
264
  });
290
-
291
265
  after(() => {
292
266
  // @ts-ignore - using protected method to undo setting explict locale
293
267
  localizeManager.locale = localizeManager._fallbackLocale;
294
268
  });
295
269
  });
296
-
297
270
  describe('Validators', () => {
298
271
  /**
299
272
  * Validators are the Application Developer facing API in <lion-input-datepicker>:
@@ -302,19 +275,17 @@ describe('<lion-input-datepicker>', () => {
302
275
  * lion-calendar
303
276
  */
304
277
  it('converts IsDateDisabled validator to "disableDates" property', async () => {
305
- const no15th = /** @param {Date} d */ d => d.getDate() !== 15;
306
- const no16th = /** @param {Date} d */ d => d.getDate() !== 16;
307
- const no15thOr16th = /** @param {Date} d */ d => no15th(d) && no16th(d);
278
+ const no15th = /** @param {Date} d */ (d) => d.getDate() !== 15;
279
+ const no16th = /** @param {Date} d */ (d) => d.getDate() !== 16;
280
+ const no15thOr16th = /** @param {Date} d */ (d) => no15th(d) && no16th(d);
308
281
  const el = await fixture(html`
309
282
  <lion-input-datepicker .validators="${[new IsDateDisabled(no15thOr16th)]}">
310
283
  </lion-input-datepicker>
311
284
  `);
312
285
  const elObj = new DatepickerInputObject(el);
313
286
  await elObj.openCalendar();
314
-
315
287
  expect(elObj.calendarEl.disableDates).to.equal(no15thOr16th);
316
288
  });
317
-
318
289
  it('converts MinDate validator to "minDate" property', async () => {
319
290
  const myMinDate = new Date('2019/06/15');
320
291
  const el = await fixture(
@@ -323,10 +294,8 @@ describe('<lion-input-datepicker>', () => {
323
294
  );
324
295
  const elObj = new DatepickerInputObject(el);
325
296
  await elObj.openCalendar();
326
-
327
297
  expect(elObj.calendarEl.minDate).to.equal(myMinDate);
328
298
  });
329
-
330
299
  it('converts MaxDate validator to "maxDate" property', async () => {
331
300
  const myMaxDate = new Date('2030/06/15');
332
301
  const el = await fixture(html`
@@ -334,26 +303,27 @@ describe('<lion-input-datepicker>', () => {
334
303
  `);
335
304
  const elObj = new DatepickerInputObject(el);
336
305
  await elObj.openCalendar();
337
-
338
306
  expect(elObj.calendarEl.maxDate).to.equal(myMaxDate);
339
307
  });
340
-
341
308
  it('converts MinMaxDate validator to "minDate" and "maxDate" property', async () => {
342
309
  const myMinDate = new Date('2019/06/15');
343
310
  const myMaxDate = new Date('2030/06/15');
344
311
  const el = await fixture(html`
345
312
  <lion-input-datepicker
346
- .validators=${[new MinMaxDate({ min: myMinDate, max: myMaxDate })]}
313
+ .validators=${[
314
+ new MinMaxDate({
315
+ min: myMinDate,
316
+ max: myMaxDate,
317
+ }),
318
+ ]}
347
319
  >
348
320
  </lion-input-datepicker>
349
321
  `);
350
322
  const elObj = new DatepickerInputObject(el);
351
323
  await elObj.openCalendar();
352
-
353
324
  expect(elObj.calendarEl.minDate).to.equal(myMinDate);
354
325
  expect(elObj.calendarEl.maxDate).to.equal(myMaxDate);
355
326
  });
356
-
357
327
  it('does not converts MaxDate validator to "maxDate" property if validator type other then "error"', async () => {
358
328
  const myMaxDate = new Date('2030/06/15');
359
329
  const tagName = 'custom-input-datepicker';
@@ -369,75 +339,70 @@ describe('<lion-input-datepicker>', () => {
369
339
  );
370
340
  }
371
341
  const el = await fixture(html`
372
- <custom-input-datepicker .validators=${[new MaxDate(myMaxDate, { type: 'warning' })]}>
342
+ <custom-input-datepicker
343
+ .validators=${[
344
+ new MaxDate(myMaxDate, {
345
+ type: 'warning',
346
+ }),
347
+ ]}
348
+ >
373
349
  </custom-input-datepicker>
374
350
  `);
375
351
  const elObj = new DatepickerInputObject(el);
376
352
  await elObj.openCalendar();
377
-
378
353
  expect(elObj.calendarEl.maxDate).to.be.undefined;
379
354
  });
380
-
381
355
  it('should sync MinDate validator param with Calendar MinDate', async () => {
382
356
  const myMinDateValidator = new MinDate(new Date('2020/02/02'));
383
357
  const el = await fixture(html`
384
358
  <lion-input-datepicker .validators="${[myMinDateValidator]}"> </lion-input-datepicker>
385
359
  `);
386
360
  myMinDateValidator.param = new Date('2020/01/01');
387
-
388
361
  expect(el.__calendarMinDate.toString()).to.equal(new Date('2020/01/01').toString());
389
362
  });
390
-
391
363
  it('should sync MaxDate validator param with Calendar MaxDate', async () => {
392
364
  const myMaxDateValidator = new MaxDate(new Date('2020/02/02'));
393
365
  const el = await fixture(html`
394
366
  <lion-input-datepicker .validators="${[myMaxDateValidator]}"> </lion-input-datepicker>
395
367
  `);
396
368
  myMaxDateValidator.param = new Date('2020/03/03');
397
-
398
369
  expect(el.__calendarMaxDate.toString()).to.equal(new Date('2020/03/03').toString());
399
370
  });
400
-
401
371
  it('should sync MinMaxDate validator param with Calendar Min And Max Date', async () => {
402
372
  const myMinDate = new Date('2019/06/15');
403
373
  const myMaxDate = new Date('2030/06/15');
404
- const myMinMaxDateValidator = new MinMaxDate({ min: myMinDate, max: myMaxDate });
374
+ const myMinMaxDateValidator = new MinMaxDate({
375
+ min: myMinDate,
376
+ max: myMaxDate,
377
+ });
405
378
  const el = await fixture(html`
406
379
  <lion-input-datepicker .validators=${[myMinMaxDateValidator]}> </lion-input-datepicker>
407
380
  `);
408
-
409
381
  myMinMaxDateValidator.param = {
410
382
  min: new Date('2019/05/15'),
411
383
  max: new Date('2019/07/15'),
412
384
  };
413
-
414
385
  expect(el.__calendarMinDate.toString()).to.equal(new Date('2019/05/15').toString());
415
386
  expect(el.__calendarMaxDate.toString()).to.equal(new Date('2019/07/15').toString());
416
387
  });
417
-
418
388
  it('should update the central date of Calendar if updated validator made the current central date disabled', async () => {
419
389
  const initialValidators = [new MaxDate(new Date('2000/01/01'))];
420
390
  const updatedValidators = [new MaxDate(new Date('2020/01/01'))];
421
-
422
391
  const el = await fixture(html`
423
392
  <lion-input-datepicker .validators="${initialValidators}"></lion-input-datepicker>
424
393
  `);
425
394
  const obj = new DatepickerInputObject(el);
426
395
  await obj.openCalendar();
427
-
428
396
  expect(getProtectedMembersDatepicker(el).calendarNode.centralDate.toString()).to.equal(
429
397
  new Date('2000/01/01').toString(),
430
398
  );
431
-
432
399
  await obj.closeCalendar();
433
400
  el.validators = updatedValidators;
434
401
  await obj.openCalendar();
435
-
436
402
  expect(getProtectedMembersDatepicker(el).calendarNode.centralDate.toString()).to.equal(
437
403
  new Date('2020/01/01').toString(),
438
404
  );
439
405
  });
440
-
441
406
  it('should show error on invalid date passed to modelValue', async () => {
442
407
  const myDate = new Date('foo');
443
408
  const el = await fixture(html`
@@ -447,7 +412,6 @@ describe('<lion-input-datepicker>', () => {
447
412
  expect(el.validationStates).to.have.property('error');
448
413
  expect(el.validationStates.error).to.have.property('IsDate');
449
414
  });
450
-
451
415
  it('should show error on date with invalid format passed to modelValue', async () => {
452
416
  const myDate = new Date('30/01/2022');
453
417
  const el = await fixture(html`
@@ -457,12 +421,10 @@ describe('<lion-input-datepicker>', () => {
457
421
  expect(el.validationStates).to.have.property('error');
458
422
  expect(el.validationStates.error).to.have.property('IsDate');
459
423
  });
460
-
461
424
  it('syncs view value from calendar if custom validator is in error state', async () => {
462
425
  const el = await fixture(html`
463
426
  <lion-input-datepicker .validators=${[new AlwaysInvalid()]}></lion-input-datepicker>
464
427
  `);
465
-
466
428
  const elObj = new DatepickerInputObject(el);
467
429
  await elObj.openCalendar();
468
430
  await elObj.selectMonthDay(12);
@@ -473,19 +435,19 @@ describe('<lion-input-datepicker>', () => {
473
435
  expect(el.validationStates.error).to.have.property('AlwaysInvalid');
474
436
  expect(
475
437
  isSameDate(
476
- /** @type {Date} */ (parseDate(el.value)),
477
- /** @type {Date} */ (elObj.calendarEl.selectedDate),
438
+ /** @type {Date} */ parseDate(el.value),
439
+ /** @type {Date} */ elObj.calendarEl.selectedDate,
478
440
  ),
479
441
  ).to.be.true;
480
442
  expect(
481
443
  isSameDate(
482
444
  // @ts-ignore [allow-protected] in test
483
- /** @type {Date} */ (parseDate(el._inputNode.value)),
484
- /** @type {Date} */ (elObj.calendarEl.selectedDate),
445
+ /** @type {Date} */
446
+ parseDate(el._inputNode.value),
447
+ /** @type {Date} */ elObj.calendarEl.selectedDate,
485
448
  ),
486
449
  ).to.be.true;
487
450
  });
488
-
489
451
  it('syncs view value from calendar if custom validator is in error state, when there was a previous modelValue', async () => {
490
452
  const modelValue = new Date('2022/12/30');
491
453
  const el = await fixture(html`
@@ -494,8 +456,7 @@ describe('<lion-input-datepicker>', () => {
494
456
  .validators=${[new AlwaysInvalid()]}
495
457
  ></lion-input-datepicker>
496
458
  `);
497
- expect(isSameDate(/** @type {Date} */ (parseDate(el.value)), modelValue)).to.be.true;
498
-
459
+ expect(isSameDate(/** @type {Date} */ parseDate(el.value), modelValue)).to.be.true;
499
460
  const elObj = new DatepickerInputObject(el);
500
461
  await elObj.openCalendar();
501
462
  await elObj.selectMonthDay(12);
@@ -506,15 +467,16 @@ describe('<lion-input-datepicker>', () => {
506
467
  expect(el.validationStates.error).to.have.property('AlwaysInvalid');
507
468
  expect(
508
469
  isSameDate(
509
- /** @type {Date} */ (parseDate(el.value)),
510
- /** @type {Date} */ (elObj.calendarEl.selectedDate),
470
+ /** @type {Date} */ parseDate(el.value),
471
+ /** @type {Date} */ elObj.calendarEl.selectedDate,
511
472
  ),
512
473
  ).to.be.true;
513
474
  expect(
514
475
  isSameDate(
515
476
  // @ts-ignore [allow-protected] in test
516
- /** @type {Date} */ (parseDate(el._inputNode.value)),
517
- /** @type {Date} */ (elObj.calendarEl.selectedDate),
477
+ /** @type {Date} */
478
+ parseDate(el._inputNode.value),
479
+ /** @type {Date} */ elObj.calendarEl.selectedDate,
518
480
  ),
519
481
  ).to.be.true;
520
482
  });
@@ -525,25 +487,20 @@ describe('<lion-input-datepicker>', () => {
525
487
  */
526
488
  });
527
489
  });
528
-
529
490
  describe('Calendar smoke tests', () => {
530
491
  it('responds properly to keyboard events', async () => {
531
492
  const el = await fixture(html`
532
493
  <lion-input-datepicker calendar-heading="foo"></lion-input-datepicker>
533
494
  `);
534
- const calendarEl = /** @type {LionCalendar} */ (
535
- el.shadowRoot?.querySelector('lion-calendar')
536
- );
495
+ const calendarEl = /** @type {LionCalendar} */ el.shadowRoot?.querySelector('lion-calendar');
537
496
  const { dateSelectedByUser } = getProtectedMembersCalendar(calendarEl);
538
497
  // First set a fixed date as if selected by a user
539
498
  dateSelectedByUser(new Date('December 17, 2020 03:24:00 GMT+0000'));
540
-
541
499
  await el.updateComplete;
542
500
  const elObj = new DatepickerInputObject(el);
543
501
 
544
502
  // Open the calendar
545
503
  await elObj.openCalendar();
546
-
547
504
  const selectedDateEl = calendarEl?.shadowRoot?.querySelector(
548
505
  '.calendar__day-button[selected]',
549
506
  );
@@ -551,20 +508,18 @@ describe('<lion-input-datepicker>', () => {
551
508
  selectedDateEl?.focus();
552
509
 
553
510
  // Move focus to 18th of December
554
- await sendKeys({ press: 'ArrowRight' });
555
-
556
- expect(/** @type {Date} */ (calendarEl.focusedDate).getTime()).to.equal(
511
+ await sendKeys({
512
+ press: 'ArrowRight',
513
+ });
514
+ expect(/** @type {Date} */ calendarEl.focusedDate.getTime()).to.equal(
557
515
  new Date('December 18, 2020 03:24:00 GMT+0000').getTime(),
558
516
  );
559
517
  });
560
-
561
518
  it('responds properly to click events', async () => {
562
519
  const el = await fixture(html`
563
520
  <lion-input-datepicker calendar-heading="foo"></lion-input-datepicker>
564
521
  `);
565
- const calendarEl = /** @type {LionCalendar} */ (
566
- el.shadowRoot?.querySelector('lion-calendar')
567
- );
522
+ const calendarEl = /** @type {LionCalendar} */ el.shadowRoot?.querySelector('lion-calendar');
568
523
  const { dateSelectedByUser } = getProtectedMembersCalendar(calendarEl);
569
524
 
570
525
  // First set a fixed date as if selected by a user
@@ -576,17 +531,15 @@ describe('<lion-input-datepicker>', () => {
576
531
  await elObj.openCalendar();
577
532
 
578
533
  // Select the first date button, which is 29th of previous month (November)
579
- const firstDateBtn = /** @type {HTMLButtonElement} */ (
580
- calendarEl?.shadowRoot?.querySelector('.calendar__day-button')
581
- );
534
+ const firstDateBtn =
535
+ /** @type {HTMLButtonElement} */
536
+ calendarEl?.shadowRoot?.querySelector('.calendar__day-button');
582
537
  firstDateBtn.click();
583
-
584
- expect(/** @type {Date} */ (el.modelValue).getTime()).to.equal(
538
+ expect(/** @type {Date} */ el.modelValue.getTime()).to.equal(
585
539
  new Date('November 29, 2020 03:24:00 GMT+0000').getTime(),
586
540
  );
587
541
  });
588
542
  });
589
-
590
543
  describe('Accessibility', () => {
591
544
  it('has a heading of level 1', async () => {
592
545
  const el = await fixture(html`
@@ -594,72 +547,58 @@ describe('<lion-input-datepicker>', () => {
594
547
  `);
595
548
  const elObj = new DatepickerInputObject(el);
596
549
  await elObj.openCalendar();
597
-
598
550
  const hNode = elObj.overlayHeadingEl;
599
551
  const headingIsLevel1 =
600
552
  hNode.tagName === 'H1' ||
601
553
  (hNode.getAttribute('role') === 'heading' && hNode.getAttribute('aria-level') === '1');
602
554
  expect(headingIsLevel1).to.be.true;
603
555
  });
604
-
605
556
  it('adds accessible label to invoker button', async () => {
606
557
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
607
558
  const elObj = new DatepickerInputObject(el);
608
559
  await elObj.openCalendar();
609
-
610
560
  expect(elObj.invokerEl.getAttribute('title')).to.equal('Open "date" picker');
611
561
  expect(elObj.invokerEl.getAttribute('aria-label')).to.equal('Open "date" picker');
612
562
  });
613
-
614
563
  it('adds [aria-expanded] to invoker button', async () => {
615
564
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
616
565
  const elObj = new DatepickerInputObject(el);
617
-
618
566
  expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
619
567
  await elObj.openCalendar();
620
568
  expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
621
569
  await elObj.closeCalendar();
622
570
  expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
623
571
  });
624
-
625
572
  it('is accessible when closed', async () => {
626
573
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
627
574
  const elObj = new DatepickerInputObject(el);
628
-
629
575
  await expect(elObj.invokerEl).to.be.accessible();
630
576
  await expect(elObj.calendarEl).to.be.accessible();
631
577
  });
632
-
633
578
  it('is accessible when open', async () => {
634
579
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
635
580
  const elObj = new DatepickerInputObject(el);
636
581
  await elObj.openCalendar();
637
-
638
582
  await expect(elObj.calendarEl).to.be.accessible();
639
583
  elObj.overlayCloseButtonEl.click();
640
584
  });
641
-
642
585
  it('has accessible invoker when open', async () => {
643
586
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
644
587
  const elObj = new DatepickerInputObject(el);
645
588
  await elObj.openCalendar();
646
-
647
589
  await expect(elObj.invokerEl).to.be.accessible();
648
590
  elObj.overlayCloseButtonEl.click();
649
591
  });
650
-
651
592
  it('is accessible with a disabled date', async () => {
652
- const no15th = /** @param {Date} d */ d => d.getDate() !== 15;
593
+ const no15th = /** @param {Date} d */ (d) => d.getDate() !== 15;
653
594
  const el = await fixture(html`
654
595
  <lion-input-datepicker .validators=${[new IsDateDisabled(no15th)]}> </lion-input-datepicker>
655
596
  `);
656
597
  const elObj = new DatepickerInputObject(el);
657
598
  await elObj.openCalendar();
658
-
659
599
  await expect(elObj.calendarEl).to.be.accessible();
660
600
  elObj.overlayCloseButtonEl.click();
661
601
  });
662
-
663
602
  it('have different aria-label when multiple invoker', async () => {
664
603
  const el = await fixture(html`
665
604
  <lion-input-datepicker label="Start date" name="startDate"></lion-input-datepicker>
@@ -672,11 +611,9 @@ describe('<lion-input-datepicker>', () => {
672
611
  const startLabel = elements.startDate.querySelector('button').ariaLabel;
673
612
  // @ts-expect-error
674
613
  const endLabel = elements.endDate.querySelector('button').ariaLabel;
675
-
676
614
  expect(startLabel).to.not.equal(endLabel);
677
615
  });
678
616
  });
679
-
680
617
  describe.skip('Subclassers', () => {
681
618
  describe('Providing a custom invoker', () => {
682
619
  it('can override the invoker template', async () => {
@@ -688,7 +625,6 @@ describe('<lion-input-datepicker>', () => {
688
625
  }
689
626
  },
690
627
  );
691
-
692
628
  const myEl = await fixture(html`<${myTag}></${myTag}>`);
693
629
  const myElObj = new DatepickerInputObject(myEl);
694
630
  const { invokerId } = getProtectedMembersDatepicker(myEl);
@@ -704,7 +640,6 @@ describe('<lion-input-datepicker>', () => {
704
640
  await myElObj.openCalendar();
705
641
  expect(myElObj.overlayController.isShown).to.equal(true);
706
642
  });
707
-
708
643
  it('can allocate the picker in a different slot supported by LionField', async () => {
709
644
  /**
710
645
  * It's important that this api is used instead of Subclassers providing a slot.
@@ -719,13 +654,11 @@ describe('<lion-input-datepicker>', () => {
719
654
  }
720
655
  },
721
656
  );
722
-
723
657
  const myEl = await fixture(html`<${myTag}></${myTag}>`);
724
658
  const myElObj = new DatepickerInputObject(myEl);
725
659
  expect(myElObj.invokerEl.getAttribute('slot')).to.equal('prefix');
726
660
  });
727
661
  });
728
-
729
662
  describe('Providing a custom calendar', () => {
730
663
  it('can override the calendar template', async () => {
731
664
  customElements.define(
@@ -739,7 +672,6 @@ describe('<lion-input-datepicker>', () => {
739
672
  }
740
673
  },
741
674
  );
742
-
743
675
  const myTag = defineCE(
744
676
  class extends LionInputDatepicker {
745
677
  _calendarTemplate() {
@@ -747,7 +679,6 @@ describe('<lion-input-datepicker>', () => {
747
679
  }
748
680
  },
749
681
  );
750
-
751
682
  const myEl = await fixture(html`<${myTag}></${myTag}>`);
752
683
  const myElObj = new DatepickerInputObject(myEl);
753
684
 
@@ -756,7 +687,6 @@ describe('<lion-input-datepicker>', () => {
756
687
  expect(myElObj.calendarEl.tagName.toLowerCase()).to.equal('my-calendar');
757
688
  });
758
689
  });
759
-
760
690
  describe('Providing a custom overlay', () => {
761
691
  it('can override the overlay template', async () => {
762
692
  // Keep in mind there is no logic inside this overlay frame; it only handles visuals.
@@ -780,10 +710,8 @@ describe('<lion-input-datepicker>', () => {
780
710
  }
781
711
  },
782
712
  );
783
-
784
713
  let myOverlayOpenedCbHandled = false;
785
714
  let myUserSelectedChangedCbHandled = false;
786
-
787
715
  const myTag = defineCE(
788
716
  class extends LionInputDatepicker {
789
717
  // TODO: this method doesn't exist on LionInputDatepicker, so if we re-enable these tests, they should be redone
@@ -807,12 +735,15 @@ describe('<lion-input-datepicker>', () => {
807
735
  * @param {{ target: { selectedDate: Date }}} opts
808
736
  */
809
737
  _onCalendarUserSelectedChanged({ target: { selectedDate } }) {
810
- super._onCalendarUserSelectedChanged({ target: { selectedDate } });
738
+ super._onCalendarUserSelectedChanged({
739
+ target: {
740
+ selectedDate,
741
+ },
742
+ });
811
743
  myUserSelectedChangedCbHandled = true;
812
744
  }
813
745
  },
814
746
  );
815
-
816
747
  const myEl = await fixture(html`<${myTag}></${myTag}>`);
817
748
  const myElObj = new DatepickerInputObject(myEl);
818
749
 
@@ -823,11 +754,9 @@ describe('<lion-input-datepicker>', () => {
823
754
  await myElObj.selectMonthDay(1);
824
755
  expect(myUserSelectedChangedCbHandled).to.be.true;
825
756
  });
826
-
827
757
  it.skip('can configure the overlay presentation based on media query switch', async () => {});
828
758
  });
829
759
  });
830
-
831
760
  describe('regression tests', async () => {
832
761
  it('does not submit a form when datepicker is opened', async () => {
833
762
  const submitSpy = sinon.spy();
@@ -836,7 +765,7 @@ describe('<lion-input-datepicker>', () => {
836
765
  <lion-input-datepicker></lion-input-datepicker>
837
766
  </form>
838
767
  `);
839
- const el = /** @type {LionInputDatepicker} */ (form.children[0]);
768
+ const el = /** @type {LionInputDatepicker} */ form.children[0];
840
769
  await el.updateComplete;
841
770
  const elObj = new DatepickerInputObject(el);
842
771
  await elObj.openCalendar();
@@ -846,7 +775,6 @@ describe('<lion-input-datepicker>', () => {
846
775
  // TODO: remove: became irrelevant after we don't need dialog-frame
847
776
  it.skip('is hidden when attribute hidden is true', async () => {
848
777
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
849
-
850
778
  await el.updateComplete;
851
779
  const myElObj = new DatepickerInputObject(el);
852
780
  await myElObj.openCalendar();
@@ -855,10 +783,12 @@ describe('<lion-input-datepicker>', () => {
855
783
  expect(getComputedStyle(myElObj.overlayEl).display).to.equal('none', 'Display is not none');
856
784
  });
857
785
  });
858
-
859
786
  describe('responsive', async () => {
860
787
  it('opens as bottom sheet on mobile', async () => {
861
- await setViewport({ width: 360, height: 640 });
788
+ await setViewport({
789
+ width: 360,
790
+ height: 640,
791
+ });
862
792
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
863
793
  const myElObj = new DatepickerInputObject(el);
864
794
  await myElObj.openCalendar();
@@ -868,9 +798,11 @@ describe('<lion-input-datepicker>', () => {
868
798
  'Datepicker does not get rendered as bottom sheet',
869
799
  ).to.be.false;
870
800
  });
871
-
872
801
  it('opens as popover on desktop', async () => {
873
- await setViewport({ width: 1200, height: 640 });
802
+ await setViewport({
803
+ width: 1200,
804
+ height: 640,
805
+ });
874
806
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
875
807
  const myElObj = new DatepickerInputObject(el);
876
808
  await myElObj.openCalendar();
@@ -886,16 +818,20 @@ describe('<lion-input-datepicker>', () => {
886
818
  const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
887
819
  await el.updateComplete;
888
820
  const myElObj = new DatepickerInputObject(el);
889
-
890
- await setViewport({ width: 360, height: 640 });
821
+ await setViewport({
822
+ width: 360,
823
+ height: 640,
824
+ });
891
825
  await myElObj.openCalendar();
892
826
  expect(
893
827
  el?.shadowRoot?.contains(myElObj.overlayController.contentNode),
894
828
  'Datepicker does not get rendered as bottom sheet',
895
829
  ).to.be.false;
896
-
897
830
  await myElObj.closeCalendar();
898
- await setViewport({ width: 1200, height: 640 });
831
+ await setViewport({
832
+ width: 1200,
833
+ height: 640,
834
+ });
899
835
  await myElObj.openCalendar();
900
836
  expect(
901
837
  el?.shadowRoot?.contains(myElObj.overlayController.contentNode),
@@ -903,7 +839,6 @@ describe('<lion-input-datepicker>', () => {
903
839
  ).to.be.true;
904
840
  });
905
841
  });
906
-
907
842
  describe('Run suite', () => {
908
843
  runDatepickerSuite();
909
844
  });