@furystack/shades-common-components 11.0.0 → 12.0.0

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 (765) hide show
  1. package/CHANGELOG.md +430 -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 +332 -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 +454 -429
  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/css-variable-theme.d.ts +167 -1
  547. package/esm/services/css-variable-theme.d.ts.map +1 -1
  548. package/esm/services/css-variable-theme.js +102 -0
  549. package/esm/services/css-variable-theme.js.map +1 -1
  550. package/esm/services/css-variable-theme.spec.js +131 -1
  551. package/esm/services/css-variable-theme.spec.js.map +1 -1
  552. package/esm/services/default-dark-theme.d.ts +107 -2
  553. package/esm/services/default-dark-theme.d.ts.map +1 -1
  554. package/esm/services/default-dark-theme.js +87 -1
  555. package/esm/services/default-dark-theme.js.map +1 -1
  556. package/esm/services/default-light-theme.d.ts +107 -2
  557. package/esm/services/default-light-theme.d.ts.map +1 -1
  558. package/esm/services/default-light-theme.js +86 -0
  559. package/esm/services/default-light-theme.js.map +1 -1
  560. package/esm/services/index.d.ts +6 -2
  561. package/esm/services/index.d.ts.map +1 -1
  562. package/esm/services/index.js +6 -2
  563. package/esm/services/index.js.map +1 -1
  564. package/esm/services/layout-service.d.ts +217 -0
  565. package/esm/services/layout-service.d.ts.map +1 -0
  566. package/esm/services/layout-service.js +331 -0
  567. package/esm/services/layout-service.js.map +1 -0
  568. package/esm/services/layout-service.spec.d.ts +2 -0
  569. package/esm/services/layout-service.spec.d.ts.map +1 -0
  570. package/esm/services/layout-service.spec.js +425 -0
  571. package/esm/services/layout-service.spec.js.map +1 -0
  572. package/esm/services/list-service.d.ts +31 -0
  573. package/esm/services/list-service.d.ts.map +1 -0
  574. package/esm/services/list-service.js +149 -0
  575. package/esm/services/list-service.js.map +1 -0
  576. package/esm/services/list-service.spec.d.ts +2 -0
  577. package/esm/services/list-service.spec.d.ts.map +1 -0
  578. package/esm/services/list-service.spec.js +254 -0
  579. package/esm/services/list-service.spec.js.map +1 -0
  580. package/esm/services/palette-css-vars.d.ts +12 -0
  581. package/esm/services/palette-css-vars.d.ts.map +1 -0
  582. package/esm/services/palette-css-vars.js +44 -0
  583. package/esm/services/palette-css-vars.js.map +1 -0
  584. package/esm/services/theme-provider-service.d.ts +387 -2
  585. package/esm/services/theme-provider-service.d.ts.map +1 -1
  586. package/esm/services/theme-provider-service.js.map +1 -1
  587. package/esm/services/tree-service.d.ts +61 -0
  588. package/esm/services/tree-service.d.ts.map +1 -0
  589. package/esm/services/tree-service.js +149 -0
  590. package/esm/services/tree-service.js.map +1 -0
  591. package/esm/services/tree-service.spec.d.ts +2 -0
  592. package/esm/services/tree-service.spec.d.ts.map +1 -0
  593. package/esm/services/tree-service.spec.js +307 -0
  594. package/esm/services/tree-service.spec.js.map +1 -0
  595. package/esm/utils/promisify-animation.d.ts.map +1 -1
  596. package/esm/utils/promisify-animation.js +6 -1
  597. package/esm/utils/promisify-animation.js.map +1 -1
  598. package/package.json +4 -4
  599. package/src/components/accordion/accordion-item.tsx +197 -0
  600. package/src/components/accordion/accordion.spec.tsx +418 -0
  601. package/src/components/accordion/accordion.tsx +50 -0
  602. package/src/components/accordion/index.ts +2 -0
  603. package/src/components/alert.spec.tsx +256 -0
  604. package/src/components/alert.tsx +186 -0
  605. package/src/components/app-bar-link.spec.tsx +22 -19
  606. package/src/components/app-bar-link.tsx +29 -10
  607. package/src/components/app-bar.spec.tsx +73 -58
  608. package/src/components/app-bar.tsx +19 -12
  609. package/src/components/avatar.tsx +46 -47
  610. package/src/components/badge.spec.tsx +228 -0
  611. package/src/components/badge.tsx +104 -0
  612. package/src/components/breadcrumb.spec.tsx +396 -0
  613. package/src/components/breadcrumb.tsx +188 -0
  614. package/src/components/button-group.spec.tsx +611 -0
  615. package/src/components/button-group.tsx +423 -0
  616. package/src/components/button.spec.tsx +257 -67
  617. package/src/components/button.tsx +130 -80
  618. package/src/components/card.spec.tsx +389 -0
  619. package/src/components/card.tsx +261 -0
  620. package/src/components/carousel.spec.tsx +894 -0
  621. package/src/components/carousel.tsx +376 -0
  622. package/src/components/chip.spec.tsx +200 -0
  623. package/src/components/chip.tsx +188 -0
  624. package/src/components/circular-progress.spec.tsx +289 -0
  625. package/src/components/circular-progress.tsx +145 -0
  626. package/src/components/command-palette/command-palette-input.spec.tsx +209 -198
  627. package/src/components/command-palette/command-palette-input.tsx +25 -9
  628. package/src/components/command-palette/command-palette-manager.spec.ts +132 -117
  629. package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +348 -330
  630. package/src/components/command-palette/command-palette-suggestion-list.tsx +22 -20
  631. package/src/components/command-palette/index.spec.tsx +12 -12
  632. package/src/components/command-palette/index.tsx +25 -102
  633. package/src/components/context-menu/context-menu-item.tsx +85 -0
  634. package/src/components/context-menu/context-menu-manager.spec.ts +478 -0
  635. package/src/components/context-menu/context-menu-manager.ts +148 -0
  636. package/src/components/context-menu/context-menu.spec.tsx +352 -0
  637. package/src/components/context-menu/context-menu.tsx +116 -0
  638. package/src/components/context-menu/index.ts +3 -0
  639. package/src/components/data-grid/body.spec.tsx +292 -278
  640. package/src/components/data-grid/data-grid-row.spec.tsx +165 -140
  641. package/src/components/data-grid/data-grid-row.tsx +72 -55
  642. package/src/components/data-grid/data-grid.spec.tsx +743 -718
  643. package/src/components/data-grid/data-grid.tsx +19 -15
  644. package/src/components/data-grid/footer.spec.tsx +249 -237
  645. package/src/components/data-grid/header.spec.tsx +374 -351
  646. package/src/components/data-grid/header.tsx +58 -39
  647. package/src/components/data-grid/selection-cell.spec.tsx +46 -45
  648. package/src/components/data-grid/selection-cell.tsx +2 -6
  649. package/src/components/dialog.spec.tsx +135 -0
  650. package/src/components/dialog.tsx +277 -0
  651. package/src/components/divider.spec.tsx +197 -0
  652. package/src/components/divider.tsx +147 -0
  653. package/src/components/drawer/drawer-toggle-button.spec.tsx +374 -0
  654. package/src/components/drawer/drawer-toggle-button.tsx +124 -0
  655. package/src/components/drawer/index.spec.tsx +748 -0
  656. package/src/components/drawer/index.tsx +227 -0
  657. package/src/components/dropdown.spec.tsx +445 -0
  658. package/src/components/dropdown.tsx +343 -0
  659. package/src/components/fab.spec.tsx +51 -40
  660. package/src/components/fab.tsx +32 -9
  661. package/src/components/form.spec.tsx +303 -293
  662. package/src/components/form.tsx +10 -7
  663. package/src/components/grid.spec.tsx +276 -183
  664. package/src/components/grid.tsx +10 -10
  665. package/src/components/icons/icon-definitions.spec.ts +68 -0
  666. package/src/components/icons/icon-definitions.ts +509 -0
  667. package/src/components/icons/icon-types.ts +48 -0
  668. package/src/components/icons/icon.spec.tsx +314 -0
  669. package/src/components/icons/icon.tsx +111 -0
  670. package/src/components/icons/index.ts +4 -0
  671. package/src/components/image.spec.tsx +748 -0
  672. package/src/components/image.tsx +520 -0
  673. package/src/components/index.ts +32 -4
  674. package/src/components/inputs/autocomplete.spec.tsx +10 -1
  675. package/src/components/inputs/autocomplete.tsx +13 -7
  676. package/src/components/inputs/checkbox.spec.tsx +377 -0
  677. package/src/components/inputs/checkbox.tsx +198 -0
  678. package/src/components/inputs/index.ts +7 -0
  679. package/src/components/inputs/input-number.spec.tsx +686 -0
  680. package/src/components/inputs/input-number.tsx +387 -0
  681. package/src/components/inputs/input.spec.tsx +544 -508
  682. package/src/components/inputs/input.tsx +91 -132
  683. package/src/components/inputs/radio-group.spec.tsx +281 -0
  684. package/src/components/inputs/radio-group.tsx +108 -0
  685. package/src/components/inputs/radio.spec.tsx +273 -0
  686. package/src/components/inputs/radio.tsx +199 -0
  687. package/src/components/inputs/select.spec.tsx +1237 -0
  688. package/src/components/inputs/select.tsx +775 -0
  689. package/src/components/inputs/slider.spec.tsx +1020 -0
  690. package/src/components/inputs/slider.tsx +696 -0
  691. package/src/components/inputs/switch.spec.tsx +410 -0
  692. package/src/components/inputs/switch.tsx +218 -0
  693. package/src/components/inputs/text-area.spec.tsx +186 -171
  694. package/src/components/inputs/text-area.tsx +13 -19
  695. package/src/components/linear-progress.spec.tsx +320 -0
  696. package/src/components/linear-progress.tsx +127 -0
  697. package/src/components/list/index.ts +2 -0
  698. package/src/components/list/list-item.tsx +106 -0
  699. package/src/components/list/list.spec.tsx +817 -0
  700. package/src/components/list/list.tsx +92 -0
  701. package/src/components/loader.spec.tsx +220 -204
  702. package/src/components/loader.tsx +17 -9
  703. package/src/components/menu/index.ts +2 -0
  704. package/src/components/menu/menu-types.spec.ts +122 -0
  705. package/src/components/menu/menu-types.ts +43 -0
  706. package/src/components/menu/menu.spec.tsx +483 -0
  707. package/src/components/menu/menu.tsx +326 -0
  708. package/src/components/modal.spec.tsx +65 -55
  709. package/src/components/modal.tsx +9 -6
  710. package/src/components/noty-list.spec.tsx +78 -75
  711. package/src/components/noty-list.tsx +76 -68
  712. package/src/components/page-container/index.spec.tsx +274 -0
  713. package/src/components/page-container/index.tsx +82 -0
  714. package/src/components/page-container/page-header.spec.tsx +308 -0
  715. package/src/components/page-container/page-header.tsx +127 -0
  716. package/src/components/page-layout/index.spec.tsx +882 -0
  717. package/src/components/page-layout/index.tsx +392 -0
  718. package/src/components/pagination.spec.tsx +275 -0
  719. package/src/components/pagination.tsx +249 -0
  720. package/src/components/paper.spec.tsx +26 -18
  721. package/src/components/paper.tsx +12 -10
  722. package/src/components/rating.spec.tsx +866 -0
  723. package/src/components/rating.tsx +286 -0
  724. package/src/components/result.spec.tsx +221 -0
  725. package/src/components/result.tsx +155 -0
  726. package/src/components/searchable-input-styles.ts +81 -0
  727. package/src/components/skeleton.spec.tsx +126 -118
  728. package/src/components/skeleton.tsx +23 -6
  729. package/src/components/styles.spec.ts +27 -28
  730. package/src/components/styles.tsx +15 -13
  731. package/src/components/suggest/index.spec.tsx +611 -587
  732. package/src/components/suggest/index.tsx +28 -95
  733. package/src/components/suggest/suggest-input.spec.tsx +95 -81
  734. package/src/components/suggest/suggest-input.tsx +9 -7
  735. package/src/components/suggest/suggest-manager.spec.ts +103 -93
  736. package/src/components/suggest/suggestion-list.spec.tsx +194 -173
  737. package/src/components/suggest/suggestion-list.tsx +23 -22
  738. package/src/components/tabs.spec.tsx +369 -7
  739. package/src/components/tabs.tsx +221 -18
  740. package/src/components/timeline.spec.tsx +294 -0
  741. package/src/components/timeline.tsx +221 -0
  742. package/src/components/tooltip.spec.tsx +223 -0
  743. package/src/components/tooltip.tsx +155 -0
  744. package/src/components/tree/index.ts +2 -0
  745. package/src/components/tree/tree-item.tsx +161 -0
  746. package/src/components/tree/tree.spec.tsx +677 -0
  747. package/src/components/tree/tree.tsx +111 -0
  748. package/src/components/typography.spec.tsx +235 -0
  749. package/src/components/typography.tsx +292 -0
  750. package/src/components/wizard/index.spec.tsx +77 -68
  751. package/src/services/click-away-service.ts +9 -3
  752. package/src/services/css-variable-theme.spec.ts +169 -1
  753. package/src/services/css-variable-theme.ts +107 -2
  754. package/src/services/default-dark-theme.ts +89 -3
  755. package/src/services/default-light-theme.ts +88 -2
  756. package/src/services/index.ts +6 -2
  757. package/src/services/layout-service.spec.ts +535 -0
  758. package/src/services/layout-service.ts +391 -0
  759. package/src/services/list-service.spec.ts +364 -0
  760. package/src/services/list-service.ts +169 -0
  761. package/src/services/palette-css-vars.ts +46 -0
  762. package/src/services/theme-provider-service.ts +246 -1
  763. package/src/services/tree-service.spec.ts +428 -0
  764. package/src/services/tree-service.ts +179 -0
  765. 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 { ObservableValue, sleepAsync } from '@furystack/utils';
