@furystack/shades-common-components 11.0.0 → 12.0.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 (768) hide show
  1. package/CHANGELOG.md +443 -0
  2. package/esm/components/accordion/accordion-item.d.ts +31 -0
  3. package/esm/components/accordion/accordion-item.d.ts.map +1 -0
  4. package/esm/components/accordion/accordion-item.js +147 -0
  5. package/esm/components/accordion/accordion-item.js.map +1 -0
  6. package/esm/components/accordion/accordion.d.ts +27 -0
  7. package/esm/components/accordion/accordion.d.ts.map +1 -0
  8. package/esm/components/accordion/accordion.js +39 -0
  9. package/esm/components/accordion/accordion.js.map +1 -0
  10. package/esm/components/accordion/accordion.spec.d.ts +2 -0
  11. package/esm/components/accordion/accordion.spec.d.ts.map +1 -0
  12. package/esm/components/accordion/accordion.spec.js +284 -0
  13. package/esm/components/accordion/accordion.spec.js.map +1 -0
  14. package/esm/components/accordion/index.d.ts +3 -0
  15. package/esm/components/accordion/index.d.ts.map +1 -0
  16. package/esm/components/accordion/index.js +3 -0
  17. package/esm/components/accordion/index.js.map +1 -0
  18. package/esm/components/alert.d.ts +21 -0
  19. package/esm/components/alert.d.ts.map +1 -0
  20. package/esm/components/alert.js +131 -0
  21. package/esm/components/alert.js.map +1 -0
  22. package/esm/components/alert.spec.d.ts +2 -0
  23. package/esm/components/alert.spec.d.ts.map +1 -0
  24. package/esm/components/alert.spec.js +177 -0
  25. package/esm/components/alert.spec.js.map +1 -0
  26. package/esm/components/app-bar-link.d.ts +22 -2
  27. package/esm/components/app-bar-link.d.ts.map +1 -1
  28. package/esm/components/app-bar-link.js +20 -7
  29. package/esm/components/app-bar-link.js.map +1 -1
  30. package/esm/components/app-bar-link.spec.js +22 -19
  31. package/esm/components/app-bar-link.spec.js.map +1 -1
  32. package/esm/components/app-bar.d.ts +2 -0
  33. package/esm/components/app-bar.d.ts.map +1 -1
  34. package/esm/components/app-bar.js +16 -11
  35. package/esm/components/app-bar.js.map +1 -1
  36. package/esm/components/app-bar.spec.js +67 -52
  37. package/esm/components/app-bar.spec.js.map +1 -1
  38. package/esm/components/avatar.d.ts +2 -0
  39. package/esm/components/avatar.d.ts.map +1 -1
  40. package/esm/components/avatar.js +40 -37
  41. package/esm/components/avatar.js.map +1 -1
  42. package/esm/components/badge.d.ts +35 -0
  43. package/esm/components/badge.d.ts.map +1 -0
  44. package/esm/components/badge.js +68 -0
  45. package/esm/components/badge.js.map +1 -0
  46. package/esm/components/badge.spec.d.ts +2 -0
  47. package/esm/components/badge.spec.d.ts.map +1 -0
  48. package/esm/components/badge.spec.js +157 -0
  49. package/esm/components/badge.spec.js.map +1 -0
  50. package/esm/components/breadcrumb.d.ts +103 -0
  51. package/esm/components/breadcrumb.d.ts.map +1 -0
  52. package/esm/components/breadcrumb.js +121 -0
  53. package/esm/components/breadcrumb.js.map +1 -0
  54. package/esm/components/breadcrumb.spec.d.ts +2 -0
  55. package/esm/components/breadcrumb.spec.d.ts.map +1 -0
  56. package/esm/components/breadcrumb.spec.js +251 -0
  57. package/esm/components/breadcrumb.spec.js.map +1 -0
  58. package/esm/components/button-group.d.ts +85 -0
  59. package/esm/components/button-group.d.ts.map +1 -0
  60. package/esm/components/button-group.js +290 -0
  61. package/esm/components/button-group.js.map +1 -0
  62. package/esm/components/button-group.spec.d.ts +2 -0
  63. package/esm/components/button-group.spec.d.ts.map +1 -0
  64. package/esm/components/button-group.spec.js +502 -0
  65. package/esm/components/button-group.spec.js.map +1 -0
  66. package/esm/components/button.d.ts +44 -2
  67. package/esm/components/button.d.ts.map +1 -1
  68. package/esm/components/button.js +82 -73
  69. package/esm/components/button.js.map +1 -1
  70. package/esm/components/button.spec.js +205 -50
  71. package/esm/components/button.spec.js.map +1 -1
  72. package/esm/components/card.d.ts +117 -0
  73. package/esm/components/card.d.ts.map +1 -0
  74. package/esm/components/card.js +181 -0
  75. package/esm/components/card.js.map +1 -0
  76. package/esm/components/card.spec.d.ts +2 -0
  77. package/esm/components/card.spec.d.ts.map +1 -0
  78. package/esm/components/card.spec.js +278 -0
  79. package/esm/components/card.spec.js.map +1 -0
  80. package/esm/components/carousel.d.ts +50 -0
  81. package/esm/components/carousel.d.ts.map +1 -0
  82. package/esm/components/carousel.js +263 -0
  83. package/esm/components/carousel.js.map +1 -0
  84. package/esm/components/carousel.spec.d.ts +2 -0
  85. package/esm/components/carousel.spec.d.ts.map +1 -0
  86. package/esm/components/carousel.spec.js +677 -0
  87. package/esm/components/carousel.spec.js.map +1 -0
  88. package/esm/components/chip.d.ts +23 -0
  89. package/esm/components/chip.d.ts.map +1 -0
  90. package/esm/components/chip.js +139 -0
  91. package/esm/components/chip.js.map +1 -0
  92. package/esm/components/chip.spec.d.ts +2 -0
  93. package/esm/components/chip.spec.d.ts.map +1 -0
  94. package/esm/components/chip.spec.js +142 -0
  95. package/esm/components/chip.spec.js.map +1 -0
  96. package/esm/components/circular-progress.d.ts +37 -0
  97. package/esm/components/circular-progress.d.ts.map +1 -0
  98. package/esm/components/circular-progress.js +84 -0
  99. package/esm/components/circular-progress.js.map +1 -0
  100. package/esm/components/circular-progress.spec.d.ts +2 -0
  101. package/esm/components/circular-progress.spec.d.ts.map +1 -0
  102. package/esm/components/circular-progress.spec.js +228 -0
  103. package/esm/components/circular-progress.spec.js.map +1 -0
  104. package/esm/components/command-palette/command-palette-input.d.ts +3 -0
  105. package/esm/components/command-palette/command-palette-input.d.ts.map +1 -1
  106. package/esm/components/command-palette/command-palette-input.js +17 -9
  107. package/esm/components/command-palette/command-palette-input.js.map +1 -1
  108. package/esm/components/command-palette/command-palette-input.spec.js +172 -161
  109. package/esm/components/command-palette/command-palette-input.spec.js.map +1 -1
  110. package/esm/components/command-palette/command-palette-manager.spec.js +130 -114
  111. package/esm/components/command-palette/command-palette-manager.spec.js.map +1 -1
  112. package/esm/components/command-palette/command-palette-suggestion-list.d.ts +2 -0
  113. package/esm/components/command-palette/command-palette-suggestion-list.d.ts.map +1 -1
  114. package/esm/components/command-palette/command-palette-suggestion-list.js +20 -20
  115. package/esm/components/command-palette/command-palette-suggestion-list.js.map +1 -1
  116. package/esm/components/command-palette/command-palette-suggestion-list.spec.js +296 -278
  117. package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
  118. package/esm/components/command-palette/index.d.ts +2 -0
  119. package/esm/components/command-palette/index.d.ts.map +1 -1
  120. package/esm/components/command-palette/index.js +25 -94
  121. package/esm/components/command-palette/index.js.map +1 -1
  122. package/esm/components/command-palette/index.spec.js +12 -12
  123. package/esm/components/command-palette/index.spec.js.map +1 -1
  124. package/esm/components/context-menu/context-menu-item.d.ts +9 -0
  125. package/esm/components/context-menu/context-menu-item.d.ts.map +1 -0
  126. package/esm/components/context-menu/context-menu-item.js +56 -0
  127. package/esm/components/context-menu/context-menu-item.js.map +1 -0
  128. package/esm/components/context-menu/context-menu-manager.d.ts +52 -0
  129. package/esm/components/context-menu/context-menu-manager.d.ts.map +1 -0
  130. package/esm/components/context-menu/context-menu-manager.js +128 -0
  131. package/esm/components/context-menu/context-menu-manager.js.map +1 -0
  132. package/esm/components/context-menu/context-menu-manager.spec.d.ts +2 -0
  133. package/esm/components/context-menu/context-menu-manager.spec.d.ts.map +1 -0
  134. package/esm/components/context-menu/context-menu-manager.spec.js +326 -0
  135. package/esm/components/context-menu/context-menu-manager.spec.js.map +1 -0
  136. package/esm/components/context-menu/context-menu.d.ts +8 -0
  137. package/esm/components/context-menu/context-menu.d.ts.map +1 -0
  138. package/esm/components/context-menu/context-menu.js +79 -0
  139. package/esm/components/context-menu/context-menu.js.map +1 -0
  140. package/esm/components/context-menu/context-menu.spec.d.ts +2 -0
  141. package/esm/components/context-menu/context-menu.spec.d.ts.map +1 -0
  142. package/esm/components/context-menu/context-menu.spec.js +282 -0
  143. package/esm/components/context-menu/context-menu.spec.js.map +1 -0
  144. package/esm/components/context-menu/index.d.ts +4 -0
  145. package/esm/components/context-menu/index.d.ts.map +1 -0
  146. package/esm/components/context-menu/index.js +4 -0
  147. package/esm/components/context-menu/index.js.map +1 -0
  148. package/esm/components/data-grid/body.spec.js +194 -184
  149. package/esm/components/data-grid/body.spec.js.map +1 -1
  150. package/esm/components/data-grid/data-grid-row.d.ts.map +1 -1
  151. package/esm/components/data-grid/data-grid-row.js +66 -54
  152. package/esm/components/data-grid/data-grid-row.js.map +1 -1
  153. package/esm/components/data-grid/data-grid-row.spec.js +127 -95
  154. package/esm/components/data-grid/data-grid-row.spec.js.map +1 -1
  155. package/esm/components/data-grid/data-grid.d.ts.map +1 -1
  156. package/esm/components/data-grid/data-grid.js +17 -16
  157. package/esm/components/data-grid/data-grid.js.map +1 -1
  158. package/esm/components/data-grid/data-grid.spec.js +364 -430
  159. package/esm/components/data-grid/data-grid.spec.js.map +1 -1
  160. package/esm/components/data-grid/footer.spec.js +215 -203
  161. package/esm/components/data-grid/footer.spec.js.map +1 -1
  162. package/esm/components/data-grid/header.d.ts +3 -1
  163. package/esm/components/data-grid/header.d.ts.map +1 -1
  164. package/esm/components/data-grid/header.js +42 -30
  165. package/esm/components/data-grid/header.js.map +1 -1
  166. package/esm/components/data-grid/header.spec.js +330 -307
  167. package/esm/components/data-grid/header.spec.js.map +1 -1
  168. package/esm/components/data-grid/selection-cell.d.ts +2 -0
  169. package/esm/components/data-grid/selection-cell.d.ts.map +1 -1
  170. package/esm/components/data-grid/selection-cell.js +2 -7
  171. package/esm/components/data-grid/selection-cell.js.map +1 -1
  172. package/esm/components/data-grid/selection-cell.spec.js +45 -36
  173. package/esm/components/data-grid/selection-cell.spec.js.map +1 -1
  174. package/esm/components/dialog.d.ts +46 -0
  175. package/esm/components/dialog.d.ts.map +1 -0
  176. package/esm/components/dialog.js +178 -0
  177. package/esm/components/dialog.js.map +1 -0
  178. package/esm/components/dialog.spec.d.ts +2 -0
  179. package/esm/components/dialog.spec.d.ts.map +1 -0
  180. package/esm/components/dialog.spec.js +113 -0
  181. package/esm/components/dialog.spec.js.map +1 -0
  182. package/esm/components/divider.d.ts +22 -0
  183. package/esm/components/divider.d.ts.map +1 -0
  184. package/esm/components/divider.js +113 -0
  185. package/esm/components/divider.js.map +1 -0
  186. package/esm/components/divider.spec.d.ts +2 -0
  187. package/esm/components/divider.spec.d.ts.map +1 -0
  188. package/esm/components/divider.spec.js +136 -0
  189. package/esm/components/divider.spec.js.map +1 -0
  190. package/esm/components/drawer/drawer-toggle-button.d.ts +36 -0
  191. package/esm/components/drawer/drawer-toggle-button.d.ts.map +1 -0
  192. package/esm/components/drawer/drawer-toggle-button.js +94 -0
  193. package/esm/components/drawer/drawer-toggle-button.js.map +1 -0
  194. package/esm/components/drawer/drawer-toggle-button.spec.d.ts +2 -0
  195. package/esm/components/drawer/drawer-toggle-button.spec.d.ts.map +1 -0
  196. package/esm/components/drawer/drawer-toggle-button.spec.js +306 -0
  197. package/esm/components/drawer/drawer-toggle-button.spec.js.map +1 -0
  198. package/esm/components/drawer/index.d.ts +56 -0
  199. package/esm/components/drawer/index.d.ts.map +1 -0
  200. package/esm/components/drawer/index.js +172 -0
  201. package/esm/components/drawer/index.js.map +1 -0
  202. package/esm/components/drawer/index.spec.d.ts +2 -0
  203. package/esm/components/drawer/index.spec.d.ts.map +1 -0
  204. package/esm/components/drawer/index.spec.js +538 -0
  205. package/esm/components/drawer/index.spec.js.map +1 -0
  206. package/esm/components/dropdown.d.ts +15 -0
  207. package/esm/components/dropdown.d.ts.map +1 -0
  208. package/esm/components/dropdown.js +262 -0
  209. package/esm/components/dropdown.js.map +1 -0
  210. package/esm/components/dropdown.spec.d.ts +2 -0
  211. package/esm/components/dropdown.spec.d.ts.map +1 -0
  212. package/esm/components/dropdown.spec.js +372 -0
  213. package/esm/components/dropdown.spec.js.map +1 -0
  214. package/esm/components/fab.d.ts +10 -1
  215. package/esm/components/fab.d.ts.map +1 -1
  216. package/esm/components/fab.js +24 -8
  217. package/esm/components/fab.js.map +1 -1
  218. package/esm/components/fab.spec.js +50 -39
  219. package/esm/components/fab.spec.js.map +1 -1
  220. package/esm/components/form.d.ts.map +1 -1
  221. package/esm/components/form.js +9 -7
  222. package/esm/components/form.js.map +1 -1
  223. package/esm/components/form.spec.js +209 -199
  224. package/esm/components/form.spec.js.map +1 -1
  225. package/esm/components/grid.js +10 -10
  226. package/esm/components/grid.js.map +1 -1
  227. package/esm/components/grid.spec.js +109 -85
  228. package/esm/components/grid.spec.js.map +1 -1
  229. package/esm/components/icons/icon-definitions.d.ts +140 -0
  230. package/esm/components/icons/icon-definitions.d.ts.map +1 -0
  231. package/esm/components/icons/icon-definitions.js +432 -0
  232. package/esm/components/icons/icon-definitions.js.map +1 -0
  233. package/esm/components/icons/icon-definitions.spec.d.ts +2 -0
  234. package/esm/components/icons/icon-definitions.spec.d.ts.map +1 -0
  235. package/esm/components/icons/icon-definitions.spec.js +59 -0
  236. package/esm/components/icons/icon-definitions.spec.js.map +1 -0
  237. package/esm/components/icons/icon-types.d.ts +48 -0
  238. package/esm/components/icons/icon-types.d.ts.map +1 -0
  239. package/esm/components/icons/icon-types.js +2 -0
  240. package/esm/components/icons/icon-types.js.map +1 -0
  241. package/esm/components/icons/icon.d.ts +56 -0
  242. package/esm/components/icons/icon.d.ts.map +1 -0
  243. package/esm/components/icons/icon.js +61 -0
  244. package/esm/components/icons/icon.js.map +1 -0
  245. package/esm/components/icons/icon.spec.d.ts +2 -0
  246. package/esm/components/icons/icon.spec.d.ts.map +1 -0
  247. package/esm/components/icons/icon.spec.js +224 -0
  248. package/esm/components/icons/icon.spec.js.map +1 -0
  249. package/esm/components/icons/index.d.ts +5 -0
  250. package/esm/components/icons/index.d.ts.map +1 -0
  251. package/esm/components/icons/index.js +3 -0
  252. package/esm/components/icons/index.js.map +1 -0
  253. package/esm/components/image.d.ts +62 -0
  254. package/esm/components/image.d.ts.map +1 -0
  255. package/esm/components/image.js +348 -0
  256. package/esm/components/image.js.map +1 -0
  257. package/esm/components/image.spec.d.ts +2 -0
  258. package/esm/components/image.spec.d.ts.map +1 -0
  259. package/esm/components/image.spec.js +542 -0
  260. package/esm/components/image.spec.js.map +1 -0
  261. package/esm/components/index.d.ts +32 -4
  262. package/esm/components/index.d.ts.map +1 -1
  263. package/esm/components/index.js +32 -4
  264. package/esm/components/index.js.map +1 -1
  265. package/esm/components/inputs/autocomplete.d.ts +2 -0
  266. package/esm/components/inputs/autocomplete.d.ts.map +1 -1
  267. package/esm/components/inputs/autocomplete.js +10 -6
  268. package/esm/components/inputs/autocomplete.js.map +1 -1
  269. package/esm/components/inputs/autocomplete.spec.js +10 -1
  270. package/esm/components/inputs/autocomplete.spec.js.map +1 -1
  271. package/esm/components/inputs/checkbox.d.ts +50 -0
  272. package/esm/components/inputs/checkbox.d.ts.map +1 -0
  273. package/esm/components/inputs/checkbox.js +126 -0
  274. package/esm/components/inputs/checkbox.js.map +1 -0
  275. package/esm/components/inputs/checkbox.spec.d.ts +2 -0
  276. package/esm/components/inputs/checkbox.spec.d.ts.map +1 -0
  277. package/esm/components/inputs/checkbox.spec.js +287 -0
  278. package/esm/components/inputs/checkbox.spec.js.map +1 -0
  279. package/esm/components/inputs/index.d.ts +7 -0
  280. package/esm/components/inputs/index.d.ts.map +1 -1
  281. package/esm/components/inputs/index.js +7 -0
  282. package/esm/components/inputs/index.js.map +1 -1
  283. package/esm/components/inputs/input-number.d.ts +79 -0
  284. package/esm/components/inputs/input-number.d.ts.map +1 -0
  285. package/esm/components/inputs/input-number.js +232 -0
  286. package/esm/components/inputs/input-number.js.map +1 -0
  287. package/esm/components/inputs/input-number.spec.d.ts +2 -0
  288. package/esm/components/inputs/input-number.spec.d.ts.map +1 -0
  289. package/esm/components/inputs/input-number.spec.js +516 -0
  290. package/esm/components/inputs/input-number.spec.js.map +1 -0
  291. package/esm/components/inputs/input.d.ts +2 -1
  292. package/esm/components/inputs/input.d.ts.map +1 -1
  293. package/esm/components/inputs/input.js +86 -116
  294. package/esm/components/inputs/input.js.map +1 -1
  295. package/esm/components/inputs/input.spec.js +461 -427
  296. package/esm/components/inputs/input.spec.js.map +1 -1
  297. package/esm/components/inputs/radio-group.d.ts +38 -0
  298. package/esm/components/inputs/radio-group.d.ts.map +1 -0
  299. package/esm/components/inputs/radio-group.js +58 -0
  300. package/esm/components/inputs/radio-group.js.map +1 -0
  301. package/esm/components/inputs/radio-group.spec.d.ts +2 -0
  302. package/esm/components/inputs/radio-group.spec.d.ts.map +1 -0
  303. package/esm/components/inputs/radio-group.spec.js +201 -0
  304. package/esm/components/inputs/radio-group.spec.js.map +1 -0
  305. package/esm/components/inputs/radio.d.ts +42 -0
  306. package/esm/components/inputs/radio.d.ts.map +1 -0
  307. package/esm/components/inputs/radio.js +134 -0
  308. package/esm/components/inputs/radio.js.map +1 -0
  309. package/esm/components/inputs/radio.spec.d.ts +2 -0
  310. package/esm/components/inputs/radio.spec.d.ts.map +1 -0
  311. package/esm/components/inputs/radio.spec.js +211 -0
  312. package/esm/components/inputs/radio.spec.js.map +1 -0
  313. package/esm/components/inputs/select.d.ts +67 -0
  314. package/esm/components/inputs/select.d.ts.map +1 -0
  315. package/esm/components/inputs/select.js +581 -0
  316. package/esm/components/inputs/select.js.map +1 -0
  317. package/esm/components/inputs/select.spec.d.ts +2 -0
  318. package/esm/components/inputs/select.spec.d.ts.map +1 -0
  319. package/esm/components/inputs/select.spec.js +1009 -0
  320. package/esm/components/inputs/select.spec.js.map +1 -0
  321. package/esm/components/inputs/slider.d.ts +66 -0
  322. package/esm/components/inputs/slider.d.ts.map +1 -0
  323. package/esm/components/inputs/slider.js +526 -0
  324. package/esm/components/inputs/slider.js.map +1 -0
  325. package/esm/components/inputs/slider.spec.d.ts +2 -0
  326. package/esm/components/inputs/slider.spec.d.ts.map +1 -0
  327. package/esm/components/inputs/slider.spec.js +812 -0
  328. package/esm/components/inputs/slider.spec.js.map +1 -0
  329. package/esm/components/inputs/switch.d.ts +50 -0
  330. package/esm/components/inputs/switch.d.ts.map +1 -0
  331. package/esm/components/inputs/switch.js +138 -0
  332. package/esm/components/inputs/switch.js.map +1 -0
  333. package/esm/components/inputs/switch.spec.d.ts +2 -0
  334. package/esm/components/inputs/switch.spec.d.ts.map +1 -0
  335. package/esm/components/inputs/switch.spec.js +313 -0
  336. package/esm/components/inputs/switch.spec.js.map +1 -0
  337. package/esm/components/inputs/text-area.d.ts +2 -0
  338. package/esm/components/inputs/text-area.d.ts.map +1 -1
  339. package/esm/components/inputs/text-area.js +13 -21
  340. package/esm/components/inputs/text-area.js.map +1 -1
  341. package/esm/components/inputs/text-area.spec.js +171 -156
  342. package/esm/components/inputs/text-area.spec.js.map +1 -1
  343. package/esm/components/linear-progress.d.ts +32 -0
  344. package/esm/components/linear-progress.d.ts.map +1 -0
  345. package/esm/components/linear-progress.js +79 -0
  346. package/esm/components/linear-progress.js.map +1 -0
  347. package/esm/components/linear-progress.spec.d.ts +2 -0
  348. package/esm/components/linear-progress.spec.d.ts.map +1 -0
  349. package/esm/components/linear-progress.spec.js +251 -0
  350. package/esm/components/linear-progress.spec.js.map +1 -0
  351. package/esm/components/list/index.d.ts +3 -0
  352. package/esm/components/list/index.d.ts.map +1 -0
  353. package/esm/components/list/index.js +3 -0
  354. package/esm/components/list/index.js.map +1 -0
  355. package/esm/components/list/list-item.d.ts +13 -0
  356. package/esm/components/list/list-item.d.ts.map +1 -0
  357. package/esm/components/list/list-item.js +81 -0
  358. package/esm/components/list/list-item.js.map +1 -0
  359. package/esm/components/list/list.d.ts +18 -0
  360. package/esm/components/list/list.d.ts.map +1 -0
  361. package/esm/components/list/list.js +42 -0
  362. package/esm/components/list/list.js.map +1 -0
  363. package/esm/components/list/list.spec.d.ts +2 -0
  364. package/esm/components/list/list.spec.d.ts.map +1 -0
  365. package/esm/components/list/list.spec.js +540 -0
  366. package/esm/components/list/list.spec.js.map +1 -0
  367. package/esm/components/loader.d.ts +2 -0
  368. package/esm/components/loader.d.ts.map +1 -1
  369. package/esm/components/loader.js +18 -10
  370. package/esm/components/loader.js.map +1 -1
  371. package/esm/components/loader.spec.js +191 -175
  372. package/esm/components/loader.spec.js.map +1 -1
  373. package/esm/components/menu/index.d.ts +3 -0
  374. package/esm/components/menu/index.d.ts.map +1 -0
  375. package/esm/components/menu/index.js +3 -0
  376. package/esm/components/menu/index.js.map +1 -0
  377. package/esm/components/menu/menu-types.d.ts +27 -0
  378. package/esm/components/menu/menu-types.d.ts.map +1 -0
  379. package/esm/components/menu/menu-types.js +22 -0
  380. package/esm/components/menu/menu-types.js.map +1 -0
  381. package/esm/components/menu/menu-types.spec.d.ts +2 -0
  382. package/esm/components/menu/menu-types.spec.d.ts.map +1 -0
  383. package/esm/components/menu/menu-types.spec.js +103 -0
  384. package/esm/components/menu/menu-types.spec.js.map +1 -0
  385. package/esm/components/menu/menu.d.ts +17 -0
  386. package/esm/components/menu/menu.d.ts.map +1 -0
  387. package/esm/components/menu/menu.js +240 -0
  388. package/esm/components/menu/menu.js.map +1 -0
  389. package/esm/components/menu/menu.spec.d.ts +2 -0
  390. package/esm/components/menu/menu.spec.d.ts.map +1 -0
  391. package/esm/components/menu/menu.spec.js +427 -0
  392. package/esm/components/menu/menu.spec.js.map +1 -0
  393. package/esm/components/modal.d.ts +3 -2
  394. package/esm/components/modal.d.ts.map +1 -1
  395. package/esm/components/modal.js +8 -5
  396. package/esm/components/modal.js.map +1 -1
  397. package/esm/components/modal.spec.js +50 -43
  398. package/esm/components/modal.spec.js.map +1 -1
  399. package/esm/components/noty-list.d.ts +4 -0
  400. package/esm/components/noty-list.d.ts.map +1 -1
  401. package/esm/components/noty-list.js +65 -53
  402. package/esm/components/noty-list.js.map +1 -1
  403. package/esm/components/noty-list.spec.js +71 -68
  404. package/esm/components/noty-list.spec.js.map +1 -1
  405. package/esm/components/page-container/index.d.ts +54 -0
  406. package/esm/components/page-container/index.d.ts.map +1 -0
  407. package/esm/components/page-container/index.js +63 -0
  408. package/esm/components/page-container/index.js.map +1 -0
  409. package/esm/components/page-container/index.spec.d.ts +2 -0
  410. package/esm/components/page-container/index.spec.d.ts.map +1 -0
  411. package/esm/components/page-container/index.spec.js +217 -0
  412. package/esm/components/page-container/index.spec.js.map +1 -0
  413. package/esm/components/page-container/page-header.d.ts +57 -0
  414. package/esm/components/page-container/page-header.d.ts.map +1 -0
  415. package/esm/components/page-container/page-header.js +93 -0
  416. package/esm/components/page-container/page-header.js.map +1 -0
  417. package/esm/components/page-container/page-header.spec.d.ts +2 -0
  418. package/esm/components/page-container/page-header.spec.d.ts.map +1 -0
  419. package/esm/components/page-container/page-header.spec.js +230 -0
  420. package/esm/components/page-container/page-header.spec.js.map +1 -0
  421. package/esm/components/page-layout/index.d.ts +83 -0
  422. package/esm/components/page-layout/index.d.ts.map +1 -0
  423. package/esm/components/page-layout/index.js +288 -0
  424. package/esm/components/page-layout/index.js.map +1 -0
  425. package/esm/components/page-layout/index.spec.d.ts +2 -0
  426. package/esm/components/page-layout/index.spec.d.ts.map +1 -0
  427. package/esm/components/page-layout/index.spec.js +637 -0
  428. package/esm/components/page-layout/index.spec.js.map +1 -0
  429. package/esm/components/pagination.d.ts +43 -0
  430. package/esm/components/pagination.d.ts.map +1 -0
  431. package/esm/components/pagination.js +165 -0
  432. package/esm/components/pagination.js.map +1 -0
  433. package/esm/components/pagination.spec.d.ts +2 -0
  434. package/esm/components/pagination.spec.d.ts.map +1 -0
  435. package/esm/components/pagination.spec.js +195 -0
  436. package/esm/components/pagination.spec.js.map +1 -0
  437. package/esm/components/paper.d.ts +3 -1
  438. package/esm/components/paper.d.ts.map +1 -1
  439. package/esm/components/paper.js +11 -9
  440. package/esm/components/paper.js.map +1 -1
  441. package/esm/components/paper.spec.js +26 -18
  442. package/esm/components/paper.spec.js.map +1 -1
  443. package/esm/components/rating.d.ts +62 -0
  444. package/esm/components/rating.d.ts.map +1 -0
  445. package/esm/components/rating.js +201 -0
  446. package/esm/components/rating.js.map +1 -0
  447. package/esm/components/rating.spec.d.ts +2 -0
  448. package/esm/components/rating.spec.d.ts.map +1 -0
  449. package/esm/components/rating.spec.js +663 -0
  450. package/esm/components/rating.spec.js.map +1 -0
  451. package/esm/components/result.d.ts +37 -0
  452. package/esm/components/result.d.ts.map +1 -0
  453. package/esm/components/result.js +109 -0
  454. package/esm/components/result.js.map +1 -0
  455. package/esm/components/result.spec.d.ts +2 -0
  456. package/esm/components/result.spec.d.ts.map +1 -0
  457. package/esm/components/result.spec.js +159 -0
  458. package/esm/components/result.spec.js.map +1 -0
  459. package/esm/components/searchable-input-styles.d.ts +8 -0
  460. package/esm/components/searchable-input-styles.d.ts.map +1 -0
  461. package/esm/components/searchable-input-styles.js +71 -0
  462. package/esm/components/searchable-input-styles.js.map +1 -0
  463. package/esm/components/skeleton.d.ts +2 -0
  464. package/esm/components/skeleton.d.ts.map +1 -1
  465. package/esm/components/skeleton.js +19 -6
  466. package/esm/components/skeleton.js.map +1 -1
  467. package/esm/components/skeleton.spec.js +103 -95
  468. package/esm/components/skeleton.spec.js.map +1 -1
  469. package/esm/components/styles.d.ts.map +1 -1
  470. package/esm/components/styles.js +14 -13
  471. package/esm/components/styles.js.map +1 -1
  472. package/esm/components/styles.spec.js +27 -26
  473. package/esm/components/styles.spec.js.map +1 -1
  474. package/esm/components/suggest/index.d.ts.map +1 -1
  475. package/esm/components/suggest/index.js +24 -85
  476. package/esm/components/suggest/index.js.map +1 -1
  477. package/esm/components/suggest/index.spec.js +402 -378
  478. package/esm/components/suggest/index.spec.js.map +1 -1
  479. package/esm/components/suggest/suggest-input.d.ts +2 -0
  480. package/esm/components/suggest/suggest-input.d.ts.map +1 -1
  481. package/esm/components/suggest/suggest-input.js +10 -8
  482. package/esm/components/suggest/suggest-input.js.map +1 -1
  483. package/esm/components/suggest/suggest-input.spec.js +83 -71
  484. package/esm/components/suggest/suggest-input.spec.js.map +1 -1
  485. package/esm/components/suggest/suggest-manager.spec.js +102 -92
  486. package/esm/components/suggest/suggest-manager.spec.js.map +1 -1
  487. package/esm/components/suggest/suggestion-list.d.ts.map +1 -1
  488. package/esm/components/suggest/suggestion-list.js +21 -22
  489. package/esm/components/suggest/suggestion-list.js.map +1 -1
  490. package/esm/components/suggest/suggestion-list.spec.js +165 -146
  491. package/esm/components/suggest/suggestion-list.spec.js.map +1 -1
  492. package/esm/components/tabs.d.ts +18 -2
  493. package/esm/components/tabs.d.ts.map +1 -1
  494. package/esm/components/tabs.js +154 -14
  495. package/esm/components/tabs.js.map +1 -1
  496. package/esm/components/tabs.spec.js +295 -7
  497. package/esm/components/tabs.spec.js.map +1 -1
  498. package/esm/components/timeline.d.ts +53 -0
  499. package/esm/components/timeline.d.ts.map +1 -0
  500. package/esm/components/timeline.js +162 -0
  501. package/esm/components/timeline.js.map +1 -0
  502. package/esm/components/timeline.spec.d.ts +2 -0
  503. package/esm/components/timeline.spec.d.ts.map +1 -0
  504. package/esm/components/timeline.spec.js +209 -0
  505. package/esm/components/timeline.spec.js.map +1 -0
  506. package/esm/components/tooltip.d.ts +25 -0
  507. package/esm/components/tooltip.d.ts.map +1 -0
  508. package/esm/components/tooltip.js +113 -0
  509. package/esm/components/tooltip.js.map +1 -0
  510. package/esm/components/tooltip.spec.d.ts +2 -0
  511. package/esm/components/tooltip.spec.d.ts.map +1 -0
  512. package/esm/components/tooltip.spec.js +152 -0
  513. package/esm/components/tooltip.spec.js.map +1 -0
  514. package/esm/components/tree/index.d.ts +3 -0
  515. package/esm/components/tree/index.d.ts.map +1 -0
  516. package/esm/components/tree/index.js +3 -0
  517. package/esm/components/tree/index.js.map +1 -0
  518. package/esm/components/tree/tree-item.d.ts +14 -0
  519. package/esm/components/tree/tree-item.d.ts.map +1 -0
  520. package/esm/components/tree/tree-item.js +118 -0
  521. package/esm/components/tree/tree-item.js.map +1 -0
  522. package/esm/components/tree/tree.d.ts +20 -0
  523. package/esm/components/tree/tree.d.ts.map +1 -0
  524. package/esm/components/tree/tree.js +66 -0
  525. package/esm/components/tree/tree.js.map +1 -0
  526. package/esm/components/tree/tree.spec.d.ts +2 -0
  527. package/esm/components/tree/tree.spec.d.ts.map +1 -0
  528. package/esm/components/tree/tree.spec.js +427 -0
  529. package/esm/components/tree/tree.spec.js.map +1 -0
  530. package/esm/components/typography.d.ts +48 -0
  531. package/esm/components/typography.d.ts.map +1 -0
  532. package/esm/components/typography.js +223 -0
  533. package/esm/components/typography.js.map +1 -0
  534. package/esm/components/typography.spec.d.ts +2 -0
  535. package/esm/components/typography.spec.d.ts.map +1 -0
  536. package/esm/components/typography.spec.js +199 -0
  537. package/esm/components/typography.spec.js.map +1 -0
  538. package/esm/components/wizard/index.d.ts +2 -0
  539. package/esm/components/wizard/index.d.ts.map +1 -1
  540. package/esm/components/wizard/index.spec.js +70 -56
  541. package/esm/components/wizard/index.spec.js.map +1 -1
  542. package/esm/services/click-away-service.d.ts +5 -2
  543. package/esm/services/click-away-service.d.ts.map +1 -1
  544. package/esm/services/click-away-service.js +7 -1
  545. package/esm/services/click-away-service.js.map +1 -1
  546. package/esm/services/click-away-service.spec.js +14 -12
  547. package/esm/services/click-away-service.spec.js.map +1 -1
  548. package/esm/services/css-variable-theme.d.ts +167 -1
  549. package/esm/services/css-variable-theme.d.ts.map +1 -1
  550. package/esm/services/css-variable-theme.js +102 -0
  551. package/esm/services/css-variable-theme.js.map +1 -1
  552. package/esm/services/css-variable-theme.spec.js +131 -1
  553. package/esm/services/css-variable-theme.spec.js.map +1 -1
  554. package/esm/services/default-dark-theme.d.ts +107 -2
  555. package/esm/services/default-dark-theme.d.ts.map +1 -1
  556. package/esm/services/default-dark-theme.js +87 -1
  557. package/esm/services/default-dark-theme.js.map +1 -1
  558. package/esm/services/default-light-theme.d.ts +107 -2
  559. package/esm/services/default-light-theme.d.ts.map +1 -1
  560. package/esm/services/default-light-theme.js +86 -0
  561. package/esm/services/default-light-theme.js.map +1 -1
  562. package/esm/services/index.d.ts +6 -2
  563. package/esm/services/index.d.ts.map +1 -1
  564. package/esm/services/index.js +6 -2
  565. package/esm/services/index.js.map +1 -1
  566. package/esm/services/layout-service.d.ts +217 -0
  567. package/esm/services/layout-service.d.ts.map +1 -0
  568. package/esm/services/layout-service.js +331 -0
  569. package/esm/services/layout-service.js.map +1 -0
  570. package/esm/services/layout-service.spec.d.ts +2 -0
  571. package/esm/services/layout-service.spec.d.ts.map +1 -0
  572. package/esm/services/layout-service.spec.js +425 -0
  573. package/esm/services/layout-service.spec.js.map +1 -0
  574. package/esm/services/list-service.d.ts +31 -0
  575. package/esm/services/list-service.d.ts.map +1 -0
  576. package/esm/services/list-service.js +149 -0
  577. package/esm/services/list-service.js.map +1 -0
  578. package/esm/services/list-service.spec.d.ts +2 -0
  579. package/esm/services/list-service.spec.d.ts.map +1 -0
  580. package/esm/services/list-service.spec.js +283 -0
  581. package/esm/services/list-service.spec.js.map +1 -0
  582. package/esm/services/palette-css-vars.d.ts +12 -0
  583. package/esm/services/palette-css-vars.d.ts.map +1 -0
  584. package/esm/services/palette-css-vars.js +44 -0
  585. package/esm/services/palette-css-vars.js.map +1 -0
  586. package/esm/services/theme-provider-service.d.ts +387 -2
  587. package/esm/services/theme-provider-service.d.ts.map +1 -1
  588. package/esm/services/theme-provider-service.js.map +1 -1
  589. package/esm/services/tree-service.d.ts +61 -0
  590. package/esm/services/tree-service.d.ts.map +1 -0
  591. package/esm/services/tree-service.js +149 -0
  592. package/esm/services/tree-service.js.map +1 -0
  593. package/esm/services/tree-service.spec.d.ts +2 -0
  594. package/esm/services/tree-service.spec.d.ts.map +1 -0
  595. package/esm/services/tree-service.spec.js +338 -0
  596. package/esm/services/tree-service.spec.js.map +1 -0
  597. package/esm/utils/promisify-animation.d.ts.map +1 -1
  598. package/esm/utils/promisify-animation.js +6 -1
  599. package/esm/utils/promisify-animation.js.map +1 -1
  600. package/package.json +7 -8
  601. package/src/components/accordion/accordion-item.tsx +197 -0
  602. package/src/components/accordion/accordion.spec.tsx +418 -0
  603. package/src/components/accordion/accordion.tsx +50 -0
  604. package/src/components/accordion/index.ts +2 -0
  605. package/src/components/alert.spec.tsx +256 -0
  606. package/src/components/alert.tsx +186 -0
  607. package/src/components/app-bar-link.spec.tsx +22 -19
  608. package/src/components/app-bar-link.tsx +29 -10
  609. package/src/components/app-bar.spec.tsx +73 -58
  610. package/src/components/app-bar.tsx +19 -12
  611. package/src/components/avatar.tsx +46 -47
  612. package/src/components/badge.spec.tsx +228 -0
  613. package/src/components/badge.tsx +104 -0
  614. package/src/components/breadcrumb.spec.tsx +396 -0
  615. package/src/components/breadcrumb.tsx +188 -0
  616. package/src/components/button-group.spec.tsx +611 -0
  617. package/src/components/button-group.tsx +423 -0
  618. package/src/components/button.spec.tsx +257 -67
  619. package/src/components/button.tsx +130 -80
  620. package/src/components/card.spec.tsx +389 -0
  621. package/src/components/card.tsx +261 -0
  622. package/src/components/carousel.spec.tsx +894 -0
  623. package/src/components/carousel.tsx +376 -0
  624. package/src/components/chip.spec.tsx +200 -0
  625. package/src/components/chip.tsx +188 -0
  626. package/src/components/circular-progress.spec.tsx +289 -0
  627. package/src/components/circular-progress.tsx +145 -0
  628. package/src/components/command-palette/command-palette-input.spec.tsx +219 -219
  629. package/src/components/command-palette/command-palette-input.tsx +25 -9
  630. package/src/components/command-palette/command-palette-manager.spec.ts +132 -117
  631. package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +358 -358
  632. package/src/components/command-palette/command-palette-suggestion-list.tsx +22 -20
  633. package/src/components/command-palette/index.spec.tsx +12 -12
  634. package/src/components/command-palette/index.tsx +25 -102
  635. package/src/components/context-menu/context-menu-item.tsx +85 -0
  636. package/src/components/context-menu/context-menu-manager.spec.ts +433 -0
  637. package/src/components/context-menu/context-menu-manager.ts +148 -0
  638. package/src/components/context-menu/context-menu.spec.tsx +352 -0
  639. package/src/components/context-menu/context-menu.tsx +116 -0
  640. package/src/components/context-menu/index.ts +3 -0
  641. package/src/components/data-grid/body.spec.tsx +287 -283
  642. package/src/components/data-grid/data-grid-row.spec.tsx +165 -140
  643. package/src/components/data-grid/data-grid-row.tsx +72 -55
  644. package/src/components/data-grid/data-grid.spec.tsx +659 -729
  645. package/src/components/data-grid/data-grid.tsx +19 -15
  646. package/src/components/data-grid/footer.spec.tsx +249 -237
  647. package/src/components/data-grid/header.spec.tsx +374 -351
  648. package/src/components/data-grid/header.tsx +58 -39
  649. package/src/components/data-grid/selection-cell.spec.tsx +46 -45
  650. package/src/components/data-grid/selection-cell.tsx +2 -6
  651. package/src/components/dialog.spec.tsx +135 -0
  652. package/src/components/dialog.tsx +277 -0
  653. package/src/components/divider.spec.tsx +197 -0
  654. package/src/components/divider.tsx +147 -0
  655. package/src/components/drawer/drawer-toggle-button.spec.tsx +374 -0
  656. package/src/components/drawer/drawer-toggle-button.tsx +124 -0
  657. package/src/components/drawer/index.spec.tsx +748 -0
  658. package/src/components/drawer/index.tsx +227 -0
  659. package/src/components/dropdown.spec.tsx +445 -0
  660. package/src/components/dropdown.tsx +343 -0
  661. package/src/components/fab.spec.tsx +51 -40
  662. package/src/components/fab.tsx +32 -9
  663. package/src/components/form.spec.tsx +303 -293
  664. package/src/components/form.tsx +10 -7
  665. package/src/components/grid.spec.tsx +276 -183
  666. package/src/components/grid.tsx +10 -10
  667. package/src/components/icons/icon-definitions.spec.ts +68 -0
  668. package/src/components/icons/icon-definitions.ts +509 -0
  669. package/src/components/icons/icon-types.ts +48 -0
  670. package/src/components/icons/icon.spec.tsx +314 -0
  671. package/src/components/icons/icon.tsx +111 -0
  672. package/src/components/icons/index.ts +4 -0
  673. package/src/components/image.spec.tsx +748 -0
  674. package/src/components/image.tsx +520 -0
  675. package/src/components/index.ts +32 -4
  676. package/src/components/inputs/autocomplete.spec.tsx +10 -1
  677. package/src/components/inputs/autocomplete.tsx +13 -7
  678. package/src/components/inputs/checkbox.spec.tsx +377 -0
  679. package/src/components/inputs/checkbox.tsx +198 -0
  680. package/src/components/inputs/index.ts +7 -0
  681. package/src/components/inputs/input-number.spec.tsx +686 -0
  682. package/src/components/inputs/input-number.tsx +387 -0
  683. package/src/components/inputs/input.spec.tsx +544 -508
  684. package/src/components/inputs/input.tsx +91 -132
  685. package/src/components/inputs/radio-group.spec.tsx +281 -0
  686. package/src/components/inputs/radio-group.tsx +108 -0
  687. package/src/components/inputs/radio.spec.tsx +273 -0
  688. package/src/components/inputs/radio.tsx +199 -0
  689. package/src/components/inputs/select.spec.tsx +1237 -0
  690. package/src/components/inputs/select.tsx +775 -0
  691. package/src/components/inputs/slider.spec.tsx +1020 -0
  692. package/src/components/inputs/slider.tsx +696 -0
  693. package/src/components/inputs/switch.spec.tsx +410 -0
  694. package/src/components/inputs/switch.tsx +218 -0
  695. package/src/components/inputs/text-area.spec.tsx +186 -171
  696. package/src/components/inputs/text-area.tsx +13 -19
  697. package/src/components/linear-progress.spec.tsx +320 -0
  698. package/src/components/linear-progress.tsx +127 -0
  699. package/src/components/list/index.ts +2 -0
  700. package/src/components/list/list-item.tsx +106 -0
  701. package/src/components/list/list.spec.tsx +817 -0
  702. package/src/components/list/list.tsx +92 -0
  703. package/src/components/loader.spec.tsx +220 -204
  704. package/src/components/loader.tsx +17 -9
  705. package/src/components/menu/index.ts +2 -0
  706. package/src/components/menu/menu-types.spec.ts +122 -0
  707. package/src/components/menu/menu-types.ts +43 -0
  708. package/src/components/menu/menu.spec.tsx +483 -0
  709. package/src/components/menu/menu.tsx +326 -0
  710. package/src/components/modal.spec.tsx +65 -55
  711. package/src/components/modal.tsx +9 -6
  712. package/src/components/noty-list.spec.tsx +78 -75
  713. package/src/components/noty-list.tsx +76 -68
  714. package/src/components/page-container/index.spec.tsx +274 -0
  715. package/src/components/page-container/index.tsx +82 -0
  716. package/src/components/page-container/page-header.spec.tsx +308 -0
  717. package/src/components/page-container/page-header.tsx +127 -0
  718. package/src/components/page-layout/index.spec.tsx +882 -0
  719. package/src/components/page-layout/index.tsx +392 -0
  720. package/src/components/pagination.spec.tsx +275 -0
  721. package/src/components/pagination.tsx +249 -0
  722. package/src/components/paper.spec.tsx +26 -18
  723. package/src/components/paper.tsx +12 -10
  724. package/src/components/rating.spec.tsx +866 -0
  725. package/src/components/rating.tsx +286 -0
  726. package/src/components/result.spec.tsx +221 -0
  727. package/src/components/result.tsx +155 -0
  728. package/src/components/searchable-input-styles.ts +81 -0
  729. package/src/components/skeleton.spec.tsx +126 -118
  730. package/src/components/skeleton.tsx +23 -6
  731. package/src/components/styles.spec.ts +27 -28
  732. package/src/components/styles.tsx +15 -13
  733. package/src/components/suggest/index.spec.tsx +611 -587
  734. package/src/components/suggest/index.tsx +28 -95
  735. package/src/components/suggest/suggest-input.spec.tsx +95 -81
  736. package/src/components/suggest/suggest-input.tsx +9 -7
  737. package/src/components/suggest/suggest-manager.spec.ts +103 -93
  738. package/src/components/suggest/suggestion-list.spec.tsx +194 -173
  739. package/src/components/suggest/suggestion-list.tsx +23 -22
  740. package/src/components/tabs.spec.tsx +369 -7
  741. package/src/components/tabs.tsx +221 -18
  742. package/src/components/timeline.spec.tsx +294 -0
  743. package/src/components/timeline.tsx +221 -0
  744. package/src/components/tooltip.spec.tsx +223 -0
  745. package/src/components/tooltip.tsx +155 -0
  746. package/src/components/tree/index.ts +2 -0
  747. package/src/components/tree/tree-item.tsx +161 -0
  748. package/src/components/tree/tree.spec.tsx +677 -0
  749. package/src/components/tree/tree.tsx +111 -0
  750. package/src/components/typography.spec.tsx +235 -0
  751. package/src/components/typography.tsx +292 -0
  752. package/src/components/wizard/index.spec.tsx +77 -68
  753. package/src/services/click-away-service.spec.ts +14 -16
  754. package/src/services/click-away-service.ts +9 -3
  755. package/src/services/css-variable-theme.spec.ts +169 -1
  756. package/src/services/css-variable-theme.ts +107 -2
  757. package/src/services/default-dark-theme.ts +89 -3
  758. package/src/services/default-light-theme.ts +88 -2
  759. package/src/services/index.ts +6 -2
  760. package/src/services/layout-service.spec.ts +535 -0
  761. package/src/services/layout-service.ts +391 -0
  762. package/src/services/list-service.spec.ts +362 -0
  763. package/src/services/list-service.ts +169 -0
  764. package/src/services/palette-css-vars.ts +46 -0
  765. package/src/services/theme-provider-service.ts +246 -1
  766. package/src/services/tree-service.spec.ts +412 -0
  767. package/src/services/tree-service.ts +179 -0
  768. package/src/utils/promisify-animation.ts +7 -1
