@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,5 +1,6 @@
1
1
  import { Injector } from '@furystack/inject';
2
2
  import { createComponent, initializeShadeRoot } from '@furystack/shades';
3
+ import { usingAsync } from '@furystack/utils';
3
4
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
4
5
  import { Suggest } from './index.js';
5
6
  describe('Suggest', () => {
@@ -54,461 +55,484 @@ describe('Suggest', () => {
54
55
  });
55
56
  describe('rendering', () => {
56
57
  it('should render with shadow DOM', async () => {
57
- const injector = new Injector();
58
- const rootElement = document.getElementById('root');
59
- const onSelectSuggestion = vi.fn();
60
- initializeShadeRoot({
61
- injector,
62
- rootElement,
63
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
58
+ await usingAsync(new Injector(), async (injector) => {
59
+ const rootElement = document.getElementById('root');
60
+ const onSelectSuggestion = vi.fn();
61
+ initializeShadeRoot({
62
+ injector,
63
+ rootElement,
64
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
65
+ });
66
+ await advanceTimers(50);
67
+ const suggest = document.querySelector('shade-suggest');
68
+ expect(suggest).not.toBeNull();
64
69
  });
65
- await advanceTimers(50);
66
- const suggest = document.querySelector('shade-suggest');
67
- expect(suggest).not.toBeNull();
68
70
  });
69
71
  it('should render the default prefix', async () => {
70
- const injector = new Injector();
71
- const rootElement = document.getElementById('root');
72
- const onSelectSuggestion = vi.fn();
73
- initializeShadeRoot({
74
- injector,
75
- rootElement,
76
- jsxElement: (createComponent(Suggest, { defaultPrefix: "Search:", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
72
+ await usingAsync(new Injector(), async (injector) => {
73
+ const rootElement = document.getElementById('root');
74
+ const onSelectSuggestion = vi.fn();
75
+ initializeShadeRoot({
76
+ injector,
77
+ rootElement,
78
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "Search:", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
79
+ });
80
+ await advanceTimers(50);
81
+ const suggest = document.querySelector('shade-suggest');
82
+ const termIcon = suggest?.querySelector('.term-icon');
83
+ expect(termIcon?.textContent).toBe('Search:');
77
84
  });
78
- await advanceTimers(50);
79
- const suggest = document.querySelector('shade-suggest');
80
- const termIcon = suggest?.querySelector('.term-icon');
81
- expect(termIcon?.textContent).toBe('Search:');
82
85
  });
83
86
  it('should render the input container', async () => {
84
- const injector = new Injector();
85
- const rootElement = document.getElementById('root');
86
- const onSelectSuggestion = vi.fn();
87
- initializeShadeRoot({
88
- injector,
89
- rootElement,
90
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
87
+ await usingAsync(new Injector(), async (injector) => {
88
+ const rootElement = document.getElementById('root');
89
+ const onSelectSuggestion = vi.fn();
90
+ initializeShadeRoot({
91
+ injector,
92
+ rootElement,
93
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
94
+ });
95
+ await advanceTimers(50);
96
+ const suggest = document.querySelector('shade-suggest');
97
+ const inputContainer = suggest?.querySelector('.input-container');
98
+ expect(inputContainer).not.toBeNull();
91
99
  });
92
- await advanceTimers(50);
93
- const suggest = document.querySelector('shade-suggest');
94
- const inputContainer = suggest?.querySelector('.input-container');
95
- expect(inputContainer).not.toBeNull();
96
100
  });
97
101
  it('should apply custom styles', async () => {
98
- const injector = new Injector();
99
- const rootElement = document.getElementById('root');
100
- const onSelectSuggestion = vi.fn();
101
- initializeShadeRoot({
102
- injector,
103
- rootElement,
104
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion, style: { backgroundColor: 'red' } })),
102
+ await usingAsync(new Injector(), async (injector) => {
103
+ const rootElement = document.getElementById('root');
104
+ const onSelectSuggestion = vi.fn();
105
+ initializeShadeRoot({
106
+ injector,
107
+ rootElement,
108
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion, style: { backgroundColor: 'red' } })),
109
+ });
110
+ await advanceTimers(50);
111
+ const suggest = document.querySelector('shade-suggest');
112
+ const inputContainer = suggest?.querySelector('.input-container');
113
+ expect(inputContainer?.style.backgroundColor).toBe('red');
105
114
  });
106
- await advanceTimers(50);
107
- const suggest = document.querySelector('shade-suggest');
108
- const inputContainer = suggest?.querySelector('.input-container');
109
- expect(inputContainer?.style.backgroundColor).toBe('red');
110
115
  });
111
116
  });
112
117
  describe('keyboard navigation', () => {
113
118
  it('should handle ArrowDown to move selection down', async () => {
114
- const injector = new Injector();
115
- const rootElement = document.getElementById('root');
116
- const onSelectSuggestion = vi.fn();
117
- initializeShadeRoot({
118
- injector,
119
- rootElement,
120
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
119
+ await usingAsync(new Injector(), async (injector) => {
120
+ const rootElement = document.getElementById('root');
121
+ const onSelectSuggestion = vi.fn();
122
+ initializeShadeRoot({
123
+ injector,
124
+ rootElement,
125
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
126
+ });
127
+ await advanceTimers(50);
128
+ const suggest = document.querySelector('shade-suggest');
129
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
130
+ const input = suggest?.querySelector('input');
131
+ input.value = 'test';
132
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
133
+ Object.defineProperty(keyupEvent, 'target', { value: input });
134
+ wrapper?.dispatchEvent(keyupEvent);
135
+ await advanceTimers(300);
136
+ const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true });
137
+ Object.defineProperty(arrowDownEvent, 'target', { value: input });
138
+ wrapper?.dispatchEvent(arrowDownEvent);
139
+ await advanceTimers(50);
140
+ const selectedItems = suggest?.querySelectorAll('.suggestion-item.selected');
141
+ expect(selectedItems?.length).toBeGreaterThanOrEqual(0);
121
142
  });
122
- await advanceTimers(50);
123
- const suggest = document.querySelector('shade-suggest');
124
- const wrapper = suggest?.querySelector('.suggest-wrapper');
125
- const input = suggest?.querySelector('input');
126
- input.value = 'test';
127
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
128
- Object.defineProperty(keyupEvent, 'target', { value: input });
129
- wrapper?.dispatchEvent(keyupEvent);
130
- await advanceTimers(300);
131
- const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true });
132
- Object.defineProperty(arrowDownEvent, 'target', { value: input });
133
- wrapper?.dispatchEvent(arrowDownEvent);
134
- await advanceTimers(50);
135
- const selectedItems = suggest?.querySelectorAll('.suggestion-item.selected');
136
- expect(selectedItems?.length).toBeGreaterThanOrEqual(0);
137
143
  });
138
144
  it('should handle ArrowUp to move selection up', async () => {
139
- const injector = new Injector();
140
- const rootElement = document.getElementById('root');
141
- const onSelectSuggestion = vi.fn();
142
- initializeShadeRoot({
143
- injector,
144
- rootElement,
145
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
145
+ await usingAsync(new Injector(), async (injector) => {
146
+ const rootElement = document.getElementById('root');
147
+ const onSelectSuggestion = vi.fn();
148
+ initializeShadeRoot({
149
+ injector,
150
+ rootElement,
151
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
152
+ });
153
+ await advanceTimers(50);
154
+ const suggest = document.querySelector('shade-suggest');
155
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
156
+ const input = suggest?.querySelector('input');
157
+ input.value = 'test';
158
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
159
+ Object.defineProperty(keyupEvent, 'target', { value: input });
160
+ wrapper?.dispatchEvent(keyupEvent);
161
+ await advanceTimers(300);
162
+ const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true });
163
+ Object.defineProperty(arrowDownEvent, 'target', { value: input });
164
+ wrapper?.dispatchEvent(arrowDownEvent);
165
+ wrapper?.dispatchEvent(arrowDownEvent);
166
+ const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true });
167
+ Object.defineProperty(arrowUpEvent, 'target', { value: input });
168
+ wrapper?.dispatchEvent(arrowUpEvent);
169
+ await advanceTimers(50);
170
+ expect(suggest).not.toBeNull();
146
171
  });
147
- await advanceTimers(50);
148
- const suggest = document.querySelector('shade-suggest');
149
- const wrapper = suggest?.querySelector('.suggest-wrapper');
150
- const input = suggest?.querySelector('input');
151
- input.value = 'test';
152
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
153
- Object.defineProperty(keyupEvent, 'target', { value: input });
154
- wrapper?.dispatchEvent(keyupEvent);
155
- await advanceTimers(300);
156
- const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true });
157
- Object.defineProperty(arrowDownEvent, 'target', { value: input });
158
- wrapper?.dispatchEvent(arrowDownEvent);
159
- wrapper?.dispatchEvent(arrowDownEvent);
160
- const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true });
161
- Object.defineProperty(arrowUpEvent, 'target', { value: input });
162
- wrapper?.dispatchEvent(arrowUpEvent);
163
- await advanceTimers(50);
164
- expect(suggest).not.toBeNull();
165
172
  });
166
173
  it('should handle Enter to select current suggestion', async () => {
167
- const injector = new Injector();
168
- const rootElement = document.getElementById('root');
169
- const onSelectSuggestion = vi.fn();
170
- initializeShadeRoot({
171
- injector,
172
- rootElement,
173
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
174
+ await usingAsync(new Injector(), async (injector) => {
175
+ const rootElement = document.getElementById('root');
176
+ const onSelectSuggestion = vi.fn();
177
+ initializeShadeRoot({
178
+ injector,
179
+ rootElement,
180
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
181
+ });
182
+ await advanceTimers(50);
183
+ const suggest = document.querySelector('shade-suggest');
184
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
185
+ const input = suggest?.querySelector('input');
186
+ input.value = 'First';
187
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
188
+ Object.defineProperty(keyupEvent, 'target', { value: input });
189
+ wrapper?.dispatchEvent(keyupEvent);
190
+ await advanceTimers(300);
191
+ const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
192
+ Object.defineProperty(enterEvent, 'target', { value: input });
193
+ wrapper?.dispatchEvent(enterEvent);
194
+ await advanceTimers(50);
195
+ expect(onSelectSuggestion).toHaveBeenCalled();
174
196
  });
175
- await advanceTimers(50);
176
- const suggest = document.querySelector('shade-suggest');
177
- const wrapper = suggest?.querySelector('.suggest-wrapper');
178
- const input = suggest?.querySelector('input');
179
- input.value = 'First';
180
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
181
- Object.defineProperty(keyupEvent, 'target', { value: input });
182
- wrapper?.dispatchEvent(keyupEvent);
183
- await advanceTimers(300);
184
- const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
185
- Object.defineProperty(enterEvent, 'target', { value: input });
186
- wrapper?.dispatchEvent(enterEvent);
187
- await advanceTimers(50);
188
- expect(onSelectSuggestion).toHaveBeenCalled();
189
197
  });
190
198
  it('should prevent default on Enter key', async () => {
191
- const injector = new Injector();
192
- const rootElement = document.getElementById('root');
193
- const onSelectSuggestion = vi.fn();
194
- initializeShadeRoot({
195
- injector,
196
- rootElement,
197
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
199
+ await usingAsync(new Injector(), async (injector) => {
200
+ const rootElement = document.getElementById('root');
201
+ const onSelectSuggestion = vi.fn();
202
+ initializeShadeRoot({
203
+ injector,
204
+ rootElement,
205
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
206
+ });
207
+ await advanceTimers(50);
208
+ const suggest = document.querySelector('shade-suggest');
209
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
210
+ const input = suggest?.querySelector('input');
211
+ input.value = 'First';
212
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
213
+ Object.defineProperty(keyupEvent, 'target', { value: input });
214
+ wrapper?.dispatchEvent(keyupEvent);
215
+ await advanceTimers(300);
216
+ const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true, cancelable: true });
217
+ Object.defineProperty(enterEvent, 'target', { value: input });
218
+ const preventDefaultSpy = vi.spyOn(enterEvent, 'preventDefault');
219
+ wrapper?.dispatchEvent(enterEvent);
220
+ expect(preventDefaultSpy).toHaveBeenCalled();
198
221
  });
199
- await advanceTimers(50);
200
- const suggest = document.querySelector('shade-suggest');
201
- const wrapper = suggest?.querySelector('.suggest-wrapper');
202
- const input = suggest?.querySelector('input');
203
- input.value = 'First';
204
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
205
- Object.defineProperty(keyupEvent, 'target', { value: input });
206
- wrapper?.dispatchEvent(keyupEvent);
207
- await advanceTimers(300);
208
- const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true, cancelable: true });
209
- Object.defineProperty(enterEvent, 'target', { value: input });
210
- const preventDefaultSpy = vi.spyOn(enterEvent, 'preventDefault');
211
- wrapper?.dispatchEvent(enterEvent);
212
- expect(preventDefaultSpy).toHaveBeenCalled();
213
222
  });
214
223
  it('should prevent default on ArrowUp key', async () => {
215
- const injector = new Injector();
216
- const rootElement = document.getElementById('root');
217
- const onSelectSuggestion = vi.fn();
218
- initializeShadeRoot({
219
- injector,
220
- rootElement,
221
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
224
+ await usingAsync(new Injector(), async (injector) => {
225
+ const rootElement = document.getElementById('root');
226
+ const onSelectSuggestion = vi.fn();
227
+ initializeShadeRoot({
228
+ injector,
229
+ rootElement,
230
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
231
+ });
232
+ await advanceTimers(50);
233
+ const suggest = document.querySelector('shade-suggest');
234
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
235
+ const input = suggest?.querySelector('input');
236
+ const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true, cancelable: true });
237
+ Object.defineProperty(arrowUpEvent, 'target', { value: input });
238
+ const preventDefaultSpy = vi.spyOn(arrowUpEvent, 'preventDefault');
239
+ wrapper?.dispatchEvent(arrowUpEvent);
240
+ expect(preventDefaultSpy).toHaveBeenCalled();
222
241
  });
223
- await advanceTimers(50);
224
- const suggest = document.querySelector('shade-suggest');
225
- const wrapper = suggest?.querySelector('.suggest-wrapper');
226
- const input = suggest?.querySelector('input');
227
- const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true, cancelable: true });
228
- Object.defineProperty(arrowUpEvent, 'target', { value: input });
229
- const preventDefaultSpy = vi.spyOn(arrowUpEvent, 'preventDefault');
230
- wrapper?.dispatchEvent(arrowUpEvent);
231
- expect(preventDefaultSpy).toHaveBeenCalled();
232
242
  });
