@aurodesignsystem/auro-formkit 2.0.0-beta.8 → 2.0.0-beta.9

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 (288) hide show
  1. package/.turbo/cache/012997da408d7381-meta.json +1 -0
  2. package/.turbo/cache/0c8124a987c1cc05-meta.json +1 -1
  3. package/.turbo/cache/114f70925d97840c-meta.json +1 -0
  4. package/.turbo/cache/114f70925d97840c.tar.zst +0 -0
  5. package/.turbo/cache/144803363093af6b-meta.json +1 -0
  6. package/.turbo/cache/18129dba20f51b6b-meta.json +1 -1
  7. package/.turbo/cache/19afa09c8e45c25d-meta.json +1 -0
  8. package/.turbo/cache/19afa09c8e45c25d.tar.zst +0 -0
  9. package/.turbo/cache/20a17be1e896dc95-meta.json +1 -0
  10. package/.turbo/cache/20a17be1e896dc95.tar.zst +0 -0
  11. package/.turbo/cache/2624bedf18a03ab1-meta.json +1 -0
  12. package/.turbo/cache/2624bedf18a03ab1.tar.zst +0 -0
  13. package/.turbo/cache/2706814699cff63a-meta.json +1 -0
  14. package/.turbo/cache/2787020e69f50af2-meta.json +1 -1
  15. package/.turbo/cache/29d704afd7578cda-meta.json +1 -0
  16. package/.turbo/cache/2edcc8b31cd713fc-meta.json +1 -0
  17. package/.turbo/cache/2edcc8b31cd713fc.tar.zst +0 -0
  18. package/.turbo/cache/318a9085a92f2d32-meta.json +1 -0
  19. package/.turbo/cache/326d9e4692d61af1-meta.json +1 -0
  20. package/.turbo/cache/326d9e4692d61af1.tar.zst +0 -0
  21. package/.turbo/cache/36962b1c4c89a3a2-meta.json +1 -0
  22. package/.turbo/cache/{0ca9c5ccf3e90704.tar.zst → 36962b1c4c89a3a2.tar.zst} +0 -0
  23. package/.turbo/cache/3cd8fc5f388323db-meta.json +1 -1
  24. package/.turbo/cache/3f8ea42b850fd7b1-meta.json +1 -0
  25. package/.turbo/cache/3f8ea42b850fd7b1.tar.zst +0 -0
  26. package/.turbo/cache/4006a206400d5c7b-meta.json +1 -1
  27. package/.turbo/cache/457af7906413d2ff-meta.json +1 -0
  28. package/.turbo/cache/492dda333b8d15f1-meta.json +1 -1
  29. package/.turbo/cache/508f2fcc60e5046f-meta.json +1 -0
  30. package/.turbo/cache/508f2fcc60e5046f.tar.zst +0 -0
  31. package/.turbo/cache/50993de942ec15a9-meta.json +1 -1
  32. package/.turbo/cache/51eaa58d5c167de8-meta.json +1 -1
  33. package/.turbo/cache/5567d6b2fdae56a9-meta.json +1 -0
  34. package/.turbo/cache/5a6290b52b84f5ef-meta.json +1 -0
  35. package/.turbo/cache/5a6290b52b84f5ef.tar.zst +0 -0
  36. package/.turbo/cache/5aadae8d3f94202e-meta.json +1 -1
  37. package/.turbo/cache/6081837e8943b62e-meta.json +1 -0
  38. package/.turbo/cache/6081837e8943b62e.tar.zst +0 -0
  39. package/.turbo/cache/60ad74320c682a2b-meta.json +1 -1
  40. package/.turbo/cache/61e218aba69cff58-meta.json +1 -1
  41. package/.turbo/cache/64ac8d6a4669ba20-meta.json +1 -0
  42. package/.turbo/cache/64ac8d6a4669ba20.tar.zst +0 -0
  43. package/.turbo/cache/706649b429184693-meta.json +1 -0
  44. package/.turbo/cache/706649b429184693.tar.zst +0 -0
  45. package/.turbo/cache/71dbeaf0706c12fe-meta.json +1 -1
  46. package/.turbo/cache/7445df6e7feed2a7-meta.json +1 -1
  47. package/.turbo/cache/769652d1b874d7cf-meta.json +1 -0
  48. package/.turbo/cache/77da375a012de9d0-meta.json +1 -1
  49. package/.turbo/cache/7bf2b06a479d0b30-meta.json +1 -1
  50. package/.turbo/cache/7c4645de5001b034-meta.json +1 -0
  51. package/.turbo/cache/7c4645de5001b034.tar.zst +0 -0
  52. package/.turbo/cache/7e3244d67de2d977-meta.json +1 -0
  53. package/.turbo/cache/7e3244d67de2d977.tar.zst +0 -0
  54. package/.turbo/cache/7f3b42ddf36d0158-meta.json +1 -1
  55. package/.turbo/cache/804ad767c7ba2fc3-meta.json +1 -0
  56. package/.turbo/cache/8366405184d123d2-meta.json +1 -0
  57. package/.turbo/cache/8366405184d123d2.tar.zst +0 -0
  58. package/.turbo/cache/85cc23a2de6b1009-meta.json +1 -0
  59. package/.turbo/cache/99936b010f1533f9-meta.json +1 -0
  60. package/.turbo/cache/{dc6fbe2a8d5b9d9b.tar.zst → 99936b010f1533f9.tar.zst} +0 -0
  61. package/.turbo/cache/9a9b4e449cd84be4-meta.json +1 -1
  62. package/.turbo/cache/9ae99e8e7bd83d06-meta.json +1 -1
  63. package/.turbo/cache/a275406512608e45-meta.json +1 -1
  64. package/.turbo/cache/a54b4d75b5d265de-meta.json +1 -0
  65. package/.turbo/cache/b280ed4daaf15dcb-meta.json +1 -0
  66. package/.turbo/cache/b5e6dc7fb9ae1a2f-meta.json +1 -1
  67. package/.turbo/cache/b6a202cc85cb61a0-meta.json +1 -1
  68. package/.turbo/cache/c44efc9e4ddd8a0e-meta.json +1 -1
  69. package/.turbo/cache/c47b8032d18fc452-meta.json +1 -0
  70. package/.turbo/cache/c47b8032d18fc452.tar.zst +0 -0
  71. package/.turbo/cache/c6c6411199b68170-meta.json +1 -1
  72. package/.turbo/cache/d3a05e38449c9b24-meta.json +1 -1
  73. package/.turbo/cache/d44acd685455b288-meta.json +1 -0
  74. package/.turbo/cache/d5db503b2eaf239c-meta.json +1 -1
  75. package/.turbo/cache/d683a7d23b0d7073-meta.json +1 -0
  76. package/.turbo/cache/d683a7d23b0d7073.tar.zst +0 -0
  77. package/.turbo/cache/d7caaacb8114772f-meta.json +1 -0
  78. package/.turbo/cache/d7caaacb8114772f.tar.zst +0 -0
  79. package/.turbo/cache/dad3d78b33edd9e4-meta.json +1 -0
  80. package/.turbo/cache/dad3d78b33edd9e4.tar.zst +0 -0
  81. package/.turbo/cache/db4ea5071b44ee8c-meta.json +1 -1
  82. package/.turbo/cache/de44707e76bdd80c-meta.json +1 -0
  83. package/.turbo/cache/de44707e76bdd80c.tar.zst +0 -0
  84. package/.turbo/cache/e03997efe5adad43-meta.json +1 -0
  85. package/.turbo/cache/e1aa836f0cc2d7c5-meta.json +1 -0
  86. package/.turbo/cache/e1aa836f0cc2d7c5.tar.zst +0 -0
  87. package/.turbo/cache/e62cfee068e3ef36-meta.json +1 -1
  88. package/.turbo/cache/e820cc8f220a05f3-meta.json +1 -0
  89. package/.turbo/cache/e9e36823f6c98f07-meta.json +1 -0
  90. package/.turbo/cache/e9e36823f6c98f07.tar.zst +0 -0
  91. package/.turbo/cache/f3f4ddfd3230e489-meta.json +1 -0
  92. package/.turbo/cache/f3f4ddfd3230e489.tar.zst +0 -0
  93. package/.turbo/cache/fdaf484b1ec4b5ed-meta.json +1 -0
  94. package/.vscode/settings.json +3 -0
  95. package/CHANGELOG.md +20 -0
  96. package/components/checkbox/.turbo/turbo-build.log +3 -3
  97. package/components/checkbox/.turbo/turbo-bundler.log +3 -3
  98. package/components/checkbox/README.md +1 -1
  99. package/components/checkbox/demo/api.min.js +79 -20
  100. package/components/checkbox/demo/index.min.js +79 -20
  101. package/components/checkbox/dist/index.js +79 -20
  102. package/components/combobox/.turbo/turbo-build.log +3 -3
  103. package/components/combobox/.turbo/turbo-bundler.log +3 -3
  104. package/components/combobox/README.md +4 -4
  105. package/components/combobox/demo/api.min.js +160 -42
  106. package/components/combobox/demo/index.min.js +160 -42
  107. package/components/combobox/dist/index.js +158 -40
  108. package/components/counter/.turbo/turbo-build$colon$sass.log +172 -0
  109. package/components/counter/.turbo/turbo-build$colon$version.log +10 -0
  110. package/components/counter/.turbo/turbo-build.log +278 -4
  111. package/components/counter/.turbo/turbo-bundler.log +3 -3
  112. package/components/counter/.turbo/turbo-sass$colon$render.log +36 -0
  113. package/components/counter/README.md +188 -0
  114. package/components/counter/demo/api.md +98 -1016
  115. package/components/counter/demo/api.min.js +1670 -32
  116. package/components/counter/demo/index.js +2 -1
  117. package/components/counter/demo/index.md +194 -0
  118. package/components/counter/demo/index.min.js +1702 -19
  119. package/components/counter/dist/auro-counter-button.d.ts +13 -0
  120. package/components/counter/dist/auro-counter-button.d.ts.map +1 -0
  121. package/components/counter/dist/auro-counter-group.d.ts +77 -6
  122. package/components/counter/dist/auro-counter-group.d.ts.map +1 -1
  123. package/components/counter/dist/auro-counter.d.ts +78 -0
  124. package/components/counter/dist/auro-counter.d.ts.map +1 -1
  125. package/components/counter/dist/formkit/auro-dropdownVersion.d.ts +3 -0
  126. package/components/counter/dist/formkit/auro-dropdownVersion.d.ts.map +1 -0
  127. package/components/counter/dist/iconVersion.d.ts +3 -0
  128. package/components/counter/dist/iconVersion.d.ts.map +1 -0
  129. package/components/counter/dist/index.js +1670 -32
  130. package/components/counter/dist/styles/color-css.d.ts +3 -0
  131. package/components/counter/dist/styles/color-css.d.ts.map +1 -0
  132. package/components/counter/dist/styles/counter-button-color-css.d.ts +3 -0
  133. package/components/counter/dist/styles/counter-button-color-css.d.ts.map +1 -0
  134. package/components/counter/dist/styles/counter-button-css.d.ts +3 -0
  135. package/components/counter/dist/styles/counter-button-css.d.ts.map +1 -0
  136. package/components/counter/dist/styles/counter-button-tokens-css.d.ts +3 -0
  137. package/components/counter/dist/styles/counter-button-tokens-css.d.ts.map +1 -0
  138. package/components/counter/dist/styles/counter-group-color-css.d.ts +3 -0
  139. package/components/counter/dist/styles/counter-group-color-css.d.ts.map +1 -0
  140. package/components/counter/dist/styles/tokens-css.d.ts +3 -0
  141. package/components/counter/dist/styles/tokens-css.d.ts.map +1 -0
  142. package/components/counter/package.json +8 -2
  143. package/components/counter/src/auro-counter-button.js +42 -0
  144. package/components/counter/src/auro-counter-group.js +150 -21
  145. package/components/counter/src/auro-counter.js +272 -12
  146. package/components/counter/src/formkit/auro-dropdownVersion.js +1 -0
  147. package/components/counter/src/iconVersion.js +1 -0
  148. package/components/counter/src/index.js +1 -1
  149. package/components/counter/src/styles/color-css.js +2 -0
  150. package/components/counter/src/styles/color.css +25 -0
  151. package/components/counter/src/styles/color.scss +44 -0
  152. package/components/counter/src/styles/counter-button-color-css.js +2 -0
  153. package/components/counter/src/styles/counter-button-color.css +14 -0
  154. package/components/counter/src/styles/counter-button-color.scss +29 -0
  155. package/components/counter/src/styles/counter-button-css.js +2 -0
  156. package/components/counter/src/styles/counter-button-tokens-css.js +2 -0
  157. package/components/counter/src/styles/counter-button-tokens.css +7 -0
  158. package/components/counter/src/styles/counter-button-tokens.scss +9 -0
  159. package/components/counter/src/styles/counter-button.css +187 -0
  160. package/components/counter/src/styles/counter-button.scss +83 -0
  161. package/components/counter/src/styles/counter-group-color-css.js +2 -0
  162. package/components/counter/src/styles/counter-group-color.css +4 -0
  163. package/components/counter/src/styles/counter-group-color.scss +19 -0
  164. package/components/counter/src/styles/counter-group-css.js +1 -1
  165. package/components/counter/src/styles/counter-group.css +13 -1
  166. package/components/counter/src/styles/counter-group.scss +14 -1
  167. package/components/counter/src/styles/style-css.js +1 -1
  168. package/components/counter/src/styles/style.css +43 -1
  169. package/components/counter/src/styles/style.scss +48 -2
  170. package/components/counter/src/styles/tokens-css.js +2 -0
  171. package/components/counter/src/styles/tokens.css +11 -0
  172. package/components/counter/src/styles/tokens.scss +24 -0
  173. package/components/datepicker/.turbo/turbo-build.log +2 -2
  174. package/components/datepicker/.turbo/turbo-bundler.log +2 -2
  175. package/components/datepicker/README.md +4 -4
  176. package/components/datepicker/demo/api.min.js +158 -40
  177. package/components/datepicker/demo/index.min.js +158 -40
  178. package/components/datepicker/dist/index.js +158 -40
  179. package/components/dropdown/.turbo/turbo-build.log +3 -3
  180. package/components/dropdown/.turbo/turbo-bundler.log +2 -2
  181. package/components/dropdown/README.md +1 -1
  182. package/components/form/.turbo/turbo-build.log +3 -3
  183. package/components/form/.turbo/turbo-bundler.log +3 -3
  184. package/components/form/README.md +1 -1
  185. package/components/input/.turbo/turbo-build.log +2 -2
  186. package/components/input/.turbo/turbo-bundler.log +3 -3
  187. package/components/input/README.md +1 -1
  188. package/components/input/demo/api.min.js +79 -20
  189. package/components/input/demo/index.min.js +79 -20
  190. package/components/input/dist/index.js +79 -20
  191. package/components/menu/.turbo/turbo-build.log +3 -3
  192. package/components/menu/.turbo/turbo-bundler.log +2 -2
  193. package/components/menu/README.md +1 -1
  194. package/components/radio/.turbo/turbo-build.log +3 -3
  195. package/components/radio/.turbo/turbo-bundler.log +3 -3
  196. package/components/radio/README.md +1 -1
  197. package/components/radio/demo/api.min.js +79 -20
  198. package/components/radio/demo/index.min.js +79 -20
  199. package/components/radio/dist/index.js +79 -20
  200. package/components/select/.turbo/turbo-build.log +3 -3
  201. package/components/select/.turbo/turbo-bundler.log +6 -3
  202. package/components/select/README.md +3 -3
  203. package/components/select/demo/api.min.js +79 -20
  204. package/components/select/demo/index.min.js +79 -20
  205. package/components/select/dist/index.js +79 -20
  206. package/package.json +1 -1
  207. package/packages/form-validation/src/validation.js +79 -20
  208. package/packages/utils/package.json +12 -0
  209. package/packages/utils/src/iconUtil.js +25 -0
  210. package/packages/utils/src/index.js +1 -0
  211. package/.turbo/cache/06845874cc82b186-meta.json +0 -1
  212. package/.turbo/cache/06845874cc82b186.tar.zst +0 -0
  213. package/.turbo/cache/0a96f136af026d57-meta.json +0 -1
  214. package/.turbo/cache/0a96f136af026d57.tar.zst +0 -0
  215. package/.turbo/cache/0c9ee13a7c863709-meta.json +0 -1
  216. package/.turbo/cache/0ca9c5ccf3e90704-meta.json +0 -1
  217. package/.turbo/cache/1a8d6e4cab38121a-meta.json +0 -1
  218. package/.turbo/cache/1ce32edb29492636-meta.json +0 -1
  219. package/.turbo/cache/1ce32edb29492636.tar.zst +0 -0
  220. package/.turbo/cache/2ec1b6d23563659e-meta.json +0 -1
  221. package/.turbo/cache/3afc5b2ea7c1bf51-meta.json +0 -1
  222. package/.turbo/cache/3afc5b2ea7c1bf51.tar.zst +0 -0
  223. package/.turbo/cache/40de011abc31c0cf-meta.json +0 -1
  224. package/.turbo/cache/40de011abc31c0cf.tar.zst +0 -0
  225. package/.turbo/cache/426c825f57054f5f-meta.json +0 -1
  226. package/.turbo/cache/426c825f57054f5f.tar.zst +0 -0
  227. package/.turbo/cache/4524aae614598308-meta.json +0 -1
  228. package/.turbo/cache/4524aae614598308.tar.zst +0 -0
  229. package/.turbo/cache/45ea3e30ae949d53-meta.json +0 -1
  230. package/.turbo/cache/45ea3e30ae949d53.tar.zst +0 -0
  231. package/.turbo/cache/577d86e4072c01f5-meta.json +0 -1
  232. package/.turbo/cache/577d86e4072c01f5.tar.zst +0 -0
  233. package/.turbo/cache/5d770c787aa78d4d-meta.json +0 -1
  234. package/.turbo/cache/5d770c787aa78d4d.tar.zst +0 -0
  235. package/.turbo/cache/624bf5350aacae42-meta.json +0 -1
  236. package/.turbo/cache/68060c79df03f45a-meta.json +0 -1
  237. package/.turbo/cache/68060c79df03f45a.tar.zst +0 -0
  238. package/.turbo/cache/68e3afb31feab4e9-meta.json +0 -1
  239. package/.turbo/cache/6a1c28febca6163f-meta.json +0 -1
  240. package/.turbo/cache/6bc4e2d881af6ffb-meta.json +0 -1
  241. package/.turbo/cache/6bc4e2d881af6ffb.tar.zst +0 -0
  242. package/.turbo/cache/6c8ea74dc3b07640-meta.json +0 -1
  243. package/.turbo/cache/7a6ef918375d4010-meta.json +0 -1
  244. package/.turbo/cache/7a6ef918375d4010.tar.zst +0 -0
  245. package/.turbo/cache/7da23884069695e6-meta.json +0 -1
  246. package/.turbo/cache/7da23884069695e6.tar.zst +0 -0
  247. package/.turbo/cache/83e1029b14af6545-meta.json +0 -1
  248. package/.turbo/cache/8410cd8eeadc3af7-meta.json +0 -1
  249. package/.turbo/cache/98936c69a55361fc-meta.json +0 -1
  250. package/.turbo/cache/a3db8f78e018a955-meta.json +0 -1
  251. package/.turbo/cache/a3db8f78e018a955.tar.zst +0 -0
  252. package/.turbo/cache/b91d2888e699c76a-meta.json +0 -1
  253. package/.turbo/cache/b91d2888e699c76a.tar.zst +0 -0
  254. package/.turbo/cache/bdc6aadfdbb6feb9-meta.json +0 -1
  255. package/.turbo/cache/c114d428251f56a5-meta.json +0 -1
  256. package/.turbo/cache/c114d428251f56a5.tar.zst +0 -0
  257. package/.turbo/cache/c7338727efbc457a-meta.json +0 -1
  258. package/.turbo/cache/c7338727efbc457a.tar.zst +0 -0
  259. package/.turbo/cache/cf235df1ef8d90b0-meta.json +0 -1
  260. package/.turbo/cache/d1d1a072ee099992-meta.json +0 -1
  261. package/.turbo/cache/d9331772756d3d94-meta.json +0 -1
  262. package/.turbo/cache/d9331772756d3d94.tar.zst +0 -0
  263. package/.turbo/cache/dc6fbe2a8d5b9d9b-meta.json +0 -1
  264. package/.turbo/cache/df28a5ee199e995d-meta.json +0 -1
  265. package/.turbo/cache/e1e2582a7131011f-meta.json +0 -1
  266. package/.turbo/cache/e6271174c00888fe-meta.json +0 -1
  267. package/.turbo/cache/e8485d2a584b5f08-meta.json +0 -1
  268. package/.turbo/cache/e8485d2a584b5f08.tar.zst +0 -0
  269. package/.turbo/cache/e86451b8f88594b2-meta.json +0 -1
  270. package/.turbo/cache/e86451b8f88594b2.tar.zst +0 -0
  271. package/.turbo/cache/e9872ba002963dd3-meta.json +0 -1
  272. package/.turbo/cache/e9872ba002963dd3.tar.zst +0 -0
  273. /package/.turbo/cache/{e6271174c00888fe.tar.zst → 012997da408d7381.tar.zst} +0 -0
  274. /package/.turbo/cache/{6a1c28febca6163f.tar.zst → 144803363093af6b.tar.zst} +0 -0
  275. /package/.turbo/cache/{0c9ee13a7c863709.tar.zst → 2706814699cff63a.tar.zst} +0 -0
  276. /package/.turbo/cache/{8410cd8eeadc3af7.tar.zst → 29d704afd7578cda.tar.zst} +0 -0
  277. /package/.turbo/cache/{68e3afb31feab4e9.tar.zst → 318a9085a92f2d32.tar.zst} +0 -0
  278. /package/.turbo/cache/{1a8d6e4cab38121a.tar.zst → 457af7906413d2ff.tar.zst} +0 -0
  279. /package/.turbo/cache/{6c8ea74dc3b07640.tar.zst → 5567d6b2fdae56a9.tar.zst} +0 -0
  280. /package/.turbo/cache/{d1d1a072ee099992.tar.zst → 769652d1b874d7cf.tar.zst} +0 -0
  281. /package/.turbo/cache/{df28a5ee199e995d.tar.zst → 804ad767c7ba2fc3.tar.zst} +0 -0
  282. /package/.turbo/cache/{bdc6aadfdbb6feb9.tar.zst → 85cc23a2de6b1009.tar.zst} +0 -0
  283. /package/.turbo/cache/{e1e2582a7131011f.tar.zst → a54b4d75b5d265de.tar.zst} +0 -0
  284. /package/.turbo/cache/{83e1029b14af6545.tar.zst → b280ed4daaf15dcb.tar.zst} +0 -0
  285. /package/.turbo/cache/{624bf5350aacae42.tar.zst → d44acd685455b288.tar.zst} +0 -0
  286. /package/.turbo/cache/{cf235df1ef8d90b0.tar.zst → e03997efe5adad43.tar.zst} +0 -0
  287. /package/.turbo/cache/{2ec1b6d23563659e.tar.zst → e820cc8f220a05f3.tar.zst} +0 -0
  288. /package/.turbo/cache/{98936c69a55361fc.tar.zst → fdaf484b1ec4b5ed.tar.zst} +0 -0
