@keenthemes/ktui 1.0.7 → 1.0.9

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 (499) hide show
  1. package/dist/ktui.js +16038 -17101
  2. package/dist/ktui.min.js +1 -1
  3. package/dist/ktui.min.js.map +1 -1
  4. package/lib/cjs/components/accordion/accordion.js +20 -11
  5. package/lib/cjs/components/accordion/accordion.js.map +1 -1
  6. package/lib/cjs/components/accordion/index.js +4 -0
  7. package/lib/cjs/components/accordion/index.js.map +1 -1
  8. package/lib/cjs/components/accordion/types.js +4 -0
  9. package/lib/cjs/components/accordion/types.js.map +1 -1
  10. package/lib/cjs/components/collapse/collapse.js +13 -7
  11. package/lib/cjs/components/collapse/collapse.js.map +1 -1
  12. package/lib/cjs/components/collapse/index.js +4 -0
  13. package/lib/cjs/components/collapse/index.js.map +1 -1
  14. package/lib/cjs/components/collapse/types.js +4 -0
  15. package/lib/cjs/components/collapse/types.js.map +1 -1
  16. package/lib/cjs/components/component.js +12 -41
  17. package/lib/cjs/components/component.js.map +1 -1
  18. package/lib/cjs/components/constants.js +4 -0
  19. package/lib/cjs/components/constants.js.map +1 -1
  20. package/lib/cjs/components/datatable/datatable-checkbox.js +217 -0
  21. package/lib/cjs/components/datatable/datatable-checkbox.js.map +1 -0
  22. package/lib/cjs/components/datatable/datatable-sort.js +91 -0
  23. package/lib/cjs/components/datatable/datatable-sort.js.map +1 -0
  24. package/lib/cjs/components/datatable/datatable.js +294 -349
  25. package/lib/cjs/components/datatable/datatable.js.map +1 -1
  26. package/lib/cjs/components/datatable/index.js +4 -0
  27. package/lib/cjs/components/datatable/index.js.map +1 -1
  28. package/lib/cjs/components/datatable/types.js +4 -0
  29. package/lib/cjs/components/datatable/types.js.map +1 -1
  30. package/lib/cjs/components/datepicker/calendar.js +1061 -0
  31. package/lib/cjs/components/datepicker/calendar.js.map +1 -0
  32. package/lib/cjs/components/datepicker/config.js +332 -0
  33. package/lib/cjs/components/datepicker/config.js.map +1 -0
  34. package/lib/cjs/components/datepicker/datepicker.js +949 -0
  35. package/lib/cjs/components/datepicker/datepicker.js.map +1 -0
  36. package/lib/cjs/components/datepicker/dropdown.js +635 -0
  37. package/lib/cjs/components/datepicker/dropdown.js.map +1 -0
  38. package/lib/cjs/components/datepicker/events.js +129 -0
  39. package/lib/cjs/components/datepicker/events.js.map +1 -0
  40. package/lib/cjs/components/datepicker/index.js +13 -0
  41. package/lib/cjs/components/datepicker/index.js.map +1 -0
  42. package/lib/cjs/components/datepicker/keyboard.js +536 -0
  43. package/lib/cjs/components/datepicker/keyboard.js.map +1 -0
  44. package/lib/cjs/components/datepicker/locales.js +78 -0
  45. package/lib/cjs/components/datepicker/locales.js.map +1 -0
  46. package/lib/cjs/components/datepicker/templates.js +403 -0
  47. package/lib/cjs/components/datepicker/templates.js.map +1 -0
  48. package/lib/cjs/components/datepicker/types.js +23 -0
  49. package/lib/cjs/components/datepicker/types.js.map +1 -0
  50. package/lib/cjs/components/datepicker/utils.js +524 -0
  51. package/lib/cjs/components/datepicker/utils.js.map +1 -0
  52. package/lib/cjs/components/dismiss/dismiss.js +10 -6
  53. package/lib/cjs/components/dismiss/dismiss.js.map +1 -1
  54. package/lib/cjs/components/dismiss/index.js +4 -0
  55. package/lib/cjs/components/dismiss/index.js.map +1 -1
  56. package/lib/cjs/components/dismiss/types.js +4 -0
  57. package/lib/cjs/components/dismiss/types.js.map +1 -1
  58. package/lib/cjs/components/drawer/drawer.js +54 -28
  59. package/lib/cjs/components/drawer/drawer.js.map +1 -1
  60. package/lib/cjs/components/drawer/index.js +4 -0
  61. package/lib/cjs/components/drawer/index.js.map +1 -1
  62. package/lib/cjs/components/drawer/types.js +4 -0
  63. package/lib/cjs/components/drawer/types.js.map +1 -1
  64. package/lib/cjs/components/dropdown/dropdown.js +145 -115
  65. package/lib/cjs/components/dropdown/dropdown.js.map +1 -1
  66. package/lib/cjs/components/dropdown/index.js +4 -0
  67. package/lib/cjs/components/dropdown/index.js.map +1 -1
  68. package/lib/cjs/components/dropdown/types.js +4 -0
  69. package/lib/cjs/components/dropdown/types.js.map +1 -1
  70. package/lib/cjs/components/image-input/image-input.js +21 -16
  71. package/lib/cjs/components/image-input/image-input.js.map +1 -1
  72. package/lib/cjs/components/image-input/index.js +4 -0
  73. package/lib/cjs/components/image-input/index.js.map +1 -1
  74. package/lib/cjs/components/image-input/types.js +4 -0
  75. package/lib/cjs/components/image-input/types.js.map +1 -1
  76. package/lib/cjs/components/modal/index.js +4 -0
  77. package/lib/cjs/components/modal/index.js.map +1 -1
  78. package/lib/cjs/components/modal/modal.js +26 -19
  79. package/lib/cjs/components/modal/modal.js.map +1 -1
  80. package/lib/cjs/components/modal/types.js +4 -0
  81. package/lib/cjs/components/modal/types.js.map +1 -1
  82. package/lib/cjs/components/reparent/index.js +4 -0
  83. package/lib/cjs/components/reparent/index.js.map +1 -1
  84. package/lib/cjs/components/reparent/reparent.js +13 -5
  85. package/lib/cjs/components/reparent/reparent.js.map +1 -1
  86. package/lib/cjs/components/reparent/types.js +4 -0
  87. package/lib/cjs/components/reparent/types.js.map +1 -1
  88. package/lib/cjs/components/scrollable/index.js +4 -0
  89. package/lib/cjs/components/scrollable/index.js.map +1 -1
  90. package/lib/cjs/components/scrollable/scrollable.js +17 -10
  91. package/lib/cjs/components/scrollable/scrollable.js.map +1 -1
  92. package/lib/cjs/components/scrollable/types.js +4 -0
  93. package/lib/cjs/components/scrollable/types.js.map +1 -1
  94. package/lib/cjs/components/scrollspy/index.js +4 -0
  95. package/lib/cjs/components/scrollspy/index.js.map +1 -1
  96. package/lib/cjs/components/scrollspy/scrollspy.js +28 -17
  97. package/lib/cjs/components/scrollspy/scrollspy.js.map +1 -1
  98. package/lib/cjs/components/scrollspy/types.js +4 -0
  99. package/lib/cjs/components/scrollspy/types.js.map +1 -1
  100. package/lib/cjs/components/scrollto/index.js +4 -0
  101. package/lib/cjs/components/scrollto/index.js.map +1 -1
  102. package/lib/cjs/components/scrollto/scrollto.js +14 -8
  103. package/lib/cjs/components/scrollto/scrollto.js.map +1 -1
  104. package/lib/cjs/components/scrollto/types.js +4 -0
  105. package/lib/cjs/components/scrollto/types.js.map +1 -1
  106. package/lib/cjs/components/select/combobox.js +237 -0
  107. package/lib/cjs/components/select/combobox.js.map +1 -0
  108. package/lib/cjs/components/select/config.js +226 -0
  109. package/lib/cjs/components/select/config.js.map +1 -0
  110. package/lib/cjs/components/select/dropdown.js +429 -0
  111. package/lib/cjs/components/select/dropdown.js.map +1 -0
  112. package/lib/cjs/components/select/index.js +24 -0
  113. package/lib/cjs/components/select/index.js.map +1 -0
  114. package/lib/cjs/components/select/option.js +53 -0
  115. package/lib/cjs/components/select/option.js.map +1 -0
  116. package/lib/cjs/components/select/remote.js +414 -0
  117. package/lib/cjs/components/select/remote.js.map +1 -0
  118. package/lib/cjs/components/select/search.js +339 -0
  119. package/lib/cjs/components/select/search.js.map +1 -0
  120. package/lib/cjs/components/select/select.js +1538 -0
  121. package/lib/cjs/components/select/select.js.map +1 -0
  122. package/lib/cjs/components/select/tags.js +110 -0
  123. package/lib/cjs/components/select/tags.js.map +1 -0
  124. package/lib/cjs/components/select/templates.js +337 -0
  125. package/lib/cjs/components/select/templates.js.map +1 -0
  126. package/lib/cjs/components/select/types.js +19 -0
  127. package/lib/cjs/components/select/types.js.map +1 -0
  128. package/lib/cjs/components/select/utils.js +606 -0
  129. package/lib/cjs/components/select/utils.js.map +1 -0
  130. package/lib/cjs/components/stepper/index.js +4 -0
  131. package/lib/cjs/components/stepper/index.js.map +1 -1
  132. package/lib/cjs/components/stepper/stepper.js +20 -13
  133. package/lib/cjs/components/stepper/stepper.js.map +1 -1
  134. package/lib/cjs/components/stepper/types.js +4 -0
  135. package/lib/cjs/components/stepper/types.js.map +1 -1
  136. package/lib/cjs/components/sticky/index.js +4 -0
  137. package/lib/cjs/components/sticky/index.js.map +1 -1
  138. package/lib/cjs/components/sticky/sticky.js +60 -38
  139. package/lib/cjs/components/sticky/sticky.js.map +1 -1
  140. package/lib/cjs/components/sticky/types.js +4 -0
  141. package/lib/cjs/components/sticky/types.js.map +1 -1
  142. package/lib/cjs/components/tabs/index.js +4 -0
  143. package/lib/cjs/components/tabs/index.js.map +1 -1
  144. package/lib/cjs/components/tabs/tabs.js +34 -24
  145. package/lib/cjs/components/tabs/tabs.js.map +1 -1
  146. package/lib/cjs/components/tabs/types.js +4 -0
  147. package/lib/cjs/components/tabs/types.js.map +1 -1
  148. package/lib/cjs/components/theme-switch/index.js +10 -0
  149. package/lib/cjs/components/theme-switch/index.js.map +1 -0
  150. package/lib/cjs/components/theme-switch/theme-switch.js +143 -0
  151. package/lib/cjs/components/theme-switch/theme-switch.js.map +1 -0
  152. package/lib/cjs/components/theme-switch/types.js +7 -0
  153. package/lib/cjs/components/theme-switch/types.js.map +1 -0
  154. package/lib/cjs/components/toggle/index.js +4 -0
  155. package/lib/cjs/components/toggle/index.js.map +1 -1
  156. package/lib/cjs/components/toggle/toggle.js +11 -7
  157. package/lib/cjs/components/toggle/toggle.js.map +1 -1
  158. package/lib/cjs/components/toggle/types.js +4 -0
  159. package/lib/cjs/components/toggle/types.js.map +1 -1
  160. package/lib/cjs/components/toggle-password/index.js +4 -0
  161. package/lib/cjs/components/toggle-password/index.js.map +1 -1
  162. package/lib/cjs/components/toggle-password/toggle-password.js +12 -7
  163. package/lib/cjs/components/toggle-password/toggle-password.js.map +1 -1
  164. package/lib/cjs/components/toggle-password/types.js +4 -0
  165. package/lib/cjs/components/toggle-password/types.js.map +1 -1
  166. package/lib/cjs/components/tooltip/index.js +4 -0
  167. package/lib/cjs/components/tooltip/index.js.map +1 -1
  168. package/lib/cjs/components/tooltip/tooltip.js +51 -21
  169. package/lib/cjs/components/tooltip/tooltip.js.map +1 -1
  170. package/lib/cjs/components/tooltip/types.js +4 -0
  171. package/lib/cjs/components/tooltip/types.js.map +1 -1
  172. package/lib/cjs/helpers/data.js +5 -1
  173. package/lib/cjs/helpers/data.js.map +1 -1
  174. package/lib/cjs/helpers/dom.js +34 -29
  175. package/lib/cjs/helpers/dom.js.map +1 -1
  176. package/lib/cjs/helpers/event-handler.js +5 -1
  177. package/lib/cjs/helpers/event-handler.js.map +1 -1
  178. package/lib/cjs/helpers/utils.js +65 -11
  179. package/lib/cjs/helpers/utils.js.map +1 -1
  180. package/lib/cjs/index.js +18 -22
  181. package/lib/cjs/index.js.map +1 -1
  182. package/lib/cjs/types.js +4 -0
  183. package/lib/cjs/types.js.map +1 -1
  184. package/lib/esm/components/accordion/accordion.js +20 -11
  185. package/lib/esm/components/accordion/accordion.js.map +1 -1
  186. package/lib/esm/components/accordion/index.js +4 -0
  187. package/lib/esm/components/accordion/index.js.map +1 -1
  188. package/lib/esm/components/accordion/types.js +4 -0
  189. package/lib/esm/components/accordion/types.js.map +1 -1
  190. package/lib/esm/components/collapse/collapse.js +13 -7
  191. package/lib/esm/components/collapse/collapse.js.map +1 -1
  192. package/lib/esm/components/collapse/index.js +4 -0
  193. package/lib/esm/components/collapse/index.js.map +1 -1
  194. package/lib/esm/components/collapse/types.js +4 -0
  195. package/lib/esm/components/collapse/types.js.map +1 -1
  196. package/lib/esm/components/component.js +12 -41
  197. package/lib/esm/components/component.js.map +1 -1
  198. package/lib/esm/components/constants.js +4 -0
  199. package/lib/esm/components/constants.js.map +1 -1
  200. package/lib/esm/components/datatable/datatable-checkbox.js +214 -0
  201. package/lib/esm/components/datatable/datatable-checkbox.js.map +1 -0
  202. package/lib/esm/components/datatable/datatable-sort.js +88 -0
  203. package/lib/esm/components/datatable/datatable-sort.js.map +1 -0
  204. package/lib/esm/components/datatable/datatable.js +294 -349
  205. package/lib/esm/components/datatable/datatable.js.map +1 -1
  206. package/lib/esm/components/datatable/index.js +4 -0
  207. package/lib/esm/components/datatable/index.js.map +1 -1
  208. package/lib/esm/components/datatable/types.js +4 -0
  209. package/lib/esm/components/datatable/types.js.map +1 -1
  210. package/lib/esm/components/datepicker/calendar.js +1058 -0
  211. package/lib/esm/components/datepicker/calendar.js.map +1 -0
  212. package/lib/esm/components/datepicker/config.js +329 -0
  213. package/lib/esm/components/datepicker/config.js.map +1 -0
  214. package/lib/esm/components/datepicker/datepicker.js +946 -0
  215. package/lib/esm/components/datepicker/datepicker.js.map +1 -0
  216. package/lib/esm/components/datepicker/dropdown.js +632 -0
  217. package/lib/esm/components/datepicker/dropdown.js.map +1 -0
  218. package/lib/esm/components/datepicker/events.js +126 -0
  219. package/lib/esm/components/datepicker/events.js.map +1 -0
  220. package/lib/esm/components/datepicker/index.js +9 -0
  221. package/lib/esm/components/datepicker/index.js.map +1 -0
  222. package/lib/esm/components/datepicker/keyboard.js +533 -0
  223. package/lib/esm/components/datepicker/keyboard.js.map +1 -0
  224. package/lib/esm/components/datepicker/locales.js +74 -0
  225. package/lib/esm/components/datepicker/locales.js.map +1 -0
  226. package/lib/esm/components/datepicker/templates.js +390 -0
  227. package/lib/esm/components/datepicker/templates.js.map +1 -0
  228. package/lib/esm/components/datepicker/types.js +20 -0
  229. package/lib/esm/components/datepicker/types.js.map +1 -0
  230. package/lib/esm/components/datepicker/utils.js +508 -0
  231. package/lib/esm/components/datepicker/utils.js.map +1 -0
  232. package/lib/esm/components/dismiss/dismiss.js +10 -6
  233. package/lib/esm/components/dismiss/dismiss.js.map +1 -1
  234. package/lib/esm/components/dismiss/index.js +4 -0
  235. package/lib/esm/components/dismiss/index.js.map +1 -1
  236. package/lib/esm/components/dismiss/types.js +4 -0
  237. package/lib/esm/components/dismiss/types.js.map +1 -1
  238. package/lib/esm/components/drawer/drawer.js +54 -28
  239. package/lib/esm/components/drawer/drawer.js.map +1 -1
  240. package/lib/esm/components/drawer/index.js +4 -0
  241. package/lib/esm/components/drawer/index.js.map +1 -1
  242. package/lib/esm/components/drawer/types.js +4 -0
  243. package/lib/esm/components/drawer/types.js.map +1 -1
  244. package/lib/esm/components/dropdown/dropdown.js +146 -116
  245. package/lib/esm/components/dropdown/dropdown.js.map +1 -1
  246. package/lib/esm/components/dropdown/index.js +4 -0
  247. package/lib/esm/components/dropdown/index.js.map +1 -1
  248. package/lib/esm/components/dropdown/types.js +4 -0
  249. package/lib/esm/components/dropdown/types.js.map +1 -1
  250. package/lib/esm/components/image-input/image-input.js +21 -16
  251. package/lib/esm/components/image-input/image-input.js.map +1 -1
  252. package/lib/esm/components/image-input/index.js +4 -0
  253. package/lib/esm/components/image-input/index.js.map +1 -1
  254. package/lib/esm/components/image-input/types.js +4 -0
  255. package/lib/esm/components/image-input/types.js.map +1 -1
  256. package/lib/esm/components/modal/index.js +4 -0
  257. package/lib/esm/components/modal/index.js.map +1 -1
  258. package/lib/esm/components/modal/modal.js +26 -19
  259. package/lib/esm/components/modal/modal.js.map +1 -1
  260. package/lib/esm/components/modal/types.js +4 -0
  261. package/lib/esm/components/modal/types.js.map +1 -1
  262. package/lib/esm/components/reparent/index.js +4 -0
  263. package/lib/esm/components/reparent/index.js.map +1 -1
  264. package/lib/esm/components/reparent/reparent.js +13 -5
  265. package/lib/esm/components/reparent/reparent.js.map +1 -1
  266. package/lib/esm/components/reparent/types.js +4 -0
  267. package/lib/esm/components/reparent/types.js.map +1 -1
  268. package/lib/esm/components/scrollable/index.js +4 -0
  269. package/lib/esm/components/scrollable/index.js.map +1 -1
  270. package/lib/esm/components/scrollable/scrollable.js +17 -10
  271. package/lib/esm/components/scrollable/scrollable.js.map +1 -1
  272. package/lib/esm/components/scrollable/types.js +4 -0
  273. package/lib/esm/components/scrollable/types.js.map +1 -1
  274. package/lib/esm/components/scrollspy/index.js +4 -0
  275. package/lib/esm/components/scrollspy/index.js.map +1 -1
  276. package/lib/esm/components/scrollspy/scrollspy.js +28 -17
  277. package/lib/esm/components/scrollspy/scrollspy.js.map +1 -1
  278. package/lib/esm/components/scrollspy/types.js +4 -0
  279. package/lib/esm/components/scrollspy/types.js.map +1 -1
  280. package/lib/esm/components/scrollto/index.js +4 -0
  281. package/lib/esm/components/scrollto/index.js.map +1 -1
  282. package/lib/esm/components/scrollto/scrollto.js +14 -8
  283. package/lib/esm/components/scrollto/scrollto.js.map +1 -1
  284. package/lib/esm/components/scrollto/types.js +4 -0
  285. package/lib/esm/components/scrollto/types.js.map +1 -1
  286. package/lib/esm/components/select/combobox.js +234 -0
  287. package/lib/esm/components/select/combobox.js.map +1 -0
  288. package/lib/esm/components/select/config.js +223 -0
  289. package/lib/esm/components/select/config.js.map +1 -0
  290. package/lib/esm/components/select/dropdown.js +426 -0
  291. package/lib/esm/components/select/dropdown.js.map +1 -0
  292. package/lib/esm/components/select/index.js +12 -0
  293. package/lib/esm/components/select/index.js.map +1 -0
  294. package/lib/esm/components/select/option.js +50 -0
  295. package/lib/esm/components/select/option.js.map +1 -0
  296. package/lib/esm/components/select/remote.js +411 -0
  297. package/lib/esm/components/select/remote.js.map +1 -0
  298. package/lib/esm/components/select/search.js +336 -0
  299. package/lib/esm/components/select/search.js.map +1 -0
  300. package/lib/esm/components/select/select.js +1535 -0
  301. package/lib/esm/components/select/select.js.map +1 -0
  302. package/lib/esm/components/select/tags.js +107 -0
  303. package/lib/esm/components/select/tags.js.map +1 -0
  304. package/lib/esm/components/select/templates.js +332 -0
  305. package/lib/esm/components/select/templates.js.map +1 -0
  306. package/lib/esm/components/select/types.js +16 -0
  307. package/lib/esm/components/select/types.js.map +1 -0
  308. package/lib/esm/components/select/utils.js +598 -0
  309. package/lib/esm/components/select/utils.js.map +1 -0
  310. package/lib/esm/components/stepper/index.js +4 -0
  311. package/lib/esm/components/stepper/index.js.map +1 -1
  312. package/lib/esm/components/stepper/stepper.js +20 -13
  313. package/lib/esm/components/stepper/stepper.js.map +1 -1
  314. package/lib/esm/components/stepper/types.js +4 -0
  315. package/lib/esm/components/stepper/types.js.map +1 -1
  316. package/lib/esm/components/sticky/index.js +4 -0
  317. package/lib/esm/components/sticky/index.js.map +1 -1
  318. package/lib/esm/components/sticky/sticky.js +60 -38
  319. package/lib/esm/components/sticky/sticky.js.map +1 -1
  320. package/lib/esm/components/sticky/types.js +4 -0
  321. package/lib/esm/components/sticky/types.js.map +1 -1
  322. package/lib/esm/components/tabs/index.js +4 -0
  323. package/lib/esm/components/tabs/index.js.map +1 -1
  324. package/lib/esm/components/tabs/tabs.js +34 -24
  325. package/lib/esm/components/tabs/tabs.js.map +1 -1
  326. package/lib/esm/components/tabs/types.js +4 -0
  327. package/lib/esm/components/tabs/types.js.map +1 -1
  328. package/lib/esm/components/theme-switch/index.js +6 -0
  329. package/lib/esm/components/theme-switch/index.js.map +1 -0
  330. package/lib/esm/components/theme-switch/theme-switch.js +140 -0
  331. package/lib/esm/components/theme-switch/theme-switch.js.map +1 -0
  332. package/lib/esm/components/theme-switch/types.js +6 -0
  333. package/lib/esm/components/theme-switch/types.js.map +1 -0
  334. package/lib/esm/components/toggle/index.js +4 -0
  335. package/lib/esm/components/toggle/index.js.map +1 -1
  336. package/lib/esm/components/toggle/toggle.js +11 -7
  337. package/lib/esm/components/toggle/toggle.js.map +1 -1
  338. package/lib/esm/components/toggle/types.js +4 -0
  339. package/lib/esm/components/toggle/types.js.map +1 -1
  340. package/lib/esm/components/toggle-password/index.js +4 -0
  341. package/lib/esm/components/toggle-password/index.js.map +1 -1
  342. package/lib/esm/components/toggle-password/toggle-password.js +12 -7
  343. package/lib/esm/components/toggle-password/toggle-password.js.map +1 -1
  344. package/lib/esm/components/toggle-password/types.js +4 -0
  345. package/lib/esm/components/toggle-password/types.js.map +1 -1
  346. package/lib/esm/components/tooltip/index.js +4 -0
  347. package/lib/esm/components/tooltip/index.js.map +1 -1
  348. package/lib/esm/components/tooltip/tooltip.js +52 -22
  349. package/lib/esm/components/tooltip/tooltip.js.map +1 -1
  350. package/lib/esm/components/tooltip/types.js +4 -0
  351. package/lib/esm/components/tooltip/types.js.map +1 -1
  352. package/lib/esm/helpers/data.js +5 -1
  353. package/lib/esm/helpers/data.js.map +1 -1
  354. package/lib/esm/helpers/dom.js +34 -29
  355. package/lib/esm/helpers/dom.js.map +1 -1
  356. package/lib/esm/helpers/event-handler.js +5 -1
  357. package/lib/esm/helpers/event-handler.js.map +1 -1
  358. package/lib/esm/helpers/utils.js +65 -11
  359. package/lib/esm/helpers/utils.js.map +1 -1
  360. package/lib/esm/index.js +14 -16
  361. package/lib/esm/index.js.map +1 -1
  362. package/lib/esm/types.js +4 -0
  363. package/lib/esm/types.js.map +1 -1
  364. package/package.json +16 -8
  365. package/src/components/accordion/accordion-menu.css +1 -2
  366. package/src/components/accordion/accordion.css +1 -1
  367. package/src/components/accordion/accordion.ts +1 -1
  368. package/src/components/accordion/index.ts +1 -1
  369. package/src/components/accordion/types.ts +1 -1
  370. package/src/components/alert/alert.css +1 -1
  371. package/src/components/avatar/avatar.css +1 -1
  372. package/src/components/badge/badge.css +1 -1
  373. package/src/components/breadcrumb/breadcrumb.css +1 -1
  374. package/src/components/btn/btn.css +1 -1
  375. package/src/components/card/card.css +1 -1
  376. package/src/components/checkbox/checkbox.css +1 -1
  377. package/src/components/collapse/collapse.css +1 -1
  378. package/src/components/collapse/collapse.ts +1 -1
  379. package/src/components/collapse/index.ts +1 -1
  380. package/src/components/collapse/types.ts +1 -1
  381. package/src/components/component.ts +1 -1
  382. package/src/components/constants.ts +1 -1
  383. package/src/components/datatable/datatable-checkbox.ts +1 -1
  384. package/src/components/datatable/datatable-sort.ts +1 -1
  385. package/src/components/datatable/datatable.css +1 -1
  386. package/src/components/datatable/datatable.ts +38 -2
  387. package/src/components/datatable/index.ts +1 -1
  388. package/src/components/datatable/types.ts +1 -1
  389. package/src/components/datepicker/calendar.ts +1 -1
  390. package/src/components/datepicker/config.ts +1 -1
  391. package/src/components/datepicker/datepicker.css +1 -1
  392. package/src/components/datepicker/datepicker.ts +1 -1
  393. package/src/components/datepicker/dropdown.ts +1 -1
  394. package/src/components/datepicker/events.ts +1 -1
  395. package/src/components/datepicker/index.ts +1 -1
  396. package/src/components/datepicker/keyboard.ts +1 -1
  397. package/src/components/datepicker/locales.ts +1 -1
  398. package/src/components/datepicker/templates.ts +1 -1
  399. package/src/components/datepicker/types.ts +1 -1
  400. package/src/components/datepicker/utils.ts +1 -1
  401. package/src/components/dismiss/dismiss.css +1 -1
  402. package/src/components/dismiss/dismiss.ts +1 -1
  403. package/src/components/dismiss/index.ts +1 -1
  404. package/src/components/dismiss/types.ts +1 -1
  405. package/src/components/drawer/drawer.css +1 -1
  406. package/src/components/drawer/drawer.ts +1 -1
  407. package/src/components/drawer/index.ts +1 -1
  408. package/src/components/drawer/types.ts +1 -1
  409. package/src/components/dropdown/dropdown-menu.css +1 -1
  410. package/src/components/dropdown/dropdown.css +1 -1
  411. package/src/components/dropdown/dropdown.ts +1 -1
  412. package/src/components/dropdown/index.ts +1 -1
  413. package/src/components/dropdown/types.ts +1 -1
  414. package/src/components/form/form.css +1 -1
  415. package/src/components/image-input/image-input.css +1 -1
  416. package/src/components/image-input/image-input.ts +1 -1
  417. package/src/components/image-input/index.ts +1 -1
  418. package/src/components/image-input/types.ts +1 -1
  419. package/src/components/input/input-group.css +8 -5
  420. package/src/components/input/input.css +1 -1
  421. package/src/components/kbd/kbd.css +1 -1
  422. package/src/components/label/label.css +1 -1
  423. package/src/components/link/link.css +1 -1
  424. package/src/components/modal/index.ts +1 -1
  425. package/src/components/modal/modal.css +1 -1
  426. package/src/components/modal/modal.ts +1 -1
  427. package/src/components/modal/types.ts +1 -1
  428. package/src/components/pagination/pagination.css +1 -1
  429. package/src/components/popover/popover.css +1 -1
  430. package/src/components/progress/progress.css +2 -2
  431. package/src/components/radio/radio.css +1 -1
  432. package/src/components/reparent/index.ts +1 -1
  433. package/src/components/reparent/reparent.ts +1 -1
  434. package/src/components/reparent/types.ts +1 -1
  435. package/src/components/scrollable/index.ts +1 -1
  436. package/src/components/scrollable/scrollable.css +1 -1
  437. package/src/components/scrollable/scrollable.ts +1 -1
  438. package/src/components/scrollable/types.ts +1 -1
  439. package/src/components/scrollspy/index.ts +1 -1
  440. package/src/components/scrollspy/scrollspy.css +1 -1
  441. package/src/components/scrollspy/scrollspy.ts +1 -1
  442. package/src/components/scrollspy/types.ts +1 -1
  443. package/src/components/scrollto/index.ts +1 -1
  444. package/src/components/scrollto/scrollto.ts +1 -1
  445. package/src/components/scrollto/types.ts +1 -1
  446. package/src/components/select/combobox.ts +1 -1
  447. package/src/components/select/config.ts +1 -1
  448. package/src/components/select/dropdown.ts +1 -1
  449. package/src/components/select/index.ts +1 -1
  450. package/src/components/select/option.ts +1 -1
  451. package/src/components/select/remote.ts +1 -1
  452. package/src/components/select/search.ts +1 -1
  453. package/src/components/select/select.css +1 -1
  454. package/src/components/select/select.ts +1 -1
  455. package/src/components/select/tags.ts +1 -1
  456. package/src/components/select/templates.ts +1 -1
  457. package/src/components/select/types.ts +1 -1
  458. package/src/components/select/utils.ts +1 -1
  459. package/src/components/select/variants.css +1 -1
  460. package/src/components/separator/separator.css +1 -1
  461. package/src/components/skeleton/skeleton.css +1 -1
  462. package/src/components/stepper/index.ts +1 -1
  463. package/src/components/stepper/stepper.css +1 -1
  464. package/src/components/stepper/stepper.ts +1 -1
  465. package/src/components/stepper/types.ts +1 -1
  466. package/src/components/sticky/index.ts +1 -1
  467. package/src/components/sticky/sticky.css +1 -1
  468. package/src/components/sticky/sticky.ts +1 -1
  469. package/src/components/sticky/types.ts +1 -1
  470. package/src/components/switch/switch.css +1 -1
  471. package/src/components/table/table.css +2 -2
  472. package/src/components/tabs/index.ts +1 -1
  473. package/src/components/tabs/tabs.css +1 -1
  474. package/src/components/tabs/tabs.ts +1 -1
  475. package/src/components/tabs/types.ts +1 -1
  476. package/src/components/textarea/textarea.css +1 -1
  477. package/src/components/theme-switch/index.ts +1 -1
  478. package/src/components/theme-switch/theme-switch.css +1 -1
  479. package/src/components/theme-switch/theme-switch.ts +1 -1
  480. package/src/components/theme-switch/types.ts +1 -1
  481. package/src/components/toggle/index.ts +1 -1
  482. package/src/components/toggle/toggle.css +1 -1
  483. package/src/components/toggle/toggle.ts +1 -1
  484. package/src/components/toggle/types.ts +1 -1
  485. package/src/components/toggle-group/toggle-group.css +1 -1
  486. package/src/components/toggle-password/index.ts +1 -1
  487. package/src/components/toggle-password/toggle-password.css +1 -1
  488. package/src/components/toggle-password/toggle-password.ts +1 -1
  489. package/src/components/toggle-password/types.ts +1 -1
  490. package/src/components/tooltip/index.ts +1 -1
  491. package/src/components/tooltip/tooltip.css +1 -1
  492. package/src/components/tooltip/tooltip.ts +1 -1
  493. package/src/components/tooltip/types.ts +1 -1
  494. package/src/helpers/data.ts +1 -1
  495. package/src/helpers/dom.ts +1 -1
  496. package/src/helpers/event-handler.ts +1 -1
  497. package/src/helpers/utils.ts +1 -1
  498. package/src/index.ts +1 -1
  499. package/src/types.ts +1 -1
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ /**
3
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
4
+ * Copyright 2025 by Keenthemes Inc
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.KTDatepickerEventManager = exports.KTDatepickerEventName = void 0;
8
+ /**
9
+ * Event names used by the datepicker component
10
+ */
11
+ var KTDatepickerEventName;
12
+ (function (KTDatepickerEventName) {
13
+ KTDatepickerEventName["DATE_CHANGE"] = "date-change";
14
+ KTDatepickerEventName["STATE_CHANGE"] = "stateChange";
15
+ KTDatepickerEventName["OPEN"] = "open";
16
+ KTDatepickerEventName["CLOSE"] = "close";
17
+ KTDatepickerEventName["UPDATE"] = "update";
18
+ KTDatepickerEventName["KEYBOARD_OPEN"] = "keyboard-open";
19
+ KTDatepickerEventName["VIEW_CHANGE"] = "view-change";
20
+ KTDatepickerEventName["TIME_CHANGE"] = "time-change";
21
+ })(KTDatepickerEventName || (exports.KTDatepickerEventName = KTDatepickerEventName = {}));
22
+ /**
23
+ * Centralized event manager for the datepicker component
24
+ * Handles all event dispatching and listening
25
+ */
26
+ var KTDatepickerEventManager = /** @class */ (function () {
27
+ /**
28
+ * Constructor
29
+ *
30
+ * @param element - The root element to attach events to
31
+ */
32
+ function KTDatepickerEventManager(element) {
33
+ this._element = element;
34
+ }
35
+ /**
36
+ * Dispatch a custom event on the datepicker element
37
+ *
38
+ * @param eventName - Name of the event to dispatch
39
+ * @param payload - Optional payload data
40
+ */
41
+ KTDatepickerEventManager.prototype.dispatchEvent = function (eventName, payload) {
42
+ var event = new CustomEvent(eventName, {
43
+ bubbles: true,
44
+ detail: { payload: payload },
45
+ });
46
+ this._element.dispatchEvent(event);
47
+ };
48
+ /**
49
+ * Add an event listener to the datepicker element
50
+ *
51
+ * @param eventName - Name of the event to listen for
52
+ * @param listener - Callback function
53
+ * @param options - Event listener options
54
+ */
55
+ KTDatepickerEventManager.prototype.addEventListener = function (eventName, listener, options) {
56
+ this._element.addEventListener(eventName, listener, options);
57
+ };
58
+ /**
59
+ * Remove an event listener from the datepicker element
60
+ *
61
+ * @param eventName - Name of the event to remove listener for
62
+ * @param listener - Callback function to remove
63
+ * @param options - Event listener options
64
+ */
65
+ KTDatepickerEventManager.prototype.removeEventListener = function (eventName, listener, options) {
66
+ this._element.removeEventListener(eventName, listener, options);
67
+ };
68
+ /**
69
+ * Dispatch the date change event with the current selection
70
+ *
71
+ * @param payload - Object containing date selection information
72
+ */
73
+ KTDatepickerEventManager.prototype.dispatchDateChangeEvent = function (payload) {
74
+ this.dispatchEvent(KTDatepickerEventName.DATE_CHANGE, payload);
75
+ };
76
+ /**
77
+ * Dispatch the open event when the datepicker opens
78
+ */
79
+ KTDatepickerEventManager.prototype.dispatchOpenEvent = function () {
80
+ this.dispatchEvent(KTDatepickerEventName.OPEN);
81
+ };
82
+ /**
83
+ * Dispatch the close event when the datepicker closes
84
+ */
85
+ KTDatepickerEventManager.prototype.dispatchCloseEvent = function () {
86
+ this.dispatchEvent(KTDatepickerEventName.CLOSE);
87
+ };
88
+ /**
89
+ * Dispatch the update event to refresh the datepicker
90
+ */
91
+ KTDatepickerEventManager.prototype.dispatchUpdateEvent = function () {
92
+ this.dispatchEvent(KTDatepickerEventName.UPDATE);
93
+ };
94
+ /**
95
+ * Dispatch the keyboard open event when datepicker is opened via keyboard
96
+ */
97
+ KTDatepickerEventManager.prototype.dispatchKeyboardOpenEvent = function () {
98
+ this.dispatchEvent(KTDatepickerEventName.KEYBOARD_OPEN);
99
+ };
100
+ /**
101
+ * Dispatch the view change event when the datepicker view changes
102
+ *
103
+ * @param viewMode - The new view mode (days, months, years)
104
+ */
105
+ KTDatepickerEventManager.prototype.dispatchViewChangeEvent = function (viewMode) {
106
+ this.dispatchEvent(KTDatepickerEventName.VIEW_CHANGE, { viewMode: viewMode });
107
+ };
108
+ /**
109
+ * Dispatch the time change event when the time selection changes
110
+ *
111
+ * @param timeData - Object containing time selection information
112
+ */
113
+ KTDatepickerEventManager.prototype.dispatchTimeChangeEvent = function (timeData) {
114
+ this.dispatchEvent(KTDatepickerEventName.TIME_CHANGE, timeData);
115
+ };
116
+ /**
117
+ * Dispatch a change event on the given input element
118
+ *
119
+ * @param inputElement - The input element to dispatch change event on
120
+ */
121
+ KTDatepickerEventManager.prototype.dispatchInputChangeEvent = function (inputElement) {
122
+ if (inputElement) {
123
+ inputElement.dispatchEvent(new Event('change', { bubbles: true }));
124
+ }
125
+ };
126
+ return KTDatepickerEventManager;
127
+ }());
128
+ exports.KTDatepickerEventManager = KTDatepickerEventManager;
129
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/components/datepicker/events.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;GAEG;AACH,IAAY,qBASX;AATD,WAAY,qBAAqB;IAChC,oDAA2B,CAAA;IAC3B,qDAA4B,CAAA;IAC5B,sCAAa,CAAA;IACb,wCAAe,CAAA;IACf,0CAAiB,CAAA;IACjB,wDAA+B,CAAA;IAC/B,oDAA2B,CAAA;IAC3B,oDAA2B,CAAA;AAC5B,CAAC,EATW,qBAAqB,qCAArB,qBAAqB,QAShC;AAED;;;GAGG;AACH;IAGC;;;;OAIG;IACH,kCAAY,OAAoB;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACI,gDAAa,GAApB,UACC,SAAyC,EACzC,OAAa;QAEb,IAAM,KAAK,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE;YACxC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,OAAO,SAAA,EAAE;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACI,mDAAgB,GAAvB,UACC,SAAyC,EACzC,QAA4C,EAC5C,OAA2C;QAE3C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACI,sDAAmB,GAA1B,UACC,SAAyC,EACzC,QAA4C,EAC5C,OAAwC;QAExC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,0DAAuB,GAA9B,UAA+B,OAAY;QAC1C,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACI,oDAAiB,GAAxB;QACC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,qDAAkB,GAAzB;QACC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,sDAAmB,GAA1B;QACC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACI,4DAAyB,GAAhC;QACC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACI,0DAAuB,GAA9B,UAA+B,QAAgB;QAC9C,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,WAAW,EAAE,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,0DAAuB,GAA9B,UAA+B,QAAa;QAC3C,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACI,2DAAwB,GAA/B,UAAgC,YAA8B;QAC7D,IAAI,YAAY,EAAE,CAAC;YAClB,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IACF,+BAAC;AAAD,CAAC,AA7HD,IA6HC;AA7HY,4DAAwB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
4
+ * Copyright 2025 by Keenthemes Inc
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DatepickerTypes = exports.KTDatepicker = void 0;
8
+ var datepicker_1 = require("./datepicker");
9
+ Object.defineProperty(exports, "KTDatepicker", { enumerable: true, get: function () { return datepicker_1.KTDatepicker; } });
10
+ var DatepickerTypes = require("./types");
11
+ exports.DatepickerTypes = DatepickerTypes;
12
+ exports.default = datepicker_1.KTDatepicker;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/datepicker/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2CAA4C;AAGnC,6FAHA,yBAAY,OAGA;AAFrB,yCAA2C;AAEpB,0CAAe;AACtC,kBAAe,yBAAY,CAAC"}
@@ -0,0 +1,536 @@
1
+ "use strict";
2
+ /**
3
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
4
+ * Copyright 2025 by Keenthemes Inc
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.KTDatepickerKeyboard = void 0;
8
+ var events_1 = require("./events");
9
+ /**
10
+ * Keyboard navigation handler for KTDatepicker
11
+ */
12
+ var KTDatepickerKeyboard = /** @class */ (function () {
13
+ /**
14
+ * Constructor for the KTDatepickerKeyboard class
15
+ *
16
+ * @param element - The datepicker element
17
+ * @param stateManager - State manager for the datepicker
18
+ */
19
+ function KTDatepickerKeyboard(element, stateManager) {
20
+ var _this = this;
21
+ this._focusedDay = null;
22
+ this._isListening = false;
23
+ /**
24
+ * Handle keydown events
25
+ */
26
+ this._handleKeyDown = function (e) {
27
+ var state = _this._stateManager.getState();
28
+ var viewMode = state.viewMode;
29
+ // ESC key closes the dropdown
30
+ if (e.key === 'Escape') {
31
+ e.preventDefault();
32
+ _this._stateManager.setOpen(false);
33
+ return;
34
+ }
35
+ // Handle different view modes differently
36
+ switch (viewMode) {
37
+ case 'days':
38
+ _this._handleDaysViewKeyNavigation(e);
39
+ break;
40
+ case 'months':
41
+ _this._handleMonthsViewKeyNavigation(e);
42
+ break;
43
+ case 'years':
44
+ _this._handleYearsViewKeyNavigation(e);
45
+ break;
46
+ }
47
+ };
48
+ this._element = element;
49
+ this._stateManager = stateManager;
50
+ this._eventManager = stateManager.getEventManager();
51
+ // Set up listeners
52
+ this._setupEventListeners();
53
+ }
54
+ /**
55
+ * Set up event listeners for keyboard navigation
56
+ */
57
+ KTDatepickerKeyboard.prototype._setupEventListeners = function () {
58
+ var _this = this;
59
+ // Listen for open/close events to activate/deactivate keyboard navigation
60
+ this._eventManager.addEventListener(events_1.KTDatepickerEventName.OPEN, function () {
61
+ return _this._activateKeyboardNavigation();
62
+ });
63
+ this._eventManager.addEventListener(events_1.KTDatepickerEventName.CLOSE, function () {
64
+ return _this._deactivateKeyboardNavigation();
65
+ });
66
+ // Listen for custom keyboard-open event
67
+ this._eventManager.addEventListener(events_1.KTDatepickerEventName.KEYBOARD_OPEN, function () {
68
+ // Ensure we activate keyboard navigation
69
+ _this._activateKeyboardNavigation();
70
+ // Set initial focus day with a slight delay to allow the dropdown to render
71
+ setTimeout(function () {
72
+ // Initialize focused day if needed
73
+ if (_this._focusedDay === null) {
74
+ var state = _this._stateManager.getState();
75
+ if (state.selectedDate) {
76
+ _this._focusedDay = state.selectedDate.getDate();
77
+ }
78
+ else {
79
+ _this._focusedDay = new Date().getDate();
80
+ }
81
+ }
82
+ // Focus the day
83
+ _this._focusDay();
84
+ }, 150);
85
+ });
86
+ // Handle focus events
87
+ this._element.addEventListener('focusin', function (e) {
88
+ if (_this._stateManager.getState().isOpen && !_this._isListening) {
89
+ _this._activateKeyboardNavigation();
90
+ }
91
+ });
92
+ // Add keydown event to the element itself to open dropdown with Enter key
93
+ this._element.addEventListener('keydown', function (e) {
94
+ var state = _this._stateManager.getState();
95
+ // If not open yet, handle keys that should open the dropdown
96
+ if (!state.isOpen) {
97
+ if (e.key === 'Enter' ||
98
+ e.key === ' ' ||
99
+ e.key === 'ArrowDown' ||
100
+ e.key === 'ArrowUp') {
101
+ e.preventDefault();
102
+ e.stopPropagation(); // Prevent other handlers from capturing this event
103
+ _this._stateManager.setOpen(true);
104
+ // Set initial focus day if none
105
+ if (_this._focusedDay === null) {
106
+ if (state.selectedDate) {
107
+ _this._focusedDay = state.selectedDate.getDate();
108
+ }
109
+ else {
110
+ _this._focusedDay = new Date().getDate();
111
+ }
112
+ // Focus the day after dropdown opens
113
+ setTimeout(function () { return _this._focusDay(); }, 150);
114
+ }
115
+ }
116
+ }
117
+ });
118
+ // Add an additional event listener to the input field specifically
119
+ var inputs = this._element.querySelectorAll('input');
120
+ inputs.forEach(function (input) {
121
+ input.addEventListener('keydown', function (e) {
122
+ var state = _this._stateManager.getState();
123
+ if (!state.isOpen) {
124
+ if (e.key === 'Enter' ||
125
+ e.key === ' ' ||
126
+ e.key === 'ArrowDown' ||
127
+ e.key === 'ArrowUp') {
128
+ e.preventDefault();
129
+ e.stopPropagation();
130
+ _this._stateManager.setOpen(true);
131
+ // Set initial focus day
132
+ if (_this._focusedDay === null) {
133
+ if (state.selectedDate) {
134
+ _this._focusedDay = state.selectedDate.getDate();
135
+ }
136
+ else {
137
+ _this._focusedDay = new Date().getDate();
138
+ }
139
+ // Focus the day after dropdown opens
140
+ setTimeout(function () { return _this._focusDay(); }, 150);
141
+ }
142
+ }
143
+ }
144
+ });
145
+ });
146
+ // Add an even more specific listener for Enter key on the display element
147
+ var displayElement = this._element.querySelector('[data-kt-datepicker-display]');
148
+ if (displayElement) {
149
+ displayElement.addEventListener('keydown', function (e) {
150
+ if (e.key === 'Enter') {
151
+ e.preventDefault();
152
+ e.stopPropagation();
153
+ var state_1 = _this._stateManager.getState();
154
+ if (!state_1.isOpen) {
155
+ _this._stateManager.setOpen(true);
156
+ // Focus the current day with a slightly longer delay
157
+ setTimeout(function () {
158
+ if (_this._focusedDay === null) {
159
+ if (state_1.selectedDate) {
160
+ _this._focusedDay = state_1.selectedDate.getDate();
161
+ }
162
+ else {
163
+ _this._focusedDay = new Date().getDate();
164
+ }
165
+ }
166
+ _this._focusDay();
167
+ }, 200);
168
+ }
169
+ }
170
+ }, true); // Use capture phase to ensure this runs first
171
+ }
172
+ };
173
+ /**
174
+ * Activate keyboard navigation
175
+ */
176
+ KTDatepickerKeyboard.prototype._activateKeyboardNavigation = function () {
177
+ var _this = this;
178
+ if (this._isListening)
179
+ return;
180
+ // Add global keydown listener
181
+ document.addEventListener('keydown', this._handleKeyDown);
182
+ this._isListening = true;
183
+ // Set initial focus day if none
184
+ if (this._focusedDay === null) {
185
+ var state = this._stateManager.getState();
186
+ if (state.selectedDate) {
187
+ this._focusedDay = state.selectedDate.getDate();
188
+ }
189
+ else {
190
+ this._focusedDay = new Date().getDate();
191
+ }
192
+ // Focus the day
193
+ setTimeout(function () { return _this._focusDay(); }, 100);
194
+ }
195
+ };
196
+ /**
197
+ * Deactivate keyboard navigation
198
+ */
199
+ KTDatepickerKeyboard.prototype._deactivateKeyboardNavigation = function () {
200
+ if (!this._isListening)
201
+ return;
202
+ // Remove global keydown listener
203
+ document.removeEventListener('keydown', this._handleKeyDown);
204
+ this._isListening = false;
205
+ };
206
+ /**
207
+ * Handle key navigation in days view
208
+ */
209
+ KTDatepickerKeyboard.prototype._handleDaysViewKeyNavigation = function (e) {
210
+ var state = this._stateManager.getState();
211
+ var config = this._stateManager.getConfig();
212
+ var currentDate = new Date(state.currentDate);
213
+ var daysInMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0).getDate();
214
+ // Get the day of week for the first day of the month to calculate grid positions
215
+ var firstDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1).getDay();
216
+ // Adjust for first day of week setting
217
+ var firstDayOffset = (firstDayOfMonth - config.locales[config.locale].firstDayOfWeek + 7) % 7;
218
+ // Ensure we have a focused day
219
+ if (this._focusedDay === null) {
220
+ if (state.selectedDate) {
221
+ this._focusedDay = state.selectedDate.getDate();
222
+ }
223
+ else {
224
+ this._focusedDay = new Date().getDate();
225
+ }
226
+ }
227
+ switch (e.key) {
228
+ case 'ArrowLeft':
229
+ e.preventDefault();
230
+ e.stopPropagation(); // Stop event propagation
231
+ if (this._focusedDay === 1) {
232
+ // Move to previous month
233
+ var newDate = new Date(currentDate);
234
+ newDate.setMonth(newDate.getMonth() - 1);
235
+ this._stateManager.setCurrentDate(newDate);
236
+ // Set focus to last day of previous month
237
+ var lastDayPrevMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 0).getDate();
238
+ this._focusedDay = lastDayPrevMonth;
239
+ }
240
+ else {
241
+ this._focusedDay = Math.max(1, (this._focusedDay || 1) - 1);
242
+ }
243
+ this._focusDay();
244
+ break;
245
+ case 'ArrowRight':
246
+ e.preventDefault();
247
+ e.stopPropagation(); // Stop event propagation
248
+ if (this._focusedDay === daysInMonth) {
249
+ // Move to next month
250
+ var newDate = new Date(currentDate);
251
+ newDate.setMonth(newDate.getMonth() + 1);
252
+ this._stateManager.setCurrentDate(newDate);
253
+ // Set focus to first day of next month
254
+ this._focusedDay = 1;
255
+ }
256
+ else {
257
+ this._focusedDay = Math.min(daysInMonth, (this._focusedDay || 1) + 1);
258
+ }
259
+ this._focusDay();
260
+ break;
261
+ case 'ArrowUp':
262
+ e.preventDefault();
263
+ e.stopPropagation(); // Stop event propagation
264
+ if (this._focusedDay && this._focusedDay <= 7) {
265
+ // We're in the first row of the current month
266
+ // Calculate the row position in the grid
267
+ var dayPosition = (this._focusedDay - 1 + firstDayOffset) % 7;
268
+ // Move to previous month
269
+ var newDate = new Date(currentDate);
270
+ newDate.setMonth(newDate.getMonth() - 1);
271
+ this._stateManager.setCurrentDate(newDate);
272
+ // Get days in previous month
273
+ var lastDayPrevMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 0).getDate();
274
+ // Calculate the corresponding day in the previous month's last row
275
+ // Start with the last day of previous month
276
+ this._focusedDay = lastDayPrevMonth - (6 - dayPosition);
277
+ }
278
+ else {
279
+ // Move up one week (7 days)
280
+ this._focusedDay = (this._focusedDay || 1) - 7;
281
+ }
282
+ this._focusDay();
283
+ break;
284
+ case 'ArrowDown':
285
+ e.preventDefault();
286
+ e.stopPropagation(); // Stop event propagation
287
+ var lastRowStart = daysInMonth - ((daysInMonth + firstDayOffset) % 7);
288
+ if (this._focusedDay && this._focusedDay > lastRowStart) {
289
+ // We're in the last row of the current month
290
+ // Calculate position in last row (0-6)
291
+ var dayPosition = (this._focusedDay - 1 + firstDayOffset) % 7;
292
+ // Move to next month
293
+ var newDate = new Date(currentDate);
294
+ newDate.setMonth(newDate.getMonth() + 1);
295
+ this._stateManager.setCurrentDate(newDate);
296
+ // Calculate the corresponding day in next month's first row
297
+ this._focusedDay =
298
+ dayPosition + 1 - ((dayPosition + firstDayOffset) % 7);
299
+ // Ensure we're in bounds for next month
300
+ var nextMonthDays_1 = new Date(newDate.getFullYear(), newDate.getMonth() + 1, 0).getDate();
301
+ this._focusedDay = Math.min(this._focusedDay, nextMonthDays_1);
302
+ }
303
+ else {
304
+ // Move down one week (7 days)
305
+ this._focusedDay = Math.min(daysInMonth, (this._focusedDay || 1) + 7);
306
+ }
307
+ this._focusDay();
308
+ break;
309
+ case 'Home':
310
+ e.preventDefault();
311
+ // Move to first day of the month
312
+ this._focusedDay = 1;
313
+ this._focusDay();
314
+ break;
315
+ case 'End':
316
+ e.preventDefault();
317
+ // Move to last day of the month
318
+ this._focusedDay = daysInMonth;
319
+ this._focusDay();
320
+ break;
321
+ case 'PageUp':
322
+ e.preventDefault();
323
+ // Move to previous month
324
+ var prevMonthDate = new Date(currentDate);
325
+ prevMonthDate.setMonth(prevMonthDate.getMonth() - 1);
326
+ this._stateManager.setCurrentDate(prevMonthDate);
327
+ // Adjust focused day if needed
328
+ var prevMonthDays = new Date(prevMonthDate.getFullYear(), prevMonthDate.getMonth() + 1, 0).getDate();
329
+ if (this._focusedDay > prevMonthDays) {
330
+ this._focusedDay = prevMonthDays;
331
+ }
332
+ this._focusDay();
333
+ break;
334
+ case 'PageDown':
335
+ e.preventDefault();
336
+ // Move to next month
337
+ var nextMonthDate = new Date(currentDate);
338
+ nextMonthDate.setMonth(nextMonthDate.getMonth() + 1);
339
+ this._stateManager.setCurrentDate(nextMonthDate);
340
+ // Adjust focused day if needed
341
+ var nextMonthDays = new Date(nextMonthDate.getFullYear(), nextMonthDate.getMonth() + 1, 0).getDate();
342
+ if (this._focusedDay > nextMonthDays) {
343
+ this._focusedDay = nextMonthDays;
344
+ }
345
+ this._focusDay();
346
+ break;
347
+ case 'Enter':
348
+ case ' ':
349
+ e.preventDefault();
350
+ if (this._focusedDay) {
351
+ // Select the focused day
352
+ var selectedDate = new Date(currentDate);
353
+ selectedDate.setDate(this._focusedDay);
354
+ if (config.enableTime && state.selectedTime) {
355
+ selectedDate.setHours(state.selectedTime.hours, state.selectedTime.minutes, state.selectedTime.seconds);
356
+ }
357
+ else {
358
+ selectedDate.setHours(0, 0, 0, 0);
359
+ }
360
+ this._stateManager.setSelectedDate(selectedDate);
361
+ // Close the dropdown if not range selection or if range is complete
362
+ if (!config.range ||
363
+ (state.selectedDateRange &&
364
+ state.selectedDateRange.startDate &&
365
+ state.selectedDateRange.endDate)) {
366
+ this._stateManager.setOpen(false);
367
+ }
368
+ }
369
+ break;
370
+ }
371
+ };
372
+ /**
373
+ * Handle key navigation in months view
374
+ */
375
+ KTDatepickerKeyboard.prototype._handleMonthsViewKeyNavigation = function (e) {
376
+ var state = this._stateManager.getState();
377
+ var currentDate = new Date(state.currentDate);
378
+ var currentMonth = currentDate.getMonth();
379
+ switch (e.key) {
380
+ case 'ArrowLeft':
381
+ e.preventDefault();
382
+ currentDate.setMonth((currentMonth - 1 + 12) % 12);
383
+ this._stateManager.setCurrentDate(currentDate);
384
+ break;
385
+ case 'ArrowRight':
386
+ e.preventDefault();
387
+ currentDate.setMonth((currentMonth + 1) % 12);
388
+ this._stateManager.setCurrentDate(currentDate);
389
+ break;
390
+ case 'ArrowUp':
391
+ e.preventDefault();
392
+ currentDate.setMonth((currentMonth - 3 + 12) % 12);
393
+ this._stateManager.setCurrentDate(currentDate);
394
+ break;
395
+ case 'ArrowDown':
396
+ e.preventDefault();
397
+ currentDate.setMonth((currentMonth + 3) % 12);
398
+ this._stateManager.setCurrentDate(currentDate);
399
+ break;
400
+ case 'Home':
401
+ e.preventDefault();
402
+ currentDate.setMonth(0);
403
+ this._stateManager.setCurrentDate(currentDate);
404
+ break;
405
+ case 'End':
406
+ e.preventDefault();
407
+ currentDate.setMonth(11);
408
+ this._stateManager.setCurrentDate(currentDate);
409
+ break;
410
+ case 'Enter':
411
+ case ' ':
412
+ e.preventDefault();
413
+ this._stateManager.setViewMode('days');
414
+ break;
415
+ }
416
+ };
417
+ /**
418
+ * Handle key navigation in years view
419
+ */
420
+ KTDatepickerKeyboard.prototype._handleYearsViewKeyNavigation = function (e) {
421
+ var state = this._stateManager.getState();
422
+ var currentDate = new Date(state.currentDate);
423
+ var currentYear = currentDate.getFullYear();
424
+ switch (e.key) {
425
+ case 'ArrowLeft':
426
+ e.preventDefault();
427
+ currentDate.setFullYear(currentYear - 1);
428
+ this._stateManager.setCurrentDate(currentDate);
429
+ break;
430
+ case 'ArrowRight':
431
+ e.preventDefault();
432
+ currentDate.setFullYear(currentYear + 1);
433
+ this._stateManager.setCurrentDate(currentDate);
434
+ break;
435
+ case 'ArrowUp':
436
+ e.preventDefault();
437
+ currentDate.setFullYear(currentYear - 4);
438
+ this._stateManager.setCurrentDate(currentDate);
439
+ break;
440
+ case 'ArrowDown':
441
+ e.preventDefault();
442
+ currentDate.setFullYear(currentYear + 4);
443
+ this._stateManager.setCurrentDate(currentDate);
444
+ break;
445
+ case 'Home':
446
+ e.preventDefault();
447
+ var yearsPerView = this._stateManager.getConfig().visibleYears;
448
+ var startYear = currentYear - (currentYear % yearsPerView);
449
+ currentDate.setFullYear(startYear);
450
+ this._stateManager.setCurrentDate(currentDate);
451
+ break;
452
+ case 'End':
453
+ e.preventDefault();
454
+ var yearsPerPage = this._stateManager.getConfig().visibleYears;
455
+ var startYearEnd = currentYear - (currentYear % yearsPerPage);
456
+ var endYear = startYearEnd + yearsPerPage - 1;
457
+ currentDate.setFullYear(endYear);
458
+ this._stateManager.setCurrentDate(currentDate);
459
+ break;
460
+ case 'PageUp':
461
+ e.preventDefault();
462
+ var yearsPerPageUp = this._stateManager.getConfig().visibleYears;
463
+ currentDate.setFullYear(currentYear - yearsPerPageUp);
464
+ this._stateManager.setCurrentDate(currentDate);
465
+ break;
466
+ case 'PageDown':
467
+ e.preventDefault();
468
+ var yearsPerPageDown = this._stateManager.getConfig().visibleYears;
469
+ currentDate.setFullYear(currentYear + yearsPerPageDown);
470
+ this._stateManager.setCurrentDate(currentDate);
471
+ break;
472
+ case 'Enter':
473
+ case ' ':
474
+ e.preventDefault();
475
+ this._stateManager.setViewMode('months');
476
+ break;
477
+ }
478
+ };
479
+ /**
480
+ * Focus the currently focused day in the calendar
481
+ */
482
+ KTDatepickerKeyboard.prototype._focusDay = function () {
483
+ if (!this._focusedDay)
484
+ return;
485
+ var state = this._stateManager.getState();
486
+ // Try different selectors for the dropdown
487
+ var selectors = [
488
+ '.absolute.bg-white.shadow-lg.rounded-lg',
489
+ '.kt-datepicker-dropdown',
490
+ '.calendar-container',
491
+ ];
492
+ var dropdown = null;
493
+ for (var _i = 0, selectors_1 = selectors; _i < selectors_1.length; _i++) {
494
+ var selector = selectors_1[_i];
495
+ dropdown = this._element.querySelector(selector);
496
+ if (dropdown)
497
+ break;
498
+ }
499
+ if (!dropdown) {
500
+ // If no dropdown found, try getting any element with calendar buttons
501
+ dropdown =
502
+ this._element.querySelector('.multiple-months') ||
503
+ this._element.querySelector('[data-kt-datepicker-container]') ||
504
+ this._element;
505
+ }
506
+ var currentDay = this._focusedDay;
507
+ var currentMonth = state.currentDate.getMonth();
508
+ var currentYear = state.currentDate.getFullYear();
509
+ // First try to find the day in the current month
510
+ var dayButton = dropdown.querySelector("button[data-date=\"".concat(currentDay, "\"]:not(.text-gray-400)"));
511
+ // If not found, try to find any button with the day number
512
+ if (!dayButton) {
513
+ dayButton = dropdown.querySelector("button[data-date=\"".concat(currentDay, "\"]"));
514
+ }
515
+ // If still not found, try to find by date-id
516
+ if (!dayButton) {
517
+ var dateId = "".concat(currentYear, "-").concat(String(currentMonth + 1).padStart(2, '0'), "-").concat(String(currentDay).padStart(2, '0'));
518
+ dayButton = dropdown.querySelector("button[data-date-id=\"".concat(dateId, "\"]"));
519
+ }
520
+ // As a last resort, find any day button
521
+ if (!dayButton) {
522
+ dayButton = dropdown.querySelector('button[data-date]');
523
+ }
524
+ // Focus the day button if found
525
+ if (dayButton) {
526
+ dayButton.focus();
527
+ // Scroll into view if needed
528
+ if (dayButton.scrollIntoView) {
529
+ dayButton.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
530
+ }
531
+ }
532
+ };
533
+ return KTDatepickerKeyboard;
534
+ }());
535
+ exports.KTDatepickerKeyboard = KTDatepickerKeyboard;
536
+ //# sourceMappingURL=keyboard.js.map