@keenthemes/ktui 1.0.3

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 (426) hide show
  1. package/CONTRIBUTING.md +88 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +124 -0
  4. package/dist/ktui.js +19201 -0
  5. package/dist/ktui.min.js +2 -0
  6. package/dist/ktui.min.js.map +1 -0
  7. package/lib/cjs/components/accordion/accordion.js +168 -0
  8. package/lib/cjs/components/accordion/accordion.js.map +1 -0
  9. package/lib/cjs/components/accordion/index.js +6 -0
  10. package/lib/cjs/components/accordion/index.js.map +1 -0
  11. package/lib/cjs/components/accordion/types.js +3 -0
  12. package/lib/cjs/components/accordion/types.js.map +1 -0
  13. package/lib/cjs/components/collapse/collapse.js +169 -0
  14. package/lib/cjs/components/collapse/collapse.js.map +1 -0
  15. package/lib/cjs/components/collapse/index.js +6 -0
  16. package/lib/cjs/components/collapse/index.js.map +1 -0
  17. package/lib/cjs/components/collapse/types.js +3 -0
  18. package/lib/cjs/components/collapse/types.js.map +1 -0
  19. package/lib/cjs/components/component.js +135 -0
  20. package/lib/cjs/components/component.js.map +1 -0
  21. package/lib/cjs/components/config.js +26 -0
  22. package/lib/cjs/components/config.js.map +1 -0
  23. package/lib/cjs/components/config.umd.js +23 -0
  24. package/lib/cjs/components/config.umd.js.map +1 -0
  25. package/lib/cjs/components/constants.js +15 -0
  26. package/lib/cjs/components/constants.js.map +1 -0
  27. package/lib/cjs/components/datatable/datatable.js +1464 -0
  28. package/lib/cjs/components/datatable/datatable.js.map +1 -0
  29. package/lib/cjs/components/datatable/index.js +6 -0
  30. package/lib/cjs/components/datatable/index.js.map +1 -0
  31. package/lib/cjs/components/datatable/types.js +3 -0
  32. package/lib/cjs/components/datatable/types.js.map +1 -0
  33. package/lib/cjs/components/dismiss/dismiss.js +131 -0
  34. package/lib/cjs/components/dismiss/dismiss.js.map +1 -0
  35. package/lib/cjs/components/dismiss/index.js +6 -0
  36. package/lib/cjs/components/dismiss/index.js.map +1 -0
  37. package/lib/cjs/components/dismiss/types.js +3 -0
  38. package/lib/cjs/components/dismiss/types.js.map +1 -0
  39. package/lib/cjs/components/drawer/drawer.js +347 -0
  40. package/lib/cjs/components/drawer/drawer.js.map +1 -0
  41. package/lib/cjs/components/drawer/index.js +6 -0
  42. package/lib/cjs/components/drawer/index.js.map +1 -0
  43. package/lib/cjs/components/drawer/types.js +3 -0
  44. package/lib/cjs/components/drawer/types.js.map +1 -0
  45. package/lib/cjs/components/dropdown/dropdown.js +403 -0
  46. package/lib/cjs/components/dropdown/dropdown.js.map +1 -0
  47. package/lib/cjs/components/dropdown/index.js +6 -0
  48. package/lib/cjs/components/dropdown/index.js.map +1 -0
  49. package/lib/cjs/components/dropdown/types.js +3 -0
  50. package/lib/cjs/components/dropdown/types.js.map +1 -0
  51. package/lib/cjs/components/image-input/image-input.js +191 -0
  52. package/lib/cjs/components/image-input/image-input.js.map +1 -0
  53. package/lib/cjs/components/image-input/index.js +6 -0
  54. package/lib/cjs/components/image-input/index.js.map +1 -0
  55. package/lib/cjs/components/image-input/types.js +3 -0
  56. package/lib/cjs/components/image-input/types.js.map +1 -0
  57. package/lib/cjs/components/menu/index.js +6 -0
  58. package/lib/cjs/components/menu/index.js.map +1 -0
  59. package/lib/cjs/components/menu/menu.js +1021 -0
  60. package/lib/cjs/components/menu/menu.js.map +1 -0
  61. package/lib/cjs/components/menu/types.js +3 -0
  62. package/lib/cjs/components/menu/types.js.map +1 -0
  63. package/lib/cjs/components/modal/index.js +6 -0
  64. package/lib/cjs/components/modal/index.js.map +1 -0
  65. package/lib/cjs/components/modal/modal.js +316 -0
  66. package/lib/cjs/components/modal/modal.js.map +1 -0
  67. package/lib/cjs/components/modal/types.js +3 -0
  68. package/lib/cjs/components/modal/types.js.map +1 -0
  69. package/lib/cjs/components/reparent/index.js +6 -0
  70. package/lib/cjs/components/reparent/index.js.map +1 -0
  71. package/lib/cjs/components/reparent/reparent.js +93 -0
  72. package/lib/cjs/components/reparent/reparent.js.map +1 -0
  73. package/lib/cjs/components/reparent/types.js +3 -0
  74. package/lib/cjs/components/reparent/types.js.map +1 -0
  75. package/lib/cjs/components/scrollable/index.js +6 -0
  76. package/lib/cjs/components/scrollable/index.js.map +1 -0
  77. package/lib/cjs/components/scrollable/scrollable.js +259 -0
  78. package/lib/cjs/components/scrollable/scrollable.js.map +1 -0
  79. package/lib/cjs/components/scrollable/types.js +3 -0
  80. package/lib/cjs/components/scrollable/types.js.map +1 -0
  81. package/lib/cjs/components/scrollspy/index.js +6 -0
  82. package/lib/cjs/components/scrollspy/index.js.map +1 -0
  83. package/lib/cjs/components/scrollspy/scrollspy.js +174 -0
  84. package/lib/cjs/components/scrollspy/scrollspy.js.map +1 -0
  85. package/lib/cjs/components/scrollspy/types.js +3 -0
  86. package/lib/cjs/components/scrollspy/types.js.map +1 -0
  87. package/lib/cjs/components/scrollto/index.js +6 -0
  88. package/lib/cjs/components/scrollto/index.js.map +1 -0
  89. package/lib/cjs/components/scrollto/scrollto.js +103 -0
  90. package/lib/cjs/components/scrollto/scrollto.js.map +1 -0
  91. package/lib/cjs/components/scrollto/types.js +3 -0
  92. package/lib/cjs/components/scrollto/types.js.map +1 -0
  93. package/lib/cjs/components/stepper/index.js +6 -0
  94. package/lib/cjs/components/stepper/index.js.map +1 -0
  95. package/lib/cjs/components/stepper/stepper.js +258 -0
  96. package/lib/cjs/components/stepper/stepper.js.map +1 -0
  97. package/lib/cjs/components/stepper/types.js +3 -0
  98. package/lib/cjs/components/stepper/types.js.map +1 -0
  99. package/lib/cjs/components/sticky/index.js +6 -0
  100. package/lib/cjs/components/sticky/index.js.map +1 -0
  101. package/lib/cjs/components/sticky/sticky.js +297 -0
  102. package/lib/cjs/components/sticky/sticky.js.map +1 -0
  103. package/lib/cjs/components/sticky/types.js +3 -0
  104. package/lib/cjs/components/sticky/types.js.map +1 -0
  105. package/lib/cjs/components/tabs/index.js +6 -0
  106. package/lib/cjs/components/tabs/index.js.map +1 -0
  107. package/lib/cjs/components/tabs/tabs.js +146 -0
  108. package/lib/cjs/components/tabs/tabs.js.map +1 -0
  109. package/lib/cjs/components/tabs/types.js +3 -0
  110. package/lib/cjs/components/tabs/types.js.map +1 -0
  111. package/lib/cjs/components/theme/index.js +6 -0
  112. package/lib/cjs/components/theme/index.js.map +1 -0
  113. package/lib/cjs/components/theme/theme.js +147 -0
  114. package/lib/cjs/components/theme/theme.js.map +1 -0
  115. package/lib/cjs/components/theme/types.js +3 -0
  116. package/lib/cjs/components/theme/types.js.map +1 -0
  117. package/lib/cjs/components/toggle/index.js +6 -0
  118. package/lib/cjs/components/toggle/index.js.map +1 -0
  119. package/lib/cjs/components/toggle/toggle.js +139 -0
  120. package/lib/cjs/components/toggle/toggle.js.map +1 -0
  121. package/lib/cjs/components/toggle/types.js +3 -0
  122. package/lib/cjs/components/toggle/types.js.map +1 -0
  123. package/lib/cjs/components/toggle-password/index.js +6 -0
  124. package/lib/cjs/components/toggle-password/index.js.map +1 -0
  125. package/lib/cjs/components/toggle-password/toggle-password.js +131 -0
  126. package/lib/cjs/components/toggle-password/toggle-password.js.map +1 -0
  127. package/lib/cjs/components/toggle-password/types.js +3 -0
  128. package/lib/cjs/components/toggle-password/types.js.map +1 -0
  129. package/lib/cjs/components/tooltip/index.js +6 -0
  130. package/lib/cjs/components/tooltip/index.js.map +1 -0
  131. package/lib/cjs/components/tooltip/tooltip.js +271 -0
  132. package/lib/cjs/components/tooltip/tooltip.js.map +1 -0
  133. package/lib/cjs/components/tooltip/types.js +3 -0
  134. package/lib/cjs/components/tooltip/types.js.map +1 -0
  135. package/lib/cjs/helpers/data.js +33 -0
  136. package/lib/cjs/helpers/data.js.map +1 -0
  137. package/lib/cjs/helpers/dom.js +297 -0
  138. package/lib/cjs/helpers/dom.js.map +1 -0
  139. package/lib/cjs/helpers/event-handler.js +36 -0
  140. package/lib/cjs/helpers/event-handler.js.map +1 -0
  141. package/lib/cjs/helpers/utils.js +94 -0
  142. package/lib/cjs/helpers/utils.js.map +1 -0
  143. package/lib/cjs/index.js +105 -0
  144. package/lib/cjs/index.js.map +1 -0
  145. package/lib/cjs/types.js +3 -0
  146. package/lib/cjs/types.js.map +1 -0
  147. package/lib/esm/components/accordion/accordion.js +165 -0
  148. package/lib/esm/components/accordion/accordion.js.map +1 -0
  149. package/lib/esm/components/accordion/index.js +2 -0
  150. package/lib/esm/components/accordion/index.js.map +1 -0
  151. package/lib/esm/components/accordion/types.js +2 -0
  152. package/lib/esm/components/accordion/types.js.map +1 -0
  153. package/lib/esm/components/collapse/collapse.js +166 -0
  154. package/lib/esm/components/collapse/collapse.js.map +1 -0
  155. package/lib/esm/components/collapse/index.js +2 -0
  156. package/lib/esm/components/collapse/index.js.map +1 -0
  157. package/lib/esm/components/collapse/types.js +2 -0
  158. package/lib/esm/components/collapse/types.js.map +1 -0
  159. package/lib/esm/components/component.js +133 -0
  160. package/lib/esm/components/component.js.map +1 -0
  161. package/lib/esm/components/config.js +24 -0
  162. package/lib/esm/components/config.js.map +1 -0
  163. package/lib/esm/components/config.umd.js +23 -0
  164. package/lib/esm/components/config.umd.js.map +1 -0
  165. package/lib/esm/components/constants.js +12 -0
  166. package/lib/esm/components/constants.js.map +1 -0
  167. package/lib/esm/components/datatable/datatable.js +1461 -0
  168. package/lib/esm/components/datatable/datatable.js.map +1 -0
  169. package/lib/esm/components/datatable/index.js +2 -0
  170. package/lib/esm/components/datatable/index.js.map +1 -0
  171. package/lib/esm/components/datatable/types.js +2 -0
  172. package/lib/esm/components/datatable/types.js.map +1 -0
  173. package/lib/esm/components/dismiss/dismiss.js +128 -0
  174. package/lib/esm/components/dismiss/dismiss.js.map +1 -0
  175. package/lib/esm/components/dismiss/index.js +2 -0
  176. package/lib/esm/components/dismiss/index.js.map +1 -0
  177. package/lib/esm/components/dismiss/types.js +2 -0
  178. package/lib/esm/components/dismiss/types.js.map +1 -0
  179. package/lib/esm/components/drawer/drawer.js +344 -0
  180. package/lib/esm/components/drawer/drawer.js.map +1 -0
  181. package/lib/esm/components/drawer/index.js +2 -0
  182. package/lib/esm/components/drawer/index.js.map +1 -0
  183. package/lib/esm/components/drawer/types.js +2 -0
  184. package/lib/esm/components/drawer/types.js.map +1 -0
  185. package/lib/esm/components/dropdown/dropdown.js +400 -0
  186. package/lib/esm/components/dropdown/dropdown.js.map +1 -0
  187. package/lib/esm/components/dropdown/index.js +2 -0
  188. package/lib/esm/components/dropdown/index.js.map +1 -0
  189. package/lib/esm/components/dropdown/types.js +2 -0
  190. package/lib/esm/components/dropdown/types.js.map +1 -0
  191. package/lib/esm/components/image-input/image-input.js +188 -0
  192. package/lib/esm/components/image-input/image-input.js.map +1 -0
  193. package/lib/esm/components/image-input/index.js +2 -0
  194. package/lib/esm/components/image-input/index.js.map +1 -0
  195. package/lib/esm/components/image-input/types.js +2 -0
  196. package/lib/esm/components/image-input/types.js.map +1 -0
  197. package/lib/esm/components/menu/index.js +2 -0
  198. package/lib/esm/components/menu/index.js.map +1 -0
  199. package/lib/esm/components/menu/menu.js +1018 -0
  200. package/lib/esm/components/menu/menu.js.map +1 -0
  201. package/lib/esm/components/menu/types.js +2 -0
  202. package/lib/esm/components/menu/types.js.map +1 -0
  203. package/lib/esm/components/modal/index.js +2 -0
  204. package/lib/esm/components/modal/index.js.map +1 -0
  205. package/lib/esm/components/modal/modal.js +313 -0
  206. package/lib/esm/components/modal/modal.js.map +1 -0
  207. package/lib/esm/components/modal/types.js +2 -0
  208. package/lib/esm/components/modal/types.js.map +1 -0
  209. package/lib/esm/components/reparent/index.js +2 -0
  210. package/lib/esm/components/reparent/index.js.map +1 -0
  211. package/lib/esm/components/reparent/reparent.js +90 -0
  212. package/lib/esm/components/reparent/reparent.js.map +1 -0
  213. package/lib/esm/components/reparent/types.js +2 -0
  214. package/lib/esm/components/reparent/types.js.map +1 -0
  215. package/lib/esm/components/scrollable/index.js +2 -0
  216. package/lib/esm/components/scrollable/index.js.map +1 -0
  217. package/lib/esm/components/scrollable/scrollable.js +256 -0
  218. package/lib/esm/components/scrollable/scrollable.js.map +1 -0
  219. package/lib/esm/components/scrollable/types.js +2 -0
  220. package/lib/esm/components/scrollable/types.js.map +1 -0
  221. package/lib/esm/components/scrollspy/index.js +2 -0
  222. package/lib/esm/components/scrollspy/index.js.map +1 -0
  223. package/lib/esm/components/scrollspy/scrollspy.js +171 -0
  224. package/lib/esm/components/scrollspy/scrollspy.js.map +1 -0
  225. package/lib/esm/components/scrollspy/types.js +2 -0
  226. package/lib/esm/components/scrollspy/types.js.map +1 -0
  227. package/lib/esm/components/scrollto/index.js +2 -0
  228. package/lib/esm/components/scrollto/index.js.map +1 -0
  229. package/lib/esm/components/scrollto/scrollto.js +100 -0
  230. package/lib/esm/components/scrollto/scrollto.js.map +1 -0
  231. package/lib/esm/components/scrollto/types.js +2 -0
  232. package/lib/esm/components/scrollto/types.js.map +1 -0
  233. package/lib/esm/components/stepper/index.js +2 -0
  234. package/lib/esm/components/stepper/index.js.map +1 -0
  235. package/lib/esm/components/stepper/stepper.js +255 -0
  236. package/lib/esm/components/stepper/stepper.js.map +1 -0
  237. package/lib/esm/components/stepper/types.js +2 -0
  238. package/lib/esm/components/stepper/types.js.map +1 -0
  239. package/lib/esm/components/sticky/index.js +2 -0
  240. package/lib/esm/components/sticky/index.js.map +1 -0
  241. package/lib/esm/components/sticky/sticky.js +294 -0
  242. package/lib/esm/components/sticky/sticky.js.map +1 -0
  243. package/lib/esm/components/sticky/types.js +2 -0
  244. package/lib/esm/components/sticky/types.js.map +1 -0
  245. package/lib/esm/components/tabs/index.js +2 -0
  246. package/lib/esm/components/tabs/index.js.map +1 -0
  247. package/lib/esm/components/tabs/tabs.js +143 -0
  248. package/lib/esm/components/tabs/tabs.js.map +1 -0
  249. package/lib/esm/components/tabs/types.js +2 -0
  250. package/lib/esm/components/tabs/types.js.map +1 -0
  251. package/lib/esm/components/theme/index.js +2 -0
  252. package/lib/esm/components/theme/index.js.map +1 -0
  253. package/lib/esm/components/theme/theme.js +144 -0
  254. package/lib/esm/components/theme/theme.js.map +1 -0
  255. package/lib/esm/components/theme/types.js +2 -0
  256. package/lib/esm/components/theme/types.js.map +1 -0
  257. package/lib/esm/components/toggle/index.js +2 -0
  258. package/lib/esm/components/toggle/index.js.map +1 -0
  259. package/lib/esm/components/toggle/toggle.js +136 -0
  260. package/lib/esm/components/toggle/toggle.js.map +1 -0
  261. package/lib/esm/components/toggle/types.js +2 -0
  262. package/lib/esm/components/toggle/types.js.map +1 -0
  263. package/lib/esm/components/toggle-password/index.js +2 -0
  264. package/lib/esm/components/toggle-password/index.js.map +1 -0
  265. package/lib/esm/components/toggle-password/toggle-password.js +128 -0
  266. package/lib/esm/components/toggle-password/toggle-password.js.map +1 -0
  267. package/lib/esm/components/toggle-password/types.js +2 -0
  268. package/lib/esm/components/toggle-password/types.js.map +1 -0
  269. package/lib/esm/components/tooltip/index.js +2 -0
  270. package/lib/esm/components/tooltip/index.js.map +1 -0
  271. package/lib/esm/components/tooltip/tooltip.js +268 -0
  272. package/lib/esm/components/tooltip/tooltip.js.map +1 -0
  273. package/lib/esm/components/tooltip/types.js +2 -0
  274. package/lib/esm/components/tooltip/types.js.map +1 -0
  275. package/lib/esm/helpers/data.js +31 -0
  276. package/lib/esm/helpers/data.js.map +1 -0
  277. package/lib/esm/helpers/dom.js +295 -0
  278. package/lib/esm/helpers/dom.js.map +1 -0
  279. package/lib/esm/helpers/event-handler.js +34 -0
  280. package/lib/esm/helpers/event-handler.js.map +1 -0
  281. package/lib/esm/helpers/utils.js +92 -0
  282. package/lib/esm/helpers/utils.js.map +1 -0
  283. package/lib/esm/index.js +79 -0
  284. package/lib/esm/index.js.map +1 -0
  285. package/lib/esm/types.js +2 -0
  286. package/lib/esm/types.js.map +1 -0
  287. package/package.json +85 -0
  288. package/prettier.config.js +9 -0
  289. package/src/components/accordion/accordion-menu.css +51 -0
  290. package/src/components/accordion/accordion.css +86 -0
  291. package/src/components/accordion/accordion.ts +221 -0
  292. package/src/components/accordion/index.ts +7 -0
  293. package/src/components/accordion/types.ts +16 -0
  294. package/src/components/alert/alert.css +282 -0
  295. package/src/components/avatar/avatar.css +46 -0
  296. package/src/components/badge/badge.css +176 -0
  297. package/src/components/breadcrumb/breadcrumb.css +38 -0
  298. package/src/components/btn/btn.css +227 -0
  299. package/src/components/card/card.css +158 -0
  300. package/src/components/checkbox/checkbox.css +74 -0
  301. package/src/components/collapse/collapse.css +14 -0
  302. package/src/components/collapse/collapse.ts +200 -0
  303. package/src/components/collapse/index.ts +7 -0
  304. package/src/components/collapse/types.ts +16 -0
  305. package/src/components/component.ts +132 -0
  306. package/src/components/constants.ts +16 -0
  307. package/src/components/datatable/datatable-checkbox.ts +236 -0
  308. package/src/components/datatable/datatable-sort.ts +154 -0
  309. package/src/components/datatable/datatable.css +110 -0
  310. package/src/components/datatable/datatable.ts +1657 -0
  311. package/src/components/datatable/index.ts +19 -0
  312. package/src/components/datatable/types.ts +203 -0
  313. package/src/components/datepicker/calendar.ts +1397 -0
  314. package/src/components/datepicker/config.ts +368 -0
  315. package/src/components/datepicker/datepicker.css +7 -0
  316. package/src/components/datepicker/datepicker.ts +1287 -0
  317. package/src/components/datepicker/dropdown.ts +757 -0
  318. package/src/components/datepicker/events.ts +149 -0
  319. package/src/components/datepicker/index.ts +10 -0
  320. package/src/components/datepicker/keyboard.ts +646 -0
  321. package/src/components/datepicker/locales.ts +80 -0
  322. package/src/components/datepicker/templates.ts +792 -0
  323. package/src/components/datepicker/types.ts +154 -0
  324. package/src/components/datepicker/utils.ts +631 -0
  325. package/src/components/dismiss/dismiss.css +10 -0
  326. package/src/components/dismiss/dismiss.ts +152 -0
  327. package/src/components/dismiss/index.ts +7 -0
  328. package/src/components/dismiss/types.ts +17 -0
  329. package/src/components/drawer/drawer.css +97 -0
  330. package/src/components/drawer/drawer.ts +437 -0
  331. package/src/components/drawer/index.ts +7 -0
  332. package/src/components/drawer/types.ts +25 -0
  333. package/src/components/dropdown/dropdown-menu.css +56 -0
  334. package/src/components/dropdown/dropdown.css +46 -0
  335. package/src/components/dropdown/dropdown.ts +549 -0
  336. package/src/components/dropdown/index.ts +7 -0
  337. package/src/components/dropdown/types.ts +28 -0
  338. package/src/components/form/form.css +54 -0
  339. package/src/components/image-input/image-input.css +56 -0
  340. package/src/components/image-input/image-input.ts +249 -0
  341. package/src/components/image-input/index.ts +10 -0
  342. package/src/components/image-input/types.ts +12 -0
  343. package/src/components/input/input-group.css +42 -0
  344. package/src/components/input/input.css +136 -0
  345. package/src/components/kbd/kbd.css +30 -0
  346. package/src/components/label/label.css +20 -0
  347. package/src/components/link/link.css +81 -0
  348. package/src/components/modal/index.ts +7 -0
  349. package/src/components/modal/modal.css +73 -0
  350. package/src/components/modal/modal.ts +382 -0
  351. package/src/components/modal/types.ts +21 -0
  352. package/src/components/pagination/pagination.css +26 -0
  353. package/src/components/popover/popover.css +22 -0
  354. package/src/components/progress/progress.css +51 -0
  355. package/src/components/radio/radio.css +51 -0
  356. package/src/components/reparent/index.ts +7 -0
  357. package/src/components/reparent/reparent.ts +109 -0
  358. package/src/components/reparent/types.ts +15 -0
  359. package/src/components/scrollable/index.ts +10 -0
  360. package/src/components/scrollable/scrollable.css +29 -0
  361. package/src/components/scrollable/scrollable.ts +297 -0
  362. package/src/components/scrollable/types.ts +16 -0
  363. package/src/components/scrollspy/index.ts +7 -0
  364. package/src/components/scrollspy/scrollspy.css +13 -0
  365. package/src/components/scrollspy/scrollspy.ts +224 -0
  366. package/src/components/scrollspy/types.ts +15 -0
  367. package/src/components/scrollto/index.ts +7 -0
  368. package/src/components/scrollto/scrollto.ts +127 -0
  369. package/src/components/scrollto/types.ts +15 -0
  370. package/src/components/select/combobox.ts +305 -0
  371. package/src/components/select/config.ts +324 -0
  372. package/src/components/select/dropdown.ts +510 -0
  373. package/src/components/select/index.ts +13 -0
  374. package/src/components/select/option.ts +43 -0
  375. package/src/components/select/remote.ts +477 -0
  376. package/src/components/select/search.ts +430 -0
  377. package/src/components/select/select.css +105 -0
  378. package/src/components/select/select.ts +1916 -0
  379. package/src/components/select/tags.ts +123 -0
  380. package/src/components/select/templates.ts +531 -0
  381. package/src/components/select/types.ts +36 -0
  382. package/src/components/select/utils.ts +747 -0
  383. package/src/components/select/variants.css +5 -0
  384. package/src/components/separator/separator.css +14 -0
  385. package/src/components/skeleton/skeleton.css +10 -0
  386. package/src/components/stepper/index.ts +7 -0
  387. package/src/components/stepper/stepper.css +49 -0
  388. package/src/components/stepper/stepper.ts +308 -0
  389. package/src/components/stepper/types.ts +13 -0
  390. package/src/components/sticky/index.ts +7 -0
  391. package/src/components/sticky/sticky.css +22 -0
  392. package/src/components/sticky/sticky.ts +381 -0
  393. package/src/components/sticky/types.ts +23 -0
  394. package/src/components/switch/switch.css +110 -0
  395. package/src/components/table/table.css +168 -0
  396. package/src/components/tabs/index.ts +7 -0
  397. package/src/components/tabs/tabs.css +40 -0
  398. package/src/components/tabs/tabs.ts +190 -0
  399. package/src/components/tabs/types.ts +13 -0
  400. package/src/components/textarea/textarea.css +35 -0
  401. package/src/components/theme-switch/index.ts +10 -0
  402. package/src/components/theme-switch/theme-switch.css +22 -0
  403. package/src/components/theme-switch/theme-switch.ts +176 -0
  404. package/src/components/theme-switch/types.ts +15 -0
  405. package/src/components/toggle/index.ts +7 -0
  406. package/src/components/toggle/toggle.css +13 -0
  407. package/src/components/toggle/toggle.ts +173 -0
  408. package/src/components/toggle/types.ts +18 -0
  409. package/src/components/toggle-group/toggle-group.css +55 -0
  410. package/src/components/toggle-password/index.ts +10 -0
  411. package/src/components/toggle-password/toggle-password.css +13 -0
  412. package/src/components/toggle-password/toggle-password.ts +159 -0
  413. package/src/components/toggle-password/types.ts +13 -0
  414. package/src/components/tooltip/index.ts +7 -0
  415. package/src/components/tooltip/tooltip.css +18 -0
  416. package/src/components/tooltip/tooltip.ts +361 -0
  417. package/src/components/tooltip/types.ts +28 -0
  418. package/src/helpers/data.ts +46 -0
  419. package/src/helpers/dom.ts +405 -0
  420. package/src/helpers/event-handler.ts +61 -0
  421. package/src/helpers/utils.ts +183 -0
  422. package/src/index.ts +113 -0
  423. package/src/types.ts +23 -0
  424. package/styles.css +48 -0
  425. package/tsconfig.json +17 -0
  426. package/webpack.config.js +113 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ export interface KTToggleConfigInterface {
7
+ target?: string;
8
+ activeClass?: string;
9
+ class?: string;
10
+ removeClass?: string;
11
+ attribute?: string;
12
+ }
13
+
14
+ export interface KTToggleInterface {
15
+ toggle(): void;
16
+ update(): void;
17
+ isActive(): boolean;
18
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ @layer components {
7
+ .kt-toggle-group {
8
+ @apply inline-flex items-center leading-none bg-background;
9
+ }
10
+
11
+ .kt-toggle-group {
12
+ .kt-btn {
13
+ @apply grow border border-border border-e-0 text-accent-foreground bg-transparent;
14
+
15
+ &:last-child {
16
+ @apply border-e border-border;
17
+ }
18
+
19
+ &:not(:first-child) {
20
+ @apply rounded-ss-none rounded-es-none;
21
+ }
22
+
23
+ &:not(:last-child) {
24
+ @apply rounded-ee-none rounded-se-none;
25
+ }
26
+
27
+ &:not(:first-child):not(:last-child) {
28
+ @apply rounded-none;
29
+ }
30
+
31
+ svg,
32
+ i {
33
+ @apply text-muted-foreground;
34
+ }
35
+
36
+ input[type='checkbox'],
37
+ input[type='radio'] {
38
+ display: none;
39
+ }
40
+
41
+ &:hover,
42
+ &:focus,
43
+ &:active,
44
+ &:has(input:checked),
45
+ &.active {
46
+ @apply bg-accent text-accent-foreground;
47
+
48
+ svg,
49
+ i {
50
+ @apply text-accent-foreground;
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ export { KTTogglePassword } from './toggle-password';
7
+ export type {
8
+ KTTogglePasswordConfigInterface,
9
+ KTTogglePasswordInterface,
10
+ } from './types';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ @custom-variant kt-toggle-password-active {
7
+ &[data-kt-toggle-password-initialized].active {
8
+ @slot;
9
+ }
10
+ [data-kt-toggle-password-initialized].active & {
11
+ @slot;
12
+ }
13
+ }
@@ -0,0 +1,159 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ import KTData from '../../helpers/data';
7
+ import KTDom from '../../helpers/dom';
8
+ import KTComponent from '../component';
9
+ import {
10
+ KTTogglePasswordConfigInterface,
11
+ KTTogglePasswordInterface,
12
+ } from './types';
13
+
14
+ declare global {
15
+ interface Window {
16
+ KTTogglePassword: typeof KTTogglePassword;
17
+ }
18
+ }
19
+
20
+ export class KTTogglePassword
21
+ extends KTComponent
22
+ implements KTTogglePasswordInterface
23
+ {
24
+ protected override _name: string = 'toggle-password';
25
+ protected override _defaultConfig: KTTogglePasswordConfigInterface = {
26
+ permanent: false,
27
+ };
28
+ protected override _config: KTTogglePasswordConfigInterface =
29
+ this._defaultConfig;
30
+ protected _triggerElement: HTMLElement;
31
+ protected _inputElement: HTMLInputElement;
32
+
33
+ constructor(
34
+ element: HTMLElement,
35
+ config: KTTogglePasswordConfigInterface | null = null,
36
+ ) {
37
+ super();
38
+
39
+ if (KTData.has(element as HTMLElement, this._name)) return;
40
+
41
+ this._init(element);
42
+ this._buildConfig(config);
43
+
44
+ this._triggerElement = this._element.querySelector(
45
+ '[data-kt-toggle-password-trigger]',
46
+ );
47
+ this._inputElement = this._element.querySelector('input');
48
+
49
+ if (!this._triggerElement || !this._inputElement) {
50
+ return;
51
+ }
52
+
53
+ this._handlers();
54
+ }
55
+
56
+ protected _handlers(): void {
57
+ if (!this._element) return;
58
+
59
+ this._triggerElement.addEventListener('click', () => {
60
+ this._toggle();
61
+ });
62
+
63
+ this._inputElement.addEventListener('input', () => {
64
+ this._update();
65
+ });
66
+ }
67
+
68
+ protected _toggle(): void {
69
+ if (!this._element) return;
70
+ const payload = { cancel: false };
71
+ this._fireEvent('toggle', payload);
72
+ this._dispatchEvent('toggle', payload);
73
+ if (payload.cancel === true) {
74
+ return;
75
+ }
76
+
77
+ if (this._isVisible()) {
78
+ this._element.classList.remove('active');
79
+ this._setVisible(false);
80
+ } else {
81
+ this._element.classList.add('active');
82
+ this._setVisible(true);
83
+ }
84
+
85
+ this._fireEvent('toggled');
86
+ this._dispatchEvent('toggled');
87
+ }
88
+
89
+ protected _update(): void {
90
+ if (!this._element) return;
91
+
92
+ if ((this._getOption('permanent') as boolean) === false) {
93
+ if (this._isVisible()) {
94
+ this._setVisible(false);
95
+ }
96
+ }
97
+ }
98
+
99
+ public _isVisible(): boolean {
100
+ return this._inputElement.getAttribute('type') === 'text';
101
+ }
102
+
103
+ public _setVisible(flag: boolean) {
104
+ if (flag) {
105
+ this._inputElement.setAttribute('type', 'text');
106
+ } else {
107
+ this._inputElement.setAttribute('type', 'password');
108
+ }
109
+ }
110
+
111
+ public toggle(): void {
112
+ this._toggle();
113
+ }
114
+
115
+ public setVisible(flag: boolean): void {
116
+ this._setVisible(flag);
117
+ }
118
+
119
+ public isVisible(): boolean {
120
+ return this._isVisible();
121
+ }
122
+
123
+ public static getInstance(element: HTMLElement): KTTogglePassword {
124
+ if (!element) return null;
125
+
126
+ if (KTData.has(element, 'toggle-password')) {
127
+ return KTData.get(element, 'toggle-password') as KTTogglePassword;
128
+ }
129
+
130
+ if (element.getAttribute('data-kt-toggle-password')) {
131
+ return new KTTogglePassword(element);
132
+ }
133
+
134
+ return null;
135
+ }
136
+
137
+ public static getOrCreateInstance(
138
+ element: HTMLElement,
139
+ config?: KTTogglePasswordConfigInterface,
140
+ ): KTTogglePassword {
141
+ return this.getInstance(element) || new KTTogglePassword(element, config);
142
+ }
143
+
144
+ public static createInstances(): void {
145
+ const elements = document.querySelectorAll('[data-kt-toggle-password]');
146
+
147
+ elements.forEach((element) => {
148
+ new KTTogglePassword(element as HTMLElement);
149
+ });
150
+ }
151
+
152
+ public static init(): void {
153
+ KTTogglePassword.createInstances();
154
+ }
155
+ }
156
+
157
+ if (typeof window !== 'undefined') {
158
+ window.KTTogglePassword = KTTogglePassword;
159
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ export interface KTTogglePasswordConfigInterface {
7
+ permanent?: boolean;
8
+ }
9
+
10
+ export interface KTTogglePasswordInterface {
11
+ toggle(): void;
12
+ isVisible(): boolean;
13
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ export { KTTooltip } from './tooltip';
7
+ export type { KTTooltipConfigInterface, KTTooltipInterface } from './types';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ @layer components {
7
+ .kt-tooltip {
8
+ @apply rounded-md shadow-md shadow-[rgba(0,0,0,0.05)] dark:border dark:border-border bg-mono text-mono-foreground text-xs p-1.5;
9
+
10
+ &:not(.show) {
11
+ @apply hidden;
12
+ }
13
+ }
14
+
15
+ .kt-tooltip-light {
16
+ @apply bg-popover text-popover-foreground border border-border;
17
+ }
18
+ }
@@ -0,0 +1,361 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ import KTData from '../../helpers/data';
7
+ import KTDom from '../../helpers/dom';
8
+ import KTComponent from '../component';
9
+ import { KTTooltipInterface, KTTooltipConfigInterface } from './types';
10
+ import {
11
+ createPopper,
12
+ PositioningStrategy,
13
+ Instance,
14
+ Placement,
15
+ } from '@popperjs/core';
16
+ import { KTTooltipTriggerType } from './types';
17
+
18
+ declare global {
19
+ interface Window {
20
+ KT_TOOLTIP_INITIALIZED: boolean;
21
+ KTTooltip: typeof KTTooltip;
22
+ }
23
+ }
24
+
25
+ export class KTTooltip extends KTComponent implements KTTooltipInterface {
26
+ protected override _name: string = 'tooltip';
27
+ protected override _defaultConfig: KTTooltipConfigInterface = {
28
+ target: '',
29
+ hiddenClass: 'hidden',
30
+ trigger: 'hover',
31
+ placement: 'top',
32
+ placementRtl: 'top',
33
+ container: '',
34
+ strategy: 'fixed',
35
+ offset: '0, 5px',
36
+ offsetRtl: '0, 5px',
37
+ delayShow: 0,
38
+ delayHide: 0,
39
+ permanent: false,
40
+ zindex: '100',
41
+ };
42
+ protected override _config: KTTooltipConfigInterface = this._defaultConfig;
43
+ protected _isOpen: boolean = false;
44
+ protected _targetElement: HTMLElement;
45
+ protected _popper!: Instance;
46
+ protected _transitioning: boolean = false;
47
+ protected _timeout!: ReturnType<typeof setTimeout>;
48
+
49
+ constructor(
50
+ element: HTMLElement,
51
+ config: KTTooltipConfigInterface | null = null,
52
+ ) {
53
+ super();
54
+
55
+ if (KTData.has(element as HTMLElement, this._name)) return;
56
+
57
+ this._init(element);
58
+ this._buildConfig(config);
59
+
60
+ this._targetElement = this._getTargetElement();
61
+ if (!this._targetElement) {
62
+ return;
63
+ }
64
+
65
+ this._handlers();
66
+ }
67
+
68
+ private _getTargetElement(): HTMLElement | null {
69
+ return (
70
+ KTDom.getElement(
71
+ this._element.getAttribute('data-kt-tooltip') as string,
72
+ ) ||
73
+ this._element.querySelector('[data-kt-tooltip-content]') ||
74
+ KTDom.getElement(this._getOption('target') as string)
75
+ );
76
+ }
77
+
78
+ protected _handlers(): void {
79
+ if (!this._element) return;
80
+
81
+ if (this._getOption('trigger') === 'click') {
82
+ this._element.addEventListener('click', () => this._toggle());
83
+ }
84
+
85
+ if (this._getOption('trigger') === 'focus') {
86
+ this._element.addEventListener('focus', () => this._toggle());
87
+ this._element.addEventListener('blur', () => this._hide());
88
+ }
89
+
90
+ if (this._getOption('trigger') === 'hover') {
91
+ this._element.addEventListener('mouseenter', () => this._show());
92
+ this._element.addEventListener('mouseleave', () => this._hide());
93
+ }
94
+ }
95
+
96
+ protected _show(): void {
97
+ if (this._timeout) {
98
+ clearTimeout(this._timeout);
99
+ }
100
+
101
+ if (this._isOpen) return;
102
+
103
+ this._timeout = setTimeout(
104
+ () => {
105
+ const payload = { cancel: false };
106
+ this._fireEvent('show', payload);
107
+ this._dispatchEvent('show', payload);
108
+ if (payload.cancel === true) {
109
+ return;
110
+ }
111
+
112
+ if (!this._targetElement) {
113
+ return;
114
+ }
115
+ if (!this._element) return;
116
+
117
+ this._createPopper();
118
+ this._handleContainer();
119
+ this._setZindex();
120
+
121
+ this._targetElement.classList.add('show');
122
+ this._targetElement.classList.remove(
123
+ this._getOption('hiddenClass') as string,
124
+ );
125
+ this._targetElement.style.opacity = '0';
126
+ KTDom.reflow(this._targetElement);
127
+ this._targetElement.style.opacity = '1';
128
+ this._transitioning = true;
129
+ this._isOpen = true;
130
+
131
+ KTDom.transitionEnd(this._targetElement, () => {
132
+ this._targetElement.style.opacity = '';
133
+ this._transitioning = false;
134
+ this._fireEvent('shown');
135
+ this._dispatchEvent('shown');
136
+ });
137
+ },
138
+ this._getOption('delayShow') as number,
139
+ );
140
+ }
141
+
142
+ protected _hide(): void {
143
+ if (this._timeout) {
144
+ clearTimeout(this._timeout);
145
+ }
146
+
147
+ if (!this._isOpen) return;
148
+
149
+ this._timeout = setTimeout(
150
+ () => {
151
+ const payload = { cancel: false };
152
+ this._fireEvent('hide', payload);
153
+ this._dispatchEvent('hide', payload);
154
+ if (payload.cancel === true) {
155
+ return;
156
+ }
157
+
158
+ if (!this._targetElement) {
159
+ return;
160
+ }
161
+
162
+ this._targetElement.style.opacity = '1';
163
+ KTDom.reflow(this._targetElement);
164
+ this._targetElement.style.opacity = '0';
165
+ this._transitioning = true;
166
+ this._isOpen = false;
167
+
168
+ KTDom.transitionEnd(this._targetElement, () => {
169
+ this._popper.destroy();
170
+ this._targetElement.classList.remove('show');
171
+ this._targetElement.classList.add(
172
+ this._getOption('hiddenClass') as string,
173
+ );
174
+ this._targetElement.style.opacity = '';
175
+ this._transitioning = false;
176
+ this._fireEvent('hidden');
177
+ this._dispatchEvent('hidden');
178
+ });
179
+ },
180
+ this._getOption('delayHide') as number,
181
+ );
182
+ }
183
+
184
+ protected _toggle(): void {
185
+ const payload = { cancel: false };
186
+ this._fireEvent('toggle', payload);
187
+ this._dispatchEvent('toggle', payload);
188
+ if (payload.cancel === true) {
189
+ return;
190
+ }
191
+
192
+ if (this._isOpen) {
193
+ this._hide();
194
+ } else {
195
+ this._show();
196
+ }
197
+ }
198
+
199
+ protected _createPopper(): void {
200
+ if (!this._element) return;
201
+
202
+ const isRtl = KTDom.isRTL();
203
+
204
+ // Placement
205
+ let placement = this._getOption('placement') as Placement;
206
+ if (isRtl && this._getOption('placementRtl')) {
207
+ placement = this._getOption('placementRtl') as Placement;
208
+ }
209
+
210
+ // Offset
211
+ let offsetValue = this._getOption('offset');
212
+ if (isRtl && this._getOption('offsetRtl')) {
213
+ offsetValue = this._getOption('offsetRtl') as Placement;
214
+ }
215
+ const offset = offsetValue
216
+ ? offsetValue
217
+ .toString()
218
+ .split(',')
219
+ .map((value) => parseInt(value.trim(), 10))
220
+ : [0, 0];
221
+
222
+ if (!this._targetElement) {
223
+ return;
224
+ }
225
+
226
+ this._popper = createPopper(this._element, this._targetElement, {
227
+ placement: placement,
228
+ strategy: this._getOption('strategy') as PositioningStrategy,
229
+ modifiers: [
230
+ {
231
+ name: 'offset',
232
+ options: {
233
+ offset,
234
+ },
235
+ },
236
+ ],
237
+ });
238
+ }
239
+
240
+ protected _handleContainer(): void {
241
+ if (this._getOption('container')) {
242
+ if (this._getOption('container') === 'body') {
243
+ document.body.appendChild(this._targetElement);
244
+ } else {
245
+ document
246
+ .querySelector(this._getOption('container') as string)
247
+ ?.appendChild(this._targetElement);
248
+ }
249
+ }
250
+ }
251
+
252
+ protected _setZindex(): void {
253
+ let zindex: number = parseInt(this._getOption('zindex') as string);
254
+
255
+ if (parseInt(KTDom.getCssProp(this._element, 'z-index')) > zindex) {
256
+ zindex = parseInt(KTDom.getCssProp(this._element, 'z-index'));
257
+ }
258
+
259
+ if (KTDom.getHighestZindex(this._element) > zindex) {
260
+ zindex = KTDom.getHighestZindex(this._element) + 1;
261
+ }
262
+
263
+ this._targetElement.style.zIndex = String(zindex);
264
+ }
265
+
266
+ public show(): void {
267
+ this._show();
268
+ }
269
+
270
+ public hide(): void {
271
+ this._hide();
272
+ }
273
+
274
+ public toggle(): void {
275
+ this._toggle();
276
+ }
277
+
278
+ public getContentElement(): HTMLElement | null {
279
+ return this._targetElement;
280
+ }
281
+
282
+ public isOpen(): boolean {
283
+ return this._isOpen;
284
+ }
285
+
286
+ public getTriggerOption(): KTTooltipTriggerType {
287
+ return this._getOption('trigger') as KTTooltipTriggerType;
288
+ }
289
+
290
+ public isPermanent(): boolean {
291
+ return this._getOption('permanent') as boolean;
292
+ }
293
+
294
+ public static initHandlers(): void {
295
+ document.addEventListener('click', (event: Event) => {
296
+ document
297
+ .querySelectorAll('[data-kt-tooltip-initialized]')
298
+ .forEach((tooltipElement) => {
299
+ const tooltip = KTTooltip.getInstance(tooltipElement as HTMLElement);
300
+
301
+ if (
302
+ tooltip &&
303
+ tooltip.isOpen() &&
304
+ tooltip.getTriggerOption() !== 'hover' &&
305
+ !tooltip.isPermanent()
306
+ ) {
307
+ const contentElement = tooltip.getContentElement();
308
+ if (
309
+ contentElement &&
310
+ (contentElement === event.target ||
311
+ contentElement.contains(event.target as HTMLElement))
312
+ ) {
313
+ return;
314
+ } else {
315
+ tooltip.hide();
316
+ }
317
+ }
318
+ });
319
+ });
320
+ }
321
+
322
+ public static getInstance(element: HTMLElement): KTTooltip {
323
+ if (!element) return null;
324
+
325
+ if (KTData.has(element, 'tooltip')) {
326
+ return KTData.get(element, 'tooltip') as KTTooltip;
327
+ }
328
+
329
+ if (element.getAttribute('data-kt-tooltip')) {
330
+ return new KTTooltip(element);
331
+ }
332
+
333
+ return null;
334
+ }
335
+
336
+ public static getOrCreateInstance(
337
+ element: HTMLElement,
338
+ config?: KTTooltipConfigInterface,
339
+ ): KTTooltip {
340
+ return this.getInstance(element) || new KTTooltip(element, config);
341
+ }
342
+
343
+ public static createInstances(): void {
344
+ document.querySelectorAll('[data-kt-tooltip]').forEach((element) => {
345
+ new KTTooltip(element as HTMLElement);
346
+ });
347
+ }
348
+
349
+ public static init(): void {
350
+ KTTooltip.createInstances();
351
+
352
+ if (window.KT_TOOLTIP_INITIALIZED !== true) {
353
+ KTTooltip.initHandlers();
354
+ window.KT_TOOLTIP_INITIALIZED = true;
355
+ }
356
+ }
357
+ }
358
+
359
+ if (typeof window !== 'undefined') {
360
+ window.KTTooltip = KTTooltip;
361
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
3
+ * Copyright 2025 by Keenthemes Inc
4
+ * @version: 1.0.0
5
+ */
6
+ export declare type KTTooltipTriggerType = 'hover' | 'click' | 'focus';
7
+
8
+ export interface KTTooltipConfigInterface {
9
+ hiddenClass: string;
10
+ target: string;
11
+ trigger: string;
12
+ container: string;
13
+ placement: string;
14
+ placementRtl: string;
15
+ strategy: string;
16
+ permanent: boolean;
17
+ offset: string;
18
+ offsetRtl: string;
19
+ delayShow: number;
20
+ delayHide: number;
21
+ zindex: string;
22
+ }
23
+
24
+ export interface KTTooltipInterface {
25
+ show(): void;
26
+ hide(): void;
27
+ toggle(): void;
28
+ }