@warp-ds/elements 2.10.0-next.2 → 2.10.0-next.20

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 (743) hide show
  1. package/README.md +4 -0
  2. package/dist/.storybook/utilities.js +4 -4
  3. package/dist/api.js +1 -1
  4. package/dist/api.js.map +2 -2
  5. package/dist/custom-elements.json +1303 -619
  6. package/dist/docs/affix/affix.md +120 -3
  7. package/dist/docs/affix/api.md +2 -2
  8. package/dist/docs/affix/styling.md +108 -0
  9. package/dist/docs/alert/alert.md +6 -6
  10. package/dist/docs/alert/api.md +4 -4
  11. package/dist/docs/alert/styling.md +1 -0
  12. package/dist/docs/attention/api.md +50 -2
  13. package/dist/docs/attention/attention.md +52 -2
  14. package/dist/docs/attention/styling.md +1 -0
  15. package/dist/docs/badge/api.md +50 -4
  16. package/dist/docs/badge/badge.md +52 -4
  17. package/dist/docs/badge/styling.md +1 -0
  18. package/dist/docs/box/api.md +2 -2
  19. package/dist/docs/box/box.md +24 -42
  20. package/dist/docs/box/examples.md +20 -38
  21. package/dist/docs/box/styling.md +1 -0
  22. package/dist/docs/breadcrumb-item/api.md +27 -0
  23. package/dist/docs/breadcrumb-item/breadcrumb-item.md +34 -0
  24. package/dist/docs/breadcrumbs/accessibility.md +8 -18
  25. package/dist/docs/breadcrumbs/breadcrumbs.md +128 -36
  26. package/dist/docs/breadcrumbs/examples.md +15 -9
  27. package/dist/docs/breadcrumbs/styling.md +97 -0
  28. package/dist/docs/breadcrumbs/usage.md +8 -8
  29. package/dist/docs/button/api.md +32 -24
  30. package/dist/docs/button/button.md +105 -26
  31. package/dist/docs/button/styling.md +72 -0
  32. package/dist/docs/card/api.md +8 -0
  33. package/dist/docs/card/card.md +10 -2
  34. package/dist/docs/card/styling.md +1 -0
  35. package/dist/docs/checkbox/api.md +176 -0
  36. package/dist/docs/checkbox/checkbox.md +356 -0
  37. package/dist/docs/checkbox/styling.md +173 -0
  38. package/dist/docs/checkbox-group/accessibility.md +71 -0
  39. package/dist/docs/checkbox-group/api.md +103 -0
  40. package/dist/docs/checkbox-group/checkbox-group.md +529 -0
  41. package/dist/docs/checkbox-group/examples.md +105 -0
  42. package/dist/docs/checkbox-group/styling.md +134 -0
  43. package/dist/docs/checkbox-group/usage.md +95 -0
  44. package/dist/docs/combobox/accessibility.md +71 -0
  45. package/dist/docs/combobox/api.md +74 -36
  46. package/dist/docs/combobox/combobox.md +219 -38
  47. package/dist/docs/combobox/examples.md +44 -0
  48. package/dist/docs/combobox/styling.md +1 -0
  49. package/dist/docs/combobox/usage.md +28 -0
  50. package/dist/docs/datepicker/accessibility.md +25 -0
  51. package/dist/docs/datepicker/api.md +37 -21
  52. package/dist/docs/datepicker/datepicker.md +223 -23
  53. package/dist/docs/datepicker/examples.md +75 -0
  54. package/dist/docs/datepicker/styling.md +1 -0
  55. package/dist/docs/datepicker/usage.md +84 -0
  56. package/dist/docs/expandable/api.md +23 -35
  57. package/dist/docs/expandable/examples.md +54 -0
  58. package/dist/docs/expandable/expandable.md +77 -35
  59. package/dist/docs/expandable/styling.md +1 -0
  60. package/dist/docs/icon/accessibility.md +5 -0
  61. package/dist/docs/icon/api.md +43 -0
  62. package/dist/docs/icon/examples.md +45 -0
  63. package/dist/docs/icon/icon.md +115 -0
  64. package/dist/docs/icon/styling.md +1 -0
  65. package/dist/docs/icon/usage.md +11 -0
  66. package/dist/docs/index.md +49 -0
  67. package/dist/docs/link/api.md +24 -28
  68. package/dist/docs/link/examples.md +75 -0
  69. package/dist/docs/link/link.md +119 -30
  70. package/dist/docs/link/styling.md +1 -0
  71. package/dist/docs/link/usage.md +18 -0
  72. package/dist/docs/modal/api.md +18 -2
  73. package/dist/docs/modal/modal.md +20 -2
  74. package/dist/docs/modal/styling.md +1 -0
  75. package/dist/docs/modal-footer/modal-footer.md +0 -6
  76. package/dist/docs/modal-header/modal-header.md +0 -6
  77. package/dist/docs/page-indicator/page-indicator.md +2 -0
  78. package/dist/docs/page-indicator/styling.md +1 -0
  79. package/dist/docs/pagination/api.md +4 -4
  80. package/dist/docs/pagination/pagination.md +6 -4
  81. package/dist/docs/pagination/styling.md +1 -0
  82. package/dist/docs/pill/api.md +8 -8
  83. package/dist/docs/pill/pill.md +10 -8
  84. package/dist/docs/pill/styling.md +1 -0
  85. package/dist/docs/radio/radio.md +1 -7
  86. package/dist/docs/radio-group/api.md +4 -4
  87. package/dist/docs/radio-group/radio-group.md +183 -68
  88. package/dist/docs/radio-group/styling.md +179 -64
  89. package/dist/docs/select/api.md +10 -10
  90. package/dist/docs/select/select.md +103 -10
  91. package/dist/docs/select/styling.md +92 -0
  92. package/dist/docs/slider/api.md +22 -22
  93. package/dist/docs/slider/slider.md +24 -22
  94. package/dist/docs/slider/styling.md +1 -0
  95. package/dist/docs/slider-thumb/api.md +28 -12
  96. package/dist/docs/slider-thumb/slider-thumb.md +30 -12
  97. package/dist/docs/slider-thumb/styling.md +1 -0
  98. package/dist/docs/snackbar/accessibility.md +20 -0
  99. package/dist/docs/snackbar/api.md +30 -0
  100. package/dist/docs/snackbar/examples.md +191 -0
  101. package/dist/docs/snackbar/snackbar.md +385 -0
  102. package/dist/docs/snackbar/styling.md +72 -0
  103. package/dist/docs/snackbar/usage.md +60 -0
  104. package/dist/docs/snackbar-item/api.md +41 -0
  105. package/dist/docs/snackbar-item/snackbar-item.md +49 -0
  106. package/dist/docs/step/api.md +16 -0
  107. package/dist/docs/step/step.md +16 -0
  108. package/dist/docs/step-indicator/step-indicator.md +2 -0
  109. package/dist/docs/step-indicator/styling.md +1 -0
  110. package/dist/docs/switch/api.md +8 -0
  111. package/dist/docs/switch/styling.md +1 -0
  112. package/dist/docs/switch/switch.md +10 -0
  113. package/dist/docs/tabs/api.md +2 -2
  114. package/dist/docs/tabs/styling.md +1 -0
  115. package/dist/docs/tabs/tabs.md +4 -2
  116. package/dist/docs/textarea/api.md +54 -14
  117. package/dist/docs/textarea/styling.md +92 -0
  118. package/dist/docs/textarea/textarea.md +147 -14
  119. package/dist/docs/textfield/api.md +74 -34
  120. package/dist/docs/textfield/styling.md +96 -0
  121. package/dist/docs/textfield/textfield.md +171 -34
  122. package/dist/index.d.ts +1359 -368
  123. package/dist/packages/affix/affix-styles.d.ts +8 -0
  124. package/dist/packages/affix/affix-styles.js +108 -0
  125. package/dist/packages/affix/affix.d.ts +16 -13
  126. package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
  127. package/dist/packages/affix/affix.hydration.test.js +15 -15
  128. package/dist/packages/affix/affix.js +451 -320
  129. package/dist/packages/affix/affix.js.map +4 -4
  130. package/dist/packages/affix/affix.react.stories.d.ts +3 -3
  131. package/dist/packages/affix/affix.react.stories.js +3 -3
  132. package/dist/packages/affix/affix.react.test.js +5 -3
  133. package/dist/packages/affix/affix.stories.d.ts +3 -3
  134. package/dist/packages/affix/affix.stories.js +10 -10
  135. package/dist/packages/affix/affix.test.d.ts +1 -1
  136. package/dist/packages/affix/affix.test.js +10 -10
  137. package/dist/packages/affix/react.d.ts +3 -3
  138. package/dist/packages/affix/react.js +6 -6
  139. package/dist/packages/affix/styles.js +2 -2
  140. package/dist/packages/alert/alert.d.ts +3 -3
  141. package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
  142. package/dist/packages/alert/alert.hydration.test.js +21 -21
  143. package/dist/packages/alert/alert.js +349 -324
  144. package/dist/packages/alert/alert.js.map +3 -3
  145. package/dist/packages/alert/alert.react.stories.d.ts +2 -2
  146. package/dist/packages/alert/alert.react.stories.js +13 -13
  147. package/dist/packages/alert/alert.stories.d.ts +4 -4
  148. package/dist/packages/alert/alert.stories.js +29 -27
  149. package/dist/packages/alert/alert.test.d.ts +1 -1
  150. package/dist/packages/alert/alert.test.js +34 -21
  151. package/dist/packages/alert/react.d.ts +1 -1
  152. package/dist/packages/alert/react.js +4 -4
  153. package/dist/packages/alert/styles.js +2 -2
  154. package/dist/packages/attention/attention.d.ts +11 -6
  155. package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
  156. package/dist/packages/attention/attention.hydration.test.js +29 -29
  157. package/dist/packages/attention/attention.js +1795 -1781
  158. package/dist/packages/attention/attention.js.map +4 -4
  159. package/dist/packages/attention/attention.react.stories.d.ts +3 -3
  160. package/dist/packages/attention/attention.react.stories.js +13 -13
  161. package/dist/packages/attention/attention.react.test.js +11 -7
  162. package/dist/packages/attention/attention.stories.d.ts +4 -4
  163. package/dist/packages/attention/attention.stories.js +126 -117
  164. package/dist/packages/attention/attention.test.d.ts +1 -1
  165. package/dist/packages/attention/attention.test.js +18 -10
  166. package/dist/packages/attention/layout-styles.js +900 -900
  167. package/dist/packages/attention/react.d.ts +4 -4
  168. package/dist/packages/attention/react.js +13 -11
  169. package/dist/packages/attention/styles.js +2 -2
  170. package/dist/packages/badge/badge.d.ts +3 -3
  171. package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
  172. package/dist/packages/badge/badge.hydration.test.js +25 -25
  173. package/dist/packages/badge/badge.js +281 -281
  174. package/dist/packages/badge/badge.js.map +3 -3
  175. package/dist/packages/badge/badge.react.stories.d.ts +3 -3
  176. package/dist/packages/badge/badge.react.stories.js +17 -17
  177. package/dist/packages/badge/badge.stories.d.ts +3 -3
  178. package/dist/packages/badge/badge.stories.js +22 -20
  179. package/dist/packages/badge/badge.test.d.ts +1 -1
  180. package/dist/packages/badge/badge.test.js +13 -11
  181. package/dist/packages/badge/react.d.ts +1 -1
  182. package/dist/packages/badge/react.js +4 -4
  183. package/dist/packages/badge/styles.js +2 -2
  184. package/dist/packages/box/box.d.ts +1 -1
  185. package/dist/packages/box/box.hydration.test.d.ts +1 -1
  186. package/dist/packages/box/box.hydration.test.js +14 -14
  187. package/dist/packages/box/box.js +288 -288
  188. package/dist/packages/box/box.js.map +3 -3
  189. package/dist/packages/box/box.react.stories.d.ts +3 -3
  190. package/dist/packages/box/box.react.stories.js +8 -8
  191. package/dist/packages/box/box.stories.d.ts +3 -3
  192. package/dist/packages/box/box.stories.js +25 -19
  193. package/dist/packages/box/box.test.d.ts +1 -1
  194. package/dist/packages/box/box.test.js +6 -6
  195. package/dist/packages/box/react.d.ts +1 -1
  196. package/dist/packages/box/react.js +4 -4
  197. package/dist/packages/box/slot.test.d.ts +1 -1
  198. package/dist/packages/box/slot.test.js +6 -6
  199. package/dist/packages/box/styles.js +2 -2
  200. package/dist/packages/breadcrumb-item/breadcrumb-item.d.ts +29 -0
  201. package/dist/packages/breadcrumb-item/breadcrumb-item.js +2529 -0
  202. package/dist/packages/breadcrumb-item/breadcrumb-item.js.map +7 -0
  203. package/dist/packages/breadcrumb-item/react.d.ts +2 -0
  204. package/dist/packages/breadcrumb-item/react.js +11 -0
  205. package/dist/packages/breadcrumb-item/styles.d.ts +4 -0
  206. package/dist/packages/breadcrumb-item/styles.js +81 -0
  207. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +4 -3
  208. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
  209. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +57 -50
  210. package/dist/packages/breadcrumbs/breadcrumbs.js +287 -283
  211. package/dist/packages/breadcrumbs/breadcrumbs.js.map +4 -4
  212. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +4 -4
  213. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +17 -16
  214. package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +7 -8
  215. package/dist/packages/breadcrumbs/breadcrumbs.stories.js +30 -26
  216. package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
  217. package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
  218. package/dist/packages/breadcrumbs/react.d.ts +1 -1
  219. package/dist/packages/breadcrumbs/react.js +4 -4
  220. package/dist/packages/breadcrumbs/styles.js +2 -2
  221. package/dist/packages/button/button.d.ts +20 -15
  222. package/dist/packages/button/button.hydration.test.d.ts +1 -1
  223. package/dist/packages/button/button.hydration.test.js +19 -19
  224. package/dist/packages/button/button.js +809 -811
  225. package/dist/packages/button/button.js.map +4 -4
  226. package/dist/packages/button/button.react.stories.d.ts +5 -5
  227. package/dist/packages/button/button.react.stories.js +30 -30
  228. package/dist/packages/button/button.react.test.js +13 -13
  229. package/dist/packages/button/button.stories.d.ts +33 -4
  230. package/dist/packages/button/button.stories.js +353 -70
  231. package/dist/packages/button/button.test.d.ts +1 -1
  232. package/dist/packages/button/button.test.js +36 -35
  233. package/dist/packages/button/react.d.ts +3 -3
  234. package/dist/packages/button/react.js +7 -7
  235. package/dist/packages/button/styles.d.ts +22 -1
  236. package/dist/packages/button/styles.js +433 -2
  237. package/dist/packages/card/card.d.ts +1 -1
  238. package/dist/packages/card/card.hydration.test.d.ts +1 -1
  239. package/dist/packages/card/card.hydration.test.js +14 -14
  240. package/dist/packages/card/card.js +311 -296
  241. package/dist/packages/card/card.js.map +4 -4
  242. package/dist/packages/card/card.react.stories.d.ts +3 -3
  243. package/dist/packages/card/card.react.stories.js +11 -11
  244. package/dist/packages/card/card.stories.d.ts +3 -3
  245. package/dist/packages/card/card.stories.js +36 -24
  246. package/dist/packages/card/card.test.d.ts +1 -1
  247. package/dist/packages/card/card.test.js +6 -6
  248. package/dist/packages/card/react.d.ts +1 -1
  249. package/dist/packages/card/react.js +4 -4
  250. package/dist/packages/card/styles.js +2 -2
  251. package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
  252. package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
  253. package/dist/packages/checkbox/checkbox.d.ts +48 -17
  254. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
  255. package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
  256. package/dist/packages/checkbox/checkbox.js +481 -430
  257. package/dist/packages/checkbox/checkbox.js.map +3 -3
  258. package/dist/packages/checkbox/checkbox.react.stories.d.ts +3 -3
  259. package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
  260. package/dist/packages/checkbox/checkbox.stories.d.ts +5 -5
  261. package/dist/packages/checkbox/checkbox.stories.js +99 -91
  262. package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
  263. package/dist/packages/checkbox/checkbox.test.js +64 -64
  264. package/dist/packages/checkbox/react.d.ts +2 -2
  265. package/dist/packages/checkbox/react.js +6 -6
  266. package/dist/packages/checkbox/styles.js +183 -132
  267. package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
  268. package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
  269. package/dist/packages/checkbox-group/checkbox-group.d.ts +54 -13
  270. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
  271. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
  272. package/dist/packages/checkbox-group/checkbox-group.js +62 -57
  273. package/dist/packages/checkbox-group/checkbox-group.js.map +4 -4
  274. package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
  275. package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
  276. package/dist/packages/checkbox-group/checkbox-group.test.js +96 -90
  277. package/dist/packages/checkbox-group/react.d.ts +4 -4
  278. package/dist/packages/checkbox-group/react.js +6 -6
  279. package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
  280. package/dist/packages/combobox/combobox.a11y.test.js +80 -33
  281. package/dist/packages/combobox/combobox.d.ts +67 -47
  282. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
  283. package/dist/packages/combobox/combobox.hydration.test.js +73 -35
  284. package/dist/packages/combobox/combobox.js +338 -339
  285. package/dist/packages/combobox/combobox.js.map +4 -4
  286. package/dist/packages/combobox/combobox.react.stories.d.ts +29 -13
  287. package/dist/packages/combobox/combobox.react.stories.js +29 -29
  288. package/dist/packages/combobox/combobox.react.test.js +8 -8
  289. package/dist/packages/combobox/combobox.stories.d.ts +4 -4
  290. package/dist/packages/combobox/combobox.stories.js +104 -85
  291. package/dist/packages/combobox/combobox.test.d.ts +2 -2
  292. package/dist/packages/combobox/combobox.test.js +194 -69
  293. package/dist/packages/combobox/react.d.ts +15 -7
  294. package/dist/packages/combobox/react.js +14 -14
  295. package/dist/packages/combobox/styles.js +2 -3
  296. package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
  297. package/dist/packages/datepicker/DatePicker.test.js +49 -42
  298. package/dist/packages/datepicker/datepicker.d.ts +30 -38
  299. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
  300. package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
  301. package/dist/packages/datepicker/datepicker.js +673 -632
  302. package/dist/packages/datepicker/datepicker.js.map +4 -4
  303. package/dist/packages/datepicker/datepicker.react.stories.d.ts +17 -17
  304. package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
  305. package/dist/packages/datepicker/datepicker.react.test.js +6 -6
  306. package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
  307. package/dist/packages/datepicker/datepicker.stories.js +32 -32
  308. package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
  309. package/dist/packages/datepicker/datepicker.test.js +77 -79
  310. package/dist/packages/datepicker/react.d.ts +9 -9
  311. package/dist/packages/datepicker/react.js +16 -14
  312. package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
  313. package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
  314. package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
  315. package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
  316. package/dist/packages/datepicker/utils.d.ts +3 -0
  317. package/dist/packages/datepicker/utils.js +40 -1
  318. package/dist/packages/datepicker/utils.test.d.ts +1 -0
  319. package/dist/packages/datepicker/utils.test.js +29 -0
  320. package/dist/packages/expandable/expandable.d.ts +18 -39
  321. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
  322. package/dist/packages/expandable/expandable.hydration.test.js +21 -21
  323. package/dist/packages/expandable/expandable.js +359 -332
  324. package/dist/packages/expandable/expandable.js.map +4 -4
  325. package/dist/packages/expandable/expandable.react.stories.d.ts +5 -5
  326. package/dist/packages/expandable/expandable.react.stories.js +7 -7
  327. package/dist/packages/expandable/expandable.react.test.js +15 -7
  328. package/dist/packages/expandable/expandable.stories.d.ts +5 -5
  329. package/dist/packages/expandable/expandable.stories.js +51 -45
  330. package/dist/packages/expandable/expandable.test.d.ts +1 -1
  331. package/dist/packages/expandable/expandable.test.js +19 -17
  332. package/dist/packages/expandable/react.d.ts +3 -3
  333. package/dist/packages/expandable/react.js +9 -9
  334. package/dist/packages/expandable/styles.js +2 -2
  335. package/dist/packages/global.d.ts +1 -0
  336. package/dist/packages/global.js +5 -0
  337. package/dist/packages/i18n.d.ts +1 -1
  338. package/dist/packages/i18n.js +37 -29
  339. package/dist/packages/icon/icon.d.ts +22 -5
  340. package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
  341. package/dist/packages/icon/icon.hydration.test.js +25 -25
  342. package/dist/packages/icon/icon.js +31 -26
  343. package/dist/packages/icon/icon.js.map +3 -3
  344. package/dist/packages/icon/icon.react.stories.d.ts +4 -3
  345. package/dist/packages/icon/icon.react.stories.js +284 -283
  346. package/dist/packages/icon/icon.stories.d.ts +7 -30
  347. package/dist/packages/icon/icon.stories.js +307 -297
  348. package/dist/packages/icon/icon.test.d.ts +1 -1
  349. package/dist/packages/icon/icon.test.js +36 -28
  350. package/dist/packages/icon/react.d.ts +2 -2
  351. package/dist/packages/icon/react.js +4 -4
  352. package/dist/packages/icon/style.js +24 -25
  353. package/dist/packages/interaction-type-detection.d.ts +22 -0
  354. package/dist/packages/interaction-type-detection.js +38 -0
  355. package/dist/packages/link/link.d.ts +22 -23
  356. package/dist/packages/link/link.hydration.test.d.ts +1 -1
  357. package/dist/packages/link/link.hydration.test.js +27 -27
  358. package/dist/packages/link/link.js +775 -498
  359. package/dist/packages/link/link.js.map +4 -4
  360. package/dist/packages/link/link.react.stories.d.ts +3 -3
  361. package/dist/packages/link/link.react.stories.js +42 -42
  362. package/dist/packages/link/link.react.test.js +5 -3
  363. package/dist/packages/link/link.stories.d.ts +3 -3
  364. package/dist/packages/link/link.stories.js +51 -51
  365. package/dist/packages/link/link.test.d.ts +1 -1
  366. package/dist/packages/link/link.test.js +11 -7
  367. package/dist/packages/link/react.d.ts +2 -2
  368. package/dist/packages/link/react.js +6 -6
  369. package/dist/packages/link/styles.d.ts +5 -0
  370. package/dist/packages/link/styles.js +85 -0
  371. package/dist/packages/modal/index.d.ts +7 -7
  372. package/dist/packages/modal/index.js +7 -7
  373. package/dist/packages/modal/modal.d.ts +3 -2
  374. package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
  375. package/dist/packages/modal/modal.hydration.test.js +12 -12
  376. package/dist/packages/modal/modal.js +409 -409
  377. package/dist/packages/modal/modal.js.map +3 -3
  378. package/dist/packages/modal/modal.react.stories.d.ts +7 -7
  379. package/dist/packages/modal/modal.react.stories.js +15 -6
  380. package/dist/packages/modal/modal.react.test.js +5 -5
  381. package/dist/packages/modal/modal.stories.d.ts +6 -6
  382. package/dist/packages/modal/modal.stories.js +253 -238
  383. package/dist/packages/modal/react.d.ts +38 -8
  384. package/dist/packages/modal/react.js +43 -13
  385. package/dist/packages/modal/util.js +3 -1
  386. package/dist/packages/modal-footer/modal-footer.d.ts +1 -1
  387. package/dist/packages/modal-footer/modal-footer.js +296 -296
  388. package/dist/packages/modal-footer/modal-footer.js.map +3 -3
  389. package/dist/packages/modal-footer/react.d.ts +1 -1
  390. package/dist/packages/modal-footer/react.js +4 -4
  391. package/dist/packages/modal-header/modal-header.d.ts +2 -2
  392. package/dist/packages/modal-header/modal-header.js +443 -422
  393. package/dist/packages/modal-header/modal-header.js.map +4 -4
  394. package/dist/packages/modal-header/modal-header.react.test.js +5 -3
  395. package/dist/packages/modal-header/react.d.ts +4 -4
  396. package/dist/packages/modal-header/react.js +8 -8
  397. package/dist/packages/page-indicator/page-indicator.d.ts +1 -5
  398. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
  399. package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
  400. package/dist/packages/page-indicator/page-indicator.js +29 -29
  401. package/dist/packages/page-indicator/page-indicator.js.map +4 -4
  402. package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
  403. package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
  404. package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
  405. package/dist/packages/page-indicator/page-indicator.stories.d.ts +9 -27
  406. package/dist/packages/page-indicator/page-indicator.stories.js +63 -32
  407. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
  408. package/dist/packages/page-indicator/page-indicator.test.js +110 -70
  409. package/dist/packages/page-indicator/react.d.ts +2 -2
  410. package/dist/packages/page-indicator/react.js +7 -7
  411. package/dist/packages/page-indicator/style.js +21 -21
  412. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
  413. package/dist/packages/pagination/pagination.a11y.test.js +59 -25
  414. package/dist/packages/pagination/pagination.d.ts +10 -11
  415. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
  416. package/dist/packages/pagination/pagination.hydration.test.js +19 -19
  417. package/dist/packages/pagination/pagination.js +385 -354
  418. package/dist/packages/pagination/pagination.js.map +4 -4
  419. package/dist/packages/pagination/pagination.react.stories.d.ts +11 -11
  420. package/dist/packages/pagination/pagination.react.stories.js +8 -8
  421. package/dist/packages/pagination/pagination.react.test.js +6 -6
  422. package/dist/packages/pagination/pagination.stories.d.ts +3 -3
  423. package/dist/packages/pagination/pagination.stories.js +18 -18
  424. package/dist/packages/pagination/pagination.test.d.ts +1 -1
  425. package/dist/packages/pagination/pagination.test.js +146 -72
  426. package/dist/packages/pagination/react.d.ts +6 -6
  427. package/dist/packages/pagination/react.js +12 -10
  428. package/dist/packages/pagination/styles.js +2 -2
  429. package/dist/packages/pill/pill.d.ts +6 -6
  430. package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
  431. package/dist/packages/pill/pill.hydration.test.js +14 -14
  432. package/dist/packages/pill/pill.js +337 -314
  433. package/dist/packages/pill/pill.js.map +4 -4
  434. package/dist/packages/pill/pill.react.stories.d.ts +11 -11
  435. package/dist/packages/pill/pill.react.stories.js +3 -3
  436. package/dist/packages/pill/pill.react.test.js +8 -8
  437. package/dist/packages/pill/pill.stories.d.ts +3 -3
  438. package/dist/packages/pill/pill.stories.js +8 -8
  439. package/dist/packages/pill/pill.test.d.ts +1 -1
  440. package/dist/packages/pill/pill.test.js +17 -15
  441. package/dist/packages/pill/react.d.ts +6 -6
  442. package/dist/packages/pill/react.js +18 -14
  443. package/dist/packages/pill/styles.js +2 -2
  444. package/dist/packages/radio/base-element.d.ts +3 -3
  445. package/dist/packages/radio/base-element.js +3 -3
  446. package/dist/packages/radio/custom-error-validator.d.ts +1 -1
  447. package/dist/packages/radio/custom-error-validator.js +3 -3
  448. package/dist/packages/radio/form-associated-element.d.ts +9 -9
  449. package/dist/packages/radio/form-associated-element.js +27 -26
  450. package/dist/packages/radio/host-styles.js +9 -9
  451. package/dist/packages/radio/invalid.d.ts +1 -1
  452. package/dist/packages/radio/invalid.js +1 -1
  453. package/dist/packages/radio/radio-styles.js +199 -160
  454. package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
  455. package/dist/packages/radio/radio.a11y.test.js +60 -58
  456. package/dist/packages/radio/radio.d.ts +4 -4
  457. package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
  458. package/dist/packages/radio/radio.hydration.test.js +23 -14
  459. package/dist/packages/radio/radio.js +491 -452
  460. package/dist/packages/radio/radio.js.map +3 -3
  461. package/dist/packages/radio/radio.react.stories.d.ts +2 -2
  462. package/dist/packages/radio/radio.react.stories.js +3 -3
  463. package/dist/packages/radio/radio.stories.d.ts +4 -4
  464. package/dist/packages/radio/radio.stories.js +152 -136
  465. package/dist/packages/radio/radio.test.d.ts +1 -1
  466. package/dist/packages/radio/radio.test.js +74 -73
  467. package/dist/packages/radio/react.d.ts +1 -1
  468. package/dist/packages/radio/react.js +4 -4
  469. package/dist/packages/radio/required-validator.d.ts +1 -1
  470. package/dist/packages/radio/required-validator.js +12 -7
  471. package/dist/packages/radio/slot.d.ts +1 -1
  472. package/dist/packages/radio/slot.js +11 -8
  473. package/dist/packages/radio/watch.d.ts +1 -1
  474. package/dist/packages/radio/watch.js +3 -1
  475. package/dist/packages/radio-group/radio-group-styles.js +121 -88
  476. package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
  477. package/dist/packages/radio-group/radio-group.a11y.test.js +83 -77
  478. package/dist/packages/radio-group/radio-group.d.ts +16 -7
  479. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
  480. package/dist/packages/radio-group/radio-group.hydration.test.js +30 -15
  481. package/dist/packages/radio-group/radio-group.js +655 -567
  482. package/dist/packages/radio-group/radio-group.js.map +4 -4
  483. package/dist/packages/radio-group/radio-group.react.test.js +4 -4
  484. package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
  485. package/dist/packages/radio-group/radio-group.test.js +234 -229
  486. package/dist/packages/radio-group/react.d.ts +7 -7
  487. package/dist/packages/radio-group/react.js +10 -10
  488. package/dist/packages/select/input-styles.d.ts +11 -0
  489. package/dist/packages/select/input-styles.js +88 -0
  490. package/dist/packages/select/react.d.ts +5 -5
  491. package/dist/packages/select/react.js +11 -11
  492. package/dist/packages/select/select.a11y.test.d.ts +1 -1
  493. package/dist/packages/select/select.a11y.test.js +100 -89
  494. package/dist/packages/select/select.d.ts +10 -11
  495. package/dist/packages/select/select.hydration.test.d.ts +1 -1
  496. package/dist/packages/select/select.hydration.test.js +16 -16
  497. package/dist/packages/select/select.js +432 -336
  498. package/dist/packages/select/select.js.map +4 -4
  499. package/dist/packages/select/select.react.stories.d.ts +10 -10
  500. package/dist/packages/select/select.react.stories.js +19 -14
  501. package/dist/packages/select/select.react.test.js +6 -6
  502. package/dist/packages/select/select.stories.d.ts +3 -3
  503. package/dist/packages/select/select.stories.js +51 -48
  504. package/dist/packages/select/select.test.d.ts +1 -1
  505. package/dist/packages/select/select.test.js +178 -179
  506. package/dist/packages/select/styles.js +2 -2
  507. package/dist/packages/slider/Slider.d.ts +1 -1
  508. package/dist/packages/slider/Slider.js +4 -4
  509. package/dist/packages/slider/index.d.ts +2 -2
  510. package/dist/packages/slider/index.js +2 -2
  511. package/dist/packages/slider/react.d.ts +4 -4
  512. package/dist/packages/slider/react.js +9 -9
  513. package/dist/packages/slider/slider.d.ts +17 -17
  514. package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
  515. package/dist/packages/slider/slider.hydration.test.js +40 -16
  516. package/dist/packages/slider/slider.js +485 -467
  517. package/dist/packages/slider/slider.js.map +4 -4
  518. package/dist/packages/slider/slider.react.stories.d.ts +4 -4
  519. package/dist/packages/slider/slider.react.stories.js +29 -32
  520. package/dist/packages/slider/slider.react.test.js +6 -6
  521. package/dist/packages/slider/slider.stories.d.ts +7 -7
  522. package/dist/packages/slider/slider.stories.js +333 -340
  523. package/dist/packages/slider/slider.test.d.ts +5 -5
  524. package/dist/packages/slider/slider.test.js +367 -334
  525. package/dist/packages/slider/styles/w-slider.styles.js +166 -148
  526. package/dist/packages/slider/styles.js +2 -2
  527. package/dist/packages/slider-thumb/SliderThumb.d.ts +1 -1
  528. package/dist/packages/slider-thumb/SliderThumb.js +4 -4
  529. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
  530. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
  531. package/dist/packages/slider-thumb/react.d.ts +5 -5
  532. package/dist/packages/slider-thumb/react.js +11 -9
  533. package/dist/packages/slider-thumb/slider-thumb.d.ts +17 -17
  534. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
  535. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
  536. package/dist/packages/slider-thumb/slider-thumb.js +550 -553
  537. package/dist/packages/slider-thumb/slider-thumb.js.map +4 -4
  538. package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
  539. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
  540. package/dist/packages/slider-thumb/styles.js +2 -0
  541. package/dist/packages/snackbar/locales/da/messages.d.mts +1 -0
  542. package/dist/packages/snackbar/locales/da/messages.mjs +1 -0
  543. package/dist/packages/snackbar/locales/en/messages.d.mts +1 -0
  544. package/dist/packages/snackbar/locales/en/messages.mjs +1 -0
  545. package/dist/packages/snackbar/locales/fi/messages.d.mts +1 -0
  546. package/dist/packages/snackbar/locales/fi/messages.mjs +1 -0
  547. package/dist/packages/snackbar/locales/nb/messages.d.mts +1 -0
  548. package/dist/packages/snackbar/locales/nb/messages.mjs +1 -0
  549. package/dist/packages/snackbar/locales/sv/messages.d.mts +1 -0
  550. package/dist/packages/snackbar/locales/sv/messages.mjs +1 -0
  551. package/dist/packages/snackbar/react.d.ts +2 -0
  552. package/dist/packages/snackbar/react.js +11 -0
  553. package/dist/packages/snackbar/snackbar.d.ts +132 -0
  554. package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -0
  555. package/dist/packages/snackbar/snackbar.hydration.test.js +13 -0
  556. package/dist/packages/snackbar/snackbar.js +2665 -0
  557. package/dist/packages/snackbar/snackbar.js.map +7 -0
  558. package/dist/packages/snackbar/snackbar.react.stories.d.ts +12 -0
  559. package/dist/packages/snackbar/snackbar.react.stories.js +160 -0
  560. package/dist/packages/snackbar/snackbar.stories.d.ts +20 -0
  561. package/dist/packages/snackbar/snackbar.stories.js +363 -0
  562. package/dist/packages/snackbar/snackbar.test.d.ts +4 -0
  563. package/dist/packages/snackbar/snackbar.test.js +17 -0
  564. package/dist/packages/snackbar/styles.d.ts +1 -0
  565. package/dist/packages/snackbar/styles.js +35 -0
  566. package/dist/packages/snackbar-item/react.d.ts +5 -0
  567. package/dist/packages/snackbar-item/react.js +16 -0
  568. package/dist/packages/snackbar-item/snackbar-item.d.ts +69 -0
  569. package/dist/packages/snackbar-item/snackbar-item.js +2620 -0
  570. package/dist/packages/snackbar-item/snackbar-item.js.map +7 -0
  571. package/dist/packages/snackbar-item/snackbar-item.react.test.d.ts +1 -0
  572. package/dist/packages/snackbar-item/snackbar-item.react.test.js +5 -0
  573. package/dist/packages/snackbar-item/styles.d.ts +1 -0
  574. package/dist/packages/snackbar-item/styles.js +133 -0
  575. package/dist/packages/step/react.d.ts +1 -1
  576. package/dist/packages/step/react.js +4 -4
  577. package/dist/packages/step/step.d.ts +2 -2
  578. package/dist/packages/step/step.hydration.test.d.ts +1 -1
  579. package/dist/packages/step/step.hydration.test.js +10 -10
  580. package/dist/packages/step/step.js +337 -315
  581. package/dist/packages/step/step.js.map +4 -4
  582. package/dist/packages/step-indicator/index.d.ts +2 -2
  583. package/dist/packages/step-indicator/index.js +2 -2
  584. package/dist/packages/step-indicator/react.d.ts +2 -2
  585. package/dist/packages/step-indicator/react.js +5 -5
  586. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
  587. package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
  588. package/dist/packages/step-indicator/step-indicator.d.ts +1 -1
  589. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
  590. package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
  591. package/dist/packages/step-indicator/step-indicator.js +285 -281
  592. package/dist/packages/step-indicator/step-indicator.js.map +3 -3
  593. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
  594. package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
  595. package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
  596. package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
  597. package/dist/packages/step-indicator/styles.js +2 -2
  598. package/dist/packages/styles.js +277 -275
  599. package/dist/packages/switch/react.d.ts +1 -1
  600. package/dist/packages/switch/react.js +6 -6
  601. package/dist/packages/switch/styles.js +2 -2
  602. package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
  603. package/dist/packages/switch/switch.a11y.test.js +46 -38
  604. package/dist/packages/switch/switch.d.ts +3 -3
  605. package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
  606. package/dist/packages/switch/switch.hydration.test.js +23 -23
  607. package/dist/packages/switch/switch.js +304 -304
  608. package/dist/packages/switch/switch.js.map +3 -3
  609. package/dist/packages/switch/switch.react.stories.d.ts +2 -2
  610. package/dist/packages/switch/switch.react.stories.js +2 -2
  611. package/dist/packages/switch/switch.stories.d.ts +2 -2
  612. package/dist/packages/switch/switch.stories.js +42 -37
  613. package/dist/packages/switch/switch.test.d.ts +1 -1
  614. package/dist/packages/switch/switch.test.js +30 -35
  615. package/dist/packages/tab/react.d.ts +9 -7
  616. package/dist/packages/tab/react.js +11 -10
  617. package/dist/packages/tab/styles.d.ts +1 -0
  618. package/dist/packages/tab/styles.js +2 -0
  619. package/dist/packages/tab/tab.d.ts +6 -6
  620. package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
  621. package/dist/packages/tab/tab.hydration.test.js +18 -12
  622. package/dist/packages/tab/tab.js +309 -308
  623. package/dist/packages/tab/tab.js.map +4 -4
  624. package/dist/packages/tab/tab.react.test.js +5 -3
  625. package/dist/packages/tab-panel/react.d.ts +3 -2
  626. package/dist/packages/tab-panel/react.js +11 -5
  627. package/dist/packages/tab-panel/tab-panel.d.ts +3 -3
  628. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
  629. package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
  630. package/dist/packages/tab-panel/tab-panel.js +293 -291
  631. package/dist/packages/tab-panel/tab-panel.js.map +3 -3
  632. package/dist/packages/tabs/index.d.ts +4 -4
  633. package/dist/packages/tabs/index.js +3 -3
  634. package/dist/packages/tabs/react.d.ts +27 -8
  635. package/dist/packages/tabs/react.js +30 -9
  636. package/dist/packages/tabs/styles.js +2 -2
  637. package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
  638. package/dist/packages/tabs/tabs.a11y.test.js +188 -169
  639. package/dist/packages/tabs/tabs.d.ts +6 -5
  640. package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
  641. package/dist/packages/tabs/tabs.hydration.test.js +22 -8
  642. package/dist/packages/tabs/tabs.js +293 -286
  643. package/dist/packages/tabs/tabs.js.map +3 -3
  644. package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
  645. package/dist/packages/tabs/tabs.react.stories.js +28 -28
  646. package/dist/packages/tabs/tabs.stories.d.ts +4 -4
  647. package/dist/packages/tabs/tabs.stories.js +101 -95
  648. package/dist/packages/tabs/tabs.test.d.ts +3 -3
  649. package/dist/packages/tabs/tabs.test.js +137 -123
  650. package/dist/packages/textarea/input-styles.d.ts +11 -0
  651. package/dist/packages/textarea/input-styles.js +88 -0
  652. package/dist/packages/textarea/react.d.ts +11 -11
  653. package/dist/packages/textarea/react.js +17 -17
  654. package/dist/packages/textarea/styles.js +2 -2
  655. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
  656. package/dist/packages/textarea/textarea.a11y.test.js +90 -58
  657. package/dist/packages/textarea/textarea.d.ts +11 -11
  658. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
  659. package/dist/packages/textarea/textarea.hydration.test.js +19 -19
  660. package/dist/packages/textarea/textarea.js +385 -304
  661. package/dist/packages/textarea/textarea.js.map +4 -4
  662. package/dist/packages/textarea/textarea.react.stories.d.ts +21 -21
  663. package/dist/packages/textarea/textarea.react.stories.js +13 -13
  664. package/dist/packages/textarea/textarea.react.test.js +7 -7
  665. package/dist/packages/textarea/textarea.stories.d.ts +3 -3
  666. package/dist/packages/textarea/textarea.stories.js +44 -42
  667. package/dist/packages/textarea/textarea.test.d.ts +1 -1
  668. package/dist/packages/textarea/textarea.test.js +124 -88
  669. package/dist/packages/textfield/input-styles.d.ts +11 -0
  670. package/dist/packages/textfield/input-styles.js +88 -0
  671. package/dist/packages/textfield/locales/da/messages.d.mts +1 -0
  672. package/dist/packages/textfield/locales/da/messages.mjs +1 -0
  673. package/dist/packages/textfield/locales/en/messages.d.mts +1 -0
  674. package/dist/packages/textfield/locales/en/messages.mjs +1 -0
  675. package/dist/packages/textfield/locales/fi/messages.d.mts +1 -0
  676. package/dist/packages/textfield/locales/fi/messages.mjs +1 -0
  677. package/dist/packages/textfield/locales/nb/messages.d.mts +1 -0
  678. package/dist/packages/textfield/locales/nb/messages.mjs +1 -0
  679. package/dist/packages/textfield/locales/sv/messages.d.mts +1 -0
  680. package/dist/packages/textfield/locales/sv/messages.mjs +1 -0
  681. package/dist/packages/textfield/react.d.ts +11 -11
  682. package/dist/packages/textfield/react.js +17 -17
  683. package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
  684. package/dist/packages/textfield/styles.js +2 -2
  685. package/dist/packages/textfield/textfield.d.ts +36 -26
  686. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
  687. package/dist/packages/textfield/textfield.hydration.test.js +19 -19
  688. package/dist/packages/textfield/textfield.js +468 -373
  689. package/dist/packages/textfield/textfield.js.map +4 -4
  690. package/dist/packages/textfield/textfield.react.stories.d.ts +21 -21
  691. package/dist/packages/textfield/textfield.react.stories.js +31 -31
  692. package/dist/packages/textfield/textfield.react.test.js +7 -7
  693. package/dist/packages/textfield/textfield.stories.d.ts +4 -4
  694. package/dist/packages/textfield/textfield.stories.js +107 -89
  695. package/dist/packages/textfield/textfield.test.d.ts +2 -2
  696. package/dist/packages/textfield/textfield.test.js +103 -71
  697. package/dist/packages/toast/api.d.ts +2 -2
  698. package/dist/packages/toast/api.js +3 -3
  699. package/dist/packages/toast/index.d.ts +5 -5
  700. package/dist/packages/toast/index.js +5 -5
  701. package/dist/packages/toast/styles.js +2 -2
  702. package/dist/packages/toast/toast.d.ts +5 -5
  703. package/dist/packages/toast/toast.js +349 -320
  704. package/dist/packages/toast/toast.js.map +4 -4
  705. package/dist/packages/toast/toast.stories.d.ts +5 -9
  706. package/dist/packages/toast/toast.stories.js +37 -33
  707. package/dist/packages/toast/toast.test.d.ts +1 -1
  708. package/dist/packages/toast/toast.test.js +48 -31
  709. package/dist/packages/toast/types.d.ts +1 -1
  710. package/dist/packages/toast-container/styles.d.ts +1 -0
  711. package/dist/packages/toast-container/styles.js +2 -0
  712. package/dist/packages/toast-container/toast-container.d.ts +2 -2
  713. package/dist/packages/toast-container/toast-container.js +295 -294
  714. package/dist/packages/toast-container/toast-container.js.map +4 -4
  715. package/dist/packages/utils/element-collapse.d.ts +12 -0
  716. package/dist/packages/utils/element-collapse.js +102 -0
  717. package/dist/packages/utils/expand-transition.d.ts +1 -1
  718. package/dist/packages/utils/expand-transition.js +12 -10
  719. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  720. package/dist/packages/utils/unstyled-heading.js +4 -4
  721. package/dist/packages/utils/window-exists.js +1 -1
  722. package/dist/packages/utils.js +2 -2
  723. package/dist/setup-tests.d.ts +3 -3
  724. package/dist/setup-tests.js +16 -13
  725. package/dist/tests/react-hydration.js +29 -30
  726. package/dist/tests/react-ssr-attributes.d.ts +1 -1
  727. package/dist/tests/react-ssr-attributes.js +4 -4
  728. package/dist/web-types.json +566 -301
  729. package/eik/index.js +96 -0
  730. package/package.json +35 -29
  731. package/dist/docs/modal-footer/accessibility.md +0 -1
  732. package/dist/docs/modal-footer/examples.md +0 -1
  733. package/dist/docs/modal-footer/usage.md +0 -1
  734. package/dist/docs/modal-header/accessibility.md +0 -1
  735. package/dist/docs/modal-header/examples.md +0 -1
  736. package/dist/docs/modal-header/usage.md +0 -1
  737. package/dist/docs/radio/accessibility.md +0 -1
  738. package/dist/docs/radio/examples.md +0 -1
  739. package/dist/docs/radio/usage.md +0 -1
  740. package/dist/packages/button/styles/w-button.styles.d.ts +0 -1
  741. package/dist/packages/button/styles/w-button.styles.js +0 -282
  742. package/dist/packages/link/styles/w-link.styles.js +0 -213
  743. /package/dist/packages/{link/styles/w-link.styles.d.ts → slider-thumb/styles.d.ts} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { WIcon } from "./packages/icon/icon.ts";
