@lion/ui 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (787) hide show
  1. package/README.md +50 -20
  2. package/components/accordion/src/LionAccordion.js +31 -42
  3. package/components/accordion/test/lion-accordion.test.js +108 -134
  4. package/components/button/src/LionButton.js +9 -12
  5. package/components/button/src/LionButtonReset.js +0 -5
  6. package/components/button/src/LionButtonSubmit.js +7 -12
  7. package/components/button/test/demos.screenshots-test.js +50 -11
  8. package/components/button/test/lion-button.test.js +0 -1
  9. package/components/button/test-suites/LionButton.suite.js +135 -145
  10. package/components/button/test-suites/LionButtonReset.suite.js +54 -72
  11. package/components/button/test-suites/LionButtonSubmit.suite.js +49 -68
  12. package/components/calendar/src/LionCalendar.js +151 -104
  13. package/components/calendar/src/calendarStyle.js +0 -1
  14. package/components/calendar/src/utils/createMonth.js +3 -4
  15. package/components/calendar/src/utils/createMultipleMonth.js +15 -7
  16. package/components/calendar/src/utils/createWeek.js +0 -2
  17. package/components/calendar/src/utils/dataTemplate.js +8 -4
  18. package/components/calendar/src/utils/dayTemplate.js +0 -6
  19. package/components/calendar/src/utils/getDayMonthYear.js +6 -2
  20. package/components/calendar/test/demos.screenshots-test.js +40 -9
  21. package/components/calendar/test/lion-calendar.test.js +171 -282
  22. package/components/calendar/test/utils/createMonth.test.js +61 -22
  23. package/components/calendar/test/utils/createMultipleMonth.test.js +14 -7
  24. package/components/calendar/test/utils/createWeek.test.js +51 -17
  25. package/components/calendar/test/utils/dataTemplate.test.js +3 -4
  26. package/components/calendar/test/utils/dayTemplate.test.js +106 -34
  27. package/components/calendar/test/utils/getFirstDayNextMonth.test.js +0 -1
  28. package/components/calendar/test/utils/getLastDayPreviousMonth.test.js +0 -1
  29. package/components/calendar/test/utils/isSameDate.test.js +0 -1
  30. package/components/calendar/test/utils/snapshots/monthTemplate_en-GB_Sunday_2018-12.js +1 -2
  31. package/components/calendar/test-helpers/CalendarObject.js +31 -62
  32. package/components/calendar/test-helpers/DayObject.js +7 -15
  33. package/components/calendar/test-suites/LionCalendar.suite.js +7 -9
  34. package/components/checkbox-group/src/LionCheckboxIndeterminate.js +17 -30
  35. package/components/checkbox-group/test/lion-checkbox-group-integrations.test.js +0 -1
  36. package/components/checkbox-group/test/lion-checkbox-group.test.js +21 -16
  37. package/components/checkbox-group/test/lion-checkbox-indeterminate-integrations.test.js +3 -3
  38. package/components/checkbox-group/test/lion-checkbox-integrations.test.js +3 -2
  39. package/components/checkbox-group/test/lion-checkbox.test.js +30 -16
  40. package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +147 -191
  41. package/components/collapsible/src/LionCollapsible.js +10 -15
  42. package/components/collapsible/test/lion-collapsible.test.js +4 -18
  43. package/components/combobox/src/LionCombobox.js +35 -53
  44. package/components/combobox/src/utils/makeMatchingTextBold.js +2 -5
  45. package/components/combobox/src/validators.js +0 -1
  46. package/components/combobox/test/lion-combobox-integrations.test.js +6 -6
  47. package/components/combobox/test/lion-combobox.test.js +576 -869
  48. package/components/combobox/test/validators.test.js +6 -13
  49. package/components/combobox/test-helpers/combobox-helpers.js +24 -11
  50. package/components/core/src/DisabledMixin.js +61 -66
  51. package/components/core/src/DisabledWithTabIndexMixin.js +76 -83
  52. package/components/core/src/EventTargetShim.js +1 -4
  53. package/components/core/src/ScopedElementsMixin.js +4 -15
  54. package/components/core/src/ScopedStylesController.js +1 -5
  55. package/components/core/src/SlotMixin.js +236 -239
  56. package/components/core/src/browserDetection.js +5 -12
  57. package/components/core/test/DisabledMixin.test.js +24 -39
  58. package/components/core/test/DisabledWithTabIndexMixin.test.js +21 -34
  59. package/components/core/test/EventTargetShim.test.js +0 -8
  60. package/components/core/test/ScopedElementsMixin.test.js +22 -38
  61. package/components/core/test/ScopedStylesController.test.js +11 -20
  62. package/components/core/test/SlotMixin.test.js +102 -154
  63. package/components/core/test-helpers/getCachedFixture.js +5 -11
  64. package/components/core/types/SlotMixinTypes.ts +8 -3
  65. package/components/dialog/src/LionDialog.js +4 -3
  66. package/components/dialog/test/lion-dialog.integration.test.js +10 -20
  67. package/components/dialog/test/lion-dialog.test.js +48 -62
  68. package/components/dialog/test-helpers/test-router.js +4 -6
  69. package/components/drawer/src/LionDrawer.js +18 -34
  70. package/components/drawer/src/drawerStyle.js +0 -1
  71. package/components/drawer/test/lion-drawer.test.js +1 -17
  72. package/components/fieldset/test/lion-fieldset.test.js +6 -4
  73. package/components/form/src/LionForm.js +18 -13
  74. package/components/form/test/lion-form.test.js +22 -52
  75. package/components/form-core/src/FocusMixin.js +172 -174
  76. package/components/form-core/src/FormControlMixin.js +811 -813
  77. package/components/form-core/src/FormatMixin.js +537 -537
  78. package/components/form-core/src/InteractionStateMixin.js +196 -183
  79. package/components/form-core/src/LionField.js +9 -5
  80. package/components/form-core/src/NativeTextFieldMixin.js +114 -116
  81. package/components/form-core/src/choice-group/ChoiceGroupMixin.js +322 -364
  82. package/components/form-core/src/choice-group/ChoiceInputMixin.js +306 -296
  83. package/components/form-core/src/choice-group/CustomChoiceGroupMixin.js +114 -139
  84. package/components/form-core/src/form-group/FormElementsHaveNoError.js +0 -2
  85. package/components/form-core/src/form-group/FormGroupMixin.js +551 -557
  86. package/components/form-core/src/registration/FormRegisteringMixin.js +72 -71
  87. package/components/form-core/src/registration/FormRegistrarMixin.js +201 -217
  88. package/components/form-core/src/registration/FormRegistrarPortalMixin.js +31 -37
  89. package/components/form-core/src/utils/SyncUpdatableMixin.js +106 -117
  90. package/components/form-core/src/utils/getAriaElementsInRightDomOrder.js +1 -2
  91. package/components/form-core/src/validate/LionValidationFeedback.js +12 -8
  92. package/components/form-core/src/validate/Unparseable.js +4 -2
  93. package/components/form-core/src/validate/ValidateMixin.js +829 -883
  94. package/components/form-core/src/validate/Validator.js +3 -6
  95. package/components/form-core/src/validate/resultValidators/DefaultSuccess.js +1 -2
  96. package/components/form-core/src/validate/validators/DateValidators.js +0 -5
  97. package/components/form-core/src/validate/validators/NumberValidators.js +1 -5
  98. package/components/form-core/src/validate/validators/Required.js +1 -1
  99. package/components/form-core/src/validate/validators/StringValidators.js +1 -8
  100. package/components/form-core/test/FocusMixin.test.js +96 -82
  101. package/components/form-core/test/FormControlMixin.test.js +120 -176
  102. package/components/form-core/test/FormRegistrationMixins.test.js +0 -2
  103. package/components/form-core/test/FormatMixin.test.js +0 -1
  104. package/components/form-core/test/InteractionStateMixin.test.js +0 -1
  105. package/components/form-core/test/NativeTextFieldMixin.test.js +0 -1
  106. package/components/form-core/test/choice-group/ChoiceGroupMixin.test.js +0 -1
  107. package/components/form-core/test/choice-group/ChoiceInputMixin.test.js +0 -1
  108. package/components/form-core/test/choice-group/CustomChoiceGroupMixin.integrations.test.js +6 -8
  109. package/components/form-core/test/choice-group/CustomChoiceGroupMixin.test.js +0 -3
  110. package/components/form-core/test/form-group/FormGroupMixin.test.js +0 -1
  111. package/components/form-core/test/lion-field.test.js +88 -98
  112. package/components/form-core/test/utils/SyncUpdatableMixin.test.js +51 -65
  113. package/components/form-core/test/utils/getAriaElementsInRightDomOrder.test.js +3 -3
  114. package/components/form-core/test/validate/DateValidators.test.js +5 -27
  115. package/components/form-core/test/validate/NumberValidators.test.js +4 -16
  116. package/components/form-core/test/validate/Required.test.js +8 -21
  117. package/components/form-core/test/validate/ResultValidator.test.js +1 -2
  118. package/components/form-core/test/validate/StringValidators.test.js +4 -35
  119. package/components/form-core/test/validate/ValidateMixin.test.js +0 -1
  120. package/components/form-core/test/validate/ValidateMixinFeedbackPart.test.js +0 -1
  121. package/components/form-core/test/validate/Validator.test.js +39 -34
  122. package/components/form-core/test/validate/lion-validation-feedback.test.js +81 -43
  123. package/components/form-core/test-helpers/ExampleValidators.js +0 -5
  124. package/components/form-core/test-helpers/getFormControlMembers.js +2 -2
  125. package/components/form-core/test-helpers/mimicUserInput.js +5 -1
  126. package/components/form-core/test-suites/FormRegistrationMixins.suite.js +65 -122
  127. package/components/form-core/test-suites/FormatMixin.suite.js +202 -227
  128. package/components/form-core/test-suites/InteractionStateMixin.suite.js +47 -60
  129. package/components/form-core/test-suites/NativeTextFieldMixin.suite.js +8 -11
  130. package/components/form-core/test-suites/ValidateMixin.suite.js +280 -359
  131. package/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.js +112 -163
  132. package/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.js +185 -218
  133. package/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.js +116 -109
  134. package/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.js +36 -70
  135. package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +57 -65
  136. package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +664 -523
  137. package/components/form-core/translations/bg-BG.js +0 -1
  138. package/components/form-core/translations/cs-CZ.js +0 -1
  139. package/components/form-core/translations/de-DE.js +0 -1
  140. package/components/form-core/translations/en-AU.js +0 -1
  141. package/components/form-core/translations/en-GB.js +0 -1
  142. package/components/form-core/translations/en-US.js +0 -1
  143. package/components/form-core/translations/es-ES.js +0 -1
  144. package/components/form-core/translations/fr-BE.js +0 -1
  145. package/components/form-core/translations/fr-FR.js +0 -1
  146. package/components/form-core/translations/hu-HU.js +0 -1
  147. package/components/form-core/translations/it-IT.js +0 -1
  148. package/components/form-core/translations/nl-BE.js +0 -1
  149. package/components/form-core/translations/nl-NL.js +0 -1
  150. package/components/form-core/translations/pl-PL.js +0 -1
  151. package/components/form-core/translations/ro-RO.js +0 -1
  152. package/components/form-core/translations/ru-RU.js +0 -1
  153. package/components/form-core/translations/sk-SK.js +0 -1
  154. package/components/form-core/translations/tr-TR.js +0 -1
  155. package/components/form-core/translations/uk-UA.js +0 -1
  156. package/components/form-integrations/test/dialog-integrations.test.js +1 -4
  157. package/components/form-integrations/test/form-group-methods.test.js +28 -31
  158. package/components/form-integrations/test/form-integrations.test.js +27 -28
  159. package/components/form-integrations/test/form-validation-integrations.test.js +21 -29
  160. package/components/form-integrations/test/helpers/umbrella-form.js +3 -5
  161. package/components/form-integrations/test/model-value-consistency.test.js +75 -77
  162. package/components/form-integrations/test/model-value-event.test.js +10 -20
  163. package/components/helpers/src/SbActionLogger.js +13 -17
  164. package/components/helpers/src/SbLocaleSwitcher.js +5 -5
  165. package/components/helpers/src/sortEachDepth.js +0 -2
  166. package/components/helpers/test/renderLitAsNode.test.js +0 -4
  167. package/components/helpers/test/sb-action-logger.test.js +24 -55
  168. package/components/icon/src/IconManager.js +0 -2
  169. package/components/icon/src/LionIcon.js +2 -7
  170. package/components/icon/src/icons.js +0 -2
  171. package/components/icon/test/IconManager.test.js +0 -15
  172. package/components/icon/test/hammer.svg.js +3 -4
  173. package/components/icon/test/heart.svg.js +3 -4
  174. package/components/icon/test/lion-icon.test.js +14 -43
  175. package/components/input/src/LionInput.js +2 -8
  176. package/components/input/test/input-integrations.test.js +0 -5
  177. package/components/input/test/lion-input-integrations.test.js +0 -4
  178. package/components/input/test/lion-input.test.js +28 -58
  179. package/components/input/test-helpers/getInputMembers.js +2 -2
  180. package/components/input-amount/src/LionInputAmount.js +20 -20
  181. package/components/input-amount/src/formatters.js +0 -3
  182. package/components/input-amount/src/parsers.js +0 -3
  183. package/components/input-amount/test/formatters.test.js +24 -16
  184. package/components/input-amount/test/lion-input-amount-integrations.test.js +0 -4
  185. package/components/input-amount/test/lion-input-amount.test.js +123 -147
  186. package/components/input-amount/test/parsers.test.js +33 -17
  187. package/components/input-amount/test/preprocessors.test.js +0 -3
  188. package/components/input-amount-dropdown/src/LionInputAmountDropdown.js +49 -59
  189. package/components/input-amount-dropdown/src/currencyUtil.js +8 -7
  190. package/components/input-amount-dropdown/src/parsers.js +0 -1
  191. package/components/input-amount-dropdown/src/validators.js +0 -1
  192. package/components/input-amount-dropdown/test/LionInputAmountDropdown.test.js +34 -36
  193. package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +18 -13
  194. package/components/input-amount-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
  195. package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +132 -107
  196. package/components/input-date/src/LionInputDate.js +4 -3
  197. package/components/input-date/test/lion-input-date-integrations.test.js +0 -3
  198. package/components/input-date/test/lion-input-date.test.js +19 -32
  199. package/components/input-datepicker/src/LionInputDatepicker.js +17 -29
  200. package/components/input-datepicker/src/localizeNamespaceLoader.js +1 -2
  201. package/components/input-datepicker/test/lion-input-datepicker-integrations.test.js +0 -3
  202. package/components/input-datepicker/test/lion-input-datepicker.test.js +88 -153
  203. package/components/input-datepicker/test-helpers/DatepickerInputObject.js +9 -12
  204. package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +6 -4
  205. package/components/input-datepicker/translations/bg-BG.js +0 -1
  206. package/components/input-datepicker/translations/cs-CZ.js +0 -1
  207. package/components/input-datepicker/translations/de-DE.js +0 -1
  208. package/components/input-datepicker/translations/en-AU.js +0 -1
  209. package/components/input-datepicker/translations/en-GB.js +0 -1
  210. package/components/input-datepicker/translations/en-US.js +0 -1
  211. package/components/input-datepicker/translations/es-ES.js +0 -1
  212. package/components/input-datepicker/translations/fr-BE.js +0 -1
  213. package/components/input-datepicker/translations/fr-FR.js +0 -1
  214. package/components/input-datepicker/translations/hu-HU.js +0 -1
  215. package/components/input-datepicker/translations/it-IT.js +0 -1
  216. package/components/input-datepicker/translations/nl-BE.js +0 -1
  217. package/components/input-datepicker/translations/nl-NL.js +0 -1
  218. package/components/input-datepicker/translations/pl-PL.js +0 -1
  219. package/components/input-datepicker/translations/ro-RO.js +0 -1
  220. package/components/input-datepicker/translations/ru-RU.js +0 -1
  221. package/components/input-datepicker/translations/sk-SK.js +0 -1
  222. package/components/input-datepicker/translations/tr-TR.js +0 -1
  223. package/components/input-datepicker/translations/uk-UA.js +0 -1
  224. package/components/input-email/test/lion-input-email-integrations.test.js +0 -2
  225. package/components/input-email/test/lion-input-email.test.js +1 -7
  226. package/components/input-file/src/FileHandle.js +0 -3
  227. package/components/input-file/src/LionInputFile.js +85 -83
  228. package/components/input-file/src/LionSelectedFileList.js +12 -12
  229. package/components/input-file/src/validators.js +10 -9
  230. package/components/input-file/test/FileValidators.test.js +170 -80
  231. package/components/input-file/test/lion-input-file.test.js +160 -244
  232. package/components/input-file/test/lion-selected-file-list.test.js +13 -22
  233. package/components/input-file/translations/bg-BG.js +0 -1
  234. package/components/input-file/translations/cs-CZ.js +0 -1
  235. package/components/input-file/translations/de-DE.js +0 -1
  236. package/components/input-file/translations/en-AU.js +0 -1
  237. package/components/input-file/translations/en-GB.js +0 -1
  238. package/components/input-file/translations/en-PH.js +0 -1
  239. package/components/input-file/translations/en-US.js +0 -1
  240. package/components/input-file/translations/en.js +2 -1
  241. package/components/input-file/translations/es-ES.js +0 -1
  242. package/components/input-file/translations/fr-BE.js +0 -1
  243. package/components/input-file/translations/fr-FR.js +0 -1
  244. package/components/input-file/translations/hu-HU.js +0 -1
  245. package/components/input-file/translations/id-ID.js +0 -1
  246. package/components/input-file/translations/id.js +2 -1
  247. package/components/input-file/translations/it-IT.js +0 -1
  248. package/components/input-file/translations/nl-BE.js +0 -1
  249. package/components/input-file/translations/nl-NL.js +0 -1
  250. package/components/input-file/translations/pl-PL.js +0 -1
  251. package/components/input-file/translations/ro-RO.js +0 -1
  252. package/components/input-file/translations/ru-RU.js +0 -1
  253. package/components/input-file/translations/sk-SK.js +0 -1
  254. package/components/input-file/translations/uk-UA.js +0 -1
  255. package/components/input-file/translations/zh-CN.js +0 -1
  256. package/components/input-iban/src/validators.js +6 -11
  257. package/components/input-iban/test/formatters.test.js +0 -3
  258. package/components/input-iban/test/lion-input-iban-integrations.test.js +0 -2
  259. package/components/input-iban/test/lion-input-iban.test.js +1 -9
  260. package/components/input-iban/test/parsers.test.js +0 -2
  261. package/components/input-iban/test/validators.test.js +0 -12
  262. package/components/input-iban/translations/bg-BG.js +0 -1
  263. package/components/input-iban/translations/cs-CZ.js +0 -1
  264. package/components/input-iban/translations/de-DE.js +0 -1
  265. package/components/input-iban/translations/en-AU.js +0 -1
  266. package/components/input-iban/translations/en-GB.js +0 -1
  267. package/components/input-iban/translations/en-US.js +0 -1
  268. package/components/input-iban/translations/es-ES.js +0 -1
  269. package/components/input-iban/translations/fr-BE.js +0 -1
  270. package/components/input-iban/translations/fr-FR.js +0 -1
  271. package/components/input-iban/translations/hu-HU.js +0 -1
  272. package/components/input-iban/translations/it-IT.js +0 -1
  273. package/components/input-iban/translations/nl-BE.js +0 -1
  274. package/components/input-iban/translations/nl-NL.js +0 -1
  275. package/components/input-iban/translations/pl-PL.js +0 -1
  276. package/components/input-iban/translations/ro-RO.js +0 -1
  277. package/components/input-iban/translations/ru-RU.js +0 -1
  278. package/components/input-iban/translations/sk-SK.js +0 -1
  279. package/components/input-iban/translations/uk-UA.js +0 -1
  280. package/components/input-range/src/LionInputRange.js +18 -19
  281. package/components/input-range/test/lion-input-range.test.js +23 -48
  282. package/components/input-range/translations/bg-BG.js +0 -1
  283. package/components/input-range/translations/cs-CZ.js +0 -1
  284. package/components/input-range/translations/de-DE.js +0 -1
  285. package/components/input-range/translations/en-AU.js +0 -1
  286. package/components/input-range/translations/en-GB.js +0 -1
  287. package/components/input-range/translations/en-PH.js +0 -1
  288. package/components/input-range/translations/en-US.js +0 -1
  289. package/components/input-range/translations/es-ES.js +0 -1
  290. package/components/input-range/translations/fr-BE.js +0 -1
  291. package/components/input-range/translations/fr-FR.js +0 -1
  292. package/components/input-range/translations/hu-HU.js +0 -1
  293. package/components/input-range/translations/it-IT.js +0 -1
  294. package/components/input-range/translations/nl-BE.js +0 -1
  295. package/components/input-range/translations/nl-NL.js +0 -1
  296. package/components/input-range/translations/pl-PL.js +0 -1
  297. package/components/input-range/translations/ro-RO.js +0 -1
  298. package/components/input-range/translations/ru-RU.js +0 -1
  299. package/components/input-range/translations/sk-SK.js +0 -1
  300. package/components/input-range/translations/uk-UA.js +0 -1
  301. package/components/input-range/translations/zh-CN.js +0 -1
  302. package/components/input-stepper/src/LionInputStepper.js +19 -38
  303. package/components/input-stepper/test/lion-input-stepper-integrations.test.js +0 -1
  304. package/components/input-stepper/test/lion-input-stepper.test.js +0 -1
  305. package/components/input-stepper/test-suites/lion-input-stepper.integration.suite.js +0 -2
  306. package/components/input-stepper/test-suites/lion-input-stepper.suite.js +56 -105
  307. package/components/input-stepper/translations/bg-BG.js +0 -1
  308. package/components/input-stepper/translations/cs-CZ.js +0 -1
  309. package/components/input-stepper/translations/de-DE.js +0 -1
  310. package/components/input-stepper/translations/en-AU.js +0 -1
  311. package/components/input-stepper/translations/en-GB.js +0 -1
  312. package/components/input-stepper/translations/en-US.js +0 -1
  313. package/components/input-stepper/translations/es-ES.js +0 -1
  314. package/components/input-stepper/translations/fr-BE.js +0 -1
  315. package/components/input-stepper/translations/fr-FR.js +0 -1
  316. package/components/input-stepper/translations/hu-HU.js +0 -1
  317. package/components/input-stepper/translations/it-IT.js +0 -1
  318. package/components/input-stepper/translations/nl-BE.js +0 -1
  319. package/components/input-stepper/translations/nl-NL.js +0 -1
  320. package/components/input-stepper/translations/pl-PL.js +0 -1
  321. package/components/input-stepper/translations/ro-RO.js +0 -1
  322. package/components/input-stepper/translations/ru-RU.js +0 -1
  323. package/components/input-stepper/translations/sk-SK.js +0 -1
  324. package/components/input-stepper/translations/uk-UA.js +0 -1
  325. package/components/input-tel/src/LionInputTel.js +53 -37
  326. package/components/input-tel/src/PhoneUtilManager.js +6 -4
  327. package/components/input-tel/src/formatters.js +12 -10
  328. package/components/input-tel/src/parsers.js +3 -3
  329. package/components/input-tel/src/preprocessors.js +15 -7
  330. package/components/input-tel/src/validators.js +4 -6
  331. package/components/input-tel/test/LionInputTel.test.js +4 -2
  332. package/components/input-tel/test/formatters.test.js +22 -10
  333. package/components/input-tel/test/parsers.test.js +40 -11
  334. package/components/input-tel/test/preprocessors.test.js +24 -13
  335. package/components/input-tel/test/validators.test.js +7 -14
  336. package/components/input-tel/test-helpers/mockPhoneUtilManager.js +7 -6
  337. package/components/input-tel/test-suites/LionInputTel.suite.js +33 -73
  338. package/components/input-tel/translations/bg-BG.js +0 -1
  339. package/components/input-tel/translations/cs-CZ.js +0 -1
  340. package/components/input-tel/translations/de-DE.js +0 -1
  341. package/components/input-tel/translations/en-AU.js +0 -1
  342. package/components/input-tel/translations/en-GB.js +0 -1
  343. package/components/input-tel/translations/en-US.js +0 -1
  344. package/components/input-tel/translations/es-ES.js +0 -1
  345. package/components/input-tel/translations/fr-BE.js +0 -1
  346. package/components/input-tel/translations/fr-FR.js +0 -1
  347. package/components/input-tel/translations/hu-HU.js +0 -1
  348. package/components/input-tel/translations/it-IT.js +0 -1
  349. package/components/input-tel/translations/nl-BE.js +0 -1
  350. package/components/input-tel/translations/nl-NL.js +0 -1
  351. package/components/input-tel/translations/pl-PL.js +0 -1
  352. package/components/input-tel/translations/ro-RO.js +0 -1
  353. package/components/input-tel/translations/ru-RU.js +0 -1
  354. package/components/input-tel/translations/sk-SK.js +0 -1
  355. package/components/input-tel/translations/uk-UA.js +0 -1
  356. package/components/input-tel-dropdown/src/LionInputTelDropdown.js +10 -28
  357. package/components/input-tel-dropdown/src/regionCodeToLocale.js +3 -1
  358. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +31 -38
  359. package/components/input-tel-dropdown/test/regionCodeToLocale.test.js +0 -1
  360. package/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.js +5 -1
  361. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +16 -11
  362. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +54 -79
  363. package/components/listbox/src/LionListbox.js +4 -1
  364. package/components/listbox/src/LionOption.js +8 -7
  365. package/components/listbox/src/LionOptions.js +0 -3
  366. package/components/listbox/src/ListboxMixin.js +786 -820
  367. package/components/listbox/test/lion-listbox.test.js +0 -1
  368. package/components/listbox/test/lion-option.test.js +53 -64
  369. package/components/listbox/test/lion-options.test.js +3 -4
  370. package/components/listbox/test-helpers/getListboxMembers.js +6 -3
  371. package/components/listbox/test-suites/ListboxMixin.suite.js +101 -261
  372. package/components/localize/src/LocalizeManager.js +40 -40
  373. package/components/localize/src/LocalizeMixin.js +130 -157
  374. package/components/localize/src/date/formatDate.js +1 -5
  375. package/components/localize/src/date/getDateFormatBasedOnLocale.js +5 -3
  376. package/components/localize/src/date/getMonthNames.js +3 -5
  377. package/components/localize/src/date/getWeekdayNames.js +1 -5
  378. package/components/localize/src/date/parseDate.js +5 -20
  379. package/components/localize/src/date/utils/normalizeIntlDate.js +0 -7
  380. package/components/localize/src/getLocalizeManager.js +0 -3
  381. package/components/localize/src/number/formatNumber.js +3 -7
  382. package/components/localize/src/number/formatNumberToParts.js +52 -18
  383. package/components/localize/src/number/getCurrencyName.js +5 -5
  384. package/components/localize/src/number/getFractionDigits.js +4 -4
  385. package/components/localize/src/number/getSeparatorsFromNumber.js +1 -3
  386. package/components/localize/src/number/parseNumber.js +0 -3
  387. package/components/localize/src/number/utils/normalize-format-number-to-parts/forceAddGroupSeparators.js +0 -1
  388. package/components/localize/src/number/utils/normalize-format-number-to-parts/forceSpaceBetweenCurrencyCodeAndNumber.js +4 -1
  389. package/components/localize/test/LocalizeManager.test.js +385 -278
  390. package/components/localize/test/LocalizeMixin.test.js +28 -112
  391. package/components/localize/test/date/formatDate.test.js +18 -48
  392. package/components/localize/test/date/getDateFormatBasedOnLocale.test.js +0 -3
  393. package/components/localize/test/date/getMonthNames.test.js +27 -12
  394. package/components/localize/test/date/getWeekdayNames.test.js +93 -49
  395. package/components/localize/test/date/normalizeDateTime.test.js +0 -2
  396. package/components/localize/test/date/parseDate.test.js +12 -16
  397. package/components/localize/test/getLocalizeManager.test.js +0 -3
  398. package/components/localize/test/isLocalizeESModule.test.js +32 -13
  399. package/components/localize/test/localize.test.js +0 -4
  400. package/components/localize/test/number/formatNumber.test.js +215 -106
  401. package/components/localize/test/number/formatNumberToParts.test.js +31 -38
  402. package/components/localize/test/number/getCurrencyName.test.js +20 -6
  403. package/components/localize/test/number/getDecimalSeparator.test.js +5 -4
  404. package/components/localize/test/number/getFractionDigits.test.js +0 -2
  405. package/components/localize/test/number/getGroupSeparator.test.js +0 -2
  406. package/components/localize/test/number/getSeparatorsFromNumber.test.js +5 -3
  407. package/components/localize/test/number/parseNumber.test.js +123 -56
  408. package/components/localize/test/side-effect-free-entrypoint.test.js +0 -6
  409. package/components/localize/test-helpers/fake-imports.js +11 -6
  410. package/components/localize/test-helpers/localizeTearDown.js +0 -1
  411. package/components/menu/src/InteractiveListMixin.js +637 -638
  412. package/components/menu/src/LionMenu.js +46 -59
  413. package/components/menu/src/MoreButtonMenuMixin.js +215 -238
  414. package/components/menu/src/MultiLevelListMixin.js +240 -246
  415. package/components/menu/src/utils/isInView.js +0 -1
  416. package/components/menu/src/utils/listItemInteractions.js +4 -4
  417. package/components/menu/test/InteractiveListMixin.test.js +0 -1
  418. package/components/menu/test/MoreButtonMenuMixin.test.js +3 -2
  419. package/components/menu/test/MultiLevelListMixin.test.js +0 -1
  420. package/components/menu/test/lion-menu-interactions.test.js +0 -1
  421. package/components/menu/test/lion-menu.test.js +6 -2
  422. package/components/menu/test-helpers/mimicKeyPress.js +12 -2
  423. package/components/menu/test-suites/InteractiveListMixin.suite.js +4 -43
  424. package/components/menu/test-suites/LionMenu.suite.js +1 -8
  425. package/components/menu/test-suites/LionMenuInteractions.suite.js +22 -44
  426. package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +34 -41
  427. package/components/menu/test-suites/MultiLevelListMixin.suite.js +5 -23
  428. package/components/overlays/src/ArrowMixin.js +111 -127
  429. package/components/overlays/src/OverlayController.js +166 -151
  430. package/components/overlays/src/OverlayMixin.js +61 -63
  431. package/components/overlays/src/OverlaysManager.js +30 -32
  432. package/components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js +0 -1
  433. package/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js +11 -11
  434. package/components/overlays/src/configurations/withBottomSheetConfig.js +12 -13
  435. package/components/overlays/src/configurations/withDropdownConfig.js +4 -2
  436. package/components/overlays/src/configurations/withModalDialogConfig.js +12 -13
  437. package/components/overlays/src/configurations/withPopoverConfig.js +27 -25
  438. package/components/overlays/src/configurations/withTooltipConfig.js +15 -13
  439. package/components/overlays/src/overlayDocumentStyle.js +1 -1
  440. package/components/overlays/src/overlayShadowDomStyle.js +0 -1
  441. package/components/overlays/src/singleton.js +0 -2
  442. package/components/overlays/src/utils/adopt-styles.js +18 -18
  443. package/components/overlays/src/utils/deep-contains.js +7 -6
  444. package/components/overlays/src/utils/get-focusable-elements.js +7 -10
  445. package/components/overlays/src/utils/inert-siblings.js +2 -4
  446. package/components/overlays/src/utils/is-equal-config.js +2 -3
  447. package/components/overlays/src/utils/is-visible.js +0 -1
  448. package/components/overlays/src/utils/simulate-tab.js +1 -4
  449. package/components/overlays/src/utils/sort-by-tabindex.js +2 -4
  450. package/components/overlays/test/ArrowMixin.test.js +18 -30
  451. package/components/overlays/test/OverlayController.test.js +375 -555
  452. package/components/overlays/test/OverlayMixin.test.js +0 -2
  453. package/components/overlays/test/OverlaysManager.test.js +30 -35
  454. package/components/overlays/test/global-positioning.test.js +6 -10
  455. package/components/overlays/test/local-positioning.test.js +101 -103
  456. package/components/overlays/test/utils-tests/active-element.test.js +12 -27
  457. package/components/overlays/test/utils-tests/adopt-styles.test.js +25 -56
  458. package/components/overlays/test/utils-tests/deep-contains.test.js +73 -74
  459. package/components/overlays/test/utils-tests/get-focusable-elements.test.js +6 -23
  460. package/components/overlays/test/utils-tests/is-equal-config.test.js +32 -13
  461. package/components/overlays/test/utils-tests/visibility.test.js +44 -79
  462. package/components/overlays/test-helpers/createShadowHost.js +5 -3
  463. package/components/overlays/test-helpers/normalizeTransformStyle.js +2 -4
  464. package/components/overlays/test-suites/OverlayMixin.suite.js +152 -181
  465. package/components/overlays/test-suites/WithHoverInteraction.suite.js +96 -79
  466. package/components/overlays/translations/bg-BG.js +0 -1
  467. package/components/overlays/translations/cs-CZ.js +0 -1
  468. package/components/overlays/translations/de-DE.js +0 -1
  469. package/components/overlays/translations/en-AU.js +0 -1
  470. package/components/overlays/translations/en-GB.js +0 -1
  471. package/components/overlays/translations/en-US.js +0 -1
  472. package/components/overlays/translations/es-ES.js +0 -1
  473. package/components/overlays/translations/fr-BE.js +0 -1
  474. package/components/overlays/translations/fr-FR.js +0 -1
  475. package/components/overlays/translations/hu-HU.js +0 -1
  476. package/components/overlays/translations/it-IT.js +0 -1
  477. package/components/overlays/translations/nl-BE.js +0 -1
  478. package/components/overlays/translations/nl-NL.js +0 -1
  479. package/components/overlays/translations/pl-PL.js +0 -1
  480. package/components/overlays/translations/ro-RO.js +0 -1
  481. package/components/overlays/translations/ru-RU.js +0 -1
  482. package/components/overlays/translations/sk-SK.js +0 -1
  483. package/components/overlays/translations/tr-TR.js +0 -1
  484. package/components/overlays/translations/uk-UA.js +0 -1
  485. package/components/pagination/src/LionPagination.js +9 -12
  486. package/components/pagination/test/lion-pagination.test.js +18 -50
  487. package/components/progress-indicator/src/LionProgressIndicator.js +10 -12
  488. package/components/progress-indicator/test/lion-progress-indicator.test.js +1 -22
  489. package/components/radio-group/src/LionRadioGroup.js +1 -2
  490. package/components/radio-group/test/lion-radio-group-integrations.test.js +0 -1
  491. package/components/radio-group/test/lion-radio-group.test.js +27 -27
  492. package/components/radio-group/test/lion-radio-integrations.test.js +3 -2
  493. package/components/radio-group/test/lion-radio.test.js +30 -16
  494. package/components/select/src/LionSelect.js +12 -13
  495. package/components/select/test/lion-select.test.js +7 -12
  496. package/components/select-rich/src/LionSelectInvoker.js +18 -11
  497. package/components/select-rich/src/LionSelectRich.js +20 -43
  498. package/components/select-rich/test/demos.screenshots-test.js +40 -9
  499. package/components/select-rich/test/lion-select-invoker.test.js +26 -43
  500. package/components/select-rich/test/lion-select-listbox-suite-integration.test.js +3 -3
  501. package/components/select-rich/test/lion-select-rich-dialog-integration.test.js +4 -9
  502. package/components/select-rich/test/lion-select-rich-interaction.test.js +116 -116
  503. package/components/select-rich/test/lion-select-rich-upgrade.test.js +3 -7
  504. package/components/select-rich/test/lion-select-rich.test.js +153 -195
  505. package/components/select-rich/test-helpers/getSelectRichMembers.js +4 -1
  506. package/components/steps/src/LionStep.js +21 -12
  507. package/components/steps/src/LionSteps.js +25 -25
  508. package/components/steps/test/lion-step.test.js +18 -25
  509. package/components/steps/test/lion-steps.test.js +45 -78
  510. package/components/switch/src/LionSwitch.js +2 -7
  511. package/components/switch/src/LionSwitchButton.js +5 -6
  512. package/components/switch/test/lion-switch-button.test.js +16 -28
  513. package/components/switch/test/lion-switch.test.js +17 -31
  514. package/components/tabs/src/LionTabs.js +25 -28
  515. package/components/tabs/test/lion-tabs.test.js +156 -154
  516. package/components/textarea/src/LionTextarea.js +4 -23
  517. package/components/textarea/test/lion-textarea-integrations.test.js +0 -5
  518. package/components/textarea/test/lion-textarea.test.js +2 -28
  519. package/components/tooltip/src/LionTooltip.js +6 -6
  520. package/components/tooltip/test/lion-tooltip.test.js +75 -102
  521. package/components/validate-messages/src/getLocalizedMessage.js +8 -7
  522. package/components/validate-messages/src/loadDefaultFeedbackMessages.js +3 -1
  523. package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -5
  524. package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +5 -2
  525. package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +99 -35
  526. package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +4 -3
  527. package/components/validate-messages/test/loadDefaultFeedbackMessages.test.js +5 -3
  528. package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.js +80 -45
  529. package/components/validate-messages/translations/bg-BG.js +0 -1
  530. package/components/validate-messages/translations/cs-CZ.js +0 -1
  531. package/components/validate-messages/translations/de-DE.js +0 -1
  532. package/components/validate-messages/translations/en-AU.js +0 -1
  533. package/components/validate-messages/translations/en-GB.js +0 -1
  534. package/components/validate-messages/translations/en-PH.js +0 -1
  535. package/components/validate-messages/translations/en-US.js +0 -1
  536. package/components/validate-messages/translations/es-ES.js +0 -1
  537. package/components/validate-messages/translations/fr-BE.js +0 -1
  538. package/components/validate-messages/translations/fr-FR.js +0 -1
  539. package/components/validate-messages/translations/hu-HU.js +0 -1
  540. package/components/validate-messages/translations/it-IT.js +0 -1
  541. package/components/validate-messages/translations/nl-BE.js +0 -1
  542. package/components/validate-messages/translations/nl-NL.js +0 -1
  543. package/components/validate-messages/translations/pl-PL.js +0 -1
  544. package/components/validate-messages/translations/ro-RO.js +0 -1
  545. package/components/validate-messages/translations/ru-RU.js +0 -1
  546. package/components/validate-messages/translations/sk-SK.js +0 -1
  547. package/components/validate-messages/translations/tr-TR.js +0 -1
  548. package/components/validate-messages/translations/uk-UA.js +0 -1
  549. package/custom-elements.json +191 -56
  550. package/dist-types/components/core/src/SlotMixin.d.ts +6 -1
  551. package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
  552. package/dist-types/components/core/types/SlotMixinTypes.d.ts +5 -1
  553. package/dist-types/components/core/types/SlotMixinTypes.d.ts.map +1 -1
  554. package/dist-types/components/form-core/src/LionField.d.ts +3 -1
  555. package/dist-types/components/form-core/src/LionField.d.ts.map +1 -1
  556. package/dist-types/components/input-tel/src/LionInputTel.d.ts +6 -6
  557. package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
  558. package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts +2 -2
  559. package/dist-types/components/input-tel/src/PhoneUtilManager.d.ts.map +1 -1
  560. package/dist-types/components/input-tel/src/formatters.d.ts +2 -2
  561. package/dist-types/components/input-tel/src/formatters.d.ts.map +1 -1
  562. package/dist-types/components/input-tel/src/preprocessors.d.ts +2 -2
  563. package/dist-types/components/input-tel/src/preprocessors.d.ts.map +1 -1
  564. package/dist-types/components/input-tel/test/validators.test.d.ts +1 -1
  565. package/dist-types/components/input-tel/test/validators.test.d.ts.map +1 -1
  566. package/dist-types/components/listbox/src/LionOption.d.ts +5 -2
  567. package/dist-types/components/listbox/src/LionOption.d.ts.map +1 -1
  568. package/dist-types/components/overlays/src/OverlaysManager.d.ts.map +1 -1
  569. package/dist-types/components/overlays/src/overlayDocumentStyle.d.ts.map +1 -1
  570. package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts +3 -1
  571. package/dist-types/components/select-rich/src/LionSelectInvoker.d.ts.map +1 -1
  572. package/dist-types/components/select-rich/src/LionSelectRich.d.ts +1 -1
  573. package/dist-types/tsconfig.tsbuildinfo +1 -1
  574. package/docs/components/accordion/overview.md +2 -2
  575. package/docs/components/accordion/reference.md +2 -2
  576. package/docs/components/accordion/use-cases.md +2 -2
  577. package/docs/components/button/examples.md +2 -2
  578. package/docs/components/button/extensions.md +2 -2
  579. package/docs/components/button/overview.md +2 -2
  580. package/docs/components/button/use-cases.md +2 -2
  581. package/docs/components/calendar/overview.md +2 -2
  582. package/docs/components/calendar/use-cases.md +2 -2
  583. package/docs/components/checkbox-group/overview.md +4 -4
  584. package/docs/components/checkbox-group/use-cases.md +2 -2
  585. package/docs/components/collapsible/examples.md +2 -2
  586. package/docs/components/collapsible/overview.md +3 -3
  587. package/docs/components/collapsible/use-cases.md +2 -2
  588. package/docs/components/combobox/extensions.md +2 -2
  589. package/docs/components/combobox/overview.md +3 -3
  590. package/docs/components/combobox/use-cases.md +3 -3
  591. package/docs/components/dialog/overview.md +3 -3
  592. package/docs/components/dialog/use-cases.md +2 -2
  593. package/docs/components/drawer/overview.md +2 -2
  594. package/docs/components/drawer/use-cases.md +2 -2
  595. package/docs/components/fieldset/overview.md +7 -7
  596. package/docs/components/fieldset/use-cases.md +2 -2
  597. package/docs/components/form/overview.md +5 -5
  598. package/docs/components/form/use-cases.md +4 -4
  599. package/docs/components/icon/overview.md +2 -2
  600. package/docs/components/icon/use-cases.md +3 -3
  601. package/docs/components/input/overview.md +3 -3
  602. package/docs/components/input/use-cases.md +2 -2
  603. package/docs/components/input-amount/overview.md +5 -5
  604. package/docs/components/input-amount/use-cases.md +2 -2
  605. package/docs/components/input-amount-dropdown/use-cases.md +2 -2
  606. package/docs/components/input-date/overview.md +5 -5
  607. package/docs/components/input-date/use-cases.md +2 -2
  608. package/docs/components/input-datepicker/overview.md +7 -7
  609. package/docs/components/input-datepicker/use-cases.md +2 -2
  610. package/docs/components/input-email/overview.md +4 -4
  611. package/docs/components/input-email/use-cases.md +2 -2
  612. package/docs/components/input-file/overview.md +3 -3
  613. package/docs/components/input-file/use-cases.md +2 -2
  614. package/docs/components/input-iban/overview.md +4 -4
  615. package/docs/components/input-iban/use-cases.md +2 -2
  616. package/docs/components/input-range/overview.md +4 -4
  617. package/docs/components/input-range/use-cases.md +2 -2
  618. package/docs/components/input-stepper/overview.md +3 -3
  619. package/docs/components/input-stepper/use-cases.md +2 -2
  620. package/docs/components/input-tel/overview.md +3 -3
  621. package/docs/components/input-tel/use-cases.md +8 -8
  622. package/docs/components/input-tel-dropdown/extensions.md +2 -2
  623. package/docs/components/input-tel-dropdown/overview.md +3 -3
  624. package/docs/components/input-tel-dropdown/use-cases.md +2 -2
  625. package/docs/components/listbox/overview.md +2 -2
  626. package/docs/components/listbox/use-cases.md +3 -3
  627. package/docs/components/menu/extensions.md +2 -2
  628. package/docs/components/menu/migration.md +2 -2
  629. package/docs/components/menu/overview.md +2 -2
  630. package/docs/components/menu/use-cases.md +1 -1
  631. package/docs/components/pagination/overview.md +2 -2
  632. package/docs/components/pagination/use-cases.md +2 -2
  633. package/docs/components/progress-indicator/examples.md +2 -2
  634. package/docs/components/progress-indicator/overview.md +2 -2
  635. package/docs/components/radio-group/overview.md +5 -5
  636. package/docs/components/radio-group/use-cases.md +2 -2
  637. package/docs/components/select/overview.md +2 -2
  638. package/docs/components/select/use-cases.md +3 -3
  639. package/docs/components/select-rich/examples.md +2 -2
  640. package/docs/components/select-rich/overview.md +2 -2
  641. package/docs/components/select-rich/use-cases.md +4 -4
  642. package/docs/components/steps/overview.md +2 -2
  643. package/docs/components/steps/use-cases.md +2 -2
  644. package/docs/components/switch/overview.md +2 -2
  645. package/docs/components/switch/reference.md +2 -2
  646. package/docs/components/switch/use-cases.md +2 -2
  647. package/docs/components/tabs/examples.md +3 -3
  648. package/docs/components/tabs/overview.md +2 -2
  649. package/docs/components/tabs/use-cases.md +2 -2
  650. package/docs/components/textarea/overview.md +2 -2
  651. package/docs/components/textarea/use-cases.md +2 -2
  652. package/docs/components/tooltip/examples.md +2 -2
  653. package/docs/components/tooltip/overview.md +2 -2
  654. package/docs/components/tooltip/use-cases.md +2 -2
  655. package/docs/fundamentals/index.md +4 -4
  656. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +2 -2
  657. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +2 -2
  658. package/docs/fundamentals/node-tools/providence-analytics/index.md +2 -2
  659. package/docs/fundamentals/node-tools/providence-analytics/overview.md +2 -2
  660. package/docs/fundamentals/node-tools/publish-docs/index.md +2 -2
  661. package/docs/fundamentals/node-tools/publish-docs/overview.md +5 -5
  662. package/docs/fundamentals/node-tools/remark-extend/index.md +2 -2
  663. package/docs/fundamentals/node-tools/remark-extend/overview.md +2 -2
  664. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +2 -2
  665. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +4 -4
  666. package/docs/fundamentals/rationales/TypeScript.md +62 -2
  667. package/docs/fundamentals/rationales/accessibility.md +5 -5
  668. package/docs/fundamentals/rationales/side-effects.md +2 -2
  669. package/docs/fundamentals/rationales/versioning.md +2 -2
  670. package/docs/fundamentals/systems/core/SlotMixin.md +3 -3
  671. package/docs/fundamentals/systems/core/index.md +2 -2
  672. package/docs/fundamentals/systems/core/overview.md +3 -3
  673. package/docs/fundamentals/systems/form/formatting-and-parsing.md +6 -6
  674. package/docs/fundamentals/systems/form/index.md +2 -2
  675. package/docs/fundamentals/systems/form/interaction-states.md +2 -2
  676. package/docs/fundamentals/systems/form/model-value.md +3 -3
  677. package/docs/fundamentals/systems/form/overview.md +30 -30
  678. package/docs/fundamentals/systems/form/styling.md +2 -2
  679. package/docs/fundamentals/systems/form/use-cases.md +2 -2
  680. package/docs/fundamentals/systems/form/validate.md +4 -4
  681. package/docs/fundamentals/systems/icon/index.md +2 -2
  682. package/docs/fundamentals/systems/icon/overview.md +2 -2
  683. package/docs/fundamentals/systems/localize/dates.md +2 -2
  684. package/docs/fundamentals/systems/localize/index.md +2 -2
  685. package/docs/fundamentals/systems/localize/numbers.md +2 -2
  686. package/docs/fundamentals/systems/localize/overview.md +6 -6
  687. package/docs/fundamentals/systems/localize/rationale.md +2 -2
  688. package/docs/fundamentals/systems/localize/text.md +2 -2
  689. package/docs/fundamentals/systems/localize/use-cases.md +2 -2
  690. package/docs/fundamentals/systems/overlays/_edge-cases.md +2 -2
  691. package/docs/fundamentals/systems/overlays/configuration.md +4 -4
  692. package/docs/fundamentals/systems/overlays/index.md +2 -2
  693. package/docs/fundamentals/systems/overlays/overview.md +7 -7
  694. package/docs/fundamentals/systems/overlays/rationale.md +2 -2
  695. package/docs/fundamentals/systems/overlays/use-cases.md +4 -4
  696. package/docs/fundamentals/tools/ajax/index.md +2 -2
  697. package/docs/fundamentals/tools/ajax/overview.md +2 -2
  698. package/docs/fundamentals/tools/ajax/use-cases.md +2 -2
  699. package/docs/fundamentals/tools/helpers/action-logger.md +2 -2
  700. package/docs/fundamentals/tools/helpers/index.md +2 -2
  701. package/docs/fundamentals/tools/helpers/overview.md +3 -3
  702. package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +2 -2
  703. package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +2 -2
  704. package/docs/fundamentals/tools/singleton-manager/example-success/index.md +2 -2
  705. package/docs/fundamentals/tools/singleton-manager/index.md +2 -2
  706. package/docs/fundamentals/tools/singleton-manager/overview.md +6 -6
  707. package/docs/guides/how-to/create-a-custom-field.md +7 -7
  708. package/docs/guides/how-to/create-a-form.md +6 -6
  709. package/docs/guides/how-to/extend-a-native-input.md +4 -4
  710. package/docs/guides/how-to/get-started.md +2 -2
  711. package/docs/guides/how-to/index.md +1 -1
  712. package/docs/guides/index.md +8 -8
  713. package/docs/guides/principles/definitions-and-terms.md +2 -2
  714. package/docs/guides/principles/index.md +5 -5
  715. package/docs/guides/principles/scoped-elements.md +2 -2
  716. package/docs/guides/principles/styling.md +3 -3
  717. package/docs/guides/principles/subclasser-apis.md +2 -2
  718. package/exports/define/lion-accordion.js +0 -1
  719. package/exports/define/lion-button-reset.js +0 -1
  720. package/exports/define/lion-button-submit.js +0 -1
  721. package/exports/define/lion-button.js +0 -1
  722. package/exports/define/lion-calendar.js +0 -1
  723. package/exports/define/lion-checkbox-group.js +0 -1
  724. package/exports/define/lion-checkbox-indeterminate.js +0 -1
  725. package/exports/define/lion-checkbox.js +0 -1
  726. package/exports/define/lion-collapsible.js +0 -1
  727. package/exports/define/lion-combobox.js +0 -1
  728. package/exports/define/lion-dialog.js +0 -1
  729. package/exports/define/lion-drawer.js +0 -1
  730. package/exports/define/lion-field.js +0 -1
  731. package/exports/define/lion-fieldset.js +0 -1
  732. package/exports/define/lion-form.js +0 -1
  733. package/exports/define/lion-icon.js +0 -1
  734. package/exports/define/lion-input-amount-dropdown.js +0 -1
  735. package/exports/define/lion-input-amount.js +0 -1
  736. package/exports/define/lion-input-date.js +0 -1
  737. package/exports/define/lion-input-datepicker.js +0 -1
  738. package/exports/define/lion-input-email.js +0 -1
  739. package/exports/define/lion-input-file.js +0 -1
  740. package/exports/define/lion-input-iban.js +0 -1
  741. package/exports/define/lion-input-range.js +0 -1
  742. package/exports/define/lion-input-stepper.js +0 -1
  743. package/exports/define/lion-input-tel-dropdown.js +0 -1
  744. package/exports/define/lion-input-tel.js +0 -1
  745. package/exports/define/lion-input.js +0 -1
  746. package/exports/define/lion-item.js +0 -1
  747. package/exports/define/lion-listbox.js +0 -1
  748. package/exports/define/lion-menu.js +0 -1
  749. package/exports/define/lion-menuitem.js +0 -1
  750. package/exports/define/lion-option.js +0 -1
  751. package/exports/define/lion-options.js +0 -1
  752. package/exports/define/lion-pagination.js +0 -1
  753. package/exports/define/lion-progress-indicator.js +0 -1
  754. package/exports/define/lion-radio-group.js +0 -1
  755. package/exports/define/lion-radio.js +0 -1
  756. package/exports/define/lion-select-invoker.js +0 -1
  757. package/exports/define/lion-select-rich.js +0 -1
  758. package/exports/define/lion-select.js +0 -1
  759. package/exports/define/lion-selected-file-list.js +0 -1
  760. package/exports/define/lion-step.js +0 -1
  761. package/exports/define/lion-steps.js +0 -1
  762. package/exports/define/lion-switch-button.js +0 -1
  763. package/exports/define/lion-switch.js +0 -1
  764. package/exports/define/lion-tabs.js +0 -1
  765. package/exports/define/lion-textarea.js +0 -1
  766. package/exports/define/lion-tooltip.js +0 -1
  767. package/exports/define/lion-validation-feedback.js +0 -1
  768. package/exports/define-helpers/sb-action-logger.js +0 -1
  769. package/exports/define-helpers/sb-locale-switcher.js +0 -1
  770. package/exports/form-core.js +0 -8
  771. package/exports/localize-no-side-effects.js +0 -1
  772. package/exports/localize.js +0 -2
  773. package/exports/overlays.js +0 -4
  774. package/generated/awesome-phonenumber/LICENSE +22 -0
  775. package/generated/awesome-phonenumber/LICENSE.closure-library +176 -0
  776. package/generated/awesome-phonenumber/LICENSE.libphonenumber +176 -0
  777. package/generated/awesome-phonenumber/checksums.json +6 -0
  778. package/generated/awesome-phonenumber/index-esm.mjs +817 -0
  779. package/generated/awesome-phonenumber/index.d.ts +227 -0
  780. package/generated/awesome-phonenumber/index.js +45 -0
  781. package/generated/awesome-phonenumber/lib/index.js +710 -0
  782. package/generated/awesome-phonenumber/package.json +9 -0
  783. package/generated/awesome-phonenumber/provenance.json +13 -0
  784. package/package.json +32 -10
  785. package/web-types.json +1 -1
  786. package/vendor/README.md +0 -61
  787. package/vendor/awesome-phonenumber-7.9.0-tlouisse.libphonenumber-9.0.41.tgz +0 -0
