@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
package/README.md CHANGED
@@ -134,7 +134,7 @@ Its package-private `#awesome-phonenumber` import maps types, ESM and CommonJS
134
134
  to the shipped assets, requiring no consumer browser import map.
135
135
  The legacy docs dependency keeps its separate registry version.
136
136
  MIT and Google's Apache-2.0 notices accompany both sources and generated assets.
137
- See [source provenance and build requirements](https://github.com/ing-bank/lion/blob/bc7530702f41df90a4ca3059cfb9edb08e27f742/packages-node/awesome-phonenumber/README.md).
137
+ See [source provenance and build requirements](https://github.com/ing-bank/lion/blob/e89dc1a7d9e94891b5f596513e4b9c9ac57e9a30/packages-node/awesome-phonenumber/README.md).
138
138
 
139
139
  Run `npm run test:node --workspace @lion/ui` to pack Lion, install it into a fresh
140
140
  consumer outside the checkout with no overrides, and verify ESM, CommonJS,
@@ -266,22 +266,40 @@ Read our [contribution guide](https://github.com/ing-bank/lion/blob/master/CONTR
266
266
 
267
267
  ## Site deployment
268
268
 
269
- We use [GitHub Pages](https://docs.github.com/en/pages) to host our static website. Collaborators with push permission to the repository branch [`gh-pages`](https://github.com/ing-bank/lion/tree/gh-pages) can trigger a deploy by simply running:
269
+ The site is published to the [`gh-pages` branch](https://github.com/ing-bank/lion/tree/gh-pages) and served at <https://lion.js.org>. Collaborators with push permission to that branch can trigger a deploy with:
270
270
 
271
271
  ```bash
272
272
  npm run deploy
273
273
  ```
274
274
 
275
+ That builds the portal (`npm --prefix portal run build` = `astro build` + the link pass, output in `_site/`) and pushes `_site/` to `gh-pages`. The published layout:
276
+
277
+ - **The Astro portal owns the site root** (`/`), so every route the portal serves comes from `_site/`.
278
+ - **The portal is its own package, outside the workspace** ([`portal/`](https://github.com/ing-bank/lion/blob/e89dc1a7d9e94891b5f596513e4b9c9ac57e9a30/portal/README.md)): the astro
279
+ toolchain is only needed to build the website, so no root `npm install` (CI included) pulls it in
280
+ any more - a compromised package in that tree cannot run scripts during this repo's install. The
281
+ root `npm run build` delegates to it, and `npm run deploy` still publishes `_site/`.
282
+ Run `npm install` at the root once first: the portal renders the library from this checkout and the
283
+ demos in `docs/` resolve their imports from the repository's `node_modules`.
284
+ - **The legacy rocket site lives at `/prev` and is frozen.** Its build lives next to the portal in
285
+ [`prev-portal/`](https://github.com/ing-bank/lion/blob/e89dc1a7d9e94891b5f596513e4b9c9ac57e9a30/prev-portal/README.md): the rocket tree is unmaintained, so it is kept out of the
286
+ workspace too and no pipeline installs or builds it. `cd prev-portal && npm install && npm run build`
287
+ writes `_site/prev` by hand. `/prev` is therefore the last published rocket tree, kept as it was
288
+ (its root-absolute urls re-prefixed to `/prev`), and nothing regenerates it automatically.
289
+ - `next/index.html` redirects to `/` for links that still point at the pre-2026-04-23 layout.
290
+ - `gh-pages` deletes every file that is not in the directory it is given, so the deploy runs with `-a` (`--add`, never remove): without it a deploy silently drops `/prev` and that redirect. Astro's assets are content-hashed, so leftovers from earlier builds are inert; prune them by hand if the branch ever needs it.
291
+
275
292
  ### Branch previews (test versions of the portal)
276
293
 
277
294
  A branch preview is the portal built with another base url, published in a folder that carries
278
295
  the branch name. Nothing links to it, so it can be shared before a branch is merged.
279
296
 
280
297
  ```bash
281
- npm run portal:preview # HEAD -> https://lion.js.org/next-preview/<branch-slug>/
282
- npm run portal:preview -- --no-push # build and stage locally, do not publish
283
- npm run portal:preview -- --no-build # reuse the _site/ that is already there
284
- npm run portal:preview -- --branch=feat/x # preview another branch
298
+ cd portal
299
+ npm run preview # HEAD -> https://lion.js.org/next-preview/<branch-slug>/
300
+ npm run preview -- --no-push # build and stage locally, do not publish
301
+ npm run preview -- --no-build # reuse the _site/ that is already there
302
+ npm run preview -- --branch=feat/x # preview another branch
285
303
  ```
286
304
 
287
305
  The portal resolves all of its urls against `import.meta.env.BASE_URL` (set through
@@ -290,7 +308,7 @@ changes are involved. `next-preview/index.html` lists the previews that are curr
290
308
 
291
309
  The shared Pages site is public: a preview url is unlisted but not access controlled. For content
292
310
  that may not be public, stage it locally and expose it on the tailnet instead (`npm run
293
- portal:preview -- --target=local`, then serve `~/portal-previews` from a static server behind
311
+ preview -- --target=local`, then serve `~/portal-previews` from a static server behind
294
312
  `tailscale serve`; the printed url is only reachable from devices in the tailnet).
295
313
 
296
314
  ## Contact
@@ -0,0 +1,2 @@
1
+ /* eslint-disable import/no-relative-packages */
2
+ export { runAccordionSuite } from './components/accordion/test-suites/lion-accordion.suite.js';
@@ -0,0 +1 @@
1
+ export { runCollapsibleSuite } from './components/collapsible/test-suites/LionCollapsible.suite.js';
@@ -0,0 +1,2 @@
1
+ /* eslint-disable import/no-relative-packages */
2
+ export { runComboboxSuite } from './components/combobox/test-suites/lion-combobox.suite.js';
@@ -1,565 +1,2 @@
1
- import { expect, fixture } from '@open-wc/testing';
2
- import { html } from 'lit/static-html.js';
3
- import { sendKeys } from '@web/test-runner-commands';
4
- import sinon from 'sinon';
5
- import '@lion/ui/define/lion-accordion.js';
6
-
7
- /**
8
- * @typedef {import('../src/LionAccordion.js').LionAccordion} LionAccordion
9
- */
10
-
11
- const basicAccordion = html`
12
- <lion-accordion>
13
- <h2 slot="invoker"><button>invoker 1</button></h2>
14
- <div slot="content">content 1</div>
15
- <h2 slot="invoker"><button>invoker 2</button></h2>
16
- <div slot="content">content 2</div>
17
- <h2 slot="invoker"><button>invoker 3</button></h2>
18
- <div slot="content">content 3</div>
19
- </lion-accordion>
20
- `;
21
-
22
- /**
23
- * @param {Element} el
24
- */
25
- function getAccordionChildren(el) {
26
- if (el.shadowRoot) {
27
- const slot = el.shadowRoot?.querySelector('slot[name=_accordion]');
28
- return slot && slot instanceof HTMLSlotElement ? slot.assignedElements() : [];
29
- }
30
- return [];
31
- }
32
-
33
- /**
34
- * @param {LionAccordion} el
35
- */
36
- function getInvokers(el) {
37
- return getAccordionChildren(el).filter((child) => child.classList.contains('invoker'));
38
- }
39
-
40
- /**
41
- * @param {LionAccordion} el
42
- */
43
- function getContents(el) {
44
- return getAccordionChildren(el).filter((child) => child.classList.contains('content'));
45
- }
46
- describe('<lion-accordion>', () => {
47
- describe('Accordion', () => {
48
- it('sets expanded to [] by default', async () => {
49
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
50
- expect(el.expanded).to.deep.equal([]);
51
- });
52
- it('can programmatically set expanded', async () => {
53
- const el =
54
- /** @type {LionAccordion} */
55
- await fixture(html`
56
- <lion-accordion .expanded=${[1]}>
57
- <h2 slot="invoker"><button>invoker 1</button></h2>
58
- <div slot="content">content 1</div>
59
- <h2 slot="invoker"><button>invoker 2</button></h2>
60
- <div slot="content">content 2</div>
61
- </lion-accordion>
62
- `);
63
- expect(el.expanded).to.deep.equal([1]);
64
- expect(
65
- Array.from(getAccordionChildren(el)).find(
66
- (child) => child.className === 'invoker' && child.hasAttribute('expanded'),
67
- )?.textContent,
68
- ).to.equal('invoker 2');
69
- el.expanded = [0];
70
- expect(
71
- Array.from(getAccordionChildren(el)).find(
72
- (child) => child.className === 'invoker' && child.hasAttribute('expanded'),
73
- )?.textContent,
74
- ).to.equal('invoker 1');
75
- });
76
- it('updates expanded with a new array when an invoker is clicked', async () => {
77
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
78
- const invokers = getInvokers(el);
79
- const oldExpanded = el.expanded;
80
- invokers[1].firstElementChild?.dispatchEvent(new Event('click'));
81
- expect(el.expanded).to.not.equal(oldExpanded);
82
- });
83
- it('has [expanded] on current expanded invoker which serves as styling hook', async () => {
84
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
85
- const invokers = getInvokers(el);
86
- el.expanded = [0];
87
- expect(invokers[0]).to.have.attribute('expanded');
88
- expect(invokers[1]).to.not.have.attribute('expanded');
89
- el.expanded = [1];
90
- expect(invokers[0]).to.not.have.attribute('expanded');
91
- expect(invokers[1]).to.have.attribute('expanded');
92
- });
93
- it('has [expanded] on current expanded invoker first child which serves as styling hook', async () => {
94
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
95
- const invokers = getInvokers(el);
96
- el.expanded = [0];
97
- expect(invokers[0].firstElementChild).to.have.attribute('expanded');
98
- expect(invokers[1].firstElementChild).to.not.have.attribute('expanded');
99
- el.expanded = [1];
100
- expect(invokers[0].firstElementChild).to.not.have.attribute('expanded');
101
- expect(invokers[1].firstElementChild).to.have.attribute('expanded');
102
- });
103
- it('supports [exclusive] attribute, allowing one collapsible to be open at a time', async () => {
104
- const el =
105
- /** @type {LionAccordion} */
106
- await fixture(html`
107
- <lion-accordion exclusive>
108
- <h2 slot="invoker"><button>invoker 1</button></h2>
109
- <div slot="content">content 1</div>
110
- <h2 slot="invoker"><button>invoker 2</button></h2>
111
- <div slot="content">content 2</div>
112
- <h2 slot="invoker"><button>invoker 3</button></h2>
113
- <div slot="content">content 3</div>
114
- </lion-accordion>
115
- `);
116
- const invokerButtons = Array.from(getInvokers(el)).map(
117
- (invokerHeadingEl) => /** @type {HTMLButtonElement} */ invokerHeadingEl.firstElementChild,
118
- );
119
-
120
- // We open the first... (nothing different from not [exclusive] so far)
121
- invokerButtons[0].click();
122
- expect(invokerButtons[0]).to.have.attribute('expanded');
123
- expect(invokerButtons[1]).to.not.have.attribute('expanded');
124
- expect(invokerButtons[2]).to.not.have.attribute('expanded');
125
-
126
- // We click the second...
127
- invokerButtons[1].click();
128
- expect(invokerButtons[0]).to.not.have.attribute('expanded');
129
- expect(invokerButtons[1]).to.have.attribute('expanded');
130
- expect(invokerButtons[2]).to.not.have.attribute('expanded');
131
-
132
- // We click the third...
133
- invokerButtons[2].click();
134
- expect(invokerButtons[0]).to.not.have.attribute('expanded');
135
- expect(invokerButtons[1]).to.not.have.attribute('expanded');
136
- expect(invokerButtons[2]).to.have.attribute('expanded');
137
- el.exclusive = false;
138
-
139
- // We open the first... (behaving as default (not [exclusive]) again)
140
- invokerButtons[0].click();
141
- expect(invokerButtons[0]).to.have.attribute('expanded');
142
- expect(invokerButtons[1]).to.not.have.attribute('expanded');
143
- expect(invokerButtons[2]).to.have.attribute('expanded');
144
- });
145
- it('sends event "expanded-changed" for every expanded state change', async () => {
146
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
147
- const spy = sinon.spy();
148
- el.addEventListener('expanded-changed', spy);
149
- el.expanded = [1];
150
- expect(spy).to.have.been.calledOnce;
151
- });
152
- it('logs warning if unequal amount of invokers and contents', async () => {
153
- const stub = sinon.stub(console, 'warn');
154
- await fixture(html`
155
- <lion-accordion>
156
- <h2 slot="invoker"><button>invoker</button></h2>
157
- <div slot="content">content 1</div>
158
- <div slot="content">content 2</div>
159
- </lion-accordion>
160
- `);
161
- expect(stub).to.be.calledOnceWithExactly(
162
- `The amount of invokers (1) doesn't match the amount of contents (2).`,
163
- );
164
- stub.restore();
165
- });
166
- it('does not select any elements with slot="invoker" and slot="content" inside slotted elements', async () => {
167
- const stub = sinon.stub(console, 'warn');
168
- const el =
169
- /** @type {LionAccordion} */
170
- await fixture(html`
171
- <lion-accordion>
172
- <h2 slot="invoker">
173
- <button>invoker 1</button>
174
- <button slot="invoker">Nested invoker</button>
175
- </h2>
176
- <h2 slot="invoker"><button>invoker 2</button></h2>
177
- <div slot="content">
178
- content 1
179
- <p slot="content">Nested content 1</p>
180
- </div>
181
- <div slot="content">
182
- content 2
183
- <p slot="content">Nested content 2</p>
184
- </div>
185
- </lion-accordion>
186
- `);
187
- const invokers = Array.from(getInvokers(el));
188
- const contents = Array.from(getContents(el));
189
- expect(stub.called).to.be.false;
190
- expect(invokers.length).to.equal(contents.length);
191
- stub.restore();
192
- });
193
- });
194
- describe('Accordion navigation', () => {
195
- it('sets focusedIndex to null by default', async () => {
196
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
197
- expect(el.focusedIndex).to.equal(-1);
198
- });
199
- it('can programmatically set focusedIndex', async () => {
200
- const el =
201
- /** @type {LionAccordion} */
202
- await fixture(html`
203
- <lion-accordion .focusedIndex=${1}>
204
- <h2 slot="invoker"><button>invoker 1</button></h2>
205
- <div slot="content">content 1</div>
206
- <h2 slot="invoker"><button>invoker 2</button></h2>
207
- <div slot="content">content 2</div>
208
- </lion-accordion>
209
- `);
210
- expect(el.focusedIndex).to.equal(1);
211
- expect(
212
- Array.from(getInvokers(el)).find((child) =>
213
- child.firstElementChild?.hasAttribute('focused'),
214
- )?.textContent,
215
- ).to.equal('invoker 2');
216
- el.focusedIndex = 0;
217
- expect(
218
- Array.from(getInvokers(el)).find((child) =>
219
- child.firstElementChild?.hasAttribute('focused'),
220
- )?.textContent,
221
- ).to.equal('invoker 1');
222
- });
223
- it('has [focused] on current focused invoker first child which serves as styling hook', async () => {
224
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
225
- const invokers = getInvokers(el);
226
- el.focusedIndex = 0;
227
- expect(invokers[0]).to.not.have.attribute('focused');
228
- expect(invokers[1]).to.not.have.attribute('focused');
229
- expect(invokers[0].firstElementChild).to.have.attribute('focused');
230
- expect(invokers[1].firstElementChild).to.not.have.attribute('focused');
231
- el.focusedIndex = 1;
232
- expect(invokers[0]).to.not.have.attribute('focused');
233
- expect(invokers[1]).to.not.have.attribute('focused');
234
- expect(invokers[0].firstElementChild).to.not.have.attribute('focused');
235
- expect(invokers[1].firstElementChild).to.have.attribute('focused');
236
- });
237
- it('sends event "focused-changed" for every focused state change', async () => {
238
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
239
- const spy = sinon.spy();
240
- el.addEventListener('focused-changed', spy);
241
- el.focusedIndex = 1;
242
- expect(spy).to.have.been.calledOnce;
243
- });
244
- it('tabbing sets the focusedIndex correctly', async () => {
245
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
246
- const invokers = getInvokers(el);
247
- el.focusedIndex = 0;
248
- expect(el.focusedIndex).to.equal(0);
249
- invokers[2].firstElementChild?.dispatchEvent(new Event('focusin'));
250
- expect(el.focusedIndex).to.equal(2);
251
- invokers[1].firstElementChild?.dispatchEvent(new Event('focusin'));
252
- expect(el.focusedIndex).to.equal(1);
253
- });
254
- });
255
- describe('Accordion Contents (slot=content)', () => {
256
- it('are visible when corresponding invoker is expanded', async () => {
257
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
258
- el.expanded = [0];
259
- const contents = getContents(el);
260
- setTimeout(() => {
261
- expect(contents[0]).to.be.visible;
262
- expect(contents[1]).to.be.not.visible;
263
- el.expanded = [1];
264
- expect(contents[0]).to.be.not.visible;
265
- expect(contents[1]).to.be.visible;
266
- }, 250);
267
- });
268
- it.skip('have a DOM structure that allows them to be animated ', async () => {});
269
- });
270
-
271
- /**
272
- * We will immediately switch content as all our content comes from light dom.
273
- *
274
- * See Note at https://www.w3.org/TR/wai-aria-practices/#keyboard-interaction-19
275
- * > It is recommended that invokers activate automatically when they receive focus as long as their
276
- * > associated invoker contents are displayed without noticeable latency. This typically requires invoker
277
- * > content content to be preloaded.
278
- */
279
- describe('User interaction', () => {
280
- it('opens/closes an invoker on click', async () => {
281
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
282
- const invokers = getInvokers(el);
283
- invokers[1].firstElementChild?.dispatchEvent(new Event('click'));
284
- expect(el.expanded).to.deep.equal([1]);
285
- invokers[1].firstElementChild?.dispatchEvent(new Event('click'));
286
- expect(el.expanded).to.deep.equal([]);
287
- });
288
- it('selects a invoker on click', async () => {
289
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
290
- const invokers = getInvokers(el);
291
- invokers[1].firstElementChild?.dispatchEvent(new Event('click'));
292
- expect(el.focusedIndex).to.equal(1);
293
- });
294
- it('opens/closes invoker on [enter] and [space]', async () => {
295
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
296
- const invokers = getInvokers(el);
297
- invokers[0].getElementsByTagName('button')[0].focus();
298
- await sendKeys({
299
- press: 'Enter',
300
- });
301
- expect(el.expanded).to.deep.equal([0]);
302
- await sendKeys({
303
- press: 'Space',
304
- });
305
- expect(el.expanded).to.deep.equal([]);
306
- });
307
- it('selects next invoker on [arrow-right] and [arrow-down]', async () => {
308
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
309
- const invokers = getInvokers(el);
310
- el.focusedIndex = 0;
311
- invokers[0].firstElementChild?.dispatchEvent(
312
- new KeyboardEvent('keydown', {
313
- key: 'ArrowRight',
314
- }),
315
- );
316
- expect(el.focusedIndex).to.equal(1);
317
- invokers[0].firstElementChild?.dispatchEvent(
318
- new KeyboardEvent('keydown', {
319
- key: 'ArrowDown',
320
- }),
321
- );
322
- expect(el.focusedIndex).to.equal(2);
323
- });
324
- it('selects previous invoker on [arrow-left] and [arrow-up]', async () => {
325
- const el =
326
- /** @type {LionAccordion} */
327
- await fixture(html`
328
- <lion-accordion .focusedIndex=${1}>
329
- <h2 slot="invoker"><button>invoker 1</button></h2>
330
- <div slot="content">content 1</div>
331
- <h2 slot="invoker"><button>invoker 2</button></h2>
332
- <div slot="content">content 2</div>
333
- <h2 slot="invoker"><button>invoker 3</button></h2>
334
- <div slot="content">content 3</div>
335
- </lion-accordion>
336
- `);
337
- const invokers = getInvokers(el);
338
- el.focusedIndex = 2;
339
- invokers[2].firstElementChild?.dispatchEvent(
340
- new KeyboardEvent('keydown', {
341
- key: 'ArrowLeft',
342
- }),
343
- );
344
- expect(el.focusedIndex).to.equal(1);
345
- invokers[1].firstElementChild?.dispatchEvent(
346
- new KeyboardEvent('keydown', {
347
- key: 'ArrowUp',
348
- }),
349
- );
350
- expect(el.focusedIndex).to.equal(0);
351
- });
352
- it('selects first invoker on [home]', async () => {
353
- const el =
354
- /** @type {LionAccordion} */
355
- await fixture(html`
356
- <lion-accordion .focusedIndex=${1}>
357
- <h2 slot="invoker"><button>invoker 1</button></h2>
358
- <div slot="content">content 1</div>
359
- <h2 slot="invoker"><button>invoker 2</button></h2>
360
- <div slot="content">content 2</div>
361
- </lion-accordion>
362
- `);
363
- const invokers = getInvokers(el);
364
- invokers[1].firstElementChild?.dispatchEvent(
365
- new KeyboardEvent('keydown', {
366
- key: 'Home',
367
- }),
368
- );
369
- expect(el.focusedIndex).to.equal(0);
370
- });
371
- it('selects last invoker on [end]', async () => {
372
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
373
- const invokers = getInvokers(el);
374
- invokers[0].firstElementChild?.dispatchEvent(
375
- new KeyboardEvent('keydown', {
376
- key: 'End',
377
- }),
378
- );
379
- expect(el.focusedIndex).to.equal(2);
380
- });
381
- it('stays on last invoker on [arrow-right]', async () => {
382
- const el =
383
- /** @type {LionAccordion} */
384
- await fixture(html`
385
- <lion-accordion focusedIndex="2">
386
- <h2 slot="invoker"><button>invoker 1</button></h2>
387
- <div slot="content">content 1</div>
388
- <h2 slot="invoker"><button>invoker 2</button></h2>
389
- <div slot="content">content 2</div>
390
- <h2 slot="invoker"><button>invoker 3</button></h2>
391
- <div slot="content">content 3</div>
392
- </lion-accordion>
393
- `);
394
- const invokers = getInvokers(el);
395
- invokers[2].firstElementChild?.dispatchEvent(
396
- new KeyboardEvent('keydown', {
397
- key: 'ArrowRight',
398
- }),
399
- );
400
- expect(el.focusedIndex).to.equal(2);
401
- });
402
- it('stays on first invoker on [arrow-left]', async () => {
403
- const el =
404
- /** @type {LionAccordion} */
405
- await fixture(html`
406
- <lion-accordion>
407
- <h2 slot="invoker"><button>invoker 1</button></h2>
408
- <div slot="content">content 1</div>
409
- <h2 slot="invoker"><button>invoker 2</button></h2>
410
- <div slot="content">content 2</div>
411
- <h2 slot="invoker"><button>invoker 3</button></h2>
412
- <div slot="content">content 3</div>
413
- </lion-accordion>
414
- `);
415
- const invokers = getInvokers(el);
416
- invokers[0].firstElementChild?.dispatchEvent(
417
- new KeyboardEvent('keydown', {
418
- key: 'ArrowLeft',
419
- }),
420
- );
421
- expect(el.focusedIndex).to.equal(-1);
422
- });
423
- });
424
- describe('Content distribution', () => {
425
- it('should work with append children', async () => {
426
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
427
- for (let i = 4; i < 6; i += 1) {
428
- const invoker = document.createElement('h2');
429
- const button = document.createElement('button');
430
- invoker.setAttribute('slot', 'invoker');
431
- button.innerText = `invoker ${i}`;
432
- invoker.appendChild(button);
433
- const content = document.createElement('div');
434
- content.setAttribute('slot', 'content');
435
- content.innerText = `content ${i}`;
436
- el.append(invoker);
437
- el.append(content);
438
- }
439
- el.expanded = [4];
440
- await el.updateComplete;
441
- expect(
442
- Array.from(getInvokers(el)).find((child) => child.hasAttribute('expanded'))?.textContent,
443
- ).to.equal('invoker 5');
444
- expect(
445
- Array.from(getContents(el)).find((child) => child.hasAttribute('expanded'))?.textContent,
446
- ).to.equal('content 5');
447
- });
448
- it('should add order style property to each invoker and content', async () => {
449
- const el = /** @type {LionAccordion} */ await fixture(basicAccordion);
450
- for (let i = 4; i < 6; i += 1) {
451
- const invoker = document.createElement('h2');
452
- const button = document.createElement('button');
453
- invoker.setAttribute('slot', 'invoker');
454
- button.innerText = `invoker ${i}`;
455
- invoker.appendChild(button);
456
- const content = document.createElement('div');
457
- content.setAttribute('slot', 'content');
458
- content.innerText = `content ${i}`;
459
- el.append(invoker);
460
- el.append(content);
461
- }
462
- await el.updateComplete;
463
- const invokers =
464
- /** @type {HTMLElement[]} */
465
- Array.from(el.querySelectorAll('[slot=invoker]'));
466
- const contents =
467
- /** @type {HTMLElement[]} */
468
- Array.from(el.querySelectorAll('[slot=content]'));
469
- invokers.forEach((invoker, index) => {
470
- const content = contents[index];
471
- expect(invoker.style.getPropertyValue('order')).to.equal(`${index + 1}`);
472
- expect(content.style.getPropertyValue('order')).to.equal(`${index + 1}`);
473
- });
474
- });
475
- });
476
- describe('Accessibility', () => {
477
- it('does not make contents focusable', async () => {
478
- const el = await fixture(html`
479
- <lion-accordion>
480
- <h2 slot="invoker"><button>invoker 1</button></h2>
481
- <div slot="content">content 1</div>
482
- <h2 slot="invoker"><button>invoker 2</button></h2>
483
- <div slot="content">content 2</div>
484
- </lion-accordion>
485
- `);
486
-
487
- // console.log(getAccordionChildren(el));
488
- expect(
489
- Array.from(getAccordionChildren(el)).find((child) => child.classList.contains('content')),
490
- ).to.not.have.attribute('tabindex');
491
- expect(
492
- Array.from(getAccordionChildren(el)).find((child) => child.classList.contains('content')),
493
- ).to.not.have.attribute('tabindex');
494
- });
495
- describe('Invokers', () => {
496
- it('links ids of content items to invoker first child via [aria-controls]', async () => {
497
- const el =
498
- /** @type {LionAccordion} */
499
- await fixture(html`
500
- <lion-accordion>
501
- <h2 id="h1" slot="invoker"><button>invoker 1</button></h2>
502
- <div id="p1" slot="content">content 1</div>
503
- <h2 id="h2" slot="invoker"><button>invoker 2</button></h2>
504
- <div id="p2" slot="content">content 2</div>
505
- </lion-accordion>
506
- `);
507
- const invokers = getInvokers(el);
508
- const contents = getContents(el);
509
- expect(invokers[0].firstElementChild?.getAttribute('aria-controls')).to.equal(
510
- contents[0].id,
511
- );
512
- expect(invokers[1].firstElementChild?.getAttribute('aria-controls')).to.equal(
513
- contents[1].id,
514
- );
515
- });
516
- it('adds aria-expanded="false" to invoker when its content is not expanded', async () => {
517
- const el =
518
- /** @type {LionAccordion} */
519
- await fixture(html`
520
- <lion-accordion>
521
- <h2 slot="invoker"><button>invoker</button></h2>
522
- <div slot="content">content</div>
523
- </lion-accordion>
524
- `);
525
- expect(Array.from(getInvokers(el))[0]?.firstElementChild).to.have.attribute(
526
- 'aria-expanded',
527
- 'false',
528
- );
529
- });
530
- it('adds aria-expanded="true" to invoker when its content is expanded', async () => {
531
- const el =
532
- /** @type {LionAccordion} */
533
- await fixture(html`
534
- <lion-accordion>
535
- <h2 slot="invoker"><button>invoker</button></h2>
536
- <div slot="content">content</div>
537
- </lion-accordion>
538
- `);
539
- el.expanded = [0];
540
- expect(Array.from(getInvokers(el))[0]?.firstElementChild).to.have.attribute(
541
- 'aria-expanded',
542
- 'true',
543
- );
544
- });
545
- });
546
- describe('Contents', () => {
547
- it('adds aria-labelledby referring to invoker ids', async () => {
548
- const el =
549
- /** @type {LionAccordion} */
550
- await fixture(html`
551
- <lion-accordion>
552
- <h2 slot="invoker"><button>invoker 1</button></h2>
553
- <div slot="content">content 1</div>
554
- <h2 slot="invoker"><button>invoker 2</button></h2>
555
- <div slot="content">content 2</div>
556
- </lion-accordion>
557
- `);
558
- const contents = getContents(el);
559
- const invokers = getInvokers(el);
560
- expect(contents[0]).to.have.attribute('aria-labelledby', invokers[0].firstElementChild?.id);
561
- expect(contents[1]).to.have.attribute('aria-labelledby', invokers[1].firstElementChild?.id);
562
- });
563
- });
564
- });
565
- });
1
+ import { runAccordionSuite } from '../test-suites/lion-accordion.suite.js';
2
+ runAccordionSuite();