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