@@ -48,27 +48,53 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
48
48
  'lion-selected-file-list': LionSelectedFileList,
49
49
  };
50
50
  }
51
-
52
51
  static get properties() {
53
52
  return {
54
53
  ...super.properties,
55
- accept: { type: String },
56
- multiple: { type: Boolean, reflect: true },
57
- buttonLabel: { type: String, attribute: 'button-label' },
58
- maxFileSize: { type: Number, attribute: 'max-file-size' },
59
- enableDropZone: { type: Boolean, attribute: 'enable-drop-zone' },
60
- uploadOnSelect: { type: Boolean, attribute: 'upload-on-select' },
61
- isDragging: { type: Boolean, attribute: 'is-dragging', reflect: true },
62
- uploadResponse: { type: Array, state: false },
63
- _selectedFilesMetaData: { type: Array, state: true },
54
+ accept: {
55
+ type: String,
56
+ },
57
+ multiple: {
58
+ type: Boolean,
59
+ reflect: true,
60
+ },
61
+ buttonLabel: {
62
+ type: String,
63
+ attribute: 'button-label',
64
+ },
65
+ maxFileSize: {
66
+ type: Number,
67
+ attribute: 'max-file-size',
68
+ },
69
+ enableDropZone: {
70
+ type: Boolean,
71
+ attribute: 'enable-drop-zone',
72
+ },
73
+ uploadOnSelect: {
74
+ type: Boolean,
75
+ attribute: 'upload-on-select',
76
+ },
77
+ isDragging: {
78
+ type: Boolean,
79
+ attribute: 'is-dragging',
80
+ reflect: true,
81
+ },
82
+ uploadResponse: {
83
+ type: Array,
84
+ state: false,
85
+ },
86
+ _selectedFilesMetaData: {
87
+ type: Array,
88
+ state: true,
89
+ },
64
90
  };
65
91
  }
