@lion/ui 0.5.3 → 0.5.5

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 (402) hide show
  1. package/components/checkbox-group/src/LionCheckboxIndeterminate.js +17 -2
  2. package/components/checkbox-group/test/lion-checkbox-indeterminate-integrations.test.js +3 -0
  3. package/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.js +435 -396
  4. package/components/form-core/src/FormControlMixin.js +17 -1
  5. package/components/form-core/src/choice-group/ChoiceGroupMixin.js +10 -1
  6. package/components/form-core/src/form-group/FormGroupMixin.js +5 -6
  7. package/components/form-core/src/validate/ValidateMixin.js +10 -0
  8. package/components/form-core/src/validate/Validator.js +6 -3
  9. package/components/form-core/test/FormControlMixin.test.js +39 -20
  10. package/components/form-core/test-suites/FormRegistrationMixins.suite.js +7 -7
  11. package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +0 -47
  12. package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +21 -3
  13. package/components/form-core/types/FormControlMixinTypes.ts +2 -0
  14. package/components/form-core/types/validate/ValidateMixinTypes.ts +2 -0
  15. package/components/form-core/types/validate/validate.ts +2 -2
  16. package/components/input-file/src/LionInputFile.js +7 -1
  17. package/components/input-range/src/LionInputRange.js +36 -4
  18. package/components/input-range/src/localizeNamespaceLoader.js +75 -0
  19. package/components/input-range/test/lion-input-range.test.js +6 -6
  20. package/components/input-range/translations/bg-BG.js +5 -0
  21. package/components/input-range/translations/bg.js +4 -0
  22. package/components/input-range/translations/cs-CZ.js +5 -0
  23. package/components/input-range/translations/cs.js +4 -0
  24. package/components/input-range/translations/de-DE.js +5 -0
  25. package/components/input-range/translations/de.js +4 -0
  26. package/components/input-range/translations/en-AU.js +5 -0
  27. package/components/input-range/translations/en-GB.js +5 -0
  28. package/components/input-range/translations/en-PH.js +5 -0
  29. package/components/input-range/translations/en-US.js +5 -0
  30. package/components/input-range/translations/en.js +4 -0
  31. package/components/input-range/translations/es-ES.js +5 -0
  32. package/components/input-range/translations/es.js +4 -0
  33. package/components/input-range/translations/fr-BE.js +5 -0
  34. package/components/input-range/translations/fr-FR.js +5 -0
  35. package/components/input-range/translations/fr.js +4 -0
  36. package/components/input-range/translations/hu-HU.js +5 -0
  37. package/components/input-range/translations/hu.js +4 -0
  38. package/components/input-range/translations/it-IT.js +5 -0
  39. package/components/input-range/translations/it.js +4 -0
  40. package/components/input-range/translations/nl-BE.js +5 -0
  41. package/components/input-range/translations/nl-NL.js +5 -0
  42. package/components/input-range/translations/nl.js +4 -0
  43. package/components/input-range/translations/pl-PL.js +5 -0
  44. package/components/input-range/translations/pl.js +4 -0
  45. package/components/input-range/translations/ro-RO.js +5 -0
  46. package/components/input-range/translations/ro.js +4 -0
  47. package/components/input-range/translations/ru-RU.js +5 -0
  48. package/components/input-range/translations/ru.js +4 -0
  49. package/components/input-range/translations/sk-SK.js +5 -0
  50. package/components/input-range/translations/sk.js +4 -0
  51. package/components/input-range/translations/uk-UA.js +5 -0
  52. package/components/input-range/translations/uk.js +4 -0
  53. package/components/input-range/translations/zh-CN.js +5 -0
  54. package/components/input-range/translations/zh.js +4 -0
  55. package/components/input-stepper/src/LionInputStepper.js +53 -33
  56. package/components/input-stepper/src/localizeNamespaceLoader.js +75 -0
  57. package/components/input-stepper/test/lion-input-stepper.test.js +61 -8
  58. package/components/input-stepper/translations/bg-BG.js +5 -0
  59. package/components/input-stepper/translations/bg.js +4 -0
  60. package/components/input-stepper/translations/cs-CZ.js +5 -0
  61. package/components/input-stepper/translations/cs.js +4 -0
  62. package/components/input-stepper/translations/de-DE.js +5 -0
  63. package/components/input-stepper/translations/de.js +4 -0
  64. package/components/input-stepper/translations/en-AU.js +5 -0
  65. package/components/input-stepper/translations/en-GB.js +5 -0
  66. package/components/input-stepper/translations/en-US.js +5 -0
  67. package/components/input-stepper/translations/en.js +4 -0
  68. package/components/input-stepper/translations/es-ES.js +5 -0
  69. package/components/input-stepper/translations/es.js +4 -0
  70. package/components/input-stepper/translations/fr-BE.js +5 -0
  71. package/components/input-stepper/translations/fr-FR.js +5 -0
  72. package/components/input-stepper/translations/fr.js +4 -0
  73. package/components/input-stepper/translations/hu-HU.js +5 -0
  74. package/components/input-stepper/translations/hu.js +4 -0
  75. package/components/input-stepper/translations/it-IT.js +5 -0
  76. package/components/input-stepper/translations/it.js +4 -0
  77. package/components/input-stepper/translations/nl-BE.js +5 -0
  78. package/components/input-stepper/translations/nl-NL.js +5 -0
  79. package/components/input-stepper/translations/nl.js +4 -0
  80. package/components/input-stepper/translations/pl-PL.js +5 -0
  81. package/components/input-stepper/translations/pl.js +4 -0
  82. package/components/input-stepper/translations/ro-RO.js +5 -0
  83. package/components/input-stepper/translations/ro.js +4 -0
  84. package/components/input-stepper/translations/ru-RU.js +5 -0
  85. package/components/input-stepper/translations/ru.js +4 -0
  86. package/components/input-stepper/translations/sk-SK.js +5 -0
  87. package/components/input-stepper/translations/sk.js +4 -0
  88. package/components/input-stepper/translations/uk-UA.js +5 -0
  89. package/components/input-stepper/translations/uk.js +4 -0
  90. package/components/input-stepper/translations/zh.js +4 -0
  91. package/components/input-tel-dropdown/src/LionInputTelDropdown.js +11 -3
  92. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +110 -2
  93. package/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.js +22 -0
  94. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.js +1 -38
  95. package/components/localize/src/LocalizeMixin.js +2 -2
  96. package/components/overlays/src/OverlayController.js +1 -1
  97. package/components/select/src/LionSelect.js +5 -0
  98. package/components/validate-messages/src/getLocalizedMessage.js +122 -0
  99. package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -179
  100. package/components/validate-messages/src/per-entrypoint/README.md +16 -0
  101. package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +22 -0
  102. package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +77 -0
  103. package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +39 -0
  104. package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.js +105 -0
  105. package/components/validate-messages/translations/bg.js +4 -0
  106. package/components/validate-messages/translations/cs.js +4 -0
  107. package/components/validate-messages/translations/de.js +4 -0
  108. package/components/validate-messages/translations/en.js +5 -1
  109. package/components/validate-messages/translations/es.js +4 -0
  110. package/components/validate-messages/translations/fr.js +4 -0
  111. package/components/validate-messages/translations/hu.js +4 -0
  112. package/components/validate-messages/translations/it.js +4 -0
  113. package/components/validate-messages/translations/nl.js +4 -0
  114. package/components/validate-messages/translations/pl.js +4 -0
  115. package/components/validate-messages/translations/ro.js +4 -0
  116. package/components/validate-messages/translations/ru.js +4 -0
  117. package/components/validate-messages/translations/sk.js +4 -0
  118. package/components/validate-messages/translations/uk.js +4 -0
  119. package/components/validate-messages/translations/zh.js +4 -0
  120. package/custom-elements.json +6018 -1840
  121. package/dist-types/components/checkbox-group/src/LionCheckboxIndeterminate.d.ts +7 -1
  122. package/dist-types/components/checkbox-group/src/LionCheckboxIndeterminate.d.ts.map +1 -1
  123. package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts.map +1 -1
  124. package/dist-types/components/form-core/src/FormControlMixin.d.ts.map +1 -1
  125. package/dist-types/components/form-core/src/choice-group/ChoiceGroupMixin.d.ts +1 -0
  126. package/dist-types/components/form-core/src/choice-group/ChoiceGroupMixin.d.ts.map +1 -1
  127. package/dist-types/components/form-core/src/form-group/FormGroupMixin.d.ts.map +1 -1
  128. package/dist-types/components/form-core/src/validate/ValidateMixin.d.ts +1 -0
  129. package/dist-types/components/form-core/src/validate/ValidateMixin.d.ts.map +1 -1
  130. package/dist-types/components/form-core/src/validate/Validator.d.ts +5 -2
  131. package/dist-types/components/form-core/src/validate/Validator.d.ts.map +1 -1
  132. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts.map +1 -1
  133. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts.map +1 -1
  134. package/dist-types/components/form-core/types/FormControlMixinTypes.d.ts +1 -0
  135. package/dist-types/components/form-core/types/FormControlMixinTypes.d.ts.map +1 -1
  136. package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts +1 -0
  137. package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts.map +1 -1
  138. package/dist-types/components/form-core/types/validate/validate.d.ts +2 -2
  139. package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -1
  140. package/dist-types/components/input-range/src/LionInputRange.d.ts +7 -1
  141. package/dist-types/components/input-range/src/LionInputRange.d.ts.map +1 -1
  142. package/dist-types/components/input-range/src/localizeNamespaceLoader.d.ts +2 -0
  143. package/dist-types/components/input-range/src/localizeNamespaceLoader.d.ts.map +1 -0
  144. package/dist-types/components/input-range/translations/bg-BG.d.ts +6 -0
  145. package/dist-types/components/input-range/translations/bg-BG.d.ts.map +1 -0
  146. package/dist-types/components/input-range/translations/bg.d.ts +6 -0
  147. package/dist-types/components/input-range/translations/bg.d.ts.map +1 -0
  148. package/dist-types/components/input-range/translations/cs-CZ.d.ts +6 -0
  149. package/dist-types/components/input-range/translations/cs-CZ.d.ts.map +1 -0
  150. package/dist-types/components/input-range/translations/cs.d.ts +6 -0
  151. package/dist-types/components/input-range/translations/cs.d.ts.map +1 -0
  152. package/dist-types/components/input-range/translations/de-DE.d.ts +6 -0
  153. package/dist-types/components/input-range/translations/de-DE.d.ts.map +1 -0
  154. package/dist-types/components/input-range/translations/de.d.ts +6 -0
  155. package/dist-types/components/input-range/translations/de.d.ts.map +1 -0
  156. package/dist-types/components/input-range/translations/en-AU.d.ts +6 -0
  157. package/dist-types/components/input-range/translations/en-AU.d.ts.map +1 -0
  158. package/dist-types/components/input-range/translations/en-GB.d.ts +6 -0
  159. package/dist-types/components/input-range/translations/en-GB.d.ts.map +1 -0
  160. package/dist-types/components/input-range/translations/en-PH.d.ts +6 -0
  161. package/dist-types/components/input-range/translations/en-PH.d.ts.map +1 -0
  162. package/dist-types/components/input-range/translations/en-US.d.ts +6 -0
  163. package/dist-types/components/input-range/translations/en-US.d.ts.map +1 -0
  164. package/dist-types/components/input-range/translations/en.d.ts +6 -0
  165. package/dist-types/components/input-range/translations/en.d.ts.map +1 -0
  166. package/dist-types/components/input-range/translations/es-ES.d.ts +6 -0
  167. package/dist-types/components/input-range/translations/es-ES.d.ts.map +1 -0
  168. package/dist-types/components/input-range/translations/es.d.ts +6 -0
  169. package/dist-types/components/input-range/translations/es.d.ts.map +1 -0
  170. package/dist-types/components/input-range/translations/fr-BE.d.ts +6 -0
  171. package/dist-types/components/input-range/translations/fr-BE.d.ts.map +1 -0
  172. package/dist-types/components/input-range/translations/fr-FR.d.ts +6 -0
  173. package/dist-types/components/input-range/translations/fr-FR.d.ts.map +1 -0
  174. package/dist-types/components/input-range/translations/fr.d.ts +6 -0
  175. package/dist-types/components/input-range/translations/fr.d.ts.map +1 -0
  176. package/dist-types/components/input-range/translations/hu-HU.d.ts +6 -0
  177. package/dist-types/components/input-range/translations/hu-HU.d.ts.map +1 -0
  178. package/dist-types/components/input-range/translations/hu.d.ts +6 -0
  179. package/dist-types/components/input-range/translations/hu.d.ts.map +1 -0
  180. package/dist-types/components/input-range/translations/it-IT.d.ts +6 -0
  181. package/dist-types/components/input-range/translations/it-IT.d.ts.map +1 -0
  182. package/dist-types/components/input-range/translations/it.d.ts +6 -0
  183. package/dist-types/components/input-range/translations/it.d.ts.map +1 -0
  184. package/dist-types/components/input-range/translations/nl-BE.d.ts +6 -0
  185. package/dist-types/components/input-range/translations/nl-BE.d.ts.map +1 -0
  186. package/dist-types/components/input-range/translations/nl-NL.d.ts +6 -0
  187. package/dist-types/components/input-range/translations/nl-NL.d.ts.map +1 -0
  188. package/dist-types/components/input-range/translations/nl.d.ts +6 -0
  189. package/dist-types/components/input-range/translations/nl.d.ts.map +1 -0
  190. package/dist-types/components/input-range/translations/pl-PL.d.ts +6 -0
  191. package/dist-types/components/input-range/translations/pl-PL.d.ts.map +1 -0
  192. package/dist-types/components/input-range/translations/pl.d.ts +6 -0
  193. package/dist-types/components/input-range/translations/pl.d.ts.map +1 -0
  194. package/dist-types/components/input-range/translations/ro-RO.d.ts +6 -0
  195. package/dist-types/components/input-range/translations/ro-RO.d.ts.map +1 -0
  196. package/dist-types/components/input-range/translations/ro.d.ts +6 -0
  197. package/dist-types/components/input-range/translations/ro.d.ts.map +1 -0
  198. package/dist-types/components/input-range/translations/ru-RU.d.ts +6 -0
  199. package/dist-types/components/input-range/translations/ru-RU.d.ts.map +1 -0
  200. package/dist-types/components/input-range/translations/ru.d.ts +6 -0
  201. package/dist-types/components/input-range/translations/ru.d.ts.map +1 -0
  202. package/dist-types/components/input-range/translations/sk-SK.d.ts +6 -0
  203. package/dist-types/components/input-range/translations/sk-SK.d.ts.map +1 -0
  204. package/dist-types/components/input-range/translations/sk.d.ts +6 -0
  205. package/dist-types/components/input-range/translations/sk.d.ts.map +1 -0
  206. package/dist-types/components/input-range/translations/uk-UA.d.ts +6 -0
  207. package/dist-types/components/input-range/translations/uk-UA.d.ts.map +1 -0
  208. package/dist-types/components/input-range/translations/uk.d.ts +6 -0
  209. package/dist-types/components/input-range/translations/uk.d.ts.map +1 -0
  210. package/dist-types/components/input-range/translations/zh-CN.d.ts +6 -0
  211. package/dist-types/components/input-range/translations/zh-CN.d.ts.map +1 -0
  212. package/dist-types/components/input-range/translations/zh.d.ts +6 -0
  213. package/dist-types/components/input-range/translations/zh.d.ts.map +1 -0
  214. package/dist-types/components/input-stepper/src/LionInputStepper.d.ts +22 -3
  215. package/dist-types/components/input-stepper/src/LionInputStepper.d.ts.map +1 -1
  216. package/dist-types/components/input-stepper/src/localizeNamespaceLoader.d.ts +2 -0
  217. package/dist-types/components/input-stepper/src/localizeNamespaceLoader.d.ts.map +1 -0
  218. package/dist-types/components/input-stepper/translations/bg-BG.d.ts +6 -0
  219. package/dist-types/components/input-stepper/translations/bg-BG.d.ts.map +1 -0
  220. package/dist-types/components/input-stepper/translations/bg.d.ts +6 -0
  221. package/dist-types/components/input-stepper/translations/bg.d.ts.map +1 -0
  222. package/dist-types/components/input-stepper/translations/cs-CZ.d.ts +6 -0
  223. package/dist-types/components/input-stepper/translations/cs-CZ.d.ts.map +1 -0
  224. package/dist-types/components/input-stepper/translations/cs.d.ts +6 -0
  225. package/dist-types/components/input-stepper/translations/cs.d.ts.map +1 -0
  226. package/dist-types/components/input-stepper/translations/de-DE.d.ts +6 -0
  227. package/dist-types/components/input-stepper/translations/de-DE.d.ts.map +1 -0
  228. package/dist-types/components/input-stepper/translations/de.d.ts +6 -0
  229. package/dist-types/components/input-stepper/translations/de.d.ts.map +1 -0
  230. package/dist-types/components/input-stepper/translations/en-AU.d.ts +6 -0
  231. package/dist-types/components/input-stepper/translations/en-AU.d.ts.map +1 -0
  232. package/dist-types/components/input-stepper/translations/en-GB.d.ts +6 -0
  233. package/dist-types/components/input-stepper/translations/en-GB.d.ts.map +1 -0
  234. package/dist-types/components/input-stepper/translations/en-US.d.ts +6 -0
  235. package/dist-types/components/input-stepper/translations/en-US.d.ts.map +1 -0
  236. package/dist-types/components/input-stepper/translations/en.d.ts +6 -0
  237. package/dist-types/components/input-stepper/translations/en.d.ts.map +1 -0
  238. package/dist-types/components/input-stepper/translations/es-ES.d.ts +6 -0
  239. package/dist-types/components/input-stepper/translations/es-ES.d.ts.map +1 -0
  240. package/dist-types/components/input-stepper/translations/es.d.ts +6 -0
  241. package/dist-types/components/input-stepper/translations/es.d.ts.map +1 -0
  242. package/dist-types/components/input-stepper/translations/fr-BE.d.ts +6 -0
  243. package/dist-types/components/input-stepper/translations/fr-BE.d.ts.map +1 -0
  244. package/dist-types/components/input-stepper/translations/fr-FR.d.ts +6 -0
  245. package/dist-types/components/input-stepper/translations/fr-FR.d.ts.map +1 -0
  246. package/dist-types/components/input-stepper/translations/fr.d.ts +6 -0
  247. package/dist-types/components/input-stepper/translations/fr.d.ts.map +1 -0
  248. package/dist-types/components/input-stepper/translations/hu-HU.d.ts +6 -0
  249. package/dist-types/components/input-stepper/translations/hu-HU.d.ts.map +1 -0
  250. package/dist-types/components/input-stepper/translations/hu.d.ts +6 -0
  251. package/dist-types/components/input-stepper/translations/hu.d.ts.map +1 -0
  252. package/dist-types/components/input-stepper/translations/it-IT.d.ts +6 -0
  253. package/dist-types/components/input-stepper/translations/it-IT.d.ts.map +1 -0
  254. package/dist-types/components/input-stepper/translations/it.d.ts +6 -0
  255. package/dist-types/components/input-stepper/translations/it.d.ts.map +1 -0
  256. package/dist-types/components/input-stepper/translations/nl-BE.d.ts +6 -0
  257. package/dist-types/components/input-stepper/translations/nl-BE.d.ts.map +1 -0
  258. package/dist-types/components/input-stepper/translations/nl-NL.d.ts +6 -0
  259. package/dist-types/components/input-stepper/translations/nl-NL.d.ts.map +1 -0
  260. package/dist-types/components/input-stepper/translations/nl.d.ts +6 -0
  261. package/dist-types/components/input-stepper/translations/nl.d.ts.map +1 -0
  262. package/dist-types/components/input-stepper/translations/pl-PL.d.ts +6 -0
  263. package/dist-types/components/input-stepper/translations/pl-PL.d.ts.map +1 -0
  264. package/dist-types/components/input-stepper/translations/pl.d.ts +6 -0
  265. package/dist-types/components/input-stepper/translations/pl.d.ts.map +1 -0
  266. package/dist-types/components/input-stepper/translations/ro-RO.d.ts +6 -0
  267. package/dist-types/components/input-stepper/translations/ro-RO.d.ts.map +1 -0
  268. package/dist-types/components/input-stepper/translations/ro.d.ts +6 -0
  269. package/dist-types/components/input-stepper/translations/ro.d.ts.map +1 -0
  270. package/dist-types/components/input-stepper/translations/ru-RU.d.ts +6 -0
  271. package/dist-types/components/input-stepper/translations/ru-RU.d.ts.map +1 -0
  272. package/dist-types/components/input-stepper/translations/ru.d.ts +6 -0
  273. package/dist-types/components/input-stepper/translations/ru.d.ts.map +1 -0
  274. package/dist-types/components/input-stepper/translations/sk-SK.d.ts +6 -0
  275. package/dist-types/components/input-stepper/translations/sk-SK.d.ts.map +1 -0
  276. package/dist-types/components/input-stepper/translations/sk.d.ts +6 -0
  277. package/dist-types/components/input-stepper/translations/sk.d.ts.map +1 -0
  278. package/dist-types/components/input-stepper/translations/uk-UA.d.ts +6 -0
  279. package/dist-types/components/input-stepper/translations/uk-UA.d.ts.map +1 -0
  280. package/dist-types/components/input-stepper/translations/uk.d.ts +6 -0
  281. package/dist-types/components/input-stepper/translations/uk.d.ts.map +1 -0
  282. package/dist-types/components/input-stepper/translations/zh.d.ts +6 -0
  283. package/dist-types/components/input-stepper/translations/zh.d.ts.map +1 -0
  284. package/dist-types/components/input-tel-dropdown/src/LionInputTelDropdown.d.ts.map +1 -1
  285. package/dist-types/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.d.ts +12 -0
  286. package/dist-types/components/input-tel-dropdown/test-helpers/mimicUserChangingDropdown.d.ts.map +1 -0
  287. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown.suite.d.ts.map +1 -1
  288. package/dist-types/components/select/src/LionSelect.d.ts.map +1 -1
  289. package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts +13 -0
  290. package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts.map +1 -0
  291. package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +1 -1
  292. package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts +9 -0
  293. package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts.map +1 -0
  294. package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts +9 -0
  295. package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts.map +1 -0
  296. package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts +9 -0
  297. package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts.map +1 -0
  298. package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.d.ts +4 -0
  299. package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.test.d.ts.map +1 -0
  300. package/dist-types/components/validate-messages/translations/bg-BG.d.ts +4 -0
  301. package/dist-types/components/validate-messages/translations/bg.d.ts +6 -0
  302. package/dist-types/components/validate-messages/translations/cs-CZ.d.ts +4 -0
  303. package/dist-types/components/validate-messages/translations/cs.d.ts +6 -0
  304. package/dist-types/components/validate-messages/translations/de-DE.d.ts +4 -0
  305. package/dist-types/components/validate-messages/translations/de.d.ts +6 -0
  306. package/dist-types/components/validate-messages/translations/en-AU.d.ts +4 -0
  307. package/dist-types/components/validate-messages/translations/en-GB.d.ts +4 -0
  308. package/dist-types/components/validate-messages/translations/en-PH.d.ts +4 -0
  309. package/dist-types/components/validate-messages/translations/en-US.d.ts +4 -0
  310. package/dist-types/components/validate-messages/translations/en.d.ts +6 -0
  311. package/dist-types/components/validate-messages/translations/es-ES.d.ts +4 -0
  312. package/dist-types/components/validate-messages/translations/es.d.ts +6 -0
  313. package/dist-types/components/validate-messages/translations/fr-BE.d.ts +4 -0
  314. package/dist-types/components/validate-messages/translations/fr-FR.d.ts +4 -0
  315. package/dist-types/components/validate-messages/translations/fr.d.ts +6 -0
  316. package/dist-types/components/validate-messages/translations/hu-HU.d.ts +4 -0
  317. package/dist-types/components/validate-messages/translations/hu.d.ts +6 -0
  318. package/dist-types/components/validate-messages/translations/it-IT.d.ts +4 -0
  319. package/dist-types/components/validate-messages/translations/it.d.ts +6 -0
  320. package/dist-types/components/validate-messages/translations/nl-BE.d.ts +4 -0
  321. package/dist-types/components/validate-messages/translations/nl-NL.d.ts +4 -0
  322. package/dist-types/components/validate-messages/translations/nl.d.ts +6 -0
  323. package/dist-types/components/validate-messages/translations/pl-PL.d.ts +4 -0
  324. package/dist-types/components/validate-messages/translations/pl.d.ts +6 -0
  325. package/dist-types/components/validate-messages/translations/ro-RO.d.ts +4 -0
  326. package/dist-types/components/validate-messages/translations/ro.d.ts +6 -0
  327. package/dist-types/components/validate-messages/translations/ru-RU.d.ts +4 -0
  328. package/dist-types/components/validate-messages/translations/ru.d.ts +6 -0
  329. package/dist-types/components/validate-messages/translations/sk-SK.d.ts +4 -0
  330. package/dist-types/components/validate-messages/translations/sk.d.ts +6 -0
  331. package/dist-types/components/validate-messages/translations/uk-UA.d.ts +4 -0
  332. package/dist-types/components/validate-messages/translations/uk.d.ts +6 -0
  333. package/dist-types/components/validate-messages/translations/zh.d.ts +6 -0
  334. package/dist-types/exports/input-tel-dropdown-test-helpers.d.ts +2 -0
  335. package/dist-types/exports/input-tel-dropdown-test-helpers.d.ts.map +1 -0
  336. package/dist-types/exports/validate-messages-no-side-effects.d.ts +3 -0
  337. package/dist-types/tsconfig.tsbuildinfo +1 -1
  338. package/docs/components/checkbox-group/overview.md +2 -2
  339. package/docs/components/collapsible/overview.md +1 -1
  340. package/docs/components/combobox/overview.md +1 -1
  341. package/docs/components/combobox/use-cases.md +1 -1
  342. package/docs/components/dialog/overview.md +1 -1
  343. package/docs/components/fieldset/overview.md +5 -5
  344. package/docs/components/form/overview.md +3 -3
  345. package/docs/components/icon/use-cases.md +1 -1
  346. package/docs/components/input/overview.md +1 -1
  347. package/docs/components/input-amount/overview.md +3 -3
  348. package/docs/components/input-date/overview.md +3 -3
  349. package/docs/components/input-datepicker/overview.md +5 -5
  350. package/docs/components/input-email/overview.md +2 -2
  351. package/docs/components/input-file/overview.md +1 -1
  352. package/docs/components/input-file/use-cases.md +8 -8
  353. package/docs/components/input-iban/overview.md +2 -2
  354. package/docs/components/input-range/overview.md +4 -6
  355. package/docs/components/input-range/use-cases.md +40 -48
  356. package/docs/components/input-stepper/overview.md +8 -8
  357. package/docs/components/input-stepper/use-cases.md +30 -21
  358. package/docs/components/input-tel/overview.md +1 -1
  359. package/docs/components/input-tel/use-cases.md +6 -6
  360. package/docs/components/input-tel-dropdown/overview.md +1 -1
  361. package/docs/components/listbox/use-cases.md +90 -95
  362. package/docs/components/radio-group/overview.md +3 -3
  363. package/docs/components/select/use-cases.md +34 -33
  364. package/docs/components/select-rich/use-cases.md +1 -1
  365. package/docs/components/tabs/examples.md +1 -1
  366. package/docs/fundamentals/index.md +4 -4
  367. package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
  368. package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
  369. package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
  370. package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
  371. package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
  372. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  373. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  374. package/docs/fundamentals/rationales/accessibility.md +1 -1
  375. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  376. package/docs/fundamentals/systems/core/overview.md +1 -1
  377. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  378. package/docs/fundamentals/systems/form/model-value.md +1 -1
  379. package/docs/fundamentals/systems/form/overview.md +28 -28
  380. package/docs/fundamentals/systems/form/styling.md +34 -39
  381. package/docs/fundamentals/systems/form/validate.md +7 -4
  382. package/docs/fundamentals/systems/localize/overview.md +4 -4
  383. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  384. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  385. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  386. package/docs/fundamentals/tools/ajax/overview.md +2 -1
  387. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  388. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  389. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  390. package/docs/guides/how-to/create-a-form.md +4 -4
  391. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  392. package/docs/guides/index.md +8 -8
  393. package/docs/guides/principles/index.md +5 -5
  394. package/docs/guides/principles/styling.md +1 -1
  395. package/exports/input-tel-dropdown-test-helpers.js +1 -0
  396. package/exports/validate-messages-no-side-effects.js +3 -0
  397. package/input-tel-dropdown-test-helpers.js +1 -0
  398. package/package.json +3 -1
  399. package/validate-messages-no-side-effects.js +3 -0
  400. package/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.js +0 -51
  401. package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.d.ts +0 -2
  402. package/dist-types/components/validate-messages/test/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +0 -1