@@ -353,30 +353,87 @@ class AuroFormValidation {
353
353
  }
354
354
 
355
355
  /**
356
- * Determines the validity state of the element based on the common attribute restrictions (pattern).
357
- * @private
358
- * @param {object} elem - HTML element to validate.
356
+ * Validates the attributes of a given element based on predefined validation rules.
357
+ *
358
+ * @param {HTMLElement} elem - The element to be validated.
359
359
  * @returns {void}
360
+ *
361
+ * @example
362
+ * // Assuming `inputElement` is a reference to an input element in the DOM
363
+ * validateElementAttributes(inputElement);
364
+ *
365
+ * The function checks the element's attributes against the validation rules defined for 'input' and 'counter' types.
366
+ * If a validation rule is violated, it sets the element's validity state and error message accordingly.
367
+ *
368
+ * Validation rules:
369
+ * - input:
370
+ * - length:
371
+ * - tooShort: Checks if the value length is less than the minimum length.
372
+ * - tooLong: Checks if the value length exceeds the maximum length.
373
+ * - pattern:
374
+ * - patternMismatch: Checks if the value does not match the specified pattern.
375
+ * - counter:
376
+ * - range:
377
+ * - rangeOverflow: Checks if the value exceeds the maximum value.
378
+ * - rangeUnderflow: Checks if the value is less than the minimum value.
360
379
  */
