@lion/ui 0.20.0-menu-system.0 → 0.20.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 (390) hide show
  1. package/calendar-suites.js +1 -0
  2. package/collapsible.js +0 -1
  3. package/components/button/src/LionButton.js +0 -4
  4. package/components/button/test-suites/LionButton.suite.js +0 -1
  5. package/components/calendar/src/LionCalendar.js +1 -3
  6. package/components/calendar/test/lion-calendar.test.js +67 -47
  7. package/components/calendar/test-suites/LionCalendar.suite.js +79 -0
  8. package/components/combobox/test/lion-combobox.test.js +0 -1
  9. package/components/form-core/src/FormatMixin.js +7 -2
  10. package/components/form-core/src/form-group/FormGroupMixin.js +0 -7
  11. package/components/form-core/src/registration/FormRegistrarMixin.js +0 -11
  12. package/components/form-core/test/FormControlMixin.test.js +0 -1
  13. package/components/form-core/test/FormatMixin.test.js +4 -1
  14. package/components/form-core/test/validate/Validator.test.js +0 -2
  15. package/components/form-core/test-suites/FormatMixin.suite.js +242 -65
  16. package/components/form-core/test-suites/ValidateMixin.suite.js +0 -2
  17. package/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.js +0 -1
  18. package/components/input/test/input-integrations.test.js +3 -2
  19. package/components/input/test/lion-input-integrations.test.js +2 -1
  20. package/components/input-amount/test/lion-input-amount-integrations.test.js +1 -1
  21. package/components/input-amount-dropdown/src/LionInputAmountDropdown.js +22 -4
  22. package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +22 -0
  23. package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +59 -3
  24. package/components/input-date/test/lion-input-date-integrations.test.js +1 -1
  25. package/components/input-datepicker/src/localizeNamespaceLoader.js +0 -1
  26. package/components/input-datepicker/test/lion-input-datepicker-integrations.test.js +1 -1
  27. package/components/input-datepicker/test/lion-input-datepicker.test.js +19 -9
  28. package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +35 -0
  29. package/components/input-email/src/LionInputEmail.js +2 -0
  30. package/components/input-email/test/lion-input-email-integrations.test.js +1 -1
  31. package/components/input-email/test/lion-input-email.test.js +6 -0
  32. package/components/input-file/src/validators.js +31 -1
  33. package/components/input-file/test/FileValidators.test.js +31 -0
  34. package/components/input-file/translations/bg.js +1 -0
  35. package/components/input-file/translations/cs.js +1 -0
  36. package/components/input-file/translations/de.js +2 -0
  37. package/components/input-file/translations/en.js +1 -0
  38. package/components/input-file/translations/es.js +1 -0
  39. package/components/input-file/translations/fr.js +1 -0
  40. package/components/input-file/translations/hu.js +1 -0
  41. package/components/input-file/translations/id.js +1 -0
  42. package/components/input-file/translations/it.js +1 -0
  43. package/components/input-file/translations/nl.js +1 -0
  44. package/components/input-file/translations/pl.js +1 -0
  45. package/components/input-file/translations/ro.js +1 -0
  46. package/components/input-file/translations/ru.js +1 -0
  47. package/components/input-file/translations/sk.js +1 -0
  48. package/components/input-file/translations/uk.js +1 -0
  49. package/components/input-file/translations/zh.js +1 -0
  50. package/components/input-iban/test/lion-input-iban-integrations.test.js +1 -1
  51. package/components/input-stepper/test-suites/lion-input-stepper.integration.suite.js +2 -2
  52. package/components/input-tel/src/LionInputTel.js +1 -1
  53. package/components/input-tel/test-suites/LionInputTel.suite.js +7 -0
  54. package/components/localize/test/date/formatDate.test.js +0 -1
  55. package/components/overlays/src/OverlayController.js +110 -278
  56. package/components/overlays/src/OverlayMixin.js +11 -58
  57. package/components/overlays/src/OverlaysManager.js +2 -2
  58. package/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js +41 -9
  59. package/components/overlays/src/utils/adopt-styles.js +2 -3
  60. package/components/overlays/src/utils/get-focusable-elements.js +0 -4
  61. package/components/overlays/src/utils/is-equal-config.js +6 -10
  62. package/components/overlays/test/OverlayController.test.js +14 -127
  63. package/components/overlays/test/utils-tests/is-equal-config.test.js +1 -1
  64. package/components/overlays/test-suites/OverlayMixin.suite.js +8 -8
  65. package/components/overlays/test-suites/WithHoverInteraction.suite.js +212 -0
  66. package/components/overlays/types/ArrowMixinTypes.ts +1 -3
  67. package/components/overlays/types/OverlayConfig.ts +5 -20
  68. package/components/overlays/types/OverlayMixinTypes.ts +0 -2
  69. package/components/select-rich/test/lion-select-rich.test.js +0 -3
  70. package/components/textarea/test/lion-textarea-integrations.test.js +2 -1
  71. package/components/tooltip/test/lion-tooltip.test.js +9 -1
  72. package/custom-elements.json +18086 -30683
  73. package/dist-types/components/button/src/LionButton.d.ts +0 -1
  74. package/dist-types/components/button/src/LionButton.d.ts.map +1 -1
  75. package/dist-types/components/button/test-suites/LionButton.suite.d.ts.map +1 -1
  76. package/dist-types/components/calendar/src/LionCalendar.d.ts.map +1 -1
  77. package/dist-types/components/calendar/test/lion-calendar.test.d.ts.map +1 -1
  78. package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts +5 -0
  79. package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts.map +1 -0
  80. package/dist-types/components/combobox/src/LionCombobox.d.ts +1 -1
  81. package/dist-types/components/dialog/src/LionDialog.d.ts +2 -6
  82. package/dist-types/components/dialog/src/LionDialog.d.ts.map +1 -1
  83. package/dist-types/components/form-core/src/FormatMixin.d.ts.map +1 -1
  84. package/dist-types/components/form-core/src/form-group/FormGroupMixin.d.ts.map +1 -1
  85. package/dist-types/components/form-core/src/registration/FormRegistrarMixin.d.ts.map +1 -1
  86. package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts +50 -5
  87. package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts.map +1 -1
  88. package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts.map +1 -1
  89. package/dist-types/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.d.ts.map +1 -1
  90. package/dist-types/components/icon/src/LionIcon.d.ts +2 -2
  91. package/dist-types/components/input-amount-dropdown/src/LionInputAmountDropdown.d.ts.map +1 -1
  92. package/dist-types/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.d.ts +2 -0
  93. package/dist-types/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.d.ts.map +1 -0
  94. package/dist-types/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.d.ts.map +1 -1
  95. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +1 -1
  96. package/dist-types/components/input-datepicker/src/localizeNamespaceLoader.d.ts.map +1 -1
  97. package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts.map +1 -1
  98. package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts +7 -0
  99. package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts.map +1 -0
  100. package/dist-types/components/input-email/src/LionInputEmail.d.ts.map +1 -1
  101. package/dist-types/components/input-file/src/validators.d.ts +11 -0
  102. package/dist-types/components/input-file/src/validators.d.ts.map +1 -1
  103. package/dist-types/components/input-file/translations/bg-BG.d.ts +1 -0
  104. package/dist-types/components/input-file/translations/bg.d.ts +1 -0
  105. package/dist-types/components/input-file/translations/cs-CZ.d.ts +1 -0
  106. package/dist-types/components/input-file/translations/cs.d.ts +1 -0
  107. package/dist-types/components/input-file/translations/de-DE.d.ts +1 -0
  108. package/dist-types/components/input-file/translations/de.d.ts +1 -0
  109. package/dist-types/components/input-file/translations/en-AU.d.ts +1 -0
  110. package/dist-types/components/input-file/translations/en-GB.d.ts +1 -0
  111. package/dist-types/components/input-file/translations/en-PH.d.ts +1 -0
  112. package/dist-types/components/input-file/translations/en-US.d.ts +1 -0
  113. package/dist-types/components/input-file/translations/en.d.ts +1 -0
  114. package/dist-types/components/input-file/translations/es-ES.d.ts +1 -0
  115. package/dist-types/components/input-file/translations/es.d.ts +1 -0
  116. package/dist-types/components/input-file/translations/fr-BE.d.ts +1 -0
  117. package/dist-types/components/input-file/translations/fr-FR.d.ts +1 -0
  118. package/dist-types/components/input-file/translations/fr.d.ts +1 -0
  119. package/dist-types/components/input-file/translations/hu-HU.d.ts +1 -0
  120. package/dist-types/components/input-file/translations/hu.d.ts +1 -0
  121. package/dist-types/components/input-file/translations/id-ID.d.ts +1 -0
  122. package/dist-types/components/input-file/translations/id.d.ts +1 -0
  123. package/dist-types/components/input-file/translations/it-IT.d.ts +1 -0
  124. package/dist-types/components/input-file/translations/it.d.ts +1 -0
  125. package/dist-types/components/input-file/translations/nl-BE.d.ts +1 -0
  126. package/dist-types/components/input-file/translations/nl-NL.d.ts +1 -0
  127. package/dist-types/components/input-file/translations/nl.d.ts +1 -0
  128. package/dist-types/components/input-file/translations/pl-PL.d.ts +1 -0
  129. package/dist-types/components/input-file/translations/pl.d.ts +1 -0
  130. package/dist-types/components/input-file/translations/ro-RO.d.ts +1 -0
  131. package/dist-types/components/input-file/translations/ro.d.ts +1 -0
  132. package/dist-types/components/input-file/translations/ru-RU.d.ts +1 -0
  133. package/dist-types/components/input-file/translations/ru.d.ts +1 -0
  134. package/dist-types/components/input-file/translations/sk-SK.d.ts +1 -0
  135. package/dist-types/components/input-file/translations/sk.d.ts +1 -0
  136. package/dist-types/components/input-file/translations/uk-UA.d.ts +1 -0
  137. package/dist-types/components/input-file/translations/uk.d.ts +1 -0
  138. package/dist-types/components/input-file/translations/zh-CN.d.ts +1 -0
  139. package/dist-types/components/input-file/translations/zh.d.ts +1 -0
  140. package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
  141. package/dist-types/components/input-tel/test-suites/LionInputTel.suite.d.ts.map +1 -1
  142. package/dist-types/components/overlays/src/OverlayController.d.ts +12 -24
  143. package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
  144. package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
  145. package/dist-types/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.d.ts.map +1 -1
  146. package/dist-types/components/overlays/src/utils/get-focusable-elements.d.ts.map +1 -1
  147. package/dist-types/components/overlays/src/utils/is-equal-config.d.ts.map +1 -1
  148. package/dist-types/components/overlays/test-suites/WithHoverInteraction.suite.d.ts +17 -0
  149. package/dist-types/components/overlays/test-suites/WithHoverInteraction.suite.d.ts.map +1 -0
  150. package/dist-types/components/overlays/types/ArrowMixinTypes.d.ts.map +1 -1
  151. package/dist-types/components/overlays/types/OverlayConfig.d.ts +2 -12
  152. package/dist-types/components/overlays/types/OverlayConfig.d.ts.map +1 -1
  153. package/dist-types/components/overlays/types/OverlayMixinTypes.d.ts +0 -1
  154. package/dist-types/components/overlays/types/OverlayMixinTypes.d.ts.map +1 -1
  155. package/dist-types/components/select-rich/src/LionSelectRich.d.ts +3 -11
  156. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  157. package/dist-types/components/tooltip/src/LionTooltip.d.ts +1 -1
  158. package/dist-types/components/tooltip/test/lion-tooltip.test.d.ts.map +1 -1
  159. package/dist-types/exports/calendar-suites.d.ts +2 -0
  160. package/dist-types/exports/calendar-suites.d.ts.map +1 -0
  161. package/dist-types/exports/input-datepicker-suites.d.ts +2 -0
  162. package/dist-types/exports/input-datepicker-suites.d.ts.map +1 -0
  163. package/dist-types/exports/input-file.d.ts +1 -1
  164. package/dist-types/exports/overlays-test-suites.d.ts +1 -0
  165. package/dist-types/exports/overlays.d.ts +0 -3
  166. package/dist-types/exports/overlays.d.ts.map +1 -1
  167. package/dist-types/tsconfig.tsbuildinfo +1 -1
  168. package/docs/components/checkbox-group/overview.md +2 -2
  169. package/docs/components/collapsible/overview.md +1 -1
  170. package/docs/components/combobox/api-table.md +8 -21
  171. package/docs/components/combobox/overview.md +1 -1
  172. package/docs/components/combobox/use-cases.md +1 -1
  173. package/docs/components/dialog/api-table.md +6 -31
  174. package/docs/components/dialog/overview.md +1 -1
  175. package/docs/components/fieldset/overview.md +5 -5
  176. package/docs/components/form/overview.md +3 -3
  177. package/docs/components/form/use-cases.md +2 -2
  178. package/docs/components/icon/use-cases.md +1 -1
  179. package/docs/components/input/overview.md +1 -1
  180. package/docs/components/input-amount/overview.md +3 -3
  181. package/docs/components/input-amount-dropdown/api-table.md +2 -2
  182. package/docs/components/input-date/overview.md +3 -3
  183. package/docs/components/input-datepicker/api-table.md +4 -21
  184. package/docs/components/input-datepicker/overview.md +5 -5
  185. package/docs/components/input-email/api-table.md +1 -1
  186. package/docs/components/input-email/overview.md +2 -2
  187. package/docs/components/input-file/overview.md +1 -1
  188. package/docs/components/input-file/use-cases.md +18 -0
  189. package/docs/components/input-iban/overview.md +2 -2
  190. package/docs/components/input-range/overview.md +2 -2
  191. package/docs/components/input-stepper/overview.md +1 -1
  192. package/docs/components/input-tel/api-table.md +1 -1
  193. package/docs/components/input-tel/overview.md +1 -1
  194. package/docs/components/input-tel/use-cases.md +6 -6
  195. package/docs/components/input-tel-dropdown/api-table.md +1 -1
  196. package/docs/components/input-tel-dropdown/overview.md +1 -1
  197. package/docs/components/listbox/use-cases.md +1 -1
  198. package/docs/components/radio-group/overview.md +3 -3
  199. package/docs/components/select/use-cases.md +1 -1
  200. package/docs/components/select-rich/api-table.md +5 -21
  201. package/docs/components/select-rich/use-cases.md +2 -2
  202. package/docs/components/tabs/examples.md +1 -1
  203. package/docs/components/tooltip/api-table.md +11 -36
  204. package/docs/components/tooltip/use-cases.md +34 -1
  205. package/docs/fundamentals/index.md +4 -4
  206. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  207. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  208. package/docs/fundamentals/rationales/accessibility.md +1 -1
  209. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  210. package/docs/fundamentals/systems/core/overview.md +1 -1
  211. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  212. package/docs/fundamentals/systems/form/model-value.md +1 -1
  213. package/docs/fundamentals/systems/form/overview.md +28 -28
  214. package/docs/fundamentals/systems/form/validate.md +2 -2
  215. package/docs/fundamentals/systems/localize/overview.md +4 -4
  216. package/docs/fundamentals/systems/overlays/api-table.md +34 -36
  217. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  218. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  219. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  220. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  221. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  222. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  223. package/docs/guides/how-to/create-a-form.md +4 -4
  224. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  225. package/docs/guides/how-to/index.md +1 -1
  226. package/docs/guides/index.md +8 -8
  227. package/docs/guides/principles/index.md +5 -5
  228. package/docs/guides/principles/styling.md +1 -1
  229. package/exports/calendar-suites.js +1 -0
  230. package/exports/collapsible.js +0 -1
  231. package/exports/input-datepicker-suites.js +1 -0
  232. package/exports/input-file.js +5 -1
  233. package/exports/overlays-test-suites.js +1 -0
  234. package/exports/overlays.js +0 -6
  235. package/input-datepicker-suites.js +1 -0
  236. package/input-file.js +5 -1
  237. package/overlays-test-suites.js +1 -0
  238. package/overlays.js +0 -6
  239. package/package.json +2 -2
  240. package/components/collapsible/src/DisclosureMixin.js +0 -313
  241. package/components/collapsible/test-suites/DisclosureMixin.suite.js +0 -30
  242. package/components/collapsible/types/DisclosureMixinTypes.ts +0 -48
  243. package/components/menu/CHANGELOG.md +0 -37
  244. package/components/menu/README.md +0 -335
  245. package/components/menu/index.js +0 -2
  246. package/components/menu/lion-menu-overlay.js +0 -3
  247. package/components/menu/lion-menu.js +0 -3
  248. package/components/menu/lion-spinbutton.js +0 -3
  249. package/components/menu/lion-toolbar.js +0 -3
  250. package/components/menu/lion-tree.js +0 -3
  251. package/components/menu/package.json +0 -46
  252. package/components/menu/requirements.temp.md +0 -12
  253. package/components/menu/src/InteractiveListMixin.js +0 -840
  254. package/components/menu/src/LionMenu.js +0 -250
  255. package/components/menu/src/LionMenuHybrid.js +0 -46
  256. package/components/menu/src/LionMenuOverlay.js +0 -155
  257. package/components/menu/src/LionSpinbutton.js +0 -213
  258. package/components/menu/src/LionToolbar.js +0 -94
  259. package/components/menu/src/LionTree.js +0 -52
  260. package/components/menu/src/MoreButtonMenuMixin.js +0 -278
  261. package/components/menu/src/MultiLevelListMixin.js +0 -311
  262. package/components/menu/src/utils/isInView.js +0 -26
  263. package/components/menu/src/utils/listItemInteractions.js +0 -124
  264. package/components/menu/test/InteractiveListMixin.test.js +0 -3
  265. package/components/menu/test/MoreButtonMenuMixin.test.js +0 -4
  266. package/components/menu/test/MultiLevelListMixin.test.js +0 -3
  267. package/components/menu/test/lion-menu-hybrid.test.js +0 -3
  268. package/components/menu/test/lion-menu.test.js +0 -11
  269. package/components/menu/test/lion-toolbar.test.js +0 -8
  270. package/components/menu/test/lion-tree.test.js +0 -7
  271. package/components/menu/test-helpers/mimicKeyPress.js +0 -9
  272. package/components/menu/test-suites/InteractiveListMixin.suite.js +0 -454
  273. package/components/menu/test-suites/LionMenu.suite.js +0 -113
  274. package/components/menu/test-suites/LionMenuHybrid.suite.js +0 -583
  275. package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +0 -372
  276. package/components/menu/test-suites/MultiLevelListMixin.suite.js +0 -303
  277. package/components/menu/types/InteractiveListMixinTypes.d.ts +0 -84
  278. package/components/navigation-bar/README.md +0 -1
  279. package/components/navigation-bar/src/LionNavigationBar.js +0 -439
  280. package/components/navigation-bar/src/types.js +0 -41
  281. package/components/overlays/NEXT.md +0 -49
  282. package/components/overlays/test/withHoverInteraction.test.js +0 -90
  283. package/dist-types/components/collapsible/src/DisclosureMixin.d.ts +0 -3
  284. package/dist-types/components/collapsible/src/DisclosureMixin.d.ts.map +0 -1
  285. package/dist-types/components/collapsible/test-suites/DisclosureMixin.suite.d.ts +0 -2
  286. package/dist-types/components/collapsible/test-suites/DisclosureMixin.suite.d.ts.map +0 -1
  287. package/dist-types/components/collapsible/types/DisclosureMixinTypes.d.ts +0 -24
  288. package/dist-types/components/collapsible/types/DisclosureMixinTypes.d.ts.map +0 -1
  289. package/dist-types/components/menu/index.d.ts +0 -3
  290. package/dist-types/components/menu/index.d.ts.map +0 -1
  291. package/dist-types/components/menu/lion-menu-overlay.d.ts +0 -2
  292. package/dist-types/components/menu/lion-menu-overlay.d.ts.map +0 -1
  293. package/dist-types/components/menu/lion-menu.d.ts +0 -2
  294. package/dist-types/components/menu/lion-menu.d.ts.map +0 -1
  295. package/dist-types/components/menu/lion-spinbutton.d.ts +0 -2
  296. package/dist-types/components/menu/lion-spinbutton.d.ts.map +0 -1
  297. package/dist-types/components/menu/lion-toolbar.d.ts +0 -2
  298. package/dist-types/components/menu/lion-toolbar.d.ts.map +0 -1
  299. package/dist-types/components/menu/lion-tree.d.ts +0 -2
  300. package/dist-types/components/menu/lion-tree.d.ts.map +0 -1
  301. package/dist-types/components/menu/src/InteractiveListMixin.d.ts +0 -617
  302. package/dist-types/components/menu/src/InteractiveListMixin.d.ts.map +0 -1
  303. package/dist-types/components/menu/src/LionMenu.d.ts +0 -635
  304. package/dist-types/components/menu/src/LionMenu.d.ts.map +0 -1
  305. package/dist-types/components/menu/src/LionMenuHybrid.d.ts +0 -19
  306. package/dist-types/components/menu/src/LionMenuHybrid.d.ts.map +0 -1
  307. package/dist-types/components/menu/src/LionMenuOverlay.d.ts +0 -1015
  308. package/dist-types/components/menu/src/LionMenuOverlay.d.ts.map +0 -1
  309. package/dist-types/components/menu/src/LionSpinbutton.d.ts +0 -58
  310. package/dist-types/components/menu/src/LionSpinbutton.d.ts.map +0 -1
  311. package/dist-types/components/menu/src/LionToolbar.d.ts +0 -8
  312. package/dist-types/components/menu/src/LionToolbar.d.ts.map +0 -1
  313. package/dist-types/components/menu/src/LionTree.d.ts +0 -447
  314. package/dist-types/components/menu/src/LionTree.d.ts.map +0 -1
  315. package/dist-types/components/menu/src/MoreButtonMenuMixin.d.ts +0 -39
  316. package/dist-types/components/menu/src/MoreButtonMenuMixin.d.ts.map +0 -1
  317. package/dist-types/components/menu/src/MultiLevelListMixin.d.ts +0 -503
  318. package/dist-types/components/menu/src/MultiLevelListMixin.d.ts.map +0 -1
  319. package/dist-types/components/menu/src/utils/isInView.d.ts +0 -9
  320. package/dist-types/components/menu/src/utils/isInView.d.ts.map +0 -1
  321. package/dist-types/components/menu/src/utils/listItemInteractions.d.ts +0 -48
  322. package/dist-types/components/menu/src/utils/listItemInteractions.d.ts.map +0 -1
  323. package/dist-types/components/menu/test/InteractiveListMixin.test.d.ts +0 -2
  324. package/dist-types/components/menu/test/InteractiveListMixin.test.d.ts.map +0 -1
  325. package/dist-types/components/menu/test/MoreButtonMenuMixin.test.d.ts +0 -2
  326. package/dist-types/components/menu/test/MoreButtonMenuMixin.test.d.ts.map +0 -1
  327. package/dist-types/components/menu/test/MultiLevelListMixin.test.d.ts +0 -2
  328. package/dist-types/components/menu/test/MultiLevelListMixin.test.d.ts.map +0 -1
  329. package/dist-types/components/menu/test/lion-menu-hybrid.test.d.ts +0 -2
  330. package/dist-types/components/menu/test/lion-menu-hybrid.test.d.ts.map +0 -1
  331. package/dist-types/components/menu/test/lion-menu.test.d.ts +0 -2
  332. package/dist-types/components/menu/test/lion-menu.test.d.ts.map +0 -1
  333. package/dist-types/components/menu/test/lion-toolbar.test.d.ts +0 -2
  334. package/dist-types/components/menu/test/lion-toolbar.test.d.ts.map +0 -1
  335. package/dist-types/components/menu/test/lion-tree.test.d.ts +0 -2
  336. package/dist-types/components/menu/test/lion-tree.test.d.ts.map +0 -1
  337. package/dist-types/components/menu/test-helpers/mimicKeyPress.d.ts +0 -7
  338. package/dist-types/components/menu/test-helpers/mimicKeyPress.d.ts.map +0 -1
  339. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts +0 -14
  340. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts.map +0 -1
  341. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts +0 -9
  342. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts.map +0 -1
  343. package/dist-types/components/menu/test-suites/LionMenuHybrid.suite.d.ts +0 -5
  344. package/dist-types/components/menu/test-suites/LionMenuHybrid.suite.d.ts.map +0 -1
  345. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts +0 -14
  346. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts.map +0 -1
  347. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts +0 -11
  348. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts.map +0 -1
  349. package/dist-types/components/navigation-bar/src/LionNavigationBar.d.ts +0 -238
  350. package/dist-types/components/navigation-bar/src/LionNavigationBar.d.ts.map +0 -1
  351. package/dist-types/components/navigation-bar/src/types.d.ts +0 -85
  352. package/dist-types/components/navigation-bar/src/types.d.ts.map +0 -1
  353. package/dist-types/components/overlays/test/withHoverInteraction.test.d.ts +0 -2
  354. package/dist-types/components/overlays/test/withHoverInteraction.test.d.ts.map +0 -1
  355. package/dist-types/exports/define/lion-item.d.ts +0 -2
  356. package/dist-types/exports/define/lion-item.d.ts.map +0 -1
  357. package/dist-types/exports/define/lion-menu-overlay.d.ts +0 -2
  358. package/dist-types/exports/define/lion-menu-overlay.d.ts.map +0 -1
  359. package/dist-types/exports/define/lion-menu.d.ts +0 -2
  360. package/dist-types/exports/define/lion-menu.d.ts.map +0 -1
  361. package/dist-types/exports/define/lion-navigation-bar.d.ts +0 -2
  362. package/dist-types/exports/define/lion-navigation-bar.d.ts.map +0 -1
  363. package/dist-types/exports/define/lion-toolbar.d.ts +0 -2
  364. package/dist-types/exports/define/lion-toolbar.d.ts.map +0 -1
  365. package/dist-types/exports/define/lion-tree.d.ts +0 -2
  366. package/dist-types/exports/define/lion-tree.d.ts.map +0 -1
  367. package/dist-types/exports/menu-test-suites.d.ts +0 -4
  368. package/dist-types/exports/menu-test-suites.d.ts.map +0 -1
  369. package/dist-types/exports/menu.d.ts +0 -7
  370. package/dist-types/exports/menu.d.ts.map +0 -1
  371. package/dist-types/exports/navigation-bar.d.ts +0 -2
  372. package/dist-types/exports/navigation-bar.d.ts.map +0 -1
  373. package/docs/components/menu/api-table.md +0 -460
  374. package/docs/components/menu/applyMenuDemoStyles.js +0 -173
  375. package/docs/components/menu/extensions.md +0 -262
  376. package/docs/components/menu/index.md +0 -13
  377. package/docs/components/menu/overview.md +0 -422
  378. package/docs/components/menu/use-cases.md +0 -77
  379. package/exports/define/lion-item.js +0 -3
  380. package/exports/define/lion-menu-overlay.js +0 -3
  381. package/exports/define/lion-menu.js +0 -3
  382. package/exports/define/lion-navigation-bar.js +0 -3
  383. package/exports/define/lion-toolbar.js +0 -3
  384. package/exports/define/lion-tree.js +0 -3
  385. package/exports/menu-test-suites.js +0 -4
  386. package/exports/menu.js +0 -7
  387. package/exports/navigation-bar.js +0 -1
  388. package/menu-test-suites.js +0 -4
  389. package/menu.js +0 -7
  390. package/navigation-bar.js +0 -1
