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