233
243
  it('should prevent default on ArrowDown key', async () => {
234
- const injector = new Injector();
235
- const rootElement = document.getElementById('root');
236
- const onSelectSuggestion = vi.fn();
237
- initializeShadeRoot({
238
- injector,
239
- rootElement,
240
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
244
+ await usingAsync(new Injector(), async (injector) => {
245
+ const rootElement = document.getElementById('root');
246
+ const onSelectSuggestion = vi.fn();
247
+ initializeShadeRoot({
248
+ injector,
249
+ rootElement,
250
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
251
+ });
252
+ await advanceTimers(50);
253
+ const suggest = document.querySelector('shade-suggest');
254
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
255
+ const input = suggest?.querySelector('input');
256
+ const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true, cancelable: true });
257
+ Object.defineProperty(arrowDownEvent, 'target', { value: input });
258
+ const preventDefaultSpy = vi.spyOn(arrowDownEvent, 'preventDefault');
259
+ wrapper?.dispatchEvent(arrowDownEvent);
260
+ expect(preventDefaultSpy).toHaveBeenCalled();
241
261
  });
242
- await advanceTimers(50);
243
- const suggest = document.querySelector('shade-suggest');
244
- const wrapper = suggest?.querySelector('.suggest-wrapper');
245
- const input = suggest?.querySelector('input');
246
- const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true, cancelable: true });
247
- Object.defineProperty(arrowDownEvent, 'target', { value: input });
248
- const preventDefaultSpy = vi.spyOn(arrowDownEvent, 'preventDefault');
249
- wrapper?.dispatchEvent(arrowDownEvent);
250
- expect(preventDefaultSpy).toHaveBeenCalled();
251
262
  });
