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

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 (609) hide show
  1. package/dist/.storybook/utilities.js +4 -4
  2. package/dist/api.js.map +2 -2
  3. package/dist/custom-elements.json +174 -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/breadcrumb-item/api.md +27 -0
  15. package/dist/docs/breadcrumb-item/breadcrumb-item.md +34 -0
  16. package/dist/docs/breadcrumbs/accessibility.md +8 -18
  17. package/dist/docs/breadcrumbs/breadcrumbs.md +57 -34
  18. package/dist/docs/breadcrumbs/examples.md +8 -8
  19. package/dist/docs/breadcrumbs/styling.md +33 -0
  20. package/dist/docs/breadcrumbs/usage.md +8 -8
  21. package/dist/docs/checkbox/api.md +2 -2
  22. package/dist/docs/checkbox/checkbox.md +176 -2
  23. package/dist/docs/checkbox/styling.md +173 -0
  24. package/dist/docs/checkbox-group/checkbox-group.md +43 -30
  25. package/dist/docs/checkbox-group/styling.md +31 -29
  26. package/dist/docs/combobox/api.md +12 -12
  27. package/dist/docs/combobox/combobox.md +12 -12
  28. package/dist/docs/datepicker/api.md +6 -6
  29. package/dist/docs/datepicker/datepicker.md +6 -6
  30. package/dist/docs/icon/api.md +3 -3
  31. package/dist/docs/icon/icon.md +3 -3
  32. package/dist/docs/index.md +2 -1
  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/snackbar/api.md +1 -1
  37. package/dist/docs/snackbar/snackbar.md +1 -1
  38. package/dist/docs/snackbar-item/api.md +2 -2
  39. package/dist/docs/snackbar-item/snackbar-item.md +2 -2
  40. package/dist/index.d.ts +109 -2
  41. package/dist/packages/affix/affix.d.ts +4 -4
  42. package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
  43. package/dist/packages/affix/affix.hydration.test.js +15 -15
  44. package/dist/packages/affix/affix.js +345 -315
  45. package/dist/packages/affix/affix.js.map +2 -2
  46. package/dist/packages/affix/affix.react.stories.d.ts +2 -2
  47. package/dist/packages/affix/affix.react.stories.js +3 -3
  48. package/dist/packages/affix/affix.react.test.js +5 -3
  49. package/dist/packages/affix/affix.stories.d.ts +3 -3
  50. package/dist/packages/affix/affix.stories.js +10 -10
  51. package/dist/packages/affix/affix.test.d.ts +1 -1
  52. package/dist/packages/affix/affix.test.js +10 -10
  53. package/dist/packages/affix/react.d.ts +2 -2
  54. package/dist/packages/affix/react.js +6 -6
  55. package/dist/packages/affix/styles.js +1 -1
  56. package/dist/packages/alert/alert.d.ts +3 -3
  57. package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
  58. package/dist/packages/alert/alert.hydration.test.js +21 -21
  59. package/dist/packages/alert/alert.js +344 -319
  60. package/dist/packages/alert/alert.js.map +2 -2
  61. package/dist/packages/alert/alert.react.stories.d.ts +2 -2
  62. package/dist/packages/alert/alert.react.stories.js +13 -13
  63. package/dist/packages/alert/alert.stories.d.ts +4 -4
  64. package/dist/packages/alert/alert.stories.js +29 -27
  65. package/dist/packages/alert/alert.test.d.ts +1 -1
  66. package/dist/packages/alert/alert.test.js +34 -21
  67. package/dist/packages/alert/react.d.ts +1 -1
  68. package/dist/packages/alert/react.js +4 -4
  69. package/dist/packages/alert/styles.js +1 -1
  70. package/dist/packages/attention/attention.d.ts +7 -7
  71. package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
  72. package/dist/packages/attention/attention.hydration.test.js +29 -29
  73. package/dist/packages/attention/attention.js +1725 -1683
  74. package/dist/packages/attention/attention.js.map +2 -2
  75. package/dist/packages/attention/attention.react.stories.d.ts +3 -3
  76. package/dist/packages/attention/attention.react.stories.js +13 -13
  77. package/dist/packages/attention/attention.react.test.js +11 -7
  78. package/dist/packages/attention/attention.stories.d.ts +4 -4
  79. package/dist/packages/attention/attention.stories.js +126 -117
  80. package/dist/packages/attention/attention.test.d.ts +1 -1
  81. package/dist/packages/attention/attention.test.js +18 -10
  82. package/dist/packages/attention/layout-styles.js +900 -900
  83. package/dist/packages/attention/react.d.ts +4 -4
  84. package/dist/packages/attention/react.js +13 -11
  85. package/dist/packages/attention/styles.js +1 -1
  86. package/dist/packages/badge/badge.d.ts +3 -3
  87. package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
  88. package/dist/packages/badge/badge.hydration.test.js +25 -25
  89. package/dist/packages/badge/badge.js +276 -276
  90. package/dist/packages/badge/badge.js.map +2 -2
  91. package/dist/packages/badge/badge.react.stories.d.ts +3 -3
  92. package/dist/packages/badge/badge.react.stories.js +17 -17
  93. package/dist/packages/badge/badge.stories.d.ts +3 -3
  94. package/dist/packages/badge/badge.stories.js +22 -20
  95. package/dist/packages/badge/badge.test.d.ts +1 -1
  96. package/dist/packages/badge/badge.test.js +13 -11
  97. package/dist/packages/badge/react.d.ts +1 -1
  98. package/dist/packages/badge/react.js +4 -4
  99. package/dist/packages/badge/styles.js +1 -1
  100. package/dist/packages/box/box.d.ts +1 -1
  101. package/dist/packages/box/box.hydration.test.d.ts +1 -1
  102. package/dist/packages/box/box.hydration.test.js +14 -14
  103. package/dist/packages/box/box.js +283 -283
  104. package/dist/packages/box/box.js.map +2 -2
  105. package/dist/packages/box/box.react.stories.d.ts +3 -3
  106. package/dist/packages/box/box.react.stories.js +8 -8
  107. package/dist/packages/box/box.stories.d.ts +3 -3
  108. package/dist/packages/box/box.stories.js +25 -19
  109. package/dist/packages/box/box.test.d.ts +1 -1
  110. package/dist/packages/box/box.test.js +6 -6
  111. package/dist/packages/box/react.d.ts +1 -1
  112. package/dist/packages/box/react.js +4 -4
  113. package/dist/packages/box/slot.test.d.ts +1 -1
  114. package/dist/packages/box/slot.test.js +6 -6
  115. package/dist/packages/box/styles.js +1 -1
  116. package/dist/packages/breadcrumb-item/breadcrumb-item.d.ts +29 -0
  117. package/dist/packages/breadcrumb-item/breadcrumb-item.js +2520 -0
  118. package/dist/packages/breadcrumb-item/breadcrumb-item.js.map +7 -0
  119. package/dist/packages/breadcrumb-item/react.d.ts +2 -0
  120. package/dist/packages/breadcrumb-item/react.js +11 -0
  121. package/dist/packages/breadcrumb-item/styles.d.ts +4 -0
  122. package/dist/packages/breadcrumb-item/styles.js +72 -0
  123. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +3 -1
  124. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
  125. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +55 -49
  126. package/dist/packages/breadcrumbs/breadcrumbs.js +285 -281
  127. package/dist/packages/breadcrumbs/breadcrumbs.js.map +3 -3
  128. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +3 -3
  129. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +17 -16
  130. package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +7 -8
  131. package/dist/packages/breadcrumbs/breadcrumbs.stories.js +30 -26
  132. package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
  133. package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
  134. package/dist/packages/breadcrumbs/react.d.ts +1 -1
  135. package/dist/packages/breadcrumbs/react.js +4 -4
  136. package/dist/packages/breadcrumbs/styles.js +1 -1
  137. package/dist/packages/button/button.d.ts +5 -5
  138. package/dist/packages/button/button.hydration.test.d.ts +1 -1
  139. package/dist/packages/button/button.hydration.test.js +19 -19
  140. package/dist/packages/button/button.js +741 -715
  141. package/dist/packages/button/button.js.map +2 -2
  142. package/dist/packages/button/button.react.stories.d.ts +3 -3
  143. package/dist/packages/button/button.react.stories.js +30 -30
  144. package/dist/packages/button/button.react.test.js +13 -13
  145. package/dist/packages/button/button.stories.d.ts +4 -4
  146. package/dist/packages/button/button.stories.js +276 -167
  147. package/dist/packages/button/button.test.d.ts +1 -1
  148. package/dist/packages/button/button.test.js +36 -34
  149. package/dist/packages/button/react.d.ts +2 -2
  150. package/dist/packages/button/react.js +7 -7
  151. package/dist/packages/button/styles.js +373 -347
  152. package/dist/packages/card/card.d.ts +1 -1
  153. package/dist/packages/card/card.hydration.test.d.ts +1 -1
  154. package/dist/packages/card/card.hydration.test.js +14 -14
  155. package/dist/packages/card/card.js +305 -290
  156. package/dist/packages/card/card.js.map +2 -2
  157. package/dist/packages/card/card.react.stories.d.ts +3 -3
  158. package/dist/packages/card/card.react.stories.js +11 -11
  159. package/dist/packages/card/card.stories.d.ts +3 -3
  160. package/dist/packages/card/card.stories.js +36 -24
  161. package/dist/packages/card/card.test.d.ts +1 -1
  162. package/dist/packages/card/card.test.js +6 -6
  163. package/dist/packages/card/react.d.ts +1 -1
  164. package/dist/packages/card/react.js +4 -4
  165. package/dist/packages/card/styles.js +1 -1
  166. package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
  167. package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
  168. package/dist/packages/checkbox/checkbox.d.ts +2 -2
  169. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
  170. package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
  171. package/dist/packages/checkbox/checkbox.js +475 -424
  172. package/dist/packages/checkbox/checkbox.js.map +2 -2
  173. package/dist/packages/checkbox/checkbox.react.stories.d.ts +2 -2
  174. package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
  175. package/dist/packages/checkbox/checkbox.stories.d.ts +4 -4
  176. package/dist/packages/checkbox/checkbox.stories.js +99 -91
  177. package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
  178. package/dist/packages/checkbox/checkbox.test.js +64 -64
  179. package/dist/packages/checkbox/react.d.ts +1 -1
  180. package/dist/packages/checkbox/react.js +6 -6
  181. package/dist/packages/checkbox/styles.js +183 -132
  182. package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
  183. package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
  184. package/dist/packages/checkbox-group/checkbox-group.d.ts +16 -2
  185. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
  186. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
  187. package/dist/packages/checkbox-group/checkbox-group.js +60 -55
  188. package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
  189. package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
  190. package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
  191. package/dist/packages/checkbox-group/checkbox-group.test.js +96 -90
  192. package/dist/packages/checkbox-group/react.d.ts +2 -2
  193. package/dist/packages/checkbox-group/react.js +6 -6
  194. package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
  195. package/dist/packages/combobox/combobox.a11y.test.js +72 -49
  196. package/dist/packages/combobox/combobox.d.ts +2 -2
  197. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
  198. package/dist/packages/combobox/combobox.hydration.test.js +45 -45
  199. package/dist/packages/combobox/combobox.js +332 -332
  200. package/dist/packages/combobox/combobox.js.map +3 -3
  201. package/dist/packages/combobox/combobox.react.stories.d.ts +3 -3
  202. package/dist/packages/combobox/combobox.react.stories.js +29 -29
  203. package/dist/packages/combobox/combobox.react.test.js +8 -8
  204. package/dist/packages/combobox/combobox.stories.d.ts +4 -4
  205. package/dist/packages/combobox/combobox.stories.js +100 -94
  206. package/dist/packages/combobox/combobox.test.d.ts +2 -2
  207. package/dist/packages/combobox/combobox.test.js +148 -133
  208. package/dist/packages/combobox/react.d.ts +2 -2
  209. package/dist/packages/combobox/react.js +14 -14
  210. package/dist/packages/combobox/styles.js +1 -1
  211. package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
  212. package/dist/packages/datepicker/DatePicker.test.js +46 -41
  213. package/dist/packages/datepicker/datepicker.d.ts +3 -3
  214. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
  215. package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
  216. package/dist/packages/datepicker/datepicker.js +665 -625
  217. package/dist/packages/datepicker/datepicker.js.map +3 -3
  218. package/dist/packages/datepicker/datepicker.react.stories.d.ts +3 -3
  219. package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
  220. package/dist/packages/datepicker/datepicker.react.test.js +6 -6
  221. package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
  222. package/dist/packages/datepicker/datepicker.stories.js +32 -32
  223. package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
  224. package/dist/packages/datepicker/datepicker.test.js +77 -79
  225. package/dist/packages/datepicker/react.d.ts +2 -2
  226. package/dist/packages/datepicker/react.js +16 -14
  227. package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
  228. package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
  229. package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
  230. package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
  231. package/dist/packages/datepicker/utils.d.ts +1 -1
  232. package/dist/packages/datepicker/utils.js +25 -19
  233. package/dist/packages/datepicker/utils.test.js +20 -20
  234. package/dist/packages/expandable/expandable.d.ts +4 -4
  235. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
  236. package/dist/packages/expandable/expandable.hydration.test.js +21 -21
  237. package/dist/packages/expandable/expandable.js +353 -326
  238. package/dist/packages/expandable/expandable.js.map +2 -2
  239. package/dist/packages/expandable/expandable.react.stories.d.ts +3 -3
  240. package/dist/packages/expandable/expandable.react.stories.js +7 -7
  241. package/dist/packages/expandable/expandable.react.test.js +15 -7
  242. package/dist/packages/expandable/expandable.stories.d.ts +5 -5
  243. package/dist/packages/expandable/expandable.stories.js +51 -45
  244. package/dist/packages/expandable/expandable.test.d.ts +1 -1
  245. package/dist/packages/expandable/expandable.test.js +19 -17
  246. package/dist/packages/expandable/react.d.ts +2 -2
  247. package/dist/packages/expandable/react.js +9 -9
  248. package/dist/packages/expandable/styles.js +1 -1
  249. package/dist/packages/global.js +2 -2
  250. package/dist/packages/i18n.d.ts +1 -1
  251. package/dist/packages/i18n.js +37 -29
  252. package/dist/packages/icon/icon.d.ts +3 -3
  253. package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
  254. package/dist/packages/icon/icon.hydration.test.js +25 -25
  255. package/dist/packages/icon/icon.js +30 -25
  256. package/dist/packages/icon/icon.js.map +2 -2
  257. package/dist/packages/icon/icon.react.stories.d.ts +1 -1
  258. package/dist/packages/icon/icon.react.stories.js +283 -284
  259. package/dist/packages/icon/icon.stories.d.ts +3 -3
  260. package/dist/packages/icon/icon.stories.js +299 -298
  261. package/dist/packages/icon/icon.test.d.ts +1 -1
  262. package/dist/packages/icon/icon.test.js +36 -28
  263. package/dist/packages/icon/react.d.ts +1 -1
  264. package/dist/packages/icon/react.js +4 -4
  265. package/dist/packages/icon/style.js +24 -25
  266. package/dist/packages/interaction-type-detection.js +9 -9
  267. package/dist/packages/link/link.d.ts +2 -2
  268. package/dist/packages/link/link.hydration.test.d.ts +1 -1
  269. package/dist/packages/link/link.hydration.test.js +27 -27
  270. package/dist/packages/link/link.js +709 -683
  271. package/dist/packages/link/link.js.map +2 -2
  272. package/dist/packages/link/link.react.stories.d.ts +3 -3
  273. package/dist/packages/link/link.react.stories.js +42 -42
  274. package/dist/packages/link/link.react.test.js +5 -3
  275. package/dist/packages/link/link.stories.d.ts +3 -3
  276. package/dist/packages/link/link.stories.js +51 -51
  277. package/dist/packages/link/link.test.d.ts +1 -1
  278. package/dist/packages/link/link.test.js +11 -7
  279. package/dist/packages/link/react.d.ts +2 -2
  280. package/dist/packages/link/react.js +6 -6
  281. package/dist/packages/link/styles.js +57 -57
  282. package/dist/packages/modal/index.d.ts +7 -7
  283. package/dist/packages/modal/index.js +7 -7
  284. package/dist/packages/modal/modal.d.ts +1 -1
  285. package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
  286. package/dist/packages/modal/modal.hydration.test.js +12 -12
  287. package/dist/packages/modal/modal.js +404 -404
  288. package/dist/packages/modal/modal.js.map +2 -2
  289. package/dist/packages/modal/modal.react.stories.d.ts +3 -3
  290. package/dist/packages/modal/modal.react.stories.js +7 -6
  291. package/dist/packages/modal/modal.react.test.js +5 -5
  292. package/dist/packages/modal/modal.stories.d.ts +6 -6
  293. package/dist/packages/modal/modal.stories.js +253 -238
  294. package/dist/packages/modal/react.d.ts +4 -4
  295. package/dist/packages/modal/react.js +13 -13
  296. package/dist/packages/modal/util.js +2 -2
  297. package/dist/packages/modal-footer/modal-footer.d.ts +1 -1
  298. package/dist/packages/modal-footer/modal-footer.js +291 -291
  299. package/dist/packages/modal-footer/modal-footer.js.map +2 -2
  300. package/dist/packages/modal-footer/react.d.ts +1 -1
  301. package/dist/packages/modal-footer/react.js +4 -4
  302. package/dist/packages/modal-header/modal-header.d.ts +2 -2
  303. package/dist/packages/modal-header/modal-header.js +437 -416
  304. package/dist/packages/modal-header/modal-header.js.map +2 -2
  305. package/dist/packages/modal-header/modal-header.react.test.js +5 -3
  306. package/dist/packages/modal-header/react.d.ts +2 -2
  307. package/dist/packages/modal-header/react.js +8 -8
  308. package/dist/packages/page-indicator/page-indicator.d.ts +1 -1
  309. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
  310. package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
  311. package/dist/packages/page-indicator/page-indicator.js +26 -26
  312. package/dist/packages/page-indicator/page-indicator.js.map +2 -2
  313. package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
  314. package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
  315. package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
  316. package/dist/packages/page-indicator/page-indicator.stories.d.ts +3 -3
  317. package/dist/packages/page-indicator/page-indicator.stories.js +56 -27
  318. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
  319. package/dist/packages/page-indicator/page-indicator.test.js +110 -70
  320. package/dist/packages/page-indicator/react.d.ts +2 -2
  321. package/dist/packages/page-indicator/react.js +7 -7
  322. package/dist/packages/page-indicator/style.js +21 -21
  323. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
  324. package/dist/packages/pagination/pagination.a11y.test.js +59 -25
  325. package/dist/packages/pagination/pagination.d.ts +3 -3
  326. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
  327. package/dist/packages/pagination/pagination.hydration.test.js +19 -19
  328. package/dist/packages/pagination/pagination.js +380 -349
  329. package/dist/packages/pagination/pagination.js.map +2 -2
  330. package/dist/packages/pagination/pagination.react.stories.d.ts +7 -7
  331. package/dist/packages/pagination/pagination.react.stories.js +8 -8
  332. package/dist/packages/pagination/pagination.react.test.js +6 -6
  333. package/dist/packages/pagination/pagination.stories.d.ts +3 -3
  334. package/dist/packages/pagination/pagination.stories.js +18 -18
  335. package/dist/packages/pagination/pagination.test.d.ts +1 -1
  336. package/dist/packages/pagination/pagination.test.js +146 -69
  337. package/dist/packages/pagination/react.d.ts +4 -4
  338. package/dist/packages/pagination/react.js +12 -10
  339. package/dist/packages/pagination/styles.js +1 -1
  340. package/dist/packages/pill/pill.d.ts +2 -2
  341. package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
  342. package/dist/packages/pill/pill.hydration.test.js +14 -14
  343. package/dist/packages/pill/pill.js +331 -308
  344. package/dist/packages/pill/pill.js.map +2 -2
  345. package/dist/packages/pill/pill.react.stories.d.ts +3 -3
  346. package/dist/packages/pill/pill.react.stories.js +3 -3
  347. package/dist/packages/pill/pill.react.test.js +8 -8
  348. package/dist/packages/pill/pill.stories.d.ts +3 -3
  349. package/dist/packages/pill/pill.stories.js +8 -8
  350. package/dist/packages/pill/pill.test.d.ts +1 -1
  351. package/dist/packages/pill/pill.test.js +17 -15
  352. package/dist/packages/pill/react.d.ts +2 -2
  353. package/dist/packages/pill/react.js +18 -14
  354. package/dist/packages/pill/styles.js +1 -1
  355. package/dist/packages/radio/base-element.d.ts +3 -3
  356. package/dist/packages/radio/base-element.js +3 -3
  357. package/dist/packages/radio/custom-error-validator.d.ts +1 -1
  358. package/dist/packages/radio/custom-error-validator.js +3 -3
  359. package/dist/packages/radio/form-associated-element.d.ts +8 -8
  360. package/dist/packages/radio/form-associated-element.js +27 -26
  361. package/dist/packages/radio/host-styles.js +9 -9
  362. package/dist/packages/radio/invalid.d.ts +1 -1
  363. package/dist/packages/radio/invalid.js +1 -1
  364. package/dist/packages/radio/radio-styles.js +199 -160
  365. package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
  366. package/dist/packages/radio/radio.a11y.test.js +60 -58
  367. package/dist/packages/radio/radio.d.ts +3 -3
  368. package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
  369. package/dist/packages/radio/radio.hydration.test.js +23 -14
  370. package/dist/packages/radio/radio.js +485 -446
  371. package/dist/packages/radio/radio.js.map +3 -3
  372. package/dist/packages/radio/radio.react.stories.d.ts +2 -2
  373. package/dist/packages/radio/radio.react.stories.js +3 -3
  374. package/dist/packages/radio/radio.stories.d.ts +4 -4
  375. package/dist/packages/radio/radio.stories.js +152 -136
  376. package/dist/packages/radio/radio.test.d.ts +1 -1
  377. package/dist/packages/radio/radio.test.js +74 -73
  378. package/dist/packages/radio/react.d.ts +1 -1
  379. package/dist/packages/radio/react.js +4 -4
  380. package/dist/packages/radio/required-validator.d.ts +1 -1
  381. package/dist/packages/radio/required-validator.js +12 -7
  382. package/dist/packages/radio/slot.d.ts +1 -1
  383. package/dist/packages/radio/slot.js +11 -8
  384. package/dist/packages/radio/watch.d.ts +1 -1
  385. package/dist/packages/radio/watch.js +3 -1
  386. package/dist/packages/radio-group/radio-group-styles.js +121 -88
  387. package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
  388. package/dist/packages/radio-group/radio-group.a11y.test.js +81 -79
  389. package/dist/packages/radio-group/radio-group.d.ts +14 -5
  390. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
  391. package/dist/packages/radio-group/radio-group.hydration.test.js +29 -18
  392. package/dist/packages/radio-group/radio-group.js +648 -560
  393. package/dist/packages/radio-group/radio-group.js.map +3 -3
  394. package/dist/packages/radio-group/radio-group.react.test.js +4 -4
  395. package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
  396. package/dist/packages/radio-group/radio-group.test.js +234 -229
  397. package/dist/packages/radio-group/react.d.ts +2 -2
  398. package/dist/packages/radio-group/react.js +10 -10
  399. package/dist/packages/select/react.d.ts +2 -2
  400. package/dist/packages/select/react.js +11 -11
  401. package/dist/packages/select/select.a11y.test.d.ts +1 -1
  402. package/dist/packages/select/select.a11y.test.js +98 -91
  403. package/dist/packages/select/select.d.ts +4 -4
  404. package/dist/packages/select/select.hydration.test.d.ts +1 -1
  405. package/dist/packages/select/select.hydration.test.js +16 -16
  406. package/dist/packages/select/select.js +348 -329
  407. package/dist/packages/select/select.js.map +2 -2
  408. package/dist/packages/select/select.react.stories.d.ts +3 -3
  409. package/dist/packages/select/select.react.stories.js +7 -7
  410. package/dist/packages/select/select.react.test.js +6 -6
  411. package/dist/packages/select/select.stories.d.ts +3 -3
  412. package/dist/packages/select/select.stories.js +51 -48
  413. package/dist/packages/select/select.test.d.ts +1 -1
  414. package/dist/packages/select/select.test.js +175 -178
  415. package/dist/packages/select/styles.js +1 -1
  416. package/dist/packages/slider/Slider.d.ts +1 -1
  417. package/dist/packages/slider/Slider.js +4 -4
  418. package/dist/packages/slider/index.d.ts +2 -2
  419. package/dist/packages/slider/index.js +2 -2
  420. package/dist/packages/slider/react.d.ts +3 -3
  421. package/dist/packages/slider/react.js +9 -9
  422. package/dist/packages/slider/slider.d.ts +3 -3
  423. package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
  424. package/dist/packages/slider/slider.hydration.test.js +39 -20
  425. package/dist/packages/slider/slider.js +480 -462
  426. package/dist/packages/slider/slider.js.map +2 -2
  427. package/dist/packages/slider/slider.react.stories.d.ts +3 -3
  428. package/dist/packages/slider/slider.react.stories.js +31 -34
  429. package/dist/packages/slider/slider.react.test.js +6 -6
  430. package/dist/packages/slider/slider.stories.d.ts +7 -7
  431. package/dist/packages/slider/slider.stories.js +332 -340
  432. package/dist/packages/slider/slider.test.d.ts +5 -5
  433. package/dist/packages/slider/slider.test.js +367 -334
  434. package/dist/packages/slider/styles/w-slider.styles.js +166 -148
  435. package/dist/packages/slider/styles.js +1 -1
  436. package/dist/packages/slider-thumb/SliderThumb.d.ts +1 -1
  437. package/dist/packages/slider-thumb/SliderThumb.js +4 -4
  438. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
  439. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
  440. package/dist/packages/slider-thumb/react.d.ts +3 -3
  441. package/dist/packages/slider-thumb/react.js +11 -9
  442. package/dist/packages/slider-thumb/slider-thumb.d.ts +3 -3
  443. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
  444. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
  445. package/dist/packages/slider-thumb/slider-thumb.js +545 -548
  446. package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
  447. package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
  448. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
  449. package/dist/packages/slider-thumb/styles.js +1 -1
  450. package/dist/packages/snackbar/react.d.ts +1 -1
  451. package/dist/packages/snackbar/react.js +4 -4
  452. package/dist/packages/snackbar/snackbar.d.ts +3 -3
  453. package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -1
  454. package/dist/packages/snackbar/snackbar.hydration.test.js +6 -6
  455. package/dist/packages/snackbar/snackbar.js +487 -468
  456. package/dist/packages/snackbar/snackbar.js.map +2 -2
  457. package/dist/packages/snackbar/snackbar.react.stories.js +3 -3
  458. package/dist/packages/snackbar/snackbar.stories.d.ts +11 -11
  459. package/dist/packages/snackbar/snackbar.stories.js +253 -181
  460. package/dist/packages/snackbar/snackbar.test.d.ts +4 -4
  461. package/dist/packages/snackbar/snackbar.test.js +11 -11
  462. package/dist/packages/snackbar/styles.js +29 -29
  463. package/dist/packages/snackbar-item/react.d.ts +2 -2
  464. package/dist/packages/snackbar-item/react.js +6 -5
  465. package/dist/packages/snackbar-item/snackbar-item.d.ts +4 -4
  466. package/dist/packages/snackbar-item/snackbar-item.js +454 -435
  467. package/dist/packages/snackbar-item/snackbar-item.js.map +2 -2
  468. package/dist/packages/snackbar-item/snackbar-item.react.test.js +4 -4
  469. package/dist/packages/snackbar-item/styles.js +130 -108
  470. package/dist/packages/step/react.d.ts +1 -1
  471. package/dist/packages/step/react.js +4 -4
  472. package/dist/packages/step/step.d.ts +2 -2
  473. package/dist/packages/step/step.hydration.test.d.ts +1 -1
  474. package/dist/packages/step/step.hydration.test.js +10 -10
  475. package/dist/packages/step/step.js +330 -308
  476. package/dist/packages/step/step.js.map +2 -2
  477. package/dist/packages/step-indicator/index.d.ts +2 -2
  478. package/dist/packages/step-indicator/index.js +2 -2
  479. package/dist/packages/step-indicator/react.d.ts +2 -2
  480. package/dist/packages/step-indicator/react.js +5 -5
  481. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
  482. package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
  483. package/dist/packages/step-indicator/step-indicator.d.ts +1 -1
  484. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
  485. package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
  486. package/dist/packages/step-indicator/step-indicator.js +280 -276
  487. package/dist/packages/step-indicator/step-indicator.js.map +2 -2
  488. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
  489. package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
  490. package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
  491. package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
  492. package/dist/packages/step-indicator/styles.js +1 -1
  493. package/dist/packages/styles.js +274 -274
  494. package/dist/packages/switch/react.d.ts +1 -1
  495. package/dist/packages/switch/react.js +6 -6
  496. package/dist/packages/switch/styles.js +1 -1
  497. package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
  498. package/dist/packages/switch/switch.a11y.test.js +46 -38
  499. package/dist/packages/switch/switch.d.ts +1 -1
  500. package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
  501. package/dist/packages/switch/switch.hydration.test.js +23 -23
  502. package/dist/packages/switch/switch.js +299 -299
  503. package/dist/packages/switch/switch.js.map +2 -2
  504. package/dist/packages/switch/switch.react.stories.d.ts +2 -2
  505. package/dist/packages/switch/switch.react.stories.js +2 -2
  506. package/dist/packages/switch/switch.stories.d.ts +2 -2
  507. package/dist/packages/switch/switch.stories.js +42 -37
  508. package/dist/packages/switch/switch.test.d.ts +1 -1
  509. package/dist/packages/switch/switch.test.js +30 -35
  510. package/dist/packages/tab/react.d.ts +6 -4
  511. package/dist/packages/tab/react.js +11 -10
  512. package/dist/packages/tab/styles.d.ts +1 -0
  513. package/dist/packages/tab/styles.js +2 -0
  514. package/dist/packages/tab/tab.d.ts +5 -5
  515. package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
  516. package/dist/packages/tab/tab.hydration.test.js +18 -12
  517. package/dist/packages/tab/tab.js +305 -304
  518. package/dist/packages/tab/tab.js.map +3 -3
  519. package/dist/packages/tab/tab.react.test.js +5 -3
  520. package/dist/packages/tab-panel/react.d.ts +3 -2
  521. package/dist/packages/tab-panel/react.js +11 -5
  522. package/dist/packages/tab-panel/tab-panel.d.ts +3 -3
  523. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
  524. package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
  525. package/dist/packages/tab-panel/tab-panel.js +289 -287
  526. package/dist/packages/tab-panel/tab-panel.js.map +2 -2
  527. package/dist/packages/tabs/index.d.ts +4 -4
  528. package/dist/packages/tabs/index.js +3 -3
  529. package/dist/packages/tabs/react.d.ts +27 -8
  530. package/dist/packages/tabs/react.js +30 -9
  531. package/dist/packages/tabs/styles.js +1 -1
  532. package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
  533. package/dist/packages/tabs/tabs.a11y.test.js +188 -169
  534. package/dist/packages/tabs/tabs.d.ts +3 -3
  535. package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
  536. package/dist/packages/tabs/tabs.hydration.test.js +22 -8
  537. package/dist/packages/tabs/tabs.js +289 -282
  538. package/dist/packages/tabs/tabs.js.map +2 -2
  539. package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
  540. package/dist/packages/tabs/tabs.react.stories.js +28 -28
  541. package/dist/packages/tabs/tabs.stories.d.ts +4 -4
  542. package/dist/packages/tabs/tabs.stories.js +101 -95
  543. package/dist/packages/tabs/tabs.test.d.ts +3 -3
  544. package/dist/packages/tabs/tabs.test.js +136 -122
  545. package/dist/packages/textarea/react.d.ts +2 -2
  546. package/dist/packages/textarea/react.js +17 -17
  547. package/dist/packages/textarea/styles.js +1 -1
  548. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
  549. package/dist/packages/textarea/textarea.a11y.test.js +89 -57
  550. package/dist/packages/textarea/textarea.d.ts +1 -1
  551. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
  552. package/dist/packages/textarea/textarea.hydration.test.js +19 -19
  553. package/dist/packages/textarea/textarea.js +300 -298
  554. package/dist/packages/textarea/textarea.js.map +2 -2
  555. package/dist/packages/textarea/textarea.react.stories.d.ts +3 -3
  556. package/dist/packages/textarea/textarea.react.stories.js +13 -13
  557. package/dist/packages/textarea/textarea.react.test.js +7 -7
  558. package/dist/packages/textarea/textarea.stories.d.ts +3 -3
  559. package/dist/packages/textarea/textarea.stories.js +44 -42
  560. package/dist/packages/textarea/textarea.test.d.ts +1 -1
  561. package/dist/packages/textarea/textarea.test.js +124 -88
  562. package/dist/packages/textfield/react.d.ts +2 -2
  563. package/dist/packages/textfield/react.js +17 -17
  564. package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
  565. package/dist/packages/textfield/styles.js +1 -1
  566. package/dist/packages/textfield/textfield.d.ts +3 -3
  567. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
  568. package/dist/packages/textfield/textfield.hydration.test.js +19 -19
  569. package/dist/packages/textfield/textfield.js +376 -368
  570. package/dist/packages/textfield/textfield.js.map +3 -3
  571. package/dist/packages/textfield/textfield.react.stories.d.ts +3 -3
  572. package/dist/packages/textfield/textfield.react.stories.js +31 -31
  573. package/dist/packages/textfield/textfield.react.test.js +7 -7
  574. package/dist/packages/textfield/textfield.stories.d.ts +4 -4
  575. package/dist/packages/textfield/textfield.stories.js +107 -89
  576. package/dist/packages/textfield/textfield.test.d.ts +2 -2
  577. package/dist/packages/textfield/textfield.test.js +103 -71
  578. package/dist/packages/toast/api.d.ts +1 -1
  579. package/dist/packages/toast/api.js +3 -3
  580. package/dist/packages/toast/index.d.ts +5 -5
  581. package/dist/packages/toast/index.js +5 -5
  582. package/dist/packages/toast/styles.js +1 -1
  583. package/dist/packages/toast/toast.d.ts +4 -4
  584. package/dist/packages/toast/toast.js +346 -317
  585. package/dist/packages/toast/toast.js.map +2 -2
  586. package/dist/packages/toast/toast.stories.d.ts +4 -4
  587. package/dist/packages/toast/toast.stories.js +37 -16
  588. package/dist/packages/toast/toast.test.d.ts +1 -1
  589. package/dist/packages/toast/toast.test.js +48 -31
  590. package/dist/packages/toast/types.d.ts +1 -1
  591. package/dist/packages/toast-container/styles.js +1 -1
  592. package/dist/packages/toast-container/toast-container.d.ts +2 -2
  593. package/dist/packages/toast-container/toast-container.js +292 -291
  594. package/dist/packages/toast-container/toast-container.js.map +3 -3
  595. package/dist/packages/utils/element-collapse.js +38 -28
  596. package/dist/packages/utils/expand-transition.d.ts +1 -1
  597. package/dist/packages/utils/expand-transition.js +12 -10
  598. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  599. package/dist/packages/utils/unstyled-heading.js +4 -4
  600. package/dist/packages/utils/window-exists.js +1 -1
  601. package/dist/packages/utils.js +2 -2
  602. package/dist/setup-tests.d.ts +3 -3
  603. package/dist/setup-tests.js +16 -13
  604. package/dist/tests/react-hydration.js +29 -30
  605. package/dist/tests/react-ssr-attributes.d.ts +1 -1
  606. package/dist/tests/react-ssr-attributes.js +4 -4
  607. package/dist/web-types.json +61 -22
  608. package/eik/index.js +12 -12
  609. package/package.json +18 -16
