@keenthemes/ktui 1.1.6 → 1.2.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 (417) hide show
  1. package/README.md +24 -0
  2. package/dist/ktui.js +468 -1
  3. package/dist/ktui.min.js +1 -1
  4. package/dist/ktui.min.js.map +1 -1
  5. package/dist/styles.css +107 -5
  6. package/lib/cjs/components/accordion/accordion.d.ts +32 -0
  7. package/lib/cjs/components/accordion/accordion.d.ts.map +1 -0
  8. package/lib/cjs/components/accordion/index.d.ts +7 -0
  9. package/lib/cjs/components/accordion/index.d.ts.map +1 -0
  10. package/lib/cjs/components/accordion/types.d.ts +15 -0
  11. package/lib/cjs/components/accordion/types.d.ts.map +1 -0
  12. package/lib/cjs/components/collapse/collapse.d.ts +28 -0
  13. package/lib/cjs/components/collapse/collapse.d.ts.map +1 -0
  14. package/lib/cjs/components/collapse/index.d.ts +7 -0
  15. package/lib/cjs/components/collapse/index.d.ts.map +1 -0
  16. package/lib/cjs/components/collapse/types.d.ts +15 -0
  17. package/lib/cjs/components/collapse/types.d.ts.map +1 -0
  18. package/lib/cjs/components/component.d.ts +44 -0
  19. package/lib/cjs/components/component.d.ts.map +1 -0
  20. package/lib/cjs/components/constants.d.ts +6 -0
  21. package/lib/cjs/components/constants.d.ts.map +1 -0
  22. package/lib/cjs/components/datatable/datatable-checkbox.d.ts +16 -0
  23. package/lib/cjs/components/datatable/datatable-checkbox.d.ts.map +1 -0
  24. package/lib/cjs/components/datatable/datatable-sort.d.ts +16 -0
  25. package/lib/cjs/components/datatable/datatable-sort.d.ts.map +1 -0
  26. package/lib/cjs/components/datatable/datatable.d.ts +339 -0
  27. package/lib/cjs/components/datatable/datatable.d.ts.map +1 -0
  28. package/lib/cjs/components/datatable/index.d.ts +7 -0
  29. package/lib/cjs/components/datatable/index.d.ts.map +1 -0
  30. package/lib/cjs/components/datatable/types.d.ts +166 -0
  31. package/lib/cjs/components/datatable/types.d.ts.map +1 -0
  32. package/lib/cjs/components/dismiss/dismiss.d.ts +30 -0
  33. package/lib/cjs/components/dismiss/dismiss.d.ts.map +1 -0
  34. package/lib/cjs/components/dismiss/index.d.ts +7 -0
  35. package/lib/cjs/components/dismiss/index.d.ts.map +1 -0
  36. package/lib/cjs/components/dismiss/types.d.ts +15 -0
  37. package/lib/cjs/components/dismiss/types.d.ts.map +1 -0
  38. package/lib/cjs/components/drawer/drawer.d.ts +63 -0
  39. package/lib/cjs/components/drawer/drawer.d.ts.map +1 -0
  40. package/lib/cjs/components/drawer/index.d.ts +7 -0
  41. package/lib/cjs/components/drawer/index.d.ts.map +1 -0
  42. package/lib/cjs/components/drawer/types.d.ts +27 -0
  43. package/lib/cjs/components/drawer/types.d.ts.map +1 -0
  44. package/lib/cjs/components/dropdown/dropdown.d.ts +71 -0
  45. package/lib/cjs/components/dropdown/dropdown.d.ts.map +1 -0
  46. package/lib/cjs/components/dropdown/index.d.ts +7 -0
  47. package/lib/cjs/components/dropdown/index.d.ts.map +1 -0
  48. package/lib/cjs/components/dropdown/types.d.ts +27 -0
  49. package/lib/cjs/components/dropdown/types.d.ts.map +1 -0
  50. package/lib/cjs/components/image-input/image-input.d.ts +42 -0
  51. package/lib/cjs/components/image-input/image-input.d.ts.map +1 -0
  52. package/lib/cjs/components/image-input/index.d.ts +7 -0
  53. package/lib/cjs/components/image-input/index.d.ts.map +1 -0
  54. package/lib/cjs/components/image-input/types.d.ts +12 -0
  55. package/lib/cjs/components/image-input/types.d.ts.map +1 -0
  56. package/lib/cjs/components/modal/index.d.ts +7 -0
  57. package/lib/cjs/components/modal/index.d.ts.map +1 -0
  58. package/lib/cjs/components/modal/modal.d.ts +45 -0
  59. package/lib/cjs/components/modal/modal.d.ts.map +1 -0
  60. package/lib/cjs/components/modal/types.d.ts +21 -0
  61. package/lib/cjs/components/modal/types.d.ts.map +1 -0
  62. package/lib/cjs/components/rating/index.d.ts +7 -0
  63. package/lib/cjs/components/rating/index.d.ts.map +1 -0
  64. package/lib/cjs/components/rating/index.js +10 -0
  65. package/lib/cjs/components/rating/index.js.map +1 -0
  66. package/lib/cjs/components/rating/rating.d.ts +31 -0
  67. package/lib/cjs/components/rating/rating.d.ts.map +1 -0
  68. package/lib/cjs/components/rating/rating.js +239 -0
  69. package/lib/cjs/components/rating/rating.js.map +1 -0
  70. package/lib/cjs/components/rating/types.d.ts +25 -0
  71. package/lib/cjs/components/rating/types.d.ts.map +1 -0
  72. package/lib/cjs/components/rating/types.js +7 -0
  73. package/lib/cjs/components/rating/types.js.map +1 -0
  74. package/lib/cjs/components/reparent/index.d.ts +7 -0
  75. package/lib/cjs/components/reparent/index.d.ts.map +1 -0
  76. package/lib/cjs/components/reparent/reparent.d.ts +25 -0
  77. package/lib/cjs/components/reparent/reparent.d.ts.map +1 -0
  78. package/lib/cjs/components/reparent/types.d.ts +13 -0
  79. package/lib/cjs/components/reparent/types.d.ts.map +1 -0
  80. package/lib/cjs/components/repeater/index.d.ts +7 -0
  81. package/lib/cjs/components/repeater/index.d.ts.map +1 -0
  82. package/lib/cjs/components/repeater/index.js +10 -0
  83. package/lib/cjs/components/repeater/index.js.map +1 -0
  84. package/lib/cjs/components/repeater/repeater.d.ts +33 -0
  85. package/lib/cjs/components/repeater/repeater.d.ts.map +1 -0
  86. package/lib/cjs/components/repeater/repeater.js +173 -0
  87. package/lib/cjs/components/repeater/repeater.js.map +1 -0
  88. package/lib/cjs/components/repeater/types.d.ts +18 -0
  89. package/lib/cjs/components/repeater/types.d.ts.map +1 -0
  90. package/lib/cjs/components/repeater/types.js +7 -0
  91. package/lib/cjs/components/repeater/types.js.map +1 -0
  92. package/lib/cjs/components/scrollable/index.d.ts +7 -0
  93. package/lib/cjs/components/scrollable/index.d.ts.map +1 -0
  94. package/lib/cjs/components/scrollable/scrollable.d.ts +37 -0
  95. package/lib/cjs/components/scrollable/scrollable.d.ts.map +1 -0
  96. package/lib/cjs/components/scrollable/types.d.ts +15 -0
  97. package/lib/cjs/components/scrollable/types.d.ts.map +1 -0
  98. package/lib/cjs/components/scrollspy/index.d.ts +7 -0
  99. package/lib/cjs/components/scrollspy/index.d.ts.map +1 -0
  100. package/lib/cjs/components/scrollspy/scrollspy.d.ts +35 -0
  101. package/lib/cjs/components/scrollspy/scrollspy.d.ts.map +1 -0
  102. package/lib/cjs/components/scrollspy/types.d.ts +14 -0
  103. package/lib/cjs/components/scrollspy/types.d.ts.map +1 -0
  104. package/lib/cjs/components/scrollto/index.d.ts +7 -0
  105. package/lib/cjs/components/scrollto/index.d.ts.map +1 -0
  106. package/lib/cjs/components/scrollto/scrollto.d.ts +28 -0
  107. package/lib/cjs/components/scrollto/scrollto.d.ts.map +1 -0
  108. package/lib/cjs/components/scrollto/types.d.ts +14 -0
  109. package/lib/cjs/components/scrollto/types.d.ts.map +1 -0
  110. package/lib/cjs/components/select/combobox.d.ts +52 -0
  111. package/lib/cjs/components/select/combobox.d.ts.map +1 -0
  112. package/lib/cjs/components/select/config.d.ts +105 -0
  113. package/lib/cjs/components/select/config.d.ts.map +1 -0
  114. package/lib/cjs/components/select/dropdown.d.ts +101 -0
  115. package/lib/cjs/components/select/dropdown.d.ts.map +1 -0
  116. package/lib/cjs/components/select/index.d.ts +13 -0
  117. package/lib/cjs/components/select/index.d.ts.map +1 -0
  118. package/lib/cjs/components/select/option.d.ts +23 -0
  119. package/lib/cjs/components/select/option.d.ts.map +1 -0
  120. package/lib/cjs/components/select/remote.d.ts +91 -0
  121. package/lib/cjs/components/select/remote.d.ts.map +1 -0
  122. package/lib/cjs/components/select/search.d.ts +67 -0
  123. package/lib/cjs/components/select/search.d.ts.map +1 -0
  124. package/lib/cjs/components/select/select.d.ts +427 -0
  125. package/lib/cjs/components/select/select.d.ts.map +1 -0
  126. package/lib/cjs/components/select/select.js +3 -0
  127. package/lib/cjs/components/select/select.js.map +1 -1
  128. package/lib/cjs/components/select/tags.d.ts +32 -0
  129. package/lib/cjs/components/select/tags.d.ts.map +1 -0
  130. package/lib/cjs/components/select/templates.d.ts +79 -0
  131. package/lib/cjs/components/select/templates.d.ts.map +1 -0
  132. package/lib/cjs/components/select/types.d.ts +23 -0
  133. package/lib/cjs/components/select/types.d.ts.map +1 -0
  134. package/lib/cjs/components/select/utils.d.ts +130 -0
  135. package/lib/cjs/components/select/utils.d.ts.map +1 -0
  136. package/lib/cjs/components/stepper/index.d.ts +7 -0
  137. package/lib/cjs/components/stepper/index.d.ts.map +1 -0
  138. package/lib/cjs/components/stepper/stepper.d.ts +53 -0
  139. package/lib/cjs/components/stepper/stepper.d.ts.map +1 -0
  140. package/lib/cjs/components/stepper/types.d.ts +12 -0
  141. package/lib/cjs/components/stepper/types.d.ts.map +1 -0
  142. package/lib/cjs/components/sticky/index.d.ts +7 -0
  143. package/lib/cjs/components/sticky/index.d.ts.map +1 -0
  144. package/lib/cjs/components/sticky/sticky.d.ts +51 -0
  145. package/lib/cjs/components/sticky/sticky.d.ts.map +1 -0
  146. package/lib/cjs/components/sticky/types.d.ts +28 -0
  147. package/lib/cjs/components/sticky/types.d.ts.map +1 -0
  148. package/lib/cjs/components/tabs/index.d.ts +7 -0
  149. package/lib/cjs/components/tabs/index.d.ts.map +1 -0
  150. package/lib/cjs/components/tabs/tabs.d.ts +38 -0
  151. package/lib/cjs/components/tabs/tabs.d.ts.map +1 -0
  152. package/lib/cjs/components/tabs/types.d.ts +12 -0
  153. package/lib/cjs/components/tabs/types.d.ts.map +1 -0
  154. package/lib/cjs/components/theme-switch/index.d.ts +7 -0
  155. package/lib/cjs/components/theme-switch/index.d.ts.map +1 -0
  156. package/lib/cjs/components/theme-switch/theme-switch.d.ts +33 -0
  157. package/lib/cjs/components/theme-switch/theme-switch.d.ts.map +1 -0
  158. package/lib/cjs/components/theme-switch/types.d.ts +13 -0
  159. package/lib/cjs/components/theme-switch/types.d.ts.map +1 -0
  160. package/lib/cjs/components/toast/index.d.ts +7 -0
  161. package/lib/cjs/components/toast/index.d.ts.map +1 -0
  162. package/lib/cjs/components/toast/toast.d.ts +76 -0
  163. package/lib/cjs/components/toast/toast.d.ts.map +1 -0
  164. package/lib/cjs/components/toast/types.d.ts +146 -0
  165. package/lib/cjs/components/toast/types.d.ts.map +1 -0
  166. package/lib/cjs/components/toggle/index.d.ts +7 -0
  167. package/lib/cjs/components/toggle/index.d.ts.map +1 -0
  168. package/lib/cjs/components/toggle/toggle.d.ts +31 -0
  169. package/lib/cjs/components/toggle/toggle.d.ts.map +1 -0
  170. package/lib/cjs/components/toggle/types.d.ts +17 -0
  171. package/lib/cjs/components/toggle/types.d.ts.map +1 -0
  172. package/lib/cjs/components/toggle-password/index.d.ts +7 -0
  173. package/lib/cjs/components/toggle-password/index.d.ts.map +1 -0
  174. package/lib/cjs/components/toggle-password/toggle-password.d.ts +32 -0
  175. package/lib/cjs/components/toggle-password/toggle-password.d.ts.map +1 -0
  176. package/lib/cjs/components/toggle-password/types.d.ts +12 -0
  177. package/lib/cjs/components/toggle-password/types.d.ts.map +1 -0
  178. package/lib/cjs/components/tooltip/index.d.ts +7 -0
  179. package/lib/cjs/components/tooltip/index.d.ts.map +1 -0
  180. package/lib/cjs/components/tooltip/tooltip.d.ts +46 -0
  181. package/lib/cjs/components/tooltip/tooltip.d.ts.map +1 -0
  182. package/lib/cjs/components/tooltip/types.d.ts +26 -0
  183. package/lib/cjs/components/tooltip/types.d.ts.map +1 -0
  184. package/lib/cjs/helpers/data.d.ts +13 -0
  185. package/lib/cjs/helpers/data.d.ts.map +1 -0
  186. package/lib/cjs/helpers/dom.d.ts +42 -0
  187. package/lib/cjs/helpers/dom.d.ts.map +1 -0
  188. package/lib/cjs/helpers/event-handler.d.ts +14 -0
  189. package/lib/cjs/helpers/event-handler.d.ts.map +1 -0
  190. package/lib/cjs/helpers/utils.d.ts +25 -0
  191. package/lib/cjs/helpers/utils.d.ts.map +1 -0
  192. package/lib/cjs/index.d.ts +114 -0
  193. package/lib/cjs/index.d.ts.map +1 -0
  194. package/lib/cjs/index.js +9 -1
  195. package/lib/cjs/index.js.map +1 -1
  196. package/lib/cjs/types.d.ts +17 -0
  197. package/lib/cjs/types.d.ts.map +1 -0
  198. package/lib/esm/components/accordion/accordion.d.ts +32 -0
  199. package/lib/esm/components/accordion/accordion.d.ts.map +1 -0
  200. package/lib/esm/components/accordion/index.d.ts +7 -0
  201. package/lib/esm/components/accordion/index.d.ts.map +1 -0
  202. package/lib/esm/components/accordion/types.d.ts +15 -0
  203. package/lib/esm/components/accordion/types.d.ts.map +1 -0
  204. package/lib/esm/components/collapse/collapse.d.ts +28 -0
  205. package/lib/esm/components/collapse/collapse.d.ts.map +1 -0
  206. package/lib/esm/components/collapse/index.d.ts +7 -0
  207. package/lib/esm/components/collapse/index.d.ts.map +1 -0
  208. package/lib/esm/components/collapse/types.d.ts +15 -0
  209. package/lib/esm/components/collapse/types.d.ts.map +1 -0
  210. package/lib/esm/components/component.d.ts +44 -0
  211. package/lib/esm/components/component.d.ts.map +1 -0
  212. package/lib/esm/components/constants.d.ts +6 -0
  213. package/lib/esm/components/constants.d.ts.map +1 -0
  214. package/lib/esm/components/datatable/datatable-checkbox.d.ts +16 -0
  215. package/lib/esm/components/datatable/datatable-checkbox.d.ts.map +1 -0
  216. package/lib/esm/components/datatable/datatable-sort.d.ts +16 -0
  217. package/lib/esm/components/datatable/datatable-sort.d.ts.map +1 -0
  218. package/lib/esm/components/datatable/datatable.d.ts +339 -0
  219. package/lib/esm/components/datatable/datatable.d.ts.map +1 -0
  220. package/lib/esm/components/datatable/index.d.ts +7 -0
  221. package/lib/esm/components/datatable/index.d.ts.map +1 -0
  222. package/lib/esm/components/datatable/types.d.ts +166 -0
  223. package/lib/esm/components/datatable/types.d.ts.map +1 -0
  224. package/lib/esm/components/dismiss/dismiss.d.ts +30 -0
  225. package/lib/esm/components/dismiss/dismiss.d.ts.map +1 -0
  226. package/lib/esm/components/dismiss/index.d.ts +7 -0
  227. package/lib/esm/components/dismiss/index.d.ts.map +1 -0
  228. package/lib/esm/components/dismiss/types.d.ts +15 -0
  229. package/lib/esm/components/dismiss/types.d.ts.map +1 -0
  230. package/lib/esm/components/drawer/drawer.d.ts +63 -0
  231. package/lib/esm/components/drawer/drawer.d.ts.map +1 -0
  232. package/lib/esm/components/drawer/index.d.ts +7 -0
  233. package/lib/esm/components/drawer/index.d.ts.map +1 -0
  234. package/lib/esm/components/drawer/types.d.ts +27 -0
  235. package/lib/esm/components/drawer/types.d.ts.map +1 -0
  236. package/lib/esm/components/dropdown/dropdown.d.ts +71 -0
  237. package/lib/esm/components/dropdown/dropdown.d.ts.map +1 -0
  238. package/lib/esm/components/dropdown/index.d.ts +7 -0
  239. package/lib/esm/components/dropdown/index.d.ts.map +1 -0
  240. package/lib/esm/components/dropdown/types.d.ts +27 -0
  241. package/lib/esm/components/dropdown/types.d.ts.map +1 -0
  242. package/lib/esm/components/image-input/image-input.d.ts +42 -0
  243. package/lib/esm/components/image-input/image-input.d.ts.map +1 -0
  244. package/lib/esm/components/image-input/index.d.ts +7 -0
  245. package/lib/esm/components/image-input/index.d.ts.map +1 -0
  246. package/lib/esm/components/image-input/types.d.ts +12 -0
  247. package/lib/esm/components/image-input/types.d.ts.map +1 -0
  248. package/lib/esm/components/modal/index.d.ts +7 -0
  249. package/lib/esm/components/modal/index.d.ts.map +1 -0
  250. package/lib/esm/components/modal/modal.d.ts +45 -0
  251. package/lib/esm/components/modal/modal.d.ts.map +1 -0
  252. package/lib/esm/components/modal/types.d.ts +21 -0
  253. package/lib/esm/components/modal/types.d.ts.map +1 -0
  254. package/lib/esm/components/rating/index.d.ts +7 -0
  255. package/lib/esm/components/rating/index.d.ts.map +1 -0
  256. package/lib/esm/components/rating/index.js +6 -0
  257. package/lib/esm/components/rating/index.js.map +1 -0
  258. package/lib/esm/components/rating/rating.d.ts +31 -0
  259. package/lib/esm/components/rating/rating.d.ts.map +1 -0
  260. package/lib/esm/components/rating/rating.js +236 -0
  261. package/lib/esm/components/rating/rating.js.map +1 -0
  262. package/lib/esm/components/rating/types.d.ts +25 -0
  263. package/lib/esm/components/rating/types.d.ts.map +1 -0
  264. package/lib/esm/components/rating/types.js +6 -0
  265. package/lib/esm/components/rating/types.js.map +1 -0
  266. package/lib/esm/components/reparent/index.d.ts +7 -0
  267. package/lib/esm/components/reparent/index.d.ts.map +1 -0
  268. package/lib/esm/components/reparent/reparent.d.ts +25 -0
  269. package/lib/esm/components/reparent/reparent.d.ts.map +1 -0
  270. package/lib/esm/components/reparent/types.d.ts +13 -0
  271. package/lib/esm/components/reparent/types.d.ts.map +1 -0
  272. package/lib/esm/components/repeater/index.d.ts +7 -0
  273. package/lib/esm/components/repeater/index.d.ts.map +1 -0
  274. package/lib/esm/components/repeater/index.js +6 -0
  275. package/lib/esm/components/repeater/index.js.map +1 -0
  276. package/lib/esm/components/repeater/repeater.d.ts +33 -0
  277. package/lib/esm/components/repeater/repeater.d.ts.map +1 -0
  278. package/lib/esm/components/repeater/repeater.js +170 -0
  279. package/lib/esm/components/repeater/repeater.js.map +1 -0
  280. package/lib/esm/components/repeater/types.d.ts +18 -0
  281. package/lib/esm/components/repeater/types.d.ts.map +1 -0
  282. package/lib/esm/components/repeater/types.js +6 -0
  283. package/lib/esm/components/repeater/types.js.map +1 -0
  284. package/lib/esm/components/scrollable/index.d.ts +7 -0
  285. package/lib/esm/components/scrollable/index.d.ts.map +1 -0
  286. package/lib/esm/components/scrollable/scrollable.d.ts +37 -0
  287. package/lib/esm/components/scrollable/scrollable.d.ts.map +1 -0
  288. package/lib/esm/components/scrollable/types.d.ts +15 -0
  289. package/lib/esm/components/scrollable/types.d.ts.map +1 -0
  290. package/lib/esm/components/scrollspy/index.d.ts +7 -0
  291. package/lib/esm/components/scrollspy/index.d.ts.map +1 -0
  292. package/lib/esm/components/scrollspy/scrollspy.d.ts +35 -0
  293. package/lib/esm/components/scrollspy/scrollspy.d.ts.map +1 -0
  294. package/lib/esm/components/scrollspy/types.d.ts +14 -0
  295. package/lib/esm/components/scrollspy/types.d.ts.map +1 -0
  296. package/lib/esm/components/scrollto/index.d.ts +7 -0
  297. package/lib/esm/components/scrollto/index.d.ts.map +1 -0
  298. package/lib/esm/components/scrollto/scrollto.d.ts +28 -0
  299. package/lib/esm/components/scrollto/scrollto.d.ts.map +1 -0
  300. package/lib/esm/components/scrollto/types.d.ts +14 -0
  301. package/lib/esm/components/scrollto/types.d.ts.map +1 -0
  302. package/lib/esm/components/select/combobox.d.ts +52 -0
  303. package/lib/esm/components/select/combobox.d.ts.map +1 -0
  304. package/lib/esm/components/select/config.d.ts +105 -0
  305. package/lib/esm/components/select/config.d.ts.map +1 -0
  306. package/lib/esm/components/select/dropdown.d.ts +101 -0
  307. package/lib/esm/components/select/dropdown.d.ts.map +1 -0
  308. package/lib/esm/components/select/index.d.ts +13 -0
  309. package/lib/esm/components/select/index.d.ts.map +1 -0
  310. package/lib/esm/components/select/option.d.ts +23 -0
  311. package/lib/esm/components/select/option.d.ts.map +1 -0
  312. package/lib/esm/components/select/remote.d.ts +91 -0
  313. package/lib/esm/components/select/remote.d.ts.map +1 -0
  314. package/lib/esm/components/select/search.d.ts +67 -0
  315. package/lib/esm/components/select/search.d.ts.map +1 -0
  316. package/lib/esm/components/select/select.d.ts +427 -0
  317. package/lib/esm/components/select/select.d.ts.map +1 -0
  318. package/lib/esm/components/select/select.js +3 -0
  319. package/lib/esm/components/select/select.js.map +1 -1
  320. package/lib/esm/components/select/tags.d.ts +32 -0
  321. package/lib/esm/components/select/tags.d.ts.map +1 -0
  322. package/lib/esm/components/select/templates.d.ts +79 -0
  323. package/lib/esm/components/select/templates.d.ts.map +1 -0
  324. package/lib/esm/components/select/types.d.ts +23 -0
  325. package/lib/esm/components/select/types.d.ts.map +1 -0
  326. package/lib/esm/components/select/utils.d.ts +130 -0
  327. package/lib/esm/components/select/utils.d.ts.map +1 -0
  328. package/lib/esm/components/stepper/index.d.ts +7 -0
  329. package/lib/esm/components/stepper/index.d.ts.map +1 -0
  330. package/lib/esm/components/stepper/stepper.d.ts +53 -0
  331. package/lib/esm/components/stepper/stepper.d.ts.map +1 -0
  332. package/lib/esm/components/stepper/types.d.ts +12 -0
  333. package/lib/esm/components/stepper/types.d.ts.map +1 -0
  334. package/lib/esm/components/sticky/index.d.ts +7 -0
  335. package/lib/esm/components/sticky/index.d.ts.map +1 -0
  336. package/lib/esm/components/sticky/sticky.d.ts +51 -0
  337. package/lib/esm/components/sticky/sticky.d.ts.map +1 -0
  338. package/lib/esm/components/sticky/types.d.ts +28 -0
  339. package/lib/esm/components/sticky/types.d.ts.map +1 -0
  340. package/lib/esm/components/tabs/index.d.ts +7 -0
  341. package/lib/esm/components/tabs/index.d.ts.map +1 -0
  342. package/lib/esm/components/tabs/tabs.d.ts +38 -0
  343. package/lib/esm/components/tabs/tabs.d.ts.map +1 -0
  344. package/lib/esm/components/tabs/types.d.ts +12 -0
  345. package/lib/esm/components/tabs/types.d.ts.map +1 -0
  346. package/lib/esm/components/theme-switch/index.d.ts +7 -0
  347. package/lib/esm/components/theme-switch/index.d.ts.map +1 -0
  348. package/lib/esm/components/theme-switch/theme-switch.d.ts +33 -0
  349. package/lib/esm/components/theme-switch/theme-switch.d.ts.map +1 -0
  350. package/lib/esm/components/theme-switch/types.d.ts +13 -0
  351. package/lib/esm/components/theme-switch/types.d.ts.map +1 -0
  352. package/lib/esm/components/toast/index.d.ts +7 -0
  353. package/lib/esm/components/toast/index.d.ts.map +1 -0
  354. package/lib/esm/components/toast/toast.d.ts +76 -0
  355. package/lib/esm/components/toast/toast.d.ts.map +1 -0
  356. package/lib/esm/components/toast/types.d.ts +146 -0
  357. package/lib/esm/components/toast/types.d.ts.map +1 -0
  358. package/lib/esm/components/toggle/index.d.ts +7 -0
  359. package/lib/esm/components/toggle/index.d.ts.map +1 -0
  360. package/lib/esm/components/toggle/toggle.d.ts +31 -0
  361. package/lib/esm/components/toggle/toggle.d.ts.map +1 -0
  362. package/lib/esm/components/toggle/types.d.ts +17 -0
  363. package/lib/esm/components/toggle/types.d.ts.map +1 -0
  364. package/lib/esm/components/toggle-password/index.d.ts +7 -0
  365. package/lib/esm/components/toggle-password/index.d.ts.map +1 -0
  366. package/lib/esm/components/toggle-password/toggle-password.d.ts +32 -0
  367. package/lib/esm/components/toggle-password/toggle-password.d.ts.map +1 -0
  368. package/lib/esm/components/toggle-password/types.d.ts +12 -0
  369. package/lib/esm/components/toggle-password/types.d.ts.map +1 -0
  370. package/lib/esm/components/tooltip/index.d.ts +7 -0
  371. package/lib/esm/components/tooltip/index.d.ts.map +1 -0
  372. package/lib/esm/components/tooltip/tooltip.d.ts +46 -0
  373. package/lib/esm/components/tooltip/tooltip.d.ts.map +1 -0
  374. package/lib/esm/components/tooltip/types.d.ts +26 -0
  375. package/lib/esm/components/tooltip/types.d.ts.map +1 -0
  376. package/lib/esm/helpers/data.d.ts +13 -0
  377. package/lib/esm/helpers/data.d.ts.map +1 -0
  378. package/lib/esm/helpers/dom.d.ts +42 -0
  379. package/lib/esm/helpers/dom.d.ts.map +1 -0
  380. package/lib/esm/helpers/event-handler.d.ts +14 -0
  381. package/lib/esm/helpers/event-handler.d.ts.map +1 -0
  382. package/lib/esm/helpers/utils.d.ts +25 -0
  383. package/lib/esm/helpers/utils.d.ts.map +1 -0
  384. package/lib/esm/index.d.ts +114 -0
  385. package/lib/esm/index.d.ts.map +1 -0
  386. package/lib/esm/index.js +6 -0
  387. package/lib/esm/index.js.map +1 -1
  388. package/lib/esm/types.d.ts +17 -0
  389. package/lib/esm/types.d.ts.map +1 -0
  390. package/package.json +4 -3
  391. package/skills/ktui-components/SKILL.md +41 -0
  392. package/skills/ktui-theming/SKILL.md +50 -0
  393. package/src/components/input/input-group.css +15 -5
  394. package/src/components/rating/__tests__/rating.test.ts +234 -0
  395. package/src/components/rating/index.ts +11 -0
  396. package/src/components/rating/rating.css +11 -0
  397. package/src/components/rating/rating.ts +234 -0
  398. package/src/components/rating/types.ts +27 -0
  399. package/src/components/repeater/__tests__/repeater.test.ts +308 -0
  400. package/src/components/repeater/index.ts +7 -0
  401. package/src/components/repeater/repeater.ts +179 -0
  402. package/src/components/repeater/types.ts +19 -0
  403. package/src/components/select/select.ts +4 -0
  404. package/src/index.ts +108 -0
  405. package/styles.css +1 -0
  406. package/lib/cjs/components/datatable/__tests__/pagination-reset.test.js +0 -596
  407. package/lib/cjs/components/datatable/__tests__/pagination-reset.test.js.map +0 -1
  408. package/lib/cjs/components/datatable/__tests__/race-conditions.test.js +0 -548
  409. package/lib/cjs/components/datatable/__tests__/race-conditions.test.js.map +0 -1
  410. package/lib/cjs/components/datatable/__tests__/setup.js +0 -63
  411. package/lib/cjs/components/datatable/__tests__/setup.js.map +0 -1
  412. package/lib/esm/components/datatable/__tests__/pagination-reset.test.js +0 -594
  413. package/lib/esm/components/datatable/__tests__/pagination-reset.test.js.map +0 -1
  414. package/lib/esm/components/datatable/__tests__/race-conditions.test.js +0 -546
  415. package/lib/esm/components/datatable/__tests__/race-conditions.test.js.map +0 -1
  416. package/lib/esm/components/datatable/__tests__/setup.js +0 -58
  417. package/lib/esm/components/datatable/__tests__/setup.js.map +0 -1
