@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,135 +1,186 @@
1
- import { css } from 'lit';
1
+ import { css } from "lit";
2
2
  export const styles = css `
3
- :host {
4
- --_label-font-size: var(--w-c-checkbox-label-font-size, var(--w-font-size-m));
5
- --_label-line-height: var(--w-c-checkbox-label-line-height, var(--w-line-height-m));
6
-
7
- --_control-size: var(--w-c-checkbox-control-size, 2rem);
8
- --_gap: var(--w-c-checkbox-gap, 8px);
9
- --_radius: var(--w-c-checkbox-radius, 4px);
10
- --_border-width: var(--w-c-checkbox-border-width, 1px);
11
-
12
- --_bg-default: var(--w-c-checkbox-bg, var(--w-s-color-background));
13
- --_border-default: var(--w-c-checkbox-border-color, var(--w-s-color-border-strong));
14
- --_icon-color: var(--w-c-checkbox-icon-color, var(--w-s-color-icon-inverted));
15
-
16
- --_bg-checked: var(--w-c-checkbox-bg-checked, var(--w-s-color-background-primary));
17
- --_border-checked: var(--w-c-checkbox-border-color-checked, var(--w-s-color-border-primary));
18
- --_checked-icon: var(--w-c-checkbox-checked-icon, var(--w-icon-toggle-checked));
19
-
20
- --_border-invalid: var(--w-c-checkbox-border-color-invalid, var(--w-s-color-border-negative));
21
- --_bg-invalid-checked: var(--w-c-checkbox-bg-invalid-checked, var(--w-s-color-background-negative));
22
-
23
- --_bg-disabled: var(--w-c-checkbox-bg-disabled, var(--w-s-color-background-disabled-subtle));
24
- --_border-disabled: var(--w-c-checkbox-border-color-disabled, var(--w-s-color-border-disabled));
25
- --_bg-disabled-checked: var(--w-c-checkbox-bg-disabled-checked, var(--w-s-color-background-disabled));
26
-
27
- --_outline-width: var(--w-c-checkbox-outline-width, 2px);
28
- --_outline-color: var(--w-c-checkbox-outline-color, var(--w-s-color-border-focus));
29
- --_outline-offset: var(--w-c-checkbox-outline-offset, var(--w-outline-offset, 1px));
30
-
31
- --_transition: var(--w-c-checkbox-transition, all 150ms cubic-bezier(0.4, 0, 0.2, 1));
32
-
33
- --_bg: var(--_bg-default);
34
- --_border-color: var(--_border-default);
35
- }
36
-
37
- :host([type='checkbox']) {
38
- --_radius: var(--w-c-checkbox-radius, 4px);
39
- }
40
-
41
- :host([checked]),
42
- :host([indeterminate]) {
43
- --_bg: var(--_bg-checked);
44
- --_border-color: var(--_border-checked);
45
- }
46
-
47
- :host([disabled]) {
48
- --_bg: var(--_bg-disabled);
49
- --_border-color: var(--_border-disabled);
50
- }
51
-
52
- :host([disabled][checked]),
53
- :host([disabled][indeterminate]) {
54
- --_bg: var(--_bg-disabled-checked);
55
- }
56
-
57
- [part~='label'] {
58
- display: block;
59
- font-size: var(--_label-font-size);
60
- line-height: var(--_label-line-height);
61
- user-select: none;
62
- cursor: pointer;
63
- }
64
-
65
- [part='base'] {
66
- display: grid;
67
- grid-template-columns: var(--_control-size) max-content;
68
- gap: var(--_gap);
69
- }
70
-
71
- [part='input'] {
72
- position: absolute;
73
- padding: 0;
74
- margin: 0;
75
- opacity: 0;
76
- pointer-events: none;
77
- inset: 0;
78
- }
79
-
80
- [part='control'] {
81
- position: relative;
82
- display: block;
83
- height: var(--_control-size);
84
- width: var(--_control-size);
85
- flex-shrink: 0;
86
-
87
- border-width: var(--_border-width);
88
- border-style: solid;
89
- border-color: var(--_border-color);
90
- border-radius: var(--_radius);
91
-
92
- background-color: var(--_bg);
93
- color: var(--_icon-color);
94
-
95
- cursor: pointer;
96
- user-select: none;
97
- appearance: none;
98
- transition: var(--_transition);
99
-
100
- font-weight: 700;
101
- text-align: center;
102
- line-height: var(--w-line-height-xs);
103
- font-size: var(--w-font-size-m);
104
- }
105
-
106
- /* Invalid visuals are driven by the actual control state instead of host attributes.
3
+ :host {
4
+ --_label-font-size: var(
5
+ --w-c-checkbox-label-font-size,
6
+ var(--w-font-size-m)
7
+ );
8
+ --_label-line-height: var(
9
+ --w-c-checkbox-label-line-height,
10
+ var(--w-line-height-m)
11
+ );
12
+
13
+ --_control-size: var(--w-c-checkbox-control-size, 2rem);
14
+ --_gap: var(--w-c-checkbox-gap, 8px);
15
+ --_radius: var(--w-c-checkbox-radius, 4px);
16
+ --_border-width: var(--w-c-checkbox-border-width, 1px);
17
+
18
+ --_bg-default: var(--w-c-checkbox-bg, var(--w-s-color-background));
19
+ --_border-default: var(
20
+ --w-c-checkbox-border-color,
21
+ var(--w-s-color-border-strong)
22
+ );
23
+ --_icon-color: var(
24
+ --w-c-checkbox-icon-color,
25
+ var(--w-s-color-icon-inverted)
26
+ );
27
+
28
+ --_bg-checked: var(
29
+ --w-c-checkbox-bg-checked,
30
+ var(--w-s-color-background-primary)
31
+ );
32
+ --_border-checked: var(
33
+ --w-c-checkbox-border-color-checked,
34
+ var(--w-s-color-border-primary)
35
+ );
36
+ --_checked-icon: var(
37
+ --w-c-checkbox-checked-icon,
38
+ var(--w-icon-toggle-checked)
39
+ );
40
+
41
+ --_border-invalid: var(
42
+ --w-c-checkbox-border-color-invalid,
43
+ var(--w-s-color-border-negative)
44
+ );
45
+ --_bg-invalid-checked: var(
46
+ --w-c-checkbox-bg-invalid-checked,
47
+ var(--w-s-color-background-negative)
48
+ );
49
+
50
+ --_bg-disabled: var(
51
+ --w-c-checkbox-bg-disabled,
52
+ var(--w-s-color-background-disabled-subtle)
53
+ );
54
+ --_border-disabled: var(
55
+ --w-c-checkbox-border-color-disabled,
56
+ var(--w-s-color-border-disabled)
57
+ );
58
+ --_bg-disabled-checked: var(
59
+ --w-c-checkbox-bg-disabled-checked,
60
+ var(--w-s-color-background-disabled)
61
+ );
62
+
63
+ --_outline-width: var(--w-c-checkbox-outline-width, 2px);
64
+ --_outline-color: var(
65
+ --w-c-checkbox-outline-color,
66
+ var(--w-s-color-border-focus)
67
+ );
68
+ --_outline-offset: var(
69
+ --w-c-checkbox-outline-offset,
70
+ var(--w-outline-offset, 1px)
71
+ );
72
+
73
+ --_transition: var(
74
+ --w-c-checkbox-transition,
75
+ all 150ms cubic-bezier(0.4, 0, 0.2, 1)
76
+ );
77
+
78
+ --_bg: var(--_bg-default);
79
+ --_border-color: var(--_border-default);
80
+ }
81
+
82
+ :host([type="checkbox"]) {
83
+ --_radius: var(--w-c-checkbox-radius, 4px);
84
+ }
85
+
86
+ :host([checked]),
87
+ :host([indeterminate]) {
88
+ --_bg: var(--_bg-checked);
89
+ --_border-color: var(--_border-checked);
90
+ }
91
+
92
+ :host([disabled]) {
93
+ --_bg: var(--_bg-disabled);
94
+ --_border-color: var(--_border-disabled);
95
+ }
96
+
97
+ :host([disabled][checked]),
98
+ :host([disabled][indeterminate]) {
99
+ --_bg: var(--_bg-disabled-checked);
100
+ }
101
+
102
+ [part~="label"] {
103
+ display: block;
104
+ font-size: var(--_label-font-size);
105
+ line-height: var(--_label-line-height);
106
+ user-select: none;
107
+ cursor: pointer;
108
+ }
109
+
110
+ [part="base"] {
111
+ display: grid;
112
+ grid-template-columns: var(--_control-size) max-content;
113
+ gap: var(--_gap);
114
+ }
115
+
116
+ [part="input"] {
117
+ position: absolute;
118
+ padding: 0;
119
+ margin: 0;
120
+ opacity: 0;
121
+ pointer-events: none;
122
+ inset: 0;
123
+ }
124
+
125
+ [part="control"] {
126
+ position: relative;
127
+ display: block;
128
+ height: var(--_control-size);
129
+ width: var(--_control-size);
130
+ flex-shrink: 0;
131
+
132
+ border-width: var(--_border-width);
133
+ border-style: solid;
134
+ border-color: var(--_border-color);
135
+ border-radius: var(--_radius);
136
+
137
+ background-color: var(--_bg);
138
+ color: var(--_icon-color);
139
+
140
+ cursor: pointer;
141
+ user-select: none;
142
+ appearance: none;
143
+ transition: var(--_transition);
144
+
145
+ font-weight: 700;
146
+ text-align: center;
147
+ line-height: var(--w-line-height-xs);
148
+ font-size: var(--w-font-size-m);
149
+ }
150
+
151
+ /* Invalid visuals are driven by the actual control state instead of host attributes.
107
152
  * This preserves group-driven invalid styling without mutating host attributes. */
108
- [part='control']:has(> [part='input'][aria-invalid='true']:not(:disabled)) {
109
- border-color: var(--_border-invalid);
110
- }
111
-
112
- [part='control']:has(> [part='input'][aria-invalid='true']:is(:checked, :indeterminate):not(:disabled)) {
113
- background-color: var(--_bg-invalid-checked);
114
- }
115
-
116
- :host(:focus-visible) {
117
- outline: none;
118
- }
119
-
120
- [part='control']:has(> [part='input']:focus-visible:not(:disabled)),
121
- :host(:focus-visible) [part='control'] {
122
- outline: var(--_outline-width) solid var(--_outline-color);
123
- outline-offset: var(--_outline-offset);
124
- }
125
-
126
- /* checked icon (keep driven by actual input state for parity) */
127
- [part='control']:has(:checked) {
128
- background-image: var(--_checked-icon);
129
- background-position: center;
130
- }
131
-
132
- @media (prefers-reduced-motion: reduce) {
133
- :host { --w-c-checkbox-transition: none; }
134
- }
153
+ [part="control"]:has(> [part="input"][aria-invalid="true"]:not(:disabled)) {
154
+ border-color: var(--_border-invalid);
155
+ }
156
+
157
+ [part="control"]:has(
158
+ > [part="input"][aria-invalid="true"]:is(:checked, :indeterminate):not(
159
+ :disabled
160
+ )
161
+ ) {
162
+ background-color: var(--_bg-invalid-checked);
163
+ }
164
+
165
+ :host(:focus-visible) {
166
+ outline: none;
167
+ }
168
+
169
+ [part="control"]:has(> [part="input"]:focus-visible:not(:disabled)),
170
+ :host(:focus-visible) [part="control"] {
171
+ outline: var(--_outline-width) solid var(--_outline-color);
172
+ outline-offset: var(--_outline-offset);
173
+ }
174
+
175
+ /* checked icon (keep driven by actual input state for parity) */
176
+ [part="control"]:has(:checked) {
177
+ background-image: var(--_checked-icon);
178
+ background-position: center;
179
+ }
180
+
181
+ @media (prefers-reduced-motion: reduce) {
182
+ :host {
183
+ --w-c-checkbox-transition: none;
184
+ }
185
+ }
135
186
  `;