361
- validateAttributes(elem) {
362
- if (elem.pattern) {
363
- const pattern = new RegExp(`^${elem.pattern}$`, 'u');
364
-
365
- if (!pattern.test(elem.value)) {
366
- elem.validity = 'patternMismatch';
367
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || '';
380
+ validateElementAttributes(elem) {
381
+ const validationRules = {
382
+ input: {
383
+ length: [
384
+ {
385
+ check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
386
+ validity: 'tooShort',
387
+ message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
388
+ },
389
+ {
390
+ check: (e) => e.value?.length > e.maxLength,
391
+ validity: 'tooLong',
392
+ message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
393
+ }
394
+ ],
395
+ pattern: [
396
+ {
397
+ check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
398
+ validity: 'patternMismatch',
399
+ message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
400
+ }
401
+ ]
402
+ },
403
+ counter: {
404
+ range: [
405
+ {
406
+ check: (e) => e.max !== undefined && Number(e.max) < Number(e.value),
407
+ validity: 'rangeOverflow',
408
+ message: e => e.getAttribute('setCustomValidityRangeOverflow') || ''
409
+ },
410
+ {
411
+ check: (e) => e.min !== undefined && Number(e.min) > Number(e.value),
412
+ validity: 'rangeUnderflow',
413
+ message: e => e.getAttribute('setCustomValidityRangeUnderflow') || ''
414
+ }
415
+ ]
368
416
  }
417
+ };
418
+
419
+ let elementType;
420
+ if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
421
+ elementType = 'input';
422
+ } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
423
+ elementType = 'counter';
369
424
  }
370
-
371
- // Length > 0 is required to prevent the error message from showing when the input is empty
372
- if (elem.value?.length > 0 && elem.value?.length < elem.minLength) {
373
- elem.validity = 'tooShort';
374
- elem.errorMessage = elem.setCustomValidityTooShort || elem.setCustomValidity || '';
375
- }
376
425
 
377
- if (elem.value?.length > elem.maxLength) {
378
- elem.validity = 'tooLong';
379
- elem.errorMessage = elem.setCustomValidityTooLong || elem.setCustomValidity || '';
426
+ if (elementType) {
427
+ const rules = validationRules[elementType];
428
+
429
+ if (rules) {
430
+ Object.values(rules).flat().forEach(rule => {
431
+ if (rule.check(elem)) {
432
+ elem.validity = rule.validity;
433
+ elem.errorMessage = rule.message(elem);
434
+ }
435
+ });
436
+ }
380
437
  }
381
438
  }
382
439
 
@@ -486,7 +543,9 @@ class AuroFormValidation {
486
543
  elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
487
544
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
488
545
  this.validateType(elem);
489
- this.validateAttributes(elem);
546
+ this.validateElementAttributes(elem);
547
+ } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
548
+ this.validateElementAttributes(elem);
490
549
  }
491
550
  }
