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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (632) hide show
  1. package/dist/.storybook/utilities.js +4 -4
  2. package/dist/api.js.map +2 -2
  3. package/dist/custom-elements.json +437 -53
  4. package/dist/docs/affix/affix.md +2 -2
  5. package/dist/docs/affix/api.md +2 -2
  6. package/dist/docs/alert/alert.md +4 -4
  7. package/dist/docs/alert/api.md +4 -4
  8. package/dist/docs/attention/api.md +50 -2
  9. package/dist/docs/attention/attention.md +50 -2
  10. package/dist/docs/badge/api.md +50 -4
  11. package/dist/docs/badge/badge.md +50 -4
  12. package/dist/docs/box/api.md +2 -2
  13. package/dist/docs/box/box.md +2 -2
  14. package/dist/docs/button/api.md +8 -0
  15. package/dist/docs/button/button.md +8 -0
  16. package/dist/docs/card/api.md +8 -0
  17. package/dist/docs/card/card.md +8 -0
  18. package/dist/docs/checkbox/api.md +50 -2
  19. package/dist/docs/checkbox/checkbox.md +224 -2
  20. package/dist/docs/checkbox/styling.md +173 -0
  21. package/dist/docs/checkbox-group/api.md +24 -0
  22. package/dist/docs/checkbox-group/checkbox-group.md +67 -30
  23. package/dist/docs/checkbox-group/styling.md +31 -29
  24. package/dist/docs/combobox/api.md +20 -12
  25. package/dist/docs/combobox/combobox.md +20 -12
  26. package/dist/docs/datepicker/api.md +14 -6
  27. package/dist/docs/datepicker/datepicker.md +14 -6
  28. package/dist/docs/icon/api.md +3 -3
  29. package/dist/docs/icon/icon.md +3 -3
  30. package/dist/docs/index.md +3 -1
  31. package/dist/docs/modal/api.md +16 -0
  32. package/dist/docs/modal/modal.md +16 -0
  33. package/dist/docs/radio-group/api.md +4 -4
  34. package/dist/docs/radio-group/radio-group.md +183 -68
  35. package/dist/docs/radio-group/styling.md +179 -64
  36. package/dist/docs/slider-thumb/api.md +16 -0
  37. package/dist/docs/slider-thumb/slider-thumb.md +16 -0
  38. package/dist/docs/snackbar/accessibility.md +20 -0
  39. package/dist/docs/snackbar/api.md +30 -0
  40. package/dist/docs/snackbar/examples.md +191 -0
  41. package/dist/docs/snackbar/snackbar.md +385 -0
  42. package/dist/docs/snackbar/styling.md +72 -0
  43. package/dist/docs/snackbar/usage.md +60 -0
  44. package/dist/docs/snackbar-item/api.md +41 -0
  45. package/dist/docs/snackbar-item/snackbar-item.md +49 -0
  46. package/dist/docs/step/api.md +16 -0
  47. package/dist/docs/step/step.md +16 -0
  48. package/dist/docs/switch/api.md +8 -0
  49. package/dist/docs/switch/switch.md +8 -0
  50. package/dist/docs/textarea/api.md +40 -0
  51. package/dist/docs/textarea/textarea.md +40 -0
  52. package/dist/docs/textfield/api.md +32 -0
  53. package/dist/docs/textfield/textfield.md +32 -0
  54. package/dist/index.d.ts +316 -3
  55. package/dist/packages/affix/affix.d.ts +4 -4
  56. package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
  57. package/dist/packages/affix/affix.hydration.test.js +15 -15
  58. package/dist/packages/affix/affix.js +346 -316
  59. package/dist/packages/affix/affix.js.map +2 -2
  60. package/dist/packages/affix/affix.react.stories.d.ts +2 -2
  61. package/dist/packages/affix/affix.react.stories.js +3 -3
  62. package/dist/packages/affix/affix.react.test.js +5 -3
  63. package/dist/packages/affix/affix.stories.d.ts +3 -3
  64. package/dist/packages/affix/affix.stories.js +10 -10
  65. package/dist/packages/affix/affix.test.d.ts +1 -1
  66. package/dist/packages/affix/affix.test.js +10 -10
  67. package/dist/packages/affix/react.d.ts +2 -2
  68. package/dist/packages/affix/react.js +6 -6
  69. package/dist/packages/affix/styles.js +1 -1
  70. package/dist/packages/alert/alert.d.ts +3 -3
  71. package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
  72. package/dist/packages/alert/alert.hydration.test.js +21 -21
  73. package/dist/packages/alert/alert.js +345 -320
  74. package/dist/packages/alert/alert.js.map +2 -2
  75. package/dist/packages/alert/alert.react.stories.d.ts +2 -2
  76. package/dist/packages/alert/alert.react.stories.js +13 -13
  77. package/dist/packages/alert/alert.stories.d.ts +4 -4
  78. package/dist/packages/alert/alert.stories.js +29 -27
  79. package/dist/packages/alert/alert.test.d.ts +1 -1
  80. package/dist/packages/alert/alert.test.js +34 -21
  81. package/dist/packages/alert/react.d.ts +1 -1
  82. package/dist/packages/alert/react.js +4 -4
  83. package/dist/packages/alert/styles.js +1 -1
  84. package/dist/packages/attention/attention.d.ts +11 -6
  85. package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
  86. package/dist/packages/attention/attention.hydration.test.js +29 -29
  87. package/dist/packages/attention/attention.js +1737 -1695
  88. package/dist/packages/attention/attention.js.map +2 -2
  89. package/dist/packages/attention/attention.react.stories.d.ts +3 -3
  90. package/dist/packages/attention/attention.react.stories.js +13 -13
  91. package/dist/packages/attention/attention.react.test.js +11 -7
  92. package/dist/packages/attention/attention.stories.d.ts +4 -4
  93. package/dist/packages/attention/attention.stories.js +126 -117
  94. package/dist/packages/attention/attention.test.d.ts +1 -1
  95. package/dist/packages/attention/attention.test.js +18 -10
  96. package/dist/packages/attention/layout-styles.js +900 -900
  97. package/dist/packages/attention/react.d.ts +4 -4
  98. package/dist/packages/attention/react.js +13 -11
  99. package/dist/packages/attention/styles.js +1 -1
  100. package/dist/packages/badge/badge.d.ts +3 -3
  101. package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
  102. package/dist/packages/badge/badge.hydration.test.js +25 -25
  103. package/dist/packages/badge/badge.js +276 -276
  104. package/dist/packages/badge/badge.js.map +2 -2
  105. package/dist/packages/badge/badge.react.stories.d.ts +3 -3
  106. package/dist/packages/badge/badge.react.stories.js +17 -17
  107. package/dist/packages/badge/badge.stories.d.ts +3 -3
  108. package/dist/packages/badge/badge.stories.js +22 -20
  109. package/dist/packages/badge/badge.test.d.ts +1 -1
  110. package/dist/packages/badge/badge.test.js +13 -11
  111. package/dist/packages/badge/react.d.ts +1 -1
  112. package/dist/packages/badge/react.js +4 -4
  113. package/dist/packages/badge/styles.js +1 -1
  114. package/dist/packages/box/box.d.ts +1 -1
  115. package/dist/packages/box/box.hydration.test.d.ts +1 -1
  116. package/dist/packages/box/box.hydration.test.js +14 -14
  117. package/dist/packages/box/box.js +283 -283
  118. package/dist/packages/box/box.js.map +2 -2
  119. package/dist/packages/box/box.react.stories.d.ts +3 -3
  120. package/dist/packages/box/box.react.stories.js +8 -8
  121. package/dist/packages/box/box.stories.d.ts +3 -3
  122. package/dist/packages/box/box.stories.js +25 -19
  123. package/dist/packages/box/box.test.d.ts +1 -1
  124. package/dist/packages/box/box.test.js +6 -6
  125. package/dist/packages/box/react.d.ts +1 -1
  126. package/dist/packages/box/react.js +4 -4
  127. package/dist/packages/box/slot.test.d.ts +1 -1
  128. package/dist/packages/box/slot.test.js +6 -6
  129. package/dist/packages/box/styles.js +1 -1
  130. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +1 -1
  131. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
  132. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +55 -49
  133. package/dist/packages/breadcrumbs/breadcrumbs.js +284 -278
  134. package/dist/packages/breadcrumbs/breadcrumbs.js.map +2 -2
  135. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +3 -3
  136. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +6 -6
  137. package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +3 -3
  138. package/dist/packages/breadcrumbs/breadcrumbs.stories.js +27 -26
  139. package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
  140. package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
  141. package/dist/packages/breadcrumbs/react.d.ts +1 -1
  142. package/dist/packages/breadcrumbs/react.js +4 -4
  143. package/dist/packages/breadcrumbs/styles.js +1 -1
  144. package/dist/packages/button/button.d.ts +9 -4
  145. package/dist/packages/button/button.hydration.test.d.ts +1 -1
  146. package/dist/packages/button/button.hydration.test.js +19 -19
  147. package/dist/packages/button/button.js +743 -717
  148. package/dist/packages/button/button.js.map +2 -2
  149. package/dist/packages/button/button.react.stories.d.ts +5 -5
  150. package/dist/packages/button/button.react.stories.js +30 -30
  151. package/dist/packages/button/button.react.test.js +13 -13
  152. package/dist/packages/button/button.stories.d.ts +4 -4
  153. package/dist/packages/button/button.stories.js +276 -167
  154. package/dist/packages/button/button.test.d.ts +1 -1
  155. package/dist/packages/button/button.test.js +36 -35
  156. package/dist/packages/button/react.d.ts +3 -3
  157. package/dist/packages/button/react.js +7 -7
  158. package/dist/packages/button/styles.js +373 -347
  159. package/dist/packages/card/card.d.ts +1 -1
  160. package/dist/packages/card/card.hydration.test.d.ts +1 -1
  161. package/dist/packages/card/card.hydration.test.js +14 -14
  162. package/dist/packages/card/card.js +305 -290
  163. package/dist/packages/card/card.js.map +2 -2
  164. package/dist/packages/card/card.react.stories.d.ts +3 -3
  165. package/dist/packages/card/card.react.stories.js +11 -11
  166. package/dist/packages/card/card.stories.d.ts +3 -3
  167. package/dist/packages/card/card.stories.js +36 -24
  168. package/dist/packages/card/card.test.d.ts +1 -1
  169. package/dist/packages/card/card.test.js +6 -6
  170. package/dist/packages/card/react.d.ts +1 -1
  171. package/dist/packages/card/react.js +4 -4
  172. package/dist/packages/card/styles.js +1 -1
  173. package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
  174. package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
  175. package/dist/packages/checkbox/checkbox.d.ts +2 -2
  176. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
  177. package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
  178. package/dist/packages/checkbox/checkbox.js +475 -424
  179. package/dist/packages/checkbox/checkbox.js.map +2 -2
  180. package/dist/packages/checkbox/checkbox.react.stories.d.ts +2 -2
  181. package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
  182. package/dist/packages/checkbox/checkbox.stories.d.ts +4 -4
  183. package/dist/packages/checkbox/checkbox.stories.js +99 -91
  184. package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
  185. package/dist/packages/checkbox/checkbox.test.js +64 -64
  186. package/dist/packages/checkbox/react.d.ts +1 -1
  187. package/dist/packages/checkbox/react.js +6 -6
  188. package/dist/packages/checkbox/styles.js +183 -132
  189. package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
  190. package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
  191. package/dist/packages/checkbox-group/checkbox-group.d.ts +16 -2
  192. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
  193. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
  194. package/dist/packages/checkbox-group/checkbox-group.js +60 -55
  195. package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
  196. package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
  197. package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
  198. package/dist/packages/checkbox-group/checkbox-group.test.js +96 -90
  199. package/dist/packages/checkbox-group/react.d.ts +2 -2
  200. package/dist/packages/checkbox-group/react.js +6 -6
  201. package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
  202. package/dist/packages/combobox/combobox.a11y.test.js +72 -49
  203. package/dist/packages/combobox/combobox.d.ts +2 -2
  204. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
  205. package/dist/packages/combobox/combobox.hydration.test.js +45 -45
  206. package/dist/packages/combobox/combobox.js +332 -332
  207. package/dist/packages/combobox/combobox.js.map +3 -3
  208. package/dist/packages/combobox/combobox.react.stories.d.ts +3 -3
  209. package/dist/packages/combobox/combobox.react.stories.js +29 -29
  210. package/dist/packages/combobox/combobox.react.test.js +8 -8
  211. package/dist/packages/combobox/combobox.stories.d.ts +4 -4
  212. package/dist/packages/combobox/combobox.stories.js +100 -94
  213. package/dist/packages/combobox/combobox.test.d.ts +2 -2
  214. package/dist/packages/combobox/combobox.test.js +148 -133
  215. package/dist/packages/combobox/react.d.ts +2 -2
  216. package/dist/packages/combobox/react.js +14 -14
  217. package/dist/packages/combobox/styles.js +1 -1
  218. package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
  219. package/dist/packages/datepicker/DatePicker.test.js +46 -41
  220. package/dist/packages/datepicker/datepicker.d.ts +3 -3
  221. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
  222. package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
  223. package/dist/packages/datepicker/datepicker.js +665 -625
  224. package/dist/packages/datepicker/datepicker.js.map +3 -3
  225. package/dist/packages/datepicker/datepicker.react.stories.d.ts +3 -3
  226. package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
  227. package/dist/packages/datepicker/datepicker.react.test.js +6 -6
  228. package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
  229. package/dist/packages/datepicker/datepicker.stories.js +32 -32
  230. package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
  231. package/dist/packages/datepicker/datepicker.test.js +77 -79
  232. package/dist/packages/datepicker/react.d.ts +2 -2
  233. package/dist/packages/datepicker/react.js +16 -14
  234. package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
  235. package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
  236. package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
  237. package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
  238. package/dist/packages/datepicker/utils.d.ts +1 -1
  239. package/dist/packages/datepicker/utils.js +25 -19
  240. package/dist/packages/datepicker/utils.test.js +20 -20
  241. package/dist/packages/expandable/expandable.d.ts +4 -4
  242. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
  243. package/dist/packages/expandable/expandable.hydration.test.js +21 -21
  244. package/dist/packages/expandable/expandable.js +357 -330
  245. package/dist/packages/expandable/expandable.js.map +4 -4
  246. package/dist/packages/expandable/expandable.react.stories.d.ts +3 -3
  247. package/dist/packages/expandable/expandable.react.stories.js +7 -7
  248. package/dist/packages/expandable/expandable.react.test.js +15 -7
  249. package/dist/packages/expandable/expandable.stories.d.ts +5 -5
  250. package/dist/packages/expandable/expandable.stories.js +51 -45
  251. package/dist/packages/expandable/expandable.test.d.ts +1 -1
  252. package/dist/packages/expandable/expandable.test.js +19 -17
  253. package/dist/packages/expandable/react.d.ts +2 -2
  254. package/dist/packages/expandable/react.js +9 -9
  255. package/dist/packages/expandable/styles.js +1 -1
  256. package/dist/packages/global.d.ts +1 -0
  257. package/dist/packages/global.js +5 -0
  258. package/dist/packages/i18n.d.ts +1 -1
  259. package/dist/packages/i18n.js +37 -29
  260. package/dist/packages/icon/icon.d.ts +7 -2
  261. package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
  262. package/dist/packages/icon/icon.hydration.test.js +25 -25
  263. package/dist/packages/icon/icon.js +31 -26
  264. package/dist/packages/icon/icon.js.map +2 -2
  265. package/dist/packages/icon/icon.react.stories.d.ts +1 -1
  266. package/dist/packages/icon/icon.react.stories.js +283 -284
  267. package/dist/packages/icon/icon.stories.d.ts +3 -3
  268. package/dist/packages/icon/icon.stories.js +299 -298
  269. package/dist/packages/icon/icon.test.d.ts +1 -1
  270. package/dist/packages/icon/icon.test.js +36 -28
  271. package/dist/packages/icon/react.d.ts +1 -1
  272. package/dist/packages/icon/react.js +4 -4
  273. package/dist/packages/icon/style.js +24 -25
  274. package/dist/packages/interaction-type-detection.d.ts +22 -0
  275. package/dist/packages/interaction-type-detection.js +38 -0
  276. package/dist/packages/link/link.d.ts +2 -2
  277. package/dist/packages/link/link.hydration.test.d.ts +1 -1
  278. package/dist/packages/link/link.hydration.test.js +27 -27
  279. package/dist/packages/link/link.js +709 -683
  280. package/dist/packages/link/link.js.map +2 -2
  281. package/dist/packages/link/link.react.stories.d.ts +3 -3
  282. package/dist/packages/link/link.react.stories.js +42 -42
  283. package/dist/packages/link/link.react.test.js +5 -3
  284. package/dist/packages/link/link.stories.d.ts +3 -3
  285. package/dist/packages/link/link.stories.js +51 -51
  286. package/dist/packages/link/link.test.d.ts +1 -1
  287. package/dist/packages/link/link.test.js +11 -7
  288. package/dist/packages/link/react.d.ts +2 -2
  289. package/dist/packages/link/react.js +6 -6
  290. package/dist/packages/link/styles.js +57 -57
  291. package/dist/packages/modal/index.d.ts +7 -7
  292. package/dist/packages/modal/index.js +7 -7
  293. package/dist/packages/modal/modal.d.ts +1 -1
  294. package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
  295. package/dist/packages/modal/modal.hydration.test.js +12 -12
  296. package/dist/packages/modal/modal.js +405 -405
  297. package/dist/packages/modal/modal.js.map +2 -2
  298. package/dist/packages/modal/modal.react.stories.d.ts +3 -3
  299. package/dist/packages/modal/modal.react.stories.js +7 -6
  300. package/dist/packages/modal/modal.react.test.js +5 -5
  301. package/dist/packages/modal/modal.stories.d.ts +6 -6
  302. package/dist/packages/modal/modal.stories.js +253 -238
  303. package/dist/packages/modal/react.d.ts +4 -4
  304. package/dist/packages/modal/react.js +13 -13
  305. package/dist/packages/modal/util.js +2 -2
  306. package/dist/packages/modal-footer/modal-footer.d.ts +1 -1
  307. package/dist/packages/modal-footer/modal-footer.js +291 -291
  308. package/dist/packages/modal-footer/modal-footer.js.map +2 -2
  309. package/dist/packages/modal-footer/react.d.ts +1 -1
  310. package/dist/packages/modal-footer/react.js +4 -4
  311. package/dist/packages/modal-header/modal-header.d.ts +2 -2
  312. package/dist/packages/modal-header/modal-header.js +439 -418
  313. package/dist/packages/modal-header/modal-header.js.map +2 -2
  314. package/dist/packages/modal-header/modal-header.react.test.js +5 -3
  315. package/dist/packages/modal-header/react.d.ts +2 -2
  316. package/dist/packages/modal-header/react.js +8 -8
  317. package/dist/packages/page-indicator/page-indicator.d.ts +1 -1
  318. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
  319. package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
  320. package/dist/packages/page-indicator/page-indicator.js +26 -26
  321. package/dist/packages/page-indicator/page-indicator.js.map +2 -2
  322. package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
  323. package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
  324. package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
  325. package/dist/packages/page-indicator/page-indicator.stories.d.ts +3 -3
  326. package/dist/packages/page-indicator/page-indicator.stories.js +56 -27
  327. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
  328. package/dist/packages/page-indicator/page-indicator.test.js +110 -70
  329. package/dist/packages/page-indicator/react.d.ts +2 -2
  330. package/dist/packages/page-indicator/react.js +7 -7
  331. package/dist/packages/page-indicator/style.js +21 -21
  332. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
  333. package/dist/packages/pagination/pagination.a11y.test.js +59 -25
  334. package/dist/packages/pagination/pagination.d.ts +3 -3
  335. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
  336. package/dist/packages/pagination/pagination.hydration.test.js +19 -19
  337. package/dist/packages/pagination/pagination.js +380 -349
  338. package/dist/packages/pagination/pagination.js.map +2 -2
  339. package/dist/packages/pagination/pagination.react.stories.d.ts +5 -5
  340. package/dist/packages/pagination/pagination.react.stories.js +8 -8
  341. package/dist/packages/pagination/pagination.react.test.js +6 -6
  342. package/dist/packages/pagination/pagination.stories.d.ts +3 -3
  343. package/dist/packages/pagination/pagination.stories.js +18 -18
  344. package/dist/packages/pagination/pagination.test.d.ts +1 -1
  345. package/dist/packages/pagination/pagination.test.js +146 -69
  346. package/dist/packages/pagination/react.d.ts +3 -3
  347. package/dist/packages/pagination/react.js +12 -10
  348. package/dist/packages/pagination/styles.js +1 -1
  349. package/dist/packages/pill/pill.d.ts +2 -2
  350. package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
  351. package/dist/packages/pill/pill.hydration.test.js +14 -14
  352. package/dist/packages/pill/pill.js +334 -311
  353. package/dist/packages/pill/pill.js.map +2 -2
  354. package/dist/packages/pill/pill.react.stories.d.ts +3 -3
  355. package/dist/packages/pill/pill.react.stories.js +3 -3
  356. package/dist/packages/pill/pill.react.test.js +8 -8
  357. package/dist/packages/pill/pill.stories.d.ts +3 -3
  358. package/dist/packages/pill/pill.stories.js +8 -8
  359. package/dist/packages/pill/pill.test.d.ts +1 -1
  360. package/dist/packages/pill/pill.test.js +17 -15
  361. package/dist/packages/pill/react.d.ts +2 -2
  362. package/dist/packages/pill/react.js +18 -14
  363. package/dist/packages/pill/styles.js +1 -1
  364. package/dist/packages/radio/base-element.d.ts +3 -3
  365. package/dist/packages/radio/base-element.js +3 -3
  366. package/dist/packages/radio/custom-error-validator.d.ts +1 -1
  367. package/dist/packages/radio/custom-error-validator.js +3 -3
  368. package/dist/packages/radio/form-associated-element.d.ts +8 -8
  369. package/dist/packages/radio/form-associated-element.js +27 -26
  370. package/dist/packages/radio/host-styles.js +9 -9
  371. package/dist/packages/radio/invalid.d.ts +1 -1
  372. package/dist/packages/radio/invalid.js +1 -1
  373. package/dist/packages/radio/radio-styles.js +199 -160
  374. package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
  375. package/dist/packages/radio/radio.a11y.test.js +60 -58
  376. package/dist/packages/radio/radio.d.ts +3 -3
  377. package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
  378. package/dist/packages/radio/radio.hydration.test.js +23 -14
  379. package/dist/packages/radio/radio.js +485 -446
  380. package/dist/packages/radio/radio.js.map +3 -3
  381. package/dist/packages/radio/radio.react.stories.d.ts +2 -2
  382. package/dist/packages/radio/radio.react.stories.js +3 -3
  383. package/dist/packages/radio/radio.stories.d.ts +4 -4
  384. package/dist/packages/radio/radio.stories.js +152 -136
  385. package/dist/packages/radio/radio.test.d.ts +1 -1
  386. package/dist/packages/radio/radio.test.js +74 -73
  387. package/dist/packages/radio/react.d.ts +1 -1
  388. package/dist/packages/radio/react.js +4 -4
  389. package/dist/packages/radio/required-validator.d.ts +1 -1
  390. package/dist/packages/radio/required-validator.js +12 -7
  391. package/dist/packages/radio/slot.d.ts +1 -1
  392. package/dist/packages/radio/slot.js +11 -8
  393. package/dist/packages/radio/watch.d.ts +1 -1
  394. package/dist/packages/radio/watch.js +3 -1
  395. package/dist/packages/radio-group/radio-group-styles.js +121 -88
  396. package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
  397. package/dist/packages/radio-group/radio-group.a11y.test.js +81 -79
  398. package/dist/packages/radio-group/radio-group.d.ts +14 -5
  399. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
  400. package/dist/packages/radio-group/radio-group.hydration.test.js +29 -18
  401. package/dist/packages/radio-group/radio-group.js +648 -560
  402. package/dist/packages/radio-group/radio-group.js.map +3 -3
  403. package/dist/packages/radio-group/radio-group.react.test.js +4 -4
  404. package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
  405. package/dist/packages/radio-group/radio-group.test.js +234 -229
  406. package/dist/packages/radio-group/react.d.ts +2 -2
  407. package/dist/packages/radio-group/react.js +10 -10
  408. package/dist/packages/select/react.d.ts +2 -2
  409. package/dist/packages/select/react.js +11 -11
  410. package/dist/packages/select/select.a11y.test.d.ts +1 -1
  411. package/dist/packages/select/select.a11y.test.js +98 -91
  412. package/dist/packages/select/select.d.ts +4 -4
  413. package/dist/packages/select/select.hydration.test.d.ts +1 -1
  414. package/dist/packages/select/select.hydration.test.js +16 -16
  415. package/dist/packages/select/select.js +350 -331
  416. package/dist/packages/select/select.js.map +2 -2
  417. package/dist/packages/select/select.react.stories.d.ts +3 -3
  418. package/dist/packages/select/select.react.stories.js +7 -7
  419. package/dist/packages/select/select.react.test.js +6 -6
  420. package/dist/packages/select/select.stories.d.ts +3 -3
  421. package/dist/packages/select/select.stories.js +51 -48
  422. package/dist/packages/select/select.test.d.ts +1 -1
  423. package/dist/packages/select/select.test.js +175 -178
  424. package/dist/packages/select/styles.js +1 -1
  425. package/dist/packages/slider/Slider.d.ts +1 -1
  426. package/dist/packages/slider/Slider.js +4 -4
  427. package/dist/packages/slider/index.d.ts +2 -2
  428. package/dist/packages/slider/index.js +2 -2
  429. package/dist/packages/slider/react.d.ts +3 -3
  430. package/dist/packages/slider/react.js +9 -9
  431. package/dist/packages/slider/slider.d.ts +3 -3
  432. package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
  433. package/dist/packages/slider/slider.hydration.test.js +39 -20
  434. package/dist/packages/slider/slider.js +480 -462
  435. package/dist/packages/slider/slider.js.map +2 -2
  436. package/dist/packages/slider/slider.react.stories.d.ts +3 -3
  437. package/dist/packages/slider/slider.react.stories.js +31 -34
  438. package/dist/packages/slider/slider.react.test.js +6 -6
  439. package/dist/packages/slider/slider.stories.d.ts +7 -7
  440. package/dist/packages/slider/slider.stories.js +332 -340
  441. package/dist/packages/slider/slider.test.d.ts +5 -5
  442. package/dist/packages/slider/slider.test.js +367 -334
  443. package/dist/packages/slider/styles/w-slider.styles.js +166 -148
  444. package/dist/packages/slider/styles.js +1 -1
  445. package/dist/packages/slider-thumb/SliderThumb.d.ts +1 -1
  446. package/dist/packages/slider-thumb/SliderThumb.js +4 -4
  447. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
  448. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
  449. package/dist/packages/slider-thumb/react.d.ts +3 -3
  450. package/dist/packages/slider-thumb/react.js +11 -9
  451. package/dist/packages/slider-thumb/slider-thumb.d.ts +3 -3
  452. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
  453. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
  454. package/dist/packages/slider-thumb/slider-thumb.js +545 -548
  455. package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
  456. package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
  457. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
  458. package/dist/packages/slider-thumb/styles.js +1 -1
  459. package/dist/packages/snackbar/locales/da/messages.d.mts +1 -0
  460. package/dist/packages/snackbar/locales/da/messages.mjs +1 -0
  461. package/dist/packages/snackbar/locales/en/messages.d.mts +1 -0
  462. package/dist/packages/snackbar/locales/en/messages.mjs +1 -0
  463. package/dist/packages/snackbar/locales/fi/messages.d.mts +1 -0
  464. package/dist/packages/snackbar/locales/fi/messages.mjs +1 -0
  465. package/dist/packages/snackbar/locales/nb/messages.d.mts +1 -0
  466. package/dist/packages/snackbar/locales/nb/messages.mjs +1 -0
  467. package/dist/packages/snackbar/locales/sv/messages.d.mts +1 -0
  468. package/dist/packages/snackbar/locales/sv/messages.mjs +1 -0
  469. package/dist/packages/snackbar/react.d.ts +2 -0
  470. package/dist/packages/snackbar/react.js +11 -0
  471. package/dist/packages/snackbar/snackbar.d.ts +132 -0
  472. package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -0
  473. package/dist/packages/snackbar/snackbar.hydration.test.js +13 -0
  474. package/dist/packages/snackbar/snackbar.js +2665 -0
  475. package/dist/packages/snackbar/snackbar.js.map +7 -0
  476. package/dist/packages/snackbar/snackbar.react.stories.d.ts +12 -0
  477. package/dist/packages/snackbar/snackbar.react.stories.js +160 -0
  478. package/dist/packages/snackbar/snackbar.stories.d.ts +20 -0
  479. package/dist/packages/snackbar/snackbar.stories.js +363 -0
  480. package/dist/packages/snackbar/snackbar.test.d.ts +4 -0
  481. package/dist/packages/snackbar/snackbar.test.js +17 -0
  482. package/dist/packages/snackbar/styles.d.ts +1 -0
  483. package/dist/packages/snackbar/styles.js +35 -0
  484. package/dist/packages/snackbar-item/react.d.ts +5 -0
  485. package/dist/packages/snackbar-item/react.js +16 -0
  486. package/dist/packages/snackbar-item/snackbar-item.d.ts +69 -0
  487. package/dist/packages/snackbar-item/snackbar-item.js +2620 -0
  488. package/dist/packages/snackbar-item/snackbar-item.js.map +7 -0
  489. package/dist/packages/snackbar-item/snackbar-item.react.test.d.ts +1 -0
  490. package/dist/packages/snackbar-item/snackbar-item.react.test.js +5 -0
  491. package/dist/packages/snackbar-item/styles.d.ts +1 -0
  492. package/dist/packages/snackbar-item/styles.js +133 -0
  493. package/dist/packages/step/react.d.ts +1 -1
  494. package/dist/packages/step/react.js +4 -4
  495. package/dist/packages/step/step.d.ts +2 -2
  496. package/dist/packages/step/step.hydration.test.d.ts +1 -1
  497. package/dist/packages/step/step.hydration.test.js +10 -10
  498. package/dist/packages/step/step.js +334 -312
  499. package/dist/packages/step/step.js.map +2 -2
  500. package/dist/packages/step-indicator/index.d.ts +2 -2
  501. package/dist/packages/step-indicator/index.js +2 -2
  502. package/dist/packages/step-indicator/react.d.ts +2 -2
  503. package/dist/packages/step-indicator/react.js +5 -5
  504. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
  505. package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
  506. package/dist/packages/step-indicator/step-indicator.d.ts +1 -1
  507. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
  508. package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
  509. package/dist/packages/step-indicator/step-indicator.js +280 -276
  510. package/dist/packages/step-indicator/step-indicator.js.map +2 -2
  511. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
  512. package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
  513. package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
  514. package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
  515. package/dist/packages/step-indicator/styles.js +1 -1
  516. package/dist/packages/styles.js +274 -274
  517. package/dist/packages/switch/react.d.ts +1 -1
  518. package/dist/packages/switch/react.js +6 -6
  519. package/dist/packages/switch/styles.js +1 -1
  520. package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
  521. package/dist/packages/switch/switch.a11y.test.js +46 -38
  522. package/dist/packages/switch/switch.d.ts +1 -1
  523. package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
  524. package/dist/packages/switch/switch.hydration.test.js +23 -23
  525. package/dist/packages/switch/switch.js +299 -299
  526. package/dist/packages/switch/switch.js.map +2 -2
  527. package/dist/packages/switch/switch.react.stories.d.ts +2 -2
  528. package/dist/packages/switch/switch.react.stories.js +2 -2
  529. package/dist/packages/switch/switch.stories.d.ts +2 -2
  530. package/dist/packages/switch/switch.stories.js +42 -37
  531. package/dist/packages/switch/switch.test.d.ts +1 -1
  532. package/dist/packages/switch/switch.test.js +30 -35
  533. package/dist/packages/tab/react.d.ts +6 -4
  534. package/dist/packages/tab/react.js +11 -10
  535. package/dist/packages/tab/styles.d.ts +1 -0
  536. package/dist/packages/tab/styles.js +2 -0
  537. package/dist/packages/tab/tab.d.ts +5 -5
  538. package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
  539. package/dist/packages/tab/tab.hydration.test.js +18 -12
  540. package/dist/packages/tab/tab.js +305 -304
  541. package/dist/packages/tab/tab.js.map +3 -3
  542. package/dist/packages/tab/tab.react.test.js +5 -3
  543. package/dist/packages/tab-panel/react.d.ts +3 -2
  544. package/dist/packages/tab-panel/react.js +11 -5
  545. package/dist/packages/tab-panel/tab-panel.d.ts +3 -3
  546. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
  547. package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
  548. package/dist/packages/tab-panel/tab-panel.js +289 -287
  549. package/dist/packages/tab-panel/tab-panel.js.map +2 -2
  550. package/dist/packages/tabs/index.d.ts +4 -4
  551. package/dist/packages/tabs/index.js +3 -3
  552. package/dist/packages/tabs/react.d.ts +27 -8
  553. package/dist/packages/tabs/react.js +30 -9
  554. package/dist/packages/tabs/styles.js +1 -1
  555. package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
  556. package/dist/packages/tabs/tabs.a11y.test.js +188 -169
  557. package/dist/packages/tabs/tabs.d.ts +3 -3
  558. package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
  559. package/dist/packages/tabs/tabs.hydration.test.js +22 -8
  560. package/dist/packages/tabs/tabs.js +289 -282
  561. package/dist/packages/tabs/tabs.js.map +2 -2
  562. package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
  563. package/dist/packages/tabs/tabs.react.stories.js +28 -28
  564. package/dist/packages/tabs/tabs.stories.d.ts +4 -4
  565. package/dist/packages/tabs/tabs.stories.js +101 -95
  566. package/dist/packages/tabs/tabs.test.d.ts +3 -3
  567. package/dist/packages/tabs/tabs.test.js +136 -122
  568. package/dist/packages/textarea/react.d.ts +2 -2
  569. package/dist/packages/textarea/react.js +17 -17
  570. package/dist/packages/textarea/styles.js +1 -1
  571. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
  572. package/dist/packages/textarea/textarea.a11y.test.js +89 -57
  573. package/dist/packages/textarea/textarea.d.ts +1 -1
  574. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
  575. package/dist/packages/textarea/textarea.hydration.test.js +19 -19
  576. package/dist/packages/textarea/textarea.js +300 -298
  577. package/dist/packages/textarea/textarea.js.map +2 -2
  578. package/dist/packages/textarea/textarea.react.stories.d.ts +3 -3
  579. package/dist/packages/textarea/textarea.react.stories.js +13 -13
  580. package/dist/packages/textarea/textarea.react.test.js +7 -7
  581. package/dist/packages/textarea/textarea.stories.d.ts +3 -3
  582. package/dist/packages/textarea/textarea.stories.js +44 -42
  583. package/dist/packages/textarea/textarea.test.d.ts +1 -1
  584. package/dist/packages/textarea/textarea.test.js +124 -88
  585. package/dist/packages/textfield/react.d.ts +2 -2
  586. package/dist/packages/textfield/react.js +17 -17
  587. package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
  588. package/dist/packages/textfield/styles.js +1 -1
  589. package/dist/packages/textfield/textfield.d.ts +3 -3
  590. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
  591. package/dist/packages/textfield/textfield.hydration.test.js +19 -19
  592. package/dist/packages/textfield/textfield.js +376 -368
  593. package/dist/packages/textfield/textfield.js.map +3 -3
  594. package/dist/packages/textfield/textfield.react.stories.d.ts +3 -3
  595. package/dist/packages/textfield/textfield.react.stories.js +31 -31
  596. package/dist/packages/textfield/textfield.react.test.js +7 -7
  597. package/dist/packages/textfield/textfield.stories.d.ts +4 -4
  598. package/dist/packages/textfield/textfield.stories.js +107 -89
  599. package/dist/packages/textfield/textfield.test.d.ts +2 -2
  600. package/dist/packages/textfield/textfield.test.js +103 -71
  601. package/dist/packages/toast/api.d.ts +1 -1
  602. package/dist/packages/toast/api.js +3 -3
  603. package/dist/packages/toast/index.d.ts +5 -5
  604. package/dist/packages/toast/index.js +5 -5
  605. package/dist/packages/toast/toast.d.ts +4 -4
  606. package/dist/packages/toast/toast.js +346 -317
  607. package/dist/packages/toast/toast.js.map +4 -4
  608. package/dist/packages/toast/toast.stories.d.ts +4 -4
  609. package/dist/packages/toast/toast.stories.js +37 -16
  610. package/dist/packages/toast/toast.test.d.ts +1 -1
  611. package/dist/packages/toast/toast.test.js +48 -31
  612. package/dist/packages/toast/types.d.ts +1 -1
  613. package/dist/packages/toast-container/styles.js +1 -1
  614. package/dist/packages/toast-container/toast-container.d.ts +2 -2
  615. package/dist/packages/toast-container/toast-container.js +291 -290
  616. package/dist/packages/toast-container/toast-container.js.map +2 -2
  617. package/dist/packages/utils/element-collapse.d.ts +12 -0
  618. package/dist/packages/utils/element-collapse.js +102 -0
  619. package/dist/packages/utils/expand-transition.d.ts +1 -1
  620. package/dist/packages/utils/expand-transition.js +12 -10
  621. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  622. package/dist/packages/utils/unstyled-heading.js +4 -4
  623. package/dist/packages/utils/window-exists.js +1 -1
  624. package/dist/packages/utils.js +2 -2
  625. package/dist/setup-tests.d.ts +3 -3
  626. package/dist/setup-tests.js +16 -13
  627. package/dist/tests/react-hydration.js +29 -30
  628. package/dist/tests/react-ssr-attributes.d.ts +1 -1
  629. package/dist/tests/react-ssr-attributes.js +4 -4
  630. package/dist/web-types.json +110 -22
  631. package/eik/index.js +12 -12
  632. package/package.json +11 -18
