@warp-ds/elements 2.10.0-next.15 → 2.10.0-next.17

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 (594) hide show
  1. package/dist/.storybook/utilities.js +4 -4
  2. package/dist/api.js.map +2 -2
  3. package/dist/custom-elements.json +68 -56
  4. package/dist/docs/affix/affix.md +2 -2
  5. package/dist/docs/affix/api.md +2 -2
  6. package/dist/docs/alert/alert.md +4 -4
  7. package/dist/docs/alert/api.md +4 -4
  8. package/dist/docs/attention/api.md +2 -2
  9. package/dist/docs/attention/attention.md +2 -2
  10. package/dist/docs/badge/api.md +50 -4
  11. package/dist/docs/badge/badge.md +50 -4
  12. package/dist/docs/box/api.md +2 -2
  13. package/dist/docs/box/box.md +2 -2
  14. package/dist/docs/checkbox/api.md +2 -2
  15. package/dist/docs/checkbox/checkbox.md +176 -2
  16. package/dist/docs/checkbox/styling.md +173 -0
  17. package/dist/docs/checkbox-group/checkbox-group.md +43 -30
  18. package/dist/docs/checkbox-group/styling.md +31 -29
  19. package/dist/docs/combobox/api.md +12 -12
  20. package/dist/docs/combobox/combobox.md +12 -12
  21. package/dist/docs/datepicker/api.md +6 -6
  22. package/dist/docs/datepicker/datepicker.md +6 -6
  23. package/dist/docs/icon/api.md +3 -3
  24. package/dist/docs/icon/icon.md +3 -3
  25. package/dist/docs/index.md +1 -1
  26. package/dist/docs/radio-group/api.md +4 -4
  27. package/dist/docs/radio-group/radio-group.md +183 -68
  28. package/dist/docs/radio-group/styling.md +179 -64
  29. package/dist/docs/snackbar/api.md +1 -1
  30. package/dist/docs/snackbar/snackbar.md +1 -1
  31. package/dist/docs/snackbar-item/api.md +2 -2
  32. package/dist/docs/snackbar-item/snackbar-item.md +2 -2
  33. package/dist/index.d.ts +24 -2
  34. package/dist/packages/affix/affix.d.ts +4 -4
  35. package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
  36. package/dist/packages/affix/affix.hydration.test.js +15 -15
  37. package/dist/packages/affix/affix.js +345 -315
  38. package/dist/packages/affix/affix.js.map +2 -2
  39. package/dist/packages/affix/affix.react.stories.d.ts +2 -2
  40. package/dist/packages/affix/affix.react.stories.js +3 -3
  41. package/dist/packages/affix/affix.react.test.js +5 -3
  42. package/dist/packages/affix/affix.stories.d.ts +3 -3
  43. package/dist/packages/affix/affix.stories.js +10 -10
  44. package/dist/packages/affix/affix.test.d.ts +1 -1
  45. package/dist/packages/affix/affix.test.js +10 -10
  46. package/dist/packages/affix/react.d.ts +2 -2
  47. package/dist/packages/affix/react.js +6 -6
  48. package/dist/packages/affix/styles.js +1 -1
  49. package/dist/packages/alert/alert.d.ts +3 -3
  50. package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
  51. package/dist/packages/alert/alert.hydration.test.js +21 -21
  52. package/dist/packages/alert/alert.js +344 -319
  53. package/dist/packages/alert/alert.js.map +2 -2
  54. package/dist/packages/alert/alert.react.stories.d.ts +2 -2
  55. package/dist/packages/alert/alert.react.stories.js +13 -13
  56. package/dist/packages/alert/alert.stories.d.ts +4 -4
  57. package/dist/packages/alert/alert.stories.js +29 -27
  58. package/dist/packages/alert/alert.test.d.ts +1 -1
  59. package/dist/packages/alert/alert.test.js +34 -21
  60. package/dist/packages/alert/react.d.ts +1 -1
  61. package/dist/packages/alert/react.js +4 -4
  62. package/dist/packages/alert/styles.js +1 -1
  63. package/dist/packages/attention/attention.d.ts +7 -7
  64. package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
  65. package/dist/packages/attention/attention.hydration.test.js +29 -29
  66. package/dist/packages/attention/attention.js +1725 -1683
  67. package/dist/packages/attention/attention.js.map +2 -2
  68. package/dist/packages/attention/attention.react.stories.d.ts +3 -3
  69. package/dist/packages/attention/attention.react.stories.js +13 -13
  70. package/dist/packages/attention/attention.react.test.js +11 -7
  71. package/dist/packages/attention/attention.stories.d.ts +4 -4
  72. package/dist/packages/attention/attention.stories.js +126 -117
  73. package/dist/packages/attention/attention.test.d.ts +1 -1
  74. package/dist/packages/attention/attention.test.js +18 -10
  75. package/dist/packages/attention/layout-styles.js +900 -900
  76. package/dist/packages/attention/react.d.ts +4 -4
  77. package/dist/packages/attention/react.js +13 -11
  78. package/dist/packages/attention/styles.js +1 -1
  79. package/dist/packages/badge/badge.d.ts +3 -3
  80. package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
  81. package/dist/packages/badge/badge.hydration.test.js +25 -25
  82. package/dist/packages/badge/badge.js +276 -276
  83. package/dist/packages/badge/badge.js.map +2 -2
  84. package/dist/packages/badge/badge.react.stories.d.ts +3 -3
  85. package/dist/packages/badge/badge.react.stories.js +17 -17
  86. package/dist/packages/badge/badge.stories.d.ts +3 -3
  87. package/dist/packages/badge/badge.stories.js +22 -20
  88. package/dist/packages/badge/badge.test.d.ts +1 -1
  89. package/dist/packages/badge/badge.test.js +13 -11
  90. package/dist/packages/badge/react.d.ts +1 -1
  91. package/dist/packages/badge/react.js +4 -4
  92. package/dist/packages/badge/styles.js +1 -1
  93. package/dist/packages/box/box.d.ts +1 -1
  94. package/dist/packages/box/box.hydration.test.d.ts +1 -1
  95. package/dist/packages/box/box.hydration.test.js +14 -14
  96. package/dist/packages/box/box.js +283 -283
  97. package/dist/packages/box/box.js.map +2 -2
  98. package/dist/packages/box/box.react.stories.d.ts +3 -3
  99. package/dist/packages/box/box.react.stories.js +8 -8
  100. package/dist/packages/box/box.stories.d.ts +3 -3
  101. package/dist/packages/box/box.stories.js +25 -19
  102. package/dist/packages/box/box.test.d.ts +1 -1
  103. package/dist/packages/box/box.test.js +6 -6
  104. package/dist/packages/box/react.d.ts +1 -1
  105. package/dist/packages/box/react.js +4 -4
  106. package/dist/packages/box/slot.test.d.ts +1 -1
  107. package/dist/packages/box/slot.test.js +6 -6
  108. package/dist/packages/box/styles.js +1 -1
  109. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +1 -1
  110. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
  111. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +55 -49
  112. package/dist/packages/breadcrumbs/breadcrumbs.js +284 -278
  113. package/dist/packages/breadcrumbs/breadcrumbs.js.map +2 -2
  114. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +3 -3
  115. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +6 -6
  116. package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +3 -3
  117. package/dist/packages/breadcrumbs/breadcrumbs.stories.js +27 -26
  118. package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
  119. package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
  120. package/dist/packages/breadcrumbs/react.d.ts +1 -1
  121. package/dist/packages/breadcrumbs/react.js +4 -4
  122. package/dist/packages/breadcrumbs/styles.js +1 -1
  123. package/dist/packages/button/button.d.ts +5 -5
  124. package/dist/packages/button/button.hydration.test.d.ts +1 -1
  125. package/dist/packages/button/button.hydration.test.js +19 -19
  126. package/dist/packages/button/button.js +741 -715
  127. package/dist/packages/button/button.js.map +2 -2
  128. package/dist/packages/button/button.react.stories.d.ts +3 -3
  129. package/dist/packages/button/button.react.stories.js +30 -30
  130. package/dist/packages/button/button.react.test.js +13 -13
  131. package/dist/packages/button/button.stories.d.ts +4 -4
  132. package/dist/packages/button/button.stories.js +276 -167
  133. package/dist/packages/button/button.test.d.ts +1 -1
  134. package/dist/packages/button/button.test.js +36 -34
  135. package/dist/packages/button/react.d.ts +2 -2
  136. package/dist/packages/button/react.js +7 -7
  137. package/dist/packages/button/styles.js +373 -347
  138. package/dist/packages/card/card.d.ts +1 -1
  139. package/dist/packages/card/card.hydration.test.d.ts +1 -1
  140. package/dist/packages/card/card.hydration.test.js +14 -14
  141. package/dist/packages/card/card.js +305 -290
  142. package/dist/packages/card/card.js.map +2 -2
  143. package/dist/packages/card/card.react.stories.d.ts +3 -3
  144. package/dist/packages/card/card.react.stories.js +11 -11
  145. package/dist/packages/card/card.stories.d.ts +3 -3
  146. package/dist/packages/card/card.stories.js +36 -24
  147. package/dist/packages/card/card.test.d.ts +1 -1
  148. package/dist/packages/card/card.test.js +6 -6
  149. package/dist/packages/card/react.d.ts +1 -1
  150. package/dist/packages/card/react.js +4 -4
  151. package/dist/packages/card/styles.js +1 -1
  152. package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
  153. package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
  154. package/dist/packages/checkbox/checkbox.d.ts +2 -2
  155. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
  156. package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
  157. package/dist/packages/checkbox/checkbox.js +475 -424
  158. package/dist/packages/checkbox/checkbox.js.map +2 -2
  159. package/dist/packages/checkbox/checkbox.react.stories.d.ts +2 -2
  160. package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
  161. package/dist/packages/checkbox/checkbox.stories.d.ts +4 -4
  162. package/dist/packages/checkbox/checkbox.stories.js +99 -91
  163. package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
  164. package/dist/packages/checkbox/checkbox.test.js +64 -64
  165. package/dist/packages/checkbox/react.d.ts +1 -1
  166. package/dist/packages/checkbox/react.js +6 -6
  167. package/dist/packages/checkbox/styles.js +183 -132
  168. package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
  169. package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
  170. package/dist/packages/checkbox-group/checkbox-group.d.ts +16 -2
  171. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
  172. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
  173. package/dist/packages/checkbox-group/checkbox-group.js +60 -55
  174. package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
  175. package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
  176. package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
  177. package/dist/packages/checkbox-group/checkbox-group.test.js +96 -90
  178. package/dist/packages/checkbox-group/react.d.ts +2 -2
  179. package/dist/packages/checkbox-group/react.js +6 -6
  180. package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
  181. package/dist/packages/combobox/combobox.a11y.test.js +72 -49
  182. package/dist/packages/combobox/combobox.d.ts +2 -2
  183. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
  184. package/dist/packages/combobox/combobox.hydration.test.js +45 -45
  185. package/dist/packages/combobox/combobox.js +332 -332
  186. package/dist/packages/combobox/combobox.js.map +3 -3
  187. package/dist/packages/combobox/combobox.react.stories.d.ts +3 -3
  188. package/dist/packages/combobox/combobox.react.stories.js +29 -29
  189. package/dist/packages/combobox/combobox.react.test.js +8 -8
  190. package/dist/packages/combobox/combobox.stories.d.ts +4 -4
  191. package/dist/packages/combobox/combobox.stories.js +100 -94
  192. package/dist/packages/combobox/combobox.test.d.ts +2 -2
  193. package/dist/packages/combobox/combobox.test.js +148 -133
  194. package/dist/packages/combobox/react.d.ts +2 -2
  195. package/dist/packages/combobox/react.js +14 -14
  196. package/dist/packages/combobox/styles.js +1 -1
  197. package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
  198. package/dist/packages/datepicker/DatePicker.test.js +46 -41
  199. package/dist/packages/datepicker/datepicker.d.ts +3 -3
  200. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
  201. package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
  202. package/dist/packages/datepicker/datepicker.js +665 -625
  203. package/dist/packages/datepicker/datepicker.js.map +3 -3
  204. package/dist/packages/datepicker/datepicker.react.stories.d.ts +3 -3
  205. package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
  206. package/dist/packages/datepicker/datepicker.react.test.js +6 -6
  207. package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
  208. package/dist/packages/datepicker/datepicker.stories.js +32 -32
  209. package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
  210. package/dist/packages/datepicker/datepicker.test.js +77 -79
  211. package/dist/packages/datepicker/react.d.ts +2 -2
  212. package/dist/packages/datepicker/react.js +16 -14
  213. package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
  214. package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
  215. package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
  216. package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
  217. package/dist/packages/datepicker/utils.d.ts +1 -1
  218. package/dist/packages/datepicker/utils.js +25 -19
  219. package/dist/packages/datepicker/utils.test.js +20 -20
  220. package/dist/packages/expandable/expandable.d.ts +4 -4
  221. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
  222. package/dist/packages/expandable/expandable.hydration.test.js +21 -21
  223. package/dist/packages/expandable/expandable.js +353 -326
  224. package/dist/packages/expandable/expandable.js.map +2 -2
  225. package/dist/packages/expandable/expandable.react.stories.d.ts +3 -3
  226. package/dist/packages/expandable/expandable.react.stories.js +7 -7
  227. package/dist/packages/expandable/expandable.react.test.js +15 -7
  228. package/dist/packages/expandable/expandable.stories.d.ts +5 -5
  229. package/dist/packages/expandable/expandable.stories.js +51 -45
  230. package/dist/packages/expandable/expandable.test.d.ts +1 -1
  231. package/dist/packages/expandable/expandable.test.js +19 -17
  232. package/dist/packages/expandable/react.d.ts +2 -2
  233. package/dist/packages/expandable/react.js +9 -9
  234. package/dist/packages/expandable/styles.js +1 -1
  235. package/dist/packages/global.js +2 -2
  236. package/dist/packages/i18n.d.ts +1 -1
  237. package/dist/packages/i18n.js +37 -29
  238. package/dist/packages/icon/icon.d.ts +3 -3
  239. package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
  240. package/dist/packages/icon/icon.hydration.test.js +25 -25
  241. package/dist/packages/icon/icon.js +30 -25
  242. package/dist/packages/icon/icon.js.map +2 -2
  243. package/dist/packages/icon/icon.react.stories.d.ts +1 -1
  244. package/dist/packages/icon/icon.react.stories.js +283 -284
  245. package/dist/packages/icon/icon.stories.d.ts +3 -3
  246. package/dist/packages/icon/icon.stories.js +299 -298
  247. package/dist/packages/icon/icon.test.d.ts +1 -1
  248. package/dist/packages/icon/icon.test.js +36 -28
  249. package/dist/packages/icon/react.d.ts +1 -1
  250. package/dist/packages/icon/react.js +4 -4
  251. package/dist/packages/icon/style.js +24 -25
  252. package/dist/packages/interaction-type-detection.js +9 -9
  253. package/dist/packages/link/link.d.ts +2 -2
  254. package/dist/packages/link/link.hydration.test.d.ts +1 -1
  255. package/dist/packages/link/link.hydration.test.js +27 -27
  256. package/dist/packages/link/link.js +709 -683
  257. package/dist/packages/link/link.js.map +2 -2
  258. package/dist/packages/link/link.react.stories.d.ts +3 -3
  259. package/dist/packages/link/link.react.stories.js +42 -42
  260. package/dist/packages/link/link.react.test.js +5 -3
  261. package/dist/packages/link/link.stories.d.ts +3 -3
  262. package/dist/packages/link/link.stories.js +51 -51
  263. package/dist/packages/link/link.test.d.ts +1 -1
  264. package/dist/packages/link/link.test.js +11 -7
  265. package/dist/packages/link/react.d.ts +2 -2
  266. package/dist/packages/link/react.js +6 -6
  267. package/dist/packages/link/styles.js +57 -57
  268. package/dist/packages/modal/index.d.ts +7 -7
  269. package/dist/packages/modal/index.js +7 -7
  270. package/dist/packages/modal/modal.d.ts +1 -1
  271. package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
  272. package/dist/packages/modal/modal.hydration.test.js +12 -12
  273. package/dist/packages/modal/modal.js +404 -404
  274. package/dist/packages/modal/modal.js.map +2 -2
  275. package/dist/packages/modal/modal.react.stories.d.ts +3 -3
  276. package/dist/packages/modal/modal.react.stories.js +7 -6
  277. package/dist/packages/modal/modal.react.test.js +5 -5
  278. package/dist/packages/modal/modal.stories.d.ts +6 -6
  279. package/dist/packages/modal/modal.stories.js +253 -238
  280. package/dist/packages/modal/react.d.ts +4 -4
  281. package/dist/packages/modal/react.js +13 -13
  282. package/dist/packages/modal/util.js +2 -2
  283. package/dist/packages/modal-footer/modal-footer.d.ts +1 -1
  284. package/dist/packages/modal-footer/modal-footer.js +291 -291
  285. package/dist/packages/modal-footer/modal-footer.js.map +2 -2
  286. package/dist/packages/modal-footer/react.d.ts +1 -1
  287. package/dist/packages/modal-footer/react.js +4 -4
  288. package/dist/packages/modal-header/modal-header.d.ts +2 -2
  289. package/dist/packages/modal-header/modal-header.js +437 -416
  290. package/dist/packages/modal-header/modal-header.js.map +2 -2
  291. package/dist/packages/modal-header/modal-header.react.test.js +5 -3
  292. package/dist/packages/modal-header/react.d.ts +2 -2
  293. package/dist/packages/modal-header/react.js +8 -8
  294. package/dist/packages/page-indicator/page-indicator.d.ts +1 -1
  295. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
  296. package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
  297. package/dist/packages/page-indicator/page-indicator.js +26 -26
  298. package/dist/packages/page-indicator/page-indicator.js.map +2 -2
  299. package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
  300. package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
  301. package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
  302. package/dist/packages/page-indicator/page-indicator.stories.d.ts +3 -3
  303. package/dist/packages/page-indicator/page-indicator.stories.js +56 -27
  304. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
  305. package/dist/packages/page-indicator/page-indicator.test.js +110 -70
  306. package/dist/packages/page-indicator/react.d.ts +2 -2
  307. package/dist/packages/page-indicator/react.js +7 -7
  308. package/dist/packages/page-indicator/style.js +21 -21
  309. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
  310. package/dist/packages/pagination/pagination.a11y.test.js +59 -25
  311. package/dist/packages/pagination/pagination.d.ts +3 -3
  312. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
  313. package/dist/packages/pagination/pagination.hydration.test.js +19 -19
  314. package/dist/packages/pagination/pagination.js +380 -349
  315. package/dist/packages/pagination/pagination.js.map +2 -2
  316. package/dist/packages/pagination/pagination.react.stories.d.ts +5 -5
  317. package/dist/packages/pagination/pagination.react.stories.js +8 -8
  318. package/dist/packages/pagination/pagination.react.test.js +6 -6
  319. package/dist/packages/pagination/pagination.stories.d.ts +3 -3
  320. package/dist/packages/pagination/pagination.stories.js +18 -18
  321. package/dist/packages/pagination/pagination.test.d.ts +1 -1
  322. package/dist/packages/pagination/pagination.test.js +146 -69
  323. package/dist/packages/pagination/react.d.ts +3 -3
  324. package/dist/packages/pagination/react.js +12 -10
  325. package/dist/packages/pagination/styles.js +1 -1
  326. package/dist/packages/pill/pill.d.ts +2 -2
  327. package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
  328. package/dist/packages/pill/pill.hydration.test.js +14 -14
  329. package/dist/packages/pill/pill.js +331 -308
  330. package/dist/packages/pill/pill.js.map +2 -2
  331. package/dist/packages/pill/pill.react.stories.d.ts +3 -3
  332. package/dist/packages/pill/pill.react.stories.js +3 -3
  333. package/dist/packages/pill/pill.react.test.js +8 -8
  334. package/dist/packages/pill/pill.stories.d.ts +3 -3
  335. package/dist/packages/pill/pill.stories.js +8 -8
  336. package/dist/packages/pill/pill.test.d.ts +1 -1
  337. package/dist/packages/pill/pill.test.js +17 -15
  338. package/dist/packages/pill/react.d.ts +2 -2
  339. package/dist/packages/pill/react.js +18 -14
  340. package/dist/packages/pill/styles.js +1 -1
  341. package/dist/packages/radio/base-element.d.ts +3 -3
  342. package/dist/packages/radio/base-element.js +3 -3
  343. package/dist/packages/radio/custom-error-validator.d.ts +1 -1
  344. package/dist/packages/radio/custom-error-validator.js +3 -3
  345. package/dist/packages/radio/form-associated-element.d.ts +8 -8
  346. package/dist/packages/radio/form-associated-element.js +27 -26
  347. package/dist/packages/radio/host-styles.js +9 -9
  348. package/dist/packages/radio/invalid.d.ts +1 -1
  349. package/dist/packages/radio/invalid.js +1 -1
  350. package/dist/packages/radio/radio-styles.js +199 -160
  351. package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
  352. package/dist/packages/radio/radio.a11y.test.js +60 -58
  353. package/dist/packages/radio/radio.d.ts +3 -3
  354. package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
  355. package/dist/packages/radio/radio.hydration.test.js +23 -14
  356. package/dist/packages/radio/radio.js +485 -446
  357. package/dist/packages/radio/radio.js.map +3 -3
  358. package/dist/packages/radio/radio.react.stories.d.ts +2 -2
  359. package/dist/packages/radio/radio.react.stories.js +3 -3
  360. package/dist/packages/radio/radio.stories.d.ts +4 -4
  361. package/dist/packages/radio/radio.stories.js +152 -136
  362. package/dist/packages/radio/radio.test.d.ts +1 -1
  363. package/dist/packages/radio/radio.test.js +74 -73
  364. package/dist/packages/radio/react.d.ts +1 -1
  365. package/dist/packages/radio/react.js +4 -4
  366. package/dist/packages/radio/required-validator.d.ts +1 -1
  367. package/dist/packages/radio/required-validator.js +12 -7
  368. package/dist/packages/radio/slot.d.ts +1 -1
  369. package/dist/packages/radio/slot.js +11 -8
  370. package/dist/packages/radio/watch.d.ts +1 -1
  371. package/dist/packages/radio/watch.js +3 -1
  372. package/dist/packages/radio-group/radio-group-styles.js +121 -88
  373. package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
  374. package/dist/packages/radio-group/radio-group.a11y.test.js +81 -79
  375. package/dist/packages/radio-group/radio-group.d.ts +14 -5
  376. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
  377. package/dist/packages/radio-group/radio-group.hydration.test.js +29 -18
  378. package/dist/packages/radio-group/radio-group.js +648 -560
  379. package/dist/packages/radio-group/radio-group.js.map +3 -3
  380. package/dist/packages/radio-group/radio-group.react.test.js +4 -4
  381. package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
  382. package/dist/packages/radio-group/radio-group.test.js +234 -229
  383. package/dist/packages/radio-group/react.d.ts +2 -2
  384. package/dist/packages/radio-group/react.js +10 -10
  385. package/dist/packages/select/react.d.ts +2 -2
  386. package/dist/packages/select/react.js +11 -11
  387. package/dist/packages/select/select.a11y.test.d.ts +1 -1
  388. package/dist/packages/select/select.a11y.test.js +98 -91
  389. package/dist/packages/select/select.d.ts +4 -4
  390. package/dist/packages/select/select.hydration.test.d.ts +1 -1
  391. package/dist/packages/select/select.hydration.test.js +16 -16
  392. package/dist/packages/select/select.js +348 -329
  393. package/dist/packages/select/select.js.map +2 -2
  394. package/dist/packages/select/select.react.stories.d.ts +3 -3
  395. package/dist/packages/select/select.react.stories.js +7 -7
  396. package/dist/packages/select/select.react.test.js +6 -6
  397. package/dist/packages/select/select.stories.d.ts +3 -3
  398. package/dist/packages/select/select.stories.js +51 -48
  399. package/dist/packages/select/select.test.d.ts +1 -1
  400. package/dist/packages/select/select.test.js +175 -178
  401. package/dist/packages/select/styles.js +1 -1
  402. package/dist/packages/slider/Slider.d.ts +1 -1
  403. package/dist/packages/slider/Slider.js +4 -4
  404. package/dist/packages/slider/index.d.ts +2 -2
  405. package/dist/packages/slider/index.js +2 -2
  406. package/dist/packages/slider/react.d.ts +3 -3
  407. package/dist/packages/slider/react.js +9 -9
  408. package/dist/packages/slider/slider.d.ts +3 -3
  409. package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
  410. package/dist/packages/slider/slider.hydration.test.js +39 -20
  411. package/dist/packages/slider/slider.js +480 -462
  412. package/dist/packages/slider/slider.js.map +2 -2
  413. package/dist/packages/slider/slider.react.stories.d.ts +3 -3
  414. package/dist/packages/slider/slider.react.stories.js +31 -34
  415. package/dist/packages/slider/slider.react.test.js +6 -6
  416. package/dist/packages/slider/slider.stories.d.ts +7 -7
  417. package/dist/packages/slider/slider.stories.js +332 -340
  418. package/dist/packages/slider/slider.test.d.ts +5 -5
  419. package/dist/packages/slider/slider.test.js +367 -334
  420. package/dist/packages/slider/styles/w-slider.styles.js +166 -148
  421. package/dist/packages/slider/styles.js +1 -1
  422. package/dist/packages/slider-thumb/SliderThumb.d.ts +1 -1
  423. package/dist/packages/slider-thumb/SliderThumb.js +4 -4
  424. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
  425. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
  426. package/dist/packages/slider-thumb/react.d.ts +3 -3
  427. package/dist/packages/slider-thumb/react.js +11 -9
  428. package/dist/packages/slider-thumb/slider-thumb.d.ts +3 -3
  429. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
  430. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
  431. package/dist/packages/slider-thumb/slider-thumb.js +545 -548
  432. package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
  433. package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
  434. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
  435. package/dist/packages/slider-thumb/styles.js +1 -1
  436. package/dist/packages/snackbar/react.d.ts +1 -1
  437. package/dist/packages/snackbar/react.js +4 -4
  438. package/dist/packages/snackbar/snackbar.d.ts +3 -3
  439. package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -1
  440. package/dist/packages/snackbar/snackbar.hydration.test.js +6 -6
  441. package/dist/packages/snackbar/snackbar.js +487 -468
  442. package/dist/packages/snackbar/snackbar.js.map +2 -2
  443. package/dist/packages/snackbar/snackbar.react.stories.js +3 -3
  444. package/dist/packages/snackbar/snackbar.stories.d.ts +11 -11
  445. package/dist/packages/snackbar/snackbar.stories.js +253 -181
  446. package/dist/packages/snackbar/snackbar.test.d.ts +4 -4
  447. package/dist/packages/snackbar/snackbar.test.js +11 -11
  448. package/dist/packages/snackbar/styles.js +29 -29
  449. package/dist/packages/snackbar-item/react.d.ts +2 -2
  450. package/dist/packages/snackbar-item/react.js +6 -5
  451. package/dist/packages/snackbar-item/snackbar-item.d.ts +4 -4
  452. package/dist/packages/snackbar-item/snackbar-item.js +454 -435
  453. package/dist/packages/snackbar-item/snackbar-item.js.map +2 -2
  454. package/dist/packages/snackbar-item/snackbar-item.react.test.js +4 -4
  455. package/dist/packages/snackbar-item/styles.js +130 -108
  456. package/dist/packages/step/react.d.ts +1 -1
  457. package/dist/packages/step/react.js +4 -4
  458. package/dist/packages/step/step.d.ts +2 -2
  459. package/dist/packages/step/step.hydration.test.d.ts +1 -1
  460. package/dist/packages/step/step.hydration.test.js +10 -10
  461. package/dist/packages/step/step.js +330 -308
  462. package/dist/packages/step/step.js.map +2 -2
  463. package/dist/packages/step-indicator/index.d.ts +2 -2
  464. package/dist/packages/step-indicator/index.js +2 -2
  465. package/dist/packages/step-indicator/react.d.ts +2 -2
  466. package/dist/packages/step-indicator/react.js +5 -5
  467. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
  468. package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
  469. package/dist/packages/step-indicator/step-indicator.d.ts +1 -1
  470. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
  471. package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
  472. package/dist/packages/step-indicator/step-indicator.js +280 -276
  473. package/dist/packages/step-indicator/step-indicator.js.map +2 -2
  474. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
  475. package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
  476. package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
  477. package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
  478. package/dist/packages/step-indicator/styles.js +1 -1
  479. package/dist/packages/styles.js +274 -274
  480. package/dist/packages/switch/react.d.ts +1 -1
  481. package/dist/packages/switch/react.js +6 -6
  482. package/dist/packages/switch/styles.js +1 -1
  483. package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
  484. package/dist/packages/switch/switch.a11y.test.js +46 -38
  485. package/dist/packages/switch/switch.d.ts +1 -1
  486. package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
  487. package/dist/packages/switch/switch.hydration.test.js +23 -23
  488. package/dist/packages/switch/switch.js +299 -299
  489. package/dist/packages/switch/switch.js.map +2 -2
  490. package/dist/packages/switch/switch.react.stories.d.ts +2 -2
  491. package/dist/packages/switch/switch.react.stories.js +2 -2
  492. package/dist/packages/switch/switch.stories.d.ts +2 -2
  493. package/dist/packages/switch/switch.stories.js +42 -37
  494. package/dist/packages/switch/switch.test.d.ts +1 -1
  495. package/dist/packages/switch/switch.test.js +30 -35
  496. package/dist/packages/tab/react.d.ts +6 -4
  497. package/dist/packages/tab/react.js +11 -10
  498. package/dist/packages/tab/styles.d.ts +1 -0
  499. package/dist/packages/tab/styles.js +2 -0
  500. package/dist/packages/tab/tab.d.ts +5 -5
  501. package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
  502. package/dist/packages/tab/tab.hydration.test.js +18 -12
  503. package/dist/packages/tab/tab.js +305 -304
  504. package/dist/packages/tab/tab.js.map +3 -3
  505. package/dist/packages/tab/tab.react.test.js +5 -3
  506. package/dist/packages/tab-panel/react.d.ts +3 -2
  507. package/dist/packages/tab-panel/react.js +11 -5
  508. package/dist/packages/tab-panel/tab-panel.d.ts +3 -3
  509. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
  510. package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
  511. package/dist/packages/tab-panel/tab-panel.js +289 -287
  512. package/dist/packages/tab-panel/tab-panel.js.map +2 -2
  513. package/dist/packages/tabs/index.d.ts +4 -4
  514. package/dist/packages/tabs/index.js +3 -3
  515. package/dist/packages/tabs/react.d.ts +27 -8
  516. package/dist/packages/tabs/react.js +30 -9
  517. package/dist/packages/tabs/styles.js +1 -1
  518. package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
  519. package/dist/packages/tabs/tabs.a11y.test.js +188 -169
  520. package/dist/packages/tabs/tabs.d.ts +3 -3
  521. package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
  522. package/dist/packages/tabs/tabs.hydration.test.js +22 -8
  523. package/dist/packages/tabs/tabs.js +289 -282
  524. package/dist/packages/tabs/tabs.js.map +2 -2
  525. package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
  526. package/dist/packages/tabs/tabs.react.stories.js +28 -28
  527. package/dist/packages/tabs/tabs.stories.d.ts +4 -4
  528. package/dist/packages/tabs/tabs.stories.js +101 -95
  529. package/dist/packages/tabs/tabs.test.d.ts +3 -3
  530. package/dist/packages/tabs/tabs.test.js +136 -122
  531. package/dist/packages/textarea/react.d.ts +2 -2
  532. package/dist/packages/textarea/react.js +17 -17
  533. package/dist/packages/textarea/styles.js +1 -1
  534. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
  535. package/dist/packages/textarea/textarea.a11y.test.js +89 -57
  536. package/dist/packages/textarea/textarea.d.ts +1 -1
  537. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
  538. package/dist/packages/textarea/textarea.hydration.test.js +19 -19
  539. package/dist/packages/textarea/textarea.js +300 -298
  540. package/dist/packages/textarea/textarea.js.map +2 -2
  541. package/dist/packages/textarea/textarea.react.stories.d.ts +3 -3
  542. package/dist/packages/textarea/textarea.react.stories.js +13 -13
  543. package/dist/packages/textarea/textarea.react.test.js +7 -7
  544. package/dist/packages/textarea/textarea.stories.d.ts +3 -3
  545. package/dist/packages/textarea/textarea.stories.js +44 -42
  546. package/dist/packages/textarea/textarea.test.d.ts +1 -1
  547. package/dist/packages/textarea/textarea.test.js +124 -88
  548. package/dist/packages/textfield/react.d.ts +2 -2
  549. package/dist/packages/textfield/react.js +17 -17
  550. package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
  551. package/dist/packages/textfield/styles.js +1 -1
  552. package/dist/packages/textfield/textfield.d.ts +3 -3
  553. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
  554. package/dist/packages/textfield/textfield.hydration.test.js +19 -19
  555. package/dist/packages/textfield/textfield.js +376 -368
  556. package/dist/packages/textfield/textfield.js.map +3 -3
  557. package/dist/packages/textfield/textfield.react.stories.d.ts +3 -3
  558. package/dist/packages/textfield/textfield.react.stories.js +31 -31
  559. package/dist/packages/textfield/textfield.react.test.js +7 -7
  560. package/dist/packages/textfield/textfield.stories.d.ts +4 -4
  561. package/dist/packages/textfield/textfield.stories.js +107 -89
  562. package/dist/packages/textfield/textfield.test.d.ts +2 -2
  563. package/dist/packages/textfield/textfield.test.js +103 -71
  564. package/dist/packages/toast/api.d.ts +1 -1
  565. package/dist/packages/toast/api.js +3 -3
  566. package/dist/packages/toast/index.d.ts +5 -5
  567. package/dist/packages/toast/index.js +5 -5
  568. package/dist/packages/toast/toast.d.ts +4 -4
  569. package/dist/packages/toast/toast.js +343 -314
  570. package/dist/packages/toast/toast.js.map +2 -2
  571. package/dist/packages/toast/toast.stories.d.ts +4 -4
  572. package/dist/packages/toast/toast.stories.js +37 -16
  573. package/dist/packages/toast/toast.test.d.ts +1 -1
  574. package/dist/packages/toast/toast.test.js +48 -31
  575. package/dist/packages/toast/types.d.ts +1 -1
  576. package/dist/packages/toast-container/styles.js +1 -1
  577. package/dist/packages/toast-container/toast-container.d.ts +2 -2
  578. package/dist/packages/toast-container/toast-container.js +291 -290
  579. package/dist/packages/toast-container/toast-container.js.map +2 -2
  580. package/dist/packages/utils/element-collapse.js +38 -28
  581. package/dist/packages/utils/expand-transition.d.ts +1 -1
  582. package/dist/packages/utils/expand-transition.js +12 -10
  583. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  584. package/dist/packages/utils/unstyled-heading.js +4 -4
  585. package/dist/packages/utils/window-exists.js +1 -1
  586. package/dist/packages/utils.js +2 -2
  587. package/dist/setup-tests.d.ts +3 -3
  588. package/dist/setup-tests.js +16 -13
  589. package/dist/tests/react-hydration.js +29 -30
  590. package/dist/tests/react-ssr-attributes.d.ts +1 -1
  591. package/dist/tests/react-ssr-attributes.js +4 -4
  592. package/dist/web-types.json +25 -22
  593. package/eik/index.js +9 -9
  594. package/package.json +11 -16