492
551
 
@@ -353,30 +353,87 @@ class AuroFormValidation {
353
353
  }
354
354
 
355
355
  /**
356
- * Determines the validity state of the element based on the common attribute restrictions (pattern).
357
- * @private
358
- * @param {object} elem - HTML element to validate.
356
+ * Validates the attributes of a given element based on predefined validation rules.
357
+ *
358
+ * @param {HTMLElement} elem - The element to be validated.
359
359
  * @returns {void}
360
+ *
361
+ * @example
362
+ * // Assuming `inputElement` is a reference to an input element in the DOM
363
+ * validateElementAttributes(inputElement);
364
+ *
365
+ * The function checks the element's attributes against the validation rules defined for 'input' and 'counter' types.
366
+ * If a validation rule is violated, it sets the element's validity state and error message accordingly.
367
+ *
368
+ * Validation rules:
369
+ * - input:
370
+ * - length:
371
+ * - tooShort: Checks if the value length is less than the minimum length.
372
+ * - tooLong: Checks if the value length exceeds the maximum length.
373
+ * - pattern:
374
+ * - patternMismatch: Checks if the value does not match the specified pattern.
375
+ * - counter:
376
+ * - range:
377
+ * - rangeOverflow: Checks if the value exceeds the maximum value.
378
+ * - rangeUnderflow: Checks if the value is less than the minimum value.
360
379
  */