@@ -1,6 +1,6 @@
1
- import { StoryObj } from '@storybook/react';
2
- import React from 'react';
3
- import { Textarea } from './react';
1
+ import { StoryObj } from "@storybook/react";
2
+ import React from "react";
3
+ import { Textarea } from "./react";
4
4
  declare const _default: {
5
5
  title: string;
6
6
  render(args: Omit<Omit<Omit<React.HTMLAttributes<import("./textarea").WarpTextarea>, "value" | "form" | "label" | "name" | "disabled" | "invalid" | "helpText" | "placeholder" | "readOnly" | "readonly" | "required" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "onblur" | "onchange" | "onfocus" | "oninput" | "updated" | "firstUpdated" | "resetFormControl" | "_helptextstyles" | "_helpId" | "_id" | "_error" | "handler" | "render" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "onFocus" | "onBlur" | "onChange" | "onInput" | "reportValidity" | "optional" | "minHeight" | "setCustomValidity" | "maxRows" | "minRows" | "maxHeight" | "_textareaStyles"> & {
@@ -1,7 +1,7 @@
1
- import React from 'react';
2
- import { Textarea } from './react';
1
+ import React from "react";
2
+ import { Textarea } from "./react";
3
3
  export default {
4
- title: 'Forms/Textarea',
4
+ title: "Forms/Textarea",
5
5
  render(args) {
6
6
  return React.createElement(Textarea, { ...args });
7
7
  },
@@ -9,33 +9,33 @@ export default {
9
9
  };
10
10
  export const Default = {
11
11
  args: {
12
- label: 'Email',
12
+ label: "Email",
13
13
  },
14
14
  };
15
15
  export const WithPlaceholder = {
16
16
  args: {
17
- label: 'Email',
18
- placeholder: 'user@example.com',
17
+ label: "Email",
18
+ placeholder: "user@example.com",
19
19
  },
20
20
  };
21
21
  export const WithHelpText = {
22
22
  args: {
23
- label: 'Password',
24
- helpText: 'Must be at least 8 characters',
23
+ label: "Password",
24
+ helpText: "Must be at least 8 characters",
25
25
  },
26
26
  };
27
27
  export const Invalid = {
28
28
  args: {
29
- label: 'Email',
29
+ label: "Email",
30
30
  invalid: true,
31
- helpText: 'Please enter a valid email address',
32
- value: 'invalid-email',
31
+ helpText: "Please enter a valid email address",
32
+ value: "invalid-email",
33
33
  },
34
34
  };
35
35
  export const Disabled = {
36
36
  args: {
37
- label: 'Email',
37
+ label: "Email",
38
38
  disabled: true,
39
- value: 'user@example.com',
39
+ value: "user@example.com",
40
40
  },
41
41
  };
@@ -1,8 +1,8 @@
1
- import { describeReactSsrAttributeMapping } from '../../tests/react-ssr-attributes';
2
- import { Textarea } from './react.js';
3
- describeReactSsrAttributeMapping('Textarea', Textarea, [
4
- { propName: 'helpText', attrName: 'help-text', value: 'Help text' },
5
- { propName: 'maxRows', attrName: 'maximum-rows', value: 5 },
6
- { propName: 'minRows', attrName: 'minimum-rows', value: 2 },
7
- { propName: 'readOnly', attrName: 'read-only' },
1
+ import { describeReactSsrAttributeMapping } from "../../tests/react-ssr-attributes";
2
+ import { Textarea } from "./react.js";
3
+ describeReactSsrAttributeMapping("Textarea", Textarea, [
4
+ { propName: "helpText", attrName: "help-text", value: "Help text" },
5
+ { propName: "maxRows", attrName: "maximum-rows", value: 5 },
6
+ { propName: "minRows", attrName: "minimum-rows", value: 2 },
7
+ { propName: "readOnly", attrName: "read-only" },
8
8
  ]);
@@ -1,6 +1,6 @@
1
- import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
- import type { WarpTextarea } from './textarea.js';
3
- import './textarea.js';
1
+ import type { Meta, StoryObj } from "@storybook/web-components-vite";
2
+ import type { WarpTextarea } from "./textarea.js";
3
+ import "./textarea.js";
4
4
  declare const args: Partial<WarpTextarea> & {
5
5
  [key: string]: any;
6
6
  };
@@ -1,11 +1,11 @@
1
- import { spread } from '@open-wc/lit-helpers';
2
- import { getStorybookHelpers } from '@wc-toolkit/storybook-helpers';
3
- import { html } from 'lit';
4
- import { prespread } from '../../.storybook/utilities.js';
5
- import './textarea.js';
6
- const { events, args, argTypes } = getStorybookHelpers('w-textarea');
1
+ import { spread } from "@open-wc/lit-helpers";
2
+ import { getStorybookHelpers } from "@wc-toolkit/storybook-helpers";
3
+ import { html } from "lit";
4
+ import { prespread } from "../../.storybook/utilities.js";
5
+ import "./textarea.js";
6
+ const { events, args, argTypes } = getStorybookHelpers("w-textarea");
7
7
  const meta = {
8
- title: 'Forms/Textarea',
8
+ title: "Forms/Textarea",
9
9
  render(args) {
10
10
  return html `<w-textarea ${spread(prespread(args))}></w-textarea>`;
11
11
  },
@@ -20,93 +20,95 @@ const meta = {
20
20
  export default meta;
21
21
  export const Default = {
22
22
  args: {
23
- label: 'Description',
23
+ label: "Description",
24
24
  },
25
25
  };
26
26
  export const WithPlaceholder = {
27
27
  args: {
28
- label: 'Description',
29
- placeholder: 'A Link to the Past is a distant prequel to the original The Legend of Zelda',
28
+ label: "Description",
29
+ placeholder: "A Link to the Past is a distant prequel to the original The Legend of Zelda",
30
30
  },
31
31
  };
32
32
  export const WithHelpText = {
33
33
  args: {
34
- label: 'Description',
35
- 'help-text': 'You can provide a help text if necessary',
34
+ label: "Description",
35
+ "help-text": "You can provide a help text if necessary",
36
36
  },
37
37
  };
38
38
  export const NoVisualLabel = {
39
39
  args: {
40
- 'aria-label': 'Description',
40
+ "aria-label": "Description",
41
41
  },
42
42
  };
43
43
  export const Invalid = {
44
44
  args: {
45
- label: 'Description',
45
+ label: "Description",
46
46
  invalid: true,
47
- 'help-text': 'A description is required',
47
+ "help-text": "A description is required",
48
48
  },
49
49
  };
50
50
  export const Disabled = {
51
51
  args: {
52
- label: 'Description',
52
+ label: "Description",
53
53
  disabled: true,
54
54
  value: 'A Link to the Past is a distant prequel to the original The Legend of Zelda, and, within the official chronology, is the first game in the "Defeated Hero" timeline that connects to an alternate reality scenario where the Hero of Time does not succeed in Ocarina of Time.',
55
55
  },
56
56
  };
57
57
  export const ReadOnly = {
58
58
  args: {
59
- label: 'Description',
60
- 'read-only': true,
59
+ label: "Description",
60
+ "read-only": true,
61
61
  value: 'A Link to the Past is a distant prequel to the original The Legend of Zelda, and, within the official chronology, is the first game in the "Defeated Hero" timeline that connects to an alternate reality scenario where the Hero of Time does not succeed in Ocarina of Time.',
62
62
  },
63
63
  };
64
64
  export const Optional = {
65
65
  args: {
66
- label: 'Description',
66
+ label: "Description",
67
67
  optional: true,
68
68
  },
69
69
  };
70
70
  export const ControlledSize = {
71
71
  args: {
72
- label: 'Description',
73
- 'minimum-rows': 3,
74
- 'maximum-rows': 3,
72
+ label: "Description",
73
+ "minimum-rows": 3,
74
+ "maximum-rows": 3,
75
75
  },
76
76
  };
77
77
  export const Autofocus = {
78
78
  args: {
79
- label: 'Description',
80
- 'minimum-rows': 3,
81
- 'maximum-rows': 3,
82
- placeholder: 'Refresh to see the autofocus take effect',
79
+ label: "Description",
80
+ "minimum-rows": 3,
81
+ "maximum-rows": 3,
82
+ placeholder: "Refresh to see the autofocus take effect",
83
83
  autofocus: true,
84
84
  },
85
85
  };
86
86
  export const FormParticipation = {
87
87
  render: () => html `
88
- <form
89
- @submit=${(e) => {
88
+ <form
89
+ @submit=${(e) => {
90
90
  e.preventDefault();
91
91
  const form = e.target;
92
92
  const formData = new FormData(form);
93
- alert('Form submitted with message: ' + formData.get('message'));
94
- }}>
95
- <w-textarea
96
- label="Message"
97
- name="message"
98
- required
99
- help-text="This field is required. Try submitting without a value."></w-textarea>
100
- <div style="margin-top: 16px; display: flex; gap: 8px;">
101
- <button type="submit">Submit</button>
102
- <button type="reset">Reset</button>
103
- </div>
104
- </form>
105
- `,
93
+ alert("Form submitted with message: " + formData.get("message"));
94
+ }}
95
+ >
96
+ <w-textarea
97
+ label="Message"
98
+ name="message"
99
+ required
100
+ help-text="This field is required. Try submitting without a value."
101
+ ></w-textarea>
102
+ <div style="margin-top: 16px; display: flex; gap: 8px;">
103
+ <button type="submit">Submit</button>
104
+ <button type="reset">Reset</button>
105
+ </div>
106
+ </form>
107
+ `,
106
108
  parameters: {
107
109
  docs: {
108
110
  description: {
109
- story: 'Demonstrates form validation using ElementInternals. The textarea participates in native form validation - submission is blocked when the required field is empty, and the browser shows a validation message.',
111
+ story: "Demonstrates form validation using ElementInternals. The textarea participates in native form validation - submission is blocked when the required field is empty, and the browser shows a validation message.",
110
112
  },
111
113
  },
112
114
  },
@@ -1 +1 @@
1
- import './textarea.js';
1
+ import "./textarea.js";
@@ -1,175 +1,211 @@
1
- import { userEvent } from 'vitest/browser';
2
- import { html } from 'lit';
3
- import { expect, test, vi } from 'vitest';
4
- import { render } from 'vitest-browser-lit';
5
- import './textarea.js';
6
- test('renders the textarea', async () => {
1
+ import { userEvent } from "vitest/browser";
2
+ import { html } from "lit";
3
+ import { expect, test, vi } from "vitest";
4
+ import { render } from "vitest-browser-lit";
5
+ import "./textarea.js";
6
+ test("renders the textarea", async () => {
7
7
  const component = html `<w-textarea label="Test label"></w-textarea>`;
8
8
  const page = render(component);
9
- await expect.element(page.getByText('Test label')).toBeVisible();
9
+ await expect.element(page.getByText("Test label")).toBeVisible();
10
10
  });
11
- test('works as expected in forms', async () => {
12
- const label = 'Test label';
11
+ test("works as expected in forms", async () => {
12
+ const label = "Test label";
13
13
  const component = html `
14
- <form data-testid="form">
15
- <w-textarea label="${label}" name="message" value="Hola el Mundo"></w-textarea>
16
- </form>
17
- `;
14
+ <form data-testid="form">
15
+ <w-textarea
16
+ label="${label}"
17
+ name="message"
18
+ value="Hola el Mundo"
19
+ ></w-textarea>
20
+ </form>
21
+ `;
18
22
  const page = render(component);
19
- await expect.element(page.getByLabelText(label)).toHaveValue('Hola el Mundo');
20
- let formData = new FormData(page.getByTestId('form').element());
21
- expect(formData.get('message')).toBe('Hola el Mundo');
23
+ await expect.element(page.getByLabelText(label)).toHaveValue("Hola el Mundo");
24
+ let formData = new FormData(page.getByTestId("form").element());
25
+ expect(formData.get("message")).toBe("Hola el Mundo");
22
26
  const inputHandler = vi.fn();
23
27
  const changeHandler = vi.fn();
24
- page.getByLabelText(label).element().addEventListener('input', inputHandler);
25
- page.getByLabelText(label).element().addEventListener('change', changeHandler);
26
- await page.getByLabelText(label).fill('Hello, World');
28
+ page.getByLabelText(label).element().addEventListener("input", inputHandler);
29
+ page
30
+ .getByLabelText(label)
31
+ .element()
32
+ .addEventListener("change", changeHandler);
33
+ await page.getByLabelText(label).fill("Hello, World");
27
34
  expect(inputHandler).toHaveBeenCalled();
28
35
  expect(changeHandler).not.toHaveBeenCalled();
29
36
  await userEvent.tab(); // trigger a blur to fire the change event
30
37
  await expect.poll(() => changeHandler.mock.calls.length).toBeGreaterThan(0);
31
- await expect.element(page.getByLabelText(label)).toHaveValue('Hello, World');
32
- formData = new FormData(page.getByTestId('form').element());
33
- expect(formData.get('message')).toBe('Hello, World');
38
+ await expect.element(page.getByLabelText(label)).toHaveValue("Hello, World");
39
+ formData = new FormData(page.getByTestId("form").element());
40
+ expect(formData.get("message")).toBe("Hello, World");
34
41
  });
35
- test('renders help text if provided', async () => {
36
- const component = html `<w-textarea label="Test label" help-text="Helpful help text"></w-textarea>`;
42
+ test("renders help text if provided", async () => {
43
+ const component = html `<w-textarea
44
+ label="Test label"
45
+ help-text="Helpful help text"
46
+ ></w-textarea>`;
37
47
  const page = render(component);
38
- await expect.element(page.getByText('Helpful help text')).toBeVisible();
48
+ await expect.element(page.getByText("Helpful help text")).toBeVisible();
39
49
  });
40
- test('marks input field as aria-invalid if the invalid prop is true', async () => {
41
- const component = html `<w-textarea label="Test label" invalid help-text="No, bad input!"></w-textarea>`;
50
+ test("marks input field as aria-invalid if the invalid prop is true", async () => {
51
+ const component = html `<w-textarea
52
+ label="Test label"
53
+ invalid
54
+ help-text="No, bad input!"
55
+ ></w-textarea>`;
42
56
  const page = render(component);
43
- await expect.element(page.getByLabelText('Test label')).toHaveAccessibleErrorMessage('No, bad input!');
57
+ await expect
58
+ .element(page.getByLabelText("Test label"))
59
+ .toHaveAccessibleErrorMessage("No, bad input!");
44
60
  });
45
- test('aria-invalid attribute is absent when textarea is valid', async () => {
46
- const component = html `<w-textarea label="Test label" data-testid="textarea"></w-textarea>`;
61
+ test("aria-invalid attribute is absent when textarea is valid", async () => {
62
+ const component = html `<w-textarea
63
+ label="Test label"
64
+ data-testid="textarea"
65
+ ></w-textarea>`;
47
66
  const page = render(component);
48
- const textarea = page.getByLabelText('Test label');
67
+ const textarea = page.getByLabelText("Test label");
49
68
  await expect.element(textarea).toBeVisible();
50
69
  // aria-invalid should NOT be present when valid
51
- await expect.element(textarea).not.toHaveAttribute('aria-invalid');
70
+ await expect.element(textarea).not.toHaveAttribute("aria-invalid");
52
71
  });
53
72
  test('aria-invalid attribute is "true" when textarea is invalid', async () => {
54
73
  const component = html `<w-textarea label="Test label" invalid></w-textarea>`;
55
74
  const page = render(component);
56
- const textarea = page.getByLabelText('Test label');
75
+ const textarea = page.getByLabelText("Test label");
57
76
  await expect.element(textarea).toBeVisible();
58
77
  // aria-invalid should be "true" when invalid
59
- await expect.element(textarea).toHaveAttribute('aria-invalid', 'true');
78
+ await expect.element(textarea).toHaveAttribute("aria-invalid", "true");
60
79
  });
61
- test('marks input field as readonly if the readonly prop is true', async () => {
80
+ test("marks input field as readonly if the readonly prop is true", async () => {
62
81
  const component = html `<w-textarea label="Test label" readonly></w-textarea>`;
63
82
  const page = render(component);
64
- await expect.element(page.getByLabelText('Test label')).toHaveAttribute('readonly', '');
83
+ await expect
84
+ .element(page.getByLabelText("Test label"))
85
+ .toHaveAttribute("readonly", "");
65
86
  });
66
- test('can reset textarea by resetting surrounding form', async () => {
87
+ test("can reset textarea by resetting surrounding form", async () => {
67
88
  render(html `
68
- <form>
69
- <w-textarea name="message" value="Hola el Mundo"></w-textarea>
70
- </form>
71
- `);
72
- const form = document.querySelector('form');
73
- const wTextArea = document.querySelector('w-textarea');
89
+ <form>
90
+ <w-textarea name="message" value="Hola el Mundo"></w-textarea>
91
+ </form>
92
+ `);
93
+ const form = document.querySelector("form");
94
+ const wTextArea = document.querySelector("w-textarea");
74
95
  // sanity
75
96
  expect(form).not.toBeNull();
76
97
  expect(wTextArea).not.toBeNull();
77
- await expect.poll(() => wTextArea.value).toBe('Hola el Mundo');
78
- wTextArea.value = 'Definitely not Hola el Mundo';
79
- await expect.poll(() => wTextArea.value).toBe('Definitely not Hola el Mundo');
98
+ await expect.poll(() => wTextArea.value).toBe("Hola el Mundo");
99
+ wTextArea.value = "Definitely not Hola el Mundo";
100
+ await expect.poll(() => wTextArea.value).toBe("Definitely not Hola el Mundo");
80
101
  // Reset the form
81
102
  form.reset();
82
- await expect.poll(() => wTextArea.value).toBe('Hola el Mundo');
103
+ await expect.poll(() => wTextArea.value).toBe("Hola el Mundo");
83
104
  });
84
- test('checkValidity returns false when required textarea is empty', async () => {
105
+ test("checkValidity returns false when required textarea is empty", async () => {
85
106
  render(html `<w-textarea label="Message" name="message" required></w-textarea>`);
86
- const wTextArea = document.querySelector('w-textarea');
107
+ const wTextArea = document.querySelector("w-textarea");
87
108
  // Wait for component to be ready
88
109
  await expect.poll(() => wTextArea.checkValidity()).toBe(false);
89
110
  expect(wTextArea.validity.valueMissing).toBe(true);
90
- expect(wTextArea.validationMessage).not.toBe('');
111
+ expect(wTextArea.validationMessage).not.toBe("");
91
112
  });
92
- test('checkValidity returns true when required textarea has a value', async () => {
93
- render(html `<w-textarea label="Message" name="message" required value="Hello"></w-textarea>`);
94
- const wTextArea = document.querySelector('w-textarea');
113
+ test("checkValidity returns true when required textarea has a value", async () => {
114
+ render(html `<w-textarea
115
+ label="Message"
116
+ name="message"
117
+ required
118
+ value="Hello"
119
+ ></w-textarea>`);
120
+ const wTextArea = document.querySelector("w-textarea");
95
121
  // Wait for component to be ready
96
122
  await expect.poll(() => wTextArea.checkValidity()).toBe(true);
97
123
  expect(wTextArea.validity.valid).toBe(true);
98
124
  });
99
- test('form submission is blocked when required textarea is empty', async () => {
125
+ test("form submission is blocked when required textarea is empty", async () => {
100
126
  const submitHandler = vi.fn((e) => e.preventDefault());
101
127
  render(html `
102
- <form data-testid="form">
103
- <w-textarea label="Message" name="message" required></w-textarea>
104
- <button type="submit">Submit</button>
105
- </form>
106
- `);
107
- const form = document.querySelector('form');
108
- form.addEventListener('submit', submitHandler);
109
- const wTextArea = document.querySelector('w-textarea');
128
+ <form data-testid="form">
129
+ <w-textarea label="Message" name="message" required></w-textarea>
130
+ <button type="submit">Submit</button>
131
+ </form>
132
+ `);
133
+ const form = document.querySelector("form");
134
+ form.addEventListener("submit", submitHandler);
135
+ const wTextArea = document.querySelector("w-textarea");
110
136
  // Wait for component to be ready
111
137
  await expect.poll(() => wTextArea.checkValidity()).toBe(false);
112
138
  // Try to submit - should be blocked by validation
113
- const submitButton = document.querySelector('button');
139
+ const submitButton = document.querySelector("button");
114
140
  submitButton.click();
115
141
  // Component should show invalid state with error message
116
142
  await expect.poll(() => wTextArea.invalid).toBe(true);
117
- await expect.poll(() => wTextArea.helpText).not.toBe('');
143
+ await expect.poll(() => wTextArea.helpText).not.toBe("");
118
144
  // Form should not have been submitted
119
145
  expect(submitHandler).not.toHaveBeenCalled();
120
146
  });
121
- test('form submission succeeds when required textarea has a value', async () => {
147
+ test("form submission succeeds when required textarea has a value", async () => {
122
148
  const submitHandler = vi.fn((e) => e.preventDefault());
123
149
  render(html `
124
- <form data-testid="form">
125
- <w-textarea label="Message" name="message" required value="Hello"></w-textarea>
126
- <button type="submit">Submit</button>
127
- </form>
128
- `);
129
- const form = document.querySelector('form');
130
- form.addEventListener('submit', submitHandler);
131
- const wTextArea = document.querySelector('w-textarea');
150
+ <form data-testid="form">
151
+ <w-textarea
152
+ label="Message"
153
+ name="message"
154
+ required
155
+ value="Hello"
156
+ ></w-textarea>
157
+ <button type="submit">Submit</button>
158
+ </form>
159
+ `);
160
+ const form = document.querySelector("form");
161
+ form.addEventListener("submit", submitHandler);
162
+ const wTextArea = document.querySelector("w-textarea");
132
163
  // Wait for component to be ready
133
164
  await expect.poll(() => wTextArea.checkValidity()).toBe(true);
134
165
  // Submit should succeed
135
- const submitButton = document.querySelector('button');
166
+ const submitButton = document.querySelector("button");
136
167
  submitButton.click();
137
168
  // Form should have been submitted
138
169
  await expect.poll(() => submitHandler.mock.calls.length).toBeGreaterThan(0);
139
170
  });
140
- test('shows validation error on blur when required field is empty', async () => {
171
+ test("shows validation error on blur when required field is empty", async () => {
141
172
  const page = render(html `<w-textarea label="Message" name="message" required></w-textarea>`);
142
- const wTextArea = document.querySelector('w-textarea');
173
+ const wTextArea = document.querySelector("w-textarea");
143
174
  // Initially should not show error (no interaction yet)
144
175
  await expect.poll(() => wTextArea.invalid).toBeFalsy();
145
176
  // Focus and blur the textarea
146
- const textarea = page.getByLabelText('Message');
177
+ const textarea = page.getByLabelText("Message");
147
178
  await textarea.click();
148
179
  await userEvent.tab(); // blur
149
180
  // Should now show validation error
150
181
  await expect.poll(() => wTextArea.invalid).toBe(true);
151
- await expect.poll(() => wTextArea.helpText).not.toBe('');
182
+ await expect.poll(() => wTextArea.helpText).not.toBe("");
152
183
  });
153
- test('restores original help text when validation passes', async () => {
184
+ test("restores original help text when validation passes", async () => {
154
185
  const page = render(html `
155
- <w-textarea label="Message" name="message" required help-text="Enter your message"></w-textarea>
156
- `);
157
- const wTextArea = document.querySelector('w-textarea');
186
+ <w-textarea
187
+ label="Message"
188
+ name="message"
189
+ required
190
+ help-text="Enter your message"
191
+ ></w-textarea>
192
+ `);
193
+ const wTextArea = document.querySelector("w-textarea");
158
194
  // Initially should show original help text
159
- await expect.poll(() => wTextArea.helpText).toBe('Enter your message');
195
+ await expect.poll(() => wTextArea.helpText).toBe("Enter your message");
160
196
  // Focus and blur to trigger validation
161
- const textarea = page.getByLabelText('Message');
197
+ const textarea = page.getByLabelText("Message");
162
198
  await textarea.click();
163
199
  await userEvent.tab();
164
200
  // Should show validation error
165
201
  await expect.poll(() => wTextArea.invalid).toBe(true);
166
- await expect.poll(() => wTextArea.helpText).not.toBe('Enter your message');
202
+ await expect.poll(() => wTextArea.helpText).not.toBe("Enter your message");
167
203
  // Fill in a value
168
- wTextArea.value = 'Hello';
204
+ wTextArea.value = "Hello";
169
205
  await wTextArea.updateComplete;
170
206
  // Wait for value + validity to update, then restore original help text
171
- await expect.poll(() => wTextArea.value).toBe('Hello');
207
+ await expect.poll(() => wTextArea.value).toBe("Hello");
172
208
  await expect.poll(() => wTextArea.checkValidity()).toBe(true);
173
209
  await expect.poll(() => wTextArea.invalid).toBe(false);
174
- await expect.poll(() => wTextArea.helpText).toBe('Enter your message');
210
+ await expect.poll(() => wTextArea.helpText).toBe("Enter your message");
175
211
  });
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import { WarpTextField } from './textfield.js';
1
+ import React from "react";
2
+ import { WarpTextField } from "./textfield.js";
3
3
  export declare const TextField: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpTextField>, "value" | "form" | "label" | "mask" | "pattern" | "type" | "name" | "size" | "autocomplete" | "disabled" | "invalid" | "helpText" | "max" | "min" | "minLength" | "minlength" | "maxLength" | "maxlength" | "placeholder" | "readOnly" | "readonly" | "required" | "step" | "formatter" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "onblur" | "onchange" | "onfocus" | "oninput" | "_hasPrefix" | "_hasSuffix" | "updated" | "firstUpdated" | "resetFormControl" | "_inputstyles" | "_helptextstyles" | "_label" | "_helpId" | "_id" | "_error" | "handler" | "prefixSlotChange" | "suffixSlotChange" | "render" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "onFocus" | "onBlur" | "onChange" | "onInput"> & {
4
4
  onBlur?: ((e: Event) => void) | undefined;
5
5
  onblur?: ((e: Event) => void) | undefined;
@@ -1,30 +1,30 @@
1
- import { createComponent } from '@lit/react';
2
- import { LitElement } from 'lit';
3
- import React from 'react';
1
+ import { createComponent } from "@lit/react";
2
+ import { LitElement } from "lit";
3
+ import React from "react";
4
4
  // decouple from CDN by providing a dummy class
5
5
  class Component extends LitElement {
6
6
  }
7
7
  const BaseTextField = createComponent({
8
- tagName: 'w-textfield',
8
+ tagName: "w-textfield",
9
9
  elementClass: Component,
10
10
  react: React,
11
11
  events: {
12
- onBlur: 'blur',
13
- onblur: 'blur',
14
- onChange: 'change',
15
- onchange: 'change',
16
- onInput: 'input',
17
- oninput: 'input',
18
- onFocus: 'focus',
19
- onfocus: 'focus',
12
+ onBlur: "blur",
13
+ onblur: "blur",
14
+ onChange: "change",
15
+ onchange: "change",
16
+ onInput: "input",
17
+ oninput: "input",
18
+ onFocus: "focus",
19
+ onfocus: "focus",
20
20
  },
21
21
  });
22
22
  export const TextField = React.forwardRef(({ helpText, minLength, maxLength, readOnly, ...props }, ref) => React.createElement(BaseTextField, {
23
23
  ...props,
24
- ...(helpText !== undefined ? { 'help-text': helpText } : {}),
25
- ...(minLength !== undefined ? { 'min-length': minLength } : {}),
26
- ...(maxLength !== undefined ? { 'max-length': maxLength } : {}),
27
- ...(readOnly ? { 'read-only': true } : {}),
24
+ ...(helpText !== undefined ? { "help-text": helpText } : {}),
25
+ ...(minLength !== undefined ? { "min-length": minLength } : {}),
26
+ ...(maxLength !== undefined ? { "max-length": maxLength } : {}),
27
+ ...(readOnly ? { "read-only": true } : {}),
28
28
  ref,
29
29
  }));
30
- TextField.displayName = 'TextField';
30
+ TextField.displayName = "TextField";