@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,11 +1,11 @@
1
- import { html } from 'lit';
2
- import { expect, test, vi } from 'vitest';
3
- import { render } from 'vitest-browser-lit';
4
- import './radio.js';
5
- import { userEvent } from 'vitest/browser';
6
- test('checks on click and remains checked on subsequent clicks', async () => {
1
+ import { html } from "lit";
2
+ import { expect, test, vi } from "vitest";
3
+ import { render } from "vitest-browser-lit";
4
+ import "./radio.js";
5
+ import { userEvent } from "vitest/browser";
6
+ test("checks on click and remains checked on subsequent clicks", async () => {
7
7
  render(html `<w-radio value="alpha">Alpha</w-radio>`);
8
- const radio = document.querySelector('w-radio');
8
+ const radio = document.querySelector("w-radio");
9
9
  await radio.updateComplete;
10
10
  expect(radio.checked).toBe(false);
11
11
  radio.click();
@@ -15,9 +15,9 @@ test('checks on click and remains checked on subsequent clicks', async () => {
15
15
  await radio.updateComplete;
16
16
  expect(radio.checked).toBe(true);
17
17
  });
18
- test('does not check when disabled', async () => {
18
+ test("does not check when disabled", async () => {
19
19
  render(html `<w-radio value="alpha" disabled>Alpha</w-radio>`);
20
- const radio = document.querySelector('w-radio');
20
+ const radio = document.querySelector("w-radio");
21
21
  await radio.updateComplete;
22
22
  expect(radio.checked).toBe(false);
23
23
  expect(radio.disabled).toBe(true);
@@ -26,9 +26,9 @@ test('does not check when disabled', async () => {
26
26
  await radio.updateComplete;
27
27
  expect(radio.checked).toBe(false);
28
28
  });
29
- test('updates checked state and tabIndex when checked', async () => {
29
+ test("updates checked state and tabIndex when checked", async () => {
30
30
  render(html `<w-radio value="alpha">Alpha</w-radio>`);
31
- const radio = document.querySelector('w-radio');
31
+ const radio = document.querySelector("w-radio");
32
32
  await radio.updateComplete;
33
33
  expect(radio.checked).toBe(false);
34
34
  radio.checked = true;
@@ -37,38 +37,39 @@ test('updates checked state and tabIndex when checked', async () => {
37
37
  // tabIndex is set after RAF for hydration compatibility
38
38
  await expect.poll(() => radio.tabIndex).toBe(0);
39
39
  });
40
- test('checked state uses selected border color', async () => {
40
+ test("checked state uses selected border color", async () => {
41
41
  render(html `<w-radio value="alpha">Alpha</w-radio>`);
42
- const radio = document.querySelector('w-radio');
42
+ const radio = document.querySelector("w-radio");
43
43
  await radio.updateComplete;
44
- const control = radio.shadowRoot?.querySelector('.control');
44
+ const control = radio.shadowRoot?.querySelector(".control");
45
45
  if (!control) {
46
- throw new Error('Expected radio control element to exist');
46
+ throw new Error("Expected radio control element to exist");
47
47
  }
48
48
  radio.click();
49
49
  await radio.updateComplete;
50
- const swatch = document.createElement('div');
51
- swatch.style.borderColor = 'var(--w-s-color-border-selected)';
50
+ const swatch = document.createElement("div");
51
+ swatch.style.borderColor = "var(--w-s-color-border-selected)";
52
52
  document.body.append(swatch);
53
53
  const selectedColor = getComputedStyle(swatch).borderColor;
54
54
  swatch.remove();
55
55
  expect(getComputedStyle(control).borderColor).toBe(selectedColor);
56
56
  });
57
- test('disabled control uses disabled background and border colors', async () => {
57
+ test("disabled control uses disabled background and border colors", async () => {
58
58
  render(html `<w-radio value="alpha" disabled>Alpha</w-radio>`);
59
- const radio = document.querySelector('w-radio');
59
+ const radio = document.querySelector("w-radio");
60
60
  await radio.updateComplete;
61
- const control = radio.shadowRoot?.querySelector('.control');
61
+ const control = radio.shadowRoot?.querySelector(".control");
62
62
  if (!control) {
63
- throw new Error('Expected radio control element to exist');
63
+ throw new Error("Expected radio control element to exist");
64
64
  }
65
- const bgSwatch = document.createElement('div');
66
- bgSwatch.style.backgroundColor = 'var(--w-s-color-background-disabled-subtle)';
65
+ const bgSwatch = document.createElement("div");
66
+ bgSwatch.style.backgroundColor =
67
+ "var(--w-s-color-background-disabled-subtle)";
67
68
  document.body.append(bgSwatch);
68
69
  const disabledBg = getComputedStyle(bgSwatch).backgroundColor;
69
70
  bgSwatch.remove();
70
- const borderSwatch = document.createElement('div');
71
- borderSwatch.style.borderColor = 'var(--w-s-color-border-disabled)';
71
+ const borderSwatch = document.createElement("div");
72
+ borderSwatch.style.borderColor = "var(--w-s-color-border-disabled)";
72
73
  document.body.append(borderSwatch);
73
74
  const disabledBorder = getComputedStyle(borderSwatch).borderColor;
74
75
  borderSwatch.remove();
@@ -76,9 +77,9 @@ test('disabled control uses disabled background and border colors', async () =>
76
77
  expect(controlStyle.backgroundColor).toBe(disabledBg);
77
78
  expect(controlStyle.borderColor).toBe(disabledBorder);
78
79
  });
79
- test('reflects disabled state changes and updates tabIndex', async () => {
80
+ test("reflects disabled state changes and updates tabIndex", async () => {
80
81
  render(html `<w-radio value="alpha">Alpha</w-radio>`);
81
- const radio = document.querySelector('w-radio');
82
+ const radio = document.querySelector("w-radio");
82
83
  await radio.updateComplete;
83
84
  expect(radio.disabled).toBe(false);
84
85
  // tabIndex is set after RAF for hydration compatibility
@@ -95,44 +96,44 @@ test('reflects disabled state changes and updates tabIndex', async () => {
95
96
  expect(radio.disabled).toBe(false);
96
97
  await expect.poll(() => radio.tabIndex).toBe(0);
97
98
  });
98
- test('focuses the host element', async () => {
99
+ test("focuses the host element", async () => {
99
100
  render(html `<w-radio value="alpha">Alpha</w-radio>`);
100
- const radio = document.querySelector('w-radio');
101
+ const radio = document.querySelector("w-radio");
101
102
  await radio.updateComplete;
102
103
  // Wait for tabindex to be set (delayed for hydration compatibility)
103
104
  await expect.poll(() => radio.tabIndex).toBe(0);
104
105
  radio.focus();
105
106
  await expect.poll(() => document.activeElement).toBe(radio);
106
107
  });
107
- test('associates selected value with form submission', async () => {
108
+ test("associates selected value with form submission", async () => {
108
109
  render(html `
109
- <form>
110
- <w-radio name="choice" value="alpha">Alpha</w-radio>
111
- <w-radio name="choice" value="beta">Beta</w-radio>
112
- </form>
113
- `);
114
- const form = document.querySelector('form');
115
- const radios = Array.from(document.querySelectorAll('w-radio'));
110
+ <form>
111
+ <w-radio name="choice" value="alpha">Alpha</w-radio>
112
+ <w-radio name="choice" value="beta">Beta</w-radio>
113
+ </form>
114
+ `);
115
+ const form = document.querySelector("form");
116
+ const radios = [...document.querySelectorAll("w-radio")];
116
117
  await radios[0].updateComplete;
117
118
  let data = new FormData(form);
118
- expect(data.get('choice')).toBeNull();
119
+ expect(data.get("choice")).toBeNull();
119
120
  radios[0].click();
120
121
  await radios[0].updateComplete;
121
122
  data = new FormData(form);
122
- expect(data.get('choice')).toBe('alpha');
123
+ expect(data.get("choice")).toBe("alpha");
123
124
  radios[1].click();
124
125
  await radios[1].updateComplete;
125
126
  expect(radios[0].checked).toBe(false);
126
127
  expect(radios[1].checked).toBe(true);
127
128
  data = new FormData(form);
128
- expect(data.get('choice')).toBe('beta');
129
+ expect(data.get("choice")).toBe("beta");
129
130
  });
130
- test('standalone radios with same name are mutually exclusive', async () => {
131
+ test("standalone radios with same name are mutually exclusive", async () => {
131
132
  render(html `
132
- <w-radio name="group" value="one">One</w-radio>
133
- <w-radio name="group" value="two">Two</w-radio>
134
- `);
135
- const radios = Array.from(document.querySelectorAll('w-radio'));
133
+ <w-radio name="group" value="one">One</w-radio>
134
+ <w-radio name="group" value="two">Two</w-radio>
135
+ `);
136
+ const radios = [...document.querySelectorAll("w-radio")];
136
137
  await radios[0].updateComplete;
137
138
  radios[0].click();
138
139
  await radios[0].updateComplete;
@@ -143,13 +144,13 @@ test('standalone radios with same name are mutually exclusive', async () => {
143
144
  expect(radios[0].checked).toBe(false);
144
145
  expect(radios[1].checked).toBe(true);
145
146
  });
146
- test('standalone radios with same name use roving tab order', async () => {
147
+ test("standalone radios with same name use roving tab order", async () => {
147
148
  render(html `
148
- <w-radio name="group" value="one">One</w-radio>
149
- <w-radio name="group" value="two">Two</w-radio>
150
- <w-radio name="group" value="three">Three</w-radio>
151
- `);
152
- const radios = Array.from(document.querySelectorAll('w-radio'));
149
+ <w-radio name="group" value="one">One</w-radio>
150
+ <w-radio name="group" value="two">Two</w-radio>
151
+ <w-radio name="group" value="three">Three</w-radio>
152
+ `);
153
+ const radios = [...document.querySelectorAll("w-radio")];
153
154
  await Promise.all(radios.map((radio) => radio.updateComplete));
154
155
  // tabIndex is set after RAF to avoid hydration mismatch, so poll for it
155
156
  await expect.poll(() => radios[0].tabIndex).toBe(0);
@@ -161,52 +162,52 @@ test('standalone radios with same name use roving tab order', async () => {
161
162
  expect(radios[0].tabIndex).toBe(-1);
162
163
  expect(radios[1].tabIndex).toBe(-1);
163
164
  });
164
- test('arrow keys move selection between standalone radios with same name', async () => {
165
+ test("arrow keys move selection between standalone radios with same name", async () => {
165
166
  render(html `
166
- <w-radio name="group" value="one">One</w-radio>
167
- <w-radio name="group" value="two">Two</w-radio>
168
- <w-radio name="group" value="three">Three</w-radio>
169
- `);
170
- const radios = Array.from(document.querySelectorAll('w-radio'));
167
+ <w-radio name="group" value="one">One</w-radio>
168
+ <w-radio name="group" value="two">Two</w-radio>
169
+ <w-radio name="group" value="three">Three</w-radio>
170
+ `);
171
+ const radios = [...document.querySelectorAll("w-radio")];
171
172
  await Promise.all(radios.map((radio) => radio.updateComplete));
172
173
  // Wait for initial tabIndex to be set (delayed for hydration compatibility)
173
174
  await expect.poll(() => radios[0].tabIndex).toBe(0);
174
175
  radios[0].focus();
175
- radios[0].dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }));
176
+ radios[0].dispatchEvent(new KeyboardEvent("keydown", { key: "ArrowDown", bubbles: true }));
176
177
  await Promise.all(radios.map((radio) => radio.updateComplete));
177
178
  expect(radios[0].checked).toBe(false);
178
179
  expect(radios[1].checked).toBe(true);
179
180
  await expect.poll(() => radios[1].tabIndex).toBe(0);
180
181
  await expect.poll(() => document.activeElement).toBe(radios[1]);
181
182
  });
182
- test('required radio reports validity based on checked state', async () => {
183
+ test("required radio reports validity based on checked state", async () => {
183
184
  render(html `<w-radio name="choice" value="alpha" required>Alpha</w-radio>`);
184
- const radio = document.querySelector('w-radio');
185
+ const radio = document.querySelector("w-radio");
185
186
  await radio.updateComplete;
186
187
  await expect.poll(() => radio.reportValidity()).toBe(false);
187
- expect(radio.validationMessage).not.toBe('');
188
+ expect(radio.validationMessage).not.toBe("");
188
189
  expect(radio.invalid).toBe(true);
189
190
  radio.click();
190
191
  await radio.updateComplete;
191
192
  await expect.poll(() => radio.reportValidity()).toBe(true);
192
193
  expect(radio.invalid).toBe(false);
193
194
  });
194
- test('submits the associated form when radio has focus and user presses Enter', async () => {
195
+ test("submits the associated form when radio has focus and user presses Enter", async () => {
195
196
  const screen = render(html `
196
- <form>
197
- <w-radio name="group" value="one">One</w-radio>
198
- <w-radio name="group" value="two">Two</w-radio>
199
- <button type="submit">Submit</button>
200
- </form>
201
- `);
197
+ <form>
198
+ <w-radio name="group" value="one">One</w-radio>
199
+ <w-radio name="group" value="two">Two</w-radio>
200
+ <button type="submit">Submit</button>
201
+ </form>
202
+ `);
202
203
  const onSubmit = vi.fn();
203
- const form = document.querySelector('form');
204
- form.addEventListener('submit', (event) => {
204
+ const form = document.querySelector("form");
205
+ form.addEventListener("submit", (event) => {
205
206
  event.preventDefault();
206
207
  onSubmit();
207
208
  });
208
- await userEvent.click(screen.getByText('One'));
209
- await userEvent.keyboard('{Space}');
210
- await userEvent.keyboard('{Enter}');
209
+ await userEvent.click(screen.getByText("One"));
210
+ await userEvent.keyboard("{Space}");
211
+ await userEvent.keyboard("{Enter}");
211
212
  expect(onSubmit).toHaveBeenCalled();
212
213
  });
@@ -1,2 +1,2 @@
1
- import { WarpRadio } from './radio.js';
1
+ import { WarpRadio } from "./radio.js";
2
2
  export declare const Radio: import("@lit/react").ReactWebComponent<WarpRadio, {}>;
@@ -1,11 +1,11 @@
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
  export const Radio = createComponent({
8
- tagName: 'w-radio',
8
+ tagName: "w-radio",
9
9
  elementClass: Component,
10
10
  react: React,
11
11
  });
@@ -1,4 +1,4 @@
1
- import type { Validator } from './form-associated-element';
1
+ import type { Validator } from "./form-associated-element";
2
2
  export interface RequiredValidatorOptions {
3
3
  /** This is a cheap way for us to get translation strings for the user without having proper translations. */
4
4
  validationElement?: HTMLSelectElement | HTMLInputElement;
@@ -1,21 +1,23 @@
1
1
  export const RequiredValidator = (options = {}) => {
2
2
  let { validationElement, validationProperty } = options;
3
3
  if (!validationElement) {
4
- validationElement = Object.assign(document.createElement('input'), { required: true });
4
+ validationElement = Object.assign(document.createElement("input"), {
5
+ required: true,
6
+ });
5
7
  }
6
8
  if (!validationProperty) {
7
- validationProperty = 'value';
9
+ validationProperty = "value";
8
10
  }
9
11
  const obj = {
10
- observedAttributes: ['required'],
12
+ observedAttributes: ["required"],
11
13
  message: validationElement.validationMessage, // @TODO: Add a translation.
12
14
  checkValidity(element) {
13
15
  const validity = {
14
- message: '',
16
+ message: "",
15
17
  isValid: true,
16
18
  invalidKeys: [],
17
19
  };
18
- const isRequired = element.required ?? element.hasAttribute('required');
20
+ const isRequired = element.required ?? element.hasAttribute("required");
19
21
  // Always true if the element isn't required.
20
22
  if (!isRequired) {
21
23
  return validity;
@@ -23,9 +25,12 @@ export const RequiredValidator = (options = {}) => {
23
25
  const value = element[validationProperty];
24
26
  const isEmpty = !value;
25
27
  if (isEmpty) {
26
- validity.message = typeof obj.message === 'function' ? obj.message(element) : obj.message || '';
28
+ validity.message =
29
+ typeof obj.message === "function"
30
+ ? obj.message(element)
31
+ : obj.message || "";
27
32
  validity.isValid = false;
28
- validity.invalidKeys.push('valueMissing');
33
+ validity.invalidKeys.push("valueMissing");
29
34
  }
30
35
  return validity;
31
36
  },
@@ -1,4 +1,4 @@
1
- import type { ReactiveController, ReactiveControllerHost } from 'lit';
1
+ import type { ReactiveController, ReactiveControllerHost } from "lit";
2
2
  /** A reactive controller that determines when slots exist. */
3
3
  export declare class HasSlotController implements ReactiveController {
4
4
  host: ReactiveControllerHost & Element;
@@ -4,7 +4,8 @@ export class HasSlotController {
4
4
  this.slotNames = [];
5
5
  this.handleSlotChange = (event) => {
6
6
  const slot = event.target;
7
- if ((this.slotNames.includes('[default]') && !slot.name) || (slot.name && this.slotNames.includes(slot.name))) {
7
+ if ((this.slotNames.includes("[default]") && !slot.name) ||
8
+ (slot.name && this.slotNames.includes(slot.name))) {
8
9
  this.host.requestUpdate();
9
10
  }
10
11
  };
@@ -13,18 +14,18 @@ export class HasSlotController {
13
14
  }
14
15
  hasDefaultSlot() {
15
16
  return [...this.host.childNodes].some((node) => {
16
- if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '') {
17
+ if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== "") {
17
18
  return true;
18
19
  }
19
20
  if (node.nodeType === Node.ELEMENT_NODE) {
20
21
  const el = node;
21
22
  const tagName = el.tagName.toLowerCase();
22
23
  // Ignore visually hidden elements since they aren't rendered
23
- if (tagName === 'w-visually-hidden') {
24
+ if (tagName === "w-visually-hidden") {
24
25
  return false;
25
26
  }
26
27
  // If it doesn't have a slot attribute, it's part of the default slot
27
- if (!el.hasAttribute('slot')) {
28
+ if (!el.hasAttribute("slot")) {
28
29
  return true;
29
30
  }
30
31
  }
@@ -35,13 +36,15 @@ export class HasSlotController {
35
36
  return this.host.querySelector(`:scope > [slot="${name}"]`) !== null;
36
37
  }
37
38
  test(slotName) {
38
- return slotName === '[default]' ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);
39
+ return slotName === "[default]"
40
+ ? this.hasDefaultSlot()
41
+ : this.hasNamedSlot(slotName);
39
42
  }
40
43
  hostConnected() {
41
- this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);
44
+ this.host.shadowRoot?.addEventListener("slotchange", this.handleSlotChange);
42
45
  }
43
46
  hostDisconnected() {
44
- this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);
47
+ this.host.shadowRoot?.removeEventListener("slotchange", this.handleSlotChange);
45
48
  }
46
49
  }
47
50
  /**
@@ -51,7 +54,7 @@ export class HasSlotController {
51
54
  * @param callback - A function that can be used to customize the HTML output for specific types of nodes. If the function returns undefined, the default HTML output will be used.
52
55
  */
53
56
  export function getInnerHTML(nodes, callback) {
54
- let html = '';
57
+ let html = "";
55
58
  for (const node of nodes) {
56
59
  if (callback) {
57
60
  const customHTML = callback(node);
@@ -1,4 +1,4 @@
1
- import type { LitElement } from 'lit';
1
+ import type { LitElement } from "lit";
2
2
  type UpdateHandler = (prev?: unknown, next?: unknown) => void;
3
3
  type NonUndefined<A> = A extends undefined ? never : A;
4
4
  type UpdateHandlerFunctionKeys<T extends object> = {
@@ -18,7 +18,9 @@ export function watch(propertyName, options) {
18
18
  return (proto, decoratedFnName) => {
19
19
  // @ts-expect-error - update is a protected property
20
20
  const { update } = proto;
21
- const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];
21
+ const watchedProperties = Array.isArray(propertyName)
22
+ ? propertyName
23
+ : [propertyName];
22
24
  // @ts-expect-error - update is a protected property
23
25
  proto.update = function (changedProps) {
24
26
  watchedProperties.forEach((property) => {
@@ -1,90 +1,123 @@
1
- import { css } from 'lit';
1
+ import { css } from "lit";
2
2
  export const styles = css `
3
- :host {
4
- display: block;
5
-
6
- --_label-font-size: var(--w-c-radio-group-label-font-size, var(--w-font-size-s));
7
- --_label-line-height: var(--w-c-radio-group-label-line-height, var(--w-line-height-s));
8
- --_label-font-weight: var(--w-c-radio-group-label-font-weight, 700);
9
- --_label-color: var(--w-c-radio-group-label-color, var(--w-s-color-text));
10
- --_label-color-disabled: var(--w-c-radio-group-label-color-disabled, var(--w-s-color-text-disabled));
11
- --_label-padding-bottom: var(--w-c-radio-group-label-padding-bottom, 16px);
12
-
13
- --_optional-font-weight: var(--w-c-radio-group-optional-font-weight, 400);
14
- --_optional-color: var(--w-c-radio-group-optional-color, var(--w-s-color-text-subtle));
15
- --_optional-margin-inline-start: var(--w-c-radio-group-optional-margin-inline-start, 0.5rem);
16
-
17
- --_radios-gap: var(--w-c-radio-group-gap, 16px);
18
-
19
- --_help-text-margin-block-start: var(--w-c-radio-group-help-text-margin-block-start, 16px);
20
- --_help-text-font-size: var(--w-c-radio-group-help-text-font-size, var(--w-font-size-xs));
21
- --_help-text-line-height: var(--w-c-radio-group-help-text-line-height, var(--w-line-height-xs));
22
- --_help-text-color: var(--w-c-radio-group-help-text-color, var(--w-s-color-text-subtle));
23
- --_help-text-color-disabled: var(--w-c-radio-group-help-text-color-disabled, var(--w-s-color-text-disabled));
24
- --_help-text-color-error: var(--w-c-radio-group-help-text-color-error, var(--w-s-color-text-negative));
25
- }
26
-
27
- [part='form-control'] {
28
- position: relative;
29
-
30
- border: 0;
31
- padding: 0;
32
- margin: 0;
33
-
34
- min-inline-size: 0;
35
- }
36
-
37
- [part='form-control-label'] {
38
- display: block;
39
- cursor: pointer;
40
-
41
- font-size: var(--_label-font-size);
42
- line-height: var(--_label-line-height);
43
- font-weight: var(--_label-font-weight);
44
- color: var(--_label-color);
45
-
46
- padding-bottom: var(--_label-padding-bottom);
47
-
48
- -webkit-font-smoothing: antialiased;
49
- -moz-osx-font-smoothing: grayscale;
50
- font-smoothing: grayscale;
51
- }
52
-
53
- :host([disabled]) [part='form-control-label'] {
54
- cursor: default;
55
- color: var(--_label-color-disabled);
56
- }
57
-
58
- :host([required]) [part='form-control-label']::after {
59
- content: var(--wa-form-control-required-content);
60
- margin-inline-start: var(--wa-form-control-required-content-offset);
61
- }
62
-
63
- .optional {
64
- font-weight: var(--_optional-font-weight);
65
- color: var(--_optional-color);
66
- margin-inline-start: var(--_optional-margin-inline-start);
67
- }
68
-
69
- [part~='form-control-input'] {
70
- display: flex;
71
- flex-direction: column;
72
- flex-wrap: wrap;
73
- gap: var(--_radios-gap);
74
- }
75
-
76
- [part~='help-text'] {
77
- margin-block-start: var(--_help-text-margin-block-start);
78
- font-size: var(--_help-text-font-size);
79
- line-height: var(--_help-text-line-height);
80
- color: var(--_help-text-color);
81
- }
82
-
83
- :host([disabled]) [part~='help-text'] {
84
- color: var(--_help-text-color-disabled);
85
- }
86
-
87
- :host([data-show-error]) [part~='help-text'] {
88
- color: var(--_help-text-color-error);
89
- }
3
+ :host {
4
+ display: block;
5
+
6
+ --_label-font-size: var(
7
+ --w-c-radio-group-label-font-size,
8
+ var(--w-font-size-s)
9
+ );
10
+ --_label-line-height: var(
11
+ --w-c-radio-group-label-line-height,
12
+ var(--w-line-height-s)
13
+ );
14
+ --_label-font-weight: var(--w-c-radio-group-label-font-weight, 700);
15
+ --_label-color: var(--w-c-radio-group-label-color, var(--w-s-color-text));
16
+ --_label-color-disabled: var(
17
+ --w-c-radio-group-label-color-disabled,
18
+ var(--w-s-color-text-disabled)
19
+ );
20
+ --_label-padding-bottom: var(--w-c-radio-group-label-padding-bottom, 16px);
21
+
22
+ --_optional-font-weight: var(--w-c-radio-group-optional-font-weight, 400);
23
+ --_optional-color: var(
24
+ --w-c-radio-group-optional-color,
25
+ var(--w-s-color-text-subtle)
26
+ );
27
+ --_optional-margin-inline-start: var(
28
+ --w-c-radio-group-optional-margin-inline-start,
29
+ 0.5rem
30
+ );
31
+
32
+ --_radios-gap: var(--w-c-radio-group-gap, 16px);
33
+
34
+ --_help-text-margin-block-start: var(
35
+ --w-c-radio-group-help-text-margin-block-start,
36
+ 16px
37
+ );
38
+ --_help-text-font-size: var(
39
+ --w-c-radio-group-help-text-font-size,
40
+ var(--w-font-size-xs)
41
+ );
42
+ --_help-text-line-height: var(
43
+ --w-c-radio-group-help-text-line-height,
44
+ var(--w-line-height-xs)
45
+ );
46
+ --_help-text-color: var(
47
+ --w-c-radio-group-help-text-color,
48
+ var(--w-s-color-text-subtle)
49
+ );
50
+ --_help-text-color-disabled: var(
51
+ --w-c-radio-group-help-text-color-disabled,
52
+ var(--w-s-color-text-disabled)
53
+ );
54
+ --_help-text-color-error: var(
55
+ --w-c-radio-group-help-text-color-error,
56
+ var(--w-s-color-text-negative)
57
+ );
58
+ }
59
+
60
+ [part="form-control"] {
61
+ position: relative;
62
+
63
+ border: 0;
64
+ padding: 0;
65
+ margin: 0;
66
+
67
+ min-inline-size: 0;
68
+ }
69
+
70
+ [part="form-control-label"] {
71
+ display: block;
72
+ cursor: pointer;
73
+
74
+ font-size: var(--_label-font-size);
75
+ line-height: var(--_label-line-height);
76
+ font-weight: var(--_label-font-weight);
77
+ color: var(--_label-color);
78
+
79
+ padding-bottom: var(--_label-padding-bottom);
80
+
81
+ -webkit-font-smoothing: antialiased;
82
+ -moz-osx-font-smoothing: grayscale;
83
+ font-smoothing: grayscale;
84
+ }
85
+
86
+ :host([disabled]) [part="form-control-label"] {
87
+ cursor: default;
88
+ color: var(--_label-color-disabled);
89
+ }
90
+
91
+ :host([required]) [part="form-control-label"]::after {
92
+ content: var(--wa-form-control-required-content);
93
+ margin-inline-start: var(--wa-form-control-required-content-offset);
94
+ }
95
+
96
+ .optional {
97
+ font-weight: var(--_optional-font-weight);
98
+ color: var(--_optional-color);
99
+ margin-inline-start: var(--_optional-margin-inline-start);
100
+ }
101
+
102
+ [part~="form-control-input"] {
103
+ display: flex;
104
+ flex-direction: column;
105
+ flex-wrap: wrap;
106
+ gap: var(--_radios-gap);
107
+ }
108
+
109
+ [part~="help-text"] {
110
+ margin-block-start: var(--_help-text-margin-block-start);
111
+ font-size: var(--_help-text-font-size);
112
+ line-height: var(--_help-text-line-height);
113
+ color: var(--_help-text-color);
114
+ }
115
+
116
+ :host([disabled]) [part~="help-text"] {
117
+ color: var(--_help-text-color-disabled);
118
+ }
119
+
120
+ :host([data-show-error]) [part~="help-text"] {
121
+ color: var(--_help-text-color-error);
122
+ }
90
123
  `;
@@ -1,2 +1,2 @@
1
- import './radio-group.js';
2
- import '../radio/radio.js';
1
+ import "./radio-group.js";
2
+ import "../radio/radio.js";