@@ -1,6 +1,6 @@
1
1
  import { Injector } from '@furystack/inject'
2
2
  import { createComponent, initializeShadeRoot } from '@furystack/shades'
3
- import { sleepAsync, using } from '@furystack/utils'
3
+ import { sleepAsync, using, usingAsync } from '@furystack/utils'
4
4
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
5
5
  import { Form, FormService } from './form.js'
6
6
 
@@ -104,378 +104,388 @@ describe('Form component', () => {
104
104
  })
105
105
 
106
106
  it('should render children', async () => {
107
- const injector = new Injector()
108
- const rootElement = document.getElementById('root') as HTMLDivElement
109
-
110
- type FormData = { name: string }
111
-
112
- initializeShadeRoot({
113
- injector,
114
- rootElement,
115
- jsxElement: (
116
- <Form<FormData>
117
- onSubmit={() => {}}
118
- validate={(data): data is FormData => {
119
- const d = data as Record<string, unknown>
120
- return typeof d.name === 'string'
121
- }}
122
- >
123
- <input name="name" type="text" />
124
- <button type="submit">Submit</button>
125
- </Form>
126
- ),
127
- })
107
+ await usingAsync(new Injector(), async (injector) => {
108
+ const rootElement = document.getElementById('root') as HTMLDivElement
109
+
110
+ type FormData = { name: string }
111
+
112
+ initializeShadeRoot({
113
+ injector,
114
+ rootElement,
115
+ jsxElement: (
116
+ <Form<FormData>
117
+ onSubmit={() => {}}
118
+ validate={(data): data is FormData => {
119
+ const d = data as Record<string, unknown>
120
+ return typeof d.name === 'string'
121
+ }}
122
+ >
123
+ <input name="name" type="text" />
124
+ <button type="submit">Submit</button>
125
+ </Form>
126
+ ),
127
+ })
128
128
 
129
- await sleepAsync(50)
129
+ await sleepAsync(50)
130
130
 
131
- const form = document.querySelector('form[is="shade-form"]')
132
- expect(form).not.toBeNull()
133
- expect(form?.querySelector('input[name="name"]')).not.toBeNull()
134
- expect(form?.querySelector('button[type="submit"]')).not.toBeNull()
131
+ const form = document.querySelector('form[is="shade-form"]')
132
+ expect(form).not.toBeNull()
133
+ expect(form?.querySelector('input[name="name"]')).not.toBeNull()
134
+ expect(form?.querySelector('button[type="submit"]')).not.toBeNull()
135
+ })
135
136
  })
