@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,5 +1,5 @@
1
- import { html, LitElement } from 'lit';
2
- import { unsafeHTML } from 'lit/directives/unsafe-html.js';
1
+ import { html, LitElement } from "lit";
2
+ import { unsafeHTML } from "lit/directives/unsafe-html.js";
3
3
  class UnstyledHeading extends LitElement {
4
4
  static { this.properties = {
5
5
  level: { type: Number },
@@ -16,7 +16,7 @@ class UnstyledHeading extends LitElement {
16
16
  return !this.level ? html `<slot></slot>` : unsafeHTML(this._markup);
17
17
  }
18
18
  }
19
- if (!customElements.get('w-unstyled-heading')) {
20
- customElements.define('w-unstyled-heading', UnstyledHeading);
19
+ if (!customElements.get("w-unstyled-heading")) {
20
+ customElements.define("w-unstyled-heading", UnstyledHeading);
21
21
  }
22
22
  export { UnstyledHeading };
@@ -1 +1 @@
1
- export const windowExists = typeof window !== 'undefined';
1
+ export const windowExists = typeof window !== "undefined";
@@ -1,4 +1,4 @@
1
- import { nanoid } from 'nanoid';
2
- export function uniqueId(prefix = '') {
1
+ import { nanoid } from "nanoid";
2
+ export function uniqueId(prefix = "") {
3
3
  return `${prefix}${nanoid()}`;
4
4
  }
@@ -1,9 +1,9 @@
1
- import 'vitest-browser-lit';
2
- import type { RunOptions } from 'axe-core';
1
+ import "vitest-browser-lit";
2
+ import type { RunOptions } from "axe-core";
3
3
  interface AxeMatchers {
4
4
  toHaveNoAxeViolations(options?: RunOptions): Promise<void>;
5
5
  }
6
- declare module 'vitest' {
6
+ declare module "vitest" {
7
7
  interface Assertion extends AxeMatchers {
8
8
  }
9
9
  interface AsymmetricMatchersContaining extends AxeMatchers {
@@ -1,33 +1,36 @@
1
- import 'vitest-browser-lit';
2
- import axe from 'axe-core';
3
- import { expect } from 'vitest';
1
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
2
+ import "vitest-browser-lit";
3
+ import axe from "axe-core";
4
+ import { expect } from "vitest";
4
5
  function formatViolations(violations) {
5
6
  if (violations.length === 0) {
6
- return '';
7
+ return "";
7
8
  }
8
9
  return violations
9
10
  .map((violation) => {
10
11
  const nodeInfo = violation.nodes
11
12
  .map((node) => {
12
- const selector = node.target.join(', ');
13
+ const selector = node.target.join(", ");
13
14
  return ` - Element: ${selector}\n HTML: ${node.html}\n ${node.failureSummary}`;
14
15
  })
15
- .join('\n');
16
+ .join("\n");
16
17
  return `${violation.id}: ${violation.help}\n Impact: ${violation.impact}\n Help URL: ${violation.helpUrl}\n${nodeInfo}`;
17
18
  })
18
- .join('\n\n');
19
+ .join("\n\n");
19
20
  }
20
21
  async function runAxe(container = document.body, options = {}) {
21
22
  return axe.run(container, {
22
23
  runOnly: {
23
- type: 'tag',
24
- values: ['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa', 'wcag22aa'],
24
+ type: "tag",
25
+ values: ["wcag2a", "wcag2aa", "wcag21a", "wcag21aa", "wcag22aa"],
25
26
  },
26
27
  ...options,
27
28
  });
28
29
  }
29
30
  function resolveAxeContainer(received) {
30
- if (received && typeof received === 'object' && 'container' in received) {
31
+ if (received &&
32
+ typeof received === "object" &&
33
+ "container" in received) {
31
34
  const { container } = received;
32
35
  if (container instanceof Element)
33
36
  return container;
@@ -41,15 +44,15 @@ function resolveAxeContainer(received) {
41
44
  return document.body;
42
45
  }
43
46
  function toHaveNoViolations(results) {
44
- if (typeof results.violations === 'undefined') {
45
- throw new Error('No axe-core results found, unable to assert');
47
+ if (typeof results.violations === "undefined") {
48
+ throw new Error("No axe-core results found, unable to assert");
46
49
  }
47
50
  const violations = results.violations;
48
51
  const pass = violations.length === 0;
49
52
  return {
50
53
  pass,
51
54
  message: () => pass
52
- ? 'Expected to have accessibility violations, but none were found'
55
+ ? "Expected to have accessibility violations, but none were found"
53
56
  : `Expected no accessibility violations, but found ${violations.length}:\n\n${formatViolations(violations)}`,
54
57
  actual: violations,
55
58
  };
@@ -1,16 +1,18 @@
1
- import React from 'react';
2
- import { hydrateRoot } from 'react-dom/client';
1
+ import React from "react";
2
+ import { hydrateRoot } from "react-dom/client";
3
3
  export function setupHydrationWarningCapture() {
4
4
  window.__HYDRATION_WARNINGS__ = [];
5
5
  const originalError = console.error;
6
6
  console.error = (...args) => {
7
- const msg = args.map((a) => (typeof a === 'string' ? a : String(a))).join(' ');
8
- if (msg.includes('Hydration') ||
9
- msg.includes('hydrat') ||
10
- msg.includes('did not match') ||
11
- msg.includes('server rendered HTML') ||
12
- msg.includes('Text content does not match') ||
13
- msg.includes('Expected server HTML')) {
7
+ const msg = args
8
+ .map((a) => (typeof a === "string" ? a : String(a)))
9
+ .join(" ");
10
+ if (msg.includes("Hydration") ||
11
+ msg.includes("hydrat") ||
12
+ msg.includes("did not match") ||
13
+ msg.includes("server rendered HTML") ||
14
+ msg.includes("Text content does not match") ||
15
+ msg.includes("Expected server HTML")) {
14
16
  window.__HYDRATION_WARNINGS__.push(msg);
15
17
  }
16
18
  originalError.apply(console, args);
@@ -25,11 +27,11 @@ function propsToHtml(props) {
25
27
  if (value === true)
26
28
  return key;
27
29
  if (value === false || value === undefined || value === null)
28
- return '';
30
+ return "";
29
31
  return `${key}="${value}"`;
30
32
  })
31
33
  .filter(Boolean)
32
- .join(' ');
34
+ .join(" ");
33
35
  }
34
36
  /**
35
37
  * Converts a DOM node to a React element.
@@ -43,15 +45,10 @@ function nodeToReact(node) {
43
45
  const el = node;
44
46
  const props = {};
45
47
  for (const attr of el.attributes) {
46
- // Convert HTML attributes to React props
47
- let name = attr.name;
48
- if (name === 'class')
49
- name = 'className';
50
- if (name === 'for')
51
- name = 'htmlFor';
48
+ const name = attr.name;
52
49
  props[name] = attr.value;
53
50
  }
54
- const children = Array.from(el.childNodes).map(nodeToReact).filter(Boolean);
51
+ const children = Array.from(el.childNodes, nodeToReact).filter(Boolean);
55
52
  return React.createElement(el.tagName.toLowerCase(), props, ...children);
56
53
  }
57
54
  return null;
@@ -60,24 +57,22 @@ function nodeToReact(node) {
60
57
  * Converts an HTML string to an array of React elements.
61
58
  */
62
59
  function htmlToReactElements(html) {
63
- const template = document.createElement('template');
60
+ const template = document.createElement("template");
64
61
  template.innerHTML = html;
65
- return Array.from(template.content.childNodes)
66
- .map(nodeToReact)
67
- .filter((node) => node !== null && (typeof node !== 'string' || node.trim()));
62
+ return Array.from(template.content.childNodes, nodeToReact).filter((node) => node !== null && (typeof node !== "string" || node.trim()));
68
63
  }
69
64
  /**
70
65
  * Tests that a component hydrates without warnings.
71
66
  * Takes tag name and props, generates both SSR HTML and React element from them.
72
67
  */
73
68
  export async function testHydration(tagName, props = {}) {
74
- const container = document.createElement('div');
75
- container.id = 'hydration-test-root';
69
+ const container = document.createElement("div");
70
+ container.id = "hydration-test-root";
76
71
  document.body.appendChild(container);
77
72
  try {
78
73
  // Generate SSR HTML from props
79
74
  const attrs = propsToHtml(props);
80
- const ssrHtml = `<${tagName}${attrs ? ` ${attrs}` : ''}></${tagName}>`;
75
+ const ssrHtml = `<${tagName}${attrs ? ` ${attrs}` : ""}></${tagName}>`;
81
76
  container.innerHTML = ssrHtml;
82
77
  // Create React element from same props and hydrate
83
78
  // Use onRecoverableError to capture hydration errors (React 19+)
@@ -85,7 +80,9 @@ export async function testHydration(tagName, props = {}) {
85
80
  hydrateRoot(container, element, {
86
81
  onRecoverableError: (error) => {
87
82
  const msg = error instanceof Error ? error.message : String(error);
88
- if (msg.includes('Hydration') || msg.includes('hydrat') || msg.includes('did not match')) {
83
+ if (msg.includes("Hydration") ||
84
+ msg.includes("hydrat") ||
85
+ msg.includes("did not match")) {
89
86
  window.__HYDRATION_WARNINGS__.push(msg);
90
87
  }
91
88
  },
@@ -107,13 +104,13 @@ export async function testHydration(tagName, props = {}) {
107
104
  * (e.g., adding classes, moving children to shadow DOM).
108
105
  */
109
106
  export async function testHydrationWithChildren(tagName, props, childrenHtml) {
110
- const container = document.createElement('div');
111
- container.id = 'hydration-test-root';
107
+ const container = document.createElement("div");
108
+ container.id = "hydration-test-root";
112
109
  document.body.appendChild(container);
113
110
  try {
114
111
  // Generate SSR HTML from props with children
115
112
  const attrs = propsToHtml(props);
116
- const ssrHtml = `<${tagName}${attrs ? ` ${attrs}` : ''}>${childrenHtml}</${tagName}>`;
113
+ const ssrHtml = `<${tagName}${attrs ? ` ${attrs}` : ""}>${childrenHtml}</${tagName}>`;
117
114
  container.innerHTML = ssrHtml;
118
115
  // Convert children HTML to React elements so they're part of React's tree.
119
116
  // This allows React to detect mismatches when components modify children.
@@ -123,7 +120,9 @@ export async function testHydrationWithChildren(tagName, props, childrenHtml) {
123
120
  hydrateRoot(container, element, {
124
121
  onRecoverableError: (error) => {
125
122
  const msg = error instanceof Error ? error.message : String(error);
126
- if (msg.includes('Hydration') || msg.includes('hydrat') || msg.includes('did not match')) {
123
+ if (msg.includes("Hydration") ||
124
+ msg.includes("hydrat") ||
125
+ msg.includes("did not match")) {
127
126
  window.__HYDRATION_WARNINGS__.push(msg);
128
127
  }
129
128
  },
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React from "react";
2
2
  type SsrAttributeCase = {
3
3
  attrName: string;
4
4
  propName: string;
@@ -1,9 +1,9 @@
1
- import React from 'react';
2
- import { renderToString } from 'react-dom/server';
3
- import { describe, expect, test } from 'vitest';
1
+ import React from "react";
2
+ import { renderToString } from "react-dom/server";
3
+ import { describe, expect, test } from "vitest";
4
4
  export function describeReactSsrAttributeMapping(componentName, Component, cases) {
5
5
  describe(`${componentName} React SSR`, () => {
6
- test.each(cases)('renders $propName as the $attrName attribute', ({ attrName, propName, value = true }) => {
6
+ test.each(cases)("renders $propName as the $attrName attribute", ({ attrName, propName, value = true }) => {
7
7
  const html = renderToString(React.createElement(Component, { [propName]: value }, componentName));
8
8
  expect(html).toContain(attrName);
9
9
  expect(html).not.toContain(propName);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@warp-ds/elements",
4
- "version": "2.10.0-next.14",
4
+ "version": "2.10.0-next.17",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -290,7 +290,10 @@
290
290
  "description": "Add this property to render a clickable Warp search icon.",
291
291
  "value": { "type": "boolean", "default": "false" }
292
292
  },
293
- { "name": "label", "value": { "type": "string", "default": "''" } },
293
+ {
294
+ "name": "label",
295
+ "value": { "type": "string", "default": "\"\"" }
296
+ },
294
297
  {
295
298
  "name": "icon",
296
299
  "value": { "type": "string | null", "default": "null" }
@@ -326,7 +329,7 @@
326
329
  "name": "variant",
327
330
  "value": {
328
331
  "type": "'negative' | 'positive' | 'warning' | 'info'",
329
- "default": "'info'"
332
+ "default": "\"info\""
330
333
  }
331
334
  },
332
335
  {
@@ -335,7 +338,7 @@
335
338
  },
336
339
  {
337
340
  "name": "role",
338
- "value": { "type": "string", "default": "'alert'" }
341
+ "value": { "type": "string", "default": "\"alert\"" }
339
342
  }
340
343
  ],
341
344
  "events": [],
@@ -646,7 +649,7 @@
646
649
  "description": "Preferred placement relative to the trigger element.\nSets the initial direction for positioning, for example `top`, `right`, `bottom`, or `left` variants.",
647
650
  "value": {
648
651
  "type": "'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'",
649
- "default": "'bottom'"
652
+ "default": "\"bottom\""
650
653
  }
651
654
  },
652
655
  {
@@ -850,7 +853,7 @@
850
853
  {
851
854
  "name": "role",
852
855
  "description": "ARIA role for the box wrapper.\nDefaults to a role of `region`. Set `role=\"none\"` to override this behaviour for purely visual grouping, or set a specific role when the box has a clearer semantic purpose.",
853
- "value": { "type": "string", "default": "'region'" }
856
+ "value": { "type": "string", "default": "\"region\"" }
854
857
  }
855
858
  ],
856
859
  "events": [],
@@ -902,6 +905,42 @@
902
905
  "events": []
903
906
  }
904
907
  },
908
+ {
909
+ "name": "w-breadcrumb-item",
910
+ "description": "Represents one item in a `w-breadcrumbs` trail.\nRenders the slotted label as a link when `href` is set, or as text when it is not, and adds a separator after non-current items.\n\n[See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/navigation-breadcrumbs--docs)\n---\n\n\n### **Slots:**\n - _default_ - The breadcrumb label content.",
911
+ "doc-url": "",
912
+ "attributes": [
913
+ {
914
+ "name": "current-page",
915
+ "description": "Marks this item as the current page.\nUse this on the final breadcrumb item so it exposes `aria-current=\"page\"` and does not render a trailing separator.",
916
+ "value": { "type": "boolean", "default": "false" }
917
+ },
918
+ {
919
+ "name": "href",
920
+ "description": "URL for linked breadcrumb items.\nWhen omitted, the item renders as non-focusable text.",
921
+ "value": { "type": "string | null", "default": "null" }
922
+ }
923
+ ],
924
+ "slots": [
925
+ { "name": "", "description": "The breadcrumb label content." }
926
+ ],
927
+ "events": [],
928
+ "js": {
929
+ "properties": [
930
+ {
931
+ "name": "currentPage",
932
+ "description": "Marks this item as the current page.\nUse this on the final breadcrumb item so it exposes `aria-current=\"page\"` and does not render a trailing separator.",
933
+ "type": "boolean"
934
+ },
935
+ {
936
+ "name": "href",
937
+ "description": "URL for linked breadcrumb items.\nWhen omitted, the item renders as non-focusable text.",
938
+ "type": "string | null"
939
+ }
940
+ ],
941
+ "events": []
942
+ }
943
+ },
905
944
  {
906
945
  "name": "w-card",
907
946
  "description": "Card is a layout component used for separating content areas on a page.\n\n[See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/navigation-card--docs)\n---\n",
@@ -1047,7 +1086,7 @@
1047
1086
  },
1048
1087
  {
1049
1088
  "name": "w-checkbox-group",
1050
- "description": "\n---\n\n\n### **Methods:**\n - **checkValidity(): _boolean_** - Checks whether the group passes constraint validation\n- **reportValidity(): _boolean_** - Checks validity and shows the validation message if invalid\n- **focus(options: _FocusOptions_)** - Sets focus on the checkbox group.",
1089
+ "description": "Checkboxes allow users to select multiple options from a list of choices.\n\nUse with `w-checkbox`.\n\n## Architecture Note\nThis component uses a <div> wrapper instead of the more semantic <fieldset> element.\nNote that w-radio-group uses <fieldset>, which provides better accessibility and follows\nHTML best practices. This inconsistency exists for historical reasons and may be addressed\nin a future major version to align both on the more semantic approach.\n\nTODO: Align w-checkbox-group to use <fieldset> in a future major version after assessing\nbackwards compatibility implications (CSS selectors, etc.).\n---\n\n\n### **Methods:**\n - **checkValidity(): _boolean_** - Checks whether the group passes constraint validation\n- **reportValidity(): _boolean_** - Checks validity and shows the validation message if invalid\n- **focus(options: _FocusOptions_)** - Sets focus on the checkbox group.",
1051
1090
  "doc-url": "",
1052
1091
  "attributes": [
1053
1092
  {
@@ -1131,17 +1170,17 @@
1131
1170
  {
1132
1171
  "name": "label",
1133
1172
  "description": "The label displayed above the input.\n\nUse this to give the combobox a visible and accessible name.",
1134
- "value": { "type": "string | undefined", "default": "''" }
1173
+ "value": { "type": "string | undefined", "default": "\"\"" }
1135
1174
  },
1136
1175
  {
1137
1176
  "name": "placeholder",
1138
1177
  "description": "Placeholder text displayed when the input is empty.\n\nUse this as a short hint for the expected input. Do not use placeholder text as a replacement for a label.",
1139
- "value": { "type": "string | undefined", "default": "''" }
1178
+ "value": { "type": "string | undefined", "default": "\"\"" }
1140
1179
  },
1141
1180
  {
1142
1181
  "name": "value",
1143
1182
  "description": "The selected or typed value.\n\nWhen an option is selected, this is set to the option value. The displayed text may differ when the option has a separate label.",
1144
- "value": { "type": "string", "default": "''" }
1183
+ "value": { "type": "string", "default": "\"\"" }
1145
1184
  },
1146
1185
  {
1147
1186
  "name": "open-on-focus",
@@ -1171,7 +1210,7 @@
1171
1210
  {
1172
1211
  "name": "help-text",
1173
1212
  "description": "Help text displayed below the input.\n\nUse this for supporting guidance or validation feedback.",
1174
- "value": { "type": "string | undefined", "default": "''" }
1213
+ "value": { "type": "string | undefined", "default": "\"\"" }
1175
1214
  },
1176
1215
  {
1177
1216
  "name": "disabled",
@@ -1191,12 +1230,12 @@
1191
1230
  {
1192
1231
  "name": "name",
1193
1232
  "description": "The name submitted with the combobox value.\n\nUse this when the combobox belongs to a form and its value should be included in form data.",
1194
- "value": { "type": "string | undefined", "default": "''" }
1233
+ "value": { "type": "string | undefined", "default": "\"\"" }
1195
1234
  },
1196
1235
  {
1197
1236
  "name": "autocomplete",
1198
1237
  "description": "The autocomplete attribute passed to the internal input.\n\nDefaults to `off`. Set this when browser autocomplete should be enabled or scoped to a specific autocomplete token.",
1199
- "value": { "type": "string | undefined", "default": "'off'" }
1238
+ "value": { "type": "string | undefined", "default": "\"off\"" }
1200
1239
  }
1201
1240
  ],
1202
1241
  "events": [],
@@ -1309,17 +1348,17 @@
1309
1348
  {
1310
1349
  "name": "header-format",
1311
1350
  "description": "The date format used in the calendar header.\n\nThe syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).",
1312
- "value": { "type": "string", "default": "'MMMM yyyy'" }
1351
+ "value": { "type": "string", "default": "\"MMMM yyyy\"" }
1313
1352
  },
1314
1353
  {
1315
1354
  "name": "weekday-format",
1316
1355
  "description": "The weekday format shown above the calendar grid.\n\nThe syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).",
1317
- "value": { "type": "string", "default": "'EEEEEE'" }
1356
+ "value": { "type": "string", "default": "\"EEEEEE\"" }
1318
1357
  },
1319
1358
  {
1320
1359
  "name": "day-format",
1321
1360
  "description": "The date format used for calendar day accessible names.\n\nThe syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).",
1322
- "value": { "type": "string", "default": "'PPPP'" }
1361
+ "value": { "type": "string", "default": "\"PPPP\"" }
1323
1362
  }
1324
1363
  ],
1325
1364
  "events": [],
@@ -1862,18 +1901,18 @@
1862
1901
  },
1863
1902
  {
1864
1903
  "name": "w-radio-group",
1865
- "description": "Radios allow users to select a single option from a list of choices.\n\nUse with `w-radio`.\n---\n\n\n### **Slots:**\n - **label** - Alternative to the `label` attribute should you need custom HTML.\n- **help-text** - Alternative to the `help-text` attribute should you need custom HTML.",
1904
+ "description": "Radios allow users to select a single option from a list of choices.\n\nUse with `w-radio`.\n---\n\n\n### **Slots:**\n - **label** - Alternative to the `label` attribute should you need custom HTML.\n- **help-text** - Alternative to the `help-text` attribute should you need custom HTML. ## Architecture Note This component uses semantic <fieldset> element for grouping radio controls, which provides better accessibility and follows HTML best practices. Note that w-checkbox-group currently uses <div> instead - this inconsistency exists for historical reasons and may be addressed in a future major version to align both on the more semantic approach. TODO: Align w-checkbox-group to also use <fieldset> in a future major version after assessing backwards compatibility implications (CSS selectors, etc.).",
1866
1905
  "doc-url": "",
1867
1906
  "attributes": [
1868
1907
  {
1869
1908
  "name": "label",
1870
1909
  "description": "Label for the radio group.",
1871
- "value": { "type": "string", "default": "''" }
1910
+ "value": { "type": "string", "default": "\"\"" }
1872
1911
  },
1873
1912
  {
1874
1913
  "name": "help-text",
1875
1914
  "description": "Help text for the radio group.\n\nIf you set `required` and `invalid` the group gets a default error message, but you can override it with this attribute.",
1876
- "value": { "type": "string", "default": "''" }
1915
+ "value": { "type": "string", "default": "\"\"" }
1877
1916
  },
1878
1917
  {
1879
1918
  "name": "optional",
@@ -1908,7 +1947,7 @@
1908
1947
  },
1909
1948
  {
1910
1949
  "name": "help-text",
1911
- "description": "Alternative to the `help-text` attribute should you need custom HTML."
1950
+ "description": "Alternative to the `help-text` attribute should you need custom HTML. ## Architecture Note This component uses semantic <fieldset> element for grouping radio controls, which provides better accessibility and follows HTML best practices. Note that w-checkbox-group currently uses <div> instead - this inconsistency exists for historical reasons and may be addressed in a future major version to align both on the more semantic approach. TODO: Align w-checkbox-group to also use <fieldset> in a future major version after assessing backwards compatibility implications (CSS selectors, etc.)."
1912
1951
  }
1913
1952
  ],
1914
1953
  "events": [],
@@ -2364,7 +2403,7 @@
2364
2403
  {
2365
2404
  "name": "action-placement",
2366
2405
  "description": "The placement of the action and close buttons.",
2367
- "value": { "type": "'inline' | 'block'", "default": "'inline'" }
2406
+ "value": { "type": "'inline' | 'block'", "default": "\"inline\"" }
2368
2407
  },
2369
2408
  {
2370
2409
  "name": "duration",
@@ -2396,7 +2435,7 @@
2396
2435
  },
2397
2436
  {
2398
2437
  "name": "w-snackbar",
2399
- "description": "A Snackbar shows brief user feedback messages that overlay content, with an optional action such as Undo.\n\nInclude one `<w-snackbar></w-snackbar>` in the document `<body>`. Use the `create` function to create messages.\n---\n\n\n### **Methods:**\n - **create(message: _string_, options: _CreateSnackbarOptions_): __** - Creates a snackbar item and immediately adds it to the snackbar.\n\nBy default the snackbar item automatically closes after 4 seconds (`SnackbarDuration.Short`).\n\nIf you include an `action` in the options the default `duration` is\nset to 10 seconds (`SnackbarDuration.Long`) and can not be made shorter. \n\nA `duration` of 10 seconds or longer forces the close button to be visible.\n\nThe default `variant` is `neutral` which does not have an icon.\n\nSet `duration` to `SnackbarDuration.Infinite` if you want a persistent message.\n\n### **Slots:**\n - **default** - `w-snackbar-item` gets placed inside the default slot by the `create` function.\n\n### **CSS Properties:**\n - **--w-c-snackbar-container-gap** - undefined _(default: undefined)_\n- **--w-c-snackbar-position-bottom** - undefined _(default: undefined)_\n- **--w-c-snackbar-position-left** - undefined _(default: undefined)_\n- **--w-c-snackbar-position-right** - undefined _(default: undefined)_\n- **--w-c-snackbar-position-top** - undefined _(default: undefined)_\n- **--w-c-snackbar-z-index** - undefined _(default: undefined)_\n\n### **CSS Parts:**\n - **container** - the live region that positions messages on the screen.",
2438
+ "description": "A Snackbar shows brief user feedback messages that overlay content, with an optional action such as Undo.\n\nInclude one `<w-snackbar></w-snackbar>` in the document `<body>`. Use the `create` function to create messages.\n---\n\n\n### **Methods:**\n - **create(message: _string_, options: _CreateSnackbarOptions_): __** - Creates a snackbar item and immediately adds it to the snackbar.\n\nBy default the snackbar item automatically closes after 4 seconds (`SnackbarDuration.Short`).\n\nIf you include an `action` in the options the default `duration` is\nset to 10 seconds (`SnackbarDuration.Long`) and can not be made shorter.\n\nA `duration` of 10 seconds or longer forces the close button to be visible.\n\nThe default `variant` is `neutral` which does not have an icon.\n\nSet `duration` to `SnackbarDuration.Infinite` if you want a persistent message.\n\n### **Slots:**\n - **default** - `w-snackbar-item` gets placed inside the default slot by the `create` function.\n\n### **CSS Properties:**\n - **--w-c-snackbar-container-gap** - undefined _(default: undefined)_\n- **--w-c-snackbar-position-bottom** - undefined _(default: undefined)_\n- **--w-c-snackbar-position-left** - undefined _(default: undefined)_\n- **--w-c-snackbar-position-right** - undefined _(default: undefined)_\n- **--w-c-snackbar-position-top** - undefined _(default: undefined)_\n- **--w-c-snackbar-z-index** - undefined _(default: undefined)_\n\n### **CSS Parts:**\n - **container** - the live region that positions messages on the screen.",
2400
2439
  "doc-url": "",
2401
2440
  "attributes": [],
2402
2441
  "slots": [