@lion/ui 0.5.2 → 0.5.4

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 (311) 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/form-group/FormGroupMixin.js +5 -6
  6. package/components/form-core/test/FormControlMixin.test.js +39 -20
  7. package/components/form-core/test-suites/FormRegistrationMixins.suite.js +7 -7
  8. package/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.js +0 -47
  9. package/components/form-core/test-suites/form-group/FormGroupMixin.suite.js +21 -3
  10. package/components/input-range/src/LionInputRange.js +36 -4
  11. package/components/input-range/src/localizeNamespaceLoader.js +75 -0
  12. package/components/input-range/test/lion-input-range.test.js +6 -6
  13. package/components/input-range/translations/bg-BG.js +5 -0
  14. package/components/input-range/translations/bg.js +4 -0
  15. package/components/input-range/translations/cs-CZ.js +5 -0
  16. package/components/input-range/translations/cs.js +4 -0
  17. package/components/input-range/translations/de-DE.js +5 -0
  18. package/components/input-range/translations/de.js +4 -0
  19. package/components/input-range/translations/en-AU.js +5 -0
  20. package/components/input-range/translations/en-GB.js +5 -0
  21. package/components/input-range/translations/en-PH.js +5 -0
  22. package/components/input-range/translations/en-US.js +5 -0
  23. package/components/input-range/translations/en.js +4 -0
  24. package/components/input-range/translations/es-ES.js +5 -0
  25. package/components/input-range/translations/es.js +4 -0
  26. package/components/input-range/translations/fr-BE.js +5 -0
  27. package/components/input-range/translations/fr-FR.js +5 -0
  28. package/components/input-range/translations/fr.js +4 -0
  29. package/components/input-range/translations/hu-HU.js +5 -0
  30. package/components/input-range/translations/hu.js +4 -0
  31. package/components/input-range/translations/it-IT.js +5 -0
  32. package/components/input-range/translations/it.js +4 -0
  33. package/components/input-range/translations/nl-BE.js +5 -0
  34. package/components/input-range/translations/nl-NL.js +5 -0
  35. package/components/input-range/translations/nl.js +4 -0
  36. package/components/input-range/translations/pl-PL.js +5 -0
  37. package/components/input-range/translations/pl.js +4 -0
  38. package/components/input-range/translations/ro-RO.js +5 -0
  39. package/components/input-range/translations/ro.js +4 -0
  40. package/components/input-range/translations/ru-RU.js +5 -0
  41. package/components/input-range/translations/ru.js +4 -0
  42. package/components/input-range/translations/sk-SK.js +5 -0
  43. package/components/input-range/translations/sk.js +4 -0
  44. package/components/input-range/translations/uk-UA.js +5 -0
  45. package/components/input-range/translations/uk.js +4 -0
  46. package/components/input-range/translations/zh-CN.js +5 -0
  47. package/components/input-range/translations/zh.js +4 -0
  48. package/components/input-stepper/src/LionInputStepper.js +53 -33
  49. package/components/input-stepper/src/localizeNamespaceLoader.js +75 -0
  50. package/components/input-stepper/test/lion-input-stepper.test.js +61 -8
  51. package/components/input-stepper/translations/bg-BG.js +5 -0
  52. package/components/input-stepper/translations/bg.js +4 -0
  53. package/components/input-stepper/translations/cs-CZ.js +5 -0
  54. package/components/input-stepper/translations/cs.js +4 -0
  55. package/components/input-stepper/translations/de-DE.js +5 -0
  56. package/components/input-stepper/translations/de.js +4 -0
  57. package/components/input-stepper/translations/en-AU.js +5 -0
  58. package/components/input-stepper/translations/en-GB.js +5 -0
  59. package/components/input-stepper/translations/en-US.js +5 -0
  60. package/components/input-stepper/translations/en.js +4 -0
  61. package/components/input-stepper/translations/es-ES.js +5 -0
  62. package/components/input-stepper/translations/es.js +4 -0
  63. package/components/input-stepper/translations/fr-BE.js +5 -0
  64. package/components/input-stepper/translations/fr-FR.js +5 -0
  65. package/components/input-stepper/translations/fr.js +4 -0
  66. package/components/input-stepper/translations/hu-HU.js +5 -0
  67. package/components/input-stepper/translations/hu.js +4 -0
  68. package/components/input-stepper/translations/it-IT.js +5 -0
  69. package/components/input-stepper/translations/it.js +4 -0
  70. package/components/input-stepper/translations/nl-BE.js +5 -0
  71. package/components/input-stepper/translations/nl-NL.js +5 -0
  72. package/components/input-stepper/translations/nl.js +4 -0
  73. package/components/input-stepper/translations/pl-PL.js +5 -0
  74. package/components/input-stepper/translations/pl.js +4 -0
  75. package/components/input-stepper/translations/ro-RO.js +5 -0
  76. package/components/input-stepper/translations/ro.js +4 -0
  77. package/components/input-stepper/translations/ru-RU.js +5 -0
  78. package/components/input-stepper/translations/ru.js +4 -0
  79. package/components/input-stepper/translations/sk-SK.js +5 -0
  80. package/components/input-stepper/translations/sk.js +4 -0
  81. package/components/input-stepper/translations/uk-UA.js +5 -0
  82. package/components/input-stepper/translations/uk.js +4 -0
  83. package/components/input-stepper/translations/zh.js +4 -0
  84. package/components/localize/src/LocalizeMixin.js +2 -2
  85. package/components/validate-messages/src/getLocalizedMessage.js +111 -0
  86. package/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.js +9 -179
  87. package/components/validate-messages/src/per-entrypoint/README.md +16 -0
  88. package/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.js +22 -0
  89. package/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.js +77 -0
  90. package/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.js +39 -0
  91. package/components/validate-messages/translations/fr.js +2 -2
  92. package/custom-elements.json +1652 -26
  93. package/dist-types/components/checkbox-group/src/LionCheckboxIndeterminate.d.ts +7 -1
  94. package/dist-types/components/checkbox-group/src/LionCheckboxIndeterminate.d.ts.map +1 -1
  95. package/dist-types/components/checkbox-group/test-suites/CheckboxIndeterminate.suite.d.ts.map +1 -1
  96. package/dist-types/components/form-core/src/FormControlMixin.d.ts.map +1 -1
  97. package/dist-types/components/form-core/src/form-group/FormGroupMixin.d.ts.map +1 -1
  98. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin-input.suite.d.ts.map +1 -1
  99. package/dist-types/components/form-core/test-suites/form-group/FormGroupMixin.suite.d.ts.map +1 -1
  100. package/dist-types/components/input-range/src/LionInputRange.d.ts +7 -1
  101. package/dist-types/components/input-range/src/LionInputRange.d.ts.map +1 -1
  102. package/dist-types/components/input-range/src/localizeNamespaceLoader.d.ts +2 -0
  103. package/dist-types/components/input-range/src/localizeNamespaceLoader.d.ts.map +1 -0
  104. package/dist-types/components/input-range/translations/bg-BG.d.ts +6 -0
  105. package/dist-types/components/input-range/translations/bg-BG.d.ts.map +1 -0
  106. package/dist-types/components/input-range/translations/bg.d.ts +6 -0
  107. package/dist-types/components/input-range/translations/bg.d.ts.map +1 -0
  108. package/dist-types/components/input-range/translations/cs-CZ.d.ts +6 -0
  109. package/dist-types/components/input-range/translations/cs-CZ.d.ts.map +1 -0
  110. package/dist-types/components/input-range/translations/cs.d.ts +6 -0
  111. package/dist-types/components/input-range/translations/cs.d.ts.map +1 -0
  112. package/dist-types/components/input-range/translations/de-DE.d.ts +6 -0
  113. package/dist-types/components/input-range/translations/de-DE.d.ts.map +1 -0
  114. package/dist-types/components/input-range/translations/de.d.ts +6 -0
  115. package/dist-types/components/input-range/translations/de.d.ts.map +1 -0
  116. package/dist-types/components/input-range/translations/en-AU.d.ts +6 -0
  117. package/dist-types/components/input-range/translations/en-AU.d.ts.map +1 -0
  118. package/dist-types/components/input-range/translations/en-GB.d.ts +6 -0
  119. package/dist-types/components/input-range/translations/en-GB.d.ts.map +1 -0
  120. package/dist-types/components/input-range/translations/en-PH.d.ts +6 -0
  121. package/dist-types/components/input-range/translations/en-PH.d.ts.map +1 -0
  122. package/dist-types/components/input-range/translations/en-US.d.ts +6 -0
  123. package/dist-types/components/input-range/translations/en-US.d.ts.map +1 -0
  124. package/dist-types/components/input-range/translations/en.d.ts +6 -0
  125. package/dist-types/components/input-range/translations/en.d.ts.map +1 -0
  126. package/dist-types/components/input-range/translations/es-ES.d.ts +6 -0
  127. package/dist-types/components/input-range/translations/es-ES.d.ts.map +1 -0
  128. package/dist-types/components/input-range/translations/es.d.ts +6 -0
  129. package/dist-types/components/input-range/translations/es.d.ts.map +1 -0
  130. package/dist-types/components/input-range/translations/fr-BE.d.ts +6 -0
  131. package/dist-types/components/input-range/translations/fr-BE.d.ts.map +1 -0
  132. package/dist-types/components/input-range/translations/fr-FR.d.ts +6 -0
  133. package/dist-types/components/input-range/translations/fr-FR.d.ts.map +1 -0
  134. package/dist-types/components/input-range/translations/fr.d.ts +6 -0
  135. package/dist-types/components/input-range/translations/fr.d.ts.map +1 -0
  136. package/dist-types/components/input-range/translations/hu-HU.d.ts +6 -0
  137. package/dist-types/components/input-range/translations/hu-HU.d.ts.map +1 -0
  138. package/dist-types/components/input-range/translations/hu.d.ts +6 -0
  139. package/dist-types/components/input-range/translations/hu.d.ts.map +1 -0
  140. package/dist-types/components/input-range/translations/it-IT.d.ts +6 -0
  141. package/dist-types/components/input-range/translations/it-IT.d.ts.map +1 -0
  142. package/dist-types/components/input-range/translations/it.d.ts +6 -0
  143. package/dist-types/components/input-range/translations/it.d.ts.map +1 -0
  144. package/dist-types/components/input-range/translations/nl-BE.d.ts +6 -0
  145. package/dist-types/components/input-range/translations/nl-BE.d.ts.map +1 -0
  146. package/dist-types/components/input-range/translations/nl-NL.d.ts +6 -0
  147. package/dist-types/components/input-range/translations/nl-NL.d.ts.map +1 -0
  148. package/dist-types/components/input-range/translations/nl.d.ts +6 -0
  149. package/dist-types/components/input-range/translations/nl.d.ts.map +1 -0
  150. package/dist-types/components/input-range/translations/pl-PL.d.ts +6 -0
  151. package/dist-types/components/input-range/translations/pl-PL.d.ts.map +1 -0
  152. package/dist-types/components/input-range/translations/pl.d.ts +6 -0
  153. package/dist-types/components/input-range/translations/pl.d.ts.map +1 -0
  154. package/dist-types/components/input-range/translations/ro-RO.d.ts +6 -0
  155. package/dist-types/components/input-range/translations/ro-RO.d.ts.map +1 -0
  156. package/dist-types/components/input-range/translations/ro.d.ts +6 -0
  157. package/dist-types/components/input-range/translations/ro.d.ts.map +1 -0
  158. package/dist-types/components/input-range/translations/ru-RU.d.ts +6 -0
  159. package/dist-types/components/input-range/translations/ru-RU.d.ts.map +1 -0
  160. package/dist-types/components/input-range/translations/ru.d.ts +6 -0
  161. package/dist-types/components/input-range/translations/ru.d.ts.map +1 -0
  162. package/dist-types/components/input-range/translations/sk-SK.d.ts +6 -0
  163. package/dist-types/components/input-range/translations/sk-SK.d.ts.map +1 -0
  164. package/dist-types/components/input-range/translations/sk.d.ts +6 -0
  165. package/dist-types/components/input-range/translations/sk.d.ts.map +1 -0
  166. package/dist-types/components/input-range/translations/uk-UA.d.ts +6 -0
  167. package/dist-types/components/input-range/translations/uk-UA.d.ts.map +1 -0
  168. package/dist-types/components/input-range/translations/uk.d.ts +6 -0
  169. package/dist-types/components/input-range/translations/uk.d.ts.map +1 -0
  170. package/dist-types/components/input-range/translations/zh-CN.d.ts +6 -0
  171. package/dist-types/components/input-range/translations/zh-CN.d.ts.map +1 -0
  172. package/dist-types/components/input-range/translations/zh.d.ts +6 -0
  173. package/dist-types/components/input-range/translations/zh.d.ts.map +1 -0
  174. package/dist-types/components/input-stepper/src/LionInputStepper.d.ts +22 -3
  175. package/dist-types/components/input-stepper/src/LionInputStepper.d.ts.map +1 -1
  176. package/dist-types/components/input-stepper/src/localizeNamespaceLoader.d.ts +2 -0
  177. package/dist-types/components/input-stepper/src/localizeNamespaceLoader.d.ts.map +1 -0
  178. package/dist-types/components/input-stepper/translations/bg-BG.d.ts +6 -0
  179. package/dist-types/components/input-stepper/translations/bg-BG.d.ts.map +1 -0
  180. package/dist-types/components/input-stepper/translations/bg.d.ts +6 -0
  181. package/dist-types/components/input-stepper/translations/bg.d.ts.map +1 -0
  182. package/dist-types/components/input-stepper/translations/cs-CZ.d.ts +6 -0
  183. package/dist-types/components/input-stepper/translations/cs-CZ.d.ts.map +1 -0
  184. package/dist-types/components/input-stepper/translations/cs.d.ts +6 -0
  185. package/dist-types/components/input-stepper/translations/cs.d.ts.map +1 -0
  186. package/dist-types/components/input-stepper/translations/de-DE.d.ts +6 -0
  187. package/dist-types/components/input-stepper/translations/de-DE.d.ts.map +1 -0
  188. package/dist-types/components/input-stepper/translations/de.d.ts +6 -0
  189. package/dist-types/components/input-stepper/translations/de.d.ts.map +1 -0
  190. package/dist-types/components/input-stepper/translations/en-AU.d.ts +6 -0
  191. package/dist-types/components/input-stepper/translations/en-AU.d.ts.map +1 -0
  192. package/dist-types/components/input-stepper/translations/en-GB.d.ts +6 -0
  193. package/dist-types/components/input-stepper/translations/en-GB.d.ts.map +1 -0
  194. package/dist-types/components/input-stepper/translations/en-US.d.ts +6 -0
  195. package/dist-types/components/input-stepper/translations/en-US.d.ts.map +1 -0
  196. package/dist-types/components/input-stepper/translations/en.d.ts +6 -0
  197. package/dist-types/components/input-stepper/translations/en.d.ts.map +1 -0
  198. package/dist-types/components/input-stepper/translations/es-ES.d.ts +6 -0
  199. package/dist-types/components/input-stepper/translations/es-ES.d.ts.map +1 -0
  200. package/dist-types/components/input-stepper/translations/es.d.ts +6 -0
  201. package/dist-types/components/input-stepper/translations/es.d.ts.map +1 -0
  202. package/dist-types/components/input-stepper/translations/fr-BE.d.ts +6 -0
  203. package/dist-types/components/input-stepper/translations/fr-BE.d.ts.map +1 -0
  204. package/dist-types/components/input-stepper/translations/fr-FR.d.ts +6 -0
  205. package/dist-types/components/input-stepper/translations/fr-FR.d.ts.map +1 -0
  206. package/dist-types/components/input-stepper/translations/fr.d.ts +6 -0
  207. package/dist-types/components/input-stepper/translations/fr.d.ts.map +1 -0
  208. package/dist-types/components/input-stepper/translations/hu-HU.d.ts +6 -0
  209. package/dist-types/components/input-stepper/translations/hu-HU.d.ts.map +1 -0
  210. package/dist-types/components/input-stepper/translations/hu.d.ts +6 -0
  211. package/dist-types/components/input-stepper/translations/hu.d.ts.map +1 -0
  212. package/dist-types/components/input-stepper/translations/it-IT.d.ts +6 -0
  213. package/dist-types/components/input-stepper/translations/it-IT.d.ts.map +1 -0
  214. package/dist-types/components/input-stepper/translations/it.d.ts +6 -0
  215. package/dist-types/components/input-stepper/translations/it.d.ts.map +1 -0
  216. package/dist-types/components/input-stepper/translations/nl-BE.d.ts +6 -0
  217. package/dist-types/components/input-stepper/translations/nl-BE.d.ts.map +1 -0
  218. package/dist-types/components/input-stepper/translations/nl-NL.d.ts +6 -0
  219. package/dist-types/components/input-stepper/translations/nl-NL.d.ts.map +1 -0
  220. package/dist-types/components/input-stepper/translations/nl.d.ts +6 -0
  221. package/dist-types/components/input-stepper/translations/nl.d.ts.map +1 -0
  222. package/dist-types/components/input-stepper/translations/pl-PL.d.ts +6 -0
  223. package/dist-types/components/input-stepper/translations/pl-PL.d.ts.map +1 -0
  224. package/dist-types/components/input-stepper/translations/pl.d.ts +6 -0
  225. package/dist-types/components/input-stepper/translations/pl.d.ts.map +1 -0
  226. package/dist-types/components/input-stepper/translations/ro-RO.d.ts +6 -0
  227. package/dist-types/components/input-stepper/translations/ro-RO.d.ts.map +1 -0
  228. package/dist-types/components/input-stepper/translations/ro.d.ts +6 -0
  229. package/dist-types/components/input-stepper/translations/ro.d.ts.map +1 -0
  230. package/dist-types/components/input-stepper/translations/ru-RU.d.ts +6 -0
  231. package/dist-types/components/input-stepper/translations/ru-RU.d.ts.map +1 -0
  232. package/dist-types/components/input-stepper/translations/ru.d.ts +6 -0
  233. package/dist-types/components/input-stepper/translations/ru.d.ts.map +1 -0
  234. package/dist-types/components/input-stepper/translations/sk-SK.d.ts +6 -0
  235. package/dist-types/components/input-stepper/translations/sk-SK.d.ts.map +1 -0
  236. package/dist-types/components/input-stepper/translations/sk.d.ts +6 -0
  237. package/dist-types/components/input-stepper/translations/sk.d.ts.map +1 -0
  238. package/dist-types/components/input-stepper/translations/uk-UA.d.ts +6 -0
  239. package/dist-types/components/input-stepper/translations/uk-UA.d.ts.map +1 -0
  240. package/dist-types/components/input-stepper/translations/uk.d.ts +6 -0
  241. package/dist-types/components/input-stepper/translations/uk.d.ts.map +1 -0
  242. package/dist-types/components/input-stepper/translations/zh.d.ts +6 -0
  243. package/dist-types/components/input-stepper/translations/zh.d.ts.map +1 -0
  244. package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts +13 -0
  245. package/dist-types/components/validate-messages/src/getLocalizedMessage.d.ts.map +1 -0
  246. package/dist-types/components/validate-messages/src/loadDefaultFeedbackMessagesNoSideEffects.d.ts.map +1 -1
  247. package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts +9 -0
  248. package/dist-types/components/validate-messages/src/per-entrypoint/loadComboboxMessagesNoSideEffects.d.ts.map +1 -0
  249. package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts +9 -0
  250. package/dist-types/components/validate-messages/src/per-entrypoint/loadFormCoreMessagesNoSideEffects.d.ts.map +1 -0
  251. package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts +9 -0
  252. package/dist-types/components/validate-messages/src/per-entrypoint/loadInputTelMessagesNoSideEffects.d.ts.map +1 -0
  253. package/dist-types/exports/validate-messages-no-side-effects.d.ts +3 -0
  254. package/dist-types/tsconfig.tsbuildinfo +1 -1
  255. package/docs/components/checkbox-group/overview.md +2 -2
  256. package/docs/components/collapsible/overview.md +1 -1
  257. package/docs/components/combobox/overview.md +1 -1
  258. package/docs/components/combobox/use-cases.md +1 -1
  259. package/docs/components/dialog/overview.md +1 -1
  260. package/docs/components/fieldset/overview.md +5 -5
  261. package/docs/components/form/overview.md +3 -3
  262. package/docs/components/icon/use-cases.md +1 -1
  263. package/docs/components/input/overview.md +1 -1
  264. package/docs/components/input-amount/overview.md +3 -3
  265. package/docs/components/input-date/overview.md +3 -3
  266. package/docs/components/input-datepicker/overview.md +5 -5
  267. package/docs/components/input-email/overview.md +2 -2
  268. package/docs/components/input-file/overview.md +1 -1
  269. package/docs/components/input-iban/overview.md +2 -2
  270. package/docs/components/input-range/overview.md +4 -6
  271. package/docs/components/input-range/use-cases.md +40 -48
  272. package/docs/components/input-stepper/overview.md +8 -8
  273. package/docs/components/input-stepper/use-cases.md +30 -21
  274. package/docs/components/input-tel/overview.md +1 -1
  275. package/docs/components/input-tel/use-cases.md +6 -6
  276. package/docs/components/input-tel-dropdown/overview.md +1 -1
  277. package/docs/components/radio-group/overview.md +3 -3
  278. package/docs/components/select-rich/use-cases.md +1 -1
  279. package/docs/components/tabs/examples.md +1 -1
  280. package/docs/fundamentals/index.md +4 -4
  281. package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
  282. package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
  283. package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
  284. package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
  285. package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
  286. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  287. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  288. package/docs/fundamentals/rationales/accessibility.md +1 -1
  289. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  290. package/docs/fundamentals/systems/core/overview.md +1 -1
  291. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  292. package/docs/fundamentals/systems/form/model-value.md +1 -1
  293. package/docs/fundamentals/systems/form/overview.md +28 -28
  294. package/docs/fundamentals/systems/form/validate.md +1 -1
  295. package/docs/fundamentals/systems/localize/overview.md +4 -4
  296. package/docs/fundamentals/systems/overlays/assets/demo-el-using-overlaymixin.mjs +2 -1
  297. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  298. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  299. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  300. package/docs/fundamentals/tools/ajax/overview.md +2 -1
  301. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  302. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  303. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  304. package/docs/guides/how-to/create-a-form.md +4 -4
  305. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  306. package/docs/guides/index.md +8 -8
  307. package/docs/guides/principles/index.md +5 -5
  308. package/docs/guides/principles/styling.md +1 -1
  309. package/exports/validate-messages-no-side-effects.js +3 -0
  310. package/package.json +3 -1
  311. package/validate-messages-no-side-effects.js +3 -0