136
137
 
137
138
  it('should call onSubmit with validated data when form is valid', async () => {
138
- const injector = new Injector()
139
- const rootElement = document.getElementById('root') as HTMLDivElement
140
- const onSubmit = vi.fn()
141
-
142
- type FormData = { name: string }
143
-
144
- initializeShadeRoot({
145
- injector,
146
- rootElement,
147
- jsxElement: (
148
- <Form<FormData>
149
- onSubmit={onSubmit}
150
- validate={(data): data is FormData => {
151
- const d = data as Record<string, unknown>
152
- return typeof d.name === 'string'
153
- }}
154
- >
155
- <input name="name" type="text" value="Test Name" />
156
- <button type="submit">Submit</button>
157
- </Form>
158
- ),
159
- })
139
+ await usingAsync(new Injector(), async (injector) => {
140
+ const rootElement = document.getElementById('root') as HTMLDivElement
141
+ const onSubmit = vi.fn()
142
+
143
+ type FormData = { name: string }
144
+
145
+ initializeShadeRoot({
146
+ injector,
147
+ rootElement,
148
+ jsxElement: (
149
+ <Form<FormData>
150
+ onSubmit={onSubmit}
151
+ validate={(data): data is FormData => {
152
+ const d = data as Record<string, unknown>
153
+ return typeof d.name === 'string'
154
+ }}
155
+ >
156
+ <input name="name" type="text" value="Test Name" />
157
+ <button type="submit">Submit</button>
158
+ </Form>
159
+ ),
160
+ })
160
161
 
161
- await sleepAsync(50)
162
+ await sleepAsync(50)
162
163
 
163
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
164
- const input = form.querySelector('input[name="name"]') as HTMLInputElement
165
- input.value = 'Test Name'
164
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
165
+ const input = form.querySelector('input[name="name"]') as HTMLInputElement
166
+ input.value = 'Test Name'
166
167
 
167
- const submitEvent = new Event('submit', { bubbles: true, cancelable: true })
168
- form.dispatchEvent(submitEvent)
168
+ const submitEvent = new Event('submit', { bubbles: true, cancelable: true })
169
+ form.dispatchEvent(submitEvent)
169
170
 
170
- await sleepAsync(50)
171
+ await sleepAsync(50)
171
172
 
172
- expect(onSubmit).toHaveBeenCalledWith({ name: 'Test Name' })
173
+ expect(onSubmit).toHaveBeenCalledWith({ name: 'Test Name' })
174
+ })
173
175
  })