@@ -79,11 +79,10 @@ export function runCheckboxIndeterminateSuite(customConfig) {
79
79
  // Assert
80
80
  expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
81
81
  });
82
- });
83
82
 
84
- it('should be indeterminate if one child is checked', async () => {
85
- // Arrange
86
- const el = /** @type {LionCheckboxGroup} */ await fixture(html`
83
+ it('should be indeterminate if one child is checked', async () => {
84
+ // Arrange
85
+ const el = /** @type {LionCheckboxGroup} */ await fixture(html`
87
86
  <${groupTag} name="scientists[]">
88
87
  <${tag} label="Favorite scientists">
89
88
  <${childTag} label="Archimedes"></${childTag}>
@@ -93,17 +92,17 @@ export function runCheckboxIndeterminateSuite(customConfig) {
93
92
  </${groupTag}>
94
93
  `);
95
94
 
96
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
97
- el.querySelector(`${cfg.tagString}`)
98
- );
99
- // Assert
100
- expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
101
- });
95
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
96
+ el.querySelector(`${cfg.tagString}`)
97
+ );
98
+ // Assert
99
+ expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
100
+ });
102
101
 
103
- it('should be checked if all children are checked', async () => {
104
- // Arrange
105
- const el = /** @type {LionCheckboxGroup} */ (
106
- await fixture(html`
102
+ it('should be checked if all children are checked', async () => {
103
+ // Arrange
104
+ const el = /** @type {LionCheckboxGroup} */ (
105
+ await fixture(html`
107
106
  <${groupTag} name="scientists[]">
108
107
  <${tag} label="Favorite scientists">
109
108
  <${childTag} label="Archimedes" checked></${childTag}>
@@ -112,20 +111,20 @@ export function runCheckboxIndeterminateSuite(customConfig) {
112
111
  </${tag}>
113
112
  </${groupTag}>
114
113
  `)
115
- );
116
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
117
- el.querySelector(`${cfg.tagString}`)
118
- );
119
-
120
- // Assert
121
- expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
122
- expect(elIndeterminate?.checked).to.be.true;
123
- });
114
+ );
115
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
116
+ el.querySelector(`${cfg.tagString}`)
117
+ );
124
118
 
125
- it('should become indeterminate if one child is checked', async () => {
126
- // Arrange
127
- const el = /** @type {LionCheckboxGroup} */ (
128
- await fixture(html`
119
+ // Assert
120
+ expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
121
+ expect(elIndeterminate?.checked).to.be.true;
122
+ });
123
+
124
+ it('should become indeterminate if one child is checked', async () => {
125
+ // Arrange
126
+ const el = /** @type {LionCheckboxGroup} */ (
127
+ await fixture(html`
129
128
  <${groupTag} name="scientists[]">
130
129
  <${tag} label="Favorite scientists">
131
130
  <${childTag} label="Archimedes"></${childTag}>
@@ -134,25 +133,25 @@ export function runCheckboxIndeterminateSuite(customConfig) {
134
133
  </${tag}>
135
134
  </${groupTag}>
136
135
  `)
137
- );
138
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
139
- el.querySelector(`${cfg.tagString}`)
140
- );
136
+ );
137
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
138
+ el.querySelector(`${cfg.tagString}`)
139
+ );
141
140
 
142
- const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
141
+ const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
143
142
 
144
- // Act
145
- _subCheckboxes[0].checked = true;
146
- await el.updateComplete;
143
+ // Act
144
+ _subCheckboxes[0].checked = true;
145
+ await el.updateComplete;
147
146
 
148
- // Assert
149
- expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
150
- });
147
+ // Assert
148
+ expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
149
+ });
151
150
 
152
- it('should become checked if all children are checked', async () => {
153
- // Arrange
154
- const el = /** @type {LionCheckboxGroup} */ (
155
- await fixture(html`
151
+ it('should become checked if all children are checked', async () => {
152
+ // Arrange
153
+ const el = /** @type {LionCheckboxGroup} */ (
154
+ await fixture(html`
156
155
  <${groupTag} name="scientists[]">
157
156
  <${tag} label="Favorite scientists">
158
157
  <${childTag} label="Archimedes"></${childTag}>
@@ -161,27 +160,27 @@ export function runCheckboxIndeterminateSuite(customConfig) {
161
160
  </${tag}>
162
161
  </${groupTag}>
163
162
  `)
164
- );
165
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
166
- el.querySelector(`${cfg.tagString}`)
167
- );
168
- const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
169
-
170
- // Act
171
- _subCheckboxes[0].checked = true;
172
- _subCheckboxes[1].checked = true;
173
- _subCheckboxes[2].checked = true;
174
- await el.updateComplete;
175
-
176
- // Assert
177
- expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
178
- expect(elIndeterminate?.checked).to.be.true;
179
- });
163
+ );
164
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
165
+ el.querySelector(`${cfg.tagString}`)
166
+ );
167
+ const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
168
+
169
+ // Act
170
+ _subCheckboxes[0].checked = true;
171
+ _subCheckboxes[1].checked = true;
172
+ _subCheckboxes[2].checked = true;
173
+ await el.updateComplete;
180
174
 
181
- it('should become indeterminate if all children except disabled ones are checked', async () => {
182
- // Arrange
183
- const el = /** @type {LionCheckboxGroup} */ (
184
- await fixture(html`
175
+ // Assert
176
+ expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
177
+ expect(elIndeterminate?.checked).to.be.true;
178
+ });
179
+
180
+ it('should become indeterminate if all children except disabled ones are checked', async () => {
181
+ // Arrange
182
+ const el = /** @type {LionCheckboxGroup} */ (
183
+ await fixture(html`
185
184
  <${groupTag} name="scientists[]">
186
185
  <${tag} label="Favorite scientists">
187
186
  <${childTag} label="Archimedes"></${childTag}>
@@ -190,26 +189,26 @@ export function runCheckboxIndeterminateSuite(customConfig) {
190
189
  </${tag}>
191
190
  </${groupTag}>
192
191
  `)
193
- );
194
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
195
- el.querySelector(`${cfg.tagString}`)
196
- );
197
- const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
198
-
199
- // Act
200
- _subCheckboxes[0].checked = true;
201
- _subCheckboxes[2].checked = true;
202
- await el.updateComplete;
203
-
204
- // Assert
205
- expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
206
- expect(elIndeterminate?.checked).to.be.false;
207
- });
192
+ );
193
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
194
+ el.querySelector(`${cfg.tagString}`)
195
+ );
196
+ const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
208
197
 
209
- it('should sync all children when parent is checked (from indeterminate to checked)', async () => {
210
- // Arrange
211
- const el = /** @type {LionCheckboxGroup} */ (
212
- await fixture(html`
198
+ // Act
199
+ _subCheckboxes[0].checked = true;
200
+ _subCheckboxes[2].checked = true;
201
+ await el.updateComplete;
202
+
203
+ // Assert
204
+ expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.true;
205
+ expect(elIndeterminate?.checked).to.be.false;
206
+ });
207
+
208
+ it('should sync all children when parent is checked (from indeterminate to checked)', async () => {
209
+ // Arrange
210
+ const el = /** @type {LionCheckboxGroup} */ (
211
+ await fixture(html`
213
212
  <${groupTag} name="scientists[]">
214
213
  <${tag} label="Favorite scientists">
215
214
  <${childTag} label="Archimedes"></${childTag}>
@@ -218,27 +217,27 @@ export function runCheckboxIndeterminateSuite(customConfig) {
218
217
  </${tag}>
219
218
  </${groupTag}>
220
219
  `)
221
- );
222
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
223
- el.querySelector(`${cfg.tagString}`)
224
- );
225
- const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
226
-
227
- // Act
228
- _inputNode.click();
229
- await elIndeterminate.updateComplete;
230
-
231
- // Assert
232
- expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
233
- expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
234
- expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
235
- expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
236
- });
220
+ );
221
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
222
+ el.querySelector(`${cfg.tagString}`)
223
+ );
224
+ const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
225
+
226
+ // Act
227
+ _inputNode.click();
228
+ await elIndeterminate.updateComplete;
237
229
 
238
- it('should not sync any disabled children when parent is checked (from indeterminate to checked)', async () => {
239
- // Arrange
240
- const el = /** @type {LionCheckboxGroup} */ (
241
- await fixture(html`
230
+ // Assert
231
+ expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
232
+ expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
233
+ expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
234
+ expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
235
+ });
236
+
237
+ it('should not sync any disabled children when parent is checked (from indeterminate to checked)', async () => {
238
+ // Arrange
239
+ const el = /** @type {LionCheckboxGroup} */ (
240
+ await fixture(html`
242
241
  <${groupTag} name="scientists[]">
243
242
  <${tag} label="Favorite scientists">
244
243
  <${childTag} label="Archimedes"></${childTag}>
@@ -247,27 +246,27 @@ export function runCheckboxIndeterminateSuite(customConfig) {
247
246
  </${tag}>
248
247
  </${groupTag}>
249
248
  `)
250
- );
251
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
252
- el.querySelector(`${cfg.tagString}`)
253
- );
254
- const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
255
-
256
- // Act
257
- _inputNode.click();
258
- await elIndeterminate.updateComplete;
259
-
260
- // Assert
261
- expect(elIndeterminate.hasAttribute('indeterminate')).to.be.true;
262
- expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
263
- expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
264
- expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
265
- });
249
+ );
250
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
251
+ el.querySelector(`${cfg.tagString}`)
252
+ );
253
+ const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
254
+
255
+ // Act
256
+ _inputNode.click();
257
+ await elIndeterminate.updateComplete;
258
+
259
+ // Assert
260
+ expect(elIndeterminate.hasAttribute('indeterminate')).to.be.true;
261
+ expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
262
+ expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
263
+ expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
264
+ });
266
265
 
267
- it('should remain unchecked when parent is clicked and all children are disabled', async () => {
268
- // Arrange
269
- const el = /** @type {LionCheckboxGroup} */ (
270
- await fixture(html`
266
+ it('should remain unchecked when parent is clicked and all children are disabled', async () => {
267
+ // Arrange
268
+ const el = /** @type {LionCheckboxGroup} */ (
269
+ await fixture(html`
271
270
  <${groupTag} name="scientists[]">
272
271
  <${tag} label="Favorite scientists">
273
272
  <${childTag} label="Archimedes" disabled></${childTag}>
@@ -276,28 +275,28 @@ export function runCheckboxIndeterminateSuite(customConfig) {
276
275
  </${tag}>
277
276
  </${groupTag}>
278
277
  `)
279
- );
280
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
281
- el.querySelector(`${cfg.tagString}`)
282
- );
283
- const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
284
-
285
- // Act
286
- _inputNode.click();
287
- await elIndeterminate.updateComplete;
288
-
289
- // Assert
290
- expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
291
- expect(elIndeterminate.hasAttribute('checked')).to.be.false;
292
- expect(_subCheckboxes[0].hasAttribute('checked')).to.be.false;
293
- expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
294
- expect(_subCheckboxes[2].hasAttribute('checked')).to.be.false;
295
- });
278
+ );
279
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
280
+ el.querySelector(`${cfg.tagString}`)
281
+ );
282
+ const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
283
+
284
+ // Act
285
+ _inputNode.click();
286
+ await elIndeterminate.updateComplete;
287
+
288
+ // Assert
289
+ expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
290
+ expect(elIndeterminate.hasAttribute('checked')).to.be.false;
291
+ expect(_subCheckboxes[0].hasAttribute('checked')).to.be.false;
292
+ expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
293
+ expect(_subCheckboxes[2].hasAttribute('checked')).to.be.false;
294
+ });
296
295
 
297
- it('should remain checked when parent is clicked and all children are disabled and checked', async () => {
298
- // Arrange
299
- const el = /** @type {LionCheckboxGroup} */ (
300
- await fixture(html`
296
+ it('should remain checked when parent is clicked and all children are disabled and checked', async () => {
297
+ // Arrange
298
+ const el = /** @type {LionCheckboxGroup} */ (
299
+ await fixture(html`
301
300
  <${groupTag} name="scientists[]">
302
301
  <${tag} label="Favorite scientists">
303
302
  <${childTag} label="Archimedes" disabled checked></${childTag}>
@@ -306,28 +305,28 @@ export function runCheckboxIndeterminateSuite(customConfig) {
306
305
  </${tag}>
307
306
  </${groupTag}>
308
307
  `)
309
- );
310
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
311
- el.querySelector(`${cfg.tagString}`)
312
- );
313
- const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
314
-
315
- // Act
316
- _inputNode.click();
317
- await elIndeterminate.updateComplete;
318
-
319
- // Assert
320
- expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
321
- expect(elIndeterminate.hasAttribute('checked')).to.be.true;
322
- expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
323
- expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
324
- expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
325
- });
308
+ );
309
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
310
+ el.querySelector(`${cfg.tagString}`)
311
+ );
312
+ const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
313
+
314
+ // Act
315
+ _inputNode.click();
316
+ await elIndeterminate.updateComplete;
317
+
318
+ // Assert
319
+ expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
320
+ expect(elIndeterminate.hasAttribute('checked')).to.be.true;
321
+ expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
322
+ expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
323
+ expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
324
+ });
326
325
 
327
- it('should sync all children when parent is checked (from unchecked to checked)', async () => {
328
- // Arrange
329
- const el = /** @type {LionCheckboxGroup} */ (
330
- await fixture(html`
326
+ it('should sync all children when parent is checked (from unchecked to checked)', async () => {
327
+ // Arrange
328
+ const el = /** @type {LionCheckboxGroup} */ (
329
+ await fixture(html`
331
330
  <${groupTag} name="scientists[]">
332
331
  <${tag} label="Favorite scientists">
333
332
  <${childTag} label="Archimedes"></${childTag}>
@@ -336,27 +335,27 @@ export function runCheckboxIndeterminateSuite(customConfig) {
336
335
  </${tag}>
337
336
  </${groupTag}>
338
337
  `)
339
- );
340
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
341
- el.querySelector(`${cfg.tagString}`)
342
- );
343
- const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
344
-
345
- // Act
346
- _inputNode.click();
347
- await elIndeterminate.updateComplete;
348
-
349
- // Assert
350
- expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
351
- expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
352
- expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
353
- expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
354
- });
338
+ );
339
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
340
+ el.querySelector(`${cfg.tagString}`)
341
+ );
342
+ const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
355
343
 
356
- it('should sync all children when parent is checked (from checked to unchecked)', async () => {
357
- // Arrange
358
- const el = /** @type {LionCheckboxGroup} */ (
359
- await fixture(html`
344
+ // Act
345
+ _inputNode.click();
346
+ await elIndeterminate.updateComplete;
347
+
348
+ // Assert
349
+ expect(elIndeterminate.hasAttribute('indeterminate')).to.be.false;
350
+ expect(_subCheckboxes[0].hasAttribute('checked')).to.be.true;
351
+ expect(_subCheckboxes[1].hasAttribute('checked')).to.be.true;
352
+ expect(_subCheckboxes[2].hasAttribute('checked')).to.be.true;
353
+ });
354
+
355
+ it('should sync all children when parent is checked (from checked to unchecked)', async () => {
356
+ // Arrange
357
+ const el = /** @type {LionCheckboxGroup} */ (
358
+ await fixture(html`
360
359
  <${groupTag} name="scientists[]">
361
360
  <${tag} label="Favorite scientists">
362
361
  <${childTag} label="Archimedes" checked></${childTag}>
@@ -365,27 +364,27 @@ export function runCheckboxIndeterminateSuite(customConfig) {
365
364
  </${tag}>
366
365
  </${groupTag}>
367
366
  `)
368
- );
369
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
370
- el.querySelector(`${cfg.tagString}`)
371
- );
372
- const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
373
-
374
- // Act
375
- _inputNode.click();
376
- await elIndeterminate.updateComplete;
377
-
378
- // Assert
379
- expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
380
- expect(_subCheckboxes[0].hasAttribute('checked')).to.be.false;
381
- expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
382
- expect(_subCheckboxes[2].hasAttribute('checked')).to.be.false;
383
- });
367
+ );
368
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
369
+ el.querySelector(`${cfg.tagString}`)
370
+ );
371
+ const { _subCheckboxes, _inputNode } = getCheckboxIndeterminateMembers(elIndeterminate);
384
372
 
385
- it('should work as expected with siblings checkbox-indeterminate', async () => {
386
- // Arrange
387
- const el = /** @type {LionCheckboxGroup} */ (
388
- await fixture(html`
373
+ // Act
374
+ _inputNode.click();
375
+ await elIndeterminate.updateComplete;
376
+
377
+ // Assert
378
+ expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
379
+ expect(_subCheckboxes[0].hasAttribute('checked')).to.be.false;
380
+ expect(_subCheckboxes[1].hasAttribute('checked')).to.be.false;
381
+ expect(_subCheckboxes[2].hasAttribute('checked')).to.be.false;
382
+ });
383
+
384
+ it('should work as expected with siblings checkbox-indeterminate', async () => {
385
+ // Arrange
386
+ const el = /** @type {LionCheckboxGroup} */ (
387
+ await fixture(html`
389
388
  <${groupTag} name="scientists[]" label="Favorite scientists">
390
389
  <${tag}
391
390
  label="Old Greek scientists"
@@ -420,38 +419,38 @@ export function runCheckboxIndeterminateSuite(customConfig) {
420
419
  </${tag}>
421
420
  </${groupTag}>
422
421
  `)
423
- );
424
- const elFirstIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
425
- el.querySelector('#first-checkbox-indeterminate')
426
- );
422
+ );
423
+ const elFirstIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
424
+ el.querySelector('#first-checkbox-indeterminate')
425
+ );
427
426
 
428
- const elSecondIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
429
- el.querySelector('#second-checkbox-indeterminate')
430
- );
427
+ const elSecondIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
428
+ el.querySelector('#second-checkbox-indeterminate')
429
+ );
431
430
 
432
- const elFirstSubCheckboxes = getCheckboxIndeterminateMembers(elFirstIndeterminate);
433
- const elSecondSubCheckboxes = getCheckboxIndeterminateMembers(elSecondIndeterminate);
431
+ const elFirstSubCheckboxes = getCheckboxIndeterminateMembers(elFirstIndeterminate);
432
+ const elSecondSubCheckboxes = getCheckboxIndeterminateMembers(elSecondIndeterminate);
434
433
 
435
- // Act - check the first sibling
436
- elFirstSubCheckboxes._inputNode.click();
437
- await elFirstIndeterminate.updateComplete;
438
- await elSecondIndeterminate.updateComplete;
434
+ // Act - check the first sibling
435
+ elFirstSubCheckboxes._inputNode.click();
436
+ await elFirstIndeterminate.updateComplete;
437
+ await elSecondIndeterminate.updateComplete;
439
438
 
440
- // Assert - the second sibling should not be affected
439
+ // Assert - the second sibling should not be affected
441
440
 
442
- expect(elFirstIndeterminate.hasAttribute('indeterminate')).to.be.false;
443
- expect(elFirstSubCheckboxes._subCheckboxes[0].hasAttribute('checked')).to.be.true;
444
- expect(elFirstSubCheckboxes._subCheckboxes[1].hasAttribute('checked')).to.be.true;
445
- expect(elFirstSubCheckboxes._subCheckboxes[2].hasAttribute('checked')).to.be.true;
441
+ expect(elFirstIndeterminate.hasAttribute('indeterminate')).to.be.false;
442
+ expect(elFirstSubCheckboxes._subCheckboxes[0].hasAttribute('checked')).to.be.true;
443
+ expect(elFirstSubCheckboxes._subCheckboxes[1].hasAttribute('checked')).to.be.true;
444
+ expect(elFirstSubCheckboxes._subCheckboxes[2].hasAttribute('checked')).to.be.true;
446
445
 
447
- expect(elSecondSubCheckboxes._subCheckboxes[0].hasAttribute('checked')).to.be.false;
448
- expect(elSecondSubCheckboxes._subCheckboxes[1].hasAttribute('checked')).to.be.false;
449
- });
446
+ expect(elSecondSubCheckboxes._subCheckboxes[0].hasAttribute('checked')).to.be.false;
447
+ expect(elSecondSubCheckboxes._subCheckboxes[1].hasAttribute('checked')).to.be.false;
448
+ });
450
449
 
451
- it('should work as expected with nested indeterminate checkboxes', async () => {
452
- // Arrange
453
- const el = /** @type {LionCheckboxGroup} */ (
454
- await fixture(html`
450
+ it('should work as expected with nested indeterminate checkboxes', async () => {
451
+ // Arrange
452
+ const el = /** @type {LionCheckboxGroup} */ (
453
+ await fixture(html`
455
454
  <${groupTag} name="scientists[]" label="Favorite scientists">
456
455
  <${tag} label="Scientists" id="parent-checkbox-indeterminate">
457
456
  <${childTag}
@@ -484,62 +483,62 @@ export function runCheckboxIndeterminateSuite(customConfig) {
484
483
  </${tag}>
485
484
  </${groupTag}>
486
485
  `)
487
- );
488
- const elNestedIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
489
- el.querySelector('#nested-checkbox-indeterminate')
490
- );
491
- const elParentIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
492
- el.querySelector('#parent-checkbox-indeterminate')
493
- );
494
- const elNestedSubCheckboxes = getCheckboxIndeterminateMembers(elNestedIndeterminate);
495
- const elParentSubCheckboxes = getCheckboxIndeterminateMembers(elParentIndeterminate);
496
-
497
- // Act - check a nested checkbox
498
- if (elNestedIndeterminate) {
499
- // @ts-ignore [allow-protected] in test
500
- elNestedSubCheckboxes._subCheckboxes[0]._inputNode.click();
501
- }
502
- await el.updateComplete;
503
-
504
- // Assert
505
- expect(elNestedIndeterminate?.hasAttribute('indeterminate')).to.be.true;
506
- expect(elParentIndeterminate?.hasAttribute('indeterminate')).to.be.true;
507
-
508
- // Act - check all nested checkbox
509
- // @ts-ignore [allow-protected] in test
510
- if (elNestedIndeterminate) elNestedSubCheckboxes._subCheckboxes[1]._inputNode.click();
511
- // @ts-ignore [allow-protected] in test
512
- if (elNestedIndeterminate) elNestedSubCheckboxes._subCheckboxes[2]._inputNode.click();
513
- await el.updateComplete;
514
-
515
- // Assert
516
- expect(elNestedIndeterminate?.hasAttribute('checked')).to.be.true;
517
- expect(elNestedIndeterminate?.hasAttribute('indeterminate')).to.be.false;
518
- expect(elParentIndeterminate?.hasAttribute('checked')).to.be.false;
519
- expect(elParentIndeterminate?.hasAttribute('indeterminate')).to.be.true;
520
-
521
- // Act - finally check all remaining checkbox
522
- if (elParentIndeterminate) {
486
+ );
487
+ const elNestedIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
488
+ el.querySelector('#nested-checkbox-indeterminate')
489
+ );
490
+ const elParentIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
491
+ el.querySelector('#parent-checkbox-indeterminate')
492
+ );
493
+ const elNestedSubCheckboxes = getCheckboxIndeterminateMembers(elNestedIndeterminate);
494
+ const elParentSubCheckboxes = getCheckboxIndeterminateMembers(elParentIndeterminate);
495
+
496
+ // Act - check a nested checkbox
497
+ if (elNestedIndeterminate) {
498
+ // @ts-ignore [allow-protected] in test
499
+ elNestedSubCheckboxes._subCheckboxes[0]._inputNode.click();
500
+ }
501
+ await el.updateComplete;
502
+
503
+ // Assert
504
+ expect(elNestedIndeterminate?.hasAttribute('indeterminate')).to.be.true;
505
+ expect(elParentIndeterminate?.hasAttribute('indeterminate')).to.be.true;
506
+
507
+ // Act - check all nested checkbox
523
508
  // @ts-ignore [allow-protected] in test
524
- elParentSubCheckboxes._subCheckboxes[0]._inputNode.click();
525
- }
526
- if (elParentIndeterminate) {
509
+ if (elNestedIndeterminate) elNestedSubCheckboxes._subCheckboxes[1]._inputNode.click();
527
510
  // @ts-ignore [allow-protected] in test
528
- elParentSubCheckboxes._subCheckboxes[1]._inputNode.click();
529
- }
530
- await el.updateComplete;
531
-
532
- // Assert
533
- expect(elNestedIndeterminate?.hasAttribute('checked')).to.be.true;
534
- expect(elNestedIndeterminate?.hasAttribute('indeterminate')).to.be.false;
535
- expect(elParentIndeterminate?.hasAttribute('checked')).to.be.true;
536
- expect(elParentIndeterminate?.hasAttribute('indeterminate')).to.be.false;
537
- });
511
+ if (elNestedIndeterminate) elNestedSubCheckboxes._subCheckboxes[2]._inputNode.click();
512
+ await el.updateComplete;
538
513
 
539
- it('should work as expected if extra html', async () => {
540
- // Arrange
541
- const el = /** @type {LionCheckboxGroup} */ (
542
- await fixture(html`
514
+ // Assert
515
+ expect(elNestedIndeterminate?.hasAttribute('checked')).to.be.true;
516
+ expect(elNestedIndeterminate?.hasAttribute('indeterminate')).to.be.false;
517
+ expect(elParentIndeterminate?.hasAttribute('checked')).to.be.false;
518
+ expect(elParentIndeterminate?.hasAttribute('indeterminate')).to.be.true;
519
+
520
+ // Act - finally check all remaining checkbox
521
+ if (elParentIndeterminate) {
522
+ // @ts-ignore [allow-protected] in test
523
+ elParentSubCheckboxes._subCheckboxes[0]._inputNode.click();
524
+ }
525
+ if (elParentIndeterminate) {
526
+ // @ts-ignore [allow-protected] in test
527
+ elParentSubCheckboxes._subCheckboxes[1]._inputNode.click();
528
+ }
529
+ await el.updateComplete;
530
+
531
+ // Assert
532
+ expect(elNestedIndeterminate?.hasAttribute('checked')).to.be.true;
533
+ expect(elNestedIndeterminate?.hasAttribute('indeterminate')).to.be.false;
534
+ expect(elParentIndeterminate?.hasAttribute('checked')).to.be.true;
535
+ expect(elParentIndeterminate?.hasAttribute('indeterminate')).to.be.false;
536
+ });
537
+
538
+ it('should work as expected if extra html', async () => {
539
+ // Arrange
540
+ const el = /** @type {LionCheckboxGroup} */ (
541
+ await fixture(html`
543
542
  <${groupTag} name="scientists[]">
544
543
  <div>
545
544
  Let's have some fun
@@ -555,27 +554,27 @@ export function runCheckboxIndeterminateSuite(customConfig) {
555
554
  <div>Too much fun, stop it !</div>
556
555
  </${groupTag}>
557
556
  `)
558
- );
559
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
560
- el.querySelector(`${cfg.tagString}`)
561
- );
562
- const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
563
-
564
- // Act
565
- _subCheckboxes[0].checked = true;
566
- _subCheckboxes[1].checked = true;
567
- _subCheckboxes[2].checked = true;
568
- await el.updateComplete;
569
-
570
- // Assert
571
- expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
572
- expect(elIndeterminate?.checked).to.be.true;
573
- });
557
+ );
558
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
559
+ el.querySelector(`${cfg.tagString}`)
560
+ );
561
+ const { _subCheckboxes } = getCheckboxIndeterminateMembers(elIndeterminate);
574
562
 
575
- // https://www.w3.org/TR/wai-aria-practices-1.1/examples/checkbox/checkbox-2/checkbox-2.html
576
- describe('mixed-state', () => {
577
- it('can have a mixed-state (using mixed-state attribute), none -> indeterminate -> all, cycling through', async () => {
578
- const el = await fixture(html`
563
+ // Act
564
+ _subCheckboxes[0].checked = true;
565
+ _subCheckboxes[1].checked = true;
566
+ _subCheckboxes[2].checked = true;
567
+ await el.updateComplete;
568
+
569
+ // Assert
570
+ expect(elIndeterminate?.hasAttribute('indeterminate')).to.be.false;
571
+ expect(elIndeterminate?.checked).to.be.true;
572
+ });
573
+
574
+ // https://www.w3.org/TR/wai-aria-practices-1.1/examples/checkbox/checkbox-2/checkbox-2.html
575
+ describe('mixed-state', () => {
576
+ it('can have a mixed-state (using mixed-state attribute), none -> indeterminate -> all, cycling through', async () => {
577
+ const el = await fixture(html`
579
578
  <${groupTag} name="scientists[]">
580
579
  <${tag} mixed-state label="Favorite scientists">
581
580
  <${childTag} label="Archimedes" checked></${childTag}>
@@ -584,35 +583,35 @@ export function runCheckboxIndeterminateSuite(customConfig) {
584
583
  </${tag}>
585
584
  </${groupTag}>
586
585
  `);
587
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
588
- el.querySelector(`${cfg.tagString}`)
589
- );
586
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
587
+ el.querySelector(`${cfg.tagString}`)
588
+ );
590
589
 
591
- expect(elIndeterminate.mixedState).to.be.true;
592
- expect(elIndeterminate.checked).to.be.false;
593
- expect(elIndeterminate.indeterminate).to.be.true;
590
+ expect(elIndeterminate.mixedState).to.be.true;
591
+ expect(elIndeterminate.checked).to.be.false;
592
+ expect(elIndeterminate.indeterminate).to.be.true;
594
593
 
595
- // @ts-ignore for testing purposes, we access this protected getter
596
- elIndeterminate._inputNode.click();
597
- await elIndeterminate.updateComplete;
598
- expect(elIndeterminate.checked).to.be.true;
599
- expect(elIndeterminate.indeterminate).to.be.false;
594
+ // @ts-ignore for testing purposes, we access this protected getter
595
+ elIndeterminate._inputNode.click();
596
+ await elIndeterminate.updateComplete;
597
+ expect(elIndeterminate.checked).to.be.true;
598
+ expect(elIndeterminate.indeterminate).to.be.false;
600
599
 
601
- // @ts-ignore for testing purposes, we access this protected getter
602
- elIndeterminate._inputNode.click();
603
- await elIndeterminate.updateComplete;
604
- expect(elIndeterminate.checked).to.be.false;
605
- expect(elIndeterminate.indeterminate).to.be.false;
600
+ // @ts-ignore for testing purposes, we access this protected getter
601
+ elIndeterminate._inputNode.click();
602
+ await elIndeterminate.updateComplete;
603
+ expect(elIndeterminate.checked).to.be.false;
604
+ expect(elIndeterminate.indeterminate).to.be.false;
606
605
 
607
- // @ts-ignore for testing purposes, we access this protected getter
608
- elIndeterminate._inputNode.click();
609
- await elIndeterminate.updateComplete;
610
- expect(elIndeterminate.checked).to.be.false;
611
- expect(elIndeterminate.indeterminate).to.be.true;
612
- });
606
+ // @ts-ignore for testing purposes, we access this protected getter
607
+ elIndeterminate._inputNode.click();
608
+ await elIndeterminate.updateComplete;
609
+ expect(elIndeterminate.checked).to.be.false;
610
+ expect(elIndeterminate.indeterminate).to.be.true;
611
+ });
613
612
 
614
- it('should reset to old child checkbox states when reaching indeterminate state', async () => {
615
- const el = await fixture(html`
613
+ it('should reset to old child checkbox states when reaching indeterminate state', async () => {
614
+ const el = await fixture(html`
616
615
  <${groupTag} name="scientists[]">
617
616
  <${tag} mixed-state label="Favorite scientists">
618
617
  <${childTag} label="Archimedes" checked></${childTag}>
@@ -621,33 +620,33 @@ export function runCheckboxIndeterminateSuite(customConfig) {
621
620
  </${tag}>
622
621
  </${groupTag}>
623
622
  `);
624
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
625
- el.querySelector(`${cfg.tagString}`)
626
- );
627
- const checkboxEls = /** @type {LionCheckbox[]} */ (
628
- Array.from(el.querySelectorAll(`${cfg.childTagString}`))
629
- );
623
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
624
+ el.querySelector(`${cfg.tagString}`)
625
+ );
626
+ const checkboxEls = /** @type {LionCheckbox[]} */ (
627
+ Array.from(el.querySelectorAll(`${cfg.childTagString}`))
628
+ );
630
629
 
631
- expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, false, false]);
630
+ expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, false, false]);
632
631
 
633
- // @ts-ignore for testing purposes, we access this protected getter
634
- elIndeterminate._inputNode.click();
635
- await elIndeterminate.updateComplete;
636
- expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, true, true]);
632
+ // @ts-ignore for testing purposes, we access this protected getter
633
+ elIndeterminate._inputNode.click();
634
+ await elIndeterminate.updateComplete;
635
+ expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, true, true]);
637
636
 
