@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,5 +1,5 @@
1
- import { describeReactSsrAttributeMapping } from '../../tests/react-ssr-attributes';
2
- import { RadioGroup } from './react.js';
3
- describeReactSsrAttributeMapping('RadioGroup', RadioGroup, [
4
- { propName: 'helpText', attrName: 'help-text', value: 'Help text' },
1
+ import { describeReactSsrAttributeMapping } from "../../tests/react-ssr-attributes";
2
+ import { RadioGroup } from "./react.js";
3
+ describeReactSsrAttributeMapping("RadioGroup", RadioGroup, [
4
+ { propName: "helpText", attrName: "help-text", value: "Help text" },
5
5
  ]);
@@ -1,2 +1,2 @@
1
- import './radio-group.js';
2
- import '../radio/radio.js';
1
+ import "./radio-group.js";
2
+ import "../radio/radio.js";
@@ -1,28 +1,28 @@
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 './radio-group.js';
6
- import '../radio/radio.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 "./radio-group.js";
6
+ import "../radio/radio.js";
7
7
  // Initialize i18n with English locale for tests
8
- i18n.load('en', {
9
- 'radio-group.label.optional': ['(optional)'],
10
- 'radio-group.validation.required': ['Please select an option.'],
8
+ i18n.load("en", {
9
+ "radio-group.label.optional": ["(optional)"],
10
+ "radio-group.validation.required": ["Please select an option."],
11
11
  });
12
- i18n.activate('en');
13
- test('selects radio on click and dispatches input/change', async () => {
12
+ i18n.activate("en");
13
+ test("selects radio on click and dispatches input/change", async () => {
14
14
  render(html `
15
- <w-radio-group label="Choices" name="choice">
16
- <w-radio value="alpha">Alpha</w-radio>
17
- <w-radio value="beta">Beta</w-radio>
18
- </w-radio-group>
19
- `);
20
- const group = document.querySelector('w-radio-group');
21
- const radios = Array.from(document.querySelectorAll('w-radio'));
15
+ <w-radio-group label="Choices" name="choice">
16
+ <w-radio value="alpha">Alpha</w-radio>
17
+ <w-radio value="beta">Beta</w-radio>
18
+ </w-radio-group>
19
+ `);
20
+ const group = document.querySelector("w-radio-group");
21
+ const radios = [...document.querySelectorAll("w-radio")];
22
22
  const onInput = vi.fn();
23
23
  const onChange = vi.fn();
24
- group.addEventListener('input', onInput);
25
- group.addEventListener('change', onChange);
24
+ group.addEventListener("input", onInput);
25
+ group.addEventListener("change", onChange);
26
26
  await group.updateComplete;
27
27
  radios[1].click();
28
28
  await group.updateComplete;
@@ -34,138 +34,143 @@ test('selects radio on click and dispatches input/change', async () => {
34
34
  await group.updateComplete;
35
35
  expect(onChange).toHaveBeenCalledTimes(1);
36
36
  });
37
- test('renders help text when provided', async () => {
37
+ test("renders help text when provided", async () => {
38
38
  const page = render(html `
39
- <w-radio-group name="choices" label="Choices" help-text="Select one">
40
- <w-radio value="alpha">Alpha</w-radio>
41
- <w-radio value="beta">Beta</w-radio>
42
- </w-radio-group>
43
- `);
44
- await expect.element(page.getByText('Select one')).toBeVisible();
39
+ <w-radio-group name="choices" label="Choices" help-text="Select one">
40
+ <w-radio value="alpha">Alpha</w-radio>
41
+ <w-radio value="beta">Beta</w-radio>
42
+ </w-radio-group>
43
+ `);
44
+ await expect.element(page.getByText("Select one")).toBeVisible();
45
45
  });
46
- test('disabled group renders help text in disabled color', async () => {
46
+ test("disabled group renders help text in disabled color", async () => {
47
47
  render(html `
48
- <w-radio-group name="choices" label="Choices" help-text="Select one" disabled>
49
- <w-radio value="alpha">Alpha</w-radio>
50
- <w-radio value="beta">Beta</w-radio>
51
- </w-radio-group>
52
- `);
53
- const group = document.querySelector('w-radio-group');
48
+ <w-radio-group
49
+ name="choices"
50
+ label="Choices"
51
+ help-text="Select one"
52
+ disabled
53
+ >
54
+ <w-radio value="alpha">Alpha</w-radio>
55
+ <w-radio value="beta">Beta</w-radio>
56
+ </w-radio-group>
57
+ `);
58
+ const group = document.querySelector("w-radio-group");
54
59
  await group.updateComplete;
55
60
  const helpText = group.shadowRoot?.querySelector('[part~="help-text"]');
56
61
  expect(helpText).not.toBeNull();
57
- const swatch = document.createElement('div');
58
- swatch.style.color = 'var(--w-s-color-text-disabled)';
62
+ const swatch = document.createElement("div");
63
+ swatch.style.color = "var(--w-s-color-text-disabled)";
59
64
  document.body.append(swatch);
60
65
  const disabledColor = getComputedStyle(swatch).color;
61
66
  swatch.remove();
62
67
  if (!helpText) {
63
- throw new Error('Expected help text element to exist');
68
+ throw new Error("Expected help text element to exist");
64
69
  }
65
70
  expect(getComputedStyle(helpText).color).toBe(disabledColor);
66
71
  });
67
- test('renders optional text when optional is true', async () => {
72
+ test("renders optional text when optional is true", async () => {
68
73
  const page = render(html `
69
- <w-radio-group name="choices" label="Choices" optional>
70
- <w-radio value="alpha">Alpha</w-radio>
71
- <w-radio value="beta">Beta</w-radio>
72
- </w-radio-group>
73
- `);
74
- await expect.element(page.getByText('(optional)')).toBeVisible();
74
+ <w-radio-group name="choices" label="Choices" optional>
75
+ <w-radio value="alpha">Alpha</w-radio>
76
+ <w-radio value="beta">Beta</w-radio>
77
+ </w-radio-group>
78
+ `);
79
+ await expect.element(page.getByText("(optional)")).toBeVisible();
75
80
  });
76
- test('associates selected value with form submission', async () => {
81
+ test("associates selected value with form submission", async () => {
77
82
  render(html `
78
- <form>
79
- <w-radio-group label="Choices" name="choice">
80
- <w-radio value="alpha">Alpha</w-radio>
81
- <w-radio value="beta">Beta</w-radio>
82
- </w-radio-group>
83
- </form>
84
- `);
85
- const form = document.querySelector('form');
86
- const group = document.querySelector('w-radio-group');
87
- const radios = Array.from(document.querySelectorAll('w-radio'));
83
+ <form>
84
+ <w-radio-group label="Choices" name="choice">
85
+ <w-radio value="alpha">Alpha</w-radio>
86
+ <w-radio value="beta">Beta</w-radio>
87
+ </w-radio-group>
88
+ </form>
89
+ `);
90
+ const form = document.querySelector("form");
91
+ const group = document.querySelector("w-radio-group");
92
+ const radios = [...document.querySelectorAll("w-radio")];
88
93
  await group.updateComplete;
89
94
  let data = new FormData(form);
90
- expect(data.get('choice')).toBeNull();
95
+ expect(data.get("choice")).toBeNull();
91
96
  radios[0].click();
92
97
  await group.updateComplete;
93
98
  data = new FormData(form);
94
- expect(data.get('choice')).toBe('alpha');
99
+ expect(data.get("choice")).toBe("alpha");
95
100
  });
96
- test('radio group does not submit its own value', async () => {
101
+ test("radio group does not submit its own value", async () => {
97
102
  render(html `
98
- <form>
99
- <w-radio-group label="Choices" name="choice">
100
- <w-radio value="alpha">Alpha</w-radio>
101
- <w-radio value="beta">Beta</w-radio>
102
- </w-radio-group>
103
- </form>
104
- `);
105
- const form = document.querySelector('form');
106
- const group = document.querySelector('w-radio-group');
107
- const radios = Array.from(document.querySelectorAll('w-radio'));
103
+ <form>
104
+ <w-radio-group label="Choices" name="choice">
105
+ <w-radio value="alpha">Alpha</w-radio>
106
+ <w-radio value="beta">Beta</w-radio>
107
+ </w-radio-group>
108
+ </form>
109
+ `);
110
+ const form = document.querySelector("form");
111
+ const group = document.querySelector("w-radio-group");
112
+ const radios = [...document.querySelectorAll("w-radio")];
108
113
  await group.updateComplete;
109
114
  radios[1].click();
110
115
  await group.updateComplete;
111
116
  const data = new FormData(form);
112
- expect(data.get('choice')).toBe('beta');
117
+ expect(data.get("choice")).toBe("beta");
113
118
  });
114
- test('does not submit a value when name is missing', async () => {
119
+ test("does not submit a value when name is missing", async () => {
115
120
  render(html `
116
- <form>
117
- <w-radio-group name="choices" label="Choices">
118
- <w-radio value="alpha">Alpha</w-radio>
119
- <w-radio value="beta">Beta</w-radio>
120
- </w-radio-group>
121
- </form>
122
- `);
123
- const form = document.querySelector('form');
124
- const group = document.querySelector('w-radio-group');
125
- const radios = Array.from(document.querySelectorAll('w-radio'));
121
+ <form>
122
+ <w-radio-group name="choices" label="Choices">
123
+ <w-radio value="alpha">Alpha</w-radio>
124
+ <w-radio value="beta">Beta</w-radio>
125
+ </w-radio-group>
126
+ </form>
127
+ `);
128
+ const form = document.querySelector("form");
129
+ const group = document.querySelector("w-radio-group");
130
+ const radios = [...document.querySelectorAll("w-radio")];
126
131
  await group.updateComplete;
127
132
  radios[0].click();
128
133
  await group.updateComplete;
129
134
  const data = new FormData(form);
130
- expect(data.get('choice')).toBeNull();
135
+ expect(data.get("choice")).toBeNull();
131
136
  });
132
- test('required group reports validity based on selection', async () => {
137
+ test("required group reports validity based on selection", async () => {
133
138
  render(html `
134
- <w-radio-group label="Choices" name="choice" required>
135
- <w-radio value="alpha">Alpha</w-radio>
136
- <w-radio value="beta">Beta</w-radio>
137
- </w-radio-group>
138
- `);
139
- const group = document.querySelector('w-radio-group');
140
- const radios = Array.from(document.querySelectorAll('w-radio'));
139
+ <w-radio-group label="Choices" name="choice" required>
140
+ <w-radio value="alpha">Alpha</w-radio>
141
+ <w-radio value="beta">Beta</w-radio>
142
+ </w-radio-group>
143
+ `);
144
+ const group = document.querySelector("w-radio-group");
145
+ const radios = [...document.querySelectorAll("w-radio")];
141
146
  await group.updateComplete;
142
147
  await expect.poll(() => group.checkValidity()).toBe(false);
143
148
  expect(group.validity.valueMissing).toBe(true);
144
- expect(group.validationMessage).not.toBe('');
149
+ expect(group.validationMessage).not.toBe("");
145
150
  radios[0].click();
146
151
  await group.updateComplete;
147
152
  await expect.poll(() => group.checkValidity()).toBe(true);
148
153
  expect(group.validity.valid).toBe(true);
149
154
  });
150
- test('required group blocks form submission until a selection is made', async () => {
155
+ test("required group blocks form submission until a selection is made", async () => {
151
156
  render(html `
152
- <form>
153
- <w-radio-group label="Choices" name="choice" required>
154
- <w-radio value="alpha">Alpha</w-radio>
155
- <w-radio value="beta">Beta</w-radio>
156
- </w-radio-group>
157
- <button type="submit">Submit</button>
158
- </form>
159
- `);
160
- const form = document.querySelector('form');
161
- const group = document.querySelector('w-radio-group');
162
- const radios = Array.from(document.querySelectorAll('w-radio'));
157
+ <form>
158
+ <w-radio-group label="Choices" name="choice" required>
159
+ <w-radio value="alpha">Alpha</w-radio>
160
+ <w-radio value="beta">Beta</w-radio>
161
+ </w-radio-group>
162
+ <button type="submit">Submit</button>
163
+ </form>
164
+ `);
165
+ const form = document.querySelector("form");
166
+ const group = document.querySelector("w-radio-group");
167
+ const radios = [...document.querySelectorAll("w-radio")];
163
168
  const submit = document.querySelector('button[type="submit"]');
164
169
  const onSubmit = vi.fn(() => {
165
170
  const data = new FormData(form);
166
- expect(data.get('choice')).toBe('alpha');
171
+ expect(data.get("choice")).toBe("alpha");
167
172
  });
168
- form.addEventListener('submit', (event) => {
173
+ form.addEventListener("submit", (event) => {
169
174
  if (!form.checkValidity()) {
170
175
  event.preventDefault();
171
176
  return;
@@ -185,30 +190,30 @@ test('required group blocks form submission until a selection is made', async ()
185
190
  await expect.poll(() => form.checkValidity()).toBe(true);
186
191
  expect(onSubmit).toHaveBeenCalledTimes(1);
187
192
  });
188
- test('required group exposes a validation message when empty', async () => {
193
+ test("required group exposes a validation message when empty", async () => {
189
194
  render(html `
190
- <w-radio-group label="Choices" name="choice" required>
191
- <w-radio value="alpha">Alpha</w-radio>
192
- <w-radio value="beta">Beta</w-radio>
193
- </w-radio-group>
194
- `);
195
- const group = document.querySelector('w-radio-group');
195
+ <w-radio-group label="Choices" name="choice" required>
196
+ <w-radio value="alpha">Alpha</w-radio>
197
+ <w-radio value="beta">Beta</w-radio>
198
+ </w-radio-group>
199
+ `);
200
+ const group = document.querySelector("w-radio-group");
196
201
  await group.updateComplete;
197
202
  await expect.poll(() => group.reportValidity()).toBe(false);
198
- expect(group.validationMessage).not.toBe('');
203
+ expect(group.validationMessage).not.toBe("");
199
204
  });
200
- test('resets to default selection on form reset', async () => {
205
+ test("resets to default selection on form reset", async () => {
201
206
  render(html `
202
- <form>
203
- <w-radio-group label="Choices" name="choice">
204
- <w-radio value="alpha" checked>Alpha</w-radio>
205
- <w-radio value="beta">Beta</w-radio>
206
- </w-radio-group>
207
- </form>
208
- `);
209
- const form = document.querySelector('form');
210
- const group = document.querySelector('w-radio-group');
211
- const radios = Array.from(document.querySelectorAll('w-radio'));
207
+ <form>
208
+ <w-radio-group label="Choices" name="choice">
209
+ <w-radio value="alpha" checked>Alpha</w-radio>
210
+ <w-radio value="beta">Beta</w-radio>
211
+ </w-radio-group>
212
+ </form>
213
+ `);
214
+ const form = document.querySelector("form");
215
+ const group = document.querySelector("w-radio-group");
216
+ const radios = [...document.querySelectorAll("w-radio")];
212
217
  await group.updateComplete;
213
218
  await expect.poll(() => radios[0].checked).toBe(true);
214
219
  await expect.poll(() => radios[1].checked).toBe(false);
@@ -219,15 +224,15 @@ test('resets to default selection on form reset', async () => {
219
224
  await expect.poll(() => radios[0].checked).toBe(true);
220
225
  await expect.poll(() => radios[1].checked).toBe(false);
221
226
  });
222
- test('disabled group prevents selection and disables child radios', async () => {
227
+ test("disabled group prevents selection and disables child radios", async () => {
223
228
  render(html `
224
- <w-radio-group name="choices" label="Choices" disabled>
225
- <w-radio value="alpha">Alpha</w-radio>
226
- <w-radio value="beta">Beta</w-radio>
227
- </w-radio-group>
228
- `);
229
- const group = document.querySelector('w-radio-group');
230
- const radios = Array.from(document.querySelectorAll('w-radio'));
229
+ <w-radio-group name="choices" label="Choices" disabled>
230
+ <w-radio value="alpha">Alpha</w-radio>
231
+ <w-radio value="beta">Beta</w-radio>
232
+ </w-radio-group>
233
+ `);
234
+ const group = document.querySelector("w-radio-group");
235
+ const radios = [...document.querySelectorAll("w-radio")];
231
236
  await group.updateComplete;
232
237
  // Check the disabled property - aria-disabled is set via ElementInternals
233
238
  expect(radios[0].disabled).toBe(true);
@@ -238,38 +243,38 @@ test('disabled group prevents selection and disables child radios', async () =>
238
243
  await group.updateComplete;
239
244
  expect(radios[0].checked).toBe(false);
240
245
  });
241
- test('name changes after render affect form submission', async () => {
246
+ test("name changes after render affect form submission", async () => {
242
247
  render(html `
243
- <form>
244
- <w-radio-group label="Choices" name="choice">
245
- <w-radio value="alpha">Alpha</w-radio>
246
- <w-radio value="beta">Beta</w-radio>
247
- </w-radio-group>
248
- </form>
249
- `);
250
- const form = document.querySelector('form');
251
- const group = document.querySelector('w-radio-group');
252
- const radios = Array.from(document.querySelectorAll('w-radio'));
248
+ <form>
249
+ <w-radio-group label="Choices" name="choice">
250
+ <w-radio value="alpha">Alpha</w-radio>
251
+ <w-radio value="beta">Beta</w-radio>
252
+ </w-radio-group>
253
+ </form>
254
+ `);
255
+ const form = document.querySelector("form");
256
+ const group = document.querySelector("w-radio-group");
257
+ const radios = [...document.querySelectorAll("w-radio")];
253
258
  await group.updateComplete;
254
259
  radios[0].click();
255
260
  await group.updateComplete;
256
261
  let data = new FormData(form);
257
- expect(data.get('choice')).toBe('alpha');
258
- group.name = 'preference';
262
+ expect(data.get("choice")).toBe("alpha");
263
+ group.name = "preference";
259
264
  await group.updateComplete;
260
265
  data = new FormData(form);
261
- expect(data.get('choice')).toBeNull();
262
- expect(data.get('preference')).toBe('alpha');
266
+ expect(data.get("choice")).toBeNull();
267
+ expect(data.get("preference")).toBe("alpha");
263
268
  });
264
- test('re-enabling a disabled group restores tabbable radio', async () => {
269
+ test("re-enabling a disabled group restores tabbable radio", async () => {
265
270
  render(html `
266
- <w-radio-group name="choices" label="Choices" disabled>
267
- <w-radio value="alpha">Alpha</w-radio>
268
- <w-radio value="beta" checked>Beta</w-radio>
269
- </w-radio-group>
270
- `);
271
- const group = document.querySelector('w-radio-group');
272
- const radios = Array.from(document.querySelectorAll('w-radio'));
271
+ <w-radio-group name="choices" label="Choices" disabled>
272
+ <w-radio value="alpha">Alpha</w-radio>
273
+ <w-radio value="beta" checked>Beta</w-radio>
274
+ </w-radio-group>
275
+ `);
276
+ const group = document.querySelector("w-radio-group");
277
+ const radios = [...document.querySelectorAll("w-radio")];
273
278
  await group.updateComplete;
274
279
  expect(radios[0].tabIndex).toBe(-1);
275
280
  expect(radios[1].tabIndex).toBe(-1);
@@ -279,15 +284,15 @@ test('re-enabling a disabled group restores tabbable radio', async () => {
279
284
  await expect.poll(() => radios[1].tabIndex).toBe(0);
280
285
  await expect.poll(() => radios[0].tabIndex).toBe(-1);
281
286
  });
282
- test('only one radio is tabbable at a time', async () => {
287
+ test("only one radio is tabbable at a time", async () => {
283
288
  render(html `
284
- <w-radio-group name="choices" label="Choices">
285
- <w-radio value="alpha">Alpha</w-radio>
286
- <w-radio value="beta">Beta</w-radio>
287
- </w-radio-group>
288
- `);
289
- const group = document.querySelector('w-radio-group');
290
- const radios = Array.from(document.querySelectorAll('w-radio'));
289
+ <w-radio-group name="choices" label="Choices">
290
+ <w-radio value="alpha">Alpha</w-radio>
291
+ <w-radio value="beta">Beta</w-radio>
292
+ </w-radio-group>
293
+ `);
294
+ const group = document.querySelector("w-radio-group");
295
+ const radios = [...document.querySelectorAll("w-radio")];
291
296
  await group.updateComplete;
292
297
  await expect.poll(() => radios[0].tabIndex).toBe(0);
293
298
  await expect.poll(() => radios[1].tabIndex).toBe(-1);
@@ -296,30 +301,30 @@ test('only one radio is tabbable at a time', async () => {
296
301
  await expect.poll(() => radios[0].tabIndex).toBe(-1);
297
302
  await expect.poll(() => radios[1].tabIndex).toBe(0);
298
303
  });
299
- test('warns when used in a form without a name', async () => {
300
- const warn = vi.spyOn(console, 'warn').mockImplementation(() => { });
304
+ test("warns when used in a form without a name", async () => {
305
+ const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
301
306
  render(html `
302
- <form>
303
- <w-radio-group label="Choices">
304
- <w-radio value="alpha">Alpha</w-radio>
305
- <w-radio value="beta">Beta</w-radio>
306
- </w-radio-group>
307
- </form>
308
- `);
309
- const group = document.querySelector('w-radio-group');
307
+ <form>
308
+ <w-radio-group label="Choices">
309
+ <w-radio value="alpha">Alpha</w-radio>
310
+ <w-radio value="beta">Beta</w-radio>
311
+ </w-radio-group>
312
+ </form>
313
+ `);
314
+ const group = document.querySelector("w-radio-group");
310
315
  await group.updateComplete;
311
316
  expect(warn).toHaveBeenCalledWith('w-radio-group: "name" is required for form submission.');
312
317
  warn.mockRestore();
313
318
  });
314
- test('propagates invalid state to child radios', async () => {
319
+ test("propagates invalid state to child radios", async () => {
315
320
  render(html `
316
- <w-radio-group label="Choices" name="choice" required>
317
- <w-radio value="alpha">Alpha</w-radio>
318
- <w-radio value="beta">Beta</w-radio>
319
- </w-radio-group>
320
- `);
321
- const group = document.querySelector('w-radio-group');
322
- const radios = Array.from(document.querySelectorAll('w-radio'));
321
+ <w-radio-group label="Choices" name="choice" required>
322
+ <w-radio value="alpha">Alpha</w-radio>
323
+ <w-radio value="beta">Beta</w-radio>
324
+ </w-radio-group>
325
+ `);
326
+ const group = document.querySelector("w-radio-group");
327
+ const radios = [...document.querySelectorAll("w-radio")];
323
328
  await group.updateComplete;
324
329
  group.reportValidity();
325
330
  await group.updateComplete;
@@ -330,64 +335,64 @@ test('propagates invalid state to child radios', async () => {
330
335
  expect(radios[0].invalid).toBe(false);
331
336
  expect(radios[1].invalid).toBe(false);
332
337
  });
333
- test('adds and removes tabindex on the host when invalid', async () => {
338
+ test("adds and removes tabindex on the host when invalid", async () => {
334
339
  render(html `
335
- <w-radio-group label="Choices" name="choice">
336
- <w-radio value="alpha">Alpha</w-radio>
337
- <w-radio value="beta">Beta</w-radio>
338
- </w-radio-group>
339
- `);
340
- const group = document.querySelector('w-radio-group');
340
+ <w-radio-group label="Choices" name="choice">
341
+ <w-radio value="alpha">Alpha</w-radio>
342
+ <w-radio value="beta">Beta</w-radio>
343
+ </w-radio-group>
344
+ `);
345
+ const group = document.querySelector("w-radio-group");
341
346
  await group.updateComplete;
342
- expect(group.hasAttribute('tabindex')).toBe(false);
343
- group.setAttribute('invalid', '');
347
+ expect(group.hasAttribute("tabindex")).toBe(false);
348
+ group.setAttribute("invalid", "");
344
349
  await group.updateComplete;
345
- expect(group.getAttribute('tabindex')).toBe('0');
346
- group.removeAttribute('invalid');
350
+ expect(group.getAttribute("tabindex")).toBe("0");
351
+ group.removeAttribute("invalid");
347
352
  await group.updateComplete;
348
- expect(group.hasAttribute('tabindex')).toBe(false);
353
+ expect(group.hasAttribute("tabindex")).toBe(false);
349
354
  });
350
- test('updates optional text when locale changes', async () => {
351
- i18n.load('fr', {
352
- 'radio-group.label.optional': ['(optionnel)'],
353
- 'radio-group.validation.required': ['Please select an option.'],
355
+ test("updates optional text when locale changes", async () => {
356
+ i18n.load("fr", {
357
+ "radio-group.label.optional": ["(optionnel)"],
358
+ "radio-group.validation.required": ["Please select an option."],
354
359
  });
355
360
  const page = render(html `
356
- <w-radio-group name="choices" label="Choices" optional>
357
- <w-radio value="alpha">Alpha</w-radio>
358
- <w-radio value="beta">Beta</w-radio>
359
- </w-radio-group>
360
- `);
361
- const group = document.querySelector('w-radio-group');
362
- await group.updateComplete;
363
- await expect.element(page.getByText('(optional)')).toBeVisible();
364
- i18n.activate('fr');
365
- await group.updateComplete;
366
- await expect.element(page.getByText('(optionnel)')).toBeVisible();
367
- i18n.activate('en');
361
+ <w-radio-group name="choices" label="Choices" optional>
362
+ <w-radio value="alpha">Alpha</w-radio>
363
+ <w-radio value="beta">Beta</w-radio>
364
+ </w-radio-group>
365
+ `);
366
+ const group = document.querySelector("w-radio-group");
367
+ await group.updateComplete;
368
+ await expect.element(page.getByText("(optional)")).toBeVisible();
369
+ i18n.activate("fr");
370
+ await group.updateComplete;
371
+ await expect.element(page.getByText("(optionnel)")).toBeVisible();
372
+ i18n.activate("en");
368
373
  });
369
- test('does not set aria-labelledby when label is missing', async () => {
374
+ test("does not set aria-labelledby when label is missing", async () => {
370
375
  render(html `
371
- <w-radio-group name="choices">
372
- <w-radio value="alpha">Alpha</w-radio>
373
- <w-radio value="beta">Beta</w-radio>
374
- </w-radio-group>
375
- `);
376
- const group = document.querySelector('w-radio-group');
377
- await group.updateComplete;
378
- const fieldset = group.shadowRoot?.querySelector('fieldset');
379
- expect(fieldset?.getAttribute('aria-labelledby')).toBeNull();
376
+ <w-radio-group name="choices">
377
+ <w-radio value="alpha">Alpha</w-radio>
378
+ <w-radio value="beta">Beta</w-radio>
379
+ </w-radio-group>
380
+ `);
381
+ const group = document.querySelector("w-radio-group");
382
+ await group.updateComplete;
383
+ const fieldset = group.shadowRoot?.querySelector("fieldset");
384
+ expect(fieldset?.getAttribute("aria-labelledby")).toBeNull();
380
385
  });
381
- test('applies group name to child radios when missing', async () => {
386
+ test("applies group name to child radios when missing", async () => {
382
387
  render(html `
383
- <w-radio-group label="Choices" name="choice">
384
- <w-radio value="alpha">Alpha</w-radio>
385
- <w-radio value="beta">Beta</w-radio>
386
- </w-radio-group>
387
- `);
388
- const group = document.querySelector('w-radio-group');
389
- const radios = Array.from(document.querySelectorAll('w-radio'));
390
- await group.updateComplete;
391
- expect(radios[0].getAttribute('name')).toBe('choice');
392
- expect(radios[1].getAttribute('name')).toBe('choice');
388
+ <w-radio-group label="Choices" name="choice">
389
+ <w-radio value="alpha">Alpha</w-radio>
390
+ <w-radio value="beta">Beta</w-radio>
391
+ </w-radio-group>
392
+ `);
393
+ const group = document.querySelector("w-radio-group");
394
+ const radios = [...document.querySelectorAll("w-radio")];
395
+ await group.updateComplete;
396
+ expect(radios[0].getAttribute("name")).toBe("choice");
397
+ expect(radios[1].getAttribute("name")).toBe("choice");
393
398
  });
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import { WarpRadioGroup } from './radio-group.js';
1
+ import React from "react";
2
+ import { WarpRadioGroup } from "./radio-group.js";
3
3
  export declare const RadioGroup: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpRadioGroup>, "form" | "label" | "name" | "disabled" | "invalid" | "helpText" | "required" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "onchange" | "oninput" | "updated" | "resetFormControl" | "render" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "onChange" | "onInput" | "reportValidity" | "optional" | "hasInteracted"> & {
4
4
  onInput?: ((e: Event) => void) | undefined;
5
5
  oninput?: ((e: Event) => void) | undefined;