361
- validateAttributes(elem) {
362
- if (elem.pattern) {
363
- const pattern = new RegExp(`^${elem.pattern}$`, 'u');
364
-
365
- if (!pattern.test(elem.value)) {
366
- elem.validity = 'patternMismatch';
367
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || '';
380
+ validateElementAttributes(elem) {
381
+ const validationRules = {
382
+ input: {
383
+ length: [
384
+ {
385
+ check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
386
+ validity: 'tooShort',
387
+ message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
388
+ },
389
+ {
390
+ check: (e) => e.value?.length > e.maxLength,
391
+ validity: 'tooLong',
392
+ message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
393
+ }
394
+ ],
395
+ pattern: [
396
+ {
397
+ check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
398
+ validity: 'patternMismatch',
399
+ message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
400
+ }
401
+ ]
402
+ },
403
+ counter: {
404
+ range: [
405
+ {
406
+ check: (e) => e.max !== undefined && Number(e.max) < Number(e.value),
407
+ validity: 'rangeOverflow',
408
+ message: e => e.getAttribute('setCustomValidityRangeOverflow') || ''
409
+ },
410
+ {
411
+ check: (e) => e.min !== undefined && Number(e.min) > Number(e.value),
412
+ validity: 'rangeUnderflow',
413
+ message: e => e.getAttribute('setCustomValidityRangeUnderflow') || ''
414
+ }
415
+ ]
368
416
  }
417
+ };
418
+
419
+ let elementType;
420
+ if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
421
+ elementType = 'input';
422
+ } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
423
+ elementType = 'counter';
369
424
  }
370
-
371
- // Length > 0 is required to prevent the error message from showing when the input is empty
372
- if (elem.value?.length > 0 && elem.value?.length < elem.minLength) {
373
- elem.validity = 'tooShort';
374
- elem.errorMessage = elem.setCustomValidityTooShort || elem.setCustomValidity || '';
375
- }
376
425
 
377
- if (elem.value?.length > elem.maxLength) {
378
- elem.validity = 'tooLong';
379
- elem.errorMessage = elem.setCustomValidityTooLong || elem.setCustomValidity || '';
426
+ if (elementType) {
427
+ const rules = validationRules[elementType];
428
+
429
+ if (rules) {
430
+ Object.values(rules).flat().forEach(rule => {
431
+ if (rule.check(elem)) {
432
+ elem.validity = rule.validity;
433
+ elem.errorMessage = rule.message(elem);
434
+ }
435
+ });
436
+ }
380
437
  }
381
438
  }
382
439
 
@@ -486,7 +543,9 @@ class AuroFormValidation {
486
543
  elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
487
544
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
488
545
  this.validateType(elem);
489
- this.validateAttributes(elem);
546
+ this.validateElementAttributes(elem);
547
+ } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
548
+ this.validateElementAttributes(elem);
490
549
  }
491
550
  }
