@warp-ds/elements 2.10.0-next.9 → 2.10.1-next.1

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 (724) hide show
  1. package/dist/.storybook/utilities.js +4 -4
  2. package/dist/api.js.map +2 -2
  3. package/dist/custom-elements.json +1211 -542
  4. package/dist/docs/affix/affix.md +111 -2
  5. package/dist/docs/affix/api.md +2 -2
  6. package/dist/docs/affix/styling.md +107 -0
  7. package/dist/docs/alert/alert.md +5 -5
  8. package/dist/docs/alert/api.md +4 -4
  9. package/dist/docs/attention/api.md +50 -2
  10. package/dist/docs/attention/attention.md +53 -3
  11. package/dist/docs/badge/api.md +50 -4
  12. package/dist/docs/badge/badge.md +50 -4
  13. package/dist/docs/box/api.md +2 -2
  14. package/dist/docs/box/box.md +4 -2
  15. package/dist/docs/breadcrumb-item/api.md +27 -0
  16. package/dist/docs/breadcrumb-item/breadcrumb-item.md +36 -0
  17. package/dist/docs/breadcrumbs/accessibility.md +8 -18
  18. package/dist/docs/breadcrumbs/breadcrumbs.md +123 -34
  19. package/dist/docs/breadcrumbs/examples.md +8 -8
  20. package/dist/docs/breadcrumbs/styling.md +96 -0
  21. package/dist/docs/breadcrumbs/usage.md +8 -8
  22. package/dist/docs/button/api.md +32 -24
  23. package/dist/docs/button/button.md +35 -24
  24. package/dist/docs/card/api.md +8 -0
  25. package/dist/docs/card/card.md +10 -0
  26. package/dist/docs/checkbox/api.md +52 -13
  27. package/dist/docs/checkbox/checkbox.md +231 -14
  28. package/dist/docs/checkbox/styling.md +173 -0
  29. package/dist/docs/checkbox-group/api.md +30 -6
  30. package/dist/docs/checkbox-group/checkbox-group.md +66 -36
  31. package/dist/docs/checkbox-group/styling.md +31 -29
  32. package/dist/docs/combobox/api.md +20 -12
  33. package/dist/docs/combobox/combobox.md +22 -12
  34. package/dist/docs/datepicker/api.md +22 -14
  35. package/dist/docs/datepicker/datepicker.md +24 -16
  36. package/dist/docs/expandable/api.md +6 -6
  37. package/dist/docs/expandable/expandable.md +8 -6
  38. package/dist/docs/icon/api.md +4 -4
  39. package/dist/docs/icon/icon.md +5 -5
  40. package/dist/docs/index.md +35 -32
  41. package/dist/docs/link/api.md +10 -10
  42. package/dist/docs/link/link.md +13 -11
  43. package/dist/docs/modal/api.md +20 -2
  44. package/dist/docs/modal/modal.md +101 -10
  45. package/dist/docs/modal/styling.md +75 -0
  46. package/dist/docs/modal/usage.md +4 -8
  47. package/dist/docs/modal-footer/modal-footer.md +2 -0
  48. package/dist/docs/modal-header/modal-header.md +2 -0
  49. package/dist/docs/page-indicator/page-indicator.md +2 -0
  50. package/dist/docs/pagination/api.md +4 -4
  51. package/dist/docs/pagination/pagination.md +6 -4
  52. package/dist/docs/pill/api.md +8 -8
  53. package/dist/docs/pill/pill.md +10 -8
  54. package/dist/docs/radio/radio.md +5 -1
  55. package/dist/docs/radio-group/api.md +4 -4
  56. package/dist/docs/radio-group/radio-group.md +186 -69
  57. package/dist/docs/radio-group/styling.md +179 -64
  58. package/dist/docs/select/api.md +10 -10
  59. package/dist/docs/select/select.md +103 -10
  60. package/dist/docs/select/styling.md +91 -0
  61. package/dist/docs/slider/api.md +38 -22
  62. package/dist/docs/slider/slider.md +40 -22
  63. package/dist/docs/slider-thumb/api.md +28 -12
  64. package/dist/docs/slider-thumb/slider-thumb.md +28 -12
  65. package/dist/docs/snackbar/accessibility.md +20 -0
  66. package/dist/docs/snackbar/api.md +30 -0
  67. package/dist/docs/snackbar/examples.md +191 -0
  68. package/dist/docs/snackbar/snackbar.md +387 -0
  69. package/dist/docs/snackbar/styling.md +72 -0
  70. package/dist/docs/snackbar/usage.md +60 -0
  71. package/dist/docs/snackbar-item/api.md +41 -0
  72. package/dist/docs/snackbar-item/snackbar-item.md +51 -0
  73. package/dist/docs/step/api.md +16 -0
  74. package/dist/docs/step/step.md +19 -1
  75. package/dist/docs/step-indicator/step-indicator.md +2 -0
  76. package/dist/docs/switch/api.md +8 -0
  77. package/dist/docs/switch/switch.md +10 -0
  78. package/dist/docs/tab/tab.md +2 -0
  79. package/dist/docs/tab-panel/tab-panel.md +3 -0
  80. package/dist/docs/tabs/api.md +3 -3
  81. package/dist/docs/tabs/tabs.md +5 -3
  82. package/dist/docs/textarea/api.md +54 -14
  83. package/dist/docs/textarea/styling.md +91 -0
  84. package/dist/docs/textarea/textarea.md +146 -19
  85. package/dist/docs/textfield/api.md +74 -34
  86. package/dist/docs/textfield/styling.md +95 -0
  87. package/dist/docs/textfield/textfield.md +171 -34
  88. package/dist/entrypoint-react.d.ts +38 -0
  89. package/dist/entrypoint-react.js +39 -0
  90. package/dist/index.d.ts +1007 -154
  91. package/dist/packages/affix/affix-styles.d.ts +8 -0
  92. package/dist/packages/affix/affix-styles.js +108 -0
  93. package/dist/packages/affix/affix.d.ts +12 -14
  94. package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
  95. package/dist/packages/affix/affix.hydration.test.js +15 -15
  96. package/dist/packages/affix/affix.js +451 -320
  97. package/dist/packages/affix/affix.js.map +4 -4
  98. package/dist/packages/affix/affix.react.stories.d.ts +3 -3
  99. package/dist/packages/affix/affix.react.stories.js +3 -3
  100. package/dist/packages/affix/affix.react.test.js +5 -3
  101. package/dist/packages/affix/affix.stories.d.ts +3 -3
  102. package/dist/packages/affix/affix.stories.js +10 -10
  103. package/dist/packages/affix/affix.test.d.ts +1 -1
  104. package/dist/packages/affix/affix.test.js +10 -10
  105. package/dist/packages/affix/react.d.ts +8 -3
  106. package/dist/packages/affix/react.js +11 -6
  107. package/dist/packages/affix/styles.js +2 -2
  108. package/dist/packages/alert/alert.d.ts +9 -6
  109. package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
  110. package/dist/packages/alert/alert.hydration.test.js +21 -21
  111. package/dist/packages/alert/alert.js +349 -324
  112. package/dist/packages/alert/alert.js.map +3 -3
  113. package/dist/packages/alert/alert.react.stories.d.ts +2 -2
  114. package/dist/packages/alert/alert.react.stories.js +13 -13
  115. package/dist/packages/alert/alert.stories.d.ts +4 -4
  116. package/dist/packages/alert/alert.stories.js +29 -27
  117. package/dist/packages/alert/alert.test.d.ts +1 -1
  118. package/dist/packages/alert/alert.test.js +34 -21
  119. package/dist/packages/alert/react.d.ts +8 -1
  120. package/dist/packages/alert/react.js +11 -4
  121. package/dist/packages/alert/styles.js +2 -2
  122. package/dist/packages/attention/attention.d.ts +14 -7
  123. package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
  124. package/dist/packages/attention/attention.hydration.test.js +29 -29
  125. package/dist/packages/attention/attention.js +1744 -1681
  126. package/dist/packages/attention/attention.js.map +4 -4
  127. package/dist/packages/attention/attention.react.stories.d.ts +3 -3
  128. package/dist/packages/attention/attention.react.stories.js +13 -13
  129. package/dist/packages/attention/attention.react.test.js +11 -7
  130. package/dist/packages/attention/attention.stories.d.ts +4 -4
  131. package/dist/packages/attention/attention.stories.js +126 -117
  132. package/dist/packages/attention/attention.test.d.ts +1 -1
  133. package/dist/packages/attention/attention.test.js +18 -10
  134. package/dist/packages/attention/layout-styles.js +900 -900
  135. package/dist/packages/attention/react.d.ts +16 -6
  136. package/dist/packages/attention/react.js +22 -11
  137. package/dist/packages/attention/styles.js +2 -2
  138. package/dist/packages/badge/badge.d.ts +8 -3
  139. package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
  140. package/dist/packages/badge/badge.hydration.test.js +25 -25
  141. package/dist/packages/badge/badge.js +281 -281
  142. package/dist/packages/badge/badge.js.map +3 -3
  143. package/dist/packages/badge/badge.react.stories.d.ts +3 -3
  144. package/dist/packages/badge/badge.react.stories.js +17 -17
  145. package/dist/packages/badge/badge.stories.d.ts +3 -3
  146. package/dist/packages/badge/badge.stories.js +22 -20
  147. package/dist/packages/badge/badge.test.d.ts +1 -1
  148. package/dist/packages/badge/badge.test.js +13 -11
  149. package/dist/packages/badge/react.d.ts +6 -1
  150. package/dist/packages/badge/react.js +9 -4
  151. package/dist/packages/badge/styles.js +2 -2
  152. package/dist/packages/box/box.d.ts +7 -2
  153. package/dist/packages/box/box.hydration.test.d.ts +1 -1
  154. package/dist/packages/box/box.hydration.test.js +14 -14
  155. package/dist/packages/box/box.js +288 -288
  156. package/dist/packages/box/box.js.map +3 -3
  157. package/dist/packages/box/box.react.stories.d.ts +4 -4
  158. package/dist/packages/box/box.react.stories.js +8 -8
  159. package/dist/packages/box/box.stories.d.ts +3 -3
  160. package/dist/packages/box/box.stories.js +25 -19
  161. package/dist/packages/box/box.test.d.ts +1 -1
  162. package/dist/packages/box/box.test.js +6 -6
  163. package/dist/packages/box/react.d.ts +6 -1
  164. package/dist/packages/box/react.js +9 -4
  165. package/dist/packages/box/slot.test.d.ts +1 -1
  166. package/dist/packages/box/slot.test.js +6 -6
  167. package/dist/packages/box/styles.js +2 -2
  168. package/dist/packages/breadcrumb-item/breadcrumb-item.d.ts +34 -0
  169. package/dist/packages/breadcrumb-item/breadcrumb-item.js +2529 -0
  170. package/dist/packages/breadcrumb-item/breadcrumb-item.js.map +7 -0
  171. package/dist/packages/breadcrumb-item/react.d.ts +8 -0
  172. package/dist/packages/breadcrumb-item/react.js +17 -0
  173. package/dist/packages/breadcrumb-item/styles.d.ts +4 -0
  174. package/dist/packages/breadcrumb-item/styles.js +81 -0
  175. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +11 -4
  176. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
  177. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +55 -49
  178. package/dist/packages/breadcrumbs/breadcrumbs.js +288 -284
  179. package/dist/packages/breadcrumbs/breadcrumbs.js.map +4 -4
  180. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +4 -4
  181. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +17 -16
  182. package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +7 -8
  183. package/dist/packages/breadcrumbs/breadcrumbs.stories.js +30 -26
  184. package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
  185. package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
  186. package/dist/packages/breadcrumbs/react.d.ts +8 -1
  187. package/dist/packages/breadcrumbs/react.js +11 -4
  188. package/dist/packages/breadcrumbs/styles.js +2 -2
  189. package/dist/packages/button/button.d.ts +22 -16
  190. package/dist/packages/button/button.hydration.test.d.ts +1 -1
  191. package/dist/packages/button/button.hydration.test.js +19 -19
  192. package/dist/packages/button/button.js +758 -711
  193. package/dist/packages/button/button.js.map +4 -4
  194. package/dist/packages/button/button.react.stories.d.ts +5 -5
  195. package/dist/packages/button/button.react.stories.js +30 -30
  196. package/dist/packages/button/button.react.test.js +13 -13
  197. package/dist/packages/button/button.stories.d.ts +4 -4
  198. package/dist/packages/button/button.stories.js +276 -167
  199. package/dist/packages/button/button.test.d.ts +1 -1
  200. package/dist/packages/button/button.test.js +36 -35
  201. package/dist/packages/button/react.d.ts +10 -3
  202. package/dist/packages/button/react.js +14 -7
  203. package/dist/packages/button/styles.js +373 -331
  204. package/dist/packages/card/card.d.ts +7 -2
  205. package/dist/packages/card/card.hydration.test.d.ts +1 -1
  206. package/dist/packages/card/card.hydration.test.js +14 -14
  207. package/dist/packages/card/card.js +310 -295
  208. package/dist/packages/card/card.js.map +4 -4
  209. package/dist/packages/card/card.react.stories.d.ts +4 -4
  210. package/dist/packages/card/card.react.stories.js +11 -11
  211. package/dist/packages/card/card.stories.d.ts +3 -3
  212. package/dist/packages/card/card.stories.js +36 -24
  213. package/dist/packages/card/card.test.d.ts +1 -1
  214. package/dist/packages/card/card.test.js +6 -6
  215. package/dist/packages/card/react.d.ts +6 -1
  216. package/dist/packages/card/react.js +9 -4
  217. package/dist/packages/card/styles.js +2 -2
  218. package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
  219. package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
  220. package/dist/packages/checkbox/checkbox.d.ts +10 -4
  221. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
  222. package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
  223. package/dist/packages/checkbox/checkbox.js +481 -430
  224. package/dist/packages/checkbox/checkbox.js.map +3 -3
  225. package/dist/packages/checkbox/checkbox.react.stories.d.ts +4 -4
  226. package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
  227. package/dist/packages/checkbox/checkbox.stories.d.ts +4 -4
  228. package/dist/packages/checkbox/checkbox.stories.js +99 -91
  229. package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
  230. package/dist/packages/checkbox/checkbox.test.js +64 -64
  231. package/dist/packages/checkbox/react.d.ts +12 -3
  232. package/dist/packages/checkbox/react.js +13 -6
  233. package/dist/packages/checkbox/styles.js +183 -132
  234. package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
  235. package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
  236. package/dist/packages/checkbox-group/checkbox-group.d.ts +13 -6
  237. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
  238. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
  239. package/dist/packages/checkbox-group/checkbox-group.js +62 -57
  240. package/dist/packages/checkbox-group/checkbox-group.js.map +3 -3
  241. package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
  242. package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
  243. package/dist/packages/checkbox-group/checkbox-group.test.js +183 -90
  244. package/dist/packages/checkbox-group/react.d.ts +10 -3
  245. package/dist/packages/checkbox-group/react.js +13 -6
  246. package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
  247. package/dist/packages/combobox/combobox.a11y.test.js +72 -49
  248. package/dist/packages/combobox/combobox.d.ts +8 -3
  249. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
  250. package/dist/packages/combobox/combobox.hydration.test.js +45 -45
  251. package/dist/packages/combobox/combobox.js +337 -338
  252. package/dist/packages/combobox/combobox.js.map +4 -4
  253. package/dist/packages/combobox/combobox.react.stories.d.ts +45 -13
  254. package/dist/packages/combobox/combobox.react.stories.js +29 -29
  255. package/dist/packages/combobox/combobox.react.test.js +8 -8
  256. package/dist/packages/combobox/combobox.stories.d.ts +4 -4
  257. package/dist/packages/combobox/combobox.stories.js +100 -94
  258. package/dist/packages/combobox/combobox.test.d.ts +2 -2
  259. package/dist/packages/combobox/combobox.test.js +249 -133
  260. package/dist/packages/combobox/react.d.ts +28 -7
  261. package/dist/packages/combobox/react.js +23 -14
  262. package/dist/packages/combobox/styles.js +2 -3
  263. package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
  264. package/dist/packages/datepicker/DatePicker.test.js +49 -42
  265. package/dist/packages/datepicker/datepicker.d.ts +15 -12
  266. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
  267. package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
  268. package/dist/packages/datepicker/datepicker.js +673 -632
  269. package/dist/packages/datepicker/datepicker.js.map +4 -4
  270. package/dist/packages/datepicker/datepicker.react.stories.d.ts +17 -17
  271. package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
  272. package/dist/packages/datepicker/datepicker.react.test.js +6 -6
  273. package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
  274. package/dist/packages/datepicker/datepicker.stories.js +32 -32
  275. package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
  276. package/dist/packages/datepicker/datepicker.test.js +77 -79
  277. package/dist/packages/datepicker/react.d.ts +15 -9
  278. package/dist/packages/datepicker/react.js +21 -14
  279. package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
  280. package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
  281. package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
  282. package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
  283. package/dist/packages/datepicker/utils.d.ts +3 -0
  284. package/dist/packages/datepicker/utils.js +40 -1
  285. package/dist/packages/datepicker/utils.test.d.ts +1 -0
  286. package/dist/packages/datepicker/utils.test.js +29 -0
  287. package/dist/packages/expandable/expandable.d.ts +14 -7
  288. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
  289. package/dist/packages/expandable/expandable.hydration.test.js +21 -21
  290. package/dist/packages/expandable/expandable.js +359 -332
  291. package/dist/packages/expandable/expandable.js.map +4 -4
  292. package/dist/packages/expandable/expandable.react.stories.d.ts +3 -3
  293. package/dist/packages/expandable/expandable.react.stories.js +7 -7
  294. package/dist/packages/expandable/expandable.react.test.js +15 -7
  295. package/dist/packages/expandable/expandable.stories.d.ts +5 -5
  296. package/dist/packages/expandable/expandable.stories.js +51 -45
  297. package/dist/packages/expandable/expandable.test.d.ts +1 -1
  298. package/dist/packages/expandable/expandable.test.js +19 -17
  299. package/dist/packages/expandable/react.d.ts +7 -2
  300. package/dist/packages/expandable/react.js +14 -9
  301. package/dist/packages/expandable/styles.js +2 -2
  302. package/dist/packages/global.d.ts +1 -0
  303. package/dist/packages/global.js +5 -0
  304. package/dist/packages/i18n.d.ts +1 -1
  305. package/dist/packages/i18n.js +37 -29
  306. package/dist/packages/icon/icon.d.ts +10 -2
  307. package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
  308. package/dist/packages/icon/icon.hydration.test.js +25 -25
  309. package/dist/packages/icon/icon.js +31 -26
  310. package/dist/packages/icon/icon.js.map +2 -2
  311. package/dist/packages/icon/icon.react.stories.d.ts +3 -2
  312. package/dist/packages/icon/icon.react.stories.js +284 -283
  313. package/dist/packages/icon/icon.stories.d.ts +7 -30
  314. package/dist/packages/icon/icon.stories.js +307 -297
  315. package/dist/packages/icon/icon.test.d.ts +1 -1
  316. package/dist/packages/icon/icon.test.js +36 -28
  317. package/dist/packages/icon/react.d.ts +4 -1
  318. package/dist/packages/icon/react.js +7 -4
  319. package/dist/packages/icon/style.js +24 -25
  320. package/dist/packages/interaction-type-detection.d.ts +22 -0
  321. package/dist/packages/interaction-type-detection.js +38 -0
  322. package/dist/packages/link/link.d.ts +14 -9
  323. package/dist/packages/link/link.hydration.test.d.ts +1 -1
  324. package/dist/packages/link/link.hydration.test.js +27 -27
  325. package/dist/packages/link/link.js +726 -679
  326. package/dist/packages/link/link.js.map +3 -3
  327. package/dist/packages/link/link.react.stories.d.ts +5 -5
  328. package/dist/packages/link/link.react.stories.js +42 -42
  329. package/dist/packages/link/link.react.test.js +5 -3
  330. package/dist/packages/link/link.stories.d.ts +3 -3
  331. package/dist/packages/link/link.stories.js +51 -51
  332. package/dist/packages/link/link.test.d.ts +1 -1
  333. package/dist/packages/link/link.test.js +11 -7
  334. package/dist/packages/link/react.d.ts +8 -3
  335. package/dist/packages/link/react.js +11 -6
  336. package/dist/packages/link/styles.js +63 -58
  337. package/dist/packages/modal/index.d.ts +7 -7
  338. package/dist/packages/modal/index.js +7 -7
  339. package/dist/packages/modal/modal.d.ts +26 -4
  340. package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
  341. package/dist/packages/modal/modal.hydration.test.js +12 -12
  342. package/dist/packages/modal/modal.js +456 -409
  343. package/dist/packages/modal/modal.js.map +4 -4
  344. package/dist/packages/modal/modal.react.stories.d.ts +7 -7
  345. package/dist/packages/modal/modal.react.stories.js +15 -6
  346. package/dist/packages/modal/modal.react.test.js +5 -5
  347. package/dist/packages/modal/modal.stories.d.ts +9 -8
  348. package/dist/packages/modal/modal.stories.js +266 -248
  349. package/dist/packages/modal/react.d.ts +40 -8
  350. package/dist/packages/modal/react.js +45 -13
  351. package/dist/packages/modal/styles.d.ts +1 -0
  352. package/dist/packages/modal/styles.js +171 -0
  353. package/dist/packages/modal/util.js +3 -1
  354. package/dist/packages/modal-footer/modal-footer.d.ts +13 -2
  355. package/dist/packages/modal-footer/modal-footer.js +299 -296
  356. package/dist/packages/modal-footer/modal-footer.js.map +4 -4
  357. package/dist/packages/modal-footer/react.d.ts +6 -1
  358. package/dist/packages/modal-footer/react.js +9 -4
  359. package/dist/packages/modal-footer/styles.d.ts +1 -0
  360. package/dist/packages/modal-footer/styles.js +22 -0
  361. package/dist/packages/modal-header/modal-header.d.ts +21 -7
  362. package/dist/packages/modal-header/modal-header.js +451 -422
  363. package/dist/packages/modal-header/modal-header.js.map +4 -4
  364. package/dist/packages/modal-header/modal-header.react.test.js +5 -3
  365. package/dist/packages/modal-header/react.d.ts +9 -4
  366. package/dist/packages/modal-header/react.js +13 -8
  367. package/dist/packages/modal-header/styles.d.ts +1 -0
  368. package/dist/packages/modal-header/styles.js +96 -0
  369. package/dist/packages/page-indicator/page-indicator.d.ts +8 -5
  370. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
  371. package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
  372. package/dist/packages/page-indicator/page-indicator.js +29 -29
  373. package/dist/packages/page-indicator/page-indicator.js.map +4 -4
  374. package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
  375. package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
  376. package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
  377. package/dist/packages/page-indicator/page-indicator.stories.d.ts +9 -27
  378. package/dist/packages/page-indicator/page-indicator.stories.js +63 -32
  379. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
  380. package/dist/packages/page-indicator/page-indicator.test.js +110 -70
  381. package/dist/packages/page-indicator/react.d.ts +9 -2
  382. package/dist/packages/page-indicator/react.js +14 -7
  383. package/dist/packages/page-indicator/style.js +21 -21
  384. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
  385. package/dist/packages/pagination/pagination.a11y.test.js +59 -25
  386. package/dist/packages/pagination/pagination.d.ts +17 -11
  387. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
  388. package/dist/packages/pagination/pagination.hydration.test.js +19 -19
  389. package/dist/packages/pagination/pagination.js +385 -354
  390. package/dist/packages/pagination/pagination.js.map +4 -4
  391. package/dist/packages/pagination/pagination.react.stories.d.ts +19 -11
  392. package/dist/packages/pagination/pagination.react.stories.js +8 -8
  393. package/dist/packages/pagination/pagination.react.test.js +6 -6
  394. package/dist/packages/pagination/pagination.stories.d.ts +3 -3
  395. package/dist/packages/pagination/pagination.stories.js +18 -18
  396. package/dist/packages/pagination/pagination.test.d.ts +1 -1
  397. package/dist/packages/pagination/pagination.test.js +146 -72
  398. package/dist/packages/pagination/react.d.ts +15 -6
  399. package/dist/packages/pagination/react.js +17 -10
  400. package/dist/packages/pagination/styles.js +2 -2
  401. package/dist/packages/pill/pill.d.ts +13 -6
  402. package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
  403. package/dist/packages/pill/pill.hydration.test.js +14 -14
  404. package/dist/packages/pill/pill.js +337 -314
  405. package/dist/packages/pill/pill.js.map +4 -4
  406. package/dist/packages/pill/pill.react.stories.d.ts +15 -11
  407. package/dist/packages/pill/pill.react.stories.js +7 -3
  408. package/dist/packages/pill/pill.react.test.js +8 -8
  409. package/dist/packages/pill/pill.stories.d.ts +3 -3
  410. package/dist/packages/pill/pill.stories.js +8 -8
  411. package/dist/packages/pill/pill.test.d.ts +1 -1
  412. package/dist/packages/pill/pill.test.js +17 -15
  413. package/dist/packages/pill/react.d.ts +11 -6
  414. package/dist/packages/pill/react.js +23 -14
  415. package/dist/packages/pill/styles.js +2 -2
  416. package/dist/packages/radio/base-element.d.ts +3 -3
  417. package/dist/packages/radio/base-element.js +3 -3
  418. package/dist/packages/radio/custom-error-validator.d.ts +1 -1
  419. package/dist/packages/radio/custom-error-validator.js +3 -3
  420. package/dist/packages/radio/form-associated-element.d.ts +9 -9
  421. package/dist/packages/radio/form-associated-element.js +27 -26
  422. package/dist/packages/radio/host-styles.js +9 -9
  423. package/dist/packages/radio/invalid.d.ts +1 -1
  424. package/dist/packages/radio/invalid.js +1 -1
  425. package/dist/packages/radio/radio-styles.js +199 -160
  426. package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
  427. package/dist/packages/radio/radio.a11y.test.js +60 -58
  428. package/dist/packages/radio/radio.d.ts +10 -4
  429. package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
  430. package/dist/packages/radio/radio.hydration.test.js +23 -14
  431. package/dist/packages/radio/radio.js +491 -452
  432. package/dist/packages/radio/radio.js.map +3 -3
  433. package/dist/packages/radio/radio.react.stories.d.ts +2 -2
  434. package/dist/packages/radio/radio.react.stories.js +3 -3
  435. package/dist/packages/radio/radio.stories.d.ts +4 -4
  436. package/dist/packages/radio/radio.stories.js +152 -136
  437. package/dist/packages/radio/radio.test.d.ts +1 -1
  438. package/dist/packages/radio/radio.test.js +74 -73
  439. package/dist/packages/radio/react.d.ts +8 -1
  440. package/dist/packages/radio/react.js +11 -4
  441. package/dist/packages/radio/required-validator.d.ts +1 -1
  442. package/dist/packages/radio/required-validator.js +12 -7
  443. package/dist/packages/radio/slot.d.ts +1 -1
  444. package/dist/packages/radio/slot.js +11 -8
  445. package/dist/packages/radio/watch.d.ts +1 -1
  446. package/dist/packages/radio/watch.js +3 -1
  447. package/dist/packages/radio-group/radio-group-styles.js +121 -88
  448. package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
  449. package/dist/packages/radio-group/radio-group.a11y.test.js +81 -79
  450. package/dist/packages/radio-group/radio-group.d.ts +10 -8
  451. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
  452. package/dist/packages/radio-group/radio-group.hydration.test.js +29 -18
  453. package/dist/packages/radio-group/radio-group.js +654 -566
  454. package/dist/packages/radio-group/radio-group.js.map +4 -4
  455. package/dist/packages/radio-group/radio-group.react.test.js +4 -4
  456. package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
  457. package/dist/packages/radio-group/radio-group.test.js +304 -230
  458. package/dist/packages/radio-group/react.d.ts +14 -7
  459. package/dist/packages/radio-group/react.js +18 -10
  460. package/dist/packages/select/input-styles.d.ts +11 -0
  461. package/dist/packages/select/input-styles.js +88 -0
  462. package/dist/packages/select/locales/da/messages.mjs +1 -1
  463. package/dist/packages/select/locales/en/messages.mjs +1 -1
  464. package/dist/packages/select/locales/fi/messages.mjs +1 -1
  465. package/dist/packages/select/locales/nb/messages.mjs +1 -1
  466. package/dist/packages/select/locales/sv/messages.mjs +1 -1
  467. package/dist/packages/select/react.d.ts +11 -5
  468. package/dist/packages/select/react.js +16 -11
  469. package/dist/packages/select/select.a11y.test.d.ts +1 -1
  470. package/dist/packages/select/select.a11y.test.js +98 -91
  471. package/dist/packages/select/select.d.ts +18 -13
  472. package/dist/packages/select/select.hydration.test.d.ts +1 -1
  473. package/dist/packages/select/select.hydration.test.js +16 -16
  474. package/dist/packages/select/select.js +432 -336
  475. package/dist/packages/select/select.js.map +4 -4
  476. package/dist/packages/select/select.react.stories.d.ts +10 -10
  477. package/dist/packages/select/select.react.stories.js +19 -14
  478. package/dist/packages/select/select.react.test.js +6 -6
  479. package/dist/packages/select/select.stories.d.ts +3 -3
  480. package/dist/packages/select/select.stories.js +51 -48
  481. package/dist/packages/select/select.test.d.ts +1 -1
  482. package/dist/packages/select/select.test.js +227 -178
  483. package/dist/packages/select/styles.js +2 -2
  484. package/dist/packages/slider/index.d.ts +2 -2
  485. package/dist/packages/slider/index.js +2 -2
  486. package/dist/packages/slider/locales/da/messages.mjs +1 -1
  487. package/dist/packages/slider/locales/en/messages.mjs +1 -1
  488. package/dist/packages/slider/locales/fi/messages.mjs +1 -1
  489. package/dist/packages/slider/locales/nb/messages.mjs +1 -1
  490. package/dist/packages/slider/locales/sv/messages.mjs +1 -1
  491. package/dist/packages/slider/react.d.ts +9 -4
  492. package/dist/packages/slider/react.js +14 -9
  493. package/dist/packages/slider/slider.d.ts +32 -17
  494. package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
  495. package/dist/packages/slider/slider.hydration.test.js +39 -20
  496. package/dist/packages/slider/slider.js +523 -466
  497. package/dist/packages/slider/slider.js.map +4 -4
  498. package/dist/packages/slider/slider.react.stories.d.ts +4 -4
  499. package/dist/packages/slider/slider.react.stories.js +31 -34
  500. package/dist/packages/slider/slider.react.test.js +6 -6
  501. package/dist/packages/slider/slider.stories.d.ts +9 -7
  502. package/dist/packages/slider/slider.stories.js +369 -340
  503. package/dist/packages/slider/slider.test.d.ts +5 -5
  504. package/dist/packages/slider/slider.test.js +476 -336
  505. package/dist/packages/slider/styles/w-slider.styles.js +166 -148
  506. package/dist/packages/slider/styles.js +2 -2
  507. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
  508. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
  509. package/dist/packages/slider-thumb/react.d.ts +16 -5
  510. package/dist/packages/slider-thumb/react.js +16 -9
  511. package/dist/packages/slider-thumb/slider-thumb.d.ts +22 -17
  512. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
  513. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
  514. package/dist/packages/slider-thumb/slider-thumb.js +549 -552
  515. package/dist/packages/slider-thumb/slider-thumb.js.map +4 -4
  516. package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
  517. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
  518. package/dist/packages/slider-thumb/styles.d.ts +1 -0
  519. package/dist/packages/slider-thumb/styles.js +2 -0
  520. package/dist/packages/snackbar/locales/da/messages.d.mts +1 -0
  521. package/dist/packages/snackbar/locales/da/messages.mjs +1 -0
  522. package/dist/packages/snackbar/locales/en/messages.d.mts +1 -0
  523. package/dist/packages/snackbar/locales/en/messages.mjs +1 -0
  524. package/dist/packages/snackbar/locales/fi/messages.d.mts +1 -0
  525. package/dist/packages/snackbar/locales/fi/messages.mjs +1 -0
  526. package/dist/packages/snackbar/locales/nb/messages.d.mts +1 -0
  527. package/dist/packages/snackbar/locales/nb/messages.mjs +1 -0
  528. package/dist/packages/snackbar/locales/sv/messages.d.mts +1 -0
  529. package/dist/packages/snackbar/locales/sv/messages.mjs +1 -0
  530. package/dist/packages/snackbar/react.d.ts +41 -0
  531. package/dist/packages/snackbar/react.js +50 -0
  532. package/dist/packages/snackbar/snackbar.d.ts +134 -0
  533. package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -0
  534. package/dist/packages/snackbar/snackbar.hydration.test.js +13 -0
  535. package/dist/packages/snackbar/snackbar.js +2665 -0
  536. package/dist/packages/snackbar/snackbar.js.map +7 -0
  537. package/dist/packages/snackbar/snackbar.react.stories.d.ts +12 -0
  538. package/dist/packages/snackbar/snackbar.react.stories.js +160 -0
  539. package/dist/packages/snackbar/snackbar.stories.d.ts +20 -0
  540. package/dist/packages/snackbar/snackbar.stories.js +363 -0
  541. package/dist/packages/snackbar/snackbar.test.d.ts +4 -0
  542. package/dist/packages/snackbar/snackbar.test.js +17 -0
  543. package/dist/packages/snackbar/styles.d.ts +1 -0
  544. package/dist/packages/snackbar/styles.js +35 -0
  545. package/dist/packages/snackbar-item/react.d.ts +12 -0
  546. package/dist/packages/snackbar-item/react.js +23 -0
  547. package/dist/packages/snackbar-item/snackbar-item.d.ts +71 -0
  548. package/dist/packages/snackbar-item/snackbar-item.js +2620 -0
  549. package/dist/packages/snackbar-item/snackbar-item.js.map +7 -0
  550. package/dist/packages/snackbar-item/snackbar-item.react.test.d.ts +1 -0
  551. package/dist/packages/snackbar-item/snackbar-item.react.test.js +5 -0
  552. package/dist/packages/snackbar-item/styles.d.ts +1 -0
  553. package/dist/packages/snackbar-item/styles.js +133 -0
  554. package/dist/packages/step/react.d.ts +6 -1
  555. package/dist/packages/step/react.js +9 -4
  556. package/dist/packages/step/step.d.ts +10 -3
  557. package/dist/packages/step/step.hydration.test.d.ts +1 -1
  558. package/dist/packages/step/step.hydration.test.js +10 -10
  559. package/dist/packages/step/step.js +336 -314
  560. package/dist/packages/step/step.js.map +4 -4
  561. package/dist/packages/step/styles.d.ts +1 -0
  562. package/dist/packages/step/styles.js +2 -0
  563. package/dist/packages/step-indicator/index.d.ts +2 -2
  564. package/dist/packages/step-indicator/index.js +2 -2
  565. package/dist/packages/step-indicator/react.d.ts +7 -2
  566. package/dist/packages/step-indicator/react.js +10 -5
  567. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
  568. package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
  569. package/dist/packages/step-indicator/step-indicator.d.ts +8 -1
  570. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
  571. package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
  572. package/dist/packages/step-indicator/step-indicator.js +285 -281
  573. package/dist/packages/step-indicator/step-indicator.js.map +3 -3
  574. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
  575. package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
  576. package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
  577. package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
  578. package/dist/packages/step-indicator/styles.js +2 -2
  579. package/dist/packages/styles.js +277 -275
  580. package/dist/packages/switch/react.d.ts +9 -3
  581. package/dist/packages/switch/react.js +11 -6
  582. package/dist/packages/switch/styles.js +2 -2
  583. package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
  584. package/dist/packages/switch/switch.a11y.test.js +46 -38
  585. package/dist/packages/switch/switch.d.ts +10 -3
  586. package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
  587. package/dist/packages/switch/switch.hydration.test.js +23 -23
  588. package/dist/packages/switch/switch.js +304 -304
  589. package/dist/packages/switch/switch.js.map +3 -3
  590. package/dist/packages/switch/switch.react.stories.d.ts +4 -4
  591. package/dist/packages/switch/switch.react.stories.js +2 -2
  592. package/dist/packages/switch/switch.stories.d.ts +2 -2
  593. package/dist/packages/switch/switch.stories.js +42 -37
  594. package/dist/packages/switch/switch.test.d.ts +1 -1
  595. package/dist/packages/switch/switch.test.js +30 -35
  596. package/dist/packages/tab/react.d.ts +12 -7
  597. package/dist/packages/tab/react.js +14 -10
  598. package/dist/packages/tab/styles.d.ts +1 -0
  599. package/dist/packages/tab/styles.js +2 -0
  600. package/dist/packages/tab/tab.d.ts +13 -6
  601. package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
  602. package/dist/packages/tab/tab.hydration.test.js +18 -12
  603. package/dist/packages/tab/tab.js +309 -308
  604. package/dist/packages/tab/tab.js.map +4 -4
  605. package/dist/packages/tab/tab.react.test.js +5 -3
  606. package/dist/packages/tab-panel/react.d.ts +10 -2
  607. package/dist/packages/tab-panel/react.js +18 -5
  608. package/dist/packages/tab-panel/tab-panel.d.ts +6 -3
  609. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
  610. package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
  611. package/dist/packages/tab-panel/tab-panel.js +293 -291
  612. package/dist/packages/tab-panel/tab-panel.js.map +3 -3
  613. package/dist/packages/tabs/index.d.ts +4 -4
  614. package/dist/packages/tabs/index.js +3 -3
  615. package/dist/packages/tabs/react.d.ts +31 -8
  616. package/dist/packages/tabs/react.js +34 -9
  617. package/dist/packages/tabs/styles.js +2 -2
  618. package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
  619. package/dist/packages/tabs/tabs.a11y.test.js +188 -169
  620. package/dist/packages/tabs/tabs.d.ts +9 -6
  621. package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
  622. package/dist/packages/tabs/tabs.hydration.test.js +22 -8
  623. package/dist/packages/tabs/tabs.js +293 -286
  624. package/dist/packages/tabs/tabs.js.map +3 -3
  625. package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
  626. package/dist/packages/tabs/tabs.react.stories.js +28 -28
  627. package/dist/packages/tabs/tabs.stories.d.ts +4 -4
  628. package/dist/packages/tabs/tabs.stories.js +101 -95
  629. package/dist/packages/tabs/tabs.test.d.ts +3 -3
  630. package/dist/packages/tabs/tabs.test.js +136 -122
  631. package/dist/packages/textarea/input-styles.d.ts +11 -0
  632. package/dist/packages/textarea/input-styles.js +88 -0
  633. package/dist/packages/textarea/locales/da/messages.mjs +1 -1
  634. package/dist/packages/textarea/locales/en/messages.mjs +1 -1
  635. package/dist/packages/textarea/locales/fi/messages.mjs +1 -1
  636. package/dist/packages/textarea/locales/nb/messages.mjs +1 -1
  637. package/dist/packages/textarea/locales/sv/messages.mjs +1 -1
  638. package/dist/packages/textarea/react.d.ts +17 -11
  639. package/dist/packages/textarea/react.js +22 -17
  640. package/dist/packages/textarea/styles.js +2 -2
  641. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
  642. package/dist/packages/textarea/textarea.a11y.test.js +90 -58
  643. package/dist/packages/textarea/textarea.d.ts +20 -20
  644. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
  645. package/dist/packages/textarea/textarea.hydration.test.js +19 -19
  646. package/dist/packages/textarea/textarea.js +385 -304
  647. package/dist/packages/textarea/textarea.js.map +4 -4
  648. package/dist/packages/textarea/textarea.react.stories.d.ts +38 -21
  649. package/dist/packages/textarea/textarea.react.stories.js +30 -13
  650. package/dist/packages/textarea/textarea.react.test.js +7 -7
  651. package/dist/packages/textarea/textarea.stories.d.ts +3 -3
  652. package/dist/packages/textarea/textarea.stories.js +44 -42
  653. package/dist/packages/textarea/textarea.test.d.ts +1 -1
  654. package/dist/packages/textarea/textarea.test.js +197 -88
  655. package/dist/packages/textfield/input-styles.d.ts +11 -0
  656. package/dist/packages/textfield/input-styles.js +88 -0
  657. package/dist/packages/textfield/locales/da/messages.d.mts +1 -0
  658. package/dist/packages/textfield/locales/da/messages.mjs +1 -0
  659. package/dist/packages/textfield/locales/en/messages.d.mts +1 -0
  660. package/dist/packages/textfield/locales/en/messages.mjs +1 -0
  661. package/dist/packages/textfield/locales/fi/messages.d.mts +1 -0
  662. package/dist/packages/textfield/locales/fi/messages.mjs +1 -0
  663. package/dist/packages/textfield/locales/nb/messages.d.mts +1 -0
  664. package/dist/packages/textfield/locales/nb/messages.mjs +1 -0
  665. package/dist/packages/textfield/locales/sv/messages.d.mts +1 -0
  666. package/dist/packages/textfield/locales/sv/messages.mjs +1 -0
  667. package/dist/packages/textfield/react.d.ts +17 -11
  668. package/dist/packages/textfield/react.js +22 -17
  669. package/dist/packages/textfield/react.test.d.ts +1 -0
  670. package/dist/packages/textfield/react.test.js +20 -0
  671. package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
  672. package/dist/packages/textfield/styles.js +2 -2
  673. package/dist/packages/textfield/textfield.d.ts +38 -26
  674. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
  675. package/dist/packages/textfield/textfield.hydration.test.js +19 -19
  676. package/dist/packages/textfield/textfield.js +468 -373
  677. package/dist/packages/textfield/textfield.js.map +4 -4
  678. package/dist/packages/textfield/textfield.react.stories.d.ts +51 -21
  679. package/dist/packages/textfield/textfield.react.stories.js +63 -31
  680. package/dist/packages/textfield/textfield.react.test.js +7 -7
  681. package/dist/packages/textfield/textfield.stories.d.ts +4 -4
  682. package/dist/packages/textfield/textfield.stories.js +107 -89
  683. package/dist/packages/textfield/textfield.test.d.ts +2 -2
  684. package/dist/packages/textfield/textfield.test.js +174 -71
  685. package/dist/packages/toast/api.d.ts +2 -2
  686. package/dist/packages/toast/api.js +3 -3
  687. package/dist/packages/toast/index.d.ts +5 -5
  688. package/dist/packages/toast/index.js +5 -5
  689. package/dist/packages/toast/styles.js +2 -2
  690. package/dist/packages/toast/toast.d.ts +10 -5
  691. package/dist/packages/toast/toast.js +349 -320
  692. package/dist/packages/toast/toast.js.map +4 -4
  693. package/dist/packages/toast/toast.stories.d.ts +4 -4
  694. package/dist/packages/toast/toast.stories.js +37 -16
  695. package/dist/packages/toast/toast.test.d.ts +1 -1
  696. package/dist/packages/toast/toast.test.js +48 -31
  697. package/dist/packages/toast/types.d.ts +1 -1
  698. package/dist/packages/toast-container/styles.d.ts +1 -0
  699. package/dist/packages/toast-container/styles.js +2 -0
  700. package/dist/packages/toast-container/toast-container.d.ts +8 -3
  701. package/dist/packages/toast-container/toast-container.js +295 -294
  702. package/dist/packages/toast-container/toast-container.js.map +4 -4
  703. package/dist/packages/types.d.ts +16 -0
  704. package/dist/packages/types.js +1 -0
  705. package/dist/packages/utils/element-collapse.d.ts +12 -0
  706. package/dist/packages/utils/element-collapse.js +102 -0
  707. package/dist/packages/utils/expand-transition.d.ts +1 -1
  708. package/dist/packages/utils/expand-transition.js +12 -10
  709. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  710. package/dist/packages/utils/unstyled-heading.js +4 -4
  711. package/dist/packages/utils/window-exists.js +1 -1
  712. package/dist/packages/utils.js +2 -2
  713. package/dist/setup-tests.d.ts +3 -3
  714. package/dist/setup-tests.js +16 -13
  715. package/dist/tests/react-hydration.js +29 -30
  716. package/dist/tests/react-ssr-attributes.d.ts +1 -1
  717. package/dist/tests/react-ssr-attributes.js +4 -4
  718. package/dist/web-types.json +458 -256
  719. package/eik/index.js +20 -2460
  720. package/package.json +21 -129
  721. package/dist/packages/slider/Slider.d.ts +0 -2
  722. package/dist/packages/slider/Slider.js +0 -8
  723. package/dist/packages/slider-thumb/SliderThumb.d.ts +0 -2
  724. package/dist/packages/slider-thumb/SliderThumb.js +0 -8
