@warp-ds/elements 2.10.0-next.14 → 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 (632) hide show
  1. package/dist/.storybook/utilities.js +4 -4
  2. package/dist/api.js.map +2 -2
  3. package/dist/custom-elements.json +437 -53
  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 +50 -2
  9. package/dist/docs/attention/attention.md +50 -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/button/api.md +8 -0
  15. package/dist/docs/button/button.md +8 -0
  16. package/dist/docs/card/api.md +8 -0
  17. package/dist/docs/card/card.md +8 -0
  18. package/dist/docs/checkbox/api.md +50 -2
  19. package/dist/docs/checkbox/checkbox.md +224 -2
  20. package/dist/docs/checkbox/styling.md +173 -0
  21. package/dist/docs/checkbox-group/api.md +24 -0
  22. package/dist/docs/checkbox-group/checkbox-group.md +67 -30
  23. package/dist/docs/checkbox-group/styling.md +31 -29
  24. package/dist/docs/combobox/api.md +20 -12
  25. package/dist/docs/combobox/combobox.md +20 -12
  26. package/dist/docs/datepicker/api.md +14 -6
  27. package/dist/docs/datepicker/datepicker.md +14 -6
  28. package/dist/docs/icon/api.md +3 -3
  29. package/dist/docs/icon/icon.md +3 -3
  30. package/dist/docs/index.md +3 -1
  31. package/dist/docs/modal/api.md +16 -0
  32. package/dist/docs/modal/modal.md +16 -0
  33. package/dist/docs/radio-group/api.md +4 -4
  34. package/dist/docs/radio-group/radio-group.md +183 -68
  35. package/dist/docs/radio-group/styling.md +179 -64
  36. package/dist/docs/slider-thumb/api.md +16 -0
  37. package/dist/docs/slider-thumb/slider-thumb.md +16 -0
  38. package/dist/docs/snackbar/accessibility.md +20 -0
  39. package/dist/docs/snackbar/api.md +30 -0
  40. package/dist/docs/snackbar/examples.md +191 -0
  41. package/dist/docs/snackbar/snackbar.md +385 -0
  42. package/dist/docs/snackbar/styling.md +72 -0
  43. package/dist/docs/snackbar/usage.md +60 -0
  44. package/dist/docs/snackbar-item/api.md +41 -0
  45. package/dist/docs/snackbar-item/snackbar-item.md +49 -0
  46. package/dist/docs/step/api.md +16 -0
  47. package/dist/docs/step/step.md +16 -0
  48. package/dist/docs/switch/api.md +8 -0
  49. package/dist/docs/switch/switch.md +8 -0
  50. package/dist/docs/textarea/api.md +40 -0
  51. package/dist/docs/textarea/textarea.md +40 -0
  52. package/dist/docs/textfield/api.md +32 -0
  53. package/dist/docs/textfield/textfield.md +32 -0
  54. package/dist/index.d.ts +316 -3
  55. package/dist/packages/affix/affix.d.ts +4 -4
  56. package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
  57. package/dist/packages/affix/affix.hydration.test.js +15 -15
  58. package/dist/packages/affix/affix.js +346 -316
  59. package/dist/packages/affix/affix.js.map +2 -2
  60. package/dist/packages/affix/affix.react.stories.d.ts +2 -2
  61. package/dist/packages/affix/affix.react.stories.js +3 -3
  62. package/dist/packages/affix/affix.react.test.js +5 -3
  63. package/dist/packages/affix/affix.stories.d.ts +3 -3
  64. package/dist/packages/affix/affix.stories.js +10 -10
  65. package/dist/packages/affix/affix.test.d.ts +1 -1
  66. package/dist/packages/affix/affix.test.js +10 -10
  67. package/dist/packages/affix/react.d.ts +2 -2
  68. package/dist/packages/affix/react.js +6 -6
  69. package/dist/packages/affix/styles.js +1 -1
  70. package/dist/packages/alert/alert.d.ts +3 -3
  71. package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
  72. package/dist/packages/alert/alert.hydration.test.js +21 -21
  73. package/dist/packages/alert/alert.js +345 -320
  74. package/dist/packages/alert/alert.js.map +2 -2
  75. package/dist/packages/alert/alert.react.stories.d.ts +2 -2
  76. package/dist/packages/alert/alert.react.stories.js +13 -13
  77. package/dist/packages/alert/alert.stories.d.ts +4 -4
  78. package/dist/packages/alert/alert.stories.js +29 -27
  79. package/dist/packages/alert/alert.test.d.ts +1 -1
  80. package/dist/packages/alert/alert.test.js +34 -21
  81. package/dist/packages/alert/react.d.ts +1 -1
  82. package/dist/packages/alert/react.js +4 -4
  83. package/dist/packages/alert/styles.js +1 -1
  84. package/dist/packages/attention/attention.d.ts +11 -6
  85. package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
  86. package/dist/packages/attention/attention.hydration.test.js +29 -29
  87. package/dist/packages/attention/attention.js +1737 -1695
  88. package/dist/packages/attention/attention.js.map +2 -2
  89. package/dist/packages/attention/attention.react.stories.d.ts +3 -3
  90. package/dist/packages/attention/attention.react.stories.js +13 -13
  91. package/dist/packages/attention/attention.react.test.js +11 -7
  92. package/dist/packages/attention/attention.stories.d.ts +4 -4
  93. package/dist/packages/attention/attention.stories.js +126 -117
  94. package/dist/packages/attention/attention.test.d.ts +1 -1
  95. package/dist/packages/attention/attention.test.js +18 -10
  96. package/dist/packages/attention/layout-styles.js +900 -900
  97. package/dist/packages/attention/react.d.ts +4 -4
  98. package/dist/packages/attention/react.js +13 -11
  99. package/dist/packages/attention/styles.js +1 -1
  100. package/dist/packages/badge/badge.d.ts +3 -3
  101. package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
  102. package/dist/packages/badge/badge.hydration.test.js +25 -25
  103. package/dist/packages/badge/badge.js +276 -276
  104. package/dist/packages/badge/badge.js.map +2 -2
  105. package/dist/packages/badge/badge.react.stories.d.ts +3 -3
  106. package/dist/packages/badge/badge.react.stories.js +17 -17
  107. package/dist/packages/badge/badge.stories.d.ts +3 -3
  108. package/dist/packages/badge/badge.stories.js +22 -20
  109. package/dist/packages/badge/badge.test.d.ts +1 -1
  110. package/dist/packages/badge/badge.test.js +13 -11
  111. package/dist/packages/badge/react.d.ts +1 -1
  112. package/dist/packages/badge/react.js +4 -4
  113. package/dist/packages/badge/styles.js +1 -1
  114. package/dist/packages/box/box.d.ts +1 -1
  115. package/dist/packages/box/box.hydration.test.d.ts +1 -1
  116. package/dist/packages/box/box.hydration.test.js +14 -14
  117. package/dist/packages/box/box.js +283 -283
  118. package/dist/packages/box/box.js.map +2 -2
  119. package/dist/packages/box/box.react.stories.d.ts +3 -3
  120. package/dist/packages/box/box.react.stories.js +8 -8
  121. package/dist/packages/box/box.stories.d.ts +3 -3
  122. package/dist/packages/box/box.stories.js +25 -19
  123. package/dist/packages/box/box.test.d.ts +1 -1
  124. package/dist/packages/box/box.test.js +6 -6
  125. package/dist/packages/box/react.d.ts +1 -1
  126. package/dist/packages/box/react.js +4 -4
  127. package/dist/packages/box/slot.test.d.ts +1 -1
  128. package/dist/packages/box/slot.test.js +6 -6
  129. package/dist/packages/box/styles.js +1 -1
  130. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +1 -1
  131. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
  132. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +55 -49
  133. package/dist/packages/breadcrumbs/breadcrumbs.js +284 -278
  134. package/dist/packages/breadcrumbs/breadcrumbs.js.map +2 -2
  135. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +3 -3
  136. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +6 -6
  137. package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +3 -3
  138. package/dist/packages/breadcrumbs/breadcrumbs.stories.js +27 -26
  139. package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
  140. package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
  141. package/dist/packages/breadcrumbs/react.d.ts +1 -1
  142. package/dist/packages/breadcrumbs/react.js +4 -4
  143. package/dist/packages/breadcrumbs/styles.js +1 -1
  144. package/dist/packages/button/button.d.ts +9 -4
  145. package/dist/packages/button/button.hydration.test.d.ts +1 -1
  146. package/dist/packages/button/button.hydration.test.js +19 -19
  147. package/dist/packages/button/button.js +743 -717
  148. package/dist/packages/button/button.js.map +2 -2
  149. package/dist/packages/button/button.react.stories.d.ts +5 -5
  150. package/dist/packages/button/button.react.stories.js +30 -30
  151. package/dist/packages/button/button.react.test.js +13 -13
  152. package/dist/packages/button/button.stories.d.ts +4 -4
  153. package/dist/packages/button/button.stories.js +276 -167
  154. package/dist/packages/button/button.test.d.ts +1 -1
  155. package/dist/packages/button/button.test.js +36 -35
  156. package/dist/packages/button/react.d.ts +3 -3
  157. package/dist/packages/button/react.js +7 -7
  158. package/dist/packages/button/styles.js +373 -347
  159. package/dist/packages/card/card.d.ts +1 -1
  160. package/dist/packages/card/card.hydration.test.d.ts +1 -1
  161. package/dist/packages/card/card.hydration.test.js +14 -14
  162. package/dist/packages/card/card.js +305 -290
  163. package/dist/packages/card/card.js.map +2 -2
  164. package/dist/packages/card/card.react.stories.d.ts +3 -3
  165. package/dist/packages/card/card.react.stories.js +11 -11
  166. package/dist/packages/card/card.stories.d.ts +3 -3
  167. package/dist/packages/card/card.stories.js +36 -24
  168. package/dist/packages/card/card.test.d.ts +1 -1
  169. package/dist/packages/card/card.test.js +6 -6
  170. package/dist/packages/card/react.d.ts +1 -1
  171. package/dist/packages/card/react.js +4 -4
  172. package/dist/packages/card/styles.js +1 -1
  173. package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
  174. package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
  175. package/dist/packages/checkbox/checkbox.d.ts +2 -2
  176. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
  177. package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
  178. package/dist/packages/checkbox/checkbox.js +475 -424
  179. package/dist/packages/checkbox/checkbox.js.map +2 -2
  180. package/dist/packages/checkbox/checkbox.react.stories.d.ts +2 -2
  181. package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
  182. package/dist/packages/checkbox/checkbox.stories.d.ts +4 -4
  183. package/dist/packages/checkbox/checkbox.stories.js +99 -91
  184. package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
  185. package/dist/packages/checkbox/checkbox.test.js +64 -64
  186. package/dist/packages/checkbox/react.d.ts +1 -1
  187. package/dist/packages/checkbox/react.js +6 -6
  188. package/dist/packages/checkbox/styles.js +183 -132
  189. package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
  190. package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
  191. package/dist/packages/checkbox-group/checkbox-group.d.ts +16 -2
  192. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
  193. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
  194. package/dist/packages/checkbox-group/checkbox-group.js +60 -55
  195. package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
  196. package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
  197. package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
  198. package/dist/packages/checkbox-group/checkbox-group.test.js +96 -90
  199. package/dist/packages/checkbox-group/react.d.ts +2 -2
  200. package/dist/packages/checkbox-group/react.js +6 -6
  201. package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
  202. package/dist/packages/combobox/combobox.a11y.test.js +72 -49
  203. package/dist/packages/combobox/combobox.d.ts +2 -2
  204. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
  205. package/dist/packages/combobox/combobox.hydration.test.js +45 -45
  206. package/dist/packages/combobox/combobox.js +332 -332
  207. package/dist/packages/combobox/combobox.js.map +3 -3
  208. package/dist/packages/combobox/combobox.react.stories.d.ts +3 -3
  209. package/dist/packages/combobox/combobox.react.stories.js +29 -29
  210. package/dist/packages/combobox/combobox.react.test.js +8 -8
  211. package/dist/packages/combobox/combobox.stories.d.ts +4 -4
  212. package/dist/packages/combobox/combobox.stories.js +100 -94
  213. package/dist/packages/combobox/combobox.test.d.ts +2 -2
  214. package/dist/packages/combobox/combobox.test.js +148 -133
  215. package/dist/packages/combobox/react.d.ts +2 -2
  216. package/dist/packages/combobox/react.js +14 -14
  217. package/dist/packages/combobox/styles.js +1 -1
  218. package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
  219. package/dist/packages/datepicker/DatePicker.test.js +46 -41
  220. package/dist/packages/datepicker/datepicker.d.ts +3 -3
  221. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
  222. package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
  223. package/dist/packages/datepicker/datepicker.js +665 -625
  224. package/dist/packages/datepicker/datepicker.js.map +3 -3
  225. package/dist/packages/datepicker/datepicker.react.stories.d.ts +3 -3
  226. package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
  227. package/dist/packages/datepicker/datepicker.react.test.js +6 -6
  228. package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
  229. package/dist/packages/datepicker/datepicker.stories.js +32 -32
  230. package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
  231. package/dist/packages/datepicker/datepicker.test.js +77 -79
  232. package/dist/packages/datepicker/react.d.ts +2 -2
  233. package/dist/packages/datepicker/react.js +16 -14
  234. package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
  235. package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
  236. package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
  237. package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
  238. package/dist/packages/datepicker/utils.d.ts +1 -1
  239. package/dist/packages/datepicker/utils.js +25 -19
  240. package/dist/packages/datepicker/utils.test.js +20 -20
  241. package/dist/packages/expandable/expandable.d.ts +4 -4
  242. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
  243. package/dist/packages/expandable/expandable.hydration.test.js +21 -21
  244. package/dist/packages/expandable/expandable.js +357 -330
  245. package/dist/packages/expandable/expandable.js.map +4 -4
  246. package/dist/packages/expandable/expandable.react.stories.d.ts +3 -3
  247. package/dist/packages/expandable/expandable.react.stories.js +7 -7
  248. package/dist/packages/expandable/expandable.react.test.js +15 -7
  249. package/dist/packages/expandable/expandable.stories.d.ts +5 -5
  250. package/dist/packages/expandable/expandable.stories.js +51 -45
  251. package/dist/packages/expandable/expandable.test.d.ts +1 -1
  252. package/dist/packages/expandable/expandable.test.js +19 -17
  253. package/dist/packages/expandable/react.d.ts +2 -2
  254. package/dist/packages/expandable/react.js +9 -9
  255. package/dist/packages/expandable/styles.js +1 -1
  256. package/dist/packages/global.d.ts +1 -0
  257. package/dist/packages/global.js +5 -0
  258. package/dist/packages/i18n.d.ts +1 -1
  259. package/dist/packages/i18n.js +37 -29
  260. package/dist/packages/icon/icon.d.ts +7 -2
  261. package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
  262. package/dist/packages/icon/icon.hydration.test.js +25 -25
  263. package/dist/packages/icon/icon.js +31 -26
  264. package/dist/packages/icon/icon.js.map +2 -2
  265. package/dist/packages/icon/icon.react.stories.d.ts +1 -1
  266. package/dist/packages/icon/icon.react.stories.js +283 -284
  267. package/dist/packages/icon/icon.stories.d.ts +3 -3
  268. package/dist/packages/icon/icon.stories.js +299 -298
  269. package/dist/packages/icon/icon.test.d.ts +1 -1
  270. package/dist/packages/icon/icon.test.js +36 -28
  271. package/dist/packages/icon/react.d.ts +1 -1
  272. package/dist/packages/icon/react.js +4 -4
  273. package/dist/packages/icon/style.js +24 -25
  274. package/dist/packages/interaction-type-detection.d.ts +22 -0
  275. package/dist/packages/interaction-type-detection.js +38 -0
  276. package/dist/packages/link/link.d.ts +2 -2
  277. package/dist/packages/link/link.hydration.test.d.ts +1 -1
  278. package/dist/packages/link/link.hydration.test.js +27 -27
  279. package/dist/packages/link/link.js +709 -683
  280. package/dist/packages/link/link.js.map +2 -2
  281. package/dist/packages/link/link.react.stories.d.ts +3 -3
  282. package/dist/packages/link/link.react.stories.js +42 -42
  283. package/dist/packages/link/link.react.test.js +5 -3
  284. package/dist/packages/link/link.stories.d.ts +3 -3
  285. package/dist/packages/link/link.stories.js +51 -51
  286. package/dist/packages/link/link.test.d.ts +1 -1
  287. package/dist/packages/link/link.test.js +11 -7
  288. package/dist/packages/link/react.d.ts +2 -2
  289. package/dist/packages/link/react.js +6 -6
  290. package/dist/packages/link/styles.js +57 -57
  291. package/dist/packages/modal/index.d.ts +7 -7
  292. package/dist/packages/modal/index.js +7 -7
  293. package/dist/packages/modal/modal.d.ts +1 -1
  294. package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
  295. package/dist/packages/modal/modal.hydration.test.js +12 -12
  296. package/dist/packages/modal/modal.js +405 -405
  297. package/dist/packages/modal/modal.js.map +2 -2
  298. package/dist/packages/modal/modal.react.stories.d.ts +3 -3
  299. package/dist/packages/modal/modal.react.stories.js +7 -6
  300. package/dist/packages/modal/modal.react.test.js +5 -5
  301. package/dist/packages/modal/modal.stories.d.ts +6 -6
  302. package/dist/packages/modal/modal.stories.js +253 -238
  303. package/dist/packages/modal/react.d.ts +4 -4
  304. package/dist/packages/modal/react.js +13 -13
  305. package/dist/packages/modal/util.js +2 -2
  306. package/dist/packages/modal-footer/modal-footer.d.ts +1 -1
  307. package/dist/packages/modal-footer/modal-footer.js +291 -291
  308. package/dist/packages/modal-footer/modal-footer.js.map +2 -2
  309. package/dist/packages/modal-footer/react.d.ts +1 -1
  310. package/dist/packages/modal-footer/react.js +4 -4
  311. package/dist/packages/modal-header/modal-header.d.ts +2 -2
  312. package/dist/packages/modal-header/modal-header.js +439 -418
  313. package/dist/packages/modal-header/modal-header.js.map +2 -2
  314. package/dist/packages/modal-header/modal-header.react.test.js +5 -3
  315. package/dist/packages/modal-header/react.d.ts +2 -2
  316. package/dist/packages/modal-header/react.js +8 -8
  317. package/dist/packages/page-indicator/page-indicator.d.ts +1 -1
  318. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
  319. package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
  320. package/dist/packages/page-indicator/page-indicator.js +26 -26
  321. package/dist/packages/page-indicator/page-indicator.js.map +2 -2
  322. package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
  323. package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
  324. package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
  325. package/dist/packages/page-indicator/page-indicator.stories.d.ts +3 -3
  326. package/dist/packages/page-indicator/page-indicator.stories.js +56 -27
  327. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
  328. package/dist/packages/page-indicator/page-indicator.test.js +110 -70
  329. package/dist/packages/page-indicator/react.d.ts +2 -2
  330. package/dist/packages/page-indicator/react.js +7 -7
  331. package/dist/packages/page-indicator/style.js +21 -21
  332. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
  333. package/dist/packages/pagination/pagination.a11y.test.js +59 -25
  334. package/dist/packages/pagination/pagination.d.ts +3 -3
  335. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
  336. package/dist/packages/pagination/pagination.hydration.test.js +19 -19
  337. package/dist/packages/pagination/pagination.js +380 -349
  338. package/dist/packages/pagination/pagination.js.map +2 -2
  339. package/dist/packages/pagination/pagination.react.stories.d.ts +5 -5
  340. package/dist/packages/pagination/pagination.react.stories.js +8 -8
  341. package/dist/packages/pagination/pagination.react.test.js +6 -6
  342. package/dist/packages/pagination/pagination.stories.d.ts +3 -3
  343. package/dist/packages/pagination/pagination.stories.js +18 -18
  344. package/dist/packages/pagination/pagination.test.d.ts +1 -1
  345. package/dist/packages/pagination/pagination.test.js +146 -69
  346. package/dist/packages/pagination/react.d.ts +3 -3
  347. package/dist/packages/pagination/react.js +12 -10
  348. package/dist/packages/pagination/styles.js +1 -1
  349. package/dist/packages/pill/pill.d.ts +2 -2
  350. package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
  351. package/dist/packages/pill/pill.hydration.test.js +14 -14
  352. package/dist/packages/pill/pill.js +334 -311
  353. package/dist/packages/pill/pill.js.map +2 -2
  354. package/dist/packages/pill/pill.react.stories.d.ts +3 -3
  355. package/dist/packages/pill/pill.react.stories.js +3 -3
  356. package/dist/packages/pill/pill.react.test.js +8 -8
  357. package/dist/packages/pill/pill.stories.d.ts +3 -3
  358. package/dist/packages/pill/pill.stories.js +8 -8
  359. package/dist/packages/pill/pill.test.d.ts +1 -1
  360. package/dist/packages/pill/pill.test.js +17 -15
  361. package/dist/packages/pill/react.d.ts +2 -2
  362. package/dist/packages/pill/react.js +18 -14
  363. package/dist/packages/pill/styles.js +1 -1
  364. package/dist/packages/radio/base-element.d.ts +3 -3
  365. package/dist/packages/radio/base-element.js +3 -3
  366. package/dist/packages/radio/custom-error-validator.d.ts +1 -1
  367. package/dist/packages/radio/custom-error-validator.js +3 -3
  368. package/dist/packages/radio/form-associated-element.d.ts +8 -8
  369. package/dist/packages/radio/form-associated-element.js +27 -26
  370. package/dist/packages/radio/host-styles.js +9 -9
  371. package/dist/packages/radio/invalid.d.ts +1 -1
  372. package/dist/packages/radio/invalid.js +1 -1
  373. package/dist/packages/radio/radio-styles.js +199 -160
  374. package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
  375. package/dist/packages/radio/radio.a11y.test.js +60 -58
  376. package/dist/packages/radio/radio.d.ts +3 -3
  377. package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
  378. package/dist/packages/radio/radio.hydration.test.js +23 -14
  379. package/dist/packages/radio/radio.js +485 -446
  380. package/dist/packages/radio/radio.js.map +3 -3
  381. package/dist/packages/radio/radio.react.stories.d.ts +2 -2
  382. package/dist/packages/radio/radio.react.stories.js +3 -3
  383. package/dist/packages/radio/radio.stories.d.ts +4 -4
  384. package/dist/packages/radio/radio.stories.js +152 -136
  385. package/dist/packages/radio/radio.test.d.ts +1 -1
  386. package/dist/packages/radio/radio.test.js +74 -73
  387. package/dist/packages/radio/react.d.ts +1 -1
  388. package/dist/packages/radio/react.js +4 -4
  389. package/dist/packages/radio/required-validator.d.ts +1 -1
  390. package/dist/packages/radio/required-validator.js +12 -7
  391. package/dist/packages/radio/slot.d.ts +1 -1
  392. package/dist/packages/radio/slot.js +11 -8
  393. package/dist/packages/radio/watch.d.ts +1 -1
  394. package/dist/packages/radio/watch.js +3 -1
  395. package/dist/packages/radio-group/radio-group-styles.js +121 -88
  396. package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
  397. package/dist/packages/radio-group/radio-group.a11y.test.js +81 -79
  398. package/dist/packages/radio-group/radio-group.d.ts +14 -5
  399. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
  400. package/dist/packages/radio-group/radio-group.hydration.test.js +29 -18
  401. package/dist/packages/radio-group/radio-group.js +648 -560
  402. package/dist/packages/radio-group/radio-group.js.map +3 -3
  403. package/dist/packages/radio-group/radio-group.react.test.js +4 -4
  404. package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
  405. package/dist/packages/radio-group/radio-group.test.js +234 -229
  406. package/dist/packages/radio-group/react.d.ts +2 -2
  407. package/dist/packages/radio-group/react.js +10 -10
  408. package/dist/packages/select/react.d.ts +2 -2
  409. package/dist/packages/select/react.js +11 -11
  410. package/dist/packages/select/select.a11y.test.d.ts +1 -1
  411. package/dist/packages/select/select.a11y.test.js +98 -91
  412. package/dist/packages/select/select.d.ts +4 -4
  413. package/dist/packages/select/select.hydration.test.d.ts +1 -1
  414. package/dist/packages/select/select.hydration.test.js +16 -16
  415. package/dist/packages/select/select.js +350 -331
  416. package/dist/packages/select/select.js.map +2 -2
  417. package/dist/packages/select/select.react.stories.d.ts +3 -3
  418. package/dist/packages/select/select.react.stories.js +7 -7
  419. package/dist/packages/select/select.react.test.js +6 -6
  420. package/dist/packages/select/select.stories.d.ts +3 -3
  421. package/dist/packages/select/select.stories.js +51 -48
  422. package/dist/packages/select/select.test.d.ts +1 -1
  423. package/dist/packages/select/select.test.js +175 -178
  424. package/dist/packages/select/styles.js +1 -1
  425. package/dist/packages/slider/Slider.d.ts +1 -1
  426. package/dist/packages/slider/Slider.js +4 -4
  427. package/dist/packages/slider/index.d.ts +2 -2
  428. package/dist/packages/slider/index.js +2 -2
  429. package/dist/packages/slider/react.d.ts +3 -3
  430. package/dist/packages/slider/react.js +9 -9
  431. package/dist/packages/slider/slider.d.ts +3 -3
  432. package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
  433. package/dist/packages/slider/slider.hydration.test.js +39 -20
  434. package/dist/packages/slider/slider.js +480 -462
  435. package/dist/packages/slider/slider.js.map +2 -2
  436. package/dist/packages/slider/slider.react.stories.d.ts +3 -3
  437. package/dist/packages/slider/slider.react.stories.js +31 -34
  438. package/dist/packages/slider/slider.react.test.js +6 -6
  439. package/dist/packages/slider/slider.stories.d.ts +7 -7
  440. package/dist/packages/slider/slider.stories.js +332 -340
  441. package/dist/packages/slider/slider.test.d.ts +5 -5
  442. package/dist/packages/slider/slider.test.js +367 -334
  443. package/dist/packages/slider/styles/w-slider.styles.js +166 -148
  444. package/dist/packages/slider/styles.js +1 -1
  445. package/dist/packages/slider-thumb/SliderThumb.d.ts +1 -1
  446. package/dist/packages/slider-thumb/SliderThumb.js +4 -4
  447. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
  448. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
  449. package/dist/packages/slider-thumb/react.d.ts +3 -3
  450. package/dist/packages/slider-thumb/react.js +11 -9
  451. package/dist/packages/slider-thumb/slider-thumb.d.ts +3 -3
  452. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
  453. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
  454. package/dist/packages/slider-thumb/slider-thumb.js +545 -548
  455. package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
  456. package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
  457. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
  458. package/dist/packages/slider-thumb/styles.js +1 -1
  459. package/dist/packages/snackbar/locales/da/messages.d.mts +1 -0
  460. package/dist/packages/snackbar/locales/da/messages.mjs +1 -0
  461. package/dist/packages/snackbar/locales/en/messages.d.mts +1 -0
  462. package/dist/packages/snackbar/locales/en/messages.mjs +1 -0
  463. package/dist/packages/snackbar/locales/fi/messages.d.mts +1 -0
  464. package/dist/packages/snackbar/locales/fi/messages.mjs +1 -0
  465. package/dist/packages/snackbar/locales/nb/messages.d.mts +1 -0
  466. package/dist/packages/snackbar/locales/nb/messages.mjs +1 -0
  467. package/dist/packages/snackbar/locales/sv/messages.d.mts +1 -0
  468. package/dist/packages/snackbar/locales/sv/messages.mjs +1 -0
  469. package/dist/packages/snackbar/react.d.ts +2 -0
  470. package/dist/packages/snackbar/react.js +11 -0
  471. package/dist/packages/snackbar/snackbar.d.ts +132 -0
  472. package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -0
  473. package/dist/packages/snackbar/snackbar.hydration.test.js +13 -0
  474. package/dist/packages/snackbar/snackbar.js +2665 -0
  475. package/dist/packages/snackbar/snackbar.js.map +7 -0
  476. package/dist/packages/snackbar/snackbar.react.stories.d.ts +12 -0
  477. package/dist/packages/snackbar/snackbar.react.stories.js +160 -0
  478. package/dist/packages/snackbar/snackbar.stories.d.ts +20 -0
  479. package/dist/packages/snackbar/snackbar.stories.js +363 -0
  480. package/dist/packages/snackbar/snackbar.test.d.ts +4 -0
  481. package/dist/packages/snackbar/snackbar.test.js +17 -0
  482. package/dist/packages/snackbar/styles.d.ts +1 -0
  483. package/dist/packages/snackbar/styles.js +35 -0
  484. package/dist/packages/snackbar-item/react.d.ts +5 -0
  485. package/dist/packages/snackbar-item/react.js +16 -0
  486. package/dist/packages/snackbar-item/snackbar-item.d.ts +69 -0
  487. package/dist/packages/snackbar-item/snackbar-item.js +2620 -0
  488. package/dist/packages/snackbar-item/snackbar-item.js.map +7 -0
  489. package/dist/packages/snackbar-item/snackbar-item.react.test.d.ts +1 -0
  490. package/dist/packages/snackbar-item/snackbar-item.react.test.js +5 -0
  491. package/dist/packages/snackbar-item/styles.d.ts +1 -0
  492. package/dist/packages/snackbar-item/styles.js +133 -0
  493. package/dist/packages/step/react.d.ts +1 -1
  494. package/dist/packages/step/react.js +4 -4
  495. package/dist/packages/step/step.d.ts +2 -2
  496. package/dist/packages/step/step.hydration.test.d.ts +1 -1
  497. package/dist/packages/step/step.hydration.test.js +10 -10
  498. package/dist/packages/step/step.js +334 -312
  499. package/dist/packages/step/step.js.map +2 -2
  500. package/dist/packages/step-indicator/index.d.ts +2 -2
  501. package/dist/packages/step-indicator/index.js +2 -2
  502. package/dist/packages/step-indicator/react.d.ts +2 -2
  503. package/dist/packages/step-indicator/react.js +5 -5
  504. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
  505. package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
  506. package/dist/packages/step-indicator/step-indicator.d.ts +1 -1
  507. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
  508. package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
  509. package/dist/packages/step-indicator/step-indicator.js +280 -276
  510. package/dist/packages/step-indicator/step-indicator.js.map +2 -2
  511. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
  512. package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
  513. package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
  514. package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
  515. package/dist/packages/step-indicator/styles.js +1 -1
  516. package/dist/packages/styles.js +274 -274
  517. package/dist/packages/switch/react.d.ts +1 -1
  518. package/dist/packages/switch/react.js +6 -6
  519. package/dist/packages/switch/styles.js +1 -1
  520. package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
  521. package/dist/packages/switch/switch.a11y.test.js +46 -38
  522. package/dist/packages/switch/switch.d.ts +1 -1
  523. package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
  524. package/dist/packages/switch/switch.hydration.test.js +23 -23
  525. package/dist/packages/switch/switch.js +299 -299
  526. package/dist/packages/switch/switch.js.map +2 -2
  527. package/dist/packages/switch/switch.react.stories.d.ts +2 -2
  528. package/dist/packages/switch/switch.react.stories.js +2 -2
  529. package/dist/packages/switch/switch.stories.d.ts +2 -2
  530. package/dist/packages/switch/switch.stories.js +42 -37
  531. package/dist/packages/switch/switch.test.d.ts +1 -1
  532. package/dist/packages/switch/switch.test.js +30 -35
  533. package/dist/packages/tab/react.d.ts +6 -4
  534. package/dist/packages/tab/react.js +11 -10
  535. package/dist/packages/tab/styles.d.ts +1 -0
  536. package/dist/packages/tab/styles.js +2 -0
  537. package/dist/packages/tab/tab.d.ts +5 -5
  538. package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
  539. package/dist/packages/tab/tab.hydration.test.js +18 -12
  540. package/dist/packages/tab/tab.js +305 -304
  541. package/dist/packages/tab/tab.js.map +3 -3
  542. package/dist/packages/tab/tab.react.test.js +5 -3
  543. package/dist/packages/tab-panel/react.d.ts +3 -2
  544. package/dist/packages/tab-panel/react.js +11 -5
  545. package/dist/packages/tab-panel/tab-panel.d.ts +3 -3
  546. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
  547. package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
  548. package/dist/packages/tab-panel/tab-panel.js +289 -287
  549. package/dist/packages/tab-panel/tab-panel.js.map +2 -2
  550. package/dist/packages/tabs/index.d.ts +4 -4
  551. package/dist/packages/tabs/index.js +3 -3
  552. package/dist/packages/tabs/react.d.ts +27 -8
  553. package/dist/packages/tabs/react.js +30 -9
  554. package/dist/packages/tabs/styles.js +1 -1
  555. package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
  556. package/dist/packages/tabs/tabs.a11y.test.js +188 -169
  557. package/dist/packages/tabs/tabs.d.ts +3 -3
  558. package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
  559. package/dist/packages/tabs/tabs.hydration.test.js +22 -8
  560. package/dist/packages/tabs/tabs.js +289 -282
  561. package/dist/packages/tabs/tabs.js.map +2 -2
  562. package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
  563. package/dist/packages/tabs/tabs.react.stories.js +28 -28
  564. package/dist/packages/tabs/tabs.stories.d.ts +4 -4
  565. package/dist/packages/tabs/tabs.stories.js +101 -95
  566. package/dist/packages/tabs/tabs.test.d.ts +3 -3
  567. package/dist/packages/tabs/tabs.test.js +136 -122
  568. package/dist/packages/textarea/react.d.ts +2 -2
  569. package/dist/packages/textarea/react.js +17 -17
  570. package/dist/packages/textarea/styles.js +1 -1
  571. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
  572. package/dist/packages/textarea/textarea.a11y.test.js +89 -57
  573. package/dist/packages/textarea/textarea.d.ts +1 -1
  574. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
  575. package/dist/packages/textarea/textarea.hydration.test.js +19 -19
  576. package/dist/packages/textarea/textarea.js +300 -298
  577. package/dist/packages/textarea/textarea.js.map +2 -2
  578. package/dist/packages/textarea/textarea.react.stories.d.ts +3 -3
  579. package/dist/packages/textarea/textarea.react.stories.js +13 -13
  580. package/dist/packages/textarea/textarea.react.test.js +7 -7
  581. package/dist/packages/textarea/textarea.stories.d.ts +3 -3
  582. package/dist/packages/textarea/textarea.stories.js +44 -42
  583. package/dist/packages/textarea/textarea.test.d.ts +1 -1
  584. package/dist/packages/textarea/textarea.test.js +124 -88
  585. package/dist/packages/textfield/react.d.ts +2 -2
  586. package/dist/packages/textfield/react.js +17 -17
  587. package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
  588. package/dist/packages/textfield/styles.js +1 -1
  589. package/dist/packages/textfield/textfield.d.ts +3 -3
  590. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
  591. package/dist/packages/textfield/textfield.hydration.test.js +19 -19
  592. package/dist/packages/textfield/textfield.js +376 -368
  593. package/dist/packages/textfield/textfield.js.map +3 -3
  594. package/dist/packages/textfield/textfield.react.stories.d.ts +3 -3
  595. package/dist/packages/textfield/textfield.react.stories.js +31 -31
  596. package/dist/packages/textfield/textfield.react.test.js +7 -7
  597. package/dist/packages/textfield/textfield.stories.d.ts +4 -4
  598. package/dist/packages/textfield/textfield.stories.js +107 -89
  599. package/dist/packages/textfield/textfield.test.d.ts +2 -2
  600. package/dist/packages/textfield/textfield.test.js +103 -71
  601. package/dist/packages/toast/api.d.ts +1 -1
  602. package/dist/packages/toast/api.js +3 -3
  603. package/dist/packages/toast/index.d.ts +5 -5
  604. package/dist/packages/toast/index.js +5 -5
  605. package/dist/packages/toast/toast.d.ts +4 -4
  606. package/dist/packages/toast/toast.js +346 -317
  607. package/dist/packages/toast/toast.js.map +4 -4
  608. package/dist/packages/toast/toast.stories.d.ts +4 -4
  609. package/dist/packages/toast/toast.stories.js +37 -16
  610. package/dist/packages/toast/toast.test.d.ts +1 -1
  611. package/dist/packages/toast/toast.test.js +48 -31
  612. package/dist/packages/toast/types.d.ts +1 -1
  613. package/dist/packages/toast-container/styles.js +1 -1
  614. package/dist/packages/toast-container/toast-container.d.ts +2 -2
  615. package/dist/packages/toast-container/toast-container.js +291 -290
  616. package/dist/packages/toast-container/toast-container.js.map +2 -2
  617. package/dist/packages/utils/element-collapse.d.ts +12 -0
  618. package/dist/packages/utils/element-collapse.js +102 -0
  619. package/dist/packages/utils/expand-transition.d.ts +1 -1
  620. package/dist/packages/utils/expand-transition.js +12 -10
  621. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  622. package/dist/packages/utils/unstyled-heading.js +4 -4
  623. package/dist/packages/utils/window-exists.js +1 -1
  624. package/dist/packages/utils.js +2 -2
  625. package/dist/setup-tests.d.ts +3 -3
  626. package/dist/setup-tests.js +16 -13
  627. package/dist/tests/react-hydration.js +29 -30
  628. package/dist/tests/react-ssr-attributes.d.ts +1 -1
  629. package/dist/tests/react-ssr-attributes.js +4 -4
  630. package/dist/web-types.json +110 -22
  631. package/eik/index.js +12 -12
  632. package/package.json +11 -18