@@ -0,0 +1,4 @@
1
+ export default {
2
+ minimum: 'Minimum',
3
+ maximum: 'Maximum',
4
+ };
@@ -0,0 +1,5 @@
1
+ import pl from './pl.js';
2
+
3
+ export default {
4
+ ...pl,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ minimum: 'Minimum',
3
+ maximum: 'Maksymalnie',
4
+ };
@@ -0,0 +1,5 @@
1
+ import ro from './ro.js';
2
+
3
+ export default {
4
+ ...ro,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ minimum: 'Minim',
3
+ maximum: 'Maxim',
4
+ };
@@ -0,0 +1,5 @@
1
+ import ru from './ru.js';
2
+
3
+ export default {
4
+ ...ru,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ minimum: 'Минимум',
3
+ maximum: 'Максимум',
4
+ };
@@ -0,0 +1,5 @@
1
+ import sk from './sk.js';
2
+
3
+ export default {
4
+ ...sk,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ minimum: 'Minimálne',
3
+ maximum: 'Maximálne',
4
+ };
@@ -0,0 +1,5 @@
1
+ import uk from './uk.js';
2
+
3
+ export default {
4
+ ...uk,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ minimum: 'Мінімум',
3
+ maximum: 'Максимум',
4
+ };
@@ -0,0 +1,5 @@
1
+ import zh from './zh.js';
2
+
3
+ export default {
4
+ ...zh,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ minimum: '最少',
3
+ maximum: '最多',
4
+ };
@@ -1,6 +1,8 @@
1
1
  import { html, css, render } from 'lit';