174
176
 
175
177
  it('should not call onSubmit when validation fails', async () => {
176
- const injector = new Injector()
177
- const rootElement = document.getElementById('root') as HTMLDivElement
178
- const onSubmit = vi.fn()
179
-
180
- type FormData = { name: string; email: string }
181
-
182
- initializeShadeRoot({
183
- injector,
184
- rootElement,
185
- jsxElement: (
186
- <Form<FormData>
187
- onSubmit={onSubmit}
188
- validate={(data): data is FormData => {
189
- const d = data as Record<string, unknown>
190
- return typeof d.name === 'string' && typeof d.email === 'string' && d.email.includes('@')
191
- }}
192
- >
193
- <input name="name" type="text" />
194
- <input name="email" type="text" />
195
- <button type="submit">Submit</button>
196
- </Form>
197
- ),
198
- })
178
+ await usingAsync(new Injector(), async (injector) => {
179
+ const rootElement = document.getElementById('root') as HTMLDivElement
180
+ const onSubmit = vi.fn()
181
+
182
+ type FormData = { name: string; email: string }
183
+
184
+ initializeShadeRoot({
185
+ injector,
186
+ rootElement,
187
+ jsxElement: (
188
+ <Form<FormData>
189
+ onSubmit={onSubmit}
190
+ validate={(data): data is FormData => {
191
+ const d = data as Record<string, unknown>
192
+ return typeof d.name === 'string' && typeof d.email === 'string' && d.email.includes('@')
193
+ }}
194
+ >
195
+ <input name="name" type="text" />
196
+ <input name="email" type="text" />
197
+ <button type="submit">Submit</button>
198
+ </Form>
199
+ ),
200
+ })
199
201
 
200
- await sleepAsync(50)
202
+ await sleepAsync(50)
201
203
 
202
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
203
- const nameInput = form.querySelector('input[name="name"]') as HTMLInputElement
204
- const emailInput = form.querySelector('input[name="email"]') as HTMLInputElement
204
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
205
+ const nameInput = form.querySelector('input[name="name"]') as HTMLInputElement
206
+ const emailInput = form.querySelector('input[name="email"]') as HTMLInputElement
205
207
 
206
- nameInput.value = 'Test'
207
- emailInput.value = 'invalid-email'
208
+ nameInput.value = 'Test'
209
+ emailInput.value = 'invalid-email'
208
210
 
209
- const submitEvent = new Event('submit', { bubbles: true, cancelable: true })
210
- form.dispatchEvent(submitEvent)
211
+ const submitEvent = new Event('submit', { bubbles: true, cancelable: true })
212
+ form.dispatchEvent(submitEvent)
211
213
 
212
- await sleepAsync(50)
214
+ await sleepAsync(50)
213
215
 
214
- expect(onSubmit).not.toHaveBeenCalled()
216
+ expect(onSubmit).not.toHaveBeenCalled()
217
+ })
215
218
  })
