@warp-ds/elements 2.10.0-next.15 → 2.10.0-next.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/dist/.storybook/utilities.js +4 -4
  2. package/dist/api.js.map +2 -2
  3. package/dist/custom-elements.json +174 -56
  4. package/dist/docs/affix/affix.md +2 -2
  5. package/dist/docs/affix/api.md +2 -2
  6. package/dist/docs/alert/alert.md +4 -4
  7. package/dist/docs/alert/api.md +4 -4
  8. package/dist/docs/attention/api.md +2 -2
  9. package/dist/docs/attention/attention.md +2 -2
  10. package/dist/docs/badge/api.md +50 -4
  11. package/dist/docs/badge/badge.md +50 -4
  12. package/dist/docs/box/api.md +2 -2
  13. package/dist/docs/box/box.md +2 -2
  14. package/dist/docs/breadcrumb-item/api.md +27 -0
  15. package/dist/docs/breadcrumb-item/breadcrumb-item.md +34 -0
  16. package/dist/docs/breadcrumbs/accessibility.md +8 -18
  17. package/dist/docs/breadcrumbs/breadcrumbs.md +57 -34
  18. package/dist/docs/breadcrumbs/examples.md +8 -8
  19. package/dist/docs/breadcrumbs/styling.md +33 -0
  20. package/dist/docs/breadcrumbs/usage.md +8 -8
  21. package/dist/docs/checkbox/api.md +2 -2
  22. package/dist/docs/checkbox/checkbox.md +176 -2
  23. package/dist/docs/checkbox/styling.md +173 -0
  24. package/dist/docs/checkbox-group/checkbox-group.md +43 -30
  25. package/dist/docs/checkbox-group/styling.md +31 -29
  26. package/dist/docs/combobox/api.md +12 -12
  27. package/dist/docs/combobox/combobox.md +12 -12
  28. package/dist/docs/datepicker/api.md +6 -6
  29. package/dist/docs/datepicker/datepicker.md +6 -6
  30. package/dist/docs/icon/api.md +3 -3
  31. package/dist/docs/icon/icon.md +3 -3
  32. package/dist/docs/index.md +2 -1
  33. package/dist/docs/radio-group/api.md +4 -4
  34. package/dist/docs/radio-group/radio-group.md +183 -68
  35. package/dist/docs/radio-group/styling.md +179 -64
  36. package/dist/docs/snackbar/api.md +1 -1
  37. package/dist/docs/snackbar/snackbar.md +1 -1
  38. package/dist/docs/snackbar-item/api.md +2 -2
  39. package/dist/docs/snackbar-item/snackbar-item.md +2 -2
  40. package/dist/index.d.ts +109 -2
  41. package/dist/packages/affix/affix.d.ts +4 -4
  42. package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
  43. package/dist/packages/affix/affix.hydration.test.js +15 -15
  44. package/dist/packages/affix/affix.js +345 -315
  45. package/dist/packages/affix/affix.js.map +2 -2
  46. package/dist/packages/affix/affix.react.stories.d.ts +2 -2
  47. package/dist/packages/affix/affix.react.stories.js +3 -3
  48. package/dist/packages/affix/affix.react.test.js +5 -3
  49. package/dist/packages/affix/affix.stories.d.ts +3 -3
  50. package/dist/packages/affix/affix.stories.js +10 -10
  51. package/dist/packages/affix/affix.test.d.ts +1 -1
  52. package/dist/packages/affix/affix.test.js +10 -10
  53. package/dist/packages/affix/react.d.ts +2 -2
  54. package/dist/packages/affix/react.js +6 -6
  55. package/dist/packages/affix/styles.js +1 -1
  56. package/dist/packages/alert/alert.d.ts +3 -3
  57. package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
  58. package/dist/packages/alert/alert.hydration.test.js +21 -21
  59. package/dist/packages/alert/alert.js +344 -319
  60. package/dist/packages/alert/alert.js.map +2 -2
  61. package/dist/packages/alert/alert.react.stories.d.ts +2 -2
  62. package/dist/packages/alert/alert.react.stories.js +13 -13
  63. package/dist/packages/alert/alert.stories.d.ts +4 -4
  64. package/dist/packages/alert/alert.stories.js +29 -27
  65. package/dist/packages/alert/alert.test.d.ts +1 -1
  66. package/dist/packages/alert/alert.test.js +34 -21
  67. package/dist/packages/alert/react.d.ts +1 -1
  68. package/dist/packages/alert/react.js +4 -4
  69. package/dist/packages/alert/styles.js +1 -1
  70. package/dist/packages/attention/attention.d.ts +7 -7
  71. package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
  72. package/dist/packages/attention/attention.hydration.test.js +29 -29
  73. package/dist/packages/attention/attention.js +1725 -1683
  74. package/dist/packages/attention/attention.js.map +2 -2
  75. package/dist/packages/attention/attention.react.stories.d.ts +3 -3
  76. package/dist/packages/attention/attention.react.stories.js +13 -13
  77. package/dist/packages/attention/attention.react.test.js +11 -7
  78. package/dist/packages/attention/attention.stories.d.ts +4 -4
  79. package/dist/packages/attention/attention.stories.js +126 -117
  80. package/dist/packages/attention/attention.test.d.ts +1 -1
  81. package/dist/packages/attention/attention.test.js +18 -10
  82. package/dist/packages/attention/layout-styles.js +900 -900
  83. package/dist/packages/attention/react.d.ts +4 -4
  84. package/dist/packages/attention/react.js +13 -11
  85. package/dist/packages/attention/styles.js +1 -1
  86. package/dist/packages/badge/badge.d.ts +3 -3
  87. package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
  88. package/dist/packages/badge/badge.hydration.test.js +25 -25
  89. package/dist/packages/badge/badge.js +276 -276
  90. package/dist/packages/badge/badge.js.map +2 -2
  91. package/dist/packages/badge/badge.react.stories.d.ts +3 -3
  92. package/dist/packages/badge/badge.react.stories.js +17 -17
  93. package/dist/packages/badge/badge.stories.d.ts +3 -3
  94. package/dist/packages/badge/badge.stories.js +22 -20
  95. package/dist/packages/badge/badge.test.d.ts +1 -1
  96. package/dist/packages/badge/badge.test.js +13 -11
  97. package/dist/packages/badge/react.d.ts +1 -1
  98. package/dist/packages/badge/react.js +4 -4
  99. package/dist/packages/badge/styles.js +1 -1
  100. package/dist/packages/box/box.d.ts +1 -1
  101. package/dist/packages/box/box.hydration.test.d.ts +1 -1
  102. package/dist/packages/box/box.hydration.test.js +14 -14
  103. package/dist/packages/box/box.js +283 -283
  104. package/dist/packages/box/box.js.map +2 -2
  105. package/dist/packages/box/box.react.stories.d.ts +3 -3
  106. package/dist/packages/box/box.react.stories.js +8 -8
  107. package/dist/packages/box/box.stories.d.ts +3 -3
  108. package/dist/packages/box/box.stories.js +25 -19
  109. package/dist/packages/box/box.test.d.ts +1 -1
  110. package/dist/packages/box/box.test.js +6 -6
  111. package/dist/packages/box/react.d.ts +1 -1
  112. package/dist/packages/box/react.js +4 -4
  113. package/dist/packages/box/slot.test.d.ts +1 -1
  114. package/dist/packages/box/slot.test.js +6 -6
  115. package/dist/packages/box/styles.js +1 -1
  116. package/dist/packages/breadcrumb-item/breadcrumb-item.d.ts +29 -0
  117. package/dist/packages/breadcrumb-item/breadcrumb-item.js +2520 -0
  118. package/dist/packages/breadcrumb-item/breadcrumb-item.js.map +7 -0
  119. package/dist/packages/breadcrumb-item/react.d.ts +2 -0
  120. package/dist/packages/breadcrumb-item/react.js +11 -0
  121. package/dist/packages/breadcrumb-item/styles.d.ts +4 -0
  122. package/dist/packages/breadcrumb-item/styles.js +72 -0
  123. package/dist/packages/breadcrumbs/breadcrumbs.d.ts +3 -1
  124. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
  125. package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +55 -49
  126. package/dist/packages/breadcrumbs/breadcrumbs.js +285 -281
  127. package/dist/packages/breadcrumbs/breadcrumbs.js.map +3 -3
  128. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +3 -3
  129. package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +17 -16
  130. package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +7 -8
  131. package/dist/packages/breadcrumbs/breadcrumbs.stories.js +30 -26
  132. package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
  133. package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
  134. package/dist/packages/breadcrumbs/react.d.ts +1 -1
  135. package/dist/packages/breadcrumbs/react.js +4 -4
  136. package/dist/packages/breadcrumbs/styles.js +1 -1
  137. package/dist/packages/button/button.d.ts +5 -5
  138. package/dist/packages/button/button.hydration.test.d.ts +1 -1
  139. package/dist/packages/button/button.hydration.test.js +19 -19
  140. package/dist/packages/button/button.js +741 -715
  141. package/dist/packages/button/button.js.map +2 -2
  142. package/dist/packages/button/button.react.stories.d.ts +3 -3
  143. package/dist/packages/button/button.react.stories.js +30 -30
  144. package/dist/packages/button/button.react.test.js +13 -13
  145. package/dist/packages/button/button.stories.d.ts +4 -4
  146. package/dist/packages/button/button.stories.js +276 -167
  147. package/dist/packages/button/button.test.d.ts +1 -1
  148. package/dist/packages/button/button.test.js +36 -34
  149. package/dist/packages/button/react.d.ts +2 -2
  150. package/dist/packages/button/react.js +7 -7
  151. package/dist/packages/button/styles.js +373 -347
  152. package/dist/packages/card/card.d.ts +1 -1
  153. package/dist/packages/card/card.hydration.test.d.ts +1 -1
  154. package/dist/packages/card/card.hydration.test.js +14 -14
  155. package/dist/packages/card/card.js +305 -290
  156. package/dist/packages/card/card.js.map +2 -2
  157. package/dist/packages/card/card.react.stories.d.ts +3 -3
  158. package/dist/packages/card/card.react.stories.js +11 -11
  159. package/dist/packages/card/card.stories.d.ts +3 -3
  160. package/dist/packages/card/card.stories.js +36 -24
  161. package/dist/packages/card/card.test.d.ts +1 -1
  162. package/dist/packages/card/card.test.js +6 -6
  163. package/dist/packages/card/react.d.ts +1 -1
  164. package/dist/packages/card/react.js +4 -4
  165. package/dist/packages/card/styles.js +1 -1
  166. package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
  167. package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
  168. package/dist/packages/checkbox/checkbox.d.ts +2 -2
  169. package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
  170. package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
  171. package/dist/packages/checkbox/checkbox.js +475 -424
  172. package/dist/packages/checkbox/checkbox.js.map +2 -2
  173. package/dist/packages/checkbox/checkbox.react.stories.d.ts +2 -2
  174. package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
  175. package/dist/packages/checkbox/checkbox.stories.d.ts +4 -4
  176. package/dist/packages/checkbox/checkbox.stories.js +99 -91
  177. package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
  178. package/dist/packages/checkbox/checkbox.test.js +64 -64
  179. package/dist/packages/checkbox/react.d.ts +1 -1
  180. package/dist/packages/checkbox/react.js +6 -6
  181. package/dist/packages/checkbox/styles.js +183 -132
  182. package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
  183. package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
  184. package/dist/packages/checkbox-group/checkbox-group.d.ts +16 -2
  185. package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
  186. package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
  187. package/dist/packages/checkbox-group/checkbox-group.js +60 -55
  188. package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
  189. package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
  190. package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
  191. package/dist/packages/checkbox-group/checkbox-group.test.js +96 -90
  192. package/dist/packages/checkbox-group/react.d.ts +2 -2
  193. package/dist/packages/checkbox-group/react.js +6 -6
  194. package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
  195. package/dist/packages/combobox/combobox.a11y.test.js +72 -49
  196. package/dist/packages/combobox/combobox.d.ts +2 -2
  197. package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
  198. package/dist/packages/combobox/combobox.hydration.test.js +45 -45
  199. package/dist/packages/combobox/combobox.js +332 -332
  200. package/dist/packages/combobox/combobox.js.map +3 -3
  201. package/dist/packages/combobox/combobox.react.stories.d.ts +3 -3
  202. package/dist/packages/combobox/combobox.react.stories.js +29 -29
  203. package/dist/packages/combobox/combobox.react.test.js +8 -8
  204. package/dist/packages/combobox/combobox.stories.d.ts +4 -4
  205. package/dist/packages/combobox/combobox.stories.js +100 -94
  206. package/dist/packages/combobox/combobox.test.d.ts +2 -2
  207. package/dist/packages/combobox/combobox.test.js +148 -133
  208. package/dist/packages/combobox/react.d.ts +2 -2
  209. package/dist/packages/combobox/react.js +14 -14
  210. package/dist/packages/combobox/styles.js +1 -1
  211. package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
  212. package/dist/packages/datepicker/DatePicker.test.js +46 -41
  213. package/dist/packages/datepicker/datepicker.d.ts +3 -3
  214. package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
  215. package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
  216. package/dist/packages/datepicker/datepicker.js +665 -625
  217. package/dist/packages/datepicker/datepicker.js.map +3 -3
  218. package/dist/packages/datepicker/datepicker.react.stories.d.ts +3 -3
  219. package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
  220. package/dist/packages/datepicker/datepicker.react.test.js +6 -6
  221. package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
  222. package/dist/packages/datepicker/datepicker.stories.js +32 -32
  223. package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
  224. package/dist/packages/datepicker/datepicker.test.js +77 -79
  225. package/dist/packages/datepicker/react.d.ts +2 -2
  226. package/dist/packages/datepicker/react.js +16 -14
  227. package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
  228. package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
  229. package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
  230. package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
  231. package/dist/packages/datepicker/utils.d.ts +1 -1
  232. package/dist/packages/datepicker/utils.js +25 -19
  233. package/dist/packages/datepicker/utils.test.js +20 -20
  234. package/dist/packages/expandable/expandable.d.ts +4 -4
  235. package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
  236. package/dist/packages/expandable/expandable.hydration.test.js +21 -21
  237. package/dist/packages/expandable/expandable.js +353 -326
  238. package/dist/packages/expandable/expandable.js.map +2 -2
  239. package/dist/packages/expandable/expandable.react.stories.d.ts +3 -3
  240. package/dist/packages/expandable/expandable.react.stories.js +7 -7
  241. package/dist/packages/expandable/expandable.react.test.js +15 -7
  242. package/dist/packages/expandable/expandable.stories.d.ts +5 -5
  243. package/dist/packages/expandable/expandable.stories.js +51 -45
  244. package/dist/packages/expandable/expandable.test.d.ts +1 -1
  245. package/dist/packages/expandable/expandable.test.js +19 -17
  246. package/dist/packages/expandable/react.d.ts +2 -2
  247. package/dist/packages/expandable/react.js +9 -9
  248. package/dist/packages/expandable/styles.js +1 -1
  249. package/dist/packages/global.js +2 -2
  250. package/dist/packages/i18n.d.ts +1 -1
  251. package/dist/packages/i18n.js +37 -29
  252. package/dist/packages/icon/icon.d.ts +3 -3
  253. package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
  254. package/dist/packages/icon/icon.hydration.test.js +25 -25
  255. package/dist/packages/icon/icon.js +30 -25
  256. package/dist/packages/icon/icon.js.map +2 -2
  257. package/dist/packages/icon/icon.react.stories.d.ts +1 -1
  258. package/dist/packages/icon/icon.react.stories.js +283 -284
  259. package/dist/packages/icon/icon.stories.d.ts +3 -3
  260. package/dist/packages/icon/icon.stories.js +299 -298
  261. package/dist/packages/icon/icon.test.d.ts +1 -1
  262. package/dist/packages/icon/icon.test.js +36 -28
  263. package/dist/packages/icon/react.d.ts +1 -1
  264. package/dist/packages/icon/react.js +4 -4
  265. package/dist/packages/icon/style.js +24 -25
  266. package/dist/packages/interaction-type-detection.js +9 -9
  267. package/dist/packages/link/link.d.ts +2 -2
  268. package/dist/packages/link/link.hydration.test.d.ts +1 -1
  269. package/dist/packages/link/link.hydration.test.js +27 -27
  270. package/dist/packages/link/link.js +709 -683
  271. package/dist/packages/link/link.js.map +2 -2
  272. package/dist/packages/link/link.react.stories.d.ts +3 -3
  273. package/dist/packages/link/link.react.stories.js +42 -42
  274. package/dist/packages/link/link.react.test.js +5 -3
  275. package/dist/packages/link/link.stories.d.ts +3 -3
  276. package/dist/packages/link/link.stories.js +51 -51
  277. package/dist/packages/link/link.test.d.ts +1 -1
  278. package/dist/packages/link/link.test.js +11 -7
  279. package/dist/packages/link/react.d.ts +2 -2
  280. package/dist/packages/link/react.js +6 -6
  281. package/dist/packages/link/styles.js +57 -57
  282. package/dist/packages/modal/index.d.ts +7 -7
  283. package/dist/packages/modal/index.js +7 -7
  284. package/dist/packages/modal/modal.d.ts +1 -1
  285. package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
  286. package/dist/packages/modal/modal.hydration.test.js +12 -12
  287. package/dist/packages/modal/modal.js +404 -404
  288. package/dist/packages/modal/modal.js.map +2 -2
  289. package/dist/packages/modal/modal.react.stories.d.ts +3 -3
  290. package/dist/packages/modal/modal.react.stories.js +7 -6
  291. package/dist/packages/modal/modal.react.test.js +5 -5
  292. package/dist/packages/modal/modal.stories.d.ts +6 -6
  293. package/dist/packages/modal/modal.stories.js +253 -238
  294. package/dist/packages/modal/react.d.ts +4 -4
  295. package/dist/packages/modal/react.js +13 -13
  296. package/dist/packages/modal/util.js +2 -2
  297. package/dist/packages/modal-footer/modal-footer.d.ts +1 -1
  298. package/dist/packages/modal-footer/modal-footer.js +291 -291
  299. package/dist/packages/modal-footer/modal-footer.js.map +2 -2
  300. package/dist/packages/modal-footer/react.d.ts +1 -1
  301. package/dist/packages/modal-footer/react.js +4 -4
  302. package/dist/packages/modal-header/modal-header.d.ts +2 -2
  303. package/dist/packages/modal-header/modal-header.js +437 -416
  304. package/dist/packages/modal-header/modal-header.js.map +2 -2
  305. package/dist/packages/modal-header/modal-header.react.test.js +5 -3
  306. package/dist/packages/modal-header/react.d.ts +2 -2
  307. package/dist/packages/modal-header/react.js +8 -8
  308. package/dist/packages/page-indicator/page-indicator.d.ts +1 -1
  309. package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
  310. package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
  311. package/dist/packages/page-indicator/page-indicator.js +26 -26
  312. package/dist/packages/page-indicator/page-indicator.js.map +2 -2
  313. package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
  314. package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
  315. package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
  316. package/dist/packages/page-indicator/page-indicator.stories.d.ts +3 -3
  317. package/dist/packages/page-indicator/page-indicator.stories.js +56 -27
  318. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
  319. package/dist/packages/page-indicator/page-indicator.test.js +110 -70
  320. package/dist/packages/page-indicator/react.d.ts +2 -2
  321. package/dist/packages/page-indicator/react.js +7 -7
  322. package/dist/packages/page-indicator/style.js +21 -21
  323. package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
  324. package/dist/packages/pagination/pagination.a11y.test.js +59 -25
  325. package/dist/packages/pagination/pagination.d.ts +3 -3
  326. package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
  327. package/dist/packages/pagination/pagination.hydration.test.js +19 -19
  328. package/dist/packages/pagination/pagination.js +380 -349
  329. package/dist/packages/pagination/pagination.js.map +2 -2
  330. package/dist/packages/pagination/pagination.react.stories.d.ts +7 -7
  331. package/dist/packages/pagination/pagination.react.stories.js +8 -8
  332. package/dist/packages/pagination/pagination.react.test.js +6 -6
  333. package/dist/packages/pagination/pagination.stories.d.ts +3 -3
  334. package/dist/packages/pagination/pagination.stories.js +18 -18
  335. package/dist/packages/pagination/pagination.test.d.ts +1 -1
  336. package/dist/packages/pagination/pagination.test.js +146 -69
  337. package/dist/packages/pagination/react.d.ts +4 -4
  338. package/dist/packages/pagination/react.js +12 -10
  339. package/dist/packages/pagination/styles.js +1 -1
  340. package/dist/packages/pill/pill.d.ts +2 -2
  341. package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
  342. package/dist/packages/pill/pill.hydration.test.js +14 -14
  343. package/dist/packages/pill/pill.js +331 -308
  344. package/dist/packages/pill/pill.js.map +2 -2
  345. package/dist/packages/pill/pill.react.stories.d.ts +3 -3
  346. package/dist/packages/pill/pill.react.stories.js +3 -3
  347. package/dist/packages/pill/pill.react.test.js +8 -8
  348. package/dist/packages/pill/pill.stories.d.ts +3 -3
  349. package/dist/packages/pill/pill.stories.js +8 -8
  350. package/dist/packages/pill/pill.test.d.ts +1 -1
  351. package/dist/packages/pill/pill.test.js +17 -15
  352. package/dist/packages/pill/react.d.ts +2 -2
  353. package/dist/packages/pill/react.js +18 -14
  354. package/dist/packages/pill/styles.js +1 -1
  355. package/dist/packages/radio/base-element.d.ts +3 -3
  356. package/dist/packages/radio/base-element.js +3 -3
  357. package/dist/packages/radio/custom-error-validator.d.ts +1 -1
  358. package/dist/packages/radio/custom-error-validator.js +3 -3
  359. package/dist/packages/radio/form-associated-element.d.ts +8 -8
  360. package/dist/packages/radio/form-associated-element.js +27 -26
  361. package/dist/packages/radio/host-styles.js +9 -9
  362. package/dist/packages/radio/invalid.d.ts +1 -1
  363. package/dist/packages/radio/invalid.js +1 -1
  364. package/dist/packages/radio/radio-styles.js +199 -160
  365. package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
  366. package/dist/packages/radio/radio.a11y.test.js +60 -58
  367. package/dist/packages/radio/radio.d.ts +3 -3
  368. package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
  369. package/dist/packages/radio/radio.hydration.test.js +23 -14
  370. package/dist/packages/radio/radio.js +485 -446
  371. package/dist/packages/radio/radio.js.map +3 -3
  372. package/dist/packages/radio/radio.react.stories.d.ts +2 -2
  373. package/dist/packages/radio/radio.react.stories.js +3 -3
  374. package/dist/packages/radio/radio.stories.d.ts +4 -4
  375. package/dist/packages/radio/radio.stories.js +152 -136
  376. package/dist/packages/radio/radio.test.d.ts +1 -1
  377. package/dist/packages/radio/radio.test.js +74 -73
  378. package/dist/packages/radio/react.d.ts +1 -1
  379. package/dist/packages/radio/react.js +4 -4
  380. package/dist/packages/radio/required-validator.d.ts +1 -1
  381. package/dist/packages/radio/required-validator.js +12 -7
  382. package/dist/packages/radio/slot.d.ts +1 -1
  383. package/dist/packages/radio/slot.js +11 -8
  384. package/dist/packages/radio/watch.d.ts +1 -1
  385. package/dist/packages/radio/watch.js +3 -1
  386. package/dist/packages/radio-group/radio-group-styles.js +121 -88
  387. package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
  388. package/dist/packages/radio-group/radio-group.a11y.test.js +81 -79
  389. package/dist/packages/radio-group/radio-group.d.ts +14 -5
  390. package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
  391. package/dist/packages/radio-group/radio-group.hydration.test.js +29 -18
  392. package/dist/packages/radio-group/radio-group.js +648 -560
  393. package/dist/packages/radio-group/radio-group.js.map +3 -3
  394. package/dist/packages/radio-group/radio-group.react.test.js +4 -4
  395. package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
  396. package/dist/packages/radio-group/radio-group.test.js +234 -229
  397. package/dist/packages/radio-group/react.d.ts +2 -2
  398. package/dist/packages/radio-group/react.js +10 -10
  399. package/dist/packages/select/react.d.ts +2 -2
  400. package/dist/packages/select/react.js +11 -11
  401. package/dist/packages/select/select.a11y.test.d.ts +1 -1
  402. package/dist/packages/select/select.a11y.test.js +98 -91
  403. package/dist/packages/select/select.d.ts +4 -4
  404. package/dist/packages/select/select.hydration.test.d.ts +1 -1
  405. package/dist/packages/select/select.hydration.test.js +16 -16
  406. package/dist/packages/select/select.js +348 -329
  407. package/dist/packages/select/select.js.map +2 -2
  408. package/dist/packages/select/select.react.stories.d.ts +3 -3
  409. package/dist/packages/select/select.react.stories.js +7 -7
  410. package/dist/packages/select/select.react.test.js +6 -6
  411. package/dist/packages/select/select.stories.d.ts +3 -3
  412. package/dist/packages/select/select.stories.js +51 -48
  413. package/dist/packages/select/select.test.d.ts +1 -1
  414. package/dist/packages/select/select.test.js +175 -178
  415. package/dist/packages/select/styles.js +1 -1
  416. package/dist/packages/slider/Slider.d.ts +1 -1
  417. package/dist/packages/slider/Slider.js +4 -4
  418. package/dist/packages/slider/index.d.ts +2 -2
  419. package/dist/packages/slider/index.js +2 -2
  420. package/dist/packages/slider/react.d.ts +3 -3
  421. package/dist/packages/slider/react.js +9 -9
  422. package/dist/packages/slider/slider.d.ts +3 -3
  423. package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
  424. package/dist/packages/slider/slider.hydration.test.js +39 -20
  425. package/dist/packages/slider/slider.js +480 -462
  426. package/dist/packages/slider/slider.js.map +2 -2
  427. package/dist/packages/slider/slider.react.stories.d.ts +3 -3
  428. package/dist/packages/slider/slider.react.stories.js +31 -34
  429. package/dist/packages/slider/slider.react.test.js +6 -6
  430. package/dist/packages/slider/slider.stories.d.ts +7 -7
  431. package/dist/packages/slider/slider.stories.js +332 -340
  432. package/dist/packages/slider/slider.test.d.ts +5 -5
  433. package/dist/packages/slider/slider.test.js +367 -334
  434. package/dist/packages/slider/styles/w-slider.styles.js +166 -148
  435. package/dist/packages/slider/styles.js +1 -1
  436. package/dist/packages/slider-thumb/SliderThumb.d.ts +1 -1
  437. package/dist/packages/slider-thumb/SliderThumb.js +4 -4
  438. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
  439. package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
  440. package/dist/packages/slider-thumb/react.d.ts +3 -3
  441. package/dist/packages/slider-thumb/react.js +11 -9
  442. package/dist/packages/slider-thumb/slider-thumb.d.ts +3 -3
  443. package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
  444. package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
  445. package/dist/packages/slider-thumb/slider-thumb.js +545 -548
  446. package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
  447. package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
  448. package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
  449. package/dist/packages/slider-thumb/styles.js +1 -1
  450. package/dist/packages/snackbar/react.d.ts +1 -1
  451. package/dist/packages/snackbar/react.js +4 -4
  452. package/dist/packages/snackbar/snackbar.d.ts +3 -3
  453. package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -1
  454. package/dist/packages/snackbar/snackbar.hydration.test.js +6 -6
  455. package/dist/packages/snackbar/snackbar.js +487 -468
  456. package/dist/packages/snackbar/snackbar.js.map +2 -2
  457. package/dist/packages/snackbar/snackbar.react.stories.js +3 -3
  458. package/dist/packages/snackbar/snackbar.stories.d.ts +11 -11
  459. package/dist/packages/snackbar/snackbar.stories.js +253 -181
  460. package/dist/packages/snackbar/snackbar.test.d.ts +4 -4
  461. package/dist/packages/snackbar/snackbar.test.js +11 -11
  462. package/dist/packages/snackbar/styles.js +29 -29
  463. package/dist/packages/snackbar-item/react.d.ts +2 -2
  464. package/dist/packages/snackbar-item/react.js +6 -5
  465. package/dist/packages/snackbar-item/snackbar-item.d.ts +4 -4
  466. package/dist/packages/snackbar-item/snackbar-item.js +454 -435
  467. package/dist/packages/snackbar-item/snackbar-item.js.map +2 -2
  468. package/dist/packages/snackbar-item/snackbar-item.react.test.js +4 -4
  469. package/dist/packages/snackbar-item/styles.js +130 -108
  470. package/dist/packages/step/react.d.ts +1 -1
  471. package/dist/packages/step/react.js +4 -4
  472. package/dist/packages/step/step.d.ts +2 -2
  473. package/dist/packages/step/step.hydration.test.d.ts +1 -1
  474. package/dist/packages/step/step.hydration.test.js +10 -10
  475. package/dist/packages/step/step.js +330 -308
  476. package/dist/packages/step/step.js.map +2 -2
  477. package/dist/packages/step-indicator/index.d.ts +2 -2
  478. package/dist/packages/step-indicator/index.js +2 -2
  479. package/dist/packages/step-indicator/react.d.ts +2 -2
  480. package/dist/packages/step-indicator/react.js +5 -5
  481. package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
  482. package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
  483. package/dist/packages/step-indicator/step-indicator.d.ts +1 -1
  484. package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
  485. package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
  486. package/dist/packages/step-indicator/step-indicator.js +280 -276
  487. package/dist/packages/step-indicator/step-indicator.js.map +2 -2
  488. package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
  489. package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
  490. package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
  491. package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
  492. package/dist/packages/step-indicator/styles.js +1 -1
  493. package/dist/packages/styles.js +274 -274
  494. package/dist/packages/switch/react.d.ts +1 -1
  495. package/dist/packages/switch/react.js +6 -6
  496. package/dist/packages/switch/styles.js +1 -1
  497. package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
  498. package/dist/packages/switch/switch.a11y.test.js +46 -38
  499. package/dist/packages/switch/switch.d.ts +1 -1
  500. package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
  501. package/dist/packages/switch/switch.hydration.test.js +23 -23
  502. package/dist/packages/switch/switch.js +299 -299
  503. package/dist/packages/switch/switch.js.map +2 -2
  504. package/dist/packages/switch/switch.react.stories.d.ts +2 -2
  505. package/dist/packages/switch/switch.react.stories.js +2 -2
  506. package/dist/packages/switch/switch.stories.d.ts +2 -2
  507. package/dist/packages/switch/switch.stories.js +42 -37
  508. package/dist/packages/switch/switch.test.d.ts +1 -1
  509. package/dist/packages/switch/switch.test.js +30 -35
  510. package/dist/packages/tab/react.d.ts +6 -4
  511. package/dist/packages/tab/react.js +11 -10
  512. package/dist/packages/tab/styles.d.ts +1 -0
  513. package/dist/packages/tab/styles.js +2 -0
  514. package/dist/packages/tab/tab.d.ts +5 -5
  515. package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
  516. package/dist/packages/tab/tab.hydration.test.js +18 -12
  517. package/dist/packages/tab/tab.js +305 -304
  518. package/dist/packages/tab/tab.js.map +3 -3
  519. package/dist/packages/tab/tab.react.test.js +5 -3
  520. package/dist/packages/tab-panel/react.d.ts +3 -2
  521. package/dist/packages/tab-panel/react.js +11 -5
  522. package/dist/packages/tab-panel/tab-panel.d.ts +3 -3
  523. package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
  524. package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
  525. package/dist/packages/tab-panel/tab-panel.js +289 -287
  526. package/dist/packages/tab-panel/tab-panel.js.map +2 -2
  527. package/dist/packages/tabs/index.d.ts +4 -4
  528. package/dist/packages/tabs/index.js +3 -3
  529. package/dist/packages/tabs/react.d.ts +27 -8
  530. package/dist/packages/tabs/react.js +30 -9
  531. package/dist/packages/tabs/styles.js +1 -1
  532. package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
  533. package/dist/packages/tabs/tabs.a11y.test.js +188 -169
  534. package/dist/packages/tabs/tabs.d.ts +3 -3
  535. package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
  536. package/dist/packages/tabs/tabs.hydration.test.js +22 -8
  537. package/dist/packages/tabs/tabs.js +289 -282
  538. package/dist/packages/tabs/tabs.js.map +2 -2
  539. package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
  540. package/dist/packages/tabs/tabs.react.stories.js +28 -28
  541. package/dist/packages/tabs/tabs.stories.d.ts +4 -4
  542. package/dist/packages/tabs/tabs.stories.js +101 -95
  543. package/dist/packages/tabs/tabs.test.d.ts +3 -3
  544. package/dist/packages/tabs/tabs.test.js +136 -122
  545. package/dist/packages/textarea/react.d.ts +2 -2
  546. package/dist/packages/textarea/react.js +17 -17
  547. package/dist/packages/textarea/styles.js +1 -1
  548. package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
  549. package/dist/packages/textarea/textarea.a11y.test.js +89 -57
  550. package/dist/packages/textarea/textarea.d.ts +1 -1
  551. package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
  552. package/dist/packages/textarea/textarea.hydration.test.js +19 -19
  553. package/dist/packages/textarea/textarea.js +300 -298
  554. package/dist/packages/textarea/textarea.js.map +2 -2
  555. package/dist/packages/textarea/textarea.react.stories.d.ts +3 -3
  556. package/dist/packages/textarea/textarea.react.stories.js +13 -13
  557. package/dist/packages/textarea/textarea.react.test.js +7 -7
  558. package/dist/packages/textarea/textarea.stories.d.ts +3 -3
  559. package/dist/packages/textarea/textarea.stories.js +44 -42
  560. package/dist/packages/textarea/textarea.test.d.ts +1 -1
  561. package/dist/packages/textarea/textarea.test.js +124 -88
  562. package/dist/packages/textfield/react.d.ts +2 -2
  563. package/dist/packages/textfield/react.js +17 -17
  564. package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
  565. package/dist/packages/textfield/styles.js +1 -1
  566. package/dist/packages/textfield/textfield.d.ts +3 -3
  567. package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
  568. package/dist/packages/textfield/textfield.hydration.test.js +19 -19
  569. package/dist/packages/textfield/textfield.js +376 -368
  570. package/dist/packages/textfield/textfield.js.map +3 -3
  571. package/dist/packages/textfield/textfield.react.stories.d.ts +3 -3
  572. package/dist/packages/textfield/textfield.react.stories.js +31 -31
  573. package/dist/packages/textfield/textfield.react.test.js +7 -7
  574. package/dist/packages/textfield/textfield.stories.d.ts +4 -4
  575. package/dist/packages/textfield/textfield.stories.js +107 -89
  576. package/dist/packages/textfield/textfield.test.d.ts +2 -2
  577. package/dist/packages/textfield/textfield.test.js +103 -71
  578. package/dist/packages/toast/api.d.ts +1 -1
  579. package/dist/packages/toast/api.js +3 -3
  580. package/dist/packages/toast/index.d.ts +5 -5
  581. package/dist/packages/toast/index.js +5 -5
  582. package/dist/packages/toast/styles.js +1 -1
  583. package/dist/packages/toast/toast.d.ts +4 -4
  584. package/dist/packages/toast/toast.js +346 -317
  585. package/dist/packages/toast/toast.js.map +2 -2
  586. package/dist/packages/toast/toast.stories.d.ts +4 -4
  587. package/dist/packages/toast/toast.stories.js +37 -16
  588. package/dist/packages/toast/toast.test.d.ts +1 -1
  589. package/dist/packages/toast/toast.test.js +48 -31
  590. package/dist/packages/toast/types.d.ts +1 -1
  591. package/dist/packages/toast-container/styles.js +1 -1
  592. package/dist/packages/toast-container/toast-container.d.ts +2 -2
  593. package/dist/packages/toast-container/toast-container.js +292 -291
  594. package/dist/packages/toast-container/toast-container.js.map +3 -3
  595. package/dist/packages/utils/element-collapse.js +38 -28
  596. package/dist/packages/utils/expand-transition.d.ts +1 -1
  597. package/dist/packages/utils/expand-transition.js +12 -10
  598. package/dist/packages/utils/unstyled-heading.d.ts +1 -1
  599. package/dist/packages/utils/unstyled-heading.js +4 -4
  600. package/dist/packages/utils/window-exists.js +1 -1
  601. package/dist/packages/utils.js +2 -2
  602. package/dist/setup-tests.d.ts +3 -3
  603. package/dist/setup-tests.js +16 -13
  604. package/dist/tests/react-hydration.js +29 -30
  605. package/dist/tests/react-ssr-attributes.d.ts +1 -1
  606. package/dist/tests/react-ssr-attributes.js +4 -4
  607. package/dist/web-types.json +61 -22
  608. package/eik/index.js +12 -12
  609. package/package.json +18 -16