2
1
  import type { WarpTextField } from "./packages/textfield/textfield.ts";
2
+ import type { WarpIcon, WIcon } from "./packages/icon/icon.ts";
3
3
  import type { WarpAffix } from "./packages/affix/affix.ts";
4
4
  import type { WarpAlert } from "./packages/alert/alert.ts";
5
5
  import type { WarpLink } from "./packages/link/link.ts";
@@ -8,9 +8,13 @@ import type { WarpAttention } from "./packages/attention/attention.ts";
8
8
  import type { WarpBadge } from "./packages/badge/badge.ts";
9
9
  import type { WarpBox } from "./packages/box/box.ts";
10
10
  import type { WarpBreadcrumbs } from "./packages/breadcrumbs/breadcrumbs.ts";
11
+ import type { WarpBreadcrumbItem } from "./packages/breadcrumb-item/breadcrumb-item.ts";
11
12
  import type { WarpCard } from "./packages/card/card.ts";
12
- import type { WCheckbox } from "./packages/checkbox/checkbox.ts";
13
- import type { WCheckboxGroup } from "./packages/checkbox-group/checkbox-group.ts";
13
+ import type { WarpCheckbox, WCheckbox } from "./packages/checkbox/checkbox.ts";
14
+ import type {
15
+ WarpCheckboxGroup,
16
+ WCheckboxGroup,
17
+ } from "./packages/checkbox-group/checkbox-group.ts";
14
18
  import type { WarpCombobox } from "./packages/combobox/combobox.ts";