@@ -1,175 +1,284 @@
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 { i18n } from "@lingui/core";
2
+ import { userEvent } from "vitest/browser";
3
+ import { html } from "lit";
4
+ import { expect, test, vi } from "vitest";
5
+ import { render } from "vitest-browser-lit";
6
+ import "./textarea.js";
7
+ import { messages } from "./locales/en/messages.mjs";
8
+ import { messages as nbMessages } from "./locales/nb/messages.mjs";
9
+ // Initialize i18n with English locale for tests
10
+ i18n.load("en", messages);
11
+ i18n.load("nb", nbMessages);
12
+ i18n.activate("en");
13
+ test("renders the textarea", async () => {
7
14
  const component = html `<w-textarea label="Test label"></w-textarea>`;
8
15
  const page = render(component);
9
- await expect.element(page.getByText('Test label')).toBeVisible();
16
+ await expect.element(page.getByText("Test label")).toBeVisible();
10
17
  });
11
- test('works as expected in forms', async () => {
12
- const label = 'Test label';
18
+ test("works as expected in forms", async () => {
19
+ const label = "Test label";
13
20
  const component = html `
14
- <form data-testid="form">
15
- <w-textarea label="${label}" name="message" value="Hola el Mundo"></w-textarea>
16
- </form>
17
- `;
21
+ <form data-testid="form">
22
+ <w-textarea
23
+ label="${label}"
24
+ name="message"
25
+ value="Hola el Mundo"
26
+ ></w-textarea>
27
+ </form>
28
+ `;
18
29
  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');
30
+ await expect.element(page.getByLabelText(label)).toHaveValue("Hola el Mundo");
31
+ let formData = new FormData(page.getByTestId("form").element());
32
+ expect(formData.get("message")).toBe("Hola el Mundo");
22
33
  const inputHandler = vi.fn();
23
34
  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');
35
+ page.getByLabelText(label).element().addEventListener("input", inputHandler);
36
+ page
37
+ .getByLabelText(label)
38
+ .element()
39
+ .addEventListener("change", changeHandler);
40
+ await page.getByLabelText(label).fill("Hello, World");
27
41
  expect(inputHandler).toHaveBeenCalled();
28
42
  expect(changeHandler).not.toHaveBeenCalled();
29
43
  await userEvent.tab(); // trigger a blur to fire the change event
30
44
  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');
45
+ await expect.element(page.getByLabelText(label)).toHaveValue("Hello, World");
46
+ formData = new FormData(page.getByTestId("form").element());
47
+ expect(formData.get("message")).toBe("Hello, World");
34
48
  });
35
- test('renders help text if provided', async () => {
36
- const component = html `<w-textarea label="Test label" help-text="Helpful help text"></w-textarea>`;
49
+ test("renders help text if provided", async () => {
50
+ const component = html `<w-textarea
51
+ label="Test label"
52
+ help-text="Helpful help text"
53
+ ></w-textarea>`;
37
54
  const page = render(component);
38
- await expect.element(page.getByText('Helpful help text')).toBeVisible();
55
+ await expect.element(page.getByText("Helpful help text")).toBeVisible();
39
56
  });
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>`;
57
+ test("marks input field as aria-invalid if the invalid prop is true", async () => {
58
+ const component = html `<w-textarea
59
+ label="Test label"
60
+ invalid
61
+ help-text="No, bad input!"
62
+ ></w-textarea>`;
42
63
  const page = render(component);
43
- await expect.element(page.getByLabelText('Test label')).toHaveAccessibleErrorMessage('No, bad input!');
64
+ await expect
65
+ .element(page.getByLabelText("Test label"))
66
+ .toHaveAccessibleErrorMessage("No, bad input!");
44
67
  });
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>`;
68
+ test("aria-invalid attribute is absent when textarea is valid", async () => {
69
+ const component = html `<w-textarea
70
+ label="Test label"
71
+ data-testid="textarea"
72
+ ></w-textarea>`;
47
73
  const page = render(component);
48
- const textarea = page.getByLabelText('Test label');
74
+ const textarea = page.getByLabelText("Test label");
49
75
  await expect.element(textarea).toBeVisible();
50
76
  // aria-invalid should NOT be present when valid
51
- await expect.element(textarea).not.toHaveAttribute('aria-invalid');
77
+ await expect.element(textarea).not.toHaveAttribute("aria-invalid");
52
78
  });
53
79
  test('aria-invalid attribute is "true" when textarea is invalid', async () => {
54
80
  const component = html `<w-textarea label="Test label" invalid></w-textarea>`;
55
81
  const page = render(component);
56
- const textarea = page.getByLabelText('Test label');
82
+ const textarea = page.getByLabelText("Test label");
57
83
  await expect.element(textarea).toBeVisible();
58
84
  // aria-invalid should be "true" when invalid
59
- await expect.element(textarea).toHaveAttribute('aria-invalid', 'true');
85
+ await expect.element(textarea).toHaveAttribute("aria-invalid", "true");
60
86
  });
61
- test('marks input field as readonly if the readonly prop is true', async () => {
87
+ test("marks input field as readonly if the readonly prop is true", async () => {
62
88
  const component = html `<w-textarea label="Test label" readonly></w-textarea>`;
63
89
  const page = render(component);
64
- await expect.element(page.getByLabelText('Test label')).toHaveAttribute('readonly', '');
90
+ await expect
91
+ .element(page.getByLabelText("Test label"))
92
+ .toHaveAttribute("readonly", "");
65
93
  });
66
- test('can reset textarea by resetting surrounding form', async () => {
94
+ test("can reset textarea by resetting surrounding form", async () => {
67
95
  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');
96
+ <form>
97
+ <w-textarea name="message" value="Hola el Mundo"></w-textarea>
98
+ </form>
99
+ `);
100
+ const form = document.querySelector("form");
101
+ const wTextArea = document.querySelector("w-textarea");
74
102
  // sanity
75
103
  expect(form).not.toBeNull();
76
104
  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');
105
+ await expect.poll(() => wTextArea.value).toBe("Hola el Mundo");
106
+ wTextArea.value = "Definitely not Hola el Mundo";
107
+ await expect.poll(() => wTextArea.value).toBe("Definitely not Hola el Mundo");
80
108
  // Reset the form
81
109
  form.reset();
82
- await expect.poll(() => wTextArea.value).toBe('Hola el Mundo');
110
+ await expect.poll(() => wTextArea.value).toBe("Hola el Mundo");
83
111
  });
84
- test('checkValidity returns false when required textarea is empty', async () => {
112
+ test("checkValidity returns false when required textarea is empty", async () => {
85
113
  render(html `<w-textarea label="Message" name="message" required></w-textarea>`);
86
- const wTextArea = document.querySelector('w-textarea');
114
+ const wTextArea = document.querySelector("w-textarea");
87
115
  // Wait for component to be ready
88
116
  await expect.poll(() => wTextArea.checkValidity()).toBe(false);
89
117
  expect(wTextArea.validity.valueMissing).toBe(true);
90
- expect(wTextArea.validationMessage).not.toBe('');
118
+ expect(wTextArea.validationMessage).not.toBe("");
91
119
  });
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');
120
+ test("checkValidity returns true when required textarea has a value", async () => {
121
+ render(html `<w-textarea
122
+ label="Message"
123
+ name="message"
124
+ required
125
+ value="Hello"
126
+ ></w-textarea>`);
127
+ const wTextArea = document.querySelector("w-textarea");
95
128
  // Wait for component to be ready
96
129
  await expect.poll(() => wTextArea.checkValidity()).toBe(true);
97
130
  expect(wTextArea.validity.valid).toBe(true);
98
131
  });
99
- test('form submission is blocked when required textarea is empty', async () => {
132
+ test("form submission is blocked when required textarea is empty", async () => {
100
133
  const submitHandler = vi.fn((e) => e.preventDefault());
101
134
  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');
135
+ <form data-testid="form">
136
+ <w-textarea label="Message" name="message" required></w-textarea>
137
+ <button type="submit">Submit</button>
138
+ </form>
139
+ `);
140
+ const form = document.querySelector("form");
141
+ form.addEventListener("submit", submitHandler);
142
+ const wTextArea = document.querySelector("w-textarea");
110
143
  // Wait for component to be ready
111
144
  await expect.poll(() => wTextArea.checkValidity()).toBe(false);
112
145
  // Try to submit - should be blocked by validation
113
- const submitButton = document.querySelector('button');
146
+ const submitButton = document.querySelector("button");
114
147
  submitButton.click();
115
148
  // Component should show invalid state with error message
116
149
  await expect.poll(() => wTextArea.invalid).toBe(true);
117
- await expect.poll(() => wTextArea.helpText).not.toBe('');
150
+ await expect.poll(() => wTextArea.helpText).not.toBe("");
118
151
  // Form should not have been submitted
119
152
  expect(submitHandler).not.toHaveBeenCalled();
120
153
  });
121
- test('form submission succeeds when required textarea has a value', async () => {
154
+ test("form submission succeeds when required textarea has a value", async () => {
122
155
  const submitHandler = vi.fn((e) => e.preventDefault());
123
156
  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');
157
+ <form data-testid="form">
158
+ <w-textarea
159
+ label="Message"
160
+ name="message"
161
+ required
162
+ value="Hello"
163
+ ></w-textarea>
164
+ <button type="submit">Submit</button>
165
+ </form>
166
+ `);
167
+ const form = document.querySelector("form");
168
+ form.addEventListener("submit", submitHandler);
169
+ const wTextArea = document.querySelector("w-textarea");
132
170
  // Wait for component to be ready
133
171
  await expect.poll(() => wTextArea.checkValidity()).toBe(true);
134
172
  // Submit should succeed
135
- const submitButton = document.querySelector('button');
173
+ const submitButton = document.querySelector("button");
136
174
  submitButton.click();
137
175
  // Form should have been submitted
138
176
  await expect.poll(() => submitHandler.mock.calls.length).toBeGreaterThan(0);
139
177
  });
140
- test('shows validation error on blur when required field is empty', async () => {
178
+ test("shows validation error on blur when required field is empty", async () => {
141
179
  const page = render(html `<w-textarea label="Message" name="message" required></w-textarea>`);
142
- const wTextArea = document.querySelector('w-textarea');
180
+ const wTextArea = document.querySelector("w-textarea");
143
181
  // Initially should not show error (no interaction yet)
144
182
  await expect.poll(() => wTextArea.invalid).toBeFalsy();
145
183
  // Focus and blur the textarea
146
- const textarea = page.getByLabelText('Message');
184
+ const textarea = page.getByLabelText("Message");
147
185
  await textarea.click();
148
186
  await userEvent.tab(); // blur
149
187
  // Should now show validation error
150
188
  await expect.poll(() => wTextArea.invalid).toBe(true);
151
- await expect.poll(() => wTextArea.helpText).not.toBe('');
189
+ await expect.poll(() => wTextArea.helpText).not.toBe("");
152
190
  });
153
- test('restores original help text when validation passes', async () => {
191
+ test("restores original help text when validation passes", async () => {
154
192
  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');
193
+ <w-textarea
194
+ label="Message"
195
+ name="message"
196
+ required
197
+ help-text="Enter your message"
198
+ ></w-textarea>
199
+ `);
200
+ const wTextArea = document.querySelector("w-textarea");
158
201
  // Initially should show original help text
159
- await expect.poll(() => wTextArea.helpText).toBe('Enter your message');
202
+ await expect.poll(() => wTextArea.helpText).toBe("Enter your message");
160
203
  // Focus and blur to trigger validation
161
- const textarea = page.getByLabelText('Message');
204
+ const textarea = page.getByLabelText("Message");
162
205
  await textarea.click();
163
206
  await userEvent.tab();
164
207
  // Should show validation error
165
208
  await expect.poll(() => wTextArea.invalid).toBe(true);
166
- await expect.poll(() => wTextArea.helpText).not.toBe('Enter your message');
209
+ await expect.poll(() => wTextArea.helpText).not.toBe("Enter your message");
167
210
  // Fill in a value
168
- wTextArea.value = 'Hello';
211
+ wTextArea.value = "Hello";
169
212
  await wTextArea.updateComplete;
170
213
  // Wait for value + validity to update, then restore original help text
171
- await expect.poll(() => wTextArea.value).toBe('Hello');
214
+ await expect.poll(() => wTextArea.value).toBe("Hello");
172
215
  await expect.poll(() => wTextArea.checkValidity()).toBe(true);
173
216
  await expect.poll(() => wTextArea.invalid).toBe(false);
174
- await expect.poll(() => wTextArea.helpText).toBe('Enter your message');
217
+ await expect.poll(() => wTextArea.helpText).toBe("Enter your message");
218
+ });
219
+ test("renders optional indicator as 'Optional' without parentheses", async () => {
220
+ const page = render(html `<w-textarea label="Message" optional></w-textarea>`);
221
+ await expect.element(page.getByText("Optional")).toBeVisible();
222
+ expect(page.getByText("(optional)").query()).toBeNull();
223
+ });
224
+ test("does not render optional indicator when both required and optional are set", async () => {
225
+ const page = render(html `<w-textarea label="Message" required optional></w-textarea>`);
226
+ await expect.element(page.getByText("Message")).toBeVisible();
227
+ expect(page.getByText("Optional").query()).toBeNull();
228
+ });
229
+ test("includes optional indicator in the accessible name", async () => {
230
+ const page = render(html `<w-textarea label="Message" optional></w-textarea>`);
231
+ await expect
232
+ .element(page.getByRole("textbox", { name: /Message.*Optional/ }))
233
+ .toBeVisible();
234
+ });
235
+ test("removes optional indicator when required is added dynamically", async () => {
236
+ const page = render(html `<w-textarea
237
+ label="Message"
238
+ optional
239
+ data-testid="field"
240
+ ></w-textarea>`);
241
+ await expect.element(page.getByText("Optional")).toBeVisible();
242
+ const el = page.getByTestId("field").element();
243
+ el.required = true;
244
+ await el.updateComplete;
245
+ expect(page.getByText("Optional").query()).toBeNull();
246
+ });
247
+ test("shows optional indicator when required is removed dynamically", async () => {
248
+ const page = render(html `<w-textarea
249
+ label="Message"
250
+ required
251
+ optional
252
+ data-testid="field"
253
+ ></w-textarea>`);
254
+ expect(page.getByText("Optional").query()).toBeNull();
255
+ const el = page.getByTestId("field").element();
256
+ el.required = false;
257
+ await el.updateComplete;
258
+ await expect.element(page.getByText("Optional")).toBeVisible();
259
+ });
260
+ test("does not render optional indicator when there is no label", async () => {
261
+ const page = render(html `<w-textarea aria-label="Message" optional></w-textarea>`);
262
+ await expect.element(page.getByLabelText("Message")).toBeVisible();
263
+ expect(page.getByText("Optional").query()).toBeNull();
264
+ });
265
+ test("excludes optional indicator from accessible name when required suppresses it", async () => {
266
+ const page = render(html `<w-textarea label="Message" required optional></w-textarea>`);
267
+ const textarea = page.getByRole("textbox", { name: "Message" });
268
+ await expect.element(textarea).toBeVisible();
269
+ // Verify "Optional" is not part of the accessible name
270
+ expect(page.getByRole("textbox", { name: /Optional/ }).query()).toBeNull();
271
+ });
272
+ test("renders localized optional text based on active locale", async () => {
273
+ const originalLang = document.documentElement.lang;
274
+ document.documentElement.lang = "nb";
275
+ const page = render(html `<w-textarea
276
+ label="Message"
277
+ optional
278
+ data-testid="field"
279
+ ></w-textarea>`);
280
+ const el = page.getByTestId("field").element();
281
+ await el.updateComplete;
282
+ await expect.element(page.getByText("Valgfri")).toBeVisible();
283
+ document.documentElement.lang = originalLang;
175
284
  });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Shared styles for input components (textfield, textarea, select)
3
+ * using the internal token pattern with a public styling API.
4
+ *
5
+ * Public API tokens (customizable):
6
+ * - Label: --w-c-input-label-*
7
+ * - Help text: --w-c-input-help-text-*
8
+ * - Optional indicator: --w-c-input-optional-*
9
+ */
10
+ export declare const inputLabelStyles: import("lit").CSSResult;
11
+ export declare const inputHelpTextStyles: import("lit").CSSResult;
@@ -0,0 +1,88 @@
1
+ import { css } from "lit";
2
+ /**
3
+ * Shared styles for input components (textfield, textarea, select)
4
+ * using the internal token pattern with a public styling API.
5
+ *
6
+ * Public API tokens (customizable):
7
+ * - Label: --w-c-input-label-*
8
+ * - Help text: --w-c-input-help-text-*
9
+ * - Optional indicator: --w-c-input-optional-*
10
+ */
11
+ export const inputLabelStyles = css `
12
+ /* Label component tokens with semantic fallbacks */
13
+ label {
14
+ /* Internal tokens - not part of public API */
15
+ --_color: var(--w-c-input-label-color, var(--w-s-color-text));
16
+ --_font-size: var(--w-c-input-label-font-size, var(--w-font-size-s));
17
+ --_line-height: var(--w-c-input-label-line-height, var(--w-line-height-s));
18
+ --_font-weight: var(--w-c-input-label-font-weight, 700);
19
+ --_padding-bottom: var(--w-c-input-label-padding-bottom, 0.4rem);
20
+ --_cursor: var(--w-c-input-label-cursor, pointer);
21
+ --_display: var(--w-c-input-label-display, block);
22
+
23
+ /* Apply styles */
24
+ display: var(--_display);
25
+ position: relative;
26
+ font-size: var(--_font-size);
27
+ line-height: var(--_line-height);
28
+ font-weight: var(--_font-weight);
29
+ padding-bottom: var(--_padding-bottom);
30
+ cursor: var(--_cursor);
31
+ color: var(--_color);
32
+ -webkit-font-smoothing: antialiased;
33
+ -moz-osx-font-smoothing: grayscale;
34
+ }
35
+
36
+ /* Optional text styling */
37
+ label span {
38
+ --_padding-left: var(--w-c-input-optional-padding-left, 0.8rem);
39
+ --_font-weight: var(--w-c-input-optional-font-weight, 400);
40
+ --_font-size: var(--w-c-input-optional-font-size, var(--w-font-size-s));
41
+ --_line-height: var(
42
+ --w-c-input-optional-line-height,
43
+ var(--w-line-height-s)
44
+ );
45
+ --_color: var(--w-c-input-optional-color, var(--w-s-color-text-subtle));
46
+
47
+ padding-left: var(--_padding-left);
48
+ font-weight: var(--_font-weight);
49
+ font-size: var(--_font-size);
50
+ line-height: var(--_line-height);
51
+ color: var(--_color);
52
+ }
53
+ `;
54
+ export const inputHelpTextStyles = css `
55
+ /* Help text component tokens with semantic fallbacks */
56
+ :host {
57
+ --_help-text-color: var(
58
+ --w-c-input-help-text-color,
59
+ var(--w-s-color-text-subtle)
60
+ );
61
+ --_help-text-font-size: var(
62
+ --w-c-input-help-text-font-size,
63
+ var(--w-font-size-xs)
64
+ );
65
+ --_help-text-line-height: var(
66
+ --w-c-input-help-text-line-height,
67
+ var(--w-line-height-xs)
68
+ );
69
+ --_help-text-margin-top: var(--w-c-input-help-text-margin-top, 0.4rem);
70
+ --_help-text-display: var(--w-c-input-help-text-display, block);
71
+ }
72
+
73
+ /* Invalid state overrides color */
74
+ :host([invalid]) {
75
+ --_help-text-color: var(
76
+ --w-c-input-help-text-color-invalid,
77
+ var(--w-s-color-text-negative)
78
+ );
79
+ }
80
+
81
+ .help-text {
82
+ font-size: var(--_help-text-font-size);
83
+ line-height: var(--_help-text-line-height);
84
+ margin-top: var(--_help-text-margin-top);
85
+ display: var(--_help-text-display);
86
+ color: var(--_help-text-color);
87
+ }
88
+ `;
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"textfield.label.optional\":[\"Valgfri\"]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"textfield.label.optional\":[\"Optional\"]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"textfield.label.optional\":[\"Valinnainen\"]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"textfield.label.optional\":[\"Valgfri\"]}");
@@ -0,0 +1 @@
1
+ export const messages: any;
@@ -0,0 +1 @@
1
+ /*eslint-disable*/ export const messages = JSON.parse("{\"textfield.label.optional\":[\"Valfritt\"]}");
@@ -1,14 +1,20 @@
1
- import React from 'react';
2
- import { WarpTextField } from './textfield.js';
3
- export declare const TextField: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpTextField>, "value" | "form" | "label" | "mask" | "pattern" | "name" | "size" | "disabled" | "invalid" | "helpText" | "max" | "min" | "minLength" | "minlength" | "maxLength" | "maxlength" | "placeholder" | "readOnly" | "readonly" | "required" | "type" | "step" | "autocomplete" | "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
- onBlur?: (e: Event) => void;
5
- onblur?: (e: Event) => void;
6
- onChange?: (e: Event) => void;
7
- onchange?: (e: Event) => void;
8
- onInput?: (e: Event) => void;
9
- oninput?: (e: Event) => void;
10
- onFocus?: (e: Event) => void;
11
- onfocus?: (e: Event) => void;
1
+ import React from "react";
2
+ import type { ChangeEventWithTarget, InputEventWithTarget } from "../types.js";
3
+ import type { WarpTextField } from "./textfield.js";
4
+ /**
5
+ * A single-line input component used for entering and editing textual or numeric data.
6
+ *
7
+ * [Warp component reference](https://warp-ds.github.io/docs/components/text-area/frameworks/elements)
8
+ */
9
+ export declare const TextField: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpTextField>, "autocomplete" | "name" | "type" | "disabled" | "invalid" | "label" | "helpText" | "optional" | "size" | "max" | "min" | "minLength" | "minlength" | "maxLength" | "maxlength" | "pattern" | "placeholder" | "readOnly" | "readonly" | "required" | "value" | "step" | "formatter" | "mask" | "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" | "form" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "onFocus" | "onBlur" | "onChange" | "onInput"> & {
10
+ onBlur?: ((e: FocusEvent) => void) | undefined;
11
+ onblur?: ((e: FocusEvent) => void) | undefined;
12
+ onChange?: ((e: ChangeEventWithTarget<HTMLInputElement>) => void) | undefined;
13
+ onchange?: ((e: ChangeEventWithTarget<HTMLInputElement>) => void) | undefined;
14
+ onInput?: ((e: InputEventWithTarget<HTMLInputElement>) => void) | undefined;
15
+ oninput?: ((e: InputEventWithTarget<HTMLInputElement>) => void) | undefined;
16
+ onFocus?: ((e: FocusEvent) => void) | undefined;
17
+ onfocus?: ((e: FocusEvent) => void) | undefined;
12
18
  } & Partial<Omit<WarpTextField, keyof HTMLElement>> & React.RefAttributes<WarpTextField>, "ref">, "help-text" | "min-length" | "max-length" | "read-only"> & {
13
19
  helpText?: string;
14
20
  minLength?: number;
@@ -1,30 +1,35 @@
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
+ /**
23
+ * A single-line input component used for entering and editing textual or numeric data.
24
+ *
25
+ * [Warp component reference](https://warp-ds.github.io/docs/components/text-area/frameworks/elements)
26
+ */
22
27
  export const TextField = React.forwardRef(({ helpText, minLength, maxLength, readOnly, ...props }, ref) => React.createElement(BaseTextField, {
23
28
  ...props,
24
- ...(helpText !== undefined ? { 'help-text': helpText } : {}),
25
- ...(minLength !== undefined ? { 'min-length': minLength } : {}),
26
- ...(maxLength !== undefined ? { 'max-length': maxLength } : {}),
27
- ...(readOnly ? { 'read-only': true } : {}),
29
+ ...(helpText !== undefined ? { "help-text": helpText } : {}),
30
+ ...(minLength !== undefined ? { "min-length": minLength } : {}),
31
+ ...(maxLength !== undefined ? { "max-length": maxLength } : {}),
32
+ ...(readOnly ? { "read-only": true } : {}),
28
33
  ref,
29
34
  }));
30
- TextField.displayName = 'TextField';
35
+ TextField.displayName = "TextField";
@@ -0,0 +1 @@
1
+ import "./textfield.js";
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ import { userEvent } from "vitest/browser";
3
+ import { render } from "vitest-browser-react";
4
+ import { expect, test, vi } from "vitest";
5
+ import { TextField } from "./react.js";
6
+ import "./textfield.js";
7
+ test("onChange and onInput have the expected types", async () => {
8
+ const onChange = vi.fn();
9
+ const onInput = vi.fn();
10
+ const page = await render(React.createElement(TextField, { name: "test", label: "React TextField", onChange: (e) => {
11
+ onChange(e.target.value);
12
+ }, onInput: (e) => {
13
+ onInput(e.target.value);
14
+ } }));
15
+ await page.getByLabelText("React TextField").fill("Hello, World");
16
+ expect(onInput).toHaveBeenCalled();
17
+ expect(onChange).not.toHaveBeenCalled();
18
+ await userEvent.tab(); // trigger a blur to fire the change event
19
+ expect(onChange).toHaveBeenCalledWith("Hello, World");
20
+ });