2
+ import { LocalizeMixin } from '@lion/ui/localize-no-side-effects.js';
2
3
  import { LionInput } from '@lion/ui/input.js';
3
4
  import { IsNumber, MinNumber, MaxNumber } from '@lion/ui/form-core.js';
5
+ import { localizeNamespaceLoader } from './localizeNamespaceLoader.js';
4
6
 
5
7
  /**
6
8
  * @typedef {import('lit').RenderOptions} RenderOptions
@@ -11,7 +13,7 @@ import { IsNumber, MinNumber, MaxNumber } from '@lion/ui/form-core.js';
11
13
  *
12
14
  * @customElement lion-input-stepper
13
15
  */
14
- export class LionInputStepper extends LionInput {
16
+ export class LionInputStepper extends LocalizeMixin(LionInput) {
15
17
  static get styles() {
16
18
  return [
17
19
  ...super.styles,
@@ -41,6 +43,11 @@ export class LionInputStepper extends LionInput {
41
43
  };
42
44
  }
43
45
 
46
+ static localizeNamespaces = [
47
+ { 'lion-input-stepper': localizeNamespaceLoader },
48
+ ...super.localizeNamespaces,
49
+ ];
50
+
44
51
  /**
45
52
  * @returns {number}
46
53
  */
@@ -82,9 +89,7 @@ export class LionInputStepper extends LionInput {
82
89
  this.addEventListener('keydown', this.__keyDownHandler);
83
90
  this._inputNode.setAttribute('inputmode', 'decimal');
84
91
  this._inputNode.setAttribute('autocomplete', 'off');
85
- this.setAttribute('aria-label', this.label);
86
- this.step = this.hasAttribute('step') ? this.step : 1;
87
- this.__setAriaLabelsAndValidator();
92
+ this.__setDefaultValidators();
88
93
  this.__toggleSpinnerButtonsState();
89
94
  }
90
95
 
@@ -117,6 +122,14 @@ export class LionInputStepper extends LionInput {
117
122
  this._inputNode.step = `${this.step}`;
118
123
  this.values.step = this.step;
119
124
  }
125
+
126
+ if (changedProperties.has('_ariaLabelledNodes')) {
127
+ this.__reflectAriaAttrToSpinButton('aria-labelledby', this._ariaLabelledNodes);
128
+ }
129
+
130
+ if (changedProperties.has('_ariaDescribedNodes')) {
131
+ this.__reflectAriaAttrToSpinButton('aria-describedby', this._ariaDescribedNodes);
132
+ }
120
133
  }
121
134
 
122
135
  get slots() {
@@ -128,41 +141,47 @@ export class LionInputStepper extends LionInput {
128
141
  }
129
142
 
130
143
  /**
131
- * Set aria labels and apply validators
144
+ * Based on FormControlMixin __reflectAriaAttr()
145
+ *
146
+ * Will handle help text, validation feedback and character counter,
147
+ * prefix/suffix/before/after (if they contain data-description flag attr).
148
+ * Also, contents of id references that will be put in the <lion-field>._ariaDescribedby property
149
+ * from an external context, will be read by a screen reader.
150
+ * @param {string} attrName
151
+ * @param {Element[]} nodes
132
152
  * @private
133
153
  */
134
- __setAriaLabelsAndValidator() {
135
- const ariaAttributes = {
136
- 'aria-valuemax': this.values.max,
137
- 'aria-valuemin': this.values.min,
138
- };
154
+ __reflectAriaAttrToSpinButton(attrName, nodes) {
155
+ const string = nodes.map(n => n.id).join(' ');
156
+ this.setAttribute(attrName, string);
157
+ }
139
158
 
140
- const minMaxValidators = /** @type {(MaxNumber | MinNumber)[]} */ (
141
- Object.entries(ariaAttributes)
142
- .map(([key, val]) => {
143
- if (val !== Infinity) {
144
- this.setAttribute(key, `${val}`);
145
- return key === 'aria-valuemax' ? new MaxNumber(val) : new MinNumber(val);
146
- }
147
- return null;
148
- })
149
- .filter(validator => validator !== null)
159
+ /**
160
+ * Set aria labels and apply validators
161
+ * @private
162
+ */
163
+ __setDefaultValidators() {
164
+ const validators = /** @type {(IsNumber| MaxNumber | MinNumber)[]} */ (
165
+ [
166
+ new IsNumber(),
167
+ this.min !== Infinity ? new MinNumber(this.min) : null,
168
+ this.max !== Infinity ? new MaxNumber(this.max) : null,
169
+ ].filter(validator => validator !== null)
150
170
  );
151
- const validators = [new IsNumber(), ...minMaxValidators];
152
171
  this.defaultValidators.push(...validators);
153
172
  }
154
173
 
155
174
  /**
156
175
  * Update values on keyboard arrow up and down event
157
- * @param {KeyboardEvent} e - keyboard event
176
+ * @param {KeyboardEvent} ev - keyboard event
158
177
  * @private
159
178
  */
160
- __keyDownHandler(e) {
161
- if (e.key === 'ArrowUp') {
179
+ __keyDownHandler(ev) {
180
+ if (ev.key === 'ArrowUp') {
162
181
  this.__increment();
163
182
  }
164
183
 
165
- if (e.key === 'ArrowDown') {
184
+ if (ev.key === 'ArrowDown') {
166
185
  this.__decrement();
167
186
  }
168
187
  }
@@ -177,6 +196,9 @@ export class LionInputStepper extends LionInput {
177
196
  const incrementButton = this.__getSlot('suffix');
178
197
  const disableIncrementor = this.currentValue >= max && max !== Infinity;
179
198
  const disableDecrementor = this.currentValue <= min && min !== Infinity;
199
+ if (disableDecrementor || disableIncrementor) {
200
+ this._inputNode.focus();
201
+ }
180
202
  decrementButton[disableDecrementor ? 'setAttribute' : 'removeAttribute']('disabled', 'true');
181
203
  incrementButton[disableIncrementor ? 'setAttribute' : 'removeAttribute']('disabled', 'true');
182
204
  this.setAttribute('aria-valuenow', `${this.currentValue}`);
@@ -201,10 +223,10 @@ export class LionInputStepper extends LionInput {
201
223
  * @private
202
224
  */
203
225
  __increment() {
204
- const { step, max } = this.values;
226
+ const { step, min, max } = this.values;
205
227
  const newValue = this.currentValue + step;
206
228
  if (newValue <= max || max === Infinity) {
207
- this.value = `${newValue}`;
229
+ this.value = newValue < min && min !== Infinity ? `${min}` : `${newValue}`;
208
230
  this.__toggleSpinnerButtonsState();
209
231
  this._proxyInputEvent();
210
232
  }
@@ -215,10 +237,10 @@ export class LionInputStepper extends LionInput {
215
237
  * @private
216
238
  */
217
239
  __decrement() {
218
- const { step, min } = this.values;
240
+ const { step, min, max } = this.values;
219
241
  const newValue = this.currentValue - step;
220
242
  if (newValue >= min || min === Infinity) {
221
- this.value = `${newValue}`;
243
+ this.value = newValue > max && max !== Infinity ? `${max}` : `${newValue}`;
222
244
  this.__toggleSpinnerButtonsState();
223
245
  this._proxyInputEvent();
224
246
  }
@@ -301,9 +323,8 @@ export class LionInputStepper extends LionInput {
301
323
  ?disabled=${this.disabled || this.readOnly}
302
324
  @click=${this.__decrement}
303
325
  @blur=${this.__boundOnLeaveButton}
304
- tabindex="-1"
305
326
  type="button"
306
- aria-label="decrement"
327
+ aria-label="${this.msgLit('lion-input-stepper:decrease')}"
307
328
  >
308
329
  ${this._decrementorSignTemplate()}
309
330
  </button>
@@ -321,9 +342,8 @@ export class LionInputStepper extends LionInput {
321
342
  ?disabled=${this.disabled || this.readOnly}
322
343
  @click=${this.__increment}
323
344
  @blur=${this.__boundOnLeaveButton}
324
- tabindex="-1"
325
345
  type="button"
326
- aria-label="increment"
346
+ aria-label="${this.msgLit('lion-input-stepper:increase')}"
327
347
  >
328
348
  ${this._incrementorSignTemplate()}
329
349
  </button>
@@ -0,0 +1,75 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ export const localizeNamespaceLoader = /** @param {string} locale */ locale => {
3
+ switch (locale) {
4
+ case 'bg-BG':
5
+ return import('@lion/ui/input-stepper-translations/bg-BG.js');
6
+ case 'bg':
7
+ return import('@lion/ui/input-stepper-translations/bg.js');
8
+ case 'cs-CZ':
9
+ return import('@lion/ui/input-stepper-translations/cs-CZ.js');
10
+ case 'cs':
11
+ return import('@lion/ui/input-stepper-translations/cs.js');
12
+ case 'de-DE':
13
+ return import('@lion/ui/input-stepper-translations/de-DE.js');
14
+ case 'de':
15
+ return import('@lion/ui/input-stepper-translations/de.js');
16
+ case 'en-AU':
17
+ return import('@lion/ui/input-stepper-translations/en-AU.js');
18
+ case 'en-GB':
19
+ return import('@lion/ui/input-stepper-translations/en-GB.js');
20
+ case 'en-US':
21
+ return import('@lion/ui/input-stepper-translations/en-US.js');
22
+ case 'en-PH':
23
+ case 'en':
24
+ return import('@lion/ui/input-stepper-translations/en.js');
25
+ case 'es-ES':
26
+ return import('@lion/ui/input-stepper-translations/es-ES.js');
27
+ case 'es':
28
+ return import('@lion/ui/input-stepper-translations/es.js');
29
+ case 'fr-FR':
30
+ return import('@lion/ui/input-stepper-translations/fr-FR.js');
31
+ case 'fr-BE':
32
+ return import('@lion/ui/input-stepper-translations/fr-BE.js');
33
+ case 'fr':
34
+ return import('@lion/ui/input-stepper-translations/fr.js');
35
+ case 'hu-HU':
36
+ return import('@lion/ui/input-stepper-translations/hu-HU.js');
37
+ case 'hu':
38
+ return import('@lion/ui/input-stepper-translations/hu.js');
39
+ case 'it-IT':
40
+ return import('@lion/ui/input-stepper-translations/it-IT.js');
41
+ case 'it':
42
+ return import('@lion/ui/input-stepper-translations/it.js');
43
+ case 'nl-BE':
44
+ return import('@lion/ui/input-stepper-translations/nl-BE.js');
45
+ case 'nl-NL':
46
+ return import('@lion/ui/input-stepper-translations/nl-NL.js');
47
+ case 'nl':
48
+ return import('@lion/ui/input-stepper-translations/nl.js');
49
+ case 'pl-PL':
50
+ return import('@lion/ui/input-stepper-translations/pl-PL.js');
51
+ case 'pl':
52
+ return import('@lion/ui/input-stepper-translations/pl.js');
53
+ case 'ro-RO':
54
+ return import('@lion/ui/input-stepper-translations/ro-RO.js');
55
+ case 'ro':
56
+ return import('@lion/ui/input-stepper-translations/ro.js');
57
+ case 'ru-RU':
58
+ return import('@lion/ui/input-stepper-translations/ru-RU.js');
59
+ case 'ru':
60
+ return import('@lion/ui/input-stepper-translations/ru.js');
61
+ case 'sk-SK':
62
+ return import('@lion/ui/input-stepper-translations/sk-SK.js');
63
+ case 'sk':
64
+ return import('@lion/ui/input-stepper-translations/sk.js');
65
+ case 'uk-UA':
66
+ return import('@lion/ui/input-stepper-translations/uk-UA.js');
67
+ case 'uk':
68
+ return import('@lion/ui/input-stepper-translations/uk.js');
69
+ case 'zh-CN':
70
+ case 'zh':
71
+ return import('@lion/ui/input-stepper-translations/zh.js');
72
+ default:
73
+ return import('@lion/ui/input-stepper-translations/en.js');
74
+ }
75
+ };
@@ -12,7 +12,11 @@ const fixture = /** @type {(arg: TemplateResult|string) => Promise<LionInputStep
12
12
  const defaultInputStepper = html`
13
13
  <lion-input-stepper name="year" label="Years"></lion-input-stepper>
14
14
  `;
15
- const inputStepperWithAttrs = html`<lion-input-stepper min="100" max="200"></lion-input-stepper>`;
15
+ const inputStepperWithAttrs = html`<lion-input-stepper
16
+ step="10"
17
+ min="100"
18
+ max="200"
19
+ ></lion-input-stepper>`;
16
20
 
17
21
  describe('<lion-input-stepper>', () => {
18
22
  describe('Stepper', () => {
@@ -20,9 +24,64 @@ describe('<lion-input-stepper>', () => {
20
24
  const el = await fixture(defaultInputStepper);
21
25
  expect(el._inputNode.type).to.equal('text');
22
26
  });
27
+
28
+ it('has a default min and max of Infinity', async () => {
29
+ const el = await fixture(defaultInputStepper);
30
+ expect(el.getAttribute('min')).to.equal('Infinity');
31
+ expect(el.getAttribute('max')).to.equal('Infinity');
32
+ });
33
+
34
+ it('has a default step of 1', async () => {
35
+ const el = await fixture(defaultInputStepper);
36
+ expect(el.getAttribute('step')).to.equal('1');
37
+ });
38
+
39
+ it('can set a step with which the value increases', async () => {
40
+ const el = await fixture(defaultInputStepper);
41
+ el.step = 10;
42
+ await el.updateComplete;
43
+ expect(el.value).to.equal('');
44
+ expect(el.getAttribute('step')).to.equal('10');
45
+
46
+ const incrementButton = el.querySelector('[slot=suffix]');
47
+ incrementButton?.dispatchEvent(new Event('click'));
48
+ expect(el.value).to.equal('10');
49
+ });
23
50
  });
24
51
 
25
52
  describe('User interaction', () => {
53
+ it('should increment the value to 1 on [ArrowUp]', async () => {
54
+ const el = await fixture(defaultInputStepper);
55
+ expect(el.value).to.equal('');
56
+ el.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp' }));
57
+ await el.updateComplete;
58
+ expect(el.value).to.equal('1');
59
+ });
60
+
61
+ it('should increment the value to minValue on [ArrowUp] if value is below min', async () => {
62
+ const el = await fixture(inputStepperWithAttrs);
63
+ expect(el.value).to.equal('');
64
+ el.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp' }));
65
+ await el.updateComplete;
66
+ expect(el.value).to.equal('100');
67
+ });
68
+
69
+ it('should decrement the value to -1 on [ArrowDown]', async () => {
70
+ const el = await fixture(defaultInputStepper);
71
+ expect(el.value).to.equal('');
72
+ el.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown' }));
73
+ await el.updateComplete;
74
+ expect(el.value).to.equal('-1');
75
+ });
76
+
77
+ it('should increment the value to minValue on [ArrowDown] if value is below min', async () => {
78
+ const el = await fixture(inputStepperWithAttrs);
79
+ el.modelValue = 600;
80
+ el.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown' }));
81
+ await el.updateComplete;
82
+ expect(el.value).to.equal('200');
83
+ });
84
+
26
85
  it('should increment the value to 1 on + button click', async () => {
27
86
  const el = await fixture(defaultInputStepper);
28
87
  expect(el.value).to.equal('');
@@ -174,14 +233,8 @@ describe('<lion-input-stepper>', () => {
174
233
  await expect(el).to.be.accessible();
175
234
  });
176
235
 
177
- it('adds aria-valuemax and aria-valuemin when min and max are provided', async () => {
178
- const el = await fixture(inputStepperWithAttrs);
179
- expect(el).to.have.attribute('aria-valuemax', '200');
180
- expect(el).to.have.attribute('aria-valuemin', '100');
181
- });
182
-
183
236
  it('updates aria-valuenow when stepper is changed', async () => {
184
- const el = await fixture(inputStepperWithAttrs);
237
+ const el = await fixture(defaultInputStepper);
185
238
  const incrementButton = el.querySelector('[slot=suffix]');
186
239
  incrementButton?.dispatchEvent(new Event('click'));
187
240
  expect(el).to.have.attribute('aria-valuenow', '1');
@@ -0,0 +1,5 @@
1
+ import bg from './bg.js';
2
+
3
+ export default {
4
+ ...bg,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Намаляване',
3
+ increase: 'Увеличаване',
4
+ };
@@ -0,0 +1,5 @@
1
+ import cs from './cs.js';
2
+
3
+ export default {
4
+ ...cs,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Snížit',
3
+ increase: 'Zvýšit',
4
+ };
@@ -0,0 +1,5 @@
1
+ import de from './de.js';
2
+
3
+ export default {
4
+ ...de,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Verringern',
3
+ increase: 'Erhöhen',
4
+ };
@@ -0,0 +1,5 @@
1
+ import en from './en.js';
2
+
3
+ export default {
4
+ ...en,
5
+ };
@@ -0,0 +1,5 @@
1
+ import en from './en.js';
2
+
3
+ export default {
4
+ ...en,
5
+ };
@@ -0,0 +1,5 @@
1
+ import en from './en.js';
2
+
3
+ export default {
4
+ ...en,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Decrease',
3
+ increase: 'Increase',
4
+ };
@@ -0,0 +1,5 @@
1
+ import es from './es.js';
2
+
3
+ export default {
4
+ ...es,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Disminuir',
3
+ increase: 'Aumentar',
4
+ };
@@ -0,0 +1,5 @@
1
+ import fr from './fr.js';
2
+
3
+ export default {
4
+ ...fr,
5
+ };
@@ -0,0 +1,5 @@
1
+ import fr from './fr.js';
2
+
3
+ export default {
4
+ ...fr,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Diminuer',
3
+ increase: 'Augmenter',
4
+ };
@@ -0,0 +1,5 @@
1
+ import hu from './hu.js';
2
+
3
+ export default {
4
+ ...hu,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Csökkentés',
3
+ increase: 'Növelés',
4
+ };
@@ -0,0 +1,5 @@
1
+ import it from './it.js';
2
+
3
+ export default {
4
+ ...it,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Diminuisci',
3
+ increase: 'Aumenta',
4
+ };
@@ -0,0 +1,5 @@
1
+ import nl from './nl.js';
2
+
3
+ export default {
4
+ ...nl,
5
+ };
@@ -0,0 +1,5 @@
1
+ import nl from './nl.js';
2
+
3
+ export default {
4
+ ...nl,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Verlagen',
3
+ increase: 'Verhogen',
4
+ };
@@ -0,0 +1,5 @@
1
+ import pl from './pl.js';
2
+
3
+ export default {
4
+ ...pl,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Zmniejsz',
3
+ increase: 'Zwiększ',
4
+ };
@@ -0,0 +1,5 @@
1
+ import ro from './ro.js';
2
+
3
+ export default {
4
+ ...ro,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Scădere',
3
+ increase: 'Creștere',
4
+ };
@@ -0,0 +1,5 @@
1
+ import ru from './ru.js';
2
+
3
+ export default {
4
+ ...ru,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Уменьшить',
3
+ increase: 'Увеличить',
4
+ };
@@ -0,0 +1,5 @@
1
+ import sk from './sk.js';
2
+
3
+ export default {
4
+ ...sk,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Znížiť',
3
+ increase: 'Zvýšiť',
4
+ };
@@ -0,0 +1,5 @@
1
+ import uk from './uk.js';
2
+
3
+ export default {
4
+ ...uk,
5
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: 'Зменшити',
3
+ increase: 'Збільшити',
4
+ };
@@ -0,0 +1,4 @@
1
+ export default {
2
+ decrease: '减少',
3
+ increase: '增加',
4
+ };