@keenthemes/ktui 1.2.0 → 1.2.2
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 +8355 -5213
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +24 -1
- package/lib/cjs/components/carousel/carousel.d.ts +102 -0
- package/lib/cjs/components/carousel/carousel.d.ts.map +1 -0
- package/lib/cjs/components/carousel/carousel.js +769 -0
- package/lib/cjs/components/carousel/carousel.js.map +1 -0
- package/lib/cjs/components/carousel/index.d.ts +7 -0
- package/lib/cjs/components/carousel/index.d.ts.map +1 -0
- package/lib/cjs/components/carousel/index.js +10 -0
- package/lib/cjs/components/carousel/index.js.map +1 -0
- package/lib/cjs/components/carousel/types.d.ts +36 -0
- package/lib/cjs/components/carousel/types.d.ts.map +1 -0
- package/lib/cjs/components/carousel/types.js +7 -0
- package/lib/cjs/components/carousel/types.js.map +1 -0
- package/lib/cjs/components/clipboard/clipboard.d.ts +37 -0
- package/lib/cjs/components/clipboard/clipboard.d.ts.map +1 -0
- package/lib/cjs/components/clipboard/clipboard.js +402 -0
- package/lib/cjs/components/clipboard/clipboard.js.map +1 -0
- package/lib/cjs/components/clipboard/index.d.ts +3 -0
- package/lib/cjs/components/clipboard/index.d.ts.map +1 -0
- package/lib/cjs/components/clipboard/index.js +6 -0
- package/lib/cjs/components/clipboard/index.js.map +1 -0
- package/lib/cjs/components/clipboard/types.d.ts +44 -0
- package/lib/cjs/components/clipboard/types.d.ts.map +1 -0
- package/lib/cjs/components/clipboard/types.js +7 -0
- package/lib/cjs/components/clipboard/types.js.map +1 -0
- package/lib/cjs/components/component.d.ts +3 -3
- package/lib/cjs/components/component.d.ts.map +1 -1
- package/lib/cjs/components/component.js +9 -1
- package/lib/cjs/components/component.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-checkbox.d.ts +1 -1
- package/lib/cjs/components/datatable/datatable-checkbox.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-checkbox.js +1 -1
- package/lib/cjs/components/datatable/datatable-checkbox.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-sort.d.ts +1 -1
- package/lib/cjs/components/datatable/datatable-sort.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-sort.js.map +1 -1
- package/lib/cjs/components/datatable/datatable.d.ts +2 -0
- package/lib/cjs/components/datatable/datatable.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable.js +29 -16
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/datatable/types.d.ts +2 -1
- package/lib/cjs/components/datatable/types.d.ts.map +1 -1
- package/lib/cjs/components/drawer/drawer.d.ts.map +1 -1
- package/lib/cjs/components/drawer/drawer.js +3 -16
- package/lib/cjs/components/drawer/drawer.js.map +1 -1
- package/lib/cjs/components/dropdown/dropdown.d.ts +1 -1
- package/lib/cjs/components/dropdown/dropdown.d.ts.map +1 -1
- package/lib/cjs/components/dropdown/dropdown.js +2 -3
- package/lib/cjs/components/dropdown/dropdown.js.map +1 -1
- package/lib/cjs/components/pin-input/index.d.ts +3 -0
- package/lib/cjs/components/pin-input/index.d.ts.map +1 -0
- package/lib/cjs/components/pin-input/index.js +6 -0
- package/lib/cjs/components/pin-input/index.js.map +1 -0
- package/lib/cjs/components/pin-input/pin-input.d.ts +56 -0
- package/lib/cjs/components/pin-input/pin-input.d.ts.map +1 -0
- package/lib/cjs/components/pin-input/pin-input.js +455 -0
- package/lib/cjs/components/pin-input/pin-input.js.map +1 -0
- package/lib/cjs/components/pin-input/types.d.ts +41 -0
- package/lib/cjs/components/pin-input/types.d.ts.map +1 -0
- package/lib/cjs/components/pin-input/types.js +6 -0
- package/lib/cjs/components/pin-input/types.js.map +1 -0
- package/lib/cjs/components/range-slider/index.d.ts +7 -0
- package/lib/cjs/components/range-slider/index.d.ts.map +1 -0
- package/lib/cjs/components/range-slider/index.js +10 -0
- package/lib/cjs/components/range-slider/index.js.map +1 -0
- package/lib/cjs/components/range-slider/range-slider.d.ts +42 -0
- package/lib/cjs/components/range-slider/range-slider.d.ts.map +1 -0
- package/lib/cjs/components/range-slider/range-slider.js +254 -0
- package/lib/cjs/components/range-slider/range-slider.js.map +1 -0
- package/lib/cjs/components/range-slider/types.d.ts +33 -0
- package/lib/cjs/components/range-slider/types.d.ts.map +1 -0
- package/lib/cjs/components/range-slider/types.js +7 -0
- package/lib/cjs/components/range-slider/types.js.map +1 -0
- package/lib/cjs/components/rating/rating.d.ts.map +1 -1
- package/lib/cjs/components/rating/rating.js +8 -3
- package/lib/cjs/components/rating/rating.js.map +1 -1
- package/lib/cjs/components/repeater/repeater.d.ts.map +1 -1
- package/lib/cjs/components/repeater/repeater.js +3 -2
- package/lib/cjs/components/repeater/repeater.js.map +1 -1
- package/lib/cjs/components/select/combobox.d.ts.map +1 -1
- package/lib/cjs/components/select/combobox.js +25 -15
- package/lib/cjs/components/select/combobox.js.map +1 -1
- package/lib/cjs/components/select/config.d.ts +2 -2
- package/lib/cjs/components/select/config.d.ts.map +1 -1
- package/lib/cjs/components/select/config.js +10 -9
- package/lib/cjs/components/select/config.js.map +1 -1
- package/lib/cjs/components/select/dropdown.js.map +1 -1
- package/lib/cjs/components/select/option.d.ts +2 -1
- package/lib/cjs/components/select/option.d.ts.map +1 -1
- package/lib/cjs/components/select/option.js +9 -3
- package/lib/cjs/components/select/option.js.map +1 -1
- package/lib/cjs/components/select/remote.d.ts +1 -0
- package/lib/cjs/components/select/remote.d.ts.map +1 -1
- package/lib/cjs/components/select/remote.js +21 -14
- package/lib/cjs/components/select/remote.js.map +1 -1
- package/lib/cjs/components/select/search.d.ts +1 -1
- package/lib/cjs/components/select/search.d.ts.map +1 -1
- package/lib/cjs/components/select/search.js +34 -25
- package/lib/cjs/components/select/search.js.map +1 -1
- package/lib/cjs/components/select/select.d.ts +5 -3
- package/lib/cjs/components/select/select.d.ts.map +1 -1
- package/lib/cjs/components/select/select.js +31 -31
- package/lib/cjs/components/select/select.js.map +1 -1
- package/lib/cjs/components/select/tags.d.ts.map +1 -1
- package/lib/cjs/components/select/tags.js +22 -13
- package/lib/cjs/components/select/tags.js.map +1 -1
- package/lib/cjs/components/select/templates.d.ts.map +1 -1
- package/lib/cjs/components/select/templates.js +4 -4
- package/lib/cjs/components/select/templates.js.map +1 -1
- package/lib/cjs/components/select/types.d.ts +1 -1
- package/lib/cjs/components/select/types.d.ts.map +1 -1
- package/lib/cjs/components/select/utils.d.ts +4 -4
- package/lib/cjs/components/select/utils.d.ts.map +1 -1
- package/lib/cjs/components/select/utils.js +5 -4
- package/lib/cjs/components/select/utils.js.map +1 -1
- package/lib/cjs/components/sticky/sticky.d.ts +1 -1
- package/lib/cjs/components/sticky/sticky.d.ts.map +1 -1
- package/lib/cjs/components/sticky/sticky.js +16 -14
- package/lib/cjs/components/sticky/sticky.js.map +1 -1
- package/lib/cjs/components/toast/toast.d.ts.map +1 -1
- package/lib/cjs/components/toast/toast.js +17 -9
- package/lib/cjs/components/toast/toast.js.map +1 -1
- package/lib/cjs/components/toast/types.d.ts +3 -0
- package/lib/cjs/components/toast/types.d.ts.map +1 -1
- package/lib/cjs/components/toggle-password/toggle-password.d.ts.map +1 -1
- package/lib/cjs/components/toggle-password/toggle-password.js.map +1 -1
- package/lib/cjs/helpers/dom.d.ts +4 -4
- package/lib/cjs/helpers/dom.d.ts.map +1 -1
- package/lib/cjs/helpers/dom.js +8 -10
- package/lib/cjs/helpers/dom.js.map +1 -1
- package/lib/cjs/helpers/event-handler.d.ts +1 -1
- package/lib/cjs/helpers/event-handler.d.ts.map +1 -1
- package/lib/cjs/helpers/event-handler.js +3 -1
- package/lib/cjs/helpers/event-handler.js.map +1 -1
- package/lib/cjs/helpers/utils.d.ts +1 -1
- package/lib/cjs/helpers/utils.d.ts.map +1 -1
- package/lib/cjs/helpers/utils.js +4 -1
- package/lib/cjs/helpers/utils.js.map +1 -1
- package/lib/cjs/index.d.ts +16 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +17 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types.d.ts +1 -1
- package/lib/cjs/types.d.ts.map +1 -1
- package/lib/esm/components/carousel/carousel.d.ts +102 -0
- package/lib/esm/components/carousel/carousel.d.ts.map +1 -0
- package/lib/esm/components/carousel/carousel.js +766 -0
- package/lib/esm/components/carousel/carousel.js.map +1 -0
- package/lib/esm/components/carousel/index.d.ts +7 -0
- package/lib/esm/components/carousel/index.d.ts.map +1 -0
- package/lib/esm/components/carousel/index.js +6 -0
- package/lib/esm/components/carousel/index.js.map +1 -0
- package/lib/esm/components/carousel/types.d.ts +36 -0
- package/lib/esm/components/carousel/types.d.ts.map +1 -0
- package/lib/esm/components/carousel/types.js +6 -0
- package/lib/esm/components/carousel/types.js.map +1 -0
- package/lib/esm/components/clipboard/clipboard.d.ts +37 -0
- package/lib/esm/components/clipboard/clipboard.d.ts.map +1 -0
- package/lib/esm/components/clipboard/clipboard.js +399 -0
- package/lib/esm/components/clipboard/clipboard.js.map +1 -0
- package/lib/esm/components/clipboard/index.d.ts +3 -0
- package/lib/esm/components/clipboard/index.d.ts.map +1 -0
- package/lib/esm/components/clipboard/index.js +2 -0
- package/lib/esm/components/clipboard/index.js.map +1 -0
- package/lib/esm/components/clipboard/types.d.ts +44 -0
- package/lib/esm/components/clipboard/types.d.ts.map +1 -0
- package/lib/esm/components/clipboard/types.js +6 -0
- package/lib/esm/components/clipboard/types.js.map +1 -0
- package/lib/esm/components/component.d.ts +3 -3
- package/lib/esm/components/component.d.ts.map +1 -1
- package/lib/esm/components/component.js +9 -1
- package/lib/esm/components/component.js.map +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.d.ts +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.js +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.js.map +1 -1
- package/lib/esm/components/datatable/datatable-sort.d.ts +1 -1
- package/lib/esm/components/datatable/datatable-sort.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-sort.js.map +1 -1
- package/lib/esm/components/datatable/datatable.d.ts +2 -0
- package/lib/esm/components/datatable/datatable.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable.js +29 -16
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/datatable/types.d.ts +2 -1
- package/lib/esm/components/datatable/types.d.ts.map +1 -1
- package/lib/esm/components/drawer/drawer.d.ts.map +1 -1
- package/lib/esm/components/drawer/drawer.js +3 -16
- package/lib/esm/components/drawer/drawer.js.map +1 -1
- package/lib/esm/components/dropdown/dropdown.d.ts +1 -1
- package/lib/esm/components/dropdown/dropdown.d.ts.map +1 -1
- package/lib/esm/components/dropdown/dropdown.js +2 -3
- package/lib/esm/components/dropdown/dropdown.js.map +1 -1
- package/lib/esm/components/pin-input/index.d.ts +3 -0
- package/lib/esm/components/pin-input/index.d.ts.map +1 -0
- package/lib/esm/components/pin-input/index.js +2 -0
- package/lib/esm/components/pin-input/index.js.map +1 -0
- package/lib/esm/components/pin-input/pin-input.d.ts +56 -0
- package/lib/esm/components/pin-input/pin-input.d.ts.map +1 -0
- package/lib/esm/components/pin-input/pin-input.js +452 -0
- package/lib/esm/components/pin-input/pin-input.js.map +1 -0
- package/lib/esm/components/pin-input/types.d.ts +41 -0
- package/lib/esm/components/pin-input/types.d.ts.map +1 -0
- package/lib/esm/components/pin-input/types.js +5 -0
- package/lib/esm/components/pin-input/types.js.map +1 -0
- package/lib/esm/components/range-slider/index.d.ts +7 -0
- package/lib/esm/components/range-slider/index.d.ts.map +1 -0
- package/lib/esm/components/range-slider/index.js +6 -0
- package/lib/esm/components/range-slider/index.js.map +1 -0
- package/lib/esm/components/range-slider/range-slider.d.ts +42 -0
- package/lib/esm/components/range-slider/range-slider.d.ts.map +1 -0
- package/lib/esm/components/range-slider/range-slider.js +251 -0
- package/lib/esm/components/range-slider/range-slider.js.map +1 -0
- package/lib/esm/components/range-slider/types.d.ts +33 -0
- package/lib/esm/components/range-slider/types.d.ts.map +1 -0
- package/lib/esm/components/range-slider/types.js +6 -0
- package/lib/esm/components/range-slider/types.js.map +1 -0
- package/lib/esm/components/rating/rating.d.ts.map +1 -1
- package/lib/esm/components/rating/rating.js +8 -3
- package/lib/esm/components/rating/rating.js.map +1 -1
- package/lib/esm/components/repeater/repeater.d.ts.map +1 -1
- package/lib/esm/components/repeater/repeater.js +3 -2
- package/lib/esm/components/repeater/repeater.js.map +1 -1
- package/lib/esm/components/select/combobox.d.ts.map +1 -1
- package/lib/esm/components/select/combobox.js +25 -15
- package/lib/esm/components/select/combobox.js.map +1 -1
- package/lib/esm/components/select/config.d.ts +2 -2
- package/lib/esm/components/select/config.d.ts.map +1 -1
- package/lib/esm/components/select/config.js +10 -9
- package/lib/esm/components/select/config.js.map +1 -1
- package/lib/esm/components/select/dropdown.js.map +1 -1
- package/lib/esm/components/select/option.d.ts +2 -1
- package/lib/esm/components/select/option.d.ts.map +1 -1
- package/lib/esm/components/select/option.js +9 -3
- package/lib/esm/components/select/option.js.map +1 -1
- package/lib/esm/components/select/remote.d.ts +1 -0
- package/lib/esm/components/select/remote.d.ts.map +1 -1
- package/lib/esm/components/select/remote.js +21 -14
- package/lib/esm/components/select/remote.js.map +1 -1
- package/lib/esm/components/select/search.d.ts +1 -1
- package/lib/esm/components/select/search.d.ts.map +1 -1
- package/lib/esm/components/select/search.js +34 -25
- package/lib/esm/components/select/search.js.map +1 -1
- package/lib/esm/components/select/select.d.ts +5 -3
- package/lib/esm/components/select/select.d.ts.map +1 -1
- package/lib/esm/components/select/select.js +31 -31
- package/lib/esm/components/select/select.js.map +1 -1
- package/lib/esm/components/select/tags.d.ts.map +1 -1
- package/lib/esm/components/select/tags.js +22 -13
- package/lib/esm/components/select/tags.js.map +1 -1
- package/lib/esm/components/select/templates.d.ts.map +1 -1
- package/lib/esm/components/select/templates.js +4 -4
- package/lib/esm/components/select/templates.js.map +1 -1
- package/lib/esm/components/select/types.d.ts +1 -1
- package/lib/esm/components/select/types.d.ts.map +1 -1
- package/lib/esm/components/select/utils.d.ts +4 -4
- package/lib/esm/components/select/utils.d.ts.map +1 -1
- package/lib/esm/components/select/utils.js +5 -4
- package/lib/esm/components/select/utils.js.map +1 -1
- package/lib/esm/components/sticky/sticky.d.ts +1 -1
- package/lib/esm/components/sticky/sticky.d.ts.map +1 -1
- package/lib/esm/components/sticky/sticky.js +16 -14
- package/lib/esm/components/sticky/sticky.js.map +1 -1
- package/lib/esm/components/toast/toast.d.ts.map +1 -1
- package/lib/esm/components/toast/toast.js +17 -9
- package/lib/esm/components/toast/toast.js.map +1 -1
- package/lib/esm/components/toast/types.d.ts +3 -0
- package/lib/esm/components/toast/types.d.ts.map +1 -1
- package/lib/esm/components/toggle-password/toggle-password.d.ts.map +1 -1
- package/lib/esm/components/toggle-password/toggle-password.js.map +1 -1
- package/lib/esm/helpers/dom.d.ts +4 -4
- package/lib/esm/helpers/dom.d.ts.map +1 -1
- package/lib/esm/helpers/dom.js +8 -10
- package/lib/esm/helpers/dom.js.map +1 -1
- package/lib/esm/helpers/event-handler.d.ts +1 -1
- package/lib/esm/helpers/event-handler.d.ts.map +1 -1
- package/lib/esm/helpers/event-handler.js +3 -1
- package/lib/esm/helpers/event-handler.js.map +1 -1
- package/lib/esm/helpers/utils.d.ts +1 -1
- package/lib/esm/helpers/utils.d.ts.map +1 -1
- package/lib/esm/helpers/utils.js +4 -1
- package/lib/esm/helpers/utils.js.map +1 -1
- package/lib/esm/index.d.ts +16 -0
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +12 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types.d.ts +1 -1
- package/lib/esm/types.d.ts.map +1 -1
- package/package.json +5 -3
- package/src/components/carousel/__tests__/carousel.test.ts +326 -0
- package/src/components/carousel/carousel.css +42 -0
- package/src/components/carousel/carousel.ts +847 -0
- package/src/components/carousel/index.ts +11 -0
- package/src/components/carousel/types.ts +38 -0
- package/src/components/clipboard/__tests__/clipboard.test.ts +438 -0
- package/src/components/clipboard/clipboard.ts +416 -0
- package/src/components/clipboard/index.ts +2 -0
- package/src/components/clipboard/types.ts +51 -0
- package/src/components/component.ts +15 -5
- package/src/components/datatable/__tests__/currency-sort.test.ts +6 -13
- package/src/components/datatable/__tests__/multi-row-headers.test.ts +2 -2
- package/src/components/datatable/__tests__/pagination-reset.test.ts +7 -4
- package/src/components/datatable/__tests__/race-conditions.test.ts +11 -14
- package/src/components/datatable/__tests__/setup.ts +1 -1
- package/src/components/datatable/datatable-checkbox.ts +6 -4
- package/src/components/datatable/datatable-sort.ts +27 -7
- package/src/components/datatable/datatable.ts +67 -42
- package/src/components/datatable/types.ts +3 -1
- package/src/components/drawer/drawer.ts +3 -18
- package/src/components/dropdown/dropdown.ts +2 -3
- package/src/components/pin-input/__tests__/pin-input.test.ts +928 -0
- package/src/components/pin-input/index.ts +6 -0
- package/src/components/pin-input/pin-input.ts +499 -0
- package/src/components/pin-input/types.ts +45 -0
- package/src/components/range-slider/__tests__/range-slider.test.ts +659 -0
- package/src/components/range-slider/index.ts +11 -0
- package/src/components/range-slider/range-slider.ts +276 -0
- package/src/components/range-slider/types.ts +36 -0
- package/src/components/rating/__tests__/rating.test.ts +11 -4
- package/src/components/rating/rating.ts +22 -12
- package/src/components/repeater/__tests__/repeater.test.ts +24 -11
- package/src/components/repeater/repeater.ts +5 -3
- package/src/components/select/__tests__/ux-behaviors.test.ts +25 -6
- package/src/components/select/combobox.ts +23 -16
- package/src/components/select/config.ts +15 -14
- package/src/components/select/dropdown.ts +1 -1
- package/src/components/select/option.ts +14 -4
- package/src/components/select/remote.ts +68 -56
- package/src/components/select/search.ts +30 -27
- package/src/components/select/select.ts +41 -37
- package/src/components/select/tags.ts +14 -8
- package/src/components/select/templates.ts +11 -6
- package/src/components/select/types.ts +1 -1
- package/src/components/select/utils.ts +12 -10
- package/src/components/sticky/__tests__/sticky.test.ts +10 -3
- package/src/components/sticky/sticky.ts +16 -26
- package/src/components/sticky/types.ts +3 -3
- package/src/components/toast/toast.ts +34 -21
- package/src/components/toast/types.ts +5 -1
- package/src/components/toggle-password/toggle-password.ts +0 -1
- package/src/helpers/dom.ts +14 -17
- package/src/helpers/event-handler.ts +5 -6
- package/src/helpers/utils.ts +5 -2
- package/src/index.ts +35 -0
- package/src/types.ts +1 -1
- package/styles.css +1 -0
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
KTToastConfig,
|
|
11
11
|
KTToastInstance,
|
|
12
12
|
KTToastPosition,
|
|
13
|
+
KTToastClassNames,
|
|
13
14
|
} from './types';
|
|
14
15
|
|
|
15
16
|
const DEFAULT_CONFIG: KTToastConfig = {
|
|
@@ -60,9 +61,9 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
60
61
|
* @returns The toast's HTML markup as a string.
|
|
61
62
|
*/
|
|
62
63
|
static getContent(options?: KTToastOptions) {
|
|
63
|
-
const classNames = {
|
|
64
|
-
...(
|
|
65
|
-
...(
|
|
64
|
+
const classNames: Partial<KTToastClassNames> = {
|
|
65
|
+
...(this.globalConfig.classNames || {}),
|
|
66
|
+
...(options?.classNames || {}),
|
|
66
67
|
};
|
|
67
68
|
|
|
68
69
|
if (options?.content) {
|
|
@@ -237,18 +238,18 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
237
238
|
const position =
|
|
238
239
|
options.position || this.globalConfig.position || 'top-end';
|
|
239
240
|
|
|
240
|
-
const classNames = {
|
|
241
|
-
...(
|
|
242
|
-
...(
|
|
241
|
+
const classNames: Partial<KTToastClassNames> = {
|
|
242
|
+
...(this.globalConfig.classNames || {}),
|
|
243
|
+
...(options.classNames || {}),
|
|
243
244
|
};
|
|
244
245
|
|
|
245
246
|
let container = this.containerMap.get(position);
|
|
246
247
|
|
|
247
248
|
if (!container) {
|
|
248
249
|
container = document.createElement('div');
|
|
249
|
-
const classNames = {
|
|
250
|
-
...(
|
|
251
|
-
...(
|
|
250
|
+
const classNames: Partial<KTToastClassNames> = {
|
|
251
|
+
...(this.globalConfig.classNames || {}),
|
|
252
|
+
...(options.classNames || {}),
|
|
252
253
|
};
|
|
253
254
|
// Fallback to default hardcoded classes if not provided in options or globalConfig
|
|
254
255
|
container.className =
|
|
@@ -260,7 +261,7 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
260
261
|
// Enforce maxToasts
|
|
261
262
|
if (
|
|
262
263
|
container.children.length >=
|
|
263
|
-
(this.globalConfig.maxToasts
|
|
264
|
+
(this.globalConfig.maxToasts ?? DEFAULT_CONFIG.maxToasts ?? 5)
|
|
264
265
|
) {
|
|
265
266
|
const firstToast = container.firstElementChild;
|
|
266
267
|
if (firstToast) {
|
|
@@ -296,7 +297,10 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
296
297
|
};
|
|
297
298
|
|
|
298
299
|
const toast = document.createElement('div');
|
|
299
|
-
|
|
300
|
+
const variantClass = variantMap[options.variant ?? 'info'] || '';
|
|
301
|
+
const appearanceClass = appearanceMap[options.appearance ?? 'solid'] || '';
|
|
302
|
+
const sizeClass = sizeMap[options.size ?? 'md'] || '';
|
|
303
|
+
toast.className = `kt-toast kt-alert ${variantClass} ${appearanceClass} ${sizeClass} ${options.className || ''} ${classNames.toast || ''}`;
|
|
300
304
|
// ARIA support
|
|
301
305
|
toast.setAttribute('role', options.role || 'status');
|
|
302
306
|
toast.setAttribute('aria-live', 'polite');
|
|
@@ -392,10 +396,11 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
392
396
|
toast.classList.add(dirClass);
|
|
393
397
|
|
|
394
398
|
// Enforce maxToasts: remove oldest if needed
|
|
395
|
-
const maxToasts =
|
|
399
|
+
const maxToasts: number =
|
|
396
400
|
options.maxToasts ??
|
|
397
401
|
this.globalConfig.maxToasts ??
|
|
398
|
-
DEFAULT_CONFIG.maxToasts
|
|
402
|
+
DEFAULT_CONFIG.maxToasts ??
|
|
403
|
+
5;
|
|
399
404
|
const currentToasts = Array.from(container.children) as HTMLElement[];
|
|
400
405
|
if (currentToasts.length >= maxToasts && currentToasts.length > 0) {
|
|
401
406
|
const oldestToast = currentToasts[currentToasts.length - 1];
|
|
@@ -415,9 +420,17 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
415
420
|
if (options.beep) {
|
|
416
421
|
try {
|
|
417
422
|
// Use Web Audio API for a short beep
|
|
418
|
-
const
|
|
419
|
-
window.AudioContext ||
|
|
420
|
-
|
|
423
|
+
const Ctx =
|
|
424
|
+
window.AudioContext ||
|
|
425
|
+
(
|
|
426
|
+
window as Window & {
|
|
427
|
+
webkitAudioContext?: typeof AudioContext;
|
|
428
|
+
}
|
|
429
|
+
).webkitAudioContext;
|
|
430
|
+
if (!Ctx) {
|
|
431
|
+
throw new Error('Web Audio API unavailable');
|
|
432
|
+
}
|
|
433
|
+
const ctx = new Ctx();
|
|
421
434
|
const o = ctx.createOscillator();
|
|
422
435
|
const g = ctx.createGain();
|
|
423
436
|
o.type = 'sine';
|
|
@@ -430,7 +443,7 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
430
443
|
o.stop();
|
|
431
444
|
ctx.close();
|
|
432
445
|
}, 120);
|
|
433
|
-
} catch
|
|
446
|
+
} catch {
|
|
434
447
|
/* ignore */
|
|
435
448
|
}
|
|
436
449
|
}
|
|
@@ -442,7 +455,7 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
442
455
|
|
|
443
456
|
// Auto-dismiss
|
|
444
457
|
let timeoutId: number | undefined = undefined;
|
|
445
|
-
let remaining = duration;
|
|
458
|
+
let remaining = duration ?? 0;
|
|
446
459
|
let startTime: number | undefined;
|
|
447
460
|
let paused = false;
|
|
448
461
|
let progressEl: HTMLElement | null = null;
|
|
@@ -493,7 +506,7 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
493
506
|
if (progressEl) {
|
|
494
507
|
progressEl.style.transition = 'transform 0ms';
|
|
495
508
|
progressEl.style.transform = `scaleX(${progressPausedAt})`;
|
|
496
|
-
progressEl.offsetHeight; // force reflow
|
|
509
|
+
void progressEl.offsetHeight; // force reflow
|
|
497
510
|
progressEl.style.transition = `transform ${remaining}ms linear`;
|
|
498
511
|
progressEl.style.transform = 'scaleX(0)';
|
|
499
512
|
}
|
|
@@ -566,8 +579,8 @@ export class KTToast extends KTComponent implements KTToastInterface {
|
|
|
566
579
|
inst?.element.remove();
|
|
567
580
|
KTToast.toasts.delete(id!);
|
|
568
581
|
// Try to call onDismiss if available in the toast instance (if stored)
|
|
569
|
-
if (typeof
|
|
570
|
-
|
|
582
|
+
if (typeof inst.options?.onDismiss === 'function') {
|
|
583
|
+
inst.options.onDismiss(id);
|
|
571
584
|
}
|
|
572
585
|
KTToast._fireEventOnElement(inst.element, 'hidden', { id });
|
|
573
586
|
KTToast._dispatchEventOnElement(inst.element, 'hidden', { id });
|
|
@@ -60,6 +60,7 @@ export interface KTToastClassNames {
|
|
|
60
60
|
message?: string; // Message
|
|
61
61
|
toolbar?: string; // Toolbar
|
|
62
62
|
actions?: string; // Actions
|
|
63
|
+
progress?: string; // Progress indicator
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
/**
|
|
@@ -93,7 +94,9 @@ export interface KTToastConfigInterface {
|
|
|
93
94
|
progress?: boolean;
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
export interface KTToastInterface {
|
|
97
|
+
export interface KTToastInterface {
|
|
98
|
+
dispose(): void;
|
|
99
|
+
}
|
|
97
100
|
|
|
98
101
|
export interface KTToastOptions {
|
|
99
102
|
/** Custom content for the toast. HTMLElement, function returning HTMLElement, or string (DOM id). If set, replaces all default markup. */
|
|
@@ -169,4 +172,5 @@ export interface KTToastInstance {
|
|
|
169
172
|
id: string; // Toast unique ID
|
|
170
173
|
element: HTMLElement; // Toast DOM element
|
|
171
174
|
timeoutId: number; // Timer ID for auto-dismiss
|
|
175
|
+
options?: KTToastOptions; // Resolved options used to create this toast
|
|
172
176
|
}
|
package/src/helpers/dom.ts
CHANGED
|
@@ -16,21 +16,17 @@ const KTDom = {
|
|
|
16
16
|
return dir === 'rtl';
|
|
17
17
|
},
|
|
18
18
|
|
|
19
|
-
isElement(element:
|
|
20
|
-
|
|
21
|
-
return true;
|
|
22
|
-
} else {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
19
|
+
isElement(element: unknown): element is HTMLElement {
|
|
20
|
+
return element instanceof HTMLElement;
|
|
25
21
|
},
|
|
26
22
|
|
|
27
|
-
getElement(element: HTMLElement | string): HTMLElement {
|
|
23
|
+
getElement(element: HTMLElement | string | null): HTMLElement | null {
|
|
28
24
|
if (this.isElement(element)) {
|
|
29
|
-
return element
|
|
25
|
+
return element;
|
|
30
26
|
}
|
|
31
27
|
|
|
32
|
-
if (element &&
|
|
33
|
-
return document.querySelector(KTUtils.parseSelector(element
|
|
28
|
+
if (typeof element === 'string' && element.length > 0) {
|
|
29
|
+
return document.querySelector(KTUtils.parseSelector(element));
|
|
34
30
|
}
|
|
35
31
|
|
|
36
32
|
return null;
|
|
@@ -151,7 +147,7 @@ const KTDom = {
|
|
|
151
147
|
|
|
152
148
|
children(element: HTMLElement, selector: string): Array<HTMLElement> {
|
|
153
149
|
if (!element || !element.childNodes) {
|
|
154
|
-
return
|
|
150
|
+
return [];
|
|
155
151
|
}
|
|
156
152
|
|
|
157
153
|
const result: Array<HTMLElement> = [];
|
|
@@ -170,7 +166,7 @@ const KTDom = {
|
|
|
170
166
|
return result;
|
|
171
167
|
},
|
|
172
168
|
|
|
173
|
-
child(element: HTMLElement, selector: string): HTMLElement {
|
|
169
|
+
child(element: HTMLElement, selector: string): HTMLElement | null {
|
|
174
170
|
const children = KTDom.children(element, selector);
|
|
175
171
|
|
|
176
172
|
return children ? children[0] : null;
|
|
@@ -236,7 +232,7 @@ const KTDom = {
|
|
|
236
232
|
},
|
|
237
233
|
|
|
238
234
|
reflow(element: HTMLElement): void {
|
|
239
|
-
element.offsetHeight;
|
|
235
|
+
void element.offsetHeight;
|
|
240
236
|
},
|
|
241
237
|
|
|
242
238
|
insertAfter(element: HTMLElement, referenceNode: HTMLElement) {
|
|
@@ -277,7 +273,7 @@ const KTDom = {
|
|
|
277
273
|
return 1;
|
|
278
274
|
},
|
|
279
275
|
|
|
280
|
-
isParentOrElementHidden(element: HTMLElement): boolean {
|
|
276
|
+
isParentOrElementHidden(element: HTMLElement | null): boolean {
|
|
281
277
|
if (!element) {
|
|
282
278
|
return false;
|
|
283
279
|
}
|
|
@@ -380,9 +376,10 @@ const KTDom = {
|
|
|
380
376
|
for (const key of keys) {
|
|
381
377
|
let normalizedKey = key.replace(prefix, '');
|
|
382
378
|
normalizedKey = KTUtils.uncapitalize(normalizedKey);
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
379
|
+
const datasetValue = element.dataset[key];
|
|
380
|
+
if (typeof datasetValue === 'string') {
|
|
381
|
+
attributes[normalizedKey] = KTUtils.parseDataAttribute(datasetValue);
|
|
382
|
+
}
|
|
386
383
|
}
|
|
387
384
|
|
|
388
385
|
return attributes;
|
|
@@ -14,23 +14,22 @@ const KTDelegatedEventHandlers: KTDelegatedEventHandlersInterface = {};
|
|
|
14
14
|
|
|
15
15
|
const KTEventHandler = {
|
|
16
16
|
on: function (
|
|
17
|
-
element: HTMLElement,
|
|
17
|
+
element: HTMLElement | null,
|
|
18
18
|
selector: string,
|
|
19
19
|
eventName: string,
|
|
20
20
|
handler: KTCallableType,
|
|
21
21
|
): string {
|
|
22
22
|
if (element === null) {
|
|
23
|
-
return
|
|
23
|
+
return '';
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
const eventId = KTUtils.geUID('event');
|
|
27
27
|
|
|
28
|
-
KTDelegatedEventHandlers[eventId] = (
|
|
29
|
-
event
|
|
30
|
-
) => {
|
|
28
|
+
KTDelegatedEventHandlers[eventId] = (event?: Event) => {
|
|
29
|
+
if (!event) return;
|
|
31
30
|
// Fix: Check selector dynamically instead of pre-computing targets
|
|
32
31
|
// This allows event delegation to work with dynamically added elements
|
|
33
|
-
let target = event.target as HTMLElement;
|
|
32
|
+
let target = event.target as HTMLElement | null;
|
|
34
33
|
|
|
35
34
|
while (target && target !== element) {
|
|
36
35
|
// Check if current target matches the selector
|
package/src/helpers/utils.ts
CHANGED
|
@@ -50,7 +50,7 @@ const KTUtils = {
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
|
|
53
|
-
parseJson(value: string):
|
|
53
|
+
parseJson(value: string): unknown | null {
|
|
54
54
|
return value && value.length > 0
|
|
55
55
|
? JSON.parse(decodeURIComponent(value))
|
|
56
56
|
: null;
|
|
@@ -134,13 +134,16 @@ const KTUtils = {
|
|
|
134
134
|
},
|
|
135
135
|
|
|
136
136
|
stringToObject: <T>(value: KTOptionType): T | null => {
|
|
137
|
+
if (value === null) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
137
140
|
try {
|
|
138
141
|
const parsed = JSON.parse(value.toString() as string);
|
|
139
142
|
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
140
143
|
return parsed as T;
|
|
141
144
|
}
|
|
142
145
|
return null;
|
|
143
|
-
} catch
|
|
146
|
+
} catch {
|
|
144
147
|
return null;
|
|
145
148
|
}
|
|
146
149
|
},
|
package/src/index.ts
CHANGED
|
@@ -30,6 +30,10 @@ import { KTSelect } from './components/select';
|
|
|
30
30
|
import { KTToast } from './components/toast';
|
|
31
31
|
import { KTRating } from './components/rating';
|
|
32
32
|
import { KTRepeater } from './components/repeater';
|
|
33
|
+
import { KTClipboard } from './components/clipboard';
|
|
34
|
+
import { KTRangeSlider } from './components/range-slider';
|
|
35
|
+
import { KTPinInput } from './components/pin-input';
|
|
36
|
+
import { KTCarousel } from './components/carousel';
|
|
33
37
|
|
|
34
38
|
export { KTDropdown } from './components/dropdown';
|
|
35
39
|
export { KTModal } from './components/modal';
|
|
@@ -54,6 +58,10 @@ export { KTSelect } from './components/select';
|
|
|
54
58
|
export { KTToast } from './components/toast';
|
|
55
59
|
export { KTRating } from './components/rating';
|
|
56
60
|
export { KTRepeater } from './components/repeater';
|
|
61
|
+
export { KTClipboard } from './components/clipboard';
|
|
62
|
+
export { KTRangeSlider } from './components/range-slider';
|
|
63
|
+
export { KTPinInput } from './components/pin-input';
|
|
64
|
+
export { KTCarousel } from './components/carousel';
|
|
57
65
|
|
|
58
66
|
export type {
|
|
59
67
|
KTAccordionConfigInterface,
|
|
@@ -109,6 +117,25 @@ export type {
|
|
|
109
117
|
KTRepeaterConfigInterface,
|
|
110
118
|
KTRepeaterInterface,
|
|
111
119
|
} from './components/repeater';
|
|
120
|
+
export type {
|
|
121
|
+
KTClipboardConfigInterface,
|
|
122
|
+
KTClipboardInterface,
|
|
123
|
+
} from './components/clipboard';
|
|
124
|
+
export type {
|
|
125
|
+
KTRangeSliderConfigInterface,
|
|
126
|
+
KTRangeSliderEventPayloadInterface,
|
|
127
|
+
KTRangeSliderInterface,
|
|
128
|
+
} from './components/range-slider';
|
|
129
|
+
export type {
|
|
130
|
+
KTPinInputConfigInterface,
|
|
131
|
+
KTPinInputEventPayloadInterface,
|
|
132
|
+
KTPinInputInterface,
|
|
133
|
+
} from './components/pin-input';
|
|
134
|
+
export type {
|
|
135
|
+
KTCarouselConfigInterface,
|
|
136
|
+
KTCarouselChangePayloadInterface,
|
|
137
|
+
KTCarouselInterface,
|
|
138
|
+
} from './components/carousel';
|
|
112
139
|
export type {
|
|
113
140
|
KTScrollableConfigInterface,
|
|
114
141
|
KTScrollableInterface,
|
|
@@ -180,6 +207,10 @@ const KTComponents = {
|
|
|
180
207
|
KTToast.init();
|
|
181
208
|
KTRating.init();
|
|
182
209
|
KTRepeater.init();
|
|
210
|
+
KTClipboard.init();
|
|
211
|
+
KTRangeSlider.init();
|
|
212
|
+
KTPinInput.init();
|
|
213
|
+
KTCarousel.init();
|
|
183
214
|
},
|
|
184
215
|
};
|
|
185
216
|
|
|
@@ -212,6 +243,10 @@ declare global {
|
|
|
212
243
|
KTToast: typeof KTToast;
|
|
213
244
|
KTRating: typeof KTRating;
|
|
214
245
|
KTRepeater: typeof KTRepeater;
|
|
246
|
+
KTClipboard: typeof KTClipboard;
|
|
247
|
+
KTRangeSlider: typeof KTRangeSlider;
|
|
248
|
+
KTPinInput: typeof KTPinInput;
|
|
249
|
+
KTCarousel: typeof KTCarousel;
|
|
215
250
|
KTComponents: typeof KTComponents;
|
|
216
251
|
}
|
|
217
252
|
}
|
package/src/types.ts
CHANGED
package/styles.css
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
@import './src/components/btn/btn.css';
|
|
10
10
|
@import './src/components/label/label.css';
|
|
11
11
|
@import './src/components/card/card.css';
|
|
12
|
+
@import './src/components/carousel/carousel.css';
|
|
12
13
|
@import './src/components/checkbox/checkbox.css';
|
|
13
14
|
@import './src/components/collapse/collapse.css';
|
|
14
15
|
@import './src/components/datatable/datatable.css';
|