@warp-ds/elements 2.10.0-next.14 → 2.10.0-next.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (632) hide show
  1. package/dist/.storybook/utilities.js +4 -4
  2. package/dist/api.js.map +2 -2
  3. package/dist/custom-elements.json +437 -53
  4. package/dist/docs/affix/affix.md +2 -2
  5. package/dist/docs/affix/api.md +2 -2
  6. package/dist/docs/alert/alert.md +4 -4
  7. package/dist/docs/alert/api.md +4 -4
  8. package/dist/docs/attention/api.md +50 -2
  9. package/dist/docs/attention/attention.md +50 -2
  10. package/dist/docs/badge/api.md +50 -4
  11. package/dist/docs/badge/badge.md +50 -4
  12. package/dist/docs/box/api.md +2 -2
  13. package/dist/docs/box/box.md +2 -2
  14. package/dist/docs/button/api.md +8 -0
  15. package/dist/docs/button/button.md +8 -0
  16. package/dist/docs/card/api.md +8 -0
  17. package/dist/docs/card/card.md +8 -0
  18. package/dist/docs/checkbox/api.md +50 -2
  19. package/dist/docs/checkbox/checkbox.md +224 -2
  20. package/dist/docs/checkbox/styling.md +173 -0
  21. package/dist/docs/checkbox-group/api.md +24 -0
  22. package/dist/docs/checkbox-group/checkbox-group.md +67 -30
  23. package/dist/docs/checkbox-group/styling.md +31 -29
  24. package/dist/docs/combobox/api.md +20 -12
  25. package/dist/docs/combobox/combobox.md +20 -12
  26. package/dist/docs/datepicker/api.md +14 -6
  27. package/dist/docs/datepicker/datepicker.md +14 -6
  28. package/dist/docs/icon/api.md +3 -3
  29. package/dist/docs/icon/icon.md +3 -3
  30. package/dist/docs/index.md +3 -1
  31. package/dist/docs/modal/api.md +16 -0
  32. package/dist/docs/modal/modal.md +16 -0
  33. package/dist/docs/radio-group/api.md +4 -4
  34. package/dist/docs/radio-group/radio-group.md +183 -68
  35. package/dist/docs/radio-group/styling.md +179 -64
  36. package/dist/docs/slider-thumb/api.md +16 -0
  37. package/dist/docs/slider-thumb/slider-thumb.md +16 -0
  38. package/dist/docs/snackbar/accessibility.md +20 -0
  39. package/dist/docs/snackbar/api.md +30 -0
  40. package/dist/docs/snackbar/examples.md +191 -0
  41. package/dist/docs/snackbar/snackbar.md +385 -0
  42. package/dist/docs/snackbar/styling.md +72 -0
  43. package/dist/docs/snackbar/usage.md +60 -0
  44. package/dist/docs/snackbar-item/api.md +41 -0
  45. package/dist/docs/snackbar-item/snackbar-item.md +49 -0
  46. package/dist/docs/step/api.md +16 -0
  47. package/dist/docs/step/step.md +16 -0
  48. package/dist/docs/switch/api.md +8 -0
  49. package/dist/docs/switch/switch.md +8 -0
  50. package/dist/docs/textarea/api.md +40 -0
  51. package/dist/docs/textarea/textarea.md +40 -0
  52. package/dist/docs/textfield/api.md +32 -0
  53. package/dist/docs/textfield/textfield.md +32 -0
  54. package/dist/index.d.ts +316 -3
  55. package/dist/packages/affix/affix.d.ts +4 -4
  56. package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
  57. package/dist/packages/affix/affix.hydration.test.js +15 -15
  58. package/dist/packages/affix/affix.js +346 -316
  59. package/dist/packages/affix/affix.js.map +2 -2
  60. package/dist/packages/affix/affix.react.stories.d.ts +2 -2
  61. package/dist/packages/affix/affix.react.stories.js +3 -3
  62. package/dist/packages/affix/affix.react.test.js +5 -3
  63. package/dist/packages/affix/affix.stories.d.ts +3 -3
  64. package/dist/packages/affix/affix.stories.js +10 -10
  65. package/dist/packages/affix/affix.test.d.ts +1 -1
  66. package/dist/packages/affix/affix.test.js +10 -10
  67. package/dist/packages/affix/react.d.ts +2 -2
  68. package/dist/packages/affix/react.js +6 -6
  69. package/dist/packages/affix/styles.js +1 -1
  70. package/dist/packages/alert/alert.d.ts +3 -3
  71. package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
  72. package/dist/packages/alert/alert.hydration.test.js +21 -21
  73. package/dist/packages/alert/alert.js +345 -320
  74. package/dist/packages/alert/alert.js.map +2 -2
  75. package/dist/packages/alert/alert.react.stories.d.ts +2 -2
  76. package/dist/packages/alert/alert.react.stories.js +13 -13
  77. package/dist/packages/alert/alert.stories.d.ts +4 -4
  78. package/dist/packages/alert/alert.stories.js +29 -27
  79. package/dist/packages/alert/alert.test.d.ts +1 -1
  80. package/dist/packages/alert/alert.test.js +34 -21
  81. package/dist/packages/alert/react.d.ts +1 -1
  82. package/dist/packages/alert/react.js +4 -4
  83. package/dist/packages/alert/styles.js +1 -1
  84. package/dist/packages/attention/attention.d.ts +11 -6
  85. package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
  86. package/dist/packages/attention/attention.hydration.test.js +29 -29
  87. package/dist/packages/attention/attention.js +1737 -1695
  88. package/dist/packages/attention/attention.js.map +2 -2
  89. package/dist/packages/attention/attention.react.stories.d.ts +3 -3
  90. package/dist/packages/attention/attention.react.stories.js +13 -13
  91. package/dist/packages/attention/attention.react.test.js +11 -7
  92. package/dist/packages/attention/attention.stories.d.ts +4 -4
  93. package/dist/packages/attention/attention.stories.js +126 -117
  94. package/dist/packages/attention/attention.test.d.ts +1 -1
  95. package/dist/packages/attention/attention.test.js +18 -10
  96. package/dist/packages/attention/layout-styles.js +900 -900
  97. package/dist/packages/attention/react.d.ts +4 -4
  98. package/dist/packages/attention/react.js +13 -11
  99. package/dist/packages/attention/styles.js +1 -1
  100. package/dist/packages/badge/badge.d.ts +3 -3
  101. package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
  102. package/dist/packages/badge/badge.hydration.test.js +25 -25
  103. package/dist/packages/badge/badge.js +276 -276
  104. package/dist/packages/badge/badge.js.map +2 -2
  105. package/dist/packages/badge/badge.react.stories.d.ts +3 -3
  106. package/dist/packages/badge/badge.react.stories.js +17 -17
  107. package/dist/packages/badge/badge.stories.d.ts +3 -3
  108. package/dist/packages/badge/badge.stories.js +22 -20
  109. package/dist/packages/badge/badge.test.d.ts +1 -1
  110. package/dist/packages/badge/badge.test.js +13 -11
  111. package/dist/packages/badge/react.d.ts +1 -1
  112. package/dist/packages/badge/react.js +4 -4
  113. package/dist/packages/badge/styles.js +1 -1
  114. package/dist/packages/box/box.d.ts +1 -1
  115. package/dist/packages/box/box.hydration.test.d.ts +1 -1
  116. package/dist/packages/box/box.hydration.test.js +14 -14
  117. package/dist/packages/box/box.js +283 -283
  118. package/dist/packages/box/box.js.map +2 -2
  119. package/dist/packages/box/box.react.stories.d.ts +3 -3
  120. package/dist/packages/box/box.react.stories.js +8 -8
  121. package/dist/packages/box/box.stories.d.ts +3 -3
  122. package/dist/packages/box/box.stories.js +25 -19
  123. package/dist/packages/box/box.test.d.ts +1 -1
  124. package/dist/packages/box/box.test.js +6 -6
  125. package/dist/packages/box/react.d.ts +1 -1
  126. package/dist/packages/box/react.js +4 -4
  127. package/dist/packages/box/slot.test.d.ts +1 -1
  128. package/dist/packages/box/slot.test.js +6 -6
  129. package/dist/packages/box/styles.js +1 -1
  130. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +1 -1
  131. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
  132. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +55 -49
  133. package/dist/packages/breadcrumbs/breadcrumbs.js +284 -278
  134. package/dist/packages/breadcrumbs/breadcrumbs.js.map +2 -2
  135. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +3 -3
  136. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +6 -6
  137. package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +3 -3
  138. package/dist/packages/breadcrumbs/breadcrumbs.stories.js +27 -26
  139. package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
  140. package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
  141. package/dist/packages/breadcrumbs/react.d.ts +1 -1
  142. package/dist/packages/breadcrumbs/react.js +4 -4
  143. package/dist/packages/breadcrumbs/styles.js +1 -1
  144. package/dist/packages/button/button.d.ts +9 -4
  145. package/dist/packages/button/button.hydration.test.d.ts +1 -1
  146. package/dist/packages/button/button.hydration.test.js +19 -19
  147. package/dist/packages/button/button.js +743 -717
  148. package/dist/packages/button/button.js.map +2 -2
  149. package/dist/packages/button/button.react.stories.d.ts +5 -5
  150. package/dist/packages/button/button.react.stories.js +30 -30
  151. package/dist/packages/button/button.react.test.js +13 -13
  152. package/dist/packages/button/button.stories.d.ts +4 -4
  153. package/dist/packages/button/button.stories.js +276 -167
  154. package/dist/packages/button/button.test.d.ts +1 -1
  155. package/dist/packages/button/button.test.js +36 -35
  156. package/dist/packages/button/react.d.ts +3 -3
  157. package/dist/packages/button/react.js +7 -7
  158. package/dist/packages/button/styles.js +373 -347
  159. package/dist/packages/card/card.d.ts +1 -1
  160. package/dist/packages/card/card.hydration.test.d.ts +1 -1
  161. package/dist/packages/card/card.hydration.test.js +14 -14
  162. package/dist/packages/card/card.js +305 -290
  163. package/dist/packages/card/card.js.map +2 -2
  164. package/dist/packages/card/card.react.stories.d.ts +3 -3
  165. package/dist/packages/card/card.react.stories.js +11 -11
  166. package/dist/packages/card/card.stories.d.ts +3 -3
  167. package/dist/packages/card/card.stories.js +36 -24
  168. package/dist/packages/card/card.test.d.ts +1 -1
  169. package/dist/packages/card/card.test.js +6 -6
  170. package/dist/packages/card/react.d.ts +1 -1
  171. package/dist/packages/card/react.js +4 -4
  172. package/dist/packages/card/styles.js +1 -1
  173. package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
  174. package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
  175. package/dist/packages/checkbox/checkbox.d.ts +2 -2
  176. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
  177. package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
  178. package/dist/packages/checkbox/checkbox.js +475 -424
  179. package/dist/packages/checkbox/checkbox.js.map +2 -2
  180. package/dist/packages/checkbox/checkbox.react.stories.d.ts +2 -2
  181. package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
  182. package/dist/packages/checkbox/checkbox.stories.d.ts +4 -4
  183. package/dist/packages/checkbox/checkbox.stories.js +99 -91
  184. package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
  185. package/dist/packages/checkbox/checkbox.test.js +64 -64
  186. package/dist/packages/checkbox/react.d.ts +1 -1
  187. package/dist/packages/checkbox/react.js +6 -6
  188. package/dist/packages/checkbox/styles.js +183 -132
  189. package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
  190. package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
  191. package/dist/packages/checkbox-group/checkbox-group.d.ts +16 -2
  192. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
  193. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
  194. package/dist/packages/checkbox-group/checkbox-group.js +60 -55
  195. package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
  196. package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
  197. package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
  198. package/dist/packages/checkbox-group/checkbox-group.test.js +96 -90
  199. package/dist/packages/checkbox-group/react.d.ts +2 -2
  200. package/dist/packages/checkbox-group/react.js +6 -6
  201. package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
  202. package/dist/packages/combobox/combobox.a11y.test.js +72 -49
  203. package/dist/packages/combobox/combobox.d.ts +2 -2
  204. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
  205. package/dist/packages/combobox/combobox.hydration.test.js +45 -45
  206. package/dist/packages/combobox/combobox.js +332 -332
  207. package/dist/packages/combobox/combobox.js.map +3 -3
  208. package/dist/packages/combobox/combobox.react.stories.d.ts +3 -3
  209. package/dist/packages/combobox/combobox.react.stories.js +29 -29
  210. package/dist/packages/combobox/combobox.react.test.js +8 -8
  211. package/dist/packages/combobox/combobox.stories.d.ts +4 -4
  212. package/dist/packages/combobox/combobox.stories.js +100 -94
  213. package/dist/packages/combobox/combobox.test.d.ts +2 -2
  214. package/dist/packages/combobox/combobox.test.js +148 -133
  215. package/dist/packages/combobox/react.d.ts +2 -2
  216. package/dist/packages/combobox/react.js +14 -14
  217. package/dist/packages/combobox/styles.js +1 -1
  218. package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
  219. package/dist/packages/datepicker/DatePicker.test.js +46 -41
  220. package/dist/packages/datepicker/datepicker.d.ts +3 -3
  221. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
  222. package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
  223. package/dist/packages/datepicker/datepicker.js +665 -625
  224. package/dist/packages/datepicker/datepicker.js.map +3 -3
  225. package/dist/packages/datepicker/datepicker.react.stories.d.ts +3 -3
  226. package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
  227. package/dist/packages/datepicker/datepicker.react.test.js +6 -6
  228. package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
  229. package/dist/packages/datepicker/datepicker.stories.js +32 -32
  230. package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
  231. package/dist/packages/datepicker/datepicker.test.js +77 -79
  232. package/dist/packages/datepicker/react.d.ts +2 -2
  233. package/dist/packages/datepicker/react.js +16 -14
  234. package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
  235. package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
  236. package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
  237. package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
  238. package/dist/packages/datepicker/utils.d.ts +1 -1
  239. package/dist/packages/datepicker/utils.js +25 -19
  240. package/dist/packages/datepicker/utils.test.js +20 -20
  241. package/dist/packages/expandable/expandable.d.ts +4 -4
  242. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
  243. package/dist/packages/expandable/expandable.hydration.test.js +21 -21
  244. package/dist/packages/expandable/expandable.js +357 -330
  245. package/dist/packages/expandable/expandable.js.map +4 -4
  246. package/dist/packages/expandable/expandable.react.stories.d.ts +3 -3
  247. package/dist/packages/expandable/expandable.react.stories.js +7 -7
  248. package/dist/packages/expandable/expandable.react.test.js +15 -7
  249. package/dist/packages/expandable/expandable.stories.d.ts +5 -5
  250. package/dist/packages/expandable/expandable.stories.js +51 -45
  251. package/dist/packages/expandable/expandable.test.d.ts +1 -1
  252. package/dist/packages/expandable/expandable.test.js +19 -17
  253. package/dist/packages/expandable/react.d.ts +2 -2
  254. package/dist/packages/expandable/react.js +9 -9
  255. package/dist/packages/expandable/styles.js +1 -1
  256. package/dist/packages/global.d.ts +1 -0
  257. package/dist/packages/global.js +5 -0
  258. package/dist/packages/i18n.d.ts +1 -1
  259. package/dist/packages/i18n.js +37 -29
  260. package/dist/packages/icon/icon.d.ts +7 -2
  261. package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
  262. package/dist/packages/icon/icon.hydration.test.js +25 -25
  263. package/dist/packages/icon/icon.js +31 -26
  264. package/dist/packages/icon/icon.js.map +2 -2
  265. package/dist/packages/icon/icon.react.stories.d.ts +1 -1
  266. package/dist/packages/icon/icon.react.stories.js +283 -284
  267. package/dist/packages/icon/icon.stories.d.ts +3 -3
  268. package/dist/packages/icon/icon.stories.js +299 -298
  269. package/dist/packages/icon/icon.test.d.ts +1 -1
  270. package/dist/packages/icon/icon.test.js +36 -28
  271. package/dist/packages/icon/react.d.ts +1 -1
  272. package/dist/packages/icon/react.js +4 -4
  273. package/dist/packages/icon/style.js +24 -25
  274. package/dist/packages/interaction-type-detection.d.ts +22 -0
  275. package/dist/packages/interaction-type-detection.js +38 -0
  276. package/dist/packages/link/link.d.ts +2 -2
  277. package/dist/packages/link/link.hydration.test.d.ts +1 -1
  278. package/dist/packages/link/link.hydration.test.js +27 -27
  279. package/dist/packages/link/link.js +709 -683
  280. package/dist/packages/link/link.js.map +2 -2
  281. package/dist/packages/link/link.react.stories.d.ts +3 -3
  282. package/dist/packages/link/link.react.stories.js +42 -42
  283. package/dist/packages/link/link.react.test.js +5 -3
  284. package/dist/packages/link/link.stories.d.ts +3 -3
  285. package/dist/packages/link/link.stories.js +51 -51
  286. package/dist/packages/link/link.test.d.ts +1 -1
  287. package/dist/packages/link/link.test.js +11 -7
  288. package/dist/packages/link/react.d.ts +2 -2
  289. package/dist/packages/link/react.js +6 -6
  290. package/dist/packages/link/styles.js +57 -57
  291. package/dist/packages/modal/index.d.ts +7 -7
  292. package/dist/packages/modal/index.js +7 -7
  293. package/dist/packages/modal/modal.d.ts +1 -1
  294. package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
  295. package/dist/packages/modal/modal.hydration.test.js +12 -12
  296. package/dist/packages/modal/modal.js +405 -405
  297. package/dist/packages/modal/modal.js.map +2 -2
  298. package/dist/packages/modal/modal.react.stories.d.ts +3 -3
  299. package/dist/packages/modal/modal.react.stories.js +7 -6
  300. package/dist/packages/modal/modal.react.test.js +5 -5
  301. package/dist/packages/modal/modal.stories.d.ts +6 -6
  302. package/dist/packages/modal/modal.stories.js +253 -238
  303. package/dist/packages/modal/react.d.ts +4 -4
  304. package/dist/packages/modal/react.js +13 -13
  305. package/dist/packages/modal/util.js +2 -2
  306. package/dist/packages/modal-footer/modal-footer.d.ts +1 -1
  307. package/dist/packages/modal-footer/modal-footer.js +291 -291
  308. package/dist/packages/modal-footer/modal-footer.js.map +2 -2
  309. package/dist/packages/modal-footer/react.d.ts +1 -1
  310. package/dist/packages/modal-footer/react.js +4 -4
  311. package/dist/packages/modal-header/modal-header.d.ts +2 -2
  312. package/dist/packages/modal-header/modal-header.js +439 -418
  313. package/dist/packages/modal-header/modal-header.js.map +2 -2
  314. package/dist/packages/modal-header/modal-header.react.test.js +5 -3
  315. package/dist/packages/modal-header/react.d.ts +2 -2
  316. package/dist/packages/modal-header/react.js +8 -8
  317. package/dist/packages/page-indicator/page-indicator.d.ts +1 -1
  318. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
  319. package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
  320. package/dist/packages/page-indicator/page-indicator.js +26 -26
  321. package/dist/packages/page-indicator/page-indicator.js.map +2 -2
  322. package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
  323. package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
  324. package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
  325. package/dist/packages/page-indicator/page-indicator.stories.d.ts +3 -3
  326. package/dist/packages/page-indicator/page-indicator.stories.js +56 -27
  327. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
  328. package/dist/packages/page-indicator/page-indicator.test.js +110 -70
  329. package/dist/packages/page-indicator/react.d.ts +2 -2
  330. package/dist/packages/page-indicator/react.js +7 -7
  331. package/dist/packages/page-indicator/style.js +21 -21
  332. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
  333. package/dist/packages/pagination/pagination.a11y.test.js +59 -25
  334. package/dist/packages/pagination/pagination.d.ts +3 -3
  335. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
  336. package/dist/packages/pagination/pagination.hydration.test.js +19 -19
  337. package/dist/packages/pagination/pagination.js +380 -349
  338. package/dist/packages/pagination/pagination.js.map +2 -2
  339. package/dist/packages/pagination/pagination.react.stories.d.ts +5 -5
  340. package/dist/packages/pagination/pagination.react.stories.js +8 -8
  341. package/dist/packages/pagination/pagination.react.test.js +6 -6
  342. package/dist/packages/pagination/pagination.stories.d.ts +3 -3
  343. package/dist/packages/pagination/pagination.stories.js +18 -18
  344. package/dist/packages/pagination/pagination.test.d.ts +1 -1
  345. package/dist/packages/pagination/pagination.test.js +146 -69
  346. package/dist/packages/pagination/react.d.ts +3 -3
  347. package/dist/packages/pagination/react.js +12 -10
  348. package/dist/packages/pagination/styles.js +1 -1
  349. package/dist/packages/pill/pill.d.ts +2 -2
  350. package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
  351. package/dist/packages/pill/pill.hydration.test.js +14 -14
  352. package/dist/packages/pill/pill.js +334 -311
  353. package/dist/packages/pill/pill.js.map +2 -2
  354. package/dist/packages/pill/pill.react.stories.d.ts +3 -3
  355. package/dist/packages/pill/pill.react.stories.js +3 -3
  356. package/dist/packages/pill/pill.react.test.js +8 -8
  357. package/dist/packages/pill/pill.stories.d.ts +3 -3
  358. package/dist/packages/pill/pill.stories.js +8 -8
  359. package/dist/packages/pill/pill.test.d.ts +1 -1
  360. package/dist/packages/pill/pill.test.js +17 -15
  361. package/dist/packages/pill/react.d.ts +2 -2
  362. package/dist/packages/pill/react.js +18 -14
  363. package/dist/packages/pill/styles.js +1 -1
  364. package/dist/packages/radio/base-element.d.ts +3 -3
  365. package/dist/packages/radio/base-element.js +3 -3
  366. package/dist/packages/radio/custom-error-validator.d.ts +1 -1
  367. package/dist/packages/radio/custom-error-validator.js +3 -3
  368. package/dist/packages/radio/form-associated-element.d.ts +8 -8
  369. package/dist/packages/radio/form-associated-element.js +27 -26
  370. package/dist/packages/radio/host-styles.js +9 -9
  371. package/dist/packages/radio/invalid.d.ts +1 -1
  372. package/dist/packages/radio/invalid.js +1 -1
  373. package/dist/packages/radio/radio-styles.js +199 -160
  374. package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
  375. package/dist/packages/radio/radio.a11y.test.js +60 -58
  376. package/dist/packages/radio/radio.d.ts +3 -3
  377. package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
  378. package/dist/packages/radio/radio.hydration.test.js +23 -14
  379. package/dist/packages/radio/radio.js +485 -446
  380. package/dist/packages/radio/radio.js.map +3 -3
  381. package/dist/packages/radio/radio.react.stories.d.ts +2 -2
  382. package/dist/packages/radio/radio.react.stories.js +3 -3
  383. package/dist/packages/radio/radio.stories.d.ts +4 -4
  384. package/dist/packages/radio/radio.stories.js +152 -136
  385. package/dist/packages/radio/radio.test.d.ts +1 -1
  386. package/dist/packages/radio/radio.test.js +74 -73
  387. package/dist/packages/radio/react.d.ts +1 -1
  388. package/dist/packages/radio/react.js +4 -4
  389. package/dist/packages/radio/required-validator.d.ts +1 -1
  390. package/dist/packages/radio/required-validator.js +12 -7
  391. package/dist/packages/radio/slot.d.ts +1 -1
  392. package/dist/packages/radio/slot.js +11 -8
  393. package/dist/packages/radio/watch.d.ts +1 -1
  394. package/dist/packages/radio/watch.js +3 -1
  395. package/dist/packages/radio-group/radio-group-styles.js +121 -88
  396. package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
  397. package/dist/packages/radio-group/radio-group.a11y.test.js +81 -79
  398. package/dist/packages/radio-group/radio-group.d.ts +14 -5
  399. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
  400. package/dist/packages/radio-group/radio-group.hydration.test.js +29 -18
  401. package/dist/packages/radio-group/radio-group.js +648 -560
  402. package/dist/packages/radio-group/radio-group.js.map +3 -3
  403. package/dist/packages/radio-group/radio-group.react.test.js +4 -4
  404. package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
  405. package/dist/packages/radio-group/radio-group.test.js +234 -229
  406. package/dist/packages/radio-group/react.d.ts +2 -2
  407. package/dist/packages/radio-group/react.js +10 -10
  408. package/dist/packages/select/react.d.ts +2 -2
  409. package/dist/packages/select/react.js +11 -11
  410. package/dist/packages/select/select.a11y.test.d.ts +1 -1
  411. package/dist/packages/select/select.a11y.test.js +98 -91
  412. package/dist/packages/select/select.d.ts +4 -4
  413. package/dist/packages/select/select.hydration.test.d.ts +1 -1
  414. package/dist/packages/select/select.hydration.test.js +16 -16
  415. package/dist/packages/select/select.js +350 -331
  416. package/dist/packages/select/select.js.map +2 -2
  417. package/dist/packages/select/select.react.stories.d.ts +3 -3
  418. package/dist/packages/select/select.react.stories.js +7 -7
  419. package/dist/packages/select/select.react.test.js +6 -6
  420. package/dist/packages/select/select.stories.d.ts +3 -3
  421. package/dist/packages/select/select.stories.js +51 -48
  422. package/dist/packages/select/select.test.d.ts +1 -1
  423. package/dist/packages/select/select.test.js +175 -178
  424. package/dist/packages/select/styles.js +1 -1
  425. package/dist/packages/slider/Slider.d.ts +1 -1
  426. package/dist/packages/slider/Slider.js +4 -4
  427. package/dist/packages/slider/index.d.ts +2 -2
  428. package/dist/packages/slider/index.js +2 -2
  429. package/dist/packages/slider/react.d.ts +3 -3
  430. package/dist/packages/slider/react.js +9 -9
  431. package/dist/packages/slider/slider.d.ts +3 -3
  432. package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
  433. package/dist/packages/slider/slider.hydration.test.js +39 -20
  434. package/dist/packages/slider/slider.js +480 -462
  435. package/dist/packages/slider/slider.js.map +2 -2
  436. package/dist/packages/slider/slider.react.stories.d.ts +3 -3
  437. package/dist/packages/slider/slider.react.stories.js +31 -34
  438. package/dist/packages/slider/slider.react.test.js +6 -6
  439. package/dist/packages/slider/slider.stories.d.ts +7 -7
  440. package/dist/packages/slider/slider.stories.js +332 -340
  441. package/dist/packages/slider/slider.test.d.ts +5 -5
  442. package/dist/packages/slider/slider.test.js +367 -334
  443. package/dist/packages/slider/styles/w-slider.styles.js +166 -148
  444. package/dist/packages/slider/styles.js +1 -1
  445. package/dist/packages/slider-thumb/SliderThumb.d.ts +1 -1
  446. package/dist/packages/slider-thumb/SliderThumb.js +4 -4
  447. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
  448. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
  449. package/dist/packages/slider-thumb/react.d.ts +3 -3
  450. package/dist/packages/slider-thumb/react.js +11 -9
  451. package/dist/packages/slider-thumb/slider-thumb.d.ts +3 -3
  452. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
  453. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
  454. package/dist/packages/slider-thumb/slider-thumb.js +545 -548
  455. package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
  456. package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
  457. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
  458. package/dist/packages/slider-thumb/styles.js +1 -1
  459. package/dist/packages/snackbar/locales/da/messages.d.mts +1 -0
  460. package/dist/packages/snackbar/locales/da/messages.mjs +1 -0
  461. package/dist/packages/snackbar/locales/en/messages.d.mts +1 -0
  462. package/dist/packages/snackbar/locales/en/messages.mjs +1 -0
  463. package/dist/packages/snackbar/locales/fi/messages.d.mts +1 -0
  464. package/dist/packages/snackbar/locales/fi/messages.mjs +1 -0
  465. package/dist/packages/snackbar/locales/nb/messages.d.mts +1 -0
  466. package/dist/packages/snackbar/locales/nb/messages.mjs +1 -0
  467. package/dist/packages/snackbar/locales/sv/messages.d.mts +1 -0
  468. package/dist/packages/snackbar/locales/sv/messages.mjs +1 -0
  469. package/dist/packages/snackbar/react.d.ts +2 -0
  470. package/dist/packages/snackbar/react.js +11 -0
  471. package/dist/packages/snackbar/snackbar.d.ts +132 -0
  472. package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -0
  473. package/dist/packages/snackbar/snackbar.hydration.test.js +13 -0
  474. package/dist/packages/snackbar/snackbar.js +2665 -0
  475. package/dist/packages/snackbar/snackbar.js.map +7 -0
  476. package/dist/packages/snackbar/snackbar.react.stories.d.ts +12 -0
  477. package/dist/packages/snackbar/snackbar.react.stories.js +160 -0
  478. package/dist/packages/snackbar/snackbar.stories.d.ts +20 -0
  479. package/dist/packages/snackbar/snackbar.stories.js +363 -0
  480. package/dist/packages/snackbar/snackbar.test.d.ts +4 -0
  481. package/dist/packages/snackbar/snackbar.test.js +17 -0
  482. package/dist/packages/snackbar/styles.d.ts +1 -0
  483. package/dist/packages/snackbar/styles.js +35 -0
  484. package/dist/packages/snackbar-item/react.d.ts +5 -0
  485. package/dist/packages/snackbar-item/react.js +16 -0
  486. package/dist/packages/snackbar-item/snackbar-item.d.ts +69 -0
  487. package/dist/packages/snackbar-item/snackbar-item.js +2620 -0
  488. package/dist/packages/snackbar-item/snackbar-item.js.map +7 -0
  489. package/dist/packages/snackbar-item/snackbar-item.react.test.d.ts +1 -0
  490. package/dist/packages/snackbar-item/snackbar-item.react.test.js +5 -0
  491. package/dist/packages/snackbar-item/styles.d.ts +1 -0
  492. package/dist/packages/snackbar-item/styles.js +133 -0
  493. package/dist/packages/step/react.d.ts +1 -1
  494. package/dist/packages/step/react.js +4 -4
  495. package/dist/packages/step/step.d.ts +2 -2
  496. package/dist/packages/step/step.hydration.test.d.ts +1 -1
  497. package/dist/packages/step/step.hydration.test.js +10 -10
  498. package/dist/packages/step/step.js +334 -312
  499. package/dist/packages/step/step.js.map +2 -2
  500. package/dist/packages/step-indicator/index.d.ts +2 -2
  501. package/dist/packages/step-indicator/index.js +2 -2
  502. package/dist/packages/step-indicator/react.d.ts +2 -2
  503. package/dist/packages/step-indicator/react.js +5 -5
  504. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
  505. package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
  506. package/dist/packages/step-indicator/step-indicator.d.ts +1 -1
  507. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
  508. package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
  509. package/dist/packages/step-indicator/step-indicator.js +280 -276
  510. package/dist/packages/step-indicator/step-indicator.js.map +2 -2
  511. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
  512. package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
  513. package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
  514. package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
  515. package/dist/packages/step-indicator/styles.js +1 -1
  516. package/dist/packages/styles.js +274 -274
  517. package/dist/packages/switch/react.d.ts +1 -1
  518. package/dist/packages/switch/react.js +6 -6
  519. package/dist/packages/switch/styles.js +1 -1
  520. package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
  521. package/dist/packages/switch/switch.a11y.test.js +46 -38
  522. package/dist/packages/switch/switch.d.ts +1 -1
  523. package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
  524. package/dist/packages/switch/switch.hydration.test.js +23 -23
  525. package/dist/packages/switch/switch.js +299 -299
  526. package/dist/packages/switch/switch.js.map +2 -2
  527. package/dist/packages/switch/switch.react.stories.d.ts +2 -2
  528. package/dist/packages/switch/switch.react.stories.js +2 -2
  529. package/dist/packages/switch/switch.stories.d.ts +2 -2
  530. package/dist/packages/switch/switch.stories.js +42 -37
  531. package/dist/packages/switch/switch.test.d.ts +1 -1
  532. package/dist/packages/switch/switch.test.js +30 -35
  533. package/dist/packages/tab/react.d.ts +6 -4
  534. package/dist/packages/tab/react.js +11 -10
  535. package/dist/packages/tab/styles.d.ts +1 -0
  536. package/dist/packages/tab/styles.js +2 -0
  537. package/dist/packages/tab/tab.d.ts +5 -5
  538. package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
  539. package/dist/packages/tab/tab.hydration.test.js +18 -12
  540. package/dist/packages/tab/tab.js +305 -304
  541. package/dist/packages/tab/tab.js.map +3 -3
  542. package/dist/packages/tab/tab.react.test.js +5 -3
  543. package/dist/packages/tab-panel/react.d.ts +3 -2
  544. package/dist/packages/tab-panel/react.js +11 -5
  545. package/dist/packages/tab-panel/tab-panel.d.ts +3 -3
  546. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
  547. package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
  548. package/dist/packages/tab-panel/tab-panel.js +289 -287
  549. package/dist/packages/tab-panel/tab-panel.js.map +2 -2
  550. package/dist/packages/tabs/index.d.ts +4 -4
  551. package/dist/packages/tabs/index.js +3 -3
  552. package/dist/packages/tabs/react.d.ts +27 -8
  553. package/dist/packages/tabs/react.js +30 -9
  554. package/dist/packages/tabs/styles.js +1 -1
  555. package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
  556. package/dist/packages/tabs/tabs.a11y.test.js +188 -169
  557. package/dist/packages/tabs/tabs.d.ts +3 -3
  558. package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
  559. package/dist/packages/tabs/tabs.hydration.test.js +22 -8
  560. package/dist/packages/tabs/tabs.js +289 -282
  561. package/dist/packages/tabs/tabs.js.map +2 -2
  562. package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
  563. package/dist/packages/tabs/tabs.react.stories.js +28 -28
  564. package/dist/packages/tabs/tabs.stories.d.ts +4 -4
  565. package/dist/packages/tabs/tabs.stories.js +101 -95
  566. package/dist/packages/tabs/tabs.test.d.ts +3 -3
  567. package/dist/packages/tabs/tabs.test.js +136 -122
  568. package/dist/packages/textarea/react.d.ts +2 -2
  569. package/dist/packages/textarea/react.js +17 -17
  570. package/dist/packages/textarea/styles.js +1 -1
  571. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
  572. package/dist/packages/textarea/textarea.a11y.test.js +89 -57
  573. package/dist/packages/textarea/textarea.d.ts +1 -1
  574. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
  575. package/dist/packages/textarea/textarea.hydration.test.js +19 -19
  576. package/dist/packages/textarea/textarea.js +300 -298
  577. package/dist/packages/textarea/textarea.js.map +2 -2
  578. package/dist/packages/textarea/textarea.react.stories.d.ts +3 -3
  579. package/dist/packages/textarea/textarea.react.stories.js +13 -13
  580. package/dist/packages/textarea/textarea.react.test.js +7 -7
  581. package/dist/packages/textarea/textarea.stories.d.ts +3 -3
  582. package/dist/packages/textarea/textarea.stories.js +44 -42
  583. package/dist/packages/textarea/textarea.test.d.ts +1 -1
  584. package/dist/packages/textarea/textarea.test.js +124 -88
  585. package/dist/packages/textfield/react.d.ts +2 -2
  586. package/dist/packages/textfield/react.js +17 -17
  587. package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
  588. package/dist/packages/textfield/styles.js +1 -1
  589. package/dist/packages/textfield/textfield.d.ts +3 -3
  590. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
  591. package/dist/packages/textfield/textfield.hydration.test.js +19 -19
  592. package/dist/packages/textfield/textfield.js +376 -368
  593. package/dist/packages/textfield/textfield.js.map +3 -3
  594. package/dist/packages/textfield/textfield.react.stories.d.ts +3 -3
  595. package/dist/packages/textfield/textfield.react.stories.js +31 -31
  596. package/dist/packages/textfield/textfield.react.test.js +7 -7
  597. package/dist/packages/textfield/textfield.stories.d.ts +4 -4
  598. package/dist/packages/textfield/textfield.stories.js +107 -89
  599. package/dist/packages/textfield/textfield.test.d.ts +2 -2
  600. package/dist/packages/textfield/textfield.test.js +103 -71
  601. package/dist/packages/toast/api.d.ts +1 -1
  602. package/dist/packages/toast/api.js +3 -3
  603. package/dist/packages/toast/index.d.ts +5 -5
  604. package/dist/packages/toast/index.js +5 -5
  605. package/dist/packages/toast/toast.d.ts +4 -4
  606. package/dist/packages/toast/toast.js +346 -317
  607. package/dist/packages/toast/toast.js.map +4 -4
  608. package/dist/packages/toast/toast.stories.d.ts +4 -4
  609. package/dist/packages/toast/toast.stories.js +37 -16
  610. package/dist/packages/toast/toast.test.d.ts +1 -1
  611. package/dist/packages/toast/toast.test.js +48 -31
  612. package/dist/packages/toast/types.d.ts +1 -1
  613. package/dist/packages/toast-container/styles.js +1 -1
  614. package/dist/packages/toast-container/toast-container.d.ts +2 -2
  615. package/dist/packages/toast-container/toast-container.js +291 -290
  616. package/dist/packages/toast-container/toast-container.js.map +2 -2
  617. package/dist/packages/utils/element-collapse.d.ts +12 -0
  618. package/dist/packages/utils/element-collapse.js +102 -0
  619. package/dist/packages/utils/expand-transition.d.ts +1 -1
  620. package/dist/packages/utils/expand-transition.js +12 -10
  621. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  622. package/dist/packages/utils/unstyled-heading.js +4 -4
  623. package/dist/packages/utils/window-exists.js +1 -1
  624. package/dist/packages/utils.js +2 -2
  625. package/dist/setup-tests.d.ts +3 -3
  626. package/dist/setup-tests.js +16 -13
  627. package/dist/tests/react-hydration.js +29 -30
  628. package/dist/tests/react-ssr-attributes.d.ts +1 -1
  629. package/dist/tests/react-ssr-attributes.js +4 -4
  630. package/dist/web-types.json +110 -22
  631. package/eik/index.js +12 -12
  632. package/package.json +11 -18
@@ -1,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";