@@ -1,122 +1,128 @@
1
- import { i18n } from '@lingui/core';
2
- import { html } from 'lit';
3
- import { expect, test, vi } from 'vitest';
4
- import { render } from 'vitest-browser-lit';
5
- import './checkbox-group.js';
6
- import '../checkbox/checkbox.js';
1
+ import { i18n } from "@lingui/core";
2
+ import { html } from "lit";
3
+ import { expect, test, vi } from "vitest";
4
+ import { render } from "vitest-browser-lit";
5
+ import "./checkbox-group.js";
6
+ import "../checkbox/checkbox.js";
7
7
  // Initialize i18n with English locale for tests
8
- i18n.load('en', {
9
- 'checkbox-group.label.optional': ['(optional)'],
10
- 'checkbox-group.validation.required': ['At least one selection is required.'],
8
+ i18n.load("en", {
9
+ "checkbox-group.label.optional": ["(optional)"],
10
+ "checkbox-group.validation.required": ["At least one selection is required."],
11
11
  });
12
- i18n.activate('en');
13
- test('renders help text when provided', async () => {
12
+ i18n.activate("en");
13
+ test("renders help text when provided", async () => {
14
14
  const page = render(html `
15
- <w-checkbox-group help-text="Select all that apply">
16
- <w-checkbox>One</w-checkbox>
17
- <w-checkbox>Two</w-checkbox>
18
- </w-checkbox-group>
19
- `);
20
- await expect.element(page.getByText('Select all that apply')).toBeVisible();
15
+ <w-checkbox-group help-text="Select all that apply">
16
+ <w-checkbox>One</w-checkbox>
17
+ <w-checkbox>Two</w-checkbox>
18
+ </w-checkbox-group>
19
+ `);
20
+ await expect.element(page.getByText("Select all that apply")).toBeVisible();
21
21
  });
22
- test('associates help text with the group', async () => {
22
+ test("associates help text with the group", async () => {
23
23
  const page = render(html `
24
- <w-checkbox-group help-text="Choose wisely">
25
- <w-checkbox>One</w-checkbox>
26
- <w-checkbox>Two</w-checkbox>
27
- </w-checkbox-group>
28
- `);
29
- const group = page.getByRole('group');
30
- await expect.element(group).toHaveAccessibleDescription('Choose wisely');
24
+ <w-checkbox-group help-text="Choose wisely">
25
+ <w-checkbox>One</w-checkbox>
26
+ <w-checkbox>Two</w-checkbox>
27
+ </w-checkbox-group>
28
+ `);
29
+ const group = page.getByRole("group");
30
+ await expect.element(group).toHaveAccessibleDescription("Choose wisely");
31
31
  });
32
- test('renders label above the group and associates it', async () => {
32
+ test("renders label above the group and associates it", async () => {
33
33
  const page = render(html `
34
- <w-checkbox-group label="Preferences">
35
- <w-checkbox>One</w-checkbox>
36
- <w-checkbox>Two</w-checkbox>
37
- </w-checkbox-group>
38
- `);
39
- await expect.element(page.getByText('Preferences')).toBeVisible();
40
- await expect.element(page.getByRole('group', { name: 'Preferences' })).toBeVisible();
34
+ <w-checkbox-group label="Preferences">
35
+ <w-checkbox>One</w-checkbox>
36
+ <w-checkbox>Two</w-checkbox>
37
+ </w-checkbox-group>
38
+ `);
39
+ await expect.element(page.getByText("Preferences")).toBeVisible();
40
+ await expect
41
+ .element(page.getByRole("group", { name: "Preferences" }))
42
+ .toBeVisible();
41
43
  });
42
- test('renders optional text when optional is true', async () => {
44
+ test("renders optional text when optional is true", async () => {
43
45
  const page = render(html `
44
- <w-checkbox-group label="Preferences" optional>
45
- <w-checkbox>One</w-checkbox>
46
- <w-checkbox>Two</w-checkbox>
47
- </w-checkbox-group>
48
- `);
49
- await expect.element(page.getByText('(optional)')).toBeVisible();
46
+ <w-checkbox-group label="Preferences" optional>
47
+ <w-checkbox>One</w-checkbox>
48
+ <w-checkbox>Two</w-checkbox>
49
+ </w-checkbox-group>
50
+ `);
51
+ await expect.element(page.getByText("(optional)")).toBeVisible();
50
52
  });
51
- test('required group toggles invalid state for group and children after submit and selection', async () => {
53
+ test("required group toggles invalid state for group and children after submit and selection", async () => {
52
54
  const page = render(html `
53
- <form>
54
- <w-checkbox-group label="Preferences" required>
55
- <w-checkbox name="group" value="foo">Foo</w-checkbox>
56
- <w-checkbox name="group" value="bar">Bar</w-checkbox>
57
- </w-checkbox-group>
58
- <button type="submit">Submit</button>
59
- </form>
60
- `);
61
- const form = document.querySelector('form');
62
- const submit = page.getByRole('button', { name: 'Submit' });
63
- const group = page.getByRole('group', { name: 'Preferences' });
64
- const firstCheckbox = page.getByRole('checkbox', { name: 'Foo' });
65
- const firstCheckboxEl = document.querySelector('w-checkbox');
55
+ <form>
56
+ <w-checkbox-group label="Preferences" required>
57
+ <w-checkbox name="group" value="foo">Foo</w-checkbox>
58
+ <w-checkbox name="group" value="bar">Bar</w-checkbox>
59
+ </w-checkbox-group>
60
+ <button type="submit">Submit</button>
61
+ </form>
62
+ `);
63
+ const form = document.querySelector("form");
64
+ const submit = page.getByRole("button", { name: "Submit" });
65
+ const group = page.getByRole("group", { name: "Preferences" });
66
+ const firstCheckbox = page.getByRole("checkbox", { name: "Foo" });
67
+ const firstCheckboxEl = document.querySelector("w-checkbox");
66
68
  await firstCheckboxEl.updateComplete;
67
69
  const internalInput = firstCheckboxEl.shadowRoot?.querySelector('[part="input"]');
68
70
  if (!internalInput) {
69
- throw new Error('Expected checkbox input element to exist');
71
+ throw new Error("Expected checkbox input element to exist");
70
72
  }
71
73
  await submit.click();
72
74
  await expect.poll(() => form.checkValidity()).toBe(false);
73
- await expect.element(group).toHaveAttribute('aria-invalid', 'true');
74
- await expect.element(firstCheckbox).toHaveAttribute('aria-invalid', 'true');
75
+ await expect.element(group).toHaveAttribute("aria-invalid", "true");
76
+ await expect.element(firstCheckbox).toHaveAttribute("aria-invalid", "true");
75
77
  // Group invalid state should flow via aria-invalid on the internal input,
76
78
  // while host invalid remains untouched (no host attribute mutation).
77
- expect(firstCheckboxEl.hasAttribute('invalid')).toBe(false);
78
- expect(internalInput.getAttribute('aria-invalid')).toBe('true');
79
+ expect(firstCheckboxEl.hasAttribute("invalid")).toBe(false);
80
+ expect(internalInput.getAttribute("aria-invalid")).toBe("true");
79
81
  firstCheckboxEl.click();
80
82
  await expect.poll(() => form.checkValidity()).toBe(true);
81
- await expect.element(group).not.toHaveAttribute('aria-invalid', 'true');
82
- await expect.element(firstCheckbox).not.toHaveAttribute('aria-invalid', 'true');
83
- expect(internalInput.getAttribute('aria-invalid')).toBeNull();
83
+ await expect.element(group).not.toHaveAttribute("aria-invalid", "true");
84
+ await expect
85
+ .element(firstCheckbox)
86
+ .not.toHaveAttribute("aria-invalid", "true");
87
+ expect(internalInput.getAttribute("aria-invalid")).toBeNull();
84
88
  });
85
- test('submits checked checkbox values via form data', async () => {
89
+ test("submits checked checkbox values via form data", async () => {
86
90
  render(html `
87
- <form>
88
- <w-checkbox-group label="Preferences">
89
- <w-checkbox name="prefs" value="alpha" checked>Alpha</w-checkbox>
90
- <w-checkbox name="prefs" value="beta" checked>Beta</w-checkbox>
91
- <w-checkbox name="prefs" value="gamma">Gamma</w-checkbox>
92
- </w-checkbox-group>
93
- </form>
94
- `);
95
- const form = document.querySelector('form');
91
+ <form>
92
+ <w-checkbox-group label="Preferences">
93
+ <w-checkbox name="prefs" value="alpha" checked>Alpha</w-checkbox>
94
+ <w-checkbox name="prefs" value="beta" checked>Beta</w-checkbox>
95
+ <w-checkbox name="prefs" value="gamma">Gamma</w-checkbox>
96
+ </w-checkbox-group>
97
+ </form>
98
+ `);
99
+ const form = document.querySelector("form");
96
100
  const data = new FormData(form);
97
- expect(data.getAll('prefs')).toEqual(['alpha', 'beta']);
101
+ expect(data.getAll("prefs")).toEqual(["alpha", "beta"]);
98
102
  });
99
- test('applies group name to child checkboxes without a name', async () => {
103
+ test("applies group name to child checkboxes without a name", async () => {
100
104
  render(html `
101
- <w-checkbox-group name="prefs">
102
- <w-checkbox value="alpha" checked>Alpha</w-checkbox>
103
- <w-checkbox name="custom" value="beta" checked>Beta</w-checkbox>
104
- </w-checkbox-group>
105
- `);
106
- const [first, second] = Array.from(document.querySelectorAll('w-checkbox'));
105
+ <w-checkbox-group name="prefs">
106
+ <w-checkbox value="alpha" checked>Alpha</w-checkbox>
107
+ <w-checkbox name="custom" value="beta" checked>Beta</w-checkbox>
108
+ </w-checkbox-group>
109
+ `);
110
+ const [first, second] = [
111
+ ...document.querySelectorAll("w-checkbox"),
112
+ ];
107
113
  await first.updateComplete;
108
- expect(first.name).toBe('prefs');
109
- expect(second.name).toBe('custom');
114
+ expect(first.name).toBe("prefs");
115
+ expect(second.name).toBe("custom");
110
116
  });
111
- test('warns when used in a form without a name', async () => {
112
- const warn = vi.spyOn(console, 'warn').mockImplementation(() => { });
117
+ test("warns when used in a form without a name", async () => {
118
+ const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
113
119
  render(html `
114
- <form>
115
- <w-checkbox-group>
116
- <w-checkbox value="alpha" checked>Alpha</w-checkbox>
117
- </w-checkbox-group>
118
- </form>
119
- `);
120
+ <form>
121
+ <w-checkbox-group>
122
+ <w-checkbox value="alpha" checked>Alpha</w-checkbox>
123
+ </w-checkbox-group>
124
+ </form>
125
+ `);
120
126
  await expect.poll(() => warn).toHaveBeenCalled();
121
127
  warn.mockRestore();
122
128
  });
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import { WarpCheckboxGroup } from './checkbox-group.js';
1
+ import React from "react";
2
+ import { WarpCheckboxGroup } from "./checkbox-group.js";
3
3
  export declare const CheckboxGroup: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpCheckboxGroup>, "form" | "label" | "name" | "invalid" | "helpText" | "required" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "updated" | "resetFormControl" | "render" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "reportValidity" | "optional"> & {} & Partial<Omit<WarpCheckboxGroup, keyof HTMLElement>> & React.RefAttributes<WarpCheckboxGroup>, "ref">, "help-text"> & {
4
4
  helpText?: string;
5
5
  } & React.RefAttributes<WarpCheckboxGroup>>;
@@ -1,17 +1,17 @@
1
- import { createComponent } from '@lit/react';
2
- import { LitElement } from 'lit';
3
- import React from 'react';
1
+ import { createComponent } from "@lit/react";
2
+ import { LitElement } from "lit";
3
+ import React from "react";
4
4
  // decouple from CDN by providing a dummy class
5
5
  class Component extends LitElement {
6
6
  }
7
7
  const BaseCheckboxGroup = createComponent({
8
- tagName: 'w-checkbox-group',
8
+ tagName: "w-checkbox-group",
9
9
  elementClass: Component,
10
10
  react: React,
11
11
  });
12
12
  export const CheckboxGroup = React.forwardRef(({ helpText, ...props }, ref) => React.createElement(BaseCheckboxGroup, {
13
13
  ...props,
14
- ...(helpText !== undefined ? { 'help-text': helpText } : {}),
14
+ ...(helpText !== undefined ? { "help-text": helpText } : {}),
15
15
  ref,
16
16
  }));
17
- CheckboxGroup.displayName = 'CheckboxGroup';
17
+ CheckboxGroup.displayName = "CheckboxGroup";
@@ -1,2 +1,2 @@
1
- import '../textfield/textfield.js';
2
- import './combobox.js';
1
+ import "../textfield/textfield.js";
2
+ import "./combobox.js";
@@ -1,74 +1,97 @@
1
- import { html } from 'lit';
2
- import { describe, expect, test } from 'vitest';
3
- import { render } from 'vitest-browser-lit';
4
- import '../textfield/textfield.js';
5
- import './combobox.js';
6
- describe('w-combobox accessibility (WCAG 2.2)', () => {
7
- describe('axe-core automated checks', () => {
1
+ import { html } from "lit";
2
+ import { describe, expect, test } from "vitest";
3
+ import { render } from "vitest-browser-lit";
4
+ import "../textfield/textfield.js";
5
+ import "./combobox.js";
6
+ describe("w-combobox accessibility (WCAG 2.2)", () => {
7
+ describe("axe-core automated checks", () => {
8
8
  const sampleOptions = [
9
- { value: 'apple', label: 'Apple' },
10
- { value: 'banana', label: 'Banana' },
11
- { value: 'orange', label: 'Orange' },
9
+ { value: "apple", label: "Apple" },
10
+ { value: "banana", label: "Banana" },
11
+ { value: "orange", label: "Orange" },
12
12
  ];
13
- test('default state has no violations', async () => {
14
- const page = render(html `<w-combobox label="Select a fruit" .options="${sampleOptions}"></w-combobox>`);
13
+ test("default state has no violations", async () => {
14
+ const page = render(html `<w-combobox
15
+ label="Select a fruit"
16
+ .options="${sampleOptions}"
17
+ ></w-combobox>`);
15
18
  await expect(page).toHaveNoAxeViolations();
16
19
  });
17
- test('with help text has no violations', async () => {
20
+ test("with help text has no violations", async () => {
18
21
  const page = render(html `
19
- <w-combobox
20
- label="Select a fruit"
21
- help-text="Start typing to filter options"
22
- .options="${sampleOptions}"></w-combobox>
23
- `);
22
+ <w-combobox
23
+ label="Select a fruit"
24
+ help-text="Start typing to filter options"
25
+ .options="${sampleOptions}"
26
+ ></w-combobox>
27
+ `);
24
28
  await expect(page).toHaveNoAxeViolations();
25
29
  });
26
- test('invalid state has no violations', async () => {
30
+ test("invalid state has no violations", async () => {
27
31
  const page = render(html `
28
- <w-combobox
29
- label="Select a fruit"
30
- invalid
31
- help-text="Please select a valid option"
32
- .options="${sampleOptions}"></w-combobox>
33
- `);
32
+ <w-combobox
33
+ label="Select a fruit"
34
+ invalid
35
+ help-text="Please select a valid option"
36
+ .options="${sampleOptions}"
37
+ ></w-combobox>
38
+ `);
34
39
  await expect(page).toHaveNoAxeViolations();
35
40
  });
36
- test('disabled state has no violations', async () => {
37
- const page = render(html `<w-combobox label="Select a fruit" disabled .options="${sampleOptions}"></w-combobox>`);
41
+ test("disabled state has no violations", async () => {
42
+ const page = render(html `<w-combobox
43
+ label="Select a fruit"
44
+ disabled
45
+ .options="${sampleOptions}"
46
+ ></w-combobox>`);
38
47
  await expect(page).toHaveNoAxeViolations();
39
48
  });
40
- test('required state has no violations', async () => {
41
- const page = render(html `<w-combobox label="Select a fruit" required .options="${sampleOptions}"></w-combobox>`);
49
+ test("required state has no violations", async () => {
50
+ const page = render(html `<w-combobox
51
+ label="Select a fruit"
52
+ required
53
+ .options="${sampleOptions}"
54
+ ></w-combobox>`);
42
55
  await expect(page).toHaveNoAxeViolations();
43
56
  });
44
- test('optional state has no violations', async () => {
45
- const page = render(html `<w-combobox label="Select a fruit" optional .options="${sampleOptions}"></w-combobox>`);
57
+ test("optional state has no violations", async () => {
58
+ const page = render(html `<w-combobox
59
+ label="Select a fruit"
60
+ optional
61
+ .options="${sampleOptions}"
62
+ ></w-combobox>`);
46
63
  await expect(page).toHaveNoAxeViolations();
47
64
  });
48
- test('open on focus state has no violations', async () => {
49
- const page = render(html `<w-combobox label="Select a fruit" open-on-focus .options="${sampleOptions}"></w-combobox>`);
65
+ test("open on focus state has no violations", async () => {
66
+ const page = render(html `<w-combobox
67
+ label="Select a fruit"
68
+ open-on-focus
69
+ .options="${sampleOptions}"
70
+ ></w-combobox>`);
50
71
  await expect(page).toHaveNoAxeViolations();
51
72
  });
52
- test('with light-DOM option children has no violations', async () => {
73
+ test("with light-DOM option children has no violations", async () => {
53
74
  const page = render(html `
54
- <w-combobox label="Select a fruit">
55
- <option value="apple">Apple</option>
56
- <option value="banana">Banana</option>
57
- <option value="orange">Orange</option>
58
- </w-combobox>
59
- `);
75
+ <w-combobox label="Select a fruit">
76
+ <option value="apple">Apple</option>
77
+ <option value="banana">Banana</option>
78
+ <option value="orange">Orange</option>
79
+ </w-combobox>
80
+ `);
60
81
  await expect(page).toHaveNoAxeViolations();
61
82
  });
62
- test('open with light-DOM option children has no violations', async () => {
83
+ test("open with light-DOM option children has no violations", async () => {
63
84
  const page = render(html `
64
- <w-combobox data-testid="combobox" label="Select a fruit" open-on-focus>
65
- <option value="apple">Apple</option>
66
- <option value="banana">Banana</option>
67
- <option value="orange">Orange</option>
68
- </w-combobox>
69
- `);
70
- const el = (await page.getByTestId('combobox').element());
71
- const input = el?.shadowRoot?.querySelector('w-textfield')?.shadowRoot?.querySelector('input');
85
+ <w-combobox data-testid="combobox" label="Select a fruit" open-on-focus>
86
+ <option value="apple">Apple</option>
87
+ <option value="banana">Banana</option>
88
+ <option value="orange">Orange</option>
89
+ </w-combobox>
90
+ `);
91
+ const el = (await page.getByTestId("combobox").element());
92
+ const input = el?.shadowRoot
93
+ ?.querySelector("w-textfield")
94
+ ?.shadowRoot?.querySelector("input");
72
95
  input?.focus();
73
96
  await new Promise((resolve) => setTimeout(resolve, 100));
74
97
  await expect(page).toHaveNoAxeViolations();
@@ -1,4 +1,4 @@
1
- import { LitElement, PropertyValues } from 'lit';
1
+ import { LitElement, PropertyValues } from "lit";
2
2
  export interface ComboboxOption {
3
3
  value: string;
4
4
  label?: string;
@@ -116,7 +116,7 @@ export declare class WarpCombobox extends WarpCombobox_base {
116
116
  private _displayValue;
117
117
  static styles: import("lit").CSSResult[];
118
118
  constructor();
119
- firstUpdated(changedProps: Map<string, unknown>): void;
119
+ firstUpdated(): void;
120
120
  updated(changedProperties: Map<string, unknown>): void;
121
121
  resetFormControl(): void;
122
122
  connectedCallback(): void;
@@ -1 +1 @@
1
- import './combobox.js';
1
+ import "./combobox.js";
@@ -1,70 +1,70 @@
1
- import React from 'react';
2
- import { hydrateRoot } from 'react-dom/client';
3
- import { afterEach, beforeEach, describe, expect, test } from 'vitest';
4
- import { setupHydrationWarningCapture, testHydration } from '../../tests/react-hydration';
5
- import './combobox.js';
6
- describe('w-combobox React SSR hydration', () => {
1
+ import React from "react";
2
+ import { hydrateRoot } from "react-dom/client";
3
+ import { afterEach, beforeEach, describe, expect, test } from "vitest";
4
+ import { setupHydrationWarningCapture, testHydration, } from "../../tests/react-hydration";
5
+ import "./combobox.js";
6
+ describe("w-combobox React SSR hydration", () => {
7
7
  beforeEach(() => setupHydrationWarningCapture());
8
8
  afterEach(() => {
9
9
  window.__HYDRATION_WARNINGS__ = [];
10
10
  });
11
- test('default (no attributes) hydrates without warnings', async () => {
12
- const warnings = await testHydration('w-combobox', {});
11
+ test("default (no attributes) hydrates without warnings", async () => {
12
+ const warnings = await testHydration("w-combobox", {});
13
13
  expect(warnings).toEqual([]);
14
14
  });
15
- test('with label hydrates without warnings', async () => {
16
- const warnings = await testHydration('w-combobox', {
17
- label: 'Search',
15
+ test("with label hydrates without warnings", async () => {
16
+ const warnings = await testHydration("w-combobox", {
17
+ label: "Search",
18
18
  });
19
19
  expect(warnings).toEqual([]);
20
20
  });
21
- test('with placeholder hydrates without warnings', async () => {
22
- const warnings = await testHydration('w-combobox', {
23
- placeholder: 'Type to search...',
21
+ test("with placeholder hydrates without warnings", async () => {
22
+ const warnings = await testHydration("w-combobox", {
23
+ placeholder: "Type to search...",
24
24
  });
25
25
  expect(warnings).toEqual([]);
26
26
  });
27
- test('with value hydrates without warnings', async () => {
28
- const warnings = await testHydration('w-combobox', {
29
- value: 'test',
27
+ test("with value hydrates without warnings", async () => {
28
+ const warnings = await testHydration("w-combobox", {
29
+ value: "test",
30
30
  });
31
31
  expect(warnings).toEqual([]);
32
32
  });
33
- test('disabled combobox hydrates without warnings', async () => {
34
- const warnings = await testHydration('w-combobox', {
33
+ test("disabled combobox hydrates without warnings", async () => {
34
+ const warnings = await testHydration("w-combobox", {
35
35
  disabled: true,
36
36
  });
37
37
  expect(warnings).toEqual([]);
38
38
  });
39
- test('invalid combobox hydrates without warnings', async () => {
40
- const warnings = await testHydration('w-combobox', {
39
+ test("invalid combobox hydrates without warnings", async () => {
40
+ const warnings = await testHydration("w-combobox", {
41
41
  invalid: true,
42
42
  });
43
43
  expect(warnings).toEqual([]);
44
44
  });
45
- test('options array prop hydrates without runtime errors', async () => {
45
+ test("options array prop hydrates without runtime errors", async () => {
46
46
  const unhandledRejections = [];
47
47
  const onUnhandledRejection = (event) => {
48
48
  unhandledRejections.push(String(event.reason));
49
49
  event.preventDefault();
50
50
  };
51
- window.addEventListener('unhandledrejection', onUnhandledRejection);
51
+ window.addEventListener("unhandledrejection", onUnhandledRejection);
52
52
  try {
53
- await testHydration('w-combobox', {
53
+ await testHydration("w-combobox", {
54
54
  options: [
55
- { value: 'apple', label: 'Apple' },
56
- { value: 'banana', label: 'Banana' },
55
+ { value: "apple", label: "Apple" },
56
+ { value: "banana", label: "Banana" },
57
57
  ],
58
58
  });
59
59
  expect(unhandledRejections).toEqual([]);
60
60
  }
61
61
  finally {
62
- window.removeEventListener('unhandledrejection', onUnhandledRejection);
62
+ window.removeEventListener("unhandledrejection", onUnhandledRejection);
63
63
  }
64
64
  });
65
- test('dangerouslySetInnerHTML wrapper hydrates without attribute mismatch warnings', async () => {
66
- const container = document.createElement('div');
67
- container.id = 'hydration-innerhtml-root';
65
+ test("dangerouslySetInnerHTML wrapper hydrates without attribute mismatch warnings", async () => {
66
+ const container = document.createElement("div");
67
+ container.id = "hydration-innerhtml-root";
68
68
  document.body.appendChild(container);
69
69
  const innerHtml = '<w-combobox id="demo-combobox" placeholder="Search"></w-combobox>';
70
70
  try {
@@ -73,8 +73,8 @@ describe('w-combobox React SSR hydration', () => {
73
73
  // before React hydrates the tree.
74
74
  await new Promise((resolve) => setTimeout(resolve, 50));
75
75
  function App() {
76
- return React.createElement('section', {
77
- className: 'example',
76
+ return React.createElement("section", {
77
+ className: "example",
78
78
  // biome-ignore lint/security/noDangerouslySetInnerHtml: test reproduces React hydration mismatch path
79
79
  dangerouslySetInnerHTML: { __html: innerHtml },
80
80
  });
@@ -82,9 +82,9 @@ describe('w-combobox React SSR hydration', () => {
82
82
  hydrateRoot(container, React.createElement(App), {
83
83
  onRecoverableError: (error) => {
84
84
  const msg = error instanceof Error ? error.message : String(error);
85
- if (msg.includes('Hydration') ||
86
- msg.includes('hydrat') ||
87
- msg.includes('did not match') ||
85
+ if (msg.includes("Hydration") ||
86
+ msg.includes("hydrat") ||
87
+ msg.includes("did not match") ||
88
88
  msg.includes("didn't match")) {
89
89
  window.__HYDRATION_WARNINGS__.push(msg);
90
90
  }
@@ -97,22 +97,22 @@ describe('w-combobox React SSR hydration', () => {
97
97
  document.body.removeChild(container);
98
98
  }
99
99
  });
100
- test('declarative option children hydrate without attribute mismatch warnings', async () => {
101
- const container = document.createElement('div');
102
- container.id = 'hydration-options-root';
100
+ test("declarative option children hydrate without attribute mismatch warnings", async () => {
101
+ const container = document.createElement("div");
102
+ container.id = "hydration-options-root";
103
103
  document.body.appendChild(container);
104
104
  const innerHtml = [
105
105
  '<w-combobox id="demo-combobox" label="Search">',
106
106
  '<option value="apple">Apple</option>',
107
107
  '<option value="banana">Banana</option>',
108
- '</w-combobox>',
109
- ].join('');
108
+ "</w-combobox>",
109
+ ].join("");
110
110
  try {
111
111
  container.innerHTML = `<section class="example">${innerHtml}</section>`;
112
112
  await new Promise((resolve) => setTimeout(resolve, 50));
113
113
  function App() {
114
- return React.createElement('section', {
115
- className: 'example',
114
+ return React.createElement("section", {
115
+ className: "example",
116
116
  // biome-ignore lint/security/noDangerouslySetInnerHtml: test reproduces React hydration mismatch path
117
117
  dangerouslySetInnerHTML: { __html: innerHtml },
118
118
  });
@@ -120,9 +120,9 @@ describe('w-combobox React SSR hydration', () => {
120
120
  hydrateRoot(container, React.createElement(App), {
121
121
  onRecoverableError: (error) => {
122
122
  const msg = error instanceof Error ? error.message : String(error);
123
- if (msg.includes('Hydration') ||
124
- msg.includes('hydrat') ||
125
- msg.includes('did not match') ||
123
+ if (msg.includes("Hydration") ||
124
+ msg.includes("hydrat") ||
125
+ msg.includes("did not match") ||
126
126
  msg.includes("didn't match")) {
127
127
  window.__HYDRATION_WARNINGS__.push(msg);
128
128
  }