66
-
67
92
  static localizeNamespaces = [
68
- { 'lion-input-file': localizeNamespaceLoader },
93
+ {
94
+ 'lion-input-file': localizeNamespaceLoader,
95
+ },
69
96
  ...super.localizeNamespaces,
70
97
  ];
71
-
72
98
  static get validationTypes() {
73
99
  return ['error', 'info'];
74
100
  }
@@ -106,7 +132,7 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
106
132
  * @protected
107
133
  */
108
134
  get _inputNode() {
109
- return /** @type {HTMLInputElement} */ (super._inputNode);
135
+ return /** @type {HTMLInputElement} */ super._inputNode;
110
136
  }
111
137
 
112
138
  /**
@@ -163,9 +189,8 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
163
189
  * @returns {import('../../form-core/types/FormControlMixinTypes.js').HTMLElementWithValue & HTMLButtonElement}
164
190
  */
165
191
  get _focusableNode() {
166
- return /** @type {import('../../form-core/types/FormControlMixinTypes.js').HTMLElementWithValue & HTMLButtonElement} */ (
167
- this._buttonNode
168
- );
192
+ return /** @type {import('../../form-core/types/FormControlMixinTypes.js').HTMLElementWithValue & HTMLButtonElement} */ this
193
+ ._buttonNode;
169
194
  }
