@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.
- package/dist/ktui.js +16038 -17101
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/lib/cjs/components/accordion/accordion.js +20 -11
- package/lib/cjs/components/accordion/accordion.js.map +1 -1
- package/lib/cjs/components/accordion/index.js +4 -0
- package/lib/cjs/components/accordion/index.js.map +1 -1
- package/lib/cjs/components/accordion/types.js +4 -0
- package/lib/cjs/components/accordion/types.js.map +1 -1
- package/lib/cjs/components/collapse/collapse.js +13 -7
- package/lib/cjs/components/collapse/collapse.js.map +1 -1
- package/lib/cjs/components/collapse/index.js +4 -0
- package/lib/cjs/components/collapse/index.js.map +1 -1
- package/lib/cjs/components/collapse/types.js +4 -0
- package/lib/cjs/components/collapse/types.js.map +1 -1
- package/lib/cjs/components/component.js +12 -41
- package/lib/cjs/components/component.js.map +1 -1
- package/lib/cjs/components/constants.js +4 -0
- package/lib/cjs/components/constants.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-checkbox.js +217 -0
- package/lib/cjs/components/datatable/datatable-checkbox.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-sort.js +91 -0
- package/lib/cjs/components/datatable/datatable-sort.js.map +1 -0
- package/lib/cjs/components/datatable/datatable.js +294 -349
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/datatable/index.js +4 -0
- package/lib/cjs/components/datatable/index.js.map +1 -1
- package/lib/cjs/components/datatable/types.js +4 -0
- package/lib/cjs/components/datatable/types.js.map +1 -1
- package/lib/cjs/components/datepicker/calendar.js +1061 -0
- package/lib/cjs/components/datepicker/calendar.js.map +1 -0
- package/lib/cjs/components/datepicker/config.js +332 -0
- package/lib/cjs/components/datepicker/config.js.map +1 -0
- package/lib/cjs/components/datepicker/datepicker.js +949 -0
- package/lib/cjs/components/datepicker/datepicker.js.map +1 -0
- package/lib/cjs/components/datepicker/dropdown.js +635 -0
- package/lib/cjs/components/datepicker/dropdown.js.map +1 -0
- package/lib/cjs/components/datepicker/events.js +129 -0
- package/lib/cjs/components/datepicker/events.js.map +1 -0
- package/lib/cjs/components/datepicker/index.js +13 -0
- package/lib/cjs/components/datepicker/index.js.map +1 -0
- package/lib/cjs/components/datepicker/keyboard.js +536 -0
- package/lib/cjs/components/datepicker/keyboard.js.map +1 -0
- package/lib/cjs/components/datepicker/locales.js +78 -0
- package/lib/cjs/components/datepicker/locales.js.map +1 -0
- package/lib/cjs/components/datepicker/templates.js +403 -0
- package/lib/cjs/components/datepicker/templates.js.map +1 -0
- package/lib/cjs/components/datepicker/types.js +23 -0
- package/lib/cjs/components/datepicker/types.js.map +1 -0
- package/lib/cjs/components/datepicker/utils.js +524 -0
- package/lib/cjs/components/datepicker/utils.js.map +1 -0
- package/lib/cjs/components/dismiss/dismiss.js +10 -6
- package/lib/cjs/components/dismiss/dismiss.js.map +1 -1
- package/lib/cjs/components/dismiss/index.js +4 -0
- package/lib/cjs/components/dismiss/index.js.map +1 -1
- package/lib/cjs/components/dismiss/types.js +4 -0
- package/lib/cjs/components/dismiss/types.js.map +1 -1
- package/lib/cjs/components/drawer/drawer.js +54 -28
- package/lib/cjs/components/drawer/drawer.js.map +1 -1
- package/lib/cjs/components/drawer/index.js +4 -0
- package/lib/cjs/components/drawer/index.js.map +1 -1
- package/lib/cjs/components/drawer/types.js +4 -0
- package/lib/cjs/components/drawer/types.js.map +1 -1
- package/lib/cjs/components/dropdown/dropdown.js +145 -115
- package/lib/cjs/components/dropdown/dropdown.js.map +1 -1
- package/lib/cjs/components/dropdown/index.js +4 -0
- package/lib/cjs/components/dropdown/index.js.map +1 -1
- package/lib/cjs/components/dropdown/types.js +4 -0
- package/lib/cjs/components/dropdown/types.js.map +1 -1
- package/lib/cjs/components/image-input/image-input.js +21 -16
- package/lib/cjs/components/image-input/image-input.js.map +1 -1
- package/lib/cjs/components/image-input/index.js +4 -0
- package/lib/cjs/components/image-input/index.js.map +1 -1
- package/lib/cjs/components/image-input/types.js +4 -0
- package/lib/cjs/components/image-input/types.js.map +1 -1
- package/lib/cjs/components/modal/index.js +4 -0
- package/lib/cjs/components/modal/index.js.map +1 -1
- package/lib/cjs/components/modal/modal.js +26 -19
- package/lib/cjs/components/modal/modal.js.map +1 -1
- package/lib/cjs/components/modal/types.js +4 -0
- package/lib/cjs/components/modal/types.js.map +1 -1
- package/lib/cjs/components/reparent/index.js +4 -0
- package/lib/cjs/components/reparent/index.js.map +1 -1
- package/lib/cjs/components/reparent/reparent.js +13 -5
- package/lib/cjs/components/reparent/reparent.js.map +1 -1
- package/lib/cjs/components/reparent/types.js +4 -0
- package/lib/cjs/components/reparent/types.js.map +1 -1
- package/lib/cjs/components/scrollable/index.js +4 -0
- package/lib/cjs/components/scrollable/index.js.map +1 -1
- package/lib/cjs/components/scrollable/scrollable.js +17 -10
- package/lib/cjs/components/scrollable/scrollable.js.map +1 -1
- package/lib/cjs/components/scrollable/types.js +4 -0
- package/lib/cjs/components/scrollable/types.js.map +1 -1
- package/lib/cjs/components/scrollspy/index.js +4 -0
- package/lib/cjs/components/scrollspy/index.js.map +1 -1
- package/lib/cjs/components/scrollspy/scrollspy.js +28 -17
- package/lib/cjs/components/scrollspy/scrollspy.js.map +1 -1
- package/lib/cjs/components/scrollspy/types.js +4 -0
- package/lib/cjs/components/scrollspy/types.js.map +1 -1
- package/lib/cjs/components/scrollto/index.js +4 -0
- package/lib/cjs/components/scrollto/index.js.map +1 -1
- package/lib/cjs/components/scrollto/scrollto.js +14 -8
- package/lib/cjs/components/scrollto/scrollto.js.map +1 -1
- package/lib/cjs/components/scrollto/types.js +4 -0
- package/lib/cjs/components/scrollto/types.js.map +1 -1
- package/lib/cjs/components/select/combobox.js +237 -0
- package/lib/cjs/components/select/combobox.js.map +1 -0
- package/lib/cjs/components/select/config.js +226 -0
- package/lib/cjs/components/select/config.js.map +1 -0
- package/lib/cjs/components/select/dropdown.js +429 -0
- package/lib/cjs/components/select/dropdown.js.map +1 -0
- package/lib/cjs/components/select/index.js +24 -0
- package/lib/cjs/components/select/index.js.map +1 -0
- package/lib/cjs/components/select/option.js +53 -0
- package/lib/cjs/components/select/option.js.map +1 -0
- package/lib/cjs/components/select/remote.js +414 -0
- package/lib/cjs/components/select/remote.js.map +1 -0
- package/lib/cjs/components/select/search.js +339 -0
- package/lib/cjs/components/select/search.js.map +1 -0
- package/lib/cjs/components/select/select.js +1538 -0
- package/lib/cjs/components/select/select.js.map +1 -0
- package/lib/cjs/components/select/tags.js +110 -0
- package/lib/cjs/components/select/tags.js.map +1 -0
- package/lib/cjs/components/select/templates.js +337 -0
- package/lib/cjs/components/select/templates.js.map +1 -0
- package/lib/cjs/components/select/types.js +19 -0
- package/lib/cjs/components/select/types.js.map +1 -0
- package/lib/cjs/components/select/utils.js +606 -0
- package/lib/cjs/components/select/utils.js.map +1 -0
- package/lib/cjs/components/stepper/index.js +4 -0
- package/lib/cjs/components/stepper/index.js.map +1 -1
- package/lib/cjs/components/stepper/stepper.js +20 -13
- package/lib/cjs/components/stepper/stepper.js.map +1 -1
- package/lib/cjs/components/stepper/types.js +4 -0
- package/lib/cjs/components/stepper/types.js.map +1 -1
- package/lib/cjs/components/sticky/index.js +4 -0
- package/lib/cjs/components/sticky/index.js.map +1 -1
- package/lib/cjs/components/sticky/sticky.js +60 -38
- package/lib/cjs/components/sticky/sticky.js.map +1 -1
- package/lib/cjs/components/sticky/types.js +4 -0
- package/lib/cjs/components/sticky/types.js.map +1 -1
- package/lib/cjs/components/tabs/index.js +4 -0
- package/lib/cjs/components/tabs/index.js.map +1 -1
- package/lib/cjs/components/tabs/tabs.js +34 -24
- package/lib/cjs/components/tabs/tabs.js.map +1 -1
- package/lib/cjs/components/tabs/types.js +4 -0
- package/lib/cjs/components/tabs/types.js.map +1 -1
- package/lib/cjs/components/theme-switch/index.js +10 -0
- package/lib/cjs/components/theme-switch/index.js.map +1 -0
- package/lib/cjs/components/theme-switch/theme-switch.js +143 -0
- package/lib/cjs/components/theme-switch/theme-switch.js.map +1 -0
- package/lib/cjs/components/theme-switch/types.js +7 -0
- package/lib/cjs/components/theme-switch/types.js.map +1 -0
- package/lib/cjs/components/toggle/index.js +4 -0
- package/lib/cjs/components/toggle/index.js.map +1 -1
- package/lib/cjs/components/toggle/toggle.js +11 -7
- package/lib/cjs/components/toggle/toggle.js.map +1 -1
- package/lib/cjs/components/toggle/types.js +4 -0
- package/lib/cjs/components/toggle/types.js.map +1 -1
- package/lib/cjs/components/toggle-password/index.js +4 -0
- package/lib/cjs/components/toggle-password/index.js.map +1 -1
- package/lib/cjs/components/toggle-password/toggle-password.js +12 -7
- package/lib/cjs/components/toggle-password/toggle-password.js.map +1 -1
- package/lib/cjs/components/toggle-password/types.js +4 -0
- package/lib/cjs/components/toggle-password/types.js.map +1 -1
- package/lib/cjs/components/tooltip/index.js +4 -0
- package/lib/cjs/components/tooltip/index.js.map +1 -1
- package/lib/cjs/components/tooltip/tooltip.js +51 -21
- package/lib/cjs/components/tooltip/tooltip.js.map +1 -1
- package/lib/cjs/components/tooltip/types.js +4 -0
- package/lib/cjs/components/tooltip/types.js.map +1 -1
- package/lib/cjs/helpers/data.js +5 -1
- package/lib/cjs/helpers/data.js.map +1 -1
- package/lib/cjs/helpers/dom.js +34 -29
- package/lib/cjs/helpers/dom.js.map +1 -1
- package/lib/cjs/helpers/event-handler.js +5 -1
- package/lib/cjs/helpers/event-handler.js.map +1 -1
- package/lib/cjs/helpers/utils.js +65 -11
- package/lib/cjs/helpers/utils.js.map +1 -1
- package/lib/cjs/index.js +18 -22
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types.js +4 -0
- package/lib/cjs/types.js.map +1 -1
- package/lib/esm/components/accordion/accordion.js +20 -11
- package/lib/esm/components/accordion/accordion.js.map +1 -1
- package/lib/esm/components/accordion/index.js +4 -0
- package/lib/esm/components/accordion/index.js.map +1 -1
- package/lib/esm/components/accordion/types.js +4 -0
- package/lib/esm/components/accordion/types.js.map +1 -1
- package/lib/esm/components/collapse/collapse.js +13 -7
- package/lib/esm/components/collapse/collapse.js.map +1 -1
- package/lib/esm/components/collapse/index.js +4 -0
- package/lib/esm/components/collapse/index.js.map +1 -1
- package/lib/esm/components/collapse/types.js +4 -0
- package/lib/esm/components/collapse/types.js.map +1 -1
- package/lib/esm/components/component.js +12 -41
- package/lib/esm/components/component.js.map +1 -1
- package/lib/esm/components/constants.js +4 -0
- package/lib/esm/components/constants.js.map +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.js +214 -0
- package/lib/esm/components/datatable/datatable-checkbox.js.map +1 -0
- package/lib/esm/components/datatable/datatable-sort.js +88 -0
- package/lib/esm/components/datatable/datatable-sort.js.map +1 -0
- package/lib/esm/components/datatable/datatable.js +294 -349
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/datatable/index.js +4 -0
- package/lib/esm/components/datatable/index.js.map +1 -1
- package/lib/esm/components/datatable/types.js +4 -0
- package/lib/esm/components/datatable/types.js.map +1 -1
- package/lib/esm/components/datepicker/calendar.js +1058 -0
- package/lib/esm/components/datepicker/calendar.js.map +1 -0
- package/lib/esm/components/datepicker/config.js +329 -0
- package/lib/esm/components/datepicker/config.js.map +1 -0
- package/lib/esm/components/datepicker/datepicker.js +946 -0
- package/lib/esm/components/datepicker/datepicker.js.map +1 -0
- package/lib/esm/components/datepicker/dropdown.js +632 -0
- package/lib/esm/components/datepicker/dropdown.js.map +1 -0
- package/lib/esm/components/datepicker/events.js +126 -0
- package/lib/esm/components/datepicker/events.js.map +1 -0
- package/lib/esm/components/datepicker/index.js +9 -0
- package/lib/esm/components/datepicker/index.js.map +1 -0
- package/lib/esm/components/datepicker/keyboard.js +533 -0
- package/lib/esm/components/datepicker/keyboard.js.map +1 -0
- package/lib/esm/components/datepicker/locales.js +74 -0
- package/lib/esm/components/datepicker/locales.js.map +1 -0
- package/lib/esm/components/datepicker/templates.js +390 -0
- package/lib/esm/components/datepicker/templates.js.map +1 -0
- package/lib/esm/components/datepicker/types.js +20 -0
- package/lib/esm/components/datepicker/types.js.map +1 -0
- package/lib/esm/components/datepicker/utils.js +508 -0
- package/lib/esm/components/datepicker/utils.js.map +1 -0
- package/lib/esm/components/dismiss/dismiss.js +10 -6
- package/lib/esm/components/dismiss/dismiss.js.map +1 -1
- package/lib/esm/components/dismiss/index.js +4 -0
- package/lib/esm/components/dismiss/index.js.map +1 -1
- package/lib/esm/components/dismiss/types.js +4 -0
- package/lib/esm/components/dismiss/types.js.map +1 -1
- package/lib/esm/components/drawer/drawer.js +54 -28
- package/lib/esm/components/drawer/drawer.js.map +1 -1
- package/lib/esm/components/drawer/index.js +4 -0
- package/lib/esm/components/drawer/index.js.map +1 -1
- package/lib/esm/components/drawer/types.js +4 -0
- package/lib/esm/components/drawer/types.js.map +1 -1
- package/lib/esm/components/dropdown/dropdown.js +146 -116
- package/lib/esm/components/dropdown/dropdown.js.map +1 -1
- package/lib/esm/components/dropdown/index.js +4 -0
- package/lib/esm/components/dropdown/index.js.map +1 -1
- package/lib/esm/components/dropdown/types.js +4 -0
- package/lib/esm/components/dropdown/types.js.map +1 -1
- package/lib/esm/components/image-input/image-input.js +21 -16
- package/lib/esm/components/image-input/image-input.js.map +1 -1
- package/lib/esm/components/image-input/index.js +4 -0
- package/lib/esm/components/image-input/index.js.map +1 -1
- package/lib/esm/components/image-input/types.js +4 -0
- package/lib/esm/components/image-input/types.js.map +1 -1
- package/lib/esm/components/modal/index.js +4 -0
- package/lib/esm/components/modal/index.js.map +1 -1
- package/lib/esm/components/modal/modal.js +26 -19
- package/lib/esm/components/modal/modal.js.map +1 -1
- package/lib/esm/components/modal/types.js +4 -0
- package/lib/esm/components/modal/types.js.map +1 -1
- package/lib/esm/components/reparent/index.js +4 -0
- package/lib/esm/components/reparent/index.js.map +1 -1
- package/lib/esm/components/reparent/reparent.js +13 -5
- package/lib/esm/components/reparent/reparent.js.map +1 -1
- package/lib/esm/components/reparent/types.js +4 -0
- package/lib/esm/components/reparent/types.js.map +1 -1
- package/lib/esm/components/scrollable/index.js +4 -0
- package/lib/esm/components/scrollable/index.js.map +1 -1
- package/lib/esm/components/scrollable/scrollable.js +17 -10
- package/lib/esm/components/scrollable/scrollable.js.map +1 -1
- package/lib/esm/components/scrollable/types.js +4 -0
- package/lib/esm/components/scrollable/types.js.map +1 -1
- package/lib/esm/components/scrollspy/index.js +4 -0
- package/lib/esm/components/scrollspy/index.js.map +1 -1
- package/lib/esm/components/scrollspy/scrollspy.js +28 -17
- package/lib/esm/components/scrollspy/scrollspy.js.map +1 -1
- package/lib/esm/components/scrollspy/types.js +4 -0
- package/lib/esm/components/scrollspy/types.js.map +1 -1
- package/lib/esm/components/scrollto/index.js +4 -0
- package/lib/esm/components/scrollto/index.js.map +1 -1
- package/lib/esm/components/scrollto/scrollto.js +14 -8
- package/lib/esm/components/scrollto/scrollto.js.map +1 -1
- package/lib/esm/components/scrollto/types.js +4 -0
- package/lib/esm/components/scrollto/types.js.map +1 -1
- package/lib/esm/components/select/combobox.js +234 -0
- package/lib/esm/components/select/combobox.js.map +1 -0
- package/lib/esm/components/select/config.js +223 -0
- package/lib/esm/components/select/config.js.map +1 -0
- package/lib/esm/components/select/dropdown.js +426 -0
- package/lib/esm/components/select/dropdown.js.map +1 -0
- package/lib/esm/components/select/index.js +12 -0
- package/lib/esm/components/select/index.js.map +1 -0
- package/lib/esm/components/select/option.js +50 -0
- package/lib/esm/components/select/option.js.map +1 -0
- package/lib/esm/components/select/remote.js +411 -0
- package/lib/esm/components/select/remote.js.map +1 -0
- package/lib/esm/components/select/search.js +336 -0
- package/lib/esm/components/select/search.js.map +1 -0
- package/lib/esm/components/select/select.js +1535 -0
- package/lib/esm/components/select/select.js.map +1 -0
- package/lib/esm/components/select/tags.js +107 -0
- package/lib/esm/components/select/tags.js.map +1 -0
- package/lib/esm/components/select/templates.js +332 -0
- package/lib/esm/components/select/templates.js.map +1 -0
- package/lib/esm/components/select/types.js +16 -0
- package/lib/esm/components/select/types.js.map +1 -0
- package/lib/esm/components/select/utils.js +598 -0
- package/lib/esm/components/select/utils.js.map +1 -0
- package/lib/esm/components/stepper/index.js +4 -0
- package/lib/esm/components/stepper/index.js.map +1 -1
- package/lib/esm/components/stepper/stepper.js +20 -13
- package/lib/esm/components/stepper/stepper.js.map +1 -1
- package/lib/esm/components/stepper/types.js +4 -0
- package/lib/esm/components/stepper/types.js.map +1 -1
- package/lib/esm/components/sticky/index.js +4 -0
- package/lib/esm/components/sticky/index.js.map +1 -1
- package/lib/esm/components/sticky/sticky.js +60 -38
- package/lib/esm/components/sticky/sticky.js.map +1 -1
- package/lib/esm/components/sticky/types.js +4 -0
- package/lib/esm/components/sticky/types.js.map +1 -1
- package/lib/esm/components/tabs/index.js +4 -0
- package/lib/esm/components/tabs/index.js.map +1 -1
- package/lib/esm/components/tabs/tabs.js +34 -24
- package/lib/esm/components/tabs/tabs.js.map +1 -1
- package/lib/esm/components/tabs/types.js +4 -0
- package/lib/esm/components/tabs/types.js.map +1 -1
- package/lib/esm/components/theme-switch/index.js +6 -0
- package/lib/esm/components/theme-switch/index.js.map +1 -0
- package/lib/esm/components/theme-switch/theme-switch.js +140 -0
- package/lib/esm/components/theme-switch/theme-switch.js.map +1 -0
- package/lib/esm/components/theme-switch/types.js +6 -0
- package/lib/esm/components/theme-switch/types.js.map +1 -0
- package/lib/esm/components/toggle/index.js +4 -0
- package/lib/esm/components/toggle/index.js.map +1 -1
- package/lib/esm/components/toggle/toggle.js +11 -7
- package/lib/esm/components/toggle/toggle.js.map +1 -1
- package/lib/esm/components/toggle/types.js +4 -0
- package/lib/esm/components/toggle/types.js.map +1 -1
- package/lib/esm/components/toggle-password/index.js +4 -0
- package/lib/esm/components/toggle-password/index.js.map +1 -1
- package/lib/esm/components/toggle-password/toggle-password.js +12 -7
- package/lib/esm/components/toggle-password/toggle-password.js.map +1 -1
- package/lib/esm/components/toggle-password/types.js +4 -0
- package/lib/esm/components/toggle-password/types.js.map +1 -1
- package/lib/esm/components/tooltip/index.js +4 -0
- package/lib/esm/components/tooltip/index.js.map +1 -1
- package/lib/esm/components/tooltip/tooltip.js +52 -22
- package/lib/esm/components/tooltip/tooltip.js.map +1 -1
- package/lib/esm/components/tooltip/types.js +4 -0
- package/lib/esm/components/tooltip/types.js.map +1 -1
- package/lib/esm/helpers/data.js +5 -1
- package/lib/esm/helpers/data.js.map +1 -1
- package/lib/esm/helpers/dom.js +34 -29
- package/lib/esm/helpers/dom.js.map +1 -1
- package/lib/esm/helpers/event-handler.js +5 -1
- package/lib/esm/helpers/event-handler.js.map +1 -1
- package/lib/esm/helpers/utils.js +65 -11
- package/lib/esm/helpers/utils.js.map +1 -1
- package/lib/esm/index.js +14 -16
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types.js +4 -0
- package/lib/esm/types.js.map +1 -1
- package/package.json +16 -8
- package/src/components/accordion/accordion-menu.css +1 -2
- package/src/components/accordion/accordion.css +1 -1
- package/src/components/accordion/accordion.ts +1 -1
- package/src/components/accordion/index.ts +1 -1
- package/src/components/accordion/types.ts +1 -1
- package/src/components/alert/alert.css +1 -1
- package/src/components/avatar/avatar.css +1 -1
- package/src/components/badge/badge.css +1 -1
- package/src/components/breadcrumb/breadcrumb.css +1 -1
- package/src/components/btn/btn.css +1 -1
- package/src/components/card/card.css +1 -1
- package/src/components/checkbox/checkbox.css +1 -1
- package/src/components/collapse/collapse.css +1 -1
- package/src/components/collapse/collapse.ts +1 -1
- package/src/components/collapse/index.ts +1 -1
- package/src/components/collapse/types.ts +1 -1
- package/src/components/component.ts +1 -1
- package/src/components/constants.ts +1 -1
- package/src/components/datatable/datatable-checkbox.ts +1 -1
- package/src/components/datatable/datatable-sort.ts +1 -1
- package/src/components/datatable/datatable.css +1 -1
- package/src/components/datatable/datatable.ts +38 -2
- package/src/components/datatable/index.ts +1 -1
- package/src/components/datatable/types.ts +1 -1
- package/src/components/datepicker/calendar.ts +1 -1
- package/src/components/datepicker/config.ts +1 -1
- package/src/components/datepicker/datepicker.css +1 -1
- package/src/components/datepicker/datepicker.ts +1 -1
- package/src/components/datepicker/dropdown.ts +1 -1
- package/src/components/datepicker/events.ts +1 -1
- package/src/components/datepicker/index.ts +1 -1
- package/src/components/datepicker/keyboard.ts +1 -1
- package/src/components/datepicker/locales.ts +1 -1
- package/src/components/datepicker/templates.ts +1 -1
- package/src/components/datepicker/types.ts +1 -1
- package/src/components/datepicker/utils.ts +1 -1
- package/src/components/dismiss/dismiss.css +1 -1
- package/src/components/dismiss/dismiss.ts +1 -1
- package/src/components/dismiss/index.ts +1 -1
- package/src/components/dismiss/types.ts +1 -1
- package/src/components/drawer/drawer.css +1 -1
- package/src/components/drawer/drawer.ts +1 -1
- package/src/components/drawer/index.ts +1 -1
- package/src/components/drawer/types.ts +1 -1
- package/src/components/dropdown/dropdown-menu.css +1 -1
- package/src/components/dropdown/dropdown.css +1 -1
- package/src/components/dropdown/dropdown.ts +1 -1
- package/src/components/dropdown/index.ts +1 -1
- package/src/components/dropdown/types.ts +1 -1
- package/src/components/form/form.css +1 -1
- package/src/components/image-input/image-input.css +1 -1
- package/src/components/image-input/image-input.ts +1 -1
- package/src/components/image-input/index.ts +1 -1
- package/src/components/image-input/types.ts +1 -1
- package/src/components/input/input-group.css +8 -5
- package/src/components/input/input.css +1 -1
- package/src/components/kbd/kbd.css +1 -1
- package/src/components/label/label.css +1 -1
- package/src/components/link/link.css +1 -1
- package/src/components/modal/index.ts +1 -1
- package/src/components/modal/modal.css +1 -1
- package/src/components/modal/modal.ts +1 -1
- package/src/components/modal/types.ts +1 -1
- package/src/components/pagination/pagination.css +1 -1
- package/src/components/popover/popover.css +1 -1
- package/src/components/progress/progress.css +2 -2
- package/src/components/radio/radio.css +1 -1
- package/src/components/reparent/index.ts +1 -1
- package/src/components/reparent/reparent.ts +1 -1
- package/src/components/reparent/types.ts +1 -1
- package/src/components/scrollable/index.ts +1 -1
- package/src/components/scrollable/scrollable.css +1 -1
- package/src/components/scrollable/scrollable.ts +1 -1
- package/src/components/scrollable/types.ts +1 -1
- package/src/components/scrollspy/index.ts +1 -1
- package/src/components/scrollspy/scrollspy.css +1 -1
- package/src/components/scrollspy/scrollspy.ts +1 -1
- package/src/components/scrollspy/types.ts +1 -1
- package/src/components/scrollto/index.ts +1 -1
- package/src/components/scrollto/scrollto.ts +1 -1
- package/src/components/scrollto/types.ts +1 -1
- package/src/components/select/combobox.ts +1 -1
- package/src/components/select/config.ts +1 -1
- package/src/components/select/dropdown.ts +1 -1
- package/src/components/select/index.ts +1 -1
- package/src/components/select/option.ts +1 -1
- package/src/components/select/remote.ts +1 -1
- package/src/components/select/search.ts +1 -1
- package/src/components/select/select.css +1 -1
- package/src/components/select/select.ts +1 -1
- package/src/components/select/tags.ts +1 -1
- package/src/components/select/templates.ts +1 -1
- package/src/components/select/types.ts +1 -1
- package/src/components/select/utils.ts +1 -1
- package/src/components/select/variants.css +1 -1
- package/src/components/separator/separator.css +1 -1
- package/src/components/skeleton/skeleton.css +1 -1
- package/src/components/stepper/index.ts +1 -1
- package/src/components/stepper/stepper.css +1 -1
- package/src/components/stepper/stepper.ts +1 -1
- package/src/components/stepper/types.ts +1 -1
- package/src/components/sticky/index.ts +1 -1
- package/src/components/sticky/sticky.css +1 -1
- package/src/components/sticky/sticky.ts +1 -1
- package/src/components/sticky/types.ts +1 -1
- package/src/components/switch/switch.css +1 -1
- package/src/components/table/table.css +2 -2
- package/src/components/tabs/index.ts +1 -1
- package/src/components/tabs/tabs.css +1 -1
- package/src/components/tabs/tabs.ts +1 -1
- package/src/components/tabs/types.ts +1 -1
- package/src/components/textarea/textarea.css +1 -1
- package/src/components/theme-switch/index.ts +1 -1
- package/src/components/theme-switch/theme-switch.css +1 -1
- package/src/components/theme-switch/theme-switch.ts +1 -1
- package/src/components/theme-switch/types.ts +1 -1
- package/src/components/toggle/index.ts +1 -1
- package/src/components/toggle/toggle.css +1 -1
- package/src/components/toggle/toggle.ts +1 -1
- package/src/components/toggle/types.ts +1 -1
- package/src/components/toggle-group/toggle-group.css +1 -1
- package/src/components/toggle-password/index.ts +1 -1
- package/src/components/toggle-password/toggle-password.css +1 -1
- package/src/components/toggle-password/toggle-password.ts +1 -1
- package/src/components/toggle-password/types.ts +1 -1
- package/src/components/tooltip/index.ts +1 -1
- package/src/components/tooltip/tooltip.css +1 -1
- package/src/components/tooltip/tooltip.ts +1 -1
- package/src/components/tooltip/types.ts +1 -1
- package/src/helpers/data.ts +1 -1
- package/src/helpers/dom.ts +1 -1
- package/src/helpers/event-handler.ts +1 -1
- package/src/helpers/utils.ts +1 -1
- package/src/index.ts +1 -1
- 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
|