492
551
 
@@ -64,13 +64,13 @@ More info and automated migrator: https://sass-lang.com/d/import
64
64
 
65
65
  
66
66
  ./src/index.js → dist...
67
- created dist in 2.6s
67
+ created dist in 2.7s
68
68
  
69
69
  ./demo/index.js → ./demo/...
70
- created ./demo/ in 2.6s
70
+ created ./demo/ in 2.3s
71
71
  
72
72
  ./demo/api.js → ./demo/...
73
- created ./demo/ in 1.8s
73
+ created ./demo/ in 2.1s
74
74
 
75
75
  > @aurodesignsystem/auro-combobox@2.1.4 build:docs
76
76
  > wca analyze 'scripts/wca/*.js' --outFiles docs/api.md; node ../../packages/build-tools/src/docProcessor.mjs --component combobox
@@ -6,16 +6,16 @@
6
6
  ./src/index.js → dist...
7
7
  (!) Unresolved dependencies
8
8
  https://rollupjs.org/troubleshooting/#warning-treating-module-as-external-dependency
9
- @auro-formkit/auro-dropdown (imported by "src/auro-combobox.js")
10
9
  @auro-formkit/auro-input (imported by "src/auro-combobox.js")
11
- created dist in 685ms
10
+ @auro-formkit/auro-dropdown (imported by "src/auro-combobox.js")
11
+ created dist in 812ms
12
12
  