216
219
 
217
220
  it('should set validation result to validation-failed when validate returns false', async () => {
218
- const injector = new Injector()
219
- const rootElement = document.getElementById('root') as HTMLDivElement
220
-
221
- type FormData = { email: string }
222
-
223
- initializeShadeRoot({
224
- injector,
225
- rootElement,
226
- jsxElement: (
227
- <Form<FormData>
228
- onSubmit={() => {}}
229
- validate={(data): data is FormData => {
230
- const d = data as Record<string, unknown>
231
- return typeof d.email === 'string' && d.email.includes('@')
232
- }}
233
- >
234
- <input name="email" type="text" />
235
- <button type="submit">Submit</button>
236
- </Form>
237
- ),
238
- })
221
+ await usingAsync(new Injector(), async (injector) => {
222
+ const rootElement = document.getElementById('root') as HTMLDivElement
223
+
224
+ type FormData = { email: string }
225
+
226
+ initializeShadeRoot({
227
+ injector,
228
+ rootElement,
229
+ jsxElement: (
230
+ <Form<FormData>
231
+ onSubmit={() => {}}
232
+ validate={(data): data is FormData => {
233
+ const d = data as Record<string, unknown>
234
+ return typeof d.email === 'string' && d.email.includes('@')
235
+ }}
236
+ >
237
+ <input name="email" type="text" />
238
+ <button type="submit">Submit</button>
239
+ </Form>
240
+ ),
241
+ })
239
242
 
240
- await sleepAsync(50)
243
+ await sleepAsync(50)
241
244
 
242
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
243
- const input = form.querySelector('input[name="email"]') as HTMLInputElement
244
- input.value = 'no-at-sign'
245
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
246
+ const input = form.querySelector('input[name="email"]') as HTMLInputElement
247
+ input.value = 'no-at-sign'
245
248
 
246
- const changeEvent = new Event('change', { bubbles: true })
247
- form.dispatchEvent(changeEvent)
249
+ const changeEvent = new Event('change', { bubbles: true })
250
+ form.dispatchEvent(changeEvent)
248
251
 
249
- await sleepAsync(50)
252
+ await sleepAsync(50)
250
253
 
251
- const formInjector = (form as unknown as { injector: Injector }).injector
252
- const formService = formInjector.getInstance(FormService)
254
+ const formInjector = (form as unknown as { injector: Injector }).injector
255
+ const formService = formInjector.getInstance(FormService)
253
256
 
254
- expect(formService.validationResult.getValue()).toEqual({
255
- isValid: false,
256
- reason: 'validation-failed',
257
+ expect(formService.validationResult.getValue()).toEqual({
258
+ isValid: false,
259
+ reason: 'validation-failed',
260
+ })
257
261
  })
258
262
  })
259
263
 
260
264
  it('should reset form state on reset event', async () => {
261
- const injector = new Injector()
262
- const rootElement = document.getElementById('root') as HTMLDivElement
263
- const onReset = vi.fn()
264
-
265
- type FormData = { name: string }
266
-
267
- initializeShadeRoot({
268
- injector,
269
- rootElement,
270
- jsxElement: (
271
- <Form<FormData>
272
- onSubmit={() => {}}
273
- onReset={onReset}
274
- validate={(data): data is FormData => {
275
- const d = data as Record<string, unknown>
276
- return typeof d.name === 'string'
277
- }}
278
- >
279
- <input name="name" type="text" />
280
- <button type="submit">Submit</button>
281
- <button type="reset">Reset</button>
282
- </Form>
283
- ),
284
- })
265
+ await usingAsync(new Injector(), async (injector) => {
266
+ const rootElement = document.getElementById('root') as HTMLDivElement
267
+ const onReset = vi.fn()
268
+
269
+ type FormData = { name: string }
270
+
271
+ initializeShadeRoot({
272
+ injector,
273
+ rootElement,
274
+ jsxElement: (
275
+ <Form<FormData>
276
+ onSubmit={() => {}}
277
+ onReset={onReset}
278
+ validate={(data): data is FormData => {
279
+ const d = data as Record<string, unknown>
280
+ return typeof d.name === 'string'
281
+ }}
282
+ >
283
+ <input name="name" type="text" />
284
+ <button type="submit">Submit</button>
285
+ <button type="reset">Reset</button>
286
+ </Form>
287
+ ),
288
+ })
285
289
 
286
- await sleepAsync(50)
290
+ await sleepAsync(50)
287
291
 
288
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
289
- const input = form.querySelector('input[name="name"]') as HTMLInputElement
290
- input.value = 'Test'
292
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
293
+ const input = form.querySelector('input[name="name"]') as HTMLInputElement
294
+ input.value = 'Test'
291
295
 
292
- const changeEvent = new Event('change', { bubbles: true })
293
- form.dispatchEvent(changeEvent)
296
+ const changeEvent = new Event('change', { bubbles: true })
297
+ form.dispatchEvent(changeEvent)
294
298
 
295
- await sleepAsync(50)
299
+ await sleepAsync(50)
296
300
 
297
- const formInjector = (form as unknown as { injector: Injector }).injector
298
- const formService = formInjector.getInstance(FormService)
301
+ const formInjector = (form as unknown as { injector: Injector }).injector
302
+ const formService = formInjector.getInstance(FormService)
299
303
 
300
- expect(formService.rawFormData.getValue()).toEqual({ name: 'Test' })
304
+ expect(formService.rawFormData.getValue()).toEqual({ name: 'Test' })
301
305
 
302
- const resetEvent = new Event('reset', { bubbles: true })
303
- form.dispatchEvent(resetEvent)
306
+ const resetEvent = new Event('reset', { bubbles: true })
307
+ form.dispatchEvent(resetEvent)
304
308
 
305
- await sleepAsync(50)
309
+ await sleepAsync(50)
306
310
 
307
- expect(formService.rawFormData.getValue()).toBeNull()
308
- expect(formService.validationResult.getValue()).toEqual({ isValid: null })
309
- expect(formService.validatedFormData.getValue()).toBeNull()
311
+ expect(formService.rawFormData.getValue()).toBeNull()
312
+ expect(formService.validationResult.getValue()).toEqual({ isValid: null })
313
+ expect(formService.validatedFormData.getValue()).toBeNull()
314
+ })
310
315
  })
311
316
 
312
317
  it('should update rawFormData on change event', async () => {
313
- const injector = new Injector()
314
- const rootElement = document.getElementById('root') as HTMLDivElement
315
-
316
- type FormData = { username: string }
317
-
318
- initializeShadeRoot({
319
- injector,
320
- rootElement,
321
- jsxElement: (
322
- <Form<FormData>
323
- onSubmit={() => {}}
324
- validate={(data): data is FormData => {
325
- const d = data as Record<string, unknown>
326
- return typeof d.username === 'string'
327
- }}
328
- >
329
- <input name="username" type="text" />
330
- </Form>
331
- ),
332
- })
318
+ await usingAsync(new Injector(), async (injector) => {
319
+ const rootElement = document.getElementById('root') as HTMLDivElement
320
+
321
+ type FormData = { username: string }
322
+
323
+ initializeShadeRoot({
324
+ injector,
325
+ rootElement,
326
+ jsxElement: (
327
+ <Form<FormData>
328
+ onSubmit={() => {}}
329
+ validate={(data): data is FormData => {
330
+ const d = data as Record<string, unknown>
331
+ return typeof d.username === 'string'
332
+ }}
333
+ >
334
+ <input name="username" type="text" />
335
+ </Form>
336
+ ),
337
+ })
333
338
 
334
- await sleepAsync(50)
339
+ await sleepAsync(50)
335
340
 
336
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
337
- const input = form.querySelector('input[name="username"]') as HTMLInputElement
338
- input.value = 'testuser'
341
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
342
+ const input = form.querySelector('input[name="username"]') as HTMLInputElement
343
+ input.value = 'testuser'
339
344
 
340
- const changeEvent = new Event('change', { bubbles: true })
341
- form.dispatchEvent(changeEvent)
345
+ const changeEvent = new Event('change', { bubbles: true })
346
+ form.dispatchEvent(changeEvent)
342
347
 
343
- await sleepAsync(50)
348
+ await sleepAsync(50)
344
349
 
345
- const formInjector = (form as unknown as { injector: Injector }).injector
346
- const formService = formInjector.getInstance(FormService)
350
+ const formInjector = (form as unknown as { injector: Injector }).injector
351
+ const formService = formInjector.getInstance(FormService)
347
352
 
348
- expect(formService.rawFormData.getValue()).toEqual({ username: 'testuser' })
353
+ expect(formService.rawFormData.getValue()).toEqual({ username: 'testuser' })
354
+ })
349
355
  })
350
356
 
351
357
  it('should set validatedFormData when validation passes', async () => {
352
- const injector = new Injector()
353
- const rootElement = document.getElementById('root') as HTMLDivElement
354
-
355
- type FormData = { title: string }
356
-
357
- initializeShadeRoot({
358
- injector,
359
- rootElement,
360
- jsxElement: (
361
- <Form<FormData>
362
- onSubmit={() => {}}
363
- validate={(data): data is FormData => {
364
- const d = data as Record<string, unknown>
365
- return typeof d.title === 'string'
366
- }}
367
- >
368
- <input name="title" type="text" />
369
- </Form>
370
- ),
371
- })
358
+ await usingAsync(new Injector(), async (injector) => {
359
+ const rootElement = document.getElementById('root') as HTMLDivElement
360
+
361
+ type FormData = { title: string }
362
+
363
+ initializeShadeRoot({
364
+ injector,
365
+ rootElement,
366
+ jsxElement: (
367
+ <Form<FormData>
368
+ onSubmit={() => {}}
369
+ validate={(data): data is FormData => {
370
+ const d = data as Record<string, unknown>
371
+ return typeof d.title === 'string'
372
+ }}
373
+ >
374
+ <input name="title" type="text" />
375
+ </Form>
376
+ ),
377
+ })
372
378
 
373
- await sleepAsync(50)
379
+ await sleepAsync(50)
374
380
 
375
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
376
- const input = form.querySelector('input[name="title"]') as HTMLInputElement
377
- input.value = 'My Title'
381
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
382
+ const input = form.querySelector('input[name="title"]') as HTMLInputElement
383
+ input.value = 'My Title'
378
384
 
379
- const changeEvent = new Event('change', { bubbles: true })
380
- form.dispatchEvent(changeEvent)
385
+ const changeEvent = new Event('change', { bubbles: true })
386
+ form.dispatchEvent(changeEvent)
381
387
 
382
- await sleepAsync(50)
388
+ await sleepAsync(50)
383
389
 
384
- const formInjector = (form as unknown as { injector: Injector }).injector
385
- const formService = formInjector.getInstance(FormService)
390
+ const formInjector = (form as unknown as { injector: Injector }).injector
391
+ const formService = formInjector.getInstance(FormService)
386
392
 
387
- expect(formService.validatedFormData.getValue()).toEqual({ title: 'My Title' })
388
- expect(formService.validationResult.getValue()).toEqual({ isValid: true })
393
+ expect(formService.validatedFormData.getValue()).toEqual({ title: 'My Title' })
394
+ expect(formService.validationResult.getValue()).toEqual({ isValid: true })
395
+ })
389
396
  })
390
397
 
391
398
  it('should prevent default on submit event', async () => {
392
- const injector = new Injector()
393
- const rootElement = document.getElementById('root') as HTMLDivElement
394
-
395
- type FormData = { field: string }
396
-
397
- initializeShadeRoot({
398
- injector,
399
- rootElement,
400
- jsxElement: (
401
- <Form<FormData> onSubmit={() => {}} validate={(_data): _data is FormData => true}>
402
- <input name="field" type="text" />
403
- <button type="submit">Submit</button>
404
- </Form>
405
- ),
406
- })
399
+ await usingAsync(new Injector(), async (injector) => {
400
+ const rootElement = document.getElementById('root') as HTMLDivElement
401
+
402
+ type FormData = { field: string }
403
+
404
+ initializeShadeRoot({
405
+ injector,
406
+ rootElement,
407
+ jsxElement: (
408
+ <Form<FormData> onSubmit={() => {}} validate={(_data): _data is FormData => true}>
409
+ <input name="field" type="text" />
410
+ <button type="submit">Submit</button>
411
+ </Form>
412
+ ),
413
+ })
407
414
 
408
- await sleepAsync(50)
415
+ await sleepAsync(50)
409
416
 
410
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
417
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
411
418
 
412
- const submitEvent = new Event('submit', { bubbles: true, cancelable: true })
413
- const preventDefaultSpy = vi.spyOn(submitEvent, 'preventDefault')
419
+ const submitEvent = new Event('submit', { bubbles: true, cancelable: true })
420
+ const preventDefaultSpy = vi.spyOn(submitEvent, 'preventDefault')
414
421
 
415
- form.dispatchEvent(submitEvent)
422
+ form.dispatchEvent(submitEvent)
416
423
 
417
- expect(preventDefaultSpy).toHaveBeenCalled()
424
+ expect(preventDefaultSpy).toHaveBeenCalled()
425
+ })
418
426
  })
419
427
 
420
428
  it('should create child injector with FormService', async () => {
421
- const injector = new Injector()
422
- const rootElement = document.getElementById('root') as HTMLDivElement
423
-
424
- type FormData = { data: string }
425
-
426
- initializeShadeRoot({
427
- injector,
428
- rootElement,
429
- jsxElement: (
430
- <Form<FormData> onSubmit={() => {}} validate={(_data): _data is FormData => true}>
431
- <input name="data" type="text" />
432
- </Form>
433
- ),
434
- })
429
+ await usingAsync(new Injector(), async (injector) => {
430
+ const rootElement = document.getElementById('root') as HTMLDivElement
431
+
432
+ type FormData = { data: string }
433
+
434
+ initializeShadeRoot({
435
+ injector,
436
+ rootElement,
437
+ jsxElement: (
438
+ <Form<FormData> onSubmit={() => {}} validate={(_data): _data is FormData => true}>
439
+ <input name="data" type="text" />
440
+ </Form>
441
+ ),
442
+ })
435
443
 
436
- await sleepAsync(50)
444
+ await sleepAsync(50)
437
445
 
438
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
439
- const formInjector = (form as unknown as { injector: Injector }).injector
446
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
447
+ const formInjector = (form as unknown as { injector: Injector }).injector
440
448
 
441
- expect(formInjector).toBeInstanceOf(Injector)
442
- expect(formInjector).not.toBe(injector)
449
+ expect(formInjector).toBeInstanceOf(Injector)
450
+ expect(formInjector).not.toBe(injector)
443
451
 
444
- const formService = formInjector.getInstance(FormService)
445
- expect(formService).toBeInstanceOf(FormService)
452
+ const formService = formInjector.getInstance(FormService)
453
+ expect(formService).toBeInstanceOf(FormService)
454
+ })
446
455
  })
447
456
 
448
457
  it('should handle oninvalid event and trigger validation', async () => {
449
- const injector = new Injector()
450
- const rootElement = document.getElementById('root') as HTMLDivElement
451
-
452
- type FormData = { required: string }
453
-
454
- initializeShadeRoot({
455
- injector,
456
- rootElement,
457
- jsxElement: (
458
- <Form<FormData>
459
- onSubmit={() => {}}
460
- validate={(data): data is FormData => {
461
- const d = data as Record<string, unknown>
462
- return typeof d.required === 'string' && d.required.length > 0
463
- }}
464
- >
465
- <input name="required" type="text" required />
466
- <button type="submit">Submit</button>
467
- </Form>
468
- ),
469
- })
458
+ await usingAsync(new Injector(), async (injector) => {
459
+ const rootElement = document.getElementById('root') as HTMLDivElement
460
+
461
+ type FormData = { required: string }
462
+
463
+ initializeShadeRoot({
464
+ injector,
465
+ rootElement,
466
+ jsxElement: (
467
+ <Form<FormData>
468
+ onSubmit={() => {}}
469
+ validate={(data): data is FormData => {
470
+ const d = data as Record<string, unknown>
471
+ return typeof d.required === 'string' && d.required.length > 0
472
+ }}
473
+ >
474
+ <input name="required" type="text" required />
475
+ <button type="submit">Submit</button>
476
+ </Form>
477
+ ),
478
+ })
470
479
 
471
- await sleepAsync(50)
480
+ await sleepAsync(50)
472
481
 
473
- const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
474
- const input = form.querySelector('input[name="required"]') as HTMLInputElement
482
+ const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
483
+ const input = form.querySelector('input[name="required"]') as HTMLInputElement
475
484
 
476
- const invalidEvent = new Event('invalid', { bubbles: true })
477
- input.dispatchEvent(invalidEvent)
485
+ const invalidEvent = new Event('invalid', { bubbles: true })
486
+ input.dispatchEvent(invalidEvent)
478
487
 
479
- await sleepAsync(50)
488
+ await sleepAsync(50)
489
+ })
480
490
  })
481
491
  })