@@ -1,548 +0,0 @@
1
- "use strict";
2
- /**
3
- * Race Condition Tests for KTDataTable
4
- * Tests the fixes for concurrent request handling, request cancellation, and stale response detection
5
- */
6
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
- var __generator = (this && this.__generator) || function (thisArg, body) {
16
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
17
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
18
- function verb(n) { return function (v) { return step([n, v]); }; }
19
- function step(op) {
20
- if (f) throw new TypeError("Generator is already executing.");
21
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
22
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
23
- if (y = 0, t) op = [op[0] & 2, t.value];
24
- switch (op[0]) {
25
- case 0: case 1: t = op; break;
26
- case 4: _.label++; return { value: op[1], done: false };
27
- case 5: _.label++; y = op[1]; op = [0]; continue;
28
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
29
- default:
30
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
31
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
32
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
33
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
34
- if (t[2]) _.ops.pop();
35
- _.trys.pop(); continue;
36
- }
37
- op = body.call(thisArg, _);
38
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
39
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
40
- }
41
- };
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- var vitest_1 = require("vitest");
44
- var datatable_1 = require("../datatable");
45
- var setup_1 = require("./setup");
46
- (0, vitest_1.describe)('KTDataTable Race Condition Fixes', function () {
47
- var container;
48
- var mockFetch;
49
- var abortSignals = [];
50
- (0, vitest_1.beforeEach)(function () {
51
- // Setup DOM
52
- container = document.createElement('div');
53
- container.innerHTML = "\n\t\t\t<div data-kt-datatable=\"true\">\n\t\t\t\t<table data-kt-datatable-table=\"true\">\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th data-kt-datatable-column=\"id\">ID</th>\n\t\t\t\t\t\t\t<th data-kt-datatable-column=\"name\">Name</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\t\t\t\t\t<tbody></tbody>\n\t\t\t\t</table>\n\t\t\t\t<div data-kt-datatable-info=\"true\"></div>\n\t\t\t\t<select data-kt-datatable-size=\"true\"></select>\n\t\t\t\t<div data-kt-datatable-pagination=\"true\"></div>\n\t\t\t</div>\n\t\t";
54
- document.body.appendChild(container);
55
- // Mock fetch to track requests and signals
56
- abortSignals = [];
57
- mockFetch = vitest_1.vi.fn(function (url, options) {
58
- // Store abort signal for verification
59
- if (options === null || options === void 0 ? void 0 : options.signal) {
60
- abortSignals.push(options.signal);
61
- }
62
- // Simulate network delay
63
- return new Promise(function (resolve, reject) {
64
- var timeout = setTimeout(function () {
65
- var _a;
66
- if ((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {
67
- reject(new DOMException('The operation was aborted.', 'AbortError'));
68
- }
69
- else {
70
- resolve(new Response(JSON.stringify({
71
- data: [
72
- { id: 1, name: 'Item 1' },
73
- { id: 2, name: 'Item 2' },
74
- ],
75
- totalCount: 2,
76
- }), { status: 200, headers: { 'Content-Type': 'application/json' } }));
77
- }
78
- }, 100); // 100ms delay
79
- // Handle abort
80
- if (options === null || options === void 0 ? void 0 : options.signal) {
81
- options.signal.addEventListener('abort', function () {
82
- clearTimeout(timeout);
83
- reject(new DOMException('The operation was aborted.', 'AbortError'));
84
- });
85
- }
86
- });
87
- });
88
- global.fetch = mockFetch;
89
- });
90
- (0, vitest_1.afterEach)(function () {
91
- document.body.removeChild(container);
92
- vitest_1.vi.clearAllMocks();
93
- abortSignals = [];
94
- });
95
- (0, vitest_1.describe)('AbortController Integration', function () {
96
- (0, vitest_1.it)('should create AbortController for remote data requests', function () { return __awaiter(void 0, void 0, void 0, function () {
97
- var datatable;
98
- return __generator(this, function (_a) {
99
- switch (_a.label) {
100
- case 0:
101
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
102
- apiEndpoint: '/api/data',
103
- });
104
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
105
- case 1:
106
- _a.sent();
107
- (0, vitest_1.expect)(mockFetch).toHaveBeenCalledTimes(1);
108
- (0, vitest_1.expect)(abortSignals.length).toBe(1);
109
- (0, vitest_1.expect)(abortSignals[0]).toBeInstanceOf(AbortSignal);
110
- return [2 /*return*/];
111
- }
112
- });
113
- }); });
114
- (0, vitest_1.it)('should use _isFetching flag to prevent concurrent requests', function () { return __awaiter(void 0, void 0, void 0, function () {
115
- var datatable;
116
- return __generator(this, function (_a) {
117
- switch (_a.label) {
118
- case 0:
119
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
120
- apiEndpoint: '/api/data',
121
- });
122
- // Try to trigger search during initial fetch
123
- datatable.search('test'); // Should be blocked by _isFetching
124
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
125
- case 1:
126
- _a.sent();
127
- // Should only have 1 request (initial) because _isFetching blocked the second
128
- (0, vitest_1.expect)(mockFetch).toHaveBeenCalledTimes(1);
129
- return [2 /*return*/];
130
- }
131
- });
132
- }); });
133
- (0, vitest_1.it)('should allow new request after previous completes', function () { return __awaiter(void 0, void 0, void 0, function () {
134
- var datatable;
135
- return __generator(this, function (_a) {
136
- switch (_a.label) {
137
- case 0:
138
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
139
- apiEndpoint: '/api/data',
140
- });
141
- // Wait for initial fetch to complete
142
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
143
- case 1:
144
- // Wait for initial fetch to complete
145
- _a.sent();
146
- // Now trigger a search - should succeed
147
- datatable.search('test');
148
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
149
- case 2:
150
- _a.sent();
151
- // Should have 2 requests total
152
- (0, vitest_1.expect)(mockFetch).toHaveBeenCalledTimes(2);
153
- (0, vitest_1.expect)(abortSignals.length).toBe(2);
154
- return [2 /*return*/];
155
- }
156
- });
157
- }); });
158
- (0, vitest_1.it)('should abort previous request when _performFetchRequest is called again', function () { return __awaiter(void 0, void 0, void 0, function () {
159
- var datatable;
160
- return __generator(this, function (_a) {
161
- switch (_a.label) {
162
- case 0:
163
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
164
- apiEndpoint: '/api/data',
165
- });
166
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
167
- case 1:
168
- _a.sent(); // Complete initial request
169
- // Trigger first search
170
- datatable.search('first');
171
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
172
- case 2:
173
- _a.sent();
174
- // Trigger second search (first should complete, second starts fresh)
175
- datatable.search('second');
176
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
177
- case 3:
178
- _a.sent();
179
- // Should have 3 requests: initial + first search + second search
180
- (0, vitest_1.expect)(mockFetch).toHaveBeenCalledTimes(3);
181
- (0, vitest_1.expect)(abortSignals.length).toBe(3);
182
- // Each gets its own AbortController
183
- abortSignals.forEach(function (signal) {
184
- (0, vitest_1.expect)(signal).toBeInstanceOf(AbortSignal);
185
- });
186
- return [2 /*return*/];
187
- }
188
- });
189
- }); });
190
- });
191
- (0, vitest_1.describe)('Request ID Sequencing', function () {
192
- (0, vitest_1.it)('should assign incremental request IDs for sequential requests', function () { return __awaiter(void 0, void 0, void 0, function () {
193
- var requestIds, callCount, datatable;
194
- return __generator(this, function (_a) {
195
- switch (_a.label) {
196
- case 0:
197
- requestIds = [];
198
- callCount = 0;
199
- // Mock to capture request sequence
200
- mockFetch.mockImplementation(function (url, options) {
201
- callCount++;
202
- var id = callCount;
203
- requestIds.push(id);
204
- return new Promise(function (resolve) {
205
- setTimeout(function () {
206
- resolve(new Response(JSON.stringify({
207
- data: [{ id: id, name: "Item ".concat(id) }],
208
- totalCount: 1,
209
- }), { status: 200 }));
210
- }, 50);
211
- });
212
- });
213
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
214
- apiEndpoint: '/api/data',
215
- });
216
- return [4 /*yield*/, (0, setup_1.waitFor)(100)];
217
- case 1:
218
- _a.sent(); // Complete initial request
219
- datatable.search('a');
220
- return [4 /*yield*/, (0, setup_1.waitFor)(100)];
221
- case 2:
222
- _a.sent(); // Complete search
223
- datatable.search('b');
224
- return [4 /*yield*/, (0, setup_1.waitFor)(100)];
225
- case 3:
226
- _a.sent(); // Complete second search
227
- // Request IDs should be sequential: 1, 2, 3
228
- (0, vitest_1.expect)(requestIds).toEqual([1, 2, 3]);
229
- return [2 /*return*/];
230
- }
231
- });
232
- }); });
233
- (0, vitest_1.it)('should have request ID validation logic in place', function () { return __awaiter(void 0, void 0, void 0, function () {
234
- var datatable, tbody;
235
- return __generator(this, function (_a) {
236
- switch (_a.label) {
237
- case 0:
238
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
239
- apiEndpoint: '/api/data',
240
- });
241
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
242
- case 1:
243
- _a.sent(); // Complete initial
244
- datatable.search('first');
245
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
246
- case 2:
247
- _a.sent(); // Complete first search
248
- datatable.search('second');
249
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
250
- case 3:
251
- _a.sent(); // Complete second search
252
- // All requests should complete successfully with incremental request IDs
253
- (0, vitest_1.expect)(mockFetch).toHaveBeenCalledTimes(3);
254
- tbody = container.querySelector('tbody');
255
- (0, vitest_1.expect)(tbody === null || tbody === void 0 ? void 0 : tbody.querySelectorAll('tr').length).toBeGreaterThan(0);
256
- return [2 /*return*/];
257
- }
258
- });
259
- }); });
260
- });
261
- (0, vitest_1.describe)('_isFetching Flag Management', function () {
262
- (0, vitest_1.it)('should prevent concurrent fetch executions', function () { return __awaiter(void 0, void 0, void 0, function () {
263
- var datatable;
264
- return __generator(this, function (_a) {
265
- switch (_a.label) {
266
- case 0:
267
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
268
- apiEndpoint: '/api/data',
269
- });
270
- // Try to trigger reload immediately (should be blocked by initial fetch)
271
- datatable.reload(); // Blocked by _isFetching
272
- datatable.reload(); // Blocked by _isFetching
273
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
274
- case 1:
275
- _a.sent();
276
- // Should only have 1 request: initial
277
- // The reload calls are blocked by _isFetching
278
- (0, vitest_1.expect)(mockFetch).toHaveBeenCalledTimes(1);
279
- return [2 /*return*/];
280
- }
281
- });
282
- }); });
283
- (0, vitest_1.it)('should reset _isFetching flag after fetch completes', function () { return __awaiter(void 0, void 0, void 0, function () {
284
- var datatable;
285
- return __generator(this, function (_a) {
286
- switch (_a.label) {
287
- case 0:
288
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
289
- apiEndpoint: '/api/data',
290
- });
291
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
292
- case 1:
293
- _a.sent(); // Wait for initial fetch
294
- // Should be able to trigger new fetch after previous completes
295
- datatable.reload();
296
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
297
- case 2:
298
- _a.sent();
299
- (0, vitest_1.expect)(mockFetch).toHaveBeenCalledTimes(2);
300
- return [2 /*return*/];
301
- }
302
- });
303
- }); });
304
- (0, vitest_1.it)('should reset _isFetching flag even after fetch error', function () { return __awaiter(void 0, void 0, void 0, function () {
305
- var callCount, datatable;
306
- return __generator(this, function (_a) {
307
- switch (_a.label) {
308
- case 0:
309
- callCount = 0;
310
- mockFetch.mockImplementation(function () {
311
- callCount++;
312
- if (callCount === 1) {
313
- // Return invalid JSON to trigger parse error
314
- return Promise.resolve(new Response('Not JSON', { status: 200 }));
315
- }
316
- return Promise.resolve(new Response(JSON.stringify({
317
- data: [{ id: 1, name: 'Success' }],
318
- totalCount: 1,
319
- }), { status: 200 }));
320
- });
321
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
322
- apiEndpoint: '/api/data',
323
- });
324
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
325
- case 1:
326
- _a.sent(); // Initial request triggers parse error
327
- // Should be able to retry after error
328
- datatable.reload();
329
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
330
- case 2:
331
- _a.sent();
332
- (0, vitest_1.expect)(mockFetch).toHaveBeenCalledTimes(2);
333
- return [2 /*return*/];
334
- }
335
- });
336
- }); });
337
- });
338
- (0, vitest_1.describe)('Loading Spinner Management', function () {
339
- (0, vitest_1.it)('should show spinner during fetch', function () { return __awaiter(void 0, void 0, void 0, function () {
340
- var element, datatable;
341
- return __generator(this, function (_a) {
342
- switch (_a.label) {
343
- case 0:
344
- element = container.querySelector('[data-kt-datatable="true"]');
345
- datatable = new datatable_1.KTDataTable(element, {
346
- apiEndpoint: '/api/data',
347
- });
348
- return [4 /*yield*/, (0, setup_1.waitFor)(10)];
349
- case 1:
350
- _a.sent(); // Spinner should be visible
351
- (0, vitest_1.expect)(element.classList.contains('loading')).toBe(true);
352
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
353
- case 2:
354
- _a.sent(); // Wait for fetch to complete
355
- (0, vitest_1.expect)(element.classList.contains('loading')).toBe(false);
356
- return [2 /*return*/];
357
- }
358
- });
359
- }); });
360
- (0, vitest_1.it)('should keep spinner visible during overlapping requests', function () { return __awaiter(void 0, void 0, void 0, function () {
361
- var element, datatable;
362
- return __generator(this, function (_a) {
363
- switch (_a.label) {
364
- case 0:
365
- element = container.querySelector('[data-kt-datatable="true"]');
366
- datatable = new datatable_1.KTDataTable(element, {
367
- apiEndpoint: '/api/data',
368
- });
369
- return [4 /*yield*/, (0, setup_1.waitFor)(10)];
370
- case 1:
371
- _a.sent();
372
- (0, vitest_1.expect)(element.classList.contains('loading')).toBe(true);
373
- // Trigger second request while first is in progress
374
- datatable.search('test');
375
- return [4 /*yield*/, (0, setup_1.waitFor)(10)];
376
- case 2:
377
- _a.sent();
378
- // Spinner should still be visible
379
- (0, vitest_1.expect)(element.classList.contains('loading')).toBe(true);
380
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
381
- case 3:
382
- _a.sent();
383
- // Spinner should hide only after last request completes
384
- (0, vitest_1.expect)(element.classList.contains('loading')).toBe(false);
385
- return [2 /*return*/];
386
- }
387
- });
388
- }); });
389
- (0, vitest_1.it)('should not flicker spinner during rapid interactions', function () { return __awaiter(void 0, void 0, void 0, function () {
390
- var element, datatable, spinnerStates, checkInterval, transitions;
391
- return __generator(this, function (_a) {
392
- switch (_a.label) {
393
- case 0:
394
- element = container.querySelector('[data-kt-datatable="true"]');
395
- datatable = new datatable_1.KTDataTable(element, {
396
- apiEndpoint: '/api/data',
397
- });
398
- spinnerStates = [];
399
- checkInterval = setInterval(function () {
400
- spinnerStates.push(element.classList.contains('loading'));
401
- }, 20);
402
- return [4 /*yield*/, (0, setup_1.waitFor)(10)];
403
- case 1:
404
- _a.sent();
405
- datatable.search('a');
406
- return [4 /*yield*/, (0, setup_1.waitFor)(10)];
407
- case 2:
408
- _a.sent();
409
- datatable.search('ab');
410
- return [4 /*yield*/, (0, setup_1.waitFor)(10)];
411
- case 3:
412
- _a.sent();
413
- datatable.search('abc');
414
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
415
- case 4:
416
- _a.sent();
417
- clearInterval(checkInterval);
418
- transitions = spinnerStates.reduce(function (acc, curr, idx) {
419
- if (idx > 0 && spinnerStates[idx - 1] !== curr) {
420
- acc.push(curr);
421
- }
422
- return acc;
423
- }, []);
424
- // Should have exactly 2 transitions: off->on, on->off
425
- // No additional transitions that would indicate flickering
426
- (0, vitest_1.expect)(transitions.length).toBeLessThanOrEqual(2);
427
- return [2 /*return*/];
428
- }
429
- });
430
- }); });
431
- });
432
- (0, vitest_1.describe)('Event Handling During Race Conditions', function () {
433
- (0, vitest_1.it)('should fire fetch event for successful requests', function () { return __awaiter(void 0, void 0, void 0, function () {
434
- var fetchEvents, element, datatable;
435
- return __generator(this, function (_a) {
436
- switch (_a.label) {
437
- case 0:
438
- fetchEvents = [];
439
- element = container.querySelector('[data-kt-datatable="true"]');
440
- element.addEventListener('fetch', function (e) {
441
- fetchEvents.push(e);
442
- });
443
- datatable = new datatable_1.KTDataTable(element, {
444
- apiEndpoint: '/api/data',
445
- });
446
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
447
- case 1:
448
- _a.sent(); // Complete initial
449
- datatable.search('test');
450
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
451
- case 2:
452
- _a.sent(); // Complete search
453
- // Should fire fetch for initial and search
454
- (0, vitest_1.expect)(fetchEvents.length).toBeGreaterThanOrEqual(2);
455
- return [2 /*return*/];
456
- }
457
- });
458
- }); });
459
- (0, vitest_1.it)('should fire fetched event after successful data load', function () { return __awaiter(void 0, void 0, void 0, function () {
460
- var fetchedEvents, element, datatable;
461
- return __generator(this, function (_a) {
462
- switch (_a.label) {
463
- case 0:
464
- fetchedEvents = [];
465
- element = container.querySelector('[data-kt-datatable="true"]');
466
- element.addEventListener('fetched', function (e) {
467
- fetchedEvents.push(e);
468
- });
469
- datatable = new datatable_1.KTDataTable(element, {
470
- apiEndpoint: '/api/data',
471
- });
472
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
473
- case 1:
474
- _a.sent();
475
- // Should fire fetched for initial request
476
- (0, vitest_1.expect)(fetchedEvents.length).toBeGreaterThanOrEqual(1);
477
- return [2 /*return*/];
478
- }
479
- });
480
- }); });
481
- (0, vitest_1.it)('should not fire error events for AbortError', function () { return __awaiter(void 0, void 0, void 0, function () {
482
- var errorEvents, element, datatable;
483
- return __generator(this, function (_a) {
484
- switch (_a.label) {
485
- case 0:
486
- errorEvents = [];
487
- element = container.querySelector('[data-kt-datatable="true"]');
488
- element.addEventListener('error.kt.datatable', function (e) {
489
- errorEvents.push(e);
490
- });
491
- datatable = new datatable_1.KTDataTable(element, {
492
- apiEndpoint: '/api/data',
493
- });
494
- return [4 /*yield*/, (0, setup_1.waitFor)(10)];
495
- case 1:
496
- _a.sent();
497
- datatable.search('test'); // Cancels previous
498
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
499
- case 2:
500
- _a.sent();
501
- // AbortError should not trigger error event
502
- (0, vitest_1.expect)(errorEvents.length).toBe(0);
503
- return [2 /*return*/];
504
- }
505
- });
506
- }); });
507
- });
508
- (0, vitest_1.describe)('Backward Compatibility', function () {
509
- (0, vitest_1.it)('should work with local data mode (no AbortController needed)', function () { return __awaiter(void 0, void 0, void 0, function () {
510
- var datatable;
511
- return __generator(this, function (_a) {
512
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'));
513
- // Should not call fetch for local data
514
- (0, vitest_1.expect)(mockFetch).not.toHaveBeenCalled();
515
- // Should still work without errors
516
- datatable.search('Item 1');
517
- datatable.sort('name');
518
- datatable.goPage(1);
519
- return [2 /*return*/];
520
- });
521
- }); });
522
- (0, vitest_1.it)('should maintain existing API compatibility', function () { return __awaiter(void 0, void 0, void 0, function () {
523
- var datatable;
524
- return __generator(this, function (_a) {
525
- switch (_a.label) {
526
- case 0:
527
- datatable = new datatable_1.KTDataTable(container.querySelector('[data-kt-datatable="true"]'), {
528
- apiEndpoint: '/api/data',
529
- });
530
- return [4 /*yield*/, (0, setup_1.waitFor)(150)];
531
- case 1:
532
- _a.sent();
533
- // All existing methods should work
534
- (0, vitest_1.expect)(function () {
535
- datatable.reload();
536
- datatable.search('test');
537
- datatable.sort('name');
538
- datatable.goPage(1);
539
- datatable.setPageSize(20);
540
- datatable.getState();
541
- }).not.toThrow();
542
- return [2 /*return*/];
543
- }
544
- });
545
- }); });
546
- });
547
- });
548
- //# sourceMappingURL=race-conditions.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"race-conditions.test.js","sourceRoot":"","sources":["../../../../../src/components/datatable/__tests__/race-conditions.test.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- /**
3
- * Vitest setup file for datatable tests
4
- * Provides DOM environment setup and utilities
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createMockElement = exports.waitFor = void 0;
8
- var vitest_1 = require("vitest");
9
- // Mock KTComponents to prevent auto-initialization errors
10
- vitest_1.vi.mock('../../../index', function () { return ({
11
- default: {
12
- init: vitest_1.vi.fn(),
13
- },
14
- KTComponents: {
15
- init: vitest_1.vi.fn(),
16
- },
17
- }); });
18
- // Setup DOM environment before each test
19
- (0, vitest_1.beforeEach)(function () {
20
- // Clear localStorage
21
- localStorage.clear();
22
- // Reset document body
23
- document.body.innerHTML = '';
24
- // Clear any global state
25
- // Add any other global setup here
26
- });
27
- // Cleanup after each test
28
- (0, vitest_1.afterEach)(function () {
29
- // Clear localStorage
30
- localStorage.clear();
31
- // Reset document body
32
- document.body.innerHTML = '';
33
- // Clear all pending timers to prevent "document is not defined" errors
34
- vitest_1.vi.clearAllTimers();
35
- });
36
- // Mock window.matchMedia if needed
37
- Object.defineProperty(window, 'matchMedia', {
38
- writable: true,
39
- value: function (query) { return ({
40
- matches: false,
41
- media: query,
42
- onchange: null,
43
- addListener: function () { }, // deprecated
44
- removeListener: function () { }, // deprecated
45
- addEventListener: function () { },
46
- removeEventListener: function () { },
47
- dispatchEvent: function () { return true; },
48
- }); },
49
- });
50
- // Export utilities that tests can use
51
- var waitFor = function (ms) { return new Promise(function (resolve) { return setTimeout(resolve, ms); }); };
52
- exports.waitFor = waitFor;
53
- var createMockElement = function (tag, attributes) {
54
- if (attributes === void 0) { attributes = {}; }
55
- var el = document.createElement(tag);
56
- Object.entries(attributes).forEach(function (_a) {
57
- var key = _a[0], value = _a[1];
58
- el.setAttribute(key, value);
59
- });
60
- return el;
61
- };
62
- exports.createMockElement = createMockElement;
63
- //# sourceMappingURL=setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../../src/components/datatable/__tests__/setup.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iCAAmD;AAEnD,0DAA0D;AAC1D,WAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAM,OAAA,CAAC;IAChC,OAAO,EAAE;QACR,IAAI,EAAE,WAAE,CAAC,EAAE,EAAE;KACb;IACD,YAAY,EAAE;QACb,IAAI,EAAE,WAAE,CAAC,EAAE,EAAE;KACb;CACD,CAAC,EAP8B,CAO9B,CAAC,CAAC;AAEJ,yCAAyC;AACzC,IAAA,mBAAU,EAAC;IACV,qBAAqB;IACrB,YAAY,CAAC,KAAK,EAAE,CAAC;IAErB,sBAAsB;IACtB,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IAE7B,yBAAyB;IACzB,kCAAkC;AACnC,CAAC,CAAC,CAAC;AAEH,0BAA0B;AAC1B,IAAA,kBAAS,EAAC;IACT,qBAAqB;IACrB,YAAY,CAAC,KAAK,EAAE,CAAC;IAErB,sBAAsB;IACtB,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IAE7B,uEAAuE;IACvE,WAAE,CAAC,cAAc,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,mCAAmC;AACnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;IAC3C,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,UAAC,KAAa,IAAK,OAAA,CAAC;QAC1B,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,IAAuE;QACjF,WAAW,EAAE,cAAO,CAAC,EAAE,aAAa;QACpC,cAAc,EAAE,cAAO,CAAC,EAAE,aAAa;QACvC,gBAAgB,EAAE,cAAO,CAAC;QAC1B,mBAAmB,EAAE,cAAO,CAAC;QAC7B,aAAa,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI;KACzB,CAAC,EATwB,CASxB;CACF,CAAC,CAAC;AAEH,sCAAsC;AAC/B,IAAM,OAAO,GAAG,UAAC,EAAU,IAAK,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,EAAvB,CAAuB,CAAC,EAAjD,CAAiD,CAAC;AAA5E,QAAA,OAAO,WAAqE;AAElF,IAAM,iBAAiB,GAAG,UAAC,GAAW,EAAE,UAAuC;IAAvC,2BAAA,EAAA,eAAuC;IACrF,IAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;YAAX,GAAG,QAAA,EAAE,KAAK,QAAA;QAC9C,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}