@@ -1,2 +1,2 @@
1
- import './checkbox-group.js';
2
- import '../checkbox/checkbox.js';
1
+ import "./checkbox-group.js";
2
+ import "../checkbox/checkbox.js";
@@ -1,108 +1,118 @@
1
- import { i18n } from '@lingui/core';
2
- import { userEvent } from 'vitest/browser';
3
- import { html } from 'lit';
4
- import { describe, expect, test } from 'vitest';
5
- import { render } from 'vitest-browser-lit';
6
- import './checkbox-group.js';
7
- import '../checkbox/checkbox.js';
1
+ import { i18n } from "@lingui/core";
2
+ import { userEvent } from "vitest/browser";
3
+ import { html } from "lit";
4
+ import { describe, expect, test } from "vitest";
5
+ import { render } from "vitest-browser-lit";
6
+ import "./checkbox-group.js";
7
+ import "../checkbox/checkbox.js";
8
8
  // Initialize i18n with English locale for tests
9
- i18n.load('en', {
10
- 'checkbox-group.label.optional': ['(optional)'],
11
- 'checkbox-group.validation.required': ['At least one selection is required.'],
9
+ i18n.load("en", {
10
+ "checkbox-group.label.optional": ["(optional)"],
11
+ "checkbox-group.validation.required": ["At least one selection is required."],
12
12
  });
13
- i18n.activate('en');
14
- const REQUIRED_MESSAGE = 'At least one selection is required.';
15
- describe('w-checkbox-group accessibility (WCAG 2.2)', () => {
16
- describe('axe-core automated checks', () => {
17
- test('default state has no violations', async () => {
13
+ i18n.activate("en");
14
+ const REQUIRED_MESSAGE = "At least one selection is required.";
15
+ describe("w-checkbox-group accessibility (WCAG 2.2)", () => {
16
+ describe("axe-core automated checks", () => {
17
+ test("default state has no violations", async () => {
18
18
  const page = render(html `
19
- <w-checkbox-group label="Preferences">
20
- <w-checkbox>One</w-checkbox>
21
- <w-checkbox>Two</w-checkbox>
22
- </w-checkbox-group>
23
- `);
19
+ <w-checkbox-group label="Preferences">
20
+ <w-checkbox>One</w-checkbox>
21
+ <w-checkbox>Two</w-checkbox>
22
+ </w-checkbox-group>
23
+ `);
24
24
  await expect(page).toHaveNoAxeViolations();
25
25
  });
26
- test('with help text has no violations', async () => {
26
+ test("with help text has no violations", async () => {
27
27
  const page = render(html `
28
- <w-checkbox-group label="Preferences" help-text="Select one">
29
- <w-checkbox>One</w-checkbox>
30
- <w-checkbox>Two</w-checkbox>
31
- </w-checkbox-group>
32
- `);
28
+ <w-checkbox-group label="Preferences" help-text="Select one">
29
+ <w-checkbox>One</w-checkbox>
30
+ <w-checkbox>Two</w-checkbox>
31
+ </w-checkbox-group>
32
+ `);
33
33
  await expect(page).toHaveNoAxeViolations();
34
34
  });
35
- test('required invalid state has no violations', async () => {
35
+ test("required invalid state has no violations", async () => {
36
36
  const page = render(html `
37
- <w-checkbox-group label="Preferences" required help-text="Select one">
38
- <w-checkbox>One</w-checkbox>
39
- <w-checkbox>Two</w-checkbox>
40
- </w-checkbox-group>
41
- `);
42
- const groupEl = document.querySelector('w-checkbox-group');
37
+ <w-checkbox-group label="Preferences" required help-text="Select one">
38
+ <w-checkbox>One</w-checkbox>
39
+ <w-checkbox>Two</w-checkbox>
40
+ </w-checkbox-group>
41
+ `);
42
+ const groupEl = document.querySelector("w-checkbox-group");
43
43
  groupEl.reportValidity?.();
44
44
  await expect(page).toHaveNoAxeViolations();
45
45
  });
46
46
  });
47
- describe('WCAG 1.3.1 - Info and Relationships', () => {
48
- test('group has accessible name from label', async () => {
47
+ describe("WCAG 1.3.1 - Info and Relationships", () => {
48
+ test("group has accessible name from label", async () => {
49
49
  const page = render(html `
50
- <w-checkbox-group label="Preferences">
51
- <w-checkbox>One</w-checkbox>
52
- <w-checkbox>Two</w-checkbox>
53
- </w-checkbox-group>
54
- `);
55
- await expect.element(page.getByRole('group', { name: 'Preferences' })).toBeVisible();
50
+ <w-checkbox-group label="Preferences">
51
+ <w-checkbox>One</w-checkbox>
52
+ <w-checkbox>Two</w-checkbox>
53
+ </w-checkbox-group>
54
+ `);
55
+ await expect
56
+ .element(page.getByRole("group", { name: "Preferences" }))
57
+ .toBeVisible();
56
58
  });
57
59
  });
58
- describe('WCAG 3.3.1 - Error Identification', () => {
59
- test('invalid state is indicated via aria-invalid', async () => {
60
+ describe("WCAG 3.3.1 - Error Identification", () => {
61
+ test("invalid state is indicated via aria-invalid", async () => {
60
62
  const page = render(html `
61
- <w-checkbox-group label="Preferences" required help-text="Select one">
62
- <w-checkbox>One</w-checkbox>
63
- <w-checkbox>Two</w-checkbox>
64
- </w-checkbox-group>
65
- `);
66
- const groupEl = document.querySelector('w-checkbox-group');
63
+ <w-checkbox-group label="Preferences" required help-text="Select one">
64
+ <w-checkbox>One</w-checkbox>
65
+ <w-checkbox>Two</w-checkbox>
66
+ </w-checkbox-group>
67
+ `);
68
+ const groupEl = document.querySelector("w-checkbox-group");
67
69
  groupEl.reportValidity?.();
68
- await expect.element(page.getByRole('group', { name: 'Preferences' })).toHaveAttribute('aria-invalid', 'true');
70
+ await expect
71
+ .element(page.getByRole("group", { name: "Preferences" }))
72
+ .toHaveAttribute("aria-invalid", "true");
69
73
  await expect.element(page.getByText(REQUIRED_MESSAGE)).toBeVisible();
70
74
  });
71
75
  });
72
- describe('WCAG 3.3.2 - Labels or Instructions', () => {
73
- test('help text is programmatically associated', async () => {
76
+ describe("WCAG 3.3.2 - Labels or Instructions", () => {
77
+ test("help text is programmatically associated", async () => {
74
78
  const page = render(html `
75
- <w-checkbox-group label="Preferences" help-text="Select one">
76
- <w-checkbox>One</w-checkbox>
77
- <w-checkbox>Two</w-checkbox>
78
- </w-checkbox-group>
79
- `);
80
- await expect.element(page.getByRole('group', { name: 'Preferences' })).toHaveAccessibleDescription('Select one');
79
+ <w-checkbox-group label="Preferences" help-text="Select one">
80
+ <w-checkbox>One</w-checkbox>
81
+ <w-checkbox>Two</w-checkbox>
82
+ </w-checkbox-group>
83
+ `);
84
+ await expect
85
+ .element(page.getByRole("group", { name: "Preferences" }))
86
+ .toHaveAccessibleDescription("Select one");
81
87
  });
82
88
  });
83
- describe('WCAG 2.1.1 - Keyboard', () => {
84
- test('tab moves through checkboxes and space toggles', async () => {
85
- const page = render(html `
86
- <button>Before</button>
87
- <w-checkbox-group label="Preferences">
88
- <w-checkbox>One</w-checkbox>
89
- <w-checkbox>Two</w-checkbox>
90
- </w-checkbox-group>
91
- <button>After</button>
92
- `);
93
- const checkboxes = Array.from(document.querySelectorAll('w-checkbox'));
89
+ describe("WCAG 2.1.1 - Keyboard", () => {
90
+ test("tab moves through checkboxes and space toggles", async () => {
91
+ render(html `
92
+ <button>Before</button>
93
+ <w-checkbox-group label="Preferences">
94
+ <w-checkbox>One</w-checkbox>
95
+ <w-checkbox>Two</w-checkbox>
96
+ </w-checkbox-group>
97
+ <button>After</button>
98
+ `);
99
+ const checkboxes = [...document.querySelectorAll("w-checkbox")];
94
100
  const firstCheckbox = checkboxes[0];
95
101
  const secondCheckbox = checkboxes[1];
96
102
  await firstCheckbox?.updateComplete;
97
103
  firstCheckbox?.focus();
98
- await expect.poll(() => firstCheckbox?.shadowRoot?.activeElement?.tagName).toBe('INPUT');
104
+ await expect
105
+ .poll(() => firstCheckbox?.shadowRoot?.activeElement?.tagName)
106
+ .toBe("INPUT");
99
107
  expect(firstCheckbox.checked).toBe(false);
100
- await userEvent.keyboard('[Space]');
108
+ await userEvent.keyboard("[Space]");
101
109
  await expect.poll(() => firstCheckbox.checked).toBe(true);
102
110
  await secondCheckbox?.updateComplete;
103
111
  secondCheckbox?.focus();
104
- await expect.poll(() => secondCheckbox?.shadowRoot?.activeElement?.tagName).toBe('INPUT');
105
- await userEvent.keyboard('[Space]');
112
+ await expect
113
+ .poll(() => secondCheckbox?.shadowRoot?.activeElement?.tagName)
114
+ .toBe("INPUT");
115
+ await userEvent.keyboard("[Space]");
106
116
  await expect.poll(() => secondCheckbox.checked).toBe(true);
107
117
  });
108
118
  });
@@ -1,5 +1,19 @@
1
- import { LitElement, PropertyValues } from 'lit';
1
+ import { LitElement, PropertyValues } from "lit";
2
2
  declare const WarpCheckboxGroup_base: import("@open-wc/form-control").Constructor<import("@open-wc/form-control").FormControlInterface> & typeof LitElement;
3
+ /**
4
+ * Checkboxes allow users to select multiple options from a list of choices.
5
+ *
6
+ * Use with `w-checkbox`.
7
+ *
8
+ * ## Architecture Note
9
+ * This component uses a <div> wrapper instead of the more semantic <fieldset> element.
10
+ * Note that w-radio-group uses <fieldset>, which provides better accessibility and follows
11
+ * HTML best practices. This inconsistency exists for historical reasons and may be addressed
12
+ * in a future major version to align both on the more semantic approach.
13
+ *
14
+ * TODO: Align w-checkbox-group to use <fieldset> in a future major version after assessing
15
+ * backwards compatibility implications (CSS selectors, etc.).
16
+ */
3
17
  export declare class WarpCheckboxGroup extends WarpCheckboxGroup_base {
4
18
  #private;
5
19
  static shadowRootOptions: {
@@ -63,7 +77,7 @@ export declare class WarpCheckboxGroup extends WarpCheckboxGroup_base {
63
77
  export declare const WCheckboxGroup: typeof WarpCheckboxGroup;
64
78
  declare global {
65
79
  interface HTMLElementTagNameMap {
66
- 'w-checkbox-group': WarpCheckboxGroup;
80
+ "w-checkbox-group": WarpCheckboxGroup;
67
81
  }
68
82
  }
69
83
  export {};
@@ -1,2 +1,2 @@
1
- import '../checkbox/checkbox.js';
2
- import './checkbox-group.js';
1
+ import "../checkbox/checkbox.js";
2
+ import "./checkbox-group.js";
@@ -1,40 +1,57 @@
1
- import { afterEach, beforeEach, describe, expect, test } from 'vitest';
2
- import { setupHydrationWarningCapture, testHydration } from '../../tests/react-hydration';
3
- import '../checkbox/checkbox.js';
4
- import './checkbox-group.js';
5
- describe('w-checkbox-group React SSR hydration', () => {
1
+ import { afterEach, beforeEach, describe, expect, test } from "vitest";
2
+ import { setupHydrationWarningCapture, testHydration, } from "../../tests/react-hydration";
3
+ import "../checkbox/checkbox.js";
4
+ import "./checkbox-group.js";
5
+ describe("w-checkbox-group React SSR hydration", () => {
6
6
  beforeEach(() => setupHydrationWarningCapture());
7
7
  afterEach(() => {
8
8
  window.__HYDRATION_WARNINGS__ = [];
9
9
  });
10
10
  // Note: w-checkbox-group requires w-checkbox children to function properly.
11
11
  // Testing the parent element alone to verify its own attributes don't cause mismatch.
12
- test('default (no attributes) hydrates without warnings', async () => {
13
- const warnings = await testHydration('w-checkbox-group', {});
12
+ test("default (no attributes) hydrates without warnings", async () => {
13
+ const warnings = await testHydration("w-checkbox-group", {});
14
14
  expect(warnings).toEqual([]);
15
15
  });
16
- test('with label hydrates without warnings', async () => {
17
- const warnings = await testHydration('w-checkbox-group', { label: 'Options' });
16
+ test("with label hydrates without warnings", async () => {
17
+ const warnings = await testHydration("w-checkbox-group", {
18
+ label: "Options",
19
+ });
18
20
  expect(warnings).toEqual([]);
19
21
  });
20
- test('with name hydrates without warnings', async () => {
21
- const warnings = await testHydration('w-checkbox-group', { label: 'Options', name: 'options' });
22
+ test("with name hydrates without warnings", async () => {
23
+ const warnings = await testHydration("w-checkbox-group", {
24
+ label: "Options",
25
+ name: "options",
26
+ });
22
27
  expect(warnings).toEqual([]);
23
28
  });
24
- test('with optional hydrates without warnings', async () => {
25
- const warnings = await testHydration('w-checkbox-group', { label: 'Options', optional: true });
29
+ test("with optional hydrates without warnings", async () => {
30
+ const warnings = await testHydration("w-checkbox-group", {
31
+ label: "Options",
32
+ optional: true,
33
+ });
26
34
  expect(warnings).toEqual([]);
27
35
  });
28
- test('with help-text hydrates without warnings', async () => {
29
- const warnings = await testHydration('w-checkbox-group', { label: 'Options', 'help-text': 'Select one or more' });
36
+ test("with help-text hydrates without warnings", async () => {
37
+ const warnings = await testHydration("w-checkbox-group", {
38
+ label: "Options",
39
+ "help-text": "Select one or more",
40
+ });
30
41
  expect(warnings).toEqual([]);
31
42
  });
32
- test('invalid checkbox-group hydrates without warnings', async () => {
33
- const warnings = await testHydration('w-checkbox-group', { label: 'Options', invalid: true });
43
+ test("invalid checkbox-group hydrates without warnings", async () => {
44
+ const warnings = await testHydration("w-checkbox-group", {
45
+ label: "Options",
46
+ invalid: true,
47
+ });
34
48
  expect(warnings).toEqual([]);
35
49
  });
36
- test('required checkbox-group hydrates without warnings', async () => {
37
- const warnings = await testHydration('w-checkbox-group', { label: 'Options', required: true });
50
+ test("required checkbox-group hydrates without warnings", async () => {
51
+ const warnings = await testHydration("w-checkbox-group", {
52
+ label: "Options",
53
+ required: true,
54
+ });
38
55
  expect(warnings).toEqual([]);
39
56
  });
40
57
  });