15
19
  import type { WarpDatepicker } from "./packages/datepicker/datepicker.ts";
16
20
  import type { WarpExpandable } from "./packages/expandable/expandable.ts";
@@ -34,6 +38,8 @@ import type {
34
38
  import type { WarpSelect } from "./packages/select/select.ts";
35
39
  import type { WarpSliderThumb } from "./packages/slider-thumb/slider-thumb.ts";
36
40
  import type { WarpSlider } from "./packages/slider/slider.ts";
41
+ import type { WarpSnackbarItem } from "./packages/snackbar-item/snackbar-item.ts";
42
+ import type { WarpSnackbar } from "./packages/snackbar/snackbar.ts";
37
43
  import type { WarpStep } from "./packages/step/step.ts";
38
44
  import type { WarpStepIndicator } from "./packages/step-indicator/step-indicator.ts";
39
45
  import type { WarpSwitch } from "./packages/switch/switch.ts";
@@ -67,6 +73,15 @@ export type ScopedElements<
67
73
  [Key in keyof CustomElements as `${Prefix}${Key}${Suffix}`]: CustomElements[Key];
68
74
  };
69
75
 
76
+ /**
77
+ * A generic type for strongly typing custom events with their targets
78
+ * @template T - The type of the event target (extends EventTarget)
79
+ * @template D - The type of the detail payload for the custom event
80
+ */
81
+ type TypedEvent<T extends EventTarget, E = Event> = E & {
82
+ target: T;
83
+ };
84
+
70
85
  type BaseProps<T extends HTMLElement> = {
71
86
  /** Content added between the opening and closing tags of the element */
72
87
  children?: any;
@@ -90,6 +105,8 @@ type BaseProps<T extends HTMLElement> = {
90
105
  key?: string | number;
91
106
  /** Specifies the language of the element. */
92
107
  lang?: string;
108
+ /** Defines the element's semantic role for accessibility APIs. */
109
+ role?: string;
93
110
  /** Contains a space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the ::part pseudo-element. */
94
111
  part?: string;
95
112
  /** Use the ref attribute with a variable to assign a DOM element to the variable once the element is rendered. */
@@ -112,29 +129,112 @@ type BaseProps<T extends HTMLElement> = {
112
129
  popovertargetaction?: "show" | "hide" | "toggle";
113
130
  };
114
131
 
115
- type BaseEvents = {};
116
-
117
- export type WIconProps = {
118
- /** Icon filename (without .svg) */
119
- name?: WIcon["name"];
120
- /** Size: small, medium, large or pixel value (e.g. "32px") */
121
- size?: WIcon["size"];
122
- /** Locale used in CDN URL */
123
- locale?: WIcon["locale"];
124
- };
125
-
126
- export type WIconSolidJsProps = {
127
- /** Icon filename (without .svg) */
128
- "prop:name"?: WIcon["name"];
129
- /** Size: small, medium, large or pixel value (e.g. "32px") */
130
- "prop:size"?: WIcon["size"];
131
- /** Locale used in CDN URL */
132
- "prop:locale"?: WIcon["locale"];
133
-
134
- /** Set the innerHTML of the element */
135
- innerHTML?: string;
136
- /** Set the textContent of the element */
137
- textContent?: string | number;
132
+ type BaseEvents = {
133
+ // Mouse Events
134
+
135
+ /** Triggered when the element is clicked by the user by mouse or keyboard. */
136
+ onClick?: (event: MouseEvent) => void;
137
+ /** Fired when the context menu is triggered, often by right-clicking. */
138
+ onContextMenu?: (event: MouseEvent) => void;
139
+ /** Fired when the element is double-clicked. */
140
+ onDoubleClick?: (event: MouseEvent) => void;
141
+ /** Fired repeatedly as the draggable element is being dragged. */
142
+ onDrag?: (event: DragEvent) => void;
143
+ /** Fired when the dragging of a draggable element is finished. */
144
+ onDragEnd?: (event: DragEvent) => void;
145
+ /** Fired when a dragged element or text selection enters a valid drop target. */
146
+ onDragEnter?: (event: DragEvent) => void;
147
+ /** Fired when a dragged element or text selection leaves a valid drop target. */
148
+ onDragExit?: (event: DragEvent) => void;
149
+ /** Fired when a dragged element or text selection leaves a valid drop target. */
150
+ onDragLeave?: (event: DragEvent) => void;
151
+ /** Fired when an element or text selection is being dragged over a valid drop target (every few hundred milliseconds). */
152
+ onDragOver?: (event: DragEvent) => void;
153
+ /** Fired when a draggable element starts being dragged. */
154
+ onDragStart?: (event: DragEvent) => void;
155
+ /** Fired when a dragged element is dropped onto a drop target. */
156
+ onDrop?: (event: DragEvent) => void;
157
+ /** Fired when a mouse button is pressed down on the element. */
158
+ onMouseDown?: (event: MouseEvent) => void;
159
+ /** Fired when the mouse cursor enters the element. */
160
+ onMouseEnter?: (event: MouseEvent) => void;
161
+ /** Triggered when the mouse cursor leaves the element. */
162
+ onMouseLeave?: (event: MouseEvent) => void;
163
+ /** Fired at an element when a pointing device (usually a mouse) is moved while the cursor's hotspot is inside it. */
164
+ onMouseMove?: (event: MouseEvent) => void;
165
+ /** Fired at an Element when a pointing device (usually a mouse) is used to move the cursor so that it is no longer contained within the element or one of its children. */
166
+ onMouseOut?: (event: MouseEvent) => void;
167
+ /** Fired at an Element when a pointing device (such as a mouse or trackpad) is used to move the cursor onto the element or one of its child elements. */
168
+ onMouseOver?: (event: MouseEvent) => void;
169
+ /** Fired when a mouse button is released on the element. */
170
+ onMouseUp?: (event: MouseEvent) => void;
171
+
172
+ // Keyboard Events
173
+
174
+ /** Fired when a key is pressed down. */
175
+ onKeyDown?: (event: KeyboardEvent) => void;
176
+ /** Fired when a key is released.. */
177
+ onKeyUp?: (event: KeyboardEvent) => void;
178
+ /** Fired when a key is pressed down. */
179
+ onKeyPressed?: (event: KeyboardEvent) => void;
180
+
181
+ // Focus Events
182
+
183
+ /** Fired when the element receives focus, often triggered by tab navigation. */
184
+ onFocus?: (event: FocusEvent) => void;
185
+ /** Fired when the element loses focus. */
186
+ onBlur?: (event: FocusEvent) => void;
187
+
188
+ // Form Events
189
+
190
+ /** Fired when the value of an input element changes, such as with text inputs or select elements. */
191
+ onChange?: (event: Event) => void;
192
+ /** Fires when the value of an <input>, <select>, or <textarea> element has been changed. */
193
+ onInput?: (event: Event) => void;
194
+ /** Fired when a form is submitted, usually on pressing Enter in a text input. */
195
+ onSubmit?: (event: Event) => void;
196
+ /** Fired when a form is reset. */
197
+ onReset?: (event: Event) => void;
198
+
199
+ // UI Events
200
+
201
+ /** Fired when the content of an element is scrolled. */
202
+ onScroll?: (event: UIEvent) => void;
203
+
204
+ // Wheel Events
205
+
206
+ /** Fired when the mouse wheel is scrolled while the element is focused. */
207
+ onWheel?: (event: WheelEvent) => void;
208
+
209
+ // Animation Events
210
+
211
+ /** Fired when a CSS animation starts. */
212
+ onAnimationStart?: (event: AnimationEvent) => void;
213
+ /** Fired when a CSS animation completes. */
214
+ onAnimationEnd?: (event: AnimationEvent) => void;
215
+ /** Fired when a CSS animation completes one iteration. */
216
+ onAnimationIteration?: (event: AnimationEvent) => void;
217
+
218
+ // Transition Events
219
+
220
+ /** Fired when a CSS transition has completed. */
221
+ onTransitionEnd?: (event: TransitionEvent) => void;
222
+
223
+ // Media Events
224
+
225
+ /** Fired when an element (usually an image) finishes loading */
226
+ onLoad?: (event: Event) => void;
227
+ /** Fired when an error occurs during the loading of an element, like an image not being found. */
228
+ onError?: (event: Event) => void;
229
+
230
+ // Clipboard Events
231
+
232
+ /** Fires when the user initiates a copy action through the browser's user interface. */
233
+ onCopy?: (event: ClipboardEvent) => void;
234
+ /** Fired when the user has initiated a "cut" action through the browser's user interface. */
235
+ onCut?: (event: ClipboardEvent) => void;
236
+ /** Fired when the user has initiated a "paste" action through the browser's user interface. */
237
+ onPaste?: (event: ClipboardEvent) => void;
138
238
  };
139
239
 
140
240
  export type WarpTextFieldProps = {
@@ -154,6 +254,8 @@ or on its own to show a help text. */
154
254
  /** Use in combination with `invalid` to show as a validation error message,
155
255
  or on its own to show a help text. */
156
256
  helpText?: WarpTextField["helpText"];
257
+ /** Whether to show the optional indicator after the label. */
258
+ optional?: WarpTextField["optional"];
157
259
  /** Sets the [size](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#size) (width) of the input field to fit the expected length of inputs. */
158
260
  size?: WarpTextField["size"];
159
261
  /** Use with `type="number"` to set the [maximum allowed value](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#maxlength). */
@@ -223,6 +325,8 @@ or on its own to show a help text. */
223
325
  /** Use in combination with `invalid` to show as a validation error message,
224
326
  or on its own to show a help text. */
225
327
  "prop:helpText"?: WarpTextField["helpText"];
328
+ /** Whether to show the optional indicator after the label. */
329
+ "prop:optional"?: WarpTextField["optional"];
226
330
  /** Sets the [size](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#size) (width) of the input field to fit the expected length of inputs. */
227
331
  "prop:size"?: WarpTextField["size"];
228
332
  /** Use with `type="number"` to set the [maximum allowed value](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#maxlength). */
@@ -280,6 +384,33 @@ similar to the accessible input [masking example from Filament Group](https://fi
280
384
  textContent?: string | number;
281
385
  };
282
386
 
387
+ export type WarpIconProps = {
388
+ /** Icon filename (without .svg) */
389
+ name?: WarpIcon["name"];
390
+ /** Size: small, medium, large or pixel value (e.g. "32px"). */
391
+ size?: WarpIcon["size"];
392
+ /** Locale used for `<title>` text.
393
+
394
+ Reads the `lang` attribute from `<html>`, falls back to 'en'. */
395
+ locale?: WarpIcon["locale"];
396
+ };
397
+
398
+ export type WarpIconSolidJsProps = {
399
+ /** Icon filename (without .svg) */
400
+ "prop:name"?: WarpIcon["name"];
401
+ /** Size: small, medium, large or pixel value (e.g. "32px"). */
402
+ "prop:size"?: WarpIcon["size"];
403
+ /** Locale used for `<title>` text.
404
+
405
+ Reads the `lang` attribute from `<html>`, falls back to 'en'. */
406
+ "prop:locale"?: WarpIcon["locale"];
407
+
408
+ /** Set the innerHTML of the element */
409
+ innerHTML?: string;
410
+ /** Set the textContent of the element */
411
+ textContent?: string | number;
412
+ };
413
+
283
414
  export type WarpAffixProps = {
284
415
  /** */
285
416
  "aria-label"?: WarpAffix["ariaLabel"];
@@ -343,44 +474,52 @@ export type WarpAlertSolidJsProps = {
343
474
  };
344
475
 
345
476
  export type WarpLinkProps = {
346
- /** */
477
+ /** Focus the link after it is rendered */
347
478
  autofocus?: WarpLink["autofocus"];
348
- /** */
479
+ /** Visual style for the link/button. */
349
480
  variant?: WarpLink["variant"];
350
- /** */
481
+ /** Render a smaller version */
351
482
  small?: WarpLink["small"];
352
- /** */
483
+ /** The URL the link points to */
353
484
  href?: WarpLink["href"];
354
- /** */
485
+ /** Applies disabled styling, but you need to disable clicks on your own.
486
+
487
+ The component renders an `<a>` element; `disabled` affects styling, but does not inherently prevent navigation. If you need to fully disable interaction, omit `href` and/or prevent default click behavior. */
355
488
  disabled?: WarpLink["disabled"];
356
- /** */
489
+ /** Where to display the linked URL (e.g. `_blank`) */
357
490
  target?: WarpLink["target"];
358
- /** */
491
+ /** Relationship of the linked URL.
492
+
493
+ If `target="_blank"` and `rel` is not provided, the component uses `noopener`. */
359
494
  rel?: WarpLink["rel"];
360
- /** */
495
+ /** Makes the link take up the full width of its parent */
361
496
  "full-width"?: WarpLink["fullWidth"];
362
- /** */
497
+ /** Makes the link take up the full width of its parent */
363
498
  fullWidth?: WarpLink["fullWidth"];
364
499
  };
365
500
 
366
501
  export type WarpLinkSolidJsProps = {
367
- /** */
502
+ /** Focus the link after it is rendered */
368
503
  "prop:autofocus"?: WarpLink["autofocus"];
369
- /** */
504
+ /** Visual style for the link/button. */
370
505
  "prop:variant"?: WarpLink["variant"];
371
- /** */
506
+ /** Render a smaller version */
372
507
  "prop:small"?: WarpLink["small"];
373
- /** */
508
+ /** The URL the link points to */
374
509
  "prop:href"?: WarpLink["href"];
375
- /** */
510
+ /** Applies disabled styling, but you need to disable clicks on your own.
511
+
512
+ The component renders an `<a>` element; `disabled` affects styling, but does not inherently prevent navigation. If you need to fully disable interaction, omit `href` and/or prevent default click behavior. */
376
513
  "prop:disabled"?: WarpLink["disabled"];
377
- /** */
514
+ /** Where to display the linked URL (e.g. `_blank`) */
378
515
  "prop:target"?: WarpLink["target"];
379
- /** */
516
+ /** Relationship of the linked URL.
517
+
518
+ If `target="_blank"` and `rel` is not provided, the component uses `noopener`. */
380
519
  "prop:rel"?: WarpLink["rel"];
381
- /** */
520
+ /** Makes the link take up the full width of its parent */
382
521
  "bool:full-width"?: WarpLink["fullWidth"];
383
- /** */
522
+ /** Makes the link take up the full width of its parent */
384
523
  "prop:fullWidth"?: WarpLink["fullWidth"];
385
524
 
386
525
  /** Set the innerHTML of the element */
@@ -722,6 +861,35 @@ Defaults to the localized "You are here" label. Set `aria-label` when the defaul
722
861
  textContent?: string | number;
723
862
  };
724
863
 
864
+ export type WarpBreadcrumbItemProps = {
865
+ /** Marks this item as the current page.
866
+ Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator. */
867
+ "current-page"?: WarpBreadcrumbItem["currentPage"];
868
+ /** Marks this item as the current page.
869
+ Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator. */
870
+ currentPage?: WarpBreadcrumbItem["currentPage"];
871
+ /** URL for linked breadcrumb items.
872
+ When omitted, the item renders as non-focusable text. */
873
+ href?: WarpBreadcrumbItem["href"];
874
+ };
875
+
876
+ export type WarpBreadcrumbItemSolidJsProps = {
877
+ /** Marks this item as the current page.
878
+ Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator. */
879
+ "bool:current-page"?: WarpBreadcrumbItem["currentPage"];
880
+ /** Marks this item as the current page.
881
+ Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator. */
882
+ "prop:currentPage"?: WarpBreadcrumbItem["currentPage"];
883
+ /** URL for linked breadcrumb items.
884
+ When omitted, the item renders as non-focusable text. */
885
+ "prop:href"?: WarpBreadcrumbItem["href"];
886
+
887
+ /** Set the innerHTML of the element */
888
+ innerHTML?: string;
889
+ /** Set the textContent of the element */
890
+ textContent?: string | number;
891
+ };
892
+
725
893
  export type WarpCardProps = {
726
894
  /** Whether the card is visually selected.
727
895
 
@@ -761,47 +929,78 @@ When set, the card becomes keyboard focusable and Enter or Space triggers a clic
761
929
  textContent?: string | number;
762
930
  };
763
931
 
764
- export type WCheckboxProps = {
765
- /** The name of the checkbox, submitted as a name/value pair with form data. */
766
- name?: WCheckbox["name"];
767
- /** The value of the checkbox, submitted as a name/value pair with form data. */
768
- value?: WCheckbox["value"];
769
- /** Draws the checkbox in an indeterminate state. */
770
- indeterminate?: WCheckbox["indeterminate"];
771
- /** Draws the checkbox in a checked state (reflected to attribute). */
772
- checked?: WCheckbox["checked"];
773
- /** Disables the checkbox. */
774
- disabled?: WCheckbox["disabled"];
775
- /** Makes the checkbox a required field. */
776
- required?: WCheckbox["required"];
777
- /** Draws the checkbox in an invalid state. */
778
- invalid?: WCheckbox["invalid"];
779
- /** */
780
- input?: WCheckbox["input"];
781
-
782
- /** */
783
- onchange?: (e: Event) => void;
784
- };
785
-
786
- export type WCheckboxSolidJsProps = {
787
- /** The name of the checkbox, submitted as a name/value pair with form data. */
788
- "prop:name"?: WCheckbox["name"];
789
- /** The value of the checkbox, submitted as a name/value pair with form data. */
790
- "prop:value"?: WCheckbox["value"];
791
- /** Draws the checkbox in an indeterminate state. */
792
- "prop:indeterminate"?: WCheckbox["indeterminate"];
793
- /** Draws the checkbox in a checked state (reflected to attribute). */
794
- "prop:checked"?: WCheckbox["checked"];
795
- /** Disables the checkbox. */
796
- "prop:disabled"?: WCheckbox["disabled"];
797
- /** Makes the checkbox a required field. */
798
- "prop:required"?: WCheckbox["required"];
799
- /** Draws the checkbox in an invalid state. */
800
- "prop:invalid"?: WCheckbox["invalid"];
801
- /** */
802
- "prop:input"?: WCheckbox["input"];
803
- /** */
804
- "on:change"?: (e: Event) => void;
932
+ /** `WarpCheckbox` component event */
933
+ export type WarpCheckboxElementEvent<E = Event> = TypedEvent<WarpCheckbox, E>;
934
+
935
+ export type WarpCheckboxProps = {
936
+ /** The name of the checkbox.
937
+
938
+ When the checkbox is checked and belongs to a form, this name is submitted with the checkbox value. If the checkbox is inside a `w-checkbox-group` with a name, the group name is used when the checkbox does not have its own name. */
939
+ name?: WarpCheckbox["name"];
940
+ /** The value submitted when the checkbox is checked.
941
+
942
+ If no value attribute is set, the checkbox defaults to `on`. Unchecked and disabled checkboxes do not submit a value. */
943
+ value?: WarpCheckbox["value"];
944
+ /** Whether the checkbox is visually indeterminate.
945
+
946
+ Use this for parent options that represent a mixed set of child selections. Clicking the checkbox clears the indeterminate state and sets the checkbox to checked. */
947
+ indeterminate?: WarpCheckbox["indeterminate"];
948
+ /** Whether the checkbox is checked.
949
+
950
+ Checked checkboxes submit their value with form data. The property is reflected to the `checked` attribute. */
951
+ checked?: WarpCheckbox["checked"];
952
+ /** Whether the checkbox is disabled.
953
+
954
+ Disabled checkboxes cannot be focused, changed, or submitted with form data. */
955
+ disabled?: WarpCheckbox["disabled"];
956
+ /** Whether the checkbox must be checked before form submission.
957
+
958
+ A required checkbox is invalid until it is checked. For requiring at least one option in a set, use `required` on `w-checkbox-group`. */
959
+ required?: WarpCheckbox["required"];
960
+ /** Whether the checkbox is visually invalid.
961
+
962
+ Use this to show an externally managed validation error. Required validation also sets the invalid state after the user interacts with the checkbox or tries to submit the form. */
963
+ invalid?: WarpCheckbox["invalid"];
964
+ /** */
965
+ input?: WarpCheckbox["input"];
966
+
967
+ /** */
968
+ onchange?: (e: WarpCheckboxElementEvent) => void;
969
+ };
970
+
971
+ export type WarpCheckboxSolidJsProps = {
972
+ /** The name of the checkbox.
973
+
974
+ When the checkbox is checked and belongs to a form, this name is submitted with the checkbox value. If the checkbox is inside a `w-checkbox-group` with a name, the group name is used when the checkbox does not have its own name. */
975
+ "prop:name"?: WarpCheckbox["name"];
976
+ /** The value submitted when the checkbox is checked.
977
+
978
+ If no value attribute is set, the checkbox defaults to `on`. Unchecked and disabled checkboxes do not submit a value. */
979
+ "prop:value"?: WarpCheckbox["value"];
980
+ /** Whether the checkbox is visually indeterminate.
981
+
982
+ Use this for parent options that represent a mixed set of child selections. Clicking the checkbox clears the indeterminate state and sets the checkbox to checked. */
983
+ "prop:indeterminate"?: WarpCheckbox["indeterminate"];
984
+ /** Whether the checkbox is checked.
985
+
986
+ Checked checkboxes submit their value with form data. The property is reflected to the `checked` attribute. */
987
+ "prop:checked"?: WarpCheckbox["checked"];
988
+ /** Whether the checkbox is disabled.
989
+
990
+ Disabled checkboxes cannot be focused, changed, or submitted with form data. */
991
+ "prop:disabled"?: WarpCheckbox["disabled"];
992
+ /** Whether the checkbox must be checked before form submission.
993
+
994
+ A required checkbox is invalid until it is checked. For requiring at least one option in a set, use `required` on `w-checkbox-group`. */
995
+ "prop:required"?: WarpCheckbox["required"];
996
+ /** Whether the checkbox is visually invalid.
997
+
998
+ Use this to show an externally managed validation error. Required validation also sets the invalid state after the user interacts with the checkbox or tries to submit the form. */
999
+ "prop:invalid"?: WarpCheckbox["invalid"];
1000
+ /** */
1001
+ "prop:input"?: WarpCheckbox["input"];
1002
+ /** */
1003
+ "on:change"?: (e: WarpCheckboxElementEvent) => void;
805
1004
 
806
1005
  /** Set the innerHTML of the element */
807
1006
  innerHTML?: string;
@@ -809,38 +1008,66 @@ export type WCheckboxSolidJsProps = {
809
1008
  textContent?: string | number;
810
1009
  };
811
1010
 
812
- export type WCheckboxGroupProps = {
813
- /** The group label displayed above the checkboxes. */
814
- label?: WCheckboxGroup["label"];
815
- /** The name applied to child checkboxes when they do not provide one. */
816
- name?: WCheckboxGroup["name"];
817
- /** Whether to show optional text next to the label. */
818
- optional?: WCheckboxGroup["optional"];
819
- /** */
820
- "help-text"?: WCheckboxGroup["helpText"];
821
- /** */
822
- helpText?: WCheckboxGroup["helpText"];
823
- /** Makes the checkbox group required. */
824
- required?: WCheckboxGroup["required"];
825
- /** Marks the checkbox group as invalid. */
826
- invalid?: WCheckboxGroup["invalid"];
1011
+ export type WarpCheckboxGroupProps = {
1012
+ /** The group label displayed above the checkboxes.
1013
+
1014
+ Use this to describe the shared question or topic for the checkbox options. The label is connected to the internal group for assistive technologies. */
1015
+ label?: WarpCheckboxGroup["label"];
1016
+ /** The name applied to child checkboxes when they do not provide one.
1017
+
1018
+ Use this when the grouped checkboxes should submit values under the same form field name. Individual checkboxes can still override the group name with their own `name`. */
1019
+ name?: WarpCheckboxGroup["name"];
1020
+ /** Whether to show optional text next to the label.
1021
+
1022
+ Use this to indicate that selecting an option from the group is not required. */
1023
+ optional?: WarpCheckboxGroup["optional"];
1024
+ /** Help text displayed below the checkbox group.
1025
+
1026
+ Use this for supporting guidance or validation feedback. When required validation fails, the group replaces this text with the localized required message. */
1027
+ "help-text"?: WarpCheckboxGroup["helpText"];
1028
+ /** Help text displayed below the checkbox group.
1029
+
1030
+ Use this for supporting guidance or validation feedback. When required validation fails, the group replaces this text with the localized required message. */
1031
+ helpText?: WarpCheckboxGroup["helpText"];
1032
+ /** Whether at least one checkbox in the group must be selected.
1033
+
1034
+ Required validation is managed by the group. The individual checkboxes provide the submitted form values. */
1035
+ required?: WarpCheckboxGroup["required"];
1036
+ /** Whether the checkbox group is visually invalid.
1037
+
1038
+ Use this to show an externally managed validation error for the group. The invalid state is also shared with child checkboxes for consistent styling and accessibility state. */
1039
+ invalid?: WarpCheckboxGroup["invalid"];
827
1040
  };
828
1041
 
829
- export type WCheckboxGroupSolidJsProps = {
830
- /** The group label displayed above the checkboxes. */
831
- "prop:label"?: WCheckboxGroup["label"];
832
- /** The name applied to child checkboxes when they do not provide one. */
833
- "prop:name"?: WCheckboxGroup["name"];
834
- /** Whether to show optional text next to the label. */
835
- "prop:optional"?: WCheckboxGroup["optional"];
836
- /** */
837
- "attr:help-text"?: WCheckboxGroup["helpText"];
838
- /** */
839
- "prop:helpText"?: WCheckboxGroup["helpText"];
840
- /** Makes the checkbox group required. */
841
- "prop:required"?: WCheckboxGroup["required"];
842
- /** Marks the checkbox group as invalid. */
843
- "prop:invalid"?: WCheckboxGroup["invalid"];
1042
+ export type WarpCheckboxGroupSolidJsProps = {
1043
+ /** The group label displayed above the checkboxes.
1044
+
1045
+ Use this to describe the shared question or topic for the checkbox options. The label is connected to the internal group for assistive technologies. */
1046
+ "prop:label"?: WarpCheckboxGroup["label"];
1047
+ /** The name applied to child checkboxes when they do not provide one.
1048
+
1049
+ Use this when the grouped checkboxes should submit values under the same form field name. Individual checkboxes can still override the group name with their own `name`. */
1050
+ "prop:name"?: WarpCheckboxGroup["name"];
1051
+ /** Whether to show optional text next to the label.
1052
+
1053
+ Use this to indicate that selecting an option from the group is not required. */
1054
+ "prop:optional"?: WarpCheckboxGroup["optional"];
1055
+ /** Help text displayed below the checkbox group.
1056
+
1057
+ Use this for supporting guidance or validation feedback. When required validation fails, the group replaces this text with the localized required message. */
1058
+ "attr:help-text"?: WarpCheckboxGroup["helpText"];
1059
+ /** Help text displayed below the checkbox group.
1060
+
1061
+ Use this for supporting guidance or validation feedback. When required validation fails, the group replaces this text with the localized required message. */
1062
+ "prop:helpText"?: WarpCheckboxGroup["helpText"];
1063
+ /** Whether at least one checkbox in the group must be selected.
1064
+
1065
+ Required validation is managed by the group. The individual checkboxes provide the submitted form values. */
1066
+ "prop:required"?: WarpCheckboxGroup["required"];
1067
+ /** Whether the checkbox group is visually invalid.
1068
+
1069
+ Use this to show an externally managed validation error for the group. The invalid state is also shared with child checkboxes for consistent styling and accessibility state. */
1070
+ "prop:invalid"?: WarpCheckboxGroup["invalid"];
844
1071
 
845
1072
  /** Set the innerHTML of the element */
846
1073
  innerHTML?: string;
@@ -849,88 +1076,168 @@ export type WCheckboxGroupSolidJsProps = {
849
1076
  };
850
1077
 
851
1078
  export type WarpComboboxProps = {
852
- /** The available options to select from */
1079
+ /** The available options to select from.
1080
+
1081
+ Use this for framework usage, application state, or remote search results. When `options` contains entries, it is used instead of child `<option>` elements. */
853
1082
  options?: WarpCombobox["options"];
854
- /** Label above input */
1083
+ /** The label displayed above the input.
1084
+
1085
+ Use this to give the combobox a visible and accessible name. */
855
1086
  label?: WarpCombobox["label"];
856
- /** Input placeholder */
1087
+ /** Placeholder text displayed when the input is empty.
1088
+
1089
+ Use this as a short hint for the expected input. Do not use placeholder text as a replacement for a label. */
857
1090
  placeholder?: WarpCombobox["placeholder"];
858
- /** The input value */
1091
+ /** The selected or typed value.
1092
+
1093
+ When an option is selected, this is set to the option value. The displayed text may differ when the option has a separate label. */
859
1094
  value?: WarpCombobox["value"];
860
- /** Whether the popover opens when focus is on the text field */
1095
+ /** Whether the option list opens when the input receives focus.
1096
+
1097
+ Use this when users should see available options before they start typing. */
861
1098
  "open-on-focus"?: WarpCombobox["openOnFocus"];
862
- /** Whether the popover opens when focus is on the text field */
1099
+ /** Whether the option list opens when the input receives focus.
1100
+
1101
+ Use this when users should see available options before they start typing. */
863
1102
  openOnFocus?: WarpCombobox["openOnFocus"];
864
- /** Select active option on blur */
1103
+ /** Whether the active option is selected when the input loses focus.
1104
+
1105
+ When enabled, the combobox selects the keyboard-highlighted option, or an option whose value exactly matches the current input value, on blur. */
865
1106
  "select-on-blur"?: WarpCombobox["selectOnBlur"];
866
- /** Select active option on blur */
1107
+ /** Whether the active option is selected when the input loses focus.
1108
+
1109
+ When enabled, the combobox selects the keyboard-highlighted option, or an option whose value exactly matches the current input value, on blur. */
867
1110
  selectOnBlur?: WarpCombobox["selectOnBlur"];
868
- /** Whether the matching text segments in the options should be highlighted */
1111
+ /** Whether matching text segments in options are highlighted.
1112
+
1113
+ Use this to visually emphasize the part of each option that matches the current input value. */
869
1114
  "match-text-segments"?: WarpCombobox["matchTextSegments"];
870
- /** Whether the matching text segments in the options should be highlighted */
1115
+ /** Whether matching text segments in options are highlighted.
1116
+
1117
+ Use this to visually emphasize the part of each option that matches the current input value. */
871
1118
  matchTextSegments?: WarpCombobox["matchTextSegments"];
872
- /** Disable client-side static filtering */
1119
+ /** Whether built-in client-side filtering is disabled.
1120
+
1121
+ Use this for remote search or externally filtered results. When disabled, all entries in `options` are rendered as provided. */
873
1122
  "disable-static-filtering"?: WarpCombobox["disableStaticFiltering"];
874
- /** Disable client-side static filtering */
1123
+ /** Whether built-in client-side filtering is disabled.
1124
+
1125
+ Use this for remote search or externally filtered results. When disabled, all entries in `options` are rendered as provided. */
875
1126
  disableStaticFiltering?: WarpCombobox["disableStaticFiltering"];
876
- /** Renders the input field in an invalid state */
1127
+ /** Whether the combobox is visually invalid.
1128
+
1129
+ Use this to show an externally managed validation error. Pair it with `help-text` to explain how to fix the error. */
877
1130
  invalid?: WarpCombobox["invalid"];
878
- /** The content to display as the help text */
1131
+ /** Help text displayed below the input.
1132
+
1133
+ Use this for supporting guidance or validation feedback. */
879
1134
  "help-text"?: WarpCombobox["helpText"];
880
- /** The content to display as the help text */
1135
+ /** Help text displayed below the input.
1136
+
1137
+ Use this for supporting guidance or validation feedback. */
881
1138
  helpText?: WarpCombobox["helpText"];
882
- /** Whether the element is disabled */
1139
+ /** Whether the combobox is disabled.
1140
+
1141
+ Disabled comboboxes cannot be focused, changed, or submitted with form data. */
883
1142
  disabled?: WarpCombobox["disabled"];
884
- /** Whether the element is required */
1143
+ /** Whether the combobox is required before form submission.
1144
+
1145
+ Use this when the user must provide a value before submitting the form. */
885
1146
  required?: WarpCombobox["required"];
886
- /** Whether to show optional text */
1147
+ /** Whether to show optional text next to the label.
1148
+
1149
+ Use this to indicate that the combobox is not required. */
887
1150
  optional?: WarpCombobox["optional"];
888
- /** Name attribute for form submission */
1151
+ /** The name submitted with the combobox value.
1152
+
1153
+ Use this when the combobox belongs to a form and its value should be included in form data. */
889
1154
  name?: WarpCombobox["name"];
890
- /** Autocomplete attribute for the input field */
1155
+ /** The autocomplete attribute passed to the internal input.
1156
+
1157
+ Defaults to `off`. Set this when browser autocomplete should be enabled or scoped to a specific autocomplete token. */
891
1158
  autocomplete?: WarpCombobox["autocomplete"];
892
1159
  };
893
1160
 
894
1161
  export type WarpComboboxSolidJsProps = {
895
- /** The available options to select from */
1162
+ /** The available options to select from.
1163
+
1164
+ Use this for framework usage, application state, or remote search results. When `options` contains entries, it is used instead of child `<option>` elements. */
896
1165
  "prop:options"?: WarpCombobox["options"];
897
- /** Label above input */
1166
+ /** The label displayed above the input.
1167
+
1168
+ Use this to give the combobox a visible and accessible name. */
898
1169
  "prop:label"?: WarpCombobox["label"];
899
- /** Input placeholder */
1170
+ /** Placeholder text displayed when the input is empty.
1171
+
1172
+ Use this as a short hint for the expected input. Do not use placeholder text as a replacement for a label. */
900
1173
  "prop:placeholder"?: WarpCombobox["placeholder"];
901
- /** The input value */
1174
+ /** The selected or typed value.
1175
+
1176
+ When an option is selected, this is set to the option value. The displayed text may differ when the option has a separate label. */
902
1177
  "prop:value"?: WarpCombobox["value"];
903
- /** Whether the popover opens when focus is on the text field */
1178
+ /** Whether the option list opens when the input receives focus.
1179
+
1180
+ Use this when users should see available options before they start typing. */
904
1181
  "bool:open-on-focus"?: WarpCombobox["openOnFocus"];
905
- /** Whether the popover opens when focus is on the text field */
1182
+ /** Whether the option list opens when the input receives focus.
1183
+
1184
+ Use this when users should see available options before they start typing. */
906
1185
  "prop:openOnFocus"?: WarpCombobox["openOnFocus"];
907
- /** Select active option on blur */
1186
+ /** Whether the active option is selected when the input loses focus.
1187
+
1188
+ When enabled, the combobox selects the keyboard-highlighted option, or an option whose value exactly matches the current input value, on blur. */
908
1189
  "bool:select-on-blur"?: WarpCombobox["selectOnBlur"];
909
- /** Select active option on blur */
1190
+ /** Whether the active option is selected when the input loses focus.
1191
+
1192
+ When enabled, the combobox selects the keyboard-highlighted option, or an option whose value exactly matches the current input value, on blur. */
910
1193
  "prop:selectOnBlur"?: WarpCombobox["selectOnBlur"];
911
- /** Whether the matching text segments in the options should be highlighted */
1194
+ /** Whether matching text segments in options are highlighted.
1195
+
1196
+ Use this to visually emphasize the part of each option that matches the current input value. */
912
1197
  "bool:match-text-segments"?: WarpCombobox["matchTextSegments"];
913
- /** Whether the matching text segments in the options should be highlighted */
1198
+ /** Whether matching text segments in options are highlighted.
1199
+
1200
+ Use this to visually emphasize the part of each option that matches the current input value. */
914
1201
  "prop:matchTextSegments"?: WarpCombobox["matchTextSegments"];
915
- /** Disable client-side static filtering */
1202
+ /** Whether built-in client-side filtering is disabled.
1203
+
1204
+ Use this for remote search or externally filtered results. When disabled, all entries in `options` are rendered as provided. */
916
1205
  "bool:disable-static-filtering"?: WarpCombobox["disableStaticFiltering"];
917
- /** Disable client-side static filtering */
1206
+ /** Whether built-in client-side filtering is disabled.
1207
+
1208
+ Use this for remote search or externally filtered results. When disabled, all entries in `options` are rendered as provided. */
918
1209
  "prop:disableStaticFiltering"?: WarpCombobox["disableStaticFiltering"];
919
- /** Renders the input field in an invalid state */
1210
+ /** Whether the combobox is visually invalid.
1211
+
1212
+ Use this to show an externally managed validation error. Pair it with `help-text` to explain how to fix the error. */
920
1213
  "prop:invalid"?: WarpCombobox["invalid"];
921
- /** The content to display as the help text */
1214
+ /** Help text displayed below the input.
1215
+
1216
+ Use this for supporting guidance or validation feedback. */
922
1217
  "attr:help-text"?: WarpCombobox["helpText"];
923
- /** The content to display as the help text */
1218
+ /** Help text displayed below the input.
1219
+
1220
+ Use this for supporting guidance or validation feedback. */
924
1221
  "prop:helpText"?: WarpCombobox["helpText"];
925
- /** Whether the element is disabled */
1222
+ /** Whether the combobox is disabled.
1223
+
1224
+ Disabled comboboxes cannot be focused, changed, or submitted with form data. */
926
1225
  "prop:disabled"?: WarpCombobox["disabled"];
927
- /** Whether the element is required */
1226
+ /** Whether the combobox is required before form submission.
1227
+
1228
+ Use this when the user must provide a value before submitting the form. */
928
1229
  "prop:required"?: WarpCombobox["required"];
929
- /** Whether to show optional text */
1230
+ /** Whether to show optional text next to the label.
1231
+
1232
+ Use this to indicate that the combobox is not required. */
930
1233
  "prop:optional"?: WarpCombobox["optional"];
931
- /** Name attribute for form submission */
1234
+ /** The name submitted with the combobox value.
1235
+
1236
+ Use this when the combobox belongs to a form and its value should be included in form data. */
932
1237
  "prop:name"?: WarpCombobox["name"];
933
- /** Autocomplete attribute for the input field */
1238
+ /** The autocomplete attribute passed to the internal input.
1239
+
1240
+ Defaults to `off`. Set this when browser autocomplete should be enabled or scoped to a specific autocomplete token. */
934
1241
  "prop:autocomplete"?: WarpCombobox["autocomplete"];
935
1242
 
936
1243
  /** Set the innerHTML of the element */
@@ -940,41 +1247,49 @@ export type WarpComboboxSolidJsProps = {
940
1247
  };
941
1248
 
942
1249
  export type WarpDatepickerProps = {
943
- /** */
1250
+ /** The label displayed above the date input.
1251
+
1252
+ Use this to give the datepicker a visible and accessible name. */
944
1253
  label?: WarpDatepicker["label"];
945
- /** Takes precedence over the `<html>` lang attribute. */
1254
+ /** The locale used for calendar labels and date formatting.
1255
+
1256
+ This takes precedence over the `<html>` `lang` attribute. Supported built-in locales are `en`, `nb`, `sv`, `da`, and `fi`. */
946
1257
  lang?: WarpDatepicker["lang"];
947
- /** */
1258
+ /** The name submitted with the date value.
1259
+
1260
+ Use this when the datepicker belongs to a form and its value should be included in form data. */
948
1261
  name?: WarpDatepicker["name"];
949
- /** */
1262
+ /** The selected date value.
1263
+
1264
+ Use an ISO date string in `YYYY-MM-DD` format. The value is submitted with the form and is reset to its initial value when the form resets. */
950
1265
  value?: WarpDatepicker["value"];
951
- /** Decides the format of the date as shown in the calendar header.
1266
+ /** The date format used in the calendar header.
952
1267
 
953
1268
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
954
1269
  "header-format"?: WarpDatepicker["headerFormat"];
955
- /** Decides the format of the date as shown in the calendar header.
1270
+ /** The date format used in the calendar header.
956
1271
 
957
1272
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
958
1273
  headerFormat?: WarpDatepicker["headerFormat"];
959
- /** Decides the format of the weekday as shown above the grid of dates in the calendar.
1274
+ /** The weekday format shown above the calendar grid.
960
1275
 
961
1276
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
962
1277
  "weekday-format"?: WarpDatepicker["weekdayFormat"];
963
- /** Decides the format of the weekday as shown above the grid of dates in the calendar.
1278
+ /** The weekday format shown above the calendar grid.
964
1279
 
965
1280
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
966
1281
  weekdayFormat?: WarpDatepicker["weekdayFormat"];
967
- /** Decides the format of the day in the calendar as read to screen readers.
1282
+ /** The date format used for calendar day accessible names.
968
1283
 
969
1284
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
970
1285
  "day-format"?: WarpDatepicker["dayFormat"];
971
- /** Decides the format of the day in the calendar as read to screen readers.
1286
+ /** The date format used for calendar day accessible names.
972
1287
 
973
1288
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
974
1289
  dayFormat?: WarpDatepicker["dayFormat"];
975
- /** Lets you control if a date in the calendar should be disabled.
1290
+ /** Function used to disable dates in the calendar.
976
1291
 
977
- This needs to be set on the element instance in JavaScript, not as an HTML attribute. */
1292
+ Set this on the element instance in JavaScript, not as an HTML attribute. Disabled dates cannot be selected from the calendar. */
978
1293
  isDayDisabled?: WarpDatepicker["isDayDisabled"];
979
1294
  /** */
980
1295
  isCalendarOpen?: WarpDatepicker["isCalendarOpen"];
@@ -1001,41 +1316,49 @@ the query will point to an element that doesn't exist anymore. */
1001
1316
  };
1002
1317
 
1003
1318
  export type WarpDatepickerSolidJsProps = {
1004
- /** */
1319
+ /** The label displayed above the date input.
1320
+
1321
+ Use this to give the datepicker a visible and accessible name. */
1005
1322
  "prop:label"?: WarpDatepicker["label"];
1006
- /** Takes precedence over the `<html>` lang attribute. */
1323
+ /** The locale used for calendar labels and date formatting.
1324
+
1325
+ This takes precedence over the `<html>` `lang` attribute. Supported built-in locales are `en`, `nb`, `sv`, `da`, and `fi`. */
1007
1326
  "prop:lang"?: WarpDatepicker["lang"];
1008
- /** */
1327
+ /** The name submitted with the date value.
1328
+
1329
+ Use this when the datepicker belongs to a form and its value should be included in form data. */
1009
1330
  "prop:name"?: WarpDatepicker["name"];
1010
- /** */
1331
+ /** The selected date value.
1332
+
1333
+ Use an ISO date string in `YYYY-MM-DD` format. The value is submitted with the form and is reset to its initial value when the form resets. */
1011
1334
  "prop:value"?: WarpDatepicker["value"];
1012
- /** Decides the format of the date as shown in the calendar header.
1335
+ /** The date format used in the calendar header.
1013
1336
 
1014
1337
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
1015
1338
  "attr:header-format"?: WarpDatepicker["headerFormat"];
1016
- /** Decides the format of the date as shown in the calendar header.
1339
+ /** The date format used in the calendar header.
1017
1340
 
1018
1341
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
1019
1342
  "prop:headerFormat"?: WarpDatepicker["headerFormat"];
1020
- /** Decides the format of the weekday as shown above the grid of dates in the calendar.
1343
+ /** The weekday format shown above the calendar grid.
1021
1344
 
1022
1345
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
1023
1346
  "attr:weekday-format"?: WarpDatepicker["weekdayFormat"];
1024
- /** Decides the format of the weekday as shown above the grid of dates in the calendar.
1347
+ /** The weekday format shown above the calendar grid.
1025
1348
 
1026
1349
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
1027
1350
  "prop:weekdayFormat"?: WarpDatepicker["weekdayFormat"];
1028
- /** Decides the format of the day in the calendar as read to screen readers.
1351
+ /** The date format used for calendar day accessible names.
1029
1352
 
1030
1353
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
1031
1354
  "attr:day-format"?: WarpDatepicker["dayFormat"];
1032
- /** Decides the format of the day in the calendar as read to screen readers.
1355
+ /** The date format used for calendar day accessible names.
1033
1356
 
1034
1357
  The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format). */
1035
1358
  "prop:dayFormat"?: WarpDatepicker["dayFormat"];
1036
- /** Lets you control if a date in the calendar should be disabled.
1359
+ /** Function used to disable dates in the calendar.
1037
1360
 
1038
- This needs to be set on the element instance in JavaScript, not as an HTML attribute. */
1361
+ Set this on the element instance in JavaScript, not as an HTML attribute. Disabled dates cannot be selected from the calendar. */
1039
1362
  "prop:isDayDisabled"?: WarpDatepicker["isDayDisabled"];
1040
1363
  /** */
1041
1364
  "prop:isCalendarOpen"?: WarpDatepicker["isCalendarOpen"];
@@ -1067,31 +1390,31 @@ the query will point to an element that doesn't exist anymore. */
1067
1390
  };
1068
1391
 
1069
1392
  export type WarpExpandableProps = {
1070
- /** */
1393
+ /** Controls component's expanded state */
1071
1394
  expanded?: WarpExpandable["expanded"];
1072
- /** */
1395
+ /** Component title. Used to display the title value which is always present regardless of whether the component is open or closed. */
1073
1396
  title?: WarpExpandable["title"];
1074
- /** */
1397
+ /** Will make the expandable a Box */
1075
1398
  box?: WarpExpandable["box"];
1076
- /** */
1399
+ /** Will make the expandable full-width on the sm breakpoint size */
1077
1400
  bleed?: WarpExpandable["bleed"];
1078
- /** */
1401
+ /** @deprecated Probably does not work the way you expect. The class must exist inside the shadow DOM of the component. */
1079
1402
  "button-class"?: WarpExpandable["buttonClass"];
1080
- /** */
1403
+ /** @deprecated Probably does not work the way you expect. The class must exist inside the shadow DOM of the component. */
1081
1404
  buttonClass?: WarpExpandable["buttonClass"];
1082
- /** */
1405
+ /** @deprecated Probably does not work the way you expect. The class must exist inside the shadow DOM of the component. */
1083
1406
  "content-class"?: WarpExpandable["contentClass"];
1084
- /** */
1407
+ /** @deprecated Probably does not work the way you expect. The class must exist inside the shadow DOM of the component. */
1085
1408
  contentClass?: WarpExpandable["contentClass"];
1086
- /** */
1409
+ /** Controls chevron visibility */
1087
1410
  "no-chevron"?: WarpExpandable["noChevron"];
1088
- /** */
1411
+ /** Controls chevron visibility */
1089
1412
  noChevron?: WarpExpandable["noChevron"];
1090
- /** */
1413
+ /** Will animate the expansion/collapse */
1091
1414
  animated?: WarpExpandable["animated"];
1092
- /** */
1415
+ /** Wrap the toggle button in a heading element with the specified level. If headingLevel is not specified, the button will not be wrapped by a heading element. */
1093
1416
  "heading-level"?: WarpExpandable["headingLevel"];
1094
- /** */
1417
+ /** Wrap the toggle button in a heading element with the specified level. If headingLevel is not specified, the button will not be wrapped by a heading element. */
1095
1418
  headingLevel?: WarpExpandable["headingLevel"];
1096
1419
  /** */
1097
1420
  _hasTitle?: WarpExpandable["_hasTitle"];
@@ -1100,31 +1423,31 @@ export type WarpExpandableProps = {
1100
1423
  };
1101
1424
 
1102
1425
  export type WarpExpandableSolidJsProps = {
1103
- /** */
1426
+ /** Controls component's expanded state */
1104
1427
  "prop:expanded"?: WarpExpandable["expanded"];
1105
- /** */
1428
+ /** Component title. Used to display the title value which is always present regardless of whether the component is open or closed. */
1106
1429
  "prop:title"?: WarpExpandable["title"];
1107
- /** */
1430
+ /** Will make the expandable a Box */
1108
1431
  "prop:box"?: WarpExpandable["box"];
1109
- /** */
1432
+ /** Will make the expandable full-width on the sm breakpoint size */
1110
1433
  "prop:bleed"?: WarpExpandable["bleed"];
1111
- /** */
1434
+ /** @deprecated Probably does not work the way you expect. The class must exist inside the shadow DOM of the component. */
1112
1435
  "attr:button-class"?: WarpExpandable["buttonClass"];
1113
- /** */
1436
+ /** @deprecated Probably does not work the way you expect. The class must exist inside the shadow DOM of the component. */
1114
1437
  "prop:buttonClass"?: WarpExpandable["buttonClass"];
1115
- /** */
1438
+ /** @deprecated Probably does not work the way you expect. The class must exist inside the shadow DOM of the component. */
1116
1439
  "attr:content-class"?: WarpExpandable["contentClass"];
1117
- /** */
1440
+ /** @deprecated Probably does not work the way you expect. The class must exist inside the shadow DOM of the component. */
1118
1441
  "prop:contentClass"?: WarpExpandable["contentClass"];
1119
- /** */
1442
+ /** Controls chevron visibility */
1120
1443
  "bool:no-chevron"?: WarpExpandable["noChevron"];
1121
- /** */
1444
+ /** Controls chevron visibility */
1122
1445
  "prop:noChevron"?: WarpExpandable["noChevron"];
1123
- /** */
1446
+ /** Will animate the expansion/collapse */
1124
1447
  "prop:animated"?: WarpExpandable["animated"];
1125
- /** */
1448
+ /** Wrap the toggle button in a heading element with the specified level. If headingLevel is not specified, the button will not be wrapped by a heading element. */
1126
1449
  "attr:heading-level"?: WarpExpandable["headingLevel"];
1127
- /** */
1450
+ /** Wrap the toggle button in a heading element with the specified level. If headingLevel is not specified, the button will not be wrapped by a heading element. */
1128
1451
  "prop:headingLevel"?: WarpExpandable["headingLevel"];
1129
1452
  /** */
1130
1453
  "prop:_hasTitle"?: WarpExpandable["_hasTitle"];
@@ -1137,6 +1460,9 @@ export type WarpExpandableSolidJsProps = {
1137
1460
  textContent?: string | number;
1138
1461
  };
1139
1462
 
1463
+ /** `WarpModal` component event */
1464
+ export type WarpModalElementEvent<E = Event> = TypedEvent<WarpModal, E>;
1465
+
1140
1466
  export type WarpModalProps = {
1141
1467
  /** Controls if the modal should show or hide.
1142
1468
 
@@ -1152,9 +1478,9 @@ You can also call the `open()` and `close()` methods. */
1152
1478
  ignoreBackdropClicks?: WarpModal["ignoreBackdropClicks"];
1153
1479
 
1154
1480
  /** */
1155
- onshown?: (e: CustomEvent) => void;
1481
+ onshown?: (e: WarpModalElementEvent) => void;
1156
1482
  /** */
1157
- onhidden?: (e: CustomEvent) => void;
1483
+ onhidden?: (e: WarpModalElementEvent) => void;
1158
1484
  };
1159
1485
 
1160
1486
  export type WarpModalSolidJsProps = {
@@ -1171,9 +1497,9 @@ You can also call the `open()` and `close()` methods. */
1171
1497
  /** Ignores clicks to the backdrop when set */
1172
1498
  "prop:ignoreBackdropClicks"?: WarpModal["ignoreBackdropClicks"];
1173
1499
  /** */
1174
- "on:shown"?: (e: CustomEvent) => void;
1500
+ "on:shown"?: (e: WarpModalElementEvent) => void;
1175
1501
  /** */
1176
- "on:hidden"?: (e: CustomEvent) => void;
1502
+ "on:hidden"?: (e: WarpModalElementEvent) => void;
1177
1503
 
1178
1504
  /** Set the innerHTML of the element */
1179
1505
  innerHTML?: string;
@@ -1190,6 +1516,12 @@ export type WarpModalFooterSolidJsProps = {
1190
1516
  textContent?: string | number;
1191
1517
  };
1192
1518
 
1519
+ /** `WarpModalHeader` component event */
1520
+ export type WarpModalHeaderElementEvent<E = Event> = TypedEvent<
1521
+ WarpModalHeader,
1522
+ E
1523
+ >;
1524
+
1193
1525
  export type WarpModalHeaderProps = {
1194
1526
  /** A short but descriptive title for the modal */
1195
1527
  title?: WarpModalHeader["title"];
@@ -1201,7 +1533,7 @@ export type WarpModalHeaderProps = {
1201
1533
  noClose?: WarpModalHeader["noClose"];
1202
1534
 
1203
1535
  /** */
1204
- onbackClicked?: (e: CustomEvent) => void;
1536
+ onbackClicked?: (e: WarpModalHeaderElementEvent) => void;
1205
1537
  };
1206
1538
 
1207
1539
  export type WarpModalHeaderSolidJsProps = {
@@ -1214,7 +1546,7 @@ export type WarpModalHeaderSolidJsProps = {
1214
1546
  /** Lets you hide the close button in the header */
1215
1547
  "prop:noClose"?: WarpModalHeader["noClose"];
1216
1548
  /** */
1217
- "on:backClicked"?: (e: CustomEvent) => void;
1549
+ "on:backClicked"?: (e: WarpModalHeaderElementEvent) => void;
1218
1550
 
1219
1551
  /** Set the innerHTML of the element */
1220
1552
  innerHTML?: string;
@@ -1249,6 +1581,12 @@ export type WarpPageIndicatorSolidJsProps = {
1249
1581
  textContent?: string | number;
1250
1582
  };
1251
1583
 
1584
+ /** `WarpPagination` component event */
1585
+ export type WarpPaginationElementEvent<E = Event> = TypedEvent<
1586
+ WarpPagination,
1587
+ E
1588
+ >;
1589
+
1252
1590
  export type WarpPaginationProps = {
1253
1591
  /** The base URL used to construct page links, for example `/search?page=`.
1254
1592
 
@@ -1270,7 +1608,7 @@ The page number is appended to this URL. */
1270
1608
  visiblePages?: WarpPagination["visiblePages"];
1271
1609
 
1272
1610
  /** Triggered when a link in the pagination is clicked. Contains the page number in `string` form. */
1273
- "onpage-click"?: (e: CustomEvent) => void;
1611
+ "onpage-click"?: (e: WarpPaginationElementEvent) => void;
1274
1612
  };
1275
1613
 
1276
1614
  export type WarpPaginationSolidJsProps = {
@@ -1293,7 +1631,7 @@ The page number is appended to this URL. */
1293
1631
  /** The maximum number of page numbers visible. */
1294
1632
  "prop:visiblePages"?: WarpPagination["visiblePages"];
1295
1633
  /** Triggered when a link in the pagination is clicked. Contains the page number in `string` form. */
1296
- "on:page-click"?: (e: CustomEvent) => void;
1634
+ "on:page-click"?: (e: WarpPaginationElementEvent) => void;
1297
1635
 
1298
1636
  /** Set the innerHTML of the element */
1299
1637
  innerHTML?: string;
@@ -1301,6 +1639,9 @@ The page number is appended to this URL. */
1301
1639
  textContent?: string | number;
1302
1640
  };
1303
1641
 
1642
+ /** `WarpPill` component event */
1643
+ export type WarpPillElementEvent<E = Event> = TypedEvent<WarpPill, E>;
1644
+
1304
1645
  export type WarpPillProps = {
1305
1646
  /** Whether the pill should be removable via a close button. */
1306
1647
  "can-close"?: WarpPill["canClose"];
@@ -1326,9 +1667,9 @@ export type WarpPillProps = {
1326
1667
  closeAriaLabel?: WarpPill["closeAriaLabel"];
1327
1668
 
1328
1669
  /** Fires when the pill itself is clicked. */
1329
- "onw-pill-click"?: (e: CustomEvent) => void;
1670
+ "onw-pill-click"?: (e: WarpPillElementEvent) => void;
1330
1671
  /** Fires when the pill's close button is clicked. */
1331
- "onw-pill-close"?: (e: CustomEvent) => void;
1672
+ "onw-pill-close"?: (e: WarpPillElementEvent) => void;
1332
1673
  };
1333
1674
 
1334
1675
  export type WarpPillSolidJsProps = {
@@ -1355,9 +1696,9 @@ export type WarpPillSolidJsProps = {
1355
1696
  /** Label read by screen readers when targeting the close button. */
1356
1697
  "prop:closeAriaLabel"?: WarpPill["closeAriaLabel"];
1357
1698
  /** Fires when the pill itself is clicked. */
1358
- "on:w-pill-click"?: (e: CustomEvent) => void;
1699
+ "on:w-pill-click"?: (e: WarpPillElementEvent) => void;
1359
1700
  /** Fires when the pill's close button is clicked. */
1360
- "on:w-pill-close"?: (e: CustomEvent) => void;
1701
+ "on:w-pill-close"?: (e: WarpPillElementEvent) => void;
1361
1702
 
1362
1703
  /** Set the innerHTML of the element */
1363
1704
  innerHTML?: string;
@@ -1451,6 +1792,9 @@ If you set `required` and `invalid` the group gets a default error message, but
1451
1792
  textContent?: string | number;
1452
1793
  };
1453
1794
 
1795
+ /** `WarpSelect` component event */
1796
+ export type WarpSelectElementEvent<E = Event> = TypedEvent<WarpSelect, E>;
1797
+
1454
1798
  export type WarpSelectProps = {
1455
1799
  /** @deprecated Use the native `autofocus` attribute instead. - Whether the element should receive focus on render. */
1456
1800
  "auto-focus"?: WarpSelect["autoFocus"];
@@ -1492,7 +1836,7 @@ Paired with `help-text` to provide feedback about the error. */
1492
1836
  value?: WarpSelect["value"];
1493
1837
 
1494
1838
  /** */
1495
- onchange?: (e: CustomEvent) => void;
1839
+ onchange?: (e: WarpSelectElementEvent) => void;
1496
1840
  };
1497
1841
 
1498
1842
  export type WarpSelectSolidJsProps = {
@@ -1535,7 +1879,7 @@ Paired with `help-text` to provide feedback about the error. */
1535
1879
  /** Lets you set the current value. */
1536
1880
  "prop:value"?: WarpSelect["value"];
1537
1881
  /** */
1538
- "on:change"?: (e: CustomEvent) => void;
1882
+ "on:change"?: (e: WarpSelectElementEvent) => void;
1539
1883
 
1540
1884
  /** Set the innerHTML of the element */
1541
1885
  innerHTML?: string;
@@ -1543,6 +1887,12 @@ Paired with `help-text` to provide feedback about the error. */
1543
1887
  textContent?: string | number;
1544
1888
  };
1545
1889
 
1890
+ /** `WarpSliderThumb` component event */
1891
+ export type WarpSliderThumbElementEvent<E = Event> = TypedEvent<
1892
+ WarpSliderThumb,
1893
+ E
1894
+ >;
1895
+
1546
1896
  export type WarpSliderThumbProps = {
1547
1897
  /** Label for the range input. */
1548
1898
  "aria-label"?: WarpSliderThumb["ariaLabel"];
@@ -1560,9 +1910,9 @@ export type WarpSliderThumbProps = {
1560
1910
  placeholder?: WarpSliderThumb["placeholder"];
1561
1911
 
1562
1912
  /** Internal event used by (and stopped by) `w-slider`. */
1563
- onthumbreset?: (e: CustomEvent) => void;
1913
+ onthumbreset?: (e: WarpSliderThumbElementEvent) => void;
1564
1914
  /** Internal event used by (and stopped by) `w-slider`. */
1565
- onslidervalidity?: (e: CustomEvent) => void;
1915
+ onslidervalidity?: (e: WarpSliderThumbElementEvent) => void;
1566
1916
  };
1567
1917
 
1568
1918
  export type WarpSliderThumbSolidJsProps = {
@@ -1581,9 +1931,9 @@ export type WarpSliderThumbSolidJsProps = {
1581
1931
  /** Placeholder in empty text fields */
1582
1932
  "prop:placeholder"?: WarpSliderThumb["placeholder"];
1583
1933
  /** Internal event used by (and stopped by) `w-slider`. */
1584
- "on:thumbreset"?: (e: CustomEvent) => void;
1934
+ "on:thumbreset"?: (e: WarpSliderThumbElementEvent) => void;
1585
1935
  /** Internal event used by (and stopped by) `w-slider`. */
1586
- "on:slidervalidity"?: (e: CustomEvent) => void;
1936
+ "on:slidervalidity"?: (e: WarpSliderThumbElementEvent) => void;
1587
1937
 
1588
1938
  /** Set the innerHTML of the element */
1589
1939
  innerHTML?: string;
@@ -1686,6 +2036,38 @@ Use in open-ended sliders to show for example "300+ hk" instead of "Max" in the
1686
2036
  textContent?: string | number;
1687
2037
  };
1688
2038
 
2039
+ export type WarpSnackbarItemProps = {
2040
+ /** The placement of the action and close buttons. */
2041
+ "action-placement"?: WarpSnackbarItem["actionPlacement"];
2042
+ /** The placement of the action and close buttons. */
2043
+ actionPlacement?: WarpSnackbarItem["actionPlacement"];
2044
+ /** How long the message should stay in the document before removing itself. */
2045
+ duration?: WarpSnackbarItem["duration"];
2046
+ };
2047
+
2048
+ export type WarpSnackbarItemSolidJsProps = {
2049
+ /** The placement of the action and close buttons. */
2050
+ "attr:action-placement"?: WarpSnackbarItem["actionPlacement"];
2051
+ /** The placement of the action and close buttons. */
2052
+ "prop:actionPlacement"?: WarpSnackbarItem["actionPlacement"];
2053
+ /** How long the message should stay in the document before removing itself. */
2054
+ "prop:duration"?: WarpSnackbarItem["duration"];
2055
+
2056
+ /** Set the innerHTML of the element */
2057
+ innerHTML?: string;
2058
+ /** Set the textContent of the element */
2059
+ textContent?: string | number;
2060
+ };
2061
+
2062
+ export type WarpSnackbarProps = {};
2063
+
2064
+ export type WarpSnackbarSolidJsProps = {
2065
+ /** Set the innerHTML of the element */
2066
+ innerHTML?: string;
2067
+ /** Set the textContent of the element */
2068
+ textContent?: string | number;
2069
+ };
2070
+
1689
2071
  export type WarpStepProps = {
1690
2072
  /** Whether this step is active.
1691
2073
 
@@ -1732,6 +2114,12 @@ export type WarpStepIndicatorSolidJsProps = {
1732
2114
  textContent?: string | number;
1733
2115
  };
1734
2116
 
2117
+ /** `WarpSwitch` component event */
2118
+ export type WarpSwitchElementEvent<E = Event> = TypedEvent<WarpSwitch, E>;
2119
+ /** `change` event type */
2120
+ export type WarpSwitchChangeElementEvent =
2121
+ WarpSwitchElementEvent<WarpSwitchChangeEvent>;
2122
+
1735
2123
  export type WarpSwitchProps = {
1736
2124
  /** Name used when submitting an HTML form. */
1737
2125
  name?: WarpSwitch["name"];
@@ -1745,7 +2133,7 @@ The component reports `null` as the value in the `change` event when `value` is
1745
2133
  disabled?: WarpSwitch["disabled"];
1746
2134
 
1747
2135
  /** Dispatched when the switch toggles. Includes boolean `checked` and string/null `value` on `details`. */
1748
- onchange?: (e: WarpSwitchChangeEvent) => void;
2136
+ onchange?: (e: WarpSwitchChangeElementEvent) => void;
1749
2137
  };
1750
2138
 
1751
2139
  export type WarpSwitchSolidJsProps = {
@@ -1760,7 +2148,7 @@ The component reports `null` as the value in the `change` event when `value` is
1760
2148
  /** Whether the switch is disabled. */
1761
2149
  "prop:disabled"?: WarpSwitch["disabled"];
1762
2150
  /** Dispatched when the switch toggles. Includes boolean `checked` and string/null `value` on `details`. */
1763
- "on:change"?: (e: WarpSwitchChangeEvent) => void;
2151
+ "on:change"?: (e: WarpSwitchChangeElementEvent) => void;
1764
2152
 
1765
2153
  /** Set the innerHTML of the element */
1766
2154
  innerHTML?: string;
@@ -1802,19 +2190,25 @@ export type WarpTabPanelSolidJsProps = {
1802
2190
  textContent?: string | number;
1803
2191
  };
1804
2192
 
2193
+ /** `WarpTabs` component event */
2194
+ export type WarpTabsElementEvent<E = Event> = TypedEvent<WarpTabs, E>;
2195
+ /** `change` event type */
2196
+ export type WarpTabsChangeElementEvent =
2197
+ WarpTabsElementEvent<WarpTabsChangeEvent>;
2198
+
1805
2199
  export type WarpTabsProps = {
1806
2200
  /** The `id` of the panel that should be active. */
1807
2201
  active?: WarpTabs["active"];
1808
2202
 
1809
2203
  /** Includes `details.panelId` with the now active tab's ID */
1810
- onchange?: (e: WarpTabsChangeEvent) => void;
2204
+ onchange?: (e: WarpTabsChangeElementEvent) => void;
1811
2205
  };
1812
2206
 
1813
2207
  export type WarpTabsSolidJsProps = {
1814
2208
  /** The `id` of the panel that should be active. */
1815
2209
  "prop:active"?: WarpTabs["active"];
1816
2210
  /** Includes `details.panelId` with the now active tab's ID */
1817
- "on:change"?: (e: WarpTabsChangeEvent) => void;
2211
+ "on:change"?: (e: WarpTabsChangeElementEvent) => void;
1818
2212
 
1819
2213
  /** Set the innerHTML of the element */
1820
2214
  innerHTML?: string;
@@ -1922,19 +2316,6 @@ Placeholder text should not be used as a substitute for labeling the element wit
1922
2316
  };
1923
2317
 
1924
2318
  export type CustomElements = {
1925
- /**
1926
- *
1927
- *
1928
- * ## Attributes & Properties
1929
- *
1930
- * Component attributes and properties that can be applied to the element or by using JavaScript.
1931
- *
1932
- * - `name`: Icon filename (without .svg)
1933
- * - `size`: Size: small, medium, large or pixel value (e.g. "32px")
1934
- * - `locale`: Locale used in CDN URL
1935
- */
1936
- "w-icon": Partial<WIconProps & BaseProps<WIcon> & BaseEvents>;
1937
-
1938
2319
  /**
1939
2320
  * A single-line input component used for entering and editing textual or numeric data.
1940
2321
  *
@@ -1951,6 +2332,7 @@ export type CustomElements = {
1951
2332
  * - `label`: Either a `label` or an `aria-label` must be provided.
1952
2333
  * - `help-text`/`helpText`: Use in combination with `invalid` to show as a validation error message,
1953
2334
  * or on its own to show a help text.
2335
+ * - `optional`: Whether to show the optional indicator after the label.
1954
2336
  * - `size`: Sets the [size](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#size) (width) of the input field to fit the expected length of inputs.
1955
2337
  * - `max`: Use with `type="number"` to set the [maximum allowed value](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#maxlength).
1956
2338
  * - `min`: Use with `type="number"` to set the [minimum allowed value](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#minlength).
@@ -1983,7 +2365,7 @@ export type CustomElements = {
1983
2365
  * Areas where markup can be added to the component.
1984
2366
  *
1985
2367
  * - `suffix`: Use with `<w-affix>` to include a suffix, for example the unit for a number (e. g. km or sek).
1986
- * - `prefix`: Use with `<w-affix>` to include a prefix, for example a search icon.
2368
+ * - `prefix`: Use with `<w-affix>` to include a prefix, for example a search icon. ## Accessibility Note for Affixes Due to shadow DOM boundaries, affix content cannot be connected to the input via ARIA references. For non-interactive affixes (text labels like currency symbols), consider including that information in the main label or placeholder text instead for better screen reader support.
1987
2369
  *
1988
2370
  * ## Methods
1989
2371
  *
@@ -1998,9 +2380,34 @@ export type CustomElements = {
1998
2380
  WarpTextFieldProps & BaseProps<WarpTextField> & BaseEvents
1999
2381
  >;
2000
2382
 
2383
+ /**
2384
+ *
2385
+ *
2386
+ * ## Attributes & Properties
2387
+ *
2388
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2389
+ *
2390
+ * - `name`: Icon filename (without .svg)
2391
+ * - `size`: Size: small, medium, large or pixel value (e.g. "32px").
2392
+ * - `locale`: Locale used for `<title>` text.
2393
+ *
2394
+ * Reads the `lang` attribute from `<html>`, falls back to 'en'.
2395
+ */
2396
+ "w-icon": Partial<WarpIconProps & BaseProps<WarpIcon> & BaseEvents>;
2397
+
2001
2398
  /**
2002
2399
  * This component is usually used in other components like form elements to show a prefix or suffix. See for example `w-textfield`.
2003
2400
  *
2401
+ * ## Accessibility Note
2402
+ * Due to shadow DOM encapsulation, ARIA attributes (like `aria-describedby`, `aria-labelledby`)
2403
+ * cannot reference elements across shadow boundaries. This means:
2404
+ * - Non-interactive affixes (text labels, icons) cannot be connected to the parent input via ARIA
2405
+ * - Interactive affixes (buttons) must have their own `aria-label` (already implemented)
2406
+ * - Do NOT attempt to reference affix content from parent components via ARIA ID references - it won't work
2407
+ *
2408
+ * For non-interactive labels (e.g., currency symbols), consider including the information in the
2409
+ * main label or placeholder instead of relying on ARIA to announce affix content.
2410
+ *
2004
2411
  * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-affix--docs)
2005
2412
  *
2006
2413
  * ## Attributes & Properties
@@ -2044,14 +2451,18 @@ export type CustomElements = {
2044
2451
  *
2045
2452
  * Component attributes and properties that can be applied to the element or by using JavaScript.
2046
2453
  *
2047
- * - `autofocus`: undefined
2048
- * - `variant`: undefined
2049
- * - `small`: undefined
2050
- * - `href`: undefined
2051
- * - `disabled`: undefined
2052
- * - `target`: undefined
2053
- * - `rel`: undefined
2054
- * - `full-width`/`fullWidth`: undefined
2454
+ * - `autofocus`: Focus the link after it is rendered
2455
+ * - `variant`: Visual style for the link/button.
2456
+ * - `small`: Render a smaller version
2457
+ * - `href`: The URL the link points to
2458
+ * - `disabled`: Applies disabled styling, but you need to disable clicks on your own.
2459
+ *
2460
+ * The component renders an `<a>` element; `disabled` affects styling, but does not inherently prevent navigation. If you need to fully disable interaction, omit `href` and/or prevent default click behavior.
2461
+ * - `target`: Where to display the linked URL (e.g. `_blank`)
2462
+ * - `rel`: Relationship of the linked URL.
2463
+ *
2464
+ * If `target="_blank"` and `rel` is not provided, the component uses `noopener`.
2465
+ * - `full-width`/`fullWidth`: Makes the link take up the full width of its parent
2055
2466
  */
2056
2467
  "w-link": Partial<WarpLinkProps & BaseProps<WarpLink> & BaseEvents>;
2057
2468
 
@@ -2222,6 +2633,31 @@ export type CustomElements = {
2222
2633
  WarpBreadcrumbsProps & BaseProps<WarpBreadcrumbs> & BaseEvents
2223
2634
  >;
2224
2635
 
2636
+ /**
2637
+ * Represents one item in a `w-breadcrumbs` trail.
2638
+ * Renders 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.
2639
+ *
2640
+ * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/navigation-breadcrumbs--docs)
2641
+ *
2642
+ * ## Attributes & Properties
2643
+ *
2644
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2645
+ *
2646
+ * - `current-page`/`currentPage`: Marks this item as the current page.
2647
+ * Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator.
2648
+ * - `href`: URL for linked breadcrumb items.
2649
+ * When omitted, the item renders as non-focusable text.
2650
+ *
2651
+ * ## Slots
2652
+ *
2653
+ * Areas where markup can be added to the component.
2654
+ *
2655
+ * - `(default)`: The breadcrumb label content.
2656
+ */
2657
+ "w-breadcrumb-item": Partial<
2658
+ WarpBreadcrumbItemProps & BaseProps<WarpBreadcrumbItem> & BaseEvents
2659
+ >;
2660
+
2225
2661
  /**
2226
2662
  * Card is a layout component used for separating content areas on a page.
2227
2663
  *
@@ -2257,13 +2693,27 @@ export type CustomElements = {
2257
2693
  *
2258
2694
  * Component attributes and properties that can be applied to the element or by using JavaScript.
2259
2695
  *
2260
- * - `name`: The name of the checkbox, submitted as a name/value pair with form data.
2261
- * - `value`: The value of the checkbox, submitted as a name/value pair with form data.
2262
- * - `indeterminate`: Draws the checkbox in an indeterminate state.
2263
- * - `checked`: Draws the checkbox in a checked state (reflected to attribute).
2264
- * - `disabled`: Disables the checkbox.
2265
- * - `required`: Makes the checkbox a required field.
2266
- * - `invalid`: Draws the checkbox in an invalid state.
2696
+ * - `name`: The name of the checkbox.
2697
+ *
2698
+ * When the checkbox is checked and belongs to a form, this name is submitted with the checkbox value. If the checkbox is inside a `w-checkbox-group` with a name, the group name is used when the checkbox does not have its own name.
2699
+ * - `value`: The value submitted when the checkbox is checked.
2700
+ *
2701
+ * If no value attribute is set, the checkbox defaults to `on`. Unchecked and disabled checkboxes do not submit a value.
2702
+ * - `indeterminate`: Whether the checkbox is visually indeterminate.
2703
+ *
2704
+ * Use this for parent options that represent a mixed set of child selections. Clicking the checkbox clears the indeterminate state and sets the checkbox to checked.
2705
+ * - `checked`: Whether the checkbox is checked.
2706
+ *
2707
+ * Checked checkboxes submit their value with form data. The property is reflected to the `checked` attribute.
2708
+ * - `disabled`: Whether the checkbox is disabled.
2709
+ *
2710
+ * Disabled checkboxes cannot be focused, changed, or submitted with form data.
2711
+ * - `required`: Whether the checkbox must be checked before form submission.
2712
+ *
2713
+ * A required checkbox is invalid until it is checked. For requiring at least one option in a set, use `required` on `w-checkbox-group`.
2714
+ * - `invalid`: Whether the checkbox is visually invalid.
2715
+ *
2716
+ * Use this to show an externally managed validation error. Required validation also sets the invalid state after the user interacts with the checkbox or tries to submit the form.
2267
2717
  * - `input`: undefined (property only)
2268
2718
  * - `_computedInvalid`: Computed invalid state: combines own invalid with group invalid (property only) (readonly)
2269
2719
  * - `validationMessage`: Returns the validation message if the checkbox is invalid, otherwise an empty string (property only) (readonly)
@@ -2286,21 +2736,46 @@ export type CustomElements = {
2286
2736
  * - `checkValidity() => boolean`: Checks whether the checkbox passes constraint validation
2287
2737
  * - `reportValidity() => boolean`: Checks validity and shows the browser's validation message if invalid
2288
2738
  */
2289
- "w-checkbox": Partial<WCheckboxProps & BaseProps<WCheckbox> & BaseEvents>;
2739
+ "w-checkbox": Partial<
2740
+ WarpCheckboxProps & BaseProps<WarpCheckbox> & BaseEvents
2741
+ >;
2290
2742
 
2291
2743
  /**
2744
+ * Checkboxes allow users to select multiple options from a list of choices.
2745
+ *
2746
+ * Use with `w-checkbox`.
2292
2747
  *
2748
+ * ## Architecture Note
2749
+ * This component uses a <div> wrapper instead of the more semantic <fieldset> element.
2750
+ * Note that w-radio-group uses <fieldset>, which provides better accessibility and follows
2751
+ * HTML best practices. This inconsistency exists for historical reasons and may be addressed
2752
+ * in a future major version to align both on the more semantic approach.
2753
+ *
2754
+ * TODO: Align w-checkbox-group to use <fieldset> in a future major version after assessing
2755
+ * backwards compatibility implications (CSS selectors, etc.).
2293
2756
  *
2294
2757
  * ## Attributes & Properties
2295
2758
  *
2296
2759
  * Component attributes and properties that can be applied to the element or by using JavaScript.
2297
2760
  *
2298
2761
  * - `label`: The group label displayed above the checkboxes.
2762
+ *
2763
+ * Use this to describe the shared question or topic for the checkbox options. The label is connected to the internal group for assistive technologies.
2299
2764
  * - `name`: The name applied to child checkboxes when they do not provide one.
2765
+ *
2766
+ * Use this when the grouped checkboxes should submit values under the same form field name. Individual checkboxes can still override the group name with their own `name`.
2300
2767
  * - `optional`: Whether to show optional text next to the label.
2301
- * - `help-text`/`helpText`: undefined
2302
- * - `required`: Makes the checkbox group required.
2303
- * - `invalid`: Marks the checkbox group as invalid.
2768
+ *
2769
+ * Use this to indicate that selecting an option from the group is not required.
2770
+ * - `help-text`/`helpText`: Help text displayed below the checkbox group.
2771
+ *
2772
+ * Use this for supporting guidance or validation feedback. When required validation fails, the group replaces this text with the localized required message.
2773
+ * - `required`: Whether at least one checkbox in the group must be selected.
2774
+ *
2775
+ * Required validation is managed by the group. The individual checkboxes provide the submitted form values.
2776
+ * - `invalid`: Whether the checkbox group is visually invalid.
2777
+ *
2778
+ * Use this to show an externally managed validation error for the group. The invalid state is also shared with child checkboxes for consistent styling and accessibility state.
2304
2779
  *
2305
2780
  * ## Methods
2306
2781
  *
@@ -2311,7 +2786,7 @@ export type CustomElements = {
2311
2786
  * - `focus(options?: FocusOptions) => void`: Sets focus on the checkbox group.
2312
2787
  */
2313
2788
  "w-checkbox-group": Partial<
2314
- WCheckboxGroupProps & BaseProps<WCheckboxGroup> & BaseEvents
2789
+ WarpCheckboxGroupProps & BaseProps<WarpCheckboxGroup> & BaseEvents
2315
2790
  >;
2316
2791
 
2317
2792
  /**
@@ -2323,21 +2798,51 @@ export type CustomElements = {
2323
2798
  *
2324
2799
  * Component attributes and properties that can be applied to the element or by using JavaScript.
2325
2800
  *
2326
- * - `options`: The available options to select from
2327
- * - `label`: Label above input
2328
- * - `placeholder`: Input placeholder
2329
- * - `value`: The input value
2330
- * - `open-on-focus`/`openOnFocus`: Whether the popover opens when focus is on the text field
2331
- * - `select-on-blur`/`selectOnBlur`: Select active option on blur
2332
- * - `match-text-segments`/`matchTextSegments`: Whether the matching text segments in the options should be highlighted
2333
- * - `disable-static-filtering`/`disableStaticFiltering`: Disable client-side static filtering
2334
- * - `invalid`: Renders the input field in an invalid state
2335
- * - `help-text`/`helpText`: The content to display as the help text
2336
- * - `disabled`: Whether the element is disabled
2337
- * - `required`: Whether the element is required
2338
- * - `optional`: Whether to show optional text
2339
- * - `name`: Name attribute for form submission
2340
- * - `autocomplete`: Autocomplete attribute for the input field
2801
+ * - `options`: The available options to select from.
2802
+ *
2803
+ * Use this for framework usage, application state, or remote search results. When `options` contains entries, it is used instead of child `<option>` elements.
2804
+ * - `label`: The label displayed above the input.
2805
+ *
2806
+ * Use this to give the combobox a visible and accessible name.
2807
+ * - `placeholder`: Placeholder text displayed when the input is empty.
2808
+ *
2809
+ * Use this as a short hint for the expected input. Do not use placeholder text as a replacement for a label.
2810
+ * - `value`: The selected or typed value.
2811
+ *
2812
+ * When an option is selected, this is set to the option value. The displayed text may differ when the option has a separate label.
2813
+ * - `open-on-focus`/`openOnFocus`: Whether the option list opens when the input receives focus.
2814
+ *
2815
+ * Use this when users should see available options before they start typing.
2816
+ * - `select-on-blur`/`selectOnBlur`: Whether the active option is selected when the input loses focus.
2817
+ *
2818
+ * When enabled, the combobox selects the keyboard-highlighted option, or an option whose value exactly matches the current input value, on blur.
2819
+ * - `match-text-segments`/`matchTextSegments`: Whether matching text segments in options are highlighted.
2820
+ *
2821
+ * Use this to visually emphasize the part of each option that matches the current input value.
2822
+ * - `disable-static-filtering`/`disableStaticFiltering`: Whether built-in client-side filtering is disabled.
2823
+ *
2824
+ * Use this for remote search or externally filtered results. When disabled, all entries in `options` are rendered as provided.
2825
+ * - `invalid`: Whether the combobox is visually invalid.
2826
+ *
2827
+ * Use this to show an externally managed validation error. Pair it with `help-text` to explain how to fix the error.
2828
+ * - `help-text`/`helpText`: Help text displayed below the input.
2829
+ *
2830
+ * Use this for supporting guidance or validation feedback.
2831
+ * - `disabled`: Whether the combobox is disabled.
2832
+ *
2833
+ * Disabled comboboxes cannot be focused, changed, or submitted with form data.
2834
+ * - `required`: Whether the combobox is required before form submission.
2835
+ *
2836
+ * Use this when the user must provide a value before submitting the form.
2837
+ * - `optional`: Whether to show optional text next to the label.
2838
+ *
2839
+ * Use this to indicate that the combobox is not required.
2840
+ * - `name`: The name submitted with the combobox value.
2841
+ *
2842
+ * Use this when the combobox belongs to a form and its value should be included in form data.
2843
+ * - `autocomplete`: The autocomplete attribute passed to the internal input.
2844
+ *
2845
+ * Defaults to `off`. Set this when browser autocomplete should be enabled or scoped to a specific autocomplete token.
2341
2846
  *
2342
2847
  * ## Methods
2343
2848
  *
@@ -2360,22 +2865,30 @@ export type CustomElements = {
2360
2865
  *
2361
2866
  * Component attributes and properties that can be applied to the element or by using JavaScript.
2362
2867
  *
2363
- * - `label`: undefined
2364
- * - `lang`: Takes precedence over the `<html>` lang attribute.
2365
- * - `name`: undefined
2366
- * - `value`: undefined
2367
- * - `header-format`/`headerFormat`: Decides the format of the date as shown in the calendar header.
2868
+ * - `label`: The label displayed above the date input.
2869
+ *
2870
+ * Use this to give the datepicker a visible and accessible name.
2871
+ * - `lang`: The locale used for calendar labels and date formatting.
2872
+ *
2873
+ * This takes precedence over the `<html>` `lang` attribute. Supported built-in locales are `en`, `nb`, `sv`, `da`, and `fi`.
2874
+ * - `name`: The name submitted with the date value.
2875
+ *
2876
+ * Use this when the datepicker belongs to a form and its value should be included in form data.
2877
+ * - `value`: The selected date value.
2878
+ *
2879
+ * Use an ISO date string in `YYYY-MM-DD` format. The value is submitted with the form and is reset to its initial value when the form resets.
2880
+ * - `header-format`/`headerFormat`: The date format used in the calendar header.
2368
2881
  *
2369
2882
  * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
2370
- * - `weekday-format`/`weekdayFormat`: Decides the format of the weekday as shown above the grid of dates in the calendar.
2883
+ * - `weekday-format`/`weekdayFormat`: The weekday format shown above the calendar grid.
2371
2884
  *
2372
2885
  * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
2373
- * - `day-format`/`dayFormat`: Decides the format of the day in the calendar as read to screen readers.
2886
+ * - `day-format`/`dayFormat`: The date format used for calendar day accessible names.
2374
2887
  *
2375
2888
  * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
2376
- * - `isDayDisabled`: Lets you control if a date in the calendar should be disabled.
2889
+ * - `isDayDisabled`: Function used to disable dates in the calendar.
2377
2890
  *
2378
- * This needs to be set on the element instance in JavaScript, not as an HTML attribute. (property only)
2891
+ * Set this on the element instance in JavaScript, not as an HTML attribute. Disabled dates cannot be selected from the calendar. (property only)
2379
2892
  * - `isCalendarOpen`: undefined (property only)
2380
2893
  * - `navigationDate`: undefined (property only)
2381
2894
  * - `selectedDate`: undefined (property only) (readonly)
@@ -2406,21 +2919,19 @@ export type CustomElements = {
2406
2919
  /**
2407
2920
  * Expandable is a layout component used for creating expandable content areas on a page.
2408
2921
  *
2409
- * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/layout-expandable--docs)
2410
- *
2411
2922
  * ## Attributes & Properties
2412
2923
  *
2413
2924
  * Component attributes and properties that can be applied to the element or by using JavaScript.
2414
2925
  *
2415
- * - `expanded`: undefined
2416
- * - `title`: undefined
2417
- * - `box`: undefined
2418
- * - `bleed`: undefined
2926
+ * - `expanded`: Controls component's expanded state
2927
+ * - `title`: Component title. Used to display the title value which is always present regardless of whether the component is open or closed.
2928
+ * - `box`: Will make the expandable a Box
2929
+ * - `bleed`: Will make the expandable full-width on the sm breakpoint size
2419
2930
  * - `button-class`/`buttonClass`: undefined
2420
2931
  * - `content-class`/`contentClass`: undefined
2421
- * - `no-chevron`/`noChevron`: undefined
2422
- * - `animated`: undefined
2423
- * - `heading-level`/`headingLevel`: undefined
2932
+ * - `no-chevron`/`noChevron`: Controls chevron visibility
2933
+ * - `animated`: Will animate the expansion/collapse
2934
+ * - `heading-level`/`headingLevel`: Wrap the toggle button in a heading element with the specified level. If headingLevel is not specified, the button will not be wrapped by a heading element.
2424
2935
  * - `_hasTitle`: undefined
2425
2936
  * - `_showChevronUp`: undefined
2426
2937
  *
@@ -2608,7 +3119,7 @@ export type CustomElements = {
2608
3119
  * Areas where markup can be added to the component.
2609
3120
  *
2610
3121
  * - `label`: Alternative to the `label` attribute should you need custom HTML.
2611
- * - `help-text`: Alternative to the `help-text` attribute should you need custom HTML.
3122
+ * - `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.).
2612
3123
  */
2613
3124
  "w-radio-group": Partial<
2614
3125
  WarpRadioGroupProps & BaseProps<WarpRadioGroup> & BaseEvents
@@ -2718,6 +3229,112 @@ export type CustomElements = {
2718
3229
  */
2719
3230
  "w-slider": Partial<WarpSliderProps & BaseProps<WarpSlider> & BaseEvents>;
2720
3231
 
3232
+ /**
3233
+ * An item to show in a `w-snackbar`.
3234
+ *
3235
+ * See the `create` function on `w-snackbar` for a convenience API which helps you make snackbar items.
3236
+ *
3237
+ * ## Attributes & Properties
3238
+ *
3239
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3240
+ *
3241
+ * - `action-placement`/`actionPlacement`: The placement of the action and close buttons.
3242
+ * - `duration`: How long the message should stay in the document before removing itself.
3243
+ *
3244
+ * ## Slots
3245
+ *
3246
+ * Areas where markup can be added to the component.
3247
+ *
3248
+ * - `default`: the snackbar message.
3249
+ * - `icon`: icon preceeding the message.
3250
+ * - `action`: action following the message.
3251
+ *
3252
+ * ## Methods
3253
+ *
3254
+ * Methods that can be called to access component functionality.
3255
+ *
3256
+ * - `close() => void`: Remove the snackbar item from the document.
3257
+ *
3258
+ * Moves focus to the last focused element outside of the snackbar item, if available.
3259
+ *
3260
+ * ## CSS Custom Properties
3261
+ *
3262
+ * CSS variables available for styling the component.
3263
+ *
3264
+ * - `--w-c-snackbar-item-radius`: undefined (default: `undefined`)
3265
+ * - `--w-c-snackbar-item-max-width`: undefined (default: `undefined`)
3266
+ * - `--w-c-snackbar-item-min-width`: undefined (default: `undefined`)
3267
+ * - `--w-c-snackbar-item-padding`: undefined (default: `undefined`)
3268
+ * - `--w-c-snackbar-item-bg`: undefined (default: `undefined`)
3269
+ * - `--w-c-snackbar-item-action-bg-active`: undefined (default: `undefined`)
3270
+ * - `--w-c-snackbar-item-action-bg-hover`: undefined (default: `undefined`)
3271
+ * - `--w-c-snackbar-item-color`: undefined (default: `undefined`)
3272
+ * - `--w-c-snackbar-item-action-color-active`: undefined (default: `undefined`)
3273
+ * - `--w-c-snackbar-item-action-color-hover`: undefined (default: `undefined`)
3274
+ * - `--w-c-snackbar-item-box-shadow`: undefined (default: `undefined`)
3275
+ *
3276
+ * ## CSS Parts
3277
+ *
3278
+ * Custom selectors for styling elements within the component.
3279
+ *
3280
+ * - `item`: the container wrapping the message, icon and actions.
3281
+ * - `icon`: the icon for the variant.
3282
+ * - `message`: the default slot, body of the snackbar item.
3283
+ * - `action`: close and action button.
3284
+ */
3285
+ "w-snackbar-item": Partial<
3286
+ WarpSnackbarItemProps & BaseProps<WarpSnackbarItem> & BaseEvents
3287
+ >;
3288
+
3289
+ /**
3290
+ * A Snackbar shows brief user feedback messages that overlay content, with an optional action such as Undo.
3291
+ *
3292
+ * Include one `<w-snackbar></w-snackbar>` in the document `<body>`. Use the `create` function to create messages.
3293
+ *
3294
+ * ## Slots
3295
+ *
3296
+ * Areas where markup can be added to the component.
3297
+ *
3298
+ * - `default`: `w-snackbar-item` gets placed inside the default slot by the `create` function.
3299
+ *
3300
+ * ## Methods
3301
+ *
3302
+ * Methods that can be called to access component functionality.
3303
+ *
3304
+ * - `create(message: string, options: CreateSnackbarOptions = {}) => void`: Creates a snackbar item and immediately adds it to the snackbar.
3305
+ *
3306
+ * By default the snackbar item automatically closes after 4 seconds (`SnackbarDuration.Short`).
3307
+ *
3308
+ * If you include an `action` in the options the default `duration` is
3309
+ * set to 10 seconds (`SnackbarDuration.Long`) and can not be made shorter.
3310
+ *
3311
+ * A `duration` of 10 seconds or longer forces the close button to be visible.
3312
+ *
3313
+ * The default `variant` is `neutral` which does not have an icon.
3314
+ *
3315
+ * Set `duration` to `SnackbarDuration.Infinite` if you want a persistent message.
3316
+ *
3317
+ * ## CSS Custom Properties
3318
+ *
3319
+ * CSS variables available for styling the component.
3320
+ *
3321
+ * - `--w-c-snackbar-container-gap`: undefined (default: `undefined`)
3322
+ * - `--w-c-snackbar-position-bottom`: undefined (default: `undefined`)
3323
+ * - `--w-c-snackbar-position-left`: undefined (default: `undefined`)
3324
+ * - `--w-c-snackbar-position-right`: undefined (default: `undefined`)
3325
+ * - `--w-c-snackbar-position-top`: undefined (default: `undefined`)
3326
+ * - `--w-c-snackbar-z-index`: undefined (default: `undefined`)
3327
+ *
3328
+ * ## CSS Parts
3329
+ *
3330
+ * Custom selectors for styling elements within the component.
3331
+ *
3332
+ * - `container`: the live region that positions messages on the screen.
3333
+ */
3334
+ "w-snackbar": Partial<
3335
+ WarpSnackbarProps & BaseProps<WarpSnackbar> & BaseEvents
3336
+ >;
3337
+
2721
3338
  /**
2722
3339
  * Individual step component that shows a single step in a process
2723
3340
  *
@@ -2879,22 +3496,113 @@ export type CustomElements = {
2879
3496
  >;
2880
3497
  };
2881
3498
 
2882
- export type CustomElementsSolidJs = {
2883
- /**
2884
- *
2885
- *
2886
- * ## Attributes & Properties
2887
- *
2888
- * Component attributes and properties that can be applied to the element or by using JavaScript.
2889
- *
2890
- * - `name`: Icon filename (without .svg)
2891
- * - `size`: Size: small, medium, large or pixel value (e.g. "32px")
2892
- * - `locale`: Locale used in CDN URL
2893
- */
2894
- "w-icon": Partial<
2895
- WIconProps & WIconSolidJsProps & BaseProps<WIcon> & BaseEvents
3499
+ type ReactElementProps<T extends HTMLElement> = import("react").DOMAttributes<T> &
3500
+ import("react").AriaAttributes &
3501
+ import("react").RefAttributes<T> &
3502
+ Pick<
3503
+ import("react").HTMLAttributes<T>,
3504
+ | "className"
3505
+ | "style"
3506
+ | "suppressContentEditableWarning"
3507
+ | "suppressHydrationWarning"
2896
3508
  >;
2897
3509
 
3510
+ // Merge order matters: component props must win over React/global/base props
3511
+ // when names collide, e.g. w-attention's boolean popover prop.
3512
+ type ReactCustomElementProps<T extends HTMLElement, Props> = Omit<
3513
+ BaseProps<T> & BaseEvents,
3514
+ keyof ReactElementProps<T> | keyof Props
3515
+ > &
3516
+ Omit<ReactElementProps<T>, keyof Props> &
3517
+ Props;
3518
+
3519
+ type CustomElementInstances = {
3520
+ "w-textfield": WarpTextField;
3521
+ "w-icon": WarpIcon;
3522
+ "w-affix": WarpAffix;
3523
+ "w-alert": WarpAlert;
3524
+ "w-link": WarpLink;
3525
+ "w-button": WarpButton;
3526
+ "w-attention": WarpAttention;
3527
+ "w-badge": WarpBadge;
3528
+ "w-box": WarpBox;
3529
+ "w-breadcrumbs": WarpBreadcrumbs;
3530
+ "w-breadcrumb-item": WarpBreadcrumbItem;
3531
+ "w-card": WarpCard;
3532
+ "w-checkbox": WarpCheckbox;
3533
+ "w-checkbox-group": WarpCheckboxGroup;
3534
+ "w-combobox": WarpCombobox;
3535
+ "w-datepicker": WarpDatepicker;
3536
+ "w-expandable": WarpExpandable;
3537
+ "w-modal": WarpModal;
3538
+ "w-modal-footer": WarpModalFooter;
3539
+ "w-modal-header": WarpModalHeader;
3540
+ "w-page-indicator": WarpPageIndicator;
3541
+ "w-pagination": WarpPagination;
3542
+ "w-pill": WarpPill;
3543
+ "w-radio": WarpRadio;
3544
+ "w-radio-group": WarpRadioGroup;
3545
+ "w-select": WarpSelect;
3546
+ "w-slider-thumb": WarpSliderThumb;
3547
+ "w-slider": WarpSlider;
3548
+ "w-snackbar-item": WarpSnackbarItem;
3549
+ "w-snackbar": WarpSnackbar;
3550
+ "w-step": WarpStep;
3551
+ "w-step-indicator": WarpStepIndicator;
3552
+ "w-switch": WarpSwitch;
3553
+ "w-tab": WarpTab;
3554
+ "w-tab-panel": WarpTabPanel;
3555
+ "w-tabs": WarpTabs;
3556
+ "w-textarea": WarpTextarea;
3557
+ };
3558
+
3559
+ type CustomElementComponentProps = {
3560
+ "w-textfield": WarpTextFieldProps;
3561
+ "w-icon": WarpIconProps;
3562
+ "w-affix": WarpAffixProps;
3563
+ "w-alert": WarpAlertProps;
3564
+ "w-link": WarpLinkProps;
3565
+ "w-button": WarpButtonProps;
3566
+ "w-attention": WarpAttentionProps;
3567
+ "w-badge": WarpBadgeProps;
3568
+ "w-box": WarpBoxProps;
3569
+ "w-breadcrumbs": WarpBreadcrumbsProps;
3570
+ "w-breadcrumb-item": WarpBreadcrumbItemProps;
3571
+ "w-card": WarpCardProps;
3572
+ "w-checkbox": WarpCheckboxProps;
3573
+ "w-checkbox-group": WarpCheckboxGroupProps;
3574
+ "w-combobox": WarpComboboxProps;
3575
+ "w-datepicker": WarpDatepickerProps;
3576
+ "w-expandable": WarpExpandableProps;
3577
+ "w-modal": WarpModalProps;
3578
+ "w-modal-footer": WarpModalFooterProps;
3579
+ "w-modal-header": WarpModalHeaderProps;
3580
+ "w-page-indicator": WarpPageIndicatorProps;
3581
+ "w-pagination": WarpPaginationProps;
3582
+ "w-pill": WarpPillProps;
3583
+ "w-radio": WarpRadioProps;
3584
+ "w-radio-group": WarpRadioGroupProps;
3585
+ "w-select": WarpSelectProps;
3586
+ "w-slider-thumb": WarpSliderThumbProps;
3587
+ "w-slider": WarpSliderProps;
3588
+ "w-snackbar-item": WarpSnackbarItemProps;
3589
+ "w-snackbar": WarpSnackbarProps;
3590
+ "w-step": WarpStepProps;
3591
+ "w-step-indicator": WarpStepIndicatorProps;
3592
+ "w-switch": WarpSwitchProps;
3593
+ "w-tab": WarpTabProps;
3594
+ "w-tab-panel": WarpTabPanelProps;
3595
+ "w-tabs": WarpTabsProps;
3596
+ "w-textarea": WarpTextareaProps;
3597
+ };
3598
+
3599
+ export type ReactCustomElements = {
3600
+ [Tag in keyof CustomElementComponentProps]: Tag extends keyof CustomElementInstances
3601
+ ? Partial<ReactCustomElementProps<CustomElementInstances[Tag], CustomElementComponentProps[Tag]>>
3602
+ : never;
3603
+ };
3604
+
3605
+ export type CustomElementsSolidJs = {
2898
3606
  /**
2899
3607
  * A single-line input component used for entering and editing textual or numeric data.
2900
3608
  *
@@ -2911,6 +3619,7 @@ export type CustomElementsSolidJs = {
2911
3619
  * - `label`: Either a `label` or an `aria-label` must be provided.
2912
3620
  * - `help-text`/`helpText`: Use in combination with `invalid` to show as a validation error message,
2913
3621
  * or on its own to show a help text.
3622
+ * - `optional`: Whether to show the optional indicator after the label.
2914
3623
  * - `size`: Sets the [size](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#size) (width) of the input field to fit the expected length of inputs.
2915
3624
  * - `max`: Use with `type="number"` to set the [maximum allowed value](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#maxlength).
2916
3625
  * - `min`: Use with `type="number"` to set the [minimum allowed value](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#minlength).
@@ -2943,7 +3652,7 @@ export type CustomElementsSolidJs = {
2943
3652
  * Areas where markup can be added to the component.
2944
3653
  *
2945
3654
  * - `suffix`: Use with `<w-affix>` to include a suffix, for example the unit for a number (e. g. km or sek).
2946
- * - `prefix`: Use with `<w-affix>` to include a prefix, for example a search icon.
3655
+ * - `prefix`: Use with `<w-affix>` to include a prefix, for example a search icon. ## Accessibility Note for Affixes Due to shadow DOM boundaries, affix content cannot be connected to the input via ARIA references. For non-interactive affixes (text labels like currency symbols), consider including that information in the main label or placeholder text instead for better screen reader support.
2947
3656
  *
2948
3657
  * ## Methods
2949
3658
  *
@@ -2961,9 +3670,36 @@ export type CustomElementsSolidJs = {
2961
3670
  BaseEvents
2962
3671
  >;
2963
3672
 
3673
+ /**
3674
+ *
3675
+ *
3676
+ * ## Attributes & Properties
3677
+ *
3678
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3679
+ *
3680
+ * - `name`: Icon filename (without .svg)
3681
+ * - `size`: Size: small, medium, large or pixel value (e.g. "32px").
3682
+ * - `locale`: Locale used for `<title>` text.
3683
+ *
3684
+ * Reads the `lang` attribute from `<html>`, falls back to 'en'.
3685
+ */
3686
+ "w-icon": Partial<
3687
+ WarpIconProps & WarpIconSolidJsProps & BaseProps<WarpIcon> & BaseEvents
3688
+ >;
3689
+
2964
3690
  /**
2965
3691
  * This component is usually used in other components like form elements to show a prefix or suffix. See for example `w-textfield`.
2966
3692
  *
3693
+ * ## Accessibility Note
3694
+ * Due to shadow DOM encapsulation, ARIA attributes (like `aria-describedby`, `aria-labelledby`)
3695
+ * cannot reference elements across shadow boundaries. This means:
3696
+ * - Non-interactive affixes (text labels, icons) cannot be connected to the parent input via ARIA
3697
+ * - Interactive affixes (buttons) must have their own `aria-label` (already implemented)
3698
+ * - Do NOT attempt to reference affix content from parent components via ARIA ID references - it won't work
3699
+ *
3700
+ * For non-interactive labels (e.g., currency symbols), consider including the information in the
3701
+ * main label or placeholder instead of relying on ARIA to announce affix content.
3702
+ *
2967
3703
  * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-affix--docs)
2968
3704
  *
2969
3705
  * ## Attributes & Properties
@@ -3011,14 +3747,18 @@ export type CustomElementsSolidJs = {
3011
3747
  *
3012
3748
  * Component attributes and properties that can be applied to the element or by using JavaScript.
3013
3749
  *
3014
- * - `autofocus`: undefined
3015
- * - `variant`: undefined
3016
- * - `small`: undefined
3017
- * - `href`: undefined
3018
- * - `disabled`: undefined
3019
- * - `target`: undefined
3020
- * - `rel`: undefined
3021
- * - `full-width`/`fullWidth`: undefined
3750
+ * - `autofocus`: Focus the link after it is rendered
3751
+ * - `variant`: Visual style for the link/button.
3752
+ * - `small`: Render a smaller version
3753
+ * - `href`: The URL the link points to
3754
+ * - `disabled`: Applies disabled styling, but you need to disable clicks on your own.
3755
+ *
3756
+ * The component renders an `<a>` element; `disabled` affects styling, but does not inherently prevent navigation. If you need to fully disable interaction, omit `href` and/or prevent default click behavior.
3757
+ * - `target`: Where to display the linked URL (e.g. `_blank`)
3758
+ * - `rel`: Relationship of the linked URL.
3759
+ *
3760
+ * If `target="_blank"` and `rel` is not provided, the component uses `noopener`.
3761
+ * - `full-width`/`fullWidth`: Makes the link take up the full width of its parent
3022
3762
  */
3023
3763
  "w-link": Partial<
3024
3764
  WarpLinkProps & WarpLinkSolidJsProps & BaseProps<WarpLink> & BaseEvents
@@ -3206,6 +3946,34 @@ export type CustomElementsSolidJs = {
3206
3946
  BaseEvents
3207
3947
  >;
3208
3948
 
3949
+ /**
3950
+ * Represents one item in a `w-breadcrumbs` trail.
3951
+ * Renders 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.
3952
+ *
3953
+ * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/navigation-breadcrumbs--docs)
3954
+ *
3955
+ * ## Attributes & Properties
3956
+ *
3957
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3958
+ *
3959
+ * - `current-page`/`currentPage`: Marks this item as the current page.
3960
+ * Use this on the final breadcrumb item so it exposes `aria-current="page"` and does not render a trailing separator.
3961
+ * - `href`: URL for linked breadcrumb items.
3962
+ * When omitted, the item renders as non-focusable text.
3963
+ *
3964
+ * ## Slots
3965
+ *
3966
+ * Areas where markup can be added to the component.
3967
+ *
3968
+ * - `(default)`: The breadcrumb label content.
3969
+ */
3970
+ "w-breadcrumb-item": Partial<
3971
+ WarpBreadcrumbItemProps &
3972
+ WarpBreadcrumbItemSolidJsProps &
3973
+ BaseProps<WarpBreadcrumbItem> &
3974
+ BaseEvents
3975
+ >;
3976
+
3209
3977
  /**
3210
3978
  * Card is a layout component used for separating content areas on a page.
3211
3979
  *
@@ -3243,13 +4011,27 @@ export type CustomElementsSolidJs = {
3243
4011
  *
3244
4012
  * Component attributes and properties that can be applied to the element or by using JavaScript.
3245
4013
  *
3246
- * - `name`: The name of the checkbox, submitted as a name/value pair with form data.
3247
- * - `value`: The value of the checkbox, submitted as a name/value pair with form data.
3248
- * - `indeterminate`: Draws the checkbox in an indeterminate state.
3249
- * - `checked`: Draws the checkbox in a checked state (reflected to attribute).
3250
- * - `disabled`: Disables the checkbox.
3251
- * - `required`: Makes the checkbox a required field.
3252
- * - `invalid`: Draws the checkbox in an invalid state.
4014
+ * - `name`: The name of the checkbox.
4015
+ *
4016
+ * When the checkbox is checked and belongs to a form, this name is submitted with the checkbox value. If the checkbox is inside a `w-checkbox-group` with a name, the group name is used when the checkbox does not have its own name.
4017
+ * - `value`: The value submitted when the checkbox is checked.
4018
+ *
4019
+ * If no value attribute is set, the checkbox defaults to `on`. Unchecked and disabled checkboxes do not submit a value.
4020
+ * - `indeterminate`: Whether the checkbox is visually indeterminate.
4021
+ *
4022
+ * Use this for parent options that represent a mixed set of child selections. Clicking the checkbox clears the indeterminate state and sets the checkbox to checked.
4023
+ * - `checked`: Whether the checkbox is checked.
4024
+ *
4025
+ * Checked checkboxes submit their value with form data. The property is reflected to the `checked` attribute.
4026
+ * - `disabled`: Whether the checkbox is disabled.
4027
+ *
4028
+ * Disabled checkboxes cannot be focused, changed, or submitted with form data.
4029
+ * - `required`: Whether the checkbox must be checked before form submission.
4030
+ *
4031
+ * A required checkbox is invalid until it is checked. For requiring at least one option in a set, use `required` on `w-checkbox-group`.
4032
+ * - `invalid`: Whether the checkbox is visually invalid.
4033
+ *
4034
+ * Use this to show an externally managed validation error. Required validation also sets the invalid state after the user interacts with the checkbox or tries to submit the form.
3253
4035
  * - `input`: undefined (property only)
3254
4036
  * - `_computedInvalid`: Computed invalid state: combines own invalid with group invalid (property only) (readonly)
3255
4037
  * - `validationMessage`: Returns the validation message if the checkbox is invalid, otherwise an empty string (property only) (readonly)
@@ -3273,22 +4055,48 @@ export type CustomElementsSolidJs = {
3273
4055
  * - `reportValidity() => boolean`: Checks validity and shows the browser's validation message if invalid
3274
4056
  */
3275
4057
  "w-checkbox": Partial<
3276
- WCheckboxProps & WCheckboxSolidJsProps & BaseProps<WCheckbox> & BaseEvents
4058
+ WarpCheckboxProps &
4059
+ WarpCheckboxSolidJsProps &
4060
+ BaseProps<WarpCheckbox> &
4061
+ BaseEvents
3277
4062
  >;
3278
4063
 
3279
4064
  /**
4065
+ * Checkboxes allow users to select multiple options from a list of choices.
4066
+ *
4067
+ * Use with `w-checkbox`.
3280
4068
  *
4069
+ * ## Architecture Note
4070
+ * This component uses a <div> wrapper instead of the more semantic <fieldset> element.
4071
+ * Note that w-radio-group uses <fieldset>, which provides better accessibility and follows
4072
+ * HTML best practices. This inconsistency exists for historical reasons and may be addressed
4073
+ * in a future major version to align both on the more semantic approach.
4074
+ *
4075
+ * TODO: Align w-checkbox-group to use <fieldset> in a future major version after assessing
4076
+ * backwards compatibility implications (CSS selectors, etc.).
3281
4077
  *
3282
4078
  * ## Attributes & Properties
3283
4079
  *
3284
4080
  * Component attributes and properties that can be applied to the element or by using JavaScript.
3285
4081
  *
3286
4082
  * - `label`: The group label displayed above the checkboxes.
4083
+ *
4084
+ * Use this to describe the shared question or topic for the checkbox options. The label is connected to the internal group for assistive technologies.
3287
4085
  * - `name`: The name applied to child checkboxes when they do not provide one.
4086
+ *
4087
+ * Use this when the grouped checkboxes should submit values under the same form field name. Individual checkboxes can still override the group name with their own `name`.
3288
4088
  * - `optional`: Whether to show optional text next to the label.
3289
- * - `help-text`/`helpText`: undefined
3290
- * - `required`: Makes the checkbox group required.
3291
- * - `invalid`: Marks the checkbox group as invalid.
4089
+ *
4090
+ * Use this to indicate that selecting an option from the group is not required.
4091
+ * - `help-text`/`helpText`: Help text displayed below the checkbox group.
4092
+ *
4093
+ * Use this for supporting guidance or validation feedback. When required validation fails, the group replaces this text with the localized required message.
4094
+ * - `required`: Whether at least one checkbox in the group must be selected.
4095
+ *
4096
+ * Required validation is managed by the group. The individual checkboxes provide the submitted form values.
4097
+ * - `invalid`: Whether the checkbox group is visually invalid.
4098
+ *
4099
+ * Use this to show an externally managed validation error for the group. The invalid state is also shared with child checkboxes for consistent styling and accessibility state.
3292
4100
  *
3293
4101
  * ## Methods
3294
4102
  *
@@ -3299,9 +4107,9 @@ export type CustomElementsSolidJs = {
3299
4107
  * - `focus(options?: FocusOptions) => void`: Sets focus on the checkbox group.
3300
4108
  */
3301
4109
  "w-checkbox-group": Partial<
3302
- WCheckboxGroupProps &
3303
- WCheckboxGroupSolidJsProps &
3304
- BaseProps<WCheckboxGroup> &
4110
+ WarpCheckboxGroupProps &
4111
+ WarpCheckboxGroupSolidJsProps &
4112
+ BaseProps<WarpCheckboxGroup> &
3305
4113
  BaseEvents
3306
4114
  >;
3307
4115
 
@@ -3314,21 +4122,51 @@ export type CustomElementsSolidJs = {
3314
4122
  *
3315
4123
  * Component attributes and properties that can be applied to the element or by using JavaScript.
3316
4124
  *
3317
- * - `options`: The available options to select from
3318
- * - `label`: Label above input
3319
- * - `placeholder`: Input placeholder
3320
- * - `value`: The input value
3321
- * - `open-on-focus`/`openOnFocus`: Whether the popover opens when focus is on the text field
3322
- * - `select-on-blur`/`selectOnBlur`: Select active option on blur
3323
- * - `match-text-segments`/`matchTextSegments`: Whether the matching text segments in the options should be highlighted
3324
- * - `disable-static-filtering`/`disableStaticFiltering`: Disable client-side static filtering
3325
- * - `invalid`: Renders the input field in an invalid state
3326
- * - `help-text`/`helpText`: The content to display as the help text
3327
- * - `disabled`: Whether the element is disabled
3328
- * - `required`: Whether the element is required
3329
- * - `optional`: Whether to show optional text
3330
- * - `name`: Name attribute for form submission
3331
- * - `autocomplete`: Autocomplete attribute for the input field
4125
+ * - `options`: The available options to select from.
4126
+ *
4127
+ * Use this for framework usage, application state, or remote search results. When `options` contains entries, it is used instead of child `<option>` elements.
4128
+ * - `label`: The label displayed above the input.
4129
+ *
4130
+ * Use this to give the combobox a visible and accessible name.
4131
+ * - `placeholder`: Placeholder text displayed when the input is empty.
4132
+ *
4133
+ * Use this as a short hint for the expected input. Do not use placeholder text as a replacement for a label.
4134
+ * - `value`: The selected or typed value.
4135
+ *
4136
+ * When an option is selected, this is set to the option value. The displayed text may differ when the option has a separate label.
4137
+ * - `open-on-focus`/`openOnFocus`: Whether the option list opens when the input receives focus.
4138
+ *
4139
+ * Use this when users should see available options before they start typing.
4140
+ * - `select-on-blur`/`selectOnBlur`: Whether the active option is selected when the input loses focus.
4141
+ *
4142
+ * When enabled, the combobox selects the keyboard-highlighted option, or an option whose value exactly matches the current input value, on blur.
4143
+ * - `match-text-segments`/`matchTextSegments`: Whether matching text segments in options are highlighted.
4144
+ *
4145
+ * Use this to visually emphasize the part of each option that matches the current input value.
4146
+ * - `disable-static-filtering`/`disableStaticFiltering`: Whether built-in client-side filtering is disabled.
4147
+ *
4148
+ * Use this for remote search or externally filtered results. When disabled, all entries in `options` are rendered as provided.
4149
+ * - `invalid`: Whether the combobox is visually invalid.
4150
+ *
4151
+ * Use this to show an externally managed validation error. Pair it with `help-text` to explain how to fix the error.
4152
+ * - `help-text`/`helpText`: Help text displayed below the input.
4153
+ *
4154
+ * Use this for supporting guidance or validation feedback.
4155
+ * - `disabled`: Whether the combobox is disabled.
4156
+ *
4157
+ * Disabled comboboxes cannot be focused, changed, or submitted with form data.
4158
+ * - `required`: Whether the combobox is required before form submission.
4159
+ *
4160
+ * Use this when the user must provide a value before submitting the form.
4161
+ * - `optional`: Whether to show optional text next to the label.
4162
+ *
4163
+ * Use this to indicate that the combobox is not required.
4164
+ * - `name`: The name submitted with the combobox value.
4165
+ *
4166
+ * Use this when the combobox belongs to a form and its value should be included in form data.
4167
+ * - `autocomplete`: The autocomplete attribute passed to the internal input.
4168
+ *
4169
+ * Defaults to `off`. Set this when browser autocomplete should be enabled or scoped to a specific autocomplete token.
3332
4170
  *
3333
4171
  * ## Methods
3334
4172
  *
@@ -3354,22 +4192,30 @@ export type CustomElementsSolidJs = {
3354
4192
  *
3355
4193
  * Component attributes and properties that can be applied to the element or by using JavaScript.
3356
4194
  *
3357
- * - `label`: undefined
3358
- * - `lang`: Takes precedence over the `<html>` lang attribute.
3359
- * - `name`: undefined
3360
- * - `value`: undefined
3361
- * - `header-format`/`headerFormat`: Decides the format of the date as shown in the calendar header.
4195
+ * - `label`: The label displayed above the date input.
4196
+ *
4197
+ * Use this to give the datepicker a visible and accessible name.
4198
+ * - `lang`: The locale used for calendar labels and date formatting.
4199
+ *
4200
+ * This takes precedence over the `<html>` `lang` attribute. Supported built-in locales are `en`, `nb`, `sv`, `da`, and `fi`.
4201
+ * - `name`: The name submitted with the date value.
4202
+ *
4203
+ * Use this when the datepicker belongs to a form and its value should be included in form data.
4204
+ * - `value`: The selected date value.
4205
+ *
4206
+ * Use an ISO date string in `YYYY-MM-DD` format. The value is submitted with the form and is reset to its initial value when the form resets.
4207
+ * - `header-format`/`headerFormat`: The date format used in the calendar header.
3362
4208
  *
3363
4209
  * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
3364
- * - `weekday-format`/`weekdayFormat`: Decides the format of the weekday as shown above the grid of dates in the calendar.
4210
+ * - `weekday-format`/`weekdayFormat`: The weekday format shown above the calendar grid.
3365
4211
  *
3366
4212
  * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
3367
- * - `day-format`/`dayFormat`: Decides the format of the day in the calendar as read to screen readers.
4213
+ * - `day-format`/`dayFormat`: The date format used for calendar day accessible names.
3368
4214
  *
3369
4215
  * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
3370
- * - `isDayDisabled`: Lets you control if a date in the calendar should be disabled.
4216
+ * - `isDayDisabled`: Function used to disable dates in the calendar.
3371
4217
  *
3372
- * This needs to be set on the element instance in JavaScript, not as an HTML attribute. (property only)
4218
+ * Set this on the element instance in JavaScript, not as an HTML attribute. Disabled dates cannot be selected from the calendar. (property only)
3373
4219
  * - `isCalendarOpen`: undefined (property only)
3374
4220
  * - `navigationDate`: undefined (property only)
3375
4221
  * - `selectedDate`: undefined (property only) (readonly)
@@ -3403,21 +4249,19 @@ export type CustomElementsSolidJs = {
3403
4249
  /**
3404
4250
  * Expandable is a layout component used for creating expandable content areas on a page.
3405
4251
  *
3406
- * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/layout-expandable--docs)
3407
- *
3408
4252
  * ## Attributes & Properties
3409
4253
  *
3410
4254
  * Component attributes and properties that can be applied to the element or by using JavaScript.
3411
4255
  *
3412
- * - `expanded`: undefined
3413
- * - `title`: undefined
3414
- * - `box`: undefined
3415
- * - `bleed`: undefined
4256
+ * - `expanded`: Controls component's expanded state
4257
+ * - `title`: Component title. Used to display the title value which is always present regardless of whether the component is open or closed.
4258
+ * - `box`: Will make the expandable a Box
4259
+ * - `bleed`: Will make the expandable full-width on the sm breakpoint size
3416
4260
  * - `button-class`/`buttonClass`: undefined
3417
4261
  * - `content-class`/`contentClass`: undefined
3418
- * - `no-chevron`/`noChevron`: undefined
3419
- * - `animated`: undefined
3420
- * - `heading-level`/`headingLevel`: undefined
4262
+ * - `no-chevron`/`noChevron`: Controls chevron visibility
4263
+ * - `animated`: Will animate the expansion/collapse
4264
+ * - `heading-level`/`headingLevel`: Wrap the toggle button in a heading element with the specified level. If headingLevel is not specified, the button will not be wrapped by a heading element.
3421
4265
  * - `_hasTitle`: undefined
3422
4266
  * - `_showChevronUp`: undefined
3423
4267
  *
@@ -3626,7 +4470,7 @@ export type CustomElementsSolidJs = {
3626
4470
  * Areas where markup can be added to the component.
3627
4471
  *
3628
4472
  * - `label`: Alternative to the `label` attribute should you need custom HTML.
3629
- * - `help-text`: Alternative to the `help-text` attribute should you need custom HTML.
4473
+ * - `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.).
3630
4474
  */
3631
4475
  "w-radio-group": Partial<
3632
4476
  WarpRadioGroupProps &
@@ -3752,6 +4596,118 @@ export type CustomElementsSolidJs = {
3752
4596
  BaseEvents
3753
4597
  >;
3754
4598
 
4599
+ /**
4600
+ * An item to show in a `w-snackbar`.
4601
+ *
4602
+ * See the `create` function on `w-snackbar` for a convenience API which helps you make snackbar items.
4603
+ *
4604
+ * ## Attributes & Properties
4605
+ *
4606
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
4607
+ *
4608
+ * - `action-placement`/`actionPlacement`: The placement of the action and close buttons.
4609
+ * - `duration`: How long the message should stay in the document before removing itself.
4610
+ *
4611
+ * ## Slots
4612
+ *
4613
+ * Areas where markup can be added to the component.
4614
+ *
4615
+ * - `default`: the snackbar message.
4616
+ * - `icon`: icon preceeding the message.
4617
+ * - `action`: action following the message.
4618
+ *
4619
+ * ## Methods
4620
+ *
4621
+ * Methods that can be called to access component functionality.
4622
+ *
4623
+ * - `close() => void`: Remove the snackbar item from the document.
4624
+ *
4625
+ * Moves focus to the last focused element outside of the snackbar item, if available.
4626
+ *
4627
+ * ## CSS Custom Properties
4628
+ *
4629
+ * CSS variables available for styling the component.
4630
+ *
4631
+ * - `--w-c-snackbar-item-radius`: undefined (default: `undefined`)
4632
+ * - `--w-c-snackbar-item-max-width`: undefined (default: `undefined`)
4633
+ * - `--w-c-snackbar-item-min-width`: undefined (default: `undefined`)
4634
+ * - `--w-c-snackbar-item-padding`: undefined (default: `undefined`)
4635
+ * - `--w-c-snackbar-item-bg`: undefined (default: `undefined`)
4636
+ * - `--w-c-snackbar-item-action-bg-active`: undefined (default: `undefined`)
4637
+ * - `--w-c-snackbar-item-action-bg-hover`: undefined (default: `undefined`)
4638
+ * - `--w-c-snackbar-item-color`: undefined (default: `undefined`)
4639
+ * - `--w-c-snackbar-item-action-color-active`: undefined (default: `undefined`)
4640
+ * - `--w-c-snackbar-item-action-color-hover`: undefined (default: `undefined`)
4641
+ * - `--w-c-snackbar-item-box-shadow`: undefined (default: `undefined`)
4642
+ *
4643
+ * ## CSS Parts
4644
+ *
4645
+ * Custom selectors for styling elements within the component.
4646
+ *
4647
+ * - `item`: the container wrapping the message, icon and actions.
4648
+ * - `icon`: the icon for the variant.
4649
+ * - `message`: the default slot, body of the snackbar item.
4650
+ * - `action`: close and action button.
4651
+ */
4652
+ "w-snackbar-item": Partial<
4653
+ WarpSnackbarItemProps &
4654
+ WarpSnackbarItemSolidJsProps &
4655
+ BaseProps<WarpSnackbarItem> &
4656
+ BaseEvents
4657
+ >;
4658
+
4659
+ /**
4660
+ * A Snackbar shows brief user feedback messages that overlay content, with an optional action such as Undo.
4661
+ *
4662
+ * Include one `<w-snackbar></w-snackbar>` in the document `<body>`. Use the `create` function to create messages.
4663
+ *
4664
+ * ## Slots
4665
+ *
4666
+ * Areas where markup can be added to the component.
4667
+ *
4668
+ * - `default`: `w-snackbar-item` gets placed inside the default slot by the `create` function.
4669
+ *
4670
+ * ## Methods
4671
+ *
4672
+ * Methods that can be called to access component functionality.
4673
+ *
4674
+ * - `create(message: string, options: CreateSnackbarOptions = {}) => void`: Creates a snackbar item and immediately adds it to the snackbar.
4675
+ *
4676
+ * By default the snackbar item automatically closes after 4 seconds (`SnackbarDuration.Short`).
4677
+ *
4678
+ * If you include an `action` in the options the default `duration` is
4679
+ * set to 10 seconds (`SnackbarDuration.Long`) and can not be made shorter.
4680
+ *
4681
+ * A `duration` of 10 seconds or longer forces the close button to be visible.
4682
+ *
4683
+ * The default `variant` is `neutral` which does not have an icon.
4684
+ *
4685
+ * Set `duration` to `SnackbarDuration.Infinite` if you want a persistent message.
4686
+ *
4687
+ * ## CSS Custom Properties
4688
+ *
4689
+ * CSS variables available for styling the component.
4690
+ *
4691
+ * - `--w-c-snackbar-container-gap`: undefined (default: `undefined`)
4692
+ * - `--w-c-snackbar-position-bottom`: undefined (default: `undefined`)
4693
+ * - `--w-c-snackbar-position-left`: undefined (default: `undefined`)
4694
+ * - `--w-c-snackbar-position-right`: undefined (default: `undefined`)
4695
+ * - `--w-c-snackbar-position-top`: undefined (default: `undefined`)
4696
+ * - `--w-c-snackbar-z-index`: undefined (default: `undefined`)
4697
+ *
4698
+ * ## CSS Parts
4699
+ *
4700
+ * Custom selectors for styling elements within the component.
4701
+ *
4702
+ * - `container`: the live region that positions messages on the screen.
4703
+ */
4704
+ "w-snackbar": Partial<
4705
+ WarpSnackbarProps &
4706
+ WarpSnackbarSolidJsProps &
4707
+ BaseProps<WarpSnackbar> &
4708
+ BaseEvents
4709
+ >;
4710
+
3755
4711
  /**
3756
4712
  * Individual step component that shows a single step in a process
3757
4713
  *
@@ -3933,11 +4889,46 @@ export type CustomElementsSolidJs = {
3933
4889
  >;
3934
4890
  };
3935
4891
 
3936
- export type CustomCssProperties = {};
4892
+ export type CustomCssProperties = {
4893
+ /** */
4894
+ "--w-c-snackbar-item-radius"?: string;
4895
+ /** */
4896
+ "--w-c-snackbar-item-max-width"?: string;
4897
+ /** */
4898
+ "--w-c-snackbar-item-min-width"?: string;
4899
+ /** */
4900
+ "--w-c-snackbar-item-padding"?: string;
4901
+ /** */
4902
+ "--w-c-snackbar-item-bg"?: string;
4903
+ /** */
4904
+ "--w-c-snackbar-item-action-bg-active"?: string;
4905
+ /** */
4906
+ "--w-c-snackbar-item-action-bg-hover"?: string;
4907
+ /** */
4908
+ "--w-c-snackbar-item-color"?: string;
4909
+ /** */
4910
+ "--w-c-snackbar-item-action-color-active"?: string;
4911
+ /** */
4912
+ "--w-c-snackbar-item-action-color-hover"?: string;
4913
+ /** */
4914
+ "--w-c-snackbar-item-box-shadow"?: string;
4915
+ /** */
4916
+ "--w-c-snackbar-container-gap"?: string;
4917
+ /** */
4918
+ "--w-c-snackbar-position-bottom"?: string;
4919
+ /** */
4920
+ "--w-c-snackbar-position-left"?: string;
4921
+ /** */
4922
+ "--w-c-snackbar-position-right"?: string;
4923
+ /** */
4924
+ "--w-c-snackbar-position-top"?: string;
4925
+ /** */
4926
+ "--w-c-snackbar-z-index"?: string;
4927
+ };
3937
4928
 
3938
4929
  declare module "react" {
3939
4930
  namespace JSX {
3940
- interface IntrinsicElements extends CustomElements {}
4931
+ interface IntrinsicElements extends ReactCustomElements {}
3941
4932
  }
3942
4933
  export interface CSSProperties extends CustomCssProperties {}
3943
4934
  }