@@ -1,246 +1,261 @@
1
- import { html } from 'lit';
2
- import { expect, test } from 'vitest';
3
- import { render } from 'vitest-browser-lit';
4
- import '../textfield/textfield.js';
5
- import './combobox.js';
1
+ import { html } from "lit";
2
+ import { expect, test } from "vitest";
3
+ import { render } from "vitest-browser-lit";
4
+ import "../textfield/textfield.js";
5
+ import "./combobox.js";
6
6
  test('renders with autocomplete="off" on inner textfield when attribute not provided', async () => {
7
7
  const component = html `<w-combobox data-testid="combobox"></w-combobox>`;
8
8
  const page = render(component);
9
- const locator = page.getByTestId('combobox');
9
+ const locator = page.getByTestId("combobox");
10
10
  await expect.element(locator).toBeVisible();
11
11
  const el = (await locator.element());
12
12
  // The autocomplete attribute is not reflected on the outer element to avoid hydration mismatches
13
13
  // Instead, check that the inner textfield receives the correct default value
14
- const textfield = el.shadowRoot?.querySelector('w-textfield');
15
- expect(textfield?.autocomplete).toBe('off');
14
+ const textfield = el.shadowRoot?.querySelector("w-textfield");
15
+ expect(textfield?.autocomplete).toBe("off");
16
16
  });