170
195
 
171
196
  /**
@@ -190,7 +215,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
190
215
  * @type {FileList | null}
191
216
  */
192
217
  __previouslyParsedFiles;
193
-
194
218
  constructor() {
195
219
  super();
196
220
  this.type = 'file';
@@ -219,8 +243,9 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
219
243
  * @type {EventListener}
220
244
  */
221
245
  this._onRemoveFile = this._onRemoveFile.bind(this);
222
-
223
- this.__duplicateFileNamesValidator = new DuplicateFileNames({ show: false });
246
+ this.__duplicateFileNamesValidator = new DuplicateFileNames({
247
+ show: false,
248
+ });
224
249
  this.__previouslyParsedFiles = null;
225
250
  }
226
251
 
@@ -229,11 +254,10 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
229
254
  * @type {LionSelectedFileList}
230
255
  */
231
256
  get _fileListNode() {
232
- return /** @type {LionSelectedFileList} */ (
233
- Array.from(this.children).find(child => child.slot === 'selected-file-list')
257
+ return /** @type {LionSelectedFileList} */ Array.from(this.children).find(
258
+ (child) => child.slot === 'selected-file-list',
234
259
  );
235
260
  }
236
-
237
261
  connectedCallback() {
238
262
  super.connectedCallback();
239
263
  this.__initialUploadResponse = this.uploadResponse;
@@ -241,7 +265,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
241
265
  this._inputNode.addEventListener('change', this._onChange);
242
266
  this._inputNode.addEventListener('click', this._onClick);
243
267
  }
244
-
245
268
  disconnectedCallback() {
246
269
  super.disconnectedCallback();
247
270
  this._inputNode.removeEventListener('change', this._onChange);
@@ -268,7 +291,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
268
291
  get operationMode() {
269
292
  return 'upload';
270
293
  }
271
-
272
294
  get _acceptCriteria() {
273
295
  /** @type {string[]} */
274
296
  let allowedFileTypes = [];
@@ -276,8 +298,8 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
276
298
  let allowedFileExtensions = [];
277
299
  if (this.accept) {
278
300
  const acceptedFiles = this.accept.replace(/\s+/g, '').split(',');
279
- allowedFileTypes = acceptedFiles.filter(acceptedFile => acceptedFile.includes('/'));
280
- allowedFileExtensions = acceptedFiles.filter(acceptedFile => !acceptedFile.includes('/'));
301
+ allowedFileTypes = acceptedFiles.filter((acceptedFile) => acceptedFile.includes('/'));
302
+ allowedFileExtensions = acceptedFiles.filter((acceptedFile) => !acceptedFile.includes('/'));
281
303
  }
282
304
  return {
283
305
  allowedFileTypes,
@@ -336,14 +358,12 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
336
358
  return this.modelValue;
337
359
  }
338
360
  this.__previouslyParsedFiles = this._inputNode.files;
339
-
340
361
  const files = this._inputNode.files
341
- ? /** @type {InputFile[]} */ (Array.from(this._inputNode.files))
362
+ ? /** @type {InputFile[]} */ Array.from(this._inputNode.files)
342
363
  : [];
343
364
  if (this.multiple) {
344
365
  return [...(this.modelValue ?? []), ...files];
345
366
  }
346
-
347
367
  return files;
348
368
  }
349
369
 
@@ -361,7 +381,7 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
361
381
  __setupDragDropEventListeners() {
362
382
  // TODO: this will break as soon as a Subclasser changes the template ... (changing class names is allowed, ids should be kept)
363
383
  const dropZone = this.shadowRoot?.querySelector('.input-file__drop-zone');
364
- ['dragenter', 'dragover', 'dragleave'].forEach(eventName => {
384
+ ['dragenter', 'dragover', 'dragleave'].forEach((eventName) => {
365
385
  dropZone?.addEventListener(
366
386
  eventName,
367
387
  (/** @type {Event} */ ev) => {
@@ -372,10 +392,9 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
372
392
  false,
373
393
  );
374
394
  });
375
-
376
395
  window.addEventListener(
377
396
  'drop',
378
- ev => {
397
+ (ev) => {
379
398
  if (ev.target === this._inputNode) {
380
399
  ev.preventDefault();
381
400
  }
@@ -390,7 +409,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
390
409
  */
391
410
  firstUpdated(changedProperties) {
392
411
  super.firstUpdated(changedProperties);
393
-
394
412
  this.__setupFileValidators();
395
413
 
396
414
  // TODO: if there's no inputNode by now, we should either throw an error or add a slot change listener
@@ -405,15 +423,15 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
405
423
  this._inputNode.accept = this.accept;
406
424
  }
407
425
  }
408
-
409
426
  if (this.enableDropZone && this._isDragAndDropSupported) {
410
427
  this.__setupDragDropEventListeners();
411
428
  this.setAttribute('drop-zone', '');
412
429
  }
413
430
 
414
- /** @type {LionSelectedFileList} */ (this._fileListNode).addEventListener(
431
+ /** @type {LionSelectedFileList} */
432
+ this._fileListNode.addEventListener(
415
433
  'file-remove-requested',
416
- /** @type {EventListener} */ (this._onRemoveFile),
434
+ /** @type {EventListener} */ this._onRemoveFile,
417
435
  );
418
436
  }
419
437
 
@@ -428,7 +446,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
428
446
  this._inputNode.disabled = this.disabled;
429
447
  this.validate();
430
448
  }
431
-
432
449
  if (changedProperties.has('buttonLabel') && this._buttonNode) {
433
450
  this._buttonNode.textContent = this.buttonLabel;
434
451
  }
@@ -437,11 +454,9 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
437
454
  if (changedProperties.has('name')) {
438
455
  this._inputNode.name = this.name;
439
456
  }
440
-
441
457
  if (changedProperties.has('_ariaLabelledNodes')) {
442
458
  this.__syncAriaLabelledByAttributesToButton();
443
459
  }
444
-
445
460
  if (changedProperties.has('_ariaDescribedNodes')) {
446
461
  this.__syncAriaDescribedByAttributesToButton();
447
462
  }
@@ -453,7 +468,7 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
453
468
  */
454
469
  if (changedProperties.has('uploadResponse')) {
455
470
  if (this._selectedFilesMetaData.length === 0) {
456
- this.uploadResponse.forEach(preResponse => {
471
+ this.uploadResponse.forEach((preResponse) => {
457
472
  const file = {
458
473
  systemFile: {
459
474
  name: preResponse.name,
@@ -470,14 +485,14 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
470
485
  this._selectedFilesMetaData = [...this._selectedFilesMetaData, file];
471
486
  });
472
487
  }
473
- this._selectedFilesMetaData.forEach(file => {
488
+ this._selectedFilesMetaData.forEach((file) => {
474
489
  if (
475
- !this.uploadResponse.some(response => response.name === file.systemFile.name) &&
490
+ !this.uploadResponse.some((response) => response.name === file.systemFile.name) &&
476
491
  this.uploadOnSelect
477
492
  ) {
478
493
  this.__removeFileFromList(file);
479
494
  } else {
480
- this.uploadResponse.forEach(response => {
495
+ this.uploadResponse.forEach((response) => {
481
496
  if (response.name === file.systemFile.name) {
482
497
  // eslint-disable-next-line no-param-reassign
483
498
  file.response = response;
@@ -512,9 +527,9 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
512
527
  */
513
528
  __computeNewAddedFiles(fileList) {
514
529
  const computedFileList = fileList.filter(
515
- file =>
530
+ (file) =>
516
531
  this._selectedFilesMetaData.findIndex(
517
- existLionFile => existLionFile.systemFile.name === file.name,
532
+ (existLionFile) => existLionFile.systemFile.name === file.name,
518
533
  ) === -1,
519
534
  );
520
535
  // TODO: put this logic in the Validator itself. Changing the param should trigger a re-validate
@@ -522,7 +537,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
522
537
  show: fileList.length !== computedFileList.length,
523
538
  };
524
539
  this.validate();
525
-
526
540
  return computedFileList;
527
541
  }
528
542
 
@@ -533,25 +547,21 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
533
547
  _processDroppedFiles(ev) {
534
548
  ev.preventDefault();
535
549
  this.isDragging = false;
536
-
537
550
  const isDraggingMultipleWhileNotSupported =
538
551
  ev.dataTransfer && ev.dataTransfer.items.length > 1 && !this.multiple;
539
552
  if (isDraggingMultipleWhileNotSupported || !ev.dataTransfer?.files) {
540
553
  return;
541
554
  }
542
-
543
555
  this._inputNode.files = ev.dataTransfer.files;
544
-
545
556
  if (this.multiple) {
546
557
  const computedFiles = this.__computeNewAddedFiles(
547
- /** @type {InputFile[]} */ (Array.from(ev.dataTransfer.files)),
558
+ /** @type {InputFile[]} */ Array.from(ev.dataTransfer.files),
548
559
  );
549
560
  this.modelValue = [...(this.modelValue ?? []), ...computedFiles];
550
561
  } else {
551
- this.modelValue = /** @type {InputFile[]} */ (Array.from(ev.dataTransfer.files));
562
+ this.modelValue = /** @type {InputFile[]} */ Array.from(ev.dataTransfer.files);
552
563
  }
553
-
554
- this._processFiles(/** @type {InputFile[]} */ (Array.from(ev.dataTransfer.files)));
564
+ this._processFiles(/** @type {InputFile[]} */ Array.from(ev.dataTransfer.files));
555
565
  }
556
566
 
557
567
  /**
@@ -567,7 +577,7 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
567
577
  // Here, we connect ourselves to the FormatMixin flow...
568
578
  // TODO: should we call super._onChange(ev) here instead?
569
579
  this._onUserInputChanged();
570
- this._processFiles(/** @type {HTMLInputElement & {files:InputFile[]}} */ (ev?.target)?.files);
580
+ this._processFiles(/** @type {HTMLInputElement & {files:InputFile[]}} */ ev?.target?.files);
571
581
  }
572
582
 
573
583
  /**
@@ -665,10 +675,9 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
665
675
  const _successFiles = this._selectedFilesMetaData
666
676
  .filter(
667
677
  ({ systemFile, status }) =>
668
- newFiles.includes(/** @type {InputFile} */ (systemFile)) && status === 'SUCCESS',
678
+ newFiles.includes(/** @type {InputFile} */ systemFile) && status === 'SUCCESS',
669
679
  )
670
- .map(({ systemFile }) => /** @type {InputFile} */ (systemFile));
671
-
680
+ .map(({ systemFile }) => /** @type {InputFile} */ systemFile);
672
681
  if (_successFiles.length > 0) {
673
682
  this._dispatchFileListChangeEvent(_successFiles);
674
683
  }
@@ -696,7 +705,7 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
696
705
  */
697
706
  _handleErrors() {
698
707
  let hasErrors = false;
699
- this._selectedFilesMetaData.forEach(fileObj => {
708
+ this._selectedFilesMetaData.forEach((fileObj) => {
700
709
  if (fileObj.failedProp && fileObj.failedProp.length > 0) {
701
710
  hasErrors = true;
702
711
  }
@@ -732,13 +741,12 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
732
741
  let array = [];
733
742
  let arrayLength = 0;
734
743
  let lastItem;
735
-
736
744
  if (allowedFileExtensions.length) {
737
745
  array = allowedFileExtensions;
738
746
  lastItem = array.pop();
739
747
  arrayLength = array.length;
740
748
  } else if (allowedFileTypes.length) {
741
- allowedFileTypes.forEach(MIMETypes => {
749
+ allowedFileTypes.forEach((MIMETypes) => {
742
750
  if (MIMETypes.endsWith('/*')) {
743
751
  array.push(MIMETypes.slice(0, -2));
744
752
  } else if (MIMETypes === 'text/plain') {
@@ -746,7 +754,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
746
754
  } else {
747
755
  const index = MIMETypes.indexOf('/');
748
756
  const subTypes = MIMETypes.slice(index + 1);
749
-
750
757
  if (!subTypes.includes('+')) {
751
758
  array.push(`.${subTypes}`);
752
759
  } else {
@@ -775,7 +782,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
775
782
  maxSize: formatBytes(this.maxFileSize),
776
783
  })}`;
777
784
  }
778
-
779
785
  const errorObj = {
780
786
  message,
781
787
  type: 'error',
@@ -788,38 +794,36 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
788
794
  * @protected
789
795
  */
790
796
  _updateUploadButtonDescription() {
791
- const erroneousFilesNames = /** @type {string[]} */ ([]);
797
+ const erroneousFilesNames = /** @type {string[]} */ [];
792
798
  let errorMessage;
793
-
794
- this._selectedFilesMetaData.forEach(file => {
799
+ this._selectedFilesMetaData.forEach((file) => {
795
800
  if (file.status === 'FAIL') {
796
801
  errorMessage = file.validationFeedback ? file.validationFeedback[0].message.toString() : '';
797
- erroneousFilesNames.push(/** @type {string} */ (file.systemFile.name));
802
+ erroneousFilesNames.push(/** @type {string} */ file.systemFile.name);
798
803
  }
799
804
  });
800
-
801
805
  const selectedFiles = this.querySelector('[slot="after"]');
802
806
  if (selectedFiles) {
803
807
  if (!this._selectedFilesMetaData || this._selectedFilesMetaData.length === 0) {
804
808
  if (this.uploadOnSelect) {
805
- selectedFiles.textContent = /** @type {string} */ (
806
- this.msgLit('lion-input-file:noFilesUploaded')
807
- );
809
+ selectedFiles.textContent =
810
+ /** @type {string} */
811
+ this.msgLit('lion-input-file:noFilesUploaded');
808
812
  } else {
809
- selectedFiles.textContent = /** @type {string} */ (
810
- this.msgLit('lion-input-file:noFilesSelected')
811
- );
813
+ selectedFiles.textContent =
814
+ /** @type {string} */
815
+ this.msgLit('lion-input-file:noFilesSelected');
812
816
  }
813
817
  } else if (this._selectedFilesMetaData.length === 1) {
814
818
  const { name } = this._selectedFilesMetaData[0].systemFile;
815
819
  if (this.uploadOnSelect) {
816
- selectedFiles.textContent = /** @type {string} */ (
817
- errorMessage || this.msgLit('lion-input-file:fileUploaded') + (name ?? '')
818
- );
820
+ selectedFiles.textContent =
821
+ /** @type {string} */
822
+ errorMessage || this.msgLit('lion-input-file:fileUploaded') + (name ?? '');
819
823
  } else {
820
- selectedFiles.textContent = /** @type {string} */ (
821
- errorMessage || this.msgLit('lion-input-file:fileSelected') + (name ?? '')
822
- );
824
+ selectedFiles.textContent =
825
+ /** @type {string} */
826
+ errorMessage || this.msgLit('lion-input-file:fileSelected') + (name ?? '');
823
827
  }
824
828
  } else if (this.uploadOnSelect) {
825
829
  selectedFiles.textContent = `${this.msgLit('lion-input-file:filesUploaded', {
@@ -853,7 +857,7 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
853
857
  */
854
858
  __removeFileFromList(removedFile) {
855
859
  this._selectedFilesMetaData = this._selectedFilesMetaData.filter(
856
- currentFile => currentFile.systemFile.name !== removedFile.systemFile.name,
860
+ (currentFile) => currentFile.systemFile.name !== removedFile.systemFile.name,
857
861
  );
858
862
  // checks if the file is not a pre-filled file
859
863
  if (this.modelValue) {
@@ -878,7 +882,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
878
882
  if (!this.uploadOnSelect && removedFile) {
879
883
  this.__removeFileFromList(removedFile);
880
884
  }
881
-
882
885
  this._removeFile(removedFile);
883
886
  }
884
887
 
@@ -966,7 +969,6 @@ export class LionInputFile extends ScopedElementsMixin(LocalizeMixin(LionField))
966
969
  `}
967
970
  `;
968
971
  }
969
-
970
972
  static get styles() {
971
973
  return [
972
974
  super.styles,
@@ -21,19 +21,22 @@ export class LionSelectedFileList extends LocalizeMixin(ScopedElementsMixin(LitE
21
21
  'lion-validation-feedback': LionValidationFeedback,
22
22
  };
23
23
  }
24
-
25
24
  static get properties() {
26
25
  return {
27
- fileList: { type: Array },
28
- multiple: { type: Boolean },
26
+ fileList: {
27
+ type: Array,
28
+ },
29
+ multiple: {
30
+ type: Boolean,
31
+ },
29
32
  };
30
33
  }
31
-
32
34
  static localizeNamespaces = [
33
- { 'lion-input-file': localizeNamespaceLoader },
35
+ {
36
+ 'lion-input-file': localizeNamespaceLoader,
37
+ },
34
38
  ...super.localizeNamespaces,
35
39
  ];
36
-
37
40
  constructor() {
38
41
  super();
39
42
  /**
@@ -52,12 +55,11 @@ export class LionSelectedFileList extends LocalizeMixin(ScopedElementsMixin(LitE
52
55
  this._enhanceLightDomA11y();
53
56
  }
54
57
  }
55
-
56
58
  _enhanceLightDomA11y() {
57
59
  const fileFeedbackElementList = this.shadowRoot?.querySelectorAll('[id^="file-feedback"]');
58
60
  // TODO: this will break as soon as a Subclasser changes the template ...
59
61
  const inputFileNode = this.parentNode?.parentNode;
60
- fileFeedbackElementList?.forEach(feedbackEl => {
62
+ fileFeedbackElementList?.forEach((feedbackEl) => {
61
63
  // Generic focus/blur handling that works for both Fields/FormGroups
62
64
  inputFileNode?.addEventListener('focusin', () => {
63
65
  feedbackEl.setAttribute('aria-live', 'polite');
@@ -174,7 +176,7 @@ export class LionSelectedFileList extends LocalizeMixin(ScopedElementsMixin(LitE
174
176
  ? html`
175
177
  ${repeat(
176
178
  file.validationFeedback,
177
- validationFeedback => html`
179
+ (validationFeedback) => html`
178
180
  ${this._validationFeedbackTemplate([validationFeedback], fileUuid)}
179
181
  `,
180
182
  )}
@@ -183,7 +185,6 @@ export class LionSelectedFileList extends LocalizeMixin(ScopedElementsMixin(LitE
183
185
  </div>
184
186
  `;
185
187
  }
186
-
187
188
  render() {
188
189
  return this.fileList?.length
189
190
  ? html`
@@ -191,7 +192,7 @@ export class LionSelectedFileList extends LocalizeMixin(ScopedElementsMixin(LitE
191
192
  ? html`
192
193
  <ul class="selected__list">
193
194
  ${this.fileList.map(
194
- file => html` <li>${this._selectedListItemTemplate(file)}</li> `,
195
+ (file) => html` <li>${this._selectedListItemTemplate(file)}</li> `,
195
196
  )}
196
197
  </ul>
197
198
  `
@@ -199,7 +200,6 @@ export class LionSelectedFileList extends LocalizeMixin(ScopedElementsMixin(LitE
199
200
  `
200
201
  : nothing;
201
202
  }
202
-
203
203
  static get styles() {
204
204
  return [
205
205
  css`
@@ -36,7 +36,7 @@ export class IsAcceptedFile extends Validator {
36
36
  */
37
37
  static isExtensionAllowed(extension, allowedFileExtensions) {
38
38
  return allowedFileExtensions?.find(
39
- allowedExtension => allowedExtension.toUpperCase() === extension.toUpperCase(),
39
+ (allowedExtension) => allowedExtension.toUpperCase() === extension.toUpperCase(),
40
40
  );
41
41
  }
42
42
 
@@ -45,7 +45,9 @@ export class IsAcceptedFile extends Validator {
45
45
  * @param {string[]} allowedFileTypes
46
46
  */
47
47
  static isFileTypeAllowed(type, allowedFileTypes) {
48
- return allowedFileTypes?.find(allowedType => allowedType.toUpperCase() === type.toUpperCase());
48
+ return allowedFileTypes?.find(
49
+ (allowedType) => allowedType.toUpperCase() === type.toUpperCase(),
50
+ );
49
51
  }
50
52
 
51
53
  /**
@@ -56,21 +58,22 @@ export class IsAcceptedFile extends Validator {
56
58
  execute(modelValue, params = this.param) {
57
59
  let isInvalidType;
58
60
  let isInvalidFileExt;
59
-
60
- const ctor = /** @type {typeof IsAcceptedFile} */ (this.constructor);
61
+ const ctor = /** @type {typeof IsAcceptedFile} */ this.constructor;
61
62
  const { allowedFileTypes, allowedFileExtensions, maxFileSize } = params;
62
63
  if (allowedFileTypes?.length) {
63
- isInvalidType = modelValue.some(file => !ctor.isFileTypeAllowed(file.type, allowedFileTypes));
64
+ isInvalidType = modelValue.some(
65
+ (file) => !ctor.isFileTypeAllowed(file.type, allowedFileTypes),
66
+ );
64
67
  return isInvalidType;
65
68
  }
66
69
  if (allowedFileExtensions?.length) {
67
70
  isInvalidFileExt = modelValue.some(
68
- file => !ctor.isExtensionAllowed(ctor.getExtension(file.name), allowedFileExtensions),
71
+ (file) => !ctor.isExtensionAllowed(ctor.getExtension(file.name), allowedFileExtensions),
69
72
  );
70
73
  return isInvalidFileExt;
71
74
  }
72
75
  const invalidFileSize = modelValue.findIndex(
73
- file => !ctor.checkFileSize(file.size, maxFileSize),
76
+ (file) => !ctor.checkFileSize(file.size, maxFileSize),
74
77
  );
75
78
  return invalidFileSize > -1;
76
79
  }
@@ -81,7 +84,6 @@ export class IsAcceptedFile extends Validator {
81
84
  return '';
82
85
  }
83
86
  }
84
-
85
87
  export class DuplicateFileNames extends Validator {
86
88
  static validatorName = 'DuplicateFileNames';
87
89
 
@@ -113,7 +115,6 @@ export class DuplicateFileNames extends Validator {
113
115
  return localizeManager.msg('lion-input-file:uploadTextDuplicateFileName');
114
116
  }
115
117
  }
116
-
117
118
  export class MaxFileCount extends Validator {
118
119
  static get validatorName() {
119
120
  return 'MaxFileCount';