@lion/ui 0.25.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 (771) 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-suites/LionInputTel.suite.js +9 -4
  81. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +6 -4
  82. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +10 -13
  83. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +6 -5
  84. package/components/listbox/test-suites/ListboxMixin.suite.js +19 -19
  85. package/components/menu/test-suites/InteractiveListMixin.suite.js +6 -9
  86. package/components/menu/test-suites/LionMenu.suite.js +6 -10
  87. package/components/menu/test-suites/LionMenuInteractions.suite.js +13 -4
  88. package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +6 -9
  89. package/components/menu/test-suites/MultiLevelListMixin.suite.js +15 -11
  90. package/components/overlays/test/OverlayController.test.js +6 -1
  91. package/components/overlays/test-suites/OverlayMixin.suite.js +3 -5
  92. package/components/pagination/test/lion-pagination.test.js +2 -176
  93. package/components/pagination/test-suites/LionPagination.suite.js +201 -0
  94. package/components/progress-indicator/test/lion-progress-indicator.test.js +2 -203
  95. package/components/progress-indicator/test-suites/lion-progress-indicator.suite.js +214 -0
  96. package/components/radio-group/test/lion-radio-group.test.js +2 -162
  97. package/components/radio-group/test/lion-radio.test.js +2 -54
  98. package/components/radio-group/test-suites/lion-radio-group.suite.js +173 -0
  99. package/components/radio-group/test-suites/lion-radio.suite.js +70 -0
  100. package/components/select/test/lion-select.test.js +2 -79
  101. package/components/select/test-suites/LionSelect.suite.js +94 -0
  102. package/components/select-rich/test/lion-select-invoker.test.js +2 -86
  103. package/components/select-rich/test/lion-select-rich-interaction.test.js +2 -430
  104. package/components/select-rich/test/lion-select-rich.test.js +2 -1193
  105. package/components/select-rich/test-suites/lion-select-invoker.suite.js +98 -0
  106. package/components/select-rich/test-suites/lion-select-rich-interaction.suite.js +452 -0
  107. package/components/select-rich/test-suites/lion-select-rich.suite.js +1236 -0
  108. package/components/steps/test/lion-step.test.js +2 -97
  109. package/components/steps/test/lion-steps.test.js +2 -433
  110. package/components/steps/test-suites/lion-step.suite.js +113 -0
  111. package/components/steps/test-suites/lion-steps.suite.js +445 -0
  112. package/components/switch/test/lion-switch.test.js +2 -232
  113. package/components/switch/test-suites/lion-switch.suite.js +450 -0
  114. package/components/tabs/test/lion-tabs.test.js +2 -596
  115. package/components/tabs/test-suites/lion-tabs.suite.js +617 -0
  116. package/components/textarea/src/LionTextarea.js +5 -2
  117. package/components/textarea/test/lion-textarea.test.js +2 -159
  118. package/components/textarea/test-suites/lion-textarea.suite.js +192 -0
  119. package/components/tooltip/test/lion-tooltip.test.js +2 -393
  120. package/components/tooltip/test-suites/lion-tooltip.suite.js +409 -0
  121. package/custom-elements.json +14855 -10161
  122. package/dialog-test-suites.js +2 -0
  123. package/dist-types/components/accordion/test/lion-accordion.test.d.ts +1 -2
  124. package/dist-types/components/accordion/test/lion-accordion.test.d.ts.map +1 -1
  125. package/dist-types/components/accordion/test-suites/lion-accordion.suite.d.ts +18 -0
  126. package/dist-types/components/accordion/test-suites/lion-accordion.suite.d.ts.map +1 -0
  127. package/dist-types/components/button/test-suites/LionButton.suite.d.ts +10 -4
  128. package/dist-types/components/button/test-suites/LionButton.suite.d.ts.map +1 -1
  129. package/dist-types/components/button/test-suites/LionButtonReset.suite.d.ts +10 -4
  130. package/dist-types/components/button/test-suites/LionButtonReset.suite.d.ts.map +1 -1
  131. package/dist-types/components/button/test-suites/LionButtonSubmit.suite.d.ts +10 -4
  132. package/dist-types/components/button/test-suites/LionButtonSubmit.suite.d.ts.map +1 -1
  133. package/dist-types/components/calendar/test/lion-calendar.test.d.ts +1 -3
  134. package/dist-types/components/calendar/test/lion-calendar.test.d.ts.map +1 -1
  135. package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts +13 -4
  136. package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts.map +1 -1
  137. package/dist-types/components/checkbox-group/test/lion-checkbox-group-integrations.test.d.ts.map +1 -1
  138. package/dist-types/components/checkbox-group/test/lion-checkbox-integrations.test.d.ts.map +1 -1
  139. package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts +12 -9
  140. package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts.map +1 -1
  141. package/dist-types/components/collapsible/test/lion-collapsible.test.d.ts +1 -3
  142. package/dist-types/components/collapsible/test/lion-collapsible.test.d.ts.map +1 -1
  143. package/dist-types/components/collapsible/test-suites/LionCollapsible.suite.d.ts +18 -0
  144. package/dist-types/components/collapsible/test-suites/LionCollapsible.suite.d.ts.map +1 -0
  145. package/dist-types/components/combobox/test/lion-combobox.test.d.ts +1 -5
  146. package/dist-types/components/combobox/test/lion-combobox.test.d.ts.map +1 -1
  147. package/dist-types/components/combobox/test-suites/lion-combobox.suite.d.ts +17 -0
  148. package/dist-types/components/combobox/test-suites/lion-combobox.suite.d.ts.map +1 -0
  149. package/dist-types/components/core/src/ScopedElementsMixin.d.ts.map +1 -1
  150. package/dist-types/components/core/test-helpers/isElementVisible.d.ts +12 -0
  151. package/dist-types/components/core/test-helpers/isElementVisible.d.ts.map +1 -0
  152. package/dist-types/components/core/test-helpers/resolveSuiteTag.d.ts +29 -0
  153. package/dist-types/components/core/test-helpers/resolveSuiteTag.d.ts.map +1 -0
  154. package/dist-types/components/core/types/TestSuiteTypes.d.ts +40 -0
  155. package/dist-types/components/core/types/TestSuiteTypes.d.ts.map +1 -0
  156. package/dist-types/components/dialog/test/lion-dialog.integration.test.d.ts.map +1 -1
  157. package/dist-types/components/dialog/test/lion-dialog.test.d.ts +1 -5
  158. package/dist-types/components/dialog/test/lion-dialog.test.d.ts.map +1 -1
  159. package/dist-types/components/dialog/test-suites/lion-dialog.suite.d.ts +19 -0
  160. package/dist-types/components/dialog/test-suites/lion-dialog.suite.d.ts.map +1 -0
  161. package/dist-types/components/drawer/test/lion-drawer.test.d.ts +1 -3
  162. package/dist-types/components/drawer/test/lion-drawer.test.d.ts.map +1 -1
  163. package/dist-types/components/drawer/test-suites/LionDrawer.suite.d.ts +20 -0
  164. package/dist-types/components/drawer/test-suites/LionDrawer.suite.d.ts.map +1 -0
  165. package/dist-types/components/fieldset/test/lion-fieldset.test.d.ts.map +1 -1
  166. package/dist-types/components/form/test/lion-form.test.d.ts +1 -12
  167. package/dist-types/components/form/test/lion-form.test.d.ts.map +1 -1
  168. package/dist-types/components/form/test-suites/lion-form.suite.d.ts +39 -0
  169. package/dist-types/components/form/test-suites/lion-form.suite.d.ts.map +1 -0
  170. package/dist-types/components/form-core/test-suites/FormRegistrationMixins.suite.d.ts +14 -17
  171. package/dist-types/components/form-core/test-suites/FormRegistrationMixins.suite.d.ts.map +1 -1
  172. package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts +22 -38
  173. package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts.map +1 -1
  174. package/dist-types/components/form-core/test-suites/InteractionStateMixin.suite.d.ts +11 -5
  175. package/dist-types/components/form-core/test-suites/InteractionStateMixin.suite.d.ts.map +1 -1
  176. package/dist-types/components/form-core/test-suites/NativeTextFieldMixin.suite.d.ts +9 -4
  177. package/dist-types/components/form-core/test-suites/NativeTextFieldMixin.suite.d.ts.map +1 -1
  178. package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts +9 -4
  179. package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts.map +1 -1
  180. package/dist-types/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.d.ts +10 -1
  181. package/dist-types/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.d.ts.map +1 -1
  182. package/dist-types/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.d.ts +17 -6
  183. package/dist-types/components/form-core/test-suites/choice-group/ChoiceGroupMixin.suite.d.ts.map +1 -1
  184. package/dist-types/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.d.ts +5 -2
  185. package/dist-types/components/form-core/test-suites/choice-group/ChoiceInputMixin.suite.d.ts.map +1 -1
  186. package/dist-types/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.d.ts +10 -5
  187. package/dist-types/components/form-core/test-suites/choice-group/CustomChoiceGroupMixin.suite.d.ts.map +1 -1
  188. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts +10 -5
  189. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts.map +1 -1
  190. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts +10 -5
  191. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts.map +1 -1
  192. package/dist-types/components/icon/test/lion-icon.test.d.ts +1 -4
  193. package/dist-types/components/icon/test/lion-icon.test.d.ts.map +1 -1
  194. package/dist-types/components/icon/test-suites/lion-icon.suite.d.ts +16 -0
  195. package/dist-types/components/icon/test-suites/lion-icon.suite.d.ts.map +1 -0
  196. package/dist-types/components/input/test/lion-input-integrations.test.d.ts.map +1 -1
  197. package/dist-types/components/input/test/lion-input.test.d.ts +1 -2
  198. package/dist-types/components/input/test/lion-input.test.d.ts.map +1 -1
  199. package/dist-types/components/input/test-suites/lion-input.suite.d.ts +17 -0
  200. package/dist-types/components/input/test-suites/lion-input.suite.d.ts.map +1 -0
  201. package/dist-types/components/input-amount/src/parsers.d.ts.map +1 -1
  202. package/dist-types/components/input-amount/test/lion-input-amount-integrations.test.d.ts.map +1 -1
  203. package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts +1 -2
  204. package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts.map +1 -1
  205. package/dist-types/components/input-amount/test-suites/lion-input-amount.suite.d.ts +19 -0
  206. package/dist-types/components/input-amount/test-suites/lion-input-amount.suite.d.ts.map +1 -0
  207. package/dist-types/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.d.ts.map +1 -1
  208. package/dist-types/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.d.ts +7 -3
  209. package/dist-types/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.d.ts.map +1 -1
  210. package/dist-types/components/input-date/test/lion-input-date-integrations.test.d.ts.map +1 -1
  211. package/dist-types/components/input-date/test/lion-input-date.test.d.ts +1 -3
  212. package/dist-types/components/input-date/test/lion-input-date.test.d.ts.map +1 -1
  213. package/dist-types/components/input-date/test-suites/lion-input-date.suite.d.ts +15 -0
  214. package/dist-types/components/input-date/test-suites/lion-input-date.suite.d.ts.map +1 -0
  215. package/dist-types/components/input-datepicker/test/lion-input-datepicker-integrations.test.d.ts.map +1 -1
  216. package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts +1 -2
  217. package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts.map +1 -1
  218. package/dist-types/components/input-datepicker/test-helpers/DatepickerInputObject.d.ts +8 -0
  219. package/dist-types/components/input-datepicker/test-helpers/DatepickerInputObject.d.ts.map +1 -1
  220. package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts +15 -5
  221. package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts.map +1 -1
  222. package/dist-types/components/input-email/test/lion-input-email-integrations.test.d.ts.map +1 -1
  223. package/dist-types/components/input-email/test/lion-input-email.test.d.ts +1 -3
  224. package/dist-types/components/input-email/test/lion-input-email.test.d.ts.map +1 -1
  225. package/dist-types/components/input-email/test-suites/lion-input-email.suite.d.ts +15 -0
  226. package/dist-types/components/input-email/test-suites/lion-input-email.suite.d.ts.map +1 -0
  227. package/dist-types/components/input-file/test/lion-input-file.test.d.ts +1 -5
  228. package/dist-types/components/input-file/test/lion-input-file.test.d.ts.map +1 -1
  229. package/dist-types/components/input-file/test-suites/lion-input-file.suite.d.ts +19 -0
  230. package/dist-types/components/input-file/test-suites/lion-input-file.suite.d.ts.map +1 -0
  231. package/dist-types/components/input-iban/test/lion-input-iban-integrations.test.d.ts.map +1 -1
  232. package/dist-types/components/input-iban/test/lion-input-iban.test.d.ts +1 -3
  233. package/dist-types/components/input-iban/test/lion-input-iban.test.d.ts.map +1 -1
  234. package/dist-types/components/input-iban/test-suites/lion-input-iban.suite.d.ts +15 -0
  235. package/dist-types/components/input-iban/test-suites/lion-input-iban.suite.d.ts.map +1 -0
  236. package/dist-types/components/input-range/test/lion-input-range.test.d.ts +1 -3
  237. package/dist-types/components/input-range/test/lion-input-range.test.d.ts.map +1 -1
  238. package/dist-types/components/input-range/test-suites/lion-input-range.suite.d.ts +15 -0
  239. package/dist-types/components/input-range/test-suites/lion-input-range.suite.d.ts.map +1 -0
  240. package/dist-types/components/input-stepper/test-suites/lion-input-stepper.integration.suite.d.ts +10 -2
  241. package/dist-types/components/input-stepper/test-suites/lion-input-stepper.integration.suite.d.ts.map +1 -1
  242. package/dist-types/components/input-stepper/test-suites/lion-input-stepper.suite.d.ts +10 -2
  243. package/dist-types/components/input-stepper/test-suites/lion-input-stepper.suite.d.ts.map +1 -1
  244. package/dist-types/components/input-tel/test-suites/LionInputTel.suite.d.ts +6 -4
  245. package/dist-types/components/input-tel/test-suites/LionInputTel.suite.d.ts.map +1 -1
  246. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.d.ts +7 -3
  247. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.d.ts.map +1 -1
  248. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.d.ts +7 -3
  249. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.d.ts.map +1 -1
  250. package/dist-types/components/listbox/test-suites/ListboxMixin.suite.d.ts +3 -4
  251. package/dist-types/components/listbox/test-suites/ListboxMixin.suite.d.ts.map +1 -1
  252. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts +6 -5
  253. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts.map +1 -1
  254. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts +6 -5
  255. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts.map +1 -1
  256. package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts +10 -4
  257. package/dist-types/components/menu/test-suites/LionMenuInteractions.suite.d.ts.map +1 -1
  258. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts +6 -5
  259. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts.map +1 -1
  260. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts +7 -6
  261. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts.map +1 -1
  262. package/dist-types/components/overlays/test-suites/OverlayMixin.suite.d.ts.map +1 -1
  263. package/dist-types/components/pagination/test/lion-pagination.test.d.ts +1 -3
  264. package/dist-types/components/pagination/test/lion-pagination.test.d.ts.map +1 -1
  265. package/dist-types/components/pagination/test-suites/LionPagination.suite.d.ts +18 -0
  266. package/dist-types/components/pagination/test-suites/LionPagination.suite.d.ts.map +1 -0
  267. package/dist-types/components/progress-indicator/test/lion-progress-indicator.test.d.ts +1 -3
  268. package/dist-types/components/progress-indicator/test/lion-progress-indicator.test.d.ts.map +1 -1
  269. package/dist-types/components/progress-indicator/test-suites/lion-progress-indicator.suite.d.ts +15 -0
  270. package/dist-types/components/progress-indicator/test-suites/lion-progress-indicator.suite.d.ts.map +1 -0
  271. package/dist-types/components/radio-group/test/lion-radio-group.test.d.ts +1 -5
  272. package/dist-types/components/radio-group/test/lion-radio-group.test.d.ts.map +1 -1
  273. package/dist-types/components/radio-group/test/lion-radio.test.d.ts +1 -2
  274. package/dist-types/components/radio-group/test/lion-radio.test.d.ts.map +1 -1
  275. package/dist-types/components/radio-group/test-suites/lion-radio-group.suite.d.ts +19 -0
  276. package/dist-types/components/radio-group/test-suites/lion-radio-group.suite.d.ts.map +1 -0
  277. package/dist-types/components/radio-group/test-suites/lion-radio.suite.d.ts +17 -0
  278. package/dist-types/components/radio-group/test-suites/lion-radio.suite.d.ts.map +1 -0
  279. package/dist-types/components/select/test/lion-select.test.d.ts +1 -2
  280. package/dist-types/components/select/test/lion-select.test.d.ts.map +1 -1
  281. package/dist-types/components/select/test-suites/LionSelect.suite.d.ts +16 -0
  282. package/dist-types/components/select/test-suites/LionSelect.suite.d.ts.map +1 -0
  283. package/dist-types/components/select-rich/test/lion-select-invoker.test.d.ts +1 -2
  284. package/dist-types/components/select-rich/test/lion-select-invoker.test.d.ts.map +1 -1
  285. package/dist-types/components/select-rich/test/lion-select-rich-interaction.test.d.ts +1 -5
  286. package/dist-types/components/select-rich/test/lion-select-rich-interaction.test.d.ts.map +1 -1
  287. package/dist-types/components/select-rich/test/lion-select-rich.test.d.ts +1 -8
  288. package/dist-types/components/select-rich/test/lion-select-rich.test.d.ts.map +1 -1
  289. package/dist-types/components/select-rich/test-suites/lion-select-invoker.suite.d.ts +19 -0
  290. package/dist-types/components/select-rich/test-suites/lion-select-invoker.suite.d.ts.map +1 -0
  291. package/dist-types/components/select-rich/test-suites/lion-select-rich-interaction.suite.d.ts +19 -0
  292. package/dist-types/components/select-rich/test-suites/lion-select-rich-interaction.suite.d.ts.map +1 -0
  293. package/dist-types/components/select-rich/test-suites/lion-select-rich.suite.d.ts +21 -0
  294. package/dist-types/components/select-rich/test-suites/lion-select-rich.suite.d.ts.map +1 -0
  295. package/dist-types/components/steps/test/lion-step.test.d.ts +1 -2
  296. package/dist-types/components/steps/test/lion-step.test.d.ts.map +1 -1
  297. package/dist-types/components/steps/test/lion-steps.test.d.ts +1 -8
  298. package/dist-types/components/steps/test/lion-steps.test.d.ts.map +1 -1
  299. package/dist-types/components/steps/test-suites/lion-step.suite.d.ts +17 -0
  300. package/dist-types/components/steps/test-suites/lion-step.suite.d.ts.map +1 -0
  301. package/dist-types/components/steps/test-suites/lion-steps.suite.d.ts +22 -0
  302. package/dist-types/components/steps/test-suites/lion-steps.suite.d.ts.map +1 -0
  303. package/dist-types/components/switch/test/lion-switch.test.d.ts +1 -4
  304. package/dist-types/components/switch/test/lion-switch.test.d.ts.map +1 -1
  305. package/dist-types/components/switch/test-suites/lion-switch.suite.d.ts +17 -0
  306. package/dist-types/components/switch/test-suites/lion-switch.suite.d.ts.map +1 -0
  307. package/dist-types/components/tabs/test/lion-tabs.test.d.ts +1 -5
  308. package/dist-types/components/tabs/test/lion-tabs.test.d.ts.map +1 -1
  309. package/dist-types/components/tabs/test-suites/lion-tabs.suite.d.ts +17 -0
  310. package/dist-types/components/tabs/test-suites/lion-tabs.suite.d.ts.map +1 -0
  311. package/dist-types/components/textarea/src/LionTextarea.d.ts.map +1 -1
  312. package/dist-types/components/textarea/test/lion-textarea.test.d.ts +1 -3
  313. package/dist-types/components/textarea/test/lion-textarea.test.d.ts.map +1 -1
  314. package/dist-types/components/textarea/test-suites/lion-textarea.suite.d.ts +15 -0
  315. package/dist-types/components/textarea/test-suites/lion-textarea.suite.d.ts.map +1 -0
  316. package/dist-types/components/tooltip/test/lion-tooltip.test.d.ts +1 -3
  317. package/dist-types/components/tooltip/test/lion-tooltip.test.d.ts.map +1 -1
  318. package/dist-types/components/tooltip/test-suites/lion-tooltip.suite.d.ts +19 -0
  319. package/dist-types/components/tooltip/test-suites/lion-tooltip.suite.d.ts.map +1 -0
  320. package/dist-types/exports/accordion-test-suites.d.ts +2 -0
  321. package/dist-types/exports/accordion-test-suites.d.ts.map +1 -0
  322. package/dist-types/exports/collapsible-test-suites.d.ts +2 -0
  323. package/dist-types/exports/collapsible-test-suites.d.ts.map +1 -0
  324. package/dist-types/exports/combobox-test-suites.d.ts +2 -0
  325. package/dist-types/exports/combobox-test-suites.d.ts.map +1 -0
  326. package/dist-types/exports/dialog-test-suites.d.ts +2 -0
  327. package/dist-types/exports/dialog-test-suites.d.ts.map +1 -0
  328. package/dist-types/exports/drawer-test-suites.d.ts +2 -0
  329. package/dist-types/exports/drawer-test-suites.d.ts.map +1 -0
  330. package/dist-types/exports/form-test-suites.d.ts +2 -0
  331. package/dist-types/exports/form-test-suites.d.ts.map +1 -0
  332. package/dist-types/exports/icon-test-suites.d.ts +2 -0
  333. package/dist-types/exports/icon-test-suites.d.ts.map +1 -0
  334. package/dist-types/exports/input-amount-test-suites.d.ts +2 -0
  335. package/dist-types/exports/input-amount-test-suites.d.ts.map +1 -0
  336. package/dist-types/exports/input-date-test-suites.d.ts +2 -0
  337. package/dist-types/exports/input-date-test-suites.d.ts.map +1 -0
  338. package/dist-types/exports/input-email-test-suites.d.ts +2 -0
  339. package/dist-types/exports/input-email-test-suites.d.ts.map +1 -0
  340. package/dist-types/exports/input-file-test-suites.d.ts +2 -0
  341. package/dist-types/exports/input-file-test-suites.d.ts.map +1 -0
  342. package/dist-types/exports/input-iban-test-suites.d.ts +2 -0
  343. package/dist-types/exports/input-iban-test-suites.d.ts.map +1 -0
  344. package/dist-types/exports/input-range-test-suites.d.ts +2 -0
  345. package/dist-types/exports/input-range-test-suites.d.ts.map +1 -0
  346. package/dist-types/exports/input-stepper-suites.d.ts +7 -2
  347. package/dist-types/exports/input-stepper-suites.d.ts.map +1 -1
  348. package/dist-types/exports/input-test-suites.d.ts +2 -0
  349. package/dist-types/exports/input-test-suites.d.ts.map +1 -0
  350. package/dist-types/exports/menu-test-suites.d.ts.map +1 -1
  351. package/dist-types/exports/pagination-test-suites.d.ts +2 -0
  352. package/dist-types/exports/pagination-test-suites.d.ts.map +1 -0
  353. package/dist-types/exports/progress-indicator-test-suites.d.ts +2 -0
  354. package/dist-types/exports/progress-indicator-test-suites.d.ts.map +1 -0
  355. package/dist-types/exports/radio-group-test-suites.d.ts +3 -0
  356. package/dist-types/exports/radio-group-test-suites.d.ts.map +1 -0
  357. package/dist-types/exports/select-rich-test-suites.d.ts +4 -0
  358. package/dist-types/exports/select-rich-test-suites.d.ts.map +1 -0
  359. package/dist-types/exports/select-test-suites.d.ts +2 -0
  360. package/dist-types/exports/select-test-suites.d.ts.map +1 -0
  361. package/dist-types/exports/steps-test-suites.d.ts +3 -0
  362. package/dist-types/exports/steps-test-suites.d.ts.map +1 -0
  363. package/dist-types/exports/switch-test-suites.d.ts +2 -0
  364. package/dist-types/exports/switch-test-suites.d.ts.map +1 -0
  365. package/dist-types/exports/tabs-test-suites.d.ts +2 -0
  366. package/dist-types/exports/tabs-test-suites.d.ts.map +1 -0
  367. package/dist-types/exports/textarea-test-suites.d.ts +2 -0
  368. package/dist-types/exports/textarea-test-suites.d.ts.map +1 -0
  369. package/dist-types/exports/tooltip-test-suites.d.ts +2 -0
  370. package/dist-types/exports/tooltip-test-suites.d.ts.map +1 -0
  371. package/dist-types/exports/types/test-suites.d.ts +4 -0
  372. package/dist-types/exports/types/test-suites.d.ts.map +1 -0
  373. package/dist-types/tsconfig.tsbuildinfo +1 -1
  374. package/drawer-test-suites.js +1 -0
  375. package/exports/accordion-test-suites.js +2 -0
  376. package/exports/collapsible-test-suites.js +1 -0
  377. package/exports/combobox-test-suites.js +2 -0
  378. package/exports/dialog-test-suites.js +2 -0
  379. package/exports/drawer-test-suites.js +1 -0
  380. package/exports/form-test-suites.js +2 -0
  381. package/exports/icon-test-suites.js +2 -0
  382. package/exports/input-amount-test-suites.js +2 -0
  383. package/exports/input-date-test-suites.js +2 -0
  384. package/exports/input-email-test-suites.js +2 -0
  385. package/exports/input-file-test-suites.js +2 -0
  386. package/exports/input-iban-test-suites.js +2 -0
  387. package/exports/input-range-test-suites.js +2 -0
  388. package/exports/input-stepper-suites.js +18 -4
  389. package/exports/input-test-suites.js +2 -0
  390. package/exports/menu-test-suites.js +3 -0
  391. package/exports/pagination-test-suites.js +1 -0
  392. package/exports/progress-indicator-test-suites.js +2 -0
  393. package/exports/radio-group-test-suites.js +3 -0
  394. package/exports/select-rich-test-suites.js +4 -0
  395. package/exports/select-test-suites.js +1 -0
  396. package/exports/steps-test-suites.js +3 -0
  397. package/exports/switch-test-suites.js +2 -0
  398. package/exports/tabs-test-suites.js +2 -0
  399. package/exports/textarea-test-suites.js +2 -0
  400. package/exports/tooltip-test-suites.js +2 -0
  401. package/exports/types/test-suites.ts +3 -0
  402. package/form-test-suites.js +2 -0
  403. package/generated/awesome-phonenumber/provenance.json +1 -1
  404. package/icon-test-suites.js +2 -0
  405. package/input-amount-test-suites.js +2 -0
  406. package/input-date-test-suites.js +2 -0
  407. package/input-email-test-suites.js +2 -0
  408. package/input-file-test-suites.js +2 -0
  409. package/input-iban-test-suites.js +2 -0
  410. package/input-range-test-suites.js +2 -0
  411. package/input-stepper-suites.js +18 -4
  412. package/input-test-suites.js +2 -0
  413. package/menu-test-suites.js +3 -0
  414. package/package.json +4 -1
  415. package/pagination-test-suites.js +1 -0
  416. package/progress-indicator-test-suites.js +2 -0
  417. package/radio-group-test-suites.js +3 -0
  418. package/select-rich-test-suites.js +4 -0
  419. package/select-test-suites.js +1 -0
  420. package/steps-test-suites.js +3 -0
  421. package/switch-test-suites.js +2 -0
  422. package/tabs-test-suites.js +2 -0
  423. package/textarea-test-suites.js +2 -0
  424. package/tooltip-test-suites.js +2 -0
  425. package/vscode.html-custom-data.json +55 -0
  426. package/web-types.json +219 -1
  427. package/components/button/test/demos.screenshots-test.js +0 -100
  428. package/components/calendar/test/demos.screenshots-test.js +0 -118
  429. package/components/input-file/test/lion-selected-file-list.test.js +0 -199
  430. package/components/select-rich/test/demos.screenshots-test.js +0 -168
  431. package/components/switch/test/lion-switch-button.test.js +0 -204
  432. package/dist-types/components/button/test/demos.screenshots-test.d.ts +0 -2
  433. package/dist-types/components/button/test/demos.screenshots-test.d.ts.map +0 -1
  434. package/dist-types/components/calendar/test/demos.screenshots-test.d.ts +0 -2
  435. package/dist-types/components/calendar/test/demos.screenshots-test.d.ts.map +0 -1
  436. package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts +0 -5
  437. package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts.map +0 -1
  438. package/dist-types/components/select-rich/test/demos.screenshots-test.d.ts +0 -2
  439. package/dist-types/components/select-rich/test/demos.screenshots-test.d.ts.map +0 -1
  440. package/dist-types/components/switch/test/lion-switch-button.test.d.ts +0 -4
  441. package/dist-types/components/switch/test/lion-switch-button.test.d.ts.map +0 -1
  442. package/docs/components/accordion/api-table.md +0 -53
  443. package/docs/components/accordion/index.md +0 -13
  444. package/docs/components/accordion/overview.md +0 -141
  445. package/docs/components/accordion/reference.md +0 -59
  446. package/docs/components/accordion/use-cases.md +0 -303
  447. package/docs/components/button/api-table.md +0 -84
  448. package/docs/components/button/assets/bootstrap-button.js +0 -245
  449. package/docs/components/button/examples.md +0 -42
  450. package/docs/components/button/extensions.md +0 -42
  451. package/docs/components/button/index.md +0 -13
  452. package/docs/components/button/overview.md +0 -42
  453. package/docs/components/button/src/icon.svg.js +0 -5
  454. package/docs/components/button/use-cases.md +0 -121
  455. package/docs/components/calendar/api-table.md +0 -56
  456. package/docs/components/calendar/index.md +0 -13
  457. package/docs/components/calendar/overview.md +0 -61
  458. package/docs/components/calendar/use-cases.md +0 -243
  459. package/docs/components/checkbox-group/api-table.md +0 -117
  460. package/docs/components/checkbox-group/index.md +0 -13
  461. package/docs/components/checkbox-group/overview.md +0 -51
  462. package/docs/components/checkbox-group/use-cases.md +0 -192
  463. package/docs/components/collapsible/api-table.md +0 -55
  464. package/docs/components/collapsible/assets/CustomCollapsible.js +0 -117
  465. package/docs/components/collapsible/assets/applyDemoCollapsibleStyles.js +0 -41
  466. package/docs/components/collapsible/examples.md +0 -95
  467. package/docs/components/collapsible/index.md +0 -13
  468. package/docs/components/collapsible/overview.md +0 -51
  469. package/docs/components/collapsible/use-cases.md +0 -91
  470. package/docs/components/combobox/api-table.md +0 -122
  471. package/docs/components/combobox/extensions.md +0 -174
  472. package/docs/components/combobox/index.md +0 -13
  473. package/docs/components/combobox/overview.md +0 -74
  474. package/docs/components/combobox/src/LinkMixin.js +0 -60
  475. package/docs/components/combobox/src/demo-selection-display.js +0 -164
  476. package/docs/components/combobox/src/gh-combobox/gh-button.js +0 -71
  477. package/docs/components/combobox/src/gh-combobox/gh-combobox.js +0 -515
  478. package/docs/components/combobox/src/google-combobox/assets/google-clear-icon.js +0 -9
  479. package/docs/components/combobox/src/google-combobox/assets/google-search-icon.js +0 -9
  480. package/docs/components/combobox/src/google-combobox/assets/google-voice-search-icon.js +0 -19
  481. package/docs/components/combobox/src/google-combobox/google-combobox.js +0 -461
  482. package/docs/components/combobox/src/lazyRender.js +0 -29
  483. package/docs/components/combobox/src/levenshtein.js +0 -95
  484. package/docs/components/combobox/src/md-combobox/MdFieldMixin.js +0 -345
  485. package/docs/components/combobox/src/md-combobox/md-combobox.js +0 -91
  486. package/docs/components/combobox/src/md-combobox/md-input.js +0 -5
  487. package/docs/components/combobox/src/md-combobox/style/load-roboto.js +0 -6
  488. package/docs/components/combobox/src/md-combobox/style/md-ripple.js +0 -82
  489. package/docs/components/combobox/src/wa-combobox/wa-combobox.js +0 -375
  490. package/docs/components/combobox/use-cases.md +0 -561
  491. package/docs/components/dialog/api-table.md +0 -61
  492. package/docs/components/dialog/index.md +0 -13
  493. package/docs/components/dialog/overview.md +0 -71
  494. package/docs/components/dialog/src/demoStyle.js +0 -57
  495. package/docs/components/dialog/src/external-dialog.js +0 -32
  496. package/docs/components/dialog/src/slots-dialog-content.js +0 -32
  497. package/docs/components/dialog/src/styled-dialog-content.js +0 -38
  498. package/docs/components/dialog/use-cases.md +0 -199
  499. package/docs/components/drawer/api-table.md +0 -64
  500. package/docs/components/drawer/index.md +0 -13
  501. package/docs/components/drawer/overview.md +0 -80
  502. package/docs/components/drawer/src/demoStyle.js +0 -71
  503. package/docs/components/drawer/use-cases.md +0 -206
  504. package/docs/components/fieldset/api-table.md +0 -24
  505. package/docs/components/fieldset/index.md +0 -13
  506. package/docs/components/fieldset/overview.md +0 -61
  507. package/docs/components/fieldset/use-cases.md +0 -203
  508. package/docs/components/form/api-table.md +0 -12
  509. package/docs/components/form/index.md +0 -13
  510. package/docs/components/form/overview.md +0 -66
  511. package/docs/components/form/use-cases.md +0 -230
  512. package/docs/components/icon/api-table.md +0 -41
  513. package/docs/components/icon/assets/bugs/bug01.svg.js +0 -2
  514. package/docs/components/icon/assets/bugs/bug02.svg.js +0 -2
  515. package/docs/components/icon/assets/bugs/bug05.svg.js +0 -2
  516. package/docs/components/icon/assets/bugs/bug06.svg.js +0 -2
  517. package/docs/components/icon/assets/bugs/bug08.svg.js +0 -2
  518. package/docs/components/icon/assets/bugs/bug12.svg.js +0 -2
  519. package/docs/components/icon/assets/bugs/bug19.svg.js +0 -2
  520. package/docs/components/icon/assets/bugs/bug23.svg.js +0 -2
  521. package/docs/components/icon/assets/bugs/bug24.svg.js +0 -2
  522. package/docs/components/icon/assets/iconset-bugs.js +0 -11
  523. package/docs/components/icon/assets/iconset-misc.js +0 -3
  524. package/docs/components/icon/assets/iconset-space.js +0 -31
  525. package/docs/components/icon/assets/misc/arrowLeft.svg.js +0 -6
  526. package/docs/components/icon/assets/space/aliens-spaceship.svg.js +0 -2
  527. package/docs/components/icon/assets/space/meteor.svg.js +0 -2
  528. package/docs/components/icon/assets/space/moon-flag.svg.js +0 -2
  529. package/docs/components/icon/assets/space/moon.svg.js +0 -2
  530. package/docs/components/icon/assets/space/night.svg.js +0 -2
  531. package/docs/components/icon/assets/space/orbit.svg.js +0 -2
  532. package/docs/components/icon/assets/space/planet.svg.js +0 -2
  533. package/docs/components/icon/assets/space/robot.svg.js +0 -2
  534. package/docs/components/icon/assets/space/rocket.svg.js +0 -2
  535. package/docs/components/icon/assets/space/satellite.svg.js +0 -2
  536. package/docs/components/icon/assets/space/signal.svg.js +0 -2
  537. package/docs/components/icon/assets/space/space-helmet.svg.js +0 -2
  538. package/docs/components/icon/assets/space/sun.svg.js +0 -2
  539. package/docs/components/icon/assets/space/telescope.svg.js +0 -2
  540. package/docs/components/icon/index.md +0 -13
  541. package/docs/components/icon/overview.md +0 -52
  542. package/docs/components/icon/use-cases.md +0 -92
  543. package/docs/components/index.md +0 -17
  544. package/docs/components/input/api-table.md +0 -52
  545. package/docs/components/input/index.md +0 -13
  546. package/docs/components/input/overview.md +0 -48
  547. package/docs/components/input/use-cases.md +0 -90
  548. package/docs/components/input-amount/api-table.md +0 -66
  549. package/docs/components/input-amount/index.md +0 -13
  550. package/docs/components/input-amount/overview.md +0 -61
  551. package/docs/components/input-amount/use-cases.md +0 -147
  552. package/docs/components/input-amount-dropdown/api-table.md +0 -87
  553. package/docs/components/input-amount-dropdown/index.md +0 -13
  554. package/docs/components/input-amount-dropdown/use-cases.md +0 -103
  555. package/docs/components/input-date/api-table.md +0 -58
  556. package/docs/components/input-date/index.md +0 -13
  557. package/docs/components/input-date/overview.md +0 -51
  558. package/docs/components/input-date/use-cases.md +0 -96
  559. package/docs/components/input-datepicker/api-table.md +0 -99
  560. package/docs/components/input-datepicker/index.md +0 -13
  561. package/docs/components/input-datepicker/overview.md +0 -54
  562. package/docs/components/input-datepicker/use-cases.md +0 -117
  563. package/docs/components/input-email/api-table.md +0 -53
  564. package/docs/components/input-email/index.md +0 -13
  565. package/docs/components/input-email/overview.md +0 -44
  566. package/docs/components/input-email/use-cases.md +0 -60
  567. package/docs/components/input-file/api-table.md +0 -157
  568. package/docs/components/input-file/index.md +0 -13
  569. package/docs/components/input-file/overview.md +0 -44
  570. package/docs/components/input-file/use-cases.md +0 -454
  571. package/docs/components/input-iban/api-table.md +0 -54
  572. package/docs/components/input-iban/index.md +0 -13
  573. package/docs/components/input-iban/overview.md +0 -49
  574. package/docs/components/input-iban/use-cases.md +0 -114
  575. package/docs/components/input-range/api-table.md +0 -71
  576. package/docs/components/input-range/index.md +0 -13
  577. package/docs/components/input-range/overview.md +0 -44
  578. package/docs/components/input-range/use-cases.md +0 -126
  579. package/docs/components/input-stepper/api-table.md +0 -74
  580. package/docs/components/input-stepper/index.md +0 -13
  581. package/docs/components/input-stepper/overview.md +0 -48
  582. package/docs/components/input-stepper/use-cases.md +0 -155
  583. package/docs/components/input-tel/api-table.md +0 -77
  584. package/docs/components/input-tel/index.md +0 -13
  585. package/docs/components/input-tel/overview.md +0 -74
  586. package/docs/components/input-tel/src/h-region-code-table.js +0 -109
  587. package/docs/components/input-tel/use-cases.md +0 -319
  588. package/docs/components/input-tel-dropdown/api-table.md +0 -85
  589. package/docs/components/input-tel-dropdown/extensions.md +0 -44
  590. package/docs/components/input-tel-dropdown/index.md +0 -13
  591. package/docs/components/input-tel-dropdown/overview.md +0 -50
  592. package/docs/components/input-tel-dropdown/src/intl-input-tel-dropdown.js +0 -138
  593. package/docs/components/input-tel-dropdown/use-cases.md +0 -171
  594. package/docs/components/listbox/api-table.md +0 -65
  595. package/docs/components/listbox/index.md +0 -13
  596. package/docs/components/listbox/overview.md +0 -54
  597. package/docs/components/listbox/src/listboxData.js +0 -131
  598. package/docs/components/listbox/use-cases.md +0 -154
  599. package/docs/components/menu/api-table.md +0 -44
  600. package/docs/components/menu/applyMenuDemoStyles.js +0 -173
  601. package/docs/components/menu/extensions.md +0 -262
  602. package/docs/components/menu/index.md +0 -13
  603. package/docs/components/menu/migration.md +0 -129
  604. package/docs/components/menu/overview.md +0 -448
  605. package/docs/components/menu/src/DemoNavigationBar.js +0 -441
  606. package/docs/components/menu/src/DemoSpinButton.js +0 -215
  607. package/docs/components/menu/src/DemoToolbar.js +0 -101
  608. package/docs/components/menu/src/DemoTree.js +0 -55
  609. package/docs/components/menu/src/navigation-bar-types.js +0 -41
  610. package/docs/components/menu/use-cases.md +0 -74
  611. package/docs/components/pagination/api-table.md +0 -45
  612. package/docs/components/pagination/index.md +0 -13
  613. package/docs/components/pagination/overview.md +0 -41
  614. package/docs/components/pagination/use-cases.md +0 -113
  615. package/docs/components/progress-indicator/api-table.md +0 -48
  616. package/docs/components/progress-indicator/assets/my-determinate-progress-bar.js +0 -30
  617. package/docs/components/progress-indicator/assets/my-indeterminate-progress-spinner.js +0 -55
  618. package/docs/components/progress-indicator/examples.md +0 -137
  619. package/docs/components/progress-indicator/index.md +0 -13
  620. package/docs/components/progress-indicator/overview.md +0 -48
  621. package/docs/components/radio-group/api-table.md +0 -63
  622. package/docs/components/radio-group/index.md +0 -13
  623. package/docs/components/radio-group/overview.md +0 -58
  624. package/docs/components/radio-group/use-cases.md +0 -146
  625. package/docs/components/select/api-table.md +0 -51
  626. package/docs/components/select/index.md +0 -13
  627. package/docs/components/select/overview.md +0 -56
  628. package/docs/components/select/use-cases.md +0 -128
  629. package/docs/components/select-rich/api-table.md +0 -123
  630. package/docs/components/select-rich/examples.md +0 -43
  631. package/docs/components/select-rich/index.md +0 -13
  632. package/docs/components/select-rich/overview.md +0 -55
  633. package/docs/components/select-rich/src/flagStyles.js +0 -1250
  634. package/docs/components/select-rich/src/intl-select-rich.js +0 -194
  635. package/docs/components/select-rich/src/regionMetaList.js +0 -1717
  636. package/docs/components/select-rich/use-cases.md +0 -387
  637. package/docs/components/steps/api-table.md +0 -92
  638. package/docs/components/steps/index.md +0 -13
  639. package/docs/components/steps/overview.md +0 -77
  640. package/docs/components/steps/use-cases.md +0 -181
  641. package/docs/components/switch/api-table.md +0 -82
  642. package/docs/components/switch/index.md +0 -13
  643. package/docs/components/switch/overview.md +0 -87
  644. package/docs/components/switch/reference.md +0 -51
  645. package/docs/components/switch/use-cases.md +0 -88
  646. package/docs/components/tabs/api-table.md +0 -51
  647. package/docs/components/tabs/examples.md +0 -35
  648. package/docs/components/tabs/index.md +0 -13
  649. package/docs/components/tabs/overview.md +0 -60
  650. package/docs/components/tabs/src/lea-tab-panel.js +0 -26
  651. package/docs/components/tabs/src/lea-tab.js +0 -50
  652. package/docs/components/tabs/src/lea-tabs.js +0 -28
  653. package/docs/components/tabs/use-cases.md +0 -231
  654. package/docs/components/textarea/api-table.md +0 -57
  655. package/docs/components/textarea/index.md +0 -13
  656. package/docs/components/textarea/overview.md +0 -47
  657. package/docs/components/textarea/use-cases.md +0 -107
  658. package/docs/components/tooltip/api-table.md +0 -62
  659. package/docs/components/tooltip/examples.md +0 -51
  660. package/docs/components/tooltip/index.md +0 -13
  661. package/docs/components/tooltip/overview.md +0 -56
  662. package/docs/components/tooltip/use-cases.md +0 -275
  663. package/docs/fundamentals/index.md +0 -19
  664. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +0 -13
  665. package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +0 -246
  666. package/docs/fundamentals/node-tools/index.md +0 -11
  667. package/docs/fundamentals/node-tools/providence-analytics/index.md +0 -13
  668. package/docs/fundamentals/node-tools/providence-analytics/overview.md +0 -108
  669. package/docs/fundamentals/node-tools/publish-docs/index.md +0 -13
  670. package/docs/fundamentals/node-tools/publish-docs/overview.md +0 -149
  671. package/docs/fundamentals/node-tools/remark-extend/index.md +0 -13
  672. package/docs/fundamentals/node-tools/remark-extend/overview.md +0 -287
  673. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +0 -13
  674. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +0 -298
  675. package/docs/fundamentals/rationales/TypeScript.md +0 -123
  676. package/docs/fundamentals/rationales/accessibility.md +0 -40
  677. package/docs/fundamentals/rationales/index.md +0 -11
  678. package/docs/fundamentals/rationales/side-effects.md +0 -215
  679. package/docs/fundamentals/rationales/versioning.md +0 -47
  680. package/docs/fundamentals/systems/core/SlotMixin.md +0 -168
  681. package/docs/fundamentals/systems/core/api-table.md +0 -43
  682. package/docs/fundamentals/systems/core/index.md +0 -15
  683. package/docs/fundamentals/systems/core/overview.md +0 -98
  684. package/docs/fundamentals/systems/form/api-table.md +0 -40
  685. package/docs/fundamentals/systems/form/assets/h-output.js +0 -156
  686. package/docs/fundamentals/systems/form/formatting-and-parsing.md +0 -258
  687. package/docs/fundamentals/systems/form/index.md +0 -15
  688. package/docs/fundamentals/systems/form/interaction-states.md +0 -195
  689. package/docs/fundamentals/systems/form/model-value.md +0 -57
  690. package/docs/fundamentals/systems/form/overview.md +0 -95
  691. package/docs/fundamentals/systems/form/styling.md +0 -92
  692. package/docs/fundamentals/systems/form/use-cases.md +0 -187
  693. package/docs/fundamentals/systems/form/validate.md +0 -985
  694. package/docs/fundamentals/systems/icon/index.md +0 -15
  695. package/docs/fundamentals/systems/icon/overview.md +0 -137
  696. package/docs/fundamentals/systems/index.md +0 -11
  697. package/docs/fundamentals/systems/localize/api-table.md +0 -72
  698. package/docs/fundamentals/systems/localize/assets/all-locales.js +0 -437
  699. package/docs/fundamentals/systems/localize/assets/en-AU.js +0 -6
  700. package/docs/fundamentals/systems/localize/assets/en-GB.js +0 -6
  701. package/docs/fundamentals/systems/localize/assets/en-US.js +0 -6
  702. package/docs/fundamentals/systems/localize/assets/en.js +0 -4
  703. package/docs/fundamentals/systems/localize/assets/nl-BE.js +0 -6
  704. package/docs/fundamentals/systems/localize/assets/nl-NL.js +0 -6
  705. package/docs/fundamentals/systems/localize/assets/nl.js +0 -4
  706. package/docs/fundamentals/systems/localize/dates.md +0 -208
  707. package/docs/fundamentals/systems/localize/index.md +0 -15
  708. package/docs/fundamentals/systems/localize/numbers.md +0 -230
  709. package/docs/fundamentals/systems/localize/overview.md +0 -61
  710. package/docs/fundamentals/systems/localize/rationale.md +0 -75
  711. package/docs/fundamentals/systems/localize/text.md +0 -139
  712. package/docs/fundamentals/systems/localize/use-cases.md +0 -334
  713. package/docs/fundamentals/systems/overlays/_configuration-positioning.md +0 -118
  714. package/docs/fundamentals/systems/overlays/_edge-cases.md +0 -149
  715. package/docs/fundamentals/systems/overlays/api-table.md +0 -174
  716. package/docs/fundamentals/systems/overlays/assets/applyDemoOverlayStyles.js +0 -23
  717. package/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.js +0 -104
  718. package/docs/fundamentals/systems/overlays/assets/demo-overlay-backdrop.js +0 -47
  719. package/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs +0 -537
  720. package/docs/fundamentals/systems/overlays/assets/umbrella-form.js +0 -140
  721. package/docs/fundamentals/systems/overlays/configuration.md +0 -516
  722. package/docs/fundamentals/systems/overlays/index.md +0 -15
  723. package/docs/fundamentals/systems/overlays/overview.md +0 -126
  724. package/docs/fundamentals/systems/overlays/rationale.md +0 -242
  725. package/docs/fundamentals/systems/overlays/use-cases.md +0 -717
  726. package/docs/fundamentals/tools/ajax/index.md +0 -15
  727. package/docs/fundamentals/tools/ajax/overview.md +0 -269
  728. package/docs/fundamentals/tools/ajax/use-cases.md +0 -469
  729. package/docs/fundamentals/tools/helpers/action-logger.md +0 -175
  730. package/docs/fundamentals/tools/helpers/index.md +0 -15
  731. package/docs/fundamentals/tools/helpers/overview.md +0 -43
  732. package/docs/fundamentals/tools/index.md +0 -11
  733. package/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js +0 -95
  734. package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +0 -34
  735. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/index.js +0 -30
  736. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/overlays/instance.js +0 -4
  737. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-a/page-a.js +0 -35
  738. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js +0 -30
  739. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js +0 -4
  740. package/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js +0 -49
  741. package/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js +0 -69
  742. package/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +0 -93
  743. package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +0 -32
  744. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/index.js +0 -30
  745. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/overlays/instance.js +0 -3
  746. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-c/page-c.js +0 -34
  747. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/node_modules/overlays/index.js +0 -30
  748. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/node_modules/overlays/instance.js +0 -3
  749. package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-d/page-d.js +0 -34
  750. package/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +0 -95
  751. package/docs/fundamentals/tools/singleton-manager/example-success/index.md +0 -31
  752. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/index.js +0 -30
  753. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/overlays/instance.js +0 -4
  754. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-e/page-e.js +0 -33
  755. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/node_modules/overlays/index.js +0 -30
  756. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/node_modules/overlays/instance.js +0 -4
  757. package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-f/page-f.js +0 -34
  758. package/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js +0 -23
  759. package/docs/fundamentals/tools/singleton-manager/index.md +0 -15
  760. package/docs/fundamentals/tools/singleton-manager/overview.md +0 -317
  761. package/docs/guides/how-to/create-a-custom-field.md +0 -212
  762. package/docs/guides/how-to/create-a-form.md +0 -101
  763. package/docs/guides/how-to/extend-a-native-input.md +0 -78
  764. package/docs/guides/how-to/get-started.md +0 -116
  765. package/docs/guides/how-to/index.md +0 -25
  766. package/docs/guides/index.md +0 -44
  767. package/docs/guides/principles/definitions-and-terms.md +0 -53
  768. package/docs/guides/principles/index.md +0 -36
  769. package/docs/guides/principles/scoped-elements.md +0 -119
  770. package/docs/guides/principles/styling.md +0 -43
  771. 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/9575386e5fb419f7dbd3b893be4c4ce7925bcb2e/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();