3
+ import { ObservableValue, sleepAsync, usingAsync } from '@furystack/utils';
4
4
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
5
  import { DataGridHeader, OrderButton } from './header.js';
6
6
  describe('DataGridHeader', () => {
@@ -34,387 +34,410 @@ describe('DataGridHeader', () => {
34
34
  };
35
35
  describe('rendering', () => {
36
36
  it('should render with custom element', async () => {
37
- const injector = new Injector();
38
- const rootElement = document.getElementById('root');
39
- const findOptions = createFindOptions();
40
- initializeShadeRoot({
41
- injector,
42
- rootElement,
43
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
37
+ await usingAsync(new Injector(), async (injector) => {
38
+ const rootElement = document.getElementById('root');
39
+ const findOptions = createFindOptions();
40
+ initializeShadeRoot({
41
+ injector,
42
+ rootElement,
43
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
44
+ });
45
+ await sleepAsync(50);
46
+ const header = document.querySelector('data-grid-header');
47
+ expect(header).not.toBeNull();
44
48
  });
45
- await sleepAsync(50);
46
- const header = document.querySelector('data-grid-header');
47
- expect(header).not.toBeNull();
48
49
  });
49
50
  it('should render field name', async () => {
50
- const injector = new Injector();
51
- const rootElement = document.getElementById('root');
52
- const findOptions = createFindOptions();
53
- initializeShadeRoot({
54
- injector,
55
- rootElement,
56
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
51
+ await usingAsync(new Injector(), async (injector) => {
52
+ const rootElement = document.getElementById('root');
53
+ const findOptions = createFindOptions();
54
+ initializeShadeRoot({
55
+ injector,
56
+ rootElement,
57
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
58
+ });
59
+ await sleepAsync(50);
60
+ const header = document.querySelector('data-grid-header');
61
+ const fieldName = header?.querySelector('.header-field-name');
62
+ expect(fieldName?.textContent).toBe('name');
57
63
  });
58
- await sleepAsync(50);
59
- const header = document.querySelector('data-grid-header');
60
- const fieldName = header?.querySelector('.header-field-name');
61
- expect(fieldName?.textContent).toBe('name');
62
64
  });
63
65
  it('should render order button', async () => {
64
- const injector = new Injector();
65
- const rootElement = document.getElementById('root');
66
- const findOptions = createFindOptions();
67
- initializeShadeRoot({
68
- injector,
69
- rootElement,
70
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
66
+ await usingAsync(new Injector(), async (injector) => {
67
+ const rootElement = document.getElementById('root');
68
+ const findOptions = createFindOptions();
69
+ initializeShadeRoot({
70
+ injector,
71
+ rootElement,
72
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
73
+ });
74
+ await sleepAsync(50);
75
+ const orderButton = document.querySelector('data-grid-order-button');
76
+ expect(orderButton).not.toBeNull();
71
77
  });
72
- await sleepAsync(50);
73
- const orderButton = document.querySelector('data-grid-order-button');
74
- expect(orderButton).not.toBeNull();
75
78
  });
76
79
  it('should render search button', async () => {
77
- const injector = new Injector();
78
- const rootElement = document.getElementById('root');
79
- const findOptions = createFindOptions();
80
- initializeShadeRoot({
81
- injector,
82
- rootElement,
83
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
80
+ await usingAsync(new Injector(), async (injector) => {
81
+ const rootElement = document.getElementById('root');
82
+ const findOptions = createFindOptions();
83
+ initializeShadeRoot({
84
+ injector,
85
+ rootElement,
86
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
87
+ });
88
+ await sleepAsync(50);
89
+ const searchButton = document.querySelector('data-grid-search-button');
90
+ expect(searchButton).not.toBeNull();
84
91
  });
85
- await sleepAsync(50);
86
- const searchButton = document.querySelector('data-grid-search-button');
87
- expect(searchButton).not.toBeNull();
88
92
  });
89
93
  it('should render search form', async () => {
90
- const injector = new Injector();
91
- const rootElement = document.getElementById('root');
92
- const findOptions = createFindOptions();
93
- initializeShadeRoot({
94
- injector,
95
- rootElement,
96
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
94
+ await usingAsync(new Injector(), async (injector) => {
95
+ const rootElement = document.getElementById('root');
96
+ const findOptions = createFindOptions();
97
+ initializeShadeRoot({
98
+ injector,
99
+ rootElement,
100
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
101
+ });
102
+ await sleepAsync(50);
103
+ const searchForm = document.querySelector('data-grid-search-form');
104
+ expect(searchForm).not.toBeNull();
97
105
  });
98
- await sleepAsync(50);
99
- const searchForm = document.querySelector('data-grid-search-form');
100
- expect(searchForm).not.toBeNull();
101
106
  });
102
107
  });
103
108
  describe('OrderButton', () => {
104
109
  it('should show neutral icon when no order is set', async () => {
105
- const injector = new Injector();
106
- const rootElement = document.getElementById('root');
107
- const findOptions = createFindOptions();
108
- initializeShadeRoot({
109
- injector,
110
- rootElement,
111
- jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
110
+ await usingAsync(new Injector(), async (injector) => {
111
+ const rootElement = document.getElementById('root');
112
+ const findOptions = createFindOptions();
113
+ initializeShadeRoot({
114
+ injector,
115
+ rootElement,
116
+ jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
117
+ });
118
+ await sleepAsync(50);
119
+ const button = document.querySelector('data-grid-order-button');
120
+ expect(button?.querySelector('shade-icon')).not.toBeNull();
112
121
  });
113
- await sleepAsync(50);
114
- const button = document.querySelector('data-grid-order-button');
115
- expect(button?.textContent).toContain('↕');
116
122
  });
117
123
  it('should show descending icon when ASC order is set for field', async () => {
118
- const injector = new Injector();
119
- const rootElement = document.getElementById('root');
120
- const findOptions = createFindOptions({ order: { name: 'ASC' } });
121
- initializeShadeRoot({
122
- injector,
123
- rootElement,
124
- jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
124
+ await usingAsync(new Injector(), async (injector) => {
125
+ const rootElement = document.getElementById('root');
126
+ const findOptions = createFindOptions({ order: { name: 'ASC' } });
127
+ initializeShadeRoot({
128
+ injector,
129
+ rootElement,
130
+ jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
131
+ });
132
+ await sleepAsync(50);
133
+ const button = document.querySelector('data-grid-order-button');
134
+ expect(button?.querySelector('shade-icon')).not.toBeNull();
125
135
  });
126
- await sleepAsync(50);
127
- const button = document.querySelector('data-grid-order-button');
128
- expect(button?.textContent).toContain('⬇');
129
136
  });
130
137
  it('should show ascending icon when DESC order is set for field', async () => {
131
- const injector = new Injector();
132
- const rootElement = document.getElementById('root');
133
- const findOptions = createFindOptions({ order: { name: 'DESC' } });
134
- initializeShadeRoot({
135
- injector,
136
- rootElement,
137
- jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
138
+ await usingAsync(new Injector(), async (injector) => {
139
+ const rootElement = document.getElementById('root');
140
+ const findOptions = createFindOptions({ order: { name: 'DESC' } });
141
+ initializeShadeRoot({
142
+ injector,
143
+ rootElement,
144
+ jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
145
+ });
146
+ await sleepAsync(50);
147
+ const button = document.querySelector('data-grid-order-button');
148
+ expect(button?.querySelector('shade-icon')).not.toBeNull();
138
149
  });
139
- await sleepAsync(50);
140
- const button = document.querySelector('data-grid-order-button');
141
- expect(button?.textContent).toContain('⬆');
142
150
  });
143
151
  it('should show neutral icon when order is set for different field', async () => {
144
- const injector = new Injector();
145
- const rootElement = document.getElementById('root');
146
- const findOptions = createFindOptions({ order: { id: 'ASC' } });
147
- initializeShadeRoot({
148
- injector,
149
- rootElement,
150
- jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
152
+ await usingAsync(new Injector(), async (injector) => {
153
+ const rootElement = document.getElementById('root');
154
+ const findOptions = createFindOptions({ order: { id: 'ASC' } });
155
+ initializeShadeRoot({
156
+ injector,
157
+ rootElement,
158
+ jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
159
+ });
160
+ await sleepAsync(50);
161
+ const button = document.querySelector('data-grid-order-button');
162
+ expect(button?.querySelector('shade-icon')).not.toBeNull();
151
163
  });
152
- await sleepAsync(50);
153
- const button = document.querySelector('data-grid-order-button');
154
- expect(button?.textContent).toContain('↕');
155
164
  });
156
165
  it('should toggle order to ASC when clicking on unsorted field', async () => {
157
- const injector = new Injector();
158
- const rootElement = document.getElementById('root');
159
- const findOptions = createFindOptions();
160
- initializeShadeRoot({
161
- injector,
162
- rootElement,
163
- jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
166
+ await usingAsync(new Injector(), async (injector) => {
167
+ const rootElement = document.getElementById('root');
168
+ const findOptions = createFindOptions();
169
+ initializeShadeRoot({
170
+ injector,
171
+ rootElement,
172
+ jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
173
+ });
174
+ await sleepAsync(50);
175
+ const button = document.querySelector('data-grid-order-button')?.querySelector('button');
176
+ button?.click();
177
+ await sleepAsync(50);
178
+ const updatedOptions = findOptions.getValue();
179
+ expect(updatedOptions.order).toEqual({ name: 'ASC' });
164
180
  });
165
- await sleepAsync(50);
166
- const button = document.querySelector('data-grid-order-button')?.querySelector('button');
167
- button?.click();
168
- await sleepAsync(50);
169
- const updatedOptions = findOptions.getValue();
170
- expect(updatedOptions.order).toEqual({ name: 'ASC' });
171
181
  });
172
182
  it('should toggle order from ASC to DESC when clicking', async () => {
173
- const injector = new Injector();
174
- const rootElement = document.getElementById('root');
175
- const findOptions = createFindOptions({ order: { name: 'ASC' } });
176
- initializeShadeRoot({
177
- injector,
178
- rootElement,
179
- jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
183
+ await usingAsync(new Injector(), async (injector) => {
184
+ const rootElement = document.getElementById('root');
185
+ const findOptions = createFindOptions({ order: { name: 'ASC' } });
186
+ initializeShadeRoot({
187
+ injector,
188
+ rootElement,
189
+ jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
190
+ });
191
+ await sleepAsync(50);
192
+ const button = document.querySelector('data-grid-order-button')?.querySelector('button');
193
+ button?.click();
194
+ await sleepAsync(50);
195
+ const updatedOptions = findOptions.getValue();
196
+ expect(updatedOptions.order).toEqual({ name: 'DESC' });
180
197
  });
181
- await sleepAsync(50);
182
- const button = document.querySelector('data-grid-order-button')?.querySelector('button');
183
- button?.click();
184
- await sleepAsync(50);
185
- const updatedOptions = findOptions.getValue();
186
- expect(updatedOptions.order).toEqual({ name: 'DESC' });
187
198
  });
188
199
  it('should toggle order from DESC to ASC when clicking', async () => {
189
- const injector = new Injector();
190
- const rootElement = document.getElementById('root');
191
- const findOptions = createFindOptions({ order: { name: 'DESC' } });
192
- initializeShadeRoot({
193
- injector,
194
- rootElement,
195
- jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
200
+ await usingAsync(new Injector(), async (injector) => {
201
+ const rootElement = document.getElementById('root');
202
+ const findOptions = createFindOptions({ order: { name: 'DESC' } });
203
+ initializeShadeRoot({
204
+ injector,
205
+ rootElement,
206
+ jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
207
+ });
208
+ await sleepAsync(50);
209
+ const button = document.querySelector('data-grid-order-button')?.querySelector('button');
210
+ button?.click();
211
+ await sleepAsync(50);
212
+ const updatedOptions = findOptions.getValue();
213
+ expect(updatedOptions.order).toEqual({ name: 'ASC' });
196
214
  });
197
- await sleepAsync(50);
198
- const button = document.querySelector('data-grid-order-button')?.querySelector('button');
199
- button?.click();
200
- await sleepAsync(50);
201
- const updatedOptions = findOptions.getValue();
202
- expect(updatedOptions.order).toEqual({ name: 'ASC' });
203
215
  });
204
216
  it('should react to external findOptions changes', async () => {
205
- const injector = new Injector();
206
- const rootElement = document.getElementById('root');
207
- const findOptions = createFindOptions();
208
- initializeShadeRoot({
209
- injector,
210
- rootElement,
211
- jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
217
+ await usingAsync(new Injector(), async (injector) => {
218
+ const rootElement = document.getElementById('root');
219
+ const findOptions = createFindOptions();
220
+ initializeShadeRoot({
221
+ injector,
222
+ rootElement,
223
+ jsxElement: createComponent(OrderButton, { field: "name", findOptions: findOptions }),
224
+ });
225
+ await sleepAsync(50);
226
+ let button = document.querySelector('data-grid-order-button');
227
+ expect(button?.querySelector('shade-icon')).not.toBeNull();
228
+ findOptions.setValue({ order: { name: 'ASC' } });
229
+ await sleepAsync(50);
230
+ button = document.querySelector('data-grid-order-button');
231
+ expect(button?.querySelector('shade-icon')).not.toBeNull();
212
232
  });
213
- await sleepAsync(50);
214
- let button = document.querySelector('data-grid-order-button');
215
- expect(button?.textContent).toContain('↕');
216
- findOptions.setValue({ order: { name: 'ASC' } });
217
- await sleepAsync(50);
218
- button = document.querySelector('data-grid-order-button');
219
- expect(button?.textContent).toContain('⬇');
220
233
  });
221
234
  });
222
235
  describe('SearchButton', () => {
223
236
  it('should show inactive icon when no filter is set', async () => {
224
- const injector = new Injector();
225
- const rootElement = document.getElementById('root');
226
- const findOptions = createFindOptions();
227
- initializeShadeRoot({
228
- injector,
229
- rootElement,
230
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
237
+ await usingAsync(new Injector(), async (injector) => {
238
+ const rootElement = document.getElementById('root');
239
+ const findOptions = createFindOptions();
240
+ initializeShadeRoot({
241
+ injector,
242
+ rootElement,
243
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
244
+ });
245
+ await sleepAsync(50);
246
+ const searchButton = document.querySelector('data-grid-search-button');
247
+ expect(searchButton?.querySelector('shade-icon')).not.toBeNull();
231
248
  });
232
- await sleepAsync(50);
233
- const searchButton = document.querySelector('data-grid-search-button');
234
- expect(searchButton?.textContent).toContain('🔎');
235
249
  });
236
250
  it('should show active icon when filter is set for field', async () => {
237
- const injector = new Injector();
238
- const rootElement = document.getElementById('root');
239
- const findOptions = createFindOptions({ filter: { name: { $regex: 'test' } } });
240
- initializeShadeRoot({
241
- injector,
242
- rootElement,
243
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
251
+ await usingAsync(new Injector(), async (injector) => {
252
+ const rootElement = document.getElementById('root');
253
+ const findOptions = createFindOptions({ filter: { name: { $regex: 'test' } } });
254
+ initializeShadeRoot({
255
+ injector,
256
+ rootElement,
257
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
258
+ });
259
+ await sleepAsync(50);
260
+ const searchButton = document.querySelector('data-grid-search-button');
261
+ expect(searchButton?.querySelector('shade-icon')).not.toBeNull();
244
262
  });
245
- await sleepAsync(50);
246
- const searchButton = document.querySelector('data-grid-search-button');
247
- expect(searchButton?.textContent).toContain('🔍');
248
263
  });
249
264
  it('should show inactive icon when filter is set for different field', async () => {
250
- const injector = new Injector();
251
- const rootElement = document.getElementById('root');
252
- const findOptions = createFindOptions({ filter: { email: { $regex: 'test' } } });
253
- initializeShadeRoot({
254
- injector,
255
- rootElement,
256
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
265
+ await usingAsync(new Injector(), async (injector) => {
266
+ const rootElement = document.getElementById('root');
267
+ const findOptions = createFindOptions({ filter: { email: { $regex: 'test' } } });
268
+ initializeShadeRoot({
269
+ injector,
270
+ rootElement,
271
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
272
+ });
273
+ await sleepAsync(50);
274
+ const searchButton = document.querySelector('data-grid-search-button');
275
+ expect(searchButton?.querySelector('shade-icon')).not.toBeNull();
257
276
  });
258
- await sleepAsync(50);
259
- const searchButton = document.querySelector('data-grid-search-button');
260
- expect(searchButton?.textContent).toContain('🔎');
261
277
  });
262
278
  });
263
279
  describe('SearchForm', () => {
264
280
  it('should expand search form when search button is clicked', async () => {
265
- const injector = new Injector();
266
- const rootElement = document.getElementById('root');
267
- const findOptions = createFindOptions();
268
- initializeShadeRoot({
269
- injector,
270
- rootElement,
271
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
281
+ await usingAsync(new Injector(), async (injector) => {
282
+ const rootElement = document.getElementById('root');
283
+ const findOptions = createFindOptions();
284
+ initializeShadeRoot({
285
+ injector,
286
+ rootElement,
287
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
288
+ });
289
+ await sleepAsync(50);
290
+ const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
291
+ searchButton?.click();
292
+ await sleepAsync(150);
293
+ const searchForm = document.querySelector('.search-form');
294
+ expect(searchForm.style.display).toBe('flex');
272
295
  });
273
- await sleepAsync(50);
274
- const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
275
- searchButton?.click();
276
- await sleepAsync(150);
277
- const searchForm = document.querySelector('.search-form');
278
- expect(searchForm.style.display).toBe('flex');
279
296
  });
280
297
  it('should update findOptions when search is submitted', async () => {
281
- const injector = new Injector();
282
- const rootElement = document.getElementById('root');
283
- const findOptions = createFindOptions();
284
- initializeShadeRoot({
285
- injector,
286
- rootElement,
287
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
298
+ await usingAsync(new Injector(), async (injector) => {
299
+ const rootElement = document.getElementById('root');
300
+ const findOptions = createFindOptions();
301
+ initializeShadeRoot({
302
+ injector,
303
+ rootElement,
304
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
305
+ });
306
+ await sleepAsync(50);
307
+ const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
308
+ searchButton?.click();
309
+ await sleepAsync(150);
310
+ const input = document.querySelector('.search-form input');
311
+ input.value = 'test-search';
312
+ input.dispatchEvent(new Event('input', { bubbles: true }));
313
+ const form = document.querySelector('.search-form');
314
+ form.dispatchEvent(new Event('submit', { bubbles: true }));
315
+ await sleepAsync(50);
316
+ const updatedOptions = findOptions.getValue();
317
+ expect(updatedOptions.filter).toEqual({ name: { $regex: 'test-search' } });
288
318
  });
289
- await sleepAsync(50);
290
- const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
291
- searchButton?.click();
292
- await sleepAsync(150);
293
- const input = document.querySelector('.search-form input');
294
- input.value = 'test-search';
295
- input.dispatchEvent(new Event('input', { bubbles: true }));
296
- const form = document.querySelector('.search-form');
297
- form.dispatchEvent(new Event('submit', { bubbles: true }));
298
- await sleepAsync(50);
299
- const updatedOptions = findOptions.getValue();
300
- expect(updatedOptions.filter).toEqual({ name: { $regex: 'test-search' } });
301
319
  });
302
320
  it('should clear filter when clear button is clicked', async () => {
303
- const injector = new Injector();
304
- const rootElement = document.getElementById('root');
305
- const findOptions = createFindOptions({ filter: { name: { $regex: 'existing' } } });
306
- initializeShadeRoot({
307
- injector,
308
- rootElement,
309
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
321
+ await usingAsync(new Injector(), async (injector) => {
322
+ const rootElement = document.getElementById('root');
323
+ const findOptions = createFindOptions({ filter: { name: { $regex: 'existing' } } });
324
+ initializeShadeRoot({
325
+ injector,
326
+ rootElement,
327
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
328
+ });
329
+ await sleepAsync(50);
330
+ const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
331
+ searchButton?.click();
332
+ await sleepAsync(150);
333
+ const clearButton = document.querySelector('.search-form button[type="reset"]');
334
+ clearButton?.click();
335
+ await sleepAsync(50);
336
+ const updatedOptions = findOptions.getValue();
337
+ expect(updatedOptions.filter?.name).toBeUndefined();
310
338
  });
311
- await sleepAsync(50);
312
- const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
313
- searchButton?.click();
314
- await sleepAsync(150);
315
- const clearButton = document.querySelector('.search-form button[type="reset"]');
316
- clearButton?.click();
317
- await sleepAsync(50);
318
- const updatedOptions = findOptions.getValue();
319
- expect(updatedOptions.filter?.name).toBeUndefined();
320
339
  });
321
340
  it('should preserve filters for other fields when submitting search', async () => {
322
- const injector = new Injector();
323
- const rootElement = document.getElementById('root');
324
- const findOptions = createFindOptions({ filter: { email: { $regex: 'existing' } } });
325
- initializeShadeRoot({
326
- injector,
327
- rootElement,
328
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
329
- });
330
- await sleepAsync(50);
331
- const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
332
- searchButton?.click();
333
- await sleepAsync(150);
334
- const input = document.querySelector('.search-form input');
335
- input.value = 'new-search';
336
- input.dispatchEvent(new Event('input', { bubbles: true }));
337
- const form = document.querySelector('.search-form');
338
- form.dispatchEvent(new Event('submit', { bubbles: true }));
339
- await sleepAsync(50);
340
- const updatedOptions = findOptions.getValue();
341
- expect(updatedOptions.filter).toEqual({
342
- email: { $regex: 'existing' },
343
- name: { $regex: 'new-search' },
341
+ await usingAsync(new Injector(), async (injector) => {
342
+ const rootElement = document.getElementById('root');
343
+ const findOptions = createFindOptions({ filter: { email: { $regex: 'existing' } } });
344
+ initializeShadeRoot({
345
+ injector,
346
+ rootElement,
347
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
348
+ });
349
+ await sleepAsync(50);
350
+ const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
351
+ searchButton?.click();
352
+ await sleepAsync(150);
353
+ const input = document.querySelector('.search-form input');
354
+ input.value = 'new-search';
355
+ input.dispatchEvent(new Event('input', { bubbles: true }));
356
+ const form = document.querySelector('.search-form');
357
+ form.dispatchEvent(new Event('submit', { bubbles: true }));
358
+ await sleepAsync(50);
359
+ const updatedOptions = findOptions.getValue();
360
+ expect(updatedOptions.filter).toEqual({
361
+ email: { $regex: 'existing' },
362
+ name: { $regex: 'new-search' },
363
+ });
344
364
  });
345
365
  });
346
366
  it('should preserve other findOptions properties when updating filter', async () => {
347
- const injector = new Injector();
348
- const rootElement = document.getElementById('root');
349
- const findOptions = createFindOptions({
350
- order: { id: 'ASC' },
351
- top: 10,
352
- skip: 20,
353
- });
354
- initializeShadeRoot({
355
- injector,
356
- rootElement,
357
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
367
+ await usingAsync(new Injector(), async (injector) => {
368
+ const rootElement = document.getElementById('root');
369
+ const findOptions = createFindOptions({
370
+ order: { id: 'ASC' },
371
+ top: 10,
372
+ skip: 20,
373
+ });
374
+ initializeShadeRoot({
375
+ injector,
376
+ rootElement,
377
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
378
+ });
379
+ await sleepAsync(50);
380
+ const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
381
+ searchButton?.click();
382
+ await sleepAsync(150);
383
+ const input = document.querySelector('.search-form input');
384
+ input.value = 'search-value';
385
+ input.dispatchEvent(new Event('input', { bubbles: true }));
386
+ const form = document.querySelector('.search-form');
387
+ form.dispatchEvent(new Event('submit', { bubbles: true }));
388
+ await sleepAsync(50);
389
+ const updatedOptions = findOptions.getValue();
390
+ expect(updatedOptions.order).toEqual({ id: 'ASC' });
391
+ expect(updatedOptions.top).toBe(10);
392
+ expect(updatedOptions.skip).toBe(20);
393
+ expect(updatedOptions.filter).toEqual({ name: { $regex: 'search-value' } });
358
394
  });
359
- await sleepAsync(50);
360
- const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
361
- searchButton?.click();
362
- await sleepAsync(150);
363
- const input = document.querySelector('.search-form input');
364
- input.value = 'search-value';
365
- input.dispatchEvent(new Event('input', { bubbles: true }));
366
- const form = document.querySelector('.search-form');
367
- form.dispatchEvent(new Event('submit', { bubbles: true }));
368
- await sleepAsync(50);
369
- const updatedOptions = findOptions.getValue();
370
- expect(updatedOptions.order).toEqual({ id: 'ASC' });
371
- expect(updatedOptions.top).toBe(10);
372
- expect(updatedOptions.skip).toBe(20);
373
- expect(updatedOptions.filter).toEqual({ name: { $regex: 'search-value' } });
374
395
  });
375
396
  it('should show current filter value in search input', async () => {
376
- const injector = new Injector();
377
- const rootElement = document.getElementById('root');
378
- const findOptions = createFindOptions({ filter: { name: { $regex: 'current-filter' } } });
379
- initializeShadeRoot({
380
- injector,
381
- rootElement,
382
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
397
+ await usingAsync(new Injector(), async (injector) => {
398
+ const rootElement = document.getElementById('root');
399
+ const findOptions = createFindOptions({ filter: { name: { $regex: 'current-filter' } } });
400
+ initializeShadeRoot({
401
+ injector,
402
+ rootElement,
403
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
404
+ });
405
+ await sleepAsync(50);
406
+ const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
407
+ searchButton?.click();
408
+ await sleepAsync(150);
409
+ const input = document.querySelector('.search-form input');
410
+ expect(input.value).toBe('current-filter');
383
411
  });
384
- await sleepAsync(50);
385
- const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
386
- searchButton?.click();
387
- await sleepAsync(150);
388
- const input = document.querySelector('.search-form input');
389
- expect(input.value).toBe('current-filter');
390
412
  });
391
413
  });
392
414
  describe('integration', () => {
393
415
  it('should support both sorting and filtering simultaneously', async () => {
394
- const injector = new Injector();
395
- const rootElement = document.getElementById('root');
396
- const findOptions = createFindOptions();
397
- initializeShadeRoot({
398
- injector,
399
- rootElement,
400
- jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
416
+ await usingAsync(new Injector(), async (injector) => {
417
+ const rootElement = document.getElementById('root');
418
+ const findOptions = createFindOptions();
419
+ initializeShadeRoot({
420
+ injector,
421
+ rootElement,
422
+ jsxElement: createComponent(DataGridHeader, { field: "name", findOptions: findOptions }),
423
+ });
424
+ await sleepAsync(50);
425
+ const orderButton = document.querySelector('data-grid-order-button')?.querySelector('button');
426
+ orderButton?.click();
427
+ await sleepAsync(50);
428
+ const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
429
+ searchButton?.click();
430
+ await sleepAsync(150);
431
+ const input = document.querySelector('.search-form input');
432
+ input.value = 'filter-value';
433
+ input.dispatchEvent(new Event('input', { bubbles: true }));
434
+ const form = document.querySelector('.search-form');
435
+ form.dispatchEvent(new Event('submit', { bubbles: true }));
436
+ await sleepAsync(50);
437
+ const updatedOptions = findOptions.getValue();
438
+ expect(updatedOptions.order).toEqual({ name: 'ASC' });
439
+ expect(updatedOptions.filter).toEqual({ name: { $regex: 'filter-value' } });
401
440
  });
402
- await sleepAsync(50);
403
- const orderButton = document.querySelector('data-grid-order-button')?.querySelector('button');
404
- orderButton?.click();
405
- await sleepAsync(50);
406
- const searchButton = document.querySelector('data-grid-search-button')?.querySelector('button');
407
- searchButton?.click();
408
- await sleepAsync(150);
409
- const input = document.querySelector('.search-form input');
410
- input.value = 'filter-value';
411
- input.dispatchEvent(new Event('input', { bubbles: true }));
412
- const form = document.querySelector('.search-form');
413
- form.dispatchEvent(new Event('submit', { bubbles: true }));
414
- await sleepAsync(50);
415
- const updatedOptions = findOptions.getValue();
416
- expect(updatedOptions.order).toEqual({ name: 'ASC' });
417
- expect(updatedOptions.filter).toEqual({ name: { $regex: 'filter-value' } });
418
441
  });
419
442
  });
420
443
  });