252
263
  it('should not move selection below 0', async () => {
253
- const injector = new Injector();
254
- const rootElement = document.getElementById('root');
255
- const onSelectSuggestion = vi.fn();
256
- initializeShadeRoot({
257
- injector,
258
- rootElement,
259
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
264
+ await usingAsync(new Injector(), async (injector) => {
265
+ const rootElement = document.getElementById('root');
266
+ const onSelectSuggestion = vi.fn();
267
+ initializeShadeRoot({
268
+ injector,
269
+ rootElement,
270
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
271
+ });
272
+ await advanceTimers(50);
273
+ const suggest = document.querySelector('shade-suggest');
274
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
275
+ const input = suggest?.querySelector('input');
276
+ for (let i = 0; i < 5; i++) {
277
+ const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true });
278
+ Object.defineProperty(arrowUpEvent, 'target', { value: input });
279
+ wrapper?.dispatchEvent(arrowUpEvent);
280
+ }
281
+ await advanceTimers(50);
282
+ expect(suggest).not.toBeNull();
260
283
  });
261
- await advanceTimers(50);
262
- const suggest = document.querySelector('shade-suggest');
263
- const wrapper = suggest?.querySelector('.suggest-wrapper');
264
- const input = suggest?.querySelector('input');
265
- for (let i = 0; i < 5; i++) {
266
- const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true });
267
- Object.defineProperty(arrowUpEvent, 'target', { value: input });
268
- wrapper?.dispatchEvent(arrowUpEvent);
269
- }
270
- await advanceTimers(50);
271
- expect(suggest).not.toBeNull();
272
284
  });