13
13
  ./demo/index.js → ./demo/...
14
14
  (!) Unresolved dependencies
15
15
  https://rollupjs.org/troubleshooting/#warning-treating-module-as-external-dependency
16
16
  @auro-formkit/auro-dropdown (imported by "src/auro-combobox.js")
17
17
  @auro-formkit/auro-input (imported by "src/auro-combobox.js")
18
- created ./demo/ in 963ms
18
+ created ./demo/ in 971ms
19
19
  
20
20
  ./demo/api.js → ./demo/...
21
21
  (!) Unresolved dependencies
@@ -100,10 +100,10 @@ In cases where the project is not able to process JS assets, there are pre-proce
100
100
  <!-- The below content is automatically added from ../../docs/templates/componentBundleUseModBrowsers.md -->
101
101
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/design-tokens@4.12.1/dist/tokens/CSSCustomProperties.css" />
102
102
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/webcorestylesheets@5.1.2/dist/bundled/essentials.css" />
103
- <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit/auro-dropdown@2.0.0-beta.7/dist/auro-dropdown__bundled.js" type="module"></script>
104
- <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit/auro-input@2.0.0-beta.7/dist/auro-input__bundled.js" type="module"></script>
105
- <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit/auro-menu@2.0.0-beta.7/dist/auro-menu__bundled.js" type="module"></script>
106
- <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit/auro-combobox@2.0.0-beta.7/dist/auro-combobox__bundled.js" type="module"></script>
103
+ <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit/auro-dropdown@2.0.0-beta.8/dist/auro-dropdown__bundled.js" type="module"></script>
104
+ <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit/auro-input@2.0.0-beta.8/dist/auro-input__bundled.js" type="module"></script>
105
+ <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit/auro-menu@2.0.0-beta.8/dist/auro-menu__bundled.js" type="module"></script>
106
+ <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit/auro-combobox@2.0.0-beta.8/dist/auro-combobox__bundled.js" type="module"></script>
107
107
  <!-- AURO-GENERATED-CONTENT:END -->
108
108
 
109
109
  ## auro-combobox use cases
@@ -340,30 +340,87 @@ let AuroFormValidation$1 = class AuroFormValidation {
340
340
  }
341
341
 
342
342
  /**
343
- * Determines the validity state of the element based on the common attribute restrictions (pattern).
344
- * @private
345
- * @param {object} elem - HTML element to validate.
343
+ * Validates the attributes of a given element based on predefined validation rules.
344
+ *
345
+ * @param {HTMLElement} elem - The element to be validated.
346
346
  * @returns {void}
347
- */
348
- validateAttributes(elem) {
349
- if (elem.pattern) {
350
- const pattern = new RegExp(`^${elem.pattern}$`, 'u');
351
-
352
- if (!pattern.test(elem.value)) {
353
- elem.validity = 'patternMismatch';
354
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || '';
347
+ *
348
+ * @example
349
+ * // Assuming `inputElement` is a reference to an input element in the DOM
350
+ * validateElementAttributes(inputElement);
351
+ *
352
+ * The function checks the element's attributes against the validation rules defined for 'input' and 'counter' types.
353
+ * If a validation rule is violated, it sets the element's validity state and error message accordingly.
354
+ *
355
+ * Validation rules:
356
+ * - input:
357
+ * - length:
358
+ * - tooShort: Checks if the value length is less than the minimum length.
359
+ * - tooLong: Checks if the value length exceeds the maximum length.
360
+ * - pattern:
361
+ * - patternMismatch: Checks if the value does not match the specified pattern.
362
+ * - counter:
363
+ * - range:
364
+ * - rangeOverflow: Checks if the value exceeds the maximum value.
365
+ * - rangeUnderflow: Checks if the value is less than the minimum value.
366
+ */
367
+ validateElementAttributes(elem) {
368
+ const validationRules = {
369
+ input: {
370
+ length: [
371
+ {
372
+ check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
373
+ validity: 'tooShort',
374
+ message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
375
+ },
376
+ {
377
+ check: (e) => e.value?.length > e.maxLength,
378
+ validity: 'tooLong',
379
+ message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
380
+ }
381
+ ],
382
+ pattern: [
383
+ {
384
+ check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
385
+ validity: 'patternMismatch',
386
+ message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
387
+ }
388
+ ]
389
+ },
390
+ counter: {
391
+ range: [
392
+ {
393
+ check: (e) => e.max !== undefined && Number(e.max) < Number(e.value),
394
+ validity: 'rangeOverflow',
395
+ message: e => e.getAttribute('setCustomValidityRangeOverflow') || ''
396
+ },
397
+ {
398
+ check: (e) => e.min !== undefined && Number(e.min) > Number(e.value),
399
+ validity: 'rangeUnderflow',
400
+ message: e => e.getAttribute('setCustomValidityRangeUnderflow') || ''
401
+ }
402
+ ]
355
403
  }
404
+ };
405
+
406
+ let elementType;
407
+ if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
408
+ elementType = 'input';
409
+ } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
410
+ elementType = 'counter';
356
411
  }
357
-
358
- // Length > 0 is required to prevent the error message from showing when the input is empty
359
- if (elem.value?.length > 0 && elem.value?.length < elem.minLength) {
360
- elem.validity = 'tooShort';
361
- elem.errorMessage = elem.setCustomValidityTooShort || elem.setCustomValidity || '';
362
- }
363
412
 
364
- if (elem.value?.length > elem.maxLength) {
365
- elem.validity = 'tooLong';
366
- elem.errorMessage = elem.setCustomValidityTooLong || elem.setCustomValidity || '';
413
+ if (elementType) {
414
+ const rules = validationRules[elementType];
415
+
416
+ if (rules) {
417
+ Object.values(rules).flat().forEach(rule => {
418
+ if (rule.check(elem)) {
419
+ elem.validity = rule.validity;
420
+ elem.errorMessage = rule.message(elem);
421
+ }
422
+ });
423
+ }
367
424
  }
368
425
  }
369
426
 
@@ -473,7 +530,9 @@ let AuroFormValidation$1 = class AuroFormValidation {
473
530
  elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
474
531
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
475
532
  this.validateType(elem);
476
- this.validateAttributes(elem);
533
+ this.validateElementAttributes(elem);
534
+ } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
535
+ this.validateElementAttributes(elem);
477
536
  }
478
537
  }
