@lion/ui 0.24.0 → 0.26.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 (789) hide show
  1. package/README.md +25 -7
  2. package/accordion-test-suites.js +2 -0
  3. package/collapsible-test-suites.js +1 -0
  4. package/combobox-test-suites.js +2 -0
  5. package/components/accordion/test/lion-accordion.test.js +2 -565
  6. package/components/accordion/test-suites/lion-accordion.suite.js +596 -0
  7. package/components/button/test-suites/LionButton.suite.js +13 -11
  8. package/components/button/test-suites/LionButtonReset.suite.js +11 -3
  9. package/components/button/test-suites/LionButtonSubmit.suite.js +11 -3
  10. package/components/calendar/test/lion-calendar.test.js +1 -1570
  11. package/components/calendar/test-suites/LionCalendar.suite.js +1617 -5
  12. package/components/checkbox-group/test/lion-checkbox-group-integrations.test.js +5 -2
  13. package/components/checkbox-group/test/lion-checkbox-indeterminate-integrations.test.js +13 -4
  14. package/components/checkbox-group/test/lion-checkbox-integrations.test.js +4 -1
  15. package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +54 -54
  16. package/components/collapsible/test/lion-collapsible.test.js +2 -126
  17. package/components/collapsible/test-suites/LionCollapsible.suite.js +147 -0
  18. package/components/combobox/test/lion-combobox-integrations.test.js +11 -4
  19. package/components/combobox/test/lion-combobox.test.js +2 -3622
  20. package/components/combobox/test-suites/lion-combobox.suite.js +3665 -0
  21. package/components/core/src/ScopedElementsMixin.js +16 -1
  22. package/components/core/test-helpers/isElementVisible.js +21 -0
  23. package/components/core/test-helpers/resolveSuiteTag.js +97 -0
  24. package/components/core/types/TestSuiteTypes.ts +43 -0
  25. package/components/dialog/test/lion-dialog.integration.test.js +9 -10
  26. package/components/dialog/test/lion-dialog.test.js +2 -399
  27. package/components/dialog/test-suites/lion-dialog.suite.js +412 -0
  28. package/components/drawer/test/lion-drawer.test.js +2 -84
  29. package/components/drawer/test-suites/LionDrawer.suite.js +108 -0
  30. package/components/fieldset/test/lion-fieldset.test.js +7 -2
  31. package/components/form/test/lion-form.test.js +2 -348
  32. package/components/form/test-suites/lion-form.suite.js +398 -0
  33. package/components/form-core/test/FormatMixin.test.js +4 -1
  34. package/components/form-core/test/choice-group/CustomChoiceGroupMixin.integrations.test.js +13 -0
  35. package/components/form-core/test-suites/FormRegistrationMixins.suite.js +21 -26
  36. package/components/form-core/test-suites/FormatMixin.suite.js +45 -43
  37. package/components/form-core/test-suites/InteractionStateMixin.suite.js +19 -15
  38. package/components/form-core/test-suites/NativeTextFieldMixin.suite.js +8 -9
  39. package/components/form-core/test-suites/ValidateMixin.suite.js +14 -10
  40. package/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.js +15 -2
  41. package/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.js +55 -33
  42. package/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.js +7 -6
  43. package/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.js +19 -22
  44. package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +14 -5
  45. package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +13 -4
  46. package/components/icon/test/lion-icon.test.js +2 -188
  47. package/components/icon/test-suites/lion-icon.suite.js +206 -0
  48. package/components/input/test/input-integrations.test.js +18 -15
  49. package/components/input/test/lion-input-integrations.test.js +7 -3
  50. package/components/input/test/lion-input.test.js +2 -198
  51. package/components/input/test-suites/lion-input.suite.js +214 -0
  52. package/components/input-amount/src/parsers.js +5 -1
  53. package/components/input-amount/test/lion-input-amount-integrations.test.js +7 -3
  54. package/components/input-amount/test/lion-input-amount.test.js +2 -421
  55. package/components/input-amount/test/parsers.test.js +12 -0
  56. package/components/input-amount/test-suites/lion-input-amount.suite.js +418 -0
  57. package/components/input-amount-dropdown/test/LionInputAmountDropdown.test.js +3 -2
  58. package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +4 -2
  59. package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +6 -4
  60. package/components/input-date/test/lion-input-date-integrations.test.js +7 -3
  61. package/components/input-date/test/lion-input-date.test.js +2 -177
  62. package/components/input-date/test-suites/lion-input-date.suite.js +195 -0
  63. package/components/input-datepicker/test/lion-input-datepicker-integrations.test.js +7 -3
  64. package/components/input-datepicker/test/lion-input-datepicker.test.js +1 -844
  65. package/components/input-datepicker/test-helpers/DatepickerInputObject.js +26 -0
  66. package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +899 -14
  67. package/components/input-email/test/lion-input-email-integrations.test.js +4 -2
  68. package/components/input-email/test/lion-input-email.test.js +2 -46
  69. package/components/input-email/test-suites/lion-input-email.suite.js +63 -0
  70. package/components/input-file/test/lion-input-file.test.js +2 -1274
  71. package/components/input-file/test-suites/lion-input-file.suite.js +1505 -0
  72. package/components/input-iban/test/lion-input-iban-integrations.test.js +4 -2
  73. package/components/input-iban/test/lion-input-iban.test.js +2 -73
  74. package/components/input-iban/test-suites/lion-input-iban.suite.js +88 -0
  75. package/components/input-range/test/lion-input-range.test.js +2 -176
  76. package/components/input-range/test-suites/lion-input-range.suite.js +195 -0
  77. package/components/input-stepper/test-suites/lion-input-stepper.integration.suite.js +14 -3
  78. package/components/input-stepper/test-suites/lion-input-stepper.suite.js +14 -10
  79. package/components/input-tel/test/LionInputTel.test.js +3 -1
  80. package/components/input-tel/test/parsers.test.js +87 -0
  81. package/components/input-tel/test-helpers/mockPhoneUtilManager.js +14 -3
  82. package/components/input-tel/test-suites/LionInputTel.suite.js +9 -4
  83. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +6 -4
  84. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +10 -13
  85. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +6 -5
  86. package/components/listbox/src/LionListbox.js +1 -1
  87. package/components/listbox/test-suites/ListboxMixin.suite.js +19 -19
  88. package/components/menu/test-suites/InteractiveListMixin.suite.js +6 -9
  89. package/components/menu/test-suites/LionMenu.suite.js +6 -10
  90. package/components/menu/test-suites/LionMenuInteractions.suite.js +13 -4
  91. package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +6 -9
  92. package/components/menu/test-suites/MultiLevelListMixin.suite.js +15 -11
  93. package/components/overlays/src/OverlayController.js +7 -2
  94. package/components/overlays/src/OverlayMixin.js +3 -6
  95. package/components/overlays/test/OverlayController.test.js +37 -1
  96. package/components/overlays/test/invoker-compatibility.test.js +37 -0
  97. package/components/overlays/test-suites/OverlayMixin.suite.js +3 -5
  98. package/components/pagination/test/lion-pagination.test.js +2 -176
  99. package/components/pagination/test-suites/LionPagination.suite.js +201 -0
  100. package/components/progress-indicator/test/lion-progress-indicator.test.js +2 -203
  101. package/components/progress-indicator/test-suites/lion-progress-indicator.suite.js +214 -0
  102. package/components/radio-group/test/lion-radio-group.test.js +2 -162
  103. package/components/radio-group/test/lion-radio.test.js +2 -54
  104. package/components/radio-group/test-suites/lion-radio-group.suite.js +173 -0
  105. package/components/radio-group/test-suites/lion-radio.suite.js +70 -0
  106. package/components/select/test/lion-select.test.js +2 -79
  107. package/components/select/test-suites/LionSelect.suite.js +94 -0
  108. package/components/select-rich/src/LionSelectRich.js +2 -1
  109. package/components/select-rich/test/lion-select-invoker.test.js +2 -86
  110. package/components/select-rich/test/lion-select-rich-interaction.test.js +2 -430
  111. package/components/select-rich/test/lion-select-rich.test.js +2 -1193
  112. package/components/select-rich/test-suites/lion-select-invoker.suite.js +98 -0
  113. package/components/select-rich/test-suites/lion-select-rich-interaction.suite.js +452 -0
  114. package/components/select-rich/test-suites/lion-select-rich.suite.js +1236 -0
  115. package/components/steps/test/lion-step.test.js +2 -97
  116. package/components/steps/test/lion-steps.test.js +2 -433
  117. package/components/steps/test-suites/lion-step.suite.js +113 -0
  118. package/components/steps/test-suites/lion-steps.suite.js +445 -0
  119. package/components/switch/test/lion-switch.test.js +2 -232
  120. package/components/switch/test-suites/lion-switch.suite.js +450 -0
  121. package/components/tabs/test/lion-tabs.test.js +2 -596
  122. package/components/tabs/test-suites/lion-tabs.suite.js +617 -0
  123. package/components/textarea/src/LionTextarea.js +5 -2
  124. package/components/textarea/test/lion-textarea.test.js +2 -159
  125. package/components/textarea/test-suites/lion-textarea.suite.js +192 -0
  126. package/components/tooltip/test/lion-tooltip.test.js +2 -393
  127. package/components/tooltip/test-suites/lion-tooltip.suite.js +409 -0
  128. package/custom-elements.json +14890 -10187
  129. package/dialog-test-suites.js +2 -0
  130. package/dist-types/components/accordion/test/lion-accordion.test.d.ts +1 -2
  131. package/dist-types/components/accordion/test/lion-accordion.test.d.ts.map +1 -1
  132. package/dist-types/components/accordion/test-suites/lion-accordion.suite.d.ts +18 -0
  133. package/dist-types/components/accordion/test-suites/lion-accordion.suite.d.ts.map +1 -0
  134. package/dist-types/components/button/test-suites/LionButton.suite.d.ts +10 -4
  135. package/dist-types/components/button/test-suites/LionButton.suite.d.ts.map +1 -1
  136. package/dist-types/components/button/test-suites/LionButtonReset.suite.d.ts +10 -4
  137. package/dist-types/components/button/test-suites/LionButtonReset.suite.d.ts.map +1 -1
  138. package/dist-types/components/button/test-suites/LionButtonSubmit.suite.d.ts +10 -4
  139. package/dist-types/components/button/test-suites/LionButtonSubmit.suite.d.ts.map +1 -1
  140. package/dist-types/components/calendar/test/lion-calendar.test.d.ts +1 -3
  141. package/dist-types/components/calendar/test/lion-calendar.test.d.ts.map +1 -1
  142. package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts +13 -4
  143. package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts.map +1 -1
  144. package/dist-types/components/checkbox-group/test/lion-checkbox-group-integrations.test.d.ts.map +1 -1
  145. package/dist-types/components/checkbox-group/test/lion-checkbox-integrations.test.d.ts.map +1 -1
  146. package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts +12 -9
  147. package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts.map +1 -1
  148. package/dist-types/components/collapsible/test/lion-collapsible.test.d.ts +1 -3
  149. package/dist-types/components/collapsible/test/lion-collapsible.test.d.ts.map +1 -1
  150. package/dist-types/components/collapsible/test-suites/LionCollapsible.suite.d.ts +18 -0
  151. package/dist-types/components/collapsible/test-suites/LionCollapsible.suite.d.ts.map +1 -0
  152. package/dist-types/components/combobox/test/lion-combobox.test.d.ts +1 -5
  153. package/dist-types/components/combobox/test/lion-combobox.test.d.ts.map +1 -1
  154. package/dist-types/components/combobox/test-suites/lion-combobox.suite.d.ts +17 -0
  155. package/dist-types/components/combobox/test-suites/lion-combobox.suite.d.ts.map +1 -0
  156. package/dist-types/components/core/src/ScopedElementsMixin.d.ts.map +1 -1
  157. package/dist-types/components/core/test-helpers/isElementVisible.d.ts +12 -0
  158. package/dist-types/components/core/test-helpers/isElementVisible.d.ts.map +1 -0
  159. package/dist-types/components/core/test-helpers/resolveSuiteTag.d.ts +29 -0
  160. package/dist-types/components/core/test-helpers/resolveSuiteTag.d.ts.map +1 -0
  161. package/dist-types/components/core/types/TestSuiteTypes.d.ts +40 -0
  162. package/dist-types/components/core/types/TestSuiteTypes.d.ts.map +1 -0
  163. package/dist-types/components/dialog/test/lion-dialog.integration.test.d.ts.map +1 -1
  164. package/dist-types/components/dialog/test/lion-dialog.test.d.ts +1 -5
  165. package/dist-types/components/dialog/test/lion-dialog.test.d.ts.map +1 -1
  166. package/dist-types/components/dialog/test-suites/lion-dialog.suite.d.ts +19 -0
  167. package/dist-types/components/dialog/test-suites/lion-dialog.suite.d.ts.map +1 -0
  168. package/dist-types/components/drawer/test/lion-drawer.test.d.ts +1 -3
  169. package/dist-types/components/drawer/test/lion-drawer.test.d.ts.map +1 -1
  170. package/dist-types/components/drawer/test-suites/LionDrawer.suite.d.ts +20 -0
  171. package/dist-types/components/drawer/test-suites/LionDrawer.suite.d.ts.map +1 -0
  172. package/dist-types/components/fieldset/test/lion-fieldset.test.d.ts.map +1 -1
  173. package/dist-types/components/form/test/lion-form.test.d.ts +1 -12
  174. package/dist-types/components/form/test/lion-form.test.d.ts.map +1 -1
  175. package/dist-types/components/form/test-suites/lion-form.suite.d.ts +39 -0
  176. package/dist-types/components/form/test-suites/lion-form.suite.d.ts.map +1 -0
  177. package/dist-types/components/form-core/test-suites/FormRegistrationMixins.suite.d.ts +14 -17
  178. package/dist-types/components/form-core/test-suites/FormRegistrationMixins.suite.d.ts.map +1 -1
  179. package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts +22 -38
  180. package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts.map +1 -1
  181. package/dist-types/components/form-core/test-suites/InteractionStateMixin.suite.d.ts +11 -5
  182. package/dist-types/components/form-core/test-suites/InteractionStateMixin.suite.d.ts.map +1 -1
  183. package/dist-types/components/form-core/test-suites/NativeTextFieldMixin.suite.d.ts +9 -4
  184. package/dist-types/components/form-core/test-suites/NativeTextFieldMixin.suite.d.ts.map +1 -1
  185. package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts +9 -4
  186. package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts.map +1 -1
  187. package/dist-types/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.d.ts +10 -1
  188. package/dist-types/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.d.ts.map +1 -1
  189. package/dist-types/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.d.ts +17 -6
  190. package/dist-types/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.d.ts.map +1 -1
  191. package/dist-types/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.d.ts +5 -2
  192. package/dist-types/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.d.ts.map +1 -1
  193. package/dist-types/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.d.ts +10 -5
  194. package/dist-types/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.d.ts.map +1 -1
  195. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts +10 -5
  196. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts.map +1 -1
  197. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts +10 -5
  198. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts.map +1 -1
  199. package/dist-types/components/icon/test/lion-icon.test.d.ts +1 -4
  200. package/dist-types/components/icon/test/lion-icon.test.d.ts.map +1 -1
  201. package/dist-types/components/icon/test-suites/lion-icon.suite.d.ts +16 -0
  202. package/dist-types/components/icon/test-suites/lion-icon.suite.d.ts.map +1 -0
  203. package/dist-types/components/input/test/lion-input-integrations.test.d.ts.map +1 -1
  204. package/dist-types/components/input/test/lion-input.test.d.ts +1 -2
  205. package/dist-types/components/input/test/lion-input.test.d.ts.map +1 -1
  206. package/dist-types/components/input/test-suites/lion-input.suite.d.ts +17 -0
  207. package/dist-types/components/input/test-suites/lion-input.suite.d.ts.map +1 -0
  208. package/dist-types/components/input-amount/src/parsers.d.ts.map +1 -1
  209. package/dist-types/components/input-amount/test/lion-input-amount-integrations.test.d.ts.map +1 -1
  210. package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts +1 -2
  211. package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts.map +1 -1
  212. package/dist-types/components/input-amount/test-suites/lion-input-amount.suite.d.ts +19 -0
  213. package/dist-types/components/input-amount/test-suites/lion-input-amount.suite.d.ts.map +1 -0
  214. package/dist-types/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.d.ts.map +1 -1
  215. package/dist-types/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.d.ts +7 -3
  216. package/dist-types/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.d.ts.map +1 -1
  217. package/dist-types/components/input-date/test/lion-input-date-integrations.test.d.ts.map +1 -1
  218. package/dist-types/components/input-date/test/lion-input-date.test.d.ts +1 -3
  219. package/dist-types/components/input-date/test/lion-input-date.test.d.ts.map +1 -1
  220. package/dist-types/components/input-date/test-suites/lion-input-date.suite.d.ts +15 -0
  221. package/dist-types/components/input-date/test-suites/lion-input-date.suite.d.ts.map +1 -0
  222. package/dist-types/components/input-datepicker/test/lion-input-datepicker-integrations.test.d.ts.map +1 -1
  223. package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts +1 -2
  224. package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts.map +1 -1
  225. package/dist-types/components/input-datepicker/test-helpers/DatepickerInputObject.d.ts +8 -0
  226. package/dist-types/components/input-datepicker/test-helpers/DatepickerInputObject.d.ts.map +1 -1
  227. package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts +15 -5
  228. package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts.map +1 -1
  229. package/dist-types/components/input-email/test/lion-input-email-integrations.test.d.ts.map +1 -1
  230. package/dist-types/components/input-email/test/lion-input-email.test.d.ts +1 -3
  231. package/dist-types/components/input-email/test/lion-input-email.test.d.ts.map +1 -1
  232. package/dist-types/components/input-email/test-suites/lion-input-email.suite.d.ts +15 -0
  233. package/dist-types/components/input-email/test-suites/lion-input-email.suite.d.ts.map +1 -0
  234. package/dist-types/components/input-file/test/lion-input-file.test.d.ts +1 -5
  235. package/dist-types/components/input-file/test/lion-input-file.test.d.ts.map +1 -1
  236. package/dist-types/components/input-file/test-suites/lion-input-file.suite.d.ts +19 -0
  237. package/dist-types/components/input-file/test-suites/lion-input-file.suite.d.ts.map +1 -0
  238. package/dist-types/components/input-iban/test/lion-input-iban-integrations.test.d.ts.map +1 -1
  239. package/dist-types/components/input-iban/test/lion-input-iban.test.d.ts +1 -3
  240. package/dist-types/components/input-iban/test/lion-input-iban.test.d.ts.map +1 -1
  241. package/dist-types/components/input-iban/test-suites/lion-input-iban.suite.d.ts +15 -0
  242. package/dist-types/components/input-iban/test-suites/lion-input-iban.suite.d.ts.map +1 -0
  243. package/dist-types/components/input-range/test/lion-input-range.test.d.ts +1 -3
  244. package/dist-types/components/input-range/test/lion-input-range.test.d.ts.map +1 -1
  245. package/dist-types/components/input-range/test-suites/lion-input-range.suite.d.ts +15 -0
  246. package/dist-types/components/input-range/test-suites/lion-input-range.suite.d.ts.map +1 -0
  247. package/dist-types/components/input-stepper/test-suites/lion-input-stepper.integration.suite.d.ts +10 -2
  248. package/dist-types/components/input-stepper/test-suites/lion-input-stepper.integration.suite.d.ts.map +1 -1
  249. package/dist-types/components/input-stepper/test-suites/lion-input-stepper.suite.d.ts +10 -2
  250. package/dist-types/components/input-stepper/test-suites/lion-input-stepper.suite.d.ts.map +1 -1
  251. package/dist-types/components/input-tel/test-helpers/mockPhoneUtilManager.d.ts +5 -0
  252. package/dist-types/components/input-tel/test-helpers/mockPhoneUtilManager.d.ts.map +1 -1
  253. package/dist-types/components/input-tel/test-suites/LionInputTel.suite.d.ts +6 -4
  254. package/dist-types/components/input-tel/test-suites/LionInputTel.suite.d.ts.map +1 -1
  255. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.d.ts +7 -3
  256. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.d.ts.map +1 -1
  257. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.d.ts +7 -3
  258. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.d.ts.map +1 -1
  259. package/dist-types/components/listbox/src/LionListbox.d.ts +2 -2
  260. package/dist-types/components/listbox/src/LionListbox.d.ts.map +1 -1
  261. package/dist-types/components/listbox/test-suites/ListboxMixin.suite.d.ts +3 -4
  262. package/dist-types/components/listbox/test-suites/ListboxMixin.suite.d.ts.map +1 -1
  263. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts +6 -5
  264. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts.map +1 -1
  265. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts +6 -5
  266. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts.map +1 -1
  267. package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts +10 -4
  268. package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts.map +1 -1
  269. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts +6 -5
  270. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts.map +1 -1
  271. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts +7 -6
  272. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts.map +1 -1
  273. package/dist-types/components/overlays/src/OverlayController.d.ts +3 -1
  274. package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
  275. package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
  276. package/dist-types/components/overlays/test/invoker-compatibility.test.d.ts +3 -0
  277. package/dist-types/components/overlays/test/invoker-compatibility.test.d.ts.map +1 -0
  278. package/dist-types/components/overlays/test-suites/OverlayMixin.suite.d.ts.map +1 -1
  279. package/dist-types/components/pagination/test/lion-pagination.test.d.ts +1 -3
  280. package/dist-types/components/pagination/test/lion-pagination.test.d.ts.map +1 -1
  281. package/dist-types/components/pagination/test-suites/LionPagination.suite.d.ts +18 -0
  282. package/dist-types/components/pagination/test-suites/LionPagination.suite.d.ts.map +1 -0
  283. package/dist-types/components/progress-indicator/test/lion-progress-indicator.test.d.ts +1 -3
  284. package/dist-types/components/progress-indicator/test/lion-progress-indicator.test.d.ts.map +1 -1
  285. package/dist-types/components/progress-indicator/test-suites/lion-progress-indicator.suite.d.ts +15 -0
  286. package/dist-types/components/progress-indicator/test-suites/lion-progress-indicator.suite.d.ts.map +1 -0
  287. package/dist-types/components/radio-group/test/lion-radio-group.test.d.ts +1 -5
  288. package/dist-types/components/radio-group/test/lion-radio-group.test.d.ts.map +1 -1
  289. package/dist-types/components/radio-group/test/lion-radio.test.d.ts +1 -2
  290. package/dist-types/components/radio-group/test/lion-radio.test.d.ts.map +1 -1
  291. package/dist-types/components/radio-group/test-suites/lion-radio-group.suite.d.ts +19 -0
  292. package/dist-types/components/radio-group/test-suites/lion-radio-group.suite.d.ts.map +1 -0
  293. package/dist-types/components/radio-group/test-suites/lion-radio.suite.d.ts +17 -0
  294. package/dist-types/components/radio-group/test-suites/lion-radio.suite.d.ts.map +1 -0
  295. package/dist-types/components/select/test/lion-select.test.d.ts +1 -2
  296. package/dist-types/components/select/test/lion-select.test.d.ts.map +1 -1
  297. package/dist-types/components/select/test-suites/LionSelect.suite.d.ts +16 -0
  298. package/dist-types/components/select/test-suites/LionSelect.suite.d.ts.map +1 -0
  299. package/dist-types/components/select-rich/src/LionSelectRich.d.ts +5 -4
  300. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  301. package/dist-types/components/select-rich/test/lion-select-invoker.test.d.ts +1 -2
  302. package/dist-types/components/select-rich/test/lion-select-invoker.test.d.ts.map +1 -1
  303. package/dist-types/components/select-rich/test/lion-select-rich-interaction.test.d.ts +1 -5
  304. package/dist-types/components/select-rich/test/lion-select-rich-interaction.test.d.ts.map +1 -1
  305. package/dist-types/components/select-rich/test/lion-select-rich.test.d.ts +1 -8
  306. package/dist-types/components/select-rich/test/lion-select-rich.test.d.ts.map +1 -1
  307. package/dist-types/components/select-rich/test-suites/lion-select-invoker.suite.d.ts +19 -0
  308. package/dist-types/components/select-rich/test-suites/lion-select-invoker.suite.d.ts.map +1 -0
  309. package/dist-types/components/select-rich/test-suites/lion-select-rich-interaction.suite.d.ts +19 -0
  310. package/dist-types/components/select-rich/test-suites/lion-select-rich-interaction.suite.d.ts.map +1 -0
  311. package/dist-types/components/select-rich/test-suites/lion-select-rich.suite.d.ts +21 -0
  312. package/dist-types/components/select-rich/test-suites/lion-select-rich.suite.d.ts.map +1 -0
  313. package/dist-types/components/steps/test/lion-step.test.d.ts +1 -2
  314. package/dist-types/components/steps/test/lion-step.test.d.ts.map +1 -1
  315. package/dist-types/components/steps/test/lion-steps.test.d.ts +1 -8
  316. package/dist-types/components/steps/test/lion-steps.test.d.ts.map +1 -1
  317. package/dist-types/components/steps/test-suites/lion-step.suite.d.ts +17 -0
  318. package/dist-types/components/steps/test-suites/lion-step.suite.d.ts.map +1 -0
  319. package/dist-types/components/steps/test-suites/lion-steps.suite.d.ts +22 -0
  320. package/dist-types/components/steps/test-suites/lion-steps.suite.d.ts.map +1 -0
  321. package/dist-types/components/switch/test/lion-switch.test.d.ts +1 -4
  322. package/dist-types/components/switch/test/lion-switch.test.d.ts.map +1 -1
  323. package/dist-types/components/switch/test-suites/lion-switch.suite.d.ts +17 -0
  324. package/dist-types/components/switch/test-suites/lion-switch.suite.d.ts.map +1 -0
  325. package/dist-types/components/tabs/test/lion-tabs.test.d.ts +1 -5
  326. package/dist-types/components/tabs/test/lion-tabs.test.d.ts.map +1 -1
  327. package/dist-types/components/tabs/test-suites/lion-tabs.suite.d.ts +17 -0
  328. package/dist-types/components/tabs/test-suites/lion-tabs.suite.d.ts.map +1 -0
  329. package/dist-types/components/textarea/src/LionTextarea.d.ts.map +1 -1
  330. package/dist-types/components/textarea/test/lion-textarea.test.d.ts +1 -3
  331. package/dist-types/components/textarea/test/lion-textarea.test.d.ts.map +1 -1
  332. package/dist-types/components/textarea/test-suites/lion-textarea.suite.d.ts +15 -0
  333. package/dist-types/components/textarea/test-suites/lion-textarea.suite.d.ts.map +1 -0
  334. package/dist-types/components/tooltip/test/lion-tooltip.test.d.ts +1 -3
  335. package/dist-types/components/tooltip/test/lion-tooltip.test.d.ts.map +1 -1
  336. package/dist-types/components/tooltip/test-suites/lion-tooltip.suite.d.ts +19 -0
  337. package/dist-types/components/tooltip/test-suites/lion-tooltip.suite.d.ts.map +1 -0
  338. package/dist-types/exports/accordion-test-suites.d.ts +2 -0
  339. package/dist-types/exports/accordion-test-suites.d.ts.map +1 -0
  340. package/dist-types/exports/collapsible-test-suites.d.ts +2 -0
  341. package/dist-types/exports/collapsible-test-suites.d.ts.map +1 -0
  342. package/dist-types/exports/combobox-test-suites.d.ts +2 -0
  343. package/dist-types/exports/combobox-test-suites.d.ts.map +1 -0
  344. package/dist-types/exports/dialog-test-suites.d.ts +2 -0
  345. package/dist-types/exports/dialog-test-suites.d.ts.map +1 -0
  346. package/dist-types/exports/drawer-test-suites.d.ts +2 -0
  347. package/dist-types/exports/drawer-test-suites.d.ts.map +1 -0
  348. package/dist-types/exports/form-test-suites.d.ts +2 -0
  349. package/dist-types/exports/form-test-suites.d.ts.map +1 -0
  350. package/dist-types/exports/icon-test-suites.d.ts +2 -0
  351. package/dist-types/exports/icon-test-suites.d.ts.map +1 -0
  352. package/dist-types/exports/input-amount-test-suites.d.ts +2 -0
  353. package/dist-types/exports/input-amount-test-suites.d.ts.map +1 -0
  354. package/dist-types/exports/input-date-test-suites.d.ts +2 -0
  355. package/dist-types/exports/input-date-test-suites.d.ts.map +1 -0
  356. package/dist-types/exports/input-email-test-suites.d.ts +2 -0
  357. package/dist-types/exports/input-email-test-suites.d.ts.map +1 -0
  358. package/dist-types/exports/input-file-test-suites.d.ts +2 -0
  359. package/dist-types/exports/input-file-test-suites.d.ts.map +1 -0
  360. package/dist-types/exports/input-iban-test-suites.d.ts +2 -0
  361. package/dist-types/exports/input-iban-test-suites.d.ts.map +1 -0
  362. package/dist-types/exports/input-range-test-suites.d.ts +2 -0
  363. package/dist-types/exports/input-range-test-suites.d.ts.map +1 -0
  364. package/dist-types/exports/input-stepper-suites.d.ts +7 -2
  365. package/dist-types/exports/input-stepper-suites.d.ts.map +1 -1
  366. package/dist-types/exports/input-test-suites.d.ts +2 -0
  367. package/dist-types/exports/input-test-suites.d.ts.map +1 -0
  368. package/dist-types/exports/menu-test-suites.d.ts.map +1 -1
  369. package/dist-types/exports/pagination-test-suites.d.ts +2 -0
  370. package/dist-types/exports/pagination-test-suites.d.ts.map +1 -0
  371. package/dist-types/exports/progress-indicator-test-suites.d.ts +2 -0
  372. package/dist-types/exports/progress-indicator-test-suites.d.ts.map +1 -0
  373. package/dist-types/exports/radio-group-test-suites.d.ts +3 -0
  374. package/dist-types/exports/radio-group-test-suites.d.ts.map +1 -0
  375. package/dist-types/exports/select-rich-test-suites.d.ts +4 -0
  376. package/dist-types/exports/select-rich-test-suites.d.ts.map +1 -0
  377. package/dist-types/exports/select-test-suites.d.ts +2 -0
  378. package/dist-types/exports/select-test-suites.d.ts.map +1 -0
  379. package/dist-types/exports/steps-test-suites.d.ts +3 -0
  380. package/dist-types/exports/steps-test-suites.d.ts.map +1 -0
  381. package/dist-types/exports/switch-test-suites.d.ts +2 -0
  382. package/dist-types/exports/switch-test-suites.d.ts.map +1 -0
  383. package/dist-types/exports/tabs-test-suites.d.ts +2 -0
  384. package/dist-types/exports/tabs-test-suites.d.ts.map +1 -0
  385. package/dist-types/exports/textarea-test-suites.d.ts +2 -0
  386. package/dist-types/exports/textarea-test-suites.d.ts.map +1 -0
  387. package/dist-types/exports/tooltip-test-suites.d.ts +2 -0
  388. package/dist-types/exports/tooltip-test-suites.d.ts.map +1 -0
  389. package/dist-types/exports/types/test-suites.d.ts +4 -0
  390. package/dist-types/exports/types/test-suites.d.ts.map +1 -0
  391. package/dist-types/tsconfig.tsbuildinfo +1 -1
  392. package/drawer-test-suites.js +1 -0
  393. package/exports/accordion-test-suites.js +2 -0
  394. package/exports/collapsible-test-suites.js +1 -0
  395. package/exports/combobox-test-suites.js +2 -0
  396. package/exports/dialog-test-suites.js +2 -0
  397. package/exports/drawer-test-suites.js +1 -0
  398. package/exports/form-test-suites.js +2 -0
  399. package/exports/icon-test-suites.js +2 -0
  400. package/exports/input-amount-test-suites.js +2 -0
  401. package/exports/input-date-test-suites.js +2 -0
  402. package/exports/input-email-test-suites.js +2 -0
  403. package/exports/input-file-test-suites.js +2 -0
  404. package/exports/input-iban-test-suites.js +2 -0
  405. package/exports/input-range-test-suites.js +2 -0
  406. package/exports/input-stepper-suites.js +18 -4
  407. package/exports/input-test-suites.js +2 -0
  408. package/exports/menu-test-suites.js +3 -0
  409. package/exports/pagination-test-suites.js +1 -0
  410. package/exports/progress-indicator-test-suites.js +2 -0
  411. package/exports/radio-group-test-suites.js +3 -0
  412. package/exports/select-rich-test-suites.js +4 -0
  413. package/exports/select-test-suites.js +1 -0
  414. package/exports/steps-test-suites.js +3 -0
  415. package/exports/switch-test-suites.js +2 -0
  416. package/exports/tabs-test-suites.js +2 -0
  417. package/exports/textarea-test-suites.js +2 -0
  418. package/exports/tooltip-test-suites.js +2 -0
  419. package/exports/types/test-suites.ts +3 -0
  420. package/form-test-suites.js +2 -0
  421. package/generated/awesome-phonenumber/provenance.json +1 -1
  422. package/icon-test-suites.js +2 -0
  423. package/input-amount-test-suites.js +2 -0
  424. package/input-date-test-suites.js +2 -0
  425. package/input-email-test-suites.js +2 -0
  426. package/input-file-test-suites.js +2 -0
  427. package/input-iban-test-suites.js +2 -0
  428. package/input-range-test-suites.js +2 -0
  429. package/input-stepper-suites.js +18 -4
  430. package/input-test-suites.js +2 -0
  431. package/menu-test-suites.js +3 -0
  432. package/package.json +11 -7
  433. package/pagination-test-suites.js +1 -0
  434. package/progress-indicator-test-suites.js +2 -0
  435. package/radio-group-test-suites.js +3 -0
  436. package/select-rich-test-suites.js +4 -0
  437. package/select-test-suites.js +1 -0
  438. package/steps-test-suites.js +3 -0
  439. package/switch-test-suites.js +2 -0
  440. package/tabs-test-suites.js +2 -0
  441. package/textarea-test-suites.js +2 -0
  442. package/tooltip-test-suites.js +2 -0
  443. package/vscode.html-custom-data.json +60 -5
  444. package/web-types.json +219 -1
  445. package/components/button/test/demos.screenshots-test.js +0 -100
  446. package/components/calendar/test/demos.screenshots-test.js +0 -118
  447. package/components/input-file/test/lion-selected-file-list.test.js +0 -199
  448. package/components/select-rich/test/demos.screenshots-test.js +0 -168
  449. package/components/switch/test/lion-switch-button.test.js +0 -204
  450. package/dist-types/components/button/test/demos.screenshots-test.d.ts +0 -2
  451. package/dist-types/components/button/test/demos.screenshots-test.d.ts.map +0 -1
  452. package/dist-types/components/calendar/test/demos.screenshots-test.d.ts +0 -2
  453. package/dist-types/components/calendar/test/demos.screenshots-test.d.ts.map +0 -1
  454. package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts +0 -5
  455. package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts.map +0 -1
  456. package/dist-types/components/select-rich/test/demos.screenshots-test.d.ts +0 -2
  457. package/dist-types/components/select-rich/test/demos.screenshots-test.d.ts.map +0 -1
  458. package/dist-types/components/switch/test/lion-switch-button.test.d.ts +0 -4
  459. package/dist-types/components/switch/test/lion-switch-button.test.d.ts.map +0 -1
  460. package/docs/components/accordion/api-table.md +0 -53
  461. package/docs/components/accordion/index.md +0 -13
  462. package/docs/components/accordion/overview.md +0 -141
  463. package/docs/components/accordion/reference.md +0 -59
  464. package/docs/components/accordion/use-cases.md +0 -303
  465. package/docs/components/button/api-table.md +0 -84
  466. package/docs/components/button/assets/bootstrap-button.js +0 -245
  467. package/docs/components/button/examples.md +0 -42
  468. package/docs/components/button/extensions.md +0 -42
  469. package/docs/components/button/index.md +0 -13
  470. package/docs/components/button/overview.md +0 -42
  471. package/docs/components/button/src/icon.svg.js +0 -5
  472. package/docs/components/button/use-cases.md +0 -121
  473. package/docs/components/calendar/api-table.md +0 -56
  474. package/docs/components/calendar/index.md +0 -13
  475. package/docs/components/calendar/overview.md +0 -61
  476. package/docs/components/calendar/use-cases.md +0 -243
  477. package/docs/components/checkbox-group/api-table.md +0 -117
  478. package/docs/components/checkbox-group/index.md +0 -13
  479. package/docs/components/checkbox-group/overview.md +0 -51
  480. package/docs/components/checkbox-group/use-cases.md +0 -192
  481. package/docs/components/collapsible/api-table.md +0 -55
  482. package/docs/components/collapsible/assets/CustomCollapsible.js +0 -117
  483. package/docs/components/collapsible/assets/applyDemoCollapsibleStyles.js +0 -41
  484. package/docs/components/collapsible/examples.md +0 -95
  485. package/docs/components/collapsible/index.md +0 -13
  486. package/docs/components/collapsible/overview.md +0 -51
  487. package/docs/components/collapsible/use-cases.md +0 -91
  488. package/docs/components/combobox/api-table.md +0 -122
  489. package/docs/components/combobox/extensions.md +0 -174
  490. package/docs/components/combobox/index.md +0 -13
  491. package/docs/components/combobox/overview.md +0 -74
  492. package/docs/components/combobox/src/LinkMixin.js +0 -60
  493. package/docs/components/combobox/src/demo-selection-display.js +0 -164
  494. package/docs/components/combobox/src/gh-combobox/gh-button.js +0 -71
  495. package/docs/components/combobox/src/gh-combobox/gh-combobox.js +0 -515
  496. package/docs/components/combobox/src/google-combobox/assets/google-clear-icon.js +0 -9
  497. package/docs/components/combobox/src/google-combobox/assets/google-search-icon.js +0 -9
  498. package/docs/components/combobox/src/google-combobox/assets/google-voice-search-icon.js +0 -19
  499. package/docs/components/combobox/src/google-combobox/google-combobox.js +0 -461
  500. package/docs/components/combobox/src/lazyRender.js +0 -29
  501. package/docs/components/combobox/src/levenshtein.js +0 -95
  502. package/docs/components/combobox/src/md-combobox/MdFieldMixin.js +0 -345
  503. package/docs/components/combobox/src/md-combobox/md-combobox.js +0 -91
  504. package/docs/components/combobox/src/md-combobox/md-input.js +0 -5
  505. package/docs/components/combobox/src/md-combobox/style/load-roboto.js +0 -6
  506. package/docs/components/combobox/src/md-combobox/style/md-ripple.js +0 -82
  507. package/docs/components/combobox/src/wa-combobox/wa-combobox.js +0 -375
  508. package/docs/components/combobox/use-cases.md +0 -561
  509. package/docs/components/dialog/api-table.md +0 -61
  510. package/docs/components/dialog/index.md +0 -13
  511. package/docs/components/dialog/overview.md +0 -71
  512. package/docs/components/dialog/src/demoStyle.js +0 -57
  513. package/docs/components/dialog/src/external-dialog.js +0 -32
  514. package/docs/components/dialog/src/slots-dialog-content.js +0 -32
  515. package/docs/components/dialog/src/styled-dialog-content.js +0 -38
  516. package/docs/components/dialog/use-cases.md +0 -199
  517. package/docs/components/drawer/api-table.md +0 -64
  518. package/docs/components/drawer/index.md +0 -13
  519. package/docs/components/drawer/overview.md +0 -80
  520. package/docs/components/drawer/src/demoStyle.js +0 -71
  521. package/docs/components/drawer/use-cases.md +0 -206
  522. package/docs/components/fieldset/api-table.md +0 -24
  523. package/docs/components/fieldset/index.md +0 -13
  524. package/docs/components/fieldset/overview.md +0 -61
  525. package/docs/components/fieldset/use-cases.md +0 -203
  526. package/docs/components/form/api-table.md +0 -12
  527. package/docs/components/form/index.md +0 -13
  528. package/docs/components/form/overview.md +0 -66
  529. package/docs/components/form/use-cases.md +0 -230
  530. package/docs/components/icon/api-table.md +0 -41
  531. package/docs/components/icon/assets/bugs/bug01.svg.js +0 -2
  532. package/docs/components/icon/assets/bugs/bug02.svg.js +0 -2
  533. package/docs/components/icon/assets/bugs/bug05.svg.js +0 -2
  534. package/docs/components/icon/assets/bugs/bug06.svg.js +0 -2
  535. package/docs/components/icon/assets/bugs/bug08.svg.js +0 -2
  536. package/docs/components/icon/assets/bugs/bug12.svg.js +0 -2
  537. package/docs/components/icon/assets/bugs/bug19.svg.js +0 -2
  538. package/docs/components/icon/assets/bugs/bug23.svg.js +0 -2
  539. package/docs/components/icon/assets/bugs/bug24.svg.js +0 -2
  540. package/docs/components/icon/assets/iconset-bugs.js +0 -11
  541. package/docs/components/icon/assets/iconset-misc.js +0 -3
  542. package/docs/components/icon/assets/iconset-space.js +0 -31
  543. package/docs/components/icon/assets/misc/arrowLeft.svg.js +0 -6
  544. package/docs/components/icon/assets/space/aliens-spaceship.svg.js +0 -2
  545. package/docs/components/icon/assets/space/meteor.svg.js +0 -2
  546. package/docs/components/icon/assets/space/moon-flag.svg.js +0 -2
  547. package/docs/components/icon/assets/space/moon.svg.js +0 -2
  548. package/docs/components/icon/assets/space/night.svg.js +0 -2
  549. package/docs/components/icon/assets/space/orbit.svg.js +0 -2
  550. package/docs/components/icon/assets/space/planet.svg.js +0 -2
  551. package/docs/components/icon/assets/space/robot.svg.js +0 -2
  552. package/docs/components/icon/assets/space/rocket.svg.js +0 -2
  553. package/docs/components/icon/assets/space/satellite.svg.js +0 -2
  554. package/docs/components/icon/assets/space/signal.svg.js +0 -2
  555. package/docs/components/icon/assets/space/space-helmet.svg.js +0 -2
  556. package/docs/components/icon/assets/space/sun.svg.js +0 -2
  557. package/docs/components/icon/assets/space/telescope.svg.js +0 -2
  558. package/docs/components/icon/index.md +0 -13
  559. package/docs/components/icon/overview.md +0 -52
  560. package/docs/components/icon/use-cases.md +0 -92
  561. package/docs/components/index.md +0 -17
  562. package/docs/components/input/api-table.md +0 -52
  563. package/docs/components/input/index.md +0 -13
  564. package/docs/components/input/overview.md +0 -48
  565. package/docs/components/input/use-cases.md +0 -90
  566. package/docs/components/input-amount/api-table.md +0 -66
  567. package/docs/components/input-amount/index.md +0 -13
  568. package/docs/components/input-amount/overview.md +0 -61
  569. package/docs/components/input-amount/use-cases.md +0 -147
  570. package/docs/components/input-amount-dropdown/api-table.md +0 -87
  571. package/docs/components/input-amount-dropdown/index.md +0 -13
  572. package/docs/components/input-amount-dropdown/use-cases.md +0 -103
  573. package/docs/components/input-date/api-table.md +0 -58
  574. package/docs/components/input-date/index.md +0 -13
  575. package/docs/components/input-date/overview.md +0 -51
  576. package/docs/components/input-date/use-cases.md +0 -96
  577. package/docs/components/input-datepicker/api-table.md +0 -99
  578. package/docs/components/input-datepicker/index.md +0 -13
  579. package/docs/components/input-datepicker/overview.md +0 -54
  580. package/docs/components/input-datepicker/use-cases.md +0 -117
  581. package/docs/components/input-email/api-table.md +0 -53
  582. package/docs/components/input-email/index.md +0 -13
  583. package/docs/components/input-email/overview.md +0 -44
  584. package/docs/components/input-email/use-cases.md +0 -60
  585. package/docs/components/input-file/api-table.md +0 -157
  586. package/docs/components/input-file/index.md +0 -13
  587. package/docs/components/input-file/overview.md +0 -44
  588. package/docs/components/input-file/use-cases.md +0 -454
  589. package/docs/components/input-iban/api-table.md +0 -54
  590. package/docs/components/input-iban/index.md +0 -13
  591. package/docs/components/input-iban/overview.md +0 -49
  592. package/docs/components/input-iban/use-cases.md +0 -114
  593. package/docs/components/input-range/api-table.md +0 -71
  594. package/docs/components/input-range/index.md +0 -13
  595. package/docs/components/input-range/overview.md +0 -44
  596. package/docs/components/input-range/use-cases.md +0 -126
  597. package/docs/components/input-stepper/api-table.md +0 -74
  598. package/docs/components/input-stepper/index.md +0 -13
  599. package/docs/components/input-stepper/overview.md +0 -48
  600. package/docs/components/input-stepper/use-cases.md +0 -155
  601. package/docs/components/input-tel/api-table.md +0 -77
  602. package/docs/components/input-tel/index.md +0 -13
  603. package/docs/components/input-tel/overview.md +0 -74
  604. package/docs/components/input-tel/src/h-region-code-table.js +0 -109
  605. package/docs/components/input-tel/use-cases.md +0 -319
  606. package/docs/components/input-tel-dropdown/api-table.md +0 -85
  607. package/docs/components/input-tel-dropdown/extensions.md +0 -44
  608. package/docs/components/input-tel-dropdown/index.md +0 -13
  609. package/docs/components/input-tel-dropdown/overview.md +0 -50
  610. package/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js +0 -138
  611. package/docs/components/input-tel-dropdown/use-cases.md +0 -171
  612. package/docs/components/listbox/api-table.md +0 -65
  613. package/docs/components/listbox/index.md +0 -13
  614. package/docs/components/listbox/overview.md +0 -54
  615. package/docs/components/listbox/src/listboxData.js +0 -131
  616. package/docs/components/listbox/use-cases.md +0 -154
  617. package/docs/components/menu/api-table.md +0 -44
  618. package/docs/components/menu/applyMenuDemoStyles.js +0 -173
  619. package/docs/components/menu/extensions.md +0 -262
  620. package/docs/components/menu/index.md +0 -13
  621. package/docs/components/menu/migration.md +0 -129
  622. package/docs/components/menu/overview.md +0 -448
  623. package/docs/components/menu/src/DemoNavigationBar.js +0 -441
  624. package/docs/components/menu/src/DemoSpinButton.js +0 -215
  625. package/docs/components/menu/src/DemoToolbar.js +0 -101
  626. package/docs/components/menu/src/DemoTree.js +0 -55
  627. package/docs/components/menu/src/navigation-bar-types.js +0 -41
  628. package/docs/components/menu/use-cases.md +0 -74
  629. package/docs/components/pagination/api-table.md +0 -45
  630. package/docs/components/pagination/index.md +0 -13
  631. package/docs/components/pagination/overview.md +0 -41
  632. package/docs/components/pagination/use-cases.md +0 -113
  633. package/docs/components/progress-indicator/api-table.md +0 -48
  634. package/docs/components/progress-indicator/assets/my-determinate-progress-bar.js +0 -30
  635. package/docs/components/progress-indicator/assets/my-indeterminate-progress-spinner.js +0 -55
  636. package/docs/components/progress-indicator/examples.md +0 -137
  637. package/docs/components/progress-indicator/index.md +0 -13
  638. package/docs/components/progress-indicator/overview.md +0 -48
  639. package/docs/components/radio-group/api-table.md +0 -63
  640. package/docs/components/radio-group/index.md +0 -13
  641. package/docs/components/radio-group/overview.md +0 -58
  642. package/docs/components/radio-group/use-cases.md +0 -146
  643. package/docs/components/select/api-table.md +0 -51
  644. package/docs/components/select/index.md +0 -13
  645. package/docs/components/select/overview.md +0 -56
  646. package/docs/components/select/use-cases.md +0 -128
  647. package/docs/components/select-rich/api-table.md +0 -123
  648. package/docs/components/select-rich/examples.md +0 -43
  649. package/docs/components/select-rich/index.md +0 -13
  650. package/docs/components/select-rich/overview.md +0 -55
  651. package/docs/components/select-rich/src/flagStyles.js +0 -1250
  652. package/docs/components/select-rich/src/intl-select-rich.js +0 -194
  653. package/docs/components/select-rich/src/regionMetaList.js +0 -1717
  654. package/docs/components/select-rich/use-cases.md +0 -387
  655. package/docs/components/steps/api-table.md +0 -92
  656. package/docs/components/steps/index.md +0 -13
  657. package/docs/components/steps/overview.md +0 -77
  658. package/docs/components/steps/use-cases.md +0 -181
  659. package/docs/components/switch/api-table.md +0 -82
  660. package/docs/components/switch/index.md +0 -13
  661. package/docs/components/switch/overview.md +0 -87
  662. package/docs/components/switch/reference.md +0 -51
  663. package/docs/components/switch/use-cases.md +0 -88
  664. package/docs/components/tabs/api-table.md +0 -51
  665. package/docs/components/tabs/examples.md +0 -35
  666. package/docs/components/tabs/index.md +0 -13
  667. package/docs/components/tabs/overview.md +0 -60
  668. package/docs/components/tabs/src/lea-tab-panel.js +0 -26
  669. package/docs/components/tabs/src/lea-tab.js +0 -50
  670. package/docs/components/tabs/src/lea-tabs.js +0 -28
  671. package/docs/components/tabs/use-cases.md +0 -231
  672. package/docs/components/textarea/api-table.md +0 -57
  673. package/docs/components/textarea/index.md +0 -13
  674. package/docs/components/textarea/overview.md +0 -47
  675. package/docs/components/textarea/use-cases.md +0 -107
  676. package/docs/components/tooltip/api-table.md +0 -62
  677. package/docs/components/tooltip/examples.md +0 -51
  678. package/docs/components/tooltip/index.md +0 -13
  679. package/docs/components/tooltip/overview.md +0 -56
  680. package/docs/components/tooltip/use-cases.md +0 -275
  681. package/docs/fundamentals/index.md +0 -19
  682. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +0 -13
  683. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +0 -246
  684. package/docs/fundamentals/node-tools/index.md +0 -11
  685. package/docs/fundamentals/node-tools/providence-analytics/index.md +0 -13
  686. package/docs/fundamentals/node-tools/providence-analytics/overview.md +0 -108
  687. package/docs/fundamentals/node-tools/publish-docs/index.md +0 -13
  688. package/docs/fundamentals/node-tools/publish-docs/overview.md +0 -149
  689. package/docs/fundamentals/node-tools/remark-extend/index.md +0 -13
  690. package/docs/fundamentals/node-tools/remark-extend/overview.md +0 -287
  691. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +0 -13
  692. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +0 -298
  693. package/docs/fundamentals/rationales/TypeScript.md +0 -123
  694. package/docs/fundamentals/rationales/accessibility.md +0 -40
  695. package/docs/fundamentals/rationales/index.md +0 -11
  696. package/docs/fundamentals/rationales/side-effects.md +0 -215
  697. package/docs/fundamentals/rationales/versioning.md +0 -47
  698. package/docs/fundamentals/systems/core/SlotMixin.md +0 -168
  699. package/docs/fundamentals/systems/core/api-table.md +0 -43
  700. package/docs/fundamentals/systems/core/index.md +0 -15
  701. package/docs/fundamentals/systems/core/overview.md +0 -98
  702. package/docs/fundamentals/systems/form/api-table.md +0 -40
  703. package/docs/fundamentals/systems/form/assets/h-output.js +0 -156
  704. package/docs/fundamentals/systems/form/formatting-and-parsing.md +0 -258
  705. package/docs/fundamentals/systems/form/index.md +0 -15
  706. package/docs/fundamentals/systems/form/interaction-states.md +0 -195
  707. package/docs/fundamentals/systems/form/model-value.md +0 -57
  708. package/docs/fundamentals/systems/form/overview.md +0 -95
  709. package/docs/fundamentals/systems/form/styling.md +0 -92
  710. package/docs/fundamentals/systems/form/use-cases.md +0 -187
  711. package/docs/fundamentals/systems/form/validate.md +0 -985
  712. package/docs/fundamentals/systems/icon/index.md +0 -15
  713. package/docs/fundamentals/systems/icon/overview.md +0 -137
  714. package/docs/fundamentals/systems/index.md +0 -11
  715. package/docs/fundamentals/systems/localize/api-table.md +0 -72
  716. package/docs/fundamentals/systems/localize/assets/all-locales.js +0 -437
  717. package/docs/fundamentals/systems/localize/assets/en-AU.js +0 -6
  718. package/docs/fundamentals/systems/localize/assets/en-GB.js +0 -6
  719. package/docs/fundamentals/systems/localize/assets/en-US.js +0 -6
  720. package/docs/fundamentals/systems/localize/assets/en.js +0 -4
  721. package/docs/fundamentals/systems/localize/assets/nl-BE.js +0 -6
  722. package/docs/fundamentals/systems/localize/assets/nl-NL.js +0 -6
  723. package/docs/fundamentals/systems/localize/assets/nl.js +0 -4
  724. package/docs/fundamentals/systems/localize/dates.md +0 -208
  725. package/docs/fundamentals/systems/localize/index.md +0 -15
  726. package/docs/fundamentals/systems/localize/numbers.md +0 -230
  727. package/docs/fundamentals/systems/localize/overview.md +0 -61
  728. package/docs/fundamentals/systems/localize/rationale.md +0 -75
  729. package/docs/fundamentals/systems/localize/text.md +0 -139
  730. package/docs/fundamentals/systems/localize/use-cases.md +0 -334
  731. package/docs/fundamentals/systems/overlays/_configuration-positioning.md +0 -118
  732. package/docs/fundamentals/systems/overlays/_edge-cases.md +0 -149
  733. package/docs/fundamentals/systems/overlays/api-table.md +0 -174
  734. package/docs/fundamentals/systems/overlays/assets/applyDemoOverlayStyles.js +0 -23
  735. package/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.js +0 -104
  736. package/docs/fundamentals/systems/overlays/assets/demo-overlay-backdrop.js +0 -47
  737. package/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs +0 -537
  738. package/docs/fundamentals/systems/overlays/assets/umbrella-form.js +0 -140
  739. package/docs/fundamentals/systems/overlays/configuration.md +0 -516
  740. package/docs/fundamentals/systems/overlays/index.md +0 -15
  741. package/docs/fundamentals/systems/overlays/overview.md +0 -126
  742. package/docs/fundamentals/systems/overlays/rationale.md +0 -242
  743. package/docs/fundamentals/systems/overlays/use-cases.md +0 -717
  744. package/docs/fundamentals/tools/ajax/index.md +0 -15
  745. package/docs/fundamentals/tools/ajax/overview.md +0 -269
  746. package/docs/fundamentals/tools/ajax/use-cases.md +0 -469
  747. package/docs/fundamentals/tools/helpers/action-logger.md +0 -175
  748. package/docs/fundamentals/tools/helpers/index.md +0 -15
  749. package/docs/fundamentals/tools/helpers/overview.md +0 -43
  750. package/docs/fundamentals/tools/index.md +0 -11
  751. package/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js +0 -95
  752. package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +0 -34
  753. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/index.js +0 -30
  754. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/instance.js +0 -4
  755. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-a/page-a.js +0 -35
  756. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js +0 -30
  757. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js +0 -4
  758. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js +0 -49
  759. package/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js +0 -69
  760. package/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +0 -93
  761. package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +0 -32
  762. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/index.js +0 -30
  763. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/instance.js +0 -3
  764. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-c/page-c.js +0 -34
  765. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/node_modules/overlays/index.js +0 -30
  766. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/node_modules/overlays/instance.js +0 -3
  767. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/page-d.js +0 -34
  768. package/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +0 -95
  769. package/docs/fundamentals/tools/singleton-manager/example-success/index.md +0 -31
  770. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/index.js +0 -30
  771. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/instance.js +0 -4
  772. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-e/page-e.js +0 -33
  773. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/node_modules/overlays/index.js +0 -30
  774. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/node_modules/overlays/instance.js +0 -4
  775. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/page-f.js +0 -34
  776. package/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js +0 -23
  777. package/docs/fundamentals/tools/singleton-manager/index.md +0 -15
  778. package/docs/fundamentals/tools/singleton-manager/overview.md +0 -317
  779. package/docs/guides/how-to/create-a-custom-field.md +0 -212
  780. package/docs/guides/how-to/create-a-form.md +0 -101
  781. package/docs/guides/how-to/extend-a-native-input.md +0 -78
  782. package/docs/guides/how-to/get-started.md +0 -116
  783. package/docs/guides/how-to/index.md +0 -25
  784. package/docs/guides/index.md +0 -44
  785. package/docs/guides/principles/definitions-and-terms.md +0 -53
  786. package/docs/guides/principles/index.md +0 -36
  787. package/docs/guides/principles/scoped-elements.md +0 -119
  788. package/docs/guides/principles/styling.md +0 -43
  789. package/docs/guides/principles/subclasser-apis.md +0 -40
