@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
@@ -122,123 +122,238 @@ Please consider more informative alternatives before choosing to use disabled on
122
122
 
123
123
  </elements-example>
124
124
 
125
- ## Styling API
125
+ # Radio and Radio Group Styling
126
126
 
127
- This section documents the supported styling hooks for `<w-radio>` and `<w-radio-group>`.
127
+ This document covers the styling API for both `<w-radio>` (individual radio buttons) and `<w-radio-group>` (the container that manages them).
128
128
 
129
- Use these hooks to customize appearance without relying on internal structure or selectors.
129
+ ## Quick Start
130
130
 
131
- Before changing the default styles, remember that doing so can result in less consistent experiences for users across the product. Prefer defaults.
131
+ ```html
132
+ <w-radio-group label="Choose a size" name="size">
133
+ <w-radio value="small">Small</w-radio>
134
+ <w-radio value="medium">Medium</w-radio>
135
+ <w-radio value="large">Large</w-radio>
136
+ </w-radio-group>
137
+ ```
132
138
 
133
- - Prefer **component tokens** for size, spacing, and state styling.
134
- - Use **parts** only for small, local tweaks.
135
- - Avoid relying on internal class names or selectors.
139
+ Customize via component tokens:
136
140
 
137
- ### Parts
141
+ ```css
142
+ /* Style all radio groups in a section */
143
+ .settings {
144
+ --w-c-radio-group-gap: 12px;
145
+ --w-c-radio-size: 2.4rem;
146
+ }
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Styling Philosophy
138
152
 
139
- The radio exposes a small set of parts that can be targeted for last‑mile layout or typography tweaks.
153
+ Before customizing, remember that changing defaults can create inconsistent experiences. Prefer the defaults.
140
154
 
141
- | Part | Targets | Typical use |
142
- |---|---|---|
143
- | `control` | radio control (circle) | minor alignment or sizing tweaks |
144
- | `label` | label content | typography tweaks |
155
+ - **Component tokens** for size, spacing, color, and state styling
156
+ - **Parts** only for small, one-off tweaks
157
+ - Avoid relying on internal class names
145
158
 
146
- Example:
159
+ ---
147
160
 
161
+ ## Radio Group (`<w-radio-group>`)
162
+
163
+ ### Parts
164
+
165
+ | Part | Targets | Use Case |
166
+ |------|---------|----------|
167
+ | `form-control` | The `<fieldset>` wrapper | Outer container tweaks |
168
+ | `form-control-label` | The group label element | Label typography overrides |
169
+ | `form-control-input` | Container for radio buttons | Adjust layout/flow of radios |
170
+ | `help-text` | Help text / error message | Style hint text |
171
+
172
+ **Example:**
148
173
  ```css