@@ -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
 
@@ -8,6 +8,8 @@
8
8
  | aria-label | `string \| null` | `null` | Label for the range input. |
9
9
  | name | `string \| undefined` | `-` | The name of this input field in the form. The canonical source of the value is the text field. |
10
10
  | placeholder | `string \| undefined` | `-` | Placeholder in empty text fields |
11
+ | resetFormControl (JS only) | `resetFormControl() => void` | `-` | - |
12
+ | updateFieldAfterValidation (JS only) | `updateFieldAfterValidation() => void` | `-` | - |
11
13
  | value | `string \| undefined` | `-` | The initial value, if any |
12
14
 
13
15
  #### Property Details
@@ -40,6 +42,20 @@ Placeholder in empty text fields
40
42
  - Type: `string | undefined`
41
43
  - Default: `-`
42
44
 
45
+ ##### resetFormControl (JS only)
46
+
47
+
48
+
49
+ - Type: `resetFormControl() => void`
50
+ - Default: `-`
51
+
52
+ ##### updateFieldAfterValidation (JS only)
53
+
54
+
55
+
56
+ - Type: `updateFieldAfterValidation() => void`
57
+ - Default: `-`
58
+
43
59
  ##### value
44
60
 
45
61
  The initial value, if any
@@ -22,6 +22,8 @@ Component to place inside a `<w-slider>`.
22
22
  | aria-label | `string \| null` | `null` | Label for the range input. |