273
285
  });
274
286
  describe('open/close behavior', () => {
275
287
  it('should open when clicking term icon', async () => {
276
- const injector = new Injector();
277
- const rootElement = document.getElementById('root');
278
- const onSelectSuggestion = vi.fn();
279
- initializeShadeRoot({
280
- injector,
281
- rootElement,
282
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
288
+ await usingAsync(new Injector(), async (injector) => {
289
+ const rootElement = document.getElementById('root');
290
+ const onSelectSuggestion = vi.fn();
291
+ initializeShadeRoot({
292
+ injector,
293
+ rootElement,
294
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
295
+ });
296
+ await advanceTimers(50);
297
+ const suggest = document.querySelector('shade-suggest');
298
+ const termIcon = suggest?.querySelector('.term-icon');
299
+ termIcon?.click();
300
+ await advanceTimers(50);
301
+ expect(suggest?.hasAttribute('data-opened')).toBe(true);
283
302
  });
284
- await advanceTimers(50);
285
- const suggest = document.querySelector('shade-suggest');
286
- const termIcon = suggest?.querySelector('.term-icon');
287
- termIcon?.click();
288
- await advanceTimers(50);
289
- expect(suggest?.classList.contains('opened')).toBe(true);
290
303
  });
291
304
  it('should close when clicking close button', async () => {
292
- const injector = new Injector();
293
- const rootElement = document.getElementById('root');
294
- const onSelectSuggestion = vi.fn();
295
- initializeShadeRoot({
296
- injector,
297
- rootElement,
298
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
305
+ await usingAsync(new Injector(), async (injector) => {
306
+ const rootElement = document.getElementById('root');
307
+ const onSelectSuggestion = vi.fn();
308
+ initializeShadeRoot({
309
+ injector,
310
+ rootElement,
311
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
312
+ });
313
+ await advanceTimers(50);
314
+ const suggest = document.querySelector('shade-suggest');
315
+ const termIcon = suggest?.querySelector('.term-icon');
316
+ termIcon?.click();
317
+ await advanceTimers(50);
318
+ const closeButton = suggest?.querySelector('.close-suggestions');
319
+ closeButton?.click();
320
+ await advanceTimers(50);
321
+ expect(suggest?.hasAttribute('data-opened')).toBe(false);
299
322
  });
300
- await advanceTimers(50);
301
- const suggest = document.querySelector('shade-suggest');
302
- const termIcon = suggest?.querySelector('.term-icon');
303
- termIcon?.click();
304
- await advanceTimers(50);
305
- const closeButton = suggest?.querySelector('.close-suggestions');
306
- closeButton?.click();
307
- await advanceTimers(50);
308
- expect(suggest?.classList.contains('opened')).toBe(false);
309
323
  });
310
324
  it('should trigger animation when opening', async () => {
311
- const injector = new Injector();
312
- const rootElement = document.getElementById('root');
313
- const onSelectSuggestion = vi.fn();
314
- initializeShadeRoot({
315
- injector,
316
- rootElement,
317
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
325
+ await usingAsync(new Injector(), async (injector) => {
326
+ const rootElement = document.getElementById('root');
327
+ const onSelectSuggestion = vi.fn();
328
+ initializeShadeRoot({
329
+ injector,
330
+ rootElement,
331
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
332
+ });
333
+ await advanceTimers(50);
334
+ const initialAnimationCount = animateCalls.length;
335
+ const suggest = document.querySelector('shade-suggest');
336
+ const termIcon = suggest?.querySelector('.term-icon');
337
+ termIcon?.click();
338
+ await advanceTimers(50);
339
+ expect(animateCalls.length).toBeGreaterThan(initialAnimationCount);
318
340
  });
319
- await advanceTimers(50);
320
- const initialAnimationCount = animateCalls.length;
321
- const suggest = document.querySelector('shade-suggest');
322
- const termIcon = suggest?.querySelector('.term-icon');
323
- termIcon?.click();
324
- await advanceTimers(50);
325
- expect(animateCalls.length).toBeGreaterThan(initialAnimationCount);
326
341
  });
327
342
  it('should trigger animation when closing', async () => {
328
- const injector = new Injector();
329
- const rootElement = document.getElementById('root');
330
- const onSelectSuggestion = vi.fn();
331
- initializeShadeRoot({
332
- injector,
333
- rootElement,
334
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
343
+ await usingAsync(new Injector(), async (injector) => {
344
+ const rootElement = document.getElementById('root');
345
+ const onSelectSuggestion = vi.fn();
346
+ initializeShadeRoot({
347
+ injector,
348
+ rootElement,
349
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
350
+ });
351
+ await advanceTimers(50);
352
+ const suggest = document.querySelector('shade-suggest');
353
+ const termIcon = suggest?.querySelector('.term-icon');
354
+ termIcon?.click();
355
+ await advanceTimers(50);
356
+ const animationCountAfterOpen = animateCalls.length;
357
+ const closeButton = suggest?.querySelector('.close-suggestions');
358
+ closeButton?.click();
359
+ await advanceTimers(50);
360
+ expect(animateCalls.length).toBeGreaterThan(animationCountAfterOpen);
335
361
  });
336
- await advanceTimers(50);
337
- const suggest = document.querySelector('shade-suggest');
338
- const termIcon = suggest?.querySelector('.term-icon');
339
- termIcon?.click();
340
- await advanceTimers(50);
341
- const animationCountAfterOpen = animateCalls.length;
342
- const closeButton = suggest?.querySelector('.close-suggestions');
343
- closeButton?.click();
344
- await advanceTimers(50);
345
- expect(animateCalls.length).toBeGreaterThan(animationCountAfterOpen);
346
362
  });
347
363
  });
348
364
  describe('suggestions loading', () => {
349
365
  it('should fetch suggestions when typing', async () => {
350
- const injector = new Injector();
351
- const rootElement = document.getElementById('root');
352
- const onSelectSuggestion = vi.fn();
353
- const getEntriesSpy = vi.fn(getTestEntries);
354
- initializeShadeRoot({
355
- injector,
356
- rootElement,
357
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getEntriesSpy, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
366
+ await usingAsync(new Injector(), async (injector) => {
367
+ const rootElement = document.getElementById('root');
368
+ const onSelectSuggestion = vi.fn();
369
+ const getEntriesSpy = vi.fn(getTestEntries);
370
+ initializeShadeRoot({
371
+ injector,
372
+ rootElement,
373
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getEntriesSpy, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
374
+ });
375
+ await advanceTimers(50);
376
+ const suggest = document.querySelector('shade-suggest');
377
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
378
+ const input = suggest?.querySelector('input');
379
+ input.value = 'First';
380
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
381
+ Object.defineProperty(keyupEvent, 'target', { value: input });
382
+ wrapper?.dispatchEvent(keyupEvent);
383
+ await advanceTimers(300);
384
+ expect(getEntriesSpy).toHaveBeenCalledWith('First');
358
385
  });
359
- await advanceTimers(50);
360
- const suggest = document.querySelector('shade-suggest');
361
- const wrapper = suggest?.querySelector('.suggest-wrapper');
362
- const input = suggest?.querySelector('input');
363
- input.value = 'First';
364
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
365
- Object.defineProperty(keyupEvent, 'target', { value: input });
366
- wrapper?.dispatchEvent(keyupEvent);
367
- await advanceTimers(300);
368
- expect(getEntriesSpy).toHaveBeenCalledWith('First');
369
386
  });
370
387
  it('should show loader animation while loading', async () => {
371
- const injector = new Injector();
372
- const rootElement = document.getElementById('root');
373
- const onSelectSuggestion = vi.fn();
374
- const resolveHolder = { resolve: null };
375
- const slowGetEntries = () => new Promise((resolve) => {
376
- resolveHolder.resolve = resolve;
377
- });
378
- initializeShadeRoot({
379
- injector,
380
- rootElement,
381
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: slowGetEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
388
+ await usingAsync(new Injector(), async (injector) => {
389
+ const rootElement = document.getElementById('root');
390
+ const onSelectSuggestion = vi.fn();
391
+ const resolveHolder = { resolve: null };
392
+ const slowGetEntries = () => new Promise((resolve) => {
393
+ resolveHolder.resolve = resolve;
394
+ });
395
+ initializeShadeRoot({
396
+ injector,
397
+ rootElement,
398
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: slowGetEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
399
+ });
400
+ await advanceTimers(50);
401
+ const suggest = document.querySelector('shade-suggest');
402
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
403
+ const input = suggest?.querySelector('input');
404
+ input.value = 'test';
405
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
406
+ Object.defineProperty(keyupEvent, 'target', { value: input });
407
+ wrapper?.dispatchEvent(keyupEvent);
408
+ await advanceTimers(300);
409
+ const loader = suggest?.querySelector('shade-loader');
410
+ expect(loader).not.toBeNull();
411
+ resolveHolder.resolve?.(createTestEntries());
412
+ await advanceTimers(50);
382
413
  });
383
- await advanceTimers(50);
384
- const suggest = document.querySelector('shade-suggest');
385
- const wrapper = suggest?.querySelector('.suggest-wrapper');
386
- const input = suggest?.querySelector('input');
387
- input.value = 'test';
388
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
389
- Object.defineProperty(keyupEvent, 'target', { value: input });
390
- wrapper?.dispatchEvent(keyupEvent);
391
- await advanceTimers(300);
392
- const loader = suggest?.querySelector('shade-loader');
393
- expect(loader).not.toBeNull();
394
- resolveHolder.resolve?.(createTestEntries());
395
- await advanceTimers(50);
396
414
  });
397
415
  it('should render suggestions after loading', async () => {
398
- const injector = new Injector();
399
- const rootElement = document.getElementById('root');
400
- const onSelectSuggestion = vi.fn();
401
- initializeShadeRoot({
402
- injector,
403
- rootElement,
404
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
416
+ await usingAsync(new Injector(), async (injector) => {
417
+ const rootElement = document.getElementById('root');
418
+ const onSelectSuggestion = vi.fn();
419
+ initializeShadeRoot({
420
+ injector,
421
+ rootElement,
422
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
423
+ });
424
+ await advanceTimers(50);
425
+ const suggest = document.querySelector('shade-suggest');
426
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
427
+ const input = suggest?.querySelector('input');
428
+ input.value = 'test';
429
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
430
+ Object.defineProperty(keyupEvent, 'target', { value: input });
431
+ wrapper?.dispatchEvent(keyupEvent);
432
+ await advanceTimers(300);
433
+ const suggestionList = suggest?.querySelector('shade-suggest-suggestion-list');
434
+ expect(suggestionList).not.toBeNull();
405
435
  });
406
- await advanceTimers(50);
407
- const suggest = document.querySelector('shade-suggest');
408
- const wrapper = suggest?.querySelector('.suggest-wrapper');
409
- const input = suggest?.querySelector('input');
410
- input.value = 'test';
411
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
412
- Object.defineProperty(keyupEvent, 'target', { value: input });
413
- wrapper?.dispatchEvent(keyupEvent);
414
- await advanceTimers(300);
415
- const suggestionList = suggest?.querySelector('shade-suggest-suggestion-list');
416
- expect(suggestionList).not.toBeNull();
417
436
  });
418
437
  });
419
438
  describe('suggestion selection', () => {
420
439
  it('should call onSelectSuggestion when selecting via Enter', async () => {
421
- const injector = new Injector();
422
- const rootElement = document.getElementById('root');
423
- const onSelectSuggestion = vi.fn();
424
- initializeShadeRoot({
425
- injector,
426
- rootElement,
427
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
440
+ await usingAsync(new Injector(), async (injector) => {
441
+ const rootElement = document.getElementById('root');
442
+ const onSelectSuggestion = vi.fn();
443
+ initializeShadeRoot({
444
+ injector,
445
+ rootElement,
446
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
447
+ });
448
+ await advanceTimers(50);
449
+ const suggest = document.querySelector('shade-suggest');
450
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
451
+ const input = suggest?.querySelector('input');
452
+ input.value = 'First';
453
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
454
+ Object.defineProperty(keyupEvent, 'target', { value: input });
455
+ wrapper?.dispatchEvent(keyupEvent);
456
+ await advanceTimers(300);
457
+ const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
458
+ Object.defineProperty(enterEvent, 'target', { value: input });
459
+ wrapper?.dispatchEvent(enterEvent);
460
+ await advanceTimers(50);
461
+ expect(onSelectSuggestion).toHaveBeenCalledWith(expect.objectContaining({ name: 'First' }));
428
462
  });
429
- await advanceTimers(50);
430
- const suggest = document.querySelector('shade-suggest');
431
- const wrapper = suggest?.querySelector('.suggest-wrapper');
432
- const input = suggest?.querySelector('input');
433
- input.value = 'First';
434
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
435
- Object.defineProperty(keyupEvent, 'target', { value: input });
436
- wrapper?.dispatchEvent(keyupEvent);
437
- await advanceTimers(300);
438
- const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
439
- Object.defineProperty(enterEvent, 'target', { value: input });
440
- wrapper?.dispatchEvent(enterEvent);
441
- await advanceTimers(50);
442
- expect(onSelectSuggestion).toHaveBeenCalledWith(expect.objectContaining({ name: 'First' }));
443
463
  });
444
464
  it('should close after selecting a suggestion', async () => {
445
- const injector = new Injector();
446
- const rootElement = document.getElementById('root');
447
- const onSelectSuggestion = vi.fn();
448
- initializeShadeRoot({
449
- injector,
450
- rootElement,
451
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
465
+ await usingAsync(new Injector(), async (injector) => {
466
+ const rootElement = document.getElementById('root');
467
+ const onSelectSuggestion = vi.fn();
468
+ initializeShadeRoot({
469
+ injector,
470
+ rootElement,
471
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
472
+ });
473
+ await advanceTimers(50);
474
+ const suggest = document.querySelector('shade-suggest');
475
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
476
+ const input = suggest?.querySelector('input');
477
+ input.value = 'First';
478
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
479
+ Object.defineProperty(keyupEvent, 'target', { value: input });
480
+ wrapper?.dispatchEvent(keyupEvent);
481
+ await advanceTimers(300);
482
+ expect(suggest?.hasAttribute('data-opened')).toBe(true);
483
+ const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
484
+ Object.defineProperty(enterEvent, 'target', { value: input });
485
+ wrapper?.dispatchEvent(enterEvent);
486
+ await advanceTimers(50);
487
+ expect(suggest?.hasAttribute('data-opened')).toBe(false);
452
488
  });
453
- await advanceTimers(50);
454
- const suggest = document.querySelector('shade-suggest');
455
- const wrapper = suggest?.querySelector('.suggest-wrapper');
456
- const input = suggest?.querySelector('input');
457
- input.value = 'First';
458
- const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
459
- Object.defineProperty(keyupEvent, 'target', { value: input });
460
- wrapper?.dispatchEvent(keyupEvent);
461
- await advanceTimers(300);
462
- expect(suggest?.classList.contains('opened')).toBe(true);
463
- const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
464
- Object.defineProperty(enterEvent, 'target', { value: input });
465
- wrapper?.dispatchEvent(enterEvent);
466
- await advanceTimers(50);
467
- expect(suggest?.classList.contains('opened')).toBe(false);
468
489
  });
469
490
  });
470
491
  describe('sub-components', () => {
471
492
  it('should render SuggestInput component', async () => {
472
- const injector = new Injector();
473
- const rootElement = document.getElementById('root');
474
- const onSelectSuggestion = vi.fn();
475
- initializeShadeRoot({
476
- injector,
477
- rootElement,
478
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
493
+ await usingAsync(new Injector(), async (injector) => {
494
+ const rootElement = document.getElementById('root');
495
+ const onSelectSuggestion = vi.fn();
496
+ initializeShadeRoot({
497
+ injector,
498
+ rootElement,
499
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
500
+ });
501
+ await advanceTimers(50);
502
+ const suggest = document.querySelector('shade-suggest');
503
+ const suggestInput = suggest?.querySelector('shades-suggest-input');
504
+ expect(suggestInput).not.toBeNull();
479
505
  });
480
- await advanceTimers(50);
481
- const suggest = document.querySelector('shade-suggest');
482
- const suggestInput = suggest?.querySelector('shades-suggest-input');
483
- expect(suggestInput).not.toBeNull();
484
506
  });
485
507
  it('should render SuggestionList component', async () => {
486
- const injector = new Injector();
487
- const rootElement = document.getElementById('root');
488
- const onSelectSuggestion = vi.fn();
489
- initializeShadeRoot({
490
- injector,
491
- rootElement,
492
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
508
+ await usingAsync(new Injector(), async (injector) => {
509
+ const rootElement = document.getElementById('root');
510
+ const onSelectSuggestion = vi.fn();
511
+ initializeShadeRoot({
512
+ injector,
513
+ rootElement,
514
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
515
+ });
516
+ await advanceTimers(50);
517
+ const suggest = document.querySelector('shade-suggest');
518
+ const suggestionList = suggest?.querySelector('shade-suggest-suggestion-list');
519
+ expect(suggestionList).not.toBeNull();
493
520
  });
494
- await advanceTimers(50);
495
- const suggest = document.querySelector('shade-suggest');
496
- const suggestionList = suggest?.querySelector('shade-suggest-suggestion-list');
497
- expect(suggestionList).not.toBeNull();
498
521
  });
499
522
  it('should render Loader component', async () => {
500
- const injector = new Injector();
501
- const rootElement = document.getElementById('root');
502
- const onSelectSuggestion = vi.fn();
503
- initializeShadeRoot({
504
- injector,
505
- rootElement,
506
- jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
523
+ await usingAsync(new Injector(), async (injector) => {
524
+ const rootElement = document.getElementById('root');
525
+ const onSelectSuggestion = vi.fn();
526
+ initializeShadeRoot({
527
+ injector,
528
+ rootElement,
529
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
530
+ });
531
+ await advanceTimers(50);
532
+ const suggest = document.querySelector('shade-suggest');
533
+ const loader = suggest?.querySelector('shade-loader');
534
+ expect(loader).not.toBeNull();
507
535
  });
508
- await advanceTimers(50);
509
- const suggest = document.querySelector('shade-suggest');
510
- const loader = suggest?.querySelector('shade-loader');
511
- expect(loader).not.toBeNull();
512
536
  });
513
537
  });
514
538
  });