149
- w-radio::part(label) {
150
- font-weight: 600;
174
+ w-radio-group::part(form-control-label) {
175
+ text-transform: uppercase;
151
176
  }
152
177
 
153
- w-radio::part(control) {
154
- margin-top: 1px;
178
+ w-radio-group::part(form-control-input) {
179
+ flex-direction: row; /* horizontal radios */
155
180
  }
156
181
  ```
157
182
 
158
- Parts are intended as an **escape hatch**.
159
- Prefer component tokens for anything state‑ or size‑related.
183
+ ### Component Tokens
160
184
 
185
+ #### Label
161
186
 
162
- ### Component tokens
187
+ | Token | Purpose | Default |
188
+ |-------|---------|---------|
189
+ | `--w-c-radio-group-label-font-size` | Label font size | `var(--w-font-size-s)` |
190
+ | `--w-c-radio-group-label-line-height` | Label line height | `var(--w-line-height-s)` |
191
+ | `--w-c-radio-group-label-font-weight` | Label font weight | `700` |
192
+ | `--w-c-radio-group-label-color` | Label text color | `var(--w-s-color-text)` |
193
+ | `--w-c-radio-group-label-color-disabled` | Label color when disabled | `var(--w-s-color-text-disabled)` |
194
+ | `--w-c-radio-group-label-padding-bottom` | Space below label | `16px` |
195
+
196
+ #### Optional Indicator
163
197
 
164
- Component tokens (`--w-c-radio-*`) act as inputs to the radio styling.
165
- They can be set directly on the component or inherited from a parent container.
198
+ | Token | Purpose | Default |
199
+ |-------|---------|---------|
200
+ | `--w-c-radio-group-optional-font-weight` | "Optional" text weight | `400` |
201
+ | `--w-c-radio-group-optional-color` | "Optional" text color | `var(--w-s-color-text-subtle)` |
202
+ | `--w-c-radio-group-optional-margin-inline-start` | Space before "Optional" | `0.5rem` |
166
203
 
204
+ #### Radio Spacing
205
+
206
+ | Token | Purpose | Default |
207
+ |-------|---------|---------|
208
+ | `--w-c-radio-group-gap` | Gap between radio buttons | `16px` |
209
+
210
+ #### Help Text
211
+
212
+ | Token | Purpose | Default |
213
+ |-------|---------|---------|
214
+ | `--w-c-radio-group-help-text-margin-block-start` | Space above help text | `16px` |
215
+ | `--w-c-radio-group-help-text-font-size` | Help text font size | `var(--w-font-size-xs)` |
216
+ | `--w-c-radio-group-help-text-line-height` | Help text line height | `var(--w-line-height-xs)` |
217
+ | `--w-c-radio-group-help-text-color` | Help text color | `var(--w-s-color-text-subtle)` |
218
+ | `--w-c-radio-group-help-text-color-disabled` | Help text color when disabled | `var(--w-s-color-text-disabled)` |
219
+ | `--w-c-radio-group-help-text-color-error` | Help text color when invalid | `var(--w-s-color-text-negative)` |
220
+
221
+ **Example:**
167
222
  ```css
168
- .settings-panel {
169
- --w-c-radio-gap: 12px;
223
+ w-radio-group {
224
+ --w-c-radio-group-gap: 12px;
225
+ --w-c-radio-group-label-font-weight: 600;
226
+ --w-c-radio-group-help-text-color: var(--w-s-color-text);
170
227
  }
171
228
  ```
172
229
 
173
- Defaults are defined internally; setting a token is always optional.
174
-
230
+ ---
175
231
 
176
- #### Layout & size
232
+ ## Individual Radio (`<w-radio>`)
177
233
 
178
- | Token | Purpose | Default |
179
- |---|---|---|
180
- | `--w-c-radio-gap` | space between control and label | `8px` |
181
- | `--w-c-radio-size` | width/height of the control | `2rem` |
182
- | `--w-c-radio-radius` | border radius of the control | `50%` |
183
- | `--w-c-radio-border-width` | border width | `1px` |
184
- | `--w-c-radio-checked-border-width` | border width when checked | `0.6rem` |
234
+ ### Parts
185
235
 
236
+ | Part | Targets | Use Case |
237
+ |------|---------|----------|
238
+ | `base` | Wrapper containing control and label | Container-level adjustments |
239
+ | `control` | Radio control (circle) | Alignment or sizing tweaks |
240
+ | `label` | Label content | Typography overrides |
186
241
 
187
- #### Colors
242
+ **Example:**
243
+ ```css
244
+ w-radio::part(label) {
245
+ font-weight: 600;
246
+ }
188
247
 
189
- | Token | Purpose | Default |
190
- |---|---|---|
191
- | `--w-c-radio-bg` | control background | theme default |
192
- | `--w-c-radio-border-color` | control border color | theme default |
193
- | `--w-c-radio-border-color-checked` | border color when checked | theme default |
194
- | `--w-c-radio-label-color` | label text color | `currentColor` |
248
+ w-radio::part(control) {
249
+ margin-top: 1px;
250
+ }
251
+ ```
195
252
 
253
+ ### Component Tokens
196
254
 
197
- #### Invalid state
255
+ #### Layout & Size
198
256
 
199
257
  | Token | Purpose | Default |
200
- |---|---|---|
201
- | `--w-c-radio-border-color-invalid` | border color when invalid | theme default |
258
+ |-------|---------|---------|
259
+ | `--w-c-radio-gap` | Space between control and label | `8px` |
260
+ | `--w-c-radio-size` | Width/height of control | `2rem` |
261
+ | `--w-c-radio-radius` | Border radius | `50%` |
262
+ | `--w-c-radio-border-width` | Border width | `1px` |
263
+ | `--w-c-radio-checked-border-width` | Border width when checked | `0.6rem` |
202
264
 
265
+ #### Colors
203
266
 
204
- #### Disabled state
267
+ | Token | Purpose | Default |
268
+ |-------|---------|---------|
269
+ | `--w-c-radio-bg` | Control background | `var(--w-s-color-background)` |
270
+ | `--w-c-radio-border-color` | Control border color | `var(--w-s-color-border-strong)` |
271
+ | `--w-c-radio-border-color-checked` | Border when checked | `var(--w-s-color-border-selected)` |
272
+ | `--w-c-radio-border-color-invalid` | Border when invalid | `var(--w-s-color-border-negative)` |
273
+ | `--w-c-radio-label-color` | Label text color | `currentColor` |
274
+
275
+ #### Disabled State
205
276
 
206
277
  | Token | Purpose | Default |
207
- |---|---|---|
208
- | `--w-c-radio-bg-disabled` | background when disabled | theme default |
209
- | `--w-c-radio-border-color-disabled` | border when disabled | theme default |
210
- | `--w-c-radio-label-color-disabled` | label color when disabled | theme default |
211
- | `--w-c-radio-cursor-disabled` | cursor when disabled | `not-allowed` |
278
+ |-------|---------|---------|
279
+ | `--w-c-radio-bg-disabled` | Background when disabled | `var(--w-s-color-background-disabled-subtle)` |
280
+ | `--w-c-radio-border-color-disabled` | Border when disabled | `var(--w-s-color-border-disabled)` |
281
+ | `--w-c-radio-label-color-disabled` | Label color when disabled | `var(--w-s-color-text-disabled)` |
282
+ | `--w-c-radio-cursor-disabled` | Cursor when disabled | `not-allowed` |
212
283
 
213
284
  #### Typography
214
285
 
215
286
  | Token | Purpose | Default |
216
- |---|---|---|
217
- | `--w-c-radio-label-font-size` | label font size | theme default |
218
- | `--w-c-radio-label-line-height` | label line height | theme default |
219
-
287
+ |-------|---------|---------|
288
+ | `--w-c-radio-label-font-size` | Label font size | `var(--w-font-size-m)` |
289
+ | `--w-c-radio-label-line-height` | Label line height | `var(--w-line-height-m)` |
220
290
 
221
291
  #### Focus
222
292
 
223
293
  | Token | Purpose | Default |
224
- |---|---|---|
225
- | `--w-c-radio-outline-width` | focus outline width | `2px` |
226
- | `--w-c-radio-outline-color` | focus outline color | theme default |
227
- | `--w-c-radio-outline-offset` | focus outline offset | theme default |
294
+ |-------|---------|---------|
295
+ | `--w-c-radio-outline-width` | Focus outline width | `2px` |
296
+ | `--w-c-radio-outline-color` | Focus outline color | `var(--w-s-color-border-focus)` |
297
+ | `--w-c-radio-outline-offset` | Focus outline offset | `var(--w-outline-offset, 1px)` |
228
298
 
229
299
  #### Interaction
230
300
 
231
301
  | Token | Purpose | Default |
232
- |---|---|---|
233
- | `--w-c-radio-cursor` | cursor in enabled state | `pointer` |
302
+ |-------|---------|---------|
303
+ | `--w-c-radio-cursor` | Cursor in enabled state | `pointer` |
234
304
 
235
305
  #### Motion
236
306
 
237
307
  | Token | Purpose | Default |
238
- |---|---|---|
239
- | `--w-c-radio-transition` | transition for control | `150ms cubic-bezier(0.4, 0, 0.2, 1)` |
308
+ |-------|---------|---------|
309
+ | `--w-c-radio-transition` | Transition for control | `border-color 150ms, border-width 150ms, background-color 150ms` |
310
+
311
+ **Note:** Transitions automatically disable when `prefers-reduced-motion: reduce` is active.
312
+
313
+ ---
314
+
315
+ ## Complete Examples
316
+
317
+ ### Horizontal Radio Group
318
+
319
+ ```css
320
+ w-radio-group::part(form-control-input) {
321
+ flex-direction: row;
322
+ flex-wrap: wrap;
323
+ }
324
+ ```
325
+
326
+ ### Larger Radio Buttons
327
+
328
+ ```css
329
+ w-radio {
330
+ --w-c-radio-size: 2.4rem;
331
+ --w-c-radio-checked-border-width: 0.8rem;
332
+ }
333
+ ```
334
+
335
+ ### Custom Colors
336
+
337
+ ```css
338
+ w-radio {
339
+ --w-c-radio-border-color-checked: var(--w-s-color-border-success);
340
+ }
341
+ ```
342
+
343
+ ### Tighter Spacing
344
+
345
+ ```css
346
+ w-radio-group {
347
+ --w-c-radio-group-gap: 8px;
348
+ --w-c-radio-group-label-padding-bottom: 8px;
349
+ }
350
+ ```
351
+
352
+ ---
353
+
354
+ ## Architecture Note
240
355
 
241
- Transitions are automatically disabled when `prefers-reduced-motion: reduce` is active.
356
+ **Radio-group uses `<fieldset>`** which is the semantic HTML element for grouping form controls. Note that `<w-checkbox-group>` currently uses `<div>` instead - this inconsistency may be addressed in a future major version to align both components on the more accessible `<fieldset>` approach.
242
357
 
243
358
  ## `<w-radio-group>` API
244
359
 
@@ -249,9 +364,9 @@ Unless otherwise noted all properties are HTML attributes (as opposed to JavaScr
249
364
  | Name | Type | Default | Summary |
250
365
  |-|-|-|-|
251
366
  | disabled | `boolean` | `false` | Disables the radio group and all child radios. |
252
- | help-text | `string` | `''` | Help text for the radio group. |
367
+ | help-text | `string` | `""` | Help text for the radio group. |
253
368
  | invalid | `boolean` | `false` | Marks the radio group as invalid. |
254
- | label | `string` | `''` | Label for the radio group. |
369
+ | label | `string` | `""` | Label for the radio group. |
255
370
  | name | `string \| null` | `null` | The [name](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#name) of the select when submitting the form. |
256
371
  | optional | `boolean` | `false` | Whether to show optional text next to the label. |
257
372
  | required | `boolean` | `false` | Makes selecting a radio in the the group required. |
@@ -272,7 +387,7 @@ Help text for the radio group.
272
387
  If you set `required` and `invalid` the group gets a default error message, but you can override it with this attribute.
273
388
 
274
389
  - Type: `string`
275
- - Default: `''`
390
+ - Default: `""`
276
391
 
277
392
  #### invalid
278
393
 
@@ -286,7 +401,7 @@ Marks the radio group as invalid.
286
401
  Label for the radio group.
287
402
 
288
403
  - Type: `string`
289
- - Default: `''`
404
+ - Default: `""`
290
405
 
291
406
  #### name
292
407
 
@@ -1,118 +1,233 @@
1
- ## Styling API
1
+ # Radio and Radio Group Styling
2
2
 
3
- This section documents the supported styling hooks for `<w-radio>` and `<w-radio-group>`.
3
+ This document covers the styling API for both `<w-radio>` (individual radio buttons) and `<w-radio-group>` (the container that manages them).
4
4
 
5
- Use these hooks to customize appearance without relying on internal structure or selectors.
5
+ ## Quick Start
6
6
 
7
- Before changing the default styles, remember that doing so can result in less consistent experiences for users across the product. Prefer defaults.
7
+ ```html
8
+ <w-radio-group label="Choose a size" name="size">
9
+ <w-radio value="small">Small</w-radio>
10
+ <w-radio value="medium">Medium</w-radio>
11
+ <w-radio value="large">Large</w-radio>
12
+ </w-radio-group>
13
+ ```
8
14
 
9
- - Prefer **component tokens** for size, spacing, and state styling.
10
- - Use **parts** only for small, local tweaks.
11
- - Avoid relying on internal class names or selectors.
15
+ Customize via component tokens:
12
16
 
13
- ### Parts
17
+ ```css
18
+ /* Style all radio groups in a section */
19
+ .settings {
20
+ --w-c-radio-group-gap: 12px;
21
+ --w-c-radio-size: 2.4rem;
22
+ }
23
+ ```
14
24
 
15
- The radio exposes a small set of parts that can be targeted for last‑mile layout or typography tweaks.
25
+ ---
16
26
 
17
- | Part | Targets | Typical use |
18
- |---|---|---|
19
- | `control` | radio control (circle) | minor alignment or sizing tweaks |
20
- | `label` | label content | typography tweaks |
27
+ ## Styling Philosophy
21
28
 
22
- Example:
29
+ Before customizing, remember that changing defaults can create inconsistent experiences. Prefer the defaults.
23
30
 
31
+ - **Component tokens** for size, spacing, color, and state styling
32
+ - **Parts** only for small, one-off tweaks
33
+ - Avoid relying on internal class names
34
+
35
+ ---
36
+
37
+ ## Radio Group (`<w-radio-group>`)
38
+
39
+ ### Parts
40
+
41
+ | Part | Targets | Use Case |
42
+ |------|---------|----------|
43
+ | `form-control` | The `<fieldset>` wrapper | Outer container tweaks |
44
+ | `form-control-label` | The group label element | Label typography overrides |
45
+ | `form-control-input` | Container for radio buttons | Adjust layout/flow of radios |
46
+ | `help-text` | Help text / error message | Style hint text |
47
+
48
+ **Example:**
24
49
  ```css
25
- w-radio::part(label) {
26
- font-weight: 600;
50
+ w-radio-group::part(form-control-label) {
51
+ text-transform: uppercase;
27
52
  }
28
53
 
29
- w-radio::part(control) {
30
- margin-top: 1px;
54
+ w-radio-group::part(form-control-input) {
55
+ flex-direction: row; /* horizontal radios */
31
56
  }
32
57
  ```
33
58
 
34
- Parts are intended as an **escape hatch**.
35
- Prefer component tokens for anything state‑ or size‑related.
59
+ ### Component Tokens
36
60
 
61
+ #### Label
37
62
 
38
- ### Component tokens
63
+ | Token | Purpose | Default |
64
+ |-------|---------|---------|
65
+ | `--w-c-radio-group-label-font-size` | Label font size | `var(--w-font-size-s)` |
66
+ | `--w-c-radio-group-label-line-height` | Label line height | `var(--w-line-height-s)` |
67
+ | `--w-c-radio-group-label-font-weight` | Label font weight | `700` |
68
+ | `--w-c-radio-group-label-color` | Label text color | `var(--w-s-color-text)` |
69
+ | `--w-c-radio-group-label-color-disabled` | Label color when disabled | `var(--w-s-color-text-disabled)` |
70
+ | `--w-c-radio-group-label-padding-bottom` | Space below label | `16px` |
39
71
 
40
- Component tokens (`--w-c-radio-*`) act as inputs to the radio styling.
41
- They can be set directly on the component or inherited from a parent container.
72
+ #### Optional Indicator
42
73
 
74
+ | Token | Purpose | Default |
75
+ |-------|---------|---------|
76
+ | `--w-c-radio-group-optional-font-weight` | "Optional" text weight | `400` |
77
+ | `--w-c-radio-group-optional-color` | "Optional" text color | `var(--w-s-color-text-subtle)` |
78
+ | `--w-c-radio-group-optional-margin-inline-start` | Space before "Optional" | `0.5rem` |
79
+
80
+ #### Radio Spacing
81
+
82
+ | Token | Purpose | Default |
83
+ |-------|---------|---------|
84
+ | `--w-c-radio-group-gap` | Gap between radio buttons | `16px` |
85
+
86
+ #### Help Text
87
+
88
+ | Token | Purpose | Default |
89
+ |-------|---------|---------|
90
+ | `--w-c-radio-group-help-text-margin-block-start` | Space above help text | `16px` |
91
+ | `--w-c-radio-group-help-text-font-size` | Help text font size | `var(--w-font-size-xs)` |
92
+ | `--w-c-radio-group-help-text-line-height` | Help text line height | `var(--w-line-height-xs)` |
93
+ | `--w-c-radio-group-help-text-color` | Help text color | `var(--w-s-color-text-subtle)` |
94
+ | `--w-c-radio-group-help-text-color-disabled` | Help text color when disabled | `var(--w-s-color-text-disabled)` |
95
+ | `--w-c-radio-group-help-text-color-error` | Help text color when invalid | `var(--w-s-color-text-negative)` |
96
+
97
+ **Example:**
43
98
  ```css
44
- .settings-panel {
45
- --w-c-radio-gap: 12px;
99
+ w-radio-group {
100
+ --w-c-radio-group-gap: 12px;
101
+ --w-c-radio-group-label-font-weight: 600;
102
+ --w-c-radio-group-help-text-color: var(--w-s-color-text);
46
103
  }
47
104
  ```
48
105
 
49
- Defaults are defined internally; setting a token is always optional.
106
+ ---
50
107
 
108
+ ## Individual Radio (`<w-radio>`)
51
109
 
52
- #### Layout & size
53
-
54
- | Token | Purpose | Default |
55
- |---|---|---|
56
- | `--w-c-radio-gap` | space between control and label | `8px` |
57
- | `--w-c-radio-size` | width/height of the control | `2rem` |
58
- | `--w-c-radio-radius` | border radius of the control | `50%` |
59
- | `--w-c-radio-border-width` | border width | `1px` |
60
- | `--w-c-radio-checked-border-width` | border width when checked | `0.6rem` |
110
+ ### Parts
61
111
 
112
+ | Part | Targets | Use Case |
113
+ |------|---------|----------|
114
+ | `base` | Wrapper containing control and label | Container-level adjustments |
115
+ | `control` | Radio control (circle) | Alignment or sizing tweaks |
116
+ | `label` | Label content | Typography overrides |
62
117
 
63
- #### Colors
118
+ **Example:**
119
+ ```css
120
+ w-radio::part(label) {
121
+ font-weight: 600;
122
+ }
64
123
 
65
- | Token | Purpose | Default |
66
- |---|---|---|
67
- | `--w-c-radio-bg` | control background | theme default |
68
- | `--w-c-radio-border-color` | control border color | theme default |
69
- | `--w-c-radio-border-color-checked` | border color when checked | theme default |
70
- | `--w-c-radio-label-color` | label text color | `currentColor` |
124
+ w-radio::part(control) {
125
+ margin-top: 1px;
126
+ }
127
+ ```
71
128
 
129
+ ### Component Tokens
72
130
 
73
- #### Invalid state
131
+ #### Layout & Size
74
132
 
75
133
  | Token | Purpose | Default |
76
- |---|---|---|
77
- | `--w-c-radio-border-color-invalid` | border color when invalid | theme default |
134
+ |-------|---------|---------|
135
+ | `--w-c-radio-gap` | Space between control and label | `8px` |
136
+ | `--w-c-radio-size` | Width/height of control | `2rem` |
137
+ | `--w-c-radio-radius` | Border radius | `50%` |
138
+ | `--w-c-radio-border-width` | Border width | `1px` |
139
+ | `--w-c-radio-checked-border-width` | Border width when checked | `0.6rem` |
140
+
141
+ #### Colors
78
142
 
143
+ | Token | Purpose | Default |
144
+ |-------|---------|---------|
145
+ | `--w-c-radio-bg` | Control background | `var(--w-s-color-background)` |
146
+ | `--w-c-radio-border-color` | Control border color | `var(--w-s-color-border-strong)` |
147
+ | `--w-c-radio-border-color-checked` | Border when checked | `var(--w-s-color-border-selected)` |
148
+ | `--w-c-radio-border-color-invalid` | Border when invalid | `var(--w-s-color-border-negative)` |
149
+ | `--w-c-radio-label-color` | Label text color | `currentColor` |
79
150
 
80
- #### Disabled state
151
+ #### Disabled State
81
152
 
82
153
  | Token | Purpose | Default |
83
- |---|---|---|
84
- | `--w-c-radio-bg-disabled` | background when disabled | theme default |
85
- | `--w-c-radio-border-color-disabled` | border when disabled | theme default |
86
- | `--w-c-radio-label-color-disabled` | label color when disabled | theme default |
87
- | `--w-c-radio-cursor-disabled` | cursor when disabled | `not-allowed` |
154
+ |-------|---------|---------|
155
+ | `--w-c-radio-bg-disabled` | Background when disabled | `var(--w-s-color-background-disabled-subtle)` |
156
+ | `--w-c-radio-border-color-disabled` | Border when disabled | `var(--w-s-color-border-disabled)` |
157
+ | `--w-c-radio-label-color-disabled` | Label color when disabled | `var(--w-s-color-text-disabled)` |
158
+ | `--w-c-radio-cursor-disabled` | Cursor when disabled | `not-allowed` |
88
159
 
89
160
  #### Typography
90
161
 
91
162
  | Token | Purpose | Default |
92
- |---|---|---|
93
- | `--w-c-radio-label-font-size` | label font size | theme default |
94
- | `--w-c-radio-label-line-height` | label line height | theme default |
95
-
163
+ |-------|---------|---------|
164
+ | `--w-c-radio-label-font-size` | Label font size | `var(--w-font-size-m)` |
165
+ | `--w-c-radio-label-line-height` | Label line height | `var(--w-line-height-m)` |
96
166
 
97
167
  #### Focus
98
168
 
99
169
  | Token | Purpose | Default |
100
- |---|---|---|
101
- | `--w-c-radio-outline-width` | focus outline width | `2px` |
102
- | `--w-c-radio-outline-color` | focus outline color | theme default |
103
- | `--w-c-radio-outline-offset` | focus outline offset | theme default |
170
+ |-------|---------|---------|
171
+ | `--w-c-radio-outline-width` | Focus outline width | `2px` |
172
+ | `--w-c-radio-outline-color` | Focus outline color | `var(--w-s-color-border-focus)` |
173
+ | `--w-c-radio-outline-offset` | Focus outline offset | `var(--w-outline-offset, 1px)` |
104
174
 
105
175
  #### Interaction
106
176
 
107
177
  | Token | Purpose | Default |
108
- |---|---|---|
109
- | `--w-c-radio-cursor` | cursor in enabled state | `pointer` |
178
+ |-------|---------|---------|
179
+ | `--w-c-radio-cursor` | Cursor in enabled state | `pointer` |
110
180
 
111
181
  #### Motion
112
182
 
113
183
  | Token | Purpose | Default |
114
- |---|---|---|
115
- | `--w-c-radio-transition` | transition for control | `150ms cubic-bezier(0.4, 0, 0.2, 1)` |
184
+ |-------|---------|---------|
185
+ | `--w-c-radio-transition` | Transition for control | `border-color 150ms, border-width 150ms, background-color 150ms` |
186
+
187
+ **Note:** Transitions automatically disable when `prefers-reduced-motion: reduce` is active.
188
+
189
+ ---
190
+
191
+ ## Complete Examples
192
+
193
+ ### Horizontal Radio Group
194
+
195
+ ```css
196
+ w-radio-group::part(form-control-input) {
197
+ flex-direction: row;
198
+ flex-wrap: wrap;
199
+ }
200
+ ```
201
+
202
+ ### Larger Radio Buttons
203
+
204
+ ```css
205
+ w-radio {
206
+ --w-c-radio-size: 2.4rem;
207
+ --w-c-radio-checked-border-width: 0.8rem;
208
+ }
209
+ ```
210
+
211
+ ### Custom Colors
212
+
213
+ ```css
214
+ w-radio {
215
+ --w-c-radio-border-color-checked: var(--w-s-color-border-success);
216
+ }
217
+ ```
218
+
219
+ ### Tighter Spacing
220
+
221
+ ```css
222
+ w-radio-group {
223
+ --w-c-radio-group-gap: 8px;
224
+ --w-c-radio-group-label-padding-bottom: 8px;
225
+ }
226
+ ```
227
+
228
+ ---
229
+
230
+ ## Architecture Note
116
231
 
117
- Transitions are automatically disabled when `prefers-reduced-motion: reduce` is active.
232
+ **Radio-group uses `<fieldset>`** which is the semantic HTML element for grouping form controls. Note that `<w-checkbox-group>` currently uses `<div>` instead - this inconsistency may be addressed in a future major version to align both components on the more accessible `<fieldset>` approach.
118
233
 
@@ -17,7 +17,7 @@ Creates a snackbar item and immediately adds it to the snackbar.
17
17
  By default the snackbar item automatically closes after 4 seconds (`SnackbarDuration.Short`).
18
18
 
19
19
  If you include an `action` in the options the default `duration` is
20
- set to 10 seconds (`SnackbarDuration.Long`) and can not be made shorter.
20
+ set to 10 seconds (`SnackbarDuration.Long`) and can not be made shorter.
21
21
 
22
22
  A `duration` of 10 seconds or longer forces the close button to be visible.
23
23
 
@@ -372,7 +372,7 @@ Creates a snackbar item and immediately adds it to the snackbar.
372
372
  By default the snackbar item automatically closes after 4 seconds (`SnackbarDuration.Short`).
373
373
 
374
374
  If you include an `action` in the options the default `duration` is
375
- set to 10 seconds (`SnackbarDuration.Long`) and can not be made shorter.
375
+ set to 10 seconds (`SnackbarDuration.Long`) and can not be made shorter.
376
376
 
377
377
  A `duration` of 10 seconds or longer forces the close button to be visible.
378
378
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Name | Type | Default | Summary |
6
6
  |-|-|-|-|
7
- | action-placement | [`SnackbarActionPlacement`](#snackbaractionplacement) | `'inline'` | The placement of the action and close buttons. |
7
+ | action-placement | [`SnackbarActionPlacement`](#snackbaractionplacement) | `"inline"` | The placement of the action and close buttons. |
8
8
  | close (JS only) | `close() => void` | `-` | Remove the snackbar item from the document. |
9
9
  | duration | `number` | `-` | How long the message should stay in the document before removing itself. |
10
10
 
@@ -15,7 +15,7 @@
15
15
  The placement of the action and close buttons.
16
16
 
17
17
  - Type: [`SnackbarActionPlacement`](#snackbaractionplacement)
18
- - Default: `'inline'`
18
+ - Default: `"inline"`
19
19
 
20
20
  ##### close (JS only)
21
21