@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,122 +1,128 @@
1
- import { i18n } from '@lingui/core';
2
- import { html } from 'lit';
3
- import { expect, test, vi } from 'vitest';
4
- import { render } from 'vitest-browser-lit';
5
- import './checkbox-group.js';
6
- import '../checkbox/checkbox.js';
1
+ import { i18n } from "@lingui/core";
2
+ import { html } from "lit";
3
+ import { expect, test, vi } from "vitest";
4
+ import { render } from "vitest-browser-lit";
5
+ import "./checkbox-group.js";
6
+ import "../checkbox/checkbox.js";
7
7
  // Initialize i18n with English locale for tests
8
- i18n.load('en', {
9
- 'checkbox-group.label.optional': ['(optional)'],
10
- 'checkbox-group.validation.required': ['At least one selection is required.'],
8
+ i18n.load("en", {
9
+ "checkbox-group.label.optional": ["(optional)"],
10
+ "checkbox-group.validation.required": ["At least one selection is required."],
11
11
  });
12
- i18n.activate('en');
13
- test('renders help text when provided', async () => {
12
+ i18n.activate("en");
13
+ test("renders help text when provided", async () => {
14
14
  const page = render(html `
15
- <w-checkbox-group help-text="Select all that apply">
16
- <w-checkbox>One</w-checkbox>
17
- <w-checkbox>Two</w-checkbox>
18
- </w-checkbox-group>
19
- `);
20
- await expect.element(page.getByText('Select all that apply')).toBeVisible();
15
+ <w-checkbox-group help-text="Select all that apply">
16
+ <w-checkbox>One</w-checkbox>
17
+ <w-checkbox>Two</w-checkbox>
18
+ </w-checkbox-group>
19
+ `);
20
+ await expect.element(page.getByText("Select all that apply")).toBeVisible();
21
21
  });
22
- test('associates help text with the group', async () => {
22
+ test("associates help text with the group", async () => {
23
23
  const page = render(html `
24
- <w-checkbox-group help-text="Choose wisely">
25
- <w-checkbox>One</w-checkbox>
26
- <w-checkbox>Two</w-checkbox>
27
- </w-checkbox-group>
28
- `);
29
- const group = page.getByRole('group');
30
- await expect.element(group).toHaveAccessibleDescription('Choose wisely');
24
+ <w-checkbox-group help-text="Choose wisely">
25
+ <w-checkbox>One</w-checkbox>
26
+ <w-checkbox>Two</w-checkbox>
27
+ </w-checkbox-group>
28
+ `);
29
+ const group = page.getByRole("group");
30
+ await expect.element(group).toHaveAccessibleDescription("Choose wisely");
31
31
  });
32
- test('renders label above the group and associates it', async () => {
32
+ test("renders label above the group and associates it", async () => {
33
33
  const page = render(html `
34
- <w-checkbox-group label="Preferences">
35
- <w-checkbox>One</w-checkbox>
36
- <w-checkbox>Two</w-checkbox>
37
- </w-checkbox-group>
38
- `);
39
- await expect.element(page.getByText('Preferences')).toBeVisible();
40
- await expect.element(page.getByRole('group', { name: 'Preferences' })).toBeVisible();
34
+ <w-checkbox-group label="Preferences">
35
+ <w-checkbox>One</w-checkbox>
36
+ <w-checkbox>Two</w-checkbox>
37
+ </w-checkbox-group>
38
+ `);
39
+ await expect.element(page.getByText("Preferences")).toBeVisible();
40
+ await expect
41
+ .element(page.getByRole("group", { name: "Preferences" }))
42
+ .toBeVisible();
41
43
  });
42
- test('renders optional text when optional is true', async () => {
44
+ test("renders optional text when optional is true", async () => {
43
45
  const page = render(html `
44
- <w-checkbox-group label="Preferences" optional>
45
- <w-checkbox>One</w-checkbox>
46
- <w-checkbox>Two</w-checkbox>
47
- </w-checkbox-group>
48
- `);
49
- await expect.element(page.getByText('(optional)')).toBeVisible();
46
+ <w-checkbox-group label="Preferences" optional>
47
+ <w-checkbox>One</w-checkbox>
48
+ <w-checkbox>Two</w-checkbox>
49
+ </w-checkbox-group>
50
+ `);
51
+ await expect.element(page.getByText("(optional)")).toBeVisible();
50
52
  });
51
- test('required group toggles invalid state for group and children after submit and selection', async () => {
53
+ test("required group toggles invalid state for group and children after submit and selection", async () => {
52
54
  const page = render(html `
53
- <form>
54
- <w-checkbox-group label="Preferences" required>
55
- <w-checkbox name="group" value="foo">Foo</w-checkbox>
56
- <w-checkbox name="group" value="bar">Bar</w-checkbox>
57
- </w-checkbox-group>
58
- <button type="submit">Submit</button>
59
- </form>
60
- `);
61
- const form = document.querySelector('form');
62
- const submit = page.getByRole('button', { name: 'Submit' });
63
- const group = page.getByRole('group', { name: 'Preferences' });
64
- const firstCheckbox = page.getByRole('checkbox', { name: 'Foo' });
65
- const firstCheckboxEl = document.querySelector('w-checkbox');
55
+ <form>
56
+ <w-checkbox-group label="Preferences" required>
57
+ <w-checkbox name="group" value="foo">Foo</w-checkbox>
58
+ <w-checkbox name="group" value="bar">Bar</w-checkbox>
59
+ </w-checkbox-group>
60
+ <button type="submit">Submit</button>
61
+ </form>
62
+ `);
63
+ const form = document.querySelector("form");
64
+ const submit = page.getByRole("button", { name: "Submit" });
65
+ const group = page.getByRole("group", { name: "Preferences" });
66
+ const firstCheckbox = page.getByRole("checkbox", { name: "Foo" });
67
+ const firstCheckboxEl = document.querySelector("w-checkbox");
66
68
  await firstCheckboxEl.updateComplete;
67
69
  const internalInput = firstCheckboxEl.shadowRoot?.querySelector('[part="input"]');
68
70
  if (!internalInput) {
69
- throw new Error('Expected checkbox input element to exist');
71
+ throw new Error("Expected checkbox input element to exist");
70
72
  }
71
73
  await submit.click();
72
74
  await expect.poll(() => form.checkValidity()).toBe(false);
73
- await expect.element(group).toHaveAttribute('aria-invalid', 'true');
74
- await expect.element(firstCheckbox).toHaveAttribute('aria-invalid', 'true');
75
+ await expect.element(group).toHaveAttribute("aria-invalid", "true");
76
+ await expect.element(firstCheckbox).toHaveAttribute("aria-invalid", "true");
75
77
  // Group invalid state should flow via aria-invalid on the internal input,
76
78
  // while host invalid remains untouched (no host attribute mutation).
77
- expect(firstCheckboxEl.hasAttribute('invalid')).toBe(false);
78
- expect(internalInput.getAttribute('aria-invalid')).toBe('true');
79
+ expect(firstCheckboxEl.hasAttribute("invalid")).toBe(false);
80
+ expect(internalInput.getAttribute("aria-invalid")).toBe("true");
79
81
  firstCheckboxEl.click();
80
82
  await expect.poll(() => form.checkValidity()).toBe(true);
81
- await expect.element(group).not.toHaveAttribute('aria-invalid', 'true');
82
- await expect.element(firstCheckbox).not.toHaveAttribute('aria-invalid', 'true');
83
- expect(internalInput.getAttribute('aria-invalid')).toBeNull();
83
+ await expect.element(group).not.toHaveAttribute("aria-invalid", "true");
84
+ await expect
85
+ .element(firstCheckbox)
86
+ .not.toHaveAttribute("aria-invalid", "true");
87
+ expect(internalInput.getAttribute("aria-invalid")).toBeNull();
84
88
  });
85
- test('submits checked checkbox values via form data', async () => {
89
+ test("submits checked checkbox values via form data", async () => {
86
90
  render(html `
87
- <form>
88
- <w-checkbox-group label="Preferences">
89
- <w-checkbox name="prefs" value="alpha" checked>Alpha</w-checkbox>
90
- <w-checkbox name="prefs" value="beta" checked>Beta</w-checkbox>
91
- <w-checkbox name="prefs" value="gamma">Gamma</w-checkbox>
92
- </w-checkbox-group>
93
- </form>
94
- `);
95
- const form = document.querySelector('form');
91
+ <form>
92
+ <w-checkbox-group label="Preferences">
93
+ <w-checkbox name="prefs" value="alpha" checked>Alpha</w-checkbox>
94
+ <w-checkbox name="prefs" value="beta" checked>Beta</w-checkbox>
95
+ <w-checkbox name="prefs" value="gamma">Gamma</w-checkbox>
96
+ </w-checkbox-group>
97
+ </form>
98
+ `);
99
+ const form = document.querySelector("form");
96
100
  const data = new FormData(form);
97
- expect(data.getAll('prefs')).toEqual(['alpha', 'beta']);
101
+ expect(data.getAll("prefs")).toEqual(["alpha", "beta"]);
98
102
  });
99
- test('applies group name to child checkboxes without a name', async () => {
103
+ test("applies group name to child checkboxes without a name", async () => {
100
104
  render(html `
101
- <w-checkbox-group name="prefs">
102
- <w-checkbox value="alpha" checked>Alpha</w-checkbox>
103
- <w-checkbox name="custom" value="beta" checked>Beta</w-checkbox>
104
- </w-checkbox-group>
105
- `);
106
- const [first, second] = Array.from(document.querySelectorAll('w-checkbox'));
105
+ <w-checkbox-group name="prefs">
106
+ <w-checkbox value="alpha" checked>Alpha</w-checkbox>
107
+ <w-checkbox name="custom" value="beta" checked>Beta</w-checkbox>
108
+ </w-checkbox-group>
109
+ `);
110
+ const [first, second] = [
111
+ ...document.querySelectorAll("w-checkbox"),
112
+ ];
107
113
  await first.updateComplete;
108
- expect(first.name).toBe('prefs');
109
- expect(second.name).toBe('custom');
114
+ expect(first.name).toBe("prefs");
115
+ expect(second.name).toBe("custom");
110
116
  });
111
- test('warns when used in a form without a name', async () => {
112
- const warn = vi.spyOn(console, 'warn').mockImplementation(() => { });
117
+ test("warns when used in a form without a name", async () => {
118
+ const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
113
119
  render(html `
114
- <form>
115
- <w-checkbox-group>
116
- <w-checkbox value="alpha" checked>Alpha</w-checkbox>
117
- </w-checkbox-group>
118
- </form>
119
- `);
120
+ <form>
121
+ <w-checkbox-group>
122
+ <w-checkbox value="alpha" checked>Alpha</w-checkbox>
123
+ </w-checkbox-group>
124
+ </form>
125
+ `);
120
126
  await expect.poll(() => warn).toHaveBeenCalled();
121
127
  warn.mockRestore();
122
128
  });
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import { WarpCheckboxGroup } from './checkbox-group.js';
1
+ import React from "react";
2
+ import { WarpCheckboxGroup } from "./checkbox-group.js";
3
3
  export declare const CheckboxGroup: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpCheckboxGroup>, "form" | "label" | "name" | "invalid" | "helpText" | "required" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "updated" | "resetFormControl" | "render" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "reportValidity" | "optional"> & {} & Partial<Omit<WarpCheckboxGroup, keyof HTMLElement>> & React.RefAttributes<WarpCheckboxGroup>, "ref">, "help-text"> & {
4
4
  helpText?: string;
5
5
  } & React.RefAttributes<WarpCheckboxGroup>>;
@@ -1,17 +1,17 @@
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
  const BaseCheckboxGroup = createComponent({
8
- tagName: 'w-checkbox-group',
8
+ tagName: "w-checkbox-group",
9
9
  elementClass: Component,
10
10
  react: React,
11
11
  });
12
12
  export const CheckboxGroup = React.forwardRef(({ helpText, ...props }, ref) => React.createElement(BaseCheckboxGroup, {
13
13
  ...props,
14
- ...(helpText !== undefined ? { 'help-text': helpText } : {}),
14
+ ...(helpText !== undefined ? { "help-text": helpText } : {}),
15
15
  ref,
16
16
  }));
17
- CheckboxGroup.displayName = 'CheckboxGroup';
17
+ CheckboxGroup.displayName = "CheckboxGroup";
@@ -1,2 +1,2 @@
1
- import '../textfield/textfield.js';
2
- import './combobox.js';
1
+ import "../textfield/textfield.js";
2
+ import "./combobox.js";
@@ -1,74 +1,97 @@
1
- import { html } from 'lit';
2
- import { describe, expect, test } from 'vitest';
3
- import { render } from 'vitest-browser-lit';
4
- import '../textfield/textfield.js';
5
- import './combobox.js';
6
- describe('w-combobox accessibility (WCAG 2.2)', () => {
7
- describe('axe-core automated checks', () => {
1
+ import { html } from "lit";
2
+ import { describe, expect, test } from "vitest";
3
+ import { render } from "vitest-browser-lit";
4
+ import "../textfield/textfield.js";
5
+ import "./combobox.js";
6
+ describe("w-combobox accessibility (WCAG 2.2)", () => {
7
+ describe("axe-core automated checks", () => {
8
8
  const sampleOptions = [
9
- { value: 'apple', label: 'Apple' },
10
- { value: 'banana', label: 'Banana' },
11
- { value: 'orange', label: 'Orange' },
9
+ { value: "apple", label: "Apple" },
10
+ { value: "banana", label: "Banana" },
11
+ { value: "orange", label: "Orange" },
12
12
  ];
13
- test('default state has no violations', async () => {
14
- const page = render(html `<w-combobox label="Select a fruit" .options="${sampleOptions}"></w-combobox>`);
13
+ test("default state has no violations", async () => {
14
+ const page = render(html `<w-combobox
15
+ label="Select a fruit"
16
+ .options="${sampleOptions}"
17
+ ></w-combobox>`);
15
18
  await expect(page).toHaveNoAxeViolations();
16
19
  });
17
- test('with help text has no violations', async () => {
20
+ test("with help text has no violations", async () => {
18
21
  const page = render(html `
19
- <w-combobox
20
- label="Select a fruit"
21
- help-text="Start typing to filter options"
22
- .options="${sampleOptions}"></w-combobox>
23
- `);
22
+ <w-combobox
23
+ label="Select a fruit"
24
+ help-text="Start typing to filter options"
25
+ .options="${sampleOptions}"
26
+ ></w-combobox>
27
+ `);
24
28
  await expect(page).toHaveNoAxeViolations();
25
29
  });
26
- test('invalid state has no violations', async () => {
30
+ test("invalid state has no violations", async () => {
27
31
  const page = render(html `
28
- <w-combobox
29
- label="Select a fruit"
30
- invalid
31
- help-text="Please select a valid option"
32
- .options="${sampleOptions}"></w-combobox>
33
- `);
32
+ <w-combobox
33
+ label="Select a fruit"
34
+ invalid
35
+ help-text="Please select a valid option"
36
+ .options="${sampleOptions}"
37
+ ></w-combobox>
38
+ `);
34
39
  await expect(page).toHaveNoAxeViolations();
35
40
  });
36
- test('disabled state has no violations', async () => {
37
- const page = render(html `<w-combobox label="Select a fruit" disabled .options="${sampleOptions}"></w-combobox>`);
41
+ test("disabled state has no violations", async () => {
42
+ const page = render(html `<w-combobox
43
+ label="Select a fruit"
44
+ disabled
45
+ .options="${sampleOptions}"
46
+ ></w-combobox>`);
38
47
  await expect(page).toHaveNoAxeViolations();
39
48
  });
40
- test('required state has no violations', async () => {
41
- const page = render(html `<w-combobox label="Select a fruit" required .options="${sampleOptions}"></w-combobox>`);
49
+ test("required state has no violations", async () => {
50
+ const page = render(html `<w-combobox
51
+ label="Select a fruit"
52
+ required
53
+ .options="${sampleOptions}"
54
+ ></w-combobox>`);
42
55
  await expect(page).toHaveNoAxeViolations();
43
56
  });
44
- test('optional state has no violations', async () => {
45
- const page = render(html `<w-combobox label="Select a fruit" optional .options="${sampleOptions}"></w-combobox>`);
57
+ test("optional state has no violations", async () => {
58
+ const page = render(html `<w-combobox
59
+ label="Select a fruit"
60
+ optional
61
+ .options="${sampleOptions}"
62
+ ></w-combobox>`);
46
63
  await expect(page).toHaveNoAxeViolations();
47
64
  });
48
- test('open on focus state has no violations', async () => {
49
- const page = render(html `<w-combobox label="Select a fruit" open-on-focus .options="${sampleOptions}"></w-combobox>`);
65
+ test("open on focus state has no violations", async () => {
66
+ const page = render(html `<w-combobox
67
+ label="Select a fruit"
68
+ open-on-focus
69
+ .options="${sampleOptions}"
70
+ ></w-combobox>`);
50
71
  await expect(page).toHaveNoAxeViolations();
51
72
  });
52
- test('with light-DOM option children has no violations', async () => {
73
+ test("with light-DOM option children has no violations", async () => {
53
74
  const page = render(html `
54
- <w-combobox label="Select a fruit">
55
- <option value="apple">Apple</option>
56
- <option value="banana">Banana</option>
57
- <option value="orange">Orange</option>
58
- </w-combobox>
59
- `);
75
+ <w-combobox label="Select a fruit">
76
+ <option value="apple">Apple</option>
77
+ <option value="banana">Banana</option>
78
+ <option value="orange">Orange</option>
79
+ </w-combobox>
80
+ `);
60
81
  await expect(page).toHaveNoAxeViolations();
61
82
  });
62
- test('open with light-DOM option children has no violations', async () => {
83
+ test("open with light-DOM option children has no violations", async () => {
63
84
  const page = render(html `
64
- <w-combobox data-testid="combobox" label="Select a fruit" open-on-focus>
65
- <option value="apple">Apple</option>
66
- <option value="banana">Banana</option>
67
- <option value="orange">Orange</option>
68
- </w-combobox>
69
- `);
70
- const el = (await page.getByTestId('combobox').element());
71
- const input = el?.shadowRoot?.querySelector('w-textfield')?.shadowRoot?.querySelector('input');
85
+ <w-combobox data-testid="combobox" label="Select a fruit" open-on-focus>
86
+ <option value="apple">Apple</option>
87
+ <option value="banana">Banana</option>
88
+ <option value="orange">Orange</option>
89
+ </w-combobox>
90
+ `);
91
+ const el = (await page.getByTestId("combobox").element());
92
+ const input = el?.shadowRoot
93
+ ?.querySelector("w-textfield")
94
+ ?.shadowRoot?.querySelector("input");
72
95
  input?.focus();
73
96
  await new Promise((resolve) => setTimeout(resolve, 100));
74
97
  await expect(page).toHaveNoAxeViolations();
@@ -1,4 +1,4 @@
1
- import { LitElement, PropertyValues } from 'lit';
1
+ import { LitElement, PropertyValues } from "lit";
2
2
  export interface ComboboxOption {
3
3
  value: string;
4
4
  label?: string;
@@ -116,7 +116,7 @@ export declare class WarpCombobox extends WarpCombobox_base {
116
116
  private _displayValue;
117
117
  static styles: import("lit").CSSResult[];
118
118
  constructor();
119
- firstUpdated(changedProps: Map<string, unknown>): void;
119
+ firstUpdated(): void;
120
120
  updated(changedProperties: Map<string, unknown>): void;
121
121
  resetFormControl(): void;
122
122
  connectedCallback(): void;
@@ -1 +1 @@
1
- import './combobox.js';
1
+ import "./combobox.js";
@@ -1,70 +1,70 @@
1
- import React from 'react';
2
- import { hydrateRoot } from 'react-dom/client';
3
- import { afterEach, beforeEach, describe, expect, test } from 'vitest';
4
- import { setupHydrationWarningCapture, testHydration } from '../../tests/react-hydration';
5
- import './combobox.js';
6
- describe('w-combobox React SSR hydration', () => {
1
+ import React from "react";
2
+ import { hydrateRoot } from "react-dom/client";
3
+ import { afterEach, beforeEach, describe, expect, test } from "vitest";
4
+ import { setupHydrationWarningCapture, testHydration, } from "../../tests/react-hydration";
5
+ import "./combobox.js";
6
+ describe("w-combobox React SSR hydration", () => {
7
7
  beforeEach(() => setupHydrationWarningCapture());
8
8
  afterEach(() => {
9
9
  window.__HYDRATION_WARNINGS__ = [];
10
10
  });
11
- test('default (no attributes) hydrates without warnings', async () => {
12
- const warnings = await testHydration('w-combobox', {});
11
+ test("default (no attributes) hydrates without warnings", async () => {
12
+ const warnings = await testHydration("w-combobox", {});
13
13
  expect(warnings).toEqual([]);
14
14
  });
15
- test('with label hydrates without warnings', async () => {
16
- const warnings = await testHydration('w-combobox', {
17
- label: 'Search',
15
+ test("with label hydrates without warnings", async () => {
16
+ const warnings = await testHydration("w-combobox", {
17
+ label: "Search",
18
18
  });
19
19
  expect(warnings).toEqual([]);
20
20
  });
21
- test('with placeholder hydrates without warnings', async () => {
22
- const warnings = await testHydration('w-combobox', {
23
- placeholder: 'Type to search...',
21
+ test("with placeholder hydrates without warnings", async () => {
22
+ const warnings = await testHydration("w-combobox", {
23
+ placeholder: "Type to search...",
24
24
  });
25
25
  expect(warnings).toEqual([]);
26
26
  });
27
- test('with value hydrates without warnings', async () => {
28
- const warnings = await testHydration('w-combobox', {
29
- value: 'test',
27
+ test("with value hydrates without warnings", async () => {
28
+ const warnings = await testHydration("w-combobox", {
29
+ value: "test",
30
30
  });
31
31
  expect(warnings).toEqual([]);
32
32
  });
33
- test('disabled combobox hydrates without warnings', async () => {
34
- const warnings = await testHydration('w-combobox', {
33
+ test("disabled combobox hydrates without warnings", async () => {
34
+ const warnings = await testHydration("w-combobox", {
35
35
  disabled: true,
36
36
  });
37
37
  expect(warnings).toEqual([]);
38
38
  });
39
- test('invalid combobox hydrates without warnings', async () => {
40
- const warnings = await testHydration('w-combobox', {
39
+ test("invalid combobox hydrates without warnings", async () => {
40
+ const warnings = await testHydration("w-combobox", {
41
41
  invalid: true,
42
42
  });
43
43
  expect(warnings).toEqual([]);
44
44
  });
45
- test('options array prop hydrates without runtime errors', async () => {
45
+ test("options array prop hydrates without runtime errors", async () => {
46
46
  const unhandledRejections = [];
47
47
  const onUnhandledRejection = (event) => {
48
48
  unhandledRejections.push(String(event.reason));
49
49
  event.preventDefault();
50
50
  };
51
- window.addEventListener('unhandledrejection', onUnhandledRejection);
51
+ window.addEventListener("unhandledrejection", onUnhandledRejection);
52
52
  try {
53
- await testHydration('w-combobox', {
53
+ await testHydration("w-combobox", {
54
54
  options: [
55
- { value: 'apple', label: 'Apple' },
56
- { value: 'banana', label: 'Banana' },
55
+ { value: "apple", label: "Apple" },
56
+ { value: "banana", label: "Banana" },
57
57
  ],
58
58
  });
59
59
  expect(unhandledRejections).toEqual([]);
60
60
  }
61
61
  finally {
62
- window.removeEventListener('unhandledrejection', onUnhandledRejection);
62
+ window.removeEventListener("unhandledrejection", onUnhandledRejection);
63
63
  }
64
64
  });
65
- test('dangerouslySetInnerHTML wrapper hydrates without attribute mismatch warnings', async () => {
66
- const container = document.createElement('div');
67
- container.id = 'hydration-innerhtml-root';
65
+ test("dangerouslySetInnerHTML wrapper hydrates without attribute mismatch warnings", async () => {
66
+ const container = document.createElement("div");
67
+ container.id = "hydration-innerhtml-root";
68
68
  document.body.appendChild(container);
69
69
  const innerHtml = '<w-combobox id="demo-combobox" placeholder="Search"></w-combobox>';
70
70
  try {
@@ -73,8 +73,8 @@ describe('w-combobox React SSR hydration', () => {
73
73
  // before React hydrates the tree.
74
74
  await new Promise((resolve) => setTimeout(resolve, 50));
75
75
  function App() {
76
- return React.createElement('section', {
77
- className: 'example',
76
+ return React.createElement("section", {
77
+ className: "example",
78
78
  // biome-ignore lint/security/noDangerouslySetInnerHtml: test reproduces React hydration mismatch path
79
79
  dangerouslySetInnerHTML: { __html: innerHtml },
80
80
  });
@@ -82,9 +82,9 @@ describe('w-combobox React SSR hydration', () => {
82
82
  hydrateRoot(container, React.createElement(App), {
83
83
  onRecoverableError: (error) => {
84
84
  const msg = error instanceof Error ? error.message : String(error);
85
- if (msg.includes('Hydration') ||
86
- msg.includes('hydrat') ||
87
- msg.includes('did not match') ||
85
+ if (msg.includes("Hydration") ||
86
+ msg.includes("hydrat") ||
87
+ msg.includes("did not match") ||
88
88
  msg.includes("didn't match")) {
89
89
  window.__HYDRATION_WARNINGS__.push(msg);
90
90
  }
@@ -97,22 +97,22 @@ describe('w-combobox React SSR hydration', () => {
97
97
  document.body.removeChild(container);
98
98
  }
99
99
  });
100
- test('declarative option children hydrate without attribute mismatch warnings', async () => {
101
- const container = document.createElement('div');
102
- container.id = 'hydration-options-root';
100
+ test("declarative option children hydrate without attribute mismatch warnings", async () => {
101
+ const container = document.createElement("div");
102
+ container.id = "hydration-options-root";
103
103
  document.body.appendChild(container);
104
104
  const innerHtml = [
105
105
  '<w-combobox id="demo-combobox" label="Search">',
106
106
  '<option value="apple">Apple</option>',
107
107
  '<option value="banana">Banana</option>',
108
- '</w-combobox>',
109
- ].join('');
108
+ "</w-combobox>",
109
+ ].join("");
110
110
  try {
111
111
  container.innerHTML = `<section class="example">${innerHtml}</section>`;
112
112
  await new Promise((resolve) => setTimeout(resolve, 50));
113
113
  function App() {
114
- return React.createElement('section', {
115
- className: 'example',
114
+ return React.createElement("section", {
115
+ className: "example",
116
116
  // biome-ignore lint/security/noDangerouslySetInnerHtml: test reproduces React hydration mismatch path
117
117
  dangerouslySetInnerHTML: { __html: innerHtml },
118
118
  });
@@ -120,9 +120,9 @@ describe('w-combobox React SSR hydration', () => {
120
120
  hydrateRoot(container, React.createElement(App), {
121
121
  onRecoverableError: (error) => {
122
122
  const msg = error instanceof Error ? error.message : String(error);
123
- if (msg.includes('Hydration') ||
124
- msg.includes('hydrat') ||
125
- msg.includes('did not match') ||
123
+ if (msg.includes("Hydration") ||
124
+ msg.includes("hydrat") ||
125
+ msg.includes("did not match") ||
126
126
  msg.includes("didn't match")) {
127
127
  window.__HYDRATION_WARNINGS__.push(msg);
128
128
  }