@@ -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
 
@@ -12,7 +12,7 @@ See the `create` function on `w-snackbar` for a convenience API which helps you
12
12
 
13
13
  | Name | Type | Default | Summary |
14
14
  |-|-|-|-|
15
- | action-placement | [`SnackbarActionPlacement`](#snackbaractionplacement) | `'inline'` | The placement of the action and close buttons. |
15
+ | action-placement | [`SnackbarActionPlacement`](#snackbaractionplacement) | `"inline"` | The placement of the action and close buttons. |
16
16
  | close (JS only) | `close() => void` | `-` | Remove the snackbar item from the document. |
17
17
  | duration | `number` | `-` | How long the message should stay in the document before removing itself. |
18
18
 
@@ -23,7 +23,7 @@ See the `create` function on `w-snackbar` for a convenience API which helps you
23
23
  The placement of the action and close buttons.
24
24
 
25
25
  - Type: [`SnackbarActionPlacement`](#snackbaractionplacement)
26
- - Default: `'inline'`
26
+ - Default: `"inline"`
27
27
 
28
28
  ##### close (JS only)
29
29
 
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ import type { WarpAttention } from "./packages/attention/attention.ts";
8
8
  import type { WarpBadge } from "./packages/badge/badge.ts";
9
9
  import type { WarpBox } from "./packages/box/box.ts";
10
10
  import type { WarpBreadcrumbs } from "./packages/breadcrumbs/breadcrumbs.ts";
11
+ import type { WarpBreadcrumbItem } from "./packages/breadcrumb-item/breadcrumb-item.ts";
11
12
  import type { WarpCard } from "./packages/card/card.ts";
12
13
  import type { WarpCheckbox, WCheckbox } from "./packages/checkbox/checkbox.ts";
13
14
  import type {
@@ -856,6 +857,35 @@ Defaults to the localized "You are here" label. Set `aria-label` when the defaul
856
857
  textContent?: string | number;
857
858
  };
858
859
 
860
+ export type WarpBreadcrumbItemProps = {
861
+ /** Marks this item as the current page.
862
+ Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator. */
863
+ "current-page"?: WarpBreadcrumbItem["currentPage"];
864
+ /** Marks this item as the current page.
865
+ Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator. */
866
+ currentPage?: WarpBreadcrumbItem["currentPage"];
867
+ /** URL for linked breadcrumb items.
868
+ When omitted, the item renders as non-focusable text. */
869
+ href?: WarpBreadcrumbItem["href"];
870
+ };
871
+
872
+ export type WarpBreadcrumbItemSolidJsProps = {
873
+ /** Marks this item as the current page.
874
+ Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator. */
875
+ "bool:current-page"?: WarpBreadcrumbItem["currentPage"];
876
+ /** Marks this item as the current page.
877
+ Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator. */
878
+ "prop:currentPage"?: WarpBreadcrumbItem["currentPage"];
879
+ /** URL for linked breadcrumb items.
880
+ When omitted, the item renders as non-focusable text. */
881
+ "prop:href"?: WarpBreadcrumbItem["href"];
882
+
883
+ /** Set the innerHTML of the element */
884
+ innerHTML?: string;
885
+ /** Set the textContent of the element */
886
+ textContent?: string | number;
887
+ };
888
+
859
889
  export type WarpCardProps = {
860
890
  /** Whether the card is visually selected.
861
891
 
@@ -2588,6 +2618,31 @@ export type CustomElements = {
2588
2618
  WarpBreadcrumbsProps & BaseProps<WarpBreadcrumbs> & BaseEvents
2589
2619
  >;
2590
2620
 
2621
+ /**
2622
+ * Represents one item in a `w-breadcrumbs` trail.
2623
+ * Renders the slotted label as a link when `href` is set, or as text when it is not, and adds a separator after non-current items.
2624
+ *
2625
+ * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/navigation-breadcrumbs--docs)
2626
+ *
2627
+ * ## Attributes & Properties
2628
+ *
2629
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2630
+ *
2631
+ * - `current-page`/`currentPage`: Marks this item as the current page.
2632
+ * Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator.
2633
+ * - `href`: URL for linked breadcrumb items.
2634
+ * When omitted, the item renders as non-focusable text.
2635
+ *
2636
+ * ## Slots
2637
+ *
2638
+ * Areas where markup can be added to the component.
2639
+ *
2640
+ * - `(default)`: The breadcrumb label content.
2641
+ */
2642
+ "w-breadcrumb-item": Partial<
2643
+ WarpBreadcrumbItemProps & BaseProps<WarpBreadcrumbItem> & BaseEvents
2644
+ >;
2645
+
2591
2646
  /**
2592
2647
  * Card is a layout component used for separating content areas on a page.
2593
2648
  *
@@ -2671,7 +2726,18 @@ export type CustomElements = {
2671
2726
  >;
2672
2727
 
2673
2728
  /**
2729
+ * Checkboxes allow users to select multiple options from a list of choices.
2730
+ *
2731
+ * Use with `w-checkbox`.
2674
2732
  *
2733
+ * ## Architecture Note
2734
+ * This component uses a <div> wrapper instead of the more semantic <fieldset> element.
2735
+ * Note that w-radio-group uses <fieldset>, which provides better accessibility and follows
2736
+ * HTML best practices. This inconsistency exists for historical reasons and may be addressed
2737
+ * in a future major version to align both on the more semantic approach.
2738
+ *
2739
+ * TODO: Align w-checkbox-group to use <fieldset> in a future major version after assessing
2740
+ * backwards compatibility implications (CSS selectors, etc.).
2675
2741
  *
2676
2742
  * ## Attributes & Properties
2677
2743
  *
@@ -3038,7 +3104,7 @@ export type CustomElements = {
3038
3104
  * Areas where markup can be added to the component.
3039
3105
  *
3040
3106
  * - `label`: Alternative to the `label` attribute should you need custom HTML.
3041
- * - `help-text`: Alternative to the `help-text` attribute should you need custom HTML.
3107
+ * - `help-text`: Alternative to the `help-text` attribute should you need custom HTML. ## Architecture Note This component uses semantic <fieldset> element for grouping radio controls, which provides better accessibility and follows HTML best practices. Note that w-checkbox-group currently uses <div> instead - this inconsistency exists for historical reasons and may be addressed in a future major version to align both on the more semantic approach. TODO: Align w-checkbox-group to also use <fieldset> in a future major version after assessing backwards compatibility implications (CSS selectors, etc.).
3042
3108
  */
3043
3109
  "w-radio-group": Partial<
3044
3110
  WarpRadioGroupProps & BaseProps<WarpRadioGroup> & BaseEvents
@@ -3446,6 +3512,7 @@ type CustomElementInstances = {
3446
3512
  "w-badge": WarpBadge;
3447
3513
  "w-box": WarpBox;
3448
3514
  "w-breadcrumbs": WarpBreadcrumbs;
3515
+ "w-breadcrumb-item": WarpBreadcrumbItem;
3449
3516
  "w-card": WarpCard;
3450
3517
  "w-checkbox": WarpCheckbox;
3451
3518
  "w-checkbox-group": WarpCheckboxGroup;
@@ -3485,6 +3552,7 @@ type CustomElementComponentProps = {
3485
3552
  "w-badge": WarpBadgeProps;
3486
3553
  "w-box": WarpBoxProps;
3487
3554
  "w-breadcrumbs": WarpBreadcrumbsProps;
3555
+ "w-breadcrumb-item": WarpBreadcrumbItemProps;
3488
3556
  "w-card": WarpCardProps;
3489
3557
  "w-checkbox": WarpCheckboxProps;
3490
3558
  "w-checkbox-group": WarpCheckboxGroupProps;
@@ -3852,6 +3920,34 @@ export type CustomElementsSolidJs = {
3852
3920
  BaseEvents
3853
3921
  >;
3854
3922
 
3923
+ /**
3924
+ * Represents one item in a `w-breadcrumbs` trail.
3925
+ * Renders the slotted label as a link when `href` is set, or as text when it is not, and adds a separator after non-current items.
3926
+ *
3927
+ * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/navigation-breadcrumbs--docs)
3928
+ *
3929
+ * ## Attributes & Properties
3930
+ *
3931
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3932
+ *
3933
+ * - `current-page`/`currentPage`: Marks this item as the current page.
3934
+ * Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator.
3935
+ * - `href`: URL for linked breadcrumb items.
3936
+ * When omitted, the item renders as non-focusable text.
3937
+ *
3938
+ * ## Slots
3939
+ *
3940
+ * Areas where markup can be added to the component.
3941
+ *
3942
+ * - `(default)`: The breadcrumb label content.
3943
+ */
3944
+ "w-breadcrumb-item": Partial<
3945
+ WarpBreadcrumbItemProps &
3946
+ WarpBreadcrumbItemSolidJsProps &
3947
+ BaseProps<WarpBreadcrumbItem> &
3948
+ BaseEvents
3949
+ >;
3950
+
3855
3951
  /**
3856
3952
  * Card is a layout component used for separating content areas on a page.
3857
3953
  *
@@ -3940,7 +4036,18 @@ export type CustomElementsSolidJs = {
3940
4036
  >;
3941
4037
 
3942
4038
  /**
4039
+ * Checkboxes allow users to select multiple options from a list of choices.
4040
+ *
4041
+ * Use with `w-checkbox`.
4042
+ *
4043
+ * ## Architecture Note
4044
+ * This component uses a <div> wrapper instead of the more semantic <fieldset> element.
4045
+ * Note that w-radio-group uses <fieldset>, which provides better accessibility and follows
4046
+ * HTML best practices. This inconsistency exists for historical reasons and may be addressed
4047
+ * in a future major version to align both on the more semantic approach.
3943
4048
  *
4049
+ * TODO: Align w-checkbox-group to use <fieldset> in a future major version after assessing
4050
+ * backwards compatibility implications (CSS selectors, etc.).
3944
4051
  *
3945
4052
  * ## Attributes & Properties
3946
4053
  *
@@ -4337,7 +4444,7 @@ export type CustomElementsSolidJs = {
4337
4444
  * Areas where markup can be added to the component.
4338
4445
  *
4339
4446
  * - `label`: Alternative to the `label` attribute should you need custom HTML.
4340
- * - `help-text`: Alternative to the `help-text` attribute should you need custom HTML.
4447
+ * - `help-text`: Alternative to the `help-text` attribute should you need custom HTML. ## Architecture Note This component uses semantic <fieldset> element for grouping radio controls, which provides better accessibility and follows HTML best practices. Note that w-checkbox-group currently uses <div> instead - this inconsistency exists for historical reasons and may be addressed in a future major version to align both on the more semantic approach. TODO: Align w-checkbox-group to also use <fieldset> in a future major version after assessing backwards compatibility implications (CSS selectors, etc.).
4341
4448
  */
4342
4449
  "w-radio-group": Partial<
4343
4450
  WarpRadioGroupProps &
@@ -1,5 +1,5 @@
1
- import { LitElement } from 'lit';
2
- import '../icon/icon.js';
1
+ import { LitElement } from "lit";
2
+ import "../icon/icon.js";
3
3
  declare const WarpAffix_base: import("@open-wc/form-control").Constructor<import("@open-wc/form-control").FormControlInterface> & typeof LitElement;
4
4
  /**
5
5
  * This component is usually used in other components like form elements to show a prefix or suffix. See for example `w-textfield`.
@@ -19,14 +19,14 @@ declare class WarpAffix extends WarpAffix_base {
19
19
  *
20
20
  * @summary Renders a clear icon button.
21
21
  * @description Shows a clickable close icon meant for reset/clear actions, typically in a suffix slot.
22
- */
22
+ */
23
23
  clear: boolean;
24
24
  /**
25
25
  * Add this property to render a clickable Warp search icon.
26
26
  *
27
27
  * @summary Renders a search icon button.
28
28
  * @description Shows a clickable search icon, typically in a prefix slot for search fields.
29
- */
29
+ */
30
30
  search: boolean;
31
31
  /**
32
32
  * @summary Text label shown as prefix/suffix content.
@@ -1 +1 @@
1
- import './affix.js';
1
+ import "./affix.js";
@@ -1,32 +1,32 @@
1
- import { afterEach, beforeEach, describe, expect, test } from 'vitest';
2
- import { setupHydrationWarningCapture, testHydration } from '../../tests/react-hydration';
3
- import './affix.js';
4
- describe('w-affix React SSR hydration', () => {
1
+ import { afterEach, beforeEach, describe, expect, test } from "vitest";
2
+ import { setupHydrationWarningCapture, testHydration, } from "../../tests/react-hydration";
3
+ import "./affix.js";
4
+ describe("w-affix React SSR hydration", () => {
5
5
  beforeEach(() => setupHydrationWarningCapture());
6
6
  afterEach(() => {
7
7
  window.__HYDRATION_WARNINGS__ = [];
8
8
  });
9
- test('default (no attributes) hydrates without warnings', async () => {
10
- const warnings = await testHydration('w-affix', {});
9
+ test("default (no attributes) hydrates without warnings", async () => {
10
+ const warnings = await testHydration("w-affix", {});
11
11
  expect(warnings).toEqual([]);
12
12
  });
13
- test('with label hydrates without warnings', async () => {
14
- const warnings = await testHydration('w-affix', {
15
- label: 'kr',
13
+ test("with label hydrates without warnings", async () => {
14
+ const warnings = await testHydration("w-affix", {
15
+ label: "kr",
16
16
  });
17
17
  expect(warnings).toEqual([]);
18
18
  });
19
- test('with search hydrates without warnings', async () => {
20
- const warnings = await testHydration('w-affix', {
19
+ test("with search hydrates without warnings", async () => {
20
+ const warnings = await testHydration("w-affix", {
21
21
  search: true,
22
- 'aria-label': 'Search',
22
+ "aria-label": "Search",
23
23
  });
24
24
  expect(warnings).toEqual([]);
25
25
  });
26
- test('with clear hydrates without warnings', async () => {
27
- const warnings = await testHydration('w-affix', {
26
+ test("with clear hydrates without warnings", async () => {
27
+ const warnings = await testHydration("w-affix", {
28
28
  clear: true,
29
- 'aria-label': 'Clear',
29
+ "aria-label": "Clear",
30
30
  });
31
31
  expect(warnings).toEqual([]);
32
32
  });