@@ -4,11 +4,12 @@ import { IsDateDisabled, MaxDate, MinDate, MinMaxDate } from '@lion/ui/form-core
4
4
  import { aTimeout, defineCE, expect, fixture as _fixture, nextFrame } from '@open-wc/testing';
5
5
  import { mimicClick } from '@lion/ui/overlays-test-helpers.js';
6
6
  import sinon from 'sinon';
7
- import { setViewport } from '@web/test-runner-commands';
7
+ import { sendKeys, setViewport } from '@web/test-runner-commands';
8
8
  import { DatepickerInputObject } from '@lion/ui/input-datepicker-test-helpers.js';
9
9
  import { LionInputDatepicker } from '@lion/ui/input-datepicker.js';
10
10
 
11
11
  import '@lion/ui/define/lion-input-datepicker.js';
12
+ import { runDatepickerSuite } from '../test-suites/LionInputDatepicker.suite.js';
12
13
 
13
14
  /**
14
15
  * @typedef {import('lit').TemplateResult} TemplateResult
@@ -479,10 +480,14 @@ describe('<lion-input-datepicker>', () => {
479
480
  // Open the calendar
480
481
  await elObj.openCalendar();
481
482
 
483
+ const selectedDateEl = calendarEl?.shadowRoot?.querySelector(
484
+ '.calendar__day-button[selected]',
485
+ );
486
+ // @ts-ignore
487
+ selectedDateEl?.focus();
488
+
482
489
  // Move focus to 18th of December
483
- calendarEl.shadowRoot
484
- ?.querySelector('#js-content-wrapper')
485
- ?.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowRight' }));
490
+ await sendKeys({ press: 'ArrowRight' });
486
491
 
487
492
  expect(/** @type {Date} */ (calendarEl.focusedDate).getTime()).to.equal(
488
493
  new Date('December 18, 2020 03:24:00 GMT+0000').getTime(),
@@ -597,11 +602,12 @@ describe('<lion-input-datepicker>', () => {
597
602
  <lion-input-datepicker label="End date" name="endDate"></lion-input-datepicker>
598
603
  `);
599
604
 
600
- const elements = el.parentElement?.children;
601
- // @ts-ignore - accessing by name property
602
- const startLabel = elements?.startDate?.querySelector('button')?.ariaLabel;
603
- // @ts-ignore - accessing by name property
604
- const endLabel = elements?.endDate?.querySelector('button')?.ariaLabel;
605
+ // @ts-expect-error
606
+ const elements = el.parentElement.children;
607
+ // @ts-expect-error
608
+ const startLabel = elements.startDate.querySelector('button').ariaLabel;
609
+ // @ts-expect-error
610
+ const endLabel = elements.endDate.querySelector('button').ariaLabel;
605
611
 
606
612
  expect(startLabel).to.not.equal(endLabel);
607
613
  });
@@ -833,4 +839,8 @@ describe('<lion-input-datepicker>', () => {
833
839
  ).to.be.true;
834
840
  });
835
841
  });
842
+
843
+ describe('Run suite', () => {
844
+ runDatepickerSuite();
845
+ });
836
846
  });
@@ -0,0 +1,35 @@
1
+ import { expect, html, fixture, waitUntil, unsafeStatic } from '@open-wc/testing';
2
+ import { sendKeys } from '@web/test-runner-commands';
3
+
4
+ /** @typedef {import('@lion/ui/input-datepicker.js').LionInputDatepicker} LionInputDatepicker */
5
+
6
+ export function runDatepickerSuite({
7
+ datepickerTagName = 'lion-input-datepicker',
8
+ calendarTagName = 'lion-calendar',
9
+ } = {}) {
10
+ const tag = unsafeStatic(datepickerTagName);
11
+
12
+ it('should not reopen the datepicker popup when the date is selected by keyboard', async () => {
13
+ /** @type {LionInputDatepicker} */
14
+ const el = await fixture(html`<${tag} .modelValue="${new Date('2018/05/30')}"></${tag}>`);
15
+ await el.updateComplete;
16
+
17
+ // @ts-ignore
18
+ const openDatepickerButton = el._invokerNode;
19
+ openDatepickerButton?.focus();
20
+ openDatepickerButton?.click();
21
+ /**
22
+ * @returns {HTMLElement | null | undefined}
23
+ */
24
+ const getSelectedDateEl = () =>
25
+ el?.shadowRoot
26
+ ?.querySelector(calendarTagName)
27
+ ?.shadowRoot?.querySelector('.calendar__day-button[selected]');
28
+ await waitUntil(getSelectedDateEl);
29
+ getSelectedDateEl()?.focus();
30
+ await sendKeys({ press: 'ArrowLeft' });
31
+ await sendKeys({ press: 'Enter' });
32
+
33
+ expect(el.opened).to.be.false;
34
+ });
35
+ }
@@ -10,6 +10,8 @@ import { LocalizeMixin } from '@lion/ui/localize-no-side-effects.js';
10
10
  export class LionInputEmail extends LocalizeMixin(LionInput) {
11
11
  constructor() {
12
12
  super();
13
+ this.autocomplete = 'email';
14
+
13
15
  // local-part@domain where the local part may be up to 64 characters long
14
16
  // and the domain may have a maximum of 255 characters.
15
17
  // @see https://www.wikiwand.com/en/Email_address
@@ -1,5 +1,5 @@
1
- import { runFormatMixinSuite } from '@lion/ui/form-core-test-suites.js';
2
1
  import '@lion/ui/define/lion-input-email.js';
2
+ import { runFormatMixinSuite } from '@lion/ui/form-core-test-suites.js';
3
3
 
4
4
  const tagString = 'lion-input-email';
5
5
 
@@ -15,6 +15,12 @@ describe('<lion-input-email>', () => {
15
15
  expect(_inputNode.type).to.equal('text');
16
16
  });
17
17
 
18
+ it('sets autocomplete to "email"', async () => {
19
+ const el = await fixture(`<lion-input-email></lion-input-email>`);
20
+ // @ts-expect-error [allow-protected] inside tests
21
+ expect(el._inputNode.getAttribute('autocomplete')).to.equal('email');
22
+ });
23
+
18
24
  it('has validator "IsEmail" applied by default', async () => {
19
25
  // More elaborate tests can be found in lion-validate/test/StringValidators.test.js
20
26
  const el = await fixture(`<lion-input-email></lion-input-email>`);
@@ -2,13 +2,14 @@ import { Validator } from '@lion/ui/form-core.js';
2
2
  import { getLocalizeManager } from '@lion/ui/localize-no-side-effects.js';
3
3
 
4
4
  /**
5
+ * @typedef {import('../../form-core/types/validate/index.js').FeedbackMessageData} FeedbackMessageData
5
6
  * @typedef {import('../../form-core/types/validate/validate.js').ValidatorConfig} ValidatorConfig
6
7
  * @typedef {import('../../form-core/types/validate/validate.js').ValidatorParam} ValidatorParam
7
8
  * @typedef {import('../../form-core/types/validate/validate.js').ValidatorOutcome} ValidatorOutcome
8
9
  * @typedef {import('../types/input-file.js').InputFile} InputFile
9
10
  */
10
11
 
11
- /* eslint max-classes-per-file: ["error", 2] */
12
+ /* eslint max-classes-per-file: ["error", 3] */
12
13
  export class IsAcceptedFile extends Validator {
13
14
  static validatorName = 'IsAcceptedFile';
14
15
 
@@ -112,3 +113,32 @@ export class DuplicateFileNames extends Validator {
112
113
  return localizeManager.msg('lion-input-file:uploadTextDuplicateFileName');
113
114
  }
114
115
  }
116
+
117
+ export class MaxFileCount extends Validator {
118
+ static get validatorName() {
119
+ return 'MaxFileCount';
120
+ }
121
+
122
+ /**
123
+ * @param {Partial<FeedbackMessageData>} [data]
124
+ * @returns {Promise<string|Element>}
125
+ */
126
+ static async getMessage(data) {
127
+ const localizeManager = getLocalizeManager();
128
+ if (!data?.params || typeof data.params !== 'number' || data.params <= 0) {
129
+ return 'Invalid MaxFileCount parameter. Please provide a valid number greater than 0.';
130
+ }
131
+ return localizeManager.msg('lion-input-file:maxFileCountExceeded', {
132
+ maxFileCount: data.params,
133
+ });
134
+ }
135
+
136
+ /**
137
+ * @param {File[]} value
138
+ * @param {number} maxFiles
139
+ * @returns {boolean}
140
+ */
141
+ execute(value, maxFiles = this.param || 0) {
142
+ return maxFiles > 0 && value.length > maxFiles;
143
+ }
144
+ }
@@ -1,4 +1,5 @@
1
1
  import { expect } from '@open-wc/testing';
2
+ import { MaxFileCount } from '@lion/ui/input-file.js';
2
3
  import { IsAcceptedFile } from '../src/validators.js';
3
4
 
4
5
  describe('lion-input-file: IsAcceptedFile', () => {
@@ -167,4 +168,34 @@ describe('lion-input-file: IsAcceptedFile', () => {
167
168
  expect(returnVal).to.be.true;
168
169
  });
169
170
  });
171
+
172
+ describe('Max File Count', () => {
173
+ /**
174
+ *
175
+ * @param {string} filename
176
+ * @returns {File}
177
+ */
178
+ const newFile = filename => new File([], filename);
179
+
180
+ it('Allow up to 2 files', () => {
181
+ const validator = new MaxFileCount(2);
182
+ expect(MaxFileCount.validatorName).to.equal('MaxFileCount');
183
+
184
+ let isEnabled = validator.execute([newFile('file1.txt'), newFile('file2.txt')]);
185
+ expect(isEnabled).to.be.false;
186
+
187
+ isEnabled = validator.execute([
188
+ newFile('file1.txt'),
189
+ newFile('file2.txt'),
190
+ newFile('file3.txt'),
191
+ ]);
192
+ expect(isEnabled).to.be.true;
193
+ });
194
+
195
+ it('Allow any number of files with empty param', () => {
196
+ const validator = new MaxFileCount();
197
+ const isEnabled = validator.execute([newFile('file1.txt'), newFile('file2.txt')]);
198
+ expect(isEnabled).to.be.false;
199
+ });
200
+ });
170
201
  });
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Файл със същото име на файл вече е налице.',
18
18
  selectTextMultipleFile: 'Избор на файлове',
19
19
  selectTextSingleFile: 'Избор на файл',
20
+ maxFileCountExceeded: 'Броят на качените файлове не може да надвишава {maxFileCount}.',
20
21
  };
@@ -18,4 +18,5 @@ export default {
18
18
  selectTextDuplicateFileName: 'Soubor se stejným názvem byl již přítomen.',
19
19
  selectTextMultipleFile: 'Vybrat soubory',
20
20
  selectTextSingleFile: 'Vybrat soubor',
21
+ maxFileCountExceeded: 'Počet nahraných souborů nesmí překročit {maxFileCount}.',
21
22
  };
@@ -17,4 +17,6 @@ export default {
17
17
  selectTextDuplicateFileName: 'Eine Datei mit demselben Dateinamen war bereits vorhanden.',
18
18
  selectTextMultipleFile: 'Dateien auswählen',
19
19
  selectTextSingleFile: 'Datei auswählen',
20
+ maxFileCountExceeded:
21
+ 'Die Anzahl der hochgeladenen Dateien darf {maxFileCount} nicht überschreiten.',
20
22
  };
@@ -16,4 +16,5 @@ export default {
16
16
  selectTextDuplicateFileName: 'A file with same filename was already present.',
17
17
  selectTextMultipleFile: 'Select files',
18
18
  selectTextSingleFile: 'Select file',
19
+ maxFileCountExceeded: 'The number of uploaded files must not exceed {maxFileCount}.',
19
20
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Ya había un archivo con el mismo nombre de archivo.',
18
18
  selectTextMultipleFile: 'Seleccionar archivos',
19
19
  selectTextSingleFile: 'Seleccionar archivo',
20
+ maxFileCountExceeded: 'El número de archivos cargados no puede superar {maxFileCount}.',
20
21
  };
@@ -18,4 +18,5 @@ export default {
18
18
  selectTextDuplicateFileName: 'Un fichier portant le même nom de fichier était déjà présent.',
19
19
  selectTextMultipleFile: 'Sélectionnez des fichiers',
20
20
  selectTextSingleFile: 'Sélectionnez un fichier',
21
+ maxFileCountExceeded: 'Le nombre de fichiers téléchargés ne peut pas dépasser {maxFileCount}.',
21
22
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Már volt ilyen nevű fájl.',
18
18
  selectTextMultipleFile: 'Fájl(ok) kiválasztása',
19
19
  selectTextSingleFile: 'Fájl kiválasztása',
20
+ maxFileCountExceeded: 'A feltöltött fájlok száma nem haladhatja meg a {maxFileCount}-ot.',
20
21
  };
@@ -16,4 +16,5 @@ export default {
16
16
  selectTextDuplicateFileName: 'File dengan nama file yang sama sudah ada.',
17
17
  selectTextMultipleFile: 'Pilih beberapa file',
18
18
  selectTextSingleFile: 'Pilih berkas',
19
+ maxFileCountExceeded: 'Jumlah file yang diunggah tidak boleh melebihi {maxFileCount}.',
19
20
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Un file con lo stesso nome file era già presente.',
18
18
  selectTextMultipleFile: 'Seleziona file',
19
19
  selectTextSingleFile: 'Seleziona file',
20
+ maxFileCountExceeded: 'Il numero di file caricati non può superare {maxFileCount}.',
20
21
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Er bestaat al een bestand met dezelfde bestandsnaam.',
18
18
  selectTextMultipleFile: 'Selecteer bestanden',
19
19
  selectTextSingleFile: 'Selecteer bestand',
20
+ maxFileCountExceeded: 'Het aantal geüploade bestanden mag niet meer dan {maxFileCount} zijn.',
20
21
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Plik o tej samej nazwie już istnieje.',
18
18
  selectTextMultipleFile: 'Wybierz pliki',
19
19
  selectTextSingleFile: 'Wybierz plik',
20
+ maxFileCountExceeded: 'Liczba przesłanych plików nie może przekraczać {maxFileCount}.',
20
21
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Există deja un fişier cu acelaşi nume de fişier.',
18
18
  selectTextMultipleFile: 'Selectare fișiere',
19
19
  selectTextSingleFile: 'Selectare fișier',
20
+ maxFileCountExceeded: 'Numărul de fișiere încărcate nu poate depăși {maxFileCount}.',
20
21
  };
@@ -16,4 +16,5 @@ export default {
16
16
  selectTextDuplicateFileName: 'Файл с таким названием уже существует.',
17
17
  selectTextMultipleFile: 'Выберите файлы',
18
18
  selectTextSingleFile: 'Выберите файл',
19
+ maxFileCountExceeded: 'Количество загруженных файлов не может превышать {maxFileCount}.',
19
20
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Súbor s rovnakým názvom súboru už existoval.',
18
18
  selectTextMultipleFile: 'Vybrať súbory',
19
19
  selectTextSingleFile: 'Vybrať súbor',
20
+ maxFileCountExceeded: 'Počet nahratých súborov nesmie prekročiť {maxFileCount}.',
20
21
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: 'Файл із такою назвою вже існував.',
18
18
  selectTextMultipleFile: 'Виберіть файли',
19
19
  selectTextSingleFile: 'Виберіть файл',
20
+ maxFileCountExceeded: 'Кількість завантажених файлів не може перевищувати {maxFileCount}.',
20
21
  };
@@ -17,4 +17,5 @@ export default {
17
17
  selectTextDuplicateFileName: '已存在具有相同文件名的文件。',
18
18
  selectTextMultipleFile: '选择多个文件',
19
19
  selectTextSingleFile: '选择文件',
20
+ maxFileCountExceeded: '上传的文件数量不能超过 {maxFileCount} 个。',
20
21
  };
@@ -1,5 +1,5 @@
1
- import { runFormatMixinSuite } from '@lion/ui/form-core-test-suites.js';
2
1
  import '@lion/ui/define/lion-input-iban.js';
2
+ import { runFormatMixinSuite } from '@lion/ui/form-core-test-suites.js';
3
3
 
4
4
  const tagString = 'lion-input-iban';
5
5
 
@@ -1,8 +1,8 @@
1
- import { defineCE } from '@open-wc/testing';
2
1
  import {
3
- runInteractionStateMixinSuite,
4
2
  runFormatMixinSuite,
3
+ runInteractionStateMixinSuite,
5
4
  } from '@lion/ui/form-core-test-suites.js';
5
+ import { defineCE } from '@open-wc/testing';
6
6
  import { LionInputStepper } from '../src/LionInputStepper.js';
7
7
 
8
8
  export const runInputStepperIntegrationSuite = (klass = LionInputStepper) => {
@@ -137,6 +137,7 @@ export class LionInputTel extends LocalizeMixin(LionInput) {
137
137
  */
138
138
  constructor() {
139
139
  super();
140
+ this.autocomplete = 'tel';
140
141
 
141
142
  /**
142
143
  * Determines what the formatter output should look like.
@@ -192,7 +193,6 @@ export class LionInputTel extends LocalizeMixin(LionInput) {
192
193
  */
193
194
  firstUpdated(changedProperties) {
194
195
  super.firstUpdated(changedProperties);
195
-
196
196
  // This will trigger the right keyboard on mobile
197
197
  this._inputNode.inputMode = 'tel';
198
198
  }
@@ -222,6 +222,13 @@ export function runInputTelSuite({ klass = LionInputTel } = {}) {
222
222
  expect(el._inputNode.inputMode).to.equal('tel');
223
223
  });
224
224
 
225
+ it('sets autocomplete to "tel"', async () => {
226
+ const el = await fixture(html` <${tag}></${tag}> `);
227
+ await el.updateComplete;
228
+ // @ts-expect-error [allow-protected] inside tests
229
+ expect(el._inputNode.getAttribute('autocomplete')).to.equal('tel');
230
+ });
231
+
225
232
  it('formats according to locale', async () => {
226
233
  const el = await fixture(
227
234
  html` <${tag} .modelValue="${'+31612345678'}" .allowedRegions="${['NL']}"></${tag}> `,
@@ -210,7 +210,6 @@ describe('formatDate', () => {
210
210
  locale,
211
211
  };
212
212
  const parsedDate = /** @type {Date} */ (parseDate('12.10.2019'));
213
- // @ts-ignore - dynamic locale key access
214
213
  expect(formatDate(parsedDate, options)).to.equal(LOCALE_FORMATTED_DATE_MAP[locale]);
215
214
  });
216
215
  });