17
- test('renders with autocomplete attribute when provided', async () => {
18
- const component = html `<w-combobox data-testid="combobox" autocomplete="on"></w-combobox>`;
17
+ test("renders with autocomplete attribute when provided", async () => {
18
+ const component = html `<w-combobox
19
+ data-testid="combobox"
20
+ autocomplete="on"
21
+ ></w-combobox>`;
19
22
  const page = render(component);
20
- const locator = page.getByTestId('combobox');
23
+ const locator = page.getByTestId("combobox");
21
24
  await expect.element(locator).toBeVisible();
22
25
  const el = (await locator.element());
23
- expect(el.getAttribute('autocomplete')).toBe('on');
26
+ expect(el.getAttribute("autocomplete")).toBe("on");
24
27
  });
25
- test('displays initial value correctly when value prop is set', async () => {
28
+ test("displays initial value correctly when value prop is set", async () => {
26
29
  const options = [
27
- { value: 'apple', label: 'Apple' },
28
- { value: 'banana', label: 'Banana' },
30
+ { value: "apple", label: "Apple" },
31
+ { value: "banana", label: "Banana" },
29
32
  ];
30
33
  const component = html `<w-combobox
31
- data-testid="combobox"
32
- value="apple"
33
- .options="${options}"
34
- ></w-combobox>`;
34
+ data-testid="combobox"
35
+ value="apple"
36
+ .options="${options}"
37
+ ></w-combobox>`;
35
38
  const page = render(component);
36
- const locator = page.getByTestId('combobox');
39
+ const locator = page.getByTestId("combobox");
37
40
  await expect.element(locator).toBeVisible();
38
41
  const el = (await locator.element());
39
42
  // Get the textfield's input element
40
- const textfield = el.shadowRoot?.querySelector('w-textfield');
41
- const input = textfield?.shadowRoot?.querySelector('input');
43
+ const textfield = el.shadowRoot?.querySelector("w-textfield");
44
+ const input = textfield?.shadowRoot?.querySelector("input");
42
45
  // Verify the displayed text shows the label "Apple", not the value "apple"
43
- expect(input?.value).toBe('Apple');
46
+ expect(input?.value).toBe("Apple");
44
47
  // Verify the combobox value is "apple"
45
- expect(el.value).toBe('apple');
48
+ expect(el.value).toBe("apple");
46
49
  });
47
- test('filters options by label, not value', async () => {
50
+ test("filters options by label, not value", async () => {
48
51
  const options = [
49
- { value: 'us', label: 'United States' },
50
- { value: 'uk', label: 'United Kingdom' },
51
- { value: 'no', label: 'Norway' },
52
+ { value: "us", label: "United States" },
53
+ { value: "uk", label: "United Kingdom" },
54
+ { value: "no", label: "Norway" },
52
55
  ];
53
56
  const component = html `<w-combobox
54
- data-testid="combobox"
55
- open-on-focus
56
- .options="${options}"
57
- ></w-combobox>`;
57
+ data-testid="combobox"
58
+ open-on-focus
59
+ .options="${options}"
60
+ ></w-combobox>`;
58
61
  const page = render(component);
59
- const locator = page.getByTestId('combobox');
62
+ const locator = page.getByTestId("combobox");
60
63
  await expect.element(locator).toBeVisible();
61
64
  const el = (await locator.element());
62
65
  // Get the textfield's input element
63
- const textfield = el.shadowRoot?.querySelector('w-textfield');
64
- const input = textfield?.shadowRoot?.querySelector('input');
66
+ const textfield = el.shadowRoot?.querySelector("w-textfield");
67
+ const input = textfield?.shadowRoot?.querySelector("input");
65
68
  // Type "United" which should match labels "United States" and "United Kingdom"
66
69
  // but NOT match any values (us, uk, no)
67
70
  input?.focus();
68
- input.value = 'United';
69
- input.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
71
+ input.value = "United";
72
+ input.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true }));
70
73
  await new Promise((resolve) => setTimeout(resolve, 100));
71
74
  // Check that the dropdown shows the matching options
72
75
  const listbox = el.shadowRoot?.querySelector('[role="listbox"]');
73
76
  const visibleOptions = listbox?.querySelectorAll('[role="option"]');
74
77
  // Should show 2 options: "United States" and "United Kingdom"
75
78
  expect(visibleOptions?.length).toBe(2);
76
- const optionTexts = Array.from(visibleOptions || []).map((opt) => opt.textContent?.trim());
77
- expect(optionTexts).toContain('United States');
78
- expect(optionTexts).toContain('United Kingdom');
79
- expect(optionTexts).not.toContain('Norway');
79
+ const optionTexts = Array.from(visibleOptions || [], (opt) => opt.textContent?.trim());
80
+ expect(optionTexts).toContain("United States");
81
+ expect(optionTexts).toContain("United Kingdom");
82
+ expect(optionTexts).not.toContain("Norway");
80
83
  });
81
- test('displays option label in textfield but stores option value', async () => {
84
+ test("displays option label in textfield but stores option value", async () => {
82
85
  const optionsWithDifferentLabelAndValue = [
83
- { value: 'us', label: 'United States' },
84
- { value: 'uk', label: 'United Kingdom' },
85
- { value: 'no', label: 'Norway' },
86
+ { value: "us", label: "United States" },
87
+ { value: "uk", label: "United Kingdom" },
88
+ { value: "no", label: "Norway" },
86
89
  ];
87
90
  const component = html `<w-combobox
88
- data-testid="combobox"
89
- open-on-focus
90
- .options="${optionsWithDifferentLabelAndValue}"
91
- ></w-combobox>`;
91
+ data-testid="combobox"
92
+ open-on-focus
93
+ .options="${optionsWithDifferentLabelAndValue}"
94
+ ></w-combobox>`;
92
95
  const page = render(component);
93
- const locator = page.getByTestId('combobox');
96
+ const locator = page.getByTestId("combobox");
94
97
  await expect.element(locator).toBeVisible();
95
98
  const el = (await locator.element());
96
99
  // Get the textfield's input element
97
- const textfield = el.shadowRoot?.querySelector('w-textfield');
98
- const input = textfield?.shadowRoot?.querySelector('input');
100
+ const textfield = el.shadowRoot?.querySelector("w-textfield");
101
+ const input = textfield?.shadowRoot?.querySelector("input");
99
102
  // Focus to open the dropdown
100
103
  input?.focus();
101
104
  await new Promise((resolve) => setTimeout(resolve, 100));
102
105
  // Find and click the "Norway" option (which has value "no")
103
106
  const listbox = el.shadowRoot?.querySelector('[role="listbox"]');
104
107
  const options = listbox?.querySelectorAll('[role="option"]');
105
- const norwayOption = Array.from(options || []).find((opt) => opt.textContent?.trim() === 'Norway');
108
+ const norwayOption = [...(options || [])].find((opt) => opt.textContent?.trim() === "Norway");
106
109
  expect(norwayOption).toBeDefined();
107
110
  // Simulate mousedown on the option
108
- norwayOption?.dispatchEvent(new MouseEvent('mousedown', { bubbles: true }));
111
+ norwayOption?.dispatchEvent(new MouseEvent("mousedown", { bubbles: true }));
109
112
  await new Promise((resolve) => setTimeout(resolve, 100));
110
113
  // Verify the displayed text is the label "Norway", not the value "no"
111
- expect(input?.value).toBe('Norway');
114
+ expect(input?.value).toBe("Norway");
112
115
  // Verify the combobox value is "no", not "Norway"
113
- expect(el.value).toBe('no');
116
+ expect(el.value).toBe("no");
114
117
  });
115
- test('announces suggestion count when opened on focus with empty input', async () => {
118
+ test("announces suggestion count when opened on focus with empty input", async () => {
116
119
  const options = [
117
- { value: 'apple', label: 'Apple' },
118
- { value: 'banana', label: 'Banana' },
119
- { value: 'orange', label: 'Orange' },
120
+ { value: "apple", label: "Apple" },
121
+ { value: "banana", label: "Banana" },
122
+ { value: "orange", label: "Orange" },
120
123
  ];
121
124
  const component = html `<w-combobox
122
- data-testid="combobox"
123
- open-on-focus
124
- .options="${options}"
125
- ></w-combobox>`;
125
+ data-testid="combobox"
126
+ open-on-focus
127
+ .options="${options}"
128
+ ></w-combobox>`;
126
129
  const page = render(component);
127
- const locator = page.getByTestId('combobox');
130
+ const locator = page.getByTestId("combobox");
128
131
  await expect.element(locator).toBeVisible();
129
132
  const el = (await locator.element());
130
- const textfield = el.shadowRoot?.querySelector('w-textfield');
131
- const input = textfield?.shadowRoot?.querySelector('input');
133
+ const textfield = el.shadowRoot?.querySelector("w-textfield");
134
+ const input = textfield?.shadowRoot?.querySelector("input");
132
135
  input?.focus();
133
136
  await new Promise((resolve) => setTimeout(resolve, 100));
134
- const statusText = el.shadowRoot?.querySelector('[role="status"]')?.textContent?.trim();
135
- expect(statusText).toBe('3 suggestions');
137
+ const statusText = el.shadowRoot
138
+ ?.querySelector('[role="status"]')
139
+ ?.textContent?.trim();
140
+ expect(statusText).toBe("3 suggestions");
136
141
  });
137
- test('renders light-DOM option children in the generated popup', async () => {
142
+ test("renders light-DOM option children in the generated popup", async () => {
138
143
  const component = html `
139
- <w-combobox data-testid="combobox" open-on-focus>
140
- <option value="no">Norway</option>
141
- <option value="se">Sweden</option>
142
- <option value="dk">Denmark</option>
143
- </w-combobox>
144
- `;
144
+ <w-combobox data-testid="combobox" open-on-focus>
145
+ <option value="no">Norway</option>
146
+ <option value="se">Sweden</option>
147
+ <option value="dk">Denmark</option>
148
+ </w-combobox>
149
+ `;
145
150
  const page = render(component);
146
- const locator = page.getByTestId('combobox');
151
+ const locator = page.getByTestId("combobox");
147
152
  await expect.element(locator).toBeVisible();
148
153
  const el = (await locator.element());
149
- const input = el.shadowRoot?.querySelector('w-textfield')?.shadowRoot?.querySelector('input');
154
+ const input = el.shadowRoot
155
+ ?.querySelector("w-textfield")
156
+ ?.shadowRoot?.querySelector("input");
150
157
  input?.focus();
151
158
  await new Promise((resolve) => setTimeout(resolve, 100));
152
159
  const visibleOptions = el.shadowRoot?.querySelectorAll('[role="listbox"] [role="option"]');
153
- const optionTexts = Array.from(visibleOptions || []).map((opt) => opt.textContent?.trim());
154
- expect(optionTexts).toEqual(['Norway', 'Sweden', 'Denmark']);
160
+ const optionTexts = Array.from(visibleOptions || [], (opt) => opt.textContent?.trim());
161
+ expect(optionTexts).toEqual(["Norway", "Sweden", "Denmark"]);
155
162
  });
156
- test('filters light-DOM options by label attribute and stores option value on select', async () => {
163
+ test("filters light-DOM options by label attribute and stores option value on select", async () => {
157
164
  const component = html `
158
- <w-combobox data-testid="combobox" open-on-focus>
159
- <option value="us" label="United States">US</option>
160
- <option value="uk" label="United Kingdom">UK</option>
161
- <option value="no">Norway</option>
162
- </w-combobox>
163
- `;
165
+ <w-combobox data-testid="combobox" open-on-focus>
166
+ <option value="us" label="United States">US</option>
167
+ <option value="uk" label="United Kingdom">UK</option>
168
+ <option value="no">Norway</option>
169
+ </w-combobox>
170
+ `;
164
171
  const page = render(component);
165
- const locator = page.getByTestId('combobox');
172
+ const locator = page.getByTestId("combobox");
166
173
  await expect.element(locator).toBeVisible();
167
174
  const el = (await locator.element());
168
- const input = el.shadowRoot?.querySelector('w-textfield')?.shadowRoot?.querySelector('input');
175
+ const input = el.shadowRoot
176
+ ?.querySelector("w-textfield")
177
+ ?.shadowRoot?.querySelector("input");
169
178
  const selectEvents = [];
170
- el.addEventListener('select', (event) => selectEvents.push(event));
179
+ el.addEventListener("select", (event) => selectEvents.push(event));
171
180
  input.focus();
172
- input.value = 'United';
173
- input.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
181
+ input.value = "United";
182
+ input.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true }));
174
183
  await new Promise((resolve) => setTimeout(resolve, 100));
175
184
  const visibleOptions = el.shadowRoot?.querySelectorAll('[role="listbox"] [role="option"]');
176
- const optionTexts = Array.from(visibleOptions || []).map((opt) => opt.textContent?.trim());
177
- expect(optionTexts).toEqual(['United States', 'United Kingdom']);
178
- visibleOptions?.[1]?.dispatchEvent(new MouseEvent('mousedown', { bubbles: true }));
185
+ const optionTexts = Array.from(visibleOptions || [], (opt) => opt.textContent?.trim());
186
+ expect(optionTexts).toEqual(["United States", "United Kingdom"]);
187
+ visibleOptions?.[1]?.dispatchEvent(new MouseEvent("mousedown", { bubbles: true }));
179
188
  await new Promise((resolve) => setTimeout(resolve, 100));
180
- expect(input.value).toBe('United Kingdom');
181
- expect(el.value).toBe('uk');
182
- expect(selectEvents.at(-1)?.detail).toEqual({ value: 'uk' });
189
+ expect(input.value).toBe("United Kingdom");
190
+ expect(el.value).toBe("uk");
191
+ expect(selectEvents.at(-1)?.detail).toEqual({ value: "uk" });
183
192
  });
184
- test('uses light-DOM options to display an initial value label', async () => {
193
+ test("uses light-DOM options to display an initial value label", async () => {
185
194
  const component = html `
186
- <w-combobox data-testid="combobox" value="no">
187
- <option value="se">Sweden</option>
188
- <option value="no">Norway</option>
189
- </w-combobox>
190
- `;
195
+ <w-combobox data-testid="combobox" value="no">
196
+ <option value="se">Sweden</option>
197
+ <option value="no">Norway</option>
198
+ </w-combobox>
199
+ `;
191
200
  const page = render(component);
192
- const locator = page.getByTestId('combobox');
201
+ const locator = page.getByTestId("combobox");
193
202
  await expect.element(locator).toBeVisible();
194
203
  const el = (await locator.element());
195
- const input = el.shadowRoot?.querySelector('w-textfield')?.shadowRoot?.querySelector('input');
196
- expect(input.value).toBe('Norway');
197
- expect(el.value).toBe('no');
204
+ const input = el.shadowRoot
205
+ ?.querySelector("w-textfield")
206
+ ?.shadowRoot?.querySelector("input");
207
+ expect(input.value).toBe("Norway");
208
+ expect(el.value).toBe("no");
198
209
  });
199
- test('syncs dynamic light-DOM option child changes', async () => {
210
+ test("syncs dynamic light-DOM option child changes", async () => {
200
211
  const component = html `
201
- <w-combobox data-testid="combobox" open-on-focus>
202
- <option value="no">Norway</option>
203
- <option value="se">Sweden</option>
204
- </w-combobox>
205
- `;
212
+ <w-combobox data-testid="combobox" open-on-focus>
213
+ <option value="no">Norway</option>
214
+ <option value="se">Sweden</option>
215
+ </w-combobox>
216
+ `;
206
217
  const page = render(component);
207
- const locator = page.getByTestId('combobox');
218
+ const locator = page.getByTestId("combobox");
208
219
  await expect.element(locator).toBeVisible();
209
220
  const el = (await locator.element());
210
- const input = el.shadowRoot?.querySelector('w-textfield')?.shadowRoot?.querySelector('input');
211
- const denmark = document.createElement('option');
212
- denmark.value = 'dk';
213
- denmark.textContent = 'Denmark';
221
+ const input = el.shadowRoot
222
+ ?.querySelector("w-textfield")
223
+ ?.shadowRoot?.querySelector("input");
224
+ const denmark = document.createElement("option");
225
+ denmark.value = "dk";
226
+ denmark.textContent = "Denmark";
214
227
  el.appendChild(denmark);
215
228
  const sweden = el.querySelector('option[value="se"]');
216
229
  sweden?.remove();
217
230
  const norway = el.querySelector('option[value="no"]');
218
- norway?.setAttribute('value', 'nor');
231
+ norway?.setAttribute("value", "nor");
219
232
  if (norway) {
220
- norway.textContent = 'Norge';
233
+ norway.textContent = "Norge";
221
234
  }
222
235
  await new Promise((resolve) => setTimeout(resolve, 100));
223
236
  input.focus();
224
237
  await new Promise((resolve) => setTimeout(resolve, 100));
225
238
  const visibleOptions = el.shadowRoot?.querySelectorAll('[role="listbox"] [role="option"]');
226
- const optionTexts = Array.from(visibleOptions || []).map((opt) => opt.textContent?.trim());
227
- expect(optionTexts).toEqual(['Norge', 'Denmark']);
239
+ const optionTexts = Array.from(visibleOptions || [], (opt) => opt.textContent?.trim());
240
+ expect(optionTexts).toEqual(["Norge", "Denmark"]);
228
241
  });
229
- test('non-empty options property takes precedence over light-DOM option children', async () => {
230
- const options = [{ value: 'apple', label: 'Apple' }];
242
+ test("non-empty options property takes precedence over light-DOM option children", async () => {
243
+ const options = [{ value: "apple", label: "Apple" }];
231
244
  const component = html `
232
- <w-combobox data-testid="combobox" open-on-focus .options="${options}">
233
- <option value="banana">Banana</option>
234
- </w-combobox>
235
- `;
245
+ <w-combobox data-testid="combobox" open-on-focus .options="${options}">
246
+ <option value="banana">Banana</option>
247
+ </w-combobox>
248
+ `;
236
249
  const page = render(component);
237
- const locator = page.getByTestId('combobox');
250
+ const locator = page.getByTestId("combobox");
238
251
  await expect.element(locator).toBeVisible();
239
252
  const el = (await locator.element());
240
- const input = el.shadowRoot?.querySelector('w-textfield')?.shadowRoot?.querySelector('input');
253
+ const input = el.shadowRoot
254
+ ?.querySelector("w-textfield")
255
+ ?.shadowRoot?.querySelector("input");
241
256
  input.focus();
242
257
  await new Promise((resolve) => setTimeout(resolve, 100));
243
258
  const visibleOptions = el.shadowRoot?.querySelectorAll('[role="listbox"] [role="option"]');
244
- const optionTexts = Array.from(visibleOptions || []).map((opt) => opt.textContent?.trim());
245
- expect(optionTexts).toEqual(['Apple']);
259
+ const optionTexts = Array.from(visibleOptions || [], (opt) => opt.textContent?.trim());
260
+ expect(optionTexts).toEqual(["Apple"]);
246
261
  });
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import { WarpCombobox } from './combobox.js';
1
+ import React from "react";
2
+ import { WarpCombobox } from "./combobox.js";
3
3
  export declare const Combobox: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpCombobox>, "value" | "form" | "label" | "name" | "autocomplete" | "disabled" | "invalid" | "helpText" | "placeholder" | "required" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "onchange" | "onselect" | "updated" | "firstUpdated" | "resetFormControl" | "render" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "onChange" | "onSelect" | "optional" | "options" | "openOnFocus" | "selectOnBlur" | "matchTextSegments" | "disableStaticFiltering"> & {
4
4
  onSelect?: ((e: CustomEvent<{
5
5
  value: string;
@@ -1,27 +1,27 @@
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 BaseCombobox = createComponent({
8
- tagName: 'w-combobox',
8
+ tagName: "w-combobox",
9
9
  elementClass: Component,
10
10
  react: React,
11
11
  events: {
12
- onSelect: 'select',
13
- onselect: 'select',
14
- onChange: 'change',
15
- onchange: 'change',
12
+ onSelect: "select",
13
+ onselect: "select",
14
+ onChange: "change",
15
+ onchange: "change",
16
16
  },
17
17
  });
18
18
  export const Combobox = React.forwardRef(({ openOnFocus, selectOnBlur, matchTextSegments, disableStaticFiltering, helpText, ...props }, ref) => React.createElement(BaseCombobox, {
19
19
  ...props,
20
- ...(openOnFocus ? { 'open-on-focus': true } : {}),
21
- ...(selectOnBlur ? { 'select-on-blur': true } : {}),
22
- ...(matchTextSegments ? { 'match-text-segments': true } : {}),
23
- ...(disableStaticFiltering ? { 'disable-static-filtering': true } : {}),
24
- ...(helpText !== undefined ? { 'help-text': helpText } : {}),
20
+ ...(openOnFocus ? { "open-on-focus": true } : {}),
21
+ ...(selectOnBlur ? { "select-on-blur": true } : {}),
22
+ ...(matchTextSegments ? { "match-text-segments": true } : {}),
23
+ ...(disableStaticFiltering ? { "disable-static-filtering": true } : {}),
24
+ ...(helpText !== undefined ? { "help-text": helpText } : {}),
25
25
  ref,
26
26
  }));
27
- Combobox.displayName = 'Combobox';
27
+ Combobox.displayName = "Combobox";
@@ -1,2 +1,2 @@
1
- import { unsafeCSS } from 'lit';
1
+ import { unsafeCSS } from "lit";
2
2
  export const styles = unsafeCSS("*,:before,:after{--w-rotate:0;--w-rotate-x:0;--w-rotate-y:0;--w-rotate-z:0;--w-scale-x:1;--w-scale-y:1;--w-scale-z:1;--w-skew-x:0;--w-skew-y:0;--w-translate-x:0;--w-translate-y:0;--w-translate-z:0}.rounded-8{border-radius:8px}.block{display:block}.overflow-hidden{overflow:hidden}.list-none{list-style-type:none}.left-0{left:0}.right-0{right:0}.absolute{position:absolute}.relative{position:relative}.static{position:static}.z-0{z-index:0}.z-20{z-index:20}.s-bg{background-color:var(--w-s-color-background)}.s-bg-selected{background-color:var(--w-s-color-background-selected)}.hover\\:s-bg-hover:hover{background-color:var(--w-s-color-background-hover)}.hover\\:s-bg-selected-hover:hover{background-color:var(--w-s-color-background-selected-hover)}.shadow-m{box-shadow:var(--w-shadow-m)}.m-0{margin:0}.p-0{padding:0}.p-8{padding:.8rem}.pb-4{padding-bottom:.4rem}.visible{visibility:visible}.cursor-pointer{cursor:pointer}.font-bold{font-weight:700}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.select-none{-webkit-user-select:none;user-select:none}");
@@ -1,2 +1,2 @@
1
- import '../button/button.js';
2
- import './datepicker.js';
1
+ import "../button/button.js";
2
+ import "./datepicker.js";
@@ -1,58 +1,62 @@
1
- import React, { useState } from 'react';
2
- import { expect, test, vi } from 'vitest';
3
- import { server, userEvent } from 'vitest/browser';
4
- import { render } from 'vitest-browser-react';
5
- import '../button/button.js';
6
- import './datepicker.js';
7
- import { DatePicker } from './react.js';
8
- test('renders the date picker component', async () => {
1
+ import React, { useState } from "react";
2
+ import { expect, test, vi } from "vitest";
3
+ import { server, userEvent } from "vitest/browser";
4
+ import { render } from "vitest-browser-react";
5
+ import "../button/button.js";
6
+ import "./datepicker.js";
7
+ import { DatePicker } from "./react.js";
8
+ test("renders the date picker component", async () => {
9
9
  const page = await render(React.createElement("form", null,
10
10
  React.createElement(DatePicker, { label: "From date" })));
11
- await expect.element(page.getByLabelText('From date')).toBeVisible();
11
+ await expect.element(page.getByLabelText("From date")).toBeVisible();
12
12
  });
13
- test('can pick a date using a pointer', async () => {
13
+ test("can pick a date using a pointer", async () => {
14
14
  const page = await render(React.createElement("form", { "data-testid": "flight" },
15
15
  React.createElement(DatePicker, { label: "From date", name: "from" })));
16
- await expect.element(page.getByLabelText('From date')).not.toHaveValue();
17
- await page.getByRole('button').click({ force: true });
18
- await page.getByRole('gridcell').nth(15).click();
19
- await expect.element(page.getByLabelText('From date')).toHaveValue();
20
- const formData = new FormData(page.getByTestId('flight').element());
21
- expect(formData.get('from')).toBeTruthy();
16
+ await expect.element(page.getByLabelText("From date")).not.toHaveValue();
17
+ await page.getByRole("button").click({ force: true });
18
+ await page.getByRole("gridcell").nth(15).click();
19
+ await expect.element(page.getByLabelText("From date")).toHaveValue();
20
+ const formData = new FormData(page.getByTestId("flight").element());
21
+ expect(formData.get("from")).toBeTruthy();
22
22
  });
23
- test.skipIf(server.browser === 'firefox')('can pick a date using keyboard', async () => {
23
+ test.skipIf(server.browser === "firefox")("can pick a date using keyboard", async () => {
24
24
  const page = await render(React.createElement("form", { "data-testid": "flight" },
25
25
  React.createElement(DatePicker, { label: "From date", name: "from" })));
26
- await expect.element(page.getByLabelText('From date')).not.toHaveValue();
27
- await expect.element(page.getByTestId('calendar').query()).not.toBeVisible();
28
- const toggle = page.getByRole('button').element();
26
+ await expect.element(page.getByLabelText("From date")).not.toHaveValue();
27
+ await expect
28
+ .element(page.getByTestId("calendar").query())
29
+ .not.toBeVisible();
30
+ const toggle = page.getByRole("button").element();
29
31
  toggle.focus();
30
- await userEvent.keyboard('[Enter]');
31
- await expect.element(page.getByTestId('calendar')).toBeVisible();
32
- page.getByRole('gridcell').nth(15).element().focus();
33
- await userEvent.keyboard('[Enter]');
32
+ await userEvent.keyboard("[Enter]");
33
+ await expect.element(page.getByTestId("calendar")).toBeVisible();
34
+ page.getByRole("gridcell").nth(15).element().focus();
35
+ await userEvent.keyboard("[Enter]");
34
36
  await expect
35
- .element(page.getByTestId('calendar').query(), { message: 'expected calendar to close after clicking a date' })
37
+ .element(page.getByTestId("calendar").query(), {
38
+ message: "expected calendar to close after clicking a date",
39
+ })
36
40
  .not.toBeVisible();
37
- await expect.element(page.getByLabelText('From date')).toHaveValue();
38
- const formData = new FormData(page.getByTestId('flight').element());
39
- expect(formData.get('from')).toBeTruthy();
41
+ await expect.element(page.getByLabelText("From date")).toHaveValue();
42
+ const formData = new FormData(page.getByTestId("flight").element());
43
+ expect(formData.get("from")).toBeTruthy();
40
44
  });
41
- test('can pick a date by typing in the input field', async () => {
45
+ test("can pick a date by typing in the input field", async () => {
42
46
  const page = await render(React.createElement("form", { "data-testid": "flight" },
43
47
  React.createElement(DatePicker, { label: "From date", name: "from" })));
44
- await expect.element(page.getByLabelText('From date')).not.toHaveValue();
45
- const toggle = page.getByLabelText('From date').element();
48
+ await expect.element(page.getByLabelText("From date")).not.toHaveValue();
49
+ const toggle = page.getByLabelText("From date").element();
46
50
  toggle.focus();
47
- await page.getByLabelText('From date').fill('2025-01-01');
48
- await expect.element(page.getByLabelText('From date')).toHaveValue();
49
- const formData = new FormData(page.getByTestId('flight').element());
50
- expect(formData.get('from')).toBeTruthy();
51
+ await page.getByLabelText("From date").fill("2025-01-01");
52
+ await expect.element(page.getByLabelText("From date")).toHaveValue();
53
+ const formData = new FormData(page.getByTestId("flight").element());
54
+ expect(formData.get("from")).toBeTruthy();
51
55
  });
52
- test('allows for the controlled component pattern', async () => {
56
+ test("allows for the controlled component pattern", async () => {
53
57
  const spy = vi.fn();
54
58
  const TestComponent = () => {
55
- const [value, setValue] = useState('');
59
+ const [value, setValue] = useState("");
56
60
  return (React.createElement("form", { "data-testid": "flight" },
57
61
  React.createElement(DatePicker, { label: "From date", name: "from", value: value, onChange: (e) => {
58
62
  const nextValue = e.target.value;
@@ -61,11 +65,12 @@ test('allows for the controlled component pattern', async () => {
61
65
  } })));
62
66
  };
63
67
  const page = await render(React.createElement(TestComponent, null));
64
- await page.getByRole('button').click({ force: true });
65
- await page.getByRole('gridcell').nth(15).click();
66
- await expect.element(page.getByLabelText('From date')).toHaveValue();
68
+ await page.getByRole("button").click({ force: true });
69
+ await page.getByRole("gridcell").nth(15).click();
70
+ await expect.element(page.getByLabelText("From date")).toHaveValue();
67
71
  // Controlled consumers should receive the ISO value, even when the visible input text is localized.
68
72
  const selectedValue = spy.mock.calls.at(-1)?.[0];
69
73
  expect(selectedValue).toMatch(/^\d{4}-\d{2}-\d{2}$/);
70
- expect(document.querySelector('w-datepicker').value).toBe(selectedValue);
74
+ expect(document.querySelector("w-datepicker")
75
+ .value).toBe(selectedValue);
71
76
  });
@@ -1,6 +1,6 @@
1
- import { Locale } from 'date-fns';
2
- import { LitElement } from 'lit';
3
- import '../icon/icon.js';
1
+ import { Locale } from "date-fns";
2
+ import { LitElement } from "lit";
3
+ import "../icon/icon.js";
4
4
  declare const WarpDatepicker_base: import("@open-wc/form-control").Constructor<import("@open-wc/form-control").FormControlInterface> & typeof LitElement;
5
5
  /**
6
6
  * An input for dates.
@@ -1 +1 @@
1
- import './datepicker.js';
1
+ import "./datepicker.js";