479
538
 
@@ -5363,30 +5422,87 @@ class AuroFormValidation {
5363
5422
  }
5364
5423
 
5365
5424
  /**
5366
- * Determines the validity state of the element based on the common attribute restrictions (pattern).
5367
- * @private
5368
- * @param {object} elem - HTML element to validate.
5425
+ * Validates the attributes of a given element based on predefined validation rules.
5426
+ *
5427
+ * @param {HTMLElement} elem - The element to be validated.
5369
5428
  * @returns {void}
5370
- */
5371
- validateAttributes(elem) {
5372
- if (elem.pattern) {
5373
- const pattern = new RegExp(`^${elem.pattern}$`, 'u');
5374
-
5375
- if (!pattern.test(elem.value)) {
5376
- elem.validity = 'patternMismatch';
5377
- elem.errorMessage = elem.setCustomValidityPatternMismatch || elem.setCustomValidity || '';
5429
+ *
5430
+ * @example
5431
+ * // Assuming `inputElement` is a reference to an input element in the DOM
5432
+ * validateElementAttributes(inputElement);
5433
+ *
5434
+ * The function checks the element's attributes against the validation rules defined for 'input' and 'counter' types.
5435
+ * If a validation rule is violated, it sets the element's validity state and error message accordingly.
5436
+ *
5437
+ * Validation rules:
5438
+ * - input:
5439
+ * - length:
5440
+ * - tooShort: Checks if the value length is less than the minimum length.
5441
+ * - tooLong: Checks if the value length exceeds the maximum length.
5442
+ * - pattern:
5443
+ * - patternMismatch: Checks if the value does not match the specified pattern.
5444
+ * - counter:
5445
+ * - range:
5446
+ * - rangeOverflow: Checks if the value exceeds the maximum value.
5447
+ * - rangeUnderflow: Checks if the value is less than the minimum value.
5448
+ */
5449
+ validateElementAttributes(elem) {
5450
+ const validationRules = {
5451
+ input: {
5452
+ length: [
5453
+ {
5454
+ check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
5455
+ validity: 'tooShort',
5456
+ message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
5457
+ },
5458
+ {
5459
+ check: (e) => e.value?.length > e.maxLength,
5460
+ validity: 'tooLong',
5461
+ message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
5462
+ }
5463
+ ],
5464
+ pattern: [
5465
+ {
5466
+ check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
5467
+ validity: 'patternMismatch',
5468
+ message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
5469
+ }
5470
+ ]
5471
+ },
5472
+ counter: {
5473
+ range: [
5474
+ {
5475
+ check: (e) => e.max !== undefined && Number(e.max) < Number(e.value),
5476
+ validity: 'rangeOverflow',
5477
+ message: e => e.getAttribute('setCustomValidityRangeOverflow') || ''
5478
+ },
5479
+ {
5480
+ check: (e) => e.min !== undefined && Number(e.min) > Number(e.value),
5481
+ validity: 'rangeUnderflow',
5482
+ message: e => e.getAttribute('setCustomValidityRangeUnderflow') || ''
5483
+ }
5484
+ ]
5378
5485
  }
5486
+ };
5487
+
5488
+ let elementType;
5489
+ if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
5490
+ elementType = 'input';
5491
+ } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
5492
+ elementType = 'counter';
5379
5493
  }
5380
-
5381
- // Length > 0 is required to prevent the error message from showing when the input is empty
5382
- if (elem.value?.length > 0 && elem.value?.length < elem.minLength) {
5383
- elem.validity = 'tooShort';
5384
- elem.errorMessage = elem.setCustomValidityTooShort || elem.setCustomValidity || '';
5385
- }
5386
5494
 
5387
- if (elem.value?.length > elem.maxLength) {
5388
- elem.validity = 'tooLong';
5389
- elem.errorMessage = elem.setCustomValidityTooLong || elem.setCustomValidity || '';
5495
+ if (elementType) {
5496
+ const rules = validationRules[elementType];
5497
+
5498
+ if (rules) {
5499
+ Object.values(rules).flat().forEach(rule => {
5500
+ if (rule.check(elem)) {
5501
+ elem.validity = rule.validity;
5502
+ elem.errorMessage = rule.message(elem);
5503
+ }
5504
+ });
5505
+ }
5390
5506
  }
5391
5507
  }
5392
5508
 
@@ -5496,7 +5612,9 @@ class AuroFormValidation {
5496
5612
  elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
5497
5613
  } else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
5498
5614
  this.validateType(elem);
5499
- this.validateAttributes(elem);
5615
+ this.validateElementAttributes(elem);
5616
+ } else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
5617
+ this.validateElementAttributes(elem);
5500
5618
  }
5501
5619
  }
5502
5620