@@ -1,845 +1,2 @@
1
- import { LionCalendar, isSameDate } from '@lion/ui/calendar.js';
2
- import { html, LitElement } from 'lit';
3
- import { IsDateDisabled, MaxDate, MinDate, MinMaxDate } from '@lion/ui/form-core.js';
4
- import { aTimeout, defineCE, expect, fixture as _fixture, nextFrame } from '@open-wc/testing';
5
- import { mimicClick } from '@lion/ui/overlays-test-helpers.js';
6
- import { parseDate } from '@lion/ui/localize.js';
7
- import sinon from 'sinon';
8
- import { sendKeys, setViewport } from '@web/test-runner-commands';
9
- import { AlwaysInvalid } from '@lion/ui/form-core-test-helpers.js';
10
- import { DatepickerInputObject } from '@lion/ui/input-datepicker-test-helpers.js';
11
- import { LionInputDatepicker } from '@lion/ui/input-datepicker.js';
12
- import '@lion/ui/define/lion-input-datepicker.js';
13
1
  import { runDatepickerSuite } from '../test-suites/LionInputDatepicker.suite.js';
14
-
15
- /**
16
- * @typedef {import('lit').TemplateResult} TemplateResult
17
- */
18
-
19
- /**
20
- * @param {LionInputDatepicker} datepickerEl
21
- */
22
- function getProtectedMembersDatepicker(datepickerEl) {
23
- // @ts-ignore
24
- const { __invokerId: invokerId, _calendarNode: calendarNode } = datepickerEl;
25
- return {
26
- invokerId,
27
- calendarNode,
28
- };
29
- }
30
-
31
- /**
32
- * @param {LionCalendar} calendarEl
33
- */
34
- function getProtectedMembersCalendar(calendarEl) {
35
- return {
36
- // @ts-ignore
37
- dateSelectedByUser: (...args) => calendarEl.__dateSelectedByUser(...args),
38
- };
39
- }
40
- const fixture = /** @type {(arg: TemplateResult) => Promise<LionInputDatepicker>} */ _fixture;
41
- describe('<lion-input-datepicker>', () => {
42
- describe('Calendar Overlay', () => {
43
- it('implements calendar-overlay Style component', async () => {
44
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
45
- const elObj = new DatepickerInputObject(el);
46
- await elObj.openCalendar();
47
- expect(
48
- /** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay'),
49
- ).not.to.equal(null);
50
- expect(
51
- /** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__header'),
52
- ).not.to.equal(null);
53
- expect(
54
- /** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__heading'),
55
- ).not.to.equal(null);
56
- expect(
57
- /** @type {ShadowRoot} */ el.shadowRoot.querySelector('.calendar-overlay__close-button'),
58
- ).not.to.equal(null);
59
- });
60
- it('has a close button, with a tooltip "Close"', async () => {
61
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
62
- const elObj = new DatepickerInputObject(el);
63
- await elObj.openCalendar();
64
- // Since tooltip not ready, use title which can be progressively enhanced in extension layers.
65
- expect(elObj.overlayCloseButtonEl.getAttribute('title')).to.equal('Close');
66
- expect(elObj.overlayCloseButtonEl.getAttribute('aria-label')).to.equal('Close');
67
- });
68
- it('has a default title based on input label', async () => {
69
- const el = await fixture(html`
70
- <lion-input-datepicker
71
- .label="${'Pick your date'}"
72
- .modelValue="${new Date('2020-02-15')}"
73
- ></lion-input-datepicker>
74
- `);
75
- const elObj = new DatepickerInputObject(el);
76
- await elObj.openCalendar();
77
- expect(elObj.overlayHeadingEl.textContent).to.equal('Pick your date');
78
- });
79
- it('can have a custom heading', async () => {
80
- const el = await fixture(html`
81
- <lion-input-datepicker
82
- label="Pick your date"
83
- calendar-heading="foo"
84
- ></lion-input-datepicker>
85
- `);
86
- const elObj = new DatepickerInputObject(el);
87
- await elObj.openCalendar();
88
- expect(elObj.overlayHeadingEl.innerText).to.equal('foo');
89
- });
90
- it('closes the calendar on [esc] key', async () => {
91
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
92
- const elObj = new DatepickerInputObject(el);
93
- await elObj.openCalendar();
94
- expect(elObj.overlayController.isShown).to.equal(true);
95
- elObj.overlayController.contentNode.dispatchEvent(
96
- new KeyboardEvent('keyup', {
97
- key: 'Escape',
98
- }),
99
- );
100
- await nextFrame();
101
- expect(elObj.overlayController.isShown).to.equal(false);
102
- });
103
- it('closes the calendar via close button', async () => {
104
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
105
- const elObj = new DatepickerInputObject(el);
106
- await elObj.openCalendar();
107
- expect(elObj.overlayController.isShown).to.equal(true);
108
- elObj.overlayCloseButtonEl.click();
109
- await nextFrame();
110
- expect(elObj.overlayController.isShown).to.equal(false);
111
- });
112
- it('closes the calendar via outside click event', async () => {
113
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
114
- const elObj = new DatepickerInputObject(el);
115
- await elObj.openCalendar();
116
- expect(elObj.overlayController.isShown).to.equal(true);
117
- mimicClick(document.body);
118
- await aTimeout(0);
119
- expect(elObj.overlayController.isShown).to.be.false;
120
- });
121
-
122
- /**
123
- * Not in scope:
124
- * - centralDate can be overridden
125
- */
126
- });
127
- describe('Calendar Invoker', () => {
128
- it('adds invoker button that toggles the overlay on click in suffix slot ', async () => {
129
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
130
- const elObj = new DatepickerInputObject(el);
131
- expect(elObj.invokerEl).not.to.equal(null);
132
- expect(elObj.overlayController.isShown).to.be.false;
133
- await elObj.openCalendar();
134
- expect(elObj.overlayController.isShown).to.equal(true);
135
- });
136
- it('delegates disabled state of host input', async () => {
137
- const el = await fixture(html`<lion-input-datepicker disabled></lion-input-datepicker>`);
138
- const elObj = new DatepickerInputObject(el);
139
- expect(elObj.overlayController.isShown).to.equal(false);
140
- await elObj.openCalendar({
141
- click: true,
142
- });
143
- expect(elObj.overlayController.isShown).to.equal(false);
144
- el.disabled = false;
145
- await elObj.openCalendar({
146
- click: true,
147
- });
148
- expect(elObj.overlayController.isShown).to.equal(true);
149
- });
150
- it('disables invoker when host input is readonly', async () => {
151
- const el = await fixture(html`<lion-input-datepicker readonly></lion-input-datepicker>`);
152
- const elObj = new DatepickerInputObject(el);
153
- expect(elObj.overlayController.isShown).to.equal(false);
154
- await elObj.openCalendar({
155
- click: true,
156
- });
157
- expect(elObj.overlayController.isShown).to.equal(false);
158
- el.readOnly = false;
159
- await elObj.openCalendar({
160
- click: true,
161
- });
162
- expect(elObj.overlayController.isShown).to.equal(true);
163
- });
164
- });
165
- describe('Input - calendar synchronization', () => {
166
- it('syncs modelValue with lion-calendar', async () => {
167
- const myDate = new Date('2019/06/15');
168
- const myOtherDate = new Date('2019/06/28');
169
- const el = await fixture(html`
170
- <lion-input-datepicker .modelValue="${myDate}"></lion-input-datepicker>
171
- `);
172
- const elObj = new DatepickerInputObject(el);
173
- await elObj.openCalendar();
174
- expect(elObj.calendarEl.selectedDate).to.equal(myDate);
175
- await elObj.selectMonthDay(myOtherDate.getDate());
176
- expect(isSameDate(/** @type {Date} */ el.modelValue, myOtherDate)).to.be.true;
177
- });
178
- it('restores centralDate when modelValue is cleared', async () => {
179
- const myDate = new Date('2019/06/15');
180
- const el = await fixture(html` <lion-input-datepicker></lion-input-datepicker> `);
181
- const elObj = new DatepickerInputObject(el);
182
- const initialCentralDate = elObj.calendarEl.centralDate;
183
- el.modelValue = myDate;
184
- await elObj.openCalendar();
185
- expect(elObj.calendarEl.selectedDate).to.equal(myDate);
186
- expect(elObj.calendarEl.centralDate).to.equal(myDate);
187
- el.modelValue = undefined;
188
- expect(elObj.calendarEl.centralDate).to.equal(myDate);
189
- await elObj.closeCalendar();
190
- await elObj.openCalendar();
191
- expect(elObj.calendarEl.centralDate).to.equal(initialCentralDate);
192
- });
193
- it('closes the calendar overlay on "user-selected-date-changed"', async () => {
194
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
195
- const elObj = new DatepickerInputObject(el);
196
- // Make sure the calendar overlay is opened
197
- await elObj.openCalendar();
198
- expect(elObj.overlayController.isShown).to.equal(true);
199
- // Mimic user input: should fire the 'user-selected-date-changed' event
200
- await elObj.selectMonthDay(12);
201
- await el.updateComplete; // safari take a little longer
202
- expect(elObj.overlayController.isShown).to.equal(false);
203
- });
204
- it('focuses selected date on opening of calendar', async () => {
205
- const el = await fixture(html`
206
- <lion-input-datepicker .modelValue="${new Date()}"></lion-input-datepicker>
207
- `);
208
- const elObj = new DatepickerInputObject(el);
209
- await elObj.openCalendar();
210
- await aTimeout(0);
211
- expect(
212
- isSameDate(
213
- /** @type {Date} */ elObj.calendarEl.focusedDate,
214
- /** @type {Date} */ elObj.calendarEl.selectedDate,
215
- ),
216
- ).to.be.true;
217
- });
218
- it('focuses central date on opening of calendar if no date selected', async () => {
219
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
220
- const elObj = new DatepickerInputObject(el);
221
- await elObj.openCalendar();
222
- await aTimeout(0);
223
- expect(
224
- isSameDate(/** @type {Date} */ elObj.calendarEl.focusedDate, elObj.calendarEl.centralDate),
225
- ).to.be.true;
226
- });
227
- it('fires model-value-changed with isTriggeredByUser on click', async () => {
228
- let isTriggeredByUser;
229
- const myDate = new Date('2019/12/15');
230
- const myOtherDate = new Date('2019/12/18');
231
- const el = await fixture(html`
232
- <lion-input-datepicker
233
- .modelValue="${myDate}"
234
- @model-value-changed="${(/** @type {CustomEvent} */ event) => {
235
- isTriggeredByUser = event.detail.isTriggeredByUser;
236
- }}"
237
- >
238
- </lion-input-datepicker>
239
- `);
240
- const elObj = new DatepickerInputObject(el);
241
- // Make sure the calendar overlay is opened
242
- await elObj.openCalendar();
243
- expect(elObj.overlayController.isShown).to.equal(true);
244
- // Mimic user input: should fire the 'user-selected-date-changed' event
245
- await elObj.selectMonthDay(myOtherDate.getDate());
246
- await el.updateComplete; // safari take a little longer
247
- expect(isTriggeredByUser).to.be.true;
248
- expect(el.value).to.equal('18/12/2019');
249
- });
250
- describe('localization', () => {
251
- /** @type {import('@lion/ui/localize.js').LocalizeManager} */ let localizeManager;
252
- before(async () => {
253
- const { getLocalizeManager } = await import('@lion/ui/localize-no-side-effects.js');
254
- localizeManager = getLocalizeManager();
255
- });
256
- it('should update formatted value and value in accordance of localization upon model value update', async () => {
257
- localizeManager.locale = 'nl-NL';
258
- const el = await fixture(html`
259
- <lion-input-datepicker .modelValue="${new Date('2022/12/30')}"></lion-input-datepicker>
260
- `);
261
- await el.updateComplete;
262
- expect(el.formattedValue).to.equal('30-12-2022');
263
- expect(el.value).to.equal('30-12-2022');
264
- });
265
- after(() => {
266
- // @ts-ignore - using protected method to undo setting explict locale
267
- localizeManager.locale = localizeManager._fallbackLocale;
268
- });
269
- });
270
- describe('Validators', () => {
271
- /**
272
- * Validators are the Application Developer facing API in <lion-input-datepicker>:
273
- * - setting restrictions on min/max/disallowed dates will be done via validators
274
- * - all validators will be translated under the hood to enabledDates and passed to
275
- * lion-calendar
276
- */
277
- it('converts IsDateDisabled validator to "disableDates" property', async () => {
278
- const no15th = /** @param {Date} d */ (d) => d.getDate() !== 15;
279
- const no16th = /** @param {Date} d */ (d) => d.getDate() !== 16;
280
- const no15thOr16th = /** @param {Date} d */ (d) => no15th(d) && no16th(d);
281
- const el = await fixture(html`
282
- <lion-input-datepicker .validators="${[new IsDateDisabled(no15thOr16th)]}">
283
- </lion-input-datepicker>
284
- `);
285
- const elObj = new DatepickerInputObject(el);
286
- await elObj.openCalendar();
287
- expect(elObj.calendarEl.disableDates).to.equal(no15thOr16th);
288
- });
289
- it('converts MinDate validator to "minDate" property', async () => {
290
- const myMinDate = new Date('2019/06/15');
291
- const el = await fixture(
292
- html` <lion-input-datepicker .validators="${[new MinDate(myMinDate)]}">
293
- </lion-input-datepicker>`,
294
- );
295
- const elObj = new DatepickerInputObject(el);
296
- await elObj.openCalendar();
297
- expect(elObj.calendarEl.minDate).to.equal(myMinDate);
298
- });
299
- it('converts MaxDate validator to "maxDate" property', async () => {
300
- const myMaxDate = new Date('2030/06/15');
301
- const el = await fixture(html`
302
- <lion-input-datepicker .validators=${[new MaxDate(myMaxDate)]}> </lion-input-datepicker>
303
- `);
304
- const elObj = new DatepickerInputObject(el);
305
- await elObj.openCalendar();
306
- expect(elObj.calendarEl.maxDate).to.equal(myMaxDate);
307
- });
308
- it('converts MinMaxDate validator to "minDate" and "maxDate" property', async () => {
309
- const myMinDate = new Date('2019/06/15');
310
- const myMaxDate = new Date('2030/06/15');
311
- const el = await fixture(html`
312
- <lion-input-datepicker
313
- .validators=${[
314
- new MinMaxDate({
315
- min: myMinDate,
316
- max: myMaxDate,
317
- }),
318
- ]}
319
- >
320
- </lion-input-datepicker>
321
- `);
322
- const elObj = new DatepickerInputObject(el);
323
- await elObj.openCalendar();
324
- expect(elObj.calendarEl.minDate).to.equal(myMinDate);
325
- expect(elObj.calendarEl.maxDate).to.equal(myMaxDate);
326
- });
327
- it('does not converts MaxDate validator to "maxDate" property if validator type other then "error"', async () => {
328
- const myMaxDate = new Date('2030/06/15');
329
- const tagName = 'custom-input-datepicker';
330
- if (!customElements.get(tagName)) {
331
- customElements.define(
332
- tagName,
333
- class CustomInputDatepicker extends LionInputDatepicker {
334
- static get validationTypes() {
335
- // @ts-ignore [ts7-2855] TS7 rejects field access via super (the parent declares this as a field). Dot form kept deliberately: bracket access is exempt from property mangling (terser keep_quoted), which could split this property into two names. Upstream fix: declare an accessor in the parent type
336
- return [...super.validationTypes, 'warning'];
337
- }
338
- },
339
- );
340
- }
341
- const el = await fixture(html`
342
- <custom-input-datepicker
343
- .validators=${[
344
- new MaxDate(myMaxDate, {
345
- type: 'warning',
346
- }),
347
- ]}
348
- >
349
- </custom-input-datepicker>
350
- `);
351
- const elObj = new DatepickerInputObject(el);
352
- await elObj.openCalendar();
353
- expect(elObj.calendarEl.maxDate).to.be.undefined;
354
- });
355
- it('should sync MinDate validator param with Calendar MinDate', async () => {
356
- const myMinDateValidator = new MinDate(new Date('2020/02/02'));
357
- const el = await fixture(html`
358
- <lion-input-datepicker .validators="${[myMinDateValidator]}"> </lion-input-datepicker>
359
- `);
360
- myMinDateValidator.param = new Date('2020/01/01');
361
- expect(el.__calendarMinDate.toString()).to.equal(new Date('2020/01/01').toString());
362
- });
363
- it('should sync MaxDate validator param with Calendar MaxDate', async () => {
364
- const myMaxDateValidator = new MaxDate(new Date('2020/02/02'));
365
- const el = await fixture(html`
366
- <lion-input-datepicker .validators="${[myMaxDateValidator]}"> </lion-input-datepicker>
367
- `);
368
- myMaxDateValidator.param = new Date('2020/03/03');
369
- expect(el.__calendarMaxDate.toString()).to.equal(new Date('2020/03/03').toString());
370
- });
371
- it('should sync MinMaxDate validator param with Calendar Min And Max Date', async () => {
372
- const myMinDate = new Date('2019/06/15');
373
- const myMaxDate = new Date('2030/06/15');
374
- const myMinMaxDateValidator = new MinMaxDate({
375
- min: myMinDate,
376
- max: myMaxDate,
377
- });
378
- const el = await fixture(html`
379
- <lion-input-datepicker .validators=${[myMinMaxDateValidator]}> </lion-input-datepicker>
380
- `);
381
- myMinMaxDateValidator.param = {
382
- min: new Date('2019/05/15'),
383
- max: new Date('2019/07/15'),
384
- };
385
- expect(el.__calendarMinDate.toString()).to.equal(new Date('2019/05/15').toString());
386
- expect(el.__calendarMaxDate.toString()).to.equal(new Date('2019/07/15').toString());
387
- });
388
- it('should update the central date of Calendar if updated validator made the current central date disabled', async () => {
389
- const initialValidators = [new MaxDate(new Date('2000/01/01'))];
390
- const updatedValidators = [new MaxDate(new Date('2020/01/01'))];
391
- const el = await fixture(html`
392
- <lion-input-datepicker .validators="${initialValidators}"></lion-input-datepicker>
393
- `);
394
- const obj = new DatepickerInputObject(el);
395
- await obj.openCalendar();
396
- expect(getProtectedMembersDatepicker(el).calendarNode.centralDate.toString()).to.equal(
397
- new Date('2000/01/01').toString(),
398
- );
399
- await obj.closeCalendar();
400
- el.validators = updatedValidators;
401
- await obj.openCalendar();
402
- expect(getProtectedMembersDatepicker(el).calendarNode.centralDate.toString()).to.equal(
403
- new Date('2020/01/01').toString(),
404
- );
405
- });
406
- it('should show error on invalid date passed to modelValue', async () => {
407
- const myDate = new Date('foo');
408
- const el = await fixture(html`
409
- <lion-input-datepicker .modelValue="${myDate}"></lion-input-datepicker>
410
- `);
411
- expect(el.hasFeedbackFor).to.include('error');
412
- expect(el.validationStates).to.have.property('error');
413
- expect(el.validationStates.error).to.have.property('IsDate');
414
- });
415
- it('should show error on date with invalid format passed to modelValue', async () => {
416
- const myDate = new Date('30/01/2022');
417
- const el = await fixture(html`
418
- <lion-input-datepicker .modelValue="${myDate}"></lion-input-datepicker>
419
- `);
420
- expect(el.hasFeedbackFor).to.include('error');
421
- expect(el.validationStates).to.have.property('error');
422
- expect(el.validationStates.error).to.have.property('IsDate');
423
- });
424
- it('syncs view value from calendar if custom validator is in error state', async () => {
425
- const el = await fixture(html`
426
- <lion-input-datepicker .validators=${[new AlwaysInvalid()]}></lion-input-datepicker>
427
- `);
428
- const elObj = new DatepickerInputObject(el);
429
- await elObj.openCalendar();
430
- await elObj.selectMonthDay(12);
431
- await el.updateComplete; // safari take a little longer
432
-
433
- expect(el.hasFeedbackFor).to.include('error');
434
- expect(el.validationStates).to.have.property('error');
435
- expect(el.validationStates.error).to.have.property('AlwaysInvalid');
436
- expect(
437
- isSameDate(
438
- /** @type {Date} */ parseDate(el.value),
439
- /** @type {Date} */ elObj.calendarEl.selectedDate,
440
- ),
441
- ).to.be.true;
442
- expect(
443
- isSameDate(
444
- // @ts-ignore [allow-protected] in test
445
- /** @type {Date} */
446
- parseDate(el._inputNode.value),
447
- /** @type {Date} */ elObj.calendarEl.selectedDate,
448
- ),
449
- ).to.be.true;
450
- });
451
- it('syncs view value from calendar if custom validator is in error state, when there was a previous modelValue', async () => {
452
- const modelValue = new Date('2022/12/30');
453
- const el = await fixture(html`
454
- <lion-input-datepicker
455
- .modelValue="${modelValue}"
456
- .validators=${[new AlwaysInvalid()]}
457
- ></lion-input-datepicker>
458
- `);
459
- expect(isSameDate(/** @type {Date} */ parseDate(el.value), modelValue)).to.be.true;
460
- const elObj = new DatepickerInputObject(el);
461
- await elObj.openCalendar();
462
- await elObj.selectMonthDay(12);
463
- await el.updateComplete; // safari take a little longer
464
-
465
- expect(el.hasFeedbackFor).to.include('error');
466
- expect(el.validationStates).to.have.property('error');
467
- expect(el.validationStates.error).to.have.property('AlwaysInvalid');
468
- expect(
469
- isSameDate(
470
- /** @type {Date} */ parseDate(el.value),
471
- /** @type {Date} */ elObj.calendarEl.selectedDate,
472
- ),
473
- ).to.be.true;
474
- expect(
475
- isSameDate(
476
- // @ts-ignore [allow-protected] in test
477
- /** @type {Date} */
478
- parseDate(el._inputNode.value),
479
- /** @type {Date} */ elObj.calendarEl.selectedDate,
480
- ),
481
- ).to.be.true;
482
- });
483
-
484
- /**
485
- * Not in scope:
486
- * - min/max attr (like platform has): could be added in future if observers needed
487
- */
488
- });
489
- });
490
- describe('Calendar smoke tests', () => {
491
- it('responds properly to keyboard events', async () => {
492
- const el = await fixture(html`
493
- <lion-input-datepicker calendar-heading="foo"></lion-input-datepicker>
494
- `);
495
- const calendarEl = /** @type {LionCalendar} */ el.shadowRoot?.querySelector('lion-calendar');
496
- const { dateSelectedByUser } = getProtectedMembersCalendar(calendarEl);
497
- // First set a fixed date as if selected by a user
498
- dateSelectedByUser(new Date('December 17, 2020 03:24:00 GMT+0000'));
499
- await el.updateComplete;
500
- const elObj = new DatepickerInputObject(el);
501
-
502
- // Open the calendar
503
- await elObj.openCalendar();
504
- const selectedDateEl = calendarEl?.shadowRoot?.querySelector(
505
- '.calendar__day-button[selected]',
506
- );
507
- // @ts-ignore
508
- selectedDateEl?.focus();
509
-
510
- // Move focus to 18th of December
511
- await sendKeys({
512
- press: 'ArrowRight',
513
- });
514
- expect(/** @type {Date} */ calendarEl.focusedDate.getTime()).to.equal(
515
- new Date('December 18, 2020 03:24:00 GMT+0000').getTime(),
516
- );
517
- });
518
- it('responds properly to click events', async () => {
519
- const el = await fixture(html`
520
- <lion-input-datepicker calendar-heading="foo"></lion-input-datepicker>
521
- `);
522
- const calendarEl = /** @type {LionCalendar} */ el.shadowRoot?.querySelector('lion-calendar');
523
- const { dateSelectedByUser } = getProtectedMembersCalendar(calendarEl);
524
-
525
- // First set a fixed date as if selected by a user
526
- dateSelectedByUser(new Date('December 17, 2020 03:24:00 GMT+0000'));
527
- await el.updateComplete;
528
- const elObj = new DatepickerInputObject(el);
529
-
530
- // Open the calendar
531
- await elObj.openCalendar();
532
-
533
- // Select the first date button, which is 29th of previous month (November)
534
- const firstDateBtn =
535
- /** @type {HTMLButtonElement} */
536
- calendarEl?.shadowRoot?.querySelector('.calendar__day-button');
537
- firstDateBtn.click();
538
- expect(/** @type {Date} */ el.modelValue.getTime()).to.equal(
539
- new Date('November 29, 2020 03:24:00 GMT+0000').getTime(),
540
- );
541
- });
542
- });
543
- describe('Accessibility', () => {
544
- it('has a heading of level 1', async () => {
545
- const el = await fixture(html`
546
- <lion-input-datepicker calendar-heading="foo"></lion-input-datepicker>
547
- `);
548
- const elObj = new DatepickerInputObject(el);
549
- await elObj.openCalendar();
550
- const hNode = elObj.overlayHeadingEl;
551
- const headingIsLevel1 =
552
- hNode.tagName === 'H1' ||
553
- (hNode.getAttribute('role') === 'heading' && hNode.getAttribute('aria-level') === '1');
554
- expect(headingIsLevel1).to.be.true;
555
- });
556
- it('adds accessible label to invoker button', async () => {
557
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
558
- const elObj = new DatepickerInputObject(el);
559
- await elObj.openCalendar();
560
- expect(elObj.invokerEl.getAttribute('title')).to.equal('Open "date" picker');
561
- expect(elObj.invokerEl.getAttribute('aria-label')).to.equal('Open "date" picker');
562
- });
563
- it('adds [aria-expanded] to invoker button', async () => {
564
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
565
- const elObj = new DatepickerInputObject(el);
566
- expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
567
- await elObj.openCalendar();
568
- expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
569
- await elObj.closeCalendar();
570
- expect(elObj.invokerEl.getAttribute('aria-expanded')).to.equal(null);
571
- });
572
- it('is accessible when closed', async () => {
573
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
574
- const elObj = new DatepickerInputObject(el);
575
- await expect(elObj.invokerEl).to.be.accessible();
576
- await expect(elObj.calendarEl).to.be.accessible();
577
- });
578
- it('is accessible when open', async () => {
579
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
580
- const elObj = new DatepickerInputObject(el);
581
- await elObj.openCalendar();
582
- await expect(elObj.calendarEl).to.be.accessible();
583
- elObj.overlayCloseButtonEl.click();
584
- });
585
- it('has accessible invoker when open', async () => {
586
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
587
- const elObj = new DatepickerInputObject(el);
588
- await elObj.openCalendar();
589
- await expect(elObj.invokerEl).to.be.accessible();
590
- elObj.overlayCloseButtonEl.click();
591
- });
592
- it('is accessible with a disabled date', async () => {
593
- const no15th = /** @param {Date} d */ (d) => d.getDate() !== 15;
594
- const el = await fixture(html`
595
- <lion-input-datepicker .validators=${[new IsDateDisabled(no15th)]}> </lion-input-datepicker>
596
- `);
597
- const elObj = new DatepickerInputObject(el);
598
- await elObj.openCalendar();
599
- await expect(elObj.calendarEl).to.be.accessible();
600
- elObj.overlayCloseButtonEl.click();
601
- });
602
- it('have different aria-label when multiple invoker', async () => {
603
- const el = await fixture(html`
604
- <lion-input-datepicker label="Start date" name="startDate"></lion-input-datepicker>
605
- <lion-input-datepicker label="End date" name="endDate"></lion-input-datepicker>
606
- `);
607
-
608
- // @ts-expect-error
609
- const elements = el.parentElement.children;
610
- // @ts-expect-error
611
- const startLabel = elements.startDate.querySelector('button').ariaLabel;
612
- // @ts-expect-error
613
- const endLabel = elements.endDate.querySelector('button').ariaLabel;
614
- expect(startLabel).to.not.equal(endLabel);
615
- });
616
- });
617
- describe.skip('Subclassers', () => {
618
- describe('Providing a custom invoker', () => {
619
- it('can override the invoker template', async () => {
620
- const myTag = defineCE(
621
- class extends LionInputDatepicker {
622
- /** @override */
623
- _invokerTemplate() {
624
- return html`<my-button>Pick my date</my-button>`;
625
- }
626
- },
627
- );
628
- const myEl = await fixture(html`<${myTag}></${myTag}>`);
629
- const myElObj = new DatepickerInputObject(myEl);
630
- const { invokerId } = getProtectedMembersDatepicker(myEl);
631
- expect(myElObj.invokerEl.tagName.toLowerCase()).to.equal('my-button');
632
-
633
- // All other tests will still pass. Small checkup:
634
- expect(myElObj.invokerEl.getAttribute('title')).to.equal('Open date picker');
635
- expect(myElObj.invokerEl.getAttribute('aria-label')).to.equal('Open date picker');
636
- expect(myElObj.invokerEl.getAttribute('aria-expanded')).to.equal('false');
637
- expect(myElObj.invokerEl.getAttribute('aria-haspopup')).to.equal('dialog');
638
- expect(myElObj.invokerEl.getAttribute('slot')).to.equal('suffix');
639
- expect(myElObj.invokerEl.getAttribute('id')).to.equal(invokerId);
640
- await myElObj.openCalendar();
641
- expect(myElObj.overlayController.isShown).to.equal(true);
642
- });
643
- it('can allocate the picker in a different slot supported by LionField', async () => {
644
- /**
645
- * It's important that this api is used instead of Subclassers providing a slot.
646
- * When the input-datepicker knows where the calendar invoker is, it can attach
647
- * the right logic, localization and accessibility functionality.
648
- */
649
- const myTag = defineCE(
650
- class extends LionInputDatepicker {
651
- constructor() {
652
- super();
653
- this._calendarInvokerSlot = 'prefix';
654
- }
655
- },
656
- );
657
- const myEl = await fixture(html`<${myTag}></${myTag}>`);
658
- const myElObj = new DatepickerInputObject(myEl);
659
- expect(myElObj.invokerEl.getAttribute('slot')).to.equal('prefix');
660
- });
661
- });
662
- describe('Providing a custom calendar', () => {
663
- it('can override the calendar template', async () => {
664
- customElements.define(
665
- 'my-calendar',
666
- class extends LionCalendar {
667
- constructor() {
668
- super();
669
- // Change some defaults
670
- this.firstDayOfWeek = 1; // Start on Mondays instead of Sundays
671
- this.weekdayHeaderNotation = 'narrow'; // 'T' instead of 'Thu'
672
- }
673
- },
674
- );
675
- const myTag = defineCE(
676
- class extends LionInputDatepicker {
677
- _calendarTemplate() {
678
- return html`<my-calendar id="calendar"></my-calendar>`;
679
- }
680
- },
681
- );
682
- const myEl = await fixture(html`<${myTag}></${myTag}>`);
683
- const myElObj = new DatepickerInputObject(myEl);
684
-
685
- // All other tests will still pass. Small checkup:
686
- await myElObj.openCalendar();
687
- expect(myElObj.calendarEl.tagName.toLowerCase()).to.equal('my-calendar');
688
- });
689
- });
690
- describe('Providing a custom overlay', () => {
691
- it('can override the overlay template', async () => {
692
- // Keep in mind there is no logic inside this overlay frame; it only handles visuals.
693
- // All interaction should be delegated to parent, which interacts with the calendar
694
- // component
695
- customElements.define(
696
- 'my-calendar-overlay-frame',
697
- class extends LitElement {
698
- render() {
699
- // eslint-disable-line class-methods-use-this
700
- return html`
701
- <div class="c-calendar-overlay">
702
- <slot></slot>
703
- <div class="c-calendar-overlay__footer">
704
- <button id="cancel-button" class="c-calendar-overlay__cancel-button">
705
- Cancel
706
- </button>
707
- </div>
708
- </div>
709
- `;
710
- }
711
- },
712
- );
713
- let myOverlayOpenedCbHandled = false;
714
- let myUserSelectedChangedCbHandled = false;
715
- const myTag = defineCE(
716
- class extends LionInputDatepicker {
717
- // TODO: this method doesn't exist on LionInputDatepicker, so if we re-enable these tests, they should be redone
718
- // /** @override */
719
- // _calendarOverlayTemplate() {
720
- // return html`
721
- // <my-calendar-overlay-frame id="calendar-overlay">
722
- // <span slot="heading">${this.calendarHeading}</span>
723
- // </my-calendar-overlay-frame>
724
- // `;
725
- // }
726
-
727
- /** @override */
728
- _onCalendarOverlayOpened() {
729
- super._onCalendarOverlayOpened();
730
- myOverlayOpenedCbHandled = true;
731
- }
732
-
733
- /**
734
- * @override
735
- * @param {{ target: { selectedDate: Date }}} opts
736
- */
737
- _onCalendarUserSelectedChanged({ target: { selectedDate } }) {
738
- super._onCalendarUserSelectedChanged({
739
- target: {
740
- selectedDate,
741
- },
742
- });
743
- myUserSelectedChangedCbHandled = true;
744
- }
745
- },
746
- );
747
- const myEl = await fixture(html`<${myTag}></${myTag}>`);
748
- const myElObj = new DatepickerInputObject(myEl);
749
-
750
- // All other tests will still pass. Small checkup:
751
- await myElObj.openCalendar();
752
- expect(myElObj.overlayEl.tagName.toLowerCase()).to.equal('my-calendar-overlay-frame');
753
- expect(myOverlayOpenedCbHandled).to.be.true;
754
- await myElObj.selectMonthDay(1);
755
- expect(myUserSelectedChangedCbHandled).to.be.true;
756
- });
757
- it.skip('can configure the overlay presentation based on media query switch', async () => {});
758
- });
759
- });
760
- describe('regression tests', async () => {
761
- it('does not submit a form when datepicker is opened', async () => {
762
- const submitSpy = sinon.spy();
763
- const form = await fixture(html`
764
- <form @submit="${submitSpy}">
765
- <lion-input-datepicker></lion-input-datepicker>
766
- </form>
767
- `);
768
- const el = /** @type {LionInputDatepicker} */ form.children[0];
769
- await el.updateComplete;
770
- const elObj = new DatepickerInputObject(el);
771
- await elObj.openCalendar();
772
- expect(submitSpy.callCount).to.equal(0);
773
- });
774
-
775
- // TODO: remove: became irrelevant after we don't need dialog-frame
776
- it.skip('is hidden when attribute hidden is true', async () => {
777
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
778
- await el.updateComplete;
779
- const myElObj = new DatepickerInputObject(el);
780
- await myElObj.openCalendar();
781
- myElObj.overlayEl.hidden = true;
782
- await el.updateComplete;
783
- expect(getComputedStyle(myElObj.overlayEl).display).to.equal('none', 'Display is not none');
784
- });
785
- });
786
- describe('responsive', async () => {
787
- it('opens as bottom sheet on mobile', async () => {
788
- await setViewport({
789
- width: 360,
790
- height: 640,
791
- });
792
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
793
- const myElObj = new DatepickerInputObject(el);
794
- await myElObj.openCalendar();
795
- expect(el.hasArrow).to.be.false;
796
- expect(
797
- myElObj.overlayController.contentNode.classList.contains('overlays__overlay--bottom-sheet'),
798
- 'Datepicker does not get rendered as bottom sheet',
799
- ).to.be.false;
800
- });
801
- it('opens as popover on desktop', async () => {
802
- await setViewport({
803
- width: 1200,
804
- height: 640,
805
- });
806
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
807
- const myElObj = new DatepickerInputObject(el);
808
- await myElObj.openCalendar();
809
- expect(el.hasArrow).to.be.true;
810
- expect(
811
- el?.shadowRoot?.contains(myElObj.overlayController.contentNode),
812
- 'Datepicker does not get rendered as a popover',
813
- ).to.be.true;
814
- });
815
-
816
- // TODO: fix a bug in overlays which does not move global nodes back to the local dom
817
- it.skip('can switch between bottom sheet and popover', async () => {
818
- const el = await fixture(html`<lion-input-datepicker></lion-input-datepicker>`);
819
- await el.updateComplete;
820
- const myElObj = new DatepickerInputObject(el);
821
- await setViewport({
822
- width: 360,
823
- height: 640,
824
- });
825
- await myElObj.openCalendar();
826
- expect(
827
- el?.shadowRoot?.contains(myElObj.overlayController.contentNode),
828
- 'Datepicker does not get rendered as bottom sheet',
829
- ).to.be.false;
830
- await myElObj.closeCalendar();
831
- await setViewport({
832
- width: 1200,
833
- height: 640,
834
- });
835
- await myElObj.openCalendar();
836
- expect(
837
- el?.shadowRoot?.contains(myElObj.overlayController.contentNode),
838
- 'Datepicker does not get rendered as a popover',
839
- ).to.be.true;
840
- });
841
- });
842
- describe('Run suite', () => {
843
- runDatepickerSuite();
844
- });
845
- });
2
+ runDatepickerSuite();