23
23
  | name | `string \| undefined` | `-` | The name of this input field in the form. The canonical source of the value is the text field. |
24
24
  | placeholder | `string \| undefined` | `-` | Placeholder in empty text fields |
25
+ | resetFormControl (JS only) | `resetFormControl() => void` | `-` | - |
26
+ | updateFieldAfterValidation (JS only) | `updateFieldAfterValidation() => void` | `-` | - |
25
27
  | value | `string \| undefined` | `-` | The initial value, if any |
26
28
 
27
29
  #### Property Details
@@ -54,6 +56,20 @@ Placeholder in empty text fields
54
56
  - Type: `string | undefined`
55
57
  - Default: `-`
56
58
 
59
+ ##### resetFormControl (JS only)
60
+
61
+
62
+
63
+ - Type: `resetFormControl() => void`
64
+ - Default: `-`
65
+
66
+ ##### updateFieldAfterValidation (JS only)
67
+
68
+
69
+
70
+ - Type: `updateFieldAfterValidation() => void`
71
+ - Default: `-`
72
+
57
73
  ##### value
58
74
 
59
75
  The initial value, if any
@@ -0,0 +1,20 @@
1
+ ## Accessibility
2
+
3
+ From an accessibility perspective the snackbar component is problematic.
4
+
5
+ - Since the snackbar items disappear on their own users might not even see them, especially when zoomed in.
6
+ - The snackbar items are in practice impossible to reach with keyboard since they appear in the DOM away from the element that triggered them.
7
+ - Important elements on the page might get hidden behind the snackbar item.
8
+
9
+ A snackbar must never be the backbone of your user experience, it should only ever include information and actions that are available elsewhere.
10
+
11
+ - Keep messages and actions short since the snackbar item is available only for a short time.
12
+ - Ensure any information and action in the snackbar, such as Undo, is possible to do elsewhere.
13
+
14
+ `<w-snackbar>` creates an ARIA live region so messages you add to the snackbar get announced to assistive technologies.
15
+
16
+ ### Keyboard behavior
17
+
18
+ `<w-snackbar>` is problematic from a keyboard user perspective. We do not override the default <kbd>Tab</kbd> behavior, with the result that the focusable buttons in a snackbar item probably come first or last in the focus order, depending on what end of `<body>` you put `<w-snackbar>`. We're investigating ways to provide keyboard shortcuts for moving focus to the snackbar item, but have yet to conclude on a design.
19
+
20
+ `<w-snackbar>` sets up a keyboard event listener on `document`. Pressing <kbd>Escape</kbd> while a snackbar item is open will close it. If more than one item is open the oldest one will close.
@@ -0,0 +1,30 @@
1
+ ## `<w-snackbar>` API
2
+
3
+ Unless otherwise noted all properties are HTML attributes (as opposed to JavaScript object properties).
4
+
5
+ ### Properties
6
+
7
+ | Name | Type | Default | Summary |
8
+ |-|-|-|-|
9
+ | create (JS only) | `create(message: string, options: CreateSnackbarOptions = {}) => void` | `-` | Creates a snackbar item and immediately adds it to the snackbar. |
10
+
11
+ ### Property Details
12
+
13
+ #### create (JS only)
14
+
15
+ Creates a snackbar item and immediately adds it to the snackbar.
16
+
17
+ By default the snackbar item automatically closes after 4 seconds (`SnackbarDuration.Short`).
18
+
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.
21
+
22
+ A `duration` of 10 seconds or longer forces the close button to be visible.
23
+
24
+ The default `variant` is `neutral` which does not have an icon.
25
+
26
+ Set `duration` to `SnackbarDuration.Infinite` if you want a persistent message.
27
+
28
+ - Type: `create(message: string, options: CreateSnackbarOptions = {}) => void`
29
+ - Default: `-`
30
+
@@ -0,0 +1,191 @@
1
+ ## Examples
2
+
3
+ ### Default
4
+
5
+ Snackbar uses the `neutral` variant with a short duration by default.
6
+
7
+ <elements-example>
8
+
9
+ ```html
10
+ <w-button data-testid="neutral-noaction">Neutral variant</w-button>
11
+
12
+ <script>
13
+ document.querySelector('w-button[data-testid="neutral-noaction"]').onclick = () => {
14
+ const snackbar = document.querySelector("w-snackbar");
15
+ snackbar.create("Snackbar message");
16
+ };
17
+ </script>
18
+ ```
19
+
20
+ </elements-example>
21
+
22
+ #### With action
23
+
24
+ You can include an action in the snackbar by providing a label and an onclick handler. By default the action button and close button are inline with the text.
25
+
26
+ Clicking an action button automatically closes the snackbar item. If you want to prevent this call `event.preventDefault()`.
27
+
28
+ You can use an action with any `variant`.
29
+
30
+ <elements-example>
31
+
32
+ ```html
33
+ <w-button data-testid="neutral-action">Neutral variant with action</w-button>
34
+
35
+ <script>
36
+ document.querySelector('w-button[data-testid="neutral-action"]').onclick = () => {
37
+ const snackbar = document.querySelector("w-snackbar");
38
+ snackbar.create("Snackbar message", {
39
+ action: {
40
+ label: "Undo",
41
+ onclick(e) {
42
+ console.log(e);
43
+ }
44
+ }
45
+ });
46
+ };
47
+ </script>
48
+ ```
49
+
50
+ </elements-example>
51
+
52
+ #### With long action label
53
+
54
+ By default a long label will result in the action and close buttons on a separate row. A label gets treated as long if it contains whitespace.
55
+
56
+ Clicking an action button automatically closes the snackbar item. If you want to prevent this call `event.preventDefault()`.
57
+
58
+ You can use an action with any `variant`.
59
+
60
+ <elements-example>
61
+
62
+ ```html
63
+ <w-button data-testid="neutral-longlabel">Neutral variant, long label</w-button>
64
+
65
+ <script>
66
+ document.querySelector('w-button[data-testid="neutral-longlabel"]').onclick = () => {
67
+ const snackbar = document.querySelector("w-snackbar");
68
+ snackbar.create("Snackbar message", {
69
+ action: {
70
+ label: "Undo this thing",
71
+ onclick(e) {
72
+ console.log(e);
73
+ }
74
+ }
75
+ });
76
+ };
77
+ </script>
78
+ ```
79
+
80
+ </elements-example>
81
+
82
+ ### Positive
83
+
84
+ <elements-example>
85
+
86
+ ```html
87
+ <w-button data-testid="positive-noaction">Positive variant</w-button>
88
+
89
+ <script>
90
+ document.querySelector('w-button[data-testid="positive-noaction"]').onclick = () => {
91
+ const snackbar = document.querySelector("w-snackbar");
92
+ snackbar.create("Snackbar message", {
93
+ variant: "positive",
94
+ });
95
+ };
96
+ </script>
97
+ ```
98
+
99
+ </elements-example>
100
+
101
+ ### Warning
102
+
103
+ <elements-example>
104
+
105
+ ```html
106
+ <w-button data-testid="warning-noaction">Warning variant</w-button>
107
+
108
+ <script>
109
+ document.querySelector('w-button[data-testid="warning-noaction"]').onclick = () => {
110
+ const snackbar = document.querySelector("w-snackbar");
111
+ snackbar.create("Snackbar message", {
112
+ variant: "warning",
113
+ });
114
+ };
115
+ </script>
116
+ ```
117
+
118
+ </elements-example>
119
+
120
+ ### Negative
121
+
122
+ <elements-example>
123
+
124
+ ```html
125
+ <w-button data-testid="negative-noaction">Negative variant</w-button>
126
+
127
+ <script>
128
+ document.querySelector('w-button[data-testid="negative-noaction"]').onclick = () => {
129
+ const snackbar = document.querySelector("w-snackbar");
130
+ snackbar.create("Snackbar message", {
131
+ variant: "negative",
132
+ });
133
+ };
134
+ </script>
135
+ ```
136
+
137
+ </elements-example>
138
+
139
+ ### Info
140
+
141
+ <elements-example>
142
+
143
+ ```html
144
+ <w-button data-testid="info-noaction">Info variant</w-button>
145
+
146
+ <script>
147
+ document.querySelector('w-button[data-testid="info-noaction"]').onclick = () => {
148
+ const snackbar = document.querySelector("w-snackbar");
149
+ snackbar.create("Snackbar message", {
150
+ variant: "info",
151
+ });
152
+ };
153
+ </script>
154
+ ```
155
+
156
+ </elements-example>
157
+
158
+ ### Neutral with custom icon
159
+
160
+ If you have cases not covered by the `create` API you can change the item returned by `create`.
161
+
162
+ For example, here is how you can add a custom icon to the neutral variant.
163
+
164
+ ```ts
165
+ const snackbar = document.querySelector<WarpSnackbar>('w-snackbar');
166
+
167
+ // the default neutral variant is without an icon
168
+ const snackbarItem = snackbar!.create('The message should be short');
169
+
170
+ const customIcon = document.createElement('w-icon');
171
+ customIcon.name = 'Rocket';
172
+ customIcon.slot = 'icon';
173
+ snackbarItem.prepend(customIcon);
174
+ ```
175
+
176
+ ### Create `<w-snackbar-item>` manually
177
+
178
+ Alternatively you can create a `w-snackbar-item` manually and call [prepend](https://developer.mozilla.org/en-US/docs/Web/API/Element/prepend) on `<w-snackbar>`. The snackbar item handles its entire lifecycle on its own.
179
+
180
+ Note that by not using `snackbar.create()` you have to create and wire up event handlers any close- and action button.
181
+
182
+ ```ts
183
+ const snackbar = document.querySelector("w-snackbar");
184
+ const item = document.createElement("w-snackbar-item");
185
+ item.variant = "info";
186
+ item.innerHTML = /* html */ `
187
+ <w-icon slot="icon" name="Rocket"></w-icon>
188
+ Warp speed engaged!
189
+ `;
190
+ snackbar.prepend(item);
191
+ ```