638
- // @ts-ignore for testing purposes, we access this protected getter
639
- elIndeterminate._inputNode.click();
640
- await elIndeterminate.updateComplete;
641
- expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([false, false, false]);
637
+ // @ts-ignore for testing purposes, we access this protected getter
638
+ elIndeterminate._inputNode.click();
639
+ await elIndeterminate.updateComplete;
640
+ expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([false, false, false]);
642
641
 
643
- // @ts-ignore for testing purposes, we access this protected getter
644
- elIndeterminate._inputNode.click();
645
- await elIndeterminate.updateComplete;
646
- expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, false, false]);
647
- });
642
+ // @ts-ignore for testing purposes, we access this protected getter
643
+ elIndeterminate._inputNode.click();
644
+ await elIndeterminate.updateComplete;
645
+ expect(checkboxEls.map(checkboxEl => checkboxEl.checked)).to.eql([true, false, false]);
646
+ });
648
647
 
649
- it('should no longer reach indeterminate state if the child boxes are all checked or all unchecked during indeterminate state', async () => {
650
- const el = await fixture(html`
648
+ it('should no longer reach indeterminate state if the child boxes are all checked or all unchecked during indeterminate state', async () => {
649
+ const el = await fixture(html`
651
650
  <${groupTag} name="scientists[]">
652
651
  <${tag} mixed-state label="Favorite scientists">
653
652
  <${childTag} label="Archimedes" checked></${childTag}>
@@ -656,67 +655,107 @@ export function runCheckboxIndeterminateSuite(customConfig) {
656
655
  </${tag}>
657
656
  </${groupTag}>
658
657
  `);
659
- const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
660
- el.querySelector(`${cfg.tagString}`)
661
- );
662
- const checkboxEls = /** @type {LionCheckbox[]} */ (
663
- Array.from(el.querySelectorAll(`${cfg.childTagString}`))
664
- );
658
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
659
+ el.querySelector(`${cfg.tagString}`)
660
+ );
661
+ const checkboxEls = /** @type {LionCheckbox[]} */ (
662
+ Array.from(el.querySelectorAll(`${cfg.childTagString}`))
663
+ );
665
664
 
666
- // Check when all child boxes in indeterminate state are unchecked
667
- // we don't have a tri-state, but a duo-state.
665
+ // Check when all child boxes in indeterminate state are unchecked
666
+ // we don't have a tri-state, but a duo-state.
668
667
 
669
- // @ts-ignore for testing purposes, we access this protected getter
670
- checkboxEls[0]._inputNode.click();
671
- await elIndeterminate.updateComplete;
668
+ // @ts-ignore for testing purposes, we access this protected getter
669
+ checkboxEls[0]._inputNode.click();
670
+ await elIndeterminate.updateComplete;
672
671
 
673
- // @ts-ignore for testing purposes, we access this protected getter
674
- elIndeterminate._inputNode.click();
675
- await elIndeterminate.updateComplete;
676
- expect(elIndeterminate.checked).to.be.true;
677
- expect(elIndeterminate.indeterminate).to.be.false;
672
+ // @ts-ignore for testing purposes, we access this protected getter
673
+ elIndeterminate._inputNode.click();
674
+ await elIndeterminate.updateComplete;
675
+ expect(elIndeterminate.checked).to.be.true;
676
+ expect(elIndeterminate.indeterminate).to.be.false;
678
677
 
679
- // @ts-ignore for testing purposes, we access this protected getter
680
- elIndeterminate._inputNode.click();
681
- await elIndeterminate.updateComplete;
682
- expect(elIndeterminate.checked).to.be.false;
683
- expect(elIndeterminate.indeterminate).to.be.false;
678
+ // @ts-ignore for testing purposes, we access this protected getter
679
+ elIndeterminate._inputNode.click();
680
+ await elIndeterminate.updateComplete;
681
+ expect(elIndeterminate.checked).to.be.false;
682
+ expect(elIndeterminate.indeterminate).to.be.false;
684
683
 
685
- // @ts-ignore for testing purposes, we access this protected getter
686
- elIndeterminate._inputNode.click();
687
- await elIndeterminate.updateComplete;
688
- expect(elIndeterminate.checked).to.be.true;
689
- expect(elIndeterminate.indeterminate).to.be.false;
684
+ // @ts-ignore for testing purposes, we access this protected getter
685
+ elIndeterminate._inputNode.click();
686
+ await elIndeterminate.updateComplete;
687
+ expect(elIndeterminate.checked).to.be.true;
688
+ expect(elIndeterminate.indeterminate).to.be.false;
690
689
 
691
- // Check when all child boxes in indeterminate state are getting checked
692
- // we also don't have a tri-state, but a duo-state.
690
+ // Check when all child boxes in indeterminate state are getting checked
691
+ // we also don't have a tri-state, but a duo-state.
693
692
 
694
- // @ts-ignore for testing purposes, we access this protected getter
695
- elIndeterminate._inputNode.click(); // unchecked
696
- await elIndeterminate.updateComplete;
697
- for (const checkEl of checkboxEls) {
698
693
  // @ts-ignore for testing purposes, we access this protected getter
699
- checkEl._inputNode.click();
700
- // Give each checking of the sub checkbox a chance to finish updating
701
- // This means indeterminate state will be true for a bit and the state gets stored
702
- await checkEl.updateComplete;
694
+ elIndeterminate._inputNode.click(); // unchecked
703
695
  await elIndeterminate.updateComplete;
704
- }
696
+ for (const checkEl of checkboxEls) {
697
+ // @ts-ignore for testing purposes, we access this protected getter
698
+ checkEl._inputNode.click();
699
+ // Give each checking of the sub checkbox a chance to finish updating
700
+ // This means indeterminate state will be true for a bit and the state gets stored
701
+ await checkEl.updateComplete;
702
+ await elIndeterminate.updateComplete;
703
+ }
704
+
705
+ expect(elIndeterminate.checked).to.be.true;
706
+ expect(elIndeterminate.indeterminate).to.be.false;
705
707
 
706
- expect(elIndeterminate.checked).to.be.true;
707
- expect(elIndeterminate.indeterminate).to.be.false;
708
+ // @ts-ignore for testing purposes, we access this protected getter
709
+ elIndeterminate._inputNode.click();
710
+ await elIndeterminate.updateComplete;
711
+ expect(elIndeterminate.checked).to.be.false;
712
+ expect(elIndeterminate.indeterminate).to.be.false;
708
713
 
709
- // @ts-ignore for testing purposes, we access this protected getter
710
- elIndeterminate._inputNode.click();
711
- await elIndeterminate.updateComplete;
712
- expect(elIndeterminate.checked).to.be.false;
713
- expect(elIndeterminate.indeterminate).to.be.false;
714
+ // @ts-ignore for testing purposes, we access this protected getter
715
+ elIndeterminate._inputNode.click();
716
+ await elIndeterminate.updateComplete;
717
+ expect(elIndeterminate.checked).to.be.true;
718
+ expect(elIndeterminate.indeterminate).to.be.false;
719
+ });
720
+ });
714
721
 
715
- // @ts-ignore for testing purposes, we access this protected getter
716
- elIndeterminate._inputNode.click();
717
- await elIndeterminate.updateComplete;
718
- expect(elIndeterminate.checked).to.be.true;
719
- expect(elIndeterminate.indeterminate).to.be.false;
722
+ describe('accessibility', () => {
723
+ it('is accessible', async () => {
724
+ const el = /** @type {LionCheckboxGroup} */ (
725
+ await fixture(html`
726
+ <${groupTag} name="scientists[]">
727
+ <${tag} label="Favorite scientists">
728
+ <${childTag} label="Archimedes" checked></${childTag}>
729
+ <${childTag} label="Francis Bacon"></${childTag}>
730
+ <${childTag} label="Marie Curie"></${childTag}>
731
+ </${tag}>
732
+ </${groupTag}>
733
+ `)
734
+ );
735
+ await expect(el).to.be.accessible();
736
+ });
737
+
738
+ it('has role="list" and its children role="listitem"', async () => {
739
+ const el = await fixture(html`
740
+ <${groupTag} name="scientists[]">
741
+ <${tag} label="Favorite scientists">
742
+ <${childTag} label="Archimedes" checked></${childTag}>
743
+ <${childTag} label="Francis Bacon"></${childTag}>
744
+ <${childTag} label="Marie Curie"></${childTag}>
745
+ </${tag}>
746
+ </${groupTag}>
747
+ `);
748
+ const elIndeterminate = /** @type {LionCheckboxIndeterminate} */ (
749
+ el.querySelector(`${cfg.tagString}`)
750
+ );
751
+
752
+ expect(
753
+ elIndeterminate.shadowRoot
754
+ ?.querySelector('.choice-field__nested-checkboxes')
755
+ ?.getAttribute('role'),
756
+ ).to.equal('list');
757
+ expect(elIndeterminate.children[0].getAttribute('role')).to.equal('listitem');
758
+ });
720
759
  });
721
760
  });
722
761
  }